mirror of
https://github.com/lcn2/calc.git
synced 2025-08-19 01:13:27 +03:00
Compare commits
34 Commits
prod-2.15.
...
v2.15.1.2
Author | SHA1 | Date | |
---|---|---|---|
|
db83b7383f | ||
|
d9245844aa | ||
|
8542143463 | ||
|
50cb6ec798 | ||
|
41951e2c09 | ||
|
b9cee333b2 | ||
|
e35bb7ffa6 | ||
|
c5b64c373b | ||
|
4017579aeb | ||
|
88fb6a4e47 | ||
|
7eb7e9de1f | ||
|
42d5749da2 | ||
|
bbcbb76369 | ||
|
232b3bddef | ||
|
5ac3e495b2 | ||
|
56153d6615 | ||
|
2a4f399593 | ||
|
160de4bb38 | ||
|
db77e29a23 | ||
|
fe9cefe6ef | ||
|
ea4c50ade0 | ||
|
7f72908b95 | ||
|
a547c36f0a | ||
|
1e2698b42d | ||
|
33815f49e6 | ||
|
732279bcc3 | ||
|
7f4e1eb68d | ||
|
1232b59949 | ||
|
90feefc622 | ||
|
c97ee188ad | ||
|
ae85846839 | ||
|
e096bd9ad8 | ||
|
884b1bc81b | ||
|
a30a518ba7 |
45
.github/workflows/codeql-analysis.yml
vendored
45
.github/workflows/codeql-analysis.yml
vendored
@@ -13,10 +13,10 @@ name: "CodeQL"
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
branches: [ "master" ]
|
||||
pull_request:
|
||||
# The branches below must be a subset of the branches above
|
||||
branches: [ master ]
|
||||
branches: [ "master" ]
|
||||
schedule:
|
||||
- cron: '41 1 * * 6'
|
||||
|
||||
@@ -33,39 +33,48 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
language: [ 'cpp' ]
|
||||
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
|
||||
# Learn more:
|
||||
# https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
|
||||
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
|
||||
# Use only 'java' to analyze code written in Java, Kotlin or both
|
||||
# Use only 'javascript' to analyze code written in JavaScript, TypeScript or both
|
||||
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v4
|
||||
- name: Setup node
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: '20'
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v2
|
||||
uses: github/codeql-action/init@v3
|
||||
with:
|
||||
languages: ${{ matrix.language }}
|
||||
# If you wish to specify custom queries, you can do so here or in a config file.
|
||||
# By default, queries listed here will override any specified in a config file.
|
||||
# Prefix the list here with "+" to use these queries and those in the config file.
|
||||
# queries: ./path/to/local/query, your-org/your-repo/queries@main
|
||||
|
||||
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
||||
# Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
|
||||
# queries: security-extended,security-and-quality
|
||||
|
||||
|
||||
# Autobuild attempts to build any compiled languages (C/C++, C#, Go, or Java).
|
||||
# If this step fails, then you should remove it and run the build manually (see below)
|
||||
- name: Autobuild
|
||||
uses: github/codeql-action/autobuild@v2
|
||||
uses: github/codeql-action/autobuild@v3
|
||||
|
||||
# ℹ️ Command-line programs to run using the OS shell.
|
||||
# 📚 https://git.io/JvXDl
|
||||
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
|
||||
|
||||
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
|
||||
# and modify them (or add more) to build your code if your project
|
||||
# uses a compiled language
|
||||
# If the Autobuild fails above, remove it and uncomment the following three lines.
|
||||
# modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
|
||||
|
||||
#- run: |
|
||||
# make bootstrap
|
||||
# make release
|
||||
# - run: |
|
||||
# echo "Run, Build Application using script"
|
||||
# ./location_of_script_within_repo/buildscript.sh
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v2
|
||||
uses: github/codeql-action/analyze@v3
|
||||
with:
|
||||
category: "/language:${{matrix.language}}"
|
||||
|
15
.gitignore
vendored
15
.gitignore
vendored
@@ -4,8 +4,8 @@
|
||||
#
|
||||
*~
|
||||
*.BAK
|
||||
.DS_Store
|
||||
core*
|
||||
.DS_Store
|
||||
*.dSYM/
|
||||
*.exe
|
||||
*.[oa]
|
||||
@@ -21,8 +21,6 @@ core*
|
||||
#
|
||||
# We sort the list below via: sort -d -u
|
||||
#
|
||||
Makefile.our
|
||||
NOTES
|
||||
align32
|
||||
align32.h
|
||||
align32_tmp
|
||||
@@ -42,13 +40,13 @@ chk_c
|
||||
conf.h
|
||||
const_tmp
|
||||
cscript/4dsphere
|
||||
cscript/README
|
||||
cscript/.all
|
||||
cscript/fproduct
|
||||
cscript/mersenne
|
||||
cscript/piforever
|
||||
cscript/plus
|
||||
cscript/powerterm
|
||||
cscript/README
|
||||
cscript/simple
|
||||
cscript/square
|
||||
custom/.all
|
||||
@@ -92,8 +90,6 @@ have_gettime
|
||||
have_gettime.h
|
||||
have_inttypes.h
|
||||
have_limits.h
|
||||
have_memmv
|
||||
have_memmv.h
|
||||
have_newstr
|
||||
have_newstr.h
|
||||
have_offscl
|
||||
@@ -128,8 +124,6 @@ have_urandom.h
|
||||
have_ustat
|
||||
have_ustat.h
|
||||
have_varvs
|
||||
help/COPYING
|
||||
help/COPYING-LGPL
|
||||
help/.all
|
||||
help/binding
|
||||
help/bindings
|
||||
@@ -140,6 +134,8 @@ help/change
|
||||
help/changes
|
||||
help/contrib
|
||||
help/copy
|
||||
help/COPYING
|
||||
help/COPYING-LGPL
|
||||
help/cscript
|
||||
help/custom_cal
|
||||
help/errorcode
|
||||
@@ -163,8 +159,9 @@ libcustcalc.*
|
||||
ll_tmp
|
||||
longbits
|
||||
longbits.h
|
||||
memmv_tmp
|
||||
Makefile.our
|
||||
newstr_tmp
|
||||
NOTES
|
||||
offscl_tmp
|
||||
outfile
|
||||
posscl_tmp
|
||||
|
46
CHANGES
46
CHANGES
@@ -1,3 +1,49 @@
|
||||
The following are the changes from calc version 2.15.1.2 to 2.15.1.2:
|
||||
|
||||
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.
|
||||
Thanks to GitHub user @skeeto for reporting this problem.
|
||||
|
||||
|
||||
The following are the changes from calc version 2.15.1.1 to 2.15.1.1:
|
||||
|
||||
Change Makefile.config to, if not using not HomeBrew, then try to
|
||||
detect macports and/or using /opt/local/{lib,include}.
|
||||
|
||||
Put full date range (1989-2025) of calc source into version.h.
|
||||
|
||||
Version 2.16.0.0 will form the basis for the calc v2 to calc v3 fork.
|
||||
|
||||
|
||||
The following are the changes from calc version 2.15.0.7 to 2.15.1.0:
|
||||
|
||||
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.
|
||||
|
||||
|
||||
The following are the changes from calc version 2.15.0.6 to 2.15.0.7:
|
||||
|
||||
Thanks to GitHub user @bambooleafz a critical bug (GitHub issue
|
||||
#148 - https://github.com/lcn2/calc/issues/148) they identified
|
||||
was fixed.
|
||||
|
||||
|
||||
The following are the changes from calc version 2.15.0.5 to 2.15.0.6:
|
||||
|
||||
Thanks to GitHub user @ashamedbit, a long standing memory leak in
|
||||
zrandom.c has been fixed.
|
||||
|
||||
|
||||
The following are the changes from calc version 2.15.0.4 to 2.15.0.5:
|
||||
|
||||
make clobber now removes the legacy files: have_fpos.h, help/man,
|
||||
|
117
Makefile
117
Makefile
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# calc - arbitrary precision calculator
|
||||
#
|
||||
# Copyright (C) 1999-2018,2021-2023 Landon Curt Noll
|
||||
# Copyright (C) 1999-2018,2021-2025 Landon Curt Noll
|
||||
#
|
||||
# Suggestion: Read the HOWTO.INSTALL file.
|
||||
#
|
||||
@@ -173,7 +173,7 @@ LIB_H_SRC= alloc.h attribute.h banned.h blkcpy.h block.h bool.h byteswap.h \
|
||||
BUILD_H_SRC= align32.h args.h charbit.h conf.h endian_calc.h errsym.h fposval.h \
|
||||
have_arc4random.h have_ban_pragma.h have_const.h have_environ.h \
|
||||
have_fgetsetpos.h have_fpos_pos.h have_getpgid.h have_getprid.h \
|
||||
have_getsid.h have_gettime.h have_inttypes.h have_limits.h have_memmv.h \
|
||||
have_getsid.h have_gettime.h have_inttypes.h have_limits.h \
|
||||
have_newstr.h have_offscl.h have_posscl.h have_rusage.h have_statfs.h \
|
||||
have_stdbool.h have_stdint.h have_stdlib.h have_strdup.h have_string.h \
|
||||
have_strlcat.h have_strlcpy.h have_sys_mount.h have_sys_param.h \
|
||||
@@ -191,7 +191,7 @@ BUILD_C_SRC=
|
||||
UTIL_C_SRC= align32.c charbit.c chk_c.c endian.c fposval.c have_arc4random.c \
|
||||
have_ban_pragma.c have_const.c have_environ.c have_fgetsetpos.c \
|
||||
have_fpos_pos.c have_getpgid.c have_getprid.c have_getsid.c \
|
||||
have_gettime.c have_memmv.c have_newstr.c have_offscl.c have_posscl.c \
|
||||
have_gettime.c have_newstr.c have_offscl.c have_posscl.c \
|
||||
have_rusage.c have_statfs.c have_stdvs.c have_strdup.c have_strlcat.c \
|
||||
have_strlcpy.c have_uid_t.c have_unused.c have_ustat.c have_varvs.c \
|
||||
longbits.c
|
||||
@@ -207,7 +207,7 @@ UTIL_MISC_SRC= fposval.h.def
|
||||
#
|
||||
UTIL_OBJS= endian.o longbits.o have_newstr.o have_uid_t.o \
|
||||
have_const.o fposval.o have_fgetsetpos.o have_fpos_pos.o \
|
||||
try_strarg.o have_stdvs.o have_varvs.o have_posscl.o have_memmv.o \
|
||||
try_strarg.o have_stdvs.o have_varvs.o have_posscl.o \
|
||||
have_ustat.o have_getsid.o have_getpgid.o have_environ.o \
|
||||
have_gettime.o have_getprid.o ver_calc.o have_rusage.o have_strdup.o \
|
||||
have_unused.o have_ban_pragma.o have_strlcpy.o have_strlcat.o \
|
||||
@@ -216,7 +216,7 @@ UTIL_OBJS= endian.o longbits.o have_newstr.o have_uid_t.o \
|
||||
# these temp files may be created (and removed) during the build of BUILD_C_SRC
|
||||
#
|
||||
UTIL_TMP= ll_tmp fpos_tmp fposval_tmp const_tmp uid_tmp newstr_tmp vs_tmp \
|
||||
memmv_tmp offscl_tmp posscl_tmp newstr_tmp \
|
||||
offscl_tmp posscl_tmp newstr_tmp \
|
||||
getsid_tmp gettime_tmp getprid_tmp rusage_tmp strdup_tmp
|
||||
|
||||
# these utility executables may be created in the process of
|
||||
@@ -1234,7 +1234,7 @@ have_fpos_pos.h: have_fpos_pos.c have_fgetsetpos.h have_posscl.h have_string.h \
|
||||
|
||||
fposval.h: fposval.c have_fgetsetpos.h have_fpos_pos.h have_offscl.h have_posscl.h \
|
||||
endian_calc.h banned.h have_ban_pragma.h fposval.h.def alloc.h \
|
||||
have_newstr.h have_memmv.h have_string.h have_const.h have_string.h \
|
||||
have_newstr.h have_string.h have_const.h have_string.h \
|
||||
have_unused.h have_stdbool.h ${MK_SET}
|
||||
${Q} ${RM} -f fposval_tmp $@
|
||||
${H} echo 'forming $@'
|
||||
@@ -1622,46 +1622,6 @@ have_newstr.h: have_newstr.c banned.h have_ban_pragma.h have_string.h ${MK_SET}
|
||||
${TRUE}; \
|
||||
fi
|
||||
|
||||
have_memmv.h: have_memmv.c banned.h have_ban_pragma.h have_string.h ${MK_SET}
|
||||
${Q} ${RM} -f have_memmv have_memmv.o memmv_tmp $@
|
||||
${H} echo 'forming $@'
|
||||
${Q} echo '/*' > $@
|
||||
${Q} echo ' * DO NOT EDIT -- generated by the Makefile rule $@' >> $@
|
||||
${Q} echo ' */' >> $@
|
||||
${Q} echo '' >> $@
|
||||
${Q} echo '' >> $@
|
||||
${Q} echo '#if !defined(CALC_HAVE_MEMMV_H)' >> $@
|
||||
${Q} echo '#define CALC_HAVE_MEMMV_H' >> $@
|
||||
${Q} echo '' >> $@
|
||||
${Q} echo '' >> $@
|
||||
${Q} echo '/* do we have or want memmove()? */' >> $@
|
||||
${Q} ${RM} -f have_memmv.o have_memmv
|
||||
-${Q} ${LCC} ${ICFLAGS} ${HAVE_MEMMOVE} have_memmv.c -c ${S} \
|
||||
|| ${TRUE}
|
||||
-${Q} ${LCC} ${ILDFLAGS} have_memmv.o -o have_memmv${EXT} ${S} \
|
||||
|| ${TRUE}
|
||||
-${Q} ./have_memmv${EXT} > memmv_tmp ${E} \
|
||||
|| ${TRUE}
|
||||
-${Q} if [ -s memmv_tmp ]; then \
|
||||
${CAT} memmv_tmp >> $@; \
|
||||
else \
|
||||
echo '#undef HAVE_MEMMOVE /* no */' >> $@; \
|
||||
fi
|
||||
${Q} echo '' >> $@
|
||||
${Q} echo '' >> $@
|
||||
${Q} echo '#endif /* !CALC_HAVE_MEMMV_H */' >> $@
|
||||
${Q} ${RM} -f have_memmv have_memmv.o memmv_tmp
|
||||
${H} echo '$@ formed'
|
||||
-@if [ -z "${Q}" ]; then \
|
||||
echo ''; \
|
||||
echo '=-=-= start of $@ =-=-='; \
|
||||
${CAT} $@; \
|
||||
echo '=-=-= end of $@ =-=-='; \
|
||||
echo ''; \
|
||||
else \
|
||||
${TRUE}; \
|
||||
fi
|
||||
|
||||
have_ustat.h: have_ustat.c banned.h have_ban_pragma.h ${MK_SET}
|
||||
${Q} ${RM} -f ustat_tmp $@
|
||||
${H} echo 'forming $@'
|
||||
@@ -2207,7 +2167,7 @@ errsym.h: errcode${EXT}
|
||||
fi
|
||||
|
||||
errcode${EXT}: errtbl.c attribute.h bool.h errtbl.h have_const.h have_stdbool.h have_newstr.h \
|
||||
have_memmv.h endian_calc.h longbits.h ${MK_SET}
|
||||
endian_calc.h longbits.h ${MK_SET}
|
||||
${RM} -f $@
|
||||
${LCC} ${ICFLAGS} ${ILDFLAGS} -DERRCODE_SRC errtbl.c -o $@
|
||||
|
||||
@@ -2650,7 +2610,7 @@ version:
|
||||
@echo ${VERSION}
|
||||
|
||||
ver_calc${EXT}: version.c strl.c have_string.h have_const.h have_newstr.h \
|
||||
have_strlcpy.h have_memmv.h have_strlcat.h endian_calc.h longbits.h \
|
||||
have_strlcpy.h have_strlcat.h endian_calc.h longbits.h \
|
||||
have_unused.h charbit.h have_stdbool.h
|
||||
${RM} -f $@
|
||||
${LCC} ${ICFLAGS} -DCALC_VER ${ILDFLAGS} version.c strl.c -o $@
|
||||
@@ -2922,7 +2882,6 @@ env:
|
||||
@echo 'HAVE_GETTIME=${HAVE_GETTIME}'; echo ''
|
||||
@echo 'HAVE_INTTYPES_H=${HAVE_INTTYPES_H}'; echo ''
|
||||
@echo 'HAVE_LIMITS_H=${HAVE_LIMITS_H}'; echo ''
|
||||
@echo 'HAVE_MEMMOVE=${HAVE_MEMMOVE}'; echo ''
|
||||
@echo 'HAVE_NEWSTR=${HAVE_NEWSTR}'; echo ''
|
||||
@echo 'HAVE_OFFSCL=${HAVE_OFFSCL}'; echo ''
|
||||
@echo 'HAVE_POSSCL=${HAVE_POSSCL}'; echo ''
|
||||
@@ -4082,7 +4041,6 @@ addop.o: hash.h
|
||||
addop.o: have_ban_pragma.h
|
||||
addop.o: have_const.h
|
||||
addop.o: have_limits.h
|
||||
addop.o: have_memmv.h
|
||||
addop.o: have_newstr.h
|
||||
addop.o: have_stdbool.h
|
||||
addop.o: have_stdlib.h
|
||||
@@ -4124,7 +4082,6 @@ assocfunc.o: hash.h
|
||||
assocfunc.o: have_ban_pragma.h
|
||||
assocfunc.o: have_const.h
|
||||
assocfunc.o: have_limits.h
|
||||
assocfunc.o: have_memmv.h
|
||||
assocfunc.o: have_newstr.h
|
||||
assocfunc.o: have_stdbool.h
|
||||
assocfunc.o: have_stdlib.h
|
||||
@@ -4159,7 +4116,6 @@ blkcpy.o: have_ban_pragma.h
|
||||
blkcpy.o: have_const.h
|
||||
blkcpy.o: have_fgetsetpos.h
|
||||
blkcpy.o: have_limits.h
|
||||
blkcpy.o: have_memmv.h
|
||||
blkcpy.o: have_newstr.h
|
||||
blkcpy.o: have_stdbool.h
|
||||
blkcpy.o: have_stdlib.h
|
||||
@@ -4190,7 +4146,6 @@ block.o: hash.h
|
||||
block.o: have_ban_pragma.h
|
||||
block.o: have_const.h
|
||||
block.o: have_limits.h
|
||||
block.o: have_memmv.h
|
||||
block.o: have_newstr.h
|
||||
block.o: have_stdbool.h
|
||||
block.o: have_stdlib.h
|
||||
@@ -4218,7 +4173,6 @@ byteswap.o: errtbl.h
|
||||
byteswap.o: have_ban_pragma.h
|
||||
byteswap.o: have_const.h
|
||||
byteswap.o: have_limits.h
|
||||
byteswap.o: have_memmv.h
|
||||
byteswap.o: have_newstr.h
|
||||
byteswap.o: have_stdbool.h
|
||||
byteswap.o: have_stdlib.h
|
||||
@@ -4250,7 +4204,6 @@ calc.o: hash.h
|
||||
calc.o: have_ban_pragma.h
|
||||
calc.o: have_const.h
|
||||
calc.o: have_limits.h
|
||||
calc.o: have_memmv.h
|
||||
calc.o: have_newstr.h
|
||||
calc.o: have_stdbool.h
|
||||
calc.o: have_stdlib.h
|
||||
@@ -4309,7 +4262,6 @@ codegen.o: hash.h
|
||||
codegen.o: have_ban_pragma.h
|
||||
codegen.o: have_const.h
|
||||
codegen.o: have_limits.h
|
||||
codegen.o: have_memmv.h
|
||||
codegen.o: have_newstr.h
|
||||
codegen.o: have_stdbool.h
|
||||
codegen.o: have_stdlib.h
|
||||
@@ -4347,7 +4299,6 @@ comfunc.o: errtbl.h
|
||||
comfunc.o: have_ban_pragma.h
|
||||
comfunc.o: have_const.h
|
||||
comfunc.o: have_limits.h
|
||||
comfunc.o: have_memmv.h
|
||||
comfunc.o: have_newstr.h
|
||||
comfunc.o: have_stdbool.h
|
||||
comfunc.o: have_stdlib.h
|
||||
@@ -4372,7 +4323,6 @@ commath.o: errtbl.h
|
||||
commath.o: have_ban_pragma.h
|
||||
commath.o: have_const.h
|
||||
commath.o: have_limits.h
|
||||
commath.o: have_memmv.h
|
||||
commath.o: have_newstr.h
|
||||
commath.o: have_stdbool.h
|
||||
commath.o: have_stdlib.h
|
||||
@@ -4401,7 +4351,6 @@ config.o: hash.h
|
||||
config.o: have_ban_pragma.h
|
||||
config.o: have_const.h
|
||||
config.o: have_limits.h
|
||||
config.o: have_memmv.h
|
||||
config.o: have_newstr.h
|
||||
config.o: have_stdbool.h
|
||||
config.o: have_stdlib.h
|
||||
@@ -4440,7 +4389,6 @@ const.o: hash.h
|
||||
const.o: have_ban_pragma.h
|
||||
const.o: have_const.h
|
||||
const.o: have_limits.h
|
||||
const.o: have_memmv.h
|
||||
const.o: have_newstr.h
|
||||
const.o: have_stdbool.h
|
||||
const.o: have_stdlib.h
|
||||
@@ -4473,7 +4421,6 @@ custom.o: hash.h
|
||||
custom.o: have_ban_pragma.h
|
||||
custom.o: have_const.h
|
||||
custom.o: have_limits.h
|
||||
custom.o: have_memmv.h
|
||||
custom.o: have_newstr.h
|
||||
custom.o: have_stdbool.h
|
||||
custom.o: have_stdlib.h
|
||||
@@ -4509,7 +4456,6 @@ errtbl.o: func.h
|
||||
errtbl.o: hash.h
|
||||
errtbl.o: have_const.h
|
||||
errtbl.o: have_limits.h
|
||||
errtbl.o: have_memmv.h
|
||||
errtbl.o: have_newstr.h
|
||||
errtbl.o: have_stdbool.h
|
||||
errtbl.o: have_stdlib.h
|
||||
@@ -4546,7 +4492,6 @@ file.o: have_const.h
|
||||
file.o: have_fgetsetpos.h
|
||||
file.o: have_fpos_pos.h
|
||||
file.o: have_limits.h
|
||||
file.o: have_memmv.h
|
||||
file.o: have_newstr.h
|
||||
file.o: have_stdbool.h
|
||||
file.o: have_stdlib.h
|
||||
@@ -4576,7 +4521,6 @@ fposval.o: have_const.h
|
||||
fposval.o: have_fgetsetpos.h
|
||||
fposval.o: have_fpos_pos.h
|
||||
fposval.o: have_limits.h
|
||||
fposval.o: have_memmv.h
|
||||
fposval.o: have_newstr.h
|
||||
fposval.o: have_offscl.h
|
||||
fposval.o: have_posscl.h
|
||||
@@ -4610,7 +4554,6 @@ func.o: have_ban_pragma.h
|
||||
func.o: have_const.h
|
||||
func.o: have_fgetsetpos.h
|
||||
func.o: have_limits.h
|
||||
func.o: have_memmv.h
|
||||
func.o: have_newstr.h
|
||||
func.o: have_rusage.h
|
||||
func.o: have_stdbool.h
|
||||
@@ -4657,7 +4600,6 @@ hash.o: hash.h
|
||||
hash.o: have_ban_pragma.h
|
||||
hash.o: have_const.h
|
||||
hash.o: have_limits.h
|
||||
hash.o: have_memmv.h
|
||||
hash.o: have_newstr.h
|
||||
hash.o: have_stdbool.h
|
||||
hash.o: have_stdlib.h
|
||||
@@ -4709,10 +4651,6 @@ have_getsid.o: have_unistd.h
|
||||
have_gettime.o: banned.h
|
||||
have_gettime.o: have_ban_pragma.h
|
||||
have_gettime.o: have_gettime.c
|
||||
have_memmv.o: banned.h
|
||||
have_memmv.o: have_ban_pragma.h
|
||||
have_memmv.o: have_memmv.c
|
||||
have_memmv.o: have_string.h
|
||||
have_newstr.o: banned.h
|
||||
have_newstr.o: have_ban_pragma.h
|
||||
have_newstr.o: have_newstr.c
|
||||
@@ -4787,7 +4725,6 @@ help.o: hash.h
|
||||
help.o: have_ban_pragma.h
|
||||
help.o: have_const.h
|
||||
help.o: have_limits.h
|
||||
help.o: have_memmv.h
|
||||
help.o: have_newstr.h
|
||||
help.o: have_stdbool.h
|
||||
help.o: have_stdlib.h
|
||||
@@ -4821,7 +4758,6 @@ hist.o: hash.h
|
||||
hist.o: have_ban_pragma.h
|
||||
hist.o: have_const.h
|
||||
hist.o: have_limits.h
|
||||
hist.o: have_memmv.h
|
||||
hist.o: have_newstr.h
|
||||
hist.o: have_stdbool.h
|
||||
hist.o: have_stdlib.h
|
||||
@@ -4862,7 +4798,6 @@ input.o: hash.h
|
||||
input.o: have_ban_pragma.h
|
||||
input.o: have_const.h
|
||||
input.o: have_limits.h
|
||||
input.o: have_memmv.h
|
||||
input.o: have_newstr.h
|
||||
input.o: have_stdbool.h
|
||||
input.o: have_stdlib.h
|
||||
@@ -4906,7 +4841,6 @@ label.o: hash.h
|
||||
label.o: have_ban_pragma.h
|
||||
label.o: have_const.h
|
||||
label.o: have_limits.h
|
||||
label.o: have_memmv.h
|
||||
label.o: have_newstr.h
|
||||
label.o: have_stdbool.h
|
||||
label.o: have_stdlib.h
|
||||
@@ -4944,7 +4878,6 @@ lib_calc.o: hash.h
|
||||
lib_calc.o: have_ban_pragma.h
|
||||
lib_calc.o: have_const.h
|
||||
lib_calc.o: have_limits.h
|
||||
lib_calc.o: have_memmv.h
|
||||
lib_calc.o: have_newstr.h
|
||||
lib_calc.o: have_stdbool.h
|
||||
lib_calc.o: have_stdlib.h
|
||||
@@ -4982,7 +4915,6 @@ lib_util.o: errtbl.h
|
||||
lib_util.o: have_ban_pragma.h
|
||||
lib_util.o: have_const.h
|
||||
lib_util.o: have_limits.h
|
||||
lib_util.o: have_memmv.h
|
||||
lib_util.o: have_newstr.h
|
||||
lib_util.o: have_stdbool.h
|
||||
lib_util.o: have_stdlib.h
|
||||
@@ -5009,7 +4941,6 @@ listfunc.o: hash.h
|
||||
listfunc.o: have_ban_pragma.h
|
||||
listfunc.o: have_const.h
|
||||
listfunc.o: have_limits.h
|
||||
listfunc.o: have_memmv.h
|
||||
listfunc.o: have_newstr.h
|
||||
listfunc.o: have_stdbool.h
|
||||
listfunc.o: have_stdlib.h
|
||||
@@ -5048,7 +4979,6 @@ matfunc.o: hash.h
|
||||
matfunc.o: have_ban_pragma.h
|
||||
matfunc.o: have_const.h
|
||||
matfunc.o: have_limits.h
|
||||
matfunc.o: have_memmv.h
|
||||
matfunc.o: have_newstr.h
|
||||
matfunc.o: have_stdbool.h
|
||||
matfunc.o: have_stdlib.h
|
||||
@@ -5083,7 +5013,6 @@ math_error.o: hash.h
|
||||
math_error.o: have_ban_pragma.h
|
||||
math_error.o: have_const.h
|
||||
math_error.o: have_limits.h
|
||||
math_error.o: have_memmv.h
|
||||
math_error.o: have_newstr.h
|
||||
math_error.o: have_stdbool.h
|
||||
math_error.o: have_stdlib.h
|
||||
@@ -5117,7 +5046,6 @@ obj.o: hash.h
|
||||
obj.o: have_ban_pragma.h
|
||||
obj.o: have_const.h
|
||||
obj.o: have_limits.h
|
||||
obj.o: have_memmv.h
|
||||
obj.o: have_newstr.h
|
||||
obj.o: have_stdbool.h
|
||||
obj.o: have_stdlib.h
|
||||
@@ -5159,7 +5087,6 @@ opcodes.o: have_ban_pragma.h
|
||||
opcodes.o: have_const.h
|
||||
opcodes.o: have_fgetsetpos.h
|
||||
opcodes.o: have_limits.h
|
||||
opcodes.o: have_memmv.h
|
||||
opcodes.o: have_newstr.h
|
||||
opcodes.o: have_stdbool.h
|
||||
opcodes.o: have_stdlib.h
|
||||
@@ -5191,7 +5118,6 @@ pix.o: endian_calc.h
|
||||
pix.o: have_ban_pragma.h
|
||||
pix.o: have_const.h
|
||||
pix.o: have_limits.h
|
||||
pix.o: have_memmv.h
|
||||
pix.o: have_newstr.h
|
||||
pix.o: have_stdbool.h
|
||||
pix.o: have_stdlib.h
|
||||
@@ -5219,7 +5145,6 @@ poly.o: hash.h
|
||||
poly.o: have_ban_pragma.h
|
||||
poly.o: have_const.h
|
||||
poly.o: have_limits.h
|
||||
poly.o: have_memmv.h
|
||||
poly.o: have_newstr.h
|
||||
poly.o: have_stdbool.h
|
||||
poly.o: have_stdlib.h
|
||||
@@ -5243,7 +5168,6 @@ prime.o: endian_calc.h
|
||||
prime.o: have_ban_pragma.h
|
||||
prime.o: have_const.h
|
||||
prime.o: have_limits.h
|
||||
prime.o: have_memmv.h
|
||||
prime.o: have_newstr.h
|
||||
prime.o: have_stdbool.h
|
||||
prime.o: have_stdlib.h
|
||||
@@ -5269,7 +5193,6 @@ qfunc.o: errtbl.h
|
||||
qfunc.o: have_ban_pragma.h
|
||||
qfunc.o: have_const.h
|
||||
qfunc.o: have_limits.h
|
||||
qfunc.o: have_memmv.h
|
||||
qfunc.o: have_newstr.h
|
||||
qfunc.o: have_stdbool.h
|
||||
qfunc.o: have_stdlib.h
|
||||
@@ -5296,7 +5219,6 @@ qio.o: errtbl.h
|
||||
qio.o: have_ban_pragma.h
|
||||
qio.o: have_const.h
|
||||
qio.o: have_limits.h
|
||||
qio.o: have_memmv.h
|
||||
qio.o: have_newstr.h
|
||||
qio.o: have_stdbool.h
|
||||
qio.o: have_stdlib.h
|
||||
@@ -5322,7 +5244,6 @@ qmath.o: errtbl.h
|
||||
qmath.o: have_ban_pragma.h
|
||||
qmath.o: have_const.h
|
||||
qmath.o: have_limits.h
|
||||
qmath.o: have_memmv.h
|
||||
qmath.o: have_newstr.h
|
||||
qmath.o: have_stdbool.h
|
||||
qmath.o: have_stdlib.h
|
||||
@@ -5347,7 +5268,6 @@ qmod.o: errtbl.h
|
||||
qmod.o: have_ban_pragma.h
|
||||
qmod.o: have_const.h
|
||||
qmod.o: have_limits.h
|
||||
qmod.o: have_memmv.h
|
||||
qmod.o: have_newstr.h
|
||||
qmod.o: have_stdbool.h
|
||||
qmod.o: have_stdlib.h
|
||||
@@ -5372,7 +5292,6 @@ qtrans.o: errtbl.h
|
||||
qtrans.o: have_ban_pragma.h
|
||||
qtrans.o: have_const.h
|
||||
qtrans.o: have_limits.h
|
||||
qtrans.o: have_memmv.h
|
||||
qtrans.o: have_newstr.h
|
||||
qtrans.o: have_stdbool.h
|
||||
qtrans.o: have_stdlib.h
|
||||
@@ -5400,7 +5319,6 @@ quickhash.o: hash.h
|
||||
quickhash.o: have_ban_pragma.h
|
||||
quickhash.o: have_const.h
|
||||
quickhash.o: have_limits.h
|
||||
quickhash.o: have_memmv.h
|
||||
quickhash.o: have_newstr.h
|
||||
quickhash.o: have_stdbool.h
|
||||
quickhash.o: have_stdlib.h
|
||||
@@ -5434,7 +5352,6 @@ sample_many.o: hash.h
|
||||
sample_many.o: have_ban_pragma.h
|
||||
sample_many.o: have_const.h
|
||||
sample_many.o: have_limits.h
|
||||
sample_many.o: have_memmv.h
|
||||
sample_many.o: have_newstr.h
|
||||
sample_many.o: have_stdbool.h
|
||||
sample_many.o: have_stdlib.h
|
||||
@@ -5468,7 +5385,6 @@ sample_rand.o: hash.h
|
||||
sample_rand.o: have_ban_pragma.h
|
||||
sample_rand.o: have_const.h
|
||||
sample_rand.o: have_limits.h
|
||||
sample_rand.o: have_memmv.h
|
||||
sample_rand.o: have_newstr.h
|
||||
sample_rand.o: have_stdbool.h
|
||||
sample_rand.o: have_stdlib.h
|
||||
@@ -5500,7 +5416,6 @@ seed.o: have_getprid.h
|
||||
seed.o: have_getsid.h
|
||||
seed.o: have_gettime.h
|
||||
seed.o: have_limits.h
|
||||
seed.o: have_memmv.h
|
||||
seed.o: have_newstr.h
|
||||
seed.o: have_rusage.h
|
||||
seed.o: have_statfs.h
|
||||
@@ -5538,7 +5453,6 @@ sha1.o: hash.h
|
||||
sha1.o: have_ban_pragma.h
|
||||
sha1.o: have_const.h
|
||||
sha1.o: have_limits.h
|
||||
sha1.o: have_memmv.h
|
||||
sha1.o: have_newstr.h
|
||||
sha1.o: have_stdbool.h
|
||||
sha1.o: have_stdlib.h
|
||||
@@ -5569,7 +5483,6 @@ size.o: hash.h
|
||||
size.o: have_ban_pragma.h
|
||||
size.o: have_const.h
|
||||
size.o: have_limits.h
|
||||
size.o: have_memmv.h
|
||||
size.o: have_newstr.h
|
||||
size.o: have_stdbool.h
|
||||
size.o: have_stdlib.h
|
||||
@@ -5603,7 +5516,6 @@ str.o: hash.h
|
||||
str.o: have_ban_pragma.h
|
||||
str.o: have_const.h
|
||||
str.o: have_limits.h
|
||||
str.o: have_memmv.h
|
||||
str.o: have_newstr.h
|
||||
str.o: have_stdbool.h
|
||||
str.o: have_stdlib.h
|
||||
@@ -5625,7 +5537,6 @@ strl.o: banned.h
|
||||
strl.o: decl.h
|
||||
strl.o: have_ban_pragma.h
|
||||
strl.o: have_const.h
|
||||
strl.o: have_memmv.h
|
||||
strl.o: have_newstr.h
|
||||
strl.o: have_string.h
|
||||
strl.o: have_strlcat.h
|
||||
@@ -5651,7 +5562,6 @@ symbol.o: hash.h
|
||||
symbol.o: have_ban_pragma.h
|
||||
symbol.o: have_const.h
|
||||
symbol.o: have_limits.h
|
||||
symbol.o: have_memmv.h
|
||||
symbol.o: have_newstr.h
|
||||
symbol.o: have_stdbool.h
|
||||
symbol.o: have_stdlib.h
|
||||
@@ -5688,7 +5598,6 @@ token.o: hash.h
|
||||
token.o: have_ban_pragma.h
|
||||
token.o: have_const.h
|
||||
token.o: have_limits.h
|
||||
token.o: have_memmv.h
|
||||
token.o: have_newstr.h
|
||||
token.o: have_stdbool.h
|
||||
token.o: have_stdlib.h
|
||||
@@ -5725,7 +5634,6 @@ value.o: have_ban_pragma.h
|
||||
value.o: have_const.h
|
||||
value.o: have_fgetsetpos.h
|
||||
value.o: have_limits.h
|
||||
value.o: have_memmv.h
|
||||
value.o: have_newstr.h
|
||||
value.o: have_stdbool.h
|
||||
value.o: have_stdlib.h
|
||||
@@ -5762,7 +5670,6 @@ version.o: hash.h
|
||||
version.o: have_ban_pragma.h
|
||||
version.o: have_const.h
|
||||
version.o: have_limits.h
|
||||
version.o: have_memmv.h
|
||||
version.o: have_newstr.h
|
||||
version.o: have_stdbool.h
|
||||
version.o: have_stdlib.h
|
||||
@@ -5793,7 +5700,6 @@ zfunc.o: errtbl.h
|
||||
zfunc.o: have_ban_pragma.h
|
||||
zfunc.o: have_const.h
|
||||
zfunc.o: have_limits.h
|
||||
zfunc.o: have_memmv.h
|
||||
zfunc.o: have_newstr.h
|
||||
zfunc.o: have_stdbool.h
|
||||
zfunc.o: have_stdlib.h
|
||||
@@ -5817,7 +5723,6 @@ zio.o: errtbl.h
|
||||
zio.o: have_ban_pragma.h
|
||||
zio.o: have_const.h
|
||||
zio.o: have_limits.h
|
||||
zio.o: have_memmv.h
|
||||
zio.o: have_newstr.h
|
||||
zio.o: have_stdbool.h
|
||||
zio.o: have_stdlib.h
|
||||
@@ -5842,7 +5747,6 @@ zmath.o: have_ban_pragma.h
|
||||
zmath.o: have_const.h
|
||||
zmath.o: have_inttypes.h
|
||||
zmath.o: have_limits.h
|
||||
zmath.o: have_memmv.h
|
||||
zmath.o: have_newstr.h
|
||||
zmath.o: have_stdbool.h
|
||||
zmath.o: have_stdint.h
|
||||
@@ -5868,7 +5772,6 @@ zmod.o: errtbl.h
|
||||
zmod.o: have_ban_pragma.h
|
||||
zmod.o: have_const.h
|
||||
zmod.o: have_limits.h
|
||||
zmod.o: have_memmv.h
|
||||
zmod.o: have_newstr.h
|
||||
zmod.o: have_stdbool.h
|
||||
zmod.o: have_stdlib.h
|
||||
@@ -5893,7 +5796,6 @@ zmul.o: errtbl.h
|
||||
zmul.o: have_ban_pragma.h
|
||||
zmul.o: have_const.h
|
||||
zmul.o: have_limits.h
|
||||
zmul.o: have_memmv.h
|
||||
zmul.o: have_newstr.h
|
||||
zmul.o: have_stdbool.h
|
||||
zmul.o: have_stdlib.h
|
||||
@@ -5921,7 +5823,6 @@ zprime.o: hash.h
|
||||
zprime.o: have_ban_pragma.h
|
||||
zprime.o: have_const.h
|
||||
zprime.o: have_limits.h
|
||||
zprime.o: have_memmv.h
|
||||
zprime.o: have_newstr.h
|
||||
zprime.o: have_stdbool.h
|
||||
zprime.o: have_stdlib.h
|
||||
@@ -5955,7 +5856,6 @@ zrand.o: hash.h
|
||||
zrand.o: have_ban_pragma.h
|
||||
zrand.o: have_const.h
|
||||
zrand.o: have_limits.h
|
||||
zrand.o: have_memmv.h
|
||||
zrand.o: have_newstr.h
|
||||
zrand.o: have_stdbool.h
|
||||
zrand.o: have_stdlib.h
|
||||
@@ -5988,7 +5888,6 @@ zrandom.o: hash.h
|
||||
zrandom.o: have_ban_pragma.h
|
||||
zrandom.o: have_const.h
|
||||
zrandom.o: have_limits.h
|
||||
zrandom.o: have_memmv.h
|
||||
zrandom.o: have_newstr.h
|
||||
zrandom.o: have_stdbool.h
|
||||
zrandom.o: have_stdlib.h
|
||||
|
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# Makefile.config - Calc configuration and compile configuration values
|
||||
#
|
||||
# Copyright (C) 2023 Landon Curt Noll
|
||||
# Copyright (C) 2023,2025 Landon Curt Noll
|
||||
#
|
||||
# Suggestion: Read the HOWTO.INSTALL file.
|
||||
#
|
||||
@@ -436,18 +436,6 @@ HAVE_ARC4RANDOM=
|
||||
HAVE_NEWSTR=
|
||||
#HAVE_NEWSTR= -DHAVE_NO_NEWSTR
|
||||
|
||||
# Determine if we have memmove()
|
||||
#
|
||||
# If HAVE_MEMMOVE is empty, this Makefile will run the have_memmv program
|
||||
# to determine if memmove() is supported. If HAVE_MEMMOVE is set to
|
||||
# -DHAVE_NO_MEMMOVE, then calc will use internal functions to simulate
|
||||
# the memory move function that does correct overlapping memory moves.
|
||||
#
|
||||
# If in doubt, leave HAVE_MEMMOVE empty and this Makefile will figure it out.
|
||||
#
|
||||
HAVE_MEMMOVE=
|
||||
#HAVE_MEMMOVE= -DHAVE_NO_MEMMOVE
|
||||
|
||||
# Determine if we have ustat()
|
||||
#
|
||||
# If HAVE_USTAT is empty, this Makefile will run the have_ustat program
|
||||
@@ -1112,6 +1100,9 @@ READLINE_EXTRAS= -lhistory -lncurses
|
||||
#READLINE_LIB= -L${PREFIX}/lib -lreadline
|
||||
#READLINE_EXTRAS= -lhistory -lncurses
|
||||
#
|
||||
#READLINE_LIB= -L/opt/local/lib -lreadline
|
||||
#READLINE_EXTRAS= -lhistory -lncurses
|
||||
#
|
||||
# For Apple OS X: install fink from http://fink.sourceforge.net
|
||||
# and then do a 'fink install readline' and then use:
|
||||
#
|
||||
@@ -1130,6 +1121,7 @@ READLINE_EXTRAS= -lhistory -lncurses
|
||||
READLINE_INCLUDE=
|
||||
#READLINE_INCLUDE= -I/usr/gnu/include
|
||||
#READLINE_INCLUDE= -I${PREFIX}/include
|
||||
#READLINE_INCLUDE= -I/opt/local/include
|
||||
|
||||
# Handle the case where macOS is being used with HomeBrew
|
||||
# # and using the readline, history, and ncurses libraries.
|
||||
@@ -1137,6 +1129,16 @@ READLINE_INCLUDE=
|
||||
ifneq ($(HOMEBREW_PREFIX),)
|
||||
READLINE_LIB:= -L${HOMEBREW_PREFIX}/opt/readline/lib -lreadline
|
||||
READLINE_INCLUDE:= -I${HOMEBREW_PREFIX}/opt/readline/include
|
||||
|
||||
# If not HomeBrew, then try to detect macports and/or using /opt/local/{lib,include}
|
||||
#
|
||||
else # perhaps macports and/or using /opt/local/{lib,include} ?
|
||||
ifneq ($(wildcard /opt/local/lib/*),)
|
||||
READLINE_LIB:= -L/opt/local/lib -lreadline
|
||||
endif
|
||||
ifneq ($(wildcard /opt/local/incliude/*),)
|
||||
READLINE_INCLUDE:= -I/opt/local/include
|
||||
endif
|
||||
endif # ($(HOMEBREW_PREFIX),)
|
||||
|
||||
# If $PAGER is not set, use this program to display a help file
|
||||
@@ -1243,11 +1245,11 @@ EXT=
|
||||
|
||||
# The calc version in the form of x.y.z.w
|
||||
#
|
||||
VERSION= 2.15.0.5
|
||||
VERSION= 2.15.1.2
|
||||
|
||||
# The calc major version in the form of x.y.z
|
||||
#
|
||||
VER= 2.15.0
|
||||
VER= 2.15.1
|
||||
|
||||
# Names of shared libraries with versions
|
||||
#
|
||||
|
@@ -8,7 +8,7 @@ on Debian: sudo apt install calc
|
||||
on RHEL: sudo dnf install calc
|
||||
on Ubuntu: sudo apt install calc
|
||||
via Termux: apt install calc
|
||||
via src: sudo make clobber all chk instsll
|
||||
via src: sudo make clobber all chk install
|
||||
```
|
||||
|
||||
## TL;DR Run calc
|
||||
@@ -283,3 +283,8 @@ help unexpected
|
||||
|
||||
It contains information about differences between C and calc
|
||||
that may surprise C programmers.
|
||||
|
||||
|
||||
# Reporting Security Issues
|
||||
|
||||
To report a security issue, please visit "[Reporting Security Issues](https://github.com/lcn2/calc/security/policy)".
|
||||
|
22
SECURITY.md
22
SECURITY.md
@@ -1,4 +1,16 @@
|
||||
# Security Policy
|
||||
# Reporting Security Issues
|
||||
|
||||
We take security bugs seriously. We appreciate your efforts to responsibly
|
||||
disclose your findings, and will make every effort to acknowledge your
|
||||
contributions for any verified security issues when they have been fixed.
|
||||
|
||||
To report a security issue, click on: "[Open a draft security advisory](https://github.com/lcn2/calc/security/advisories/new)"
|
||||
|
||||
We will send a response indicating the next steps in handling your
|
||||
report. After the initial reply to your report, we will keep you informed
|
||||
of the progress towards a fix and full announcement, and may ask for
|
||||
additional information or guidance.
|
||||
|
||||
|
||||
## Supported Versions
|
||||
|
||||
@@ -9,11 +21,3 @@ If the most recent stable of calc is also supported with security updates.
|
||||
FYI: please review the BUGS file, or enter the calc command:
|
||||
|
||||
; help BUGS
|
||||
|
||||
## Reporting a Vulnerability
|
||||
|
||||
Please create a calc GitHub repo issue:
|
||||
|
||||
https://github.com/lcn2/calc/issues
|
||||
|
||||
Click on ((New issue)) and follow the issue template.
|
||||
|
19
alloc.h
19
alloc.h
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* alloc - storage allocation and storage debug macros
|
||||
*
|
||||
* Copyright (C) 1999-2007,2014 David I. Bell
|
||||
* Copyright (C) 1999-2007,2014,2025 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
|
||||
@@ -29,13 +29,15 @@
|
||||
|
||||
|
||||
#if defined(CALC_SRC) /* if we are building from the calc source tree */
|
||||
# include "decl.h"
|
||||
# include "have_newstr.h"
|
||||
# include "have_string.h"
|
||||
# include "have_memmv.h"
|
||||
# include "have_const.h"
|
||||
#else
|
||||
# include <calc/decl.h>
|
||||
# include <calc/have_newstr.h>
|
||||
# include <calc/have_string.h>
|
||||
# include <calc/have_memmv.h>
|
||||
# include <calc/have_const.h>
|
||||
#endif
|
||||
|
||||
#ifdef HAVE_STRING_H
|
||||
@@ -75,15 +77,4 @@ E_FUNC int strcmp();
|
||||
#define strchr(s, c) index(s, c)
|
||||
#endif /* HAVE_NEWSTR */
|
||||
|
||||
#if !defined(HAVE_MEMMOVE)
|
||||
# undef MEMMOVE_SIZE_T
|
||||
#if defined(FORCE_STDC) || \
|
||||
(defined(__STDC__) && __STDC__ != 0) || defined(__cplusplus)
|
||||
# define MEMMOVE_SIZE_T size_t
|
||||
# else
|
||||
# define MEMMOVE_SIZE_T long
|
||||
# endif
|
||||
E_FUNC void *memmove(void *s1, CONST void *s2, MEMMOVE_SIZE_T n);
|
||||
#endif
|
||||
|
||||
#endif /* !INCLUDE_ALLOC_H */
|
||||
|
58
blkcpy.c
58
blkcpy.c
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* blkcpy - general values and related routines used by the calculator
|
||||
*
|
||||
* Copyright (C) 1999-2007,2021-2023 Landon Curt Noll and Ernest Bowen
|
||||
* Copyright (C) 1999-2007,2021-2023,2025 Landon Curt Noll and Ernest Bowen
|
||||
*
|
||||
* Primary author: Landon Curt Noll
|
||||
*
|
||||
@@ -924,62 +924,6 @@ copyostr2blk(char *str,long ssi,long num,BLOCK *dblk,long dsi,bool noreloc)
|
||||
dblk->datalen = newlen;
|
||||
return 0;
|
||||
}
|
||||
#if !defined(HAVE_MEMMOVE)
|
||||
/*
|
||||
* memmove - simulate the memory move function that deals with overlap
|
||||
*
|
||||
* Copying between objects that overlap will take place correctly.
|
||||
*
|
||||
* given:
|
||||
* s1 destination
|
||||
* s2 source
|
||||
* n octet count
|
||||
*
|
||||
* returns:
|
||||
* s1
|
||||
*/
|
||||
void *
|
||||
memmove(void *s1, CONST void *s2, MEMMOVE_SIZE_T n)
|
||||
{
|
||||
/*
|
||||
* firewall
|
||||
*/
|
||||
if (s1 == NULL || s2 == NULL) {
|
||||
math_error("bogus memmove NULL ptr");
|
||||
not_reached();
|
||||
}
|
||||
if (n <= 0) {
|
||||
/* neg or 0 count does nothing */
|
||||
return s1;
|
||||
}
|
||||
if ((char *)s1 == (char *)s2) {
|
||||
/* copy to same location does nothing */
|
||||
return s1;
|
||||
}
|
||||
|
||||
/*
|
||||
* determine if we need to deal with overlap copy
|
||||
*/
|
||||
if ((char *)s1 > (char *)s2 && (char *)s1 < (char *)s2+n) {
|
||||
|
||||
/*
|
||||
* we have to copy backwards ... slowly
|
||||
*/
|
||||
while (n-- > 0) {
|
||||
((char *)s1)[n] = ((char *)s2)[n];
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
/*
|
||||
* safe ... no overlap problems
|
||||
*/
|
||||
(void) memcpy(s1, s2, n);
|
||||
|
||||
}
|
||||
return s1;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
|
@@ -3030,6 +3030,24 @@ define test_2600()
|
||||
strcat(str(tnum++),
|
||||
': round(log(1.2+1.2i,1e-10),10) == ',
|
||||
'0.2296962439+0.3410940885i'));
|
||||
vrfy(log2(0.5) == -1,
|
||||
strcat(str(tnum++), ': log2(0.5) == -1'));
|
||||
vrfy(log2(0.5) == -1,
|
||||
strcat(str(tnum++), ': log2(0.5) == -1'));
|
||||
vrfy(log2(0.5) == log2(0.5),
|
||||
strcat(str(tnum++), ': log2(0.5) == log2(0.5)'));
|
||||
vrfy(0^0 == 1,
|
||||
strcat(str(tnum++), ': 0^0 == 1'));
|
||||
vrfy(1^0 == 1,
|
||||
strcat(str(tnum++), ': 1^0 == 1'));
|
||||
vrfy(1^1 == 1,
|
||||
strcat(str(tnum++), ': 1^1 == 1'));
|
||||
vrfy(2^0 == 1,
|
||||
strcat(str(tnum++), ': 2^0 == 1'));
|
||||
vrfy(log2(1) == 0,
|
||||
strcat(str(tnum++), ': log2(1) == 0'));
|
||||
vrfy(log2(1.0) == 0,
|
||||
strcat(str(tnum++), ': log2(1.0) == 0'));
|
||||
vrfy(log2(2) == 1,
|
||||
strcat(str(tnum++), ': log2(2) == 1'));
|
||||
vrfy(log2(4) == 2,
|
||||
|
2
calc.man
2
calc.man
@@ -1512,7 +1512,7 @@ the following GitHub repo:
|
||||
https://github.com/lcn2/calc
|
||||
.in -0.5i
|
||||
.sp
|
||||
The very latest calc souece is found at the top master branch.
|
||||
The very latest calc source is found at the top master branch.
|
||||
|
||||
.PP
|
||||
|
||||
|
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# custom - makefile for calc custom routines
|
||||
#
|
||||
# Copyright (C) 1999-2006,2014,2017-2018,2021,2023 Landon Curt Noll
|
||||
# Copyright (C) 1999-2006,2014,2017-2018,2021,2023,2025 Landon Curt Noll
|
||||
#
|
||||
# Suggestion: Read the ../HOWTO.INSTALL file.
|
||||
#
|
||||
@@ -728,7 +728,6 @@ c_argv.o: ../hash.h
|
||||
c_argv.o: ../have_ban_pragma.h
|
||||
c_argv.o: ../have_const.h
|
||||
c_argv.o: ../have_limits.h
|
||||
c_argv.o: ../have_memmv.h
|
||||
c_argv.o: ../have_newstr.h
|
||||
c_argv.o: ../have_stdbool.h
|
||||
c_argv.o: ../have_stdlib.h
|
||||
@@ -761,7 +760,6 @@ c_devnull.o: ../hash.h
|
||||
c_devnull.o: ../have_ban_pragma.h
|
||||
c_devnull.o: ../have_const.h
|
||||
c_devnull.o: ../have_limits.h
|
||||
c_devnull.o: ../have_memmv.h
|
||||
c_devnull.o: ../have_newstr.h
|
||||
c_devnull.o: ../have_stdbool.h
|
||||
c_devnull.o: ../have_stdlib.h
|
||||
@@ -795,7 +793,6 @@ c_help.o: ../hash.h
|
||||
c_help.o: ../have_ban_pragma.h
|
||||
c_help.o: ../have_const.h
|
||||
c_help.o: ../have_limits.h
|
||||
c_help.o: ../have_memmv.h
|
||||
c_help.o: ../have_newstr.h
|
||||
c_help.o: ../have_stdbool.h
|
||||
c_help.o: ../have_stdlib.h
|
||||
@@ -829,7 +826,6 @@ c_pmodm127.o: ../hash.h
|
||||
c_pmodm127.o: ../have_ban_pragma.h
|
||||
c_pmodm127.o: ../have_const.h
|
||||
c_pmodm127.o: ../have_limits.h
|
||||
c_pmodm127.o: ../have_memmv.h
|
||||
c_pmodm127.o: ../have_newstr.h
|
||||
c_pmodm127.o: ../have_stdbool.h
|
||||
c_pmodm127.o: ../have_stdlib.h
|
||||
@@ -862,7 +858,6 @@ c_pzasusb8.o: ../hash.h
|
||||
c_pzasusb8.o: ../have_ban_pragma.h
|
||||
c_pzasusb8.o: ../have_const.h
|
||||
c_pzasusb8.o: ../have_limits.h
|
||||
c_pzasusb8.o: ../have_memmv.h
|
||||
c_pzasusb8.o: ../have_newstr.h
|
||||
c_pzasusb8.o: ../have_stdbool.h
|
||||
c_pzasusb8.o: ../have_stdlib.h
|
||||
@@ -896,7 +891,6 @@ c_register.o: ../hash.h
|
||||
c_register.o: ../have_ban_pragma.h
|
||||
c_register.o: ../have_const.h
|
||||
c_register.o: ../have_limits.h
|
||||
c_register.o: ../have_memmv.h
|
||||
c_register.o: ../have_newstr.h
|
||||
c_register.o: ../have_stdbool.h
|
||||
c_register.o: ../have_stdlib.h
|
||||
@@ -932,7 +926,6 @@ c_sysinfo.o: ../hash.h
|
||||
c_sysinfo.o: ../have_ban_pragma.h
|
||||
c_sysinfo.o: ../have_const.h
|
||||
c_sysinfo.o: ../have_limits.h
|
||||
c_sysinfo.o: ../have_memmv.h
|
||||
c_sysinfo.o: ../have_newstr.h
|
||||
c_sysinfo.o: ../have_stdbool.h
|
||||
c_sysinfo.o: ../have_stdlib.h
|
||||
@@ -970,7 +963,6 @@ custtbl.o: ../hash.h
|
||||
custtbl.o: ../have_ban_pragma.h
|
||||
custtbl.o: ../have_const.h
|
||||
custtbl.o: ../have_limits.h
|
||||
custtbl.o: ../have_memmv.h
|
||||
custtbl.o: ../have_newstr.h
|
||||
custtbl.o: ../have_stdbool.h
|
||||
custtbl.o: ../have_stdlib.h
|
||||
|
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* fposval - Determine information about the file position type
|
||||
*
|
||||
* Copyright (C) 1999,2021,2023 Landon Curt Noll
|
||||
* Copyright (C) 1999,2021,2023,2025 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
|
||||
@@ -71,7 +71,6 @@
|
||||
#include "have_fpos_pos.h"
|
||||
#include "alloc.h"
|
||||
#include "have_unused.h"
|
||||
#include "have_memmv.h"
|
||||
#include "zmath.h"
|
||||
|
||||
|
||||
|
73
have_memmv.c
73
have_memmv.c
@@ -1,73 +0,0 @@
|
||||
/*
|
||||
* have_memmv - Determine if we have memmove()
|
||||
*
|
||||
* Copyright (C) 1999,2021 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
|
||||
* as published by the Free Software Foundation.
|
||||
*
|
||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
||||
* Public License for more details.
|
||||
*
|
||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* Under source code control: 1997/04/16 02:02:34
|
||||
* File existed as early as: 1997
|
||||
*
|
||||
* chongo <was here> /\oo/\ http://www.isthe.com/chongo/
|
||||
* Share and enjoy! :-) http://www.isthe.com/chongo/tech/comp/calc/
|
||||
*/
|
||||
|
||||
/*
|
||||
* usage:
|
||||
* have_memmv
|
||||
*
|
||||
* Not all systems with memcpy() have memmove() functions, so this may not
|
||||
* compile on your system.
|
||||
*
|
||||
* This prog outputs several defines:
|
||||
*
|
||||
* HAVE_MEMMOVE
|
||||
* defined ==> use memmove()
|
||||
* undefined ==> use internal slow memmove() instead
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include "have_string.h"
|
||||
#ifdef HAVE_STRING_H
|
||||
# include <string.h>
|
||||
#endif
|
||||
|
||||
|
||||
#include "banned.h" /* include after system header <> includes */
|
||||
|
||||
|
||||
#define MOVELEN 3
|
||||
|
||||
char src[] = "chongo was here";
|
||||
char dest[MOVELEN+1];
|
||||
|
||||
int
|
||||
main(void)
|
||||
{
|
||||
#if defined(HAVE_NO_MEMMOVE)
|
||||
|
||||
printf("#undef HAVE_MEMMOVE /* no */\n");
|
||||
|
||||
#else /* HAVE_NO_MEMMOVE */
|
||||
|
||||
(void) memmove(dest, src, MOVELEN);
|
||||
|
||||
printf("#define HAVE_MEMMOVE /* yes */\n");
|
||||
|
||||
#endif /* HAVE_NO_MEMMOVE */
|
||||
|
||||
/* exit(0); */
|
||||
return 0;
|
||||
}
|
@@ -13,7 +13,7 @@ following topics:
|
||||
config configuration parameters
|
||||
custom information about the custom builtin interface
|
||||
define how to define functions
|
||||
environment how environment variables effect calc
|
||||
environment how environment variables affect calc
|
||||
errorcodes calc generated error codes
|
||||
expression expression sequences
|
||||
file using files
|
||||
|
@@ -1,5 +1,5 @@
|
||||
NAME
|
||||
log2 - base 10 logarithm
|
||||
log2 - base 2 logarithm
|
||||
|
||||
SYNOPSIS
|
||||
log2(x [,eps])
|
||||
|
2
qfunc.c
2
qfunc.c
@@ -1953,7 +1953,7 @@ qispowerof2(NUMBER *q, NUMBER **qlog2)
|
||||
* Set *qlog2 to base 2 logarithm of q, which will be a negative value,
|
||||
* and return true.
|
||||
*/
|
||||
*qlog2 = utoq(log2);
|
||||
**qlog2 = *utoq(log2);
|
||||
(*qlog2)->num.sign = !(*qlog2)->num.sign; /* set *qlog2 to -log2 */
|
||||
return true;
|
||||
}
|
||||
|
33
trailblank
33
trailblank
@@ -182,8 +182,8 @@ PICKY_PHASE_1=$(
|
||||
-name '.git' -o -path './custom/libcustcalc*' -o -path './libcustcalc*' -o \
|
||||
-name 'sample_many-static' -o -name 'sample_rand-static' -o \
|
||||
-name 'codeql-analysis.yml' -o -name tags -o -name '*.out' -o \
|
||||
-name '?' -o -iname '*foo*' -o -iname '*bar*' -o -iname '*baz*' -o \
|
||||
-iname '*curds*' -o -iname '*whey*' -o -iname '*rmme*' \
|
||||
-iname '*foo*' -o -iname '*bar*' -o -iname '*baz*' -o \
|
||||
-name '.lldbinit' -o -iname '*curds*' -o -iname '*whey*' -o -iname '*rmme*' \
|
||||
\) -prune -o -type f -print0 | \
|
||||
if [[ -x /usr/local/bin/picky ]]; then
|
||||
xargs -0 /usr/local/bin/picky -s -v -w132
|
||||
@@ -218,6 +218,35 @@ if [[ -n $BACKUP_MAKEILES ]]; then
|
||||
EXIT_CODE=7
|
||||
fi
|
||||
|
||||
|
||||
# look for ASCII tabs in non-Makefiles
|
||||
#
|
||||
TABS_FOUND=$(
|
||||
find . \( -path './NOTES' -o -path './calc' -o -path './ver_calc' -o \
|
||||
-name '*.o' -o -name '*.a' -o -name '*ptch*' -o -name 'core*' -o \
|
||||
-name '*.orig' -o -name '*.rej' -o -name '*.bak' -o \
|
||||
-name '*.ptch' -o -name 'core.*' -o \
|
||||
-name '*.so*' -o -name 'calc-static' -o -name 'libcalc.*' -o \
|
||||
-name 'sample_many' -o -name 'sample_rand' -o -name 'errcode' -o \
|
||||
-path './help/funclist' -o -path './have_stdvs' -o \
|
||||
-path './endian' -o -path './no_implicit' -o -name 'chk_c' -o \
|
||||
-path './longbits' -o -name '.*.swp' -o -name 'conf.h' -o \
|
||||
-name '.git' -o -path './custom/libcustcalc*' -o -path './libcustcalc*' -o \
|
||||
-name 'sample_many-static' -o -name 'sample_rand-static' -o \
|
||||
-name 'codeql-analysis.yml' -o -name tags -o -name '*.out' -o \
|
||||
-iname '*foo*' -o -iname '*bar*' -o -iname '*baz*' -o \
|
||||
-name '.lldbinit' -o -iname '*curds*' -o -iname '*whey*' -o -iname '*rmme*' -o \
|
||||
-iname 'Makefile*' -o -name rpm.mk -o -name 'trailblank' \
|
||||
\) -prune -o -type f -print0 | \
|
||||
xargs -0 grep -l -E ' '
|
||||
)
|
||||
if [[ -n $TABS_FOUND ]]; then
|
||||
echo
|
||||
echo '# ASCII TABs found in non-Makefiles:'
|
||||
echo "$TABS_FOUND"
|
||||
EXIT_CODE=8
|
||||
fi
|
||||
|
||||
# All Done!!! -- Jessica Noll, Age 2
|
||||
#
|
||||
exit "$EXIT_CODE"
|
||||
|
30
update_ver
30
update_ver
@@ -169,6 +169,7 @@ for i in $MK_SET1; do
|
||||
echo "$i: $VER_STRING"
|
||||
fi
|
||||
done
|
||||
echo
|
||||
if [[ -n $VER_ERR ]]; then
|
||||
echo "$0: FATAL: error in finding calc major version string"
|
||||
echo "$0: FATAL: exit 10"
|
||||
@@ -177,15 +178,36 @@ fi
|
||||
|
||||
# print other useful calc strings
|
||||
#
|
||||
export VER_CALC_OUTPUT=$(./ver_calc)
|
||||
echo 'Begin text strings used to produce this release:'
|
||||
echo 'vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv'
|
||||
echo
|
||||
echo "calc $(./ver_calc) release"
|
||||
echo
|
||||
echo 'calc-*'$(./ver_calc)'*'
|
||||
echo
|
||||
echo "Release v$(./ver_calc)"
|
||||
echo "$VER_CALC_OUTPUT"
|
||||
echo
|
||||
echo "v$VER_CALC_OUTPUT"
|
||||
echo
|
||||
echo "Release v$VER_CALC_OUTPUT"
|
||||
echo
|
||||
echo "calc $VER_CALC_OUTPUT release"
|
||||
echo
|
||||
echo 'For use with sourceforge.net:'
|
||||
echo
|
||||
echo 'cd /home/pfs/project/calc/calc'
|
||||
echo "mkdir $VER_CALC_OUTPUT"
|
||||
echo "cd $VER_CALC_OUTPUT"
|
||||
echo 'mput calc-*'"$VER_CALC_OUTPUT"'*'
|
||||
echo 'put /home/chongo/tmp/README.txt'
|
||||
echo 'ls'
|
||||
echo
|
||||
echo
|
||||
echo
|
||||
echo '^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^'
|
||||
echo 'End text strings used to produce this release:'
|
||||
echo
|
||||
|
||||
# All Done!!! -- Jessica Noll, Age 2
|
||||
#
|
||||
echo
|
||||
echo "VERSION in Makefile.config is up to date"
|
||||
exit 0
|
||||
|
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* version - determine the version of calc
|
||||
*
|
||||
* Copyright (C) 2023 David I. Bell and Landon Curt Noll
|
||||
* Copyright (C) 1989-2025 David I. Bell and 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
|
||||
@@ -63,8 +63,8 @@
|
||||
*/
|
||||
#define MAJOR_VER 2 /* level 1: major library version */
|
||||
#define MINOR_VER 15 /* level 2: minor library version */
|
||||
#define MAJOR_PATCH 0 /* level 3: major software version level */
|
||||
#define MINOR_PATCH 5 /* level 4: minor software version level */
|
||||
#define MAJOR_PATCH 1 /* level 3: major software version level */
|
||||
#define MINOR_PATCH 2 /* level 4: minor software version level */
|
||||
|
||||
|
||||
#endif /* !INCLUDE_VERSION_H*/
|
||||
|
Reference in New Issue
Block a user