From 195f1c4015b7219e81e7c376f06c9276106dcc84 Mon Sep 17 00:00:00 2001 From: Clint Adams Date: Mon, 15 May 2000 18:48:21 +0000 Subject: 11387: OCTAL_ZEROES option --- ChangeLog | 5 +++++ Doc/Zsh/options.yo | 6 ++++++ Src/math.c | 3 ++- Src/options.c | 1 + Src/zsh.h | 1 + 5 files changed, 15 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 989e9f692..f87ba8e0c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,9 @@ 2000-05-15 Clint Adams + + * 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) )( +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, -- cgit 1.4.1