diff options
Diffstat (limited to 'system/pdksh/patches/101_PLD-pdksh-EDITMODE.patch')
-rw-r--r-- | system/pdksh/patches/101_PLD-pdksh-EDITMODE.patch | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/system/pdksh/patches/101_PLD-pdksh-EDITMODE.patch b/system/pdksh/patches/101_PLD-pdksh-EDITMODE.patch new file mode 100644 index 000000000000..f40d572804f9 --- /dev/null +++ b/system/pdksh/patches/101_PLD-pdksh-EDITMODE.patch @@ -0,0 +1,92 @@ +add EDITMODE variable +(from PLD) + +Index: pdksh-5.2.14/ksh.Man +=================================================================== +--- pdksh-5.2.14.orig/ksh.Man 2009-09-16 23:24:45.000000000 +0200 ++++ pdksh-5.2.14/ksh.Man 2009-09-16 23:24:49.000000000 +0200 +@@ -791,13 +791,21 @@ + \fBselect\fP, \fBset \-o\fP and \fBkill \-l\fP commands + to format information in columns. + .\"}}} ++.\"{{{ EDITMODE ++.ksh( ++.IP \fBEDITMODE\fP ++If set, this parameter controls the command line editing mode for ++interactive shells. If the last component of the path specified in this ++parameter contains the string \fBvi\fP, \fBemacs\fP or \fBgmacs\fP, the ++vi, emacs or gmacs (Gosling emacs) editing mode is enabled, respectively. ++.\"}}} ++.ksh) + .\"{{{ EDITOR + .ksh( + .IP \fBEDITOR\fP + If the \fBVISUAL\fP parameter is not set, this parameter controls the + command line editing mode for interactive shells. +-See \fBVISUAL\fP parameter below for how this works. +-.ksh) ++See \fBEDITMODE\fP parameter above for how this works. + .\"}}} + .\"{{{ ENV + .IP \fBENV\fP +@@ -1044,7 +1052,7 @@ + .\"{{{ VISUAL + .ksh( + .IP \fBVISUAL\fP +-If set, this parameter controls the command line editing mode for ++If set, and \fBEDITMODE\fP is unset, this parameter controls the command line editing mode for + interactive shells. If the last component of the path specified in this + parameter contains the string \fBvi\fP, \fBemacs\fP or \fBgmacs\fP, the + vi, emacs or gmacs (Gosling emacs) editing mode is enabled, respectively. +Index: pdksh-5.2.14/table.h +=================================================================== +--- pdksh-5.2.14.orig/table.h 2009-09-16 23:24:45.000000000 +0200 ++++ pdksh-5.2.14/table.h 2009-09-16 23:24:49.000000000 +0200 +@@ -168,6 +168,7 @@ + #define V_TMOUT 15 + #define V_TMPDIR 16 + #define V_LINENO 17 ++#define V_EDITMODE 18 + + /* values for set_prompt() */ + #define PS1 0 /* command */ +Index: pdksh-5.2.14/var.c +=================================================================== +--- pdksh-5.2.14.orig/var.c 2009-09-16 23:24:45.000000000 +0200 ++++ pdksh-5.2.14/var.c 2009-09-16 23:24:49.000000000 +0200 +@@ -95,6 +95,7 @@ + #endif /* HISTORY */ + #ifdef EDIT + { "EDITOR", V_EDITOR }, ++ { "EDITMODE", V_EDITMODE }, + { "VISUAL", V_VISUAL }, + #endif /* EDIT */ + #ifdef KSH +@@ -111,7 +112,7 @@ + int i; + struct tbl *tp; + +- tinit(&specials, APERM, 32); /* must be 2^n (currently 17 specials) */ ++ tinit(&specials, APERM, 32); /* must be 2^n (currently 18 specials) */ + for (i = 0; names[i].name; i++) { + tp = tenter(&specials, names[i].name, hash(names[i].name)); + tp->flag = DEFINED|ISSET; +@@ -1017,11 +1018,15 @@ + #endif /* HISTORY */ + #ifdef EDIT + case V_VISUAL: +- set_editmode(str_val(vp)); ++ if (!(global("EDITMODE")->flag & ISSET)) ++ set_editmode(str_val(vp)); + break; + case V_EDITOR: +- if (!(global("VISUAL")->flag & ISSET)) +- set_editmode(str_val(vp)); ++ if (!(global("EDITMODE")->flag & ISSET)) ++ if(!(global("VISUAL")->flag & ISSET)) ++ set_editmode(str_val(vp)); ++ case V_EDITMODE: ++ set_editmode(str_val(vp)); + break; + case V_COLUMNS: + if ((x_cols = intval(vp)) <= MIN_COLS) |