mirror of
https://github.com/lcn2/calc.git
synced 2025-08-16 01:03:29 +03:00
document prompt in shell script mode, fix man formatting, legacy awk
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. The "help calc" command now prints the formatted calc man page (calc.usage). The "help man" command now prints the formatted calc man page (calc.usage). The "help usage" command now prints the formatted calc man page (calc.usage). The file, calc.cat1, is formed by gzipping the calc.usage formatted man page. The calc.cat1 is installed as the calc cat section 1 man page. Updated the Copyright string in version.c to refer to the COPYING file and the "help copying" command. Added calc.cat1 to .gitignore. Using "sort -d -u" to sort .gitignore content. Avoiding use of modern [[ and ]] in Makefile for those legacy systems whose shell do not support them. *sigh* Fixed the order of "help full" to match the order of topics listed buy the "help help" command. Sorted the halias[] help topics table in help.c using sort -d -u.
This commit is contained in:
43
.gitignore
vendored
43
.gitignore
vendored
@@ -1,17 +1,17 @@
|
|||||||
# generic excluded patterns
|
# generic excluded patterns
|
||||||
#
|
#
|
||||||
# We sort the list below via: sort -u -f
|
# We sort the list below via: sort -d -u
|
||||||
#
|
#
|
||||||
*,v
|
|
||||||
*.BAK
|
|
||||||
*.dSYM/
|
|
||||||
*.exe
|
|
||||||
*.o.tmp
|
|
||||||
*.[oa]
|
|
||||||
*~
|
*~
|
||||||
.*.swp
|
*.BAK
|
||||||
.DS_Store
|
.DS_Store
|
||||||
core*
|
core*
|
||||||
|
*.dSYM/
|
||||||
|
*.exe
|
||||||
|
*.[oa]
|
||||||
|
*.o.tmp
|
||||||
|
.*.swp
|
||||||
|
*,v
|
||||||
|
|
||||||
# files and directories created during the building of calc and other Makefile actions
|
# files and directories created during the building of calc and other Makefile actions
|
||||||
#
|
#
|
||||||
@@ -19,50 +19,51 @@ core*
|
|||||||
# not consider development source. Some other file(s) and/or programs
|
# not consider development source. Some other file(s) and/or programs
|
||||||
# generate these files.
|
# generate these files.
|
||||||
#
|
#
|
||||||
# We sort the list below via: sort -u -f
|
# We sort the list below via: sort -d -u
|
||||||
#
|
#
|
||||||
.dynamic
|
Makefile.our
|
||||||
.hsrc
|
NOTES
|
||||||
.static
|
|
||||||
align32
|
align32
|
||||||
align32.h
|
align32.h
|
||||||
align32_tmp
|
align32_tmp
|
||||||
arc4random_tmp
|
arc4random_tmp
|
||||||
args.h
|
args.h
|
||||||
cal/.all
|
cal/.all
|
||||||
cal/test082.cal
|
|
||||||
calc
|
calc
|
||||||
calc-static
|
|
||||||
calc.1
|
calc.1
|
||||||
|
calc.cat1
|
||||||
calc.spec
|
calc.spec
|
||||||
|
calc-static
|
||||||
calc.usage
|
calc.usage
|
||||||
|
cal/test082.cal
|
||||||
charbit.h
|
charbit.h
|
||||||
chatbit
|
chatbit
|
||||||
chk_c
|
chk_c
|
||||||
conf.h
|
conf.h
|
||||||
const_tmp
|
const_tmp
|
||||||
cscript/.all
|
|
||||||
cscript/4dsphere
|
cscript/4dsphere
|
||||||
|
cscript/README
|
||||||
|
cscript/.all
|
||||||
cscript/fproduct
|
cscript/fproduct
|
||||||
cscript/mersenne
|
cscript/mersenne
|
||||||
cscript/piforever
|
cscript/piforever
|
||||||
cscript/plus
|
cscript/plus
|
||||||
cscript/powerterm
|
cscript/powerterm
|
||||||
cscript/README
|
|
||||||
cscript/simple
|
cscript/simple
|
||||||
cscript/square
|
cscript/square
|
||||||
custom/.all
|
custom/.all
|
||||||
custom/libcustcalc*
|
custom/libcustcalc*
|
||||||
debug.out
|
debug.out
|
||||||
|
.dynamic
|
||||||
endian
|
endian
|
||||||
endian_calc.h
|
endian_calc.h
|
||||||
environ_tmp
|
environ_tmp
|
||||||
errcode
|
errcode
|
||||||
errsym.h
|
errsym.h
|
||||||
|
fpos_tmp
|
||||||
fposval
|
fposval
|
||||||
fposval.h
|
fposval.h
|
||||||
fposval_tmp
|
fposval_tmp
|
||||||
fpos_tmp
|
|
||||||
func.show
|
func.show
|
||||||
func.sort
|
func.sort
|
||||||
getpgid_tmp
|
getpgid_tmp
|
||||||
@@ -127,6 +128,8 @@ have_urandom.h
|
|||||||
have_ustat
|
have_ustat
|
||||||
have_ustat.h
|
have_ustat.h
|
||||||
have_varvs
|
have_varvs
|
||||||
|
help/COPYING
|
||||||
|
help/COPYING-LGPL
|
||||||
help/.all
|
help/.all
|
||||||
help/binding
|
help/binding
|
||||||
help/bindings
|
help/bindings
|
||||||
@@ -137,8 +140,6 @@ help/change
|
|||||||
help/changes
|
help/changes
|
||||||
help/contrib
|
help/contrib
|
||||||
help/copy
|
help/copy
|
||||||
help/COPYING
|
|
||||||
help/COPYING-LGPL
|
|
||||||
help/cscript
|
help/cscript
|
||||||
help/custom_cal
|
help/custom_cal
|
||||||
help/errorcode
|
help/errorcode
|
||||||
@@ -156,15 +157,14 @@ help/releases
|
|||||||
help/resource
|
help/resource
|
||||||
help/type
|
help/type
|
||||||
help/usage
|
help/usage
|
||||||
|
.hsrc
|
||||||
libcalc.*
|
libcalc.*
|
||||||
libcustcalc.*
|
libcustcalc.*
|
||||||
ll_tmp
|
ll_tmp
|
||||||
longbits
|
longbits
|
||||||
longbits.h
|
longbits.h
|
||||||
Makefile.our
|
|
||||||
memmv_tmp
|
memmv_tmp
|
||||||
newstr_tmp
|
newstr_tmp
|
||||||
NOTES
|
|
||||||
offscl_tmp
|
offscl_tmp
|
||||||
outfile
|
outfile
|
||||||
posscl_tmp
|
posscl_tmp
|
||||||
@@ -174,6 +174,7 @@ sample_many-static
|
|||||||
sample_rand
|
sample_rand
|
||||||
sample_rand-static
|
sample_rand-static
|
||||||
statfs_tmp
|
statfs_tmp
|
||||||
|
.static
|
||||||
status.chk_c.h
|
status.chk_c.h
|
||||||
strdup_tmp
|
strdup_tmp
|
||||||
tags
|
tags
|
||||||
|
39
CHANGES
39
CHANGES
@@ -23,6 +23,45 @@ The following are the changes from calc version 2.15.0.3 to date:
|
|||||||
We now case the dest and src pointers to the proper type before
|
We now case the dest and src pointers to the proper type before
|
||||||
referencing and performing the assignment.
|
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.
|
||||||
|
|
||||||
|
The "help calc" command now prints the formatted calc man page (calc.usage).
|
||||||
|
The "help man" command now prints the formatted calc man page (calc.usage).
|
||||||
|
The "help usage" command now prints the formatted calc man page (calc.usage).
|
||||||
|
|
||||||
|
The file, calc.cat1, is formed by gzipping the calc.usage
|
||||||
|
formatted man page. The calc.cat1 is installed as the calc
|
||||||
|
cat section 1 man page.
|
||||||
|
|
||||||
|
Updated the Copyright string in version.c to refer to
|
||||||
|
the COPYING file and the "help copying" command.
|
||||||
|
|
||||||
|
Added calc.cat1 to .gitignore. Using "sort -d -u" to sort .gitignore content.
|
||||||
|
|
||||||
|
Avoiding use of modern [[ and ]] in Makefile for those legacy systems
|
||||||
|
whose shell do not support them. *sigh*
|
||||||
|
|
||||||
|
Fixed the order of "help full" to match the order of topics listed
|
||||||
|
buy the "help help" command.
|
||||||
|
|
||||||
|
Sorted the halias[] help topics table in help.c using sort -d -u.
|
||||||
|
|
||||||
|
|
||||||
The following are the changes from calc version 2.15.0.1 to 2.15.0.2:
|
The following are the changes from calc version 2.15.0.1 to 2.15.0.2:
|
||||||
|
|
||||||
|
122
Makefile
122
Makefile
@@ -321,14 +321,17 @@ STATIC_FIRST_TARGETS= ${LICENSE} .static
|
|||||||
|
|
||||||
# late targets - things needed after the main build phase is complete
|
# late targets - things needed after the main build phase is complete
|
||||||
#
|
#
|
||||||
LATE_TARGETS= calc.1 calc.usage \
|
LATE_TARGETS= calc.1 calc.usage calc.cat1 \
|
||||||
cal/.all help/.all help/builtin help/errorcodes \
|
cal/.all help/.all help/builtin help/errorcodes \
|
||||||
cscript/.all
|
cscript/.all
|
||||||
|
|
||||||
# calc tools - tools used by the maintainers of the calc source base
|
# calc tools - tools used by the maintainers of the calc source base
|
||||||
#
|
#
|
||||||
# trailblank - find trailing blanks and other file format picky issues
|
# Calc supplied tools:
|
||||||
# update_ver - update version numbers in Makefile.config
|
#
|
||||||
|
# TRAILBLANK - find trailing blanks and other file format picky issues
|
||||||
|
# UPDATE_VER - update version numbers in Makefile.config
|
||||||
|
# CALC_TOOLS - the complete list of calc supplied tools
|
||||||
#
|
#
|
||||||
TRAILBLANK= trailblank
|
TRAILBLANK= trailblank
|
||||||
UPDATE_VER= update_ver
|
UPDATE_VER= update_ver
|
||||||
@@ -529,15 +532,19 @@ calc.1: calc.man ${MK_SET}
|
|||||||
-e 's,:\([/.~]\),:\\:\1,g' < calc.man > calc.1
|
-e 's,:\([/.~]\),:\\:\1,g' < calc.man > calc.1
|
||||||
${Q} echo calc.1 formed
|
${Q} echo calc.1 formed
|
||||||
|
|
||||||
calc.usage: calc.1 ${MK_SET}
|
calc.usage: calc.1
|
||||||
|
${Q} echo forming $@ from calc.1
|
||||||
${RM} -f $@
|
${RM} -f $@
|
||||||
${Q} echo forming calc.usage from calc.1
|
${MAN} ./calc.1 > $@
|
||||||
${Q} if [ -z "${NROFF}" ]; then \
|
${CHMOD} 0444 $@
|
||||||
LESSCHARSET=iso8859 ${CALCPAGER} calc.1; \
|
${Q} echo $@ formed
|
||||||
else \
|
|
||||||
${NROFF} -man calc.1; \
|
calc.cat1: calc.usage
|
||||||
fi 2>&1 | ${GREP} -E -v 'cannot adjust line' | ${COL} -b > $@
|
${Q} echo forming $@ from calc.usage
|
||||||
${Q} echo calc.usage formed
|
${RM} -f $@
|
||||||
|
${GZIP} --best -f -c calc.usage > $@
|
||||||
|
${CHMOD} 0444 $@
|
||||||
|
${Q} echo $@ formed
|
||||||
|
|
||||||
|
|
||||||
##
|
##
|
||||||
@@ -563,7 +570,7 @@ sample_many${EXT}: sample_many.o ${CALC_DYNAMIC_LIBS} ${MK_SET}
|
|||||||
###
|
###
|
||||||
|
|
||||||
hist.o: hist.c ${MK_SET}
|
hist.o: hist.c ${MK_SET}
|
||||||
${CC} ${CFLAGS} ${TERMCONTROL} ${USE_READLINE} ${READLINE_INCLUDE} \
|
${CC} ${CFLAGS} -Wno-strict-prototypes ${TERMCONTROL} ${USE_READLINE} ${READLINE_INCLUDE} \
|
||||||
-c hist.c
|
-c hist.c
|
||||||
|
|
||||||
seed.o: seed.c ${MK_SET}
|
seed.o: seed.c ${MK_SET}
|
||||||
@@ -2846,23 +2853,25 @@ env:
|
|||||||
@echo 'BUILD_C_SRC=${BUILD_C_SRC}'; echo ''
|
@echo 'BUILD_C_SRC=${BUILD_C_SRC}'; echo ''
|
||||||
@echo 'BUILD_H_SRC=${BUILD_H_SRC}'; echo ''
|
@echo 'BUILD_H_SRC=${BUILD_H_SRC}'; echo ''
|
||||||
@echo 'BYTE_ORDER=${BYTE_ORDER}'; echo ''
|
@echo 'BYTE_ORDER=${BYTE_ORDER}'; echo ''
|
||||||
|
@echo 'CALC_BYTE_ORDER=${CALC_BYTE_ORDER}'; echo ''
|
||||||
|
@echo 'CALC_CHARBIT=${CALC_CHARBIT}'; echo ''
|
||||||
|
@echo 'CALC_DYNAMIC_LIBS=${CALC_DYNAMIC_LIBS}'; echo ''
|
||||||
|
@echo 'CALC_ENV=${CALC_ENV}'; echo ''
|
||||||
|
@echo 'CALC_INCDIR=${CALC_INCDIR}'; echo ''
|
||||||
@echo 'CALCLIBLIST=${CALCLIBLIST}'; echo ''
|
@echo 'CALCLIBLIST=${CALCLIBLIST}'; echo ''
|
||||||
@echo 'CALCOBJS=${CALCOBJS}'; echo ''
|
@echo 'CALCOBJS=${CALCOBJS}'; echo ''
|
||||||
@echo 'CALCPAGER=${CALCPAGER}'; echo ''
|
@echo 'CALCPAGER=${CALCPAGER}'; echo ''
|
||||||
@echo 'CALCPATH=${CALCPATH}'; echo ''
|
@echo 'CALCPATH=${CALCPATH}'; echo ''
|
||||||
@echo 'CALCRC=${CALCRC}'; echo ''
|
@echo 'CALCRC=${CALCRC}'; echo ''
|
||||||
@echo 'CALCSRC=${CALCSRC}'; echo ''
|
|
||||||
@echo 'CALC_DYNAMIC_LIBS=${CALC_DYNAMIC_LIBS}'; echo ''
|
|
||||||
@echo 'CALC_ENV=${CALC_ENV}'; echo ''
|
|
||||||
@echo 'CALC_INCDIR=${CALC_INCDIR}'; echo ''
|
|
||||||
@echo 'CALC_SHAREDIR=${CALC_SHAREDIR}'; echo ''
|
@echo 'CALC_SHAREDIR=${CALC_SHAREDIR}'; echo ''
|
||||||
|
@echo 'CALCSRC=${CALCSRC}'; echo ''
|
||||||
@echo 'CALC_STATIC_LIBS=${CALC_STATIC_LIBS}'; echo ''
|
@echo 'CALC_STATIC_LIBS=${CALC_STATIC_LIBS}'; echo ''
|
||||||
|
@echo 'CALC_TOOLS=${CALC_TOOLS}'; echo ''
|
||||||
@echo 'CAT=${CAT}'; echo ''
|
@echo 'CAT=${CAT}'; echo ''
|
||||||
@echo 'CATDIR=${CATDIR}'; echo ''
|
@echo 'CATDIR=${CATDIR}'; echo ''
|
||||||
@echo 'CATEXT=${CATEXT}'; echo ''
|
@echo 'CATEXT=${CATEXT}'; echo ''
|
||||||
@echo 'CATMODE=${CATMODE}'; echo ''
|
|
||||||
@echo 'CC=${CC}'; echo ''
|
|
||||||
@echo 'CCBAN=${CCBAN}'; echo ''
|
@echo 'CCBAN=${CCBAN}'; echo ''
|
||||||
|
@echo 'CC=${CC}'; echo ''
|
||||||
@echo 'CCMISC=${CCMISC}'; echo ''
|
@echo 'CCMISC=${CCMISC}'; echo ''
|
||||||
@echo 'CCOPT=${CCOPT}'; echo ''
|
@echo 'CCOPT=${CCOPT}'; echo ''
|
||||||
@echo 'CCWARN=${CCWARN}'; echo ''
|
@echo 'CCWARN=${CCWARN}'; echo ''
|
||||||
@@ -2871,32 +2880,36 @@ env:
|
|||||||
@echo 'CHMOD=${CHMOD}'; echo ''
|
@echo 'CHMOD=${CHMOD}'; echo ''
|
||||||
@echo 'CMP=${CMP}'; echo ''
|
@echo 'CMP=${CMP}'; echo ''
|
||||||
@echo 'CO=${CO}'; echo ''
|
@echo 'CO=${CO}'; echo ''
|
||||||
@echo 'COL=${COL}'; echo ''
|
|
||||||
@echo 'COMMON_ADD=${COMMON_ADD}'; echo ''
|
@echo 'COMMON_ADD=${COMMON_ADD}'; echo ''
|
||||||
@echo 'COMMON_CFLAGS=${COMMON_CFLAGS}'; echo ''
|
@echo 'COMMON_CFLAGS=${COMMON_CFLAGS}'; echo ''
|
||||||
@echo 'COMMON_LDFLAGS=${COMMON_LDFLAGS}'; echo ''
|
@echo 'COMMON_LDFLAGS=${COMMON_LDFLAGS}'; echo ''
|
||||||
@echo 'CONFIG_MKF=${CONFIG_MKF}'; echo ''
|
@echo 'CONFIG_MKF=${CONFIG_MKF}'; echo ''
|
||||||
@echo 'CP=${CP}'; echo ''
|
@echo 'CP=${CP}'; echo ''
|
||||||
@echo 'CSCRIPT_TARGETS=${CSCRIPT_TARGETS}'; echo ''
|
@echo 'CSCRIPT_TARGETS=${CSCRIPT_TARGETS}'; echo ''
|
||||||
|
@echo 'C_SRC=${C_SRC}'; echo ''
|
||||||
@echo 'CTAGS=${CTAGS}'; echo ''
|
@echo 'CTAGS=${CTAGS}'; echo ''
|
||||||
@echo 'CUSTOMCALDIR=${CUSTOMCALDIR}'; echo ''
|
@echo 'CUSTOMCALDIR=${CUSTOMCALDIR}'; echo ''
|
||||||
@echo 'CUSTOMHELPDIR=${CUSTOMHELPDIR}'; echo ''
|
@echo 'CUSTOMHELPDIR=${CUSTOMHELPDIR}'; echo ''
|
||||||
@echo 'CUSTOMINCDIR=${CUSTOMINCDIR}'; echo ''
|
@echo 'CUSTOMINCDIR=${CUSTOMINCDIR}'; echo ''
|
||||||
@echo 'C_SRC=${C_SRC}'; echo ''
|
|
||||||
@echo 'DATE=${DATE}'; echo ''
|
@echo 'DATE=${DATE}'; echo ''
|
||||||
@echo 'DEBUG=${DEBUG}'; echo ''
|
@echo 'DEBUG=${DEBUG}'; echo ''
|
||||||
@echo 'DEFAULT_LIB_INSTALL_PATH=${DEFAULT_LIB_INSTALL_PATH}'; echo ''
|
@echo 'DEFAULT_LIB_INSTALL_PATH=${DEFAULT_LIB_INSTALL_PATH}'; echo ''
|
||||||
@echo 'DEV_BITS=${DEV_BITS}'; echo ''
|
@echo 'DEV_BITS=${DEV_BITS}'; echo ''
|
||||||
@echo 'DIFF=${DIFF}'; echo ''
|
@echo 'DIFF=${DIFF}'; echo ''
|
||||||
@echo 'DISTLIST=${DISTLIST}'; echo ''
|
@echo 'DISTLIST=${DISTLIST}'; echo ''
|
||||||
@echo 'E=${E}'; echo ''
|
@echo 'DYNAMIC_FIRST_TARGETS=${DYNAMIC_FIRST_TARGETS}'; echo ''
|
||||||
@echo 'EARLY_TARGETS=${EARLY_TARGETS}'; echo ''
|
@echo 'EARLY_TARGETS=${EARLY_TARGETS}'; echo ''
|
||||||
|
@echo 'ECHON=${ECHON}'; echo ''
|
||||||
|
@echo 'E=${E}'; echo ''
|
||||||
@echo 'EXT=${EXT}'; echo ''
|
@echo 'EXT=${EXT}'; echo ''
|
||||||
|
@echo 'EXTRA_CFLAGS=${EXTRA_CFLAGS}'; echo ''
|
||||||
|
@echo 'EXTRA_LDFLAGS=${EXTRA_LDFLAGS}'; echo ''
|
||||||
@echo 'FMT=${FMT}'; echo ''
|
@echo 'FMT=${FMT}'; echo ''
|
||||||
@echo 'FPOS_BITS=${FPOS_BITS}'; echo ''
|
@echo 'FPOS_BITS=${FPOS_BITS}'; echo ''
|
||||||
@echo 'FPOS_POS_BITS=${FPOS_POS_BITS}'; echo ''
|
@echo 'FPOS_POS_BITS=${FPOS_POS_BITS}'; echo ''
|
||||||
|
@echo 'FSANITIZE=${FSANITIZE}'; echo ''
|
||||||
@echo 'GREP=${GREP}'; echo ''
|
@echo 'GREP=${GREP}'; echo ''
|
||||||
@echo 'H=${H}'; echo ''
|
@echo 'GZIP=${GZIP}'; echo ''
|
||||||
@echo 'HAVE_ARC4RANDOM=${HAVE_ARC4RANDOM}'; echo ''
|
@echo 'HAVE_ARC4RANDOM=${HAVE_ARC4RANDOM}'; echo ''
|
||||||
@echo 'HAVE_CONST=${HAVE_CONST}'; echo ''
|
@echo 'HAVE_CONST=${HAVE_CONST}'; echo ''
|
||||||
@echo 'HAVE_ENVIRON=${HAVE_ENVIRON}'; echo ''
|
@echo 'HAVE_ENVIRON=${HAVE_ENVIRON}'; echo ''
|
||||||
@@ -2924,11 +2937,11 @@ env:
|
|||||||
@echo 'HAVE_STRLCPY=${HAVE_STRLCPY}'; echo ''
|
@echo 'HAVE_STRLCPY=${HAVE_STRLCPY}'; echo ''
|
||||||
@echo 'HAVE_SYS_MOUNT_H=${HAVE_SYS_MOUNT_H}'; echo ''
|
@echo 'HAVE_SYS_MOUNT_H=${HAVE_SYS_MOUNT_H}'; echo ''
|
||||||
@echo 'HAVE_SYS_PARAM_H=${HAVE_SYS_PARAM_H}'; echo ''
|
@echo 'HAVE_SYS_PARAM_H=${HAVE_SYS_PARAM_H}'; echo ''
|
||||||
@echo 'HAVE_SYS_TIMES_H=${HAVE_SYS_TIMES_H}'; echo ''
|
|
||||||
@echo 'HAVE_SYS_TIME_H=${HAVE_SYS_TIME_H}'; echo ''
|
@echo 'HAVE_SYS_TIME_H=${HAVE_SYS_TIME_H}'; echo ''
|
||||||
|
@echo 'HAVE_SYS_TIMES_H=${HAVE_SYS_TIMES_H}'; echo ''
|
||||||
@echo 'HAVE_SYS_VFS_H=${HAVE_SYS_VFS_H}'; echo ''
|
@echo 'HAVE_SYS_VFS_H=${HAVE_SYS_VFS_H}'; echo ''
|
||||||
@echo 'HAVE_TIMES_H=${HAVE_TIMES_H}'; echo ''
|
|
||||||
@echo 'HAVE_TIME_H=${HAVE_TIME_H}'; echo ''
|
@echo 'HAVE_TIME_H=${HAVE_TIME_H}'; echo ''
|
||||||
|
@echo 'HAVE_TIMES_H=${HAVE_TIMES_H}'; echo ''
|
||||||
@echo 'HAVE_UID_T=${HAVE_UID_T}'; echo ''
|
@echo 'HAVE_UID_T=${HAVE_UID_T}'; echo ''
|
||||||
@echo 'HAVE_UNISTD_H=${HAVE_UNISTD_H}'; echo ''
|
@echo 'HAVE_UNISTD_H=${HAVE_UNISTD_H}'; echo ''
|
||||||
@echo 'HAVE_UNUSED=${HAVE_UNUSED}'; echo ''
|
@echo 'HAVE_UNUSED=${HAVE_UNUSED}'; echo ''
|
||||||
@@ -2936,6 +2949,7 @@ env:
|
|||||||
@echo 'HAVE_USTAT=${HAVE_USTAT}'; echo ''
|
@echo 'HAVE_USTAT=${HAVE_USTAT}'; echo ''
|
||||||
@echo 'HAVE_VSNPRINTF=${HAVE_VSNPRINTF}'; echo ''
|
@echo 'HAVE_VSNPRINTF=${HAVE_VSNPRINTF}'; echo ''
|
||||||
@echo 'HELPDIR=${HELPDIR}'; echo ''
|
@echo 'HELPDIR=${HELPDIR}'; echo ''
|
||||||
|
@echo 'H=${H}'; echo ''
|
||||||
@echo 'HOSTNAME=${HOSTNAME}'; echo ''
|
@echo 'HOSTNAME=${HOSTNAME}'; echo ''
|
||||||
@echo 'H_SRC=${H_SRC}'; echo ''
|
@echo 'H_SRC=${H_SRC}'; echo ''
|
||||||
@echo 'ICFLAGS=${ICFLAGS}'; echo ''
|
@echo 'ICFLAGS=${ICFLAGS}'; echo ''
|
||||||
@@ -2946,46 +2960,48 @@ env:
|
|||||||
@echo 'LATE_TARGETS=${LATE_TARGETS}'; echo ''
|
@echo 'LATE_TARGETS=${LATE_TARGETS}'; echo ''
|
||||||
@echo 'LCC=${LCC}'; echo ''
|
@echo 'LCC=${LCC}'; echo ''
|
||||||
@echo 'LDCONFIG=${LDCONFIG}'; echo ''
|
@echo 'LDCONFIG=${LDCONFIG}'; echo ''
|
||||||
@echo 'LDFLAGS=${LDFLAGS}'; echo ''
|
|
||||||
@echo 'LD_DEBUG=${LD_DEBUG}'; echo ''
|
@echo 'LD_DEBUG=${LD_DEBUG}'; echo ''
|
||||||
|
@echo 'LDFLAGS=${LDFLAGS}'; echo ''
|
||||||
@echo 'LD_SHARE=${LD_SHARE}'; echo ''
|
@echo 'LD_SHARE=${LD_SHARE}'; echo ''
|
||||||
@echo 'LIBCALC_SHLIB=${LIBCALC_SHLIB}'; echo ''
|
@echo 'LIBCALC_SHLIB=${LIBCALC_SHLIB}'; echo ''
|
||||||
@echo 'LIBCUSTCALC_SHLIB=${LIBCUSTCALC_SHLIB}'; echo ''
|
@echo 'LIBCUSTCALC_SHLIB=${LIBCUSTCALC_SHLIB}'; echo ''
|
||||||
@echo 'LIBDIR=${LIBDIR}'; echo ''
|
@echo 'LIBDIR=${LIBDIR}'; echo ''
|
||||||
|
@echo 'LIB_EXT=${LIB_EXT}'; echo ''
|
||||||
|
@echo 'LIB_EXT_VER=${LIB_EXT_VER}'; echo ''
|
||||||
|
@echo 'LIB_EXT_VERSION=${LIB_EXT_VERSION}'; echo ''
|
||||||
|
@echo 'LIB_H_SRC=${LIB_H_SRC}'; echo ''
|
||||||
@echo 'LIBOBJS=${LIBOBJS}'; echo ''
|
@echo 'LIBOBJS=${LIBOBJS}'; echo ''
|
||||||
@echo 'LIBSRC=${LIBSRC}'; echo ''
|
@echo 'LIBSRC=${LIBSRC}'; echo ''
|
||||||
@echo 'LIB_H_SRC=${LIB_H_SRC}'; echo ''
|
|
||||||
@echo 'LICENSE=${LICENSE}'; echo ''
|
@echo 'LICENSE=${LICENSE}'; echo ''
|
||||||
@echo 'LN=${LN}'; echo ''
|
@echo 'LN=${LN}'; echo ''
|
||||||
@echo 'LOCAL_MKF=${LOCAL_MKF}'; echo ''
|
@echo 'LOCAL_MKF=${LOCAL_MKF}'; echo ''
|
||||||
@echo 'LONG_BITS=${LONG_BITS}'; echo ''
|
@echo 'LONG_BITS=${LONG_BITS}'; echo ''
|
||||||
@echo 'MAKE=${MAKE}'; echo ''
|
@echo 'LS=${LS}'; echo ''
|
||||||
@echo 'MAKEDEPEND=${MAKEDEPEND}'; echo ''
|
@echo 'MAKEDEPEND=${MAKEDEPEND}'; echo ''
|
||||||
@echo 'MAKE_FILE=${MAKE_FILE}'; echo ''
|
@echo 'MAKE_FILE=${MAKE_FILE}'; echo ''
|
||||||
|
@echo 'MAKE=${MAKE}'; echo ''
|
||||||
|
@echo 'MAN=${MAN}'; echo ''
|
||||||
@echo 'MANDIR=${MANDIR}'; echo ''
|
@echo 'MANDIR=${MANDIR}'; echo ''
|
||||||
@echo 'MANEXT=${MANEXT}'; echo ''
|
@echo 'MANEXT=${MANEXT}'; echo ''
|
||||||
@echo 'MANMAKE=${MANMAKE}'; echo ''
|
|
||||||
@echo 'MANMODE=${MANMODE}'; echo ''
|
|
||||||
@echo 'MINGW=${MINGW}'; echo ''
|
@echo 'MINGW=${MINGW}'; echo ''
|
||||||
@echo 'MKDIR=${MKDIR}'; echo ''
|
@echo 'MKDIR=${MKDIR}'; echo ''
|
||||||
|
@echo 'MK_SET=${MK_SET}'; echo ''
|
||||||
@echo 'MV=${MV}'; echo ''
|
@echo 'MV=${MV}'; echo ''
|
||||||
@echo 'NROFF=${NROFF}'; echo ''
|
|
||||||
@echo 'NROFF_ARG=${NROFF_ARG}'; echo ''
|
|
||||||
@echo 'OBJS=${OBJS}'; echo ''
|
@echo 'OBJS=${OBJS}'; echo ''
|
||||||
@echo 'OFF_T_BITS=${OFF_T_BITS}'; echo ''
|
@echo 'OFF_T_BITS=${OFF_T_BITS}'; echo ''
|
||||||
@echo 'OSNAME=${OSNAME}'; echo ''
|
@echo 'OSNAME=${OSNAME}'; echo ''
|
||||||
|
@echo 'PHONY=${PHONY}'; echo ''
|
||||||
@echo 'PREFIX=${PREFIX}'; echo ''
|
@echo 'PREFIX=${PREFIX}'; echo ''
|
||||||
@echo 'PURIFY=${PURIFY}'; echo ''
|
@echo 'PURIFY=${PURIFY}'; echo ''
|
||||||
@echo 'PWD=${PWD}'; echo ''
|
|
||||||
@echo 'PWDCMD=${PWDCMD}'; echo ''
|
@echo 'PWDCMD=${PWDCMD}'; echo ''
|
||||||
|
@echo 'PWD=${PWD}'; echo ''
|
||||||
@echo 'Q=${Q}'; echo ''
|
@echo 'Q=${Q}'; echo ''
|
||||||
@echo 'RANLIB=${RANLIB}'; echo ''
|
@echo 'RANLIB=${RANLIB}'; echo ''
|
||||||
@echo 'READLINE_EXTRAS=${READLINE_EXTRAS}'; echo ''
|
@echo 'READLINE_EXTRAS=${READLINE_EXTRAS}'; echo ''
|
||||||
@echo 'READLINE_INCLUDE=${READLINE_INCLUDE}'; echo ''
|
@echo 'READLINE_INCLUDE=${READLINE_INCLUDE}'; echo ''
|
||||||
@echo 'READLINE_LIB=${READLINE_LIB}'; echo ''
|
@echo 'READLINE_LIB=${READLINE_LIB}'; echo ''
|
||||||
@echo 'RM=${RM}'; echo ''
|
|
||||||
@echo 'RMDIR=${RMDIR}'; echo ''
|
@echo 'RMDIR=${RMDIR}'; echo ''
|
||||||
@echo 'S=${S}'; echo ''
|
@echo 'RM=${RM}'; echo ''
|
||||||
@echo 'SAMPLE_C_SRC=${SAMPLE_C_SRC}'; echo ''
|
@echo 'SAMPLE_C_SRC=${SAMPLE_C_SRC}'; echo ''
|
||||||
@echo 'SAMPLE_H_SRC=${SAMPLE_H_SRC}'; echo ''
|
@echo 'SAMPLE_H_SRC=${SAMPLE_H_SRC}'; echo ''
|
||||||
@echo 'SAMPLE_OBJ=${SAMPLE_OBJ}'; echo ''
|
@echo 'SAMPLE_OBJ=${SAMPLE_OBJ}'; echo ''
|
||||||
@@ -2996,17 +3012,23 @@ env:
|
|||||||
@echo 'SED=${SED}'; echo ''
|
@echo 'SED=${SED}'; echo ''
|
||||||
@echo 'SHELL=${SHELL}'; echo ''
|
@echo 'SHELL=${SHELL}'; echo ''
|
||||||
@echo 'SORT=${SORT}'; echo ''
|
@echo 'SORT=${SORT}'; echo ''
|
||||||
@echo 'SPLINT=${SPLINT}'; echo ''
|
|
||||||
@echo 'SPLINT_OPTS=${SPLINT_OPTS}'; echo ''
|
@echo 'SPLINT_OPTS=${SPLINT_OPTS}'; echo ''
|
||||||
|
@echo 'SPLINT=${SPLINT}'; echo ''
|
||||||
|
@echo 'S=${S}'; echo ''
|
||||||
|
@echo 'STATIC_FIRST_TARGETS=${STATIC_FIRST_TARGETS}'; echo ''
|
||||||
|
@echo 'STRIP=${STRIP}'; echo ''
|
||||||
@echo 'SYM_DYNAMIC_LIBS=${SYM_DYNAMIC_LIBS}'; echo ''
|
@echo 'SYM_DYNAMIC_LIBS=${SYM_DYNAMIC_LIBS}'; echo ''
|
||||||
@echo 'T=${T}'; echo ''
|
@echo 'TAIL=${TAIL}'; echo ''
|
||||||
@echo 'TARGETS=${TARGETS}'; echo ''
|
|
||||||
@echo 'TARGET_MKF=${TARGET_MKF}'; echo ''
|
@echo 'TARGET_MKF=${TARGET_MKF}'; echo ''
|
||||||
|
@echo 'TARGETS=${TARGETS}'; echo ''
|
||||||
@echo 'TEE=${TEE}'; echo ''
|
@echo 'TEE=${TEE}'; echo ''
|
||||||
@echo 'TERMCONTROL=${TERMCONTROL}'; echo ''
|
@echo 'TERMCONTROL=${TERMCONTROL}'; echo ''
|
||||||
@echo 'TOUCH=${TOUCH}'; echo ''
|
@echo 'TOUCH=${TOUCH}'; echo ''
|
||||||
|
@echo 'TRAILBLANK=${TRAILBLANK}'; echo ''
|
||||||
@echo 'TRUE=${TRUE}'; echo ''
|
@echo 'TRUE=${TRUE}'; echo ''
|
||||||
|
@echo 'T=${T}'; echo ''
|
||||||
@echo 'UNAME=${UNAME}'; echo ''
|
@echo 'UNAME=${UNAME}'; echo ''
|
||||||
|
@echo 'UPDATE_VER=${UPDATE_VER}'; echo ''
|
||||||
@echo 'USE_READLINE=${USE_READLINE}'; echo ''
|
@echo 'USE_READLINE=${USE_READLINE}'; echo ''
|
||||||
@echo 'UTIL_C_SRC=${UTIL_C_SRC}'; echo ''
|
@echo 'UTIL_C_SRC=${UTIL_C_SRC}'; echo ''
|
||||||
@echo 'UTIL_FILES=${UTIL_FILES}'; echo ''
|
@echo 'UTIL_FILES=${UTIL_FILES}'; echo ''
|
||||||
@@ -3014,8 +3036,9 @@ env:
|
|||||||
@echo 'UTIL_OBJS=${UTIL_OBJS}'; echo ''
|
@echo 'UTIL_OBJS=${UTIL_OBJS}'; echo ''
|
||||||
@echo 'UTIL_PROGS=${UTIL_PROGS}'; echo ''
|
@echo 'UTIL_PROGS=${UTIL_PROGS}'; echo ''
|
||||||
@echo 'UTIL_TMP=${UTIL_TMP}'; echo ''
|
@echo 'UTIL_TMP=${UTIL_TMP}'; echo ''
|
||||||
@echo 'V=${V}'; echo ''
|
|
||||||
@echo 'VERSION=${VERSION}'; echo ''
|
@echo 'VERSION=${VERSION}'; echo ''
|
||||||
|
@echo 'VER=${VER}'; echo ''
|
||||||
|
@echo 'V=${V}'; echo ''
|
||||||
@echo 'WNO_ERROR_LONG_LONG=${WNO_ERROR_LONG_LONG}'; echo ''
|
@echo 'WNO_ERROR_LONG_LONG=${WNO_ERROR_LONG_LONG}'; echo ''
|
||||||
@echo 'WNO_IMPLICT=${WNO_IMPLICT};' echo ''
|
@echo 'WNO_IMPLICT=${WNO_IMPLICT};' echo ''
|
||||||
@echo 'WNO_LONG_LONG=${WNO_LONG_LONG}'; echo ''
|
@echo 'WNO_LONG_LONG=${WNO_LONG_LONG}'; echo ''
|
||||||
@@ -3201,9 +3224,9 @@ prep:
|
|||||||
${Q}echo
|
${Q}echo
|
||||||
${MAKE} -s depend
|
${MAKE} -s depend
|
||||||
${Q}echo
|
${Q}echo
|
||||||
@if [[ -f ${MAKE_FILE}.bak ]]; then echo ${MAKE_FILE}.bak exists 1>&2; exit 1; fi
|
@if [ -f ${MAKE_FILE}.bak ]; then echo ${MAKE_FILE}.bak exists 1>&2; exit 1; fi
|
||||||
@if [[ -f cscript/${MAKE_FILE}.bak ]]; then echo cscript/${MAKE_FILE}.bak exists 1>&2; exit 2; fi
|
@if [ -f cscript/${MAKE_FILE}.bak ]; then echo cscript/${MAKE_FILE}.bak exists 1>&2; exit 2; fi
|
||||||
@if [[ -f custom/${MAKE_FILE}.bak ]]; then echo custom/${MAKE_FILE}.bak exists 1>&2; exit 3; fi
|
@if [ -f custom/${MAKE_FILE}.bak ]; then echo custom/${MAKE_FILE}.bak exists 1>&2; exit 3; fi
|
||||||
${Q}echo '=-=-=-=-=-= end of ${MAKE} depend =-=-=-=-=-='
|
${Q}echo '=-=-=-=-=-= end of ${MAKE} depend =-=-=-=-=-='
|
||||||
${Q}echo
|
${Q}echo
|
||||||
${Q}echo '=-=-=-=-=-= start of ${MAKE} testfuncsort =-=-=-=-=-='
|
${Q}echo '=-=-=-=-=-= start of ${MAKE} testfuncsort =-=-=-=-=-='
|
||||||
@@ -3415,7 +3438,7 @@ clobber: clean
|
|||||||
${RM} -f *.u
|
${RM} -f *.u
|
||||||
${RM} -f libcalc.a
|
${RM} -f libcalc.a
|
||||||
${RM} -f libcustcalc.a
|
${RM} -f libcustcalc.a
|
||||||
${RM} -f calc.1 calc.usage
|
${RM} -f calc.1 calc.cat1
|
||||||
${RM} -f calc.pixie calc.rf calc.Counts calc.cord
|
${RM} -f calc.pixie calc.rf calc.Counts calc.cord
|
||||||
${RM} -f gen_h Makefile.bak tmp.patch
|
${RM} -f gen_h Makefile.bak tmp.patch
|
||||||
${RM} -rf skel
|
${RM} -rf skel
|
||||||
@@ -3751,7 +3774,7 @@ install: ${LIB_H_SRC} ${BUILD_H_SRC} calc.1 all custom/Makefile
|
|||||||
echo "removed old ${T}${CALC_INCDIR}/string.h"; \
|
echo "removed old ${T}${CALC_INCDIR}/string.h"; \
|
||||||
fi; \
|
fi; \
|
||||||
done
|
done
|
||||||
-${Q} if [ -z "${MANDIR}" ]; then \
|
-${Q} if [ -z "${MANDIR}" || ! -s calc.1 ]; then \
|
||||||
${TRUE}; \
|
${TRUE}; \
|
||||||
else \
|
else \
|
||||||
if ${CMP} -s calc.1 ${T}${MANDIR}/calc.${MANEXT}; then \
|
if ${CMP} -s calc.1 ${T}${MANDIR}/calc.${MANEXT}; then \
|
||||||
@@ -3765,24 +3788,17 @@ install: ${LIB_H_SRC} ${BUILD_H_SRC} calc.1 all custom/Makefile
|
|||||||
echo "installed ${T}${MANDIR}/calc.${MANEXT}"; \
|
echo "installed ${T}${MANDIR}/calc.${MANEXT}"; \
|
||||||
fi; \
|
fi; \
|
||||||
fi
|
fi
|
||||||
-${Q} if [ -z "${CATDIR}" ]; then \
|
-${Q} if [ -z "${CATDIR}" || ! -s calc.cat1 ]; then \
|
||||||
${TRUE}; \
|
${TRUE}; \
|
||||||
else \
|
else \
|
||||||
if ${CMP} -s calc.1 ${T}${MANDIR}/calc.${MANEXT}; then \
|
if ${CMP} -s calc.cat1 ${T}${CATDIR}/calc.${MANEXT}; then \
|
||||||
${TRUE}; \
|
${TRUE}; \
|
||||||
else \
|
else \
|
||||||
if [ -n "${NROFF}" ]; then \
|
|
||||||
${RM} -f ${T}${CATDIR}/calc.${CATEXT}.new; \
|
${RM} -f ${T}${CATDIR}/calc.${CATEXT}.new; \
|
||||||
${NROFF} ${NROFF_ARG} calc.1 > \
|
${CP} -f calc.cat1 ${T}${CATDIR}/calc.${CATEXT}.new; \
|
||||||
${T}${CATDIR}/calc.${CATEXT}.new; \
|
|
||||||
${CHMOD} ${MANMODE} ${T}${MANDIR}/calc.${CATEXT}.new; \
|
|
||||||
${MV} -f ${T}${CATDIR}/calc.${CATEXT}.new \
|
${MV} -f ${T}${CATDIR}/calc.${CATEXT}.new \
|
||||||
${T}${CATDIR}/calc.${CATEXT}; \
|
${T}${CATDIR}/calc.${CATEXT}; \
|
||||||
echo "installed ${T}${CATDIR}/calc.${CATEXT}"; \
|
echo "installed ${T}${CATDIR}/calc.${CATEXT}"; \
|
||||||
elif [ -x "${MANNAME}" ]; then \
|
|
||||||
echo "${MANMAKE} calc.1 ${T}${CATDIR}"; \
|
|
||||||
${MANMAKE} calc.1 ${T}${CATDIR}; \
|
|
||||||
fi; \
|
|
||||||
fi; \
|
fi; \
|
||||||
fi
|
fi
|
||||||
${V} # NOTE: misc install cleanup
|
${V} # NOTE: misc install cleanup
|
||||||
|
@@ -997,9 +997,6 @@ endif # ($(target),Darwin)
|
|||||||
#
|
#
|
||||||
# Use CATDIR= to disable installation of the calc cat (formatted) page.
|
# Use CATDIR= to disable installation of the calc cat (formatted) page.
|
||||||
#
|
#
|
||||||
# NOTE: If CATDIR is non-empty, then one should have either the
|
|
||||||
# ${NROFF} executable and/or the ${MANMAKE} executable.
|
|
||||||
#
|
|
||||||
CATDIR=
|
CATDIR=
|
||||||
#CATDIR= ${PREFIX}/man/cat1
|
#CATDIR= ${PREFIX}/man/cat1
|
||||||
#CATDIR= ${PREFIX}/catman/cat1
|
#CATDIR= ${PREFIX}/catman/cat1
|
||||||
@@ -1026,36 +1023,6 @@ CATEXT= 1
|
|||||||
#CATEXT= 0
|
#CATEXT= 0
|
||||||
#CATEXT= l
|
#CATEXT= l
|
||||||
|
|
||||||
# how to format a man page
|
|
||||||
#
|
|
||||||
# If CATDIR is non-empty, then
|
|
||||||
#
|
|
||||||
# If NROFF is non-empty, then
|
|
||||||
#
|
|
||||||
# ${NROFF} ${NROFF_ARG} calc.1 > ${CATDIR}/calc.${CATEXT}
|
|
||||||
# is used to build and install the cat page
|
|
||||||
#
|
|
||||||
# else (NROFF is empty)
|
|
||||||
#
|
|
||||||
# ${MANMAKE} calc.1 ${CATDIR}
|
|
||||||
# is used to build and install the cat page
|
|
||||||
# else
|
|
||||||
#
|
|
||||||
# The cat page is not built or installed
|
|
||||||
#
|
|
||||||
# If in doubt and you don't want to fool with man pages, set MANDIR
|
|
||||||
# and CATDIR to empty and ignore the NROFF, NROFF_ARG and MANMAKE
|
|
||||||
# lines below.
|
|
||||||
#
|
|
||||||
#NROFF= nroff
|
|
||||||
NROFF=
|
|
||||||
#NROFF= groff
|
|
||||||
NROFF_ARG= -man
|
|
||||||
#NROFF_ARG= -mandoc
|
|
||||||
MANMAKE= ${PREFIX}/bin/manmake
|
|
||||||
#MANMAKE= manmake
|
|
||||||
MANMODE= 0444
|
|
||||||
CATMODE= 0444
|
|
||||||
|
|
||||||
# By default, custom builtin functions may only be executed if calc
|
# By default, custom builtin functions may only be executed if calc
|
||||||
# is given the -C option. This is because custom builtin functions
|
# is given the -C option. This is because custom builtin functions
|
||||||
@@ -1296,13 +1263,13 @@ CAT= cat
|
|||||||
CHMOD= chmod
|
CHMOD= chmod
|
||||||
CMP= cmp
|
CMP= cmp
|
||||||
CO= co
|
CO= co
|
||||||
COL= col
|
|
||||||
CP= cp
|
CP= cp
|
||||||
CTAGS= ctags
|
CTAGS= ctags
|
||||||
DATE= date
|
DATE= date
|
||||||
DIFF= diff
|
DIFF= diff
|
||||||
FMT= fmt
|
FMT= fmt
|
||||||
GREP= grep
|
GREP= grep
|
||||||
|
GZIP= gzip
|
||||||
HOSTNAME= hostname
|
HOSTNAME= hostname
|
||||||
LANG= C
|
LANG= C
|
||||||
LDCONFIG= ldconfig
|
LDCONFIG= ldconfig
|
||||||
@@ -1310,6 +1277,7 @@ LN= ln
|
|||||||
LS= ls
|
LS= ls
|
||||||
MAKE= make
|
MAKE= make
|
||||||
MAKEDEPEND= makedepend
|
MAKEDEPEND= makedepend
|
||||||
|
MAN= man
|
||||||
MKDIR= mkdir
|
MKDIR= mkdir
|
||||||
MV= mv
|
MV= mv
|
||||||
PWDCMD= pwd
|
PWDCMD= pwd
|
||||||
@@ -1321,8 +1289,8 @@ SORT= sort
|
|||||||
SPLINT= splint
|
SPLINT= splint
|
||||||
SPLINT_OPTS=
|
SPLINT_OPTS=
|
||||||
STRIP= strip
|
STRIP= strip
|
||||||
TEE= tee
|
|
||||||
TAIL= tail
|
TAIL= tail
|
||||||
|
TEE= tee
|
||||||
TOUCH= touch
|
TOUCH= touch
|
||||||
TRUE= true
|
TRUE= true
|
||||||
UNAME= uname
|
UNAME= uname
|
||||||
|
@@ -4879,8 +4879,9 @@ define test_charset()
|
|||||||
vrfy("\123" == char(0123), '4706: "\\123" == char(0123)');
|
vrfy("\123" == char(0123), '4706: "\\123" == char(0123)');
|
||||||
vrfy("\123\124" == "ST", '4707: "\\123\\124" == "ST"');
|
vrfy("\123\124" == "ST", '4707: "\\123\\124" == "ST"');
|
||||||
vrfy("\311" == char(201), '4708: "\\311" == char(201)');
|
vrfy("\311" == char(201), '4708: "\\311" == char(201)');
|
||||||
vrfy("\119" == "\t9", '4709: "\\119" == "\t9"');
|
/* NOTE: We skip non-ASCII to avoid problems with old awk that cannot handle them */
|
||||||
vrfy("\765" == "\365", '4710: "\\765" == "\365"');
|
/* vrfy("\119" == "\t9", '4709: "\\119" == "\t9"'); */
|
||||||
|
/* vrfy("\765" == "\365", '4710: "\\765" == "\365"'); */
|
||||||
vrfy("\x61" == "a", '4711: "\\x61" == "a"');
|
vrfy("\x61" == "a", '4711: "\\x61" == "a"');
|
||||||
vrfy("\x73" == "s", '4712: "\\x73" == "s"');
|
vrfy("\x73" == "s", '4712: "\\x73" == "s"');
|
||||||
vrfy("\xea" == char(234), '4713: "\\xea" == char(234)');
|
vrfy("\xea" == char(234), '4713: "\\xea" == char(234)');
|
||||||
@@ -8191,7 +8192,8 @@ define test_newstring()
|
|||||||
vrfy(A == "A\255gdef", '7761: A == "A\\255gdef"');
|
vrfy(A == "A\255gdef", '7761: A == "A\\255gdef"');
|
||||||
setbit(A, 16, 0);
|
setbit(A, 16, 0);
|
||||||
print '7762: setbit(A, 16, 0);';
|
print '7762: setbit(A, 16, 0);';
|
||||||
vrfy(A == "A\255fdef", '7763: A == "A\255fdef"');
|
/* NOTE: We skip non-ASCII to avoid problems with old awk that cannot handle them */
|
||||||
|
/* vrfy(A == "A\255fdef", '7763: A == "A\255fdef"'); */
|
||||||
|
|
||||||
q = "curds" " and " "whey";
|
q = "curds" " and " "whey";
|
||||||
print '7764: q = "curds" " and " "whey"';
|
print '7764: q = "curds" " and " "whey"';
|
||||||
|
4
calc.c
4
calc.c
@@ -543,8 +543,8 @@ main(int argc, char **argv)
|
|||||||
cmdbuf[cmdlen++] = '\n';
|
cmdbuf[cmdlen++] = '\n';
|
||||||
cmdbuf[cmdlen] = '\0';
|
cmdbuf[cmdlen] = '\0';
|
||||||
if (p_flag != true) {
|
if (p_flag != true) {
|
||||||
if (fclose(stdin)) {
|
if (freopen("/dev/null", "r", stdin) == NULL) {
|
||||||
perror("main(): fclose(stdin) failed:");
|
perror("in main: freopen(\"/dev/null\", \"r\", stdin) failed:");
|
||||||
}
|
}
|
||||||
stdin_closed = true;
|
stdin_closed = true;
|
||||||
}
|
}
|
||||||
|
83
calc.man
83
calc.man
@@ -470,6 +470,24 @@ The
|
|||||||
flag overrides
|
flag overrides
|
||||||
.BR \-i .
|
.BR \-i .
|
||||||
|
|
||||||
|
.sp 1
|
||||||
|
When running calc as a shell script (see
|
||||||
|
.B "SHELL SCRIPT MODE"
|
||||||
|
for details), calc will close standard input (stdin)
|
||||||
|
during startup
|
||||||
|
.B UNLESS
|
||||||
|
the
|
||||||
|
.B \-p
|
||||||
|
flag is given on the command line.
|
||||||
|
When calc is running in
|
||||||
|
.BR "shell script mode" ,
|
||||||
|
shell scripts that call the
|
||||||
|
.BR prompt (str)
|
||||||
|
builtin will not work properly (the prompt builtin
|
||||||
|
will always fail) unless the
|
||||||
|
.B \-p
|
||||||
|
flag is given on the command line.
|
||||||
|
|
||||||
.TP
|
.TP
|
||||||
.B \-q
|
.B \-q
|
||||||
Disable the reading of the startup scripts.
|
Disable the reading of the startup scripts.
|
||||||
@@ -651,7 +669,9 @@ echo chongo was here | calc \-i 'print fgetline(files(0));'
|
|||||||
.fi
|
.fi
|
||||||
.in -5n
|
.in -5n
|
||||||
.sp 1
|
.sp 1
|
||||||
This is because without \-p, the interactive parser, in an effort
|
This is because without
|
||||||
|
.BR \-p ,
|
||||||
|
the interactive parser, in an effort
|
||||||
to parse interactive commands, flushes data on standard input.
|
to parse interactive commands, flushes data on standard input.
|
||||||
|
|
||||||
.PP
|
.PP
|
||||||
@@ -932,6 +952,67 @@ whereas
|
|||||||
.sp 1
|
.sp 1
|
||||||
will not.
|
will not.
|
||||||
|
|
||||||
|
.sp 1
|
||||||
|
By default, using calc startup in
|
||||||
|
.BR "shell script mode" ,
|
||||||
|
calc will close standard input (stdin).
|
||||||
|
Thus builtin functions such as
|
||||||
|
.BR prompt (str)
|
||||||
|
will fail (return a null value).
|
||||||
|
Calc shell scripts that call the
|
||||||
|
.BR prompt (str)
|
||||||
|
builtin will not work properly (the prompt builtin
|
||||||
|
will always fail and return a null value) unless the
|
||||||
|
.B \-p
|
||||||
|
flag is given on the command line.
|
||||||
|
|
||||||
|
.sp 1
|
||||||
|
The following shell script will always print "got null" because
|
||||||
|
stdin will be closed by calc during startup:
|
||||||
|
|
||||||
|
.sp 1
|
||||||
|
.in +5n
|
||||||
|
.nf
|
||||||
|
#!/usr/bin/calc \-q \-f
|
||||||
|
|
||||||
|
# The prompt will ALWAYS FAIL and return a null value
|
||||||
|
n = prompt("Test> ");
|
||||||
|
if (isnull(n)) {
|
||||||
|
print("got null");
|
||||||
|
} else {
|
||||||
|
print("got " + n);
|
||||||
|
}
|
||||||
|
.fi
|
||||||
|
.in -5n
|
||||||
|
.sp 1
|
||||||
|
However the following shell script (note the
|
||||||
|
.B \-p
|
||||||
|
before the
|
||||||
|
.B \-f
|
||||||
|
in the 1st line) will be interactive, prompt with "Test> " and print
|
||||||
|
the "got" result as expected:
|
||||||
|
|
||||||
|
.sp 1
|
||||||
|
.in +5n
|
||||||
|
.nf
|
||||||
|
#!/usr/bin/calc \-q \-p \-f
|
||||||
|
|
||||||
|
n = prompt("Test> ");
|
||||||
|
if (isnull(n)) {
|
||||||
|
print("got null");
|
||||||
|
} else {
|
||||||
|
print("got " + n);
|
||||||
|
}
|
||||||
|
.fi
|
||||||
|
.in -5n
|
||||||
|
|
||||||
|
.sp 1
|
||||||
|
Note in the example above, the
|
||||||
|
.B \-p
|
||||||
|
flag must be given before the final
|
||||||
|
.B \-f
|
||||||
|
command line flag.
|
||||||
|
|
||||||
.PP
|
.PP
|
||||||
|
|
||||||
.SH DATA TYPES
|
.SH DATA TYPES
|
||||||
|
39
help.c
39
help.c
@@ -56,38 +56,41 @@ STATIC struct help_alias {
|
|||||||
char *topic;
|
char *topic;
|
||||||
char *filename;
|
char *filename;
|
||||||
} halias[] = {
|
} halias[] = {
|
||||||
|
/* We sort the list below via: sort -d -u */
|
||||||
{"=", "address"},
|
{"=", "address"},
|
||||||
{"->", "arrow"},
|
{"->", "arrow"},
|
||||||
{"=", "assign"},
|
{"=", "assign"},
|
||||||
{"*", "dereference"},
|
{"*", "dereference"},
|
||||||
{".", "oldvalue"},
|
|
||||||
{"%", "mod"},
|
{"%", "mod"},
|
||||||
{"//", "quo"},
|
{".", "oldvalue"},
|
||||||
{"#", "pound"},
|
{"#", "pound"},
|
||||||
{"calc", "help"},
|
{"//", "quo"},
|
||||||
|
{"COPYING_LGPL", "COPYING-LGPL"},
|
||||||
|
{"COPYLEFT", "copyright"},
|
||||||
|
{"COPYRIGHT", "copyright"},
|
||||||
|
{"Copyleft", "copyright"},
|
||||||
|
{"Copyright", "copyright"},
|
||||||
|
{"abort", "command"},
|
||||||
|
{"cd", "command"},
|
||||||
{"copy", "blkcpy"},
|
{"copy", "blkcpy"},
|
||||||
{"copying", "COPYING"},
|
{"copying", "COPYING"},
|
||||||
{"copying-lgpl", "COPYING-LGPL"},
|
{"copying-lgpl", "COPYING-LGPL"},
|
||||||
{"copying_lgpl", "COPYING-LGPL"},
|
|
||||||
{"COPYING_LGPL", "COPYING-LGPL"},
|
|
||||||
{"Copyright", "copyright"},
|
|
||||||
{"COPYRIGHT", "copyright"},
|
|
||||||
{"Copyleft", "copyright"},
|
|
||||||
{"COPYLEFT", "copyright"},
|
|
||||||
{"define", "command"},
|
{"define", "command"},
|
||||||
{"read", "command"},
|
|
||||||
{"write", "command"},
|
|
||||||
{"quit", "command"},
|
|
||||||
{"exit", "command"},
|
|
||||||
{"abort", "command"},
|
|
||||||
{"cd", "command"},
|
|
||||||
{"show", "command"},
|
|
||||||
{"stdlib", "resource"},
|
|
||||||
{"question", "questions"},
|
|
||||||
{"dm2d", "dms2d"},
|
{"dm2d", "dms2d"},
|
||||||
|
{"exit", "command"},
|
||||||
{"gm2g", "gms2g"},
|
{"gm2g", "gms2g"},
|
||||||
{"hm2d", "hms2d"},
|
{"hm2d", "hms2d"},
|
||||||
|
{"man", "calc"},
|
||||||
|
{"question", "questions"},
|
||||||
|
{"quit", "command"},
|
||||||
|
{"read", "command"},
|
||||||
{"release", "releases"},
|
{"release", "releases"},
|
||||||
|
{"show", "command"},
|
||||||
|
{"stdlib", "resource"},
|
||||||
|
{"usage", "calc"},
|
||||||
|
{"write", "command"},
|
||||||
|
|
||||||
|
/* MUST BE LAST! */
|
||||||
{NULL, NULL}
|
{NULL, NULL}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@@ -118,44 +118,33 @@ V=@:
|
|||||||
# Files managed by this Makefile #
|
# Files managed by this Makefile #
|
||||||
##################################
|
##################################
|
||||||
|
|
||||||
STD_HELP_FILES_1= intro overview help
|
STD_HELP_FILES_1= intro overview calc
|
||||||
|
|
||||||
STD_HELP_FILES_2= assoc
|
STD_HELP_FILES_2= assoc
|
||||||
|
BLT_HELP_FILES_3= builtin
|
||||||
BLT_HELP_FILES_3= builtin man
|
STD_HELP_FILES_4= command config custom define environment
|
||||||
|
|
||||||
STD_HELP_FILES_4= command config custom define environment expression
|
|
||||||
|
|
||||||
BLT_HELP_FILES_5= errorcodes
|
BLT_HELP_FILES_5= errorcodes
|
||||||
|
STD_HELP_FILES_6= expression file history interrupt list mat
|
||||||
STD_HELP_FILES_6= file history interrupt list mat
|
|
||||||
|
|
||||||
# because obj is built special (due to confusion with it as
|
# because obj is built special (due to confusion with it as
|
||||||
# a symlink for some built environments, we treat obj specially
|
# a symlink for some built environments, we treat obj specially
|
||||||
# and call it obj.file
|
# and call it obj.file
|
||||||
#
|
#
|
||||||
SPECIAL_HELP_7= obj.file
|
SPECIAL_HELP_7= obj.file
|
||||||
|
STD_HELP_FILES_8= operator
|
||||||
STD_HELP_FILES_8= operator statement
|
|
||||||
|
|
||||||
BLT_HELP_FILES_9= resource
|
BLT_HELP_FILES_9= resource
|
||||||
|
STD_HELP_FILES_10= script statement types unexpected variable
|
||||||
|
|
||||||
STD_HELP_FILES_10= types script
|
BLT_HELP_FILES_11= bindings custom_cal libcalc new_custom cscript
|
||||||
|
|
||||||
BLT_HELP_FILES_10a= usage cscript
|
|
||||||
|
|
||||||
STD_HELP_FILES_10b= unexpected variable
|
|
||||||
|
|
||||||
BLT_HELP_FILES_11= bindings custom_cal libcalc new_custom resource
|
|
||||||
|
|
||||||
STD_HELP_FILES_12= archive
|
STD_HELP_FILES_12= archive
|
||||||
|
BLT_HELP_FILES_13= bugs changes contrib
|
||||||
|
STD_HELP_FILES_14= todo wishlist
|
||||||
|
|
||||||
BLT_HELP_FILES_13= bugs changes
|
STD_HELP_FILES_15= credit
|
||||||
|
# copyright is printed by help.c is from the Copyright string found in version.c
|
||||||
|
BLT_HELP_FILES_16= COPYING COPYING-LGPL questions releases
|
||||||
|
|
||||||
STD_HELP_FILES_14= credit
|
STD_HELP_FILES_17= help
|
||||||
|
|
||||||
BLT_HELP_FILES_14= contrib COPYING COPYING-LGPL questions releases
|
|
||||||
|
|
||||||
STD_HELP_FILES_15= wishlist todo
|
|
||||||
|
|
||||||
# These files are used in the following order to construct full
|
# These files are used in the following order to construct full
|
||||||
#
|
#
|
||||||
@@ -164,19 +153,18 @@ FULL_HELP_FILES= ${STD_HELP_FILES_1} ${STD_HELP_FILES_2} \
|
|||||||
${BLT_HELP_FILES_5} ${STD_HELP_FILES_6} \
|
${BLT_HELP_FILES_5} ${STD_HELP_FILES_6} \
|
||||||
${SPECIAL_HELP_7} ${STD_HELP_FILES_8} \
|
${SPECIAL_HELP_7} ${STD_HELP_FILES_8} \
|
||||||
${BLT_HELP_FILES_9} ${STD_HELP_FILES_10} \
|
${BLT_HELP_FILES_9} ${STD_HELP_FILES_10} \
|
||||||
${BLT_HELP_FILES_10a} ${STD_HELP_FILES_10b} \
|
|
||||||
${BLT_HELP_FILES_11} ${STD_HELP_FILES_12} \
|
${BLT_HELP_FILES_11} ${STD_HELP_FILES_12} \
|
||||||
${BLT_HELP_FILES_13} ${STD_HELP_FILES_14} \
|
${BLT_HELP_FILES_13} ${STD_HELP_FILES_14} \
|
||||||
${BLT_HELP_FILES_14} ${STD_HELP_FILES_15}
|
${STD_HELP_FILES_15} ${BLT_HELP_FILES_16} \
|
||||||
|
${STD_HELP_FILES_17}
|
||||||
|
|
||||||
# These full files are those who are not built or constructed
|
# These full files are those who are not built or constructed
|
||||||
#
|
#
|
||||||
STD_HELP_FILES= ${STD_HELP_FILES_1} ${STD_HELP_FILES_2} \
|
STD_HELP_FILES= ${STD_HELP_FILES_1} ${STD_HELP_FILES_2} \
|
||||||
${STD_HELP_FILES_4} ${STD_HELP_FILES_6} \
|
${STD_HELP_FILES_4} ${STD_HELP_FILES_6} \
|
||||||
${STD_HELP_FILES_8} ${STD_HELP_FILES_10} \
|
${STD_HELP_FILES_8} ${STD_HELP_FILES_10} \
|
||||||
${STD_HELP_FILES_10b} \
|
|
||||||
${STD_HELP_FILES_12} ${STD_HELP_FILES_14} \
|
${STD_HELP_FILES_12} ${STD_HELP_FILES_14} \
|
||||||
${STD_HELP_FILES_15}
|
${STD_HELP_FILES_15} ${STD_HELP_FILES_17}
|
||||||
|
|
||||||
# These full files are those who are built by this Makefile
|
# These full files are those who are built by this Makefile
|
||||||
#
|
#
|
||||||
@@ -184,10 +172,8 @@ STD_HELP_FILES= ${STD_HELP_FILES_1} ${STD_HELP_FILES_2} \
|
|||||||
# because of problems with its name.
|
# because of problems with its name.
|
||||||
#
|
#
|
||||||
BLT_HELP_FILES= ${BLT_HELP_FILES_3} ${BLT_HELP_FILES_5} \
|
BLT_HELP_FILES= ${BLT_HELP_FILES_3} ${BLT_HELP_FILES_5} \
|
||||||
${BLT_HELP_FILES_9} \
|
${BLT_HELP_FILES_9} ${BLT_HELP_FILES_11} \
|
||||||
${BLT_HELP_FILES_10a} \
|
${BLT_HELP_FILES_13} ${BLT_HELP_FILES_16}
|
||||||
${BLT_HELP_FILES_11} ${BLT_HELP_FILES_13} \
|
|
||||||
${BLT_HELP_FILES_14}
|
|
||||||
|
|
||||||
# The detailed list of help files to install
|
# The detailed list of help files to install
|
||||||
#
|
#
|
||||||
@@ -382,7 +368,7 @@ errorcodes: ../errcode${EXT}
|
|||||||
${TRUE}; \
|
${TRUE}; \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
usage: ../calc.usage
|
calc: ../calc.usage
|
||||||
${RM} -f $@
|
${RM} -f $@
|
||||||
${CP} ../calc.usage $@
|
${CP} ../calc.usage $@
|
||||||
${CHMOD} 0444 $@
|
${CHMOD} 0444 $@
|
||||||
@@ -433,18 +419,6 @@ copy: blkcpy
|
|||||||
${TRUE}; \
|
${TRUE}; \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
man: help
|
|
||||||
${RM} -f $@
|
|
||||||
${CP} help $@
|
|
||||||
${CHMOD} 0444 $@
|
|
||||||
-@if [ -z "${Q}" ]; then \
|
|
||||||
echo ''; \
|
|
||||||
echo '=-=-= skipping the ${CAT} of help/$@ =-=-='; \
|
|
||||||
echo ''; \
|
|
||||||
else \
|
|
||||||
${TRUE}; \
|
|
||||||
fi
|
|
||||||
|
|
||||||
COPYING: ../COPYING
|
COPYING: ../COPYING
|
||||||
${RM} -f $@
|
${RM} -f $@
|
||||||
${CP} ../COPYING $@
|
${CP} ../COPYING $@
|
||||||
|
@@ -5,7 +5,7 @@ following topics:
|
|||||||
----- -----------
|
----- -----------
|
||||||
intro introduction to calc
|
intro introduction to calc
|
||||||
overview overview of calc
|
overview overview of calc
|
||||||
help this file
|
calc calc man page, how to invoke the calc command
|
||||||
|
|
||||||
assoc using associations
|
assoc using associations
|
||||||
builtin builtin functions
|
builtin builtin functions
|
||||||
@@ -23,18 +23,17 @@ following topics:
|
|||||||
mat using matrices
|
mat using matrices
|
||||||
obj user defined data types
|
obj user defined data types
|
||||||
operator math, relational, logic and variable access operators
|
operator math, relational, logic and variable access operators
|
||||||
|
resource standard calc resource files
|
||||||
|
script using calc shell scripts
|
||||||
statement flow control and declaration statements
|
statement flow control and declaration statements
|
||||||
types builtin data types
|
types builtin data types
|
||||||
unexpected unexpected syntax/usage surprises for C programmers
|
unexpected unexpected syntax/usage surprises for C programmers
|
||||||
usage how to invoke the calc command
|
|
||||||
variable variables and variable declarations
|
variable variables and variable declarations
|
||||||
|
|
||||||
bindings input & history character bindings
|
bindings input & history character bindings
|
||||||
custom_cal information about custom calc resource files
|
custom_cal information about custom calc resource files
|
||||||
libcalc using the arbitrary precision routines in a C program
|
libcalc using the arbitrary precision routines in a C program
|
||||||
new_custom information about how to add new custom functions
|
new_custom information about how to add new custom functions
|
||||||
resource standard calc resource files
|
|
||||||
script using calc shell scripts
|
|
||||||
cscript info on the calc shell scripts supplied with calc
|
cscript info on the calc shell scripts supplied with calc
|
||||||
|
|
||||||
archive where to get the latest versions of calc
|
archive where to get the latest versions of calc
|
||||||
@@ -51,6 +50,7 @@ following topics:
|
|||||||
questions how to ask simple general question about calc
|
questions how to ask simple general question about calc
|
||||||
release on calc versions and releases
|
release on calc versions and releases
|
||||||
|
|
||||||
|
help this file
|
||||||
full all of the above (in the above order)
|
full all of the above (in the above order)
|
||||||
|
|
||||||
For example:
|
For example:
|
||||||
|
37
help/prompt
37
help/prompt
@@ -15,6 +15,39 @@ DESCRIPTION
|
|||||||
read from the input; the string formed by the characters in the line
|
read from the input; the string formed by the characters in the line
|
||||||
(other than the newline) is returned as the value of prompt().
|
(other than the newline) is returned as the value of prompt().
|
||||||
|
|
||||||
|
Be careful when using prompt(str) while calc is being used as a
|
||||||
|
shell script. Unless calc is run with the -p command line option,
|
||||||
|
the prompt builtin will fail and return null. This is because when
|
||||||
|
calc is running as a shell script, calc will close stdin run in in
|
||||||
|
a non-interactive mode.
|
||||||
|
|
||||||
|
The following shell script will always print "got null" because
|
||||||
|
stdin will be closed by calc during startup:
|
||||||
|
|
||||||
|
#!/usr/bin/calc -q -f
|
||||||
|
|
||||||
|
# The prompt will ALWAYS FAIL and return a null value
|
||||||
|
n = prompt("Test> ");
|
||||||
|
if (isnull(n)) {
|
||||||
|
print("got null");
|
||||||
|
} else {
|
||||||
|
print("got " + n);
|
||||||
|
}
|
||||||
|
|
||||||
|
However the following shell script (note the -p before the -f in
|
||||||
|
the 1st line) will be interactive, prompt with "Test> " and print
|
||||||
|
the "got" result as expected:
|
||||||
|
|
||||||
|
#!/usr/bin/calc -q -p -f
|
||||||
|
|
||||||
|
n = prompt("Test> ");
|
||||||
|
if (isnull(n)) {
|
||||||
|
print("got null");
|
||||||
|
} else {
|
||||||
|
print("got " + n);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
EXAMPLE
|
EXAMPLE
|
||||||
; x = prompt("? ");
|
; x = prompt("? ");
|
||||||
? 273
|
? 273
|
||||||
@@ -35,9 +68,9 @@ LINK LIBRARY
|
|||||||
none
|
none
|
||||||
|
|
||||||
SEE ALSO
|
SEE ALSO
|
||||||
fgetfield, fgetline, fgetstr
|
command, fgetfield, fgetline, fgetstr, unexpected
|
||||||
|
|
||||||
## Copyright (C) 1999-2006 Landon Curt Noll
|
## Copyright (C) 1999,2023 Landon Curt Noll
|
||||||
##
|
##
|
||||||
## Calc is open software; you can redistribute it and/or modify it under
|
## 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
|
## the terms of the version 2.1 of the GNU Lesser General Public License
|
||||||
|
@@ -563,6 +563,7 @@ Unexpected
|
|||||||
; print sin(d2r(30))
|
; print sin(d2r(30))
|
||||||
0.5
|
0.5
|
||||||
|
|
||||||
|
|
||||||
* operator has has a higher precedence than <<
|
* operator has has a higher precedence than <<
|
||||||
==============================================
|
==============================================
|
||||||
|
|
||||||
@@ -570,6 +571,49 @@ Unexpected
|
|||||||
So 3 << 2*5 evaluates to 3072 in C, whereas 3 << 2*5 evaluates to 60 in calc.
|
So 3 << 2*5 evaluates to 3072 in C, whereas 3 << 2*5 evaluates to 60 in calc.
|
||||||
|
|
||||||
|
|
||||||
|
prompt builtin returns null in calc shell scripts unless -p is used
|
||||||
|
===================================================================
|
||||||
|
|
||||||
|
Be careful when using prompt(str) while calc is being used as a
|
||||||
|
shell script. Unless calc is run with the -p command line option,
|
||||||
|
the prompt builtin will fail and return null. This is because when
|
||||||
|
calc is running as a shell script, calc will close stdin run in in
|
||||||
|
a non-interactive mode.
|
||||||
|
|
||||||
|
The following shell script will always print "got null" because
|
||||||
|
stdin will be closed by calc during startup:
|
||||||
|
|
||||||
|
#!/usr/bin/calc -q -f
|
||||||
|
|
||||||
|
n = prompt("Test> ");
|
||||||
|
if (isnull(n)) {
|
||||||
|
print("got null");
|
||||||
|
} else {
|
||||||
|
print("got " + n);
|
||||||
|
}
|
||||||
|
|
||||||
|
However the following shell script (note the -p before the -f in
|
||||||
|
the 1st line) will be interactive, prompt with "Test> " and print
|
||||||
|
the "got" result as expected:
|
||||||
|
|
||||||
|
#!/usr/bin/calc -q -p -f
|
||||||
|
|
||||||
|
n = prompt("Test> ");
|
||||||
|
if (isnull(n)) {
|
||||||
|
print("got null");
|
||||||
|
} else {
|
||||||
|
print("got " + n);
|
||||||
|
}
|
||||||
|
|
||||||
|
Note in the example above, the -p flag must be given before the
|
||||||
|
final -f command line flag.
|
||||||
|
|
||||||
|
A similar problem will occur if the calc shell script attempts
|
||||||
|
to read from standard input (stdin), unless the -p flag is used.
|
||||||
|
|
||||||
|
See "SHELL SCRIPT MODE" in the calc man page for more information
|
||||||
|
about -p and about the "shell script mode".
|
||||||
|
|
||||||
## Copyright (C) 1999-2007,2014,2017,2021,2023 Landon Curt Noll
|
## Copyright (C) 1999-2007,2014,2017,2021,2023 Landon Curt Noll
|
||||||
##
|
##
|
||||||
## Calc is open software; you can redistribute it and/or modify it under
|
## Calc is open software; you can redistribute it and/or modify it under
|
||||||
|
@@ -80,7 +80,13 @@ char *Copyright = "\n"
|
|||||||
"\n"
|
"\n"
|
||||||
"Calc is open software; you can redistribute it and/or modify it under\n"
|
"Calc is open software; you can redistribute it and/or modify it under\n"
|
||||||
"the terms of the version 2.1 of the GNU Lesser General Public License\n"
|
"the terms of the version 2.1 of the GNU Lesser General Public License\n"
|
||||||
"as published by the Free Software Foundation.\n";
|
"as published by the Free Software Foundation.\n"
|
||||||
|
"\n"
|
||||||
|
"Please see the file COPYING, or use the calc command:\n"
|
||||||
|
"\n"
|
||||||
|
"\thelp copying\n"
|
||||||
|
"\n"
|
||||||
|
"for important copyright and license information!\n";
|
||||||
char *Usability = "\n"
|
char *Usability = "\n"
|
||||||
"Calc is distributed in the hope that it will be useful, but WITHOUT\n"
|
"Calc is distributed in the hope that it will be useful, but WITHOUT\n"
|
||||||
"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n"
|
"ANY WARRANTY; without even the implied warranty of MERCHANTABILITY\n"
|
||||||
|
Reference in New Issue
Block a user