about summary refs log tree commit diff
diff options
context:
space:
mode:
authorClint Adams <clint@users.sourceforge.net>2000-05-15 18:48:21 +0000
committerClint Adams <clint@users.sourceforge.net>2000-05-15 18:48:21 +0000
commit195f1c4015b7219e81e7c376f06c9276106dcc84 (patch)
tree6cfc638eb3e08f2c55dfd1509c17d988b4ffa6fe
parent18b193f241c6d4257a249b174283ba3148710349 (diff)
downloadzsh-195f1c4015b7219e81e7c376f06c9276106dcc84.tar.gz
zsh-195f1c4015b7219e81e7c376f06c9276106dcc84.tar.xz
zsh-195f1c4015b7219e81e7c376f06c9276106dcc84.zip
11387: OCTAL_ZEROES option
-rw-r--r--ChangeLog5
-rw-r--r--Doc/Zsh/options.yo6
-rw-r--r--Src/math.c3
-rw-r--r--Src/options.c1
-rw-r--r--Src/zsh.h1
5 files changed, 15 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 989e9f692..f87ba8e0c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,9 @@
 2000-05-15  Clint Adams  <schizo@debian.org>
+
+	* 11387: Doc/Zsh/options.yo, Src/math.c, Src/options.c,
+	Src/zsh.h: new option OCTAL_ZEROES to enable parsing
+	in 11385, on by default in 'sh' emulation.
+
 	* 11385: Src/math.c: interpret integer constants beginning
 	with '0' as octal to conform to IEEE Std 1003.2-1992
 	(ISO 9945-2:1993).
diff --git a/Doc/Zsh/options.yo b/Doc/Zsh/options.yo
index b87eb788b..671ce1337 100644
--- a/Doc/Zsh/options.yo
+++ b/Doc/Zsh/options.yo
@@ -777,6 +777,12 @@ item(tt(NUMERIC_GLOB_SORT))(
 If numeric filenames are matched by a filename generation pattern,
 sort the filenames numerically rather than lexicographically.
 )
+pindex(OCTAL_ZEROES)
+cindex(octal, arithmetic expressions)
+item(tt(OCTAL_ZEROES) <S>)(
+Interpret any integer constant beginning with a 0 and not
+as octal, per IEEE Std 1003.2-1992 (ISO 9945-2:1993).
+)
 pindex(OVERSTRIKE)
 cindex(editor, overstrike mode)
 cindex(overstrike mode, of editor)
diff --git a/Src/math.c b/Src/math.c
index 75f0106bb..a7fcd0978 100644
--- a/Src/math.c
+++ b/Src/math.c
@@ -357,7 +357,8 @@ zzlex(void)
 		yyval.u.l = zstrtol(++ptr, &ptr, lastbase = 16);
 		return NUM;
 	    }
-	    else if (idigit(*ptr) && (memchr(ptr, '.', strlen(ptr)) == NULL)) {
+	    else if (isset(OCTALZEROES) &&
+		    (memchr(ptr, '.', strlen(ptr)) == NULL)) {
 	        yyval.u.l = zstrtol(ptr, &ptr, lastbase = 8);
 	        return NUM;
 	    }
diff --git a/Src/options.c b/Src/options.c
index 9125a2380..ea3bf13de 100644
--- a/Src/options.c
+++ b/Src/options.c
@@ -162,6 +162,7 @@ static struct optname optns[] = {
 {NULL, "notify",	      OPT_ZSH,			 NOTIFY},
 {NULL, "nullglob",	      OPT_EMULATE,		 NULLGLOB},
 {NULL, "numericglobsort",     OPT_EMULATE,		 NUMERICGLOBSORT},
+{NULL, "octalzeroes",         OPT_EMULATE|OPT_SH,	 OCTALZEROES},
 {NULL, "overstrike",	      0,			 OVERSTRIKE},
 {NULL, "pathdirs",	      OPT_EMULATE,		 PATHDIRS},
 {NULL, "posixbuiltins",	      OPT_EMULATE|OPT_BOURNE,	 POSIXBUILTINS},
diff --git a/Src/zsh.h b/Src/zsh.h
index dec00c9e7..34cde8b54 100644
--- a/Src/zsh.h
+++ b/Src/zsh.h
@@ -1395,6 +1395,7 @@ enum {
     NOTIFY,
     NULLGLOB,
     NUMERICGLOBSORT,
+    OCTALZEROES,
     OVERSTRIKE,
     PATHDIRS,
     POSIXBUILTINS,