diff options
Diffstat (limited to 'contrib/libreadline')
-rw-r--r-- | contrib/libreadline/mbutil.c | 4 | ||||
-rw-r--r-- | contrib/libreadline/misc.c | 6 |
2 files changed, 2 insertions, 8 deletions
diff --git a/contrib/libreadline/mbutil.c b/contrib/libreadline/mbutil.c index 9a8f17c..695845a 100644 --- a/contrib/libreadline/mbutil.c +++ b/contrib/libreadline/mbutil.c @@ -126,11 +126,11 @@ _rl_find_next_mbchar_internal (string, seed, count, find_non_zero) if (find_non_zero) { tmp = mbrtowc (&wc, string + point, strlen (string + point), &ps); - while (wcwidth (wc) == 0) + while (tmp > 0 && wcwidth (wc) == 0) { point += tmp; tmp = mbrtowc (&wc, string + point, strlen (string + point), &ps); - if (tmp == (size_t)(0) || tmp == (size_t)(-1) || tmp == (size_t)(-2)) + if (MB_NULLWCH (tmp) || MB_INVALIDCH (tmp)) break; } } diff --git a/contrib/libreadline/misc.c b/contrib/libreadline/misc.c index ab1e133..403313a 100644 --- a/contrib/libreadline/misc.c +++ b/contrib/libreadline/misc.c @@ -276,12 +276,6 @@ rl_maybe_save_line () _rl_saved_line_for_history->line = savestring (rl_line_buffer); _rl_saved_line_for_history->data = (char *)rl_undo_list; } - else if (STREQ (rl_line_buffer, _rl_saved_line_for_history->line) == 0) - { - free (_rl_saved_line_for_history->line); - _rl_saved_line_for_history->line = savestring (rl_line_buffer); - _rl_saved_line_for_history->data = (char *)rl_undo_list; /* XXX possible memleak */ - } return 0; } |