Ilya Zakharevich on Fri, 31 Aug 2001 14:06:44 -0400 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
[PATCH 2.1.1] f1 for help |
This patch binds <f1> (both xterm flavor and vt100 flavor) to show help, and <f1><f1> to show long help. Enjoy, Ilya --- ./Configure~ Fri Aug 31 13:35:56 2001 +++ ./Configure Fri Aug 31 13:37:41 2001 @@ -560,6 +560,9 @@ if test "$optimization" != profiling; th if (grep rl_completion_append_character $x > /dev/null 2>&1); then rl_appendchar=yes fi + if (grep rl_generic_bind $x > /dev/null 2>&1); then + rl_genericbind=yes + fi if (grep rl_save_prompt $x > /dev/null 2>&1); then rl_save_prompt=yes; else @@ -596,6 +599,9 @@ if test "$optimization" != profiling; th if test -z "$rl_appendchar"; then echo ..."Library readline does not have completion_append_char" fi + if test -z "$rl_genericbind"; then + echo ..."Library readline does not have rl_generic_bind" + fi if test -z "$rl_save_prompt"; then echo ..."Library readline does not have rl_save_prompt" if test -n "$_rl_save_prompt"; then @@ -1256,7 +1262,7 @@ for variable in\ runpath runpathprefix LDDYN LIBS DYNLIBS DYNFLAGS DYNRELOC\ ranlib gzip zcat emacs perl ln_s make_sh exe_suff\ readline readline_enabledp CPPF_defined rl_refresh_line_oldproto\ - rl_appendchar rl_save_prompt _rl_save_prompt rl_message\ + rl_appendchar rl_genericbind rl_save_prompt _rl_save_prompt rl_message\ rl_completion_matches rl_completion_func_t\ RLINCLUDE RLLIBS\ sizeof_long endian has_exp2\ --- ./config/paricfg.h.SH~ Fri Aug 31 13:35:56 2001 +++ ./config/paricfg.h.SH Fri Aug 31 13:37:41 2001 @@ -78,6 +78,9 @@ EOT if test -n "$rl_appendchar"; then echo '#define HAS_COMPLETION_APPEND_CHAR' >> $file fi + if test -n "$rl_genericbind"; then + echo '#define HAS_RL_GENERIC_BIND' >> $file + fi if test -n "$rl_refresh_line_oldproto"; then echo '#define OLD_RL_REFRESH_LINE' >> $file fi --- ./src/gp/gp_rl.c~~ Fri Aug 31 14:00:28 2001 +++ ./src/gp/gp_rl.c Fri Aug 31 14:01:33 2001 @@ -562,6 +562,8 @@ rl_short_help(int count, int key) FILE *save = pari_outfile; long flag = h_RL; + if (rl_last_func == rl_short_help) + count = -1; /* Repeated HELP into a long help */ while (off && is_keyword_char(rl_line_buffer[off-1])) off--; /* Check for \c type situation. Could check for leading whitespace too... */ @@ -641,6 +643,17 @@ init_readline() Bind('H', rl_long_help, emacs_meta_keymap); Bind('h', rl_short_help, vi_movement_keymap); Bind('H', rl_long_help, vi_movement_keymap); +# ifdef HAS_RL_GENERIC_BIND +#define KSbind1(s,f,k) \ + ((int (*) (int type, char *keyseq, char *data, Keymap map))rl_generic_bind)\ + (ISFUNC, (s), (char*)(f), (k)) +#define KSbind(s,f,k) rl_generic_bind(ISFUNC, (s), (char*)(f), (k)) + + KSbind("OP", rl_short_help, emacs_meta_keymap); /* f1, vt100 */ + KSbind("[11~", rl_short_help, emacs_meta_keymap); /* f1, xterm */ + KSbind("OP", rl_short_help, vi_movement_keymap); /* f1, vt100 */ + KSbind("[11~", rl_short_help, vi_movement_keymap); /* f1, xterm */ +# endif Bind('(', pari_rl_matched_insert, emacs_standard_keymap); Bind('[', pari_rl_matched_insert, emacs_standard_keymap); Bind(6, pari_rl_forward_sexp, emacs_meta_keymap); /* M-C-f */