about summary refs log tree commit diff
path: root/Src
diff options
context:
space:
mode:
authorPeter Stephenson <pws@users.sourceforge.net>2007-01-04 17:24:01 +0000
committerPeter Stephenson <pws@users.sourceforge.net>2007-01-04 17:24:01 +0000
commit46a163bd348f462e11cf4bc326b17735a93b9980 (patch)
tree8b2c845f14c2cd7afaac49351113ed33a01a5303 /Src
parentcfbcd2dbe0ddcb18d8011e20058d1081d33f697a (diff)
downloadzsh-46a163bd348f462e11cf4bc326b17735a93b9980.tar.gz
zsh-46a163bd348f462e11cf4bc326b17735a93b9980.tar.xz
zsh-46a163bd348f462e11cf4bc326b17735a93b9980.zip
23088: printf formats and arguments need different octal escape sequences
Diffstat (limited to 'Src')
-rw-r--r--Src/builtin.c4
-rw-r--r--Src/zsh.h6
2 files changed, 6 insertions, 4 deletions
diff --git a/Src/builtin.c b/Src/builtin.c
index d756b28bb..8e579d24e 100644
--- a/Src/builtin.c
+++ b/Src/builtin.c
@@ -3490,7 +3490,7 @@ bin_print(char *name, char **args, Options ops, int func)
 	fmt = OPT_ARG(ops,'f');
     if (fmt)
 	fmt = getkeystring(fmt, &flen, OPT_ISSET(ops,'b') ? GETKEYS_BINDKEY :
-			   GETKEYS_PRINTF, &fmttrunc);
+			   GETKEYS_PRINTF_FMT, &fmttrunc);
 
     first = args;
     
@@ -3954,7 +3954,7 @@ bin_print(char *name, char **args, Options ops, int func)
 			b = getkeystring(metafy(curarg, curlen, META_USEHEAP),
 					 &l,
 					 OPT_ISSET(ops,'b') ? GETKEYS_BINDKEY :
-					 GETKEYS_PRINTF, &nnl);
+					 GETKEYS_PRINTF_ARG, &nnl);
 		    } else {
 			b = curarg;
 			l = curlen;
diff --git a/Src/zsh.h b/Src/zsh.h
index 48f50e6a1..752587c57 100644
--- a/Src/zsh.h
+++ b/Src/zsh.h
@@ -1990,8 +1990,10 @@ enum {
  */
 /* echo builtin */
 #define GETKEYS_ECHO	(GETKEY_BACKSLASH_C)
-/* printf format string */
-#define GETKEYS_PRINTF	(GETKEY_BACKSLASH_C)
+/* printf format string:  \123 -> S, \0123 -> NL 3 */
+#define GETKEYS_PRINTF_FMT	(GETKEY_OCTAL_ESC|GETKEY_BACKSLASH_C)
+/* printf argument:  \123 -> \123, \0123 -> S */
+#define GETKEYS_PRINTF_ARG	(GETKEY_BACKSLASH_C)
 /* Full print without -e */
 #define GETKEYS_PRINT	(GETKEY_OCTAL_ESC|GETKEY_BACKSLASH_C|GETKEY_EMACS)
 /* bindkey */