diff options
Diffstat (limited to 'contrib/less/charset.c')
-rw-r--r-- | contrib/less/charset.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/contrib/less/charset.c b/contrib/less/charset.c index 628218d..37d344d 100644 --- a/contrib/less/charset.c +++ b/contrib/less/charset.c @@ -668,6 +668,7 @@ step_char(pp, dir, limit) char *limit; { LWCHAR ch; + int len; char *p = *pp; if (!utf_mode) @@ -679,14 +680,15 @@ step_char(pp, dir, limit) ch = (LWCHAR) ((p > limit) ? *--p : 0); } else if (dir > 0) { - if (p + utf_len(*p) > limit) + len = utf_len(*p); + if (p + len > limit) + { ch = 0; - else + p = limit; + } else { ch = get_wchar(p); - p++; - while (IS_UTF8_TRAIL(*p)) - p++; + p += len; } } else { |