Compare commits

...

12 Commits

Author SHA1 Message Date
Landon Curt Noll
7cf611bca8 Release calc version 2.12.4.0 2017-05-21 15:38:57 -07:00
Landon Curt Noll
c9fce6a5bb Release calc version 2.12.4.1 2017-05-21 15:38:56 -07:00
Landon Curt Noll
a1c96f95a6 Release calc version 2.12.4.8 2017-05-21 15:38:56 -07:00
Landon Curt Noll
5e6b3cbd3f Release calc version 2.12.4.7 2017-05-21 15:38:55 -07:00
Landon Curt Noll
5bada5fefd Release calc version 2.12.4.6 2017-05-21 15:38:55 -07:00
Landon Curt Noll
0c20c96a7e Release calc version 2.12.4.4 2017-05-21 15:38:54 -07:00
Landon Curt Noll
e054ea87f2 Release calc version 2.12.4.3 2017-05-21 15:38:54 -07:00
Landon Curt Noll
e229393250 Release calc version 2.12.4.2 2017-05-21 15:38:53 -07:00
Landon Curt Noll
a407c7d197 Release calc version 2.12.3.3 2017-05-21 15:38:53 -07:00
Landon Curt Noll
9ea569152a Release calc version 2.12.3.2 2017-05-21 15:38:52 -07:00
Landon Curt Noll
cbcb5801fb Release calc version 2.12.3.1 2017-05-21 15:38:52 -07:00
Landon Curt Noll
bdf495150e Release calc version 2.12.3.0 2017-05-21 15:38:52 -07:00
25 changed files with 558 additions and 165 deletions

80
CHANGES
View File

@@ -1,4 +1,78 @@
The following are the changes from calc version 2.12.1.1 to date:
The following are the changes from calc version 2.12.4.0 to date:
Fixed a documentation bug for the sgn() builtin.
Added the 1<<8/2 evaluation example to "help unexpected". That
expression evalutes to 128, not 16 as some C programmers might expect.
Fixed a bug in solve.cal where high was not returned in some situations.
Fixed a bug reported by Paul & Karen Tomlinson (paulnkaz at pktomlinson
dot fsnet dot co dot uk) where calling log multiple times with different
values of epsilon resulted in an incorrect value.
Removed cvd rule from Makefiles.
The Makefile used in the source rpm (calc-*.src.rpm) no longer uses
the -Werror compile flag. This is to help those distributions with
compilers that make produce (hopefully) complination warnings.
NOTE: For testing and calc build purposes will recommend and will
continue to use the -Werror flag.
Fixed a typo in the Makefile where the make variable ${SAMPLE_OBJ}
was misspelled as ${SAMPLE_OBJS}.
Added prep makefile rule to make is easier to compile calc without
an optimizer. By doing:
make clobber prep
one may build a calc binary that is easier to debug.
Fixed a bug where an certains typos (e.g., calling an unknown
function) would previously cause calc to exit.
The following are the changes from calc version 2.12.3.0 to 2.12.3.3:
Fixed the Jacobi function where it returned 1 when it should have
returned 0. Thanks goes to Kevin Sopp (baraclese at googlemail dot com)
for discovering the problem and suggesting the nature if the fix.
Calc versions will always be of the form x.y.z.w even when the
MINOR_PATCH (w) is 0. Thus, 2.12.3.0 will be printed as 2.12.3.0
instread of just 2.12.3.
Added MINGW32_NT-5.0 compile target based on a patch from
Brian L. Angus (angus at eng dot utah dot edu).
Removed the use of rpm.release in the Makefile.
Mac OS Darwin targets no longer attempt to use ldconfig. Under the
Darwin target, the LDCONFIG make variable is redefined to be
an empty value. Thanks goes to Ralf Trinler (art at infra dot de)
for reporting this problem.
The ${CALC_INCDIR}/custom is no longer being removed at install time
if it is empty. Now when ${ALLOW_CUSTOM} make variable is empty,
an empty ${CALC_INCDIR}/custom may be left hehind.
Fixed a problem where a "make clobber" would remove custom/Makefile
and fail to rebuilt it.
The following are the changes from calc version 2.12.2.3 to 2.12.2.4:
Added OpenBSD target.
Using the -r test instead of the -e test in Makefiles because some
out of date shells still do not have the -e test.
The Makefile now avoids the use of if ! command because some out of
date shells to not support the ! construct.
The following are the changes from calc version 2.12.1.1 to 2.12.2.2:
Added an explicit Solaris target.
@@ -6695,8 +6769,8 @@ Following is a list of visible changes to calc from version 1.24.7 to 1.26.1:
## received a copy with calc; if not, write to Free Software Foundation, Inc.
## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
##
## @(#) $Revision: 30.11 $
## @(#) $Id: CHANGES,v 30.11 2007/10/16 12:22:22 chongo Exp $
## @(#) $Revision: 30.18 $
## @(#) $Id: CHANGES,v 30.18 2008/10/24 09:55:12 chongo Exp $
## @(#) $Source: /usr/local/src/cmd/calc/RCS/CHANGES,v $
##
## Under source code control: 1993/06/02 18:12:57

169
Makefile
View File

@@ -23,7 +23,7 @@
# READLINE_LIB= -lreadline
# READLINE_EXTRAS= -lhistory -lncurses
#
# Copyright (C) 1999-2007 Landon Curt Noll
# Copyright (C) 1999-2008 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
@@ -39,8 +39,8 @@
# received a copy with calc; if not, write to Free Software Foundation, Inc.
# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
#
MAKEFILE_REV= $$Revision: 30.25 $$
# @(#) $Id: Makefile.ship,v 30.25 2007/09/29 16:57:48 chongo Exp $
MAKEFILE_REV= $$Revision: 30.41 $$
# @(#) $Id: Makefile.ship,v 30.41 2008/10/24 09:20:09 chongo Exp $
# @(#) $Source: /usr/local/src/cmd/calc/RCS/Makefile.ship,v $
#
# Under source code control: 1990/02/15 01:48:41
@@ -598,6 +598,18 @@ INCDIR= /usr/include
# by default is empty. If ${T} is non-empty, then installation
# locations will be relative to the ${T} directory.
#
# NOTE: If you change LIBDIR to a non-standard location, you will need
# to make changes to your execution environment so that executables
# will search LIBDIR when they are resolving dynamic shared libraries.
#
# On OS X, this means you need to export $DYLD_LIBRARY_PATH
# to include the LIBDIR path in the value.
#
# On Linux and BSD, this means you need to export $LD_LIBRARY_PATH
# to include the LIBDIR path in the value.
#
# You might be better off not changing LIBDIR in the first place.
#
# For DJGPP, select:
#
# BINDIR= /dev/env/DJDIR/bin
@@ -984,8 +996,8 @@ EXT=
# The default calc versions
#
VERSION= 2.12.2.2
VERS= 2.12.2
VERSION= 2.12.4.0
VERS= 2.12.4
VER= 2.12
VE= 2
@@ -1193,6 +1205,8 @@ LIB_EXT_VERSION:= .${VERSION}${LIB_EXT}
LIB_EXT_VERS:= .${VERS}${LIB_EXT}
LIB_EXT_VER:= .${VER}${LIB_EXT}
LIB_EXT_VE:= .${VE}${LIB_EXT}
# LDCONFIG not required on this platform, so we redefine it to an empty string
LDCONFIG:=
# DARWIN_ARCH= -arch i386 -arch ppc # Universal binary
# DARWIN_ARCH= -arch i386 # Intel binary
# DARWIN_ARCH= -arch ppc # PPC binary
@@ -1243,6 +1257,48 @@ MAKE= gmake
#
endif
##################
# OpenBSD target #
##################
########################################################################
# NOTE: You MUST either use gmake (GNU Make) or you must try your luck #
# with Makefile.simple and custom/Makefile.simple versions. #
# See HOWTO.INSTALL for more information. #
########################################################################
ifeq ($(target),OpenBSD)
#
BLD_TYPE= calc-dynamic-only
#
CC_SHARE= -fPIC
DEFAULT_LIB_INSTALL_PATH= ${PWD}:/lib:/usr/lib:${LIBDIR}:/usr/local/lib
LD_SHARE= "-Wl,-rpath,${DEFAULT_LIB_INSTALL_PATH}" \
"-Wl,-rpath-link,${DEFAULT_LIB_INSTALL_PATH}"
LIBCALC_SHLIB= -shared "-Wl,-soname,libcalc${LIB_EXT_VERSION}"
ifdef ALLOW_CUSTOM
LIBCUSTCALC_SHLIB= -shared "-Wl,-soname,libcustcalc${LIB_EXT_VERSION}"
else
LIBCUSTCALC_SHLIB=
endif
#
CC_STATIC=
LD_STATIC=
LIBCALC_STATIC=
LIBCUSTCALC_STATIC=
#
CCWARN= -Wall
CCWERR=
CCOPT= ${DEBUG}
CCMISC=
#
LCC= gcc
CC= ${PURIFY} ${LCC} ${CCWERR}
#
MAKE= gmake
#
endif
################
# SunOS target #
################
@@ -1326,6 +1382,52 @@ LDFLAGS= ${LD_DEBUG} ${ILDFLAGS} ${LIBCALC_STATIC} ${LIBCUSTCALC_STATIC}
#if 0 /* start of skip for non-Gnu makefiles */
endif
###################################################
# MINGW32_NT-5.0 target #
###################################################
ifeq ($(target),MINGW32_NT-5.0)
EXT=.exe
TERMCONTROL= -DUSE_WIN32
ifdef ALLOW_CUSTOM
#endif /* end of skip for non-Gnu makefiles */
CALCPATH= .;./cal;~/.cal;${CALC_SHAREDIR};${CUSTOMCALDIR}
#if 0 /* start of skip for non-Gnu makefiles */
else
CALCPATH= .;./cal;~/.cal;${CALC_SHAREDIR}
endif
CALCRC= ${CALC_SHAREDIR}/startup;~/.calcrc;./.calcinit
#
BLD_TYPE= calc-static-only
#
CC_SHARE= -fPIC
DEFAULT_LIB_INSTALL_PATH= ${PWD}:/lib:/usr/lib:${LIBDIR}:/usr/local/lib
LD_SHARE= "-Wl,-rpath,${DEFAULT_LIB_INSTALL_PATH}" \
"-Wl,-rpath-link,${DEFAULT_LIB_INSTALL_PATH}"
LIBCALC_SHLIB= -shared "-Wl,-soname,libcalc${LIB_EXT_VERSION}"
ifdef ALLOW_CUSTOM
LIBCUSTCALC_SHLIB= -shared "-Wl,-soname,libcustcalc${LIB_EXT_VERSION}"
else
LIBCUSTCALC_SHLIB=
endif
#
CC_STATIC= -DSTATIC_ONLY
LIBCALC_STATIC=
LIBCUSTCALC_STATIC=
LD_STATIC=
#
CCWARN= -Wall -W -Wno-comment
CCWERR=
CCOPT= ${DEBUG}
CCMISC= -DNOTCYGWIN
#
LCC= gcc
CC= ${PURIFY} ${LCC} ${CCWERR}
#
endif
###################################################
# default target - when no specific target exists #
###################################################
@@ -1724,7 +1826,7 @@ CALCLIBLIST= ${LIBSRC} ${UTIL_C_SRC} ${LIB_H_SRC} ${MAKE_FILE} \
# complete list of .o files
#
OBJS= ${LIBOBJS} ${CALCOBJS} ${UTIL_OBJS} ${SAMPLE_OBJS}
OBJS= ${LIBOBJS} ${CALCOBJS} ${UTIL_OBJS} ${SAMPLE_OBJ}
# static library build
#
@@ -1823,6 +1925,9 @@ TARGETS= ${EARLY_TARGETS} ${BLD_TYPE} ${LATE_TARGETS}
all: ${BLD_TYPE} CHANGES
prep:
${Q} ${MAKE} -f ${MAKE_FILE} all DEBUG='-g3'
calc-dynamic-only: ${DYNAMIC_FIRST_TARGETS} ${EARLY_TARGETS} \
${CALC_DYNAMIC_LIBS} ${SYM_DYNAMIC_LIBS} calc${EXT} \
${SAMPLE_TARGETS} ${LATE_TARGETS}
@@ -1847,7 +1952,7 @@ calc-dynamic-only: ${DYNAMIC_FIRST_TARGETS} ${EARLY_TARGETS} \
${Q} for i in .static calc-static${EXT} ${SAMPLE_STATIC_TARGETS} \
libcalc.a custom/libcustcalc.a; do \
r="calc-dynamic-only"; \
if [ -e "$$i" ]; then \
if [ -r "$$i" ]; then \
echo "Found the static target $$i file. You must:" 1>&2; \
echo "" 1>&2; \
echo " ${MAKE} -f ${MAKE_FILE} clobber" 1>&2; \
@@ -1865,7 +1970,9 @@ calc-static-only: ${STATIC_FIRST_TARGETS} ${EARLY_TARGETS} \
${CALC_STATIC_LIBS} calc-static${EXT} \
${SAMPLE_STATIC_TARGETS} ${LATE_TARGETS}
${Q} for i in calc${EXT} ${SAMPLE_TARGETS}; do \
if ! ${CMP} -s "$$i-static" "$$i"; then \
if ${CMP} -s "$$i-static" "$$i"; then \
${TRUE}; \
else \
${RM} -f "$$i"; \
${LN} "$$i-static" "$$i"; \
fi; \
@@ -1891,7 +1998,7 @@ calc-static-only: ${STATIC_FIRST_TARGETS} ${EARLY_TARGETS} \
${Q} for i in .dynamic ${CALC_DYNAMIC_LIBS} ${SYM_DYNAMIC_LIBS} \
custom/libcustcalc${LIB_EXT_VERSION}; do \
r="calc-static-only"; \
if [ -e "$$i" ]; then \
if [ -r "$$i" ]; then \
echo "Found the dynamic target $$i file. You must:" 1>&2; \
echo "" 1>&2; \
echo " ${MAKE} -f ${MAKE_FILE} clobber" 1>&2; \
@@ -3027,7 +3134,7 @@ have_urandom.h: ${MAKE_FILE}
echo '#define HAVE_URANDOM_H /* yes */' >> have_urandom.h; \
elif [ X"${HAVE_URANDOM_H}" = X"NO" ]; then \
echo '#undef HAVE_URANDOM_H /* no */' >> have_urandom.h; \
elif [ -e /dev/urandom ] 2>/dev/null; then \
elif [ -r /dev/urandom ] 2>/dev/null; then \
echo '#define HAVE_URANDOM_H /* yes */' >> have_urandom.h; \
else \
echo '#undef HAVE_URANDOM_H /* no */' >> have_urandom.h; \
@@ -3912,12 +4019,11 @@ env:
@echo 'target=${target}'; echo ''
@echo '=-=-=-=-= ${MAKE_FILE} end of major make variable dump =-=-=-=-='
mkdebug: env version.c rpm.release
mkdebug: env version.c
@echo '=-=-=-=-= ${MAKE_FILE} start of $@ rule =-=-=-=-='
@echo '=-=-=-=-= Determining the source version =-=-=-=-='
@${MAKE} -f Makefile Q= V=@ ver_calc${EXT}
-@./ver_calc${EXT}
-@./ver_calc${EXT} -r rpm.release
@echo '=-=-=-=-= Invoking ${MAKE} -f Makefile Q= V=@ all =-=-=-=-='
@${MAKE} -f Makefile Q= V=@ all
@echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
@@ -3926,7 +4032,7 @@ mkdebug: env version.c rpm.release
@echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
@echo '=-=-=-=-= ${MAKE_FILE} end of $@ rule =-=-=-=-='
debug: env rpm.release
debug: env
@echo '=-=-=-=-= ${MAKE_FILE} start of $@ rule =-=-=-=-='
@echo '=-=-=-=-= Invoking ${MAKE} -f Makefile Q= V=@ clobber =-=-=-=-='
@${MAKE} -f Makefile Q= V=@ clobber
@@ -3934,7 +4040,6 @@ debug: env rpm.release
@echo '=-=-=-=-= Determining the source version =-=-=-=-='
@${MAKE} -f Makefile Q= V=@ ver_calc${EXT}
-@./ver_calc${EXT}
-@./ver_calc${EXT} -r rpm.release
@echo '=-=-=-=-= Invoking ${MAKE} -f Makefile Q= V=@ all =-=-=-=-='
@${MAKE} -f Makefile Q= V=@ all
@echo '=-=-=-=-= Determining the binary version =-=-=-=-='
@@ -3953,9 +4058,6 @@ debug: env rpm.release
# make run
# * only run calc interactively with the ${CALC_ENV} environment
#
# make cvd
# * run the SGI WorkShop debugger on calc with the ${CALC_ENV} environment
#
# make dbx
# * run the dbx debugger on calc with the ${CALC_ENV} environment
#
@@ -3967,9 +4069,6 @@ debug: env rpm.release
run:
${CALC_ENV} ./calc${EXT}
cvd:
${CALC_ENV} cvd ./calc${EXT}
dbx:
${CALC_ENV} dbx ./calc${EXT}
@@ -4148,25 +4247,27 @@ clobber: custom/Makefile clean
${RM} -f libcustcalc.a
${RM} -f calc-static${EXT}
${RM} -f ${CALC_STATIC_LIBS}
${RM} -f all
${V} echo '=-=-=-=-= Invoking $@ rule for help =-=-=-=-='
-cd help; ${MAKE} -f Makefile ${HELP_PASSDOWN} clobber
-cd help; ${RM} -f all; ${MAKE} -f Makefile ${HELP_PASSDOWN} $@
${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
${V} echo '=-=-=-=-= Invoking $@ rule for cal =-=-=-=-='
-cd cal; ${MAKE} -f Makefile ${CAL_PASSDOWN} clobber
-cd cal; ${RM} -f all; ${MAKE} -f Makefile ${CAL_PASSDOWN} $@
${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
${V} echo '=-=-=-=-= Invoking $@ rule for custom =-=-=-=-='
cd custom; ${MAKE} -f Makefile ${CUSTOM_PASSDOWN} clobber
cd custom; ${RM} -f all; ${MAKE} -f Makefile ${CUSTOM_PASSDOWN} $@
${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
${V} echo '=-=-=-=-= Invoking $@ rule for cscript =-=-=-=-='
cd cscript; ${MAKE} -f Makefile ${CSCRIPT_PASSDOWN} clobber
cd cscript; ${RM} -f all; ${MAKE} -f Makefile ${CSCRIPT_PASSDOWN} $@
${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
${V} echo remove files that are obsolete
${RM} -rf win32 build
#if 0 /* start of skip for non-Gnu makefiles */
${RM} -f Makefile.simple
${RM} -f custom/Makefile
-${MAKE} -f ${MAKE_FILE} custom/Makefile
#endif /* end of skip for non-Gnu makefiles */
${RM} -f .static .dynamic
${RM} -f .static .dynamic calc-dynamic-only calc-static-only
${V} echo '=-=-=-=-= ${MAKE_FILE} end of $@ rule =-=-=-=-='
# install everything
@@ -4392,9 +4493,11 @@ endif
${T}${LIBDIR}/libcustcalc${LIB_EXT}; \
echo "installed ${T}${LIBDIR}/libcalc${LIB_EXT}"; \
if [ -z "${T}" -o "/" = "${T}" ]; then \
echo "running ${LDCONFIG}"; \
${LDCONFIG}; \
echo "finished ${LDCONFIG}"; \
if [ ! -z "${LDCONFIG}" ]; then \
echo "running ${LDCONFIG}"; \
${LDCONFIG} -v; \
echo "finished ${LDCONFIG}"; \
fi; \
fi; \
fi
-${Q} for i in ${LIB_H_SRC} ${BUILD_H_SRC} /dev/null; do \
@@ -4467,8 +4570,6 @@ endif
fi; \
fi; \
fi
${V} # NOTE: remove ${T}${CALC_INCDIR}/custom if it is empty
-${Q} ${RMDIR} ${T}${CALC_INCDIR}/custom 2>/dev/null
${V} # NOTE: misc install cleanup
${Q} ${RM} -f tmp
${V} echo '=-=-=-=-= ${MAKE_FILE} end of $@ rule =-=-=-=-='
@@ -4597,9 +4698,11 @@ uninstall: custom/Makefile
fi; \
fi
-${Q} if [ -z "${T}" -o "/" = "${T}" ]; then \
echo "running ${LDCONFIG}"; \
${LDCONFIG}; \
echo "finished ${LDCONFIG}"; \
if [ ! -z "${LDCONFIG}" ]; then \
echo "running ${LDCONFIG}"; \
${LDCONFIG} -v; \
echo "finished ${LDCONFIG}"; \
fi; \
fi
-${Q} if [ -f "${T}${LIBDIR}/libcalc.a" ]; then \
${RM} -f "${T}${LIBDIR}/libcalc.a"; \

View File

@@ -23,7 +23,7 @@
# READLINE_LIB= -lreadline
# READLINE_EXTRAS= -lhistory -lncurses
#
# Copyright (C) 1999-2007 Landon Curt Noll
# Copyright (C) 1999-2008 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
@@ -39,8 +39,8 @@
# received a copy with calc; if not, write to Free Software Foundation, Inc.
# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
#
MAKEFILE_REV= $$Revision: 30.25 $$
# @(#) $Id: Makefile.ship,v 30.25 2007/09/29 16:57:48 chongo Exp $
MAKEFILE_REV= $$Revision: 30.41 $$
# @(#) $Id: Makefile.ship,v 30.41 2008/10/24 09:20:09 chongo Exp $
# @(#) $Source: /usr/local/src/cmd/calc/RCS/Makefile.ship,v $
#
# Under source code control: 1990/02/15 01:48:41
@@ -583,6 +583,18 @@ INCDIR= /usr/include
# by default is empty. If ${T} is non-empty, then installation
# locations will be relative to the ${T} directory.
#
# NOTE: If you change LIBDIR to a non-standard location, you will need
# to make changes to your execution environment so that executables
# will search LIBDIR when they are resolving dynamic shared libraries.
#
# On OS X, this means you need to export $DYLD_LIBRARY_PATH
# to include the LIBDIR path in the value.
#
# On Linux and BSD, this means you need to export $LD_LIBRARY_PATH
# to include the LIBDIR path in the value.
#
# You might be better off not changing LIBDIR in the first place.
#
# For DJGPP, select:
#
# BINDIR= /dev/env/DJDIR/bin
@@ -961,8 +973,8 @@ EXT=
# The default calc versions
#
VERSION= 2.12.2.2
VERS= 2.12.2
VERSION= 2.12.4.0
VERS= 2.12.4
VER= 2.12
VE= 2
@@ -1126,6 +1138,7 @@ CFLAGS= ${ICFLAGS} ${CCOPT}
ILDFLAGS= ${COMMON_LDFLAGS} ${LD_STATIC}
LDFLAGS= ${LD_DEBUG} ${ILDFLAGS} ${LIBCALC_STATIC} ${LIBCUSTCALC_STATIC}
#
CALCPATH= .;./cal;~/.cal;${CALC_SHAREDIR};${CUSTOMCALDIR}
#######################################################################
#-=-=-=-=-=- end of target section - only make rules below -=-=-=-=-=-#
@@ -1461,7 +1474,7 @@ CALCLIBLIST= ${LIBSRC} ${UTIL_C_SRC} ${LIB_H_SRC} ${MAKE_FILE} \
# complete list of .o files
#
OBJS= ${LIBOBJS} ${CALCOBJS} ${UTIL_OBJS} ${SAMPLE_OBJS}
OBJS= ${LIBOBJS} ${CALCOBJS} ${UTIL_OBJS} ${SAMPLE_OBJ}
# static library build
#
@@ -1527,6 +1540,9 @@ TARGETS= ${EARLY_TARGETS} ${BLD_TYPE} ${LATE_TARGETS}
all: ${BLD_TYPE} CHANGES
prep:
${Q} ${MAKE} -f ${MAKE_FILE} all DEBUG='-g3'
calc-dynamic-only: ${DYNAMIC_FIRST_TARGETS} ${EARLY_TARGETS} \
${CALC_DYNAMIC_LIBS} ${SYM_DYNAMIC_LIBS} calc${EXT} \
${SAMPLE_TARGETS} ${LATE_TARGETS}
@@ -1551,7 +1567,7 @@ calc-dynamic-only: ${DYNAMIC_FIRST_TARGETS} ${EARLY_TARGETS} \
${Q} for i in .static calc-static${EXT} ${SAMPLE_STATIC_TARGETS} \
libcalc.a custom/libcustcalc.a; do \
r="calc-dynamic-only"; \
if [ -e "$$i" ]; then \
if [ -r "$$i" ]; then \
echo "Found the static target $$i file. You must:" 1>&2; \
echo "" 1>&2; \
echo " ${MAKE} -f ${MAKE_FILE} clobber" 1>&2; \
@@ -1569,7 +1585,9 @@ calc-static-only: ${STATIC_FIRST_TARGETS} ${EARLY_TARGETS} \
${CALC_STATIC_LIBS} calc-static${EXT} \
${SAMPLE_STATIC_TARGETS} ${LATE_TARGETS}
${Q} for i in calc${EXT} ${SAMPLE_TARGETS}; do \
if ! ${CMP} -s "$$i-static" "$$i"; then \
if ${CMP} -s "$$i-static" "$$i"; then \
${TRUE}; \
else \
${RM} -f "$$i"; \
${LN} "$$i-static" "$$i"; \
fi; \
@@ -1595,7 +1613,7 @@ calc-static-only: ${STATIC_FIRST_TARGETS} ${EARLY_TARGETS} \
${Q} for i in .dynamic ${CALC_DYNAMIC_LIBS} ${SYM_DYNAMIC_LIBS} \
custom/libcustcalc${LIB_EXT_VERSION}; do \
r="calc-static-only"; \
if [ -e "$$i" ]; then \
if [ -r "$$i" ]; then \
echo "Found the dynamic target $$i file. You must:" 1>&2; \
echo "" 1>&2; \
echo " ${MAKE} -f ${MAKE_FILE} clobber" 1>&2; \
@@ -2725,7 +2743,7 @@ have_urandom.h: ${MAKE_FILE}
echo '#define HAVE_URANDOM_H /* yes */' >> have_urandom.h; \
elif [ X"${HAVE_URANDOM_H}" = X"NO" ]; then \
echo '#undef HAVE_URANDOM_H /* no */' >> have_urandom.h; \
elif [ -e /dev/urandom ] 2>/dev/null; then \
elif [ -r /dev/urandom ] 2>/dev/null; then \
echo '#define HAVE_URANDOM_H /* yes */' >> have_urandom.h; \
else \
echo '#undef HAVE_URANDOM_H /* no */' >> have_urandom.h; \
@@ -3572,12 +3590,11 @@ env:
@echo 'target=${target}'; echo ''
@echo '=-=-=-=-= ${MAKE_FILE} end of major make variable dump =-=-=-=-='
mkdebug: env version.c rpm.release
mkdebug: env version.c
@echo '=-=-=-=-= ${MAKE_FILE} start of $@ rule =-=-=-=-='
@echo '=-=-=-=-= Determining the source version =-=-=-=-='
@${MAKE} -f Makefile Q= V=@ ver_calc${EXT}
-@./ver_calc${EXT}
-@./ver_calc${EXT} -r rpm.release
@echo '=-=-=-=-= Invoking ${MAKE} -f Makefile Q= V=@ all =-=-=-=-='
@${MAKE} -f Makefile Q= V=@ all
@echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
@@ -3586,7 +3603,7 @@ mkdebug: env version.c rpm.release
@echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
@echo '=-=-=-=-= ${MAKE_FILE} end of $@ rule =-=-=-=-='
debug: env rpm.release
debug: env
@echo '=-=-=-=-= ${MAKE_FILE} start of $@ rule =-=-=-=-='
@echo '=-=-=-=-= Invoking ${MAKE} -f Makefile Q= V=@ clobber =-=-=-=-='
@${MAKE} -f Makefile Q= V=@ clobber
@@ -3594,7 +3611,6 @@ debug: env rpm.release
@echo '=-=-=-=-= Determining the source version =-=-=-=-='
@${MAKE} -f Makefile Q= V=@ ver_calc${EXT}
-@./ver_calc${EXT}
-@./ver_calc${EXT} -r rpm.release
@echo '=-=-=-=-= Invoking ${MAKE} -f Makefile Q= V=@ all =-=-=-=-='
@${MAKE} -f Makefile Q= V=@ all
@echo '=-=-=-=-= Determining the binary version =-=-=-=-='
@@ -3613,9 +3629,6 @@ debug: env rpm.release
# make run
# * only run calc interactively with the ${CALC_ENV} environment
#
# make cvd
# * run the SGI WorkShop debugger on calc with the ${CALC_ENV} environment
#
# make dbx
# * run the dbx debugger on calc with the ${CALC_ENV} environment
#
@@ -3627,9 +3640,6 @@ debug: env rpm.release
run:
${CALC_ENV} ./calc${EXT}
cvd:
${CALC_ENV} cvd ./calc${EXT}
dbx:
${CALC_ENV} dbx ./calc${EXT}
@@ -3808,21 +3818,22 @@ clobber: custom/Makefile clean
${RM} -f libcustcalc.a
${RM} -f calc-static${EXT}
${RM} -f ${CALC_STATIC_LIBS}
${RM} -f all
${V} echo '=-=-=-=-= Invoking $@ rule for help =-=-=-=-='
-cd help; ${MAKE} -f Makefile ${HELP_PASSDOWN} clobber
-cd help; ${RM} -f all; ${MAKE} -f Makefile ${HELP_PASSDOWN} $@
${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
${V} echo '=-=-=-=-= Invoking $@ rule for cal =-=-=-=-='
-cd cal; ${MAKE} -f Makefile ${CAL_PASSDOWN} clobber
-cd cal; ${RM} -f all; ${MAKE} -f Makefile ${CAL_PASSDOWN} $@
${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
${V} echo '=-=-=-=-= Invoking $@ rule for custom =-=-=-=-='
cd custom; ${MAKE} -f Makefile.simple ${CUSTOM_PASSDOWN} clobber
cd custom; ${RM} -f all; ${MAKE} -f Makefile ${CUSTOM_PASSDOWN} $@
${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
${V} echo '=-=-=-=-= Invoking $@ rule for cscript =-=-=-=-='
cd cscript; ${MAKE} -f Makefile ${CSCRIPT_PASSDOWN} clobber
cd cscript; ${RM} -f all; ${MAKE} -f Makefile ${CSCRIPT_PASSDOWN} $@
${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
${V} echo remove files that are obsolete
${RM} -rf win32 build
${RM} -f .static .dynamic
${RM} -f .static .dynamic calc-dynamic-only calc-static-only
${V} echo '=-=-=-=-= ${MAKE_FILE} end of $@ rule =-=-=-=-='
# install everything
@@ -4036,9 +4047,11 @@ install: custom/Makefile ${LIB_H_SRC} ${BUILD_H_SRC} calc.1 all
${T}${LIBDIR}/libcustcalc${LIB_EXT}; \
echo "installed ${T}${LIBDIR}/libcalc${LIB_EXT}"; \
if [ -z "${T}" -o "/" = "${T}" ]; then \
echo "running ${LDCONFIG}"; \
${LDCONFIG}; \
echo "finished ${LDCONFIG}"; \
if [ ! -z "${LDCONFIG}" ]; then \
echo "running ${LDCONFIG}"; \
${LDCONFIG} -v; \
echo "finished ${LDCONFIG}"; \
fi; \
fi; \
fi
-${Q} for i in ${LIB_H_SRC} ${BUILD_H_SRC} /dev/null; do \
@@ -4111,8 +4124,6 @@ install: custom/Makefile ${LIB_H_SRC} ${BUILD_H_SRC} calc.1 all
fi; \
fi; \
fi
${V} # NOTE: remove ${T}${CALC_INCDIR}/custom if it is empty
-${Q} ${RMDIR} ${T}${CALC_INCDIR}/custom 2>/dev/null
${V} # NOTE: misc install cleanup
${Q} ${RM} -f tmp
${V} echo '=-=-=-=-= ${MAKE_FILE} end of $@ rule =-=-=-=-='
@@ -4241,9 +4252,11 @@ uninstall: custom/Makefile
fi; \
fi
-${Q} if [ -z "${T}" -o "/" = "${T}" ]; then \
echo "running ${LDCONFIG}"; \
${LDCONFIG}; \
echo "finished ${LDCONFIG}"; \
if [ ! -z "${LDCONFIG}" ]; then \
echo "running ${LDCONFIG}"; \
${LDCONFIG} -v; \
echo "finished ${LDCONFIG}"; \
fi; \
fi
-${Q} if [ -f "${T}${LIBDIR}/libcalc.a" ]; then \
${RM} -f "${T}${LIBDIR}/libcalc.a"; \

View File

@@ -17,8 +17,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc.
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
* @(#) $Revision: 30.1 $
* @(#) $Id: alloc.h,v 30.1 2007/03/16 11:09:46 chongo Exp $
* @(#) $Revision: 30.2 $
* @(#) $Id: alloc.h,v 30.2 2008/04/15 21:17:57 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/alloc.h,v $
*
* Under source code control: 1990/02/15 01:48:29
@@ -46,6 +46,9 @@
# include <string.h>
#else
#if defined(_WIN32) && defined(NOTCYGWIN)
#include <stdio.h>
#endif
# if defined(HAVE_NEWSTR)
E_FUNC void *memcpy();

View File

@@ -17,8 +17,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc.
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
* @(#) $Revision: 30.3 $
* @(#) $Id: regress.cal,v 30.3 2007/07/11 22:58:26 chongo Exp $
* @(#) $Revision: 30.5 $
* @(#) $Id: regress.cal,v 30.5 2008/10/24 07:09:41 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/regress.cal,v $
*
* Under source code control: 1990/02/15 01:50:36
@@ -1412,7 +1412,39 @@ define test_functions()
vrfy(isnum(systime()), '1206: isnum(systime())');
vrfy(isnum(usertime()), '1207: isnum(usertime())');
print '1208: Ending test_functions';
/* more jacobi tests */
vrfy(jacobi(987897,987) == 0, '1208: jacobi(987897,987) == 0');
vrfy(jacobi(897,987) == 0, '1209: jacobi(897,987) == 0');
vrfy(jacobi(987,897) == 0, '1210: jacobi(987,897) == 0');
vrfy(jacobi(90,897) == 0, '1211: jacobi(90,897) == 0');
vrfy(jacobi(45,897) == 0, '1212: jacobi(45,897) == 0');
vrfy(jacobi(897,45) == 0, '1213: jacobi(897,45) == 0');
vrfy(jacobi(42,45) == 0, '1214: jacobi(42,45) == 0');
vrfy(jacobi(21,45) == 0, '1215: jacobi(21,45) == 0');
vrfy(jacobi(45,21) == 0, '1216: jacobi(45,21) == 0');
vrfy(jacobi(3,21) == 0, '1217: jacobi(3,21) == 0');
vrfy(jacobi(0,21) == 0, '1218: jacobi(0,21) == 0');
vrfy(jacobi(0,20003) == 0, '1219: jacobi(0,20003) == 0');
vrfy(jacobi(1,20003) == 1, '1220: jacobi(1,20003) == 1');
vrfy(jacobi(1236,20003) == 1, '1221: jacobi(1236,20003) == 1');
vrfy(jacobi(618,20003) == -1, '1222: jacobi(618,20003) == -1');
vrfy(jacobi(309,20003) == 1, '1223: jacobi(309,20003) == 1');
vrfy(jacobi(227,309) == 1, '1224: jacobi(227,309) == 1');
vrfy(jacobi(82,227) == 1, '1225: jacobi(82,227) == 1');
vrfy(jacobi(41,227) == -1, '1226: jacobi(41,227) == -1');
vrfy(jacobi(22,41) == -1, '1227: jacobi(22,41) == -1');
vrfy(jacobi(11,41) == -1, '1228: jacobi(11,41) == -1');
vrfy(jacobi(8,11) == -1, '1229: jacobi(8,11) == -1');
vrfy(jacobi(4,11) == 1, '1230: jacobi(4,11) == 1');
vrfy(jacobi(2,11) == -1, '1231: jacobi(2,11) == -1');
vrfy(jacobi(1,11) == 1, '1232: jacobi(1,11) == 1');
vrfy(jacobi(0,11) == 0, '1233: jacobi(0,11) == 0');
vrfy(jacobi(0,0) == 0, '1234: jacobi(0,0) == 0');
vrfy(jacobi(-1,0) == 0, '1235: jacobi(-1,0) == 0');
vrfy(jacobi(-1,-1) == 0, '1236: jacobi(-1,-1) == 0');
vrfy(jacobi(0,-1) == 0, '1237: jacobi(0,-1) == 0');
print '1238: Ending test_functions';
}
print '017: parsed test_functions()';
@@ -2706,11 +2738,24 @@ define test_2600()
vrfy(log(1e127) == 127,
strcat(str(tnum++), ': log(1e127)) == 127'));
vrfy(round(log(17^47),10) == 57.8310993048,
strcat(str(tnum++),
': round(log(17^47),10) == 57.8310993048'));
strcat(str(tnum++),
': round(log(17^47),10) == 57.8310993048'));
vrfy(round(log(127),10) == 2.103803721,
strcat(str(tnum++),
': round(log(127),10) == 2.103803721'));
strcat(str(tnum++),
': round(log(127),10) == 2.103803721'));
vrfy(round(log(0.25,0.00001),5) == -0.60206,
strcat(str(tnum++),
': round(log(0.25,0.00001),5) == -0.60206'));
vrfy(round(log(0.25,1e-10),10) == -0.6020599913,
strcat(str(tnum++),
': round(log(0.25,1e-10),10) == -0.6020599913'));
vrfy(round( log(1.2+1.2i,1e-5),5) == 0.2297+0.34109i,
strcat(str(tnum++),
': round(log(1.2+1.2i,1e-5),5) == 0.2297+0.34109i'));
vrfy(round( log(1.2+1.2i,1e-10),10) == 0.2296962439+0.3410940885i,
strcat(str(tnum++),
': round(log(1.2+1.2i,1e-10),10) == ',
'0.2296962439+0.3410940885i'));
epsilon(i),;
print tnum++: ': epsilon(i),;';

View File

@@ -17,8 +17,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc.
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
* @(#) $Revision: 30.1 $
* @(#) $Id: solve.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
* @(#) $Revision: 30.2 $
* @(#) $Id: solve.cal,v 30.2 2008/05/10 13:30:00 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/solve.cal,v $
*
* Under source code control: 1990/02/15 01:50:37
@@ -47,7 +47,7 @@ define solve(low, high, epsilon)
if (abs(flow) < epsilon)
return low;
fhigh = f(high);
if (abs(flow) < epsilon)
if (abs(fhigh) < epsilon)
return high;
if (sgn(flow) == sgn(fhigh))
quit "Non-opposite signs";

6
calc.c
View File

@@ -19,8 +19,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc.
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
* @(#) $Revision: 30.3 $
* @(#) $Id: calc.c,v 30.3 2007/07/15 02:03:42 chongo Exp $
* @(#) $Revision: 30.4 $
* @(#) $Id: calc.c,v 30.4 2008/04/15 21:17:57 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/calc.c,v $
*
* Under source code control: 1990/02/15 01:48:11
@@ -42,6 +42,7 @@
#if defined(_WIN32)
# include <io.h>
# if !defined(NOTCYGWIN)
/*
* getopt.h file is from the Cygwin GNU library
*
@@ -49,6 +50,7 @@
* http://sources.redhat.com/cygwin/
*/
# include "../getopt/getopt.h"
# endif
# define strdup _strdup
# define isatty _isatty
#endif /* Windoz */

View File

@@ -19,8 +19,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc.
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
* @(#) $Revision: 30.2 $
* @(#) $Id: comfunc.c,v 30.2 2007/07/11 23:05:49 chongo Exp $
* @(#) $Revision: 30.3 $
* @(#) $Id: comfunc.c,v 30.3 2008/10/24 07:09:41 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/comfunc.c,v $
*
* Under source code control: 1990/02/15 01:48:13
@@ -556,7 +556,7 @@ c_log(COMPLEX *c, NUMBER *epsilon)
if (cln_10_epsilon == NULL) {
/* first time call */
cln_10_epsilon = qcopy(epsilon);
} else if (qcmp(cln_10_epsilon, epsilon) == FALSE) {
} else if (qcmp(cln_10_epsilon, epsilon) == TRUE) {
/* replaced cacheed value with epsilon arg */
qfree(cln_10_epsilon);
cln_10_epsilon = qcopy(epsilon);

View File

@@ -18,8 +18,8 @@
# received a copy with calc; if not, write to Free Software Foundation, Inc.
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# @(#) $Revision: 30.14 $
# @(#) $Id: Makefile.head,v 30.14 2007/09/06 08:08:39 chongo Exp $
# @(#) $Revision: 30.20 $
# @(#) $Id: Makefile.head,v 30.20 2008/10/23 00:13:44 chongo Exp $
# @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/Makefile.head,v $
#
# Under source code control: 1997/03/09 02:28:54
@@ -366,8 +366,8 @@ EXT=
# The default calc versions
#
VERSION= 2.12.2.1
VERS= 2.12.2
VERSION= 2.12.4.0
VERS= 2.12.4
VER= 2.12
VE= 2
@@ -582,6 +582,8 @@ LIB_EXT_VERSION:= .${VERSION}${LIB_EXT}
LIB_EXT_VERS:= .${VERS}${LIB_EXT}
LIB_EXT_VER:= .${VER}${LIB_EXT}
LIB_EXT_VE:= .${VE}${LIB_EXT}
# LDCONFIG not required on this platform, so we redefine it to an empty string
LDCONFIG:=
# DARWIN_ARCH= -arch i386 -arch ppc # Universal binary
# DARWIN_ARCH= -arch i386 # Intel binary
# DARWIN_ARCH= -arch ppc # PPC binary
@@ -632,6 +634,48 @@ MAKE= gmake
#
endif
##################
# OpenBSD target #
##################
########################################################################
# NOTE: You MUST either use gmake (GNU Make) or you must try your luck #
# with Makefile.simple and custom/Makefile.simple versions. #
# See HOWTO.INSTALL for more information. #
########################################################################
ifeq ($(target),OpenBSD)
#
BLD_TYPE= calc-dynamic-only
#
CC_SHARE= -fPIC
DEFAULT_LIB_INSTALL_PATH= ${PWD}:/lib:/usr/lib:${LIBDIR}:/usr/local/lib
LD_SHARE= "-Wl,-rpath,${DEFAULT_LIB_INSTALL_PATH}" \
"-Wl,-rpath-link,${DEFAULT_LIB_INSTALL_PATH}"
LIBCALC_SHLIB= -shared "-Wl,-soname,libcalc${LIB_EXT_VERSION}"
ifdef ALLOW_CUSTOM
LIBCUSTCALC_SHLIB= -shared "-Wl,-soname,libcustcalc${LIB_EXT_VERSION}"
else
LIBCUSTCALC_SHLIB=
endif
#
CC_STATIC=
LD_STATIC=
LIBCALC_STATIC=
LIBCUSTCALC_STATIC=
#
CCWARN= -Wall
CCWERR=
CCOPT= ${DEBUG}
CCMISC=
#
LCC= gcc
CC= ${PURIFY} ${LCC} ${CCWERR}
#
MAKE= gmake
#
endif
################
# SunOS target #
################
@@ -715,6 +759,52 @@ LDFLAGS= ${LD_DEBUG} ${ILDFLAGS} ${LIBCALC_STATIC} ${LIBCUSTCALC_STATIC}
#if 0 /* start of skip for non-Gnu makefiles */
endif
###################################################
# MINGW32_NT-5.0 target #
###################################################
ifeq ($(target),MINGW32_NT-5.0)
EXT=.exe
TERMCONTROL= -DUSE_WIN32
ifdef ALLOW_CUSTOM
#endif /* end of skip for non-Gnu makefiles */
CALCPATH= .;./cal;~/.cal;${CALC_SHAREDIR};${CUSTOMCALDIR}
#if 0 /* start of skip for non-Gnu makefiles */
else
CALCPATH= .;./cal;~/.cal;${CALC_SHAREDIR}
endif
CALCRC= ${CALC_SHAREDIR}/startup;~/.calcrc;./.calcinit
#
BLD_TYPE= calc-static-only
#
CC_SHARE= -fPIC
DEFAULT_LIB_INSTALL_PATH= ${PWD}:/lib:/usr/lib:${LIBDIR}:/usr/local/lib
LD_SHARE= "-Wl,-rpath,${DEFAULT_LIB_INSTALL_PATH}" \
"-Wl,-rpath-link,${DEFAULT_LIB_INSTALL_PATH}"
LIBCALC_SHLIB= -shared "-Wl,-soname,libcalc${LIB_EXT_VERSION}"
ifdef ALLOW_CUSTOM
LIBCUSTCALC_SHLIB= -shared "-Wl,-soname,libcustcalc${LIB_EXT_VERSION}"
else
LIBCUSTCALC_SHLIB=
endif
#
CC_STATIC= -DSTATIC_ONLY
LIBCALC_STATIC=
LIBCUSTCALC_STATIC=
LD_STATIC=
#
CCWARN= -Wall -W -Wno-comment
CCWERR=
CCOPT= ${DEBUG}
CCMISC= -DNOTCYGWIN
#
LCC= gcc
CC= ${PURIFY} ${LCC} ${CCWERR}
#
endif
###################################################
# default target - when no specific target exists #
###################################################

View File

@@ -18,8 +18,8 @@
# received a copy with calc; if not, write to Free Software Foundation, Inc.
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# @(#) $Revision: 30.14 $
# @(#) $Id: Makefile.head,v 30.14 2007/09/06 08:08:39 chongo Exp $
# @(#) $Revision: 30.20 $
# @(#) $Id: Makefile.head,v 30.20 2008/10/23 00:13:44 chongo Exp $
# @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/Makefile.head,v $
#
# Under source code control: 1997/03/09 02:28:54
@@ -366,8 +366,8 @@ EXT=
# The default calc versions
#
VERSION= 2.12.2.1
VERS= 2.12.2
VERSION= 2.12.4.0
VERS= 2.12.4
VER= 2.12
VE= 2

View File

@@ -18,8 +18,8 @@
# received a copy with calc; if not, write to Free Software Foundation, Inc.
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# @(#) $Revision: 30.14 $
# @(#) $Id: Makefile.head,v 30.14 2007/09/06 08:08:39 chongo Exp $
# @(#) $Revision: 30.20 $
# @(#) $Id: Makefile.head,v 30.20 2008/10/23 00:13:44 chongo Exp $
# @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/Makefile.head,v $
#
# Under source code control: 1997/03/09 02:28:54
@@ -351,8 +351,8 @@ EXT=
# The default calc versions
#
VERSION= 2.12.2.1
VERS= 2.12.2
VERSION= 2.12.4.0
VERS= 2.12.4
VER= 2.12
VE= 2
@@ -506,6 +506,7 @@ CFLAGS= ${ICFLAGS} ${CCOPT}
ILDFLAGS= ${COMMON_LDFLAGS} ${LD_STATIC}
LDFLAGS= ${LD_DEBUG} ${ILDFLAGS} ${LIBCALC_STATIC} ${LIBCUSTCALC_STATIC}
#
CALCPATH= .;./cal;~/.cal;${CALC_SHAREDIR};${CUSTOMCALDIR}
#######################################################################
#-=-=-=-=-=- end of target section - only make rules below -=-=-=-=-=-#

14
decl.h
View File

@@ -19,8 +19,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc.
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
* @(#) $Revision: 30.2 $
* @(#) $Id: decl.h,v 30.2 2007/07/05 13:30:38 chongo Exp $
* @(#) $Revision: 30.3 $
* @(#) $Id: decl.h,v 30.3 2008/04/15 21:17:57 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/decl.h,v $
*
* Under source code control: 2007/02/09 05:24:25
@@ -62,10 +62,14 @@
/* determine which type of DLL we must generate */
# if defined(_EXPORTING)
# define DLL __declspec(dllexport)
# if !defined(STATIC_ONLY)
# if defined(_EXPORTING)
# define DLL __declspec(dllexport)
# else
# define DLL __declspec(dllimport)
# endif
# else
# define DLL __declspec(dllimport)
# define DLL
# endif
/* variable related macros */

6
func.c
View File

@@ -19,8 +19,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc.
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
* @(#) $Revision: 30.2 $
* @(#) $Id: func.c,v 30.2 2007/07/05 17:37:41 chongo Exp $
* @(#) $Revision: 30.3 $
* @(#) $Id: func.c,v 30.3 2008/04/15 21:17:57 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/func.c,v $
*
* Under source code control: 1990/02/15 01:48:15
@@ -5721,7 +5721,9 @@ f_fflush(int count, VALUE **vals)
i = 0;
errno = 0;
if (count == 0) {
#if !defined(_WIN32)
i = flushall();
#endif /* Windoz free systems */
} else {
for (n = 0; n < count; n++) {
if (vals[n]->v_type != V_FILE)

View File

@@ -17,8 +17,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc.
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
* @(#) $Revision: 30.1 $
* @(#) $Id: have_offscl.c,v 30.1 2007/03/16 11:09:46 chongo Exp $
* @(#) $Revision: 30.2 $
* @(#) $Id: have_offscl.c,v 30.2 2008/04/15 21:17:57 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/have_offscl.c,v $
*
* Under source code control: 1996/07/13 12:57:22
@@ -66,9 +66,11 @@ main(void)
if (value > (off_t)1) {
--value;
}
#if !defined(_WIN32)
if (value <= (off_t)getppid()) {
--value;
}
#endif
if (value == value2) {
value += value2;
}

View File

@@ -17,8 +17,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc.
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
* @(#) $Revision: 30.1 $
* @(#) $Id: have_posscl.c,v 30.1 2007/03/16 11:09:46 chongo Exp $
* @(#) $Revision: 30.2 $
* @(#) $Id: have_posscl.c,v 30.2 2008/04/15 21:17:57 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/have_posscl.c,v $
*
* Under source code control: 1996/07/13 12:57:22
@@ -66,9 +66,11 @@ main(void)
if (value > (FILEPOS)1) {
--value;
}
#if !defined(_WIN32)
if (value <= (FILEPOS)getppid()) {
--value;
}
#endif
if (value == value2) {
value += value2;
}

View File

@@ -1,5 +1,5 @@
NAME
sign - indicator of sign of a real or complex number
sgn - indicator of sign of a real or complex number
SYNOPSIS
sgn(x)
@@ -55,8 +55,8 @@ SEE ALSO
## received a copy with calc; if not, write to Free Software Foundation, Inc.
## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
##
## @(#) $Revision: 30.1 $
## @(#) $Id: sgn,v 30.1 2007/03/16 11:10:42 chongo Exp $
## @(#) $Revision: 30.2 $
## @(#) $Id: sgn,v 30.2 2008/05/10 13:23:57 chongo Exp $
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/sgn,v $
##
## Under source code control: 1995/10/25 04:03:46

View File

@@ -224,6 +224,12 @@ Unexpected
and increments x three times.
In an other example, this expression:
1<<8/2
evalues to 128, not 16, because <<8 is performed before the /2.
&A[0] and A are different things in calc
========================================
@@ -414,8 +420,8 @@ Unexpected
## received a copy with calc; if not, write to Free Software Foundation, Inc.
## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
##
## @(#) $Revision: 30.3 $
## @(#) $Id: unexpected,v 30.3 2007/09/08 02:48:45 chongo Exp $
## @(#) $Revision: 30.4 $
## @(#) $Id: unexpected,v 30.4 2008/05/10 13:18:09 chongo Exp $
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/unexpected,v $
##
## Under source code control: 1997/03/21 13:15:18

17
input.c
View File

@@ -17,8 +17,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc.
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
* @(#) $Revision: 30.1 $
* @(#) $Id: input.c,v 30.1 2007/03/16 11:09:46 chongo Exp $
* @(#) $Revision: 30.2 $
* @(#) $Id: input.c,v 30.2 2008/04/15 21:17:57 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/input.c,v $
*
* Under source code control: 1990/02/15 01:48:16
@@ -37,6 +37,8 @@
#include <ctype.h>
#if !defined(_WIN32)
# include <pwd.h>
#else
# include <stdlib.h>
#endif
#include <sys/types.h>
#include <sys/stat.h>
@@ -971,17 +973,14 @@ isinoderead(struct stat *sbuf)
/* scan the entire readset */
for (i=0; i < maxreadset; ++i) {
#if defined(_WIN32) || defined(__MSDOS__)
tmp = _fullpath(NULL, cip->i_name, _MAX_PATH);
if (readset[i].active &&
tmp != NULL &&
char tmp[_MAX_PATH+1];
tmp[_MAX_PATH] = '\0';
if (_fullpath(tmp, cip->i_name, _MAX_PATH) &&
readset[i].active &&
strcasecmp(readset[i].path, tmp) == 0) {
/* found a match */
free(tmp);
return i;
}
if (tmp != NULL) {
free(tmp);
}
#else /* Windoz free systems */
if (readset[i].active &&
sbuf->st_dev == readset[i].inode.st_dev &&

View File

@@ -17,8 +17,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc.
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
* @(#) $Revision: 30.1 $
* @(#) $Id: math_error.c,v 30.1 2007/03/16 11:09:46 chongo Exp $
* @(#) $Revision: 30.2 $
* @(#) $Id: math_error.c,v 30.2 2008/10/24 09:49:20 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/math_error.c,v $
*
* Under source code control: 1994/08/03 05:08:22
@@ -93,6 +93,8 @@ math_error(char *fmt, ...)
* if we should longjmp, so do
*/
if (calc_use_matherr_jmpbuf != 0) {
if (conf->calc_debug & CALCDBG_RUNSTATE)
printf("math_error: longjmp calc_matherr_jmpbuf\n");
longjmp(calc_matherr_jmpbuf, calc_use_matherr_jmpbuf);
}
@@ -102,6 +104,21 @@ math_error(char *fmt, ...)
(void) fflush(stdout);
(void) fflush(stderr);
fprintf(stderr, "%s\n\n", calc_err_msg);
/*
* if interactive, return to main via longjmp()
*/
if (calc_use_scanerr_jmpbuf != 0) {
if (conf->calc_debug & CALCDBG_RUNSTATE)
printf("math_error: longjmp calc_scanerr_jmpbuf\n");
longjmp(calc_scanerr_jmpbuf, calc_use_scanerr_jmpbuf);
}
/*
* exit
*/
if (conf->calc_debug & CALCDBG_RUNSTATE)
printf("math_error: about to exit\n");
libcalc_call_me_last();
exit(40);
}

View File

@@ -19,8 +19,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc.
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
* @(#) $Revision: 30.2 $
* @(#) $Id: opcodes.c,v 30.2 2007/07/10 21:18:08 chongo Exp $
* @(#) $Revision: 30.4 $
* @(#) $Id: opcodes.c,v 30.4 2008/05/10 13:51:32 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/opcodes.c,v $
*
* Under source code control: 1990/02/15 01:48:19
@@ -3120,8 +3120,18 @@ o_printresult(void)
VALUE *vp;
vp = stack;
/* firewall */
if (vp == NULL)
return;
if (vp->v_type == V_ADDR)
vp = vp->v_addr;
/* firewall */
if (vp == NULL)
return;
if (vp->v_type != V_NULL) {
if (conf->tab_ok)
math_chr('\t');

View File

@@ -19,8 +19,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc.
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
* @(#) $Revision: 30.1 $
* @(#) $Id: qtrans.c,v 30.1 2007/03/16 11:09:46 chongo Exp $
* @(#) $Revision: 30.2 $
* @(#) $Id: qtrans.c,v 30.2 2008/10/24 07:09:41 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/qtrans.c,v $
*
* Under source code control: 1990/02/15 01:48:22
@@ -1062,7 +1062,7 @@ qlog(NUMBER *q, NUMBER *epsilon)
if (ln_10_epsilon == NULL) {
/* first time call */
ln_10_epsilon = qcopy(epsilon);
} else if (qcmp(ln_10_epsilon, epsilon) == FALSE) {
} else if (qcmp(ln_10_epsilon, epsilon) == TRUE) {
/* replaced cacheed value with epsilon arg */
qfree(ln_10_epsilon);
ln_10_epsilon = qcopy(epsilon);

11
rpm.mk
View File

@@ -19,8 +19,8 @@
# received a copy with calc; if not, write to Free Software Foundation, Inc.
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
MAKEFILE_REV= $$Revision: 30.4 $$
# @(#) $Id: rpm.mk,v 30.4 2007/10/16 12:22:22 chongo Exp $
MAKEFILE_REV= $$Revision: 30.5 $$
# @(#) $Id: rpm.mk,v 30.5 2008/10/24 08:44:00 chongo Exp $
# @(#) $Source: /usr/local/src/cmd/calc/RCS/rpm.mk,v $
#
# Under source code control: 2003/02/16 20:21:39
@@ -53,6 +53,7 @@ EGREP= egrep
MKDIR= mkdir
GREP= grep
SORT= sort
CHMOD= chmod
# rpm-related parameters
#
@@ -116,6 +117,12 @@ srcpkg: make_rhdir
${EGREP} -v '/old[._-]|\.old$$|\.tar\.gz$$|/ver_calc$$' | \
LANG=C ${SORT} | \
${CPIO} -dumpv "$(TMPDIR)/$(PROJECT)"
${RM} -f "$(TMPDIR)/$(PROJECT)/Makefile"
${SED} -e 's/^CCWERR=[ ]*-Werror/CCWERR=/' \
-e 's/^#.*CCWERR=.*-Werror$$/#/' \
-e 's/^CHECK= check/CHECK= true/' \
Makefile > "$(TMPDIR)/$(PROJECT)/Makefile"
${CHMOD} 0444 "$(TMPDIR)/$(PROJECT)/Makefile"
(cd "$(TMPDIR)"; ${TAR} cf - "$(PROJECT)") | \
${BZIP2_PROG} --best -c -z > "$(RPMDIR)/SOURCES/$(TARBALL)"
${RM} -fr "$(TMPDIR)/$(PROJECT)"

View File

@@ -17,8 +17,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc.
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
* @(#) $Revision: 30.3 $
* @(#) $Id: value.c,v 30.3 2007/07/11 23:09:01 chongo Exp $
* @(#) $Revision: 30.4 $
* @(#) $Id: value.c,v 30.4 2008/05/10 13:44:28 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/value.c,v $
*
* Under source code control: 1990/02/15 01:48:25
@@ -179,6 +179,10 @@ protecttodepth(VALUE *vp, int sts, int depth)
void
copyvalue(VALUE *oldvp, VALUE *newvp)
{
/* firewall */
if (oldvp == NULL)
return;
newvp->v_type = oldvp->v_type;
if (oldvp->v_type >= 0) {
switch (oldvp->v_type) {

View File

@@ -19,8 +19,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc.
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
* @(#) $Revision: 30.5 $
* @(#) $Id: version.c,v 30.5 2007/10/16 12:22:22 chongo Exp $
* @(#) $Revision: 30.10 $
* @(#) $Id: version.c,v 30.10 2008/10/24 09:55:12 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/version.c,v $
*
* Under source code control: 1990/05/22 11:00:58
@@ -48,8 +48,8 @@ static char *program;
#define MAJOR_VER 2 /* major library version */
#define MINOR_VER 12 /* minor library version */
#define MAJOR_PATCH 2 /* major software level under library version */
#define MINOR_PATCH 2 /* minor software level or 0 if none */
#define MAJOR_PATCH 4 /* major software level under library version */
#define MINOR_PATCH 0 /* minor software level or 0 if not patched */
/*
@@ -103,8 +103,6 @@ char *Copyright = "\n"
* string does not contain the title, just:
*
* x.y.z.w
* x.y.z
* x.y
*/
char *
version(void)
@@ -121,15 +119,9 @@ version(void)
/*
* form the version buffer
*/
if (MINOR_PATCH > 0) {
snprintf(verbuf, BUFSIZ,
"%d.%d.%d.%d", calc_major_ver, calc_minor_ver,
calc_major_patch, calc_minor_patch);
} else {
snprintf(verbuf, BUFSIZ,
"%d.%d.%d", calc_major_ver,
calc_minor_ver, calc_major_patch);
}
snprintf(verbuf, BUFSIZ,
"%d.%d.%d.%d", calc_major_ver, calc_minor_ver,
calc_major_patch, calc_minor_patch);
/*
* save the versions string into a newly malloced buffer

49
zfunc.c
View File

@@ -19,8 +19,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc.
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
* @(#) $Revision: 30.1 $
* @(#) $Id: zfunc.c,v 30.1 2007/03/16 11:09:46 chongo Exp $
* @(#) $Revision: 30.2 $
* @(#) $Id: zfunc.c,v 30.2 2008/02/24 07:41:49 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/zfunc.c,v $
*
* Under source code control: 1990/02/15 01:48:27
@@ -374,12 +374,28 @@ zcomb(ZVALUE z1, ZVALUE z2, ZVALUE *res)
/*
* Compute the Jacobi function (p / q) for odd q.
* If q is prime then the result is:
* 1 if p == x^2 (mod q) for some x.
* -1 otherwise.
* If q is not prime, then the result is not meaningful if it is 1.
* This function returns 0 if q is even or q < 0.
* Compute the Jacobi function (m / n) for odd n.
*
* The property of the Jacobi function is: If n>2 is prime then
*
* the result is 1 if m == x^2 (mod n) for some x.
* otherwise the result is -1.
*
* If n is not prime, then the result does not prove that n is not prine
* when the value of the Jacobi is 1.
*
* Jacobi evaluation of (m / n), where n > 0 is odd AND m > 0 is odd:
*
* rule 0: (0 / n) == 0
* rule 1: (1 / n) == 1
* rule 2: (m / n) == (a / n) if m == a % n
* rule 3: (m / n) == (2*m / n) if n == 1 % 8 OR n == 7 % 8
* rule 4: (m / n) == -(2*m / n) if n != 1 & 8 AND n != 7 % 8
* rule 5: (m / n) == (n / m) if m == 3 % 4 AND n == 3 % 4
* rule 6: (m / n) == -(n / m) if m != 3 % 4 OR n != 3 % 4
*
* NOTE: This function returns 0 in invalid Jacobi parameters:
* m < 0 OR n is even OR n < 1.
*/
FLAG
zjacobi(ZVALUE z1, ZVALUE z2)
@@ -388,16 +404,16 @@ zjacobi(ZVALUE z1, ZVALUE z2)
long lowbit;
int val;
/* firewall */
if (ziszero(z1) || zisneg(z1))
return 0;
if (ziseven(z2) || zisneg(z2))
return 0;
/* assume a value of 1 unless we find otherwise */
if (zisone(z1))
return 1;
val = 1;
if (ziszero(z1) || zisone(z1))
return val;
if (zisunit(z1)) {
if ((*z2.v - 1) & 0x2)
val = -val;
return val;
}
zcopy(z1, &p);
zcopy(z2, &q);
for (;;) {
@@ -406,7 +422,8 @@ zjacobi(ZVALUE z1, ZVALUE z2)
p = tmp;
if (ziszero(p)) {
zfree(p);
p = _one_;
zfree(q);
return 0;
}
if (ziseven(p)) {
lowbit = zlowbit(p);