summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--Src/zsh.h5
-rw-r--r--Test/B03print.ztst4
3 files changed, 12 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 600ef77da..1ae2b45c6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2007-01-04 Peter Stephenson <pws@csr.com>
+
+ * 20386: Src/zsh.h, Test/B03print.ztst: printf should handle
+ octal escapes in the '\0NNN' form.
+
2007-01-02 Clint Adams <clint@zsh.org>
* 22817: Frank Terbeck: Completion/Debian/Command/_aptitude:
diff --git a/Src/zsh.h b/Src/zsh.h
index 89482e514..48f50e6a1 100644
--- a/Src/zsh.h
+++ b/Src/zsh.h
@@ -1955,7 +1955,8 @@ enum {
enum {
/*
* Handle octal where the first digit is non-zero e.g. \3, \33, \333
- * \0333 etc. is always handled.
+ * Otherwise \0333 etc. is handled, i.e. one of \0123 or \123 will
+ * work, but not both.
*/
GETKEY_OCTAL_ESC = (1 << 0),
/*
@@ -1990,7 +1991,7 @@ enum {
/* echo builtin */
#define GETKEYS_ECHO (GETKEY_BACKSLASH_C)
/* printf format string */
-#define GETKEYS_PRINTF (GETKEY_OCTAL_ESC|GETKEY_BACKSLASH_C)
+#define GETKEYS_PRINTF (GETKEY_BACKSLASH_C)
/* Full print without -e */
#define GETKEYS_PRINT (GETKEY_OCTAL_ESC|GETKEY_BACKSLASH_C|GETKEY_EMACS)
/* bindkey */
diff --git a/Test/B03print.ztst b/Test/B03print.ztst
index d6dea5a3d..e36e55caa 100644
--- a/Test/B03print.ztst
+++ b/Test/B03print.ztst
@@ -259,3 +259,7 @@
printf $'%\0'
1:explicit null after % in format specifier
?(eval):printf:1: %: invalid directive
+
+ printf '%b\n' '\0123'
+0:printf handles \0... octal escapes in replacement text
+>S