Hello community,

here is the log from the commit of package calc for openSUSE:Factory checked in 
at 2018-10-11 11:55:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/calc (Old)
 and      /work/SRC/openSUSE:Factory/.calc.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "calc"

Thu Oct 11 11:55:18 2018 rev:16 rq:640828 version:2.12.6.8

Changes:
--------
--- /work/SRC/openSUSE:Factory/calc/calc.changes        2018-04-11 
13:56:44.990172716 +0200
+++ /work/SRC/openSUSE:Factory/.calc.new/calc.changes   2018-10-11 
11:55:44.238001767 +0200
@@ -1,0 +2,6 @@
+Tue Oct  2 06:53:27 UTC 2018 - d...@opensuse.org
+
+- update to 2.12.6.8
+   + various fixes and improvements
+
+-------------------------------------------------------------------

Old:
----
  calc-2.12.6.7.tar.bz2

New:
----
  calc-2.12.6.8.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ calc.spec ++++++
--- /var/tmp/diff_new_pack.tqKcwA/_old  2018-10-11 11:55:45.006000790 +0200
+++ /var/tmp/diff_new_pack.tqKcwA/_new  2018-10-11 11:55:45.010000784 +0200
@@ -19,7 +19,7 @@
 %define soname 2
 %define libname libcalc%{soname}
 Name:           calc
-Version:        2.12.6.7
+Version:        2.12.6.8
 Release:        0
 Summary:        C-style arbitrary precision calculator
 License:        LGPL-2.1
@@ -67,9 +67,9 @@
 this library.
 
 %prep
-( cd ${RPM_SOURCE_DIR}; ls -l;
-  grep $(basename %{SOURCE0}) %{SOURCE1} | \
-    sed 's/[[:space:]]\+/  /' | sha256sum -c - || exit 23;
+( cd ${RPM_SOURCE_DIR};
+  sed -n "/$(basename %{SOURCE0})/s/[[:space:]]\+/  /p" %{SOURCE1} | \
+    sha256sum -c - || exit 23;
 )
 %setup -q
 

++++++ calc-2.12.6.7.tar.bz2 -> calc-2.12.6.8.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/calc-2.12.6.7/CHANGES new/calc-2.12.6.8/CHANGES
--- old/calc-2.12.6.7/CHANGES   2018-03-04 20:04:51.000000000 +0100
+++ new/calc-2.12.6.8/CHANGES   2018-09-30 18:26:46.000000000 +0200
@@ -25,6 +25,20 @@
     This helps with an interactive bug that was reported by Ruslan Kabatsayev
     (b7 dot 10110111 at gmail dot com).
 
+    The calc man page indicates that -d also disables the printing of the
+    leading tilde.
+
+    Added information to "help command" about how to silence messages
+    while reading calc resource files.
+
+    Fixed an error message buffer overflow thanks to a report by
+    Frank Peters <nlp at northernlightsphoto dot biz>.
+
+    Replaced all use of the C funcion sprintf() with snprintf().
+    Replaced all use of the C funcion vsprintf() with vsnprintf().
+    Replaced all DONT_HAVE_VSPRINTF with DONT_HAVE_VSNPRINTF.
+    Replaced all Makefile var ${HAVE_VSPRINTF} with ${HAVE_VSNPRINTF}.
+
 
 The following are the changes from calc version 2.12.6.4 to 2.12.6.5:
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/calc-2.12.6.7/Makefile new/calc-2.12.6.8/Makefile
--- old/calc-2.12.6.7/Makefile  2018-03-04 19:40:38.000000000 +0100
+++ new/calc-2.12.6.8/Makefile  2018-09-30 18:14:31.000000000 +0200
@@ -90,29 +90,29 @@
 #TERMCONTROL= -DUSE_SGTTY
 #TERMCONTROL= -DUSE_WIN32
 
-# If your system does not have a vsprintf() function, you could be in trouble.
+# If your system does not have a vsnprintf() function, you could be in trouble.
 #
-#      vsprintf(string, format, ap)
+#      vsnprintf(string, size, format, ap)
 #
-# This function works like sprintf except that the 3rd arg is a va_list
-# strarg (or varargs) list.  Some old systems do not have vsprintf().
-# If you do not have vsprintf(), then calc will try sprintf() and hope
+# This function works like spnrintf except that the 4th arg is a va_list
+# strarg (or varargs) list.  Some old systems do not have vsnprintf().
+# If you do not have vsnprintf(), then calc will try snprintf() and hope
 # for the best.
 #
 # A similar problem occurs if your system does not have a vsnprintf()
-# function.  This function is like the vsprintf() function except that
+# function.  This function is like the vsnprintf() function except that
 # there is an extra second argument that controls the maximum size
 # string that is produced.
 #
-# If HAVE_VSPRINTF is empty, this Makefile will run the have_stdvs.c and/or
-# have_varvs.c program to determine if vsprintf() is supported.  If
-# HAVE_VSPRINTF is set to -DDONT_HAVE_VSPRINTF then calc will hope that
-# sprintf() will work.
+# If HAVE_VSNPRINTF is empty, this Makefile will run the have_stdvs.c and/or
+# have_varvs.c program to determine if vsnprintf() is supported.  If
+# HAVE_VSNPRINTF is set to -DDONT_HAVE_VSNPRINTF then calc will hope that
+# snprintf() will work.
 #
-# If in doubt, leave HAVE_VSPRINTF empty.
+# If in doubt, leave HAVE_VSNPRINTF empty.
 #
-HAVE_VSPRINTF=
-#HAVE_VSPRINTF= -DDONT_HAVE_VSPRINTF
+HAVE_VSNPRINTF=
+#HAVE_VSNPRINTF= -DDONT_HAVE_VSNPRINTF
 
 # Determine the byte order of your machine
 #
@@ -1054,7 +1054,7 @@
 
 # The default calc versions
 #
-VERSION= 2.12.6.7
+VERSION= 2.12.6.8
 
 # Names of shared libraries with versions
 #
@@ -3545,7 +3545,7 @@
        ${Q} echo '' >> args.h
        ${Q} echo '' >> args.h
        ${Q} ${RM} -f have_stdvs.o have_stdvs${EXT}
-       -${Q} ${LCC} ${ICFLAGS} ${HAVE_VSPRINTF} have_stdvs.c -c \
+       -${Q} ${LCC} ${ICFLAGS} ${HAVE_VSNPRINTF} have_stdvs.c -c \
                >/dev/null 2>&1; ${TRUE}
        -${Q} ${LCC} ${ILDFLAGS} have_stdvs.o -o have_stdvs${EXT} \
            >/dev/null 2>&1; ${TRUE}
@@ -3554,10 +3554,10 @@
        else \
            ${TRUE}; \
        fi
-       -${Q} if [ ! -f have_args.sh ] && [ X"${HAVE_VSPRINTF}" = X ]; then \
+       -${Q} if [ ! -f have_args.sh ] && [ X"${HAVE_VSNPRINTF}" = X ]; then \
            ${RM} -f have_stdvs.o have_stdvs${EXT} have_varvs.o; \
            ${RM} -f have_varvs${EXT}; \
-           ${LCC} ${ICFLAGS} ${HAVE_VSPRINTF} have_varvs.c -c \
+           ${LCC} ${ICFLAGS} ${HAVE_VSNPRINTF} have_varvs.c -c \
                    2>/dev/null; \
            ${LCC} ${ILDFLAGS} have_varvs.o -o have_varvs${EXT} 2>/dev/null; \
            if ./have_varvs${EXT} >>args.h 2>/dev/null; then \
@@ -3573,8 +3573,8 @@
        else \
            echo 'exit 1' > have_args.sh; \
            echo "Unable to determine what type of variable args and"; \
-           echo "what type of vsprintf() should be used.  Set or change"; \
-           echo "the Makefile variable HAVE_VSPRINTF."; \
+           echo "what type of vsnprintf() should be used.  Set or change"; \
+           echo "the Makefile variable HAVE_VSNPRINTF."; \
        fi
        ${Q} sh ./have_args.sh
        ${Q} echo '' >> args.h
@@ -4160,7 +4160,7 @@
        @echo 'HAVE_UNUSED=${HAVE_UNUSED}'; echo ''
        @echo 'HAVE_URANDOM_H=${HAVE_URANDOM_H}'; echo ''
        @echo 'HAVE_USTAT=${HAVE_USTAT}'; echo ''
-       @echo 'HAVE_VSPRINTF=${HAVE_VSPRINTF}'; echo ''
+       @echo 'HAVE_VSNPRINTF=${HAVE_VSNPRINTF}'; echo ''
        @echo 'HELPDIR=${HELPDIR}'; echo ''
        @echo 'HELP_PASSDOWN=${HELP_PASSDOWN}'; echo ''
        @echo 'H_SRC=${H_SRC}'; echo ''
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/calc-2.12.6.7/Makefile.simple 
new/calc-2.12.6.8/Makefile.simple
--- old/calc-2.12.6.7/Makefile.simple   2018-03-04 20:22:00.000000000 +0100
+++ new/calc-2.12.6.8/Makefile.simple   2018-09-30 19:05:37.000000000 +0200
@@ -75,29 +75,29 @@
 #TERMCONTROL= -DUSE_SGTTY
 #TERMCONTROL= -DUSE_WIN32
 
-# If your system does not have a vsprintf() function, you could be in trouble.
+# If your system does not have a vsnprintf() function, you could be in trouble.
 #
-#      vsprintf(string, format, ap)
+#      vsnprintf(string, size, format, ap)
 #
-# This function works like sprintf except that the 3rd arg is a va_list
-# strarg (or varargs) list.  Some old systems do not have vsprintf().
-# If you do not have vsprintf(), then calc will try sprintf() and hope
+# This function works like spnrintf except that the 4th arg is a va_list
+# strarg (or varargs) list.  Some old systems do not have vsnprintf().
+# If you do not have vsnprintf(), then calc will try snprintf() and hope
 # for the best.
 #
 # A similar problem occurs if your system does not have a vsnprintf()
-# function.  This function is like the vsprintf() function except that
+# function.  This function is like the vsnprintf() function except that
 # there is an extra second argument that controls the maximum size
 # string that is produced.
 #
-# If HAVE_VSPRINTF is empty, this Makefile will run the have_stdvs.c and/or
-# have_varvs.c program to determine if vsprintf() is supported.  If
-# HAVE_VSPRINTF is set to -DDONT_HAVE_VSPRINTF then calc will hope that
-# sprintf() will work.
+# If HAVE_VSNPRINTF is empty, this Makefile will run the have_stdvs.c and/or
+# have_varvs.c program to determine if vsnprintf() is supported.  If
+# HAVE_VSNPRINTF is set to -DDONT_HAVE_VSNPRINTF then calc will hope that
+# snprintf() will work.
 #
-# If in doubt, leave HAVE_VSPRINTF empty.
+# If in doubt, leave HAVE_VSNPRINTF empty.
 #
-HAVE_VSPRINTF=
-#HAVE_VSPRINTF= -DDONT_HAVE_VSPRINTF
+HAVE_VSNPRINTF=
+#HAVE_VSNPRINTF= -DDONT_HAVE_VSNPRINTF
 
 # Determine the byte order of your machine
 #
@@ -981,7 +981,7 @@
 
 # The default calc versions
 #
-VERSION= 2.12.6.7
+VERSION= 2.12.6.8
 
 # Names of shared libraries with versions
 #
@@ -3255,7 +3255,7 @@
        ${Q} echo '' >> args.h
        ${Q} echo '' >> args.h
        ${Q} ${RM} -f have_stdvs.o have_stdvs${EXT}
-       -${Q} ${LCC} ${ICFLAGS} ${HAVE_VSPRINTF} have_stdvs.c -c \
+       -${Q} ${LCC} ${ICFLAGS} ${HAVE_VSNPRINTF} have_stdvs.c -c \
                >/dev/null 2>&1; ${TRUE}
        -${Q} ${LCC} ${ILDFLAGS} have_stdvs.o -o have_stdvs${EXT} \
            >/dev/null 2>&1; ${TRUE}
@@ -3264,10 +3264,10 @@
        else \
            ${TRUE}; \
        fi
-       -${Q} if [ ! -f have_args.sh ] && [ X"${HAVE_VSPRINTF}" = X ]; then \
+       -${Q} if [ ! -f have_args.sh ] && [ X"${HAVE_VSNPRINTF}" = X ]; then \
            ${RM} -f have_stdvs.o have_stdvs${EXT} have_varvs.o; \
            ${RM} -f have_varvs${EXT}; \
-           ${LCC} ${ICFLAGS} ${HAVE_VSPRINTF} have_varvs.c -c \
+           ${LCC} ${ICFLAGS} ${HAVE_VSNPRINTF} have_varvs.c -c \
                    2>/dev/null; \
            ${LCC} ${ILDFLAGS} have_varvs.o -o have_varvs${EXT} 2>/dev/null; \
            if ./have_varvs${EXT} >>args.h 2>/dev/null; then \
@@ -3283,8 +3283,8 @@
        else \
            echo 'exit 1' > have_args.sh; \
            echo "Unable to determine what type of variable args and"; \
-           echo "what type of vsprintf() should be used.  Set or change"; \
-           echo "the Makefile variable HAVE_VSPRINTF."; \
+           echo "what type of vsnprintf() should be used.  Set or change"; \
+           echo "the Makefile variable HAVE_VSNPRINTF."; \
        fi
        ${Q} sh ./have_args.sh
        ${Q} echo '' >> args.h
@@ -3832,7 +3832,7 @@
        @echo 'HAVE_UNUSED=${HAVE_UNUSED}'; echo ''
        @echo 'HAVE_URANDOM_H=${HAVE_URANDOM_H}'; echo ''
        @echo 'HAVE_USTAT=${HAVE_USTAT}'; echo ''
-       @echo 'HAVE_VSPRINTF=${HAVE_VSPRINTF}'; echo ''
+       @echo 'HAVE_VSNPRINTF=${HAVE_VSNPRINTF}'; echo ''
        @echo 'HELPDIR=${HELPDIR}'; echo ''
        @echo 'HELP_PASSDOWN=${HELP_PASSDOWN}'; echo ''
        @echo 'H_SRC=${H_SRC}'; echo ''
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/calc-2.12.6.7/calc.c new/calc-2.12.6.8/calc.c
--- old/calc-2.12.6.7/calc.c    2018-02-28 01:15:38.000000000 +0100
+++ new/calc-2.12.6.8/calc.c    2018-09-30 18:31:40.000000000 +0200
@@ -775,7 +775,7 @@
        va_start(ap, fmt);
        vsnprintf(calc_err_msg, MAXERROR, fmt, ap);
        va_end(ap);
-       calc_err_msg[MAXERROR] = '\0';
+       calc_err_msg[MAXERROR] = '\0';  /* paranoia */
        fprintf(stderr, "%s\n\n", calc_err_msg);
        funcname = NULL;
        if (calc_use_scanerr_jmpbuf != 0) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/calc-2.12.6.7/calc.man new/calc-2.12.6.8/calc.man
--- old/calc-2.12.6.7/calc.man  2017-09-07 23:21:34.000000000 +0200
+++ new/calc-2.12.6.8/calc.man  2018-09-30 18:22:18.000000000 +0200
@@ -1,5 +1,5 @@
 .\"
-.\" Copyright (C) 1999-2007,2014       Landon Curt Noll
+.\" Copyright (C) 1999-2007,2014,2018  Landon Curt Noll
 .\"
 .\" Calc is open software; you can redistribute it and/or modify it under
 .\" the terms of the version 2.1 of the GNU Lesser General Public License
@@ -138,7 +138,7 @@
 .fi
 .in -5n
 .sp 1
-will just say:
+will just print:
 .sp 1
 .in +5n
 .nf
@@ -148,6 +148,41 @@
 .sp 1
 This flag disables the reporting of missing calc
 startup resource files.
+.sp 1
+
+This flag also disables the printing the leading tilde. For example:
+.sp 1
+.in +5n
+.nf
+calc 2/3
+.fi
+.in -5n
+.sp 1
+will print:
+.sp 1
+.in +5n
+.nf
+~0.66666666666666666667
+.fi
+.in -5n
+.sp 1
+.sp 1
+whereas:
+.sp 1
+.in +5n
+.nf
+calc -d 2/3
+.fi
+.in -5n
+.sp 1
+will just print:
+.sp 1
+.in +5n
+.nf
+0.66666666666666666667
+.fi
+.in -5n
+.sp 1
 
 .TP
 .BR -D " calc_debug[:resource_debug[:user_debug]]"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/calc-2.12.6.7/custom/Makefile 
new/calc-2.12.6.8/custom/Makefile
--- old/calc-2.12.6.7/custom/Makefile   2018-03-04 20:21:16.000000000 +0100
+++ new/calc-2.12.6.8/custom/Makefile   2018-09-30 19:04:52.000000000 +0200
@@ -2,7 +2,7 @@
 #
 # custom - makefile for calc custom routines
 #
-# Copyright (C) 1999-2006,2014,2017  Landon Curt Noll
+# Copyright (C) 1999-2006,2014,2017-2018  Landon Curt Noll
 #
 # Calc is open software; you can redistribute it and/or modify it under
 # the terms of the version 2.1 of the GNU Lesser General Public License
@@ -348,7 +348,7 @@
 
 # The default calc versions
 #
-VERSION= 2.12.6.7
+VERSION= 2.12.6.8
 
 # Names of shared libraries with versions
 #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/calc-2.12.6.7/custom/Makefile.head 
new/calc-2.12.6.8/custom/Makefile.head
--- old/calc-2.12.6.7/custom/Makefile.head      2018-03-04 19:40:38.000000000 
+0100
+++ new/calc-2.12.6.8/custom/Makefile.head      2018-09-30 18:22:51.000000000 
+0200
@@ -2,7 +2,7 @@
 #
 # custom - makefile for calc custom routines
 #
-# Copyright (C) 1999-2006,2014,2017  Landon Curt Noll
+# Copyright (C) 1999-2006,2014,2017-2018  Landon Curt Noll
 #
 # Calc is open software; you can redistribute it and/or modify it under
 # the terms of the version 2.1 of the GNU Lesser General Public License
@@ -348,7 +348,7 @@
 
 # The default calc versions
 #
-VERSION= 2.12.6.7
+VERSION= 2.12.6.8
 
 # Names of shared libraries with versions
 #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/calc-2.12.6.7/custom/Makefile.simple 
new/calc-2.12.6.8/custom/Makefile.simple
--- old/calc-2.12.6.7/custom/Makefile.simple    2018-03-04 20:22:00.000000000 
+0100
+++ new/calc-2.12.6.8/custom/Makefile.simple    2018-09-30 19:05:37.000000000 
+0200
@@ -2,7 +2,7 @@
 #
 # custom - makefile for calc custom routines
 #
-# Copyright (C) 1999-2006,2014,2017  Landon Curt Noll
+# Copyright (C) 1999-2006,2014,2017-2018  Landon Curt Noll
 #
 # Calc is open software; you can redistribute it and/or modify it under
 # the terms of the version 2.1 of the GNU Lesser General Public License
@@ -333,7 +333,7 @@
 
 # The default calc versions
 #
-VERSION= 2.12.6.7
+VERSION= 2.12.6.8
 
 # Names of shared libraries with versions
 #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/calc-2.12.6.7/custom.c new/calc-2.12.6.8/custom.c
--- old/calc-2.12.6.7/custom.c  2017-06-02 23:50:17.000000000 +0200
+++ new/calc-2.12.6.8/custom.c  2018-09-30 18:35:39.000000000 +0200
@@ -1,7 +1,7 @@
 /*
  * custom - interface for custom software and hardware interfaces
  *
- * Copyright (C) 1999-2006  Landon Curt Noll
+ * Copyright (C) 1999-2006,2018  Landon Curt Noll
  *
  * Calc is open software; you can redistribute it and/or modify it under
  * the terms of the version 2.1 of the GNU Lesser General Public License
@@ -180,6 +180,7 @@
 #if defined(CUSTOM)
 
        char *customname;       /* a string of the form: custom/name */
+       size_t snprintf_len;    /* malloced snprintf buffer length */
 
        /*
         * firewall
@@ -191,12 +192,14 @@
        /*
         * form the custom help name
         */
-       customname = (char *)malloc(sizeof("custhelp")+1+strlen(name)+1);
+       snprintf_len = sizeof("custhelp")+1+strlen(name)+1;
+       customname = (char *)malloc(snprintf_len+1);
        if (customname == NULL) {
                math_error("bad malloc of customname");
                /*NOTREACHED*/
        }
-       sprintf(customname, "custhelp/%s", name);
+       snprintf(customname, snprintf_len, "custhelp/%s", name);
+       customname[snprintf_len] = '\0';        /* paranoia */
 
        /*
         * give help directly to the custom file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/calc-2.12.6.7/file.c new/calc-2.12.6.8/file.c
--- old/calc-2.12.6.7/file.c    2017-06-02 23:50:17.000000000 +0200
+++ new/calc-2.12.6.8/file.c    2018-09-30 18:37:57.000000000 +0200
@@ -1,7 +1,7 @@
 /*
  * file - file I/O routines callable by users
  *
- * Copyright (C) 1999-2007  David I. Bell and Landon Curt Noll
+ * Copyright (C) 1999-2007,2018  David I. Bell and Landon Curt Noll
  *
  * Primary author:  David I. Bell
  *
@@ -143,6 +143,7 @@
                 * stat the descriptor to see what we have
                 */
                if (fstat(i, &sbuf) >= 0) {
+                       size_t snprintf_len;    /* malloced snprintf length */
                        fp = (FILE *) fdopen(i,"r+");   /*guess mode*/
                        if (fp) {
                                strcpy(files[idnum].mode, "r+");
@@ -161,12 +162,15 @@
                                                continue;
                                }
                        }
-                       tname = (char *)malloc(sizeof("descriptor[19]"));
+                       snprintf_len =
+                         sizeof("descriptor[12345678901234567890]") + 1;
+                       tname = (char *)malloc(snprintf_len+1);
                        if (tname == NULL) {
                                math_error("Out of memory for init_file");
                                /*NOTREACHED*/
                        }
-                       sprintf(tname, "descriptor[%d]", i);
+                       snprintf(tname, snprintf_len, "descriptor[%d]", i);
+                       tname[snprintf_len] = '\0';     /* paranoia */
                        files[idnum].name = tname;
                        files[idnum].id = idnum;
                        files[idnum].fp = fp;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/calc-2.12.6.7/func.c new/calc-2.12.6.8/func.c
--- old/calc-2.12.6.7/func.c    2017-06-02 23:50:17.000000000 +0200
+++ new/calc-2.12.6.8/func.c    2018-09-30 18:32:46.000000000 +0200
@@ -1,7 +1,7 @@
 /*
  * func - built-in functions implemented here
  *
- * Copyright (C) 1999-2007  David I. Bell, Landon Curt Noll and Ernest Bowen
+ * Copyright (C) 1999-2007,2018  David I. Bell, Landon Curt Noll & Ernest Bowen
  *
  * Primary author:  David I. Bell
  *
@@ -6022,12 +6022,15 @@
        /* firewall - return generic error string if it is not assigned */
        if (i >= nexterrnum || (i > E__HIGHEST && i < E_USERDEF)
                        || (i < E__BASE && strerror(i) == NULL)) {
-               cp = (char *) malloc(sizeof("Error 1234567890")+1);
+               size_t snprintf_len;    /* malloced snprintf buffer length */
+               snprintf_len = sizeof("Unknown error 12345678901234567890")+1;
+               cp = (char *) malloc(snprintf_len+1);
                if (cp == NULL) {
                        math_error("Out of memory for strerror");
                        /*NOTREACHED*/
                }
-               sprintf(cp, "Unknown error %ld", i);
+               snprintf(cp, snprintf_len, "Unknown error %ld", i);
+               cp[snprintf_len] = '\0';        /* paranoia */
                result.v_str = makestring(cp);
                return result;
        }
@@ -7550,6 +7553,8 @@
         * parse args
         */
        if (count == 2) {
+               size_t snprintf_len;    /* malloced snprintf buffer length */
+
                /* firewall */
                if (vals[0]->v_type != V_STR || vals[1]->v_type != V_STR) {
                        math_error("Non-string argument for putenv");
@@ -7557,14 +7562,17 @@
                }
 
                /* convert putenv("foo","bar") into putenv("foo=bar") */
-               putenv_str = (char *)malloc(vals[0]->v_str->s_len + 1 +
-                           vals[1]->v_str->s_len + 1);
+               snprintf_len = vals[0]->v_str->s_len + 1 +
+                               vals[1]->v_str->s_len + 1;
+               putenv_str = (char *)malloc(snprintf_len+1);
                if (putenv_str == NULL) {
                        math_error("Cannot allocate string in putenv");
                        /*NOTREACHED*/
                }
-               sprintf(putenv_str, "%s=%s", vals[0]->v_str->s_str,
+               snprintf(putenv_str, snprintf_len,
+                       "%s=%s", vals[0]->v_str->s_str,
                        vals[1]->v_str->s_str);
+               putenv_str[snprintf_len] = '\0';        /* paranoia */
 
 
        } else {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/calc-2.12.6.7/have_stdvs.c 
new/calc-2.12.6.8/have_stdvs.c
--- old/calc-2.12.6.7/have_stdvs.c      2017-06-02 23:50:17.000000000 +0200
+++ new/calc-2.12.6.8/have_stdvs.c      2018-09-30 18:29:01.000000000 +0200
@@ -1,7 +1,7 @@
 /*
- * have_stdvs - try <stdarg.h> to see if it really works with vsprintf()
+ * have_stdvs - try <stdarg.h> to see if it really works with vsnprintf()
  *
- * Copyright (C) 1999,2014  Landon Curt Noll
+ * Copyright (C) 1999,2014,2018  Landon Curt Noll
  *
  * Calc is open software; you can redistribute it and/or modify it under
  * the terms of the version 2.1 of the GNU Lesser General Public License
@@ -25,16 +25,16 @@
  */
 
 /*
- * On some systems that have both <stdarg.h> and <varargs.h>, vsprintf()
+ * On some systems that have both <stdarg.h> and <varargs.h>, vsnprintf()
  * does not work well under one type of include file.
  *
  * Some systems (such as UMIPS) have bugs in the <stdarg.h> implementation
- * that show up in vsprintf(), so we may have to try to use sprintf()
- * as if it were vsprintf() and hope for the best.
+ * that show up in vsnprintf(), so we may have to try to use snprintf()
+ * as if it were vsnprintf() and hope for the best.
  *
- * This program will output #defines and exits 0 if vsprintf() (or sprintf())
- * produces the results that we expect.         This program exits 1 if 
vsprintf()
- * (or sprintf()) produces unexpected results while using the <stdarg.h>
+ * This program will output #defines and exits 0 if vsnprintf() (or snprintf())
+ * produces the results that we expect.         This program exits 1 if 
vsnprintf()
+ * (or snprintf()) produces unexpected results while using the <stdarg.h>
  * include file.
  */
 
@@ -57,39 +57,24 @@
 # include <stdlib.h>
 #endif
 
-#undef VSPRINTF_SIZE_T
+#undef VSNPRINTF_SIZE_T
 #if defined(FORCE_STDC) || (defined(__STDC__) && __STDC__ != 0) || \
     defined(__cplusplus)
-# define VSPRINTF_SIZE_T size_t
+# define VSNPRINTF_SIZE_T size_t
 #else
-# define VSPRINTF_SIZE_T long
+# define VSNPRINTF_SIZE_T long
 #endif
 
-char buf[BUFSIZ];
+char buf[BUFSIZ+1];
 
 
 void
-try_this(char *fmt, ...)
-{
-       va_list ap;
-
-       va_start(ap, fmt);
-#if !defined(DONT_HAVE_VSPRINTF)
-       vsprintf(buf, fmt, ap);
-#else
-       sprintf(buf, fmt, ap);
-#endif
-       va_end(ap);
-}
-
-
-void
-try_nthis(char *fmt, VSPRINTF_SIZE_T size, ...)
+try_nthis(char *fmt, VSNPRINTF_SIZE_T size, ...)
 {
        va_list ap;
 
        va_start(ap, size);
-#if !defined(DONT_HAVE_VSPRINTF)
+#if !defined(DONT_HAVE_VSNPRINTF)
        vsnprintf(buf, size, fmt, ap);
 #else
        snprintf(buf, size, fmt, ap);
@@ -107,35 +92,11 @@
        buf[0] = '\0';
 
        /*
-        * test variable args and vsprintf/sprintf
-        */
-       try_this("@%d:%s:%d@", 1, "hi", 2);
-       if (strcmp(buf, "@1:hi:2@") != 0) {
-#if !defined(DONT_HAVE_VSPRINTF)
-           /* <stdarg.h> with vsprintf() didn't work */
-#else
-           /* <stdarg.h> with sprintf() simulating vsprintf() didn't work */
-#endif
-           exit(1);
-       }
-       try_this("%s %d%s%d%d %s",
-           "Landon Noll 1st coproved that", 2, "^", 21701, -1, "was prime");
-       if (strcmp(buf,
-                  "Landon Noll 1st coproved that 2^21701-1 was prime") != 0) {
-#if !defined(DONT_HAVE_VSPRINTF)
-           /* <stdarg.h> with vsprintf() didn't work */
-#else
-           /* <stdarg.h> with sprintf() simulating vsprintf() didn't work */
-#endif
-           exit(1);
-       }
-
-       /*
         * test variable args and vsnprintf/snprintf
         */
        try_nthis("@%d:%s:%d@", sizeof(buf)-1, 1, "hello", 5);
        if (strcmp(buf, "@1:hello:5@") != 0) {
-#if !defined(DONT_HAVE_VSPRINTF)
+#if !defined(DONT_HAVE_VSNPRINTF)
            /* <stdarg.h> with vsnprintf() didn't work */
 #else
            /* <stdarg.h> with snprintf() simulating vsnprintf() didn't work */
@@ -146,7 +107,7 @@
            "Landon Noll 1st proved that", 2, "^", 23209, -1, "was prime");
        if (strcmp(buf,
                   "Landon Noll 1st proved that 2^23209-1 was prime") != 0) {
-#if !defined(DONT_HAVE_VSPRINTF)
+#if !defined(DONT_HAVE_VSNPRINTF)
            /* <stdarg.h> with vsnprintf() didn't work */
 #else
            /* <stdarg.h> with snprintf() simulating vsnprintf() didn't work */
@@ -158,7 +119,7 @@
         * report the result
         */
        puts("/* what type of variable args do we have? */");
-#if defined(DONT_HAVE_VSPRINTF)
+#if defined(DONT_HAVE_VSNPRINTF)
        puts("/*");
        puts(" * SIMULATE_STDARG");
        puts(" *");
@@ -179,22 +140,21 @@
        puts("#define STDARG /* use <stdarg.h> */");
        puts("#include <stdarg.h>");
 #endif
-       puts("\n/* should we use vsprintf() and vsnprintf()? */");
-#if !defined(DONT_HAVE_VSPRINTF)
-       puts("#define HAVE_VSPRINTF /* yes */");
+       puts("\n/* should we use vsnprintf() and vsnprintf()? */");
+#if !defined(DONT_HAVE_VSNPRINTF)
+       puts("#define HAVE_VSNPRINTF /* yes */");
 #else
        puts("/*");
        puts(" * Hack aleart!!!");
        puts(" *");
-       puts(" * Systems that do not have vsprintf() need something.  In some");
-       puts(" * cases the sprintf function will deal correctly with the");
-       puts(" * va_alist 3rd arg.  Same gors for a lack of an vsnprintf()");
+       puts(" * Systems that do not have vsnprintf() need something. In some");
+       puts(" * cases the snprintf function will deal correctly with the");
+       puts(" * va_alist 4th arg.  Same gors for a lack of an vsnprintf()");
        puts(" * function.  In either case we use the #defines below and");
        puts(" * hope for the best!");
        puts(" */");
-       puts("#define vsprintf sprintf");
        puts("#define vsnprintf snprintf");
-       puts("#undef HAVE_VSPRINTF");
+       puts("#undef HAVE_VSNPRINTF");
 #endif
        /* exit(0); */
        return 0;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/calc-2.12.6.7/have_varvs.c 
new/calc-2.12.6.8/have_varvs.c
--- old/calc-2.12.6.7/have_varvs.c      2017-06-02 23:50:17.000000000 +0200
+++ new/calc-2.12.6.8/have_varvs.c      2018-09-30 18:26:05.000000000 +0200
@@ -1,7 +1,7 @@
 /*
- * have_varvs - try <varargs.h> to see if it really works with vsprintf()
+ * have_varvs - try <varargs.h> to see if it really works with vsnprintf()
  *
- * Copyright (C) 1999  Landon Curt Noll
+ * Copyright (C) 1999,2018  Landon Curt Noll
  *
  * Calc is open software; you can redistribute it and/or modify it under
  * the terms of the version 2.1 of the GNU Lesser General Public License
@@ -26,12 +26,12 @@
 
 /*
  * Some systems have bugs in the <varargs.h> implementation that show up in
- * vsprintf(), so we may have to try to use sprintf() as if it were vsprintf()
- * and hope for the best.
+ * vsnprintf(), so we may have to try to use snprintf() as if it were
+ * vsnprintf() and hope for the best.
  *
- * This program will output #defines and exits 0 if vsprintf() (or sprintf())
- * produces the results that we expect.         This program exits 1 if 
vsprintf()
- * (or sprintf()) produces unexpected results while using the <stdarg.h>
+ * This program will output #defines and exits 0 if vsnprintf() (or snprintf())
+ * produces the results that we expect.         This program exits 1 if 
vsnprintf()
+ * (or snprintf()) produces unexpected results while using the <stdarg.h>
  * include file.
  */
 
@@ -48,43 +48,27 @@
 # include <string.h>
 #endif
 
-#undef VSPRINTF_SIZE_T
+#undef VSNPRINTF_SIZE_T
 #if defined(FORCE_STDC) || (defined(__STDC__) && __STDC__ != 0) || \
     defined(__cplusplus)
-# define VSPRINTF_SIZE_T size_t
+# define VSNPRINTF_SIZE_T size_t
 #else
-# define VSPRINTF_SIZE_T long
+# define VSNPRINTF_SIZE_T long
 #endif
 
-char buf[BUFSIZ];
+char buf[BUFSIZ+1];
 
 #if !defined(STDARG) && !defined(SIMULATE_STDARG)
 #include <varargs.h>
 
 void
-try_this(char *fmt, ...)
+try_nthis(char *fmt, VSNPRINTF_SIZE_T size, ...)
 {
     va_list ap;
 
     va_start(ap);
 
-#if !defined(DONT_HAVE_VSPRINTF)
-    vsprintf(buf, fmt, ap);
-#else
-    sprintf(buf, fmt, ap);
-#endif
-
-    va_end(ap);
-}
-
-void
-try_nthis(char *fmt, VSPRINTF_SIZE_T size, ...)
-{
-    va_list ap;
-
-    va_start(ap);
-
-#if !defined(DONT_HAVE_VSPRINTF)
+#if !defined(DONT_HAVE_VSNPRINTF)
     vsnprintf(buf, size, fmt, ap);
 #else
     snprintf(buf, size, fmt, ap);
@@ -96,13 +80,7 @@
 #else
 
 void
-try_this(char *a, int b, char *c, int d)
-{
-    return;
-}
-
-void
-try_nthis(char *a, VSPRINTF_SIZE_T size, int b, char *c, int d)
+try_nthis(char *a, VSNPRINTF_SIZE_T size, int b, char *c, int d)
 {
     return;
 }
@@ -119,35 +97,11 @@
        buf[0] = '\0';
 
        /*
-        * test variable args and vsprintf/sprintf
-        */
-       try_this("@%d:%s:%d@", 1, "hi", 2);
-       if (strcmp(buf, "@1:hi:2@") != 0) {
-#if !defined(DONT_HAVE_VSPRINTF)
-           /* <varargs.h> with vsprintf() didn't work */
-#else
-           /* <varargs.h> with sprintf() simulating vsprintf() didn't work */
-#endif
-           exit(1);
-       }
-       try_this("%s %d%s%d%d %s",
-           "Landon Noll 1st proved that", 2, "^", 23209, -1, "was prime");
-       if (strcmp(buf,
-                  "Landon Noll 1st proved that 2^23209-1 was prime") != 0) {
-#if !defined(DONT_HAVE_VSPRINTF)
-           /* <varargs.h> with vsprintf() didn't work */
-#else
-           /* <varargs.h> with sprintf() simulating vsprintf() didn't work */
-#endif
-           exit(1);
-       }
-
-       /*
         * test variable args and vsnprintf/snprintf
         */
        try_nthis("@%d:%s:%d@", sizeof(buf)-1, 1, "hello", 5);
        if (strcmp(buf, "@1:hello:5@") != 0) {
-#if !defined(DONT_HAVE_VSPRINTF)
+#if !defined(DONT_HAVE_VSNPRINTF)
            /* <varargs.h> with vsnprintf() didn't work */
 #else
            /* <varargs.h> with snprintf() simulating vsnprintf() didn't work */
@@ -158,7 +112,7 @@
            "Landon Noll 1st proved that", 2, "^", 23209, -1, "was prime");
        if (strcmp(buf,
                   "Landon Noll 1st proved that 2^23209-1 was prime") != 0) {
-#if !defined(DONT_HAVE_VSPRINTF)
+#if !defined(DONT_HAVE_VSNPRINTF)
            /* <varargs.h> with vsnprintf() didn't work */
 #else
            /* <varargs.h> with snprintf() simulating vsnprintf() didn't work */
@@ -172,22 +126,21 @@
        puts("/* what type of variable args do we have? */");
        puts("#define VARARGS /* use <varargs.h> */");
        puts("#include <varargs.h>");
-       puts("\n/* should we use vsprintf() and vsnprintf()? */");
-#if !defined(DONT_HAVE_VSPRINTF)
-       puts("#define HAVE_VSPRINTF /* yes */");
+       puts("\n/* should we use vsnprintf() and vsnprintf()? */");
+#if !defined(DONT_HAVE_VSNPRINTF)
+       puts("#define HAVE_VSNPRINTF /* yes */");
 #else
        puts("/*");
        puts(" * Hack aleart!!!");
        puts(" *");
-       puts(" * Systems that do not have vsprintf() need something.  In some");
-       puts(" * cases the sprintf function will deal correctly with the");
-       puts(" * va_alist 3rd arg.  Same gors for a lack of an vsnprintf()");
+       puts(" * Systems that do not have vsnprintf() need something. In some");
+       puts(" * cases the snprintf() function will deal correctly with the");
+       puts(" * va_alist 4th arg.  Same gors for a lack of an vsnprintf()");
        puts(" * function.  In either case we use the #defines below and");
        puts(" * hope for the best!");
        puts(" */");
-       puts("#define vsprintf sprintf");
        puts("#define vsnprintf snprintf");
-       puts("#undef HAVE_VSPRINTF");
+       puts("#undef HAVE_VSNPRINTF");
 #endif
        /* exit(0); */
        return 0;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/calc-2.12.6.7/help/command 
new/calc-2.12.6.8/help/command
--- old/calc-2.12.6.7/help/command      2017-06-02 23:50:17.000000000 +0200
+++ new/calc-2.12.6.8/help/command      2018-09-30 18:23:54.000000000 +0200
@@ -88,6 +88,31 @@
        If the -m mode disallows opening of files for reading,
        this command will be disabled.
 
+       To read a calc resource file without printing various
+       messages about defined functions, the "resource_debug"
+       config should be set to zero.  For example:
+
+           read lucas;
+
+       will, by default, print messages such as:
+
+           lucas(h,n) defined
+           gen_u2(h,n,v1) defined
+           gen_u0(h,n,v1) defined
+           rodseth_xhn(x,h,n) defined
+           gen_v1(h,n) defined
+           ldebug(funct,str) defined
+           legacy_gen_v1(h,n) defined
+
+        When "resource_debug" is zero, such messages are silenced.
+
+           config("resource_debug", 0),;
+           read lucas;
+
+       To silence such messages on the calc command line, try:
+
+           calc -p -D :0 'read -once lucas; lucas(1, 23209);'
+
 
     write calc commands
     -------------------
@@ -350,7 +375,7 @@
        statement   flow control and declaration statements
        usage       how to invoke the calc command and calc -options
 
-## Copyright (C) 1999-2006  Landon Curt Noll
+## Copyright (C) 1999-2006,2018  Landon Curt Noll
 ##
 ## Calc is open software; you can redistribute it and/or modify it under
 ## the terms of the version 2.1 of the GNU Lesser General Public License
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/calc-2.12.6.7/help.c new/calc-2.12.6.8/help.c
--- old/calc-2.12.6.7/help.c    2017-06-02 23:50:17.000000000 +0200
+++ new/calc-2.12.6.8/help.c    2018-09-30 18:36:49.000000000 +0200
@@ -1,7 +1,7 @@
 /*
  * help - display help for calc
  *
- * Copyright (C) 1999-2007,2014  Landon Curt Noll
+ * Copyright (C) 1999-2007,2014,2018  Landon Curt Noll
  *
  * Calc is open software; you can redistribute it and/or modify it under
  * the terms of the version 2.1 of the GNU Lesser General Public License
@@ -183,6 +183,7 @@
        FILE *stream;           /* help file stream */
        char *helppath;         /* path to the help file */
        char *c;
+       size_t snprintf_len;    /* malloced snprintf buffer length */
 
        /*
         * check permissions to see if we are allowed to help
@@ -247,18 +248,21 @@
         */
 #if defined(CUSTOM)
        if (sizeof(CUSTOMHELPDIR) > sizeof(HELPDIR)) {
-               helppath = (char *)malloc(sizeof(CUSTOMHELPDIR)+1+strlen(type));
+               snprintf_len = sizeof(CUSTOMHELPDIR)+1+strlen(type) + 1;
        } else {
-               helppath = (char *)malloc(sizeof(HELPDIR)+1+strlen(type));
+               snprintf_len = sizeof(HELPDIR)+1+strlen(type) + 1;
        }
+       helppath = (char *)malloc(snprintf_len+1);
 #else /* CUSTOM */
-       helppath = (char *)malloc(sizeof(HELPDIR)+1+strlen(type));
+       snprintf_len = sizeof(HELPDIR)+1+strlen(type) + 1;
+       helppath = (char *)malloc(snprintf_len+1);
 #endif /* CUSTOM */
        if (helppath == NULL) {
                fprintf(stderr, "malloc failure in givehelp()\n");
                return;
        }
-       sprintf(helppath, "%s/%s", HELPDIR, type);
+       snprintf(helppath, snprintf_len, "%s/%s", HELPDIR, type);
+       helppath[snprintf_len] = '\0';  /* paranoia */
        stream = fopen(helppath, "r");
        if (stream != NULL) {
 
@@ -274,7 +278,8 @@
         */
        } else {
 
-               sprintf(helppath, "%s/%s", CUSTOMHELPDIR, type);
+               snprintf(helppath, snprintf_len, "%s/%s", CUSTOMHELPDIR, type);
+               helppath[snprintf_len] = '\0';  /* paranoia */
                stream = fopen(helppath, "r");
                if (stream == NULL) {
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/calc-2.12.6.7/input.c new/calc-2.12.6.8/input.c
--- old/calc-2.12.6.7/input.c   2018-03-04 19:47:33.000000000 +0100
+++ new/calc-2.12.6.8/input.c   2018-09-30 18:36:00.000000000 +0200
@@ -1,7 +1,7 @@
 /*
  * input - nested input source file reader
  *
- * Copyright (C) 1999-2007,2014  David I. Bell
+ * Copyright (C) 1999-2007,2014,2018  David I. Bell
  *
  * Calc is open software; you can redistribute it and/or modify it under
  * the terms of the version 2.1 of the GNU Lesser General Public License
@@ -410,6 +410,7 @@
        char *after;            /* after the ~user or ~ */
        char *username;         /* extracted username */
        size_t fullpath_len;    /* length of fullpath */
+       size_t snprintf_len;    /* malloced snprintf buffer length */
 
        /* firewall */
        if (name[0] != HOMECHAR)
@@ -466,11 +467,13 @@
        /*
         * build the fullpath given the home directory
         */
-       fullpath = (char *)malloc(strlen(home2)+strlen(after)+1);
+       snprintf_len = strlen(home2)+strlen(after) + 1;
+       fullpath = (char *)malloc(snprintf_len+1);
        if (fullpath == NULL) {
                return NULL;
        }
-       sprintf(fullpath, "%s%s", home2, after);
+       snprintf(fullpath, snprintf_len, "%s%s", home2, after);
+       fullpath[snprintf_len] = '\0';  /* paranoia */
        return fullpath;
 #endif /* Windoz free systems */
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/calc-2.12.6.7/math_error.c 
new/calc-2.12.6.8/math_error.c
--- old/calc-2.12.6.7/math_error.c      2017-06-02 23:50:17.000000000 +0200
+++ new/calc-2.12.6.8/math_error.c      2018-09-30 18:31:51.000000000 +0200
@@ -83,7 +83,7 @@
 #endif
        vsnprintf(calc_err_msg, MAXERROR, fmt, ap);
        va_end(ap);
-       calc_err_msg[MAXERROR] = '\0';
+       calc_err_msg[MAXERROR] = '\0';  /* paranoia */
 
        /*
         * if we should longjmp, so do
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/calc-2.12.6.7/sha1.c new/calc-2.12.6.8/sha1.c
--- old/calc-2.12.6.7/sha1.c    2017-06-02 23:50:17.000000000 +0200
+++ new/calc-2.12.6.8/sha1.c    2018-09-30 18:33:12.000000000 +0200
@@ -684,7 +684,7 @@
                 *       the last full update or finalization.  Thus it
                 *       may NOT be the actual hash value.
                 */
-               sprintf(buf,
+               snprintf(buf, DEBUG_SIZE,
                        "sha1: 0x%08x%08x%08x%08x%08x data: %d octets",
                        (int)state->h_union.h_sha1.digest[0],
                        (int)state->h_union.h_sha1.digest[1],
@@ -692,6 +692,7 @@
                        (int)state->h_union.h_sha1.digest[3],
                        (int)state->h_union.h_sha1.digest[4],
                        (int)state->h_union.h_sha1.datalen);
+               buf[DEBUG_SIZE] = '\0'; /* paranoia */
                math_str(buf);
        } else {
                math_str("sha1 hash state");
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/calc-2.12.6.7/token.c new/calc-2.12.6.8/token.c
--- old/calc-2.12.6.7/token.c   2017-06-02 23:50:17.000000000 +0200
+++ new/calc-2.12.6.8/token.c   2018-09-30 18:35:11.000000000 +0200
@@ -718,7 +718,7 @@
        if (name) {
                snprintf(calc_err_msg, MAXERROR, "\"%s\", line %ld: ",
                         name, linenumber());
-               calc_err_msg[MAXERROR] = '\0';  /* firewall */
+               calc_err_msg[MAXERROR] = '\0';  /* paranoia */
                len = strlen(calc_err_msg);
                if (len < MAXERROR) {
                        vsnprintf(calc_err_msg+len, MAXERROR-len, fmt, ap);
@@ -727,7 +727,7 @@
                vsnprintf(calc_err_msg, MAXERROR, fmt, ap);
        }
        va_end(ap);
-       calc_err_msg[MAXERROR] = '\0';
+       calc_err_msg[MAXERROR] = '\0';  /* paranoia */
 
        /* print error message if allowed */
        if (calc_print_scanerr_msg != 0) {
@@ -782,7 +782,7 @@
        default:
                snprintf(calc_err_msg, MAXERROR,
                         "Unknown skip token for scanerror\n");
-               calc_err_msg[MAXERROR] = '\0';
+               calc_err_msg[MAXERROR] = '\0';  /* paranoia */
                if (calc_print_scanerr_msg != 0) {
                        fprintf(stderr, "%s\n\n", calc_err_msg);
                }
@@ -823,7 +823,7 @@
        if (name) {
                snprintf(calc_warn_msg, MAXERROR, "\"%s\", line %ld: ",
                         name, linenumber());
-               calc_warn_msg[MAXERROR] = '\0'; /* firewall */
+               calc_warn_msg[MAXERROR] = '\0'; /* paranoia */
                len = strlen(calc_warn_msg);
                if (len < MAXERROR) {
                        vsnprintf(calc_warn_msg+len, MAXERROR-len, fmt, ap);
@@ -832,7 +832,7 @@
                vsnprintf(calc_warn_msg, MAXERROR, fmt, ap);
        }
        va_end(ap);
-       calc_warn_msg[MAXERROR] = '\0';
+       calc_warn_msg[MAXERROR] = '\0'; /* paranoia */
 
        /* print the warning if allowed */
        if (calc_print_scanwarn_msg != 0) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/calc-2.12.6.7/version.c new/calc-2.12.6.8/version.c
--- old/calc-2.12.6.7/version.c 2018-03-04 19:40:36.000000000 +0100
+++ new/calc-2.12.6.8/version.c 2018-09-30 18:37:37.000000000 +0200
@@ -1,7 +1,7 @@
 /*
  * version - determine the version of calc
  *
- * Copyright (C) 1999-2017  David I. Bell and Landon Curt Noll
+ * Copyright (C) 1999-2018  David I. Bell and Landon Curt Noll
  *
  * Primary author:  David I. Bell
  *
@@ -45,7 +45,7 @@
 #define MAJOR_VER      2       /* major library version */
 #define MINOR_VER      12      /* minor library version */
 #define MAJOR_PATCH    6       /* major software level under library version */
-#define MINOR_PATCH    7       /* minor software level or 0 if not patched */
+#define MINOR_PATCH    8       /* minor software level or 0 if not patched */
 
 
 /*
@@ -120,6 +120,7 @@
        snprintf(verbuf, BUFSIZ,
            "%d.%d.%d.%d", calc_major_ver, calc_minor_ver,
             calc_major_patch, calc_minor_patch);
+       verbuf[BUFSIZ] = '\0';  /* paranoia */
 
        /*
         * save the versions string into a newly malloced buffer
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/calc-2.12.6.7/win32/args.h 
new/calc-2.12.6.8/win32/args.h
--- old/calc-2.12.6.7/win32/args.h      2018-03-04 20:21:58.000000000 +0100
+++ new/calc-2.12.6.8/win32/args.h      2018-09-30 19:05:34.000000000 +0200
@@ -11,8 +11,8 @@
 #define STDARG /* use <stdarg.h> */
 #include <stdarg.h>
 
-/* should we use vsprintf() and vsnprintf()? */
-#define HAVE_VSPRINTF /* yes */
+/* should we use vsnprintf() and vsnprintf()? */
+#define HAVE_VSNPRINTF /* yes */
 
 
 #endif /* !__ARGS_H__ */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/calc-2.12.6.7/win32.mkdef 
new/calc-2.12.6.8/win32.mkdef
--- old/calc-2.12.6.7/win32.mkdef       2017-06-02 23:50:17.000000000 +0200
+++ new/calc-2.12.6.8/win32.mkdef       2018-09-30 18:13:13.000000000 +0200
@@ -1,5 +1,5 @@
 TERMCONTROL=-DUSE_WIN32
-HAVE_VSPRINTF=-UDONT_HAVE_VSPRINTF
+HAVE_VSNPRINTF=-UDONT_HAVE_VSNPRINTF
 BYTE_ORDER=-DLITTLE_ENDIAN
 LONG_BITS=32
 HAVE_FPOS=-DHAVE_NO_FPOS
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/calc-2.12.6.7/zio.c new/calc-2.12.6.8/zio.c
--- old/calc-2.12.6.7/zio.c     2017-06-02 23:50:17.000000000 +0200
+++ new/calc-2.12.6.8/zio.c     2018-09-30 18:32:10.000000000 +0200
@@ -177,7 +177,7 @@
        va_start(ap, fmt);
        vsnprintf(buf, BUFSIZ, fmt, ap);
        va_end(ap);
-       buf[BUFSIZ] = '\0';
+       buf[BUFSIZ] = '\0';     /* paranoia */
        math_str(buf);
 }
 

++++++ checksum.sha-256 ++++++
--- /var/tmp/diff_new_pack.tqKcwA/_old  2018-10-11 11:55:45.673999941 +0200
+++ /var/tmp/diff_new_pack.tqKcwA/_new  2018-10-11 11:55:45.673999941 +0200
@@ -28,6 +28,9 @@
 9df50741dc45a8233509c06c0545eeb59ac2efcb57a88bea87d6f8d3cbdcb460       
calc-2.12.6.7-12.src.rpm
 65a24d18e6f0e6a141904bf22c2da7f269314d45569288120a5eb8a2eceb1b4b       
calc-2.12.6.7-12.x86_64.rpm
 3a4f1acde15941048214f393beb97f9e12fc1ef2585fe0ab026e93ebcd19dd46       
calc-2.12.6.7.tar.bz2
+24b38ea23898bfcee6309d525aa09559d5d82aa93f26a6a5514669956142f953       
calc-2.12.6.8-12.src.rpm
+21662525a435df165ffc499206ffbeb54f1ccd36ffc69eba7261fda57bc0771c       
calc-2.12.6.8-12.x86_64.rpm
+0b92d5c72d26759c2a65bf85de0c111fa9653d9e2756578639100e952fa88a90       
calc-2.12.6.8.tar.bz2
 befb1ef348704f0c4c0a5ebf55b57acf6fa75119e3c8c267379814980ae70e83       
calc-debuginfo-2.12.5.6-12.x86_64.rpm
 83c7f2728496692f19bab7c957ba9867ed436f5048d595883831b7fdf9db0d31       
calc-debuginfo-2.12.6.0-12.x86_64.rpm
 e9aac5102f90ec81f8a3ec0d476d6cd89dc44f43823cff4f9415b10e076e8791       
calc-debuginfo-2.12.6.1-12.x86_64.rpm
@@ -36,6 +39,7 @@
 eeeb978b5741573369d64e80f5d656b0fa69bfd477ed64535f8c77525af98e60       
calc-debuginfo-2.12.6.5-12.x86_64.rpm
 41a261ba48b8e1185cbceff6613fecfa5dde78bf2f92d8ffc7c85a4ffa0f6457       
calc-debuginfo-2.12.6.6-12.x86_64.rpm
 538c14d02ae94243ee678a93d92893df39d11ad317c28573d9a9710388b10e81       
calc-debuginfo-2.12.6.7-12.x86_64.rpm
+92e1c4d2426a3ec74abccd27b0745c1c73b452878250c5ff8868923ef5d06ce8       
calc-debuginfo-2.12.6.8-12.x86_64.rpm
 91949fd27a789eab99817d93d1e4f12424948bb4910f0a23755cab5fed2fb658       
calc-devel-2.12.5.6-12.x86_64.rpm
 e79286c4b40913bdac87759dc5bf50b616af68c6fbda3c53c7703d66e311b9fa       
calc-devel-2.12.6.0-12.x86_64.rpm
 97f16cf48b519285f6c8d10f64e56ac5aa4a50f7bfed82b57d2f711482c30930       
calc-devel-2.12.6.1-12.x86_64.rpm
@@ -44,3 +48,4 @@
 79be5cb9df2f56cb4e90e2fe0d7936e4e1cada96c575beac9c9160917b2c87c4       
calc-devel-2.12.6.5-12.x86_64.rpm
 00ba5e70442ca62e3768ebb7b4cc22216c1c99c63f99b36faccf6aaafc751d50       
calc-devel-2.12.6.6-12.x86_64.rpm
 40f9a9bebcc71978579b1d5d8f75a8282e41fadbc43ede097f86ec51b6bb619a       
calc-devel-2.12.6.7-12.x86_64.rpm
+bfa025a42ecaf9345b49f7f8059179ea0abc40091d2fde7d2090de877f86e18d       
calc-devel-2.12.6.8-12.x86_64.rpm


Reply via email to