diff options
author | das <das@FreeBSD.org> | 2009-02-28 06:27:23 +0000 |
---|---|---|
committer | das <das@FreeBSD.org> | 2009-02-28 06:27:23 +0000 |
commit | 3f9ccbd00f04d2fd0bd297de194ea43e33729367 (patch) | |
tree | 25e9437f1948b94a1f91333837457e76fc9cd373 /contrib | |
parent | e5de8b5d17e9fc17c5f215cb5052acfa2a94f96b (diff) | |
download | FreeBSD-src-3f9ccbd00f04d2fd0bd297de194ea43e33729367.zip FreeBSD-src-3f9ccbd00f04d2fd0bd297de194ea43e33729367.tar.gz |
Make `less -R' not crash all the time.
Diffstat (limited to 'contrib')
-rw-r--r-- | contrib/less/line.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/contrib/less/line.c b/contrib/less/line.c index 944e02d..11122a5 100644 --- a/contrib/less/line.c +++ b/contrib/less/line.c @@ -601,9 +601,11 @@ store_char(ch, a, rep, pos) { if (!is_ansi_end(ch) && !is_ansi_middle(ch)) { /* Remove whole unrecognized sequence. */ - do { + while (curr) { --curr; - } while (!IS_CSI_START(linebuf[curr])); + if (IS_CSI_START(linebuf[curr])) + break; + } return 0; } a = AT_ANSI; /* Will force re-AT_'ing around it. */ |