Skip to content

calc 2.16.0.2 release

Choose a tag to compare

@lcn2 lcn2 released this 22 Dec 03:39
· 30 commits to master since this release

The following are the changes from calc version 2.16.0.1 to 2.16.0.2:

Fixed bug, when custom functions were enabled, where returning a
value from the sysinfo custom function such as:

    custom("sysinfo","DEFAULTSHELL")

would cause a segmentation violation due to an improper `free(3)`.

Fixed a memory leak that was related to the sysinfo custom function.

Added paranoia checks on shell value when processing commands
read from the tty that start with the "!" character.

Improved code that converts between UPPER CASE and lower case.

Verify that the default underlying shell defaults to the shell
as given by the `$SHELL` environment variable if that environment
variable is set and is NOT empty, otherwise the `DEFAULTSHELL`
(as defined in `calc.h`) value will be used as the underlying shell.

Fixed memory leaks related to various environment variable values
used by calc code.  All various environment variable values used
used by calc code are processed by `strdup(3)`.

The `libcalc_call_me_last()` function frees any non-NULL values set
by `initenv()`.

If the readline tilde_expand fails to expand "~/.calc_history",
then ".calc_history" will be used as the name of the history file.

Added HIST_NULL_HIST code to indicate that name of the history file
could not be set.

The following are the changes from calc version 2.16.0.0 to 2.16.0.1:

Adding support for "pipe/fork/exec and friends" via custom functions
thanks to a contribution by GitHub user @vike2000.

We to address a bug after adding support for pipe/fork/exec (and
friends) via custom functions

TODO: Before the calc v2 to calc v3 fork, we need to fix a critical
[bug](https://github.com/lcn2/calc/issues/103#issuecomment-3194363618)
related to heap-use-after-free memory errors.  We anticipate this
will involve releasing a bug fix version of calc and then allow
for extensive testing before declaring the resulting 2.16.0.x as a
stable release.  From that 2.16.0.x stable release that a new version
2.16.1.0 stable release, with no changes other than a new version
number and git tag as the basis for the calc v2 to calc v3 fork.