Compare commits

...

6 Commits

Author SHA1 Message Date
Landon Curt Noll
383290a844 Release calc version 2.11.5.8 2017-05-21 15:38:42 -07:00
Landon Curt Noll
7e40db44e3 Release calc version 2.11.5.7 2017-05-21 15:38:42 -07:00
Landon Curt Noll
a57ee19ca5 Release calc version 2.11.5.6 2017-05-21 15:38:42 -07:00
Landon Curt Noll
a6e226fa80 Release calc version 2.11.5.5 2017-05-21 15:38:42 -07:00
Landon Curt Noll
86e0f98c8f Release calc version 2.11.5t4.5 2017-05-21 15:38:41 -07:00
Landon Curt Noll
e4dcbf7ecf Release calc version 2.11.5t4.4 2017-05-21 15:38:41 -07:00
54 changed files with 2048 additions and 917 deletions

51
BUGS
View File

@@ -74,6 +74,53 @@ Known bugs:
Problems with known work-a-rounds: Problems with known work-a-rounds:
* The gcc as shipped with Redhat 7 perhaps other Linux distributions
has a bug causes calc to dump core on startup when calc is:
compiled optimized (-O, -O1, -O2 or -O3)
AND
compiled with debugging (-g or -g3)
AND
when calc is compiled with readline (see USE_READLINE,
READLINE_LIB and READLINE_INCLUDE in the Makefile)
On Redhat, the gcc -v which has this problem is:
gcc version 2.96 20000731 (Red Hat Linux 7.1 2.96-85)
there may be other gcc versions that also suffer this fate.
The readlines associated with problem are:
readline-4.1-5
readline2.2.1-2.2.1-2
readline-devel-4.1-5
One work-a-round is to compile calc WITHOUT readline. In the
Makefile be sure that:
USE_READLINE=
READLINE_LIB=
READLINE_INCLUDE=
i.e., these Makefile vars are empty.
If you must use readline, then an alternate work-a-round is to
change the DEBUG Makefile variable to either:
compile for speed: -O3 (or -O2 if you do not have -O3)
compile to debug: -g3 (or -g if you do not have -g3)
but not both.
See RH bug #57889 for details:
http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=57889
* There is a bug in gcc-2.95 that causes calc, when compiled with -O2, * There is a bug in gcc-2.95 that causes calc, when compiled with -O2,
to fail the regression test. The work-a-round is to compile with -O to fail the regression test. The work-a-round is to compile with -O
or to use gcc-2.96 or later. or to use gcc-2.96 or later.
@@ -241,8 +288,8 @@ Problems with known work-a-rounds:
## received a copy with calc; if not, write to Free Software Foundation, Inc. ## received a copy with calc; if not, write to Free Software Foundation, Inc.
## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
## ##
## @(#) $Revision: 29.12 $ ## @(#) $Revision: 29.17 $
## @(#) $Id: BUGS,v 29.12 2001/06/01 11:32:01 chongo Exp $ ## @(#) $Id: BUGS,v 29.17 2001/12/31 22:12:35 chongo Exp $
## @(#) $Source: /usr/local/src/cmd/calc/RCS/BUGS,v $ ## @(#) $Source: /usr/local/src/cmd/calc/RCS/BUGS,v $
## ##
## Under source code control: 1994/03/18 14:06:13 ## Under source code control: 1994/03/18 14:06:13

112
CHANGES
View File

@@ -1,14 +1,77 @@
The following are the changes from calc version 2.11.5t4.1 to date: The following are the changes from calc version 2.11.5.5 to date:
Now using version numbers of one of these forms:
x.y.z.w
x.y.z
x.y
Changed the READLINE_LIB Makefile variable to not link with -lreadline
by default. If you do have readline, we recommend that you use it.
If you can install the GNU readline:
http://freshmeat.net/projects/gnureadline/
http://cnswww.cns.cwru.edu/php/chet/readline/rltop.html
we recommend it. But if not, you should set the USE_READLINE,
READLINE_LIB, and READLINE_INCLUDE Makefile variables to empty.
NOTE: See the BUGS file for a Linux issue when compiling calc
with -O (or -O2 or -O3) AND with -g (or -g3) AND with readline.
Removed an obsolete reference to TOPDIR. This was fixed thanks to
a bug report by Clifford Kite <kite_public1 at ev1 dot net>.
Fixed other inconsistencies related to things like BINDIR.
Fixed calc man page so that is refers to -f instead of the old -S flag.
Fixed thanks to Clifford Kite <kite_public1 at ev1 dot net> for
point this out.
All for loops end with /dev/null to avoid any problems related
to systems that cannot grok empty for loops.
Changed the libcalc functions creal and cimag to c_real and c_imag
to about conflicts with new libc such as those used by gcc v3.
Thanks Eli Zaretskii <eliz at is dot elta dot co dot il> and
Martin Buck <m at rtin-buck dot de> for alerting us to this conflict.
The Makefile no longer hard code's /usr/include. Instead it uses
the ${INCDIR} Makefile variable. Thanks goes to Eli Zaretskii
<eliz at is dot elta dot co dot il> for pointing out this inconsistency.
Added mods to support compilation under DJGPP. DJGPP runs on 386
and newer PCs running DOS or dos-compatible operating systems.
See http://www.delorie.com/djgpp/. Thanks goes to Eli Zaretskii
<eliz at is dot elta dot co dot il> for sending in these mods.
Updated README.WINDOWS to include information on building with DJGPP.
The pld folks are building RPMs based on our calc distrbutions.
See: ftp://ftp.pld.org.pl/dists/ra/PLD/i686/PLD/RPMS or
http://ftp.pld.org.pl/dists/ra/PLD/i686/PLD/RPMS more information.
We appreciate their work in this regard. In the next release, we
plan to also build and release our own RPMs based on their efforts.
Changed the Makefile variable CUSTOMLIBDIR to CUSTOMCALDIR.
Changed the Makefile variable CSHAREDIR to CALC_SHAREDIR.
Changed the Makefile variable INCDIRCALC to CALC_INCDIR.
Removed the Makefile variable SHAREDIR.
Updated the HOWTO.INSTALL and README.WINDOWS files.
The following are the changes from calc version 2.11.5t4.1 to 2.11.5t4.4:
Updated dependency rules in Makefiles. Updated dependency rules in Makefiles.
NOTE: -DSRC, as used in 2.11.5t4.1 was renamed -DCALC_SRC
in a later version.
Calc include files use #include "foo.h" to include other calc Calc include files use #include "foo.h" to include other calc
header files if -DSRC. Otherwise they use <calc/foo.h>. header files if -DCALC_SRC. Otherwise they use <calc/foo.h>.
The -DSRC symbol is defined by default in calc's Makefile The -DCALC_SRC symbol is defined by default in calc's Makefile
and so it uses the header files from within the calc src tree. and so it uses the header files from within the calc src tree.
If an external non-calc program includes an installed calc If an external non-calc program includes an installed calc
header file (from under /usr/include), and it does NOT define header file (from under /usr/include), and it does NOT define
SRC, then it will obtain the calc header files from the CALC_SRC, then it will obtain the calc header files from the
correct system location (such as /usr/include/calc/foo.h). correct system location (such as /usr/include/calc/foo.h).
Added calc builtin function: version() which returns the calc Added calc builtin function: version() which returns the calc
@@ -36,6 +99,41 @@ The following are the changes from calc version 2.11.5t4.1 to date:
If you are using the GNU readline then the Makefile recommends that If you are using the GNU readline then the Makefile recommends that
you link with the ncurses library. you link with the ncurses library.
Applied Makefile, cscript/Makefile and custom/Makefile patches to
fix install mode problems, to deal with sorting and dates in I18n
environments (such as Japanese), to fix some problems with calc.spec
and to fix the cscript #! header lines. Thanks goes to KAWAMURA Masao
(kawamura at mlb.co.jp) for the bug report and patch!
Fixed headers on fproduct.calc powerterm.calc 4dsphere.calc so
that they are correcly changed on installation.
Added ${GREP} Makefile variable.
The top level Makefile now sets LANG=C and passes it down to
lower level Makefiles.
Updated URLs in cal/lucas.cal comments.
Now shipping calc.spec, inst_files, spec-template and Makefile.linux
with the standard calc source distribution. Note that the standard
Makefile has not changed. The Makefile.linux only in minor ways
needed to build calc rpms.
Added $T Makefile variable. $T is the top level directory under
which calc will be installed. The calc install is performed under $T,
the calc build is performed under /. The purpose for $T is to allow
someone to install calc somewhere other than into the system area.
For examplewhen forming the calc rpm, the Makefile is called with
T=$RPM_BUILD_ROOT. If $T is empty, calc is installed under /.
Removed all echo_XXX rules except for echo_inst_files from lower
level makefile. The calc.spec will use a make install rule
with T=$RPM_BUILD_ROOT.
Updated LIBRARY file with instructions related to -DCALC_SRC,
the new default include file locatin and -lcustcalc.
The following are the changes from calc version 2.11.5t3 to 2.11.5t4: The following are the changes from calc version 2.11.5t3 to 2.11.5t4:
@@ -166,7 +264,7 @@ The following are the changes from calc version 2.11.5t0 to 2.11.5t1.1:
An effort was made to make calc easier to build under Windoz An effort was made to make calc easier to build under Windoz
using the Cygwin project (http://sources.redhat.com/cygwin/). using the Cygwin project (http://sources.redhat.com/cygwin/).
Thanks to the work of Thomas Jones-Low (tjoneslo and softstart Thanks to the work of Thomas Jones-Low (tjoneslo at softstart
dot com), a number of #if defined(_WIN32)'s have been added dot com), a number of #if defined(_WIN32)'s have been added
to calc source. These changes should not effect Windoz to calc source. These changes should not effect Windoz
free system such as GNU/Linux, Solaris, POSIX-like, etc ... free system such as GNU/Linux, Solaris, POSIX-like, etc ...
@@ -5320,8 +5418,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. ## received a copy with calc; if not, write to Free Software Foundation, Inc.
## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
## ##
## @(#) $Revision: 29.35 $ ## @(#) $Revision: 29.48 $
## @(#) $Id: CHANGES,v 29.35 2001/06/01 21:44:44 chongo Exp $ ## @(#) $Id: CHANGES,v 29.48 2002/03/14 00:28:28 chongo Exp $
## @(#) $Source: /usr/local/src/cmd/calc/RCS/CHANGES,v $ ## @(#) $Source: /usr/local/src/cmd/calc/RCS/CHANGES,v $
## ##
## Under source code control: 1993/06/02 18:12:57 ## Under source code control: 1993/06/02 18:12:57

View File

@@ -1,34 +1,105 @@
Installing calc in 4 easy steps: Installing calc in 4 easy steps:
1) Look at the makefile, and adjust it to suit your needs. 1) Look at the makefile, and adjust it to suit your needs.
Here are some Makefile hints: The Makefile, as shipped, is suitable for installation under
Linux and Un*x-like environments. For the most part, the default
values should work. If in doubt, follow the 'When in doubt'
suggestion.
Select a compiler set by commenting in the appropriate set !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
of cc options. As shipped the Makefile assumes a gcc-like ! If you are building under Windoz or a Windoz-like environment !
environment such as Linux. If a more appropriate cc set if ! (such as Cygwin or DJGPP), read the README.WINDOWS file. !
found below, comment out the Linux set and comment in that !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
set or edit the gcc set or the common cc set as needed.
You may or may not need RANLIB when building libraries. You should determine if these Makefile variables are reasonable:
As shipped the Makefile assumes RANLIB is needed.
Comment the in/out the RANLIB value if ranlib does
not work or does not exist.
You may want to change the default pager used by calc. INCDIR Where the system include (.h) files are kept.
As shipped the Makefile assumes 'more'. On your system BINDIR Where to install calc binary files.
you may find 'less' to be a better pager. LIBDIR Where to install calc link library (*.a) files.
CALC_SHAREDIR Where to install calc help, .cal, startup, and
config files.
Set TOPDIR to be the place under which help files, calc, You may want to change the default installation locations for
include files and calc libs are to be installed. As shipped these values, which are based on the 4 values listed above:
the Makefile assumes a TOPDIR of /usr/local/lib.
Set BINDIR to the place where calc is installed. As shipped HELPDIR where the help directory is installed
the Makefile assumes a BINDIR /usr/local/bin. CALC_INCDIR where the calc include files are installed
CUSTOMCALDIR where custom *.cal files are installed
CUSTOMHELPDIR where custom help files are installed
CUSTOMINCPDIR where custom .h files are installed
SCRIPTDIR where calc shell scripts are installed
If you want to install calc files under a top level directory,
then set the T value:
The calc install is performed under $T, the calc build is
performed under /. The purpose for $T is to allow someone
to install calc somewhere other than into the system area.
For example, if:
BINDIR= /usr/bin
LIBDIR= /usr/lib
CALC_SHAREDIR= /usr/share/calc
and if:
T= /var/tmp/testing
Then the installation locations will be:
calc binary files: /var/tmp/testing/usr/bin
calc link library: /var/tmp/testing/usr/lib
calc help, .cal ...: /var/tmp/testing/usr/share/calc
... etc ... /var/tmp/testing/...
If $T is empty, calc is installed under /, which is the same
top of tree for which it was built. If $T is non-empty, then
calc is installed under $T, as if one had to chroot under
$T for calc to operate.
Look for the section that starts:
################
# compiler set #
################
Select a compiler set by commenting in the appropriate set
of cc options. As shipped the Makefile assumes a gcc-like
environment such as Linux. If a more appropriate cc set if
found below, comment out the Linux set and comment in that
set or edit the gcc set or the common cc set as needed.
You may want to change these Makrfile variables from their defaults:
RANLIB
You may or may not need RANLIB when building libraries.
As shipped the Makefile assumes RANLIB is needed.
Comment the in/out the RANLIB value if ranlib does
not work or does not exist.
CALCPAGER
You may want to change the default pager used by calc.
As shipped the Makefile assumes 'more'. On your system
you may find 'less' to be a better pager.
DEBUG
Some compilers (to put it mildly) have bugs. Sometimes the
DEBUG Makefile variable causes the compiler / optimizer to
produce bad code. Other compilers do just fine.
If possible try to use DEBUG=-O3 -g3 (maximum optimization
and debug symbols). If the calc test fails (see step 3),
try lowering either the -O value and/or the -g3. Also try
using -Osomething without -g.
Adjust other Makefile variables as needed. Adjust other Makefile variables as needed.
2) build calc: 2) build calc:
make all make all
@@ -36,13 +107,14 @@ Installing calc in 4 easy steps:
you may find. See the BUGS file if you find any compiler you may find. See the BUGS file if you find any compiler
warning or errors. warning or errors.
3) test calc: 3) test calc:
make check make check
==> If you run into problems, follow the BUGS file instructions. ==> If you run into problems, read the BUGS file and follow
the instructions found in there.
4) install calc: 4) install calc:
make install make install
@@ -65,8 +137,8 @@ the calc help subsystem. See the README file for details.
## received a copy with calc; if not, write to Free Software Foundation, Inc. ## received a copy with calc; if not, write to Free Software Foundation, Inc.
## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
## ##
## @(#) $Revision: 29.2 $ ## @(#) $Revision: 29.6 $
## @(#) $Id: HOWTO.INSTALL,v 29.2 2000/06/07 14:02:13 chongo Exp $ ## @(#) $Id: HOWTO.INSTALL,v 29.6 2002/03/14 00:28:28 chongo Exp $
## @(#) $Source: /usr/local/src/cmd/calc/RCS/HOWTO.INSTALL,v $ ## @(#) $Source: /usr/local/src/cmd/calc/RCS/HOWTO.INSTALL,v $
## ##
## Under source code control: 1999/09/27 20:48:44 ## Under source code control: 1999/09/27 20:48:44

28
LIBRARY
View File

@@ -48,12 +48,30 @@ convenient for outside use. So you should read the source for a routine
to see if it really does what you think it does. I won't guarantee that to see if it really does what you think it does. I won't guarantee that
obscure internal routines won't change or disappear in future releases! obscure internal routines won't change or disappear in future releases!
When calc is installed, all of the include files needed to build When calc is installed, all of libraries are installed into ${LIBDIR}.
libcalc.a along with the link library itself are installed into ${LIBDIR}. All of the calc header files are installed under ${INCDIRCALC}.
If CALC_SRC is defined, then the calc header files will assume that
they are in or under the current directory. However, most external
programs most likely will not be located under calc'c source tree.
External programs most likely want to use the installed calc header
files under ${INCDIRCALC}. External programs most likely NOT want
to define CALC_SRC.
External programs may want to compile with: External programs may want to compile with:
-I${LIBDIR} -L${LIBDIR} -lcalc -L${LIBDIR} -lcalc
If custom functions are also used, they may want to compile with:
-L${LIBDIR} -lcalc -lcustcalc
The CALC_SRC symbol should NOT be defined by default. However if you are
feeling pedantic you may want to force CALC_SRC to be undefined:
-UCALC_SRC
as well.
-------------- --------------
ERROR HANDLING ERROR HANDLING
@@ -471,8 +489,8 @@ need call libcalc_call_me_last() only once.
## received a copy with calc; if not, write to Free Software Foundation, Inc. ## received a copy with calc; if not, write to Free Software Foundation, Inc.
## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
## ##
## @(#) $Revision: 29.2 $ ## @(#) $Revision: 29.5 $
## @(#) $Id: LIBRARY,v 29.2 2000/06/07 14:02:13 chongo Exp $ ## @(#) $Id: LIBRARY,v 29.5 2001/06/08 22:57:35 chongo Exp $
## @(#) $Source: /usr/local/src/cmd/calc/RCS/LIBRARY,v $ ## @(#) $Source: /usr/local/src/cmd/calc/RCS/LIBRARY,v $
## ##
## Under source code control: 1993/07/30 19:44:49 ## Under source code control: 1993/07/30 19:44:49

866
Makefile

File diff suppressed because it is too large Load Diff

View File

@@ -3,15 +3,6 @@ Dear calc user on a Windoz based system,
See the HOWTO.INSTALL file for information on how to build and install calc. See the HOWTO.INSTALL file for information on how to build and install calc.
See also the README file. See also the README file.
NOTE: The Windoz port is extremely experimental, untested and perhaps
incomplete. We are in the process of making it easier. The
following should help anyone who is trying to make a go of this
under the current code conditions.
NOTE: We are currently ONLY making an effort to support building under
Windoz using the Cygwin project (http://sources.redhat.com/cygwin/)
with the GCC compiler and Un*x tools for Windows.
NOTE: The main developers do not have access to a Windoz based platform. NOTE: The main developers do not have access to a Windoz based platform.
While we will make an effort to not break calc Windoz based system, While we will make an effort to not break calc Windoz based system,
our lack of a Windoz test environment will mean we will make mistakes our lack of a Windoz test environment will mean we will make mistakes
@@ -19,7 +10,68 @@ NOTE: The main developers do not have access to a Windoz based platform.
Of course you are welcome to send us any patches that fix your Of course you are welcome to send us any patches that fix your
Windoz build environment. Windoz build environment.
=-= =-=-=-=-=-=-=-=-=-=-=-=-=-=-=
=-= compiling under DJGPP =-=
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
You might want to try using the DJGPP system to compile calc. See:
http://www.delorie.com/djgpp/
for DJGPP details and availability.
To compile with DJGPP, one needs to select a number of Makefile
variable changes. Eli Zaretskii <eliz at is dot elta dot co dot il>
recommends the following settings:
TERMCONTROL= -DUSE_TERMIOS
BYTE_ORDER= -DLITTLE_ENDIAN
LONG_BITS= 32
LONGLONG_BITS= 64
HAVE_FPOS_POS= -DHAVE_NO_FPOS_POS
FPOS_BITS= 32
OFF_T_BITS= 32
DEV_BITS= 32
INODE_BITS= 32
HAVE_USTAT= -DHAVE_NO_USTAT
HAVE_GETSID= -DHAVE_NO_GETSID
HAVE_GETPGID= -DHAVE_NO_GETPGID
HAVE_GETTIME= -DHAVE_NO_GETTIME
HAVE_GETPRID= -DHAVE_NO_GETPRID
HAVE_URANDOM_H= NO
ALIGN32= -UMUST_ALIGN32
HAVE_MALLOC_H= YES
HAVE_STDLIB_H= YES
HAVE_STRING_H= YES
HAVE_TIMES_H= NO
HAVE_SYS_TIMES_H= YES
HAVE_TIME_H= YES
HAVE_SYS_TIME_H= YES
HAVE_UNISTD_H= YES
BINDIR= /dev/env/DJDIR/bin
INCDIR= /dev/env/DJDIR/include
LIBDIR= /dev/env/DJDIR/lib
MANDIR= /dev/env/DJDIR/man/man1
CATDIR= /dev/env/DJDIR/man/cat1
NROFF= groff
CALCPATH= .;./cal;~/.cal;${CALC_SHAREDIR};${CUSTOMCALDIR}
CALCRC= ${CALC_SHAREDIR}/startup;~/.calcrc;./.calcinit
CALCPAGER= less.exe -ci
DEBUG= -O2 -gstabs+
The 'Linux set' or 'gcc set' (see the Select your compiler type section)
should work for DJGPP systems if you set the above Makefile variables.
Look for Makefile comments of the form:
# Select ...something... for DJGPP.
Follow those recommendations. In cases where they conflict with
the above Makefile list, follow the recommendation in the Makefile.
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
=-= compiling with Cygwin =-=
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
An effort is being made to allow windows users to compile calc using the An effort is being made to allow windows users to compile calc using the
Cygwin project (http://sources.redhat.com/cygwin/) with the GCC compiler Cygwin project (http://sources.redhat.com/cygwin/) with the GCC compiler
@@ -61,8 +113,6 @@ needs. Just copy the win32/*.[ch] files up into the top level calc
source directory, edited (if needed) and build using the Cygwin GCC source directory, edited (if needed) and build using the Cygwin GCC
compiler. compiler.
=-=
People who maintain calc need to keep in mind the following: People who maintain calc need to keep in mind the following:
The following was added to opcodes.h, config.h, zmath.h and value.h: The following was added to opcodes.h, config.h, zmath.h and value.h:
@@ -89,7 +139,7 @@ was changed to:
DLL extern int configtype(char*); DLL extern int configtype(char*);
## Copyright (C) 2001 Landon Curt Noll and Thomas Jones-Low ## Copyright (C) 2002 Landon Curt Noll and Thomas Jones-Low
## ##
## 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
@@ -105,8 +155,8 @@ was changed to:
## received a copy with calc; if not, write to Free Software Foundation, Inc. ## received a copy with calc; if not, write to Free Software Foundation, Inc.
## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
## ##
## @(#) $Revision: 29.6 $ ## @(#) $Revision: 29.8 $
## @(#) $Id: README.WINDOWS,v 29.6 2001/04/08 22:13:38 chongo Exp $ ## @(#) $Id: README.WINDOWS,v 29.8 2002/03/14 00:28:28 chongo Exp $
## @(#) $Source: /usr/local/src/cmd/calc/RCS/README.WINDOWS,v $ ## @(#) $Source: /usr/local/src/cmd/calc/RCS/README.WINDOWS,v $
## ##
## Under source code control: 2001/02/25 14:00:05 ## Under source code control: 2001/02/25 14:00:05

View File

@@ -17,8 +17,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 29.3 $ * @(#) $Revision: 29.4 $
* @(#) $Id: alloc.h,v 29.3 2001/05/29 00:16:53 chongo Exp $ * @(#) $Id: alloc.h,v 29.4 2001/06/08 21:00:58 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/alloc.h,v $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/alloc.h,v $
* *
* Under source code control: 1990/02/15 01:48:29 * Under source code control: 1990/02/15 01:48:29
@@ -32,7 +32,7 @@
#define __ALLOC_H__ #define __ALLOC_H__
#if defined(SRC) /* if we are building from the calc source tree */ #if defined(CALC_SRC) /* if we are building from the calc source tree */
# include "have_malloc.h" # include "have_malloc.h"
# include "have_newstr.h" # include "have_newstr.h"
# include "have_string.h" # include "have_string.h"

View File

@@ -17,8 +17,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 29.3 $ * @(#) $Revision: 29.4 $
* @(#) $Id: byteswap.h,v 29.3 2001/05/29 00:16:53 chongo Exp $ * @(#) $Id: byteswap.h,v 29.4 2001/06/08 21:00:58 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/byteswap.h,v $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/byteswap.h,v $
* *
* Under source code control: 1995/10/11 04:44:01 * Under source code control: 1995/10/11 04:44:01
@@ -33,7 +33,7 @@
#define __BYTESWAP_H__ #define __BYTESWAP_H__
#if defined(SRC) /* if we are building from the calc source tree */ #if defined(CALC_SRC) /* if we are building from the calc source tree */
# include "longbits.h" # include "longbits.h"
#else #else
# include <calc/longbits.h> # include <calc/longbits.h>

View File

@@ -18,8 +18,8 @@
# received a copy with calc; if not, write to Free Software Foundation, Inc. # received a copy with calc; if not, write to Free Software Foundation, Inc.
# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. # 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
# #
# @(#) $Revision: 29.9 $ # @(#) $Revision: 29.14 $
# @(#) $Id: Makefile,v 29.9 2001/05/28 21:56:08 chongo Exp $ # @(#) $Id: Makefile,v 29.14 2002/03/14 00:28:28 chongo Exp $
# @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/Makefile,v $ # @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/Makefile,v $
# #
# Under source code control: 1991/07/21 05:00:54 # Under source code control: 1991/07/21 05:00:54
@@ -36,16 +36,120 @@
SHELL = /bin/sh SHELL = /bin/sh
MAKE_FILE = Makefile MAKE_FILE = Makefile
####
# Normally, the upper level makefile will set these values. We provide # Normally, the upper level makefile will set these values. We provide
# a default here just in case you want to build from this directory. # a default here just in case you want to build from this directory.
# ####
# where to install things
#SHAREDIR= /usr/local/lib
#SHAREDIR= /usr/lib
SHAREDIR= /usr/share
#SHAREDIR= /usr/libdata
CSHAREDIR= ${SHAREDIR}/calc # Where the system include (.h) files are kept
#
# For DJGPP, select:
#
# INCDIR= /dev/env/DJDIR/include
#
# If in doubt, set:
#
# INCDIR= /usr/include
#
#INCDIR= /usr/local/include
#INCDIR= /dev/env/DJDIR/include
INCDIR= /usr/include
# where to install calc realted things
#
# ${BINDIR} where to install calc binary files
# ${LIBDIR} where calc link library (*.a) files are installed
# ${CALC_SHAREDIR} where to install calc help, .cal, startup, config files
#
# NOTE: The install rule prepends installation paths with $T, which
# by default is empty. If $T is non-empty, then installation
# locations will be relative to the $T directory.
#
# For DJGPP, select:
#
# BINDIR= /dev/env/DJDIR/bin
# LIBDIR= /dev/env/DJDIR/lib
# CALC_SHAREDIR= /dev/env/DJDIR/share/calc
#
# If in doubt, set:
#
# BINDIR= /usr/bin
# LIBDIR= /usr/lib
# CALC_SHAREDIR= /usr/share/calc
#
#BINDIR= /usr/local/bin
#BINDIR= /dev/env/DJDIR/bin
BINDIR= /usr/bin
#LIBDIR= /usr/local/lib
#LIBDIR= /dev/env/DJDIR/lib
LIBDIR= /usr/lib
#CALC_SHAREDIR= /usr/local/lib/calc
#CALC_SHAREDIR= /dev/env/DJDIR/share/calc
CALC_SHAREDIR= /usr/share/calc
# By default, these values are based CALC_SHAREDIR, INCDIR, BINDIR
# ---------------------------------------------------------------
# ${HELPDIR} where the help directory is installed
# ${CALC_INCDIR} where the calc include files are installed
# ${CUSTOMCALDIR} where custom *.cal files are installed
# ${CUSTOMHELPDIR} where custom help files are installed
# ${CUSTOMINCPDIR} where custom .h files are installed
# ${SCRIPTDIR} where calc shell scripts are installed
#
# NOTE: The install rule prepends installation paths with $T, which
# by default is empty. If $T is non-empty, then installation
# locations will be relative to the $T directory.
#
# If in doubt, set:
#
# HELPDIR= ${CALC_SHAREDIR}/help
# CALC_INCDIR= ${INCDIR}/calc
# CUSTOMCALDIR= ${CALC_SHAREDIR}/custom
# CUSTOMHELPDIR= ${CALC_SHAREDIR}/custhelp
# CUSTOMINCDIR= ${CALC_INCDIR}/custom
# SCRIPTDIR= ${BINDIR}/cscript
#
HELPDIR= ${CALC_SHAREDIR}/help
CALC_INCDIR= ${INCDIR}/calc
CUSTOMCALDIR= ${CALC_SHAREDIR}/custom
CUSTOMHELPDIR= ${CALC_SHAREDIR}/custhelp
CUSTOMINCDIR= ${CALC_INCDIR}/custom
SCRIPTDIR= ${BINDIR}/cscript
# T - top level directory under which calc will be installed
#
# The calc install is performed under $T, the calc build is
# performed under /. The purpose for $T is to allow someone
# to install calc somewhere other than into the system area.
#
# For example, if:
#
# BINDIR= /usr/bin
# LIBDIR= /usr/lib
# CALC_SHAREDIR= /usr/share/calc
#
# and if:
#
# T= /var/tmp/testing
#
# Then the installation locations will be:
#
# calc binary files: /var/tmp/testing/usr/bin
# calc link library: /var/tmp/testing/usr/lib
# calc help, .cal ...: /var/tmp/testing/usr/share/calc
# ... etc ... /var/tmp/testing/...
#
# If $T is empty, calc is installed under /, which is the same
# top of tree for which it was built. If $T is non-empty, then
# calc is installed under $T, as if one had to chroot under
# $T for calc to operate.
#
# If in doubt, use T=
#
T=
# Makefile debug # Makefile debug
# #
@@ -104,8 +208,10 @@ all: ${CALC_FILES} ${MAKE_FILE} .all
## ##
distlist: ${DISTLIST} distlist: ${DISTLIST}
${Q}for i in ${DISTLIST}; do \ ${Q}for i in ${DISTLIST} /dev/null; do \
if [ X"$$i" != X"/dev/null" ]; then \
echo cal/$$i; \ echo cal/$$i; \
fi; \
done done
distdir: distdir:
@@ -124,12 +230,11 @@ calcliblist:
# #
## ##
echo_CALC_FILES: ${MAKE_FILE} echo_inst_files:
@echo ${CALC_FILES} ${Q}for i in ${CALC_FILES} /dev/null; do \
if [ X"$$i" != X"/dev/null" ]; then \
echo_install.list: ${MAKE_FILE} echo __file__ ${CALC_SHAREDIR}/$$i; \
@for i in ${CALC_FILES}; do \ fi; \
echo ${CSHAREDIR}/$$i; \
done done
## ##
@@ -144,30 +249,29 @@ clobber:
rm -f .all rm -f .all
install: all install: all
-${Q}if [ ! -d ${SHAREDIR} ]; then \ -${Q}if [ ! -d $T${CALC_SHAREDIR} ]; then \
echo mkdir ${SHAREDIR}; \ echo mkdir $T${CALC_SHAREDIR}; \
mkdir ${SHAREDIR}; \ mkdir $T${CALC_SHAREDIR}; \
echo ${CHMOD} 0755 ${SHAREDIR}; \ if [ ! -d "$T${CALC_SHAREDIR}" ]; then \
${CHMOD} 0755 ${SHAREDIR}; \ echo mkdir -p "$T${CALC_SHAREDIR}"; \
mkdir -p "$T${CALC_SHAREDIR}"; \
fi; \
echo ${CHMOD} 0755 $T${CALC_SHAREDIR}; \
${CHMOD} 0755 $T${CALC_SHAREDIR}; \
else \ else \
true; \ true; \
fi fi
-${Q}if [ ! -d ${CSHAREDIR} ]; then \ ${Q}for i in ${CALC_FILES} /dev/null; do \
echo mkdir ${CSHAREDIR}; \ if [ "$$i" = "/dev/null" ]; then \
mkdir ${CSHAREDIR}; \ continue; \
echo ${CHMOD} 0755 ${CSHAREDIR}; \ fi; \
${CHMOD} 0755 ${CSHAREDIR}; \ if ${CMP} -s $$i $T${CALC_SHAREDIR}/$$i; then \
else \
true; \
fi
${Q}for i in ${CALC_FILES}; do \
if ${CMP} -s $$i ${CSHAREDIR}/$$i; then \
true; \ true; \
else \ else \
rm -f ${CSHAREDIR}/$$i.new; \ rm -f $T${CALC_SHAREDIR}/$$i.new; \
cp -f $$i ${CSHAREDIR}/$$i.new; \ cp -f $$i $T${CALC_SHAREDIR}/$$i.new; \
${CHMOD} 0444 ${CSHAREDIR}/$$i.new; \ ${CHMOD} 0444 $T${CALC_SHAREDIR}/$$i.new; \
mv -f ${CSHAREDIR}/$$i.new ${CSHAREDIR}/$$i; \ mv -f $T${CALC_SHAREDIR}/$$i.new $T${CALC_SHAREDIR}/$$i; \
echo "installed ${CSHAREDIR}/$$i"; \ echo "installed $T${CALC_SHAREDIR}/$$i"; \
fi; \ fi; \
done done

View File

@@ -17,8 +17,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 29.3 $ * @(#) $Revision: 29.5 $
* @(#) $Id: lucas.cal,v 29.3 2001/03/31 13:31:34 chongo Exp $ * @(#) $Id: lucas.cal,v 29.5 2001/06/08 20:07:29 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/lucas.cal,v $ * @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/lucas.cal,v $
* *
* Under source code control: 1990/05/03 16:49:51 * Under source code control: 1990/05/03 16:49:51
@@ -28,6 +28,16 @@
* Share and enjoy! :-) http://www.isthe.com/chongo/tech/comp/calc/ * Share and enjoy! :-) http://www.isthe.com/chongo/tech/comp/calc/
*/ */
/*
* NOTE: This is a standard calc resource file. For information on calc see:
*
* http://www.isthe.com/chongo/tech/comp/calc/index.html
*
* To obtain your own copy of calc, see:
*
* http://www.isthe.com/chongo/tech/comp/calc/calc-download.html
*/
/* /*
* HISTORICAL NOTE: * HISTORICAL NOTE:
* *
@@ -52,12 +62,19 @@
* *
* At the time of discovery, this was the largest known twin prime pair. * At the time of discovery, this was the largest known twin prime pair.
* *
* See:
*
* http://www.isthe.com/chongo/tech/math/prime/amdahl6.html
*
* for more information on the Amdahl 6 group.
*
* NOTE: Both largest known and largest known twin prime records have been * NOTE: Both largest known and largest known twin prime records have been
* broken. Rather than update this file each time, I'll just * broken. Rather than update this file each time, I'll just
* congratulate the finders and encourage others to try for * congratulate the finders and encourage others to try for
* larger finds. Records were made to be broken afterall! * larger finds. Records were made to be broken afterall!
* */
* ON GAINING A WORLD RECORD:
/* ON GAINING A WORLD RECORD:
* *
* The routines in calc were designed to be portable, and to work on * The routines in calc were designed to be portable, and to work on
* numbers of 'sane' size. The Amdahl 6 team used a 'ultra-high speed * numbers of 'sane' size. The Amdahl 6 team used a 'ultra-high speed

12
calc.h
View File

@@ -17,8 +17,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 29.7 $ * @(#) $Revision: 29.10 $
* @(#) $Id: calc.h,v 29.7 2001/05/29 00:16:53 chongo Exp $ * @(#) $Id: calc.h,v 29.10 2002/03/12 09:40:57 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/calc.h,v $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/calc.h,v $
* *
* Under source code control: 1990/02/15 01:48:31 * Under source code control: 1990/02/15 01:48:31
@@ -32,7 +32,7 @@
#define __CALC_H__ #define __CALC_H__
#include <setjmp.h> #include <setjmp.h>
#if defined(SRC) /* if we are building from the calc source tree */ #if defined(CALC_SRC) /* if we are building from the calc source tree */
# include "win32dll.h" # include "win32dll.h"
# include "value.h" # include "value.h"
# include "have_const.h" # include "have_const.h"
@@ -60,7 +60,11 @@
#define HOMECHAR '~' /* char which indicates home directory */ #define HOMECHAR '~' /* char which indicates home directory */
#define DOTCHAR '.' /* char which indicates current directory */ #define DOTCHAR '.' /* char which indicates current directory */
#define PATHCHAR '/' /* char which separates path components */ #define PATHCHAR '/' /* char which separates path components */
#if defined(__MSDOS__) || defined(__WIN32)
#define LISTCHAR ';' /* char which separates paths in a list */
#else
#define LISTCHAR ':' /* char which separates paths in a list */ #define LISTCHAR ':' /* char which separates paths in a list */
#endif
#define MAXCMD 16384 /* maximum length of command invocation */ #define MAXCMD 16384 /* maximum length of command invocation */
#define MAXERROR 512 /* maximum length of error message string */ #define MAXERROR 512 /* maximum length of error message string */
@@ -258,7 +262,7 @@ extern DLL char *run_state_name(run state);
extern int calc_major_ver; extern int calc_major_ver;
extern int calc_minor_ver; extern int calc_minor_ver;
extern int calc_major_patch; extern int calc_major_patch;
extern char *calc_minor_patch; extern int calc_minor_patch;
extern char *Copyright; extern char *Copyright;
extern DLL char *version(void); extern DLL char *version(void);

View File

@@ -15,8 +15,8 @@
.\" received a copy with calc; if not, write to Free Software Foundation, Inc. .\" received a copy with calc; if not, write to Free Software Foundation, Inc.
.\" 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. .\" 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
.\" .\"
.\" @(#) $Revision: 29.7 $ .\" @(#) $Revision: 29.9 $
.\" @(#) $Id: calc.man,v 29.7 2001/06/01 11:26:53 chongo Exp $ .\" @(#) $Id: calc.man,v 29.9 2002/03/14 00:28:28 chongo Exp $
.\" @(#) $Source: /usr/local/src/cmd/calc/RCS/calc.man,v $ .\" @(#) $Source: /usr/local/src/cmd/calc/RCS/calc.man,v $
.\" .\"
.\" Under source code control: 1991/07/23 05:48:26 .\" Under source code control: 1991/07/23 05:48:26
@@ -54,7 +54,7 @@ calc \- arbitrary precision calculator
.RB [ calc_cmd\ \&.\|.\|. ] .RB [ calc_cmd\ \&.\|.\|. ]
.in -5n .in -5n
.sp .sp
\fI#!${BINDIR}/calc\fP\ \fB\-S\fP\ [other_flags\ \&...] \fI#!${BINDIR}/calc\fP\ \fB\-f\fP\ [other_flags\ \&...]
.SH DESCRIPTION .SH DESCRIPTION
\& \&
.br .br
@@ -514,8 +514,8 @@ searches in succession:
./myfile.cal ./myfile.cal
${LIBDIR}/myfile ${LIBDIR}/myfile
${LIBDIR}/myfile.cal ${LIBDIR}/myfile.cal
${CUSTOMLIBDIR}/myfile ${CUSTOMCALDIR}/myfile
${CUSTOMLIBDIR}/myfile.cal ${CUSTOMCALDIR}/myfile.cal
.fi .fi
.in -5n .in -5n
.sp 1 .sp 1
@@ -572,27 +572,25 @@ If first line of an executable file begins
followed by the absolute pathname of the followed by the absolute pathname of the
.B calc .B calc
program and the flag program and the flag
.B \-S .B \-f
as in: as in:
.sp 1 .sp 1
.in +5n .in +5n
.nf .nf
\fI#!${BINDIR}/calc\fP\ \fB\-S\fP\ [other_flags\ \&...] \fI#!${BINDIR}/calc\fP\ \fB\-f\fP\ [other_flags\ \&...]
.fi .fi
.in -5n .in -5n
.sp 1 .sp 1
the rest of the file will be processed in the rest of the file will be processed in
.BR "shell script mode" . .BR "shell script mode" .
Note that Note that
.B \-S .B \-f
(UPPER CASE
.BR \-S )
must be the first \-flag on the ``#!'' line. must be the first \-flag on the ``#!'' line.
Any other optional Any other optional
.B "other_flags" .B "other_flags"
must come after must come after
the the
.BR \-S . .BR \-f .
.sp 1 .sp 1
In In
.B "shell script mode" .B "shell script mode"
@@ -625,7 +623,7 @@ the file
.sp 1 .sp 1
.in +5n .in +5n
.nf .nf
\fI#!${BINDIR}/calc\fP\ \fB\-S\fP\ \&\fB\-q\fP \fI#!${BINDIR}/calc\fP\ \fB\-f\fP\ \&\fB\-q\fP
# #
# mersenne - an example of a calc \fBshell script file\fP # mersenne - an example of a calc \fBshell script file\fP
@@ -839,7 +837,7 @@ ${LIBDIR}/bindings
non-GNU-readline command line editor bindings non-GNU-readline command line editor bindings
.sp 1 .sp 1
.TP 5 .TP 5
${INCDIRCALC}/*.h ${CALC_INCDIR}/*.h
include files for C interface use include files for C interface use
.sp 1 .sp 1
.TP 5 .TP 5
@@ -851,7 +849,7 @@ ${LIBDIR}/libcustcalc.a
custom binary link library custom binary link library
.sp 1 .sp 1
.TP 5 .TP 5
${CUSTOMLIBDIR}/*.cal ${CUSTOMCALDIR}/*.cal
custom resource files custom resource files
.sp 1 .sp 1
.TP 5 .TP 5

11
cmath.h
View File

@@ -17,8 +17,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 29.4 $ * @(#) $Revision: 29.6 $
* @(#) $Id: cmath.h,v 29.4 2001/05/29 00:16:53 chongo Exp $ * @(#) $Id: cmath.h,v 29.6 2002/03/12 09:38:26 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/cmath.h,v $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/cmath.h,v $
* *
* Under source code control: 1993/07/30 19:42:45 * Under source code control: 1993/07/30 19:42:45
@@ -32,7 +32,7 @@
#define __CMATH_H__ #define __CMATH_H__
#if defined(SRC) /* if we are building from the calc source tree */ #if defined(CALC_SRC) /* if we are building from the calc source tree */
# include "qmath.h" # include "qmath.h"
#else #else
# include <calc/qmath.h> # include <calc/qmath.h>
@@ -62,6 +62,7 @@ extern void cprintfr(COMPLEX *c);
/* /*
* Basic numeric routines. * Basic numeric routines.
*/ */
extern COMPLEX *cadd(COMPLEX *c1, COMPLEX *c2); extern COMPLEX *cadd(COMPLEX *c1, COMPLEX *c2);
extern COMPLEX *csub(COMPLEX *c1, COMPLEX *c2); extern COMPLEX *csub(COMPLEX *c1, COMPLEX *c2);
extern COMPLEX *cmul(COMPLEX *c1, COMPLEX *c2); extern COMPLEX *cmul(COMPLEX *c1, COMPLEX *c2);
@@ -74,8 +75,8 @@ extern COMPLEX *cscale(COMPLEX *c, long i);
extern COMPLEX *cshift(COMPLEX *c, long i); extern COMPLEX *cshift(COMPLEX *c, long i);
extern COMPLEX *csquare(COMPLEX *c); extern COMPLEX *csquare(COMPLEX *c);
extern COMPLEX *cconj(COMPLEX *c); extern COMPLEX *cconj(COMPLEX *c);
extern COMPLEX *creal(COMPLEX *c); extern COMPLEX *c_real(COMPLEX *c);
extern COMPLEX *cimag(COMPLEX *c); extern COMPLEX *c_imag(COMPLEX *c);
extern COMPLEX *cneg(COMPLEX *c); extern COMPLEX *cneg(COMPLEX *c);
extern COMPLEX *cinv(COMPLEX *c); extern COMPLEX *cinv(COMPLEX *c);
extern COMPLEX *cint(COMPLEX *c); extern COMPLEX *cint(COMPLEX *c);

View File

@@ -17,8 +17,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 29.2 $ * @(#) $Revision: 29.3 $
* @(#) $Id: commath.c,v 29.2 2000/06/07 14:02:13 chongo Exp $ * @(#) $Id: commath.c,v 29.3 2002/03/12 09:38:26 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/commath.c,v $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/commath.c,v $
* *
* Under source code control: 1990/02/15 01:48:10 * Under source code control: 1990/02/15 01:48:10
@@ -381,7 +381,7 @@ cconj(COMPLEX *c)
* Return the real part of a complex number. * Return the real part of a complex number.
*/ */
COMPLEX * COMPLEX *
creal(COMPLEX *c) c_real(COMPLEX *c)
{ {
COMPLEX *r; COMPLEX *r;
@@ -400,7 +400,7 @@ creal(COMPLEX *c)
* Return the imaginary part of a complex number as a real. * Return the imaginary part of a complex number as a real.
*/ */
COMPLEX * COMPLEX *
cimag(COMPLEX *c) c_imag(COMPLEX *c)
{ {
COMPLEX *r; COMPLEX *r;

View File

@@ -19,8 +19,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 29.10 $ * @(#) $Revision: 29.11 $
* @(#) $Id: config.h,v 29.10 2001/05/29 00:16:53 chongo Exp $ * @(#) $Id: config.h,v 29.11 2001/06/08 21:00:58 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/config.h,v $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/config.h,v $
* *
* Under source code control: 1995/11/01 22:20:17 * Under source code control: 1995/11/01 22:20:17
@@ -35,7 +35,7 @@
#define __CONFIG_H__ #define __CONFIG_H__
#if defined(SRC) /* if we are building from the calc source tree */ #if defined(CALC_SRC) /* if we are building from the calc source tree */
# include "win32dll.h" # include "win32dll.h"
# include "nametype.h" # include "nametype.h"
# include "qmath.h" # include "qmath.h"

View File

@@ -1,4 +1,4 @@
#!/usr/local/bin/calc -q -s -f #!/usr/local/src/cmd/calc/calc -q -s -f
/* /*
* 4dsphere - determine if 6 points lie on the surface of a sphere in R^4 * 4dsphere - determine if 6 points lie on the surface of a sphere in R^4
* *
@@ -26,8 +26,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 1.2 $ * @(#) $Revision: 1.3 $
* @(#) $Id: 4dsphere.calc,v 1.2 2001/05/29 00:48:46 chongo Exp $ * @(#) $Id: 4dsphere.calc,v 1.3 2001/06/06 09:06:29 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/cscript/RCS/4dsphere.calc,v $ * @(#) $Source: /usr/local/src/cmd/calc/cscript/RCS/4dsphere.calc,v $
* *
* Under source code control: 2001/05/03 19:02:03 * Under source code control: 2001/05/03 19:02:03

View File

@@ -17,8 +17,8 @@
# received a copy with calc; if not, write to Free Software Foundation, Inc. # received a copy with calc; if not, write to Free Software Foundation, Inc.
# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. # 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
# #
# @(#) $Revision: 29.14 $ # @(#) $Revision: 29.22 $
# @(#) $Id: Makefile,v 29.14 2001/05/28 23:08:22 chongo Exp $ # @(#) $Id: Makefile,v 29.22 2002/03/14 00:28:28 chongo Exp $
# @(#) $Source: /usr/local/src/cmd/calc/cscript/RCS/Makefile,v $ # @(#) $Source: /usr/local/src/cmd/calc/cscript/RCS/Makefile,v $
# #
# Under source code control: 1999/11/29 11:10:26 # Under source code control: 1999/11/29 11:10:26
@@ -36,15 +36,121 @@
SHELL= /bin/sh SHELL= /bin/sh
MAKE_FILE = Makefile MAKE_FILE = Makefile
####
# Normally, the upper level makefile will set these values. We provide # Normally, the upper level makefile will set these values. We provide
# a default here just in case you want to build from this directory. # a default here just in case you want to build from this directory.
####
# Where the system include (.h) files are kept
#
# For DJGPP, select:
#
# INCDIR= /dev/env/DJDIR/include
#
# If in doubt, set:
#
# INCDIR= /usr/include
#
#INCDIR= /usr/local/include
#INCDIR= /dev/env/DJDIR/include
INCDIR= /usr/include
# where to install calc realted things
#
# ${BINDIR} where to install calc binary files
# ${LIBDIR} where calc link library (*.a) files are installed
# ${CALC_SHAREDIR} where to install calc help, .cal, startup, config files
#
# NOTE: The install rule prepends installation paths with $T, which
# by default is empty. If $T is non-empty, then installation
# locations will be relative to the $T directory.
#
# For DJGPP, select:
#
# BINDIR= /dev/env/DJDIR/bin
# LIBDIR= /dev/env/DJDIR/lib
# CALC_SHAREDIR= /dev/env/DJDIR/share/calc
#
# If in doubt, set:
#
# BINDIR= /usr/bin
# LIBDIR= /usr/lib
# CALC_SHAREDIR= /usr/share/calc
# #
#BINDIR= /usr/local/bin #BINDIR= /usr/local/bin
#BINDIR= /dev/env/DJDIR/bin
BINDIR= /usr/bin BINDIR= /usr/bin
#BINDIR= /usr/contrib/bin
#LIBDIR= /usr/local/lib
#LIBDIR= /dev/env/DJDIR/lib
LIBDIR= /usr/lib
#CALC_SHAREDIR= /usr/local/lib/calc
#CALC_SHAREDIR= /dev/env/DJDIR/share/calc
CALC_SHAREDIR= /usr/share/calc
# By default, these values are based CALC_SHAREDIR, INCDIR, BINDIR
# ---------------------------------------------------------------
# ${HELPDIR} where the help directory is installed
# ${CALC_INCDIR} where the calc include files are installed
# ${CUSTOMCALDIR} where custom *.cal files are installed
# ${CUSTOMHELPDIR} where custom help files are installed
# ${CUSTOMINCPDIR} where custom .h files are installed
# ${SCRIPTDIR} where calc shell scripts are installed
# #
# NOTE: The install rule prepends installation paths with $T, which
# by default is empty. If $T is non-empty, then installation
# locations will be relative to the $T directory.
#
# If in doubt, set:
#
# HELPDIR= ${CALC_SHAREDIR}/help
# CALC_INCDIR= ${INCDIR}/calc
# CUSTOMCALDIR= ${CALC_SHAREDIR}/custom
# CUSTOMHELPDIR= ${CALC_SHAREDIR}/custhelp
# CUSTOMINCDIR= ${CALC_INCDIR}/custom
# SCRIPTDIR= ${BINDIR}/cscript
#
HELPDIR= ${CALC_SHAREDIR}/help
CALC_INCDIR= ${INCDIR}/calc
CUSTOMCALDIR= ${CALC_SHAREDIR}/custom
CUSTOMHELPDIR= ${CALC_SHAREDIR}/custhelp
CUSTOMINCDIR= ${CALC_INCDIR}/custom
SCRIPTDIR= ${BINDIR}/cscript SCRIPTDIR= ${BINDIR}/cscript
# T - top level directory under which calc will be installed
#
# The calc install is performed under $T, the calc build is
# performed under /. The purpose for $T is to allow someone
# to install calc somewhere other than into the system area.
#
# For example, if:
#
# BINDIR= /usr/bin
# LIBDIR= /usr/lib
# CALC_SHAREDIR= /usr/share/calc
#
# and if:
#
# T= /var/tmp/testing
#
# Then the installation locations will be:
#
# calc binary files: /var/tmp/testing/usr/bin
# calc link library: /var/tmp/testing/usr/lib
# calc help, .cal ...: /var/tmp/testing/usr/share/calc
# ... etc ... /var/tmp/testing/...
#
# If $T is empty, calc is installed under /, which is the same
# top of tree for which it was built. If $T is non-empty, then
# calc is installed under $T, as if one had to chroot under
# $T for calc to operate.
#
# If in doubt, use T=
#
T=
# Makefile debug # Makefile debug
# #
# Q=@ do not echo internal makefile actions (quiet mode) # Q=@ do not echo internal makefile actions (quiet mode)
@@ -77,11 +183,11 @@ CMP= cmp
# #
# make detaillist # make detaillist
# #
SCRIPT= 4dsphere fproduct mersenne piforever plus powerterm simple \ SCRIPT= 4dsphere fproduct mersenne piforever plus powerterm \
square simple square
SCRIPT_SRC= 4dsphere.calc fproduct.calc mersenne.calc piforever.calc \ SCRIPT_SRC= 4dsphere.calc fproduct.calc mersenne.calc \
plus.calc powerterm.calc simple.calc square.calc piforever.calc plus.calc powerterm.calc simple.calc square.calc
# These files are found (but not built) in the distribution # These files are found (but not built) in the distribution
# #
@@ -123,8 +229,10 @@ all: ${TARGETS} .all
## ##
distlist: ${DISTLIST} distlist: ${DISTLIST}
${Q}for i in ${DISTLIST}; do \ ${Q}for i in ${DISTLIST} /dev/null; do \
if [ X"$$i" != X"/dev/null" ]; then \
echo cscript/$$i; \ echo cscript/$$i; \
fi; \
done | LANG=C ${SORT} done | LANG=C ${SORT}
distdir: distdir:
@@ -136,23 +244,27 @@ calcliblist:
# #
detaillist: detaillist:
${Q}-(echo "xxxxxxx"; \ ${Q}-(echo "xxxxxxx"; \
for i in ${SCRIPT}; do \ for i in ${SCRIPT} /dev/null; do \
if [ X"$$i" != X"/dev/null" ]; then \
if [ ! -f RCS/$$i.calc,v ]; then \ if [ ! -f RCS/$$i.calc,v ]; then \
echo "WARNING: $$i.calc not under RCS control" 1>&2; \ echo "WARNING: $$i.calc not under RCS control" 1>&2; \
else \ else \
echo $$i; \ echo $$i; \
fi; \ fi; \
fi; \
done | LANG=C ${SORT}) | ${FMT} -70 | \ done | LANG=C ${SORT}) | ${FMT} -70 | \
${SED} -e '1s/xxxxxxx/SCRIPT=/' -e '2,$$s/^/ /' \ ${SED} -e '1s/xxxxxxx/SCRIPT=/' -e '2,$$s/^/ /' \
-e 's/$$/ \\/' -e '$$s/ \\$$//' -e 's/$$/ \\/' -e '$$s/ \\$$//'
${Q}echo ${Q}echo
${Q}-(echo "xxxxxxxxxxx"; \ ${Q}-(echo "xxxxxxxxxxx"; \
for i in ${SCRIPT}; do \ for i in ${SCRIPT} /dev/null; do \
if [ X"$$i" != X"/dev/null" ]; then \
if [ ! -f RCS/$$i.calc,v ]; then \ if [ ! -f RCS/$$i.calc,v ]; then \
echo "WARNING: $$i.calc not under RCS control" 1>&2; \ echo "WARNING: $$i.calc not under RCS control" 1>&2; \
else \ else \
echo $$i.calc; \ echo $$i.calc; \
fi; \ fi; \
fi; \
done | LANG=C ${SORT}) | ${FMT} -70 | \ done | LANG=C ${SORT}) | ${FMT} -70 | \
${SED} -e '1s/xxxxxxxxxxx/SCRIPT_SRC=/' -e '2,$$s/^/ /' \ ${SED} -e '1s/xxxxxxxxxxx/SCRIPT_SRC=/' -e '2,$$s/^/ /' \
-e 's/$$/ \\/' -e '$$s/ \\$$//' -e 's/$$/ \\/' -e '$$s/ \\$$//'
@@ -181,11 +293,13 @@ depend:
${Q}echo "# DO NOT DELETE THIS LINE -- make depend depends on it." > \ ${Q}echo "# DO NOT DELETE THIS LINE -- make depend depends on it." > \
makedep.out makedep.out
${Q}echo "" >> makedep.out ${Q}echo "" >> makedep.out
${Q}for i in ${SCRIPT}; do \ ${Q}for i in ${SCRIPT} /dev/null; do \
if [ X"$$i" != X"/dev/null" ]; then \
echo "$$i: $$i.calc"; \ echo "$$i: $$i.calc"; \
echo ' rm -f $$@'; \ echo ' rm -f $$@'; \
echo ' $${SED} -e "1s:^#!/usr/local/src/cmd/calc/calc:#!$${BINDIR}/calc:" $$?>$$@'; \ echo ' $${SED} -e "1s:^#!/usr/local/src/cmd/calc/calc:#!$${BINDIR}/calc:" $$?>$$@'; \
echo ' $${CHMOD} +x $$@'; \ echo ' $${CHMOD} +x $$@'; \
fi; \
done >> makedep.out done >> makedep.out
${Q}echo sample dependency list formed ${Q}echo sample dependency list formed
${Q}echo forming new cscript/Makefile ${Q}echo forming new cscript/Makefile
@@ -216,14 +330,13 @@ depend:
# #
## ##
echo_SCRIPT: ${MAKE_FILE} echo_inst_files:
@echo ${SCRIPT} ${Q}for i in ${SCRIPT} /dev/null; do \
if [ X"$$i" != X"/dev/null" ]; then \
echo __file__ ${SCRIPTDIR}/$$i; \
echo_install.list: ${MAKE_FILE} fi; \
@for i in ${SCRIPT}; do \
echo ${SCRIPTDIR}/$$i; \
done done
## ##
# #
# Utility rules # Utility rules
@@ -237,31 +350,42 @@ clobber:
-rm -f ${TARGETS} -rm -f ${TARGETS}
install: all install: all
-${Q}if [ ! -d ${BINDIR} ]; then \ -${Q}if [ ! -d $T${BINDIR} ]; then \
echo mkdir ${BINDIR}; \ echo mkdir $T${BINDIR}; \
mkdir ${BINDIR}; \ mkdir $T${BINDIR}; \
echo ${CHMOD} 0755 ${BINDIR}; \ if [ ! -d "$T${BINDIR}" ]; then \
${CHMOD} 0755 ${BINDIR}; \ echo mkdir -p "$T${BINDIR}"; \
mkdir -p "$T${BINDIR}"; \
fi; \
echo ${CHMOD} 0755 $T${BINDIR}; \
${CHMOD} 0755 $T${BINDIR}; \
else \ else \
true; \ true; \
fi fi
-${Q}if [ ! -d ${SCRIPTDIR} ]; then \ -${Q}if [ ! -d $T${SCRIPTDIR} ]; then \
echo mkdir ${SCRIPTDIR}; \ echo mkdir $T${SCRIPTDIR}; \
mkdir ${SCRIPTDIR}; \ mkdir $T${SCRIPTDIR}; \
echo ${CHMOD} 0755 ${SCRIPTDIR}; \ if [ ! -d "$T${SCRIPTDIR}" ]; then \
${CHMOD} 0755 ${SCRIPTDIR}; \ echo mkdir -p "$T${SCRIPTDIR}"; \
mkdir -p "$T${SCRIPTDIR}"; \
fi; \
echo ${CHMOD} 0755 $T${SCRIPTDIR}; \
${CHMOD} 0755 $T${SCRIPTDIR}; \
else \ else \
true; \ true; \
fi fi
${Q}for i in ${SCRIPT}; do \ ${Q}for i in ${SCRIPT} /dev/null; do \
if ${CMP} -s $$i ${SCRIPTDIR}/$$i; then \ if [ "$$i" = "/dev/null" ]; then \
continue; \
fi; \
if ${CMP} -s $$i $T${SCRIPTDIR}/$$i; then \
true; \ true; \
else \ else \
rm -f ${SCRIPTDIR}/$$i.new; \ rm -f $T${SCRIPTDIR}/$$i.new; \
cp -f $$i ${SCRIPTDIR}/$$i.new; \ cp -f $$i $T${SCRIPTDIR}/$$i.new; \
${CHMOD} 0555 ${SCRIPTDIR}/$$i; \ ${CHMOD} 0555 $T${SCRIPTDIR}/$$i.new; \
mv -f ${SCRIPTDIR}/$$i.new ${SCRIPTDIR}/$$i; \ mv -f $T${SCRIPTDIR}/$$i.new $T${SCRIPTDIR}/$$i; \
echo "installed ${SCRIPTDIR}/$$i"; \ echo "installed $T${SCRIPTDIR}/$$i"; \
fi; \ fi; \
done done

View File

@@ -21,14 +21,14 @@ For more info, see:
4dsphere 4dsphere
determine if 6 points lie on the surface of a sphere in R^4 Determine if 6 points lie on the surface of a 4-dimensional sphere in R^4.
usage: 4dsphere x0 y0 z0 w0 x1 y1 z1 w1 ... x5 y5 z5 w5 4dsphere x0 y0 z0 w0 x1 y1 z1 w1 ... x5 y5 z5 w5
x0 y0 z0 w0 point 0 in R^4 x0 y0 z0 w0 point 0 in R^4
x1 y1 z1 w1 point 1 in R^4 x1 y1 z1 w1 point 1 in R^4
... ... ... ...
x5 y5 z5 w5 point 5 in R^4 x5 y5 z5 w5 point 5 in R^4
fproduct filename term ... fproduct filename term ...
@@ -77,8 +77,8 @@ simple
## received a copy with calc; if not, write to Free Software Foundation, Inc. ## received a copy with calc; if not, write to Free Software Foundation, Inc.
## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
## ##
## @(#) $Revision: 29.7 $ ## @(#) $Revision: 29.10 $
## @(#) $Id: README,v 29.7 2001/05/28 23:08:22 chongo Exp $ ## @(#) $Id: README,v 29.10 2001/06/10 19:34:40 chongo Exp $
## @(#) $Source: /usr/local/src/cmd/calc/cscript/RCS/README,v $ ## @(#) $Source: /usr/local/src/cmd/calc/cscript/RCS/README,v $
## ##
## Under source code control: 1999/12/17 10:23:40 ## Under source code control: 1999/12/17 10:23:40

View File

@@ -1,4 +1,4 @@
#!/usr/local/bin/calc -q -s -f #!/usr/local/src/cmd/calc/calc -q -s -f
/* /*
* fproduct - write the big Endian product of terms to a file * fproduct - write the big Endian product of terms to a file
* *
@@ -24,8 +24,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 29.1 $ * @(#) $Revision: 29.2 $
* @(#) $Id: fproduct.calc,v 29.1 2001/04/08 08:25:15 chongo Exp $ * @(#) $Id: fproduct.calc,v 29.2 2001/06/06 09:06:29 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/cscript/RCS/fproduct.calc,v $ * @(#) $Source: /usr/local/src/cmd/calc/cscript/RCS/fproduct.calc,v $
* *
* Under source code control: 2001/04/07 20:13:11 * Under source code control: 2001/04/07 20:13:11

View File

@@ -1,4 +1,4 @@
#!/usr/local/bin/calc -q -s -f #!/usr/local/src/cmd/calc/calc -q -s -f
/* /*
* powerterm - print the argument as a sum of powers of integers * powerterm - print the argument as a sum of powers of integers
* *
@@ -24,8 +24,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 29.5 $ * @(#) $Revision: 29.6 $
* @(#) $Id: powerterm.calc,v 29.5 2001/04/25 08:41:36 chongo Exp $ * @(#) $Id: powerterm.calc,v 29.6 2001/06/06 09:06:29 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/cscript/RCS/powerterm.calc,v $ * @(#) $Source: /usr/local/src/cmd/calc/cscript/RCS/powerterm.calc,v $
* *
* Under source code control: 2001/04/24 23:49:11 * Under source code control: 2001/04/24 23:49:11

View File

@@ -18,8 +18,8 @@
# received a copy with calc; if not, write to Free Software Foundation, Inc. # received a copy with calc; if not, write to Free Software Foundation, Inc.
# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. # 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
# #
# @(#) $Revision: 29.13 $ # @(#) $Revision: 29.19 $
# @(#) $Id: Makefile,v 29.13 2001/05/28 23:54:53 chongo Exp $ # @(#) $Id: Makefile,v 29.19 2002/03/14 00:28:28 chongo Exp $
# @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/Makefile,v $ # @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/Makefile,v $
# #
# Under source code control: 1997/03/09 02:28:54 # Under source code control: 1997/03/09 02:28:54
@@ -88,33 +88,120 @@ CUSTOM_OBJ= c_argv.o c_devnull.o c_help.o c_sysinfo.o c_pzasusb8.o
#Q= #Q=
Q=@ Q=@
####
# Normally, the upper level makefile will set these values. We provide # Normally, the upper level makefile will set these values. We provide
# a default here just in case you want to build from this directory. # a default here just in case you want to build from this directory.
####
# Where the system include (.h) files are kept
# #
# where to install things # For DJGPP, select:
# #
# ${SHAREDIR} where most common shared files are kept # INCDIR= /dev/env/DJDIR/include
# ${INCDIR} where most .h files are kept
# #
# ${CSHAREDIR} where most common shared calc files are kept # If in doubt, set:
# ${HELPDIR} where the help directory is installed.
# ${INCDIRCALC} where the calc include files are installed
# ${CUSTOMLIBDIR} where custom *.cal files & libcustcalc.a are installed.
# ${CUSTOMHELPDIR} where custom help files are installed.
# ${CUSTOMINCPDIR} where custom .h files are installed.
# #
#SHAREDIR= /usr/local/lib # INCDIR= /usr/include
SHAREDIR= /usr/share
# #
#INCDIR= /usr/local/include #INCDIR= /usr/local/include
#INCDIR= /dev/env/DJDIR/include
INCDIR= /usr/include INCDIR= /usr/include
# where to install calc realted things
# #
CSHAREDIR= ${SHAREDIR}/calc # ${BINDIR} where to install calc binary files
HELPDIR= ${CSHAREDIR}/help # ${LIBDIR} where calc link library (*.a) files are installed
INCDIRCALC= ${INCDIR}/calc # ${CALC_SHAREDIR} where to install calc help, .cal, startup, config files
CUSTOMLIBDIR= ${CSHAREDIR}/custom #
CUSTOMHELPDIR= ${CSHAREDIR}/custhelp # NOTE: The install rule prepends installation paths with $T, which
CUSTOMINCDIR= ${INCDIRCALC}/custom # by default is empty. If $T is non-empty, then installation
# locations will be relative to the $T directory.
#
# For DJGPP, select:
#
# BINDIR= /dev/env/DJDIR/bin
# LIBDIR= /dev/env/DJDIR/lib
# CALC_SHAREDIR= /dev/env/DJDIR/share/calc
#
# If in doubt, set:
#
# BINDIR= /usr/bin
# LIBDIR= /usr/lib
# CALC_SHAREDIR= /usr/share/calc
#
#BINDIR= /usr/local/bin
#BINDIR= /dev/env/DJDIR/bin
BINDIR= /usr/bin
#LIBDIR= /usr/local/lib
#LIBDIR= /dev/env/DJDIR/lib
LIBDIR= /usr/lib
#CALC_SHAREDIR= /usr/local/lib/calc
#CALC_SHAREDIR= /dev/env/DJDIR/share/calc
CALC_SHAREDIR= /usr/share/calc
# By default, these values are based CALC_SHAREDIR, INCDIR, BINDIR
# ---------------------------------------------------------------
# ${HELPDIR} where the help directory is installed
# ${CALC_INCDIR} where the calc include files are installed
# ${CUSTOMCALDIR} where custom *.cal files are installed
# ${CUSTOMHELPDIR} where custom help files are installed
# ${CUSTOMINCPDIR} where custom .h files are installed
# ${SCRIPTDIR} where calc shell scripts are installed
#
# NOTE: The install rule prepends installation paths with $T, which
# by default is empty. If $T is non-empty, then installation
# locations will be relative to the $T directory.
#
# If in doubt, set:
#
# HELPDIR= ${CALC_SHAREDIR}/help
# CALC_INCDIR= ${INCDIR}/calc
# CUSTOMCALDIR= ${CALC_SHAREDIR}/custom
# CUSTOMHELPDIR= ${CALC_SHAREDIR}/custhelp
# CUSTOMINCDIR= ${CALC_INCDIR}/custom
# SCRIPTDIR= ${BINDIR}/cscript
#
HELPDIR= ${CALC_SHAREDIR}/help
CALC_INCDIR= ${INCDIR}/calc
CUSTOMCALDIR= ${CALC_SHAREDIR}/custom
CUSTOMHELPDIR= ${CALC_SHAREDIR}/custhelp
CUSTOMINCDIR= ${CALC_INCDIR}/custom
SCRIPTDIR= ${BINDIR}/cscript
# T - top level directory under which calc will be installed
#
# The calc install is performed under $T, the calc build is
# performed under /. The purpose for $T is to allow someone
# to install calc somewhere other than into the system area.
#
# For example, if:
#
# BINDIR= /usr/bin
# LIBDIR= /usr/lib
# CALC_SHAREDIR= /usr/share/calc
#
# and if:
#
# T= /var/tmp/testing
#
# Then the installation locations will be:
#
# calc binary files: /var/tmp/testing/usr/bin
# calc link library: /var/tmp/testing/usr/lib
# calc help, .cal ...: /var/tmp/testing/usr/share/calc
# ... etc ... /var/tmp/testing/...
#
# If $T is empty, calc is installed under /, which is the same
# top of tree for which it was built. If $T is non-empty, then
# calc is installed under $T, as if one had to chroot under
# $T for calc to operate.
#
# If in doubt, use T=
#
T=
# Normally, the upper level makefile will set these values. We provide # Normally, the upper level makefile will set these values. We provide
# a default here just in case you want to build from this directory. # a default here just in case you want to build from this directory.
@@ -263,7 +350,7 @@ REQUIRED_SRC= custtbl.c
# #
REQUIRED_OBJ= custtbl.o REQUIRED_OBJ= custtbl.o
# These .h files are installed under ${CUSTOMLIBDIR} by the install rule. # These .h files are installed under ${CUSTOMCALDIR} by the install rule.
# #
INSTALL_H_SRC= ${CUSTOM_H_SRC} INSTALL_H_SRC= ${CUSTOM_H_SRC}
@@ -365,8 +452,10 @@ c_sysinfo.o: c_sysinfo.c ${MAKE_FILE}
## ##
distlist: ${DISTLIST} distlist: ${DISTLIST}
${Q}for i in ${DISTLIST}; do \ ${Q}for i in ${DISTLIST} /dev/null; do \
if [ X"$$i" != X"/dev/null" ]; then \
echo custom/$$i; \ echo custom/$$i; \
fi; \
done done
distdir: distdir:
@@ -402,11 +491,13 @@ depend:
-${Q}rm -rf skel -${Q}rm -rf skel
${Q}mkdir skel ${Q}mkdir skel
${Q}mkdir skel/custom ${Q}mkdir skel/custom
-${Q}for i in ${C_SRC}; do \ -${Q}for i in ${C_SRC} /dev/null; do \
if [ X"$$i" != X"/dev/null" ]; then \
${SED} -n '/^#[ ]*include[ ]*"/p' \ ${SED} -n '/^#[ ]*include[ ]*"/p' \
"$$i" > "skel/custom/$$i"; \ "$$i" > "skel/custom/$$i"; \
fi; \
done done
-${Q}for i in /dev/null ${H_SRC}; do \ -${Q}for i in ${H_SRC} /dev/null; do \
if [ "$$i" = "/dev/null" ]; then \ if [ "$$i" = "/dev/null" ]; then \
continue; \ continue; \
fi; \ fi; \
@@ -421,7 +512,10 @@ depend:
${Q}for i in `cd ..; ${MAKE} h_list 2>&1 | \ ${Q}for i in `cd ..; ${MAKE} h_list 2>&1 | \
${SED} -e '/Entering directory/d' \ ${SED} -e '/Entering directory/d' \
-e '/Nothing to be done/d' \ -e '/Nothing to be done/d' \
-e '/Leaving directory/d'`; do \ -e '/Leaving directory/d'` /dev/null; do \
if [ "$$i" = "/dev/null" ]; then \
continue; \
fi; \
tag="`echo $$i | ${SED} 's/[\.+,:]/_/g'`"; \ tag="`echo $$i | ${SED} 's/[\.+,:]/_/g'`"; \
echo "#if !defined($$tag)" > "skel/$$i"; \ echo "#if !defined($$tag)" > "skel/$$i"; \
echo "#define $$tag" >> "skel/$$i"; \ echo "#define $$tag" >> "skel/$$i"; \
@@ -435,8 +529,10 @@ depend:
${Q}echo "# DO NOT DELETE THIS LINE -- make depend depends on it." > \ ${Q}echo "# DO NOT DELETE THIS LINE -- make depend depends on it." > \
skel/custom/makedep.out skel/custom/makedep.out
${Q}cd skel/custom; ${MAKEDEPEND} -w 1 -f makedep.out ${C_SRC} ${Q}cd skel/custom; ${MAKEDEPEND} -w 1 -f makedep.out ${C_SRC}
-${Q}for i in ${C_SRC}; do \ -${Q}for i in ${C_SRC} /dev/null; do \
if [ X"$$i" != X"/dev/null" ]; then \
echo "$$i" | ${SED} 's/^\(.*\)\.c/\1.o: \1.c/'; \ echo "$$i" | ${SED} 's/^\(.*\)\.c/\1.o: \1.c/'; \
fi; \
done >> skel/custom/makedep.out done >> skel/custom/makedep.out
${Q}echo custom dependency list formed ${Q}echo custom dependency list formed
${Q}echo forming new custom/Makefile ${Q}echo forming new custom/Makefile
@@ -468,27 +564,26 @@ depend:
# #
## ##
echo_INSTALL_H_SRC: ${MAKE_FILE} echo_inst_files:
@echo ${INSTALL_H_SRC} ${Q}for i in ${INSTALL_H_SRC} /dev/null; do \
if [ X"$$i" != X"/dev/null" ]; then \
echo_CUSTOM_CALC_FILES: ${MAKE_FILE} echo __file__ ${CUSTOMINCDIR}/$$i; \
@echo ${CUSTOM_CALC_FILES} fi; \
echo_CUSTOM_HELP: ${MAKE_FILE}
@echo ${CUSTOM_HELP}
echo_install.list: ${MAKE_FILE}
@for i in ${INSTALL_H_SRC}; do \
echo ${CUSTOMINCDIR}/$$i; \
done done
@for i in ${CUSTOM_HELP}; do \ ${Q}for i in ${CUSTOM_HELP} /dev/null; do \
echo ${CUSTOMHELPDIR}/$$i; \ if [ X"$$i" != X"/dev/null" ]; then \
echo __file__ ${CUSTOMHELPDIR}/$$i; \
fi; \
done done
@for i in ${CUSTOM_CALC_FILES}; do \ ${Q}for i in ${CUSTOM_CALC_FILES} /dev/null; do \
echo ${CUSTOMLIBDIR}/$$i; \ if [ X"$$i" != X"/dev/null" ]; then \
echo __file__ ${CUSTOMCALDIR}/$$i; \
fi; \
done done
@for i in ${CALC_LIBCUSTOM}; do \ ${Q}for i in ${CALC_LIBCUSTOM} /dev/null; do \
echo ${CUSTOMLIBDIR}/$$i; \ if [ X"$$i" != X"/dev/null" ]; then \
echo __file__ ${CUSTOMCALDIR}/$$i; \
fi; \
done done
## ##
@@ -505,118 +600,144 @@ clobber:
rm -f .all Makefile.tmp Makefile.bak rm -f .all Makefile.tmp Makefile.bak
install: all install: all
-${Q}if [ ! -d ${SHAREDIR} ]; then \ -${Q}if [ ! -d $T${INCDIR} ]; then \
echo mkdir ${SHAREDIR}; \ echo mkdir $T${INCDIR}; \
mkdir ${SHAREDIR}; \ mkdir $T${INCDIR}; \
echo ${CHMOD} 0755 ${SHAREDIR}; \ if [ ! -d "$T${INCDIR}" ]; then \
${CHMOD} 0755 ${SHAREDIR}; \ echo mkdir -p "$T${INCDIR}"; \
mkdir -p "$T${INCDIR}"; \
fi; \
echo ${CHMOD} 0755 $T${INCDIR}; \
${CHMOD} 0755 $T${INCDIR}; \
else \ else \
true; \ true; \
fi fi
-${Q}if [ ! -d ${INCDIR} ]; then \ -${Q}if [ ! -d $T${CALC_SHAREDIR} ]; then \
echo mkdir ${INCDIR}; \ echo mkdir $T${CALC_SHAREDIR}; \
mkdir ${INCDIR}; \ mkdir $T${CALC_SHAREDIR}; \
echo ${CHMOD} 0755 ${INCDIR}; \ if [ ! -d "$T${CALC_SHAREDIR}" ]; then \
${CHMOD} 0755 ${INCDIR}; \ echo mkdir -p "$T${CALC_SHAREDIR}"; \
mkdir -p "$T${CALC_SHAREDIR}"; \
fi; \
echo ${CHMOD} 0755 $T${CALC_SHAREDIR}; \
${CHMOD} 0755 $T${CALC_SHAREDIR}; \
else \ else \
true; \ true; \
fi fi
-${Q}if [ ! -d ${CSHAREDIR} ]; then \ -${Q}if [ ! -d $T${CALC_INCDIR} ]; then \
echo mkdir ${CSHAREDIR}; \ echo mkdir $T${CALC_INCDIR}; \
mkdir ${CSHAREDIR}; \ mkdir $T${CALC_INCDIR}; \
echo ${CHMOD} 0755 ${CSHAREDIR}; \ if [ ! -d "$T${CALC_INCDIR}" ]; then \
${CHMOD} 0755 ${CSHAREDIR}; \ echo mkdir -p "$T${CALC_INCDIR}"; \
mkdir -p "$T${CALC_INCDIR}"; \
fi; \
echo ${CHMOD} 0755 $T${CALC_INCDIR}; \
${CHMOD} 0755 $T${CALC_INCDIR}; \
else \ else \
true; \ true; \
fi fi
-${Q}if [ ! -d ${INCDIRCALC} ]; then \ -${Q}if [ ! -d $T${HELPDIR} ]; then \
echo mkdir ${INCDIRCALC}; \ echo mkdir $T${HELPDIR}; \
mkdir ${INCDIRCALC}; \ mkdir $T${HELPDIR}; \
echo ${CHMOD} 0755 ${INCDIRCALC}; \ if [ ! -d "$T${HELPDIR}" ]; then \
${CHMOD} 0755 ${INCDIRCALC}; \ echo mkdir -p "$T${HELPDIR}"; \
mkdir -p "$T${HELPDIR}"; \
fi; \
echo ${CHMOD} 0755 $T${HELPDIR}; \
${CHMOD} 0755 $T${HELPDIR}; \
else \ else \
true; \ true; \
fi fi
-${Q}if [ ! -d ${HELPDIR} ]; then \ -${Q}if [ ! -d $T${CUSTOMCALDIR} ]; then \
echo mkdir ${HELPDIR}; \ echo mkdir $T${CUSTOMCALDIR}; \
mkdir ${HELPDIR}; \ mkdir $T${CUSTOMCALDIR}; \
echo ${CHMOD} 0755 ${HELPDIR}; \ if [ ! -d "$T${CUSTOMCALDIR}" ]; then \
${CHMOD} 0755 ${HELPDIR}; \ echo mkdir -p "$T${CUSTOMCALDIR}"; \
mkdir -p "$T${CUSTOMCALDIR}"; \
fi; \
echo ${CHMOD} 0755 $T${CUSTOMCALDIR}; \
${CHMOD} 0755 $T${CUSTOMCALDIR}; \
else \ else \
true; \ true; \
fi fi
-${Q}if [ ! -d ${CUSTOMLIBDIR} ]; then \ -${Q}if [ ! -d $T${CUSTOMHELPDIR} ]; then \
echo mkdir ${CUSTOMLIBDIR}; \ echo mkdir $T${CUSTOMHELPDIR}; \
mkdir ${CUSTOMLIBDIR}; \ mkdir $T${CUSTOMHELPDIR}; \
echo ${CHMOD} 0755 ${CUSTOMLIBDIR}; \ if [ ! -d "$T${CUSTOMHELPDIR}" ]; then \
${CHMOD} 0755 ${CUSTOMLIBDIR}; \ echo mkdir -p "$T${CUSTOMHELPDIR}"; \
mkdir -p "$T${CUSTOMHELPDIR}"; \
fi; \
echo ${CHMOD} 0755 $T${CUSTOMHELPDIR}; \
${CHMOD} 0755 $T${CUSTOMHELPDIR}; \
else \ else \
true; \ true; \
fi fi
-${Q}if [ ! -d ${CUSTOMHELPDIR} ]; then \ -${Q}if [ ! -d $T${CUSTOMINCDIR} ]; then \
echo mkdir ${CUSTOMHELPDIR}; \ echo mkdir $T${CUSTOMINCDIR}; \
mkdir ${CUSTOMHELPDIR}; \ mkdir $T${CUSTOMINCDIR}; \
echo ${CHMOD} 0755 ${CUSTOMHELPDIR}; \ if [ ! -d "$T${CUSTOMINCDIR}" ]; then \
${CHMOD} 0755 ${CUSTOMHELPDIR}; \ echo mkdir -p "$T${CUSTOMINCDIR}"; \
mkdir -p "$T${CUSTOMINCDIR}"; \
fi; \
echo ${CHMOD} 0755 $T${CUSTOMINCDIR}; \
${CHMOD} 0755 $T${CUSTOMINCDIR}; \
else \ else \
true; \ true; \
fi fi
-${Q}if [ ! -d ${CUSTOMINCDIR} ]; then \ -${Q}for i in ${INSTALL_H_SRC} /dev/null; do \
echo mkdir ${CUSTOMINCDIR}; \ if [ "$$i" = "/dev/null" ]; then \
mkdir ${CUSTOMINCDIR}; \ continue; \
echo ${CHMOD} 0755 ${CUSTOMINCDIR}; \ fi; \
${CHMOD} 0755 ${CUSTOMINCDIR}; \ if ${CMP} -s tmp $T${CUSTOMINCDIR}/$$i; then \
else \
true; \
fi
-${Q}for i in ${INSTALL_H_SRC}; do \
rm -f tmp; \
${SED} -e 's/^\(#[ ]*include[ ][ ]*\)"/\1"calc\//' $$i > tmp; \
if ${CMP} -s tmp ${CUSTOMINCDIR}/$$i; then \
true; \ true; \
else \ else \
rm -f ${CUSTOMINCDIR}/$$i; \ rm -f $T${CUSTOMINCDIR}/$$i.new; \
cp -f tmp ${INCDIRCALC}/$$i.new; \ cp -f $$i $T${CUSTOMINCDIR}/$$i.new; \
cp -f $$i ${CUSTOMINCDIR}/$$i.new; \ ${CHMOD} 0444 $T${CUSTOMINCDIR}/$$i.new; \
${CHMOD} 0444 ${CUSTOMINCDIR}/$$i.new; \ mv -f $T${CUSTOMINCDIR}/$$i.new $T${CUSTOMINCDIR}/$$i; \
mv -f ${CUSTOMINCDIR}/$$i.new ${CUSTOMINCDIR}/$$i; \ echo "installed $T${CUSTOMINCDIR}/$$i"; \
echo "installed ${CUSTOMINCDIR}/$$i"; \
fi; \ fi; \
done done
-${Q}rm -f tmp -${Q}rm -f tmp
-${Q}for i in ${CUSTOM_CALC_FILES}; do \ -${Q}for i in ${CUSTOM_CALC_FILES} /dev/null; do \
if ${CMP} -s $$i ${CUSTOMLIBDIR}/$$i; then \ if [ "$$i" = "/dev/null" ]; then \
continue; \
fi; \
if ${CMP} -s $$i $T${CUSTOMCALDIR}/$$i; then \
true; \ true; \
else \ else \
rm -f ${CUSTOMLIBDIR}/$$i; \ rm -f $T${CUSTOMCALDIR}/$$i.new; \
cp -f $$i ${CUSTOMLIBDIR}/$$i; \ cp -f $$i $T${CUSTOMCALDIR}/$$i.new; \
${CHMOD} 0444 ${CUSTOMLIBDIR}/$$i.new; \ ${CHMOD} 0444 $T${CUSTOMCALDIR}/$$i.new; \
mv -f ${CUSTOMLIBDIR}/$$i.new ${CUSTOMLIBDIR}/$$i; \ mv -f $T${CUSTOMCALDIR}/$$i.new $T${CUSTOMCALDIR}/$$i; \
echo "installed ${CUSTOMLIBDIR}/$$i"; \ echo "installed $T${CUSTOMCALDIR}/$$i"; \
fi; \ fi; \
done done
-${Q}for i in ${CUSTOM_HELP}; do \ -${Q}for i in ${CUSTOM_HELP} /dev/null; do \
if ${CMP} -s $$i ${CUSTOMHELPDIR}/$$i; then \ if [ "$$i" = "/dev/null" ]; then \
continue; \
fi; \
if ${CMP} -s $$i $T${CUSTOMHELPDIR}/$$i; then \
true; \ true; \
else \ else \
rm -f ${CUSTOMHELPDIR}/$$i; \ rm -f $T${CUSTOMHELPDIR}/$$i.new; \
cp -f $$i ${CUSTOMHELPDIR}/$$i.new; \ cp -f $$i $T${CUSTOMHELPDIR}/$$i.new; \
${CHMOD} 0444 ${CUSTOMHELPDIR}/$$i.new; \ ${CHMOD} 0444 $T${CUSTOMHELPDIR}/$$i.new; \
mv -f ${CUSTOMHELPDIR}/$$i.new ${CUSTOMHELPDIR}/$$i; \ mv -f $T${CUSTOMHELPDIR}/$$i.new $T${CUSTOMHELPDIR}/$$i; \
echo "installed ${CUSTOMHELPDIR}/$$i"; \ echo "installed $T${CUSTOMHELPDIR}/$$i"; \
fi; \ fi; \
done done
-${Q}if [ ! -z ${ALLOW_CUSTOM} ]; then \ -${Q}if [ ! -z ${ALLOW_CUSTOM} ]; then \
if ${CMP} -s libcustcalc.a ${CUSTOMLIBDIR}/libcustcalc.a; then \ if ${CMP} -s libcustcalc.a $T${CUSTOMCALDIR}/libcustcalc.a; then \
true; \ true; \
else \ else \
rm -f ${CUSTOMLIBDIR}/libcustcalc.a.new; \ rm -f $T${CUSTOMCALDIR}/libcustcalc.a.new; \
cp -f libcustcalc.a ${CUSTOMLIBDIR}/libcustcalc.a.new; \ cp -f libcustcalc.a $T${CUSTOMCALDIR}/libcustcalc.a.new; \
${CHMOD} 0644 ${CUSTOMLIBDIR}/libcustcalc.a; \ ${CHMOD} 0644 $T${CUSTOMCALDIR}/libcustcalc.a.new; \
mv -f ${CUSTOMLIBDIR}/libcustcalc.a.new \ mv -f $T${CUSTOMCALDIR}/libcustcalc.a.new \
${CUSTOMLIBDIR}/libcustcalc.a; \ $T${CUSTOMCALDIR}/libcustcalc.a; \
${RANLIB} ${CUSTOMLIBDIR}/libcustcalc.a; \ ${RANLIB} $T${CUSTOMCALDIR}/libcustcalc.a; \
echo "installed ${CUSTOMLIBDIR}/libcustcalc.a"; \ echo "installed $T${CUSTOMCALDIR}/libcustcalc.a"; \
fi; \ fi; \
fi fi

6
file.h
View File

@@ -19,8 +19,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 29.4 $ * @(#) $Revision: 29.5 $
* @(#) $Id: file.h,v 29.4 2001/05/29 00:16:53 chongo Exp $ * @(#) $Id: file.h,v 29.5 2001/06/08 21:00:58 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/file.h,v $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/file.h,v $
* *
* Under source code control: 1996/05/24 05:55:58 * Under source code control: 1996/05/24 05:55:58
@@ -35,7 +35,7 @@
#define __FILE_H__ #define __FILE_H__
#if defined(SRC) /* if we are building from the calc source tree */ #if defined(CALC_SRC) /* if we are building from the calc source tree */
# include "have_fpos.h" # include "have_fpos.h"
#else #else
# include <calc/have_fpos.h> # include <calc/have_fpos.h>

6
func.h
View File

@@ -17,8 +17,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 29.3 $ * @(#) $Revision: 29.4 $
* @(#) $Id: func.h,v 29.3 2001/05/29 00:16:53 chongo Exp $ * @(#) $Id: func.h,v 29.4 2001/06/08 21:00:58 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/func.h,v $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/func.h,v $
* *
* Under source code control: 1990/02/15 01:48:33 * Under source code control: 1990/02/15 01:48:33
@@ -32,7 +32,7 @@
#define __FUNC_H__ #define __FUNC_H__
#if defined(SRC) /* if we are building from the calc source tree */ #if defined(CALC_SRC) /* if we are building from the calc source tree */
# include "calc.h" # include "calc.h"
# include "label.h" # include "label.h"
#else #else

6
hash.h
View File

@@ -17,8 +17,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 29.3 $ * @(#) $Revision: 29.4 $
* @(#) $Id: hash.h,v 29.3 2001/05/29 00:16:53 chongo Exp $ * @(#) $Id: hash.h,v 29.4 2001/06/08 21:00:58 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/hash.h,v $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/hash.h,v $
* *
* Under source code control: 1995/11/14 23:57:45 * Under source code control: 1995/11/14 23:57:45
@@ -33,7 +33,7 @@
#define __HASH_H__ #define __HASH_H__
#if defined(SRC) /* if we are building from the calc source tree */ #if defined(CALC_SRC) /* if we are building from the calc source tree */
# include "shs.h" # include "shs.h"
# include "shs1.h" # include "shs1.h"
# include "md5.h" # include "md5.h"

View File

@@ -18,8 +18,8 @@
# received a copy with calc; if not, write to Free Software Foundation, Inc. # received a copy with calc; if not, write to Free Software Foundation, Inc.
# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. # 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
# #
# @(#) $Revision: 29.13 $ # @(#) $Revision: 29.20 $
# @(#) $Id: Makefile,v 29.13 2001/05/29 00:41:11 chongo Exp $ # @(#) $Id: Makefile,v 29.20 2002/03/14 00:28:28 chongo Exp $
# @(#) $Source: /usr/local/src/cmd/calc/help/RCS/Makefile,v $ # @(#) $Source: /usr/local/src/cmd/calc/help/RCS/Makefile,v $
# #
# Under source code control: 1991/07/23 06:47:57 # Under source code control: 1991/07/23 06:47:57
@@ -36,16 +36,120 @@
SHELL= /bin/sh SHELL= /bin/sh
MAKE_FILE = Makefile MAKE_FILE = Makefile
# ${SHAREDIR} where most common shared files are kept ####
# # Normally, the upper level makefile will set these values. We provide
# ${CSHAREDIR} where most common shared calc files are kept # a default here just in case you want to build from this directory.
# ${HELPDIR} where the help directory is installed. ####
#
#SHAREDIR= /usr/local/lib
SHAREDIR= /usr/share
CSHAREDIR= ${SHAREDIR}/calc # Where the system include (.h) files are kept
HELPDIR= ${CSHAREDIR}/help #
# For DJGPP, select:
#
# INCDIR= /dev/env/DJDIR/include
#
# If in doubt, set:
#
# INCDIR= /usr/include
#
#INCDIR= /usr/local/include
#INCDIR= /dev/env/DJDIR/include
INCDIR= /usr/include
# where to install calc realted things
#
# ${BINDIR} where to install calc binary files
# ${LIBDIR} where calc link library (*.a) files are installed
# ${CALC_SHAREDIR} where to install calc help, .cal, startup, config files
#
# NOTE: The install rule prepends installation paths with $T, which
# by default is empty. If $T is non-empty, then installation
# locations will be relative to the $T directory.
#
# For DJGPP, select:
#
# BINDIR= /dev/env/DJDIR/bin
# LIBDIR= /dev/env/DJDIR/lib
# CALC_SHAREDIR= /dev/env/DJDIR/share/calc
#
# If in doubt, set:
#
# BINDIR= /usr/bin
# LIBDIR= /usr/lib
# CALC_SHAREDIR= /usr/share/calc
#
#BINDIR= /usr/local/bin
#BINDIR= /dev/env/DJDIR/bin
BINDIR= /usr/bin
#LIBDIR= /usr/local/lib
#LIBDIR= /dev/env/DJDIR/lib
LIBDIR= /usr/lib
#CALC_SHAREDIR= /usr/local/lib/calc
#CALC_SHAREDIR= /dev/env/DJDIR/share/calc
CALC_SHAREDIR= /usr/share/calc
# By default, these values are based CALC_SHAREDIR, INCDIR, BINDIR
# ---------------------------------------------------------------
# ${HELPDIR} where the help directory is installed
# ${CALC_INCDIR} where the calc include files are installed
# ${CUSTOMCALDIR} where custom *.cal files are installed
# ${CUSTOMHELPDIR} where custom help files are installed
# ${CUSTOMINCPDIR} where custom .h files are installed
# ${SCRIPTDIR} where calc shell scripts are installed
#
# NOTE: The install rule prepends installation paths with $T, which
# by default is empty. If $T is non-empty, then installation
# locations will be relative to the $T directory.
#
# If in doubt, set:
#
# HELPDIR= ${CALC_SHAREDIR}/help
# CALC_INCDIR= ${INCDIR}/calc
# CUSTOMCALDIR= ${CALC_SHAREDIR}/custom
# CUSTOMHELPDIR= ${CALC_SHAREDIR}/custhelp
# CUSTOMINCDIR= ${CALC_INCDIR}/custom
# SCRIPTDIR= ${BINDIR}/cscript
#
HELPDIR= ${CALC_SHAREDIR}/help
CALC_INCDIR= ${INCDIR}/calc
CUSTOMCALDIR= ${CALC_SHAREDIR}/custom
CUSTOMHELPDIR= ${CALC_SHAREDIR}/custhelp
CUSTOMINCDIR= ${CALC_INCDIR}/custom
SCRIPTDIR= ${BINDIR}/cscript
# T - top level directory under which calc will be installed
#
# The calc install is performed under $T, the calc build is
# performed under /. The purpose for $T is to allow someone
# to install calc somewhere other than into the system area.
#
# For example, if:
#
# BINDIR= /usr/bin
# LIBDIR= /usr/lib
# CALC_SHAREDIR= /usr/share/calc
#
# and if:
#
# T= /var/tmp/testing
#
# Then the installation locations will be:
#
# calc binary files: /var/tmp/testing/usr/bin
# calc link library: /var/tmp/testing/usr/lib
# calc help, .cal ...: /var/tmp/testing/usr/share/calc
# ... etc ... /var/tmp/testing/...
#
# If $T is empty, calc is installed under /, which is the same
# top of tree for which it was built. If $T is non-empty, then
# calc is installed under $T, as if one had to chroot under
# $T for calc to operate.
#
# If in doubt, use T=
#
T=
# Makefile debug # Makefile debug
# #
@@ -240,7 +344,8 @@ changes: ../CHANGES
libcalc: ../LIBRARY libcalc: ../LIBRARY
rm -f $@ rm -f $@
${SED} -e 's:$${LIBDIR}:${LIBDIR}:g' < ../LIBRARY > $@ ${SED} -e 's:$${LIBDIR}:${LIBDIR}:g' \
-e 's:$${CALC_INCDIR}:${CALC_INCDIR}:g' < ../LIBRARY > $@
${CHMOD} 0444 $@ ${CHMOD} 0444 $@
-@if [ -z "${Q}" ]; then \ -@if [ -z "${Q}" ]; then \
echo ''; \ echo ''; \
@@ -391,11 +496,13 @@ full: ${FULL_HELP_FILES} ${MAKE_FILE}
# Singular files are the same files as their plural form. # Singular files are the same files as their plural form.
# #
${SINGULAR_FILES}: ${PLURAL_FILES} ${SINGULAR_FILES}: ${PLURAL_FILES}
${Q}for i in ${SINGULAR_FILES}; do \ ${Q}for i in ${SINGULAR_FILES} /dev/null; do \
echo "rm -f $${i}"; \ if [ X"$$i" != X"/dev/null" ]; then \
rm -f $${i}; \ echo "rm -f $${i}"; \
echo "cp $${i}s $${i}"; \ rm -f $${i}; \
cp $${i}s $${i}; \ echo "cp $${i}s $${i}"; \
cp $${i}s $${i}; \
fi; \
done done
-@if [ -z "${Q}" ]; then \ -@if [ -z "${Q}" ]; then \
echo ''; \ echo ''; \
@@ -455,8 +562,10 @@ builtin: builtin.top builtin.end ../func.c funclist.sed
## ##
distlist: ${DISTLIST} distlist: ${DISTLIST}
${Q}for i in ${DISTLIST}; do \ ${Q}for i in ${DISTLIST} /dev/null; do \
if [ X"$$i" != X"/dev/null" ]; then \
echo help/$$i; \ echo help/$$i; \
fi; \
done | LANG=C ${SORT} done | LANG=C ${SORT}
distdir: distdir:
@@ -481,12 +590,14 @@ bsdi: all
# #
detaillist: detaillist:
${Q}-(echo "xxxxx"; \ ${Q}-(echo "xxxxx"; \
for i in ${DETAIL_HELP}; do \ for i in ${DETAIL_HELP} /dev/null; do \
if [ X"$$i" != X"/dev/null" ]; then \
if [ ! -f RCS/$$i,v ]; then \ if [ ! -f RCS/$$i,v ]; then \
echo "WARNING: $$i not under RCS control" 1>&2; \ echo "WARNING: $$i not under RCS control" 1>&2; \
else \ else \
echo $$i; \ echo $$i; \
fi; \ fi; \
fi; \
done | LANG=C ${SORT}) | ${FMT} -70 | \ done | LANG=C ${SORT}) | ${FMT} -70 | \
${SED} -e '1s/xxxxx/DETAIL_HELP=/' -e '2,$$s/^/ /' \ ${SED} -e '1s/xxxxx/DETAIL_HELP=/' -e '2,$$s/^/ /' \
-e 's/$$/ \\/' -e '$$s/ \\$$//' -e 's/$$/ \\/' -e '$$s/ \\$$//'
@@ -497,24 +608,14 @@ detaillist:
# #
## ##
echo_STD_HELP_FILES: ${MAKE_FILE} echo_inst_files:
@echo ${STD_HELP_FILES} ${Q}for i in ${STD_HELP_FILES} full ${BLT_HELP_FILES} \
builtin ${DETAIL_HELP} ${SINGULAR_FILES} /dev/null; do \
echo_BLT_HELP_FILES: ${MAKE_FILE} if [ X"$$i" != X"/dev/null" ]; then \
@echo ${BLT_HELP_FILES} echo __file__ ${HELPDIR}/$$i; \
fi; \
echo_DETAIL_HELP: ${MAKE_FILE}
@echo ${DETAIL_HELP}
echo_SINGULAR_FILES: ${MAKE_FILE}
@echo ${SINGULAR_FILES}
echo_install.list: ${MAKE_FILE}
@for i in ${STD_HELP_FILES} full ${BLT_HELP_FILES} \
builtin ${DETAIL_HELP} ${SINGULAR_FILES}; do \
echo ${HELPDIR}/$$i; \
done done
@echo ${HELPDIR}/obj ${Q}echo __file__ ${HELPDIR}/obj
## ##
# #
@@ -533,48 +634,51 @@ clobber:
rm -f ${SINGULAR_FILES} ${DETAIL_CLONE} rm -f ${SINGULAR_FILES} ${DETAIL_CLONE}
install: all install: all
-${Q}if [ ! -d ${SHAREDIR} ]; then \ -${Q}if [ ! -d $T${CALC_SHAREDIR} ]; then \
echo mkdir ${SHAREDIR}; \ echo mkdir $T${CALC_SHAREDIR}; \
mkdir ${SHAREDIR}; \ mkdir $T${CALC_SHAREDIR}; \
echo ${CHMOD} 0755 ${SHAREDIR}; \ if [ ! -d "$T${CALC_SHAREDIR}" ]; then \
${CHMOD} 0755 ${SHAREDIR}; \ echo mkdir -p "$T${CALC_SHAREDIR}"; \
mkdir -p "$T${CALC_SHAREDIR}"; \
fi; \
echo ${CHMOD} 0755 $T${CALC_SHAREDIR}; \
${CHMOD} 0755 $T${CALC_SHAREDIR}; \
else \ else \
true; \ true; \
fi fi
-${Q}if [ ! -d ${CSHAREDIR} ]; then \ -${Q}if [ ! -d $T${HELPDIR} ]; then \
echo mkdir ${CSHAREDIR}; \ echo mkdir $T${HELPDIR}; \
mkdir ${CSHAREDIR}; \ mkdir $T${HELPDIR}; \
echo ${CHMOD} 0755 ${CSHAREDIR}; \ if [ ! -d "$T${HELPDIR}" ]; then \
${CHMOD} 0755 ${CSHAREDIR}; \ echo mkdir -p "$T${HELPDIR}"; \
else \ mkdir -p "$T${HELPDIR}"; \
true; \ fi; \
fi echo ${CHMOD} 0755 $T${HELPDIR}; \
-${Q}if [ ! -d ${HELPDIR} ]; then \ ${CHMOD} 0755 $T${HELPDIR}; \
echo mkdir ${HELPDIR}; \
mkdir ${HELPDIR}; \
echo ${CHMOD} 0755 ${HELPDIR}; \
${CHMOD} 0755 ${HELPDIR}; \
else \ else \
true; \ true; \
fi fi
-${Q}for i in ${STD_HELP_FILES} ${BLT_HELP_FILES} builtin \ -${Q}for i in ${STD_HELP_FILES} ${BLT_HELP_FILES} builtin \
full ${DETAIL_HELP} ${SINGULAR_FILES}; do \ full ${DETAIL_HELP} ${SINGULAR_FILES} /dev/null; do \
if ${CMP} -s $$i ${HELPDIR}/$$i; then \ if [ "$$i" = "/dev/null" ]; then \
continue; \
fi; \
if ${CMP} -s $$i $T${HELPDIR}/$$i; then \
true; \ true; \
else \ else \
rm -f ${HELPDIR}/$$i.new; \ rm -f $T${HELPDIR}/$$i.new; \
cp -f $$i ${HELPDIR}/$$i.new; \ cp -f $$i $T${HELPDIR}/$$i.new; \
${CHMOD} 0444 ${HELPDIR}/$$i.new; \ ${CHMOD} 0444 $T${HELPDIR}/$$i.new; \
mv -f ${HELPDIR}/$$i.new ${HELPDIR}/$$i; \ mv -f $T${HELPDIR}/$$i.new $T${HELPDIR}/$$i; \
echo "installed ${HELPDIR}/$$i"; \ echo "installed $T${HELPDIR}/$$i"; \
fi; \ fi; \
done done
-${Q}if ${CMP} -s obj.file ${HELPDIR}/obj; then \ -${Q}if ${CMP} -s obj.file $T${HELPDIR}/obj; then \
true; \ true; \
else \ else \
rm -f ${HELPDIR}/obj.new; \ rm -f $T${HELPDIR}/obj.new; \
cp -f obj.file ${HELPDIR}/obj.new; \ cp -f obj.file $T${HELPDIR}/obj.new; \
${CHMOD} 0444 ${HELPDIR}/obj.new; \ ${CHMOD} 0444 $T${HELPDIR}/obj.new; \
mv -f ${HELPDIR}/obj.new ${HELPDIR}/obj; \ mv -f $T${HELPDIR}/obj.new $T${HELPDIR}/obj; \
echo "installed ${HELPDIR}/obj"; \ echo "installed $T${HELPDIR}/obj"; \
fi fi

View File

@@ -20,7 +20,7 @@ LIMITS
none none
LINK LIBRARY LINK LIBRARY
COMPLEX *cimag(COMPLEX *x) COMPLEX *c_imag(COMPLEX *x)
SEE ALSO SEE ALSO
re re
@@ -41,8 +41,8 @@ SEE ALSO
## received a copy with calc; if not, write to Free Software Foundation, Inc. ## received a copy with calc; if not, write to Free Software Foundation, Inc.
## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
## ##
## @(#) $Revision: 29.2 $ ## @(#) $Revision: 29.3 $
## @(#) $Id: im,v 29.2 2000/06/07 14:02:33 chongo Exp $ ## @(#) $Id: im,v 29.3 2002/03/12 09:38:26 chongo Exp $
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/im,v $ ## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/im,v $
## ##
## Under source code control: 1995/10/05 04:52:26 ## Under source code control: 1995/10/05 04:52:26

View File

@@ -20,7 +20,7 @@ LIMITS
none none
LINK LIBRARY LINK LIBRARY
COMPLEX *cimag(COMPLEX *x) COMPLEX *c_imag(COMPLEX *x)
SEE ALSO SEE ALSO
im im
@@ -41,8 +41,8 @@ SEE ALSO
## received a copy with calc; if not, write to Free Software Foundation, Inc. ## received a copy with calc; if not, write to Free Software Foundation, Inc.
## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
## ##
## @(#) $Revision: 29.2 $ ## @(#) $Revision: 29.3 $
## @(#) $Id: re,v 29.2 2000/06/07 14:02:33 chongo Exp $ ## @(#) $Id: re,v 29.3 2002/03/12 09:38:26 chongo Exp $
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/re,v $ ## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/re,v $
## ##
## Under source code control: 1995/10/05 04:52:27 ## Under source code control: 1995/10/05 04:52:27

View File

@@ -249,8 +249,8 @@ Calc command line
./myfile.cal ./myfile.cal
${LIBDIR}/myfile ${LIBDIR}/myfile
${LIBDIR}/myfile.cal ${LIBDIR}/myfile.cal
${CUSTOMLIBDIR}/myfile ${CUSTOMCALDIR}/myfile
${CUSTOMLIBDIR}/myfile.cal ${CUSTOMCALDIR}/myfile.cal
If the file is found, the search stops and the commands in If the file is found, the search stops and the commands in
the file are executed. It is an error if no readable file the file are executed. It is an error if no readable file
@@ -354,7 +354,7 @@ For more information use the following calc commands:
## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
## ##
## @(#) $Revision: 29.3 $ ## @(#) $Revision: 29.3 $
## @(#) $Id: usage,v 29.3 2000/06/07 14:02:33 chongo Exp $ ## @(#) $Id: usage,v 29.3 2000/06/07 14:02:33 chongo Exp chongo $
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/usage,v $ ## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/usage,v $
## ##
## Under source code control: 1991/07/21 04:37:25 ## Under source code control: 1991/07/21 04:37:25

View File

@@ -12,8 +12,7 @@ DESCRIPTION
Calc version strings can be of the form: Calc version strings can be of the form:
x.y.ztw.v x.y.z.w
x.y.ztw
x.y.z x.y.z
x.y x.y
@@ -22,7 +21,7 @@ DESCRIPTION
EXAMPLE EXAMPLE
> version() > version()
"2.11.5t4.1" "2.11.5.4"
LIMITS LIMITS
none none
@@ -49,8 +48,8 @@ SEE ALSO
## received a copy with calc; if not, write to Free Software Foundation, Inc. ## received a copy with calc; if not, write to Free Software Foundation, Inc.
## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
## ##
## @(#) $Revision: 29.2 $ ## @(#) $Revision: 29.3 $
## @(#) $Id: version,v 29.2 2001/05/29 00:43:54 chongo Exp $ ## @(#) $Id: version,v 29.3 2001/06/09 23:32:45 chongo Exp $
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/version,v $ ## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/version,v $
## ##
## Under source code control: 2001/05/28 17:38:01 ## Under source code control: 2001/05/28 17:38:01

8
hist.h
View File

@@ -17,8 +17,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 29.3 $ * @(#) $Revision: 29.4 $
* @(#) $Id: hist.h,v 29.3 2001/03/17 21:31:47 chongo Exp $ * @(#) $Id: hist.h,v 29.4 2002/03/12 09:40:57 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/hist.h,v $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/hist.h,v $
* *
* Under source code control: 1993/05/02 20:09:20 * Under source code control: 1993/05/02 20:09:20
@@ -50,7 +50,11 @@
#define HOMECHAR '~' /* char which indicates home directory */ #define HOMECHAR '~' /* char which indicates home directory */
#define DOTCHAR '.' /* char which indicates current directory */ #define DOTCHAR '.' /* char which indicates current directory */
#define PATHCHAR '/' /* char which separates path components */ #define PATHCHAR '/' /* char which separates path components */
#if defined(__MSDOS__) || defined(__WIN32)
#define LISTCHAR ';' /* char which separates paths in a list */
#else
#define LISTCHAR ':' /* char which separates paths in a list */ #define LISTCHAR ':' /* char which separates paths in a list */
#endif
/* /*

29
input.c
View File

@@ -17,8 +17,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 29.5 $ * @(#) $Revision: 29.6 $
* @(#) $Id: input.c,v 29.5 2001/03/17 21:31:47 chongo Exp $ * @(#) $Id: input.c,v 29.6 2002/03/12 09:40:57 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/input.c,v $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/input.c,v $
* *
* Under source code control: 1990/02/15 01:48:16 * Under source code control: 1990/02/15 01:48:16
@@ -46,6 +46,12 @@
#include <unistd.h> #include <unistd.h>
#endif #endif
#if defined(__MSDOS__)
#include <limits.h>
#define _fullpath(f,n,s) (_fixpath(n,f),f)
#define _MAX_PATH PATH_MAX
#endif
#include "calc.h" #include "calc.h"
#include "conf.h" #include "conf.h"
#include "hist.h" #include "hist.h"
@@ -816,11 +822,12 @@ runrcfiles(void)
* given: * given:
* sbuf stat of the inode in question * sbuf stat of the inode in question
*/ */
static int static int
isinoderead(struct stat *sbuf) isinoderead(struct stat *sbuf)
{ {
int i; int i;
#if defined(_WIN32) #if defined(_WIN32) || defined(__MSDOS__)
char fullpathname[_MAX_PATH]; char fullpathname[_MAX_PATH];
#endif #endif
@@ -832,11 +839,11 @@ isinoderead(struct stat *sbuf)
/* scan the entire readset */ /* scan the entire readset */
for (i=0; i < maxreadset; ++i) { for (i=0; i < maxreadset; ++i) {
#if defined(_WIN32) #if defined(_WIN32) || defined(__MSDOS__)
if (readset[i].active && if (readset[i].active &&
strcmp(readset[i].path, strcasecmp(readset[i].path,
_fullpath(fullpathname,cip->i_name, _fullpath(fullpathname,cip->i_name,
_MAX_PATH)) == 0) { _MAX_PATH)) == 0) {
/* found a match */ /* found a match */
return i; return i;
} }
@@ -954,14 +961,18 @@ addreadset(char *name, char *path, struct stat *sbuf)
return -1; return -1;
} }
strcpy(readset[ret].name, name); strcpy(readset[ret].name, name);
#if defined(_WIN32) #if defined(_WIN32) || defined(__MSDOS__)
/* /*
* For WIN32, _fullpath expands the path to a fully qualified * For WIN32, _fullpath expands the path to a fully qualified
* path name, which under WIN32 FAT and NTFS is unique, just * path name, which under WIN32 FAT and NTFS is unique, just
* like UNIX inodes. _fullpath also allocated the memory for * like UNIX inodes. _fullpath also allocated the memory for
* this new longer path name. * this new longer path name.
*/ */
readset[ret].path = _fullpath(NULL, path, 0); {
char fullpathname[_MAX_PATH];
readset[ret].path = _fullpath(fullpathname, path, _MAX_PATH);
}
#else /* Windoz free systems */ #else /* Windoz free systems */
readset[ret].path = (char *)malloc(strlen(path)+1); readset[ret].path = (char *)malloc(strlen(path)+1);
if (readset[ret].path == NULL) { if (readset[ret].path == NULL) {

6
jump.h
View File

@@ -17,8 +17,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 29.3 $ * @(#) $Revision: 29.4 $
* @(#) $Id: jump.h,v 29.3 2001/05/29 00:16:53 chongo Exp $ * @(#) $Id: jump.h,v 29.4 2001/06/08 21:00:58 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/jump.h,v $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/jump.h,v $
* *
* Under source code control: 1994/06/29 04:03:55 * Under source code control: 1994/06/29 04:03:55
@@ -66,7 +66,7 @@
#define __JUMP_H__ #define __JUMP_H__
#if defined(SRC) /* if we are building from the calc source tree */ #if defined(CALC_SRC) /* if we are building from the calc source tree */
# include "have_const.h" # include "have_const.h"
#else #else
# include <calc/have_const.h> # include <calc/have_const.h>

View File

@@ -17,8 +17,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 29.3 $ * @(#) $Revision: 29.4 $
* @(#) $Id: label.h,v 29.3 2001/05/29 00:16:53 chongo Exp $ * @(#) $Id: label.h,v 29.4 2001/06/08 21:00:58 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/label.h,v $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/label.h,v $
* *
* Under source code control: 1990/02/15 01:48:33 * Under source code control: 1990/02/15 01:48:33
@@ -32,7 +32,7 @@
#define __LABEL_H__ #define __LABEL_H__
#if defined(SRC) /* if we are building from the calc source tree */ #if defined(CALC_SRC) /* if we are building from the calc source tree */
# include "zmath.h" # include "zmath.h"
#else #else
# include <calc/zmath.h> # include <calc/zmath.h>

View File

@@ -17,8 +17,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 29.7 $ * @(#) $Revision: 29.8 $
* @(#) $Id: lib_calc.c,v 29.7 2001/04/08 22:05:40 chongo Exp $ * @(#) $Id: lib_calc.c,v 29.8 2002/03/12 09:40:57 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/lib_calc.c,v $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/lib_calc.c,v $
* *
* Under source code control: 1996/06/17 18:06:19 * Under source code control: 1996/06/17 18:06:19
@@ -217,6 +217,11 @@ libcalc_call_me_first(void)
*/ */
if (program != NULL) { if (program != NULL) {
p = strrchr(program, '/'); p = strrchr(program, '/');
#if defined(_WIN32) || defined(__MSDOS__)
if (p == NULL) {
p = strrchr(program, '\\');
}
#endif
if (p == NULL) { if (p == NULL) {
base_name = program; base_name = program;
} else { } else {

View File

@@ -17,8 +17,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 29.4 $ * @(#) $Revision: 29.5 $
* @(#) $Id: math_error.h,v 29.4 2001/05/29 00:16:53 chongo Exp $ * @(#) $Id: math_error.h,v 29.5 2001/06/08 21:00:58 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/math_error.h,v $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/math_error.h,v $
* *
* Under source code control: 1997/03/23 18:37:10 * Under source code control: 1997/03/23 18:37:10
@@ -33,7 +33,7 @@
#define __MATH_ERROR_H__ #define __MATH_ERROR_H__
#if defined(SRC) /* if we are building from the calc source tree */ #if defined(CALC_SRC) /* if we are building from the calc source tree */
# include "win32dll.h" # include "win32dll.h"
#else #else
# include <calc/win32dll.h> # include <calc/win32dll.h>

View File

@@ -17,8 +17,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 29.5 $ * @(#) $Revision: 29.6 $
* @(#) $Id: opcodes.h,v 29.5 2001/05/29 00:16:53 chongo Exp $ * @(#) $Id: opcodes.h,v 29.6 2001/06/08 21:00:58 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/opcodes.h,v $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/opcodes.h,v $
* *
* Under source code control: 1990/02/15 01:48:35 * Under source code control: 1990/02/15 01:48:35
@@ -32,7 +32,7 @@
#define __OPCODES_H__ #define __OPCODES_H__
#if defined(SRC) /* if we are building from the calc source tree */ #if defined(CALC_SRC) /* if we are building from the calc source tree */
# include "win32dll.h" # include "win32dll.h"
#else #else
# include <calc/win32dll.h> # include <calc/win32dll.h>

View File

@@ -17,8 +17,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 29.3 $ * @(#) $Revision: 29.4 $
* @(#) $Id: prime.h,v 29.3 2001/05/29 00:16:53 chongo Exp $ * @(#) $Id: prime.h,v 29.4 2001/06/08 21:00:58 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/prime.h,v $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/prime.h,v $
* *
* Under source code control: 1994/06/04 03:26:15 * Under source code control: 1994/06/04 03:26:15
@@ -33,7 +33,7 @@
#define __PRIME_H__ #define __PRIME_H__
#if defined(SRC) /* if we are building from the calc source tree */ #if defined(CALC_SRC) /* if we are building from the calc source tree */
# include "qmath.h" # include "qmath.h"
# include "have_const.h" # include "have_const.h"
#else #else

View File

@@ -17,8 +17,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 29.4 $ * @(#) $Revision: 29.5 $
* @(#) $Id: qmath.h,v 29.4 2001/05/29 00:16:53 chongo Exp $ * @(#) $Id: qmath.h,v 29.5 2001/06/08 21:00:58 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/qmath.h,v $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/qmath.h,v $
* *
* Under source code control: 1993/07/30 19:42:47 * Under source code control: 1993/07/30 19:42:47
@@ -32,7 +32,7 @@
#define __QMATH_H__ #define __QMATH_H__
#if defined(SRC) /* if we are building from the calc source tree */ #if defined(CALC_SRC) /* if we are building from the calc source tree */
# include "zmath.h" # include "zmath.h"
#else #else
# include <calc/zmath.h> # include <calc/zmath.h>

View File

@@ -17,8 +17,8 @@
# received a copy with calc; if not, write to Free Software Foundation, Inc. # received a copy with calc; if not, write to Free Software Foundation, Inc.
# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. # 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
# #
# @(#) $Revision: 29.11 $ # @(#) $Revision: 29.16 $
# @(#) $Id: Makefile,v 29.11 2001/05/28 23:54:53 chongo Exp $ # @(#) $Id: Makefile,v 29.16 2002/03/14 00:28:28 chongo Exp $
# @(#) $Source: /usr/local/src/cmd/calc/sample/RCS/Makefile,v $ # @(#) $Source: /usr/local/src/cmd/calc/sample/RCS/Makefile,v $
# #
# Under source code control: 1997/04/19 22:46:49 # Under source code control: 1997/04/19 22:46:49
@@ -75,34 +75,120 @@ SAMPLE_OBJ= many_random.o test_random.o
#Q= #Q=
Q=@ Q=@
####
# Normally, the upper level makefile will set these values. We provide # Normally, the upper level makefile will set these values. We provide
# a default here just in case you want to build from this directory. # a default here just in case you want to build from this directory.
####
# Where the system include (.h) files are kept
# #
# where things go # For DJGPP, select:
# #
# ${BINDIR} where to install binary files # INCDIR= /dev/env/DJDIR/include
# ${SHAREDIR} where most common shared files are kept
# ${INCDIR} where most .h files are kept
# ${LIBDIR} where *.a files are installed
# #
# ${CSHAREDIR} where most common shared calc files are kept # If in doubt, set:
# ${HELPDIR} where the help directory is installed. #
# INCDIR= /usr/include
#
#INCDIR= /usr/local/include
#INCDIR= /dev/env/DJDIR/include
INCDIR= /usr/include
# where to install calc realted things
#
# ${BINDIR} where to install calc binary files
# ${LIBDIR} where calc link library (*.a) files are installed
# ${CALC_SHAREDIR} where to install calc help, .cal, startup, config files
#
# NOTE: The install rule prepends installation paths with $T, which
# by default is empty. If $T is non-empty, then installation
# locations will be relative to the $T directory.
#
# For DJGPP, select:
#
# BINDIR= /dev/env/DJDIR/bin
# LIBDIR= /dev/env/DJDIR/lib
# CALC_SHAREDIR= /dev/env/DJDIR/share/calc
#
# If in doubt, set:
#
# BINDIR= /usr/bin
# LIBDIR= /usr/lib
# CALC_SHAREDIR= /usr/share/calc
# #
#BINDIR= /usr/local/bin #BINDIR= /usr/local/bin
#BINDIR= /dev/env/DJDIR/bin
BINDIR= /usr/bin BINDIR= /usr/bin
#BINDIR= /usr/contrib/bin
#
#SHAREDIR= /usr/local/lib
SHAREDIR= /usr/share
#
#INCDIR= /usr/local/include
INCDIR= /usr/include
#
#LIBDIR= /usr/local/lib #LIBDIR= /usr/local/lib
#LIBDIR= /dev/env/DJDIR/lib
LIBDIR= /usr/lib LIBDIR= /usr/lib
CSHAREDIR= ${SHAREDIR}/calc #CALC_SHAREDIR= /usr/local/lib/calc
HELPDIR= ${LIBDIR}/help #CALC_SHAREDIR= /dev/env/DJDIR/share/calc
CALC_SHAREDIR= /usr/share/calc
# By default, these values are based CALC_SHAREDIR, INCDIR, BINDIR
# ---------------------------------------------------------------
# ${HELPDIR} where the help directory is installed
# ${CALC_INCDIR} where the calc include files are installed
# ${CUSTOMCALDIR} where custom *.cal files are installed
# ${CUSTOMHELPDIR} where custom help files are installed
# ${CUSTOMINCPDIR} where custom .h files are installed
# ${SCRIPTDIR} where calc shell scripts are installed
#
# NOTE: The install rule prepends installation paths with $T, which
# by default is empty. If $T is non-empty, then installation
# locations will be relative to the $T directory.
#
# If in doubt, set:
#
# HELPDIR= ${CALC_SHAREDIR}/help
# CALC_INCDIR= ${INCDIR}/calc
# CUSTOMCALDIR= ${CALC_SHAREDIR}/custom
# CUSTOMHELPDIR= ${CALC_SHAREDIR}/custhelp
# CUSTOMINCDIR= ${CALC_INCDIR}/custom
# SCRIPTDIR= ${BINDIR}/cscript
#
HELPDIR= ${CALC_SHAREDIR}/help
CALC_INCDIR= ${INCDIR}/calc
CUSTOMCALDIR= ${CALC_SHAREDIR}/custom
CUSTOMHELPDIR= ${CALC_SHAREDIR}/custhelp
CUSTOMINCDIR= ${CALC_INCDIR}/custom
SCRIPTDIR= ${BINDIR}/cscript
# T - top level directory under which calc will be installed
#
# The calc install is performed under $T, the calc build is
# performed under /. The purpose for $T is to allow someone
# to install calc somewhere other than into the system area.
#
# For example, if:
#
# BINDIR= /usr/bin
# LIBDIR= /usr/lib
# CALC_SHAREDIR= /usr/share/calc
#
# and if:
#
# T= /var/tmp/testing
#
# Then the installation locations will be:
#
# calc binary files: /var/tmp/testing/usr/bin
# calc link library: /var/tmp/testing/usr/lib
# calc help, .cal ...: /var/tmp/testing/usr/share/calc
# ... etc ... /var/tmp/testing/...
#
# If $T is empty, calc is installed under /, which is the same
# top of tree for which it was built. If $T is non-empty, then
# calc is installed under $T, as if one had to chroot under
# $T for calc to operate.
#
# If in doubt, use T=
#
T=
# Normally, the upper level makefile will set these values. We provide # Normally, the upper level makefile will set these values. We provide
# a default here just in case you want to build from this directory. # a default here just in case you want to build from this directory.
@@ -343,8 +429,10 @@ many_random: many_random.o ../libcalc.a
## ##
distlist: ${DISTLIST} distlist: ${DISTLIST}
${Q}for i in ${DISTLIST}; do \ ${Q}for i in ${DISTLIST} /dev/null; do \
if [ X"$$i" != X"/dev/null" ]; then \
echo sample/$$i; \ echo sample/$$i; \
fi; \
done done
distdir: distdir:
@@ -380,11 +468,14 @@ depend:
-${Q}rm -rf skel -${Q}rm -rf skel
${Q}mkdir skel ${Q}mkdir skel
${Q}mkdir skel/sample ${Q}mkdir skel/sample
-${Q}for i in ${C_SRC}; do \ -${Q}for i in ${C_SRC} /dev/null; do \
if [ X"$$i" != X"/dev/null" ]; then \
${SED} -n '/^#[ ]*include[ ]*"/p' \ ${SED} -n '/^#[ ]*include[ ]*"/p' \
"$$i" > "skel/sample/$$i"; \ "$$i" > "skel/sample/$$i"; \
fi; \
done done
-${Q}for i in ${H_SRC} /dev/null; do \ -${Q}for i in ${H_SRC} /dev/null; do \
if [ X"$$i" != X"/dev/null" ]; then \
if [ X"$$i" != X"/dev/null" ]; then \ if [ X"$$i" != X"/dev/null" ]; then \
tag="`echo $$i | ${SED} 's/[\.+,:]/_/g'`"; \ tag="`echo $$i | ${SED} 's/[\.+,:]/_/g'`"; \
echo "#if !defined($$tag)" > "skel/sample/$$i"; \ echo "#if !defined($$tag)" > "skel/sample/$$i"; \
@@ -393,18 +484,21 @@ depend:
>> "skel/sample/$$i"; \ >> "skel/sample/$$i"; \
echo '#endif /* '"$$tag"' */' >> "skel/sample/$$i"; \ echo '#endif /* '"$$tag"' */' >> "skel/sample/$$i"; \
fi; \ fi; \
fi; \
done done
${Q}(cd ..; ${MAKE} hsrc) ${Q}(cd ..; ${MAKE} hsrc)
${Q}for i in `cd ..; ${MAKE} h_list 2>&1 | \ ${Q}for i in `cd ..; ${MAKE} h_list 2>&1 | \
${SED} -e '/Entering directory/d' \ ${SED} -e '/Entering directory/d' \
-e '/Nothing to be done/d' \ -e '/Nothing to be done/d' \
-e '/Leaving directory/d'`; do \ -e '/Leaving directory/d'` /dev/null; do \
if [ X"$$i" != X"/dev/null" ]; then \
tag="`echo $$i | ${SED} 's/[\.+,:]/_/g'`"; \ tag="`echo $$i | ${SED} 's/[\.+,:]/_/g'`"; \
echo "#if !defined($$tag)" > "skel/$$i"; \ echo "#if !defined($$tag)" > "skel/$$i"; \
echo "#define $$tag" >> "skel/$$i"; \ echo "#define $$tag" >> "skel/$$i"; \
${SED} -n '/^#[ ]*include[ ]*"/p' "../$$i" \ ${SED} -n '/^#[ ]*include[ ]*"/p' "../$$i" \
>> "skel/$$i"; \ >> "skel/$$i"; \
echo '#endif /* '"$$tag"' */' >> "skel/$$i"; \ echo '#endif /* '"$$tag"' */' >> "skel/$$i"; \
fi; \
done done
-${Q}rm -f skel/sample/makedep.out -${Q}rm -f skel/sample/makedep.out
${Q}echo sample/skel formed ${Q}echo sample/skel formed
@@ -412,8 +506,10 @@ depend:
${Q}echo "# DO NOT DELETE THIS LINE -- make depend depends on it." > \ ${Q}echo "# DO NOT DELETE THIS LINE -- make depend depends on it." > \
skel/sample/makedep.out skel/sample/makedep.out
${Q}cd skel/sample; ${MAKEDEPEND} -w 1 -f makedep.out -I.. ${C_SRC} ${Q}cd skel/sample; ${MAKEDEPEND} -w 1 -f makedep.out -I.. ${C_SRC}
-${Q}for i in ${C_SRC}; do \ -${Q}for i in ${C_SRC} /dev/null; do \
if [ X"$$i" != X"/dev/null" ]; then \
echo "$$i" | ${SED} 's/^\(.*\)\.c/\1.o: \1.c/'; \ echo "$$i" | ${SED} 's/^\(.*\)\.c/\1.o: \1.c/'; \
fi; \
done >> skel/sample/makedep.out done >> skel/sample/makedep.out
${Q}echo sample dependency list formed ${Q}echo sample dependency list formed
${Q}echo forming new sample/Makefile ${Q}echo forming new sample/Makefile
@@ -445,7 +541,7 @@ depend:
# #
## ##
echo_install.list: Makefile echo_inst_files: Makefile
## ##

View File

@@ -1,98 +0,0 @@
Summary: C-style arbitrary precision calculator
Name: calc
Version: ${VERSION}
Release: ${RELEASE}
Copyright: LGPL
Group: Applications/Engineering
Source: http://www.isthe.com/chongo/src/calc/calc-${VER_CALC}.tar.gz
BuildRoot: /var/tmp/%{name}-buildroot
%description
Calc is an interactive calculator which provides for easy large numeric
calculations, but which also can be easily programmed for difficult or
long calculations.
All numbers are represented as fractions with arbitrarily large numerators
and denominators which are always reduced to lowest terms. Real or
exponential format numbers are converted to the equivalent fraction.
One use enter decinal, hex, octal, binary and complex values.
Commands are statements in a C-like language, where each input line is
treated as the body of a procedure. You can define your own functions
by using the 'define' keyword, followed by a function declaration very
similar to C. Calc also comes with a rich set of builtin functions
and calc shell commands.
In addition to numeric global, local and static variables, Calc as
lists, associated arrays, matrices, byte blocks, dymanic strings and
user defined objects.
%prep
%setup -q
%build
make RPM_OPT_FLAGS="$RPM_OPT_FLAGS"
%install
rm -rf $RPM_BUILD_ROOT
mkdir -p $RPM_BUILD_ROOT${BINDIR}
mkdir -p $RPM_BUILD_ROOT${SHAREDIR}
mkdir -p $RPM_BUILD_ROOT${INCDIR}
mkdir -p $RPM_BUILD_ROOT${LIBDIR}
mkdir -p $RPM_BUILD_ROOT${CSHAREDIR}
mkdir -p $RPM_BUILD_ROOT${HELPDIR}
mkdir -p $RPM_BUILD_ROOT${INCDIRCALC}
mkdir -p $RPM_BUILD_ROOT${CUSTOMLIBDIR}
mkdir -p $RPM_BUILD_ROOT${CUSTOMHELPDIR}
mkdir -p $RPM_BUILD_ROOT${CUSTOMINCDIR}
mkdir -p $RPM_BUILD_ROOT${SCRIPTDIR}
mkdir -p $RPM_BUILD_ROOT${MANDIR}
install -m 0555 calc $RPM_BUILD_ROOT${BINDIR}
(cd help
install -m 0444 ${STD_HELP_FILES} $RPM_BUILD_ROOT${HELPDIR}
install -m 0444 ${BLT_HELP_FILES} $RPM_BUILD_ROOT${HELPDIR}
install -m 0444 builtin full $RPM_BUILD_ROOT${HELPDIR}
install -m 0444 ${DETAIL_HELP} $RPM_BUILD_ROOT${HELPDIR}
install -m 0444 ${SINGULAR_FILES} $RPM_BUILD_ROOT${HELPDIR}
install -m 0444 obj.file $RPM_BUILD_ROOT${HELPDIR}/obj
)
(cd cal; install -m 0444 ${CALC_FILES} $RPM_BUILD_ROOT${LIBDIR})
(cd custom
if [ ! -z "${INSTALL_H_SRC}" ]; then
install -m 0444 ${INSTALL_H_SRC} $RPM_BUILD_ROOT${CUSTOMINCDIR}
fi
install -m 0444 ${CUSTOM_CALC_FILES} $RPM_BUILD_ROOT${CUSTOMLIBDIR}
install -m 0444 ${CUSTOM_HELP} $RPM_BUILD_ROOT${CUSTOMHELPDIR}
if [ ! -z "${ALLOW_CUSTOM}" ]; then
install -m 0644 libcustcalc.a $RPM_BUILD_ROOT${CUSTOMLIBDIR}
${RANLIB} $RPM_BUILD_ROOT${CUSTOMLIBDIR}
fi
)
(cd cscript
install -m 0555 ${SCRIPT} $RPM_BUILD_ROOT${SCRIPTDIR}
)
install -m 0444 libcalc.a $RPM_BUILD_ROOT${LIBDIR}
${RANLIB} $RPM_BUILD_ROOT${LIBDIR}
install -m 0444 ${LIB_H_SRC} $RPM_BUILD_ROOT${INCDIRCALC}
install -m 0444 ${BUILD_H_SRC} $RPM_BUILD_ROOT${INCDIRCALC}
install -m 0444 calc.1 $RPM_BUILD_ROOT${MANDIR}.${MANEXT}
%clean
rm -rf $RPM_BUILD_ROOT
%files -f install.list
%defattr(-,root,root)
%doc BUGS README COPYING COPYING-LGPL HOWTO.INSTALL
%doc README LIBRARY README.WINDOWS calc.1
%doc help/resource help/errorcodes help/custom_cal help/new_custom
%doc help/cscript help/full
%changelog
* ${DATE} Landon Curt Noll <http://www.isthe.com/chongo/index.html>
- calc version ${VER_CALC}

View File

@@ -17,8 +17,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 29.3 $ * @(#) $Revision: 29.4 $
* @(#) $Id: string.h,v 29.3 2001/05/29 00:16:53 chongo Exp $ * @(#) $Id: string.h,v 29.4 2001/06/08 21:00:58 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/string.h,v $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/string.h,v $
* *
* Under source code control: 1990/02/15 01:48:36 * Under source code control: 1990/02/15 01:48:36
@@ -32,7 +32,7 @@
#define __CALCSTRING_H__ #define __CALCSTRING_H__
#if defined(SRC) /* if we are building from the calc source tree */ #if defined(CALC_SRC) /* if we are building from the calc source tree */
# include "zmath.h" # include "zmath.h"
#else #else
# include <calc/zmath.h> # include <calc/zmath.h>

View File

@@ -17,8 +17,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 29.3 $ * @(#) $Revision: 29.4 $
* @(#) $Id: symbol.h,v 29.3 2001/05/29 00:16:53 chongo Exp $ * @(#) $Id: symbol.h,v 29.4 2001/06/08 21:00:58 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/symbol.h,v $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/symbol.h,v $
* *
* Under source code control: 1990/02/15 01:48:37 * Under source code control: 1990/02/15 01:48:37
@@ -32,7 +32,7 @@
#define __SYMBOL_H__ #define __SYMBOL_H__
#if defined(SRC) /* if we are building from the calc source tree */ #if defined(CALC_SRC) /* if we are building from the calc source tree */
# include "zmath.h" # include "zmath.h"
#else #else
# include <calc/zmath.h> # include <calc/zmath.h>

View File

@@ -17,8 +17,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 29.3 $ * @(#) $Revision: 29.4 $
* @(#) $Id: token.h,v 29.3 2001/05/29 00:16:53 chongo Exp $ * @(#) $Id: token.h,v 29.4 2001/06/08 21:00:58 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/token.h,v $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/token.h,v $
* *
* Under source code control: 1990/02/15 01:48:37 * Under source code control: 1990/02/15 01:48:37
@@ -32,7 +32,7 @@
#define __TOKEN_H__ #define __TOKEN_H__
#if defined(SRC) /* if we are building from the calc source tree */ #if defined(CALC_SRC) /* if we are building from the calc source tree */
# include "zmath.h" # include "zmath.h"
#else #else
# include <calc/zmath.h> # include <calc/zmath.h>

View File

@@ -17,8 +17,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 29.6 $ * @(#) $Revision: 29.7 $
* @(#) $Id: value.h,v 29.6 2001/05/29 00:16:53 chongo Exp $ * @(#) $Id: value.h,v 29.7 2001/06/08 21:00:58 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/value.h,v $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/value.h,v $
* *
* Under source code control: 1993/07/30 19:42:47 * Under source code control: 1993/07/30 19:42:47
@@ -32,7 +32,7 @@
#define __VALUE_H__ #define __VALUE_H__
#if defined(SRC) /* if we are building from the calc source tree */ #if defined(CALC_SRC) /* if we are building from the calc source tree */
# include "win32dll.h" # include "win32dll.h"
# include "cmath.h" # include "cmath.h"
# include "config.h" # include "config.h"

182
version.c
View File

@@ -19,8 +19,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 29.29 $ * @(#) $Revision: 29.39 $
* @(#) $Id: version.c,v 29.29 2001/06/01 21:44:44 chongo Exp $ * @(#) $Id: version.c,v 29.39 2002/03/14 00:28:28 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/version.c,v $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/version.c,v $
* *
* Under source code control: 1990/05/22 11:00:58 * Under source code control: 1990/05/22 11:00:58
@@ -32,6 +32,9 @@
#include <stdio.h> #include <stdio.h>
#include <errno.h>
#include <string.h>
#if defined(CALC_VER) #if defined(CALC_VER)
#include <stdlib.h> #include <stdlib.h>
#include <unistd.h> #include <unistd.h>
@@ -43,7 +46,8 @@ static char *program;
#define MAJOR_VER 2 /* major version */ #define MAJOR_VER 2 /* major version */
#define MINOR_VER 11 /* minor version */ #define MINOR_VER 11 /* minor version */
#define MAJOR_PATCH 5 /* patch level or 0 if no patch */ #define MAJOR_PATCH 5 /* patch level or 0 if no patch */
#define MINOR_PATCH "4.3" /* test number or empty string if no patch */ #define MINOR_PATCH 8 /* test number or 0 if no minor patch */
/* /*
* calc version constants * calc version constants
@@ -51,7 +55,7 @@ static char *program;
int calc_major_ver = MAJOR_VER; int calc_major_ver = MAJOR_VER;
int calc_minor_ver = MINOR_VER; int calc_minor_ver = MINOR_VER;
int calc_major_patch = MAJOR_PATCH; int calc_major_patch = MAJOR_PATCH;
char *calc_minor_patch = MINOR_PATCH; int calc_minor_patch = MINOR_PATCH;
/* /*
@@ -89,13 +93,29 @@ char *Copyright = "\n"
"\n"; "\n";
#if !defined(HAVE_SNPRINTF)
/* Simulate snprintf with vsprintf, hoping that BUFSIZ is large enough. */
#include <stdarg.h>
int
snprintf (char *buf, size_t n, const char *fmt, ...)
{
int retval;
va_list arg;
va_start (arg, fmt);
retval = vsprintf (buf, fmt, arg);
va_end (arg);
return retval;
}
#endif
/* /*
* version - return version string * version - return version string
* *
* This function returns a malloced version string. This version * This function returns a malloced version string. This version
* string does not contain the title, just: * string does not contain the title, just:
* *
* x.y.ztw * x.y.z.w
* x.y.z * x.y.z
* x.y * x.y
*/ */
@@ -114,15 +134,17 @@ version(void)
/* /*
* form the version buffer * form the version buffer
*/ */
if (sizeof(MINOR_PATCH) > 1) { if (MINOR_PATCH > 0) {
sprintf(verbuf, snprintf(verbuf, BUFSIZ,
"%d.%d.%dt%s", calc_major_ver, calc_minor_ver, "%d.%d.%d.%d", calc_major_ver, calc_minor_ver,
calc_major_patch, calc_minor_patch); calc_major_patch, calc_minor_patch);
} else if (MAJOR_PATCH > 0) { } else if (MAJOR_PATCH > 0) {
sprintf(verbuf, snprintf(verbuf, BUFSIZ,
"%d.%d.%d", calc_major_ver, calc_minor_ver, calc_major_patch); "%d.%d.%d", calc_major_ver,
calc_minor_ver, calc_major_patch);
} else { } else {
sprintf(verbuf, "%d.%d", calc_major_ver, calc_minor_ver); snprintf(verbuf, BUFSIZ,
"%d.%d", calc_major_ver, calc_minor_ver);
} }
/* /*
@@ -131,7 +153,7 @@ version(void)
stored_version = (char *)malloc(strlen(verbuf)+1); stored_version = (char *)malloc(strlen(verbuf)+1);
if (stored_version == NULL) { if (stored_version == NULL) {
fprintf(stderr, "%s: version formation value\n", program); fprintf(stderr, "%s: version formation value\n", program);
exit(2); exit(1);
} }
strcpy(stored_version, verbuf); strcpy(stored_version, verbuf);
@@ -146,76 +168,123 @@ version(void)
/* /*
* print_rpm_version_release - print the rpm style version-release * print_rpm_version - print just the version string, rpm style
* *
* This function prints a version-release string, rpm style: * This function prints a version string, rpm style:
* *
* x.y.z-w * x.y.z.w-r
* x.y.z-0 * x.y.z-r
* x.y-0 * x.y-r
*
* where 'r' comes from the content of the release file.
*/ */
void void
print_rpm_version_release(void) print_rpm_version(char *release)
{ {
FILE *file; /* open file */
char buf[BUFSIZ+1]; /* release file buffer */
char *p;
/*
* obtain the release
*/
file = fopen(release, "r");
if (file == NULL) {
fprintf(stderr, "%s: cannot open %s: %s\n",
program, release, strerror(errno));
exit(2);
}
buf[BUFSIZ] = '\0';
if (fgets(buf, BUFSIZ, file) == NULL) {
fprintf(stderr, "%s: cannot read %s: %s\n",
program, release, strerror(errno));
exit(3);
}
p = strchr(buf, '\n');
if (p != NULL) {
*p = '\0';
}
/* /*
* form the version buffer * form the version buffer
*/ */
if (sizeof(MINOR_PATCH) > 1) { if (MINOR_PATCH > 0) {
printf("%d.%d.%d-%s\n", calc_major_ver, calc_minor_ver, printf("%d.%d.%d.%d-%s\n", calc_major_ver, calc_minor_ver,
calc_major_patch, calc_minor_patch); calc_major_patch, calc_minor_patch, buf);
} else if (MAJOR_PATCH > 0) { } else if (MAJOR_PATCH > 0) {
printf("%d.%d.%d-0\n", calc_major_ver, calc_minor_ver, printf("%d.%d.%d-%s\n", calc_major_ver, calc_minor_ver,
calc_major_patch); calc_major_patch, buf);
} else { } else {
printf("%d.%d-0\n", calc_major_ver, calc_minor_ver); printf("%d.%d-%s\n", calc_major_ver, calc_minor_ver, buf);
} }
return; return;
} }
/* /*
* print_rpm_version - print just the version string, rpm style * print_rpm_major - print just the major part version string
* *
* This function prints a version string, rpm style: * This function prints the major part version string:
* *
* x.y.z * x.y.z
* x.y * x.y
*/ */
void void
print_rpm_version(void) print_rpm_major(void)
{ {
/* /*
* form the version buffer * form the version buffer
*/ */
if (MAJOR_PATCH > 0) { if (MAJOR_PATCH > 0) {
printf("%d.%d.%d\n", calc_major_ver, calc_minor_ver, printf("%d.%d.%d\n", calc_major_ver, calc_minor_ver,
calc_major_patch); calc_major_patch);
} else { } else {
printf("%d.%d\n", calc_major_ver, calc_minor_ver); printf("%d.%d\n", calc_major_ver, calc_minor_ver);
} }
return; return;
} }
/* /*
* print_rpm_release - print just the release string, rpm style * print_rpm_release - print just the rpm release
* *
* This function prints a release string, rpm style: * This function prints the rpm release:
* *
* w * r
* 0 *
* where 'r' comes from the content of the release file.
*/ */
void void
print_rpm_release(void) print_rpm_release(char *release)
{ {
FILE *file; /* open file */
char buf[BUFSIZ+1]; /* release file buffer */
char *p;
/*
* obtain the release
*/
file = fopen(release, "r");
if (file == NULL) {
fprintf(stderr, "%s: cannot open %s: %s\n",
program, release, strerror(errno));
exit(2);
}
buf[BUFSIZ] = '\0';
if (fgets(buf, BUFSIZ, file) == NULL) {
fprintf(stderr, "%s: cannot read %s: %s\n",
program, release, strerror(errno));
exit(3);
}
p = strchr(buf, '\n');
if (p != NULL) {
*p = '\0';
}
/* /*
* form the version buffer * form the version buffer
*/ */
if (sizeof(MINOR_PATCH) > 1) { printf("%s\n", buf);
printf("%s\n", calc_minor_patch);
} else {
printf("0\n");
}
return; return;
} }
@@ -227,17 +296,26 @@ print_rpm_release(void)
int int
main(int argc, char *argv[]) main(int argc, char *argv[])
{ {
program = argv[0]; program = argv[0];
if (argc == 2 && strcmp(argv[1], "-R") == 0) { if (argc == 3 && strcmp(argv[1], "-r") == 0) {
print_rpm_version_release(); print_rpm_version(argv[2]);
} else if (argc == 2 && strcmp(argv[1], "-v") == 0) {
print_rpm_version(); } else if (argc == 3 && strcmp(argv[1], "-R") == 0) {
} else if (argc == 2 && strcmp(argv[1], "-r") == 0) { print_rpm_release(argv[2]);
print_rpm_release();
} else { } else if (argc == 2 && strcmp(argv[1], "-V") == 0) {
printf("%s\n", version()); print_rpm_major();
}
return 0; } else if (argc == 1) {
printf("%s\n", version());
} else {
fprintf(stderr,
"usage: %s [-V] [-R release_file] [-r release_file]\n",
program);
exit(4);
}
return 0;
} }
#endif /* CALC_VER */ #endif /* CALC_VER */

View File

@@ -36,8 +36,8 @@ HAVE_UNISTD_H=NO
LIBDIR=/lib/calc LIBDIR=/lib/calc
HELPDIR=/lib/calc/help HELPDIR=/lib/calc/help
INCDIRCALC=/include/calc CALC_INCDIR=/include/calc
CUSTOMLIBDIR=/lib/calc/custom CUSTOMCALDIR=/lib/calc/custom
CUSTOMHELPDIR=/lib/calc/help/custhelp CUSTOMHELPDIR=/lib/calc/help/custhelp
SCRIPTDIR=/lib/calc/cscript SCRIPTDIR=/lib/calc/cscript
MANDIR= MANDIR=

View File

@@ -7,7 +7,7 @@
#define __HAVE_MALLOC_H__ #define __HAVE_MALLOC_H__
/* do we have /usr/include/malloc.h? */ /* do we have <malloc.h>? */
#define HAVE_MALLOC_H /* yes */ #define HAVE_MALLOC_H /* yes */

View File

@@ -7,7 +7,7 @@
#define __HAVE_STDLIB_H__ #define __HAVE_STDLIB_H__
/* do we have /usr/include/stdlib.h? */ /* do we have <stdlib.h>? */
#define HAVE_STDLIB_H /* yes */ #define HAVE_STDLIB_H /* yes */

View File

@@ -7,7 +7,7 @@
#define __HAVE_STRING_H__ #define __HAVE_STRING_H__
/* do we have /usr/include/string.h? */ /* do we have <string.h>? */
#define HAVE_STRING_H /* yes */ #define HAVE_STRING_H /* yes */

View File

@@ -7,7 +7,7 @@
#define __HAVE_TIMES_H__ #define __HAVE_TIMES_H__
/* do we have /usr/include/times.h? */ /* do we have <times.h>? */
#undef HAVE_TIMES_H /* no */ #undef HAVE_TIMES_H /* no */
#undef HAVE_SYS_TIMES_H /* no */ #undef HAVE_SYS_TIMES_H /* no */
#define HAVE_TIME_H /* yes */ #define HAVE_TIME_H /* yes */

View File

@@ -7,7 +7,7 @@
#define __HAVE_UNISTD_H__ #define __HAVE_UNISTD_H__
/* do we have /usr/include/unistd.h? */ /* do we have <unistd.h>? */
#undef HAVE_UNISTD_H /* no */ #undef HAVE_UNISTD_H /* no */

View File

@@ -17,8 +17,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 29.6 $ * @(#) $Revision: 29.7 $
* @(#) $Id: zmath.h,v 29.6 2001/05/29 00:16:53 chongo Exp $ * @(#) $Id: zmath.h,v 29.7 2001/06/08 21:00:58 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/zmath.h,v $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/zmath.h,v $
* *
* Under source code control: 1993/07/30 19:42:48 * Under source code control: 1993/07/30 19:42:48
@@ -38,7 +38,7 @@
#define __ZMATH_H__ #define __ZMATH_H__
#if defined(SRC) /* if we are building from the calc source tree */ #if defined(CALC_SRC) /* if we are building from the calc source tree */
# include "win32dll.h" # include "win32dll.h"
# include "alloc.h" # include "alloc.h"
# include "endian_calc.h" # include "endian_calc.h"

View File

@@ -17,8 +17,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 29.4 $ * @(#) $Revision: 29.5 $
* @(#) $Id: zrand.h,v 29.4 2001/05/29 00:16:53 chongo Exp $ * @(#) $Id: zrand.h,v 29.5 2001/06/08 21:00:58 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/zrand.h,v $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/zrand.h,v $
* *
* Under source code control: 1995/01/07 09:45:26 * Under source code control: 1995/01/07 09:45:26
@@ -37,7 +37,7 @@
#define __ZRAND_H__ #define __ZRAND_H__
#if defined(SRC) /* if we are building from the calc source tree */ #if defined(CALC_SRC) /* if we are building from the calc source tree */
# include "value.h" # include "value.h"
# include "have_const.h" # include "have_const.h"
#else #else

View File

@@ -17,8 +17,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 29.3 $ * @(#) $Revision: 29.4 $
* @(#) $Id: zrandom.h,v 29.3 2001/05/29 00:16:53 chongo Exp $ * @(#) $Id: zrandom.h,v 29.4 2001/06/08 21:00:58 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/zrandom.h,v $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/zrandom.h,v $
* *
* Under source code control: 1997/02/15 04:01:56 * Under source code control: 1997/02/15 04:01:56
@@ -33,7 +33,7 @@
#define __ZRANDOM_H__ #define __ZRANDOM_H__
#if defined(SRC) /* if we are building from the calc source tree */ #if defined(CALC_SRC) /* if we are building from the calc source tree */
# include "value.h" # include "value.h"
# include "have_const.h" # include "have_const.h"
#else #else