* Removed use of HAVE_MEMMOVE as well have_memmv.c.
* Removed the building and including of have_memmv.h.
* Removed the memmove() function in blkcpy.c, used when HAVE_MEMMOVE was NOT defined.
* The libc memmove(3) function as defined by <string.h> is now
required to compile calc because the replacement code in
blkcpy.c q was problematic, especially when regions overlap.
* The HAVE_MEMMOVE make symbol was removed from Makefile.config.
OBS-URL: https://build.opensuse.org/package/show/utilities/calc?expand=0&rev=103
- Workaorund %attr(644…) setting this attribute also on the doc
directory if this is the first statement to copy docs over. The
intention was clearly to set the files non-executable. Simply
letting RPM copy the correct doc files first, using default
attributes, results in the doc-dir having proper access modes.
Fixes that weird build error in Factory
OBS-URL: https://build.opensuse.org/request/show/1224866
OBS-URL: https://build.opensuse.org/package/show/utilities/calc?expand=0&rev=100
* Converted all ASCII tabs to ASCII spaces using a 8 character
tab stop, for all files, except for all Makefiles (plus rpm.mk).
The command `git diff -w` reports no changes. There is no
functionality change in calc: only ASCII tabs to ASCII spaces.
* Fixed trailblank. It was pruning . in its find search.
* Added check for ASCII tabs is non-Makefiles.
* This version will form the basis for the calc v2 to calc v3 fork.
OBS-URL: https://build.opensuse.org/package/show/utilities/calc?expand=0&rev=99
* make clobber now removes the legacy files: have_fpos.h, help/man,
and help/usage. The latter 2 are now managed as help aliases
in help.c.
* make install now removes the legacy files: ${HELPDIR}/man
and ${HELPDIR}/usage.
* Fixed a problem where, when calc was linked with and uses GNU
readline then for any multi-line copy-and-paste, only the first
line is executed. Thanks to GitHub user @malfisya for reporting
this problem, and thanks to GitHub user @gromit1811 for doing
the research needed to overcome deficiencies in the GNU readline
documentation, and for supplying the work-a-round to allow
multi-line copy-and-paste to work as expected!
OBS-URL: https://build.opensuse.org/package/show/utilities/calc?expand=0&rev=96
* Fixed bug that caused calc to fail to compile filepos2z() in file.c
on little endian machines for the Debian apcalc package.
* Removed unused macros from zmath.h:
+ SWAP_B32_IN_HASH(dest, src)
+ SWAP_B16_IN_HASH(dest, src)
+ SWAP_B8_IN_HASH(dest, src)
+ SWAP_B32_IN_FLAG(dest, src)
+ SWAP_B16_IN_FLAG(dest, src)
+ SWAP_B8_IN_FLAG(dest, src)
* When SWAP_HALF_IN_B32(dest, src), SWAP_B32_IN_FULL(dest, src),
SWAP_B16_IN_HALF(dest, src), SWAP_B32_IN_bool(dest, src),
or SWAP_B32_IN_LEN(dest, src), SWAP_HALF_IN_FILEPOS(dest, src)
is an assignment such as:
(*(dest) = *(src))
We now case the dest and src pointers to the proper type before
referencing and performing the assignment.
* Documented unexpected behavior when calc is running in
"shell script mode" and the prompt builtin function is used
without the -p flag. Updated help/prompt, help/unexpected
and the calc man page accordingly.
* Unless calc is given the -p command line option, calc will reopen
stdin as /dev/null instead of just closing stdin. This prevents
subsequent opens grabbing the 1st file descriptor.
* Disable regress tests 4709, 4710, and 7763 because they print
multi-byte sequences, which are just fine for calc, the awk
used to evaluate the regression suite output in some legacy
systems report a "multibyte conversion failure".
* Added a number of missing Makefile variables to the "make env" rule.
* The man command is used to format the calc.1 man page into calc.usage.
OBS-URL: https://build.opensuse.org/package/show/utilities/calc?expand=0&rev=95
* Added ${FSANITIZE} make variable to Makefile.config to hold
common Address Sanitizer (ASAN) optins to modern Linux and macOS.
The Address Sanitizer is NOT enabled not compiled in by default.
Improved comments in Makefile.local for RHEL9.2 (Linux) and for
macOS 14.0 that, when uncommented and calc is recompiled (i.e.,
make clobber all) will enable the Address Sanitizer (ASAN) for calc.
* Fixed memory leaks in the logn, aversin, acoversin, avercos,
acovercos, ahaversin, ahavercos, ahacovercos, aexsec,
aexcsc, and acrd.
* Fixed a compile error in zmath.h that impacted legacy 32-bit Big
Endian machines.
* Fixed the check for <sys/mount.h> when forming have_sys_mount.h.
* Added "STATIC bool blum_initialized = false" to zrandom.c to improve
how the code detects if the Blum-Blum-Shub pseudo-random number
generator is seeded or not, and how to free the state correctly.
OBS-URL: https://build.opensuse.org/package/show/utilities/calc?expand=0&rev=94
* Added the several new trigonometric functions
* Added log2(x [,eps]) builtin function
* The sign element in a ZVALUE is now of type SIGN, which is either
SB32 when MAJOR_VER < 3, or a bool otherwise
* Added new logn(x, n [,eps]) builtin to compute logarithms to base n.
OBS-URL: https://build.opensuse.org/package/show/utilities/calc?expand=0&rev=89
* Under macOS, to reduce dependency chains, we remove functions
and data that are unreachable by the entry point or exported
symbols. In particular, the macOS linker is used with both
"-dead_strip" and "-dead_strip_dylibs".
* The libcalc shared library is now linked with libcustcalc.
OBS-URL: https://build.opensuse.org/package/show/utilities/calc?expand=0&rev=88
* Fix typo in the make debug Makefile rule.
* Fix install of statically linked calc under macOS
* Update comments in Makefile.local about using -fsanitize
* Add Makefile.local comments for macOS reduce dependency chains
* Fix calc when CUSTOM is undefined, remove PASSDOWN values
* Fix use of -dead_strip_dylibs for macOS linker
OBS-URL: https://build.opensuse.org/package/show/utilities/calc?expand=0&rev=86
* The Darwin specific ${DARWIN_ARCH}, thay by default was unset,
is now the ${ARCH_CFLAGS} Makefile variable. Comments about
various "-arch name" have been moved to the ${ARCH_CFLAGS} area.
* Improved the output of the calcinfo rule by adding echos
of various uname values as well as some top Makefile variables.
* Fixed the BUGS file with respect to using `make debug`.
* Added a final ls of `debug.out` for `make debug`.
OBS-URL: https://build.opensuse.org/package/show/utilities/calc?expand=0&rev=84
* Fixed version numbers in two cases in CHANGES that referred
to the 2.14.2.x instead of 2.14.1.x.
* Rename MINGW Makefile variable (a holdover from MINGW32_NT-5.0)
to OSNAME.
* Fixed FUNCPTR typedef in hist.c to fix deprecated compiler warnings.
* Fixed when USE_READLINE, READLINE_LIB, READLINE_EXTRAS, and
READLINE_INCLUDE are set to empty (disable use of the GNU-readline
facility).
* Fix cases of spaces before tabs in Makefile and Makefile.simple.
* Fixed obsolete references to the atoz() in LIBRARY to use the
correct internal function name of str2z().
* Fixed obsolete references to the atoq() in LIBRARY to use the
correct internal function name of str2q().
* Document in help/unexpected that * operator has has a higher
precedence than << in calc, which differs from C.
OBS-URL: https://build.opensuse.org/package/show/utilities/calc?expand=0&rev=76
* Fixed missing <string.h include in have_fpos_pos.c.
* Change calc version from 2.14.1.2 to 2.14.2.3 as part of a test to
build calc RPMs on a reference RHEL8.7 platform (formerly a RHEL7.9
platform).
OBS-URL: https://build.opensuse.org/package/show/utilities/calc?expand=0&rev=72
* Restored use of the #define FPOS_POS_LEN symbol. This refers to
the length of the __pos element (if the __pos element exists),
the fpos_t type (if that type exists).
* Changed SWAP_HALF_IN_FILEPOS(dest, src) mato to use FILEPOS_LEN Little
Endian when FILEPOS is a simple scalar type (i.e., HAVE_FILEPOS_SCALAR
is defined).
* Changed #define HAVE_FPOS to HAVE_FGETSETPOS.
* Corrected comment in have_fpos_pos.h. The HAVE_FPOS_POS symbol was
NOT related to fgetpos & fsetpos but rather if we we have an __pos
element in FILEPOS.
* Changed #define HAVE_NO_FPOS to HAVE_NO_FGETSETPOS.
* Improved comments in have_fpos_pos.h to show why and how
HAVE_FPOS_POS, FPOS_POS_BITS, and FPOS_POS_LEN were defined or undefed.
* Changed showfiles builtin to print sizes cast to (long int) with
the "%ld" printf format to avoid implementations that do not support
the "%lld" printf format specifier.
* Renamed have_fpos.h to have_fgetsetpos.h. Renamed CALC_HAVE_FPOS_H
to CALC_HAVE_FGETSETPOS_H. The make install and the olduninstall
rules remove the any old have_fpos.h that was previously installed.
* Added swap_HALFs(dest, src, len) function to byteswap.c.
* Calc can now handle Big Engian file position sizes that are a
multiple of BASEB bits in length. Before handle Big Engian file
positions could only be 32 and 64 bits in length. This will allow,
for example, a Big Engian file position size of 128 (assuming that
128/BASEB is is an integer).
* Temporary workaround for musl libc systems such as gentoo Linux that
allows them to compile calc and successfully run the regression test.
- Update to 2.14.1.1:
OBS-URL: https://build.opensuse.org/package/show/utilities/calc?expand=0&rev=70
* Fixed alignment of show item section of help command.
* Bug fix: While 0^0 == 1, now for y > 0, 0^y == 0.
* Adjusted cal/test8900.cal to reflect this bug fix.
* Added tests to cal/regress.cal to help verify bug fix is fixed.
OBS-URL: https://build.opensuse.org/package/show/utilities/calc?expand=0&rev=68
* Fixed typo in Makefile.local comment.
- Remove calc-rpmlintrc: lib doesnt call exit() anymore
- Update to 2.14.0.13:
* Minor tweak to seed() builtin. Updated help/srand and help/srandom.
* Moved Makefile.ship into Makefile.
* Removed custom/Makefile.head and custom/Makefile.tail.
* The "README.*" files and "HOWTO.INSTALL" file have been updated.
* By default, compiler warnings have been turned up.
* The readline, history and ncurses libraries are now default.
* We have renamed "stable" as "production".
* We have renamed "unstable" as "tested".
* Fixed bug impacting how have_ustat.h was formed.
- Update to 2.14.0.12:
* Drop support for SunOS, IRIX and MINGW32_NT-5.0 targets.
* Drop support for CLOCK_SGI_CYCLE. Drop testing for __MSDOS__.
* Minor improvement of various help files. Made format of help
files more consistent.
* Corrected a few comments in zrandom.c, including a case where
the comment referred to 1007 when it should have used 2^32.
* Improved seed() generation. Improved some comments in seed.c.
Added have_environ.c to build have_environ.h in order to
determine if: extern char **environ; /* user environment */
is an valid external symbol.
* Fixed documentation that referred to the old additive 55
generator. We have been using the subtractive 100 in place
of the additive 55 generator for a while now.
* Fixed depend rule for custom/Makefile.
OBS-URL: https://build.opensuse.org/package/show/utilities/calc?expand=0&rev=65
* Fixed typo in cal/statistics.cal
* Fixed an old Windoz pun in README.WINDOWS
* Fixed a really obscure bug in the internal initconstants()
function of const.c that has been sitting for over 31 years!
* Fixed issues identied by the default CodeUL GitHub security code scan:
+ Wrong type of arguments to printf in have_fpos_pos.c
+ Multiplication result converted to larger type in zfunc.c
OBS-URL: https://build.opensuse.org/package/show/utilities/calc?expand=0&rev=64
* Added builtin functions to convert between degrees and
degrees, minutes and seconds under the config("mod")
See help/d2dms and help/d2dm.
* Added builtin functions to convert between gradians and
gradians, minutes and seconds under the config("mod")
See help/g2gms and help/g2gm.
* Added builtin functions to convert between hours and
hours, minutes and seconds under the config("mod")
See help/h2hms and help/h2hm.
* Renumbered regression tests 3408 thru 3437, to 9102 thru 9131.
* Updated Added hms.cal resource file to use h2hms() builtin.
* Updated Added dms.cal resource file to use d2dms() builtin.
* Fix minor typo in help/mod SYNOPSIS.
* Fix minor typo in help/quo SYNOPSIS.
* Added a few more examples to help/strcmp.
* Added builtin functions to convert between degrees, minutes and
seconds and degrees under the config("mod")
See help/dms2d and help/dm2d.
* Added builtin functions to convert between gradians, minutes and
seconds and gradians under the config("mod")
See help/g2gms and help/g2gm.
* Added builtin functions to convert between hours, minutes and
seconds and hours under the config("mod"):
See help/hms2h and help/hm2h.
OBS-URL: https://build.opensuse.org/package/show/utilities/calc?expand=0&rev=62
* The clean and clobber makefile rules no longer list custom/Makefile
as a dependency.
* Unfortunately due to the complex dependency issues between
Makefile, Makefile.ship and custom/Makefile, parallel GNU make
is NOT recommended.
* Fixed a few typos in CHANGES.
* As a side note: We stayed v2.13.x was kept for only a short time.
The move to 2.14.x was motivated by non-compatible changes due to
the default order of CALCRC, plus some new builtin functions.
* More changes are likely, so we might see another v2.14.0.x release
before things are declared "recommended stable".
* Not that we wan to discourage people from trying v2.14.0, you should
try it. We just want things to become stable and well field tested
before we reach the "recommended stable" release state.
OBS-URL: https://build.opensuse.org/package/show/utilities/calc?expand=0&rev=61
* The :-separated default CALCRC value has been reversed.
The default CALCRC was:
${CALC_SHAREDIR}/startup:~/.calcrc:./.calcinit
The default CALCRC is now:
./.calcinit:~/.calcrc:${CALC_SHAREDIR}/startup
See "help environment" for details.
* Added engineering mode as per a GitHub pull request:
; config("mode","eng"),
; 10^41
100e39
or for example:
; base(1000),
; 2^23209-1
~402.87411577898877818187e6984
For more information see: help base
* Added regression test code for engineering mode. Improved and
expanded regression test code related to the base() and base2()
builtin functions.
* Fixed a critical bug in the above mentioned pull request where
a call to base2(1000) would make calc unstable and likely to
dump core.
OBS-URL: https://build.opensuse.org/package/show/utilities/calc?expand=0&rev=60
* Replaced /usr/local with the use of ${PREFIX} in calc Makefiles.
The ${PREFIX} is not the same as ${T}. The ${T} specifies
a top level directory under which calc installs things.
While usually ${T} is empty, it can be specific path
as if calc where "chrooted" during an install.
The ${PREFIX} value, during install, is a path between
the top level ${T} install directory and the object
such as an include file.
* Corrected a few more typos in Makefile comments.
- Added Makefile.local, a file with a single comment. The main
Makefile includes Makefile.local just before the first all rule.
One may override any Makefile setting by modifying Makefile.local.
For example, Makefile.local could force BLD_TYPE:
HAVE_STRING_H:= YES
HAVE_TIMES_H:= YES
SED:= /usr/local/bin/nsed
- Added ${LOC_MKF} to specify the make of the file that is
included just before the all file. So one could place
the above override lines into a different file and call
make changing the ${LOC_MKF} value. For example:
- make LOC_MKF=Makefile.private clobber all chk
- Updated HOWTO.INSTALL to mention Makefile.local.
OBS-URL: https://build.opensuse.org/package/show/utilities/calc?expand=0&rev=58
* Fixed typo (missing quotes) in the env rule.
* Fixed intendation problem in CHANGES.
* Combined 2.12.9.1 changes into the 2.12.8.2 to 2.12.9.0
range, and thus renamed the range to 2.12.8.2 to 2.12.9.1.
* Fixed issues related to building Makefile.simple.
* Fixed how the Makefile variable MANPATH is set for macOS.
* Added a bunch of information to the near bottom of HOWTO.INSTALL
on calc Makefiles. This information discusses the various
Makefiles found in the calc source.
* Added comments in various calc Makefiles about their origin.
In particular, for Makefiles that are constructed such as
Makefile.simple, custom/Makefile and custom/Makefile.simple
there are comments about how they were made.
* For all calc Makefiles, including those in sub-directories,
near the top there is now a line of the form:
# SRC: ... some message about the origin ...
* Fixed how the calc(1) man page is installed under macOS.
* Fixed how calc man page in ${CATDIR} is formed.
* Fixed how Makefile.simple is formed.
* Fixed the #! calc script argument processing. The initial #!
line must end in a -f. For example, if calc is in /usr/local/bin/calc,
then the following would be the first line of a calc script:
* It is common that -q be usde with a calc script, so assuming the
same /usr/local/bin/calc path
* Use of -s in the #! first line of a calc script is not needed
since -f implies -f.
* The argv() will now return values more typical of C's main().
Before it returned one less than the number of arguments. Now,
for example, when calc is given 2 args, argv() will return 3.
OBS-URL: https://build.opensuse.org/package/show/utilities/calc?expand=0&rev=55
* Added notes to help/unexpected about:
display() will limit the number of digits printed after decimal point
%d will format after the decimal point for non-integer numeric values
%x will format as fractions for non-integer numeric values
fprintf(fd, "%d\n", huge_value) may need fflush(fd) to finish
* Fixed Makefile dependencies for the args.h rule.
* Fixed Makefile cases where echo with -n is used. On some systems,
/bin/sh does not use -n, so we must call /bin/echo -n instead
via the ${ECHON} Makefile variable.
* Add missing standard tools to sub-Makefiles to make them
easier to invoke directly.
* Sort lists of standard tool Makefile variables and remove duplicates.
* Declare the SHELL at the top of Makefiles.
* Fixed the depend rule in the custom Makefile.
* Improved the messages produced by the depend in the Makefiles.
* Changed the UNUSED define in have_unused.h to be a macro with
a parameter. Changed all use of UNUSED in *.c to be UNUSED(x).
* Removed need for HAVE_UNUSED in building the have_unused.h file.
* CCBAN is given to ${CC} in order to control if banned.h is in effect.
* The banned.h attempts to ban the use of certain dangerous functions
that, if improperly used, could compromise the computational integrity
if calculations.
* In the case of calc, we are motivated in part by the desire for calc
to correctly calculate: even during extremely long calculations.
* If UNBAN is NOT defined, then calling certain functions
will result in a call to a non-existent function (link error).
OBS-URL: https://build.opensuse.org/package/show/utilities/calc?expand=0&rev=53
* Fixed how the *.tar.bz2 are formed. The calc-2.12.8.0.tar.bz2 file
that was formed for calc version 2.12.8.0 was missing most files.
* Expanded 'make chk' to also verify that 'make distchk' and 'make
distlist' execute successfully. This will help check a regression
of the bug that produced the bogus calc-2.12.8.0.tar.bz2 file.
* Added additional regression tests related 0^(zero_expression)==1.
- Update to 2.12.8.0:
* Fixed a mistake in "help intro" where some inserted text changed
the value of "." and thus made the next result incorrect.
* Clarified in "help factor" that 1 is returned if no
factor below the limit was found.
* Removed Makefile variable ${MAKEFILE_REV}.
* The missing cscript/square.calc file has been restored.
* Fixed compiler errors and warnings related to GCC. In particular,
gcc/9.3.1 and gcc/10.2.1 now compile calc without any compiler
errors or warnings, even with -Werror -Wextra -pedantic.
* To print out information about the calc compilation
environment, we added the following make rule:
* make calcinfo
* Improved how 'make debug' operates.
* Created a new calc bug report Email address. Created a new
calc question Email address. Created a new calc contribution
Email address. See the BUGS file for details.
* Added "help questions" to print the QUESTIONS help file.
* If the environment variable $CALCHELP is defined and is non-empty,
then calc help files will be in the directory by the $CALCHISTFILE
environment variable.
* If the environment variable $CALCCUSTOMHELP is defined and is
OBS-URL: https://build.opensuse.org/package/show/utilities/calc?expand=0&rev=47
- Update to 2.12.7.6:
* The missing cscript/square.calc file has been restored.
- Update to 2.12.7.5:
* Requiring calc shell scripts to use -s -f at the end of the
initial #! line.
* Fixed /tmp/mersenne example in calc(1) man page.
* Added make variable ${ARCH_CFLAGS}. The ${ARCH_CFLAGS} is
added after ${CCMISC} and before ${EXTRA_CFLAGS} when building
the ${CFLAGS} for compiling C code. are ${CC} when compiling
C files. The default value is:
* By default, the calc history file is located in ~/.calc_history.
Now, if the environment variable $CALCHISTFILE is defined
and is non-empty, then calc history file will be defined
by the $CALCHISTFILE environment variable.
* Calc as defined 0^0 as 1. However in the past, 0 raised to
an expression that evaluated to zero returned 1. The result
was that 0^0 was different than 0^(6-6) or even 0^(0).
Now, calc will return 1 for 0^(0) and 0^zero when zero == 0.
OBS-URL: https://build.opensuse.org/request/show/869129
OBS-URL: https://build.opensuse.org/package/show/utilities/calc?expand=0&rev=44