summaryrefslogtreecommitdiffstats
path: root/source/ap/ksh93/patches/ksh-20120801-tabfix.patch
diff options
context:
space:
mode:
Diffstat (limited to 'source/ap/ksh93/patches/ksh-20120801-tabfix.patch')
-rw-r--r--source/ap/ksh93/patches/ksh-20120801-tabfix.patch18
1 files changed, 18 insertions, 0 deletions
diff --git a/source/ap/ksh93/patches/ksh-20120801-tabfix.patch b/source/ap/ksh93/patches/ksh-20120801-tabfix.patch
new file mode 100644
index 000000000..962763ed6
--- /dev/null
+++ b/source/ap/ksh93/patches/ksh-20120801-tabfix.patch
@@ -0,0 +1,18 @@
+diff -up ksh-20120801/src/cmd/ksh93/edit/emacs.c.tabfix ksh-20120801/src/cmd/ksh93/edit/emacs.c
+--- ksh-20120801/src/cmd/ksh93/edit/emacs.c.tabfix 2012-07-17 22:44:44.000000000 +0200
++++ ksh-20120801/src/cmd/ksh93/edit/emacs.c 2013-03-07 15:58:59.902161711 +0100
+@@ -1011,10 +1011,13 @@ static int escape(register Emacs_t* ep,r
+ ep->ed->e_tabcount=0;
+ else
+ {
++ int oldi = i;
+ i=ed_getchar(ep->ed,0);
+ ed_ungetchar(ep->ed,i);
+- if(isdigit(i))
++ if(isdigit(i) && oldi=='=')
+ ed_ungetchar(ep->ed,ESC);
++ else if (isdigit(i) || i=='\t')
++ ep->ed->e_tabcount=0;
+ }
+ }
+ else