Ilya Zakharevich on Sun, 19 Apr 1998 23:44:46 +0200 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Last ReadLine deenhancement removed |
The following patch (diff -pu with 2.0.5) removes the last known deenhancement of ReadLine support from 1.37.* to 2.0.*. Currently, if you press F1, the current command line is repeated twice, once before the help, another time after the help. The patch fixes this behaviour. Apply with -p1 or -p0. Enjoy, Ilya --- ./src/gp/gp_rl.c~ Sat Feb 7 11:12:04 1998 +++ ./src/gp/gp_rl.c Sun Apr 19 14:57:08 1998 @@ -288,15 +379,23 @@ pari_completion (char *text, int start, static int rl_short_help(int count, int key) { - int p=rl_point, off=p; + int p=rl_point, off=p, e = rl_end, l = strlen(rl_prompt); FILE *save = outfile; long flag = h_RL; while (off && is_keyword_char(rl_line_buffer[off-1])) off--; - rl_point = 0; outfile = rl_outstream; + rl_point = 0; rl_end = 0; outfile = rl_outstream; if (count < 0) flag |= h_LONG; /* long help */ + ((void(*)(const char*))rl_message)(""); + /* Erase prompt. */ + pariputs("\r"); + while (l--) + pariputs(" "); + pariputs("\r"); + aide(rl_line_buffer + off, flag); - rl_point = p; outfile = save; + rl_point = p; rl_end = e; outfile = save; + rl_clear_message(); rl_refresh_line(); return 0; } --- ./src/gp/gp.c~ Sat Feb 7 11:12:04 1998 +++ ./src/gp/gp.c Sun Apr 19 14:57:36 1998 @@ -1832,7 +1832,7 @@ aide0(char *s, int flag) if (flag & h_RL) return; err(talker,"unknown identifier"); } - if (flag & h_RL) pariputc('\n'); +/* if (flag & h_RL) pariputc('\n'); */ /* Now the caller clears the line. */ ep1 = ep; ep = do_alias(ep); if (ep1 != ep) { pariputs(s); pariputs(" is aliased to:\n\n"); }