No objection here

On Thu, 19 Mar 2015 19:58 Martin Natano <[email protected]> wrote:

> Hello,
>
> does anyone actually use the 'version' keybinding in emacs or vi mode?
> I would like to remove it. The command isn't bound to a key per default
> and the functionality (and implementation) seems rather odd. The
> keybinding is strictly for interactive use, so I don't expect the
> removal to break any scripts. The KSH_VERSION environment variable is
> still available for interactive and non-interactive use.
>
> See the natano_ksh_noversion branch, or the diff below.
>
> ok?
>
> cheers,
> natano
>
>
> commit 184795a06cee14761ed8ef0d866c5b477b6a9d9f
> Author: Martin Natano <[email protected]>
> Date:   Thu Mar 19 20:39:49 2015 +0100
>
>     Remove version command from emacs and vi mode.
>
> diff --git a/bin/ksh/emacs.c b/bin/ksh/emacs.c
> index 4f83dbe..8dd7c21 100644
> --- a/bin/ksh/emacs.c
> +++ b/bin/ksh/emacs.c
> @@ -176,7 +176,6 @@ static int  x_set_mark(int);
>  static int     x_stuff(int);
>  static int     x_stuffreset(int);
>  static int     x_transpose(int);
> -static int     x_version(int);
>  static int     x_xchg_point_mark(int);
>  static int     x_yank(int);
>  static int     x_comp_list(int);
> @@ -235,7 +234,6 @@ static const struct x_ftab x_ftab[] = {
>         { x_stuff,              "stuff",                        0 },
>         { x_stuffreset,         "stuff-reset",                  0 },
>         { x_transpose,          "transpose-chars",              0 },
> -       { x_version,            "version",                      0 },
>         { x_xchg_point_mark,    "exchange-point-and-mark",      0 },
>         { x_yank,               "yank",                         0 },
>         { x_comp_list,          "complete-list",                0 },
> @@ -1576,33 +1574,6 @@ x_xchg_point_mark(int c)
>  }
>
>  static int
> -x_version(int c)
> -{
> -       char *o_xbuf = xbuf, *o_xend = xend;
> -       char *o_xep = xep, *o_xcp = xcp;
> -
> -       xbuf = xcp = (char *) ksh_version + 4;
> -       xend = xep = (char *) ksh_version + 4 + strlen(ksh_version + 4);
> -       x_redraw(1);
> -       x_flush();
> -
> -       c = x_e_getc(0);
> -       xbuf = o_xbuf;
> -       xend = o_xend;
> -       xep = o_xep;
> -       xcp = o_xcp;
> -       x_redraw(1);
> -
> -       if (c < 0)
> -               return KSTD;
> -       /* This is what at&t ksh seems to do...  Very bizarre */
> -       if (c != ' ')
> -               x_e_ungetc(c);
> -
> -       return KSTD;
> -}
> -
> -static int
>  x_noop(int c)
>  {
>         return KSTD;
> diff --git a/bin/ksh/vi.c b/bin/ksh/vi.c
> index c325d85..6a37a4e 100644
> --- a/bin/ksh/vi.c
> +++ b/bin/ksh/vi.c
> @@ -138,7 +138,6 @@ const unsigned char classify[128] = {
>  #define VREDO          7               /* . */
>  #define VLIT           8               /* ^V */
>  #define VSEARCH                9               /* /, ? */
> -#define VVERSION       10              /* <ESC> ^V */
>
>  static char            undocbuf[CMDLEN];
>
> @@ -221,7 +220,7 @@ x_vi(char *buf, size_t len)
>                                 trapsig(c == edchars.intr ? SIGINT :
> SIGQUIT);
>                                 x_mode(false);
>                                 unwind(LSHELL);
> -                       } else if (c == edchars.eof && state != VVERSION) {
> +                       } else if (c == edchars.eof) {
>                                 if (es->linelen == 0) {
>                                         x_vi_zotc(edchars.eof);
>                                         c = -1;
> @@ -322,14 +321,6 @@ vi_hook(int ch)
>                                                 return -1;
>                                         refresh(0);
>                                 }
> -                               if (state == VVERSION) {
> -                                       save_cbuf();
> -                                       es->cursor = 0;
> -                                       es->linelen = 0;
> -                                       putbuf(ksh_version + 4,
> -                                           strlen(ksh_version + 4), 0);
> -                                       refresh(0);
> -                               }
>                         }
>                 }
>                 break;
> @@ -344,12 +335,6 @@ vi_hook(int ch)
>                 state = VNORMAL;
>                 break;
>
> -       case VVERSION:
> -               restore_cbuf();
> -               state = VNORMAL;
> -               refresh(0);
> -               break;
> -
>         case VARG1:
>                 if (isdigit(ch))
>                         argc1 = argc1 * 10 + ch - '0';
> @@ -571,8 +556,6 @@ nextstate(int ch)
>                 return VXCH;
>         else if (ch == '.')
>                 return VREDO;
> -       else if (ch == Ctrl('v'))
> -               return VVERSION;
>         else if (is_cmd(ch))
>                 return VCMD;
>         else
>
>

Reply via email to