On Sun, Nov 26, 2017 at 08:18:04PM +0100, Anton Lindqvist wrote:
> While at it, another gem: in Vi normal mode typing ^V inserts the
> version string. Does not seem to be documented either.

Yes, can we please zap it? It's utterly annoying, as I regularly trigger
it when I want to edit the command line in $EDITOR.

There are still the documented KSH_VERSION variable and the \v and \V
escapes for PS1 that make use of the ksh_version string.

Index: vi.c
===================================================================
RCS file: /var/cvs/src/bin/ksh/vi.c,v
retrieving revision 1.49
diff -u -p -r1.49 vi.c
--- vi.c        2 Sep 2017 18:53:53 -0000       1.49
+++ vi.c        26 Nov 2017 20:29:03 -0000
@@ -140,7 +140,6 @@ const unsigned char classify[128] = {
 #define VREDO          7               /* . */
 #define VLIT           8               /* ^V */
 #define VSEARCH                9               /* /, ? */
-#define VVERSION       10              /* <ESC> ^V */
 
 static char            undocbuf[LINE];
 
@@ -223,7 +222,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;
@@ -301,14 +300,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;
@@ -323,12 +314,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';
@@ -554,8 +539,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