The character-search command accepts multibyte characters just fine, but when reading input from a macro, multibyte characters are not processed correctly. For example trying to invoke the macro defined with:
bind '"\C-f": "\C-]π"' will fail to search and will instead type just the second byte of the character (x80). The following one-line patch fixes the behavior, but I'm not sure if this the right place to do it. --- a/lib/readline/input.c +++ b/lib/readline/input.c @@ -457,7 +457,7 @@ rl_read_key () { /* If input is coming from a macro, then use that. */ if (c = _rl_next_macro_key ()) - return (c); + return ((unsigned char) c); /* If the user has an event function, then call it periodically. */ if (rl_event_hook)