X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=lib%2Freadline%2Futil.c;h=c7bd360e43cd3940922d163265ed8c0795d2a166;hb=refs%2Ftags%2Fdevel-base-dist;hp=bd08b38a52bb495fed55b85b2e29376a51886ae9;hpb=f73dda092b33638d2d5e9c35375f687a607b5403;p=platform%2Fupstream%2Fbash.git diff --git a/lib/readline/util.c b/lib/readline/util.c index bd08b38..c7bd360 100644 --- a/lib/readline/util.c +++ b/lib/readline/util.c @@ -55,8 +55,6 @@ #include "rlprivate.h" #include "xmalloc.h" -#define SWAP(s, e) do { int t; t = s; s = e; e = t; } while (0) - /* **************************************************************** */ /* */ /* Utility Functions */ @@ -89,7 +87,7 @@ _rl_abort_internal () _rl_init_argument (); rl_clear_pending_input (); - _rl_defining_kbd_macro = 0; + RL_UNSETSTATE (RL_STATE_MACRODEF); while (rl_executing_macro) _rl_pop_executing_macro (); @@ -233,6 +231,12 @@ _rl_strpbrk (string1, string2) const char *string1, *string2; { register const char *scan; +#if defined (HANDLE_MULTIBYTE) + mbstate_t ps; + register int i, v; + + memset (&ps, 0, sizeof (mbstate_t)); +#endif for (; *string1; string1++) { @@ -241,6 +245,14 @@ _rl_strpbrk (string1, string2) if (*string1 == *scan) return ((char *)string1); } +#if defined (HANDLE_MULTIBYTE) + if (MB_CUR_MAX > 1 && rl_byte_oriented == 0) + { + v = _rl_get_char_len (string1, &ps); + if (v > 1) + string += v - 1; /* -1 to account for auto-increment in loop */ + } +#endif } return ((char *)NULL); }