From f6ecbb7f4d74099a0d4b342996696159344f4235 Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Thu, 10 Aug 2000 16:19:11 +0000 Subject: 12581: C_BASES option --- ChangeLog | 6 ++++++ Doc/Zsh/options.yo | 13 +++++++++++++ Src/options.c | 1 + Src/params.c | 7 ++++++- Src/zsh.h | 1 + 5 files changed, 27 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index de4ae298f..8b23f0d6a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2000-08-10 Peter Stephenson + + * 12581: Doc/Zsh/options.yo, Src/options.c, Src/params.c, + Src/zsh.h: Add C_BASES option to output hexadecimal as 0xFF + instead of 16#FF, and similarly for octal if OCTAL_ZEROES is set. + 2000-08-09 Oliver Kiddle * 12578: Completion/Builtins/_read, Completion/Builtins/_vars, diff --git a/Doc/Zsh/options.yo b/Doc/Zsh/options.yo index 7e0bba825..bc58b7084 100644 --- a/Doc/Zsh/options.yo +++ b/Doc/Zsh/options.yo @@ -206,6 +206,19 @@ Make the tt(echo) builtin compatible with the BSD manref(echo)(1) command. This disables backslashed escape sequences in echo strings unless the tt(-e) option is specified. ) +pindex(C_BASES) +cindex(bases, output in C format) +cindex(hexadecimal, output in C format) +cindex(octal, output in C format) +item(tt(C_BASES))( +Output hexadecimal numbers in the standard C format, for example `tt(0xFF)' +instead of the usual `tt(16#FF)'. If the option tt(OCTAL_ZEROES) is also +set (it is not by default), octal numbers will be treated similarly and +hence appear as `tt(077)' instead of `tt(8#77)'. This option has no effect +on the choice of the output base, nor on the output of bases other than +hexadecimal and octal. Note that these formats will be understood on input +irrespective of the setting of tt(C_BASES). +) pindex(CDABLE_VARS) cindex(cd, to parameter) item(tt(CDABLE_VARS) (tt(-T)))( diff --git a/Src/options.c b/Src/options.c index 0bbe6b844..8660ade68 100644 --- a/Src/options.c +++ b/Src/options.c @@ -90,6 +90,7 @@ static struct optname optns[] = { {NULL, "bgnice", OPT_EMULATE|OPT_NONBOURNE, BGNICE}, {NULL, "braceccl", OPT_EMULATE, BRACECCL}, {NULL, "bsdecho", OPT_EMULATE|OPT_SH, BSDECHO}, +{NULL, "cbases", 0, CBASES}, {NULL, "cdablevars", OPT_EMULATE, CDABLEVARS}, {NULL, "chasedots", OPT_EMULATE, CHASEDOTS}, {NULL, "chaselinks", OPT_EMULATE, CHASELINKS}, diff --git a/Src/params.c b/Src/params.c index 9ef3e61ca..1439e9af8 100644 --- a/Src/params.c +++ b/Src/params.c @@ -3045,7 +3045,12 @@ convbase(char *s, zlong v, int base) base = 10; if (base != 10) { - sprintf(s, "%d#", base); + if (isset(CBASES) && base == 16) + sprintf(s, "0x"); + else if (isset(CBASES) && base == 8 && isset(OCTALZEROES)) + sprintf(s, "0"); + else + sprintf(s, "%d#", base); s += strlen(s); } for (x = v; x; digs++) diff --git a/Src/zsh.h b/Src/zsh.h index bf59641b5..cdb90e264 100644 --- a/Src/zsh.h +++ b/Src/zsh.h @@ -1326,6 +1326,7 @@ enum { BGNICE, BRACECCL, BSDECHO, + CBASES, CDABLEVARS, CHASEDOTS, CHASELINKS, -- cgit 1.4.1