Description:

  Now "bind -x" can be used with numeric arguments when the numeric
  arguments are specified by e.g. "M-1 2 3".  However, when the
  numeric arguments are specified by e.g. "M-1 M-2 M-3", it still fails
  with the error message `bash_execute_unix_command: cannot find
  keymap for command'.  It fails too when the arguments are specified
  through `vi-arg-digit' in the vi-command map.

Repeat-By:

  $ ./bash --norc
  $ f1() { echo "ARG=$READLINE_ARGUMENT"; }
  $ bind -x '"\C-t": f1'
  $       # <--- Press "M-1 2 C-t" (Note: M-1 is transmitted as "ESC 1")
  ARG=12  # .... The expected result

  $       # <--- Press "M-1 M-2 C-t"
  bash: bash_execute_unix_command: cannot find keymap for command
          # .... An unexpected error message. "ARG=12" is expected

  $ set -o vi
  $ bind -m vi-command -x '"\C-t": f1'
  $       # <--- Press "ESC 1 C-t"
  bash: bash_execute_unix_command: cannot find keymap for command
          # .... An unexpected error message. "ARG=1" is expected.

Fix:

  I attach a patch for `rl_trim_arg_from_keyseq'
  (lib/readline/bind.c)..

--
Koichi

Attachment: r0027-fix-READLINE_ARGUMENT.patch
Description: Binary data

Reply via email to