about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--Etc/FAQ.yo5
-rw-r--r--Src/Zle/zle_main.c6
3 files changed, 16 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index c6a33a680..a0ad29355 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,12 @@
+2008-04-16  Peter Stephenson  <pws@csr.com>
+
+	* 24821(?): Etc/FAQ.yo, Src/Zle/zle_main.c: updated notes plus
+	fix cursor position with combining characters after extra
+	from a user-defined widget.
+
 2008-04-15  Peter Stephenson  <pws@csr.com>
 
-	* : Src/Zle/zle.h, Src/Zle/zle_misc.c, Src/Zle/zle_move.c,
+	* 24819: Src/Zle/zle.h, Src/Zle/zle_misc.c, Src/Zle/zle_move.c,
 	Src/Zle/zle_utils.c: need to fix up combining character aligment
 	in case of sneaky combination generation; fix transposing
 	characters.
diff --git a/Etc/FAQ.yo b/Etc/FAQ.yo
index 703bf02de..238afcd3c 100644
--- a/Etc/FAQ.yo
+++ b/Etc/FAQ.yo
@@ -2045,7 +2045,8 @@ sect(How does zsh handle multibyte input and output?)
   be displayed within the same screen area as the base character.  As not
   all terminals handle this, even if they correctly display the base
   multibyte character, this option is not on by default.  The KDE terminal
-  emulator tt(konsole) is known to handle combining characters.
+  emulator tt(konsole), tt(rxvt-unicode), and the Unicode version of
+  xterm, tt(uxterm), are known to handle combining characters.
 
   The tt(COMBINING_CHARS) option only affects output; combining characters
   may always be input, but when the option is off will be displayed
@@ -2157,7 +2158,7 @@ url(http://www.unicode.org/charts/)(http://www.unicode.org/charts/).
   however, using UTF-8 massively extends the number of valid characters
   that can be produced.
 
-  See also url(http://www.cl.cam.ac.uk/~mgk25/unicode.html#input)http://www.cl.cam.ac.uk/~mgk25/unicode.html#input)
+  See also url(http://www.cl.cam.ac.uk/~mgk25/unicode.html#input)(http://www.cl.cam.ac.uk/~mgk25/unicode.html#input)
   for general information on entering Unicode characters from a keyboard.
 
 
diff --git a/Src/Zle/zle_main.c b/Src/Zle/zle_main.c
index bb5b5156c..440f0cf8a 100644
--- a/Src/Zle/zle_main.c
+++ b/Src/Zle/zle_main.c
@@ -1344,6 +1344,12 @@ execzlefunc(Thingy func, char **args, int set_bindk)
     }
     if (set_bindk)
 	bindk = save_bindk;
+    /*
+     * Goodness knows where the user's left us; make sure
+     * it's not on a combining character that won't be displayed
+     * directly.
+     */
+    CCRIGHT();
     return ret;
 }