- case 'k': /* Key sequence (string) */
- args[i] = Fread_key_sequence (build_string (prompt), Qnil);
- teml = args[i];
- visargs[i] = Fkey_description (teml);
+ case 'i': /* Ignore an argument -- Does not do I/O */
+ varies[i] = -1;
+ break;
+
+ case 'k': /* Key sequence. */
+ {
+ int speccount1 = specpdl_ptr - specpdl;
+ specbind (Qcursor_in_echo_area, Qt);
+ args[i] = Fread_key_sequence (build_string (callint_message),
+ Qnil, Qnil, Qnil);
+ unbind_to (speccount1, Qnil);
+ teml = args[i];
+ visargs[i] = Fkey_description (teml);
+ }
+ break;
+
+ case 'K': /* Key sequence to be defined. */
+ {
+ int speccount1 = specpdl_ptr - specpdl;
+ specbind (Qcursor_in_echo_area, Qt);
+ args[i] = Fread_key_sequence (build_string (callint_message),
+ Qnil, Qt, Qnil);
+ teml = args[i];
+ visargs[i] = Fkey_description (teml);
+ unbind_to (speccount1, Qnil);
+ }