In kb_add(), the args parameter is always NULL. Noticed by anton@
- todd
Index: bin/ksh/emacs.c
===
RCS file: /cvs/src/bin/ksh/emacs.c,v
retrieving revision 1.81
diff -u -p -u -r1.81 emacs.c
--- bin/ksh/emacs.c 7 Jan 2018 19:18:56 - 1.81
+++ bin/ksh/emacs.c 7 Jan 2018 19:24:35 -
@@ -1325,14 +1325,14 @@ kb_add_string(void *func, void *args, ch
}
static struct kb_entry *
-kb_add(void *func, void *args, ...)
+kb_add(void *func, ...)
{
va_list ap;
unsigned char ch;
unsigned inti;
charline[LINE + 1];
- va_start(ap, args);
+ va_start(ap, func);
for (i = 0; i < sizeof(line) - 1; i++) {
ch = va_arg(ap, unsigned int);
if (ch == 0)
@@ -1342,7 +1342,7 @@ kb_add(void *func, void *args, ...)
va_end(ap);
line[i] = '\0';
- return (kb_add_string(func, args, line));
+ return (kb_add_string(func, NULL, line));
}
static void
@@ -1453,109 +1453,109 @@ x_init_emacs(void)
TAILQ_INIT();
/* man page order */
- kb_add(x_abort, NULL, CTRL('G'), 0);
- kb_add(x_mv_back, NULL, CTRL('B'), 0);
- kb_add(x_mv_back, NULL, CTRL('X'), CTRL('D'), 0);
- kb_add(x_mv_bword, NULL, CTRL('['), 'b', 0);
- kb_add(x_beg_hist, NULL, CTRL('['), '<', 0);
- kb_add(x_mv_begin, NULL, CTRL('A'), 0);
- kb_add(x_fold_capitalize, NULL, CTRL('['), 'C', 0);
- kb_add(x_fold_capitalize, NULL, CTRL('['), 'c', 0);
- kb_add(x_comment, NULL, CTRL('['), '#', 0);
- kb_add(x_complete, NULL, CTRL('['), CTRL('['), 0);
- kb_add(x_comp_comm, NULL, CTRL('X'), CTRL('['), 0);
- kb_add(x_comp_file, NULL, CTRL('['), CTRL('X'), 0);
- kb_add(x_comp_list, NULL, CTRL('I'), 0);
- kb_add(x_comp_list, NULL, CTRL('['), '=', 0);
- kb_add(x_del_back, NULL, CTRL('?'), 0);
- kb_add(x_del_back, NULL, CTRL('H'), 0);
- kb_add(x_del_char, NULL, CTRL('['), '[', '3', '~', 0); /*
delete */
- kb_add(x_del_bword, NULL, CTRL('W'), 0);
- kb_add(x_del_bword, NULL, CTRL('['), CTRL('?'), 0);
- kb_add(x_del_bword, NULL, CTRL('['), CTRL('H'), 0);
- kb_add(x_del_bword, NULL, CTRL('['), 'h', 0);
- kb_add(x_del_fword, NULL, CTRL('['), 'd', 0);
- kb_add(x_next_com, NULL, CTRL('N'), 0);
- kb_add(x_next_com, NULL, CTRL('X'), 'B', 0);
- kb_add(x_fold_lower,NULL, CTRL('['), 'L', 0);
- kb_add(x_fold_lower,NULL, CTRL('['), 'l', 0);
- kb_add(x_end_hist, NULL, CTRL('['), '>', 0);
- kb_add(x_mv_end,NULL, CTRL('E'), 0);
+ kb_add(x_abort, CTRL('G'), 0);
+ kb_add(x_mv_back, CTRL('B'), 0);
+ kb_add(x_mv_back, CTRL('X'), CTRL('D'), 0);
+ kb_add(x_mv_bword, CTRL('['), 'b', 0);
+ kb_add(x_beg_hist, CTRL('['), '<', 0);
+ kb_add(x_mv_begin, CTRL('A'), 0);
+ kb_add(x_fold_capitalize, CTRL('['), 'C', 0);
+ kb_add(x_fold_capitalize, CTRL('['), 'c', 0);
+ kb_add(x_comment, CTRL('['), '#', 0);
+ kb_add(x_complete, CTRL('['), CTRL('['), 0);
+ kb_add(x_comp_comm, CTRL('X'), CTRL('['), 0);
+ kb_add(x_comp_file, CTRL('['), CTRL('X'), 0);
+ kb_add(x_comp_list, CTRL('I'), 0);
+ kb_add(x_comp_list, CTRL('['), '=', 0);
+ kb_add(x_del_back, CTRL('?'), 0);
+ kb_add(x_del_back, CTRL('H'), 0);
+ kb_add(x_del_char, CTRL('['), '[', '3', '~', 0); /* delete
*/
+ kb_add(x_del_bword, CTRL('W'), 0);
+ kb_add(x_del_bword, CTRL('['), CTRL('?'), 0);
+ kb_add(x_del_bword, CTRL('['), CTRL('H'), 0);
+ kb_add(x_del_bword, CTRL('['), 'h', 0);
+ kb_add(x_del_fword, CTRL('['), 'd', 0);
+ kb_add(x_next_com, CTRL('N'), 0);
+ kb_add(x_next_com, CTRL('X'), 'B', 0);
+ kb_add(x_fold_lower,CTRL('['), 'L', 0);
+ kb_add(x_fold_lower,CTRL('['), 'l', 0);
+ kb_add(x_end_hist, CTRL('['), '>', 0);
+ kb_add(x_mv_end,CTRL('E'), 0);
/* how to handle: eot: ^_, underneath copied from original keybindings
*/
- kb_add(x_end_of_text, NULL, CTRL('_'), 0);
- kb_add(x_eot_del, NULL, CTRL('D'), 0);
+ kb_add(x_end_of_text,