diff --git a/hex.c b/hex.c index d405ac5..7a0c54c 100644 --- a/hex.c +++ b/hex.c @@ -153,11 +153,8 @@ static int binary_mode_init(EditState *s, ModeSavedData *saved_data) QEFont *font; QEStyleDef style; int num_width; - int ret; - ret = text_mode_init(s, saved_data); - if (ret) - return ret; + text_mode_init(s, saved_data); /* get typical number width */ get_style(s, &style, s->default_style); @@ -178,11 +175,7 @@ static int binary_mode_init(EditState *s, ModeSavedData *saved_data) static int hex_mode_init(EditState *s, ModeSavedData *saved_data) { - int ret; - - ret = text_mode_init(s, saved_data); - if (ret) - return ret; + text_mode_init(s, saved_data); s->disp_width = 16; s->hex_mode = 1; diff --git a/html.c b/html.c index b753919..50c3ca1 100644 --- a/html.c +++ b/html.c @@ -786,6 +786,8 @@ int gxml_mode_init(EditState *s, { HTMLState *hs = s->mode_data; + /* XXX: should register callbacks for s->offset and s->top_offset? */ + if (!saved_data) { memset(s, 0, SAVED_DATA_SIZE); s->insert = 1; diff --git a/list.c b/list.c index 4258510..968be87 100644 --- a/list.c +++ b/list.c @@ -81,22 +81,19 @@ void list_toggle_selection(EditState *s) static int list_mode_init(EditState *s, __unused__ ModeSavedData *saved_data) { + text_mode_init(s, saved_data); + s->wrap = WRAP_TRUNCATE; s->get_colorized_line = list_get_colorized_line; return 0; } -static void list_mode_close(__unused__ EditState *s) -{ -} - static int list_init(void) { memcpy(&list_mode, &text_mode, sizeof(ModeDef)); list_mode.name = "list"; list_mode.mode_probe = NULL; list_mode.mode_init = list_mode_init; - list_mode.mode_close = list_mode_close; list_mode.mode_flags = MODEF_NOCMD; qe_register_mode(&list_mode); diff --git a/mpeg.c b/mpeg.c index abc25cd..ed99a6f 100644 --- a/mpeg.c +++ b/mpeg.c @@ -140,14 +140,12 @@ static int mpeg_backward_offset(EditState *s, int offset) static int mpeg_mode_init(EditState *s, ModeSavedData *saved_data) { - int ret; - ret = text_mode_init(s, saved_data); - if (ret) - return ret; + text_mode_init(s, saved_data); s->hex_mode = 1; s->hex_nibble = 0; s->wrap = WRAP_TRUNCATE; + return 0; } @@ -167,7 +165,6 @@ static ModeDef mpeg_mode = { .name = "mpeg", .mode_probe = mpeg_mode_probe, .mode_init = mpeg_mode_init, - .mode_close = NULL, .text_display = mpeg_display, .text_backward_offset = mpeg_backward_offset, .write_char = hex_write_char, diff --git a/shell.c b/shell.c index f587514..36927ff 100644 --- a/shell.c +++ b/shell.c @@ -1654,16 +1654,19 @@ static void shell_write_char(EditState *e, int c) } else { /* Should dispatch as in fundamental mode */ switch (c) { - case 4: + case KEY_CTRL('d'): do_delete_char(e, NO_ARG); break; // Do not do this: it is useless and causes infinite recursion //case 9: // do_tab(e, 1); // break; - case 11: + case KEY_CTRL('k'): do_kill_line(e, 1); break; + case KEY_CTRL('y'): + do_yank(e); + break; case KEY_BS: case KEY_DEL: do_backspace(e, NO_ARG); @@ -1895,9 +1898,9 @@ static CmdDef shell_global_commands[] = { static int shell_mode_init(EditState *s, __unused__ ModeSavedData *saved_data) { + text_mode_init(s, saved_data); s->tab_size = 8; s->wrap = WRAP_TRUNCATE; - set_colorize_func(s, NULL); s->get_colorized_line = shell_get_colorized_line; s->interactive = 1; return 0; @@ -1905,9 +1908,9 @@ static int shell_mode_init(EditState *s, __unused__ ModeSavedData *saved_data) static int pager_mode_init(EditState *s, __unused__ ModeSavedData *saved_data) { + text_mode_init(s, saved_data); s->tab_size = 8; s->wrap = WRAP_TRUNCATE; - set_colorize_func(s, NULL); s->get_colorized_line = shell_get_colorized_line; return 0; } diff --git a/unihex.c b/unihex.c index c4b0905..6547047 100644 --- a/unihex.c +++ b/unihex.c @@ -23,11 +23,9 @@ static int unihex_mode_init(EditState *s, ModeSavedData *saved_data) { - int ret, c, maxc, offset, max_offset; + int c, maxc, offset, max_offset; - ret = text_mode_init(s, saved_data); - if (ret) - return ret; + text_mode_init(s, saved_data); /* Compute max width of character in hex dump (limit to first 64K) */ maxc = 0xFF;