about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--Src/params.c2
-rw-r--r--Src/subst.c2
-rw-r--r--Src/system.h4
4 files changed, 10 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 89f75dbe4..6f80c61a7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2001-04-28  Bart Schaefer  <schaefer@zsh.org>
+
+	* 14151: Src/params.c, Src/subst.c, Src/system.h: BDIGBUFSIZE is
+	the space needed to print a number converted to binary.
+
 2001-04-27  Sven Wischnowsky  <wischnow@zsh.org>
 
 	* 14133: Completion/Base/Completer/_expand,
diff --git a/Src/params.c b/Src/params.c
index 192ca74ad..d655c3411 100644
--- a/Src/params.c
+++ b/Src/params.c
@@ -1651,7 +1651,7 @@ setstrvalue(Value v, char *val)
 void
 setnumvalue(Value v, mnumber val)
 {
-    char buf[DIGBUFSIZE], *p;
+    char buf[BDIGBUFSIZE], *p;
 
     if (v->pm->flags & PM_READONLY) {
 	zerr("read-only variable: %s", v->pm->nam, 0);
diff --git a/Src/subst.c b/Src/subst.c
index 2113123ef..492778400 100644
--- a/Src/subst.c
+++ b/Src/subst.c
@@ -1994,7 +1994,7 @@ static char *
 arithsubst(char *a, char **bptr, char *rest)
 {
     char *s = *bptr, *t;
-    char buf[DIGBUFSIZE], *b = buf;
+    char buf[BDIGBUFSIZE], *b = buf;
     mnumber v;
 
     singsub(&a);
diff --git a/Src/system.h b/Src/system.h
index 1540e421f..42a5f1197 100644
--- a/Src/system.h
+++ b/Src/system.h
@@ -406,8 +406,10 @@ struct timezone {
 /* DIGBUFSIZ is the length of a buffer which can hold the -LONG_MAX-1 *
  * (or with ZSH_64_BIT_TYPE maybe -LONG_LONG_MAX-1)                   *
  * converted to printable decimal form including the sign and the     *
- * terminating null character. Below 0.30103 > lg 2.                  */
+ * terminating null character. Below 0.30103 > lg 2.                  *
+ * BDIGBUFSIZE is for a number converted to printable binary form.    */
 #define DIGBUFSIZE ((int)(((sizeof(zlong) * 8) - 1) * 0.30103) + 3)
+#define BDIGBUFSIZE ((int)((sizeof(zlong) * 8) + 4))
 
 /* If your stat macros are broken, we will *
  * just undefine them.                     */