mirror of
https://github.com/lcn2/calc.git
synced 2025-08-16 01:03:29 +03:00
Release calc version 2.11.0t10.5.1
This commit is contained in:
81
BUGS
81
BUGS
@@ -69,15 +69,42 @@ not currently a member of the calc-tester mailing list.
|
|||||||
|
|
||||||
Known bugs:
|
Known bugs:
|
||||||
|
|
||||||
* On AlphaLinux with gcc-2.96, calc 2.11.1 with patches to compile
|
* Calc does not support the #! exec method. For example of the
|
||||||
correctly dies in the regression:
|
following is placed in an executable file (assume the path to
|
||||||
|
calc is correct) called /tmp/xyzzy:
|
||||||
|
|
||||||
4408: Q == (mat[2]={5+3i,17+4i})
|
#!/usr/local/bin/calc
|
||||||
4409: R = {M2,M3}
|
/*
|
||||||
4410: norm(R) == M4
|
* comment
|
||||||
"": line 78: Function "surd_sqrt" is undefined
|
*/
|
||||||
Error in commands
|
print 2+3;
|
||||||
make: *** [chk] Error 1
|
|
||||||
|
Will result in '"tmp" is undefined' and '"xyzzy" is undefined'
|
||||||
|
error messages because calc considers $0 as an expression to
|
||||||
|
evaluate.
|
||||||
|
|
||||||
|
* The following file:
|
||||||
|
|
||||||
|
/* this is bugdemo.cal */
|
||||||
|
x = eval(prompt(">>> "));
|
||||||
|
print x;
|
||||||
|
|
||||||
|
when executed as:
|
||||||
|
|
||||||
|
calc read bugdemo.cal
|
||||||
|
|
||||||
|
will obtain a prompt from the terminal, print the value but leave
|
||||||
|
the terminal in a 'bad' state, as if stty -icanon -echo -echoe
|
||||||
|
had been executed.
|
||||||
|
|
||||||
|
* Use of 'fmt' in the 2nd arg of printf() calls in c_sysinfo.c
|
||||||
|
cause some compilers to issue warnings.
|
||||||
|
|
||||||
|
* The builtin function exp(x) will return 0 when x is a large value
|
||||||
|
in certain cases such as exp(2^32).
|
||||||
|
|
||||||
|
* The builtin function power(x,y) will return 0 in certain cases
|
||||||
|
such as power(pi(),2^32).
|
||||||
|
|
||||||
We are sure some more bugs exist. When you find them, please let
|
We are sure some more bugs exist. When you find them, please let
|
||||||
us know! See the above for details on how to report and were to
|
us know! See the above for details on how to report and were to
|
||||||
@@ -158,41 +185,3 @@ Problems with known work-a-rounds:
|
|||||||
LCC="cc -xarch=v9"
|
LCC="cc -xarch=v9"
|
||||||
CCWARN="-DFORCE_STDC -w"
|
CCWARN="-DFORCE_STDC -w"
|
||||||
DEBUG="-fast -xarch=v9"
|
DEBUG="-fast -xarch=v9"
|
||||||
|
|
||||||
* Under BSDI v4, the warnings of the form:
|
|
||||||
|
|
||||||
/usr/include/ctype.h:147: warning: `__runetype' defined but not used
|
|
||||||
/usr/include/ctype.h:161: warning: `__isctype' defined but not used
|
|
||||||
/usr/include/ctype.h:170: warning: `toupper' defined but not used
|
|
||||||
/usr/include/ctype.h:177: warning: `tolower' defined but not used
|
|
||||||
|
|
||||||
are seen. These warnings are the result of mis-features in BSDI
|
|
||||||
include files. They do not have an impact on the operation
|
|
||||||
or performance. The work-a-round is to ignore these warnings
|
|
||||||
under BSDI.
|
|
||||||
|
|
||||||
## Copyright (C) 1999 Landon Curt Noll
|
|
||||||
##
|
|
||||||
## Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
## the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
## as published by the Free Software Foundation.
|
|
||||||
##
|
|
||||||
## Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
## or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
## Public License for more details.
|
|
||||||
##
|
|
||||||
## A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
## distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
## received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
##
|
|
||||||
## @(#) $Revision: 29.3 $
|
|
||||||
## @(#) $Id: BUGS,v 29.3 1999/12/14 19:41:07 chongo Exp $
|
|
||||||
## @(#) $Source: /usr/local/src/cmd/calc/RCS/BUGS,v $
|
|
||||||
##
|
|
||||||
## Under source code control: 1994/03/18 14:06:13
|
|
||||||
## File existed as early as: 1994
|
|
||||||
##
|
|
||||||
## chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
## Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
|
195
CHANGES
195
CHANGES
@@ -1,51 +1,4 @@
|
|||||||
The following are the changes from calc version 2.11.1 to date:
|
The following are the changes from calc version 2.11.0t10 to date:
|
||||||
|
|
||||||
Placed calc under version 2.1 of the GNU Lesser General Public License.
|
|
||||||
|
|
||||||
The calc commands:
|
|
||||||
|
|
||||||
help copyright
|
|
||||||
help copying
|
|
||||||
help copying-lgpl
|
|
||||||
|
|
||||||
should display the generic calc copyright as well as the contents
|
|
||||||
of the COPYING and COPYING-LGPL files.
|
|
||||||
|
|
||||||
Those files contain information about the calc's GNU Lesser General
|
|
||||||
Public License, and in particular the conditions under which you
|
|
||||||
are allowed to change it and/or distribute copies of it.
|
|
||||||
|
|
||||||
Removed the lint facility from the Makefile. Eliminated Makefile
|
|
||||||
variables: ${LCFLAGS}, ${LINT}, ${LINTLIB} and ${LINTFLAGS}.
|
|
||||||
Removed the lint.sed file.
|
|
||||||
|
|
||||||
Cleaned up help display system. Help file lines that begin with
|
|
||||||
'##' are not displayed.
|
|
||||||
|
|
||||||
Calc source and documentation now uses the the these terms:
|
|
||||||
|
|
||||||
*.cal files calc resource file
|
|
||||||
*.a files calc binary link library
|
|
||||||
#! files calc shell script
|
|
||||||
|
|
||||||
Renamed 'help stdlib' to 'help resource'. The 'help stdlib' is
|
|
||||||
aliased to 'help resource' for ard compatibility.
|
|
||||||
|
|
||||||
Renamed config("lib_debug") to config("resource_debug").
|
|
||||||
The config("lib_debug") will have the same effect as
|
|
||||||
config("resource_debug") for backward compatibility.
|
|
||||||
|
|
||||||
Renamed the source sub-directory lib to cal. The default $CALCPATH
|
|
||||||
now uses ./cal:~/cal (instead of ./lib:~/lib). Changed LIB_PASSDOWN
|
|
||||||
Makefile variable to CAL_PASSDOWN.
|
|
||||||
|
|
||||||
Fixed misc compile warnings and bugs.
|
|
||||||
|
|
||||||
Fixed problem of incorrect paths in the formation of installed
|
|
||||||
calc shell scripts.
|
|
||||||
|
|
||||||
|
|
||||||
The following are the changes from calc version 2.11.0t10 to 2.11.0t11:
|
|
||||||
|
|
||||||
Misc code cleanup. Removed dead code. Removed trailing whitespace.
|
Misc code cleanup. Removed dead code. Removed trailing whitespace.
|
||||||
Fixed whitespace to make the best use of 8 character tabs.
|
Fixed whitespace to make the best use of 8 character tabs.
|
||||||
@@ -138,6 +91,14 @@ The following are the changes from calc version 2.11.0t10 to 2.11.0t11:
|
|||||||
instead of returning integers. One cannot use integers to set
|
instead of returning integers. One cannot use integers to set
|
||||||
these values, so returning integers was useless.
|
these values, so returning integers was useless.
|
||||||
|
|
||||||
|
The following config values return "on" or "off" strings:
|
||||||
|
|
||||||
|
tilde tab leadzero fullzero blkverbose verbose_quit
|
||||||
|
|
||||||
|
These config values can still be set with same boolean strings
|
||||||
|
("on", "off", "true", "false", "t", ...) as well as via the
|
||||||
|
numerical values 0 (for "off") and non-0 (for "on"), however.
|
||||||
|
|
||||||
Applied the dangling name fix from Ernest Bowen <ernie@turing.une.edu.au>.
|
Applied the dangling name fix from Ernest Bowen <ernie@turing.une.edu.au>.
|
||||||
|
|
||||||
Show func prints function on order of their indices, and with
|
Show func prints function on order of their indices, and with
|
||||||
@@ -177,118 +138,6 @@ The following are the changes from calc version 2.11.0t10 to 2.11.0t11:
|
|||||||
|
|
||||||
Fixed the make depend rule.
|
Fixed the make depend rule.
|
||||||
|
|
||||||
Applied Ernest Bowen's <ernie@turing.une.edu.au> complex function
|
|
||||||
power(), exp() and transcendental function patch:
|
|
||||||
|
|
||||||
Calc will return a "too-large argument" error-value for exp(x,
|
|
||||||
epsilon) if re(x) >= 2^30 or if an estimate indicates that the
|
|
||||||
result will have absolute value greater than 2^2^30 * epsilon.
|
|
||||||
Otherwise the evaluation will be attempted but may fail due to
|
|
||||||
shortage of memory or may require a long runtime if the result
|
|
||||||
will be very large.
|
|
||||||
|
|
||||||
The power(a, b, epsilon) builtin will return a "too-large result"
|
|
||||||
if an estimate indicates that the result will have absolute value
|
|
||||||
> 2^2^30 * epsilon. Otherwise the evaluation will be attempted
|
|
||||||
but may fail due to shortage of memory or may require a long
|
|
||||||
runtime if the result will be very large.
|
|
||||||
|
|
||||||
Changes have been made to the algorithms used for some special
|
|
||||||
functions sinh(), cosh(), tanh(), sin(), cos(), etc., that make
|
|
||||||
use of exp(). In particular tanh(x) is now much faster and
|
|
||||||
doesn't run out of memory when x is very large - the value to
|
|
||||||
be returned is then 1 to a high degree of accuracy.
|
|
||||||
|
|
||||||
When the true value of a transcendental function is 1, as is
|
|
||||||
cos(x) for x == 0, calc's version of the function will now return
|
|
||||||
1 rather than the nearest multiple of epsilon. E.g. cos(0, 3/8)
|
|
||||||
no longer returns 9/8.
|
|
||||||
|
|
||||||
The restriction of abs(n) < 1000000 on scale(x, n) has been
|
|
||||||
removed. The only condition n now has to satisfy for calc to
|
|
||||||
attempt the operation is n < 2^31, the same as for calc to
|
|
||||||
attempt x << n and x^n.
|
|
||||||
|
|
||||||
Changed root(x,n) so that when x is negative and n is odd it
|
|
||||||
returns the principal complex n-th root of x rather than -1, e.g.
|
|
||||||
root(-1,3) now returns -.5+.8660...i.
|
|
||||||
|
|
||||||
Changed power(a,b) to permit a to be negative when b is real.
|
|
||||||
E.g. power(-2,3) will now return 8 rather than cause a "negative
|
|
||||||
base" error.
|
|
||||||
|
|
||||||
Fixed several improper free and link problems in the comfunc.c code.
|
|
||||||
|
|
||||||
Removed BOOL_B64 symbol from Makefile.
|
|
||||||
|
|
||||||
The following config values return "true" or "false" strings:
|
|
||||||
|
|
||||||
tilde tab leadzero fullzero blkverbose verbose_quit
|
|
||||||
|
|
||||||
These config values can still be set with same boolean strings
|
|
||||||
("on", "off", "true", "false", "t", ...) as well as via the
|
|
||||||
numerical values 0 (for "false") and non-0 (for "true"), however.
|
|
||||||
|
|
||||||
Added -s to the calc command line. The -s flag will cause unused
|
|
||||||
args (args after all of the -options on the command line) to remain
|
|
||||||
as unevaluated strings.
|
|
||||||
|
|
||||||
If calc is called with -s, then the new function argv() will return
|
|
||||||
the number of strings on the command line. Also argv(n) will return
|
|
||||||
the n-th such string or null is no such string exists.
|
|
||||||
|
|
||||||
Calc now handles calc shell scripts. A calc shell script is an
|
|
||||||
executable file that starts with:
|
|
||||||
|
|
||||||
#!/usr/local/bin/calc -S
|
|
||||||
|
|
||||||
Where ``/usr/local/bin/calc'' is the path to the calc binary.
|
|
||||||
Additional -options may be added to the line, but it MUST
|
|
||||||
start with -S. For example, the the executable file ``plus''
|
|
||||||
contain the following:
|
|
||||||
|
|
||||||
#!/usr/local/bin/calc -S -e
|
|
||||||
/*
|
|
||||||
* This is a simple calc shell script to add two values
|
|
||||||
*/
|
|
||||||
print eval(argv(0)) + eval(argv(1));
|
|
||||||
|
|
||||||
then the following command:
|
|
||||||
|
|
||||||
./plus 23 'pi(1e-5)'
|
|
||||||
|
|
||||||
will print:
|
|
||||||
|
|
||||||
26.14159
|
|
||||||
|
|
||||||
If calc is called with -S as the first arg, then calc will assume that
|
|
||||||
it is being called from a #! calc shell script file. The -S implies
|
|
||||||
the -s flag. If -i is not given, -S also implies -d and -p.
|
|
||||||
|
|
||||||
Fixed the problem with non-literal string type checking for the
|
|
||||||
C printf-like functions. Able to determine if "%ld" or "%lld"
|
|
||||||
is appropriate for printing of 64 bit long longs by way of the C
|
|
||||||
symbol L64_FORMAT in the longlong.h header file.
|
|
||||||
|
|
||||||
The following lines are treated as comments by calc:
|
|
||||||
|
|
||||||
#! this is a comment
|
|
||||||
# this is a comment
|
|
||||||
# this is a comment
|
|
||||||
#
|
|
||||||
# The lone # above was also a comment
|
|
||||||
|
|
||||||
Improved how calc makes changes to file descriptor interactive state.
|
|
||||||
Moved state changing code to calc_tty() and orig_tty() in lib_calc.c.
|
|
||||||
The libcalc_call_me_last() function will restore all changed descriptor
|
|
||||||
states that have not already been restored.
|
|
||||||
|
|
||||||
Added the following read-only config values:
|
|
||||||
|
|
||||||
config("program") path to calc program or calc shell script
|
|
||||||
config("basename") basename of config("program")
|
|
||||||
config("version") calc version string
|
|
||||||
|
|
||||||
|
|
||||||
The following are the changes from calc version 2.11.0t8.9.1 to 2.11.0t9.4.5:
|
The following are the changes from calc version 2.11.0t8.9.1 to 2.11.0t9.4.5:
|
||||||
|
|
||||||
@@ -4691,29 +4540,3 @@ Following is a list of visible changes to calc from version 1.24.7 to 1.26.1:
|
|||||||
was fixed.
|
was fixed.
|
||||||
|
|
||||||
A small bug in the library file regress.cal was fixed.
|
A small bug in the library file regress.cal was fixed.
|
||||||
|
|
||||||
## Copyright (C) 1999 Landon Curt Noll
|
|
||||||
##
|
|
||||||
## Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
## the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
## as published by the Free Software Foundation.
|
|
||||||
##
|
|
||||||
## Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
## or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
## Public License for more details.
|
|
||||||
##
|
|
||||||
## A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
## distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
## received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
##
|
|
||||||
## @(#) $Revision: 29.2 $
|
|
||||||
## @(#) $Id: CHANGES,v 29.2 1999/12/14 19:40:18 chongo Exp $
|
|
||||||
## @(#) $Source: /usr/local/src/cmd/calc/RCS/CHANGES,v $
|
|
||||||
##
|
|
||||||
## Under source code control: 1993/06/02 18:12:57
|
|
||||||
## File existed as early as: 1989
|
|
||||||
##
|
|
||||||
## chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
## Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
|
192
COPYING
192
COPYING
@@ -1,192 +0,0 @@
|
|||||||
calc - arbitrary precision calculator
|
|
||||||
|
|
||||||
|
|
||||||
This file is Copyrighted
|
|
||||||
------------------------
|
|
||||||
|
|
||||||
This file is covered under the following Copyright:
|
|
||||||
|
|
||||||
Copyright (C) 1999 Landon Curt Noll
|
|
||||||
All rights reserved.
|
|
||||||
|
|
||||||
Everyone is permitted to copy and distribute verbatim copies
|
|
||||||
of this license document, but changing it is not allowed.
|
|
||||||
|
|
||||||
# @(#) $Revision: 29.1 $
|
|
||||||
# @(#) $Id: COPYING,v 29.1 1999/12/14 09:15:29 chongo Exp $
|
|
||||||
# @(#) $Source: /usr/local/src/cmd/calc/RCS/COPYING,v $
|
|
||||||
|
|
||||||
=-=
|
|
||||||
|
|
||||||
Calc is covered by the GNU Lesser General Public License
|
|
||||||
--------------------------------------------------------
|
|
||||||
|
|
||||||
Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
the terms of the GNU Lesser General Public License as published by
|
|
||||||
the Free Software Foundation version 2.1 of the License.
|
|
||||||
|
|
||||||
Calc is several binary link libraries, several modules, associated
|
|
||||||
interface definition files and scripts used to control its compilation
|
|
||||||
and installation.
|
|
||||||
|
|
||||||
Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
Public License for more details.
|
|
||||||
|
|
||||||
A copy of the GNU Lesser General Public License is distributed with
|
|
||||||
calc under the filename:
|
|
||||||
|
|
||||||
COPYING-LGPL
|
|
||||||
|
|
||||||
You may display this file by the calc command: help copying
|
|
||||||
|
|
||||||
You may display the GNU Lesser General
|
|
||||||
Public License by the calc command: help copying-lgpl
|
|
||||||
|
|
||||||
You should have received a copy of the version 2.1 GNU Lesser General
|
|
||||||
Public License with calc; if not, write to:
|
|
||||||
|
|
||||||
Free Software Foundation, Inc.
|
|
||||||
59 Temple Place
|
|
||||||
Suite 330
|
|
||||||
Boston, MA 02111-1307
|
|
||||||
USA
|
|
||||||
|
|
||||||
The contact addresses for calc is as follows:
|
|
||||||
|
|
||||||
Web: http://reality.sgi.com/chongo/tech/comp/calc/index.html
|
|
||||||
http://www.isthe.com/chongo/tech/comp/calc/index.html
|
|
||||||
|
|
||||||
EMail: calc-tester at postofc dot corp dot sgi dot com
|
|
||||||
calc-tester at isthe dot com
|
|
||||||
|
|
||||||
[[ Replace 'at' with @, 'dot' is with . and remove spaces ]]
|
|
||||||
|
|
||||||
The 2nd address set is provided in case the 1st address set no
|
|
||||||
longer functions.
|
|
||||||
|
|
||||||
=-=
|
|
||||||
|
|
||||||
Calc's relationship to the GNU Lesser General Public License
|
|
||||||
------------------------------------------------------------
|
|
||||||
|
|
||||||
In section 0 of the GNU Lesser General Public License, one finds
|
|
||||||
the following definition:
|
|
||||||
|
|
||||||
The "Library", below, refers to any such software library or
|
|
||||||
work which has been distributed under these terms.
|
|
||||||
|
|
||||||
Calc is distributed under the terms of the GNU Lesser
|
|
||||||
General Public License.
|
|
||||||
|
|
||||||
In the same section 0, one also find the following:
|
|
||||||
|
|
||||||
For a library, complete source code means all the source code
|
|
||||||
for all modules it contains, plus any associated interface
|
|
||||||
definition files, plus the scripts used to control compilation
|
|
||||||
and installation of the library.
|
|
||||||
|
|
||||||
There are at least two calc binary link libraries found in calc:
|
|
||||||
|
|
||||||
libcalc.a libcustcalc.a
|
|
||||||
|
|
||||||
Clearly all files that go into the creation of those binary link
|
|
||||||
libraries are covered under the License.
|
|
||||||
|
|
||||||
The ``scripts used to control compilation and installation of the
|
|
||||||
of the library'' include:
|
|
||||||
|
|
||||||
* Makefiles
|
|
||||||
* source files created by the Makefiles
|
|
||||||
* source code used in the creation of intermediate source files
|
|
||||||
|
|
||||||
All of those files are covered under the License.
|
|
||||||
|
|
||||||
The ``associated interface definition files'' are those files that:
|
|
||||||
|
|
||||||
* show how the calc binary link libraries are used
|
|
||||||
* test the validity of the binary link libraries
|
|
||||||
* document routines found in the binary link libraries
|
|
||||||
* show how one can interactively use the binary link libraries
|
|
||||||
|
|
||||||
Calc provides an extensive set of files that perform the above
|
|
||||||
functions.
|
|
||||||
|
|
||||||
* files under the sample sub-directory
|
|
||||||
* files under the help sub-directory
|
|
||||||
* files under the lib sub-directory
|
|
||||||
* the main calc.c file
|
|
||||||
|
|
||||||
The ``complete source code'' includes ALL files shipped with calc,
|
|
||||||
except for the exception files explicitly listed in the ``Calc
|
|
||||||
copyrights and exception files'' section below.
|
|
||||||
|
|
||||||
=-=
|
|
||||||
|
|
||||||
Calc copyrights and exception files
|
|
||||||
-----------------------------------
|
|
||||||
|
|
||||||
With the exception of the files listed below, Calc is covered under
|
|
||||||
the following Copyrights:
|
|
||||||
|
|
||||||
Copyright (C) year David I. Bell
|
|
||||||
Copyright (C) year David I. Bell and Landon Curt Noll
|
|
||||||
Copyright (C) year David I. Bell and Ernest Bowen
|
|
||||||
Copyright (C) year David I. Bell, Landon Curt Noll and Ernest Bowen
|
|
||||||
Copyright (C) year Landon Curt Noll
|
|
||||||
Copyright (C) year Ernest Bowen and Landon Curt Noll
|
|
||||||
Copyright (C) year Ernest Bowen
|
|
||||||
|
|
||||||
A few files are not covered under the GNU Lesser General Public
|
|
||||||
License. The source files not covered are:
|
|
||||||
|
|
||||||
shs1.c shs1.h shs.c shs.h
|
|
||||||
md5.c md5.h lib/qtime.cal COPYING
|
|
||||||
COPYING-LGPL
|
|
||||||
|
|
||||||
The file COPYING-LGPL, which contains a copy of the version 2.1
|
|
||||||
GNU Lesser General Public License, is itself Copyrighted by the
|
|
||||||
Free Software Foundation, Inc. Please note that the Free Software
|
|
||||||
Foundation, Inc. does NOT have a copyright over calc, only the
|
|
||||||
COPYING-LGPL that is supplied with calc.
|
|
||||||
|
|
||||||
This file, COPYING, is distributed under the Copyright found at the
|
|
||||||
top of this file. It is important to note that you may distribute
|
|
||||||
verbatim copies of this file but you may not modify this file.
|
|
||||||
|
|
||||||
=-=
|
|
||||||
|
|
||||||
General Copyleft and License info
|
|
||||||
---------------------------------
|
|
||||||
|
|
||||||
For general information on Copylefts, see:
|
|
||||||
|
|
||||||
http://www.gnu.org/copyleft/
|
|
||||||
|
|
||||||
For information on GNU Lesser General Public Licenses, see:
|
|
||||||
|
|
||||||
http://www.gnu.org/copyleft/lesser.html
|
|
||||||
http://www.gnu.org/copyleft/lesser.txt
|
|
||||||
|
|
||||||
=-=
|
|
||||||
|
|
||||||
Why calc did not use the GNU General Public License
|
|
||||||
---------------------------------------------------
|
|
||||||
|
|
||||||
It has been suggested that one should consider using the GNU General
|
|
||||||
Public License instead of the GNU Lesser General Public License:
|
|
||||||
|
|
||||||
http://www.gnu.org/philosophy/why-not-lgpl.html
|
|
||||||
|
|
||||||
As you can read in the above URL, there are times where a library
|
|
||||||
cannot give free software any particular advantage. One of those
|
|
||||||
times is when there is significantly similar versions available
|
|
||||||
that are not covered under a Copyleft such as the GNU General Public
|
|
||||||
License.
|
|
||||||
|
|
||||||
The reason why calc was placed under the GNU Lesser General Public
|
|
||||||
License is because for many years (1984 thru 1999), calc was offered
|
|
||||||
without any form of Copyleft. At the time calc was placed under
|
|
||||||
the GNU Lesser General Public License, a number of systems and
|
|
||||||
distributions distributed calc without a Copyleft.
|
|
504
COPYING-LGPL
504
COPYING-LGPL
@@ -1,504 +0,0 @@
|
|||||||
GNU LESSER GENERAL PUBLIC LICENSE
|
|
||||||
Version 2.1, February 1999
|
|
||||||
|
|
||||||
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
|
|
||||||
59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
||||||
Everyone is permitted to copy and distribute verbatim copies
|
|
||||||
of this license document, but changing it is not allowed.
|
|
||||||
|
|
||||||
[This is the first released version of the Lesser GPL. It also counts
|
|
||||||
as the successor of the GNU Library Public License, version 2, hence
|
|
||||||
the version number 2.1.]
|
|
||||||
|
|
||||||
Preamble
|
|
||||||
|
|
||||||
The licenses for most software are designed to take away your
|
|
||||||
freedom to share and change it. By contrast, the GNU General Public
|
|
||||||
Licenses are intended to guarantee your freedom to share and change
|
|
||||||
free software--to make sure the software is free for all its users.
|
|
||||||
|
|
||||||
This license, the Lesser General Public License, applies to some
|
|
||||||
specially designated software packages--typically libraries--of the
|
|
||||||
Free Software Foundation and other authors who decide to use it. You
|
|
||||||
can use it too, but we suggest you first think carefully about whether
|
|
||||||
this license or the ordinary General Public License is the better
|
|
||||||
strategy to use in any particular case, based on the explanations below.
|
|
||||||
|
|
||||||
When we speak of free software, we are referring to freedom of use,
|
|
||||||
not price. Our General Public Licenses are designed to make sure that
|
|
||||||
you have the freedom to distribute copies of free software (and charge
|
|
||||||
for this service if you wish); that you receive source code or can get
|
|
||||||
it if you want it; that you can change the software and use pieces of
|
|
||||||
it in new free programs; and that you are informed that you can do
|
|
||||||
these things.
|
|
||||||
|
|
||||||
To protect your rights, we need to make restrictions that forbid
|
|
||||||
distributors to deny you these rights or to ask you to surrender these
|
|
||||||
rights. These restrictions translate to certain responsibilities for
|
|
||||||
you if you distribute copies of the library or if you modify it.
|
|
||||||
|
|
||||||
For example, if you distribute copies of the library, whether gratis
|
|
||||||
or for a fee, you must give the recipients all the rights that we gave
|
|
||||||
you. You must make sure that they, too, receive or can get the source
|
|
||||||
code. If you link other code with the library, you must provide
|
|
||||||
complete object files to the recipients, so that they can relink them
|
|
||||||
with the library after making changes to the library and recompiling
|
|
||||||
it. And you must show them these terms so they know their rights.
|
|
||||||
|
|
||||||
We protect your rights with a two-step method: (1) we copyright the
|
|
||||||
library, and (2) we offer you this license, which gives you legal
|
|
||||||
permission to copy, distribute and/or modify the library.
|
|
||||||
|
|
||||||
To protect each distributor, we want to make it very clear that
|
|
||||||
there is no warranty for the free library. Also, if the library is
|
|
||||||
modified by someone else and passed on, the recipients should know
|
|
||||||
that what they have is not the original version, so that the original
|
|
||||||
author's reputation will not be affected by problems that might be
|
|
||||||
introduced by others.
|
|
||||||
|
|
||||||
Finally, software patents pose a constant threat to the existence of
|
|
||||||
any free program. We wish to make sure that a company cannot
|
|
||||||
effectively restrict the users of a free program by obtaining a
|
|
||||||
restrictive license from a patent holder. Therefore, we insist that
|
|
||||||
any patent license obtained for a version of the library must be
|
|
||||||
consistent with the full freedom of use specified in this license.
|
|
||||||
|
|
||||||
Most GNU software, including some libraries, is covered by the
|
|
||||||
ordinary GNU General Public License. This license, the GNU Lesser
|
|
||||||
General Public License, applies to certain designated libraries, and
|
|
||||||
is quite different from the ordinary General Public License. We use
|
|
||||||
this license for certain libraries in order to permit linking those
|
|
||||||
libraries into non-free programs.
|
|
||||||
|
|
||||||
When a program is linked with a library, whether statically or using
|
|
||||||
a shared library, the combination of the two is legally speaking a
|
|
||||||
combined work, a derivative of the original library. The ordinary
|
|
||||||
General Public License therefore permits such linking only if the
|
|
||||||
entire combination fits its criteria of freedom. The Lesser General
|
|
||||||
Public License permits more lax criteria for linking other code with
|
|
||||||
the library.
|
|
||||||
|
|
||||||
We call this license the "Lesser" General Public License because it
|
|
||||||
does Less to protect the user's freedom than the ordinary General
|
|
||||||
Public License. It also provides other free software developers Less
|
|
||||||
of an advantage over competing non-free programs. These disadvantages
|
|
||||||
are the reason we use the ordinary General Public License for many
|
|
||||||
libraries. However, the Lesser license provides advantages in certain
|
|
||||||
special circumstances.
|
|
||||||
|
|
||||||
For example, on rare occasions, there may be a special need to
|
|
||||||
encourage the widest possible use of a certain library, so that it becomes
|
|
||||||
a de-facto standard. To achieve this, non-free programs must be
|
|
||||||
allowed to use the library. A more frequent case is that a free
|
|
||||||
library does the same job as widely used non-free libraries. In this
|
|
||||||
case, there is little to gain by limiting the free library to free
|
|
||||||
software only, so we use the Lesser General Public License.
|
|
||||||
|
|
||||||
In other cases, permission to use a particular library in non-free
|
|
||||||
programs enables a greater number of people to use a large body of
|
|
||||||
free software. For example, permission to use the GNU C Library in
|
|
||||||
non-free programs enables many more people to use the whole GNU
|
|
||||||
operating system, as well as its variant, the GNU/Linux operating
|
|
||||||
system.
|
|
||||||
|
|
||||||
Although the Lesser General Public License is Less protective of the
|
|
||||||
users' freedom, it does ensure that the user of a program that is
|
|
||||||
linked with the Library has the freedom and the wherewithal to run
|
|
||||||
that program using a modified version of the Library.
|
|
||||||
|
|
||||||
The precise terms and conditions for copying, distribution and
|
|
||||||
modification follow. Pay close attention to the difference between a
|
|
||||||
"work based on the library" and a "work that uses the library". The
|
|
||||||
former contains code derived from the library, whereas the latter must
|
|
||||||
be combined with the library in order to run.
|
|
||||||
|
|
||||||
GNU LESSER GENERAL PUBLIC LICENSE
|
|
||||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
|
||||||
|
|
||||||
0. This License Agreement applies to any software library or other
|
|
||||||
program which contains a notice placed by the copyright holder or
|
|
||||||
other authorized party saying it may be distributed under the terms of
|
|
||||||
this Lesser General Public License (also called "this License").
|
|
||||||
Each licensee is addressed as "you".
|
|
||||||
|
|
||||||
A "library" means a collection of software functions and/or data
|
|
||||||
prepared so as to be conveniently linked with application programs
|
|
||||||
(which use some of those functions and data) to form executables.
|
|
||||||
|
|
||||||
The "Library", below, refers to any such software library or work
|
|
||||||
which has been distributed under these terms. A "work based on the
|
|
||||||
Library" means either the Library or any derivative work under
|
|
||||||
copyright law: that is to say, a work containing the Library or a
|
|
||||||
portion of it, either verbatim or with modifications and/or translated
|
|
||||||
straightforwardly into another language. (Hereinafter, translation is
|
|
||||||
included without limitation in the term "modification".)
|
|
||||||
|
|
||||||
"Source code" for a work means the preferred form of the work for
|
|
||||||
making modifications to it. For a library, complete source code means
|
|
||||||
all the source code for all modules it contains, plus any associated
|
|
||||||
interface definition files, plus the scripts used to control compilation
|
|
||||||
and installation of the library.
|
|
||||||
|
|
||||||
Activities other than copying, distribution and modification are not
|
|
||||||
covered by this License; they are outside its scope. The act of
|
|
||||||
running a program using the Library is not restricted, and output from
|
|
||||||
such a program is covered only if its contents constitute a work based
|
|
||||||
on the Library (independent of the use of the Library in a tool for
|
|
||||||
writing it). Whether that is true depends on what the Library does
|
|
||||||
and what the program that uses the Library does.
|
|
||||||
|
|
||||||
1. You may copy and distribute verbatim copies of the Library's
|
|
||||||
complete source code as you receive it, in any medium, provided that
|
|
||||||
you conspicuously and appropriately publish on each copy an
|
|
||||||
appropriate copyright notice and disclaimer of warranty; keep intact
|
|
||||||
all the notices that refer to this License and to the absence of any
|
|
||||||
warranty; and distribute a copy of this License along with the
|
|
||||||
Library.
|
|
||||||
|
|
||||||
You may charge a fee for the physical act of transferring a copy,
|
|
||||||
and you may at your option offer warranty protection in exchange for a
|
|
||||||
fee.
|
|
||||||
|
|
||||||
2. You may modify your copy or copies of the Library or any portion
|
|
||||||
of it, thus forming a work based on the Library, and copy and
|
|
||||||
distribute such modifications or work under the terms of Section 1
|
|
||||||
above, provided that you also meet all of these conditions:
|
|
||||||
|
|
||||||
a) The modified work must itself be a software library.
|
|
||||||
|
|
||||||
b) You must cause the files modified to carry prominent notices
|
|
||||||
stating that you changed the files and the date of any change.
|
|
||||||
|
|
||||||
c) You must cause the whole of the work to be licensed at no
|
|
||||||
charge to all third parties under the terms of this License.
|
|
||||||
|
|
||||||
d) If a facility in the modified Library refers to a function or a
|
|
||||||
table of data to be supplied by an application program that uses
|
|
||||||
the facility, other than as an argument passed when the facility
|
|
||||||
is invoked, then you must make a good faith effort to ensure that,
|
|
||||||
in the event an application does not supply such function or
|
|
||||||
table, the facility still operates, and performs whatever part of
|
|
||||||
its purpose remains meaningful.
|
|
||||||
|
|
||||||
(For example, a function in a library to compute square roots has
|
|
||||||
a purpose that is entirely well-defined independent of the
|
|
||||||
application. Therefore, Subsection 2d requires that any
|
|
||||||
application-supplied function or table used by this function must
|
|
||||||
be optional: if the application does not supply it, the square
|
|
||||||
root function must still compute square roots.)
|
|
||||||
|
|
||||||
These requirements apply to the modified work as a whole. If
|
|
||||||
identifiable sections of that work are not derived from the Library,
|
|
||||||
and can be reasonably considered independent and separate works in
|
|
||||||
themselves, then this License, and its terms, do not apply to those
|
|
||||||
sections when you distribute them as separate works. But when you
|
|
||||||
distribute the same sections as part of a whole which is a work based
|
|
||||||
on the Library, the distribution of the whole must be on the terms of
|
|
||||||
this License, whose permissions for other licensees extend to the
|
|
||||||
entire whole, and thus to each and every part regardless of who wrote
|
|
||||||
it.
|
|
||||||
|
|
||||||
Thus, it is not the intent of this section to claim rights or contest
|
|
||||||
your rights to work written entirely by you; rather, the intent is to
|
|
||||||
exercise the right to control the distribution of derivative or
|
|
||||||
collective works based on the Library.
|
|
||||||
|
|
||||||
In addition, mere aggregation of another work not based on the Library
|
|
||||||
with the Library (or with a work based on the Library) on a volume of
|
|
||||||
a storage or distribution medium does not bring the other work under
|
|
||||||
the scope of this License.
|
|
||||||
|
|
||||||
3. You may opt to apply the terms of the ordinary GNU General Public
|
|
||||||
License instead of this License to a given copy of the Library. To do
|
|
||||||
this, you must alter all the notices that refer to this License, so
|
|
||||||
that they refer to the ordinary GNU General Public License, version 2,
|
|
||||||
instead of to this License. (If a newer version than version 2 of the
|
|
||||||
ordinary GNU General Public License has appeared, then you can specify
|
|
||||||
that version instead if you wish.) Do not make any other change in
|
|
||||||
these notices.
|
|
||||||
|
|
||||||
Once this change is made in a given copy, it is irreversible for
|
|
||||||
that copy, so the ordinary GNU General Public License applies to all
|
|
||||||
subsequent copies and derivative works made from that copy.
|
|
||||||
|
|
||||||
This option is useful when you wish to copy part of the code of
|
|
||||||
the Library into a program that is not a library.
|
|
||||||
|
|
||||||
4. You may copy and distribute the Library (or a portion or
|
|
||||||
derivative of it, under Section 2) in object code or executable form
|
|
||||||
under the terms of Sections 1 and 2 above provided that you accompany
|
|
||||||
it with the complete corresponding machine-readable source code, which
|
|
||||||
must be distributed under the terms of Sections 1 and 2 above on a
|
|
||||||
medium customarily used for software interchange.
|
|
||||||
|
|
||||||
If distribution of object code is made by offering access to copy
|
|
||||||
from a designated place, then offering equivalent access to copy the
|
|
||||||
source code from the same place satisfies the requirement to
|
|
||||||
distribute the source code, even though third parties are not
|
|
||||||
compelled to copy the source along with the object code.
|
|
||||||
|
|
||||||
5. A program that contains no derivative of any portion of the
|
|
||||||
Library, but is designed to work with the Library by being compiled or
|
|
||||||
linked with it, is called a "work that uses the Library". Such a
|
|
||||||
work, in isolation, is not a derivative work of the Library, and
|
|
||||||
therefore falls outside the scope of this License.
|
|
||||||
|
|
||||||
However, linking a "work that uses the Library" with the Library
|
|
||||||
creates an executable that is a derivative of the Library (because it
|
|
||||||
contains portions of the Library), rather than a "work that uses the
|
|
||||||
library". The executable is therefore covered by this License.
|
|
||||||
Section 6 states terms for distribution of such executables.
|
|
||||||
|
|
||||||
When a "work that uses the Library" uses material from a header file
|
|
||||||
that is part of the Library, the object code for the work may be a
|
|
||||||
derivative work of the Library even though the source code is not.
|
|
||||||
Whether this is true is especially significant if the work can be
|
|
||||||
linked without the Library, or if the work is itself a library. The
|
|
||||||
threshold for this to be true is not precisely defined by law.
|
|
||||||
|
|
||||||
If such an object file uses only numerical parameters, data
|
|
||||||
structure layouts and accessors, and small macros and small inline
|
|
||||||
functions (ten lines or less in length), then the use of the object
|
|
||||||
file is unrestricted, regardless of whether it is legally a derivative
|
|
||||||
work. (Executables containing this object code plus portions of the
|
|
||||||
Library will still fall under Section 6.)
|
|
||||||
|
|
||||||
Otherwise, if the work is a derivative of the Library, you may
|
|
||||||
distribute the object code for the work under the terms of Section 6.
|
|
||||||
Any executables containing that work also fall under Section 6,
|
|
||||||
whether or not they are linked directly with the Library itself.
|
|
||||||
|
|
||||||
6. As an exception to the Sections above, you may also combine or
|
|
||||||
link a "work that uses the Library" with the Library to produce a
|
|
||||||
work containing portions of the Library, and distribute that work
|
|
||||||
under terms of your choice, provided that the terms permit
|
|
||||||
modification of the work for the customer's own use and reverse
|
|
||||||
engineering for debugging such modifications.
|
|
||||||
|
|
||||||
You must give prominent notice with each copy of the work that the
|
|
||||||
Library is used in it and that the Library and its use are covered by
|
|
||||||
this License. You must supply a copy of this License. If the work
|
|
||||||
during execution displays copyright notices, you must include the
|
|
||||||
copyright notice for the Library among them, as well as a reference
|
|
||||||
directing the user to the copy of this License. Also, you must do one
|
|
||||||
of these things:
|
|
||||||
|
|
||||||
a) Accompany the work with the complete corresponding
|
|
||||||
machine-readable source code for the Library including whatever
|
|
||||||
changes were used in the work (which must be distributed under
|
|
||||||
Sections 1 and 2 above); and, if the work is an executable linked
|
|
||||||
with the Library, with the complete machine-readable "work that
|
|
||||||
uses the Library", as object code and/or source code, so that the
|
|
||||||
user can modify the Library and then relink to produce a modified
|
|
||||||
executable containing the modified Library. (It is understood
|
|
||||||
that the user who changes the contents of definitions files in the
|
|
||||||
Library will not necessarily be able to recompile the application
|
|
||||||
to use the modified definitions.)
|
|
||||||
|
|
||||||
b) Use a suitable shared library mechanism for linking with the
|
|
||||||
Library. A suitable mechanism is one that (1) uses at run time a
|
|
||||||
copy of the library already present on the user's computer system,
|
|
||||||
rather than copying library functions into the executable, and (2)
|
|
||||||
will operate properly with a modified version of the library, if
|
|
||||||
the user installs one, as long as the modified version is
|
|
||||||
interface-compatible with the version that the work was made with.
|
|
||||||
|
|
||||||
c) Accompany the work with a written offer, valid for at
|
|
||||||
least three years, to give the same user the materials
|
|
||||||
specified in Subsection 6a, above, for a charge no more
|
|
||||||
than the cost of performing this distribution.
|
|
||||||
|
|
||||||
d) If distribution of the work is made by offering access to copy
|
|
||||||
from a designated place, offer equivalent access to copy the above
|
|
||||||
specified materials from the same place.
|
|
||||||
|
|
||||||
e) Verify that the user has already received a copy of these
|
|
||||||
materials or that you have already sent this user a copy.
|
|
||||||
|
|
||||||
For an executable, the required form of the "work that uses the
|
|
||||||
Library" must include any data and utility programs needed for
|
|
||||||
reproducing the executable from it. However, as a special exception,
|
|
||||||
the materials to be distributed need not include anything that is
|
|
||||||
normally distributed (in either source or binary form) with the major
|
|
||||||
components (compiler, kernel, and so on) of the operating system on
|
|
||||||
which the executable runs, unless that component itself accompanies
|
|
||||||
the executable.
|
|
||||||
|
|
||||||
It may happen that this requirement contradicts the license
|
|
||||||
restrictions of other proprietary libraries that do not normally
|
|
||||||
accompany the operating system. Such a contradiction means you cannot
|
|
||||||
use both them and the Library together in an executable that you
|
|
||||||
distribute.
|
|
||||||
|
|
||||||
7. You may place library facilities that are a work based on the
|
|
||||||
Library side-by-side in a single library together with other library
|
|
||||||
facilities not covered by this License, and distribute such a combined
|
|
||||||
library, provided that the separate distribution of the work based on
|
|
||||||
the Library and of the other library facilities is otherwise
|
|
||||||
permitted, and provided that you do these two things:
|
|
||||||
|
|
||||||
a) Accompany the combined library with a copy of the same work
|
|
||||||
based on the Library, uncombined with any other library
|
|
||||||
facilities. This must be distributed under the terms of the
|
|
||||||
Sections above.
|
|
||||||
|
|
||||||
b) Give prominent notice with the combined library of the fact
|
|
||||||
that part of it is a work based on the Library, and explaining
|
|
||||||
where to find the accompanying uncombined form of the same work.
|
|
||||||
|
|
||||||
8. You may not copy, modify, sublicense, link with, or distribute
|
|
||||||
the Library except as expressly provided under this License. Any
|
|
||||||
attempt otherwise to copy, modify, sublicense, link with, or
|
|
||||||
distribute the Library is void, and will automatically terminate your
|
|
||||||
rights under this License. However, parties who have received copies,
|
|
||||||
or rights, from you under this License will not have their licenses
|
|
||||||
terminated so long as such parties remain in full compliance.
|
|
||||||
|
|
||||||
9. You are not required to accept this License, since you have not
|
|
||||||
signed it. However, nothing else grants you permission to modify or
|
|
||||||
distribute the Library or its derivative works. These actions are
|
|
||||||
prohibited by law if you do not accept this License. Therefore, by
|
|
||||||
modifying or distributing the Library (or any work based on the
|
|
||||||
Library), you indicate your acceptance of this License to do so, and
|
|
||||||
all its terms and conditions for copying, distributing or modifying
|
|
||||||
the Library or works based on it.
|
|
||||||
|
|
||||||
10. Each time you redistribute the Library (or any work based on the
|
|
||||||
Library), the recipient automatically receives a license from the
|
|
||||||
original licensor to copy, distribute, link with or modify the Library
|
|
||||||
subject to these terms and conditions. You may not impose any further
|
|
||||||
restrictions on the recipients' exercise of the rights granted herein.
|
|
||||||
You are not responsible for enforcing compliance by third parties with
|
|
||||||
this License.
|
|
||||||
|
|
||||||
11. If, as a consequence of a court judgment or allegation of patent
|
|
||||||
infringement or for any other reason (not limited to patent issues),
|
|
||||||
conditions are imposed on you (whether by court order, agreement or
|
|
||||||
otherwise) that contradict the conditions of this License, they do not
|
|
||||||
excuse you from the conditions of this License. If you cannot
|
|
||||||
distribute so as to satisfy simultaneously your obligations under this
|
|
||||||
License and any other pertinent obligations, then as a consequence you
|
|
||||||
may not distribute the Library at all. For example, if a patent
|
|
||||||
license would not permit royalty-free redistribution of the Library by
|
|
||||||
all those who receive copies directly or indirectly through you, then
|
|
||||||
the only way you could satisfy both it and this License would be to
|
|
||||||
refrain entirely from distribution of the Library.
|
|
||||||
|
|
||||||
If any portion of this section is held invalid or unenforceable under any
|
|
||||||
particular circumstance, the balance of the section is intended to apply,
|
|
||||||
and the section as a whole is intended to apply in other circumstances.
|
|
||||||
|
|
||||||
It is not the purpose of this section to induce you to infringe any
|
|
||||||
patents or other property right claims or to contest validity of any
|
|
||||||
such claims; this section has the sole purpose of protecting the
|
|
||||||
integrity of the free software distribution system which is
|
|
||||||
implemented by public license practices. Many people have made
|
|
||||||
generous contributions to the wide range of software distributed
|
|
||||||
through that system in reliance on consistent application of that
|
|
||||||
system; it is up to the author/donor to decide if he or she is willing
|
|
||||||
to distribute software through any other system and a licensee cannot
|
|
||||||
impose that choice.
|
|
||||||
|
|
||||||
This section is intended to make thoroughly clear what is believed to
|
|
||||||
be a consequence of the rest of this License.
|
|
||||||
|
|
||||||
12. If the distribution and/or use of the Library is restricted in
|
|
||||||
certain countries either by patents or by copyrighted interfaces, the
|
|
||||||
original copyright holder who places the Library under this License may add
|
|
||||||
an explicit geographical distribution limitation excluding those countries,
|
|
||||||
so that distribution is permitted only in or among countries not thus
|
|
||||||
excluded. In such case, this License incorporates the limitation as if
|
|
||||||
written in the body of this License.
|
|
||||||
|
|
||||||
13. The Free Software Foundation may publish revised and/or new
|
|
||||||
versions of the Lesser General Public License from time to time.
|
|
||||||
Such new versions will be similar in spirit to the present version,
|
|
||||||
but may differ in detail to address new problems or concerns.
|
|
||||||
|
|
||||||
Each version is given a distinguishing version number. If the Library
|
|
||||||
specifies a version number of this License which applies to it and
|
|
||||||
"any later version", you have the option of following the terms and
|
|
||||||
conditions either of that version or of any later version published by
|
|
||||||
the Free Software Foundation. If the Library does not specify a
|
|
||||||
license version number, you may choose any version ever published by
|
|
||||||
the Free Software Foundation.
|
|
||||||
|
|
||||||
14. If you wish to incorporate parts of the Library into other free
|
|
||||||
programs whose distribution conditions are incompatible with these,
|
|
||||||
write to the author to ask for permission. For software which is
|
|
||||||
copyrighted by the Free Software Foundation, write to the Free
|
|
||||||
Software Foundation; we sometimes make exceptions for this. Our
|
|
||||||
decision will be guided by the two goals of preserving the free status
|
|
||||||
of all derivatives of our free software and of promoting the sharing
|
|
||||||
and reuse of software generally.
|
|
||||||
|
|
||||||
NO WARRANTY
|
|
||||||
|
|
||||||
15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO
|
|
||||||
WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.
|
|
||||||
EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR
|
|
||||||
OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY
|
|
||||||
KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE
|
|
||||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
|
||||||
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE
|
|
||||||
LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME
|
|
||||||
THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
|
||||||
|
|
||||||
16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN
|
|
||||||
WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY
|
|
||||||
AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU
|
|
||||||
FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR
|
|
||||||
CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE
|
|
||||||
LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING
|
|
||||||
RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A
|
|
||||||
FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF
|
|
||||||
SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH
|
|
||||||
DAMAGES.
|
|
||||||
|
|
||||||
END OF TERMS AND CONDITIONS
|
|
||||||
|
|
||||||
How to Apply These Terms to Your New Libraries
|
|
||||||
|
|
||||||
If you develop a new library, and you want it to be of the greatest
|
|
||||||
possible use to the public, we recommend making it free software that
|
|
||||||
everyone can redistribute and change. You can do so by permitting
|
|
||||||
redistribution under these terms (or, alternatively, under the terms of the
|
|
||||||
ordinary General Public License).
|
|
||||||
|
|
||||||
To apply these terms, attach the following notices to the library. It is
|
|
||||||
safest to attach them to the start of each source file to most effectively
|
|
||||||
convey the exclusion of warranty; and each file should have at least the
|
|
||||||
"copyright" line and a pointer to where the full notice is found.
|
|
||||||
|
|
||||||
<one line to give the library's name and a brief idea of what it does.>
|
|
||||||
Copyright (C) <year> <name of author>
|
|
||||||
|
|
||||||
This library is free software; you can redistribute it and/or
|
|
||||||
modify it under the terms of the GNU Lesser General Public
|
|
||||||
License as published by the Free Software Foundation; either
|
|
||||||
version 2 of the License, or (at your option) any later version.
|
|
||||||
|
|
||||||
This library is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
Lesser General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public
|
|
||||||
License along with this library; if not, write to the Free Software
|
|
||||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
|
||||||
|
|
||||||
Also add information on how to contact you by electronic and paper mail.
|
|
||||||
|
|
||||||
You should also get your employer (if you work as a programmer) or your
|
|
||||||
school, if any, to sign a "copyright disclaimer" for the library, if
|
|
||||||
necessary. Here is a sample; alter the names:
|
|
||||||
|
|
||||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the
|
|
||||||
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
|
|
||||||
|
|
||||||
<signature of Ty Coon>, 1 April 1990
|
|
||||||
Ty Coon, President of Vice
|
|
||||||
|
|
||||||
That's all there is to it!
|
|
||||||
|
|
||||||
|
|
@@ -48,29 +48,3 @@ Installing calc in 4 easy steps:
|
|||||||
|
|
||||||
We suggest that you might want to read the README file and look at
|
We suggest that you might want to read the README file and look at
|
||||||
the calc help subsystem. See the README file for details.
|
the calc help subsystem. See the README file for details.
|
||||||
|
|
||||||
## Copyright (C) 1999 Landon Curt Noll
|
|
||||||
##
|
|
||||||
## Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
## the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
## as published by the Free Software Foundation.
|
|
||||||
##
|
|
||||||
## Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
## or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
## Public License for more details.
|
|
||||||
##
|
|
||||||
## A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
## distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
## received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
##
|
|
||||||
## @(#) $Revision: 29.1 $
|
|
||||||
## @(#) $Id: HOWTO.INSTALL,v 29.1 1999/12/14 09:15:29 chongo Exp $
|
|
||||||
## @(#) $Source: /usr/local/src/cmd/calc/RCS/HOWTO.INSTALL,v $
|
|
||||||
##
|
|
||||||
## Under source code control: 1999/09/27 20:48:44
|
|
||||||
## File existed as early as: 1999
|
|
||||||
##
|
|
||||||
## chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
## Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
|
55
LIBRARY
55
LIBRARY
@@ -1,11 +1,11 @@
|
|||||||
USING THE ARBITRARY PRECISION ROUTINES IN A C PROGRAM
|
USING THE ARBITRARY PRECISION ROUTINES IN A C PROGRAM
|
||||||
|
|
||||||
Part of the calc release consists of an arbitrary precision math link library.
|
Part of the calc release consists of an arbitrary precision math library.
|
||||||
This link library is used by the calc program to perform its own calculations.
|
This library is used by the calc program to perform its own calculations.
|
||||||
If you wish, you can ignore the calc program entirely and call the arbitrary
|
If you wish, you can ignore the calc program entirely and call the arbitrary
|
||||||
precision math routines from your own C programs.
|
precision math routines from your own C programs.
|
||||||
|
|
||||||
The link library is called libcalc.a, and provides routines to handle arbitrary
|
The library is called libcalc.a, and provides routines to handle arbitrary
|
||||||
precision arithmetic with integers, rational numbers, or complex numbers.
|
precision arithmetic with integers, rational numbers, or complex numbers.
|
||||||
There are also many numeric functions such as factorial and gcd, along
|
There are also many numeric functions such as factorial and gcd, along
|
||||||
with some transcendental functions such as sin and exp.
|
with some transcendental functions such as sin and exp.
|
||||||
@@ -49,7 +49,8 @@ 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 the include files needed to build
|
||||||
libcalc.a along with the link library itself are installed into ${LIBDIR}.
|
libcalc.a along with the library itself (and the lint library
|
||||||
|
llib-lcalc.ln, if made) are installed into ${LIBDIR}.
|
||||||
|
|
||||||
External programs may want to compile with:
|
External programs may want to compile with:
|
||||||
|
|
||||||
@@ -76,9 +77,9 @@ level in your program, and use longjmp in the math_error routine to return
|
|||||||
to that level and so recover from the error. This is what the calc program
|
to that level and so recover from the error. This is what the calc program
|
||||||
does.
|
does.
|
||||||
|
|
||||||
For convenience, the link library libcalc.a contains a math_error routine.
|
For convenience, the library libcalc.a contains a math_error routine.
|
||||||
By default, this routine simply prints a message to stderr and then exits.
|
By default, this routine simply prints a message to stderr and then exits.
|
||||||
By simply linking in this link library, any calc errors will result in a
|
By simply linking in this library, any calc errors will result in a
|
||||||
error message on stderr followed by an exit.
|
error message on stderr followed by an exit.
|
||||||
|
|
||||||
External programs that wish to use this math_error may want to compile with:
|
External programs that wish to use this math_error may want to compile with:
|
||||||
@@ -116,7 +117,7 @@ For example:
|
|||||||
OUTPUT ROUTINES
|
OUTPUT ROUTINES
|
||||||
---------------
|
---------------
|
||||||
|
|
||||||
The output from the routines in the link library normally goes to stdout. You
|
The output from the routines in the library normally goes to stdout. You
|
||||||
can divert that output to either another FILE handle, or else to a string.
|
can divert that output to either another FILE handle, or else to a string.
|
||||||
Read the routines in zio.c to see what is available. Diversions can be
|
Read the routines in zio.c to see what is available. Diversions can be
|
||||||
nested.
|
nested.
|
||||||
@@ -327,13 +328,13 @@ Examples of these are qnum to return the numerator, qden to return the
|
|||||||
denominator, qint to return the integer part of, qfrac to return the
|
denominator, qint to return the integer part of, qfrac to return the
|
||||||
fractional part of, and qinv to invert a fraction.
|
fractional part of, and qinv to invert a fraction.
|
||||||
|
|
||||||
There are some transcendental functions in the link library, such as sin
|
There are some transcendental functions in the library, such as sin and cos.
|
||||||
and cos. These cannot be evaluated exactly as fractions. Therefore,
|
These cannot be evaluated exactly as fractions. Therefore, they accept
|
||||||
they accept another argument which tells how accurate you want the result.
|
another argument which tells how accurate you want the result. This is an
|
||||||
This is an "epsilon" value, and the returned value will be within that
|
"epsilon" value, and the returned value will be within that quantity of
|
||||||
quantity of the correct value. This is usually an absolute difference,
|
the correct value. This is usually an absolute difference, but for some
|
||||||
but for some functions (such as exp), this is a relative difference.
|
functions (such as exp), this is a relative difference. For example, to
|
||||||
For example, to calculate sin(0.5) to 100 decimal places, you could do:
|
calculate sin(0.5) to 100 decimal places, you could do:
|
||||||
|
|
||||||
NUMBER *q, *ans, *epsilon;
|
NUMBER *q, *ans, *epsilon;
|
||||||
|
|
||||||
@@ -454,29 +455,3 @@ call. This is not required, but is does bring things to a closure.
|
|||||||
|
|
||||||
The function libcalc_call_me_last() takes no args and returns void. You
|
The function libcalc_call_me_last() takes no args and returns void. You
|
||||||
need call libcalc_call_me_last() only once.
|
need call libcalc_call_me_last() only once.
|
||||||
|
|
||||||
## Copyright (C) 1999 David I. Bell and Landon Curt Noll
|
|
||||||
##
|
|
||||||
## Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
## the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
## as published by the Free Software Foundation.
|
|
||||||
##
|
|
||||||
## Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
## or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
## Public License for more details.
|
|
||||||
##
|
|
||||||
## A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
## distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
## received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
##
|
|
||||||
## @(#) $Revision: 29.1 $
|
|
||||||
## @(#) $Id: LIBRARY,v 29.1 1999/12/14 09:15:29 chongo Exp $
|
|
||||||
## @(#) $Source: /usr/local/src/cmd/calc/RCS/LIBRARY,v $
|
|
||||||
##
|
|
||||||
## Under source code control: 1993/07/30 19:44:49
|
|
||||||
## File existed as early as: 1993
|
|
||||||
##
|
|
||||||
## chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
## Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
|
382
Makefile
382
Makefile
@@ -1,39 +1,16 @@
|
|||||||
#!/bin/make
|
#!/bin/make
|
||||||
#
|
#
|
||||||
# calc - arbitrary precision calculator
|
|
||||||
#
|
|
||||||
# (Generic calc makefile)
|
# (Generic calc makefile)
|
||||||
#
|
#
|
||||||
# Copyright (C) 1999 Landon Curt Noll
|
# Copyright (c) 1995 David I. Bell and Landon Curt Noll
|
||||||
|
# Permission is granted to use, distribute, or modify this source,
|
||||||
|
# provided that this copyright notice remains intact.
|
||||||
#
|
#
|
||||||
# Calc is open software; you can redistribute it and/or modify it under
|
# Arbitrary precision calculator.
|
||||||
# the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
# as published by the Free Software Foundation.
|
|
||||||
#
|
|
||||||
# Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
# Public License for more details.
|
|
||||||
#
|
|
||||||
# A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
# distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
# received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
#
|
|
||||||
# @(#) $Revision: 29.1 $
|
|
||||||
# @(#) $Id: Makefile.ship,v 29.1 1999/12/14 09:14:53 chongo Exp $
|
|
||||||
# @(#) $Source: /usr/local/src/cmd/calc/RCS/Makefile.ship,v $
|
|
||||||
#
|
|
||||||
# Under source code control: 1990/02/15 01:48:41
|
|
||||||
# File existed as early as: before 1990
|
|
||||||
#
|
|
||||||
# chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
# Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
#
|
#
|
||||||
# calculator by David I. Bell with help/mods from others
|
# calculator by David I. Bell with help/mods from others
|
||||||
# Makefile by Landon Curt Noll
|
# Makefile by Landon Curt Noll
|
||||||
|
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
#-=-=-=-=-=-=-=-=- You may want to change some values below -=-=-=-=-=-=-=-=-#
|
#-=-=-=-=-=-=-=-=- You may want to change some values below -=-=-=-=-=-=-=-=-#
|
||||||
##############################################################################
|
##############################################################################
|
||||||
@@ -325,21 +302,21 @@ HAVE_STRDUP=
|
|||||||
ALIGN32= -DMUST_ALIGN32
|
ALIGN32= -DMUST_ALIGN32
|
||||||
#ALIGN32= -UMUST_ALIGN32
|
#ALIGN32= -UMUST_ALIGN32
|
||||||
|
|
||||||
# where to install the *.cal, *.h and *.a files
|
# where to install binary files
|
||||||
#
|
|
||||||
# ${BINDIR} where to install binary files
|
|
||||||
# ${TOPDIR} the directory under which the calc directory will be placed.
|
|
||||||
# ${LIBDIR} where the *.cal, *.a, bindings and help dir are installed.
|
|
||||||
# ${INCDIR} where the locally installed include files are found.
|
|
||||||
# ${INCDIRCALC} where the calc include files are installed.
|
|
||||||
# ${HELPDIR} where the help directory is installed.
|
|
||||||
# ${CUSTOMLIBDIR} where custom *.cal files are installed.
|
|
||||||
# ${CUSTOMHELPDIR} where custom help files are installed.
|
|
||||||
# ${SCRIPTDIR} where calc shell scripts are installed.
|
|
||||||
#
|
#
|
||||||
BINDIR= /usr/local/bin
|
BINDIR= /usr/local/bin
|
||||||
#BINDIR= /usr/bin
|
#BINDIR= /usr/bin
|
||||||
#BINDIR= /usr/contrib/bin
|
#BINDIR= /usr/contrib/bin
|
||||||
|
|
||||||
|
# where to install the *.cal, *.h and *.a files
|
||||||
|
#
|
||||||
|
# ${TOPDIR} is the directory under which the calc directory will be placed.
|
||||||
|
# ${LIBDIR} is where the *.cal, *.a, bindings and help dir are installed.
|
||||||
|
# ${INCDIR} is where the locally installed include files are found.
|
||||||
|
# ${INCDIRCALC} is where the calc include files are installed.
|
||||||
|
# ${HELPDIR} is where the help directory is installed.
|
||||||
|
# ${CUSTOMLIBDIR} is where custom lib files are installed.
|
||||||
|
# ${CUSTOMHELPDIR} is where custom help files are installed.
|
||||||
#
|
#
|
||||||
TOPDIR= /usr/local/lib
|
TOPDIR= /usr/local/lib
|
||||||
#TOPDIR= /usr/lib
|
#TOPDIR= /usr/lib
|
||||||
@@ -352,7 +329,6 @@ INCDIR= /usr/local/include
|
|||||||
INCDIRCALC= ${INCDIR}/calc
|
INCDIRCALC= ${INCDIR}/calc
|
||||||
CUSTOMLIBDIR= ${LIBDIR}/custom
|
CUSTOMLIBDIR= ${LIBDIR}/custom
|
||||||
CUSTOMHELPDIR= ${HELPDIR}/custhelp
|
CUSTOMHELPDIR= ${HELPDIR}/custhelp
|
||||||
SCRIPTDIR= ${BINDIR}/cscript
|
|
||||||
|
|
||||||
# where man pages are installed
|
# where man pages are installed
|
||||||
#
|
#
|
||||||
@@ -417,12 +393,12 @@ MANMAKE= /usr/local/bin/manmake
|
|||||||
#MANMAKE= manmake
|
#MANMAKE= manmake
|
||||||
|
|
||||||
# If the $CALCPATH environment variable is not defined, then the following
|
# If the $CALCPATH environment variable is not defined, then the following
|
||||||
# path will be search for calc resource file routines.
|
# path will be search for calc lib routines.
|
||||||
#
|
#
|
||||||
CALCPATH= .:./cal:~/cal:${LIBDIR}:${CUSTOMLIBDIR}
|
CALCPATH= .:./lib:~/lib:${LIBDIR}:${CUSTOMLIBDIR}
|
||||||
|
|
||||||
# If the $CALCRC environment variable is not defined, then the following
|
# If the $CALCRC environment variable is not defined, then the following
|
||||||
# path will be search for calc resource files.
|
# path will be search for calc lib routines.
|
||||||
#
|
#
|
||||||
CALCRC= ${LIBDIR}/startup:~/.calcrc
|
CALCRC= ${LIBDIR}/startup:~/.calcrc
|
||||||
|
|
||||||
@@ -435,11 +411,11 @@ CALCRC= ${LIBDIR}/startup:~/.calcrc
|
|||||||
# NOTE: If you select the 'USE_READLINE= -DUSE_READLINE' mode, you must set:
|
# NOTE: If you select the 'USE_READLINE= -DUSE_READLINE' mode, you must set:
|
||||||
#
|
#
|
||||||
# READLINE_LIB The flags needed to link in the readline
|
# READLINE_LIB The flags needed to link in the readline
|
||||||
# and history link libraries
|
# and history libs
|
||||||
# READLINE_INCLUDE Where the readline include files reside
|
# READLINE_INCLUDE Where the readline include files reside
|
||||||
#
|
#
|
||||||
# NOTE: The GNU-readline code is not shipped with calc. You must have
|
# NOTE: The GNU-readline code is not shipped with calc. You must have
|
||||||
# the appropriate headers and link libs installed on your system in
|
# the appropriate headers and libs installed on your system in
|
||||||
# order to use it.
|
# order to use it.
|
||||||
#
|
#
|
||||||
# If in doubt, set USE_READLINE, READLINE_LIB and READLINE_INCLUDE to nothing.
|
# If in doubt, set USE_READLINE, READLINE_LIB and READLINE_INCLUDE to nothing.
|
||||||
@@ -465,35 +441,30 @@ CALCPAGER= more
|
|||||||
|
|
||||||
# Debug/Optimize options for ${CC} and ${LCC}
|
# Debug/Optimize options for ${CC} and ${LCC}
|
||||||
#
|
#
|
||||||
#DEBUG=
|
|
||||||
#
|
|
||||||
#DEBUG= -O
|
#DEBUG= -O
|
||||||
#DEBUG= -O -g
|
#DEBUG= -O -g
|
||||||
#DEBUG= -O -g3
|
#DEBUG= -O -g3
|
||||||
#
|
|
||||||
#DEBUG= -O1
|
#DEBUG= -O1
|
||||||
#DEBUG= -O1 -g
|
#DEBUG= -O1 -g
|
||||||
#DEBUG= -O1 -g3
|
#DEBUG= -O1 -g3
|
||||||
#
|
|
||||||
#DEBUG= -O2
|
#DEBUG= -O2
|
||||||
#DEBUG= -O2 -g
|
#DEBUG= -O2 -g
|
||||||
DEBUG= -O2 -g3
|
DEBUG= -O2 -g3
|
||||||
#DEBUG= -O2 -ipa
|
#DEBUG= -O2 -ipa
|
||||||
#DEBUG= -O2 -g3 -ipa
|
#DEBUG= -O2 -g3 -ipa
|
||||||
#
|
|
||||||
#DEBUG= -O3
|
#DEBUG= -O3
|
||||||
#DEBUG= -O3 -g
|
#DEBUG= -O3 -g
|
||||||
#DEBUG= -O3 -g3
|
#DEBUG= -O3 -g3
|
||||||
#DEBUG= -O3 -ipa
|
#DEBUG= -O3 -ipa
|
||||||
#DEBUG= -O3 -g3 -ipa
|
#DEBUG= -O3 -g3 -ipa
|
||||||
#
|
|
||||||
#DEBUG= -g
|
#DEBUG= -g
|
||||||
#DEBUG= -g3
|
#DEBUG= -g3
|
||||||
#DEBUG= -gx
|
#DEBUG= -gx
|
||||||
#DEBUG= -WM,-g
|
#DEBUG= -WM,-g
|
||||||
|
#DEBUG=
|
||||||
|
|
||||||
# On systems that have dynamic shared link libs, you may want want to disable
|
# On systems that have dynamic shared libs, you may want want to disable them
|
||||||
# them for faster calc startup.
|
# for faster calc startup.
|
||||||
#
|
#
|
||||||
# System type NO_SHARED recommendation
|
# System type NO_SHARED recommendation
|
||||||
#
|
#
|
||||||
@@ -508,7 +479,7 @@ NO_SHARED=
|
|||||||
#NO_SHARED= -dn
|
#NO_SHARED= -dn
|
||||||
#NO_SHARED= -non_shared
|
#NO_SHARED= -non_shared
|
||||||
|
|
||||||
# On some systems where you are disabling dynamic shared link libs, you may
|
# On some systems where you are disabling dynamic shared libs, you may
|
||||||
# need to pass a special flag to ${CC} and ${LCC} during linking stage.
|
# need to pass a special flag to ${CC} and ${LCC} during linking stage.
|
||||||
#
|
#
|
||||||
# System type NO_SHARED recommendation
|
# System type NO_SHARED recommendation
|
||||||
@@ -523,12 +494,41 @@ LD_NO_SHARED=
|
|||||||
#LD_NO_SHARED= -Wl,-rdata_shared
|
#LD_NO_SHARED= -Wl,-rdata_shared
|
||||||
|
|
||||||
# Some systems require one to use ranlib to add a symbol table to
|
# Some systems require one to use ranlib to add a symbol table to
|
||||||
# a *.a link library. Set RANLIB to the utility that performs this
|
# a *.a library. Set RANLIB to the utility that performs this action.
|
||||||
# action. Set RANLIB to : if your system does not need such a utility.
|
# Set RANLIB to : if your system does not need such a utility.
|
||||||
#
|
#
|
||||||
RANLIB=ranlib
|
RANLIB=ranlib
|
||||||
#RANLIB=:
|
#RANLIB=:
|
||||||
|
|
||||||
|
# Some systems are able to form lint libs. How it is formed depends
|
||||||
|
# on your system. If you do not care about lint, use : as the
|
||||||
|
# LINTLIB value.
|
||||||
|
#
|
||||||
|
# System type LINTLIB recommendation
|
||||||
|
#
|
||||||
|
# BSD ${LINT} ${LCFLAGS} ${LINTFLAGS} -u -Ccalc
|
||||||
|
# SYSV ${LINT} ${LCFLAGS} ${LINTFLAGS} -u -o calc
|
||||||
|
# disable :
|
||||||
|
#
|
||||||
|
# If in doubt and you don't care about lint, use LINTLIB= :
|
||||||
|
#
|
||||||
|
#LINTLIB= ${LINT} ${LCFLAGS} ${LINTFLAGS} -u -Ccalc
|
||||||
|
#LINTLIB= ${LINT} ${LCFLAGS} ${LINTFLAGS} -u -o calc
|
||||||
|
LINTLIB= :
|
||||||
|
|
||||||
|
# The lint flags vary from system to system. Some systems have the
|
||||||
|
# opposite meaning for the flags below. Other systems change flag
|
||||||
|
# meaning altogether.
|
||||||
|
#
|
||||||
|
# System LINTFLAGS recommendation
|
||||||
|
#
|
||||||
|
# SunOs -a -h -v -z
|
||||||
|
#
|
||||||
|
# If in doubt and you don't care about lint, set LINTFLAGS to empty.
|
||||||
|
#
|
||||||
|
#LINTFLAGS= -a -h -v -z
|
||||||
|
LINTFLAGS=
|
||||||
|
|
||||||
# Normally certain files depend on the Makefile. If the Makefile is
|
# Normally certain files depend on the Makefile. If the Makefile is
|
||||||
# changed, then certain steps should be redone. If MAKE_FILE is
|
# changed, then certain steps should be redone. If MAKE_FILE is
|
||||||
# set to Makefile, then these files will depend on Makefile. If
|
# set to Makefile, then these files will depend on Makefile. If
|
||||||
@@ -548,9 +548,9 @@ MAKE_FILE= Makefile
|
|||||||
#PURIFY= purify -logfile=pure.out
|
#PURIFY= purify -logfile=pure.out
|
||||||
#PURIFY= purify -m71-engine -logfile=pure.out
|
#PURIFY= purify -m71-engine -logfile=pure.out
|
||||||
|
|
||||||
# If you want to use a debugging link library such as a malloc debug link
|
# If you want to use a debugging library such as a malloc debug library,
|
||||||
# library, or need to add special ld flags after the calc link libraries
|
# or need to add special ld flags after the calc libraries are included,
|
||||||
# are included, set ${LD_DEBUG} below.
|
# set ${LD_DEBUG} below.
|
||||||
#
|
#
|
||||||
# If in doubt, set LD_DEBUG to empty.
|
# If in doubt, set LD_DEBUG to empty.
|
||||||
#
|
#
|
||||||
@@ -564,18 +564,18 @@ LD_DEBUG=
|
|||||||
# make debug
|
# make debug
|
||||||
#
|
#
|
||||||
# the ${CALC_ENV} is used to supply the proper environment variables
|
# the ${CALC_ENV} is used to supply the proper environment variables
|
||||||
# to calc. Most people will simply need 'CALCPATH=./cal' to ensure
|
# to calc. Most people will simply need 'CALCPATH=./lib' to ensure
|
||||||
# that these debug rules will only use calc resource files under the
|
# that these debug rules will only use calc lib files under the
|
||||||
# local source directory. The longer lines (with MALLOC_VERBOSE=1 ...)
|
# local source directory. The longer lines (with MALLOC_VERBOSE=1 ...)
|
||||||
# are useful for SGI IRIX people who have 'WorkShop Performance Tools'
|
# are useful for SGI IRIX people who have 'WorkShop Performance Tools'
|
||||||
# and who also set 'LD_DEBUG= -lmalloc_cv' above.
|
# and who also set 'LD_DEBUG= -lmalloc_cv' above.
|
||||||
#
|
#
|
||||||
# If in doubt, use CALC_ENV= CALCPATH=./cal.
|
# If in doubt, use CALC_ENV= CALCPATH=./lib.
|
||||||
#
|
#
|
||||||
CALC_ENV= CALCPATH=./cal
|
CALC_ENV= CALCPATH=./lib
|
||||||
#CALC_ENV= CALCPATH=./cal MALLOC_VERBOSE=1 MALLOC_TRACING=1 \
|
#CALC_ENV= CALCPATH=./lib MALLOC_VERBOSE=1 MALLOC_TRACING=1 \
|
||||||
# MALLOC_FASTCHK=1 MALLOC_FULLWARN=1
|
# MALLOC_FASTCHK=1 MALLOC_FULLWARN=1
|
||||||
#CALC_ENV= CALCPATH=./cal MALLOC_VERBOSE=1 MALLOC_TRACING=1 \
|
#CALC_ENV= CALCPATH=./lib MALLOC_VERBOSE=1 MALLOC_TRACING=1 \
|
||||||
# MALLOC_FASTCHK=1 MALLOC_FULLWARN=1 MALLOC_CLEAR_FREE=1 \
|
# MALLOC_FASTCHK=1 MALLOC_FULLWARN=1 MALLOC_CLEAR_FREE=1 \
|
||||||
# MALLOC_CLEAR_MALLOC=1
|
# MALLOC_CLEAR_MALLOC=1
|
||||||
|
|
||||||
@@ -603,6 +603,7 @@ ALLOW_CUSTOM= -DCUSTOM
|
|||||||
# CFLAGS are all flags given to ${CC} [[often includes CCOPT, CCWARN, CCMISC]]
|
# CFLAGS are all flags given to ${CC} [[often includes CCOPT, CCWARN, CCMISC]]
|
||||||
# ICFLAGS are given to ${CC} for intermediate progs
|
# ICFLAGS are given to ${CC} for intermediate progs
|
||||||
#
|
#
|
||||||
|
# LCFLAGS are CC-style flags for ${LINT}
|
||||||
# LDFLAGS are flags given to ${CC} for linking .o files
|
# LDFLAGS are flags given to ${CC} for linking .o files
|
||||||
# ILDFLAGS are flags given to ${CC} for linking .o files for intermediate progs
|
# ILDFLAGS are flags given to ${CC} for linking .o files for intermediate progs
|
||||||
#
|
#
|
||||||
@@ -615,8 +616,8 @@ ALLOW_CUSTOM= -DCUSTOM
|
|||||||
#
|
#
|
||||||
# Tested on Red Hat 6.0 Linux but should run on almost any Linux release.
|
# Tested on Red Hat 6.0 Linux but should run on almost any Linux release.
|
||||||
#
|
#
|
||||||
# For better performance, set the following above: DEBUG= -O2 -g3
|
# for better performance, set the following above:
|
||||||
# You might even try: DEBUG= -O3 -g3
|
# DEBUG= -O2
|
||||||
#
|
#
|
||||||
CCWARN= -Wall -Wno-implicit -Wno-comment
|
CCWARN= -Wall -Wno-implicit -Wno-comment
|
||||||
CCOPT= ${DEBUG} ${NO_SHARED}
|
CCOPT= ${DEBUG} ${NO_SHARED}
|
||||||
@@ -625,6 +626,7 @@ CCMISC=
|
|||||||
CFLAGS= ${CCWARN} ${CCOPT} ${CCMISC}
|
CFLAGS= ${CCWARN} ${CCOPT} ${CCMISC}
|
||||||
ICFLAGS= ${CCWARN} ${CCMISC}
|
ICFLAGS= ${CCWARN} ${CCMISC}
|
||||||
#
|
#
|
||||||
|
LCFLAGS=
|
||||||
LDFLAGS= ${NO_SHARED} ${LD_NO_SHARED}
|
LDFLAGS= ${NO_SHARED} ${LD_NO_SHARED}
|
||||||
ILDFLAGS=
|
ILDFLAGS=
|
||||||
#
|
#
|
||||||
@@ -635,8 +637,8 @@ CC= ${PURIFY} ${LCC}
|
|||||||
#
|
#
|
||||||
# gcc set (some call it gcc2, some call it gcc)
|
# gcc set (some call it gcc2, some call it gcc)
|
||||||
#
|
#
|
||||||
# For better performance, set the following above: DEBUG= -O2 -g3
|
# for better performance, set the following above:
|
||||||
# You might even try: DEBUG= -O3 -g3
|
# DEBUG= -O2
|
||||||
#
|
#
|
||||||
#CCWARN= -Wall -Wno-implicit -Wno-comment
|
#CCWARN= -Wall -Wno-implicit -Wno-comment
|
||||||
#CCOPT= ${DEBUG} ${NO_SHARED}
|
#CCOPT= ${DEBUG} ${NO_SHARED}
|
||||||
@@ -645,6 +647,7 @@ CC= ${PURIFY} ${LCC}
|
|||||||
#CFLAGS= ${CCWARN} ${CCOPT} ${CCMISC}
|
#CFLAGS= ${CCWARN} ${CCOPT} ${CCMISC}
|
||||||
#ICFLAGS= ${CCWARN} ${CCMISC}
|
#ICFLAGS= ${CCWARN} ${CCMISC}
|
||||||
#
|
#
|
||||||
|
#LCFLAGS=
|
||||||
#LDFLAGS= ${NO_SHARED} ${LD_NO_SHARED}
|
#LDFLAGS= ${NO_SHARED} ${LD_NO_SHARED}
|
||||||
#ILDFLAGS=
|
#ILDFLAGS=
|
||||||
#
|
#
|
||||||
@@ -656,9 +659,6 @@ CC= ${PURIFY} ${LCC}
|
|||||||
#
|
#
|
||||||
# common cc set
|
# common cc set
|
||||||
#
|
#
|
||||||
# For better performance, set the following above: DEBUG= -O2 -g3
|
|
||||||
# Or if -O2 -g3 are not supported try: DEBUG= -O -g
|
|
||||||
#
|
|
||||||
#CCWARN=
|
#CCWARN=
|
||||||
#CCOPT= ${DEBUG} ${NO_SHARED}
|
#CCOPT= ${DEBUG} ${NO_SHARED}
|
||||||
#CCMISC=
|
#CCMISC=
|
||||||
@@ -666,6 +666,7 @@ CC= ${PURIFY} ${LCC}
|
|||||||
#CFLAGS= ${CCWARN} ${CCOPT} ${CCMISC}
|
#CFLAGS= ${CCWARN} ${CCOPT} ${CCMISC}
|
||||||
#ICFLAGS= ${CCWARN} ${CCMISC}
|
#ICFLAGS= ${CCWARN} ${CCMISC}
|
||||||
#
|
#
|
||||||
|
#LCFLAGS=
|
||||||
#LDFLAGS= ${NO_SHARED} ${LD_NO_SHARED}
|
#LDFLAGS= ${NO_SHARED} ${LD_NO_SHARED}
|
||||||
#ILDFLAGS=
|
#ILDFLAGS=
|
||||||
#
|
#
|
||||||
@@ -676,9 +677,11 @@ CC= ${PURIFY} ${LCC}
|
|||||||
#
|
#
|
||||||
# SGI IRIX6.2 (or later) -n32 (v7.1 or later) Compiler
|
# SGI IRIX6.2 (or later) -n32 (v7.1 or later) Compiler
|
||||||
#
|
#
|
||||||
# You must set above: RANLIB=:
|
# You must set above:
|
||||||
|
# RANLIB=:
|
||||||
#
|
#
|
||||||
# For better performance, set the following above: DEBUG= -O2 -g3
|
# for better performance, set the following above:
|
||||||
|
# DEBUG= -O2 -g3
|
||||||
#
|
#
|
||||||
# If you have the directory /usr/lib32/nonshared, then set the following above:
|
# If you have the directory /usr/lib32/nonshared, then set the following above:
|
||||||
# NO_SHARED= -non_shared
|
# NO_SHARED= -non_shared
|
||||||
@@ -693,6 +696,7 @@ CC= ${PURIFY} ${LCC}
|
|||||||
#CFLAGS= ${CCWARN} ${CCOPT} ${CCMISC}
|
#CFLAGS= ${CCWARN} ${CCOPT} ${CCMISC}
|
||||||
#ICFLAGS= ${CCWARN} ${CCMISC}
|
#ICFLAGS= ${CCWARN} ${CCMISC}
|
||||||
#
|
#
|
||||||
|
#LCFLAGS=
|
||||||
#LDFLAGS= ${NO_SHARED} ${LD_NO_SHARED}
|
#LDFLAGS= ${NO_SHARED} ${LD_NO_SHARED}
|
||||||
#ILDFLAGS=
|
#ILDFLAGS=
|
||||||
#
|
#
|
||||||
@@ -703,10 +707,11 @@ CC= ${PURIFY} ${LCC}
|
|||||||
#
|
#
|
||||||
# HP-UX set
|
# HP-UX set
|
||||||
#
|
#
|
||||||
# For better performance, set the following above: DEBUG= -O -g
|
# for better performance, try set the following above:
|
||||||
|
# DEBUG= -O
|
||||||
#
|
#
|
||||||
# Warning: Some HP-UX optimizers are brain-damaged.
|
# Warning: Some HP-UX optimizers are brain-damaged. If 'make check' fails use:
|
||||||
# If 'make check' fails use: DEBUG= -g
|
# DEBUG= -g
|
||||||
#
|
#
|
||||||
#CCWARN=
|
#CCWARN=
|
||||||
#CCOPT= ${DEBUG} ${NO_SHARED}
|
#CCOPT= ${DEBUG} ${NO_SHARED}
|
||||||
@@ -715,6 +720,7 @@ CC= ${PURIFY} ${LCC}
|
|||||||
#CFLAGS= ${CCWARN} ${CCOPT} ${CCMISC}
|
#CFLAGS= ${CCWARN} ${CCOPT} ${CCMISC}
|
||||||
#ICFLAGS= ${CCWARN} ${CCMISC}
|
#ICFLAGS= ${CCWARN} ${CCMISC}
|
||||||
#
|
#
|
||||||
|
#LCFLAGS=
|
||||||
#LDFLAGS= ${NO_SHARED} ${LD_NO_SHARED}
|
#LDFLAGS= ${NO_SHARED} ${LD_NO_SHARED}
|
||||||
#ILDFLAGS=
|
#ILDFLAGS=
|
||||||
#
|
#
|
||||||
@@ -732,6 +738,7 @@ CC= ${PURIFY} ${LCC}
|
|||||||
#CFLAGS= ${CCWARN} ${CCOPT} ${CCMISC}
|
#CFLAGS= ${CCWARN} ${CCOPT} ${CCMISC}
|
||||||
#ICFLAGS= ${CCWARN} ${CCMISC}
|
#ICFLAGS= ${CCWARN} ${CCMISC}
|
||||||
#
|
#
|
||||||
|
#LCFLAGS=
|
||||||
#LDFLAGS= ${NO_SHARED} ${LD_NO_SHARED}
|
#LDFLAGS= ${NO_SHARED} ${LD_NO_SHARED}
|
||||||
#ILDFLAGS=
|
#ILDFLAGS=
|
||||||
#
|
#
|
||||||
@@ -742,7 +749,8 @@ CC= ${PURIFY} ${LCC}
|
|||||||
#
|
#
|
||||||
# Solaris Sun cc compiler set
|
# Solaris Sun cc compiler set
|
||||||
#
|
#
|
||||||
# For better performance, set the following above: DEBUG= -O -g
|
# for better performance, set the following above:
|
||||||
|
# DEBUG= -O
|
||||||
#
|
#
|
||||||
# We need -DFORCE_STDC to make use of ANSI-C like features and
|
# We need -DFORCE_STDC to make use of ANSI-C like features and
|
||||||
# to avoid the use of -Xc (which as a lose performance wise).
|
# to avoid the use of -Xc (which as a lose performance wise).
|
||||||
@@ -754,6 +762,7 @@ CC= ${PURIFY} ${LCC}
|
|||||||
#CFLAGS= ${CCWARN} ${CCOPT} ${CCMISC}
|
#CFLAGS= ${CCWARN} ${CCOPT} ${CCMISC}
|
||||||
#ICFLAGS= ${CCWARN} ${CCMISC}
|
#ICFLAGS= ${CCWARN} ${CCMISC}
|
||||||
#
|
#
|
||||||
|
#LCFLAGS=
|
||||||
#LDFLAGS= ${NO_SHARED} ${LD_NO_SHARED}
|
#LDFLAGS= ${NO_SHARED} ${LD_NO_SHARED}
|
||||||
#ILDFLAGS=
|
#ILDFLAGS=
|
||||||
#
|
#
|
||||||
@@ -764,8 +773,8 @@ CC= ${PURIFY} ${LCC}
|
|||||||
#
|
#
|
||||||
# BSDI's BSD/OS 4.0 (or later) set
|
# BSDI's BSD/OS 4.0 (or later) set
|
||||||
#
|
#
|
||||||
# For better performance, set the following above: DEBUG= -O2 -g3
|
# for better performance, set the following above:
|
||||||
# You might even try: DEBUG= -O3 -g3
|
# DEBUG= -O2
|
||||||
#
|
#
|
||||||
#CCWARN= -Wall -Wno-implicit -Wno-comment
|
#CCWARN= -Wall -Wno-implicit -Wno-comment
|
||||||
#CCOPT= ${DEBUG} ${NO_SHARED}
|
#CCOPT= ${DEBUG} ${NO_SHARED}
|
||||||
@@ -774,6 +783,7 @@ CC= ${PURIFY} ${LCC}
|
|||||||
#CFLAGS= ${CCWARN} ${CCOPT} ${CCMISC}
|
#CFLAGS= ${CCWARN} ${CCOPT} ${CCMISC}
|
||||||
#ICFLAGS= ${CCWARN} ${CCMISC} -Wno-unused
|
#ICFLAGS= ${CCWARN} ${CCMISC} -Wno-unused
|
||||||
#
|
#
|
||||||
|
#LCFLAGS=
|
||||||
#LDFLAGS= ${NO_SHARED} ${LD_NO_SHARED}
|
#LDFLAGS= ${NO_SHARED} ${LD_NO_SHARED}
|
||||||
#ILDFLAGS=
|
#ILDFLAGS=
|
||||||
#
|
#
|
||||||
@@ -784,7 +794,8 @@ CC= ${PURIFY} ${LCC}
|
|||||||
#
|
#
|
||||||
# Dec Alpha / Compaq Tru64 cc (non-gnu) compiler set
|
# Dec Alpha / Compaq Tru64 cc (non-gnu) compiler set
|
||||||
#
|
#
|
||||||
# For better performance, set the following above: DEBUG= -O2 -g3
|
# for better performance, set the following above:
|
||||||
|
# DEBUG= -O2
|
||||||
#
|
#
|
||||||
#CCWARN=
|
#CCWARN=
|
||||||
#CCOPT= ${DEBUG} ${NO_SHARED}
|
#CCOPT= ${DEBUG} ${NO_SHARED}
|
||||||
@@ -793,6 +804,7 @@ CC= ${PURIFY} ${LCC}
|
|||||||
#CFLAGS= ${CCWARN} ${CCOPT} ${CCMISC}
|
#CFLAGS= ${CCWARN} ${CCOPT} ${CCMISC}
|
||||||
#ICFLAGS= ${CCWARN} ${CCMISC} -Wno-unused
|
#ICFLAGS= ${CCWARN} ${CCMISC} -Wno-unused
|
||||||
#
|
#
|
||||||
|
#LCFLAGS=
|
||||||
#LDFLAGS= ${NO_SHARED} ${LD_NO_SHARED}
|
#LDFLAGS= ${NO_SHARED} ${LD_NO_SHARED}
|
||||||
#ILDFLAGS=
|
#ILDFLAGS=
|
||||||
#
|
#
|
||||||
@@ -811,8 +823,8 @@ AWK= awk
|
|||||||
SED= sed
|
SED= sed
|
||||||
SORT= sort
|
SORT= sort
|
||||||
TEE= tee
|
TEE= tee
|
||||||
|
LINT= lint
|
||||||
CTAGS= ctags
|
CTAGS= ctags
|
||||||
CHMOD= chmod
|
|
||||||
FMT= fmt
|
FMT= fmt
|
||||||
# assume the X11 makedepend tool for the depend rule
|
# assume the X11 makedepend tool for the depend rule
|
||||||
MAKEDEPEND= makedepend
|
MAKEDEPEND= makedepend
|
||||||
@@ -832,7 +844,7 @@ Q=@
|
|||||||
V=@:
|
V=@:
|
||||||
#V=@
|
#V=@
|
||||||
|
|
||||||
# the source files which are built into a math link library
|
# the source files which are built into a math library
|
||||||
#
|
#
|
||||||
# There MUST be a .o for every .c in LIBOBJS
|
# There MUST be a .o for every .c in LIBOBJS
|
||||||
#
|
#
|
||||||
@@ -845,7 +857,7 @@ LIBSRC= addop.c assocfunc.c blkcpy.c block.c byteswap.c \
|
|||||||
string.c symbol.c token.c value.c version.c zfunc.c zio.c \
|
string.c symbol.c token.c value.c version.c zfunc.c zio.c \
|
||||||
zmath.c zmod.c zmul.c zprime.c zrand.c zrandom.c
|
zmath.c zmod.c zmul.c zprime.c zrand.c zrandom.c
|
||||||
|
|
||||||
# the object files which are built into a math link library
|
# the object files which are built into a math library
|
||||||
#
|
#
|
||||||
# There MUST be a .o for every .c in LIBSRC plus calcerr.o
|
# There MUST be a .o for every .c in LIBSRC plus calcerr.o
|
||||||
# which is built via this Makefile.
|
# which is built via this Makefile.
|
||||||
@@ -951,13 +963,13 @@ CUSTOM_PASSDOWN= Q="${Q}" \
|
|||||||
CCMISC="${CCMISC}" \
|
CCMISC="${CCMISC}" \
|
||||||
CFLAGS="${CFLAGS} ${ALLOW_CUSTOM}" \
|
CFLAGS="${CFLAGS} ${ALLOW_CUSTOM}" \
|
||||||
ICFLAGS="${ICFLAGS}" \
|
ICFLAGS="${ICFLAGS}" \
|
||||||
|
LCFLAGS="${LCFLAGS}" \
|
||||||
LDFLAGS="${LDFLAGS}" \
|
LDFLAGS="${LDFLAGS}" \
|
||||||
ILDFLAGS="${ILDFLAGS}" \
|
ILDFLAGS="${ILDFLAGS}" \
|
||||||
LCC="${LCC}" \
|
LCC="${LCC}" \
|
||||||
CC="${CC}" \
|
CC="${CC}" \
|
||||||
MAKE_FILE=${MAKE_FILE} \
|
MAKE_FILE=${MAKE_FILE} \
|
||||||
SED=${SED} \
|
SED=${SED} \
|
||||||
CHMOD=${CHMOD} \
|
|
||||||
MAKEDEPEND=${MAKEDEPEND} \
|
MAKEDEPEND=${MAKEDEPEND} \
|
||||||
SORT=${SORT}
|
SORT=${SORT}
|
||||||
|
|
||||||
@@ -977,6 +989,7 @@ SAMPLE_PASSDOWN= Q="${Q}" \
|
|||||||
CCMISC="${CCMISC}" \
|
CCMISC="${CCMISC}" \
|
||||||
CFLAGS="${CFLAGS} ${ALLOW_CUSTOM}" \
|
CFLAGS="${CFLAGS} ${ALLOW_CUSTOM}" \
|
||||||
ICFLAGS="${ICFLAGS}" \
|
ICFLAGS="${ICFLAGS}" \
|
||||||
|
LCFLAGS="${LCFLAGS}" \
|
||||||
LDFLAGS="${LDFLAGS}" \
|
LDFLAGS="${LDFLAGS}" \
|
||||||
ILDFLAGS="${ILDFLAGS}" \
|
ILDFLAGS="${ILDFLAGS}" \
|
||||||
CALC_LIBS="../libcalc.a ../custom/libcustcalc.a ${READLINE_LIB}" \
|
CALC_LIBS="../libcalc.a ../custom/libcustcalc.a ${READLINE_LIB}" \
|
||||||
@@ -985,7 +998,6 @@ SAMPLE_PASSDOWN= Q="${Q}" \
|
|||||||
MAKE_FILE=${MAKE_FILE} \
|
MAKE_FILE=${MAKE_FILE} \
|
||||||
SED=${SED} \
|
SED=${SED} \
|
||||||
MAKEDEPEND=${MAKEDEPEND} \
|
MAKEDEPEND=${MAKEDEPEND} \
|
||||||
CHMOD=${CHMOD} \
|
|
||||||
SORT=${SORT}
|
SORT=${SORT}
|
||||||
|
|
||||||
# The compelte list of makefile vars passed down to help/Makefile.
|
# The compelte list of makefile vars passed down to help/Makefile.
|
||||||
@@ -994,31 +1006,23 @@ HELP_PASSDOWN= Q="${Q}" \
|
|||||||
TOPDIR="${TOPDIR}" \
|
TOPDIR="${TOPDIR}" \
|
||||||
LIBDIR="${LIBDIR}" \
|
LIBDIR="${LIBDIR}" \
|
||||||
HELPDIR="${HELPDIR}" \
|
HELPDIR="${HELPDIR}" \
|
||||||
|
CFLAGS="${CFLAGS} ${ALLOW_CUSTOM}" \
|
||||||
ICFLAGS="${ICFLAGS}" \
|
ICFLAGS="${ICFLAGS}" \
|
||||||
ILDFLAGS="${ILDFLAGS}" \
|
ILDFLAGS="${ILDFLAGS}" \
|
||||||
LCC="${LCC}" \
|
LCC="${LCC}" \
|
||||||
MAKE_FILE=${MAKE_FILE} \
|
MAKE_FILE=${MAKE_FILE} \
|
||||||
SED=${SED} \
|
SED=${SED} \
|
||||||
CHMOD=${CHMOD} \
|
|
||||||
FMT=${FMT}
|
FMT=${FMT}
|
||||||
|
|
||||||
# The compelte list of makefile vars passed down to cal/Makefile.
|
# The compelte list of makefile vars passed down to lib/Makefile.
|
||||||
#
|
#
|
||||||
CAL_PASSDOWN= Q="${Q}" \
|
LIB_PASSDOWN= Q="${Q}" \
|
||||||
TOPDIR="${TOPDIR}" \
|
TOPDIR="${TOPDIR}" \
|
||||||
LIBDIR="${LIBDIR}" \
|
LIBDIR="${LIBDIR}" \
|
||||||
|
HELPDIR="${HELPDIR}" \
|
||||||
MAKE_FILE=${MAKE_FILE} \
|
MAKE_FILE=${MAKE_FILE} \
|
||||||
CHMOD=${CHMOD}
|
|
||||||
|
|
||||||
# The compelte list of makefile vars passed down to cscript/Makefile.
|
|
||||||
#
|
|
||||||
CSCRIPT_PASSDOWN= Q="${Q}" \
|
|
||||||
BINDIR="${BINDIR}" \
|
|
||||||
SCRIPTDIR="${SCRIPTDIR}" \
|
|
||||||
MAKE_FILE=${MAKE_FILE} \
|
|
||||||
CHMOD=${CHMOD} \
|
|
||||||
SED=${SED} \
|
SED=${SED} \
|
||||||
FMT=${FMT} \
|
MAKEDEPEND=${MAKEDEPEND} \
|
||||||
SORT=${SORT}
|
SORT=${SORT}
|
||||||
|
|
||||||
# complete list of .h files found (but not built) in the distribution
|
# complete list of .h files found (but not built) in the distribution
|
||||||
@@ -1029,16 +1033,12 @@ H_SRC= ${LIB_H_SRC}
|
|||||||
#
|
#
|
||||||
C_SRC= ${LIBSRC} ${CALCSRC} ${UTIL_C_SRC}
|
C_SRC= ${LIBSRC} ${CALCSRC} ${UTIL_C_SRC}
|
||||||
|
|
||||||
# The list of files that describe calc's GNU Lesser General Public License
|
|
||||||
#
|
|
||||||
LICENSE= COPYING COPYING-LGPL
|
|
||||||
|
|
||||||
# These files are found (but not built) in the distribution
|
# These files are found (but not built) in the distribution
|
||||||
#
|
#
|
||||||
DISTLIST= ${C_SRC} ${H_SRC} ${MAKE_FILE} BUGS CHANGES LIBRARY README \
|
DISTLIST= ${C_SRC} ${H_SRC} ${MAKE_FILE} BUGS CHANGES LIBRARY README \
|
||||||
calc.man HOWTO.INSTALL ${UTIL_MISC_SRC} ${LICENSE}
|
calc.man lint.sed HOWTO.INSTALL ${UTIL_MISC_SRC}
|
||||||
|
|
||||||
# These files are used to make (but not built) a calc .a link library
|
# These files are used to make (but not built) a calc .a library
|
||||||
#
|
#
|
||||||
CALCLIBLIST= ${LIBSRC} ${UTIL_C_SRC} ${LIB_H_SRC} ${MAKE_FILE} \
|
CALCLIBLIST= ${LIBSRC} ${UTIL_C_SRC} ${LIB_H_SRC} ${MAKE_FILE} \
|
||||||
${UTIL_MISC_SRC} BUGS CHANGES LIBRARY
|
${UTIL_MISC_SRC} BUGS CHANGES LIBRARY
|
||||||
@@ -1057,8 +1057,8 @@ PROGS= calc ${UTIL_PROGS}
|
|||||||
|
|
||||||
# complete list of targets
|
# complete list of targets
|
||||||
#
|
#
|
||||||
TARGETS= ${LICENSE} ${CALC_LIBS} custom/.all calc sample/sample \
|
TARGETS= ${CALC_LIBS} custom/.all calc sample/sample \
|
||||||
cal/.all help/.all help/builtin cscript/.all calc.1
|
lib/.all help/.all help/builtin calc.1
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
@@ -1076,17 +1076,12 @@ libcalc.a: ${LIBOBJS} ${MAKE_FILE}
|
|||||||
-rm -f libcalc.a
|
-rm -f libcalc.a
|
||||||
ar qc libcalc.a ${LIBOBJS}
|
ar qc libcalc.a ${LIBOBJS}
|
||||||
${RANLIB} libcalc.a
|
${RANLIB} libcalc.a
|
||||||
${CHMOD} 0644 libcalc.a
|
chmod 0644 libcalc.a
|
||||||
|
|
||||||
calc.1: calc.man ${MAKE_FILE}
|
calc.1: calc.man ${MAKE_FILE}
|
||||||
-rm -f calc.1
|
-rm -f calc.1
|
||||||
${SED} -e 's:$${LIBDIR}:${LIBDIR}:g' \
|
${SED} -e 's:$${LIBDIR}:${LIBDIR}:g' \
|
||||||
-e 's,$${BINDIR},${BINDIR},g' \
|
|
||||||
-e 's,$${CALCPATH},${CALCPATH},g' \
|
-e 's,$${CALCPATH},${CALCPATH},g' \
|
||||||
-e 's,$${SCRIPTDIR},${SCRIPTDIR},g' \
|
|
||||||
-e 's,$${INCDIRCALC},${INCDIRCALC},g' \
|
|
||||||
-e 's,$${CUSTOMLIBDIR},${CUSTOMLIBDIR},g' \
|
|
||||||
-e 's,$${CUSTOMHELPDIR},${CUSTOMHELPDIR},g' \
|
|
||||||
-e 's,$${CALCRC},${CALCRC},g' < calc.man > calc.1
|
-e 's,$${CALCRC},${CALCRC},g' < calc.man > calc.1
|
||||||
|
|
||||||
##
|
##
|
||||||
@@ -1142,34 +1137,34 @@ conf.h: ${MAKE_FILE}
|
|||||||
${Q}echo '' >> conf.h
|
${Q}echo '' >> conf.h
|
||||||
${Q}echo '' >> conf.h
|
${Q}echo '' >> conf.h
|
||||||
${Q}echo '/* the default :-separated search path */' >> conf.h
|
${Q}echo '/* the default :-separated search path */' >> conf.h
|
||||||
${Q}echo '#if !defined(DEFAULTCALCPATH)' >> conf.h
|
${Q}echo '#ifndef DEFAULTCALCPATH' >> conf.h
|
||||||
${Q}echo '#define DEFAULTCALCPATH "${CALCPATH}"' >> conf.h
|
${Q}echo '#define DEFAULTCALCPATH "${CALCPATH}"' >> conf.h
|
||||||
${Q}echo '#endif /* DEFAULTCALCPATH */' >> conf.h
|
${Q}echo '#endif /* DEFAULTCALCPATH */' >> conf.h
|
||||||
${Q}echo '' >> conf.h
|
${Q}echo '' >> conf.h
|
||||||
${Q}echo '/* the default :-separated startup file list */' >> conf.h
|
${Q}echo '/* the default :-separated startup file list */' >> conf.h
|
||||||
${Q}echo '#if !defined(DEFAULTCALCRC)' >> conf.h
|
${Q}echo '#ifndef DEFAULTCALCRC' >> conf.h
|
||||||
${Q}echo '#define DEFAULTCALCRC "${CALCRC}"' >> conf.h
|
${Q}echo '#define DEFAULTCALCRC "${CALCRC}"' >> conf.h
|
||||||
${Q}echo '#endif /* DEFAULTCALCRC */' >> conf.h
|
${Q}echo '#endif /* DEFAULTCALCRC */' >> conf.h
|
||||||
${Q}echo '' >> conf.h
|
${Q}echo '' >> conf.h
|
||||||
${Q}echo '/* the location of the help directory */' >> conf.h
|
${Q}echo '/* the location of the help directory */' >> conf.h
|
||||||
${Q}echo '#if !defined(HELPDIR)' >> conf.h
|
${Q}echo '#ifndef HELPDIR' >> conf.h
|
||||||
${Q}echo '#define HELPDIR "${HELPDIR}"' >> conf.h
|
${Q}echo '#define HELPDIR "${HELPDIR}"' >> conf.h
|
||||||
${Q}echo '#endif /* HELPDIR */' >> conf.h
|
${Q}echo '#endif /* HELPDIR */' >> conf.h
|
||||||
${Q}echo '' >> conf.h
|
${Q}echo '' >> conf.h
|
||||||
${Q}echo '/* the location of the custom help directory */' >> conf.h
|
${Q}echo '/* the location of the custom help directory */' >> conf.h
|
||||||
${Q}echo '#if !defined(CUSTOMHELPDIR)' >> conf.h
|
${Q}echo '#ifndef CUSTOMHELPDIR' >> conf.h
|
||||||
${Q}echo '#define CUSTOMHELPDIR "${CUSTOMHELPDIR}"' >> conf.h
|
${Q}echo '#define CUSTOMHELPDIR "${CUSTOMHELPDIR}"' >> conf.h
|
||||||
${Q}echo '#endif /* CUSTOMHELPDIR */' >> conf.h
|
${Q}echo '#endif /* CUSTOMHELPDIR */' >> conf.h
|
||||||
${Q}echo '' >> conf.h
|
${Q}echo '' >> conf.h
|
||||||
${Q}echo '/* the default pager to use */' >> conf.h
|
${Q}echo '/* the default pager to use */' >> conf.h
|
||||||
${Q}echo '#if !defined(DEFAULTCALCPAGER)' >> conf.h
|
${Q}echo '#ifndef DEFAULTCALCPAGER' >> conf.h
|
||||||
${Q}echo '#define DEFAULTCALCPAGER "${CALCPAGER}"' >> conf.h
|
${Q}echo '#define DEFAULTCALCPAGER "${CALCPAGER}"' >> conf.h
|
||||||
${Q}echo '#endif /* DEFAULTCALCPAGER */' >> conf.h
|
${Q}echo '#endif /* DEFAULTCALCPAGER */' >> conf.h
|
||||||
${Q}echo '' >> conf.h
|
${Q}echo '' >> conf.h
|
||||||
${Q}echo '/* where the echo command is located */' >> conf.h
|
${Q}echo '/* where the echo command is located */' >> conf.h
|
||||||
${Q}echo '#if !defined(ECHO_PROG)' >> conf.h
|
${Q}echo '#ifndef ECHO' >> conf.h
|
||||||
${Q}echo '#define ECHO_PROG "${ECHO}"' >> conf.h
|
${Q}echo '#define ECHO "${ECHO}"' >> conf.h
|
||||||
${Q}echo '#endif /* ECHO_PROG */' >> conf.h
|
${Q}echo '#endif /* ECHO */' >> conf.h
|
||||||
${Q}echo '' >> conf.h
|
${Q}echo '' >> conf.h
|
||||||
${Q}echo '' >> conf.h
|
${Q}echo '' >> conf.h
|
||||||
${Q}echo '#endif /* !__CONF_H__ */' >> conf.h
|
${Q}echo '#endif /* !__CONF_H__ */' >> conf.h
|
||||||
@@ -1496,10 +1491,10 @@ longlong.h: longlong.c have_stdlib.h have_string.h ${MAKE_FILE}
|
|||||||
-${Q}if [ -s ll_tmp ]; then \
|
-${Q}if [ -s ll_tmp ]; then \
|
||||||
cat ll_tmp >> longlong.h; \
|
cat ll_tmp >> longlong.h; \
|
||||||
else \
|
else \
|
||||||
echo '/* no long long type */'; \
|
|
||||||
echo '#undef HAVE_LONGLONG' >> longlong.h; \
|
echo '#undef HAVE_LONGLONG' >> longlong.h; \
|
||||||
echo '#define LONGLONG_BITS 0 /* no */' >> longlong.h; \
|
echo '#define LONGLONG_BITS 0 /* no */' >> longlong.h; \
|
||||||
echo '#undef L64_FORMAT' >> longlong.h; \
|
echo '#undef LL_FORMAT' >> longlong.h; \
|
||||||
|
echo '#undef L_FORMAT' >> longlong.h; \
|
||||||
fi
|
fi
|
||||||
${Q}echo '' >> longlong.h
|
${Q}echo '' >> longlong.h
|
||||||
${Q}echo '' >> longlong.h
|
${Q}echo '' >> longlong.h
|
||||||
@@ -2314,10 +2309,10 @@ longbits: longbits.o
|
|||||||
#
|
#
|
||||||
##
|
##
|
||||||
|
|
||||||
cal/.all:
|
lib/.all:
|
||||||
${V} echo '=-=-=-=-= start of $@ rule =-=-=-=-='
|
${V} echo '=-=-=-=-= start of $@ rule =-=-=-=-='
|
||||||
${V} echo '=-=-=-=-= Invoking all rule for cal =-=-=-=-='
|
${V} echo '=-=-=-=-= Invoking all rule for lib =-=-=-=-='
|
||||||
cd cal; ${MAKE} -f Makefile ${CAL_PASSDOWN} all
|
cd lib; ${MAKE} -f Makefile ${LIB_PASSDOWN} all
|
||||||
${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
|
${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
|
||||||
${V} echo '=-=-=-=-= end of $@ rule =-=-=-=-='
|
${V} echo '=-=-=-=-= end of $@ rule =-=-=-=-='
|
||||||
|
|
||||||
@@ -2335,13 +2330,6 @@ help/builtin: func.c help/builtin.top help/builtin.end help/funclist.sed
|
|||||||
${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
|
${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
|
||||||
${V} echo '=-=-=-=-= end of $@ rule =-=-=-=-='
|
${V} echo '=-=-=-=-= end of $@ rule =-=-=-=-='
|
||||||
|
|
||||||
cscript/.all:
|
|
||||||
${V} echo '=-=-=-=-= start of $@ rule =-=-=-=-='
|
|
||||||
${V} echo '=-=-=-=-= Invoking all rule for cscript =-=-=-=-='
|
|
||||||
cd cscript; ${MAKE} -f Makefile ${CSCRIPT_PASSDOWN} all
|
|
||||||
${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
|
|
||||||
${V} echo '=-=-=-=-= end of $@ rule =-=-=-=-='
|
|
||||||
|
|
||||||
# This is a special rule that first tries to determine of a lower level
|
# This is a special rule that first tries to determine of a lower level
|
||||||
# make is needed, and it so a make will be performed. Because it is
|
# make is needed, and it so a make will be performed. Because it is
|
||||||
# triggered as the first dependent of the all rule, it will ensure
|
# triggered as the first dependent of the all rule, it will ensure
|
||||||
@@ -2435,12 +2423,29 @@ bsdi: ${LIB_H_SRC} ${BUILD_H_SRC} calc.1
|
|||||||
rm -f gen_h/$$i; \
|
rm -f gen_h/$$i; \
|
||||||
echo cp $$i gen_h; \
|
echo cp $$i gen_h; \
|
||||||
cp $$i gen_h; \
|
cp $$i gen_h; \
|
||||||
echo ${CHMOD} 0444 gen_h/$$i; \
|
echo chmod 0444 gen_h/$$i; \
|
||||||
${CHMOD} 0444 gen_h/$$i; \
|
chmod 0444 gen_h/$$i; \
|
||||||
done
|
done
|
||||||
cd help; ${MAKE} -f Makefile ${HELP_PASSDOWN} bsdi
|
cd help; ${MAKE} -f Makefile ${HELP_PASSDOWN} bsdi
|
||||||
${V} echo '=-=-=-=-= end of $@ rule =-=-=-=-='
|
${V} echo '=-=-=-=-= end of $@ rule =-=-=-=-='
|
||||||
|
|
||||||
|
##
|
||||||
|
#
|
||||||
|
# These rules help with linting. Adjust ${LINT}, ${LINTLIB}, ${LINTFLAGS}
|
||||||
|
# and the lint.sed file as needed for your system.
|
||||||
|
#
|
||||||
|
##
|
||||||
|
|
||||||
|
llib-lcalc.ln: ${BUILD_H_SRC} ${LIBSRC} ${MAKE_FILE}
|
||||||
|
-rm -f llib-lcalc.ln llib.out
|
||||||
|
-touch llib-lcalc.ln
|
||||||
|
${LINTLIB} ${LIBSRC} 2>&1 | ${SED} -f lint.sed | ${TEE} llib.out
|
||||||
|
|
||||||
|
lint: ${BUILD_H_SRC} ${CALCSRC} llib-lcalc.ln lint.sed ${MAKE_FILE}
|
||||||
|
-rm -f lint.out
|
||||||
|
${LINT} ${LINTFLAGS} ${LCFLAGS} llib-lcalc.ln ${CALCSRC} 2>&1 | \
|
||||||
|
${SED} -f lint.sed | ${TEE} lint.out
|
||||||
|
|
||||||
##
|
##
|
||||||
#
|
#
|
||||||
# Home grown make dependency rules. Your system make not support
|
# Home grown make dependency rules. Your system make not support
|
||||||
@@ -2533,17 +2538,15 @@ distlist: ${DISTLIST}
|
|||||||
echo $$i; \
|
echo $$i; \
|
||||||
done; \
|
done; \
|
||||||
(cd help; ${MAKE} ${HELP_PASSDOWN} $@); \
|
(cd help; ${MAKE} ${HELP_PASSDOWN} $@); \
|
||||||
(cd cal; ${MAKE} ${CAL_PASSDOWN} $@); \
|
(cd lib; ${MAKE} ${LIB_PASSDOWN} $@); \
|
||||||
(cd custom; ${MAKE} ${CUSTOM_PASSDOWN} $@); \
|
(cd custom; ${MAKE} ${CUSTOM_PASSDOWN} $@); \
|
||||||
(cd cscript; ${MAKE} ${CSCRIPT_PASSDOWN} $@); \
|
|
||||||
(cd sample; ${MAKE} ${SAMPLE_PASSDOWN} $@)) | ${SORT}
|
(cd sample; ${MAKE} ${SAMPLE_PASSDOWN} $@)) | ${SORT}
|
||||||
|
|
||||||
distdir:
|
distdir:
|
||||||
${Q}(echo .; \
|
${Q}(echo .; \
|
||||||
(cd help; ${MAKE} ${HELP_PASSDOWN} $@); \
|
(cd help; ${MAKE} ${HELP_PASSDOWN} $@); \
|
||||||
(cd cal; ${MAKE} ${CAL_PASSDOWN} $@); \
|
(cd lib; ${MAKE} ${LIB_PASSDOWN} $@); \
|
||||||
(cd custom; ${MAKE} ${CUSTOM_PASSDOWN} $@); \
|
(cd custom; ${MAKE} ${CUSTOM_PASSDOWN} $@); \
|
||||||
(cd cscript; ${MAKE} ${CSCRIPT_PASSDOWN} $@); \
|
|
||||||
(cd sample; ${MAKE} ${SAMPLE_PASSDOWN} $@)) | ${SORT}
|
(cd sample; ${MAKE} ${SAMPLE_PASSDOWN} $@)) | ${SORT}
|
||||||
|
|
||||||
calcliblist:
|
calcliblist:
|
||||||
@@ -2551,9 +2554,8 @@ calcliblist:
|
|||||||
echo $$i; \
|
echo $$i; \
|
||||||
done; \
|
done; \
|
||||||
(cd help; ${MAKE} ${HELP_PASSDOWN} $@); \
|
(cd help; ${MAKE} ${HELP_PASSDOWN} $@); \
|
||||||
(cd cal; ${MAKE} ${CAL_PASSDOWN} $@); \
|
(cd lib; ${MAKE} ${LIB_PASSDOWN} $@); \
|
||||||
(cd custom; ${MAKE} ${CUSTOM_PASSDOWN} $@); \
|
(cd custom; ${MAKE} ${CUSTOM_PASSDOWN} $@); \
|
||||||
(cd cscript; ${MAKE} ${CSCRIPT_PASSDOWN} $@); \
|
|
||||||
(cd sample; ${MAKE} ${SAMPLE_PASSDOWN} $@)) | ${SORT}
|
(cd sample; ${MAKE} ${SAMPLE_PASSDOWN} $@)) | ${SORT}
|
||||||
|
|
||||||
calcliblistfmt:
|
calcliblistfmt:
|
||||||
@@ -2571,10 +2573,10 @@ calcliblistfmt:
|
|||||||
#
|
#
|
||||||
##
|
##
|
||||||
|
|
||||||
check: all ./cal/regress.cal
|
check: all ./lib/regress.cal
|
||||||
${CALC_ENV} ./calc -d -q read regress
|
${CALC_ENV} ./calc -d -q read regress
|
||||||
|
|
||||||
chk: ./cal/regress.cal
|
chk: ./lib/regress.cal
|
||||||
${V} echo '=-=-=-=-= start of $@ rule =-=-=-=-='
|
${V} echo '=-=-=-=-= start of $@ rule =-=-=-=-='
|
||||||
${CALC_ENV} ./calc -d -q read regress 2>&1 | ${AWK} -f check.awk
|
${CALC_ENV} ./calc -d -q read regress 2>&1 | ${AWK} -f check.awk
|
||||||
${V} echo '=-=-=-=-= end of $@ rule =-=-=-=-='
|
${V} echo '=-=-=-=-= end of $@ rule =-=-=-=-='
|
||||||
@@ -2623,7 +2625,6 @@ env:
|
|||||||
@echo "HELPDIR=${HELPDIR}"; echo ""
|
@echo "HELPDIR=${HELPDIR}"; echo ""
|
||||||
@echo "CUSTOMLIBDIR=${CUSTOMLIBDIR}"; echo ""
|
@echo "CUSTOMLIBDIR=${CUSTOMLIBDIR}"; echo ""
|
||||||
@echo "CUSTOMHELPDIR=${CUSTOMHELPDIR}"; echo ""
|
@echo "CUSTOMHELPDIR=${CUSTOMHELPDIR}"; echo ""
|
||||||
@echo "SCRIPTDIR=${SCRIPTDIR}"; echo ""
|
|
||||||
@echo "MANDIR=${MANDIR}"; echo ""
|
@echo "MANDIR=${MANDIR}"; echo ""
|
||||||
@echo "CATDIR=${CATDIR}"; echo ""
|
@echo "CATDIR=${CATDIR}"; echo ""
|
||||||
@echo "MANEXT=${MANEXT}"; echo ""
|
@echo "MANEXT=${MANEXT}"; echo ""
|
||||||
@@ -2638,6 +2639,8 @@ env:
|
|||||||
@echo "NO_SHARED=${NO_SHARED}"; echo ""
|
@echo "NO_SHARED=${NO_SHARED}"; echo ""
|
||||||
@echo "LD_NO_SHARED=${LD_NO_SHARED}"; echo ""
|
@echo "LD_NO_SHARED=${LD_NO_SHARED}"; echo ""
|
||||||
@echo "RANLIB=${RANLIB}"; echo ""
|
@echo "RANLIB=${RANLIB}"; echo ""
|
||||||
|
@echo "LINTLIB=${LINTLIB}"; echo ""
|
||||||
|
@echo "LINTFLAGS=${LINTFLAGS}"; echo ""
|
||||||
@echo "MAKE_FILE=${MAKE_FILE}"; echo ""
|
@echo "MAKE_FILE=${MAKE_FILE}"; echo ""
|
||||||
@echo "PURIFY=${PURIFY}"; echo ""
|
@echo "PURIFY=${PURIFY}"; echo ""
|
||||||
@echo "LD_DEBUG=${LD_DEBUG}"; echo ""
|
@echo "LD_DEBUG=${LD_DEBUG}"; echo ""
|
||||||
@@ -2648,6 +2651,7 @@ env:
|
|||||||
@echo "CCMISC=${CCMISC}"; echo ""
|
@echo "CCMISC=${CCMISC}"; echo ""
|
||||||
@echo "CFLAGS=${CFLAGS}"; echo ""
|
@echo "CFLAGS=${CFLAGS}"; echo ""
|
||||||
@echo "ICFLAGS=${ICFLAGS}"; echo ""
|
@echo "ICFLAGS=${ICFLAGS}"; echo ""
|
||||||
|
@echo "LCFLAGS=${LCFLAGS}"; echo ""
|
||||||
@echo "LDFLAGS=${LDFLAGS}"; echo ""
|
@echo "LDFLAGS=${LDFLAGS}"; echo ""
|
||||||
@echo "ILDFLAGS=${ILDFLAGS}"; echo ""
|
@echo "ILDFLAGS=${ILDFLAGS}"; echo ""
|
||||||
@echo "LCC=${LCC}"; echo ""
|
@echo "LCC=${LCC}"; echo ""
|
||||||
@@ -2658,6 +2662,7 @@ env:
|
|||||||
@echo "SED=${SED}"; echo ""
|
@echo "SED=${SED}"; echo ""
|
||||||
@echo "SORT=${SORT}"; echo ""
|
@echo "SORT=${SORT}"; echo ""
|
||||||
@echo "TEE=${TEE}"; echo ""
|
@echo "TEE=${TEE}"; echo ""
|
||||||
|
@echo "LINT=${LINT}"; echo ""
|
||||||
@echo "CTAGS=${CTAGS}"; echo ""
|
@echo "CTAGS=${CTAGS}"; echo ""
|
||||||
@echo "MAKEDEPEND=${MAKEDEPEND}"; echo ""
|
@echo "MAKEDEPEND=${MAKEDEPEND}"; echo ""
|
||||||
@echo "Q=${Q}"; echo ""
|
@echo "Q=${Q}"; echo ""
|
||||||
@@ -2677,8 +2682,7 @@ env:
|
|||||||
@echo "CUSTOM_PASSDOWN=${CUSTOM_PASSDOWN}"; echo ""
|
@echo "CUSTOM_PASSDOWN=${CUSTOM_PASSDOWN}"; echo ""
|
||||||
@echo "SAMPLE_PASSDOWN=${SAMPLE_PASSDOWN}"; echo ""
|
@echo "SAMPLE_PASSDOWN=${SAMPLE_PASSDOWN}"; echo ""
|
||||||
@echo "HELP_PASSDOWN=${HELP_PASSDOWN}"; echo ""
|
@echo "HELP_PASSDOWN=${HELP_PASSDOWN}"; echo ""
|
||||||
@echo "CAL_PASSDOWN=${CAL_PASSDOWN}"; echo ""
|
@echo "LIB_PASSDOWN=${LIB_PASSDOWN}"; echo ""
|
||||||
@echo "CSCRIPT_PASSDOWN=${CSCRIPT_PASSDOWN}"; echo ""
|
|
||||||
@echo "H_SRC=${H_SRC}"; echo ""
|
@echo "H_SRC=${H_SRC}"; echo ""
|
||||||
@echo "C_SRC=${C_SRC}"; echo ""
|
@echo "C_SRC=${C_SRC}"; echo ""
|
||||||
@echo "DISTLIST=${DISTLIST}"; echo ""
|
@echo "DISTLIST=${DISTLIST}"; echo ""
|
||||||
@@ -2764,6 +2768,9 @@ tags: ${CALCSRC} ${LIBSRC} ${H_SRC} ${BUILD_H_SRC} ${MAKE_FILE}
|
|||||||
-${CTAGS} ${CALCSRC} ${LIBSRC} ${H_SRC} ${BUILD_H_SRC} 2>&1 | \
|
-${CTAGS} ${CALCSRC} ${LIBSRC} ${H_SRC} ${BUILD_H_SRC} 2>&1 | \
|
||||||
egrep -v 'Duplicate entry|Second entry ignored'
|
egrep -v 'Duplicate entry|Second entry ignored'
|
||||||
|
|
||||||
|
lintclean:
|
||||||
|
-rm -f llib-lcalc.ln llib.out lint.out
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
${V} echo '=-=-=-=-= start of $@ rule =-=-=-=-='
|
${V} echo '=-=-=-=-= start of $@ rule =-=-=-=-='
|
||||||
-rm -f ${LIBOBJS}
|
-rm -f ${LIBOBJS}
|
||||||
@@ -2775,8 +2782,8 @@ clean:
|
|||||||
${Q}echo '=-=-=-=-= Invoking $@ rule for help =-=-=-=-='
|
${Q}echo '=-=-=-=-= Invoking $@ rule for help =-=-=-=-='
|
||||||
-cd help; ${MAKE} -f Makefile ${HELP_PASSDOWN} clean
|
-cd help; ${MAKE} -f Makefile ${HELP_PASSDOWN} clean
|
||||||
${Q}echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
|
${Q}echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
|
||||||
${Q}echo '=-=-=-=-= Invoking $@ rule for cal =-=-=-=-='
|
${Q}echo '=-=-=-=-= Invoking $@ rule for lib =-=-=-=-='
|
||||||
-cd cal; ${MAKE} -f Makefile ${CAL_PASSDOWN} clean
|
-cd lib; ${MAKE} -f Makefile ${LIB_PASSDOWN} clean
|
||||||
${Q}echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
|
${Q}echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
|
||||||
${V} echo '=-=-=-=-= Invoking $@ rule for custom =-=-=-=-='
|
${V} echo '=-=-=-=-= Invoking $@ rule for custom =-=-=-=-='
|
||||||
cd custom; ${MAKE} -f Makefile ${CUSTOM_PASSDOWN} clean
|
cd custom; ${MAKE} -f Makefile ${CUSTOM_PASSDOWN} clean
|
||||||
@@ -2784,16 +2791,12 @@ clean:
|
|||||||
${V} echo '=-=-=-=-= Invoking $@ rule for sample =-=-=-=-='
|
${V} echo '=-=-=-=-= Invoking $@ rule for sample =-=-=-=-='
|
||||||
cd sample; ${MAKE} -f Makefile ${SAMPLE_PASSDOWN} clean
|
cd sample; ${MAKE} -f Makefile ${SAMPLE_PASSDOWN} clean
|
||||||
${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
|
${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
|
||||||
${V} echo '=-=-=-=-= Invoking $@ rule for cscript =-=-=-=-='
|
|
||||||
cd cscript; ${MAKE} -f Makefile ${CSCRIPT_PASSDOWN} clean
|
|
||||||
${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
|
|
||||||
${Q}echo remove files that are obsolete
|
${Q}echo remove files that are obsolete
|
||||||
-rm -rf lib
|
-rm -f endian.h stdarg.h libcalcerr.a lib/obj help/obj
|
||||||
-rm -f endian.h stdarg.h libcalcerr.a cal/obj help/obj
|
|
||||||
-rm -f have_vs.c std_arg.h try_stdarg.c fnvhash.c
|
-rm -f have_vs.c std_arg.h try_stdarg.c fnvhash.c
|
||||||
${V} echo '=-=-=-=-= end of $@ rule =-=-=-=-='
|
${V} echo '=-=-=-=-= end of $@ rule =-=-=-=-='
|
||||||
|
|
||||||
clobber:
|
clobber: lintclean
|
||||||
${V} echo '=-=-=-=-= start of $@ rule =-=-=-=-='
|
${V} echo '=-=-=-=-= start of $@ rule =-=-=-=-='
|
||||||
-rm -f ${LIBOBJS}
|
-rm -f ${LIBOBJS}
|
||||||
-rm -f ${CALCOBJS}
|
-rm -f ${CALCOBJS}
|
||||||
@@ -2812,8 +2815,8 @@ clobber:
|
|||||||
${V} echo '=-=-=-=-= Invoking $@ rule for help =-=-=-=-='
|
${V} echo '=-=-=-=-= Invoking $@ rule for help =-=-=-=-='
|
||||||
-cd help; ${MAKE} -f Makefile ${HELP_PASSDOWN} clobber
|
-cd help; ${MAKE} -f Makefile ${HELP_PASSDOWN} clobber
|
||||||
${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
|
${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
|
||||||
${V} echo '=-=-=-=-= Invoking $@ rule for cal =-=-=-=-='
|
${V} echo '=-=-=-=-= Invoking $@ rule for lib =-=-=-=-='
|
||||||
-cd cal; ${MAKE} -f Makefile ${CAL_PASSDOWN} clobber
|
-cd lib; ${MAKE} -f Makefile ${LIB_PASSDOWN} clobber
|
||||||
${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
|
${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
|
||||||
${V} echo '=-=-=-=-= Invoking $@ rule for custom =-=-=-=-='
|
${V} echo '=-=-=-=-= Invoking $@ rule for custom =-=-=-=-='
|
||||||
cd custom; ${MAKE} -f Makefile ${CUSTOM_PASSDOWN} clobber
|
cd custom; ${MAKE} -f Makefile ${CUSTOM_PASSDOWN} clobber
|
||||||
@@ -2821,12 +2824,8 @@ clobber:
|
|||||||
${V} echo '=-=-=-=-= Invoking $@ rule for sample =-=-=-=-='
|
${V} echo '=-=-=-=-= Invoking $@ rule for sample =-=-=-=-='
|
||||||
cd sample; ${MAKE} -f Makefile ${SAMPLE_PASSDOWN} clobber
|
cd sample; ${MAKE} -f Makefile ${SAMPLE_PASSDOWN} clobber
|
||||||
${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
|
${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
|
||||||
${V} echo '=-=-=-=-= Invoking $@ rule for cscript =-=-=-=-='
|
|
||||||
cd cscript; ${MAKE} -f Makefile ${CSCRIPT_PASSDOWN} clobber
|
|
||||||
${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
|
|
||||||
${V} echo remove files that are obsolete
|
${V} echo remove files that are obsolete
|
||||||
-rm -rf lib
|
-rm -f endian.h stdarg.h libcalcerr.a lib/obj help/obj
|
||||||
-rm -f endian.h stdarg.h libcalcerr.a cal/obj help/obj
|
|
||||||
-rm -f have_vs.c std_arg.h try_stdarg.c fnvhash.c
|
-rm -f have_vs.c std_arg.h try_stdarg.c fnvhash.c
|
||||||
${V} echo '=-=-=-=-= end of $@ rule =-=-=-=-='
|
${V} echo '=-=-=-=-= end of $@ rule =-=-=-=-='
|
||||||
|
|
||||||
@@ -2838,57 +2837,50 @@ install: calc libcalc.a ${LIB_H_SRC} ${BUILD_H_SRC} calc.1
|
|||||||
else \
|
else \
|
||||||
true; \
|
true; \
|
||||||
fi
|
fi
|
||||||
-${CHMOD} 0755 ${TOPDIR}
|
-chmod 0755 ${TOPDIR}
|
||||||
-${Q}if [ ! -d ${LIBDIR} ]; then \
|
-${Q}if [ ! -d ${LIBDIR} ]; then \
|
||||||
echo mkdir ${LIBDIR}; \
|
echo mkdir ${LIBDIR}; \
|
||||||
mkdir ${LIBDIR}; \
|
mkdir ${LIBDIR}; \
|
||||||
else \
|
else \
|
||||||
true; \
|
true; \
|
||||||
fi
|
fi
|
||||||
-${CHMOD} 0755 ${LIBDIR}
|
-chmod 0755 ${LIBDIR}
|
||||||
-${Q}if [ ! -d ${HELPDIR} ]; then \
|
-${Q}if [ ! -d ${HELPDIR} ]; then \
|
||||||
echo mkdir ${HELPDIR}; \
|
echo mkdir ${HELPDIR}; \
|
||||||
mkdir ${HELPDIR}; \
|
mkdir ${HELPDIR}; \
|
||||||
else \
|
else \
|
||||||
true; \
|
true; \
|
||||||
fi
|
fi
|
||||||
-${CHMOD} 0755 ${HELPDIR}
|
-chmod 0755 ${HELPDIR}
|
||||||
-${Q}if [ ! -d ${SCRIPTDIR} ]; then \
|
|
||||||
echo mkdir ${SCRIPTDIR}; \
|
|
||||||
mkdir ${SCRIPTDIR}; \
|
|
||||||
else \
|
|
||||||
true; \
|
|
||||||
fi
|
|
||||||
-${CHMOD} 0755 ${SCRIPTDIR}
|
|
||||||
-${Q}if [ ! -d ${INCDIR} ]; then \
|
-${Q}if [ ! -d ${INCDIR} ]; then \
|
||||||
echo mkdir ${INCDIR}; \
|
echo mkdir ${INCDIR}; \
|
||||||
mkdir ${INCDIR}; \
|
mkdir ${INCDIR}; \
|
||||||
else \
|
else \
|
||||||
true; \
|
true; \
|
||||||
fi
|
fi
|
||||||
-${CHMOD} 0755 ${INCDIR}
|
-chmod 0755 ${INCDIR}
|
||||||
-${Q}if [ ! -d ${INCDIRCALC} ]; then \
|
-${Q}if [ ! -d ${INCDIRCALC} ]; then \
|
||||||
echo mkdir ${INCDIRCALC}; \
|
echo mkdir ${INCDIRCALC}; \
|
||||||
mkdir ${INCDIRCALC}; \
|
mkdir ${INCDIRCALC}; \
|
||||||
else \
|
else \
|
||||||
true; \
|
true; \
|
||||||
fi
|
fi
|
||||||
-${CHMOD} 0755 ${INCDIRCALC}
|
-chmod 0755 ${INCDIRCALC}
|
||||||
-${Q}if [ ! -d ${BINDIR} ]; then \
|
-${Q}if [ ! -d ${BINDIR} ]; then \
|
||||||
echo mkdir ${BINDIR}; \
|
echo mkdir ${BINDIR}; \
|
||||||
mkdir ${BINDIR}; \
|
mkdir ${BINDIR}; \
|
||||||
else \
|
else \
|
||||||
true; \
|
true; \
|
||||||
fi
|
fi
|
||||||
-${CHMOD} 0755 ${BINDIR}
|
-chmod 0755 ${BINDIR}
|
||||||
-rm -f ${BINDIR}/calc
|
-rm -f ${BINDIR}/calc
|
||||||
cp calc ${BINDIR}
|
cp calc ${BINDIR}
|
||||||
-${CHMOD} 0555 ${BINDIR}/calc
|
-chmod 0555 ${BINDIR}/calc
|
||||||
${V} echo '=-=-=-=-= Invoking $@ rule for help =-=-=-=-='
|
${V} echo '=-=-=-=-= Invoking $@ rule for help =-=-=-=-='
|
||||||
cd help; ${MAKE} -f Makefile ${HELP_PASSDOWN} install
|
cd help; ${MAKE} -f Makefile ${HELP_PASSDOWN} install
|
||||||
${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
|
${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
|
||||||
${V} echo '=-=-=-=-= Invoking $@ rule for cal =-=-=-=-='
|
${V} echo '=-=-=-=-= Invoking $@ rule for lib =-=-=-=-='
|
||||||
cd cal; ${MAKE} -f Makefile ${CAL_PASSDOWN} install
|
cd lib; ${MAKE} -f Makefile ${LIB_PASSDOWN} install
|
||||||
${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
|
${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
|
||||||
${V} echo '=-=-=-=-= Invoking $@ rule for custom =-=-=-=-='
|
${V} echo '=-=-=-=-= Invoking $@ rule for custom =-=-=-=-='
|
||||||
cd custom; ${MAKE} -f Makefile ${CUSTOM_PASSDOWN} install
|
cd custom; ${MAKE} -f Makefile ${CUSTOM_PASSDOWN} install
|
||||||
@@ -2896,13 +2888,10 @@ install: calc libcalc.a ${LIB_H_SRC} ${BUILD_H_SRC} calc.1
|
|||||||
${V} echo '=-=-=-=-= Invoking $@ rule for sample =-=-=-=-='
|
${V} echo '=-=-=-=-= Invoking $@ rule for sample =-=-=-=-='
|
||||||
cd sample; ${MAKE} -f Makefile ${SAMPLE_PASSDOWN} install
|
cd sample; ${MAKE} -f Makefile ${SAMPLE_PASSDOWN} install
|
||||||
${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
|
${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
|
||||||
${V} echo '=-=-=-=-= Invoking $@ rule for cscript =-=-=-=-='
|
|
||||||
cd cscript; ${MAKE} -f Makefile ${CSCRIPT_PASSDOWN} install
|
|
||||||
${V} echo '=-=-=-=-= Back to the main Makefile for $@ rule =-=-=-=-='
|
|
||||||
-rm -f ${LIBDIR}/libcalc.a
|
-rm -f ${LIBDIR}/libcalc.a
|
||||||
cp -f libcalc.a ${LIBDIR}/libcalc.a
|
cp -f libcalc.a ${LIBDIR}/libcalc.a
|
||||||
${RANLIB} ${LIBDIR}/libcalc.a
|
${RANLIB} ${LIBDIR}/libcalc.a
|
||||||
-${CHMOD} 0444 ${LIBDIR}/libcalc.a
|
-chmod 0644 ${LIBDIR}/libcalc.a
|
||||||
-${Q}for i in ${LIB_H_SRC} ${BUILD_H_SRC}; do \
|
-${Q}for i in ${LIB_H_SRC} ${BUILD_H_SRC}; do \
|
||||||
echo rm -f ${LIBDIR}/$$i; \
|
echo rm -f ${LIBDIR}/$$i; \
|
||||||
rm -f ${LIBDIR}/$$i; \
|
rm -f ${LIBDIR}/$$i; \
|
||||||
@@ -2910,9 +2899,20 @@ install: calc libcalc.a ${LIB_H_SRC} ${BUILD_H_SRC} calc.1
|
|||||||
rm -f ${INCDIRCALC}/$$i; \
|
rm -f ${INCDIRCALC}/$$i; \
|
||||||
echo cp $$i ${INCDIRCALC}; \
|
echo cp $$i ${INCDIRCALC}; \
|
||||||
cp $$i ${INCDIRCALC}; \
|
cp $$i ${INCDIRCALC}; \
|
||||||
echo ${CHMOD} 0444 ${INCDIRCALC}/$$i; \
|
echo chmod 0444 ${INCDIRCALC}/$$i; \
|
||||||
${CHMOD} 0444 ${INCDIRCALC}/$$i; \
|
chmod 0444 ${INCDIRCALC}/$$i; \
|
||||||
done
|
done
|
||||||
|
${Q}: If lint was made, install the lint library.
|
||||||
|
-${Q}if [ -f llib-lcalc.ln ]; then \
|
||||||
|
echo rm -f ${LIBDIR}/llib-lcalc.ln; \
|
||||||
|
rm -f ${LIBDIR}/llib-lcalc.ln; \
|
||||||
|
echo cp llib-lcalc.ln ${LIBDIR}; \
|
||||||
|
cp llib-lcalc.ln ${LIBDIR}; \
|
||||||
|
echo chmod 0444 ${LIBDIR}/llib-lcalc.ln; \
|
||||||
|
chmod 0444 ${LIBDIR}/llib-lcalc.ln; \
|
||||||
|
else \
|
||||||
|
true; \
|
||||||
|
fi
|
||||||
-${Q}if [ -z "${MANDIR}" ]; then \
|
-${Q}if [ -z "${MANDIR}" ]; then \
|
||||||
echo '$${MANDIR} is empty, calc man page will not be installed'; \
|
echo '$${MANDIR} is empty, calc man page will not be installed'; \
|
||||||
else \
|
else \
|
||||||
@@ -2920,8 +2920,8 @@ install: calc libcalc.a ${LIB_H_SRC} ${BUILD_H_SRC} calc.1
|
|||||||
rm -f ${MANDIR}/calc.${MANEXT}; \
|
rm -f ${MANDIR}/calc.${MANEXT}; \
|
||||||
echo "cp calc.1 ${MANDIR}/calc.${MANEXT}"; \
|
echo "cp calc.1 ${MANDIR}/calc.${MANEXT}"; \
|
||||||
cp calc.1 ${MANDIR}/calc.${MANEXT}; \
|
cp calc.1 ${MANDIR}/calc.${MANEXT}; \
|
||||||
echo "${CHMOD} 0444 ${MANDIR}/calc.${MANEXT}"; \
|
echo "chmod 0444 ${MANDIR}/calc.${MANEXT}"; \
|
||||||
${CHMOD} 0444 ${MANDIR}/calc.${MANEXT}; \
|
chmod 0444 ${MANDIR}/calc.${MANEXT}; \
|
||||||
fi
|
fi
|
||||||
-${Q}if [ -z "${CATDIR}" ]; then \
|
-${Q}if [ -z "${CATDIR}" ]; then \
|
||||||
echo '$${CATDIR} is empty, calc cat page will not be installed'; \
|
echo '$${CATDIR} is empty, calc cat page will not be installed'; \
|
||||||
@@ -2934,8 +2934,8 @@ install: calc libcalc.a ${LIB_H_SRC} ${BUILD_H_SRC} calc.1
|
|||||||
rm -f ${CATDIR}/calc.${CATEXT}; \
|
rm -f ${CATDIR}/calc.${CATEXT}; \
|
||||||
echo "${NROFF} ${NROFF_ARG} calc.1 > ${CATDIR}/calc.${CATEXT}";\
|
echo "${NROFF} ${NROFF_ARG} calc.1 > ${CATDIR}/calc.${CATEXT}";\
|
||||||
${NROFF} ${NROFF_ARG} calc.1 > ${CATDIR}/calc.${CATEXT}; \
|
${NROFF} ${NROFF_ARG} calc.1 > ${CATDIR}/calc.${CATEXT}; \
|
||||||
echo "${CHMOD} ${MANMODE} ${MANDIR}/calc.${MANEXT}"; \
|
echo "chmod ${MANMODE} ${MANDIR}/calc.${MANEXT}"; \
|
||||||
${CHMOD} ${MANMODE} ${MANDIR}/calc.${MANEXT}; \
|
chmod ${MANMODE} ${MANDIR}/calc.${MANEXT}; \
|
||||||
fi; \
|
fi; \
|
||||||
fi
|
fi
|
||||||
${Q}echo remove files that are obsolete
|
${Q}echo remove files that are obsolete
|
||||||
@@ -2944,11 +2944,8 @@ install: calc libcalc.a ${LIB_H_SRC} ${BUILD_H_SRC} calc.1
|
|||||||
-rm -f ${LIBDIR}/prototype.h prototype.h
|
-rm -f ${LIBDIR}/prototype.h prototype.h
|
||||||
-rm -f ${LIBDIR}/libcalcerr.a libcalcerr.a
|
-rm -f ${LIBDIR}/libcalcerr.a libcalcerr.a
|
||||||
-rm -f ${LIBDIR}/calc_errno.h calc_errno.h ${INCDIRCALC}/calc_errno.h
|
-rm -f ${LIBDIR}/calc_errno.h calc_errno.h ${INCDIRCALC}/calc_errno.h
|
||||||
-rm -f calc_errno.c calc_errno.o calc_errno lint.sed
|
-rm -f calc_errno.c calc_errno.o calc_errno
|
||||||
-rm -f alloc.c alloc.o have_vs.c have_vs.o have_vs io.c io.o
|
-rm -f ${LIBDIR}/altbind ${HELPDIR}/altbind
|
||||||
-rm -f std_arg.h try_stdarg.c try_stdarg.o try_stdarg
|
|
||||||
-rm -f ${LIBDIR}/altbind ${HELPDIR}/altbind cal/altbind
|
|
||||||
-rm -f ${LIBDIR}/llib-lcalc.ln
|
|
||||||
${V} echo '=-=-=-=-= end of $@ rule =-=-=-=-='
|
${V} echo '=-=-=-=-= end of $@ rule =-=-=-=-='
|
||||||
|
|
||||||
##
|
##
|
||||||
@@ -3195,7 +3192,6 @@ config.o: have_malloc.h
|
|||||||
config.o: have_memmv.h
|
config.o: have_memmv.h
|
||||||
config.o: have_newstr.h
|
config.o: have_newstr.h
|
||||||
config.o: have_stdlib.h
|
config.o: have_stdlib.h
|
||||||
config.o: have_strdup.h
|
|
||||||
config.o: have_string.h
|
config.o: have_string.h
|
||||||
config.o: longbits.h
|
config.o: longbits.h
|
||||||
config.o: md5.h
|
config.o: md5.h
|
||||||
@@ -3434,6 +3430,7 @@ hist.o: qmath.h
|
|||||||
hist.o: shs.h
|
hist.o: shs.h
|
||||||
hist.o: shs1.h
|
hist.o: shs1.h
|
||||||
hist.o: string.h
|
hist.o: string.h
|
||||||
|
hist.o: terminal.h
|
||||||
hist.o: value.h
|
hist.o: value.h
|
||||||
hist.o: zmath.h
|
hist.o: zmath.h
|
||||||
input.o: alloc.h
|
input.o: alloc.h
|
||||||
@@ -3525,7 +3522,6 @@ lib_calc.o: shs.h
|
|||||||
lib_calc.o: shs1.h
|
lib_calc.o: shs1.h
|
||||||
lib_calc.o: string.h
|
lib_calc.o: string.h
|
||||||
lib_calc.o: symbol.h
|
lib_calc.o: symbol.h
|
||||||
lib_calc.o: terminal.h
|
|
||||||
lib_calc.o: token.h
|
lib_calc.o: token.h
|
||||||
lib_calc.o: value.h
|
lib_calc.o: value.h
|
||||||
lib_calc.o: zmath.h
|
lib_calc.o: zmath.h
|
||||||
|
31
README
31
README
@@ -52,10 +52,9 @@ C programmers should note some unexpected differences in the calc syntax:
|
|||||||
|
|
||||||
> help unexpected
|
> help unexpected
|
||||||
|
|
||||||
Calc is shipped with a standard collection of calc resource files.
|
Calc is shipped with a library of calc scripts. For a list see:
|
||||||
For a list of calc standard resource files see:
|
|
||||||
|
|
||||||
> help resource
|
> help stdlib
|
||||||
|
|
||||||
=-=
|
=-=
|
||||||
|
|
||||||
@@ -99,29 +98,3 @@ but see the BUGS file first.
|
|||||||
The calc web site is located at:
|
The calc web site is located at:
|
||||||
|
|
||||||
http://reality.sgi.com/chongo/tech/comp/calc/
|
http://reality.sgi.com/chongo/tech/comp/calc/
|
||||||
|
|
||||||
## Copyright (C) 1999 Landon Curt Noll
|
|
||||||
##
|
|
||||||
## Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
## the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
## as published by the Free Software Foundation.
|
|
||||||
##
|
|
||||||
## Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
## or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
## Public License for more details.
|
|
||||||
##
|
|
||||||
## A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
## distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
## received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
##
|
|
||||||
## @(#) $Revision: 29.1 $
|
|
||||||
## @(#) $Id: README,v 29.1 1999/12/14 09:15:29 chongo Exp $
|
|
||||||
## @(#) $Source: /usr/local/src/cmd/calc/RCS/README,v $
|
|
||||||
##
|
|
||||||
## Under source code control: 1995/10/25 05:27:59
|
|
||||||
## File existed as early as: 1995
|
|
||||||
##
|
|
||||||
## chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
## Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
|
46
addop.c
46
addop.c
@@ -1,35 +1,11 @@
|
|||||||
/*
|
/*
|
||||||
* addop - add opcodes to a function being compiled
|
* Copyright (c) 1997 David I. Bell
|
||||||
|
* Permission is granted to use, distribute, or modify this source,
|
||||||
|
* provided that this copyright notice remains intact.
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999 David I. Bell and Ernest Bowen
|
* Add opcodes to a function being compiled.
|
||||||
*
|
|
||||||
* Primary author: David I. Bell
|
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: addop.c,v 29.1 1999/12/14 09:15:29 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/addop.c,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1990/02/15 01:48:10
|
|
||||||
* File existed as early as: before 1990
|
|
||||||
*
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include "calc.h"
|
#include "calc.h"
|
||||||
#include "opcodes.h"
|
#include "opcodes.h"
|
||||||
@@ -92,7 +68,7 @@ showfunctions(void)
|
|||||||
|
|
||||||
count = 0;
|
count = 0;
|
||||||
if (funccount > 0) {
|
if (funccount > 0) {
|
||||||
if (conf->resource_debug & RSCDBG_FUNC_INFO)
|
if (conf->lib_debug & LIBDBG_FUNC_INFO)
|
||||||
math_str("Index\tName \tArgs\tOpcodes\n"
|
math_str("Index\tName \tArgs\tOpcodes\n"
|
||||||
"-----\t------ \t---- \t------\n");
|
"-----\t------ \t---- \t------\n");
|
||||||
else
|
else
|
||||||
@@ -100,7 +76,7 @@ showfunctions(void)
|
|||||||
"----\t---------\n");
|
"----\t---------\n");
|
||||||
for (index = 0; index < funccount; index++) {
|
for (index = 0; index < funccount; index++) {
|
||||||
fp = functions[index];
|
fp = functions[index];
|
||||||
if (conf->resource_debug & RSCDBG_FUNC_INFO) {
|
if (conf->lib_debug & LIBDBG_FUNC_INFO) {
|
||||||
|
|
||||||
math_fmt("%5ld\t%-12s\t", index,
|
math_fmt("%5ld\t%-12s\t", index,
|
||||||
namestr(&funcnames,index));
|
namestr(&funcnames,index));
|
||||||
@@ -120,7 +96,7 @@ showfunctions(void)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (conf->resource_debug & RSCDBG_FUNC_INFO) {
|
if (conf->lib_debug & LIBDBG_FUNC_INFO) {
|
||||||
math_fmt("\nNumber non-null: %ld\n", count);
|
math_fmt("\nNumber non-null: %ld\n", count);
|
||||||
math_fmt("Number null: %ld\n", funccount - count);
|
math_fmt("Number null: %ld\n", funccount - count);
|
||||||
math_fmt("Total number: %ld\n", funccount);
|
math_fmt("Total number: %ld\n", funccount);
|
||||||
@@ -215,8 +191,8 @@ endfunc(void)
|
|||||||
size += dumpop(&fp->f_opcodes[size]);
|
size += dumpop(&fp->f_opcodes[size]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ((inputisterminal() && conf->resource_debug & RSCDBG_STDIN_FUNC) ||
|
if ((inputisterminal() && conf->lib_debug & LIBDBG_STDIN_FUNC) ||
|
||||||
(!inputisterminal() && conf->resource_debug & RSCDBG_FILE_FUNC)) {
|
(!inputisterminal() && conf->lib_debug & LIBDBG_FILE_FUNC)) {
|
||||||
printf("%s(", newname);
|
printf("%s(", newname);
|
||||||
for (index = 0; index < fp->f_paramcount; index++) {
|
for (index = 0; index < fp->f_paramcount; index++) {
|
||||||
if (index)
|
if (index)
|
||||||
@@ -288,8 +264,8 @@ rmuserfunc(char *name)
|
|||||||
return;
|
return;
|
||||||
freenumbers(functions[index]);
|
freenumbers(functions[index]);
|
||||||
free(functions[index]);
|
free(functions[index]);
|
||||||
if ((inputisterminal() && conf->resource_debug & RSCDBG_STDIN_FUNC) ||
|
if ((inputisterminal() && conf->lib_debug & LIBDBG_STDIN_FUNC) ||
|
||||||
(!inputisterminal() && conf->resource_debug & RSCDBG_FILE_FUNC))
|
(!inputisterminal() && conf->lib_debug & LIBDBG_FILE_FUNC))
|
||||||
printf("%s() undefined\n", name);
|
printf("%s() undefined\n", name);
|
||||||
functions[index] = NULL;
|
functions[index] = NULL;
|
||||||
}
|
}
|
||||||
|
36
align32.c
36
align32.c
@@ -1,34 +1,26 @@
|
|||||||
/*
|
/*
|
||||||
* align32 - determine if 32 bit accesses must be aligned
|
* align32 - determine if 32 bit accesses must be aligned
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999 Landon Curt Noll
|
* This file was written by:
|
||||||
*
|
*
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
* Landon Curt Noll
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
* http://reality.sgi.com/chongo/
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
*
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
* chongo <was here> /\../\
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
*
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
* This code has been placed in the public domain. Please do not
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
* copyright this code.
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
*
|
||||||
* @(#) $Revision: 29.1 $
|
* LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH REGARD TO
|
||||||
* @(#) $Id: align32.c,v 29.1 1999/12/14 09:15:29 chongo Exp $
|
* THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MER-
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/align32.c,v $
|
* CHANTABILITY AND FITNESS. IN NO EVENT SHALL LANDON CURT
|
||||||
*
|
* NOLL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL
|
||||||
* Under source code control: 1995/11/23 05:18:06
|
* DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
|
||||||
* File existed as early as: 1995
|
* USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
|
||||||
*
|
* NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
|
||||||
* chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#include "longbits.h"
|
#include "longbits.h"
|
||||||
|
29
alloc.h
29
alloc.h
@@ -1,30 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* alloc - storage allocation and storage debug macros
|
* Copyright (c) 1997 David I. Bell
|
||||||
*
|
* Permission is granted to use, distribute, or modify this source,
|
||||||
* Copyright (C) 1999 David I. Bell
|
* provided that this copyright notice remains intact.
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: alloc.h,v 29.1 1999/12/14 09:15:29 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/alloc.h,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1990/02/15 01:48:29
|
|
||||||
* File existed as early as: before 1990
|
|
||||||
*
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
32
assocfunc.c
32
assocfunc.c
@@ -1,33 +1,8 @@
|
|||||||
/*
|
/*
|
||||||
* assocfunc - association table routines
|
* Copyright (c) 1995 David I. Bell
|
||||||
|
* Permission is granted to use, distribute, or modify this source,
|
||||||
|
* provided that this copyright notice remains intact.
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999 David I. Bell
|
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: assocfunc.c,v 29.1 1999/12/14 09:15:29 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/assocfunc.c,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1993/07/20 23:04:27
|
|
||||||
* File existed as early as: 1993
|
|
||||||
*
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Association table routines.
|
* Association table routines.
|
||||||
* An association table is a type of value which can be "indexed" by
|
* An association table is a type of value which can be "indexed" by
|
||||||
* one or more arbitrary values. Each element in the table is thus an
|
* one or more arbitrary values. Each element in the table is thus an
|
||||||
@@ -36,7 +11,6 @@
|
|||||||
* quick access.
|
* quick access.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#include "value.h"
|
#include "value.h"
|
||||||
|
|
||||||
|
|
||||||
|
33
blkcpy.c
33
blkcpy.c
@@ -1,35 +1,12 @@
|
|||||||
/*
|
/*
|
||||||
* blkcpy - general values and related routines used by the calculator
|
* Copyright (c) 1997 Ernest Bowen and Landon Curt Noll
|
||||||
|
* Permission is granted to use, distribute, or modify this source,
|
||||||
|
* provided that this copyright notice remains intact.
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999 Landon Curt Noll and Ernest Bowen
|
* By: Ernest Bowen and Landon Curt Noll
|
||||||
*
|
* ernie@neumann.une.edu.au and http://reality.sgi.com/chongo/
|
||||||
* Primary author: Landon Curt Noll
|
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: blkcpy.c,v 29.1 1999/12/14 09:15:29 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/blkcpy.c,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1997/04/18 20:41:26
|
|
||||||
* File existed as early as: 1997
|
|
||||||
*
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include "calc.h"
|
#include "calc.h"
|
||||||
|
31
blkcpy.h
31
blkcpy.h
@@ -1,32 +1,9 @@
|
|||||||
/*
|
/*
|
||||||
* blkcpy - general values and related routines used by the calculator
|
* Copyright (c) 1997 David I. Bell
|
||||||
|
* Permission is granted to use, distribute, or modify this source,
|
||||||
|
* provided that this copyright notice remains intact.
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999 Landon Curt Noll and Ernest Bowen
|
* Definitions of general values and related routines used by the calculator.
|
||||||
*
|
|
||||||
* Primary author: Landon Curt Noll
|
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: blkcpy.h,v 29.1 1999/12/14 09:15:29 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/blkcpy.h,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1997/04/18 20:41:25
|
|
||||||
* File existed as early as: 1997
|
|
||||||
*
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
45
block.c
45
block.c
@@ -1,33 +1,36 @@
|
|||||||
/*
|
/*
|
||||||
* block - fixed, dynamic, fifo and circular memory blocks
|
* block - fixed, dynamic, fifo and circular memory blocks
|
||||||
|
*/
|
||||||
|
/*
|
||||||
|
* Copyright (c) 1997 by Landon Curt Noll. All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999 Landon Curt Noll and Ernest Bowen
|
* Permission to use, copy, modify, and distribute this software and
|
||||||
|
* its documentation for any purpose and without fee is hereby granted,
|
||||||
|
* provided that the above copyright, this permission notice and text
|
||||||
|
* this comment, and the disclaimer below appear in all of the following:
|
||||||
*
|
*
|
||||||
* Primary author: Landon Curt Noll
|
* supporting documentation
|
||||||
|
* source copies
|
||||||
|
* source works derived from this source
|
||||||
|
* binaries derived from this source or from derived source
|
||||||
*
|
*
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
* LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
|
||||||
* as published by the Free Software Foundation.
|
* EVENT SHALL LANDON CURT NOLL BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
||||||
|
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
|
||||||
|
* USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||||
|
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
*
|
*
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
* Comments, suggestions, bug fixes and questions about these routines
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
* are welcome. Send EMail to the address given below.
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
*
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
* Happy bit twiddling,
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
*
|
||||||
* @(#) $Revision: 29.1 $
|
* Landon Curt Noll
|
||||||
* @(#) $Id: block.c,v 29.1 1999/12/14 09:15:29 chongo Exp $
|
* http://reality.sgi.com/chongo/
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/block.c,v $
|
|
||||||
*
|
*
|
||||||
* Under source code control: 1997/02/27 00:29:40
|
* chongo <was here> /\../\
|
||||||
* File existed as early as: 1997
|
|
||||||
*
|
|
||||||
* chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
45
block.h
45
block.h
@@ -1,33 +1,36 @@
|
|||||||
/*
|
/*
|
||||||
* block - fixed, dynamic, fifo and circular memory blocks
|
* block - fixed, dynamic, fifo and circular memory blocks
|
||||||
|
*/
|
||||||
|
/*
|
||||||
|
* Copyright (c) 1997 by Landon Curt Noll. All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999 Landon Curt Noll and Ernest Bowen
|
* Permission to use, copy, modify, and distribute this software and
|
||||||
|
* its documentation for any purpose and without fee is hereby granted,
|
||||||
|
* provided that the above copyright, this permission notice and text
|
||||||
|
* this comment, and the disclaimer below appear in all of the following:
|
||||||
*
|
*
|
||||||
* Primary author: Landon Curt Noll
|
* supporting documentation
|
||||||
|
* source copies
|
||||||
|
* source works derived from this source
|
||||||
|
* binaries derived from this source or from derived source
|
||||||
*
|
*
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
* LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
|
||||||
* as published by the Free Software Foundation.
|
* EVENT SHALL LANDON CURT NOLL BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
||||||
|
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
|
||||||
|
* USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||||
|
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
*
|
*
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
* Comments, suggestions, bug fixes and questions about these routines
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
* are welcome. Send EMail to the address given below.
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
*
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
* Happy bit twiddling,
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
*
|
||||||
* @(#) $Revision: 29.1 $
|
* Landon Curt Noll
|
||||||
* @(#) $Id: block.h,v 29.1 1999/12/14 09:15:30 chongo Exp $
|
* http://reality.sgi.com/chongo/
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/block.h,v $
|
|
||||||
*
|
*
|
||||||
* Under source code control: 1997/02/21 05:03:39
|
* chongo <was here> /\../\
|
||||||
* File existed as early as: 1997
|
|
||||||
*
|
|
||||||
* chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
41
byteswap.c
41
byteswap.c
@@ -1,34 +1,25 @@
|
|||||||
/*
|
/*
|
||||||
* byteswap - byte swapping routines
|
* Copyright (c) 1995 by Landon Curt Noll. All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999 Landon Curt Noll
|
* Permission to use, copy, modify, and distribute this software and
|
||||||
|
* its documentation for any purpose and without fee is hereby granted,
|
||||||
|
* provided that the above copyright, this permission notice and text
|
||||||
|
* this comment, and the disclaimer below appear in all of the following:
|
||||||
*
|
*
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
* supporting documentation
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
* source copies
|
||||||
* as published by the Free Software Foundation.
|
* source works derived from this source
|
||||||
|
* binaries derived from this source or from derived source
|
||||||
*
|
*
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
* LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
* EVENT SHALL LANDON CURT NOLL BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
||||||
* Public License for more details.
|
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
|
||||||
*
|
* USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: byteswap.c,v 29.1 1999/12/14 09:15:30 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/byteswap.c,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1995/10/11 04:44:01
|
|
||||||
* File existed as early as: 1995
|
|
||||||
*
|
|
||||||
* chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#include "cmath.h"
|
#include "cmath.h"
|
||||||
#include "byteswap.h"
|
#include "byteswap.h"
|
||||||
|
|
||||||
|
40
byteswap.h
40
byteswap.h
@@ -1,31 +1,23 @@
|
|||||||
/*
|
/*
|
||||||
* byteswap - byte swapping macros
|
* Copyright (c) 1997 by Landon Curt Noll. All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999 Landon Curt Noll
|
* Permission to use, copy, modify, and distribute this software and
|
||||||
|
* its documentation for any purpose and without fee is hereby granted,
|
||||||
|
* provided that the above copyright, this permission notice and text
|
||||||
|
* this comment, and the disclaimer below appear in all of the following:
|
||||||
*
|
*
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
* supporting documentation
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
* source copies
|
||||||
* as published by the Free Software Foundation.
|
* source works derived from this source
|
||||||
|
* binaries derived from this source or from derived source
|
||||||
*
|
*
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
* LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
* EVENT SHALL LANDON CURT NOLL BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
||||||
* Public License for more details.
|
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
|
||||||
*
|
* USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: byteswap.h,v 29.1 1999/12/14 09:15:30 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/byteswap.h,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1995/10/11 04:44:01
|
|
||||||
* File existed as early as: 1995
|
|
||||||
*
|
|
||||||
* chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
50
cal/beer.cal
50
cal/beer.cal
@@ -1,50 +0,0 @@
|
|||||||
/*
|
|
||||||
* beer - 99 bottles of beer
|
|
||||||
*
|
|
||||||
* Copyright (C) 1999 Landon Curt Noll
|
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: beer.cal,v 29.1 1999/12/14 09:15:30 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/beer.cal,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1996/11/13 13:21:05
|
|
||||||
* File existed as early as: 1996
|
|
||||||
*
|
|
||||||
* chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* See: http://www.ionet.net/~timtroyr/funhouse/beer.html#calc
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
for (i=99; i > 0;) {
|
|
||||||
/* current wall state */
|
|
||||||
some_bottles = (i != 1) ? "bottles" : "bottle";
|
|
||||||
print i, some_bottles, "of beer on the wall,",;
|
|
||||||
print i, some_bottles, "of beer!";
|
|
||||||
|
|
||||||
/* glug, glug */
|
|
||||||
--i;
|
|
||||||
print "Take one down and pass it around,",;
|
|
||||||
|
|
||||||
/* new wall state */
|
|
||||||
less = (i > 0) ? i : "no";
|
|
||||||
bottles = (i!=1) ? "bottles" : "bottle";
|
|
||||||
print less, bottles, "of beer on the wall!\n";
|
|
||||||
}
|
|
@@ -1,49 +0,0 @@
|
|||||||
/*
|
|
||||||
* bigprime - a prime test, base a, on p*2^x+1 for even x>m
|
|
||||||
*
|
|
||||||
* Copyright (C) 1999 David I. Bell
|
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: bigprime.cal,v 29.1 1999/12/14 09:15:30 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/bigprime.cal,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1991/05/22 21:56:32
|
|
||||||
* File existed as early as: 1991
|
|
||||||
*
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
define bigprime(a, m, p)
|
|
||||||
{
|
|
||||||
local n1, n;
|
|
||||||
|
|
||||||
n1 = 2^m * p;
|
|
||||||
for (;;) {
|
|
||||||
m++;
|
|
||||||
n1 += n1;
|
|
||||||
n = n1 + 1;
|
|
||||||
if (isodd(m))
|
|
||||||
continue;
|
|
||||||
print m;
|
|
||||||
if (pmod(a, n1 / 2, n) != n1)
|
|
||||||
continue;
|
|
||||||
if (pmod(a, n1 / p, n) == 1)
|
|
||||||
continue;
|
|
||||||
print " " : n;
|
|
||||||
}
|
|
||||||
}
|
|
75
cal/bindings
75
cal/bindings
@@ -1,75 +0,0 @@
|
|||||||
# bindings - default key bindings for calc line editing functions
|
|
||||||
#
|
|
||||||
# Copyright (C) 1999 David I. Bell
|
|
||||||
#
|
|
||||||
# Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
# the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
# as published by the Free Software Foundation.
|
|
||||||
#
|
|
||||||
# Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
# Public License for more details.
|
|
||||||
#
|
|
||||||
# A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
# distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
# received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
#
|
|
||||||
# @(#) $Revision: 29.1 $
|
|
||||||
# @(#) $Id: bindings,v 29.1 1999/12/14 09:15:30 chongo Exp $
|
|
||||||
# @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/bindings,v $
|
|
||||||
#
|
|
||||||
# Under source code control: 1993/05/02 20:09:19
|
|
||||||
# File existed as early as: 1993
|
|
||||||
#
|
|
||||||
# Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
|
|
||||||
# NOTE: This facility is ignored if calc was compiled with GNU-readline.
|
|
||||||
# In that case, the standard readline mechanisms (see readline(3))
|
|
||||||
# are used in place of those found below.
|
|
||||||
|
|
||||||
|
|
||||||
map base-map
|
|
||||||
default insert-char
|
|
||||||
^@ set-mark
|
|
||||||
^A start-of-line
|
|
||||||
^B backward-char
|
|
||||||
^D delete-char
|
|
||||||
^E end-of-line
|
|
||||||
^F forward-char
|
|
||||||
^H backward-kill-char
|
|
||||||
^J new-line
|
|
||||||
^K kill-line
|
|
||||||
^L refresh-line
|
|
||||||
^M new-line
|
|
||||||
^N forward-history
|
|
||||||
^O save-line
|
|
||||||
^P backward-history
|
|
||||||
^R reverse-search
|
|
||||||
^T swap-chars
|
|
||||||
^U flush-input
|
|
||||||
^V quote-char
|
|
||||||
^W kill-region
|
|
||||||
^Y yank
|
|
||||||
^? backward-kill-char
|
|
||||||
^[ ignore-char esc-map
|
|
||||||
|
|
||||||
map esc-map
|
|
||||||
default ignore-char base-map
|
|
||||||
G start-of-line
|
|
||||||
H backward-history
|
|
||||||
P forward-history
|
|
||||||
K backward-char
|
|
||||||
M forward-char
|
|
||||||
O end-of-line
|
|
||||||
S delete-char
|
|
||||||
g goto-line
|
|
||||||
s backward-word
|
|
||||||
t forward-word
|
|
||||||
d forward-kill-word
|
|
||||||
u uppercase-word
|
|
||||||
l lowercase-word
|
|
||||||
h list-history
|
|
||||||
^[ flush-input
|
|
||||||
[ arrow-key
|
|
@@ -1,36 +0,0 @@
|
|||||||
/*
|
|
||||||
* hello - print Hello World! forever
|
|
||||||
*
|
|
||||||
* Copyright (C) 1999 Landon Curt Noll
|
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: hello.cal,v 29.1 1999/12/14 09:15:31 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/hello.cal,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1996/11/13 13:25:43
|
|
||||||
* File existed as early as: 1996
|
|
||||||
*
|
|
||||||
* chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* See: http://www.latech.edu/~acm/helloworld/calc.html
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
while(1) print "Hello World!";
|
|
@@ -1,61 +0,0 @@
|
|||||||
/*
|
|
||||||
* mersenne - perform a primality test of 2^p-1, for prime p>1
|
|
||||||
*
|
|
||||||
* Copyright (C) 1999 David I. Bell and Landon Curt Noll
|
|
||||||
*
|
|
||||||
* Primary author: David I. Bell
|
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: mersenne.cal,v 29.1 1999/12/14 09:15:31 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/mersenne.cal,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1991/05/22 21:56:36
|
|
||||||
* File existed as early as: 1991
|
|
||||||
*
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* NOTE: See lucas.cal for a more general routine.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
define mersenne(p)
|
|
||||||
{
|
|
||||||
local u, i, p_mask;
|
|
||||||
|
|
||||||
/* firewall */
|
|
||||||
if (! isint(p))
|
|
||||||
quit "p is not an integer";
|
|
||||||
|
|
||||||
/* two is a special case */
|
|
||||||
if (p == 2)
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
/* if p is not prime, then 2^p-1 is not prime */
|
|
||||||
if (! ptest(p,1))
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
/* lltest: u(i+1) = u(i)^2 - 2 mod 2^p-1 */
|
|
||||||
u = 4;
|
|
||||||
for (i = 2; i < p; ++i) {
|
|
||||||
u = hnrmod(u^2 - 2, 1, p, -1);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* 2^p-1 is prime iff u(p) = 0 mod 2^p-1 */
|
|
||||||
return (u == 0);
|
|
||||||
}
|
|
94
cal/pell.cal
94
cal/pell.cal
@@ -1,94 +0,0 @@
|
|||||||
/*
|
|
||||||
* pell - solve Pell's equation
|
|
||||||
*
|
|
||||||
* Copyright (C) 1999 David I. Bell
|
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: pell.cal,v 29.1 1999/12/14 09:15:31 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/pell.cal,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1990/02/15 01:50:34
|
|
||||||
* File existed as early as: before 1990
|
|
||||||
*
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Solve Pell's equation; Returns the solution X to: X^2 - D * Y^2 = 1.
|
|
||||||
* Type the solution to pells equation for a particular D.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
define pell(D)
|
|
||||||
{
|
|
||||||
local X, Y;
|
|
||||||
|
|
||||||
X = pellx(D);
|
|
||||||
if (isnull(X)) {
|
|
||||||
print "D=":D:" is square";
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
Y = isqrt((X^2 - 1) / D);
|
|
||||||
print X : "^2 - " : D : "*" : Y : "^2 = " : X^2 - D*Y^2;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Function to solve Pell's equation
|
|
||||||
* Returns the solution X to:
|
|
||||||
* X^2 - D * Y^2 = 1
|
|
||||||
*/
|
|
||||||
define pellx(D)
|
|
||||||
{
|
|
||||||
local R, Rp, U, Up, V, Vp, A, T, Q1, Q2, n;
|
|
||||||
local mat ans[2,2];
|
|
||||||
local mat tmp[2,2];
|
|
||||||
|
|
||||||
R = isqrt(D);
|
|
||||||
Vp = D - R^2;
|
|
||||||
if (Vp == 0)
|
|
||||||
return;
|
|
||||||
Rp = R + R;
|
|
||||||
U = Rp;
|
|
||||||
Up = U;
|
|
||||||
V = 1;
|
|
||||||
A = 0;
|
|
||||||
n = 0;
|
|
||||||
ans[0,0] = 1;
|
|
||||||
ans[1,1] = 1;
|
|
||||||
tmp[0,1] = 1;
|
|
||||||
tmp[1,0] = 1;
|
|
||||||
do {
|
|
||||||
T = V;
|
|
||||||
V = A * (Up - U) + Vp;
|
|
||||||
Vp = T;
|
|
||||||
A = U // V;
|
|
||||||
Up = U;
|
|
||||||
U = Rp - U % V;
|
|
||||||
tmp[0,0] = A;
|
|
||||||
ans *= tmp;
|
|
||||||
n++;
|
|
||||||
} while (A != Rp);
|
|
||||||
Q2 = ans[[1]];
|
|
||||||
Q1 = isqrt(Q2^2 * D + 1);
|
|
||||||
if (isodd(n)) {
|
|
||||||
T = Q1^2 + D * Q2^2;
|
|
||||||
Q2 = Q1 * Q2 * 2;
|
|
||||||
Q1 = T;
|
|
||||||
}
|
|
||||||
return Q1;
|
|
||||||
}
|
|
71
cal/pix.cal
71
cal/pix.cal
@@ -1,71 +0,0 @@
|
|||||||
/*
|
|
||||||
* pix - iterative method of finding the number of primes less than x
|
|
||||||
*
|
|
||||||
* Copyright (C) 1999 Landon Curt Noll
|
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: pix.cal,v 29.1 1999/12/14 09:15:31 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/pix.cal,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1996/07/09 03:14:14
|
|
||||||
* File existed as early as: 1996
|
|
||||||
*
|
|
||||||
* chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Here is an iterative method of finding the number of primes less than
|
|
||||||
* or equal to a given number. This method is from "Computer Recreations"
|
|
||||||
* June 1996 issue of Scientific American.
|
|
||||||
*
|
|
||||||
* NOTE: For reasonable values of x, the builtin function pix(x) is
|
|
||||||
* much faster. This code is provided because the method
|
|
||||||
* is interesting.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
define pi_of_x(x)
|
|
||||||
{
|
|
||||||
local An; /* A(n) */
|
|
||||||
local An1; /* A(n-1) */
|
|
||||||
local An2; /* A(n-2) */
|
|
||||||
local An3; /* A(n-3) */
|
|
||||||
local primes; /* number of primes found */
|
|
||||||
local n; /* loop counter */
|
|
||||||
|
|
||||||
/*
|
|
||||||
* setup
|
|
||||||
*/
|
|
||||||
An1 = 2;
|
|
||||||
An2 = 0;
|
|
||||||
An3 = 3;
|
|
||||||
primes = 1;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* main A(n+1)=A(n-1)+A(n-2) sequence loop
|
|
||||||
*/
|
|
||||||
for (n = 3; n < x; ++n) {
|
|
||||||
An = An2 + An3;
|
|
||||||
An3 = An2;
|
|
||||||
An2 = An1;
|
|
||||||
An1 = An;
|
|
||||||
if (An % n == 0)
|
|
||||||
++primes;
|
|
||||||
}
|
|
||||||
return primes;
|
|
||||||
}
|
|
@@ -1,52 +0,0 @@
|
|||||||
/*
|
|
||||||
* pollard - factor using Pollard's p-1 method
|
|
||||||
*
|
|
||||||
* Copyright (C) 1999 David I. Bell
|
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: pollard.cal,v 29.1 1999/12/14 09:15:31 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/pollard.cal,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1991/05/22 21:56:37
|
|
||||||
* File existed as early as: 1991
|
|
||||||
*
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
define pfactor(N, B, ai, af)
|
|
||||||
{
|
|
||||||
local a, k, i, d;
|
|
||||||
|
|
||||||
if (isnull(B))
|
|
||||||
B = 1000;
|
|
||||||
if (isnull(ai))
|
|
||||||
ai = 2;
|
|
||||||
if (isnull(af))
|
|
||||||
af = ai + 20;
|
|
||||||
k = lcmfact(B);
|
|
||||||
d = lfactor(N, B);
|
|
||||||
if (d > 1)
|
|
||||||
return d;
|
|
||||||
for (a = ai; a <= af; a++) {
|
|
||||||
i = pmod(a, k, N);
|
|
||||||
d = gcd(i - 1, N);
|
|
||||||
if ((d > 1) && (d != N))
|
|
||||||
return d;
|
|
||||||
}
|
|
||||||
return 1;
|
|
||||||
}
|
|
@@ -1,74 +0,0 @@
|
|||||||
/*
|
|
||||||
* psqrt - calculate square roots modulo a prime
|
|
||||||
*
|
|
||||||
* Copyright (C) 1999 David I. Bell
|
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: psqrt.cal,v 29.1 1999/12/14 09:15:32 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/psqrt.cal,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1990/02/15 01:50:35
|
|
||||||
* File existed as early as: before 1990
|
|
||||||
*
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Returns null if number is not prime or if there is no square root.
|
|
||||||
* The smaller square root is always returned.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
define psqrt(u, p)
|
|
||||||
{
|
|
||||||
local p1, q, n, y, r, v, w, t, k;
|
|
||||||
|
|
||||||
p1 = p - 1;
|
|
||||||
r = lowbit(p1);
|
|
||||||
q = p >> r;
|
|
||||||
t = 1 << (r - 1);
|
|
||||||
for (n = 2; ; n++) {
|
|
||||||
if (ptest(n, 1) == 0)
|
|
||||||
continue;
|
|
||||||
y = pmod(n, q, p);
|
|
||||||
k = pmod(y, t, p);
|
|
||||||
if (k == 1)
|
|
||||||
continue;
|
|
||||||
if (k != p1)
|
|
||||||
return;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
t = pmod(u, (q - 1) / 2, p);
|
|
||||||
v = (t * u) % p;
|
|
||||||
w = (t^2 * u) % p;
|
|
||||||
while (w != 1) {
|
|
||||||
k = 0;
|
|
||||||
t = w;
|
|
||||||
do {
|
|
||||||
k++;
|
|
||||||
t = t^2 % p;
|
|
||||||
} while (t != 1);
|
|
||||||
if (k == r)
|
|
||||||
return;
|
|
||||||
t = pmod(y, 1 << (r - k - 1), p);
|
|
||||||
y = t^2 % p;
|
|
||||||
v = (v * t) % p;
|
|
||||||
w = (w * y) % p;
|
|
||||||
r = k;
|
|
||||||
}
|
|
||||||
return min(v, p - v);
|
|
||||||
}
|
|
@@ -1,68 +0,0 @@
|
|||||||
/*
|
|
||||||
* qtime - Display time as English sentence
|
|
||||||
*
|
|
||||||
* usage:
|
|
||||||
* qtime(utc_hr_offset)
|
|
||||||
*
|
|
||||||
* utc_hr_offset Offset from UTC in hours.
|
|
||||||
*
|
|
||||||
* Written by: Klaus Alexander Seistrup <kseis@magnetic-ink.dk>
|
|
||||||
* With minor mods by: Landon Curt Noll <http://reality.sgi.com/chongo/>
|
|
||||||
*
|
|
||||||
* See:
|
|
||||||
* http://www.magnetic-ink.dk/download/qtime.html
|
|
||||||
*
|
|
||||||
* for examples of qtime() written on other languages.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: qtime.cal,v 29.1 1999/12/14 09:15:32 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/qtime.cal,v $
|
|
||||||
*
|
|
||||||
* This file is not covered under version 2.1 of the GNU LGPL.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* qtime - Display time as English sentence
|
|
||||||
*/
|
|
||||||
define qtime(utc_hr_offset)
|
|
||||||
{
|
|
||||||
static mat hr[12] = {
|
|
||||||
"twelve", "one", "two", "three", "four", "five",
|
|
||||||
"six", "seven", "eight", "nine", "ten", "eleven"
|
|
||||||
};
|
|
||||||
static mat mn[7] = {
|
|
||||||
"", "five ", "ten ", "a quarter ", "twenty ", "twenty-five ", "half "
|
|
||||||
};
|
|
||||||
static mat ny[5] = {
|
|
||||||
"nearly ", "almost ", "", "just after ", "after "
|
|
||||||
};
|
|
||||||
static mat up[3] = {
|
|
||||||
"to ", "", "past "
|
|
||||||
};
|
|
||||||
local adj_mins = (((time() + utc_hr_offset*3600) % 86400) + 30)//60+27;
|
|
||||||
local hours = (adj_mins // 60) % 12;
|
|
||||||
local minutes = adj_mins % 60;
|
|
||||||
local almost = minutes % 5;
|
|
||||||
local divisions = (minutes // 5) - 5;
|
|
||||||
local to_past_idx = divisions > 0 ? 1 : 0;
|
|
||||||
|
|
||||||
if (divisions < 0) {
|
|
||||||
divisions = -divisions;
|
|
||||||
to_past_idx = -1;
|
|
||||||
}
|
|
||||||
++to_past_idx;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Print the English sentence
|
|
||||||
*
|
|
||||||
* We avoid forward and back quotes just to show that the char()
|
|
||||||
* builtin function can be used in conjunction with a printf.
|
|
||||||
*/
|
|
||||||
printf("It%cs %s%s%s%s",
|
|
||||||
char(0x27), ny[almost], mn[divisions],
|
|
||||||
up[to_past_idx], hr[hours]);
|
|
||||||
if (divisions == 0)
|
|
||||||
printf(" o%cclock", char(0x27));
|
|
||||||
print ".";
|
|
||||||
}
|
|
@@ -1,69 +0,0 @@
|
|||||||
/*
|
|
||||||
* solve - solve f(x) = 0 to within the desired error value for x
|
|
||||||
*
|
|
||||||
* Copyright (C) 1999 David I. Bell
|
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: solve.cal,v 29.1 1999/12/14 09:15:33 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/solve.cal,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1990/02/15 01:50:37
|
|
||||||
* File existed as early as: before 1990
|
|
||||||
*
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Solve the equation f(x) = 0 to within the desired error value for x.
|
|
||||||
* The function 'f' must be defined outside of this routine, and the low
|
|
||||||
* and high values are guesses which must produce values with opposite signs.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
define solve(low, high, epsilon)
|
|
||||||
{
|
|
||||||
local flow, fhigh, fmid, mid, places;
|
|
||||||
|
|
||||||
if (isnull(epsilon))
|
|
||||||
epsilon = epsilon();
|
|
||||||
if (epsilon <= 0)
|
|
||||||
quit "Non-positive epsilon value";
|
|
||||||
places = highbit(1 + int(1/epsilon)) + 1;
|
|
||||||
flow = f(low);
|
|
||||||
if (abs(flow) < epsilon)
|
|
||||||
return low;
|
|
||||||
fhigh = f(high);
|
|
||||||
if (abs(flow) < epsilon)
|
|
||||||
return high;
|
|
||||||
if (sgn(flow) == sgn(fhigh))
|
|
||||||
quit "Non-opposite signs";
|
|
||||||
while (1) {
|
|
||||||
mid = bround(high - fhigh * (high - low) / (fhigh - flow), places);
|
|
||||||
if ((mid == low) || (mid == high))
|
|
||||||
places++;
|
|
||||||
fmid = f(mid);
|
|
||||||
if (abs(fmid) < epsilon)
|
|
||||||
return mid;
|
|
||||||
if (sgn(fmid) == sgn(flow)) {
|
|
||||||
low = mid;
|
|
||||||
flow = fmid;
|
|
||||||
} else {
|
|
||||||
high = mid;
|
|
||||||
fhigh = fmid;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@@ -1,65 +0,0 @@
|
|||||||
/*
|
|
||||||
* sumsq - find unique two positive integers whose squares sum to a given prime
|
|
||||||
*
|
|
||||||
* Copyright (C) 1999 David I. Bell
|
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: sumsq.cal,v 29.1 1999/12/14 09:15:33 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/sumsq.cal,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1990/02/15 01:50:37
|
|
||||||
* File existed as early as: before 1990
|
|
||||||
*
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Determine the unique two positive integers whose squares sum to the
|
|
||||||
* specified prime. This is always possible for all primes of the form
|
|
||||||
* 4N+1, and always impossible for primes of the form 4N-1.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
define ss(p)
|
|
||||||
{
|
|
||||||
local a, b, i, p4;
|
|
||||||
|
|
||||||
if (p == 2) {
|
|
||||||
print "1^2 + 1^2 = 2";
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if ((p % 4) != 1) {
|
|
||||||
print p, "is not of the form 4N+1";
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (!ptest(p, min(p-2, 10))) {
|
|
||||||
print p, "is not a prime";
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
p4 = (p - 1) / 4;
|
|
||||||
i = 2;
|
|
||||||
do {
|
|
||||||
a = pmod(i++, p4, p);
|
|
||||||
} while ((a^2 % p) == 1);
|
|
||||||
b = p;
|
|
||||||
while (b^2 > p) {
|
|
||||||
i = b % a;
|
|
||||||
b = a;
|
|
||||||
a = i;
|
|
||||||
}
|
|
||||||
print a : "^2 +" , b : "^2 =" , a^2 + b^2;
|
|
||||||
}
|
|
@@ -1,32 +0,0 @@
|
|||||||
/*
|
|
||||||
* test1700 - 1700 series of the regress.cal test suite
|
|
||||||
*
|
|
||||||
* Copyright (C) 1999 Landon Curt Noll
|
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: test1700.cal,v 29.1 1999/12/14 09:15:33 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/test1700.cal,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1994/03/14 23:12:51
|
|
||||||
* File existed as early as: 1994
|
|
||||||
*
|
|
||||||
* chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
++value;
|
|
@@ -1,40 +0,0 @@
|
|||||||
/*
|
|
||||||
* test3100 - 3100 series of the regress.cal test suite
|
|
||||||
*
|
|
||||||
* Copyright (C) 1999 Ernest Bowen and Landon Curt Noll
|
|
||||||
*
|
|
||||||
* Primary author: Ernest Bowen
|
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: test3100.cal,v 29.1 1999/12/14 09:15:33 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/test3100.cal,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1995/11/28 11:56:57
|
|
||||||
* File existed as early as: 1995
|
|
||||||
*
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
obj res {r};
|
|
||||||
global md;
|
|
||||||
define res_test(a) = !ismult(a.r, md);
|
|
||||||
define res_sub(a,b) {local obj res v = {(a.r - b.r) % md}; return v;};
|
|
||||||
define res_mul(a,b) {local obj res v = {(a.r * b.r) % md}; return v;};
|
|
||||||
define res_neg(a) {local obj res v = {(-a.r) % md}; return v;};
|
|
||||||
define res_inv(a) {local obj res v = {minv(a.r, md)}; return v;};
|
|
||||||
define res(x) {local obj res v = {x % md}; return v;};
|
|
@@ -1,71 +0,0 @@
|
|||||||
/*
|
|
||||||
* test5100 - 5100 series of the regress.cal test suite
|
|
||||||
*
|
|
||||||
* Copyright (C) 1999 Ernest Bowen and Landon Curt Noll
|
|
||||||
*
|
|
||||||
* Primary author: Ernest Bowen
|
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: test5100.cal,v 29.1 1999/12/14 09:15:34 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/test5100.cal,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1996/12/02 23:57:10
|
|
||||||
* File existed as early as: 1996
|
|
||||||
*
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
global defaultverbose = 1; /* default verbose value */
|
|
||||||
global err;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* We test the new code generator declaration scope and order.
|
|
||||||
*
|
|
||||||
* In this function two static variables a5100 and b5100 are created,
|
|
||||||
* with zero value, when the definition is read.
|
|
||||||
*
|
|
||||||
* The variable a5100 is initialized with the value x if and when this
|
|
||||||
* function is first called with a positive even x. The varable b5100
|
|
||||||
* is similarly initialized if and when this function is first called positive
|
|
||||||
* odd x.
|
|
||||||
*
|
|
||||||
* Each time this function is called with positive integer x, a5100 or
|
|
||||||
* b5100 is incremented.
|
|
||||||
*
|
|
||||||
* Finally the values of the static variables are assigned to the global
|
|
||||||
* variables a5100 and b5100.
|
|
||||||
*
|
|
||||||
* Immediately after the last of several calls to this function
|
|
||||||
* a5100 = 0 if none of the x's have been positive even, otherwise
|
|
||||||
* a5100 = the first positive even x + the number of positive even x's,
|
|
||||||
* and b5100 = 0 if none of the x's have been positive odd, otherwise
|
|
||||||
* b5100 = the first positive odd x + the number of positive odd x's.
|
|
||||||
*/
|
|
||||||
define test5100(x)
|
|
||||||
{
|
|
||||||
if (isint(x) && x > 0) {
|
|
||||||
if (iseven(x)) {
|
|
||||||
static a5100 = x;
|
|
||||||
a5100++;
|
|
||||||
} else {
|
|
||||||
static b5100 = x;
|
|
||||||
b5100++;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
global a5100 = a5100, b5100 = b5100;
|
|
||||||
}
|
|
@@ -1,53 +0,0 @@
|
|||||||
/*
|
|
||||||
* test5200 - 5200 series of the regress.cal test suite
|
|
||||||
*
|
|
||||||
* Copyright (C) 1999 Ernest Bowen and Landon Curt Noll
|
|
||||||
*
|
|
||||||
* Primary author: Ernest Bowen
|
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: test5200.cal,v 29.1 1999/12/14 09:15:34 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/test5200.cal,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1997/02/07 02:48:10
|
|
||||||
* File existed as early as: 1997
|
|
||||||
*
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
global defaultverbose = 1; /* default verbose value */
|
|
||||||
global err;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* test the fix of a global/static bug
|
|
||||||
*
|
|
||||||
* Given the following:
|
|
||||||
*
|
|
||||||
* global a = 10;
|
|
||||||
* static a = 20;
|
|
||||||
* define f(x) = a + x;
|
|
||||||
* define g(x) {global a = 30; return a + x;}
|
|
||||||
* define h(x) = a + x;
|
|
||||||
*
|
|
||||||
* Older versions of
|
|
||||||
*/
|
|
||||||
global a5200 = 10;
|
|
||||||
static a5200 = 20;
|
|
||||||
define f5200(x) = a5200 + x;
|
|
||||||
define g5200(x) {global a5200 = 30; return a5200 + x;}
|
|
||||||
define h5200(x) = a5200 + x;
|
|
@@ -1,48 +0,0 @@
|
|||||||
/*
|
|
||||||
* test8400 - 8400 series of the regress.cal test suite
|
|
||||||
*
|
|
||||||
* Copyright (C) 1999 Landon Curt Noll
|
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: test8400.cal,v 29.1 1999/12/14 09:15:34 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/test8400.cal,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1999/10/31 01:00:03
|
|
||||||
* File existed as early as: 1999
|
|
||||||
*
|
|
||||||
* chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
print "8401: in test8400.cal";
|
|
||||||
|
|
||||||
/*
|
|
||||||
* test8400 - dummy function to allow a check of quit-based memory leaks
|
|
||||||
*/
|
|
||||||
define test8400()
|
|
||||||
{
|
|
||||||
local x8401 = 19937; /* watch for lost memory */
|
|
||||||
static s8401 = 44497; /* watch for lost memory */
|
|
||||||
|
|
||||||
return x8401+s8401;
|
|
||||||
}
|
|
||||||
print "8402: parsed test8400()";
|
|
||||||
vrfy(test8400() == 64434, '8403: test8400() == 64434');
|
|
||||||
|
|
||||||
quit;
|
|
||||||
prob('quit did not end test8400.cal');
|
|
@@ -1,55 +0,0 @@
|
|||||||
/*
|
|
||||||
* unixfrac - represent a fraction as a sum of distince unit fractions
|
|
||||||
*
|
|
||||||
* Copyright (C) 1999 David I. Bell
|
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: unitfrac.cal,v 29.1 1999/12/14 09:15:34 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/unitfrac.cal,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1990/02/15 01:50:38
|
|
||||||
* File existed as early as: before 1990
|
|
||||||
*
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Represent a fraction as sum of distinct unit fractions.
|
|
||||||
* The output is the unit fractions themselves, and in square brackets,
|
|
||||||
* the number of digits in the numerator and denominator of the value left
|
|
||||||
* to be found. Numbers larger than 3.5 become very difficult to calculate.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
define unitfrac(x)
|
|
||||||
{
|
|
||||||
local d, di, n;
|
|
||||||
|
|
||||||
if (x <= 0)
|
|
||||||
quit "Non-positive argument";
|
|
||||||
d = 2;
|
|
||||||
do {
|
|
||||||
n = int(1 / x) + 1;
|
|
||||||
if (n > d)
|
|
||||||
d = n;
|
|
||||||
di = 1/d;
|
|
||||||
print ' [': digits(num(x)): '/': digits(den(x)): ']',, di;
|
|
||||||
x -= di;
|
|
||||||
d++;
|
|
||||||
} while ((num(x) > 1) || (x == di) || (x == 1));
|
|
||||||
print ' [1/1]',, x;
|
|
||||||
}
|
|
@@ -1,54 +0,0 @@
|
|||||||
/*
|
|
||||||
* varargs - example of a varargs-like use
|
|
||||||
*
|
|
||||||
* Copyright (C) 1999 David I. Bell
|
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: varargs.cal,v 29.1 1999/12/14 09:15:34 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/varargs.cal,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1991/05/22 21:56:34
|
|
||||||
* File existed as early as: 1991
|
|
||||||
*
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Example program to use 'varargs'.
|
|
||||||
*
|
|
||||||
* Program to sum the cubes of all the specified numbers.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
define sc()
|
|
||||||
{
|
|
||||||
local s, i;
|
|
||||||
|
|
||||||
s = 0;
|
|
||||||
for (i = 1; i <= param(0); i++) {
|
|
||||||
if (!isnum(param(i))) {
|
|
||||||
print "parameter",i,"is not a number";
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
s += param(i)^3;
|
|
||||||
}
|
|
||||||
return s;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (config("resource_debug") & 3) {
|
|
||||||
print "sc(a, b, ...) defined";
|
|
||||||
}
|
|
189
calc.c
189
calc.c
@@ -1,35 +1,11 @@
|
|||||||
/*
|
/*
|
||||||
* calc - arbitrary precision calculator
|
* Copyright (c) 1997 David I. Bell
|
||||||
|
* Permission is granted to use, distribute, or modify this source,
|
||||||
|
* provided that this copyright notice remains intact.
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999 David I. Bell, Landon Curt Noll and Ernest Bowen
|
* Arbitrary precision calculator.
|
||||||
*
|
|
||||||
* Primary author: David I. Bell
|
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: calc.c,v 29.1 1999/12/14 09:15:34 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/calc.c,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1990/02/15 01:48:11
|
|
||||||
* File existed as early as: before 1990
|
|
||||||
*
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#include <pwd.h>
|
#include <pwd.h>
|
||||||
@@ -70,7 +46,7 @@
|
|||||||
* static definitions and functions
|
* static definitions and functions
|
||||||
*/
|
*/
|
||||||
static void intint(int arg); /* interrupt routine */
|
static void intint(int arg); /* interrupt routine */
|
||||||
static int script_args(int argc,char ***argv,char **shellfile,char **program);
|
static void script_args(int *argc, char ***argv, char **shellfile);
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -81,7 +57,7 @@ main(int argc, char **argv)
|
|||||||
{
|
{
|
||||||
int want_defhelp = 0; /* 1=> we only want the default help */
|
int want_defhelp = 0; /* 1=> we only want the default help */
|
||||||
int cmdlen; /* length of the command string */
|
int cmdlen; /* length of the command string */
|
||||||
char *shellfile = NULL; /* != NULL ==> name of calc shell script */
|
char *shellfile = NULL; /* =!NULL ==> name of calc shell script */
|
||||||
extern char *optarg; /* option argument */
|
extern char *optarg; /* option argument */
|
||||||
extern int optind; /* option index */
|
extern int optind; /* option index */
|
||||||
int c; /* option */
|
int c; /* option */
|
||||||
@@ -92,12 +68,10 @@ main(int argc, char **argv)
|
|||||||
* parse args
|
* parse args
|
||||||
*/
|
*/
|
||||||
program = argv[0];
|
program = argv[0];
|
||||||
/* catch the case of a leading -S option */
|
/* catch the case of a leading -s option */
|
||||||
if (argc > 2 && strncmp(argv[1], "-S", 2) == 0) {
|
if (argc > 2 && strncmp(argv[1], "-s", 2) == 0) {
|
||||||
/* convert the calc shell options into command line options */
|
/* convert the calc shell options into command line options */
|
||||||
argc = script_args(argc, &argv, &shellfile, &program);
|
script_args(&argc, &argv, &shellfile);
|
||||||
/* -S implies -s */
|
|
||||||
s_flag = TRUE;
|
|
||||||
}
|
}
|
||||||
/* process command line options */
|
/* process command line options */
|
||||||
while ((c = getopt(argc, argv, "Cehim:npquvcdD:s")) != -1) {
|
while ((c = getopt(argc, argv, "Cehim:npquvcdD:s")) != -1) {
|
||||||
@@ -170,15 +144,15 @@ main(int argc, char **argv)
|
|||||||
* parse the -D optarg
|
* parse the -D optarg
|
||||||
*
|
*
|
||||||
* Could be calc_debug
|
* Could be calc_debug
|
||||||
* or calc_debug:resource_debug
|
* or calc_debug:lib_debug
|
||||||
* or calc_debug:resource_debug:user_debug
|
* or calc_debug:lib_debug:user_debug
|
||||||
*/
|
*/
|
||||||
calc_debug = optarg;
|
calc_debug = optarg;
|
||||||
p = strchr(optarg, ':');
|
p = strchr(optarg, ':');
|
||||||
if (p != NULL) {
|
if (p != NULL) {
|
||||||
*p = '\0';
|
*p = '\0';
|
||||||
resource_debug = p+1;
|
lib_debug = p+1;
|
||||||
p = strchr(resource_debug, ':');
|
p = strchr(lib_debug, ':');
|
||||||
if (p != NULL) {
|
if (p != NULL) {
|
||||||
*p = '\0';
|
*p = '\0';
|
||||||
user_debug = p+1;
|
user_debug = p+1;
|
||||||
@@ -186,10 +160,14 @@ main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 's':
|
case 's':
|
||||||
s_flag = TRUE;
|
/*
|
||||||
break;
|
* we are too early in processing to call
|
||||||
case 'S':
|
* libcalc_call_me_last() - nothing to cleanup
|
||||||
/*FALLTHRU*/
|
*/
|
||||||
|
fprintf(stderr,
|
||||||
|
"%s: -s may only be used in a calc shell script\n",
|
||||||
|
program);
|
||||||
|
exit(1);
|
||||||
default:
|
default:
|
||||||
/*
|
/*
|
||||||
* we are too early in processing to call
|
* we are too early in processing to call
|
||||||
@@ -197,38 +175,19 @@ main(int argc, char **argv)
|
|||||||
*/
|
*/
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"usage: %s [-c] [-C] [-d] [-e] [-h] [-i] [-m mode]\n"
|
"usage: %s [-c] [-C] [-d] [-e] [-h] [-i] [-m mode]\n"
|
||||||
"\t[-D calc_debug[:resource_debug:[user_debug]]]\n"
|
"\t[-D calc_debug[:lib_debug:[user_debug]]]\n"
|
||||||
"\t[-n] [-p] [-q] [-s] [-u] [-v] "
|
"\t[-n] [-p] [-q] [-u] [-v] [[--] calc_cmd ...]\n",
|
||||||
"[[--] calc_cmd ...]\n",
|
|
||||||
program);
|
program);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
havecommands = (optind < argc);
|
||||||
/*
|
|
||||||
* If -S was given via a calc shell script, imply -p and -d
|
|
||||||
* unless -i was also given.
|
|
||||||
*/
|
|
||||||
if (shellfile != NULL && !i_flag) {
|
|
||||||
p_flag = TRUE;
|
|
||||||
d_flag = TRUE;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* look at the length of any trailing command args
|
* look at the length of any trailing command args
|
||||||
*
|
*
|
||||||
* We make room for the trailing '\0\n' as well as an extra guard byte.
|
* We make room for the trailing '\0\n' as well as an extra guard byte.
|
||||||
*
|
|
||||||
* However, if -S is in effect, we will pretend that we have no
|
|
||||||
* command args and allow the argv() builtin access to the strings.
|
|
||||||
*/
|
*/
|
||||||
cmdbuf[0] = '\0';
|
|
||||||
if (s_flag) {
|
|
||||||
havecommands = FALSE;
|
|
||||||
argc_value = argc - optind;
|
|
||||||
argv_value = argv + optind;
|
|
||||||
} else {
|
|
||||||
havecommands = (optind < argc);
|
|
||||||
for (cmdlen=0, i=optind; i < argc; ++i) {
|
for (cmdlen=0, i=optind; i < argc; ++i) {
|
||||||
/* argument + space separator */
|
/* argument + space separator */
|
||||||
cmdlen += strlen(argv[i]) + 1;
|
cmdlen += strlen(argv[i]) + 1;
|
||||||
@@ -239,14 +198,14 @@ main(int argc, char **argv)
|
|||||||
* libcalc_call_me_last() - nothing to cleanup
|
* libcalc_call_me_last() - nothing to cleanup
|
||||||
*/
|
*/
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"%s: command in arg list is too long\n",
|
"%s: command in arg list is too long\n", program);
|
||||||
program);
|
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Form a command the remaining args separated by spaces.
|
* We will form a command the remaining args separated by spaces.
|
||||||
*/
|
*/
|
||||||
|
cmdbuf[0] = '\0';
|
||||||
if (optind < argc) {
|
if (optind < argc) {
|
||||||
strcpy(cmdbuf, argv[optind]);
|
strcpy(cmdbuf, argv[optind]);
|
||||||
cmdlen = strlen(argv[optind]);
|
cmdlen = strlen(argv[optind]);
|
||||||
@@ -258,9 +217,6 @@ main(int argc, char **argv)
|
|||||||
cmdbuf[cmdlen++] = '\n';
|
cmdbuf[cmdlen++] = '\n';
|
||||||
cmdbuf[cmdlen] = '\0';
|
cmdbuf[cmdlen] = '\0';
|
||||||
}
|
}
|
||||||
argc_value = 0;
|
|
||||||
argv_value = argv+argc;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* unbuffered mode
|
* unbuffered mode
|
||||||
@@ -276,7 +232,7 @@ main(int argc, char **argv)
|
|||||||
libcalc_call_me_first();
|
libcalc_call_me_first();
|
||||||
stdin_tty = isatty(0); /* assume stdin is on fd 0 */
|
stdin_tty = isatty(0); /* assume stdin is on fd 0 */
|
||||||
if (conf->calc_debug & CALCDBG_TTY)
|
if (conf->calc_debug & CALCDBG_TTY)
|
||||||
printf("main: stdin_tty is %d\n", stdin_tty);
|
printf("DEBUG: stdin_tty is %d\n", stdin_tty);
|
||||||
if (want_defhelp) {
|
if (want_defhelp) {
|
||||||
givehelp(DEFAULTCALCHELP);
|
givehelp(DEFAULTCALCHELP);
|
||||||
libcalc_call_me_last();
|
libcalc_call_me_last();
|
||||||
@@ -289,8 +245,6 @@ main(int argc, char **argv)
|
|||||||
if (!havecommands && stdin_tty) {
|
if (!havecommands && stdin_tty) {
|
||||||
if (!d_flag) {
|
if (!d_flag) {
|
||||||
printf("%s (version %s)\n", CALC_TITLE, version());
|
printf("%s (version %s)\n", CALC_TITLE, version());
|
||||||
printf("Calc is open software. For license details "
|
|
||||||
"type: help copyright\n");
|
|
||||||
printf("[%s]\n\n",
|
printf("[%s]\n\n",
|
||||||
"Type \"exit\" to exit, or \"help\" for help.");
|
"Type \"exit\" to exit, or \"help\" for help.");
|
||||||
}
|
}
|
||||||
@@ -334,14 +288,14 @@ main(int argc, char **argv)
|
|||||||
if (run_state == RUN_BEGIN) {
|
if (run_state == RUN_BEGIN) {
|
||||||
if (!q_flag && allow_read) {
|
if (!q_flag && allow_read) {
|
||||||
if (conf->calc_debug & CALCDBG_RUNSTATE)
|
if (conf->calc_debug & CALCDBG_RUNSTATE)
|
||||||
printf("main: run_state from %s to %s\n",
|
printf("DEBUG: run_state from %s to %s\n",
|
||||||
run_state_name(run_state),
|
run_state_name(run_state),
|
||||||
run_state_name(RUN_RCFILES));
|
run_state_name(RUN_RCFILES));
|
||||||
run_state = RUN_RCFILES;
|
run_state = RUN_RCFILES;
|
||||||
runrcfiles();
|
runrcfiles();
|
||||||
}
|
}
|
||||||
if (conf->calc_debug & CALCDBG_RUNSTATE)
|
if (conf->calc_debug & CALCDBG_RUNSTATE)
|
||||||
printf("main: run_state from %s to %s\n",
|
printf("DEBUG: run_state from %s to %s\n",
|
||||||
run_state_name(run_state),
|
run_state_name(run_state),
|
||||||
run_state_name(RUN_PRE_CMD_ARGS));
|
run_state_name(RUN_PRE_CMD_ARGS));
|
||||||
run_state = RUN_PRE_CMD_ARGS;
|
run_state = RUN_PRE_CMD_ARGS;
|
||||||
@@ -355,7 +309,7 @@ main(int argc, char **argv)
|
|||||||
closeinput();
|
closeinput();
|
||||||
runrcfiles();
|
runrcfiles();
|
||||||
if (conf->calc_debug & CALCDBG_RUNSTATE)
|
if (conf->calc_debug & CALCDBG_RUNSTATE)
|
||||||
printf("main: run_state from %s to %s\n",
|
printf("DEBUG: run_state from %s to %s\n",
|
||||||
run_state_name(run_state),
|
run_state_name(run_state),
|
||||||
run_state_name(RUN_PRE_CMD_ARGS));
|
run_state_name(RUN_PRE_CMD_ARGS));
|
||||||
run_state = RUN_PRE_CMD_ARGS;
|
run_state = RUN_PRE_CMD_ARGS;
|
||||||
@@ -365,13 +319,13 @@ main(int argc, char **argv)
|
|||||||
} else {
|
} else {
|
||||||
if ((havecommands && !i_flag) || !stdin_tty) {
|
if ((havecommands && !i_flag) || !stdin_tty) {
|
||||||
if (conf->calc_debug & CALCDBG_RUNSTATE)
|
if (conf->calc_debug & CALCDBG_RUNSTATE)
|
||||||
printf("main: run_state from %s to %s\n",
|
printf("DEBUG: run_state from %s to %s\n",
|
||||||
run_state_name(run_state),
|
run_state_name(run_state),
|
||||||
run_state_name(RUN_EXIT_WITH_ERROR));
|
run_state_name(RUN_EXIT_WITH_ERROR));
|
||||||
run_state = RUN_EXIT_WITH_ERROR;
|
run_state = RUN_EXIT_WITH_ERROR;
|
||||||
} else {
|
} else {
|
||||||
if (conf->calc_debug & CALCDBG_RUNSTATE)
|
if (conf->calc_debug & CALCDBG_RUNSTATE)
|
||||||
printf("main: run_state from %s to %s\n",
|
printf("DEBUG: run_state from %s to %s\n",
|
||||||
run_state_name(run_state),
|
run_state_name(run_state),
|
||||||
run_state_name(RUN_PRE_CMD_ARGS));
|
run_state_name(RUN_PRE_CMD_ARGS));
|
||||||
run_state = RUN_PRE_CMD_ARGS;
|
run_state = RUN_PRE_CMD_ARGS;
|
||||||
@@ -379,27 +333,21 @@ main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* XXX - if shellfile != NULL process shellfile here */
|
||||||
|
|
||||||
if (run_state == RUN_PRE_CMD_ARGS) {
|
if (run_state == RUN_PRE_CMD_ARGS) {
|
||||||
if (havecommands) {
|
if (havecommands) {
|
||||||
if (conf->calc_debug & CALCDBG_RUNSTATE)
|
if (conf->calc_debug & CALCDBG_RUNSTATE)
|
||||||
printf("main: run_state from %s to %s\n",
|
printf("DEBUG: run_state from %s to %s\n",
|
||||||
run_state_name(run_state),
|
run_state_name(run_state),
|
||||||
run_state_name(RUN_CMD_ARGS));
|
run_state_name(RUN_CMD_ARGS));
|
||||||
run_state = RUN_CMD_ARGS;
|
run_state = RUN_CMD_ARGS;
|
||||||
(void) openstring(cmdbuf, (long) strlen(cmdbuf));
|
(void) openstring(cmdbuf, (long) strlen(cmdbuf));
|
||||||
getcommands(FALSE);
|
getcommands(FALSE);
|
||||||
closeinput();
|
closeinput();
|
||||||
} else if (shellfile != NULL) {
|
|
||||||
/* XXX - shellfile stuff needs it own run_state name */
|
|
||||||
if (conf->calc_debug & CALCDBG_RUNSTATE)
|
|
||||||
printf("main: run_state from %s to %s\n",
|
|
||||||
run_state_name(run_state),
|
|
||||||
run_state_name(RUN_CMD_ARGS));
|
|
||||||
run_state = RUN_CMD_ARGS;
|
|
||||||
getshellfile(shellfile);
|
|
||||||
}
|
}
|
||||||
if (conf->calc_debug & CALCDBG_RUNSTATE)
|
if (conf->calc_debug & CALCDBG_RUNSTATE)
|
||||||
printf("main: run_state from %s to %s\n",
|
printf("DEBUG: run_state from %s to %s\n",
|
||||||
run_state_name(run_state),
|
run_state_name(run_state),
|
||||||
run_state_name(RUN_PRE_TOP_LEVEL));
|
run_state_name(RUN_PRE_TOP_LEVEL));
|
||||||
run_state = RUN_PRE_TOP_LEVEL;
|
run_state = RUN_PRE_TOP_LEVEL;
|
||||||
@@ -411,7 +359,7 @@ main(int argc, char **argv)
|
|||||||
getcommands(FALSE);
|
getcommands(FALSE);
|
||||||
if (inputlevel() == 0)
|
if (inputlevel() == 0)
|
||||||
if (conf->calc_debug & CALCDBG_RUNSTATE)
|
if (conf->calc_debug & CALCDBG_RUNSTATE)
|
||||||
printf("main: run_state from %s to %s\n",
|
printf("DEBUG: run_state from %s to %s\n",
|
||||||
run_state_name(run_state),
|
run_state_name(run_state),
|
||||||
run_state_name(RUN_PRE_TOP_LEVEL));
|
run_state_name(RUN_PRE_TOP_LEVEL));
|
||||||
run_state = RUN_PRE_TOP_LEVEL;
|
run_state = RUN_PRE_TOP_LEVEL;
|
||||||
@@ -420,13 +368,13 @@ main(int argc, char **argv)
|
|||||||
closeinput();
|
closeinput();
|
||||||
if (!stdin_tty || !i_flag || p_flag) {
|
if (!stdin_tty || !i_flag || p_flag) {
|
||||||
if (conf->calc_debug & CALCDBG_RUNSTATE)
|
if (conf->calc_debug & CALCDBG_RUNSTATE)
|
||||||
printf("main: run_state from %s to %s\n",
|
printf("DEBUG: run_state from %s to %s\n",
|
||||||
run_state_name(run_state),
|
run_state_name(run_state),
|
||||||
run_state_name(RUN_EXIT_WITH_ERROR));
|
run_state_name(RUN_EXIT_WITH_ERROR));
|
||||||
run_state = RUN_EXIT_WITH_ERROR;
|
run_state = RUN_EXIT_WITH_ERROR;
|
||||||
} else {
|
} else {
|
||||||
if (conf->calc_debug & CALCDBG_RUNSTATE)
|
if (conf->calc_debug & CALCDBG_RUNSTATE)
|
||||||
printf("main: run_state from %s to %s\n",
|
printf("DEBUG: run_state from %s to %s\n",
|
||||||
run_state_name(run_state),
|
run_state_name(run_state),
|
||||||
run_state_name(RUN_PRE_TOP_LEVEL));
|
run_state_name(RUN_PRE_TOP_LEVEL));
|
||||||
run_state = RUN_PRE_TOP_LEVEL;
|
run_state = RUN_PRE_TOP_LEVEL;
|
||||||
@@ -435,10 +383,9 @@ main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (run_state == RUN_PRE_TOP_LEVEL) {
|
if (run_state == RUN_PRE_TOP_LEVEL) {
|
||||||
if (stdin_tty &&
|
if (stdin_tty && ((havecommands && !i_flag) || p_flag)) {
|
||||||
(((havecommands || shellfile) && !i_flag) || p_flag)) {
|
|
||||||
if (conf->calc_debug & CALCDBG_RUNSTATE)
|
if (conf->calc_debug & CALCDBG_RUNSTATE)
|
||||||
printf("main: run_state from %s to %s\n",
|
printf("DEBUG: run_state from %s to %s\n",
|
||||||
run_state_name(run_state),
|
run_state_name(run_state),
|
||||||
run_state_name(RUN_EXIT));
|
run_state_name(RUN_EXIT));
|
||||||
run_state = RUN_EXIT;
|
run_state = RUN_EXIT;
|
||||||
@@ -450,7 +397,7 @@ main(int argc, char **argv)
|
|||||||
openterminal();
|
openterminal();
|
||||||
}
|
}
|
||||||
if (conf->calc_debug & CALCDBG_RUNSTATE)
|
if (conf->calc_debug & CALCDBG_RUNSTATE)
|
||||||
printf("main: run_state from %s to %s\n",
|
printf("DEBUG: run_state from %s to %s\n",
|
||||||
run_state_name(run_state),
|
run_state_name(run_state),
|
||||||
run_state_name(RUN_TOP_LEVEL));
|
run_state_name(RUN_TOP_LEVEL));
|
||||||
run_state = RUN_TOP_LEVEL;
|
run_state = RUN_TOP_LEVEL;
|
||||||
@@ -469,7 +416,7 @@ main(int argc, char **argv)
|
|||||||
getcommands(TRUE);
|
getcommands(TRUE);
|
||||||
} else {
|
} else {
|
||||||
if (conf->calc_debug & CALCDBG_RUNSTATE)
|
if (conf->calc_debug & CALCDBG_RUNSTATE)
|
||||||
printf("main: run_state from %s to %s\n",
|
printf("DEBUG: run_state from %s to %s\n",
|
||||||
run_state_name(run_state),
|
run_state_name(run_state),
|
||||||
run_state_name(RUN_EXIT_WITH_ERROR));
|
run_state_name(RUN_EXIT_WITH_ERROR));
|
||||||
run_state = RUN_EXIT_WITH_ERROR;
|
run_state = RUN_EXIT_WITH_ERROR;
|
||||||
@@ -547,7 +494,7 @@ math_error(char *fmt, ...)
|
|||||||
* When a calc shell script is executed, the args are presented to calc
|
* When a calc shell script is executed, the args are presented to calc
|
||||||
* in a different form. Consider the a calc shell script called /tmp/calcit:
|
* in a different form. Consider the a calc shell script called /tmp/calcit:
|
||||||
*
|
*
|
||||||
* #!/usr/local/bin/calc -S -q -p
|
* #!/usr/local/bin/calc -s -q -p
|
||||||
* a=eval(prompt("Enter a: "));
|
* a=eval(prompt("Enter a: "));
|
||||||
* b=eval(prompt("Enter b: "));
|
* b=eval(prompt("Enter b: "));
|
||||||
* print a+b;
|
* print a+b;
|
||||||
@@ -560,20 +507,20 @@ math_error(char *fmt, ...)
|
|||||||
*
|
*
|
||||||
* argc: 5
|
* argc: 5
|
||||||
* argv[0]: "/usr/local/bin/calc"
|
* argv[0]: "/usr/local/bin/calc"
|
||||||
* argv[1]: "-S -q -p -e"
|
* argv[1]: "-s -q -p -e"
|
||||||
* argv[2]: "/tmp/calcit"
|
* argv[2]: "/tmp/calcit"
|
||||||
* argv[3]: "-D"
|
* argv[3]: "-D"
|
||||||
* argv[4]: "31"
|
* argv[4]: "31"
|
||||||
* argv[5]: NULL
|
* argv[5]: NULL
|
||||||
*
|
*
|
||||||
* NOTE: The user MUST put -S as the first characters on the calc shell
|
* NOTE: The user MUST put -s as the first characters on the calc shell
|
||||||
* script #! line, right after the calc binary path.
|
* script #! line, right after the calc binary path.
|
||||||
*
|
*
|
||||||
* NOTE: The arg supplied on the #! calc shell script line are returned
|
* NOTE: The arg supplied on the #! calc shell script line are returned
|
||||||
* as a single string. All tabs are converted into spaces.
|
* as a single string. All tabs are converted into spaces.
|
||||||
*
|
*
|
||||||
* We must remember the calc script filename, break apart the #! args
|
* We must remember the calc script filename, break apart the #! args
|
||||||
* and remove the -S argument. In the above case we would return:
|
* and remove the -s argument. In the above case we would return:
|
||||||
*
|
*
|
||||||
* argc: 6
|
* argc: 6
|
||||||
* argv[0]: "/usr/local/bin/calc"
|
* argv[0]: "/usr/local/bin/calc"
|
||||||
@@ -585,12 +532,12 @@ math_error(char *fmt, ...)
|
|||||||
* argv[6]: NULL
|
* argv[6]: NULL
|
||||||
*
|
*
|
||||||
* shellfile: "/tmp/calcit"
|
* shellfile: "/tmp/calcit"
|
||||||
* s_flag: TRUE
|
|
||||||
*/
|
*/
|
||||||
static int
|
static void
|
||||||
script_args(int argc, char ***argv_p, char **shellfile_p, char **program_p)
|
script_args(int *argc_p, char ***argv_p, char **shellfile_p)
|
||||||
{
|
{
|
||||||
char **argv; /* new argv to return */
|
int argc; /* argc to return */
|
||||||
|
char **argv; /* argv to return */
|
||||||
char *shellfile; /* shell file pathname to return */
|
char *shellfile; /* shell file pathname to return */
|
||||||
int delta; /* the change needed in argc */
|
int delta; /* the change needed in argc */
|
||||||
int i;
|
int i;
|
||||||
@@ -599,10 +546,11 @@ script_args(int argc, char ***argv_p, char **shellfile_p, char **program_p)
|
|||||||
char *q;
|
char *q;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* must have at least 3 args and the 2nd must start with -S
|
* must have at least 3 args and the 2nd must start with -s
|
||||||
*/
|
*/
|
||||||
|
argc = *argc_p;
|
||||||
argv = *argv_p;
|
argv = *argv_p;
|
||||||
if (argc < 3 || strncmp(argv[1], "-S", 2) != 0) {
|
if (argc < 3 || strncmp(argv[1], "-s", 2) != 0) {
|
||||||
/*
|
/*
|
||||||
* we are too early in processing to call
|
* we are too early in processing to call
|
||||||
* libcalc_call_me_last() - nothing to cleanup
|
* libcalc_call_me_last() - nothing to cleanup
|
||||||
@@ -614,18 +562,18 @@ script_args(int argc, char ***argv_p, char **shellfile_p, char **program_p)
|
|||||||
shellfile = argv[2];
|
shellfile = argv[2];
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* count the additional args beyond the -S
|
* count the additional args beyond the -s
|
||||||
*/
|
*/
|
||||||
if (argv[1][2] == ' ') {
|
if (argv[1][2] == ' ') {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* process args beyond -S on the #!/usr/local/bin line
|
* process args beyond -s on the #!/usr/local/bin line
|
||||||
*/
|
*/
|
||||||
p = argv[1]+3 + strspn(argv[1]+3," ");
|
p = argv[1]+3 + strspn(argv[1]+3," ");
|
||||||
q = p;
|
q = p;
|
||||||
if (q == '\0') {
|
if (q == '\0') {
|
||||||
|
|
||||||
/* only trailing spaces after -S, ignore them */
|
/* only trailing spaces after -s, ignore them */
|
||||||
for (i = 3; i <= argc; ++i) {
|
for (i = 3; i <= argc; ++i) {
|
||||||
argv[i-2] = argv[i];
|
argv[i-2] = argv[i];
|
||||||
}
|
}
|
||||||
@@ -633,7 +581,7 @@ script_args(int argc, char ***argv_p, char **shellfile_p, char **program_p)
|
|||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
/* count the space separated strings that follow -S */
|
/* count the space separated strings that follow -s */
|
||||||
for (delta = -1; p != NULL && *p;
|
for (delta = -1; p != NULL && *p;
|
||||||
p = strchr(p+1,' '), ++delta) {
|
p = strchr(p+1,' '), ++delta) {
|
||||||
/* skip multiple spaces in a row */
|
/* skip multiple spaces in a row */
|
||||||
@@ -649,7 +597,7 @@ script_args(int argc, char ***argv_p, char **shellfile_p, char **program_p)
|
|||||||
*/
|
*/
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"%s: failed to malloc %d pointers\n",
|
"%s: failed to malloc %d pointers\n",
|
||||||
shellfile, argc+delta);
|
program, argc+delta);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -665,7 +613,7 @@ script_args(int argc, char ***argv_p, char **shellfile_p, char **program_p)
|
|||||||
*/
|
*/
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"%s: failed to duplicate 1st arg\n",
|
"%s: failed to duplicate 1st arg\n",
|
||||||
shellfile);
|
program);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -686,7 +634,7 @@ script_args(int argc, char ***argv_p, char **shellfile_p, char **program_p)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* catch the case of #!/usr/local/bin -Stuff_not_extra_args
|
* catch the case of #!/usr/local/bin -stuff_not_extra_args
|
||||||
*/
|
*/
|
||||||
} else if (argv[1][2] != '\0') {
|
} else if (argv[1][2] != '\0') {
|
||||||
|
|
||||||
@@ -695,13 +643,13 @@ script_args(int argc, char ***argv_p, char **shellfile_p, char **program_p)
|
|||||||
* libcalc_call_me_last() - nothing to cleanup
|
* libcalc_call_me_last() - nothing to cleanup
|
||||||
*/
|
*/
|
||||||
fprintf(stderr,
|
fprintf(stderr,
|
||||||
"%s: malformed #! line, -S must be "
|
"%s: malformed #! line, -s must be "
|
||||||
"followed by space or newline\n",
|
"followed by space or newline\n",
|
||||||
shellfile);
|
program);
|
||||||
exit(1);
|
exit(1);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Only -S was given in the #!/usr/local/bin line, so we just
|
* Only -s was given in the #!/usr/local/bin line, so we just
|
||||||
* toss the 2nd and 3rd args
|
* toss the 2nd and 3rd args
|
||||||
*/
|
*/
|
||||||
} else {
|
} else {
|
||||||
@@ -712,11 +660,10 @@ script_args(int argc, char ***argv_p, char **shellfile_p, char **program_p)
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* return and set the argc, argv, shellfile_p and s_flag values
|
* return and set the argc, argv, shellfile_p values
|
||||||
*/
|
*/
|
||||||
|
*argc_p = argc;
|
||||||
*argv_p = argv;
|
*argv_p = argv;
|
||||||
*shellfile_p = shellfile;
|
*shellfile_p = shellfile;
|
||||||
*program_p = shellfile;
|
return;
|
||||||
s_flag = TRUE;
|
|
||||||
return argc;
|
|
||||||
}
|
}
|
||||||
|
42
calc.h
42
calc.h
@@ -1,30 +1,9 @@
|
|||||||
/*
|
/*
|
||||||
* calc - definitions for calculator program
|
* Copyright (c) 1997 David I. Bell
|
||||||
|
* Permission is granted to use, distribute, or modify this source,
|
||||||
|
* provided that this copyright notice remains intact.
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999 David I. Bell
|
* Definitions for calculator program.
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.2 $
|
|
||||||
* @(#) $Id: calc.h,v 29.2 1999/12/14 19:37:46 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/calc.h,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1990/02/15 01:48:31
|
|
||||||
* File existed as early as: before 1990
|
|
||||||
*
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
@@ -163,11 +142,8 @@ extern void getcommands(BOOL toplevel);
|
|||||||
extern void givehelp(char *type);
|
extern void givehelp(char *type);
|
||||||
extern void libcalc_call_me_first(void);
|
extern void libcalc_call_me_first(void);
|
||||||
extern void libcalc_call_me_last(void);
|
extern void libcalc_call_me_last(void);
|
||||||
extern BOOL calc_tty(int fd);
|
|
||||||
extern BOOL orig_tty(int fd);
|
|
||||||
extern void showerrors(void);
|
extern void showerrors(void);
|
||||||
extern char *calc_strdup(CONST char *);
|
extern char *calc_strdup(CONST char *);
|
||||||
extern void getshellfile(char *shellfile);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Initialization
|
* Initialization
|
||||||
@@ -188,21 +164,16 @@ extern jmp_buf jmpbuf; /* for errors */
|
|||||||
extern int p_flag; /* TRUE => pipe mode */
|
extern int p_flag; /* TRUE => pipe mode */
|
||||||
extern int q_flag; /* TRUE => don't execute rc files */
|
extern int q_flag; /* TRUE => don't execute rc files */
|
||||||
extern int u_flag; /* TRUE => unbuffer stdin and stdout */
|
extern int u_flag; /* TRUE => unbuffer stdin and stdout */
|
||||||
extern int d_flag; /* TRUE => disable heading, resource_debug */
|
extern int d_flag; /* TRUE => disable heading, lib_debug == 0 */
|
||||||
extern int c_flag; /* TRUE => continue after error if permitted */
|
extern int c_flag; /* TRUE => continue after error if permitted */
|
||||||
extern int i_flag; /* TRUE => try to go interactive after error */
|
extern int i_flag; /* TRUE => try to go interactive after error */
|
||||||
extern int s_flag; /* TRUE => keep args as strings for argv() */
|
|
||||||
extern int stoponerror; /* >0 => stop, <0 => continue, ==0 => use -c */
|
extern int stoponerror; /* >0 => stop, <0 => continue, ==0 => use -c */
|
||||||
extern BOOL abort_now; /* TRUE => try to go interactive */
|
extern BOOL abort_now; /* TRUE => try to go interactive */
|
||||||
|
|
||||||
extern int argc_value; /* count of argv[] strings for argv() builtin */
|
|
||||||
extern char **argv_value; /* argv[] strings for argv() builtin */
|
|
||||||
|
|
||||||
extern char *pager; /* $PAGER or default */
|
extern char *pager; /* $PAGER or default */
|
||||||
extern int stdin_tty; /* TRUE if stdin is a tty */
|
extern int stdin_tty; /* TRUE if stdin is a tty */
|
||||||
extern int havecommands; /* TRUE if have cmd args) */
|
extern int havecommands; /* TRUE if have cmd args) */
|
||||||
extern char *program; /* our name */
|
extern char *program; /* our name */
|
||||||
extern char *base_name; /* basename of our name */
|
|
||||||
extern char cmdbuf[]; /* command line expression */
|
extern char cmdbuf[]; /* command line expression */
|
||||||
|
|
||||||
extern int abortlevel; /* current level of aborts */
|
extern int abortlevel; /* current level of aborts */
|
||||||
@@ -250,8 +221,7 @@ 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 char *calc_minor_patch;
|
||||||
extern char *Copyright;
|
extern char *version(void); /* return version string */
|
||||||
extern char *version(void);
|
|
||||||
|
|
||||||
|
|
||||||
#endif /* !__CALC_H__ */
|
#endif /* !__CALC_H__ */
|
||||||
|
379
calc.man
379
calc.man
@@ -1,34 +1,13 @@
|
|||||||
.\"
|
.\"
|
||||||
.\" Copyright (C) 1999 Landon Curt Noll
|
.\" Copyright (c) 1993 David I. Bell and Landon Curt Noll
|
||||||
.\"
|
.\" Original man page dated 15nov93
|
||||||
.\" Calc is open software; you can redistribute it and/or modify it under
|
.\" Copyright (c) 1999 David I. Bell and Landon Curt Noll
|
||||||
.\" the terms of the version 2.1 of the GNU Lesser General Public License
|
.\" Permission is granted to use, distribute, or modify this source,
|
||||||
.\" as published by the Free Software Foundation.
|
.\" provided that this copyright notice remains intact.
|
||||||
.\"
|
|
||||||
.\" Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
.\" ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
.\" or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
.\" Public License for more details.
|
|
||||||
.\"
|
|
||||||
.\" A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
.\" distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
.\" received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
.\" 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
.\"
|
|
||||||
.\" @(#) $Revision: 29.1 $
|
|
||||||
.\" @(#) $Id: calc.man,v 29.1 1999/12/14 09:15:35 chongo Exp $
|
|
||||||
.\" @(#) $Source: /usr/local/src/cmd/calc/RCS/calc.man,v $
|
|
||||||
.\"
|
|
||||||
.\" Under source code control: 1991/07/23 05:48:26
|
|
||||||
.\" File existed as early as: 1991
|
|
||||||
.\"
|
|
||||||
.\" chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
.\" Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
.\"
|
.\"
|
||||||
.\" calculator by David I. Bell
|
.\" calculator by David I. Bell
|
||||||
.\" man page by Landon Noll
|
.\" man page by Landon Noll
|
||||||
.\"
|
.TH calc 1 "^..^" "15Oct1999"
|
||||||
.TH calc 1 "^..^" "1999-11-30"
|
|
||||||
.SH NAME
|
.SH NAME
|
||||||
calc \- arbitrary precision calculator
|
calc \- arbitrary precision calculator
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
@@ -36,7 +15,7 @@ calc \- arbitrary precision calculator
|
|||||||
.RB [ \-c ]
|
.RB [ \-c ]
|
||||||
.RB [ \-C ]
|
.RB [ \-C ]
|
||||||
.RB [ \-d ]
|
.RB [ \-d ]
|
||||||
.RB [ -D\ \&calc_debug[:resource_debug:[user_debug]] ]
|
.RB [ -D\ \&calc_debug[:lib_debug:[user_debug]] ]
|
||||||
.br
|
.br
|
||||||
.in +5n
|
.in +5n
|
||||||
.RB [ \-e ]
|
.RB [ \-e ]
|
||||||
@@ -46,18 +25,15 @@ calc \- arbitrary precision calculator
|
|||||||
.RB [ \-n ]
|
.RB [ \-n ]
|
||||||
.RB [ \-p ]
|
.RB [ \-p ]
|
||||||
.RB [ \-q ]
|
.RB [ \-q ]
|
||||||
.RB [ \-s ]
|
|
||||||
.RB [ \-u ]
|
.RB [ \-u ]
|
||||||
.RB [ \-v ]
|
.RB [ \-v ]
|
||||||
.br
|
.br
|
||||||
.RB [ calc_cmd\ \&.\|.\|. ]
|
.RB [ calc_cmd\ \&.\|.\|. ]
|
||||||
.in -5n
|
.in -5n
|
||||||
.sp
|
|
||||||
\fI#!${BINDIR}/calc\fP\ \fB\-S\fP\ [\-other_flags\ \&...]
|
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
\&
|
\&
|
||||||
.br
|
.br
|
||||||
CALC OPTIONS
|
CALC COMMAND LINE
|
||||||
.PP
|
.PP
|
||||||
|
|
||||||
.TP
|
.TP
|
||||||
@@ -89,17 +65,16 @@ cause
|
|||||||
to try to process each line being read
|
to try to process each line being read
|
||||||
despite the errors that it encounters.
|
despite the errors that it encounters.
|
||||||
.sp 1
|
.sp 1
|
||||||
By default, calc startup resource files ($CALCRC) are silently
|
By default, calc startup scripts ($CALCRC) are silently
|
||||||
ignored if not found.
|
ignored if not found.
|
||||||
This flag will report missing
|
This flag will report missing
|
||||||
startup resource files unless
|
startup scripts unless
|
||||||
.B \-d
|
.B \-d
|
||||||
is also given.
|
is also given.
|
||||||
|
|
||||||
.TP
|
.TP
|
||||||
.B \-C
|
.B \-C
|
||||||
Permit the execution of custom builtin functions.
|
Permit the execution of custom builtin functions. Without
|
||||||
Without
|
|
||||||
this flag, calling the custom() builtin function will
|
this flag, calling the custom() builtin function will
|
||||||
simply generate an error.
|
simply generate an error.
|
||||||
.sp 1
|
.sp 1
|
||||||
@@ -112,8 +87,8 @@ functions are disabled by default for this reason.
|
|||||||
.TP
|
.TP
|
||||||
.B \-d
|
.B \-d
|
||||||
Disable the printing of the opening title. The printing
|
Disable the printing of the opening title. The printing
|
||||||
of resource file debug and informational messages is also disabled
|
of library debug and informational messages is also disabled
|
||||||
as if \fBconfig("resource_debug", 0)\fP had been executed.
|
as if \fBconfig("lib_debug", 0)\fP had been executed.
|
||||||
.sp 1
|
.sp 1
|
||||||
For example:
|
For example:
|
||||||
.sp 1
|
.sp 1
|
||||||
@@ -147,12 +122,12 @@ It's nearly ten past six.
|
|||||||
.in -5n
|
.in -5n
|
||||||
.sp 1
|
.sp 1
|
||||||
This flag disables the reporting of missing calc
|
This flag disables the reporting of missing calc
|
||||||
startup resource files ($CALCRC).
|
startup scripts ($CALCRC).
|
||||||
|
|
||||||
.TP
|
.TP
|
||||||
.BR -D " calc_debug[:resource_debug:[user_debug]]"
|
.BR -D " calc_debug[:lib_debug:[user_debug]]"
|
||||||
Force the initial value of config("calc_debug"),
|
Force the initial value of config("calc_debug"),
|
||||||
config("resource_debug") and config("user_debug").
|
config("lib_debug") and config("user_debug").
|
||||||
.sp 1
|
.sp 1
|
||||||
The : separated strings are interpreted as signed 32 bit values.
|
The : separated strings are interpreted as signed 32 bit values.
|
||||||
After an optional leading sign a leading zero indicates octal
|
After an optional leading sign a leading zero indicates octal
|
||||||
@@ -162,9 +137,9 @@ conversion. Otherwise, decimal conversion is assumed.
|
|||||||
By default,
|
By default,
|
||||||
.I calc_debug
|
.I calc_debug
|
||||||
is 0,
|
is 0,
|
||||||
.I resource_debug
|
.I lib_debug
|
||||||
is 3 and
|
is 3 and
|
||||||
.I user_debug
|
.I lib_debug
|
||||||
is 0.
|
is 0.
|
||||||
.sp 1
|
.sp 1
|
||||||
For more information use the following
|
For more information use the following
|
||||||
@@ -294,7 +269,7 @@ unknown mode.
|
|||||||
will attempt to read or write them if directed.
|
will attempt to read or write them if directed.
|
||||||
.sp 1
|
.sp 1
|
||||||
If the mode disables opening of files for reading, then
|
If the mode disables opening of files for reading, then
|
||||||
the startup resource files are disabled as of
|
the startup library scripts are disabled as of
|
||||||
.B \-q
|
.B \-q
|
||||||
was given.
|
was given.
|
||||||
The reading of key bindings is also disabled
|
The reading of key bindings is also disabled
|
||||||
@@ -330,15 +305,7 @@ flag overrides
|
|||||||
|
|
||||||
.TP
|
.TP
|
||||||
.B \-q
|
.B \-q
|
||||||
Disable the use of the $CALCRC startup resource files.
|
Disable the use of the $CALCRC startup scripts.
|
||||||
|
|
||||||
.TP
|
|
||||||
.B \-s
|
|
||||||
By default, all
|
|
||||||
.I calc_cmd
|
|
||||||
args are evaluated and executed.
|
|
||||||
This flag will disable their evaluation and instead make
|
|
||||||
them available as strings for the argv() builtin function.
|
|
||||||
|
|
||||||
.TP
|
.TP
|
||||||
.B \-u
|
.B \-u
|
||||||
@@ -350,23 +317,15 @@ Print the
|
|||||||
.B calc
|
.B calc
|
||||||
version number and exit.
|
version number and exit.
|
||||||
.PP
|
.PP
|
||||||
|
|
||||||
\&
|
|
||||||
.br
|
|
||||||
CALC COMMAND LINE
|
|
||||||
.PP
|
|
||||||
Without
|
Without
|
||||||
.IR calc_cmd ,
|
.IR calc_cmd ,
|
||||||
.B calc
|
.B calc
|
||||||
operates interactively.
|
operates interactively.
|
||||||
If one or more
|
If one or more
|
||||||
.I calc_cmd
|
.I calc_cmd
|
||||||
are given on the command line and
|
are given on the command line,
|
||||||
.B \-s
|
|
||||||
is NOT given, then
|
|
||||||
.B calc
|
.B calc
|
||||||
will evaluate and execute them and then exit.
|
will execute them and exit.
|
||||||
.sp
|
|
||||||
If
|
If
|
||||||
.B \-i
|
.B \-i
|
||||||
is given,
|
is given,
|
||||||
@@ -375,28 +334,19 @@ will attempt to become interactive
|
|||||||
even of one or more
|
even of one or more
|
||||||
.I calc_cmd
|
.I calc_cmd
|
||||||
are given on the command line.
|
are given on the command line.
|
||||||
.sp
|
|
||||||
If
|
|
||||||
.B \-s
|
|
||||||
is given,
|
|
||||||
.B calc
|
|
||||||
will not evaluate any
|
|
||||||
.I calc_cmd
|
|
||||||
arguments but instead make them available
|
|
||||||
as strings to the argv() builtin function.
|
|
||||||
.PP
|
.PP
|
||||||
Normally on startup,
|
Normally on startup,
|
||||||
.B calc
|
.B calc
|
||||||
attempts to execute a collection of
|
attempts to execute a collection of
|
||||||
startup resource files.
|
library scripts.
|
||||||
The environment variable $CALCRC (if non-existent
|
The environment variable $CALCRC (if non-existent
|
||||||
then a compiled in value) contains a : separated list of startup
|
then a compiled in value) contains a : separated list of startup
|
||||||
resource files.
|
library scripts.
|
||||||
No error conditions are produced if these startup
|
No error conditions are produced if these startup
|
||||||
resource files are not found.
|
library scripts are not found.
|
||||||
.PP
|
.PP
|
||||||
If the mode disables opening of files for reading, then the startup
|
If the mode disables opening of files for reading, then the startup
|
||||||
resource files are disabled as of
|
library scripts are disabled as of
|
||||||
.B \-q
|
.B \-q
|
||||||
was given and $CALCRC as well
|
was given and $CALCRC as well
|
||||||
as the default compiled in value are ignored.
|
as the default compiled in value are ignored.
|
||||||
@@ -442,129 +392,6 @@ help config
|
|||||||
.in -5n
|
.in -5n
|
||||||
.sp 1
|
.sp 1
|
||||||
.PP
|
.PP
|
||||||
|
|
||||||
\&
|
|
||||||
.br
|
|
||||||
SHELL SCRIPT MODE
|
|
||||||
.PP
|
|
||||||
If an executable file begins with:
|
|
||||||
.sp 1
|
|
||||||
.in +5n
|
|
||||||
.nf
|
|
||||||
\fI#!${BINDIR}/calc\fP\ \fB\-S\fP\ [\-other_flags\ \&...]
|
|
||||||
.fi
|
|
||||||
.in -5n
|
|
||||||
.sp 1
|
|
||||||
the rest of the file will be processed in
|
|
||||||
.BR "shell script mode" .
|
|
||||||
Note that
|
|
||||||
.B \-S
|
|
||||||
(UPPER CASE
|
|
||||||
.BR \-S )
|
|
||||||
must be the first \-flag on the ``#!'' line.
|
|
||||||
Any other optional ``\-other_flags'' must come after
|
|
||||||
the
|
|
||||||
.BR \-S .
|
|
||||||
.sp 1
|
|
||||||
In
|
|
||||||
.B "shell script mode"
|
|
||||||
the contents of the file
|
|
||||||
are evaluated and executed as if they were processed
|
|
||||||
by the
|
|
||||||
.B read
|
|
||||||
command.
|
|
||||||
Any optional ``\-other_flags'' will by parsed first
|
|
||||||
followed by any arguments given shell script itself.
|
|
||||||
.sp 1
|
|
||||||
In
|
|
||||||
.BR "shell script mode" ,
|
|
||||||
.B \-s
|
|
||||||
(lower case
|
|
||||||
.BR \-s )
|
|
||||||
is always assumed.
|
|
||||||
In addition,
|
|
||||||
.B \-d
|
|
||||||
and
|
|
||||||
.B \-p
|
|
||||||
are automatically set if
|
|
||||||
.B \-i
|
|
||||||
is not given.
|
|
||||||
.sp 1
|
|
||||||
For example, if
|
|
||||||
the file
|
|
||||||
.BR /tmp/mersenne :
|
|
||||||
.sp 1
|
|
||||||
.in +5n
|
|
||||||
.nf
|
|
||||||
\fI#!${BINDIR}/calc\fP\ \fB\-S\fP\ \&\fB\-q\fP
|
|
||||||
#
|
|
||||||
# mersenne - an example of a calc \fBshell script file\fP
|
|
||||||
|
|
||||||
/* parse args */
|
|
||||||
if (argv() != 1) {
|
|
||||||
fprintf(files(2), "usage: %s exp\\n", config("program"));
|
|
||||||
abort "must give one exponent arg";
|
|
||||||
}
|
|
||||||
|
|
||||||
/* print the mersenne number */
|
|
||||||
print "2^": argv(0) : "-1 =", 2^eval(argv(0))-1;
|
|
||||||
.fi
|
|
||||||
.in -5n
|
|
||||||
.sp 1
|
|
||||||
is made an executable file by:
|
|
||||||
.sp 1
|
|
||||||
.in +5n
|
|
||||||
.nf
|
|
||||||
chmod +x /tmp/mersenne
|
|
||||||
.fi
|
|
||||||
.in -5n
|
|
||||||
.sp 1
|
|
||||||
then the command line:
|
|
||||||
.sp 1
|
|
||||||
.in +5n
|
|
||||||
.nf
|
|
||||||
/tmp/mersenne 127
|
|
||||||
.fi
|
|
||||||
.in -5n
|
|
||||||
.sp 1
|
|
||||||
will print:
|
|
||||||
.sp 1
|
|
||||||
.in +5n
|
|
||||||
.nf
|
|
||||||
2^127-1 = 170141183460469231731687303715884105727
|
|
||||||
.fi
|
|
||||||
.in -5n
|
|
||||||
.sp 1
|
|
||||||
Note that because
|
|
||||||
.B \-s
|
|
||||||
is assumed in
|
|
||||||
.B "shell script mode"
|
|
||||||
and non-dashed args are made available as
|
|
||||||
strings via the
|
|
||||||
.BR argv ()
|
|
||||||
builtin function.
|
|
||||||
Therefore:
|
|
||||||
.sp 1
|
|
||||||
.in +5n
|
|
||||||
.nf
|
|
||||||
2^eval(argv(0))-1
|
|
||||||
.fi
|
|
||||||
.in -5n
|
|
||||||
.sp 1
|
|
||||||
will print the decimal value of 2^n-1
|
|
||||||
but
|
|
||||||
.sp 1
|
|
||||||
.in +5n
|
|
||||||
.nf
|
|
||||||
2^argv(0)-1
|
|
||||||
.fi
|
|
||||||
.in -5n
|
|
||||||
.sp 1
|
|
||||||
will not.
|
|
||||||
.PP
|
|
||||||
|
|
||||||
\&
|
|
||||||
.br
|
|
||||||
DATA TYPES
|
DATA TYPES
|
||||||
.PP
|
.PP
|
||||||
Fundamental builtin data types include integers, real numbers,
|
Fundamental builtin data types include integers, real numbers,
|
||||||
@@ -590,9 +417,6 @@ help obj
|
|||||||
show objfuncs
|
show objfuncs
|
||||||
.in -1.0i
|
.in -1.0i
|
||||||
.PP
|
.PP
|
||||||
|
|
||||||
\&
|
|
||||||
.br
|
|
||||||
VARIABLES
|
VARIABLES
|
||||||
.PP
|
.PP
|
||||||
Variables in \fIcalc\fP are typeless.
|
Variables in \fIcalc\fP are typeless.
|
||||||
@@ -618,9 +442,6 @@ help list
|
|||||||
show globals
|
show globals
|
||||||
.in -1.0i
|
.in -1.0i
|
||||||
.PP
|
.PP
|
||||||
|
|
||||||
\&
|
|
||||||
.br
|
|
||||||
INPUT/OUTPUT
|
INPUT/OUTPUT
|
||||||
.PP
|
.PP
|
||||||
A leading ``0x'' implies a hexadecimal value,
|
A leading ``0x'' implies a hexadecimal value,
|
||||||
@@ -653,9 +474,6 @@ command:
|
|||||||
help file
|
help file
|
||||||
.in -1.0i
|
.in -1.0i
|
||||||
.PP
|
.PP
|
||||||
|
|
||||||
\&
|
|
||||||
.br
|
|
||||||
CALC LANGUAGE
|
CALC LANGUAGE
|
||||||
.PP
|
.PP
|
||||||
The \fIcalc\fP language is a C-like language.
|
The \fIcalc\fP language is a C-like language.
|
||||||
@@ -666,7 +484,7 @@ These commands are very similar to their counterparts in C.
|
|||||||
The language also include a number of commands particular
|
The language also include a number of commands particular
|
||||||
to \fIcalc\fP itself.
|
to \fIcalc\fP itself.
|
||||||
These include commands such as function definition, help,
|
These include commands such as function definition, help,
|
||||||
reading in resource files, dump files to a file, error notification,
|
reading in library scripts, dump files to a file, error notification,
|
||||||
configuration control and status.
|
configuration control and status.
|
||||||
.PP
|
.PP
|
||||||
For more information use the following
|
For more information use the following
|
||||||
@@ -689,54 +507,29 @@ help config
|
|||||||
\&
|
\&
|
||||||
.br
|
.br
|
||||||
.PD 0
|
.PD 0
|
||||||
.TP 5
|
.TP 20
|
||||||
${BINDIR}/calc
|
|
||||||
calc binary
|
|
||||||
.sp 1
|
|
||||||
.TP 5
|
|
||||||
${SCRIPTDIR}/*
|
|
||||||
calc shell scripts
|
|
||||||
.sp 1
|
|
||||||
.TP 5
|
|
||||||
${LIBDIR}/*.cal
|
${LIBDIR}/*.cal
|
||||||
calc standard resource files
|
library scripts shipped with
|
||||||
.sp 1
|
.B calc
|
||||||
.TP 5
|
.br
|
||||||
|
.sp
|
||||||
|
.TP 20
|
||||||
${LIBDIR}/help/*
|
${LIBDIR}/help/*
|
||||||
help files
|
help files
|
||||||
.sp 1
|
.br
|
||||||
.TP 5
|
.sp
|
||||||
|
.TP 20
|
||||||
${LIBDIR}/bindings
|
${LIBDIR}/bindings
|
||||||
non-GNU-readline command line editor bindings
|
command line editor bindings
|
||||||
.sp 1
|
.sp
|
||||||
.TP 5
|
|
||||||
${INCDIRCALC}/*.h
|
|
||||||
include files for C interface use
|
|
||||||
.sp 1
|
|
||||||
.TP 5
|
|
||||||
${LIBDIR}/libcalc.a
|
|
||||||
calc binary link library
|
|
||||||
.sp 1
|
|
||||||
.TP 5
|
|
||||||
${LIBDIR}/libcustcalc.a
|
|
||||||
custom binary link library
|
|
||||||
.sp 1
|
|
||||||
.TP 5
|
|
||||||
${CUSTOMLIBDIR}/*.cal
|
|
||||||
custom resource files
|
|
||||||
.sp 1
|
|
||||||
.TP 5
|
|
||||||
${CUSTOMHELPDIR}/*
|
|
||||||
custom help files
|
|
||||||
.sp 1
|
|
||||||
.SH ENVIRONMENT
|
.SH ENVIRONMENT
|
||||||
\&
|
\&
|
||||||
.br
|
.br
|
||||||
.PD 0
|
.PD 0
|
||||||
.TP 5
|
.TP 5
|
||||||
CALCPATH
|
CALCPATH
|
||||||
A :-separated list of directories used to search for calc
|
A :-separated list of directories used to search for
|
||||||
resource filenames that do not begin with /, ./ or ~.
|
scripts filenames that do not begin with /, ./ or ~.
|
||||||
.br
|
.br
|
||||||
.sp
|
.sp
|
||||||
Default value: ${CALCPATH}
|
Default value: ${CALCPATH}
|
||||||
@@ -773,13 +566,12 @@ In that case, the standard readline mechanisms (see readline(3)) are used.
|
|||||||
.SH CREDIT
|
.SH CREDIT
|
||||||
\&
|
\&
|
||||||
.br
|
.br
|
||||||
The main chunk of
|
The majority of
|
||||||
.B calc
|
.B calc
|
||||||
was written by David I. Bell.
|
was written by David I. Bell.
|
||||||
.sp
|
.sp
|
||||||
The
|
.B Calc
|
||||||
.B calc
|
The Calc primary mirror, calc mailing list and calc bug report
|
||||||
primary mirror, calc mailing list and calc bug report
|
|
||||||
processing is performed by Landon Curt Noll.
|
processing is performed by Landon Curt Noll.
|
||||||
.sp
|
.sp
|
||||||
Landon Curt Noll maintains the master reference source, performs
|
Landon Curt Noll maintains the master reference source, performs
|
||||||
@@ -798,83 +590,28 @@ Ernest also supplied the original text for many of the help files.
|
|||||||
.sp
|
.sp
|
||||||
Portions of this program are derived from an earlier set of
|
Portions of this program are derived from an earlier set of
|
||||||
public domain arbitrarily precision routines which was posted
|
public domain arbitrarily precision routines which was posted
|
||||||
to the net around 1984.
|
to the net around 1984. By now, there is almost no recognizable
|
||||||
By now, there is almost no recognizable
|
|
||||||
code left from that original source.
|
code left from that original source.
|
||||||
.sp
|
.sp
|
||||||
.SH "COPYING / CALC GNU LESSER GENERAL PUBLIC LICENSE"
|
Most of this source and binary has one of the following copyrights:
|
||||||
\&
|
|
||||||
.sp
|
|
||||||
Calc is open software, and is
|
|
||||||
covered under version 2.1 of the GNU Lesser General Public License.
|
|
||||||
You are
|
|
||||||
welcome to change it and/or distribute copies of it under certain
|
|
||||||
conditions.
|
|
||||||
The calc commands:
|
|
||||||
.sp
|
.sp
|
||||||
.in +0.5i
|
.in +0.5i
|
||||||
.nf
|
Copyright (c) 19xx David I. Bell
|
||||||
help copyright
|
|
||||||
help copying
|
|
||||||
help copying-lgpl
|
|
||||||
.fi
|
|
||||||
.in -0.5i
|
|
||||||
.sp
|
|
||||||
should display the contents of the COPYING and COPYING-LGPL files.
|
|
||||||
Those files contain information about the calc's GNU Lesser General
|
|
||||||
Public License, and in particular the conditions under which you
|
|
||||||
are allowed to change it and/or distribute copies of it.
|
|
||||||
.sp
|
|
||||||
You should have received a copy of the version 2.1 of the GNU Lesser General
|
|
||||||
Public License.
|
|
||||||
If you do not have these files, write to:
|
|
||||||
.sp
|
|
||||||
.in +0.5i
|
|
||||||
.nf
|
|
||||||
Free Software Foundation, Inc.
|
|
||||||
59 Temple Place
|
|
||||||
Suite 330
|
|
||||||
Boston, MA 02111-1307
|
|
||||||
USA
|
|
||||||
.fi
|
|
||||||
.in -0.5i
|
|
||||||
.sp
|
|
||||||
Calc is copyrighted in several different ways.
|
|
||||||
These ways include:
|
|
||||||
.sp
|
|
||||||
.in +0.5i
|
|
||||||
.nf
|
|
||||||
Copyright (C) year David I. Bell
|
|
||||||
Copyright (C) year David I. Bell and Landon Curt Noll
|
|
||||||
Copyright (C) year David I. Bell and Ernest Bowen
|
|
||||||
Copyright (C) year David I. Bell, Landon Curt Noll and Ernest Bowen
|
|
||||||
Copyright (C) year Landon Curt Noll
|
|
||||||
Copyright (C) year Ernest Bowen and Landon Curt Noll
|
|
||||||
Copyright (C) year Ernest Bowen
|
|
||||||
.fi
|
|
||||||
.in -0.5i
|
|
||||||
.sp
|
|
||||||
This man page is:
|
|
||||||
.sp
|
|
||||||
.in +0.5i
|
|
||||||
.nf
|
|
||||||
Copyright (C) 1999 Landon Curt Noll
|
|
||||||
.fi
|
|
||||||
.in -0.5i
|
|
||||||
.sp
|
|
||||||
and is covered under version 2.1 GNU Lesser General
|
|
||||||
Public License.
|
|
||||||
.sp
|
|
||||||
.SH "BUG REPORTS / BUG FIXES / ENHANCEMENTS"
|
|
||||||
\&
|
|
||||||
.br
|
.br
|
||||||
|
Copyright (c) 19xx David I. Bell and Landon Curt Noll
|
||||||
|
.br
|
||||||
|
Copyright (c) 19xx Landon Curt Noll
|
||||||
|
.br
|
||||||
|
Copyright (c) 19xx Ernest Bowen and Landon Curt Noll
|
||||||
|
.in -0.5i
|
||||||
|
.sp
|
||||||
|
Permission is granted to use, distribute, or modify this source,
|
||||||
|
provided that this copyright notice remains intact.
|
||||||
.sp
|
.sp
|
||||||
Send comments, suggestions, bug fixes, enhancements
|
Send comments, suggestions, bug fixes, enhancements
|
||||||
and interesting
|
and interesting
|
||||||
.B calc
|
.B calc
|
||||||
resource files,
|
scripts that you would like you see included
|
||||||
.B calc
|
|
||||||
shell scripts that you would like you see included
|
|
||||||
in future distributions to:
|
in future distributions to:
|
||||||
.sp
|
.sp
|
||||||
.in +0.5i
|
.in +0.5i
|
||||||
@@ -886,7 +623,6 @@ calc-tester at postofc dot corp dot sgi dot com
|
|||||||
.in -0.5i
|
.in -0.5i
|
||||||
.sp
|
.sp
|
||||||
Bug reports are sent to:
|
Bug reports are sent to:
|
||||||
.sp
|
|
||||||
.in +0.5i
|
.in +0.5i
|
||||||
.nf
|
.nf
|
||||||
calc-bugs at postofc dot corp dot sgi dot com
|
calc-bugs at postofc dot corp dot sgi dot com
|
||||||
@@ -909,9 +645,6 @@ help bugs
|
|||||||
.sp
|
.sp
|
||||||
for more information about bug reporting.
|
for more information about bug reporting.
|
||||||
.sp
|
.sp
|
||||||
.SH "CALC WEB SITE / MAILING LIST"
|
|
||||||
\&
|
|
||||||
.br
|
|
||||||
Landon Noll maintains the the
|
Landon Noll maintains the the
|
||||||
.B calc
|
.B calc
|
||||||
web site is located at:
|
web site is located at:
|
||||||
|
37
calcerr.tbl
37
calcerr.tbl
@@ -1,31 +1,3 @@
|
|||||||
#
|
|
||||||
# calcerr - error codes and messages
|
|
||||||
#
|
|
||||||
# Copyright (C) 1999 Ernest Bowen
|
|
||||||
#
|
|
||||||
# Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
# the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
# as published by the Free Software Foundation.
|
|
||||||
#
|
|
||||||
# Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
# Public License for more details.
|
|
||||||
#
|
|
||||||
# A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
# distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
# received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
#
|
|
||||||
# @(#) $Revision: 29.1 $
|
|
||||||
# @(#) $Id: calcerr.tbl,v 29.1 1999/12/14 09:15:35 chongo Exp $
|
|
||||||
# @(#) $Source: /usr/local/src/cmd/calc/RCS/calcerr.tbl,v $
|
|
||||||
#
|
|
||||||
# Under source code control: 1996/05/23 17:38:44
|
|
||||||
# File existed as early as: 1996
|
|
||||||
#
|
|
||||||
# Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
|
|
||||||
# This file is used to build calcerr.h include file.
|
# This file is used to build calcerr.h include file.
|
||||||
#
|
#
|
||||||
# Lines should be of the form:
|
# Lines should be of the form:
|
||||||
@@ -366,12 +338,3 @@ E_BACKSLASH Bad argument type for unary backslash
|
|||||||
E_SETMINUS Bad argument type for setminus
|
E_SETMINUS Bad argument type for setminus
|
||||||
E_INDICES1 Bad first argument type for indices
|
E_INDICES1 Bad first argument type for indices
|
||||||
E_INDICES2 Bad second argument for indices
|
E_INDICES2 Bad second argument for indices
|
||||||
E_EXP3 Too-large re(argument) for exp
|
|
||||||
E_SINH3 Too-large re(argument) for sinh
|
|
||||||
E_COSH3 Too-large re(argument) for cosh
|
|
||||||
E_SIN3 Too-large im(argument) for sin
|
|
||||||
E_COS3 Too-large im(argument) for cos
|
|
||||||
E_GD3 Infinite or too-large result for gd
|
|
||||||
E_AGD3 Infinite or too-large result for agd
|
|
||||||
E_POWER4 Too-large value for power
|
|
||||||
E_ROOT4 Too-large value for root
|
|
||||||
|
@@ -1,33 +1,3 @@
|
|||||||
#!/usr/bin/sed
|
|
||||||
#
|
|
||||||
# calcerr_c - help produce calcerr.c from calcerr.tbl
|
|
||||||
#
|
|
||||||
# Copyright (C) 1999 Landon Curt Noll
|
|
||||||
#
|
|
||||||
# Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
# the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
# as published by the Free Software Foundation.
|
|
||||||
#
|
|
||||||
# Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
# Public License for more details.
|
|
||||||
#
|
|
||||||
# A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
# distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
# received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
#
|
|
||||||
# @(#) $Revision: 29.1 $
|
|
||||||
# @(#) $Id: calcerr_c.awk,v 29.1 1999/12/14 09:15:35 chongo Exp $
|
|
||||||
# @(#) $Source: /usr/local/src/cmd/calc/RCS/calcerr_c.awk,v $
|
|
||||||
#
|
|
||||||
# Under source code control: 1996/05/24 03:15:35
|
|
||||||
# File existed as early as: 1996
|
|
||||||
#
|
|
||||||
# chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
# Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
#
|
|
||||||
BEGIN {
|
BEGIN {
|
||||||
printf("#include <stdio.h>\n");
|
printf("#include <stdio.h>\n");
|
||||||
printf("#include \"calcerr.h\"\n\n");
|
printf("#include \"calcerr.h\"\n\n");
|
||||||
|
@@ -1,33 +1,3 @@
|
|||||||
#!/usr/bin/sed
|
|
||||||
#
|
|
||||||
# calcerr_c - help produce calcerr.c from calcerr.tbl
|
|
||||||
#
|
|
||||||
# Copyright (C) 1999 Landon Curt Noll
|
|
||||||
#
|
|
||||||
# Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
# the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
# as published by the Free Software Foundation.
|
|
||||||
#
|
|
||||||
# Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
# Public License for more details.
|
|
||||||
#
|
|
||||||
# A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
# distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
# received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
#
|
|
||||||
# @(#) $Revision: 29.1 $
|
|
||||||
# @(#) $Id: calcerr_c.sed,v 29.1 1999/12/14 09:15:35 chongo Exp $
|
|
||||||
# @(#) $Source: /usr/local/src/cmd/calc/RCS/calcerr_c.sed,v $
|
|
||||||
#
|
|
||||||
# Under source code control: 1996/05/24 03:15:35
|
|
||||||
# File existed as early as: 1996
|
|
||||||
#
|
|
||||||
# chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
# Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
#
|
|
||||||
s/#.*//
|
s/#.*//
|
||||||
s/[ ][ ]*$//
|
s/[ ][ ]*$//
|
||||||
/^$/d
|
/^$/d
|
||||||
|
@@ -1,33 +1,3 @@
|
|||||||
#!/usr/bin/awk
|
|
||||||
#
|
|
||||||
# calcerr_h - help produce calcerr.h from calcerr.tbl
|
|
||||||
#
|
|
||||||
# Copyright (C) 1999 Landon Curt Noll
|
|
||||||
#
|
|
||||||
# Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
# the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
# as published by the Free Software Foundation.
|
|
||||||
#
|
|
||||||
# Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
# Public License for more details.
|
|
||||||
#
|
|
||||||
# A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
# distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
# received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
#
|
|
||||||
# @(#) $Revision: 29.1 $
|
|
||||||
# @(#) $Id: calcerr_h.awk,v 29.1 1999/12/14 09:15:35 chongo Exp $
|
|
||||||
# @(#) $Source: /usr/local/src/cmd/calc/RCS/calcerr_h.awk,v $
|
|
||||||
#
|
|
||||||
# Under source code control: 1996/05/23 17:38:44
|
|
||||||
# File existed as early as: 1996
|
|
||||||
#
|
|
||||||
# chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
# Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
#
|
|
||||||
BEGIN {
|
BEGIN {
|
||||||
ebase = 10000;
|
ebase = 10000;
|
||||||
printf("#define E__BASE %d\t/* calc errors start above here */\n\n", ebase);
|
printf("#define E__BASE %d\t/* calc errors start above here */\n\n", ebase);
|
||||||
|
@@ -1,33 +1,3 @@
|
|||||||
#!/usr/bin/sed
|
|
||||||
#
|
|
||||||
# calcerr_h - help produce calcerr.h from calcerr.tbl
|
|
||||||
#
|
|
||||||
# Copyright (C) 1999 Landon Curt Noll
|
|
||||||
#
|
|
||||||
# Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
# the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
# as published by the Free Software Foundation.
|
|
||||||
#
|
|
||||||
# Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
# Public License for more details.
|
|
||||||
#
|
|
||||||
# A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
# distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
# received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
#
|
|
||||||
# @(#) $Revision: 29.1 $
|
|
||||||
# @(#) $Id: calcerr_h.sed,v 29.1 1999/12/14 09:15:35 chongo Exp $
|
|
||||||
# @(#) $Source: /usr/local/src/cmd/calc/RCS/calcerr_h.sed,v $
|
|
||||||
#
|
|
||||||
# Under source code control: 1996/05/23 17:38:44
|
|
||||||
# File existed as early as: 1996
|
|
||||||
#
|
|
||||||
# chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
# Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
#
|
|
||||||
s/#.*//
|
s/#.*//
|
||||||
s/[ ][ ]*$//
|
s/[ ][ ]*$//
|
||||||
/^$/d
|
/^$/d
|
||||||
|
30
check.awk
30
check.awk
@@ -1,33 +1,3 @@
|
|||||||
#!/usr/bin/awk
|
|
||||||
#
|
|
||||||
# check - check the regression output for problems
|
|
||||||
#
|
|
||||||
# Copyright (C) 1999 Landon Curt Noll
|
|
||||||
#
|
|
||||||
# Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
# the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
# as published by the Free Software Foundation.
|
|
||||||
#
|
|
||||||
# Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
# Public License for more details.
|
|
||||||
#
|
|
||||||
# A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
# distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
# received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
#
|
|
||||||
# @(#) $Revision: 29.1 $
|
|
||||||
# @(#) $Id: check.awk,v 29.1 1999/12/14 09:15:35 chongo Exp $
|
|
||||||
# @(#) $Source: /usr/local/src/cmd/calc/RCS/check.awk,v $
|
|
||||||
#
|
|
||||||
# Under source code control: 1996/05/25 22:07:58
|
|
||||||
# File existed as early as: 1996
|
|
||||||
#
|
|
||||||
# chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
# Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
#
|
|
||||||
# This awk script will print 3 lines before and after any non-blank line that
|
# This awk script will print 3 lines before and after any non-blank line that
|
||||||
# does not begin with a number. This allows the 'make debug' rule to remove
|
# does not begin with a number. This allows the 'make debug' rule to remove
|
||||||
# all non-interest lines the the 'make check' regression output while providing
|
# all non-interest lines the the 'make check' regression output while providing
|
||||||
|
29
cmath.h
29
cmath.h
@@ -1,30 +1,9 @@
|
|||||||
/*
|
/*
|
||||||
* cmath - data structures for extended precision complex arithmetic
|
* Copyright (c) 1997 David I. Bell
|
||||||
|
* Permission is granted to use, distribute, or modify this source,
|
||||||
|
* provided that this copyright notice remains intact.
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999 David I. Bell
|
* Data structure declarations for extended precision complex arithmetic.
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: cmath.h,v 29.1 1999/12/14 09:15:35 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/cmath.h,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1993/07/30 19:42:45
|
|
||||||
* File existed as early as: 1993
|
|
||||||
*
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
222
codegen.c
222
codegen.c
@@ -1,35 +1,11 @@
|
|||||||
/*
|
/*
|
||||||
* codegen - module to generate opcodes from the input tokens
|
* Copyright (c) 1997 David I. Bell
|
||||||
|
* Permission is granted to use, distribute, or modify this source,
|
||||||
|
* provided that this copyright notice remains intact.
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999 David I. Bell and Ernest Bowen
|
* Module to generate opcodes from the input tokens.
|
||||||
*
|
|
||||||
* Primary author: David I. Bell
|
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: codegen.c,v 29.1 1999/12/14 09:15:35 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/codegen.c,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1990/02/15 01:48:13
|
|
||||||
* File existed as early as: before 1990
|
|
||||||
*
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include "have_unistd.h"
|
#include "have_unistd.h"
|
||||||
#if defined(HAVE_UNISTD_H)
|
#if defined(HAVE_UNISTD_H)
|
||||||
@@ -156,8 +132,7 @@ getcommands(BOOL toplevel)
|
|||||||
/* previously read and -once was given */
|
/* previously read and -once was given */
|
||||||
break;
|
break;
|
||||||
case -2:
|
case -2:
|
||||||
scanerror(T_NULL,
|
scanerror(T_NULL, "Maximum input depth reached");
|
||||||
"Maximum input depth reached");
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
scanerror(T_NULL, "Cannot open \"%s\"\n", name);
|
scanerror(T_NULL, "Cannot open \"%s\"\n", name);
|
||||||
@@ -174,8 +149,7 @@ getcommands(BOOL toplevel)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (writeglobals(name))
|
if (writeglobals(name))
|
||||||
scanerror(T_NULL,
|
scanerror(T_NULL, "Error writing \"%s\"\n", name);
|
||||||
"Error writing \"%s\"\n", name);
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case T_CD:
|
case T_CD:
|
||||||
@@ -183,8 +157,6 @@ getcommands(BOOL toplevel)
|
|||||||
break;
|
break;
|
||||||
case T_NEWLINE:
|
case T_NEWLINE:
|
||||||
case T_SEMICOLON:
|
case T_SEMICOLON:
|
||||||
case T_POUNDBANG:
|
|
||||||
case T_POUNDCOMMENT:
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
@@ -346,9 +318,7 @@ getfunction(void)
|
|||||||
index = addparam(name);
|
index = addparam(name);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
scanerror(T_NULL,
|
scanerror(T_NULL, "Parameter \"%s\" is already defined", name);
|
||||||
"Parameter \"%s\" is already defined",
|
|
||||||
name);
|
|
||||||
}
|
}
|
||||||
type = gettoken();
|
type = gettoken();
|
||||||
if (type == T_ASSIGN) {
|
if (type == T_ASSIGN) {
|
||||||
@@ -378,8 +348,7 @@ getfunction(void)
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
scanerror(T_NULL,
|
scanerror(T_NULL,
|
||||||
"Left brace or equals sign "
|
"Left brace or equals sign expected for function");
|
||||||
"expected for function");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
endfunc();
|
endfunc();
|
||||||
@@ -424,8 +393,7 @@ getbody(LABEL *contlabel, LABEL *breaklabel, LABEL *nextcaselabel, LABEL *defaul
|
|||||||
|
|
||||||
default:
|
default:
|
||||||
rescantoken();
|
rescantoken();
|
||||||
getstatement(contlabel, breaklabel,
|
getstatement(contlabel, breaklabel, nextcaselabel, defaultlabel);
|
||||||
nextcaselabel, defaultlabel);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -474,8 +442,7 @@ getdeclarations(int symtype)
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
scanerror(T_SEMICOLON,
|
scanerror(T_SEMICOLON, "Bad syntax in declaration statement");
|
||||||
"Bad syntax in declaration statement");
|
|
||||||
return res;
|
return res;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -607,8 +574,7 @@ getstatement(LABEL *contlabel, LABEL *breaklabel, LABEL *nextcaselabel, LABEL *d
|
|||||||
|
|
||||||
case T_CONTINUE:
|
case T_CONTINUE:
|
||||||
if (contlabel == NULL_LABEL) {
|
if (contlabel == NULL_LABEL) {
|
||||||
scanerror(T_SEMICOLON,
|
scanerror(T_SEMICOLON, "CONTINUE not within FOR, WHILE, or DO");
|
||||||
"CONTINUE not within FOR, WHILE, or DO");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
addoplabel(OP_JUMP, contlabel);
|
addoplabel(OP_JUMP, contlabel);
|
||||||
@@ -616,8 +582,7 @@ getstatement(LABEL *contlabel, LABEL *breaklabel, LABEL *nextcaselabel, LABEL *d
|
|||||||
|
|
||||||
case T_BREAK:
|
case T_BREAK:
|
||||||
if (breaklabel == NULL_LABEL) {
|
if (breaklabel == NULL_LABEL) {
|
||||||
scanerror(T_SEMICOLON,
|
scanerror(T_SEMICOLON, "BREAK not within FOR, WHILE, or DO");
|
||||||
"BREAK not within FOR, WHILE, or DO");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
addoplabel(OP_JUMP, breaklabel);
|
addoplabel(OP_JUMP, breaklabel);
|
||||||
@@ -659,26 +624,21 @@ getstatement(LABEL *contlabel, LABEL *breaklabel, LABEL *nextcaselabel, LABEL *d
|
|||||||
switch(gettoken()) {
|
switch(gettoken()) {
|
||||||
case T_CONTINUE:
|
case T_CONTINUE:
|
||||||
if (contlabel == NULL_LABEL) {
|
if (contlabel == NULL_LABEL) {
|
||||||
scanerror(T_SEMICOLON,
|
scanerror(T_SEMICOLON, "CONTINUE not within FOR, WHILE, or DO");
|
||||||
"CONTINUE not within FOR, "
|
|
||||||
"WHILE, or DO");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
addoplabel(OP_JUMPNZ, contlabel);
|
addoplabel(OP_JUMPNZ, contlabel);
|
||||||
break;
|
break;
|
||||||
case T_BREAK:
|
case T_BREAK:
|
||||||
if (breaklabel == NULL_LABEL) {
|
if (breaklabel == NULL_LABEL) {
|
||||||
scanerror(T_SEMICOLON,
|
scanerror(T_SEMICOLON, "BREAK not within FOR, WHILE, or DO");
|
||||||
"BREAK not within FOR, "
|
|
||||||
"WHILE, or DO");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
addoplabel(OP_JUMPNZ, breaklabel);
|
addoplabel(OP_JUMPNZ, breaklabel);
|
||||||
break;
|
break;
|
||||||
case T_GOTO:
|
case T_GOTO:
|
||||||
if (gettoken() != T_SYMBOL) {
|
if (gettoken() != T_SYMBOL) {
|
||||||
scanerror(T_SEMICOLON,
|
scanerror(T_SEMICOLON, "Missing label in goto");
|
||||||
"Missing label in goto");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
addop(OP_JUMPNZ);
|
addop(OP_JUMPNZ);
|
||||||
@@ -687,8 +647,7 @@ getstatement(LABEL *contlabel, LABEL *breaklabel, LABEL *nextcaselabel, LABEL *d
|
|||||||
default:
|
default:
|
||||||
addoplabel(OP_JUMPZ, &label1);
|
addoplabel(OP_JUMPZ, &label1);
|
||||||
rescantoken();
|
rescantoken();
|
||||||
getstatement(contlabel, breaklabel,
|
getstatement(contlabel, breaklabel, NULL_LABEL, NULL_LABEL);
|
||||||
NULL_LABEL, NULL_LABEL);
|
|
||||||
if (gettoken() != T_ELSE) {
|
if (gettoken() != T_ELSE) {
|
||||||
setlabel(&label1);
|
setlabel(&label1);
|
||||||
rescantoken();
|
rescantoken();
|
||||||
@@ -696,8 +655,7 @@ getstatement(LABEL *contlabel, LABEL *breaklabel, LABEL *nextcaselabel, LABEL *d
|
|||||||
}
|
}
|
||||||
addoplabel(OP_JUMP, &label2);
|
addoplabel(OP_JUMP, &label2);
|
||||||
setlabel(&label1);
|
setlabel(&label1);
|
||||||
getstatement(contlabel, breaklabel,
|
getstatement(contlabel, breaklabel, NULL_LABEL, NULL_LABEL);
|
||||||
NULL_LABEL, NULL_LABEL);
|
|
||||||
setlabel(&label2);
|
setlabel(&label2);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -758,8 +716,7 @@ getstatement(LABEL *contlabel, LABEL *breaklabel, LABEL *nextcaselabel, LABEL *d
|
|||||||
addoplabel(OP_JUMP, &label1);
|
addoplabel(OP_JUMP, &label1);
|
||||||
if (gettoken() != T_RIGHTPAREN) {
|
if (gettoken() != T_RIGHTPAREN) {
|
||||||
(void) tokenmode(oldmode);
|
(void) tokenmode(oldmode);
|
||||||
scanerror(T_SEMICOLON,
|
scanerror(T_SEMICOLON, "Right parenthesis expected");
|
||||||
"Right parenthesis expected");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -804,8 +761,7 @@ getstatement(LABEL *contlabel, LABEL *breaklabel, LABEL *nextcaselabel, LABEL *d
|
|||||||
getstatement(contlabel, breaklabel, NULL_LABEL, NULL_LABEL);
|
getstatement(contlabel, breaklabel, NULL_LABEL, NULL_LABEL);
|
||||||
if (gettoken() != T_WHILE) {
|
if (gettoken() != T_WHILE) {
|
||||||
(void) tokenmode(oldmode);
|
(void) tokenmode(oldmode);
|
||||||
scanerror(T_SEMICOLON,
|
scanerror(T_SEMICOLON, "WHILE keyword expected for DO statement");
|
||||||
"WHILE keyword expected for DO statement");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
setlabel(contlabel);
|
setlabel(contlabel);
|
||||||
@@ -826,14 +782,12 @@ getstatement(LABEL *contlabel, LABEL *breaklabel, LABEL *nextcaselabel, LABEL *d
|
|||||||
getcondition();
|
getcondition();
|
||||||
if (gettoken() != T_LEFTBRACE) {
|
if (gettoken() != T_LEFTBRACE) {
|
||||||
(void) tokenmode(oldmode);
|
(void) tokenmode(oldmode);
|
||||||
scanerror(T_SEMICOLON,
|
scanerror(T_SEMICOLON, "Missing left brace for switch statement");
|
||||||
"Missing left brace for switch statement");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
addoplabel(OP_JUMP, nextcaselabel);
|
addoplabel(OP_JUMP, nextcaselabel);
|
||||||
rescantoken();
|
rescantoken();
|
||||||
getstatement(contlabel, breaklabel,
|
getstatement(contlabel, breaklabel, nextcaselabel, defaultlabel);
|
||||||
nextcaselabel, defaultlabel);
|
|
||||||
addoplabel(OP_JUMP, breaklabel);
|
addoplabel(OP_JUMP, breaklabel);
|
||||||
setlabel(nextcaselabel);
|
setlabel(nextcaselabel);
|
||||||
if (defaultlabel->l_offset > 0)
|
if (defaultlabel->l_offset > 0)
|
||||||
@@ -846,8 +800,7 @@ getstatement(LABEL *contlabel, LABEL *breaklabel, LABEL *nextcaselabel, LABEL *d
|
|||||||
|
|
||||||
case T_CASE:
|
case T_CASE:
|
||||||
if (nextcaselabel == NULL_LABEL) {
|
if (nextcaselabel == NULL_LABEL) {
|
||||||
scanerror(T_SEMICOLON,
|
scanerror(T_SEMICOLON, "CASE not within SWITCH statement");
|
||||||
"CASE not within SWITCH statement");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
clearlabel(&label1);
|
clearlabel(&label1);
|
||||||
@@ -856,30 +809,25 @@ getstatement(LABEL *contlabel, LABEL *breaklabel, LABEL *nextcaselabel, LABEL *d
|
|||||||
clearlabel(nextcaselabel);
|
clearlabel(nextcaselabel);
|
||||||
(void) getexprlist();
|
(void) getexprlist();
|
||||||
if (gettoken() != T_COLON) {
|
if (gettoken() != T_COLON) {
|
||||||
scanerror(T_SEMICOLON,
|
scanerror(T_SEMICOLON, "Colon expected after CASE expression");
|
||||||
"Colon expected after CASE expression");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
addoplabel(OP_CASEJUMP, nextcaselabel);
|
addoplabel(OP_CASEJUMP, nextcaselabel);
|
||||||
setlabel(&label1);
|
setlabel(&label1);
|
||||||
getstatement(contlabel, breaklabel,
|
getstatement(contlabel, breaklabel, nextcaselabel, defaultlabel);
|
||||||
nextcaselabel, defaultlabel);
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case T_DEFAULT:
|
case T_DEFAULT:
|
||||||
if (gettoken() != T_COLON) {
|
if (gettoken() != T_COLON) {
|
||||||
scanerror(T_SEMICOLON,
|
scanerror(T_SEMICOLON, "Colon expected after DEFAULT keyword");
|
||||||
"Colon expected after DEFAULT keyword");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (defaultlabel == NULL_LABEL) {
|
if (defaultlabel == NULL_LABEL) {
|
||||||
scanerror(T_SEMICOLON,
|
scanerror(T_SEMICOLON, "DEFAULT not within SWITCH statement");
|
||||||
"DEFAULT not within SWITCH statement");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (defaultlabel->l_offset > 0) {
|
if (defaultlabel->l_offset > 0) {
|
||||||
scanerror(T_SEMICOLON,
|
scanerror(T_SEMICOLON, "Multiple DEFAULT clauses in SWITCH");
|
||||||
"Multiple DEFAULT clauses in SWITCH");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
clearlabel(&label1);
|
clearlabel(&label1);
|
||||||
@@ -887,8 +835,7 @@ getstatement(LABEL *contlabel, LABEL *breaklabel, LABEL *nextcaselabel, LABEL *d
|
|||||||
setlabel(defaultlabel);
|
setlabel(defaultlabel);
|
||||||
addop(OP_POP);
|
addop(OP_POP);
|
||||||
setlabel(&label1);
|
setlabel(&label1);
|
||||||
getstatement(contlabel, breaklabel,
|
getstatement(contlabel, breaklabel, nextcaselabel, defaultlabel);
|
||||||
nextcaselabel, defaultlabel);
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case T_ELSE:
|
case T_ELSE:
|
||||||
@@ -1043,18 +990,14 @@ getobjdeclaration(int symtype)
|
|||||||
switch (gettoken()) {
|
switch (gettoken()) {
|
||||||
case T_SYMBOL:
|
case T_SYMBOL:
|
||||||
if (count == MAXINDICES) {
|
if (count == MAXINDICES) {
|
||||||
scanerror(T_SEMICOLON,
|
scanerror(T_SEMICOLON, "Too many elements in OBJ statement");
|
||||||
"Too many elements in OBJ "
|
|
||||||
"statement");
|
|
||||||
(void) tokenmode(oldmode);
|
(void) tokenmode(oldmode);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
index = addelement(tokensymbol());
|
index = addelement(tokensymbol());
|
||||||
for (i = 0; i < count; i++) {
|
for (i = 0; i < count; i++) {
|
||||||
if (indices[i] == index) {
|
if (indices[i] == index) {
|
||||||
scanerror(T_SEMICOLON,
|
scanerror(T_SEMICOLON, "Duplicate element name \"%s\"", tokensymbol());
|
||||||
"Duplicate element name "
|
|
||||||
"\"%s\"", tokensymbol());
|
|
||||||
(void) tokenmode(oldmode);
|
(void) tokenmode(oldmode);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -1064,8 +1007,7 @@ getobjdeclaration(int symtype)
|
|||||||
continue;
|
continue;
|
||||||
rescantoken();
|
rescantoken();
|
||||||
if (gettoken() != T_RIGHTBRACE) {
|
if (gettoken() != T_RIGHTBRACE) {
|
||||||
scanerror(T_SEMICOLON,
|
scanerror(T_SEMICOLON, "Bad object type definition");
|
||||||
"Bad object type definition");
|
|
||||||
(void) tokenmode(oldmode);
|
(void) tokenmode(oldmode);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -1082,8 +1024,7 @@ getobjdeclaration(int symtype)
|
|||||||
case T_NEWLINE:
|
case T_NEWLINE:
|
||||||
continue;
|
continue;
|
||||||
default:
|
default:
|
||||||
scanerror(T_SEMICOLON,
|
scanerror(T_SEMICOLON, "Bad object type definition");
|
||||||
"Bad object type definition");
|
|
||||||
(void) tokenmode(oldmode);
|
(void) tokenmode(oldmode);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -1132,8 +1073,7 @@ getobjvars(char *name, int symtype)
|
|||||||
|
|
||||||
index = checkobject(name);
|
index = checkobject(name);
|
||||||
if (index < 0) {
|
if (index < 0) {
|
||||||
scanerror(T_SEMICOLON,
|
scanerror(T_SEMICOLON, "Object %s has not been defined yet", name);
|
||||||
"Object %s has not been defined yet", name);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
for (;;) {
|
for (;;) {
|
||||||
@@ -1286,8 +1226,7 @@ creatematrix(void)
|
|||||||
}
|
}
|
||||||
rescantoken();
|
rescantoken();
|
||||||
if (++dim > MAXDIM) {
|
if (++dim > MAXDIM) {
|
||||||
scanerror(T_SEMICOLON,
|
scanerror(T_SEMICOLON, "Only %ld dimensions allowed", MAXDIM);
|
||||||
"Only %ld dimensions allowed", MAXDIM);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
(void) getopassignment();
|
(void) getopassignment();
|
||||||
@@ -1310,8 +1249,7 @@ creatematrix(void)
|
|||||||
/*FALLTHRU*/
|
/*FALLTHRU*/
|
||||||
default:
|
default:
|
||||||
rescantoken();
|
rescantoken();
|
||||||
scanerror(T_SEMICOLON,
|
scanerror(T_SEMICOLON, "Illegal matrix definition");
|
||||||
"Illegal matrix definition");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1366,8 +1304,7 @@ getinitlist(void)
|
|||||||
return index;
|
return index;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
scanerror(T_SEMICOLON,
|
scanerror(T_SEMICOLON, "Bad initialization list");
|
||||||
"Bad initialization list");
|
|
||||||
(void) tokenmode(oldmode);
|
(void) tokenmode(oldmode);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@@ -1383,14 +1320,12 @@ static void
|
|||||||
getcondition(void)
|
getcondition(void)
|
||||||
{
|
{
|
||||||
if (gettoken() != T_LEFTPAREN) {
|
if (gettoken() != T_LEFTPAREN) {
|
||||||
scanerror(T_SEMICOLON,
|
scanerror(T_SEMICOLON, "Missing left parenthesis for condition");
|
||||||
"Missing left parenthesis for condition");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
(void) getexprlist();
|
(void) getexprlist();
|
||||||
if (gettoken() != T_RIGHTPAREN) {
|
if (gettoken() != T_RIGHTPAREN) {
|
||||||
scanerror(T_SEMICOLON,
|
scanerror(T_SEMICOLON, "Missing right parenthesis for condition");
|
||||||
"Missing right parenthesis for condition");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1599,8 +1534,7 @@ getaltcond(void)
|
|||||||
addoplabel(OP_JUMPZ, &altlab);
|
addoplabel(OP_JUMPZ, &altlab);
|
||||||
type = getaltcond();
|
type = getaltcond();
|
||||||
if (gettoken() != T_COLON) {
|
if (gettoken() != T_COLON) {
|
||||||
scanerror(T_SEMICOLON,
|
scanerror(T_SEMICOLON, "Missing colon for conditional expression");
|
||||||
"Missing colon for conditional expression");
|
|
||||||
return EXPR_RVALUE;
|
return EXPR_RVALUE;
|
||||||
}
|
}
|
||||||
addoplabel(OP_JUMP, &donelab);
|
addoplabel(OP_JUMP, &donelab);
|
||||||
@@ -2011,8 +1945,7 @@ getterm(void)
|
|||||||
oldmode = tokenmode(TM_DEFAULT);
|
oldmode = tokenmode(TM_DEFAULT);
|
||||||
type = getexprlist();
|
type = getexprlist();
|
||||||
if (gettoken() != T_RIGHTPAREN)
|
if (gettoken() != T_RIGHTPAREN)
|
||||||
scanerror(T_SEMICOLON,
|
scanerror(T_SEMICOLON, "Missing right parenthesis");
|
||||||
"Missing right parenthesis");
|
|
||||||
(void) tokenmode(oldmode);
|
(void) tokenmode(oldmode);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -2041,8 +1974,7 @@ getterm(void)
|
|||||||
|
|
||||||
default:
|
default:
|
||||||
if (iskeyword(type)) {
|
if (iskeyword(type)) {
|
||||||
scanerror(T_NULL,
|
scanerror(T_NULL, "Expression contains reserved keyword");
|
||||||
"Expression contains reserved keyword");
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
rescantoken();
|
rescantoken();
|
||||||
@@ -2061,9 +1993,7 @@ getterm(void)
|
|||||||
type = 0;
|
type = 0;
|
||||||
break;
|
break;
|
||||||
case T_LEFTPAREN:
|
case T_LEFTPAREN:
|
||||||
scanerror(T_NULL,
|
scanerror(T_NULL, "Function calls not allowed as expressions");
|
||||||
"Function calls not allowed "
|
|
||||||
"as expressions");
|
|
||||||
default:
|
default:
|
||||||
rescantoken();
|
rescantoken();
|
||||||
return type;
|
return type;
|
||||||
@@ -2125,9 +2055,7 @@ getidexpr(BOOL okmat, BOOL autodef)
|
|||||||
type = 0;
|
type = 0;
|
||||||
break;
|
break;
|
||||||
case T_LEFTPAREN:
|
case T_LEFTPAREN:
|
||||||
scanerror(T_NULL,
|
scanerror(T_NULL, "Function calls not allowed as expressions");
|
||||||
"Function calls not allowed "
|
|
||||||
"as expressions");
|
|
||||||
default:
|
default:
|
||||||
rescantoken();
|
rescantoken();
|
||||||
return type;
|
return type;
|
||||||
@@ -2225,31 +2153,11 @@ getshowstatement(void)
|
|||||||
case T_SYMBOL:
|
case T_SYMBOL:
|
||||||
strncpy(name, tokensymbol(), 4);
|
strncpy(name, tokensymbol(), 4);
|
||||||
name[4] = '\0';
|
name[4] = '\0';
|
||||||
/* Yuck! */
|
arg = stringindex("buil\000real\000func\000objf\000conf\000objt\000file\000size\000erro\000cust\000bloc\000cons\000glob\000stat\000numb\000redc\000stri\000lite\000opco\000", name);
|
||||||
arg = stringindex("buil\000"
|
|
||||||
"real\000"
|
|
||||||
"func\000"
|
|
||||||
"objf\000"
|
|
||||||
"conf\000"
|
|
||||||
"objt\000"
|
|
||||||
"file\000"
|
|
||||||
"size\000"
|
|
||||||
"erro\000"
|
|
||||||
"cust\000"
|
|
||||||
"bloc\000"
|
|
||||||
"cons\000"
|
|
||||||
"glob\000"
|
|
||||||
"stat\000"
|
|
||||||
"numb\000"
|
|
||||||
"redc\000"
|
|
||||||
"stri\000"
|
|
||||||
"lite\000"
|
|
||||||
"opco\000", name);
|
|
||||||
if (arg == 19) {
|
if (arg == 19) {
|
||||||
if (gettoken() != T_SYMBOL) {
|
if (gettoken() != T_SYMBOL) {
|
||||||
rescantoken();
|
rescantoken();
|
||||||
scanerror(T_SEMICOLON,
|
scanerror(T_SEMICOLON, "Function name expected");
|
||||||
"Function name expected");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
index = adduserfunc(tokensymbol());
|
index = adduserfunc(tokensymbol());
|
||||||
@@ -2266,11 +2174,9 @@ getshowstatement(void)
|
|||||||
printf("four letters of one of:\n");
|
printf("four letters of one of:\n");
|
||||||
printf("\tblocks, builtin, config, constants, ");
|
printf("\tblocks, builtin, config, constants, ");
|
||||||
printf("custom, errors, files, functions,\n");
|
printf("custom, errors, files, functions,\n");
|
||||||
printf("\tglobaltypes, objfunctions, objtypes, "
|
printf("\tglobaltypes, objfunctions, objtypes, opcodes, sizes, ");
|
||||||
"opcodes, sizes, ");
|
|
||||||
printf("realglobals,\n");
|
printf("realglobals,\n");
|
||||||
printf("\tstatics, numbers, redcdata, "
|
printf("\tstatics, numbers, redcdata, strings, literals\n");
|
||||||
"strings, literals\n");
|
|
||||||
rescantoken();
|
rescantoken();
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@@ -2331,9 +2237,7 @@ getmatargs(void)
|
|||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
rescantoken();
|
rescantoken();
|
||||||
scanerror(T_NULL,
|
scanerror(T_NULL, "Missing right bracket in array reference");
|
||||||
"Missing right bracket in "
|
|
||||||
"array reference");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2417,8 +2321,7 @@ definesymbol(char *name, int symtype)
|
|||||||
return;
|
return;
|
||||||
/*FALLTHRU*/
|
/*FALLTHRU*/
|
||||||
case SYM_PARAM:
|
case SYM_PARAM:
|
||||||
scanerror(T_COMMA,
|
scanerror(T_COMMA, "Variable \"%s\" is already defined", name);
|
||||||
"Variable \"%s\" is already defined", name);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2528,9 +2431,7 @@ getcallargs(char *name)
|
|||||||
case T_COMMA:
|
case T_COMMA:
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
scanerror(T_SEMICOLON,
|
scanerror(T_SEMICOLON, "Missing right parenthesis in function call");
|
||||||
"Missing right parenthesis "
|
|
||||||
"in function call");
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -2574,25 +2475,4 @@ do_changedir(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/* END CODE */
|
||||||
* getshellfile - process the contents of a shellfile
|
|
||||||
*/
|
|
||||||
void
|
|
||||||
getshellfile(char *shellfile)
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
* treat the calc shell script as if we were reading it
|
|
||||||
*/
|
|
||||||
if (!allow_read) {
|
|
||||||
scanerror(T_NULL,
|
|
||||||
"reading of calc shell script \"%s\" "
|
|
||||||
"dislloaed by -m mode\n", shellfile);
|
|
||||||
} else if (opensearchfile(shellfile, NULL, NULL, FALSE) == 0) {
|
|
||||||
getcommands(FALSE);
|
|
||||||
closeinput();
|
|
||||||
} else {
|
|
||||||
scanerror(T_NULL,
|
|
||||||
"Cannot open calc shell script \"%s\"\n", shellfile);
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
64
comfunc.c
64
comfunc.c
@@ -1,35 +1,11 @@
|
|||||||
/*
|
/*
|
||||||
* comfunc - extended precision complex arithmetic non-primitive routines
|
* Copyright (c) 1993 David I. Bell
|
||||||
|
* Permission is granted to use, distribute, or modify this source,
|
||||||
|
* provided that this copyright notice remains intact.
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999 David I. Bell and Ernest Bowen
|
* Extended precision complex arithmetic non-primitive routines
|
||||||
*
|
|
||||||
* Primary author: David I. Bell
|
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: comfunc.c,v 29.1 1999/12/14 09:15:35 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/comfunc.c,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1990/02/15 01:48:13
|
|
||||||
* File existed as early as: before 1990
|
|
||||||
*
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "cmath.h"
|
#include "cmath.h"
|
||||||
|
|
||||||
@@ -378,12 +354,9 @@ croot(COMPLEX *c, NUMBER *q, NUMBER *epsilon)
|
|||||||
if (qistwo(q))
|
if (qistwo(q))
|
||||||
return csqrt(c, epsilon, 24L);
|
return csqrt(c, epsilon, 24L);
|
||||||
if (cisreal(c) && !qisneg(c->real)) {
|
if (cisreal(c) && !qisneg(c->real)) {
|
||||||
tmp1 = qroot(c->real, q, epsilon);
|
|
||||||
if (tmp1 == NULL)
|
|
||||||
return NULL;
|
|
||||||
r = comalloc();
|
r = comalloc();
|
||||||
qfree(r->real);
|
qfree(r->real);
|
||||||
r->real = tmp1;
|
r->real = qroot(c->real, q, epsilon);
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
@@ -402,14 +375,12 @@ croot(COMPLEX *c, NUMBER *q, NUMBER *epsilon)
|
|||||||
root = qroot(a2pb2, tmp1, epsilon2);
|
root = qroot(a2pb2, tmp1, epsilon2);
|
||||||
qfree(a2pb2);
|
qfree(a2pb2);
|
||||||
qfree(tmp1);
|
qfree(tmp1);
|
||||||
qfree(epsilon2);
|
|
||||||
if (root == NULL)
|
|
||||||
return NULL;
|
|
||||||
m = qilog2(root);
|
m = qilog2(root);
|
||||||
if (m < n) {
|
if (m < n) {
|
||||||
qfree(root);
|
qfree(root);
|
||||||
return clink(&_czero_);
|
return clink(&_czero_);
|
||||||
}
|
}
|
||||||
|
qfree(epsilon2);
|
||||||
epsilon2 = qbitvalue(n - m - 4);
|
epsilon2 = qbitvalue(n - m - 4);
|
||||||
tmp1 = qatan2(c->imag, c->real, epsilon2);
|
tmp1 = qatan2(c->imag, c->real, epsilon2);
|
||||||
qfree(epsilon2);
|
qfree(epsilon2);
|
||||||
@@ -439,9 +410,6 @@ cexp(COMPLEX *c, NUMBER *epsilon)
|
|||||||
/*NOTREACHED*/
|
/*NOTREACHED*/
|
||||||
}
|
}
|
||||||
if (cisreal(c)) {
|
if (cisreal(c)) {
|
||||||
tmp1 = qexp(c->real, epsilon);
|
|
||||||
if (tmp1 == NULL)
|
|
||||||
return NULL;
|
|
||||||
r = comalloc();
|
r = comalloc();
|
||||||
qfree(r->real);
|
qfree(r->real);
|
||||||
r->real = qexp(c->real, epsilon);
|
r->real = qexp(c->real, epsilon);
|
||||||
@@ -451,8 +419,6 @@ cexp(COMPLEX *c, NUMBER *epsilon)
|
|||||||
epsilon1 = qbitvalue(n - 2);
|
epsilon1 = qbitvalue(n - 2);
|
||||||
tmp1 = qexp(c->real, epsilon1);
|
tmp1 = qexp(c->real, epsilon1);
|
||||||
qfree(epsilon1);
|
qfree(epsilon1);
|
||||||
if (tmp1 == NULL)
|
|
||||||
return NULL;
|
|
||||||
if (qiszero(tmp1)) {
|
if (qiszero(tmp1)) {
|
||||||
qfree(tmp1);
|
qfree(tmp1);
|
||||||
return clink(&_czero_);
|
return clink(&_czero_);
|
||||||
@@ -548,8 +514,6 @@ ccos(COMPLEX *c, NUMBER *epsilon)
|
|||||||
ctmp2 = cexp(ctmp1, epsilon1);
|
ctmp2 = cexp(ctmp1, epsilon1);
|
||||||
comfree(ctmp1);
|
comfree(ctmp1);
|
||||||
qfree(epsilon1);
|
qfree(epsilon1);
|
||||||
if (ctmp2 == NULL)
|
|
||||||
return NULL;
|
|
||||||
if (ciszero(ctmp2)) {
|
if (ciszero(ctmp2)) {
|
||||||
comfree(ctmp2);
|
comfree(ctmp2);
|
||||||
return clink(&_czero_);
|
return clink(&_czero_);
|
||||||
@@ -600,8 +564,6 @@ csin(COMPLEX *c, NUMBER *epsilon)
|
|||||||
ctmp2 = cexp(ctmp1, epsilon1);
|
ctmp2 = cexp(ctmp1, epsilon1);
|
||||||
comfree(ctmp1);
|
comfree(ctmp1);
|
||||||
qfree(epsilon1);
|
qfree(epsilon1);
|
||||||
if (ctmp2 == NULL)
|
|
||||||
return NULL;
|
|
||||||
if (ciszero(ctmp2)) {
|
if (ciszero(ctmp2)) {
|
||||||
comfree(ctmp2);
|
comfree(ctmp2);
|
||||||
return clink(&_czero_);
|
return clink(&_czero_);
|
||||||
@@ -632,13 +594,9 @@ ccosh(COMPLEX *c, NUMBER *epsilon)
|
|||||||
COMPLEX *tmp1, *tmp2, *tmp3;
|
COMPLEX *tmp1, *tmp2, *tmp3;
|
||||||
|
|
||||||
tmp1 = cexp(c, epsilon);
|
tmp1 = cexp(c, epsilon);
|
||||||
if (tmp1 == NULL)
|
|
||||||
return NULL;
|
|
||||||
tmp2 = cneg(c);
|
tmp2 = cneg(c);
|
||||||
tmp3 = cexp(tmp2, epsilon);
|
tmp3 = cexp(tmp2, epsilon);
|
||||||
comfree(tmp2);
|
comfree(tmp2);
|
||||||
if (tmp3 == NULL)
|
|
||||||
return NULL;
|
|
||||||
tmp2 = cadd(tmp1, tmp3);
|
tmp2 = cadd(tmp1, tmp3);
|
||||||
comfree(tmp1);
|
comfree(tmp1);
|
||||||
comfree(tmp3);
|
comfree(tmp3);
|
||||||
@@ -654,13 +612,9 @@ csinh(COMPLEX *c, NUMBER *epsilon)
|
|||||||
COMPLEX *tmp1, *tmp2, *tmp3;
|
COMPLEX *tmp1, *tmp2, *tmp3;
|
||||||
|
|
||||||
tmp1 = cexp(c, epsilon);
|
tmp1 = cexp(c, epsilon);
|
||||||
if (tmp1 == NULL)
|
|
||||||
return NULL;
|
|
||||||
tmp2 = cneg(c);
|
tmp2 = cneg(c);
|
||||||
tmp3 = cexp(tmp2, epsilon);
|
tmp3 = cexp(tmp2, epsilon);
|
||||||
comfree(tmp2);
|
comfree(tmp2);
|
||||||
if (tmp3 == NULL)
|
|
||||||
return NULL;
|
|
||||||
tmp2 = csub(tmp1, tmp3);
|
tmp2 = csub(tmp1, tmp3);
|
||||||
comfree(tmp1);
|
comfree(tmp1);
|
||||||
comfree(tmp3);
|
comfree(tmp3);
|
||||||
@@ -950,8 +904,6 @@ cgd(COMPLEX *c, NUMBER *epsilon)
|
|||||||
tmp1 = neg ? cneg(c) : clink(c);
|
tmp1 = neg ? cneg(c) : clink(c);
|
||||||
tmp2 = cexp(tmp1, epsilon);
|
tmp2 = cexp(tmp1, epsilon);
|
||||||
comfree(tmp1);
|
comfree(tmp1);
|
||||||
if (tmp2 == NULL)
|
|
||||||
return NULL;
|
|
||||||
tmp1 = cmul(&_conei_, tmp2);
|
tmp1 = cmul(&_conei_, tmp2);
|
||||||
tmp3 = cadd(&_conei_, tmp2);
|
tmp3 = cadd(&_conei_, tmp2);
|
||||||
comfree(tmp2);
|
comfree(tmp2);
|
||||||
@@ -1011,11 +963,11 @@ cpolar(NUMBER *q1, NUMBER *q2, NUMBER *epsilon)
|
|||||||
/*NOTREACHED*/
|
/*NOTREACHED*/
|
||||||
}
|
}
|
||||||
if (qiszero(q1))
|
if (qiszero(q1))
|
||||||
return clink(&_czero_);
|
return qlink(&_czero_);
|
||||||
m = qilog2(q1) + 1;
|
m = qilog2(q1) + 1;
|
||||||
n = qilog2(epsilon);
|
n = qilog2(epsilon);
|
||||||
if (m < n)
|
if (m < n)
|
||||||
return clink(&_czero_);
|
return qlink(&_czero_);
|
||||||
r = comalloc();
|
r = comalloc();
|
||||||
if (qiszero(q2)) {
|
if (qiszero(q2)) {
|
||||||
qfree(r->real);
|
qfree(r->real);
|
||||||
|
32
commath.c
32
commath.c
@@ -1,33 +1,11 @@
|
|||||||
/*
|
/*
|
||||||
* commath - extended precision complex arithmetic primitive routines
|
* Copyright (c) 1993 David I. Bell
|
||||||
|
* Permission is granted to use, distribute, or modify this source,
|
||||||
|
* provided that this copyright notice remains intact.
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999 David I. Bell
|
* Extended precision complex arithmetic primitive routines
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: commath.c,v 29.1 1999/12/14 09:15:35 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/commath.c,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1990/02/15 01:48:10
|
|
||||||
* File existed as early as: before 1990
|
|
||||||
*
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#include "cmath.h"
|
#include "cmath.h"
|
||||||
|
|
||||||
|
|
||||||
@@ -627,3 +605,5 @@ comfree(COMPLEX *c)
|
|||||||
qfree(c->imag);
|
qfree(c->imag);
|
||||||
free(c);
|
free(c);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* END CODE */
|
||||||
|
169
config.c
169
config.c
@@ -1,35 +1,11 @@
|
|||||||
/*
|
/*
|
||||||
* config - configuration routines
|
* Copyright (c) 1997 David I. Bell
|
||||||
|
* Permission is granted to use, distribute, or modify this source,
|
||||||
|
* provided that this copyright notice remains intact.
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999 David I. Bell and Landon Curt Noll
|
* Configuration routines.
|
||||||
*
|
|
||||||
* Primary author: David I. Bell
|
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.2 $
|
|
||||||
* @(#) $Id: config.c,v 29.2 1999/12/14 19:37:46 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/config.c,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1991/07/20 00:21:56
|
|
||||||
* File existed as early as: 1991
|
|
||||||
*
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include "calc.h"
|
#include "calc.h"
|
||||||
#include "token.h"
|
#include "token.h"
|
||||||
@@ -39,11 +15,6 @@
|
|||||||
#include "config.h"
|
#include "config.h"
|
||||||
#include "string.h"
|
#include "string.h"
|
||||||
|
|
||||||
#include "have_strdup.h"
|
|
||||||
#if !defined(HAVE_STRDUP)
|
|
||||||
# define strdup(x) calc_strdup((CONST char *)(x))
|
|
||||||
#endif /* HAVE_STRDUP */
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Table of configuration types that can be set or read.
|
* Table of configuration types that can be set or read.
|
||||||
@@ -81,16 +52,12 @@ NAMETYPE configs[] = {
|
|||||||
{"blkverbose", CONFIG_BLKVERBOSE},
|
{"blkverbose", CONFIG_BLKVERBOSE},
|
||||||
{"blkbase", CONFIG_BLKBASE},
|
{"blkbase", CONFIG_BLKBASE},
|
||||||
{"blkfmt", CONFIG_BLKFMT},
|
{"blkfmt", CONFIG_BLKFMT},
|
||||||
{"resource_debug", CONFIG_RESOURCE_DEBUG},
|
{"lib_debug", CONFIG_LIB_DEBUG},
|
||||||
{"lib_debug", CONFIG_RESOURCE_DEBUG},
|
|
||||||
{"calc_debug", CONFIG_CALC_DEBUG},
|
{"calc_debug", CONFIG_CALC_DEBUG},
|
||||||
{"user_debug", CONFIG_USER_DEBUG},
|
{"user_debug", CONFIG_USER_DEBUG},
|
||||||
{"verbose_quit",CONFIG_VERBOSE_QUIT},
|
{"verbose_quit",CONFIG_VERBOSE_QUIT},
|
||||||
{"ctrl_d", CONFIG_CTRL_D},
|
{"ctrl_d", CONFIG_CTRL_D},
|
||||||
{"ctrl-d", CONFIG_CTRL_D}, /* alias for ctrl_d */
|
{"ctrl-d", CONFIG_CTRL_D}, /* alias for ctrl_d */
|
||||||
{"program", CONFIG_PROGRAM},
|
|
||||||
{"basename", CONFIG_BASENAME},
|
|
||||||
{"version", CONFIG_VERSION},
|
|
||||||
{NULL, 0}
|
{NULL, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -130,13 +97,10 @@ CONFIG oldstd = { /* backward compatible standard configuration */
|
|||||||
BLK_BASE_HEX, /* block octet print base */
|
BLK_BASE_HEX, /* block octet print base */
|
||||||
BLK_FMT_HD_STYLE, /* block output format */
|
BLK_FMT_HD_STYLE, /* block output format */
|
||||||
0, /* internal calc debug level */
|
0, /* internal calc debug level */
|
||||||
3, /* calc resource file debug level */
|
3, /* calc library debug level */
|
||||||
0, /* user defined debug level */
|
0, /* user defined debug level */
|
||||||
TRUE, /* print Quit or abort executed messages */
|
TRUE, /* print Quit or abort executed messages */
|
||||||
CTRL_D_VIRGIN_EOF, /* ^D only exits on virgin lines */
|
CTRL_D_VIRGIN_EOF /* ^D only exits on virgin lines */
|
||||||
NULL, /* our name */
|
|
||||||
NULL, /* basename of our name */
|
|
||||||
NULL /* version */
|
|
||||||
};
|
};
|
||||||
CONFIG newstd = { /* new non-backward compatible configuration */
|
CONFIG newstd = { /* new non-backward compatible configuration */
|
||||||
MODE_INITIAL, /* current output mode */
|
MODE_INITIAL, /* current output mode */
|
||||||
@@ -170,13 +134,10 @@ CONFIG newstd = { /* new non-backward compatible configuration */
|
|||||||
BLK_BASE_HEX, /* block octet print base */
|
BLK_BASE_HEX, /* block octet print base */
|
||||||
BLK_FMT_HD_STYLE, /* block output format */
|
BLK_FMT_HD_STYLE, /* block output format */
|
||||||
0, /* internal calc debug level */
|
0, /* internal calc debug level */
|
||||||
3, /* calc resource file debug level */
|
3, /* calc library debug level */
|
||||||
0, /* user defined debug level */
|
0, /* user defined debug level */
|
||||||
TRUE, /* print Quit or abort executed messages */
|
TRUE, /* print Quit or abort executed messages */
|
||||||
CTRL_D_VIRGIN_EOF, /* ^D only exits on virgin lines */
|
CTRL_D_VIRGIN_EOF /* ^D only exits on virgin lines */
|
||||||
NULL, /* our name */
|
|
||||||
NULL, /* basename of our name */
|
|
||||||
NULL /* version */
|
|
||||||
};
|
};
|
||||||
CONFIG *conf = NULL; /* loaded in at startup - current configuration */
|
CONFIG *conf = NULL; /* loaded in at startup - current configuration */
|
||||||
|
|
||||||
@@ -265,19 +226,19 @@ static NAMETYPE ctrl_d[] = {
|
|||||||
/*
|
/*
|
||||||
* Possible binary config state values
|
* Possible binary config state values
|
||||||
*/
|
*/
|
||||||
#define TRUE_STRING "true"
|
#define TRUE_STRING "on"
|
||||||
#define FALSE_STRING "false"
|
#define FALSE_STRING "off"
|
||||||
static NAMETYPE truth[] = {
|
static NAMETYPE truth[] = {
|
||||||
{TRUE_STRING, TRUE},
|
{TRUE_STRING, TRUE},
|
||||||
|
{"true", TRUE},
|
||||||
{"t", TRUE},
|
{"t", TRUE},
|
||||||
{"on", TRUE},
|
|
||||||
{"yes", TRUE},
|
{"yes", TRUE},
|
||||||
{"y", TRUE},
|
{"y", TRUE},
|
||||||
{"set", TRUE},
|
{"set", TRUE},
|
||||||
{"1", TRUE},
|
{"1", TRUE},
|
||||||
{FALSE_STRING, FALSE},
|
{FALSE_STRING, FALSE},
|
||||||
|
{"false", FALSE},
|
||||||
{"f", FALSE},
|
{"f", FALSE},
|
||||||
{"off", FALSE},
|
|
||||||
{"no", FALSE},
|
{"no", FALSE},
|
||||||
{"n", FALSE},
|
{"n", FALSE},
|
||||||
{"unset", FALSE},
|
{"unset", FALSE},
|
||||||
@@ -836,18 +797,18 @@ setconfig(int type, VALUE *vp)
|
|||||||
conf->calc_debug = temp;
|
conf->calc_debug = temp;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CONFIG_RESOURCE_DEBUG:
|
case CONFIG_LIB_DEBUG:
|
||||||
if (vp->v_type != V_NUM) {
|
if (vp->v_type != V_NUM) {
|
||||||
math_error("Non numeric for resource_debug");
|
math_error("Non numeric for lib_debug");
|
||||||
/*NOTREACHED*/
|
/*NOTREACHED*/
|
||||||
}
|
}
|
||||||
q = vp->v_num;
|
q = vp->v_num;
|
||||||
temp = qtoi(q);
|
temp = qtoi(q);
|
||||||
if (qisfrac(q) || !zistiny(q->num)) {
|
if (qisfrac(q) || !zistiny(q->num)) {
|
||||||
math_error("Illegal resource_debug parameter value");
|
math_error("Illegal lib_debug parameter value");
|
||||||
/*NOTREACHED*/
|
/*NOTREACHED*/
|
||||||
}
|
}
|
||||||
conf->resource_debug = temp;
|
conf->lib_debug = temp;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CONFIG_USER_DEBUG:
|
case CONFIG_USER_DEBUG:
|
||||||
@@ -893,18 +854,6 @@ setconfig(int type, VALUE *vp)
|
|||||||
conf->ctrl_d = temp;
|
conf->ctrl_d = temp;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CONFIG_PROGRAM:
|
|
||||||
math_error("The program config parameter is read-only");
|
|
||||||
/*NOTREACHED*/
|
|
||||||
|
|
||||||
case CONFIG_BASENAME:
|
|
||||||
math_error("The program config parameter is read-only");
|
|
||||||
/*NOTREACHED*/
|
|
||||||
|
|
||||||
case CONFIG_VERSION:
|
|
||||||
math_error("The program config parameter is read-only");
|
|
||||||
/*NOTREACHED*/
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
math_error("Setting illegal config parameter");
|
math_error("Setting illegal config parameter");
|
||||||
/*NOTREACHED*/
|
/*NOTREACHED*/
|
||||||
@@ -953,23 +902,18 @@ config_copy(CONFIG *src)
|
|||||||
* clone the pointer values
|
* clone the pointer values
|
||||||
*/
|
*/
|
||||||
dest->epsilon = qlink(src->epsilon);
|
dest->epsilon = qlink(src->epsilon);
|
||||||
dest->prompt1 = strdup(src->prompt1);
|
dest->prompt1 = (char *)malloc(strlen(src->prompt1)+1);
|
||||||
dest->prompt2 = strdup(src->prompt2);
|
if (dest->prompt1 == NULL) {
|
||||||
if (src->program == NULL) {
|
math_error("cannot dup prompt1 for new CONFIG value");
|
||||||
dest->program = strdup(program);
|
/*NOTREACHED*/
|
||||||
} else {
|
|
||||||
dest->program = strdup(src->program);
|
|
||||||
}
|
}
|
||||||
if (src->base_name == NULL) {
|
strcpy(dest->prompt1, src->prompt1);
|
||||||
dest->base_name = strdup(base_name);
|
dest->prompt2 = (char *)malloc(strlen(src->prompt2)+1);
|
||||||
} else {
|
if (dest->prompt2 == NULL) {
|
||||||
dest->base_name = strdup(src->base_name);
|
math_error("cannot dup prompt2 for new CONFIG value");
|
||||||
}
|
/*NOTREACHED*/
|
||||||
if (src->version == NULL) {
|
|
||||||
dest->version = strdup(version());
|
|
||||||
} else {
|
|
||||||
dest->version = strdup(src->version);
|
|
||||||
}
|
}
|
||||||
|
strcpy(dest->prompt2, src->prompt2);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* return the new value
|
* return the new value
|
||||||
@@ -1006,15 +950,6 @@ config_free(CONFIG *cfg)
|
|||||||
if (cfg->prompt2 != NULL) {
|
if (cfg->prompt2 != NULL) {
|
||||||
free(cfg->prompt2);
|
free(cfg->prompt2);
|
||||||
}
|
}
|
||||||
if (cfg->program != NULL) {
|
|
||||||
free(cfg->program);
|
|
||||||
}
|
|
||||||
if (cfg->base_name != NULL) {
|
|
||||||
free(cfg->base_name);
|
|
||||||
}
|
|
||||||
if (cfg->version != NULL) {
|
|
||||||
free(cfg->version);
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* free the CONFIG value itself
|
* free the CONFIG value itself
|
||||||
@@ -1226,8 +1161,8 @@ config_value(CONFIG *cfg, int type, VALUE *vp)
|
|||||||
i = cfg->calc_debug;
|
i = cfg->calc_debug;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CONFIG_RESOURCE_DEBUG:
|
case CONFIG_LIB_DEBUG:
|
||||||
i = cfg->resource_debug;
|
i = cfg->lib_debug;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case CONFIG_USER_DEBUG:
|
case CONFIG_USER_DEBUG:
|
||||||
@@ -1253,33 +1188,6 @@ config_value(CONFIG *cfg, int type, VALUE *vp)
|
|||||||
vp->v_str = makenewstring(p);
|
vp->v_str = makenewstring(p);
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case CONFIG_PROGRAM:
|
|
||||||
vp->v_type = V_STR;
|
|
||||||
if (cfg->base_name == NULL) {
|
|
||||||
vp->v_str = makestring(strdup(program));
|
|
||||||
} else {
|
|
||||||
vp->v_str = makenewstring(cfg->program);
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
|
|
||||||
case CONFIG_BASENAME:
|
|
||||||
vp->v_type = V_STR;
|
|
||||||
if (cfg->base_name == NULL) {
|
|
||||||
vp->v_str = makestring(strdup(base_name));
|
|
||||||
} else {
|
|
||||||
vp->v_str = makenewstring(cfg->base_name);
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
|
|
||||||
case CONFIG_VERSION:
|
|
||||||
vp->v_type = V_STR;
|
|
||||||
if (cfg->version == NULL) {
|
|
||||||
vp->v_str = makestring(strdup(version()));
|
|
||||||
} else {
|
|
||||||
vp->v_str = makenewstring(cfg->version);
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
math_error("Getting illegal CONFIG element");
|
math_error("Getting illegal CONFIG element");
|
||||||
/*NOTREACHED*/
|
/*NOTREACHED*/
|
||||||
@@ -1354,23 +1262,8 @@ config_cmp(CONFIG *cfg1, CONFIG *cfg2)
|
|||||||
cfg1->blkbase != cfg2->blkbase ||
|
cfg1->blkbase != cfg2->blkbase ||
|
||||||
cfg1->blkfmt != cfg2->blkfmt ||
|
cfg1->blkfmt != cfg2->blkfmt ||
|
||||||
cfg1->calc_debug != cfg2->calc_debug ||
|
cfg1->calc_debug != cfg2->calc_debug ||
|
||||||
cfg1->resource_debug != cfg2->resource_debug ||
|
cfg1->lib_debug != cfg2->lib_debug ||
|
||||||
cfg1->user_debug != cfg2->user_debug ||
|
cfg1->user_debug != cfg2->user_debug ||
|
||||||
cfg1->verbose_quit != cfg2->verbose_quit ||
|
cfg1->verbose_quit != cfg2->verbose_quit ||
|
||||||
cfg1->ctrl_d != cfg2->ctrl_d ||
|
cfg1->ctrl_d != cfg2->ctrl_d;
|
||||||
|
|
||||||
(cfg1->program == NULL && cfg2->program != NULL) ||
|
|
||||||
(cfg1->program != NULL && cfg2->program == NULL) ||
|
|
||||||
(cfg1->program != NULL && cfg2->program != NULL &&
|
|
||||||
strcmp(cfg1->program, cfg2->program) != 0) ||
|
|
||||||
|
|
||||||
(cfg1->base_name == NULL && cfg2->base_name != NULL) ||
|
|
||||||
(cfg1->base_name != NULL && cfg2->base_name == NULL) ||
|
|
||||||
(cfg1->base_name != NULL && cfg2->base_name != NULL &&
|
|
||||||
strcmp(cfg1->base_name, cfg2->base_name) != 0) ||
|
|
||||||
|
|
||||||
(cfg1->version == NULL && cfg2->version != NULL) ||
|
|
||||||
(cfg1->version != NULL && cfg2->version == NULL) ||
|
|
||||||
(cfg1->version != NULL && cfg2->version != NULL &&
|
|
||||||
strcmp(cfg1->version, cfg2->version) != 0);
|
|
||||||
}
|
}
|
||||||
|
72
config.h
72
config.h
@@ -1,33 +1,37 @@
|
|||||||
/*
|
/*
|
||||||
* config - configuration routines
|
* Copyright (c) 1997 by Landon Curt Noll. All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999 Landon Curt Noll and David I. Bell
|
* Permission to use, copy, modify, and distribute this software and
|
||||||
|
* its documentation for any purpose and without fee is hereby granted,
|
||||||
|
* provided that the above copyright, this permission notice and text
|
||||||
|
* this comment, and the disclaimer below appear in all of the following:
|
||||||
*
|
*
|
||||||
* Primary author: Landon Curt Noll
|
* supporting documentation
|
||||||
|
* source copies
|
||||||
|
* source works derived from this source
|
||||||
|
* binaries derived from this source or from derived source
|
||||||
*
|
*
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
* LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
|
||||||
* as published by the Free Software Foundation.
|
* EVENT SHALL LANDON CURT NOLL BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
||||||
|
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
|
||||||
|
* USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||||
|
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
*
|
*
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
* Prior to calc 2.9.3t9, these routines existed as a calc library called
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
* cryrand.cal. They have been rewritten in C for performance as well
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
* as to make them available directly from libcalc.a.
|
||||||
* Public License for more details.
|
|
||||||
*
|
*
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
* Comments, suggestions, bug fixes and questions about these routines
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
* are welcome. Send EMail to the address given below.
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
*
|
||||||
* @(#) $Revision: 29.2 $
|
* Happy bit twiddling,
|
||||||
* @(#) $Id: config.h,v 29.2 1999/12/14 19:37:46 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/config.h,v $
|
|
||||||
*
|
*
|
||||||
* Under source code control: 1995/11/01 22:20:17
|
* Landon Curt Noll
|
||||||
* File existed as early as: 1995
|
* http://reality.sgi.com/chongo/
|
||||||
*
|
*
|
||||||
* chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
* chongo <was here> /\../\
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
@@ -73,15 +77,11 @@
|
|||||||
#define CONFIG_BLKVERBOSE 27
|
#define CONFIG_BLKVERBOSE 27
|
||||||
#define CONFIG_BLKBASE 28
|
#define CONFIG_BLKBASE 28
|
||||||
#define CONFIG_BLKFMT 29
|
#define CONFIG_BLKFMT 29
|
||||||
#define CONFIG_RESOURCE_DEBUG 30
|
#define CONFIG_LIB_DEBUG 30
|
||||||
#define CONFIG_LIB_DEBUG CONFIG_RESOURCE_DEBUG
|
|
||||||
#define CONFIG_CALC_DEBUG 31
|
#define CONFIG_CALC_DEBUG 31
|
||||||
#define CONFIG_USER_DEBUG 32
|
#define CONFIG_USER_DEBUG 32
|
||||||
#define CONFIG_VERBOSE_QUIT 33
|
#define CONFIG_VERBOSE_QUIT 33
|
||||||
#define CONFIG_CTRL_D 34
|
#define CONFIG_CTRL_D 34
|
||||||
#define CONFIG_PROGRAM 35
|
|
||||||
#define CONFIG_BASENAME 36
|
|
||||||
#define CONFIG_VERSION 37
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -104,8 +104,7 @@
|
|||||||
* quickhash.c - config_hash()
|
* quickhash.c - config_hash()
|
||||||
* hash.c - hash_value()
|
* hash.c - hash_value()
|
||||||
* config.c - configs[], oldstd, newstd, setconfig(),
|
* config.c - configs[], oldstd, newstd, setconfig(),
|
||||||
* config_value(), config_cmp(),
|
* config_value(), config_cmp()
|
||||||
* and perhaps config_copy(), config_free()
|
|
||||||
* config.h - CONFIG_XYZ_SYMBOL (see above)
|
* config.h - CONFIG_XYZ_SYMBOL (see above)
|
||||||
*/
|
*/
|
||||||
struct config {
|
struct config {
|
||||||
@@ -140,24 +139,21 @@ struct config {
|
|||||||
int blkbase; /* block output base */
|
int blkbase; /* block output base */
|
||||||
int blkfmt; /* block output style */
|
int blkfmt; /* block output style */
|
||||||
long calc_debug; /* internal debug, see CALC_DEBUG_XXX below */
|
long calc_debug; /* internal debug, see CALC_DEBUG_XXX below */
|
||||||
long resource_debug; /* resource debug, see RSCDBG_XXX below */
|
long lib_debug; /* library debug, see LIB_DEBUG_XXX below */
|
||||||
long user_debug; /* user defined debug value: 0 default */
|
long user_debug; /* user defined debug value: 0 default */
|
||||||
BOOL verbose_quit; /* TRUE => print Quit or abort executed msg */
|
BOOL verbose_quit; /* TRUE => print Quit or abort executed msg */
|
||||||
int ctrl_d; /* see CTRL_D_xyz below */
|
int ctrl_d; /* see CTRL_D_xyz below */
|
||||||
char *program; /* our name */
|
|
||||||
char *base_name; /* basename of our name */
|
|
||||||
char *version; /* calc version string */
|
|
||||||
};
|
};
|
||||||
typedef struct config CONFIG;
|
typedef struct config CONFIG;
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* resource_debug bit masks
|
* lib_debug bit masks
|
||||||
*/
|
*/
|
||||||
#define RSCDBG_STDIN_FUNC (0x00000001) /* interactive func define debug */
|
#define LIBDBG_STDIN_FUNC (0x00000001) /* interactive func define debug */
|
||||||
#define RSCDBG_FILE_FUNC (0x00000002) /* file read func define debug */
|
#define LIBDBG_FILE_FUNC (0x00000002) /* file read func define debug */
|
||||||
#define RSCDBG_FUNC_INFO (0x00000004) /* print extra info for show func */
|
#define LIBDBG_FUNC_INFO (0x00000004) /* print extra info for show func */
|
||||||
#define RSCDBG_MASK (0x00000007)
|
#define LIBDBG_MASK (0x00000007)
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -186,7 +182,7 @@ extern CONFIG *conf; /* current configuration */
|
|||||||
extern CONFIG oldstd; /* backward compatible standard configuration */
|
extern CONFIG oldstd; /* backward compatible standard configuration */
|
||||||
extern CONFIG newstd; /* new non-backward compatible configuration */
|
extern CONFIG newstd; /* new non-backward compatible configuration */
|
||||||
extern char *calc_debug; /* !=NULL => value of config("calc_debug") */
|
extern char *calc_debug; /* !=NULL => value of config("calc_debug") */
|
||||||
extern char *resource_debug; /* !=NULL => config("resource_debug") value */
|
extern char *lib_debug; /* !=NULL => value of config("lib_debug") */
|
||||||
extern char *user_debug; /* !=NULL => value of config("user_debug") */
|
extern char *user_debug; /* !=NULL => value of config("user_debug") */
|
||||||
|
|
||||||
|
|
||||||
|
30
const.c
30
const.c
@@ -1,33 +1,11 @@
|
|||||||
/*
|
/*
|
||||||
* const - constant number storage module
|
* Copyright (c) 1997 David I. Bell
|
||||||
|
* Permission is granted to use, distribute, or modify this source,
|
||||||
|
* provided that this copyright notice remains intact.
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999 David I. Bell
|
* Constant number storage module.
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: const.c,v 29.1 1999/12/14 09:15:35 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/const.c,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1990/02/15 01:48:14
|
|
||||||
* File existed as early as: before 1990
|
|
||||||
*
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include "calc.h"
|
#include "calc.h"
|
||||||
#include "qmath.h"
|
#include "qmath.h"
|
||||||
|
247
cscript/Makefile
247
cscript/Makefile
@@ -1,247 +0,0 @@
|
|||||||
#
|
|
||||||
# cscript - makefile for calc shell script files
|
|
||||||
#
|
|
||||||
# Copyright (C) 1999 Landon Curt Noll
|
|
||||||
#
|
|
||||||
# Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
# the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
# as published by the Free Software Foundation.
|
|
||||||
#
|
|
||||||
# Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
# Public License for more details.
|
|
||||||
#
|
|
||||||
# A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
# distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
# received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
#
|
|
||||||
# @(#) $Revision: 29.3 $
|
|
||||||
# @(#) $Id: Makefile,v 29.3 1999/12/14 19:30:19 chongo Exp $
|
|
||||||
# @(#) $Source: /usr/local/src/cmd/calc/cscript/RCS/Makefile,v $
|
|
||||||
#
|
|
||||||
# Under source code control: 1999/11/29 11:10:26
|
|
||||||
# File existed as early as: 1999
|
|
||||||
#
|
|
||||||
# chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
# Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
#
|
|
||||||
# calculator by David I. Bell with help/mods from others
|
|
||||||
# Makefile by Landon Curt Noll
|
|
||||||
|
|
||||||
|
|
||||||
# required vars
|
|
||||||
#
|
|
||||||
SHELL= /bin/sh
|
|
||||||
MAKE_FILE = Makefile
|
|
||||||
|
|
||||||
# Normally, the upper level makefile will set these values. We provide
|
|
||||||
# a default here just in case you want to build from this directory.
|
|
||||||
#
|
|
||||||
BINDIR= /usr/local/bin
|
|
||||||
#BINDIR= /usr/bin
|
|
||||||
#BINDIR= /usr/contrib/bin
|
|
||||||
#
|
|
||||||
SCRIPTDIR= ${BINDIR}/cscript
|
|
||||||
|
|
||||||
# Makefile debug
|
|
||||||
#
|
|
||||||
# Q=@ do not echo internal makefile actions (quiet mode)
|
|
||||||
# Q= echo internal makefile actions (debug / verbose mode)
|
|
||||||
#
|
|
||||||
#Q=
|
|
||||||
Q=@
|
|
||||||
|
|
||||||
# standard tools
|
|
||||||
#
|
|
||||||
CHMOD= chmod
|
|
||||||
SED= sed
|
|
||||||
SORT= sort
|
|
||||||
FMT= fmt
|
|
||||||
|
|
||||||
# The ${SCRIPT} list is the list of calc shell script files (without the .calc
|
|
||||||
# extension) which will be installed.
|
|
||||||
#
|
|
||||||
# The ${SCRIPT_SRC} is built from ${SCRIPT} and has the .calc extensions.
|
|
||||||
#
|
|
||||||
# This list is prodiced by the detaillist rule when no WARNINGS are detected.
|
|
||||||
# To add a script:
|
|
||||||
#
|
|
||||||
# 1) Name the file with a .calc filename extension
|
|
||||||
# 2) Place that file under RCS control
|
|
||||||
# 3) Add the name, without the .calc extension to the ${SCRIPT} below
|
|
||||||
# 4) Write out this Makefile
|
|
||||||
# 5) Replace the ${SCRIPT} and ${SCRIPT_SRC} lines with the output of:
|
|
||||||
#
|
|
||||||
# make detaillist
|
|
||||||
#
|
|
||||||
SCRIPT= mersenne piforever plus simple
|
|
||||||
|
|
||||||
SCRIPT_SRC= mersenne.calc piforever.calc plus.calc simple.calc
|
|
||||||
|
|
||||||
# These files are found (but not built) in the distribution
|
|
||||||
#
|
|
||||||
DISTLIST= ${SCRIPT_SRC} ${MAKE_FILE}
|
|
||||||
|
|
||||||
# These files are used to make (but not built) a calc .a library
|
|
||||||
#
|
|
||||||
CALCLIBLIST=
|
|
||||||
|
|
||||||
# The reason for this Makefile
|
|
||||||
#
|
|
||||||
all: ${SCRIPT} ${SCRIPT_SRC} .all
|
|
||||||
|
|
||||||
# used by the upper level Makefile to determine of we have done all
|
|
||||||
#
|
|
||||||
# NOTE: Due to bogus shells found on one common system we must have
|
|
||||||
# an non-emoty else clause for every if condition. *sigh*
|
|
||||||
#
|
|
||||||
.all:
|
|
||||||
rm -f .all
|
|
||||||
touch .all
|
|
||||||
|
|
||||||
##
|
|
||||||
#
|
|
||||||
# File list generation. You can ignore this section.
|
|
||||||
#
|
|
||||||
#
|
|
||||||
# We will form the names of source files as if they were in a
|
|
||||||
# sub-directory called calc/cscript.
|
|
||||||
#
|
|
||||||
##
|
|
||||||
|
|
||||||
distlist: ${DISTLIST}
|
|
||||||
${Q}for i in ${DISTLIST}; do \
|
|
||||||
echo cscript/$$i; \
|
|
||||||
done | ${SORT}
|
|
||||||
|
|
||||||
distdir:
|
|
||||||
${Q}echo cscript
|
|
||||||
|
|
||||||
calcliblist:
|
|
||||||
|
|
||||||
# These next rule help me form the ${DETAIL_HELP} makefile variables above.
|
|
||||||
#
|
|
||||||
detaillist:
|
|
||||||
${Q}-(echo "xxxxxxx"; \
|
|
||||||
for i in ${SCRIPT}; do \
|
|
||||||
if [ ! -f RCS/$$i.calc,v ]; then \
|
|
||||||
echo "WARNING: $$i.calc not under RCS control" 1>&2; \
|
|
||||||
else \
|
|
||||||
echo $$i; \
|
|
||||||
fi; \
|
|
||||||
done | ${SORT}) | ${FMT} -70 | \
|
|
||||||
${SED} -e '1s/xxxxxxx/SCRIPT=/' -e '2,$$s/^/ /' \
|
|
||||||
-e 's/$$/ \\/' -e '$$s/ \\$$//'
|
|
||||||
${Q}echo
|
|
||||||
${Q}-(echo "xxxxxxxxxxx"; \
|
|
||||||
for i in ${SCRIPT}; do \
|
|
||||||
if [ ! -f RCS/$$i.calc,v ]; then \
|
|
||||||
echo "WARNING: $$i.calc not under RCS control" 1>&2; \
|
|
||||||
else \
|
|
||||||
echo $$i.calc; \
|
|
||||||
fi; \
|
|
||||||
done | ${SORT}) | ${FMT} -70 | \
|
|
||||||
${SED} -e '1s/xxxxxxxxxxx/SCRIPT_SRC=/' -e '2,$$s/^/ /' \
|
|
||||||
-e 's/$$/ \\/' -e '$$s/ \\$$//'
|
|
||||||
|
|
||||||
##
|
|
||||||
#
|
|
||||||
# Home grown make dependency rules. Your system make not support
|
|
||||||
# or have the needed tools. You can ignore this section.
|
|
||||||
#
|
|
||||||
# We will form a skelaton tree of *.c files containing only #include "foo.h"
|
|
||||||
# lines and .h files containing the same lines surrounded by multiple include
|
|
||||||
# prevention lines. This allows us to build a static depend list that will
|
|
||||||
# satisfy all possible cpp symbol definition combinations.
|
|
||||||
#
|
|
||||||
##
|
|
||||||
|
|
||||||
depend:
|
|
||||||
${Q}if [ -f Makefile.bak ]; then \
|
|
||||||
echo "Makefile.bak exists, remove or move it out of the way"; \
|
|
||||||
exit 1; \
|
|
||||||
else \
|
|
||||||
true; \
|
|
||||||
fi
|
|
||||||
-${Q}rm -f makedep.out
|
|
||||||
${Q}echo forming cscript dependency list
|
|
||||||
${Q}echo "# DO NOT DELETE THIS LINE -- make depend depends on it." > \
|
|
||||||
makedep.out
|
|
||||||
${Q}echo "" >> makedep.out
|
|
||||||
${Q}for i in ${SCRIPT}; do \
|
|
||||||
echo "$$i: $$i.calc"; \
|
|
||||||
echo ' rm -f $$@'; \
|
|
||||||
echo ' $${SED} -e "1s:^#!/usr/local/src/cmd/calc/calc:#!$${BINDIR}/calc:" $$?>$$@'; \
|
|
||||||
echo ' $${CHMOD} +x $$@'; \
|
|
||||||
done >> makedep.out
|
|
||||||
${Q}echo sample dependency list formed
|
|
||||||
${Q}echo forming new cscript/Makefile
|
|
||||||
-${Q}rm -f Makefile.bak
|
|
||||||
${Q}mv Makefile Makefile.bak
|
|
||||||
${Q}${SED} -n '1,/^# DO NOT DELETE THIS LINE/p' Makefile.bak > Makefile
|
|
||||||
${Q}echo "" >> Makefile
|
|
||||||
${Q}${SED} -n '3,$$p' makedep.out >> Makefile
|
|
||||||
-${Q}rm -f makedep.out
|
|
||||||
-${Q}if cmp -s Makefile.bak Makefile; then \
|
|
||||||
echo 'sample Makefile was already up to date'; \
|
|
||||||
mv -f Makefile.bak Makefile; \
|
|
||||||
else \
|
|
||||||
rm -f Makefile.tmp; \
|
|
||||||
mv Makefile Makefile.tmp; \
|
|
||||||
if [ -d RCS ]; then \
|
|
||||||
co -l Makefile; \
|
|
||||||
fi; \
|
|
||||||
mv Makefile.tmp Makefile; \
|
|
||||||
if [ -d RCS ]; then \
|
|
||||||
echo new sample Makefile formed, you need to check it in; \
|
|
||||||
fi; \
|
|
||||||
fi
|
|
||||||
|
|
||||||
clean:
|
|
||||||
-rm -f makedep.out
|
|
||||||
|
|
||||||
clobber:
|
|
||||||
-rm -f ${SCRIPT}
|
|
||||||
|
|
||||||
install: all
|
|
||||||
-${Q}if [ ! -d ${BINDIR} ]; then \
|
|
||||||
echo mkdir ${BINDIR}; \
|
|
||||||
mkdir ${BINDIR}; \
|
|
||||||
else \
|
|
||||||
true; \
|
|
||||||
fi
|
|
||||||
-${Q}if [ ! -d ${SCRIPTDIR} ]; then \
|
|
||||||
echo mkdir ${SCRIPTDIR}; \
|
|
||||||
mkdir ${SCRIPTDIR}; \
|
|
||||||
else \
|
|
||||||
true; \
|
|
||||||
fi
|
|
||||||
${Q}for i in ${SCRIPT}; do \
|
|
||||||
echo rm -f ${SCRIPTDIR}/$$i; \
|
|
||||||
rm -f ${SCRIPTDIR}/$$i; \
|
|
||||||
echo cp $$i ${SCRIPTDIR}; \
|
|
||||||
cp $$i ${SCRIPTDIR}; \
|
|
||||||
echo ${CHMOD} 0555 ${SCRIPTDIR}/$$i; \
|
|
||||||
${CHMOD} 0555 ${SCRIPTDIR}/$$i; \
|
|
||||||
done
|
|
||||||
|
|
||||||
# DO NOT DELETE THIS LINE -- make depend depends on it.
|
|
||||||
|
|
||||||
mersenne: mersenne.calc
|
|
||||||
rm -f $@
|
|
||||||
${SED} -e "1s:^#!/usr/local/src/cmd/calc/calc:#!${BINDIR}/calc:" $?>$@
|
|
||||||
${CHMOD} +x $@
|
|
||||||
piforever: piforever.calc
|
|
||||||
rm -f $@
|
|
||||||
${SED} -e "1s:^#!/usr/local/src/cmd/calc/calc:#!${BINDIR}/calc:" $?>$@
|
|
||||||
${CHMOD} +x $@
|
|
||||||
plus: plus.calc
|
|
||||||
rm -f $@
|
|
||||||
${SED} -e "1s:^#!/usr/local/src/cmd/calc/calc:#!${BINDIR}/calc:" $?>$@
|
|
||||||
${CHMOD} +x $@
|
|
||||||
simple: simple.calc
|
|
||||||
rm -f $@
|
|
||||||
${SED} -e "1s:^#!/usr/local/src/cmd/calc/calc:#!${BINDIR}/calc:" $?>$@
|
|
||||||
${CHMOD} +x $@
|
|
@@ -1,47 +0,0 @@
|
|||||||
#!/usr/local/src/cmd/calc/calc -S
|
|
||||||
#
|
|
||||||
# mersenne - print the value of a mersenne number
|
|
||||||
#
|
|
||||||
# Copyright (C) 1999 Landon Curt Noll
|
|
||||||
#
|
|
||||||
# Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
# the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
# as published by the Free Software Foundation.
|
|
||||||
#
|
|
||||||
# Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
# Public License for more details.
|
|
||||||
#
|
|
||||||
# A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
# distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
# received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
#
|
|
||||||
# @(#) $Revision: 29.1 $
|
|
||||||
# @(#) $Id: mersenne.calc,v 29.1 1999/12/14 09:15:35 chongo Exp $
|
|
||||||
# @(#) $Source: /usr/local/src/cmd/calc/cscript/RCS/mersenne.calc,v $
|
|
||||||
#
|
|
||||||
# Under source code control: 1999/11/30 00:09:01;
|
|
||||||
# File existed as early as: 1999
|
|
||||||
#
|
|
||||||
# chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
# Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
|
|
||||||
# usage:
|
|
||||||
# mersenne exp
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* parse args
|
|
||||||
*/
|
|
||||||
if (argv() != 1) {
|
|
||||||
/* we include the name of this script in the error message */
|
|
||||||
fprintf(files(2), "usage: %s exp\n", config("program"));
|
|
||||||
abort "wrong number of args";
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* print the decimal value of 2^n-1
|
|
||||||
*/
|
|
||||||
print "2^": argv(0) : "-1 =", 2^eval(argv(0))-1;
|
|
@@ -1,37 +0,0 @@
|
|||||||
#!/usr/local/src/cmd/calc/calc -S
|
|
||||||
#
|
|
||||||
# piforever - print digits of pi forever (or as long as your mem/cpu allow)
|
|
||||||
#
|
|
||||||
# Copyright (C) 1999 Landon Curt Noll
|
|
||||||
#
|
|
||||||
# Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
# the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
# as published by the Free Software Foundation.
|
|
||||||
#
|
|
||||||
# Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
# Public License for more details.
|
|
||||||
#
|
|
||||||
# A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
# distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
# received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
#
|
|
||||||
# @(#) $Revision: 29.1 $
|
|
||||||
# @(#) $Id: piforever.calc,v 29.1 1999/12/14 09:15:36 chongo Exp $
|
|
||||||
# @(#) $Source: /usr/local/src/cmd/calc/cscript/RCS/piforever.calc,v $
|
|
||||||
#
|
|
||||||
# Under source code control: 1999/11/30 00:11:36
|
|
||||||
# File existed as early as: 1999
|
|
||||||
#
|
|
||||||
# chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
# Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
|
|
||||||
# usage:
|
|
||||||
# piforever
|
|
||||||
|
|
||||||
|
|
||||||
read -once pi.cal
|
|
||||||
print "pi ~= ":;
|
|
||||||
piforever();
|
|
@@ -1,53 +0,0 @@
|
|||||||
#!/usr/local/src/cmd/calc/calc -S
|
|
||||||
#
|
|
||||||
# plus - add two or more arguments together
|
|
||||||
#
|
|
||||||
# Copyright (C) 1999 Landon Curt Noll
|
|
||||||
#
|
|
||||||
# Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
# the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
# as published by the Free Software Foundation.
|
|
||||||
#
|
|
||||||
# Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
# Public License for more details.
|
|
||||||
#
|
|
||||||
# A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
# distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
# received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
#
|
|
||||||
# @(#) $Revision: 29.1 $
|
|
||||||
# @(#) $Id: plus.calc,v 29.1 1999/12/14 09:15:36 chongo Exp $
|
|
||||||
# @(#) $Source: /usr/local/src/cmd/calc/cscript/RCS/plus.calc,v $
|
|
||||||
#
|
|
||||||
# Under source code control: 1999/11/29 10:22:37
|
|
||||||
# File existed as early as: 1999
|
|
||||||
#
|
|
||||||
# chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
# Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
|
|
||||||
# usage:
|
|
||||||
# plus val ...
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* parse args
|
|
||||||
*/
|
|
||||||
if (argv() < 1) {
|
|
||||||
/* we include the name of this script in the error message */
|
|
||||||
fprintf(files(2), "usage: %s value ...\n", config("program"));
|
|
||||||
abort "not enough args";
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* print the sum of the 2 args
|
|
||||||
*
|
|
||||||
* Since args are strings, we must eval them before using them numerically.
|
|
||||||
*/
|
|
||||||
sum = 0;
|
|
||||||
for (i=0; i < argv(); ++i) {
|
|
||||||
sum += eval(argv(i));
|
|
||||||
}
|
|
||||||
print sum;
|
|
@@ -1,35 +0,0 @@
|
|||||||
#!/usr/local/src/cmd/calc/calc -S
|
|
||||||
#
|
|
||||||
# simple - an example of a simple calc shell script
|
|
||||||
#
|
|
||||||
# Copyright (C) 1999 Landon Curt Noll
|
|
||||||
#
|
|
||||||
# Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
# the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
# as published by the Free Software Foundation.
|
|
||||||
#
|
|
||||||
# Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
# Public License for more details.
|
|
||||||
#
|
|
||||||
# A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
# distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
# received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
#
|
|
||||||
# @(#) $Revision: 29.1 $
|
|
||||||
# @(#) $Id: simple.calc,v 29.1 1999/12/14 09:15:36 chongo Exp $
|
|
||||||
# @(#) $Source: /usr/local/src/cmd/calc/cscript/RCS/simple.calc,v $
|
|
||||||
#
|
|
||||||
# Under source code control: 1999/11/29 10:22:37
|
|
||||||
# File existed as early as: 1999
|
|
||||||
#
|
|
||||||
# chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
# Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This is an example of a simple calc shell script.
|
|
||||||
*/
|
|
||||||
print "The simple calc shell script works!"
|
|
43
custom.c
43
custom.c
@@ -1,34 +1,35 @@
|
|||||||
/*
|
/*
|
||||||
* custom - interface for custom software and hardware interfaces
|
* Copyright (c) 1997 by Landon Curt Noll. All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999 Landon Curt Noll
|
* Permission to use, copy, modify, and distribute this software and
|
||||||
|
* its documentation for any purpose and without fee is hereby granted,
|
||||||
|
* provided that the above copyright, this permission notice and text
|
||||||
|
* this comment, and the disclaimer below appear in all of the following:
|
||||||
*
|
*
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
* supporting documentation
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
* source copies
|
||||||
* as published by the Free Software Foundation.
|
* source works derived from this source
|
||||||
|
* binaries derived from this source or from derived source
|
||||||
*
|
*
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
* LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
* EVENT SHALL LANDON CURT NOLL BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
||||||
* Public License for more details.
|
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
|
||||||
|
* USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||||
|
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
*
|
*
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
* Comments, suggestions, bug fixes and questions about these routines
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
* are welcome. Send EMail to the address given below.
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
*
|
||||||
* @(#) $Revision: 29.1 $
|
* Happy bit twiddling,
|
||||||
* @(#) $Id: custom.c,v 29.1 1999/12/14 09:15:36 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/custom.c,v $
|
|
||||||
*
|
*
|
||||||
* Under source code control: 1997/03/03 04:53:08
|
* Landon Curt Noll
|
||||||
* File existed as early as: 1997
|
* http://reality.sgi.com/chongo/
|
||||||
*
|
*
|
||||||
* chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
* chongo <was here> /\../\
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
/* these include files are needed regardless of CUSTOM */
|
/* these include files are needed regardless of CUSTOM */
|
||||||
#include "have_const.h"
|
#include "have_const.h"
|
||||||
#include "value.h"
|
#include "value.h"
|
||||||
|
46
custom.h
46
custom.h
@@ -1,31 +1,37 @@
|
|||||||
/*
|
/*
|
||||||
* custom - interface for custom software and hardware interfaces
|
* Copyright (c) 1997 by Landon Curt Noll. All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999 Landon Curt Noll
|
* Permission to use, copy, modify, and distribute this software and
|
||||||
|
* its documentation for any purpose and without fee is hereby granted,
|
||||||
|
* provided that the above copyright, this permission notice and text
|
||||||
|
* this comment, and the disclaimer below appear in all of the following:
|
||||||
*
|
*
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
* supporting documentation
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
* source copies
|
||||||
* as published by the Free Software Foundation.
|
* source works derived from this source
|
||||||
|
* binaries derived from this source or from derived source
|
||||||
*
|
*
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
* LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
* EVENT SHALL LANDON CURT NOLL BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
||||||
* Public License for more details.
|
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
|
||||||
|
* USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||||
|
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
*
|
*
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
* Prior to calc 2.9.3t9, these routines existed as a calc library called
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
* cryrand.cal. They have been rewritten in C for performance as well
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
* as to make them available directly from libcalc.a.
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
*
|
||||||
* @(#) $Revision: 29.1 $
|
* Comments, suggestions, bug fixes and questions about these routines
|
||||||
* @(#) $Id: custom.h,v 29.1 1999/12/14 09:15:36 chongo Exp $
|
* are welcome. Send EMail to the address given below.
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/custom.h,v $
|
|
||||||
*
|
*
|
||||||
* Under source code control: 1997/03/03 04:53:08
|
* Happy bit twiddling,
|
||||||
* File existed as early as: 1997
|
|
||||||
*
|
*
|
||||||
* chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
* Landon Curt Noll
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
* http://reality.sgi.com/chongo/
|
||||||
|
*
|
||||||
|
* chongo <was here> /\../\
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@@ -1,11 +1,31 @@
|
|||||||
Custom calc resource files
|
#
|
||||||
--------------------------
|
# Copyright (c) 1999 Landon Curt Noll
|
||||||
|
#
|
||||||
|
# Permission to use, copy, modify, and distribute this software and
|
||||||
|
# its documentation for any purpose and without fee is hereby granted,
|
||||||
|
# provided that the above copyright, this permission notice and text
|
||||||
|
# this comment, and the disclaimer below appear in all of the following:
|
||||||
|
#
|
||||||
|
# supporting documentation
|
||||||
|
# source copies
|
||||||
|
# source works derived from this source
|
||||||
|
# binaries derived from this source or from derived source
|
||||||
|
#
|
||||||
|
# LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
||||||
|
# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
|
||||||
|
# EVENT SHALL LANDON CURT NOLL BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
||||||
|
# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
|
||||||
|
# USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||||
|
# OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
|
# PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
#
|
||||||
|
# chongo was here /\../\ http://reality.sgi.com/chongo/
|
||||||
|
|
||||||
The following custom calc resource files are provided because they serve
|
The following custom calc library files are provided because they serve
|
||||||
as examples of how use the custom interface. The custom interface
|
as examples of how use the custom interface. The custom interface
|
||||||
allows for machine dependent and/or non-portable code to be added as
|
allows for machine dependent and/or non-portable code to be added as
|
||||||
builtins to the calc program. A few example custom functions and
|
builtins to the calc program. A few example custom functions and
|
||||||
resource files are shipped with calc to provide you with examples.
|
library files are shipped with calc to provide you with examples.
|
||||||
|
|
||||||
By default, the custom builtin returns an error. Calc have been
|
By default, the custom builtin returns an error. Calc have been
|
||||||
built with:
|
built with:
|
||||||
@@ -19,8 +39,8 @@ must be invoked with a -C argument:
|
|||||||
|
|
||||||
when it is run.
|
when it is run.
|
||||||
|
|
||||||
See the ../cal/README or "help resource" for information about
|
See the ../lib/README or "help stdlib" for information about
|
||||||
calc resource standards and guidelines.
|
calc library standards and guidelines.
|
||||||
|
|
||||||
=-=
|
=-=
|
||||||
|
|
||||||
@@ -40,29 +60,3 @@ pzasusb8.cal
|
|||||||
|
|
||||||
Run custom("pzasusb8") on a standard set of data, print Endian
|
Run custom("pzasusb8") on a standard set of data, print Endian
|
||||||
related information and print value size information.
|
related information and print value size information.
|
||||||
|
|
||||||
## Copyright (C) 1999 Landon Curt Noll
|
|
||||||
##
|
|
||||||
## Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
## the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
## as published by the Free Software Foundation.
|
|
||||||
##
|
|
||||||
## Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
## or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
## Public License for more details.
|
|
||||||
##
|
|
||||||
## A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
## distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
## received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
##
|
|
||||||
## @(#) $Revision: 29.1 $
|
|
||||||
## @(#) $Id: CUSTOM_CAL,v 29.1 1999/12/14 09:15:36 chongo Exp $
|
|
||||||
## @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/CUSTOM_CAL,v $
|
|
||||||
##
|
|
||||||
## Under source code control: 1997/03/08 20:51:32
|
|
||||||
## File existed as early as: 1997
|
|
||||||
##
|
|
||||||
## chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
## Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
|
@@ -1,5 +1,4 @@
|
|||||||
Guidelines for adding custom functions
|
Guidelines for adding custom functions
|
||||||
--------------------------------------
|
|
||||||
|
|
||||||
Step 0: Determine if is should it be done?
|
Step 0: Determine if is should it be done?
|
||||||
|
|
||||||
@@ -18,9 +17,9 @@ Step 0: Determine if is should it be done?
|
|||||||
|
|
||||||
So before you go to step 1, ask yourself:
|
So before you go to step 1, ask yourself:
|
||||||
|
|
||||||
+ Can I implement this as a calc resource file or calc shell script?
|
+ Can I implement this as a calc library script?
|
||||||
|
|
||||||
If Yes, write the shell script or resource file and be done with it.
|
If Yes, write the script and be done with it.
|
||||||
If No, continue to the next question ...
|
If No, continue to the next question ...
|
||||||
|
|
||||||
+ Does it require the use of non-portable features,
|
+ Does it require the use of non-portable features,
|
||||||
@@ -618,29 +617,3 @@ Step 12: Contribute
|
|||||||
|
|
||||||
and consider submitting your custom function for possible
|
and consider submitting your custom function for possible
|
||||||
inclusion in later versions of calc.
|
inclusion in later versions of calc.
|
||||||
|
|
||||||
## Copyright (C) 1999 Landon Curt Noll
|
|
||||||
##
|
|
||||||
## Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
## the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
## as published by the Free Software Foundation.
|
|
||||||
##
|
|
||||||
## Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
## or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
## Public License for more details.
|
|
||||||
##
|
|
||||||
## A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
## distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
## received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
##
|
|
||||||
## @(#) $Revision: 29.1 $
|
|
||||||
## @(#) $Id: HOW_TO_ADD,v 29.1 1999/12/14 09:15:36 chongo Exp $
|
|
||||||
## @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/HOW_TO_ADD,v $
|
|
||||||
##
|
|
||||||
## Under source code control: 1997/03/10 03:03:21
|
|
||||||
## File existed as early as: 1997
|
|
||||||
##
|
|
||||||
## chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
## Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
|
@@ -1,44 +1,43 @@
|
|||||||
#!/bin/make
|
|
||||||
#
|
#
|
||||||
# custom - makefile for calc custom routines
|
# custom - makefile for calc custom routines
|
||||||
#
|
#
|
||||||
# Copyright (C) 1999 Landon Curt Noll
|
# Copyright (c) 1997 Landon Curt Noll
|
||||||
#
|
#
|
||||||
# Calc is open software; you can redistribute it and/or modify it under
|
# Permission to use, copy, modify, and distribute this software and
|
||||||
# the terms of the version 2.1 of the GNU Lesser General Public License
|
# its documentation for any purpose and without fee is hereby granted,
|
||||||
# as published by the Free Software Foundation.
|
# provided that the above copyright, this permission notice and text
|
||||||
|
# this comment, and the disclaimer below appear in all of the following:
|
||||||
#
|
#
|
||||||
# Calc is distributed in the hope that it will be useful, but WITHOUT
|
# supporting documentation
|
||||||
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
# source copies
|
||||||
# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
# source works derived from this source
|
||||||
# Public License for more details.
|
# binaries derived from this source or from derived source
|
||||||
#
|
#
|
||||||
# A copy of version 2.1 of the GNU Lesser General Public License is
|
# LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
||||||
# distributed with calc under the filename COPYING-LGPL. You should have
|
# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
|
||||||
# received a copy with calc; if not, write to Free Software Foundation, Inc.
|
# EVENT SHALL LANDON CURT NOLL BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
||||||
# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
# CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
|
||||||
|
# USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||||
|
# OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
|
# PERFORMANCE OF THIS SOFTWARE.
|
||||||
#
|
#
|
||||||
# @(#) $Revision: 29.1 $
|
# Comments, suggestions, bug fixes and questions about these routines
|
||||||
# @(#) $Id: Makefile,v 29.1 1999/12/14 09:15:36 chongo Exp $
|
# are welcome. Send EMail to the address given below.
|
||||||
# @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/Makefile,v $
|
|
||||||
#
|
#
|
||||||
# Under source code control: 1997/03/09 02:28:54
|
# Happy bit twiddling,
|
||||||
# File existed as early as: 1997
|
|
||||||
#
|
#
|
||||||
# chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
# Landon Curt Noll
|
||||||
# Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
# http://reality.sgi.com/chongo/
|
||||||
#
|
#
|
||||||
# calculator by David I. Bell with help/mods from others
|
# chongo <was here> /\../\
|
||||||
# Makefile by Landon Curt Noll
|
|
||||||
|
|
||||||
|
|
||||||
##############################################################################
|
##############################################################################
|
||||||
#-=-=-=-=-=-=-=-=- You may want to change some values below -=-=-=-=-=-=-=-=-#
|
#-=-=-=-=-=-=-=-=- You may want to change some values below -=-=-=-=-=-=-=-=-#
|
||||||
##############################################################################
|
##############################################################################
|
||||||
|
|
||||||
# The custom calc resource files to install
|
# The custom calc library files to install
|
||||||
#
|
#
|
||||||
# Put your custom calc resource files here.
|
# Put your custom calc library files here.
|
||||||
#
|
#
|
||||||
CUSTOM_CALC_FILES= argv.cal halflen.cal pzasusb8.cal
|
CUSTOM_CALC_FILES= argv.cal halflen.cal pzasusb8.cal
|
||||||
|
|
||||||
@@ -159,7 +158,7 @@ NO_SHARED=
|
|||||||
# 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.
|
||||||
#
|
#
|
||||||
# Some systems require one to use ranlib to add a symbol table to
|
# Some systems require one to use ranlib to add a symbol table to
|
||||||
# a *.a link library. Set RANLIB to the utility that performs this action.
|
# a *.a library. Set RANLIB to the utility that performs this action.
|
||||||
# Set RANLIB to : if your system does not need such a utility.
|
# Set RANLIB to : if your system does not need such a utility.
|
||||||
#
|
#
|
||||||
#RANLIB=ranlib
|
#RANLIB=ranlib
|
||||||
@@ -218,6 +217,7 @@ ALLOW_CUSTOM= -DCUSTOM
|
|||||||
# CFLAGS are all flags given to ${CC} [[often includes CCOPT, CCWARN, CCMISC]]
|
# CFLAGS are all flags given to ${CC} [[often includes CCOPT, CCWARN, CCMISC]]
|
||||||
# ICFLAGS are given to ${CC} for intermediate progs
|
# ICFLAGS are given to ${CC} for intermediate progs
|
||||||
#
|
#
|
||||||
|
# LCFLAGS are CC-style flags for ${LINT}
|
||||||
# LDFLAGS are flags given to ${CC} for linking .o files
|
# LDFLAGS are flags given to ${CC} for linking .o files
|
||||||
# ILDFLAGS are flags given to ${CC} for linking .o files for intermediate progs
|
# ILDFLAGS are flags given to ${CC} for linking .o files for intermediate progs
|
||||||
#
|
#
|
||||||
@@ -234,6 +234,7 @@ CCMISC=
|
|||||||
CFLAGS= ${CCWARN} ${CCOPT} ${CCMISC} ${ALLOW_CUSTOM}
|
CFLAGS= ${CCWARN} ${CCOPT} ${CCMISC} ${ALLOW_CUSTOM}
|
||||||
ICFLAGS= ${CCWARN} ${CCMISC}
|
ICFLAGS= ${CCWARN} ${CCMISC}
|
||||||
#
|
#
|
||||||
|
LCFLAGS=
|
||||||
LDFLAGS= ${NO_SHARED} ${LD_NO_SHARED}
|
LDFLAGS= ${NO_SHARED} ${LD_NO_SHARED}
|
||||||
ILDFLAGS=
|
ILDFLAGS=
|
||||||
#
|
#
|
||||||
@@ -284,7 +285,7 @@ H_SRC= ${CUSTOM_H_SRC}
|
|||||||
DISTLIST= ${CUSTCALC_SRC} ${CUSTOM_CALC_FILES} ${CUSTOM_HELP} \
|
DISTLIST= ${CUSTCALC_SRC} ${CUSTOM_CALC_FILES} ${CUSTOM_HELP} \
|
||||||
${INSTALL_H_SRC} CUSTOM_CAL HOW_TO_ADD ${MAKE_FILE}
|
${INSTALL_H_SRC} CUSTOM_CAL HOW_TO_ADD ${MAKE_FILE}
|
||||||
|
|
||||||
# These files are used to make (but not built) a calc .a link library
|
# These files are used to make (but not built) a calc .a library
|
||||||
#
|
#
|
||||||
CALCLIBLIST= ${CUSTCALC_SRC} ${INSTALL_H_SRC} ${MAKE_FILE} HOW_TO_ADD
|
CALCLIBLIST= ${CUSTCALC_SRC} ${INSTALL_H_SRC} ${MAKE_FILE} HOW_TO_ADD
|
||||||
|
|
||||||
@@ -294,14 +295,9 @@ TARGETS= libcustcalc.a ${CUSTCALC_OBJ}
|
|||||||
|
|
||||||
# required vars
|
# required vars
|
||||||
#
|
#
|
||||||
SHELL= /bin/sh
|
SHELL = /bin/sh
|
||||||
MAKE_FILE= Makefile
|
|
||||||
|
|
||||||
# standard tools
|
|
||||||
#
|
|
||||||
SED= sed
|
SED= sed
|
||||||
MAKEDEPEND= makedepend
|
MAKEDEPEND= makedepend
|
||||||
CHMOD= chmod
|
|
||||||
SORT= sort
|
SORT= sort
|
||||||
|
|
||||||
##
|
##
|
||||||
@@ -496,32 +492,32 @@ install: all
|
|||||||
rm -f ${CUSTOMLIBDIR}/$$i; \
|
rm -f ${CUSTOMLIBDIR}/$$i; \
|
||||||
echo cp $$i ${CUSTOMLIBDIR}; \
|
echo cp $$i ${CUSTOMLIBDIR}; \
|
||||||
cp $$i ${CUSTOMLIBDIR}; \
|
cp $$i ${CUSTOMLIBDIR}; \
|
||||||
echo ${CHMOD} 0444 ${CUSTOMLIBDIR}/$$i; \
|
echo chmod 0444 ${CUSTOMLIBDIR}/$$i; \
|
||||||
${CHMOD} 0444 ${CUSTOMLIBDIR}/$$i; \
|
chmod 0444 ${CUSTOMLIBDIR}/$$i; \
|
||||||
done
|
done
|
||||||
${Q}for i in ${CUSTOM_CALC_FILES}; do \
|
${Q}for i in ${CUSTOM_CALC_FILES}; do \
|
||||||
echo rm -f ${CUSTOMLIBDIR}/$$i; \
|
echo rm -f ${CUSTOMLIBDIR}/$$i; \
|
||||||
rm -f ${CUSTOMLIBDIR}/$$i; \
|
rm -f ${CUSTOMLIBDIR}/$$i; \
|
||||||
echo cp $$i ${CUSTOMLIBDIR}; \
|
echo cp $$i ${CUSTOMLIBDIR}; \
|
||||||
cp $$i ${CUSTOMLIBDIR}; \
|
cp $$i ${CUSTOMLIBDIR}; \
|
||||||
echo ${CHMOD} 0444 ${CUSTOMLIBDIR}/$$i; \
|
echo chmod 0444 ${CUSTOMLIBDIR}/$$i; \
|
||||||
${CHMOD} 0444 ${CUSTOMLIBDIR}/$$i; \
|
chmod 0444 ${CUSTOMLIBDIR}/$$i; \
|
||||||
done
|
done
|
||||||
${Q}for i in ${CUSTOM_HELP}; do \
|
${Q}for i in ${CUSTOM_HELP}; do \
|
||||||
echo rm -f ${CUSTOMHELPDIR}/$$i; \
|
echo rm -f ${CUSTOMHELPDIR}/$$i; \
|
||||||
rm -f ${CUSTOMHELPDIR}/$$i; \
|
rm -f ${CUSTOMHELPDIR}/$$i; \
|
||||||
echo cp $$i ${CUSTOMHELPDIR}; \
|
echo cp $$i ${CUSTOMHELPDIR}; \
|
||||||
cp $$i ${CUSTOMHELPDIR}; \
|
cp $$i ${CUSTOMHELPDIR}; \
|
||||||
echo ${CHMOD} 0444 ${CUSTOMHELPDIR}/$$i; \
|
echo chmod 0444 ${CUSTOMHELPDIR}/$$i; \
|
||||||
${CHMOD} 0444 ${CUSTOMHELPDIR}/$$i; \
|
chmod 0444 ${CUSTOMHELPDIR}/$$i; \
|
||||||
done
|
done
|
||||||
-${Q}if [ ! -z ${ALLOW_CUSTOM} ]; then \
|
-${Q}if [ ! -z ${ALLOW_CUSTOM} ]; then \
|
||||||
echo "rm -f ${CUSTOMLIBDIR}/libcustcalc.a"; \
|
echo "rm -f ${CUSTOMLIBDIR}/libcustcalc.a"; \
|
||||||
rm -f ${CUSTOMLIBDIR}/libcustcalc.a; \
|
rm -f ${CUSTOMLIBDIR}/libcustcalc.a; \
|
||||||
echo "cp libcustcalc.a ${CUSTOMLIBDIR}/libcustcalc.a"; \
|
echo "cp libcustcalc.a ${CUSTOMLIBDIR}/libcustcalc.a"; \
|
||||||
cp libcustcalc.a ${CUSTOMLIBDIR}/libcustcalc.a; \
|
cp libcustcalc.a ${CUSTOMLIBDIR}/libcustcalc.a; \
|
||||||
echo "${CHMOD} 0644 ${CUSTOMLIBDIR}/libcustcalc.a"; \
|
echo "chmod 0644 ${CUSTOMLIBDIR}/libcustcalc.a"; \
|
||||||
${CHMOD} 0644 ${CUSTOMLIBDIR}/libcustcalc.a; \
|
chmod 0644 ${CUSTOMLIBDIR}/libcustcalc.a; \
|
||||||
echo "${RANLIB} ${CUSTOMLIBDIR}/libcustcalc.a"; \
|
echo "${RANLIB} ${CUSTOMLIBDIR}/libcustcalc.a"; \
|
||||||
${RANLIB} ${CUSTOMLIBDIR}/libcustcalc.a; \
|
${RANLIB} ${CUSTOMLIBDIR}/libcustcalc.a; \
|
||||||
fi
|
fi
|
||||||
|
26
custom/argv
26
custom/argv
@@ -39,29 +39,3 @@ LIBRARY
|
|||||||
|
|
||||||
SEE ALSO
|
SEE ALSO
|
||||||
custom
|
custom
|
||||||
|
|
||||||
## Copyright (C) 1999 Landon Curt Noll
|
|
||||||
##
|
|
||||||
## Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
## the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
## as published by the Free Software Foundation.
|
|
||||||
##
|
|
||||||
## Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
## or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
## Public License for more details.
|
|
||||||
##
|
|
||||||
## A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
## distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
## received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
##
|
|
||||||
## @(#) $Revision: 29.1 $
|
|
||||||
## @(#) $Id: argv,v 29.1 1999/12/14 09:15:36 chongo Exp $
|
|
||||||
## @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/argv,v $
|
|
||||||
##
|
|
||||||
## Under source code control: 1997/03/09 20:28:01
|
|
||||||
## File existed as early as: 1997
|
|
||||||
##
|
|
||||||
## chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
## Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
|
@@ -1,41 +1,25 @@
|
|||||||
|
/*
|
||||||
|
* Permission to use, copy, modify, and distribute this software and
|
||||||
|
* its documentation for any purpose and without fee is hereby granted.
|
||||||
|
*
|
||||||
|
* LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
||||||
|
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
|
||||||
|
* EVENT SHALL LANDON CURT NOLL BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
||||||
|
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
|
||||||
|
* USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||||
|
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*
|
||||||
|
* chongo was here /\../\ http://reality.sgi.com/chongo/
|
||||||
|
*/
|
||||||
/*
|
/*
|
||||||
* argv - print information about various args
|
* argv - print information about various args
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999 Landon Curt Noll
|
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: argv.cal,v 29.1 1999/12/14 09:15:36 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/argv.cal,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1997/03/10 00:27:17
|
|
||||||
* File existed as early as: 1997
|
|
||||||
*
|
|
||||||
* chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This file is part of the custom sample calc files.
|
* This file is part of the custom sample calc files.
|
||||||
*
|
*
|
||||||
* NOTE: You must use a calc that was compiled with ALLOW_CUSTOM= -DCUSTOM
|
* NOTE: You must use a calc that was compiled with ALLOW_CUSTOM= -DCUSTOM
|
||||||
* and run with a -C arg.
|
* and run with a -C arg.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
define argv()
|
define argv()
|
||||||
{
|
{
|
||||||
local i; /* arg number */
|
local i; /* arg number */
|
||||||
@@ -55,6 +39,6 @@ define argv()
|
|||||||
return i-1;
|
return i-1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (config("resource_debug") >= 0) {
|
if (config("lib_debug") >= 0) {
|
||||||
print "argv(var, ...) defined";
|
print "argv(var, ...) defined";
|
||||||
}
|
}
|
||||||
|
@@ -1,34 +1,26 @@
|
|||||||
/*
|
/*
|
||||||
* c_argv - a custom function display info about its args
|
* Permission to use, copy, modify, and distribute this software and
|
||||||
|
* its documentation for any purpose and without fee is hereby granted.
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999 Landon Curt Noll
|
* LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
||||||
|
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
|
||||||
|
* EVENT SHALL LANDON CURT NOLL BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
||||||
|
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
|
||||||
|
* USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||||
|
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
*
|
*
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
* Comments, suggestions, bug fixes and questions about these routines
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
* are welcome. Send EMail to the address given below.
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
*
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
* Happy bit twiddling,
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
*
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
* Landon Curt Noll
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
* http://reality.sgi.com/chongo/
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
*
|
||||||
* @(#) $Revision: 29.1 $
|
* chongo <was here> /\../\
|
||||||
* @(#) $Id: c_argv.c,v 29.1 1999/12/14 09:15:36 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/c_argv.c,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1997/03/09 20:27:37
|
|
||||||
* File existed as early as: 1997
|
|
||||||
*
|
|
||||||
* chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#if defined(CUSTOM)
|
#if defined(CUSTOM)
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
@@ -1,34 +1,26 @@
|
|||||||
/*
|
/*
|
||||||
* c_devnull - a custom function that does nothing
|
* Permission to use, copy, modify, and distribute this software and
|
||||||
|
* its documentation for any purpose and without fee is hereby granted.
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999 Landon Curt Noll
|
* LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
||||||
|
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
|
||||||
|
* EVENT SHALL LANDON CURT NOLL BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
||||||
|
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
|
||||||
|
* USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||||
|
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
*
|
*
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
* Comments, suggestions, bug fixes and questions about these routines
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
* are welcome. Send EMail to the address given below.
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
*
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
* Happy bit twiddling,
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
*
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
* Landon Curt Noll
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
* http://reality.sgi.com/chongo/
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
*
|
||||||
* @(#) $Revision: 29.1 $
|
* chongo <was here> /\../\
|
||||||
* @(#) $Id: c_devnull.c,v 29.1 1999/12/14 09:15:37 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/c_devnull.c,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1997/03/09 17:49:12
|
|
||||||
* File existed as early as: 1997
|
|
||||||
*
|
|
||||||
* chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#if defined(CUSTOM)
|
#if defined(CUSTOM)
|
||||||
|
|
||||||
|
|
||||||
|
@@ -1,34 +1,26 @@
|
|||||||
/*
|
/*
|
||||||
* c_help - custom help function
|
* Permission to use, copy, modify, and distribute this software and
|
||||||
|
* its documentation for any purpose and without fee is hereby granted.
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999 Landon Curt Noll
|
* LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
||||||
|
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
|
||||||
|
* EVENT SHALL LANDON CURT NOLL BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
||||||
|
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
|
||||||
|
* USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||||
|
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
*
|
*
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
* Comments, suggestions, bug fixes and questions about these routines
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
* are welcome. Send EMail to the address given below.
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
*
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
* Happy bit twiddling,
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
*
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
* Landon Curt Noll
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
* http://reality.sgi.com/chongo/
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
*
|
||||||
* @(#) $Revision: 29.1 $
|
* chongo <was here> /\../\
|
||||||
* @(#) $Id: c_help.c,v 29.1 1999/12/14 09:15:37 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/c_help.c,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1997/03/09 05:25:41
|
|
||||||
* File existed as early as: 1997
|
|
||||||
*
|
|
||||||
* chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#if defined(CUSTOM)
|
#if defined(CUSTOM)
|
||||||
|
|
||||||
|
|
||||||
|
@@ -1,33 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* c_pzasusb8 - print numereator as a string of USB8s
|
* Permission to use, copy, modify, and distribute this software and
|
||||||
|
* its documentation for any purpose and without fee is hereby granted.
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999 Ernest Bowen
|
* Ernest Bowen, following Landon Curt Noll
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: c_pzasusb8.c,v 29.1 1999/12/14 09:15:37 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/c_pzasusb8.c,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1999/10/06 03:12:25
|
|
||||||
* File existed as early as: 1999
|
|
||||||
*
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#if defined(CUSTOM)
|
#if defined(CUSTOM)
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
@@ -38,7 +15,8 @@
|
|||||||
#include "../zmath.h"
|
#include "../zmath.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* c_pzasusb8 - print numereator as a string of USB8s
|
* c_pzasusb8 - print numereator of real as if its array of HALFs were
|
||||||
|
* a string of USB8s
|
||||||
*
|
*
|
||||||
* given:
|
* given:
|
||||||
* count = 1;
|
* count = 1;
|
||||||
|
@@ -1,34 +1,26 @@
|
|||||||
/*
|
/*
|
||||||
* c_sysinfo - names and values of selected #defines
|
* Permission to use, copy, modify, and distribute this software and
|
||||||
|
* its documentation for any purpose and without fee is hereby granted.
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999 Landon Curt Noll
|
* LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
||||||
|
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
|
||||||
|
* EVENT SHALL LANDON CURT NOLL BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
||||||
|
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
|
||||||
|
* USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||||
|
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
*
|
*
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
* Comments, suggestions, bug fixes and questions about these routines
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
* are welcome. Send EMail to the address given below.
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
*
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
* Happy bit twiddling,
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
*
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
* Landon Curt Noll
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
* http://reality.sgi.com/chongo/
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
*
|
||||||
* @(#) $Revision: 29.1 $
|
* chongo <was here> /\../\
|
||||||
* @(#) $Id: c_sysinfo.c,v 29.1 1999/12/14 09:15:37 chongo Exp chongo $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/c_sysinfo.c,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1997/03/09 23:14:40
|
|
||||||
* File existed as early as: 1997
|
|
||||||
*
|
|
||||||
* chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#if defined(CUSTOM)
|
#if defined(CUSTOM)
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
@@ -73,6 +65,7 @@ static struct infoname sys_info[] = {
|
|||||||
{"BLK_CHUNKSIZE", "default allocation chunk size for blocks", NULL, (FULL)BLK_CHUNKSIZE},
|
{"BLK_CHUNKSIZE", "default allocation chunk size for blocks", NULL, (FULL)BLK_CHUNKSIZE},
|
||||||
{"BLK_DEF_MAXPRINT", "default block octets to print", NULL, (FULL)BLK_DEF_MAXPRINT},
|
{"BLK_DEF_MAXPRINT", "default block octets to print", NULL, (FULL)BLK_DEF_MAXPRINT},
|
||||||
{"BLUM_PREGEN", "non-default predefined Blum generators", NULL, (FULL)BLUM_PREGEN},
|
{"BLUM_PREGEN", "non-default predefined Blum generators", NULL, (FULL)BLUM_PREGEN},
|
||||||
|
{"BOOL_B64", "if we have 64 bit type (TRUE or FALSE)", NULL, (FULL)BOOL_B64},
|
||||||
{"CALCEXT", "extension for files read in", CALCEXT, (FULL)0},
|
{"CALCEXT", "extension for files read in", CALCEXT, (FULL)0},
|
||||||
{"CALC_BYTE_ORDER", "Byte order (LITTLE_ENDIAN or BIG_ENDIAN)", NULL, (FULL)CALC_BYTE_ORDER},
|
{"CALC_BYTE_ORDER", "Byte order (LITTLE_ENDIAN or BIG_ENDIAN)", NULL, (FULL)CALC_BYTE_ORDER},
|
||||||
{"CUSTOMHELPDIR", "location of the custom help directory", CUSTOMHELPDIR, (FULL)0},
|
{"CUSTOMHELPDIR", "location of the custom help directory", CUSTOMHELPDIR, (FULL)0},
|
||||||
@@ -84,7 +77,7 @@ static struct infoname sys_info[] = {
|
|||||||
{"DEFAULTSHELL", "default shell to use", DEFAULTSHELL, (FULL)0},
|
{"DEFAULTSHELL", "default shell to use", DEFAULTSHELL, (FULL)0},
|
||||||
{"DEV_BITS", "device number size in bits", NULL, (FULL)DEV_BITS},
|
{"DEV_BITS", "device number size in bits", NULL, (FULL)DEV_BITS},
|
||||||
{"DISPLAY_DEFAULT", "default digits for float display", NULL, (FULL)DISPLAY_DEFAULT},
|
{"DISPLAY_DEFAULT", "default digits for float display", NULL, (FULL)DISPLAY_DEFAULT},
|
||||||
{"ECHO_PROG", "where the echo command is located", ECHO_PROG, (FULL)0},
|
{"ECHO", "where the echo command is located", ECHO, (FULL)0},
|
||||||
{"EPSILONPREC_DEFAULT", "2^-EPSILON_DEFAULT <= EPSILON_DEFAULT", NULL, (FULL)EPSILONPREC_DEFAULT},
|
{"EPSILONPREC_DEFAULT", "2^-EPSILON_DEFAULT <= EPSILON_DEFAULT", NULL, (FULL)EPSILONPREC_DEFAULT},
|
||||||
{"EPSILON_DEFAULT", "allowed error for float calculations", EPSILON_DEFAULT, (FULL)0},
|
{"EPSILON_DEFAULT", "allowed error for float calculations", EPSILON_DEFAULT, (FULL)0},
|
||||||
{"ERRMAX", "default errmax value", NULL, (FULL)ERRMAX},
|
{"ERRMAX", "default errmax value", NULL, (FULL)ERRMAX},
|
||||||
@@ -314,12 +307,14 @@ static void
|
|||||||
dump_name_value(void)
|
dump_name_value(void)
|
||||||
{
|
{
|
||||||
struct infoname *p; /* current infoname */
|
struct infoname *p; /* current infoname */
|
||||||
|
char *fmt; /* printf value format */
|
||||||
|
|
||||||
/* dump the entire table */
|
/* dump the entire table */
|
||||||
for (p = sys_info; p->name != NULL; ++p) {
|
for (p = sys_info; p->name != NULL; ++p) {
|
||||||
if (p->str == NULL) {
|
if (p->str == NULL) {
|
||||||
#if LONG_BITS == FULL_BITS || FULL_BITS == 32 || !defined(HAVE_LONGLONG)
|
#if LONG_BITS == FULL_BITS || FULL_BITS == 32 || !defined(HAVE_LONGLONG)
|
||||||
printf("%s%-23s\t%-8lu\t(0x%lx)\n",
|
fmt = "%s%-23s\t%-8lu\t(0x%lx)\n";
|
||||||
|
printf(fmt,
|
||||||
(conf->tab_ok ? "\t" : ""), p->name,
|
(conf->tab_ok ? "\t" : ""), p->name,
|
||||||
(unsigned long)p->nmbr,
|
(unsigned long)p->nmbr,
|
||||||
(unsigned long)p->nmbr);
|
(unsigned long)p->nmbr);
|
||||||
@@ -331,17 +326,17 @@ dump_name_value(void)
|
|||||||
* a 64 bit value do not support the %lld type.
|
* a 64 bit value do not support the %lld type.
|
||||||
* So we will only try %lld if %ld does not work.
|
* So we will only try %lld if %ld does not work.
|
||||||
*/
|
*/
|
||||||
# if defined(L64_FORMAT)
|
if (l_format < 0) {
|
||||||
printf("%s%-23s\t%-8lu\t(0x%lx)\n",
|
/* %ld prints lower 32 bits only, use %lld */
|
||||||
|
fmt = "%s%-23s\t%-8llu\t(0x%llx)\n";
|
||||||
|
} else {
|
||||||
|
/* %ld prints all 64 bits, use %ld */
|
||||||
|
fmt = "%s%-23s\t%-8lu\t(0x%lx)\n";
|
||||||
|
}
|
||||||
|
printf(fmt,
|
||||||
(conf->tab_ok ? "\t" : ""), p->name,
|
(conf->tab_ok ? "\t" : ""), p->name,
|
||||||
(unsigned long long)p->nmbr,
|
(unsigned long long)p->nmbr,
|
||||||
(unsigned long long)p->nmbr);
|
(unsigned long long)p->nmbr);
|
||||||
# else /* L64_FORMAT */
|
|
||||||
printf("%s%-23s\t%-8llu\t(0x%llx)\n",
|
|
||||||
(conf->tab_ok ? "\t" : ""), p->name,
|
|
||||||
(unsigned long long)p->nmbr,
|
|
||||||
(unsigned long long)p->nmbr);
|
|
||||||
# endif /* L64_FORMAT */
|
|
||||||
#endif
|
#endif
|
||||||
} else {
|
} else {
|
||||||
printf("%s%-23s\t\"%s\"\n",
|
printf("%s%-23s\t\"%s\"\n",
|
||||||
@@ -359,29 +354,36 @@ static void
|
|||||||
dump_mening_value(void)
|
dump_mening_value(void)
|
||||||
{
|
{
|
||||||
struct infoname *p; /* current infoname */
|
struct infoname *p; /* current infoname */
|
||||||
|
char *fmt; /* printf value format */
|
||||||
|
|
||||||
/* dump the entire table */
|
/* dump the entire table */
|
||||||
for (p = sys_info; p->name != NULL; ++p) {
|
for (p = sys_info; p->name != NULL; ++p) {
|
||||||
if (p->str == NULL) {
|
if (p->str == NULL) {
|
||||||
#if LONG_BITS == FULL_BITS || FULL_BITS == 32 || !defined(HAVE_LONGLONG)
|
#if LONG_BITS == FULL_BITS || FULL_BITS == 32 || !defined(HAVE_LONGLONG)
|
||||||
printf("%s%-36.36s\t%-8lu\t(0x%lx)\n",
|
fmt = "%s%-36.36s\t%-8lu\t(0x%lx)\n";
|
||||||
|
printf(fmt,
|
||||||
(conf->tab_ok ? "\t" : ""), p->meaning,
|
(conf->tab_ok ? "\t" : ""), p->meaning,
|
||||||
(unsigned long)p->nmbr,
|
(unsigned long)p->nmbr,
|
||||||
(unsigned long)p->nmbr);
|
(unsigned long)p->nmbr);
|
||||||
#else
|
#else
|
||||||
# if defined(L64_FORMAT)
|
/*
|
||||||
/* %ld prints all 64 bits, use %ld */
|
* Determine of %ld can print a 64 bit long long.
|
||||||
printf("%s%-36.36s\t%-8lu\t(0x%lx)\n",
|
*
|
||||||
(conf->tab_ok ? "\t" : ""), p->meaning,
|
* Some systems that can make use of %ld to print a
|
||||||
(unsigned long long)p->nmbr,
|
* a 64 bit value do not support the %lld type.
|
||||||
(unsigned long long)p->nmbr);
|
* So we will only try %lld if %ld does not work.
|
||||||
# else /* L64_FORMAT */
|
*/
|
||||||
|
if (l_format < 0) {
|
||||||
/* %ld prints lower 32 bits only, use %lld */
|
/* %ld prints lower 32 bits only, use %lld */
|
||||||
printf("%s%-36.36s\t%-8llu\t(0x%llx)\n",
|
fmt = "%s%-36.36s\t%-8llu\t(0x%llx)\n";
|
||||||
|
} else {
|
||||||
|
/* %ld prints all 64 bits, use %ld */
|
||||||
|
fmt = "%s%-36.36s\t%-8lu\t(0x%lx)\n";
|
||||||
|
}
|
||||||
|
printf(fmt,
|
||||||
(conf->tab_ok ? "\t" : ""), p->meaning,
|
(conf->tab_ok ? "\t" : ""), p->meaning,
|
||||||
(unsigned long long)p->nmbr,
|
(unsigned long long)p->nmbr,
|
||||||
(unsigned long long)p->nmbr);
|
(unsigned long long)p->nmbr);
|
||||||
# endif /* L64_FORMAT */
|
|
||||||
#endif
|
#endif
|
||||||
} else {
|
} else {
|
||||||
printf("%s%-36.36s\t\"%s\"\n",
|
printf("%s%-36.36s\t\"%s\"\n",
|
||||||
|
@@ -1,31 +1,33 @@
|
|||||||
/*
|
/*
|
||||||
* custtbl - custom interface table
|
* Copyright (c) 1997 by Landon Curt Noll. All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999 Landon Curt Noll
|
* Permission to use, copy, modify, and distribute this software and
|
||||||
|
* its documentation for any purpose and without fee is hereby granted,
|
||||||
|
* provided that the above copyright, this permission notice and text
|
||||||
|
* this comment, and the disclaimer below appear in all of the following:
|
||||||
*
|
*
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
* supporting documentation
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
* source copies
|
||||||
* as published by the Free Software Foundation.
|
* source works derived from this source
|
||||||
|
* binaries derived from this source or from derived source
|
||||||
*
|
*
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
* LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
* EVENT SHALL LANDON CURT NOLL BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
||||||
* Public License for more details.
|
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
|
||||||
|
* USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||||
|
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
*
|
*
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
* Comments, suggestions, bug fixes and questions about these routines
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
* are welcome. Send EMail to the address given below.
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
*
|
||||||
* @(#) $Revision: 29.1 $
|
* Happy bit twiddling,
|
||||||
* @(#) $Id: custtbl.c,v 29.1 1999/12/14 09:15:37 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/custtbl.c,v $
|
|
||||||
*
|
*
|
||||||
* Under source code control: 1997/03/09 02:28:54
|
* Landon Curt Noll
|
||||||
* File existed as early as: 1997
|
* http://reality.sgi.com/chongo/
|
||||||
*
|
*
|
||||||
* chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
* chongo <was here> /\../\
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
@@ -25,29 +25,3 @@ LIBRARY
|
|||||||
|
|
||||||
SEE ALSO
|
SEE ALSO
|
||||||
custom
|
custom
|
||||||
|
|
||||||
## Copyright (C) 1999 Landon Curt Noll
|
|
||||||
##
|
|
||||||
## Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
## the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
## as published by the Free Software Foundation.
|
|
||||||
##
|
|
||||||
## Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
## or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
## Public License for more details.
|
|
||||||
##
|
|
||||||
## A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
## distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
## received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
##
|
|
||||||
## @(#) $Revision: 29.1 $
|
|
||||||
## @(#) $Id: devnull,v 29.1 1999/12/14 09:15:37 chongo Exp $
|
|
||||||
## @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/devnull,v $
|
|
||||||
##
|
|
||||||
## Under source code control: 1997/03/09 17:49:12
|
|
||||||
## File existed as early as: 1997
|
|
||||||
##
|
|
||||||
## chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
## Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
|
@@ -1,41 +1,25 @@
|
|||||||
|
/*
|
||||||
|
* Permission to use, copy, modify, and distribute this software and
|
||||||
|
* its documentation for any purpose and without fee is hereby granted.
|
||||||
|
*
|
||||||
|
* LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
||||||
|
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
|
||||||
|
* EVENT SHALL LANDON CURT NOLL BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
||||||
|
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
|
||||||
|
* USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||||
|
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*
|
||||||
|
* chongo was here /\../\ http://reality.sgi.com/chongo/
|
||||||
|
*/
|
||||||
/*
|
/*
|
||||||
* halflen - determine the length of numeric value in HALFs
|
* halflen - determine the length of numeric value in HALFs
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999 Landon Curt Noll
|
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: halflen.cal,v 29.1 1999/12/14 09:15:37 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/halflen.cal,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1997/03/08 20:51:32
|
|
||||||
* File existed as early as: 1997
|
|
||||||
*
|
|
||||||
* chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* This file is part of the custom sample calc files.
|
* This file is part of the custom sample calc files.
|
||||||
*
|
*
|
||||||
* NOTE: You must use a calc that was compiled with ALLOW_CUSTOM= -DCUSTOM
|
* NOTE: You must use a calc that was compiled with ALLOW_CUSTOM= -DCUSTOM
|
||||||
* and run with a -C arg.
|
* and run with a -C arg.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
define halflen(num)
|
define halflen(num)
|
||||||
{
|
{
|
||||||
local baseb = custom("sysinfo","BASEB"); /* bit len of a HALF */
|
local baseb = custom("sysinfo","BASEB"); /* bit len of a HALF */
|
||||||
@@ -64,6 +48,6 @@ define halflen(num)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (config("resource_debug") >= 0) {
|
if (config("lib_debug") >= 0) {
|
||||||
print "halflen(num) defined";
|
print "halflen(num) defined";
|
||||||
}
|
}
|
||||||
|
26
custom/help
26
custom/help
@@ -26,29 +26,3 @@ LIBRARY
|
|||||||
|
|
||||||
SEE ALSO
|
SEE ALSO
|
||||||
custom
|
custom
|
||||||
|
|
||||||
## Copyright (C) 1999 Landon Curt Noll
|
|
||||||
##
|
|
||||||
## Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
## the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
## as published by the Free Software Foundation.
|
|
||||||
##
|
|
||||||
## Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
## or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
## Public License for more details.
|
|
||||||
##
|
|
||||||
## A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
## distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
## received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
##
|
|
||||||
## @(#) $Revision: 29.1 $
|
|
||||||
## @(#) $Id: help,v 29.1 1999/12/14 09:15:37 chongo Exp $
|
|
||||||
## @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/help,v $
|
|
||||||
##
|
|
||||||
## Under source code control: 1997/03/09 06:03:58
|
|
||||||
## File existed as early as: 1997
|
|
||||||
##
|
|
||||||
## chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
## Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
|
@@ -48,29 +48,3 @@ LIBRARY
|
|||||||
|
|
||||||
SEE ALSO
|
SEE ALSO
|
||||||
custom
|
custom
|
||||||
|
|
||||||
## Copyright (C) 1999 Landon Curt Noll
|
|
||||||
##
|
|
||||||
## Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
## the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
## as published by the Free Software Foundation.
|
|
||||||
##
|
|
||||||
## Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
## or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
## Public License for more details.
|
|
||||||
##
|
|
||||||
## A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
## distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
## received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
##
|
|
||||||
## @(#) $Revision: 29.1 $
|
|
||||||
## @(#) $Id: pzasusb8,v 29.1 1999/12/14 09:15:37 chongo Exp $
|
|
||||||
## @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/pzasusb8,v $
|
|
||||||
##
|
|
||||||
## Under source code control: 1999/10/06 04:05:43
|
|
||||||
## File existed as early as: 1999
|
|
||||||
##
|
|
||||||
## chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
## Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
|
@@ -1,36 +1,10 @@
|
|||||||
/*
|
/*
|
||||||
* pzasusb8 - print numereator as a string of USB8s
|
* Permission to use, copy, modify, and distribute this software and
|
||||||
|
* its documentation for any purpose and without fee is hereby granted.
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999 Ernest Bowen and Landon Curt Noll
|
* Ernest Bowen, following Landon Curt Noll
|
||||||
*
|
|
||||||
* Primary author: Ernest Bowen
|
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: pzasusb8.cal,v 29.1 1999/12/14 09:15:37 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/pzasusb8.cal,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1999/10/06 03:11:12
|
|
||||||
* File existed as early as: 1998
|
|
||||||
*
|
|
||||||
* chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
print "p(n) prints array in which numerator of n is stored as a";
|
print "p(n) prints array in which numerator of n is stored as a";
|
||||||
print "sequence of 2-hex-digits representing unsigned characters.";
|
print "sequence of 2-hex-digits representing unsigned characters.";
|
||||||
print "h(n) printx n in hex notation. This should be the same as";
|
print "h(n) printx n in hex notation. This should be the same as";
|
||||||
|
@@ -52,29 +52,3 @@ LIBRARY
|
|||||||
|
|
||||||
SEE ALSO
|
SEE ALSO
|
||||||
custom
|
custom
|
||||||
|
|
||||||
## Copyright (C) 1999 Landon Curt Noll
|
|
||||||
##
|
|
||||||
## Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
## the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
## as published by the Free Software Foundation.
|
|
||||||
##
|
|
||||||
## Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
## or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
## Public License for more details.
|
|
||||||
##
|
|
||||||
## A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
## distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
## received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
##
|
|
||||||
## @(#) $Revision: 29.1 $
|
|
||||||
## @(#) $Id: sysinfo,v 29.1 1999/12/14 09:15:37 chongo Exp $
|
|
||||||
## @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/sysinfo,v $
|
|
||||||
##
|
|
||||||
## Under source code control: 1997/03/09 23:14:40
|
|
||||||
## File existed as early as: 1997
|
|
||||||
##
|
|
||||||
## chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
## Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
|
54
endian.c
54
endian.c
@@ -1,38 +1,32 @@
|
|||||||
/*
|
/*
|
||||||
* endian - determine the byte order of a long on your machine
|
* endian - Determine the byte order of a long on your machine.
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999 Landon Curt Noll
|
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: endian.c,v 29.1 1999/12/14 09:15:37 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/endian.c,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1993/11/15 04:32:58
|
|
||||||
* File existed as early as: 1993
|
|
||||||
*
|
|
||||||
* chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Big Endian: Amdahl, 68k, Pyramid, Mips, Sparc, ...
|
* Big Endian: Amdahl, 68k, Pyramid, Mips, Sparc, ...
|
||||||
* Little Endian: Vax, 32k, Spim (Dec Mips), i386, i486, ...
|
* Little Endian: Vax, 32k, Spim (Dec Mips), i386, i486, ...
|
||||||
*/
|
*/
|
||||||
|
/*
|
||||||
|
* Copyright (c) 1993 by Landon Curt Noll. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Permission to use, copy, modify, and distribute this software and
|
||||||
|
* its documentation for any purpose and without fee is hereby granted,
|
||||||
|
* provided that the above copyright, this permission notice and text
|
||||||
|
* this comment, and the disclaimer below appear in all of the following:
|
||||||
|
*
|
||||||
|
* supporting documentation
|
||||||
|
* source copies
|
||||||
|
* source works derived from this source
|
||||||
|
* binaries derived from this source or from derived source
|
||||||
|
*
|
||||||
|
* LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
||||||
|
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
|
||||||
|
* EVENT SHALL LANDON CURT NOLL BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
||||||
|
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
|
||||||
|
* USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||||
|
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*
|
||||||
|
* chongo was here /\../\
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
|
33
file.c
33
file.c
@@ -1,36 +1,11 @@
|
|||||||
/*
|
/*
|
||||||
* file - file I/O routines callable by users
|
* Copyright (c) 1997 David I. Bell
|
||||||
|
* Permission is granted to use, distribute, or modify this source,
|
||||||
|
* provided that this copyright notice remains intact.
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999 David I. Bell and Landon Curt Noll
|
* File I/O routines callable by users.
|
||||||
*
|
|
||||||
* Primary author: David I. Bell
|
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: file.c,v 29.1 1999/12/14 09:15:37 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/file.c,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1991/07/20 00:21:56
|
|
||||||
* File existed as early as: 1991
|
|
||||||
*
|
|
||||||
* chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
32
file.h
32
file.h
@@ -1,33 +1,9 @@
|
|||||||
/*
|
/*
|
||||||
* file - file I/O routines callable by users
|
* Copyright (c) 1997 David I. Bell
|
||||||
|
* Permission is granted to use, distribute, or modify this source,
|
||||||
|
* provided that this copyright notice remains intact.
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999 David I. Bell and Landon Curt Noll
|
* File I/O routines callable by users.
|
||||||
*
|
|
||||||
* Primary author: David I. Bell
|
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: file.h,v 29.1 1999/12/14 09:15:37 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/file.h,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1996/05/24 05:55:58
|
|
||||||
* File existed as early as: 1996
|
|
||||||
*
|
|
||||||
* chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
52
fposval.c
52
fposval.c
@@ -1,34 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* fposval - Determine information about the file position type
|
* fposval - Determine information about the file position type
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999 Landon Curt Noll
|
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: fposval.c,v 29.1 1999/12/14 09:15:38 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/fposval.c,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1994/11/05 03:19:52
|
|
||||||
* File existed as early as: 1994
|
|
||||||
*
|
|
||||||
* chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* The include file have_pos.h, as built during the make process will
|
* The include file have_pos.h, as built during the make process will
|
||||||
* define the type FILEPOS as the type used to describe file positions.
|
* define the type FILEPOS as the type used to describe file positions.
|
||||||
* We will print information regarding the size and byte order
|
* We will print information regarding the size and byte order
|
||||||
@@ -53,7 +25,29 @@
|
|||||||
* will either be a copy or a copy with HALFs swapped depending on the
|
* will either be a copy or a copy with HALFs swapped depending on the
|
||||||
* Endian order of the hardware.
|
* Endian order of the hardware.
|
||||||
*/
|
*/
|
||||||
|
/*
|
||||||
|
* Copyright (c) 1996 by Landon Curt Noll. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Permission to use, copy, modify, and distribute this software and
|
||||||
|
* its documentation for any purpose and without fee is hereby granted,
|
||||||
|
* provided that the above copyright, this permission notice and text
|
||||||
|
* this comment, and the disclaimer below appear in all of the following:
|
||||||
|
*
|
||||||
|
* supporting documentation
|
||||||
|
* source copies
|
||||||
|
* source works derived from this source
|
||||||
|
* binaries derived from this source or from derived source
|
||||||
|
*
|
||||||
|
* LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
||||||
|
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
|
||||||
|
* EVENT SHALL LANDON CURT NOLL BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
||||||
|
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
|
||||||
|
* USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||||
|
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*
|
||||||
|
* chongo was here /\../\
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
192
func.c
192
func.c
@@ -1,32 +1,9 @@
|
|||||||
/*
|
/*
|
||||||
* func - built-in functions implemented here
|
* Copyright (c) 1997 David I. Bell
|
||||||
|
* Permission is granted to use, distribute, or modify this source,
|
||||||
|
* provided that this copyright notice remains intact.
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999 David I. Bell, Landon Curt Noll and Ernest Bowen
|
* Built-in functions implemented here
|
||||||
*
|
|
||||||
* Primary author: David I. Bell
|
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: func.c,v 29.1 1999/12/14 09:15:38 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/func.c,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1990/02/15 01:48:15
|
|
||||||
* File existed as early as: before 1990
|
|
||||||
*
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
@@ -1900,31 +1877,25 @@ static VALUE
|
|||||||
f_exp(int count, VALUE **vals)
|
f_exp(int count, VALUE **vals)
|
||||||
{
|
{
|
||||||
VALUE result;
|
VALUE result;
|
||||||
NUMBER *eps;
|
NUMBER *err;
|
||||||
NUMBER *q;
|
|
||||||
COMPLEX *c;
|
COMPLEX *c;
|
||||||
|
|
||||||
/* initialize VALUE */
|
/* initialize VALUE */
|
||||||
result.v_subtype = V_NOSUBTYPE;
|
result.v_subtype = V_NOSUBTYPE;
|
||||||
|
|
||||||
eps = conf->epsilon;
|
err = conf->epsilon;
|
||||||
if (count == 2) {
|
if (count == 2) {
|
||||||
if (vals[1]->v_type != V_NUM || qiszero(vals[1]->v_num))
|
if (vals[1]->v_type != V_NUM || qiszero(vals[1]->v_num))
|
||||||
return error_value(E_EXP1);
|
return error_value(E_EXP1);
|
||||||
eps = vals[1]->v_num;
|
err = vals[1]->v_num;
|
||||||
}
|
}
|
||||||
switch (vals[0]->v_type) {
|
switch (vals[0]->v_type) {
|
||||||
case V_NUM:
|
case V_NUM:
|
||||||
q = qexp(vals[0]->v_num, eps);
|
result.v_num = qexp(vals[0]->v_num, err);
|
||||||
if (q == NULL)
|
|
||||||
return error_value(E_EXP3);
|
|
||||||
result.v_num = q;
|
|
||||||
result.v_type = V_NUM;
|
result.v_type = V_NUM;
|
||||||
break;
|
break;
|
||||||
case V_COM:
|
case V_COM:
|
||||||
c = cexp(vals[0]->v_com, eps);
|
c = cexp(vals[0]->v_com, err);
|
||||||
if (c == NULL)
|
|
||||||
return error_value(E_EXP3);
|
|
||||||
result.v_com = c;
|
result.v_com = c;
|
||||||
result.v_type = V_COM;
|
result.v_type = V_COM;
|
||||||
if (cisreal(c)) {
|
if (cisreal(c)) {
|
||||||
@@ -1990,26 +1961,24 @@ f_cos(int count, VALUE **vals)
|
|||||||
{
|
{
|
||||||
VALUE result;
|
VALUE result;
|
||||||
COMPLEX *c;
|
COMPLEX *c;
|
||||||
NUMBER *eps;
|
NUMBER *err;
|
||||||
|
|
||||||
/* initialize VALUE */
|
/* initialize VALUE */
|
||||||
result.v_subtype = V_NOSUBTYPE;
|
result.v_subtype = V_NOSUBTYPE;
|
||||||
|
|
||||||
eps = conf->epsilon;
|
err = conf->epsilon;
|
||||||
if (count == 2) {
|
if (count == 2) {
|
||||||
if (vals[1]->v_type != V_NUM || qiszero(vals[1]->v_num))
|
if (vals[1]->v_type != V_NUM || qiszero(vals[1]->v_num))
|
||||||
return error_value(E_COS1);
|
return error_value(E_COS1);
|
||||||
eps = vals[1]->v_num;
|
err = vals[1]->v_num;
|
||||||
}
|
}
|
||||||
switch (vals[0]->v_type) {
|
switch (vals[0]->v_type) {
|
||||||
case V_NUM:
|
case V_NUM:
|
||||||
result.v_num = qcos(vals[0]->v_num, eps);
|
result.v_num = qcos(vals[0]->v_num, err);
|
||||||
result.v_type = V_NUM;
|
result.v_type = V_NUM;
|
||||||
break;
|
break;
|
||||||
case V_COM:
|
case V_COM:
|
||||||
c = ccos(vals[0]->v_com, eps);
|
c = ccos(vals[0]->v_com, err);
|
||||||
if (c == NULL)
|
|
||||||
return error_value(E_COS3);
|
|
||||||
result.v_com = c;
|
result.v_com = c;
|
||||||
result.v_type = V_COM;
|
result.v_type = V_COM;
|
||||||
if (cisreal(c)) {
|
if (cisreal(c)) {
|
||||||
@@ -2030,26 +1999,24 @@ f_sin(int count, VALUE **vals)
|
|||||||
{
|
{
|
||||||
VALUE result;
|
VALUE result;
|
||||||
COMPLEX *c;
|
COMPLEX *c;
|
||||||
NUMBER *eps;
|
NUMBER *err;
|
||||||
|
|
||||||
/* initialize VALUE */
|
/* initialize VALUE */
|
||||||
result.v_subtype = V_NOSUBTYPE;
|
result.v_subtype = V_NOSUBTYPE;
|
||||||
|
|
||||||
eps = conf->epsilon;
|
err = conf->epsilon;
|
||||||
if (count == 2) {
|
if (count == 2) {
|
||||||
if (vals[1]->v_type != V_NUM || qiszero(vals[1]->v_num))
|
if (vals[1]->v_type != V_NUM || qiszero(vals[1]->v_num))
|
||||||
return error_value(E_SIN1);
|
return error_value(E_COS1);
|
||||||
eps = vals[1]->v_num;
|
err = vals[1]->v_num;
|
||||||
}
|
}
|
||||||
switch (vals[0]->v_type) {
|
switch (vals[0]->v_type) {
|
||||||
case V_NUM:
|
case V_NUM:
|
||||||
result.v_num = qsin(vals[0]->v_num, eps);
|
result.v_num = qsin(vals[0]->v_num, err);
|
||||||
result.v_type = V_NUM;
|
result.v_type = V_NUM;
|
||||||
break;
|
break;
|
||||||
case V_COM:
|
case V_COM:
|
||||||
c = csin(vals[0]->v_com, eps);
|
c = csin(vals[0]->v_com, err);
|
||||||
if (c == NULL)
|
|
||||||
return error_value(E_SIN3);
|
|
||||||
result.v_com = c;
|
result.v_com = c;
|
||||||
result.v_type = V_COM;
|
result.v_type = V_COM;
|
||||||
if (cisreal(c)) {
|
if (cisreal(c)) {
|
||||||
@@ -2059,7 +2026,7 @@ f_sin(int count, VALUE **vals)
|
|||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return error_value(E_SIN2);
|
return error_value(E_COS2);
|
||||||
}
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
@@ -2219,36 +2186,30 @@ static VALUE
|
|||||||
f_sinh(int count, VALUE **vals)
|
f_sinh(int count, VALUE **vals)
|
||||||
{
|
{
|
||||||
VALUE result;
|
VALUE result;
|
||||||
NUMBER *eps;
|
NUMBER *err;
|
||||||
NUMBER *q;
|
NUMBER *q;
|
||||||
COMPLEX *c;
|
|
||||||
|
|
||||||
/* initialize VALUE */
|
/* initialize VALUE */
|
||||||
result.v_subtype = V_NOSUBTYPE;
|
result.v_subtype = V_NOSUBTYPE;
|
||||||
|
|
||||||
eps = conf->epsilon;
|
err = conf->epsilon;
|
||||||
if (count == 2) {
|
if (count == 2) {
|
||||||
if (vals[1]->v_type != V_NUM || qiszero(vals[1]->v_num))
|
if (vals[1]->v_type != V_NUM || qiszero(vals[1]->v_num))
|
||||||
return error_value(E_SINH1);
|
return error_value(E_SINH1);
|
||||||
eps = vals[1]->v_num;
|
err = vals[1]->v_num;
|
||||||
}
|
}
|
||||||
switch (vals[0]->v_type) {
|
switch (vals[0]->v_type) {
|
||||||
case V_NUM:
|
case V_NUM:
|
||||||
q = qsinh(vals[0]->v_num, eps);
|
result.v_num = qsinh(vals[0]->v_num, err);
|
||||||
if (q == NULL)
|
|
||||||
return error_value(E_SINH3);
|
|
||||||
result.v_num = q;
|
|
||||||
result.v_type = V_NUM;
|
result.v_type = V_NUM;
|
||||||
break;
|
break;
|
||||||
case V_COM:
|
case V_COM:
|
||||||
c = csinh(vals[0]->v_com, eps);
|
result.v_com = csinh(vals[0]->v_com, err);
|
||||||
if (c == NULL)
|
|
||||||
return error_value(E_SINH3);
|
|
||||||
result.v_com = c;
|
|
||||||
result.v_type = V_COM;
|
result.v_type = V_COM;
|
||||||
if (cisreal(c)) {
|
if (cisreal(result.v_com)) {
|
||||||
result.v_num = qlink(c->real);
|
q = qlink(result.v_com->real);
|
||||||
comfree(c);
|
comfree(result.v_com);
|
||||||
|
result.v_num = q;
|
||||||
result.v_type = V_NUM;
|
result.v_type = V_NUM;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -2262,36 +2223,30 @@ static VALUE
|
|||||||
f_cosh(int count, VALUE **vals)
|
f_cosh(int count, VALUE **vals)
|
||||||
{
|
{
|
||||||
VALUE result;
|
VALUE result;
|
||||||
NUMBER *eps;
|
NUMBER *err;
|
||||||
NUMBER *q;
|
NUMBER *q;
|
||||||
COMPLEX *c;
|
|
||||||
|
|
||||||
/* initialize VALUE */
|
/* initialize VALUE */
|
||||||
result.v_subtype = V_NOSUBTYPE;
|
result.v_subtype = V_NOSUBTYPE;
|
||||||
|
|
||||||
eps = conf->epsilon;
|
err = conf->epsilon;
|
||||||
if (count == 2) {
|
if (count == 2) {
|
||||||
if (vals[1]->v_type != V_NUM || qiszero(vals[1]->v_num))
|
if (vals[1]->v_type != V_NUM || qiszero(vals[1]->v_num))
|
||||||
return error_value(E_COSH1);
|
return error_value(E_COSH1);
|
||||||
eps = vals[1]->v_num;
|
err = vals[1]->v_num;
|
||||||
}
|
}
|
||||||
switch (vals[0]->v_type) {
|
switch (vals[0]->v_type) {
|
||||||
case V_NUM:
|
case V_NUM:
|
||||||
q = qcosh(vals[0]->v_num, eps);
|
result.v_num = qcosh(vals[0]->v_num, err);
|
||||||
if (q == NULL)
|
|
||||||
return error_value(E_COSH3);
|
|
||||||
result.v_num = q;
|
|
||||||
result.v_type = V_NUM;
|
result.v_type = V_NUM;
|
||||||
break;
|
break;
|
||||||
case V_COM:
|
case V_COM:
|
||||||
c = ccosh(vals[0]->v_com, eps);
|
result.v_com = ccosh(vals[0]->v_com, err);
|
||||||
if (c == NULL)
|
|
||||||
return error_value(E_COSH3);
|
|
||||||
result.v_com = c;
|
|
||||||
result.v_type = V_COM;
|
result.v_type = V_COM;
|
||||||
if (cisreal(c)) {
|
if (cisreal(result.v_com)) {
|
||||||
result.v_num = qlink(c->real);
|
q = qlink(result.v_com->real);
|
||||||
comfree(c);
|
comfree(result.v_com);
|
||||||
|
result.v_num = q;
|
||||||
result.v_type = V_NUM;
|
result.v_type = V_NUM;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@@ -3029,18 +2984,18 @@ static VALUE
|
|||||||
f_gd(int count, VALUE **vals)
|
f_gd(int count, VALUE **vals)
|
||||||
{
|
{
|
||||||
VALUE result;
|
VALUE result;
|
||||||
NUMBER *eps;
|
NUMBER *err;
|
||||||
NUMBER *q;
|
NUMBER *q;
|
||||||
COMPLEX *tmp;
|
COMPLEX *tmp;
|
||||||
|
|
||||||
/* initialize VALUE */
|
/* initialize VALUE */
|
||||||
result.v_subtype = V_NOSUBTYPE;
|
result.v_subtype = V_NOSUBTYPE;
|
||||||
|
|
||||||
eps = conf->epsilon;
|
err = conf->epsilon;
|
||||||
if (count == 2) {
|
if (count == 2) {
|
||||||
if (vals[1]->v_type != V_NUM || qiszero(vals[1]->v_num))
|
if (vals[1]->v_type != V_NUM || qiszero(vals[1]->v_num))
|
||||||
return error_value(E_GD1);
|
return error_value(E_GD1);
|
||||||
eps = vals[1]->v_num;
|
err = vals[1]->v_num;
|
||||||
}
|
}
|
||||||
result.v_type = V_COM;
|
result.v_type = V_COM;
|
||||||
switch (vals[0]->v_type) {
|
switch (vals[0]->v_type) {
|
||||||
@@ -3053,17 +3008,17 @@ f_gd(int count, VALUE **vals)
|
|||||||
tmp = comalloc();
|
tmp = comalloc();
|
||||||
qfree(tmp->real);
|
qfree(tmp->real);
|
||||||
tmp->real = qlink(vals[0]->v_num);
|
tmp->real = qlink(vals[0]->v_num);
|
||||||
result.v_com = cgd(tmp, eps);
|
result.v_com = cgd(tmp, err);
|
||||||
comfree(tmp);
|
comfree(tmp);
|
||||||
break;
|
break;
|
||||||
case V_COM:
|
case V_COM:
|
||||||
result.v_com = cgd(vals[0]->v_com, eps);
|
result.v_com = cgd(vals[0]->v_com, err);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return error_value(E_GD2);
|
return error_value(E_GD2);
|
||||||
}
|
}
|
||||||
if (result.v_com == NULL)
|
if (result.v_com == NULL)
|
||||||
return error_value(E_GD3);
|
return error_value(E_LOGINF);
|
||||||
if (cisreal(result.v_com)) {
|
if (cisreal(result.v_com)) {
|
||||||
q = qlink(result.v_com->real);
|
q = qlink(result.v_com->real);
|
||||||
comfree(result.v_com);
|
comfree(result.v_com);
|
||||||
@@ -3078,18 +3033,18 @@ static VALUE
|
|||||||
f_agd(int count, VALUE **vals)
|
f_agd(int count, VALUE **vals)
|
||||||
{
|
{
|
||||||
VALUE result;
|
VALUE result;
|
||||||
NUMBER *eps;
|
NUMBER *err;
|
||||||
NUMBER *q;
|
NUMBER *q;
|
||||||
COMPLEX *tmp;
|
COMPLEX *tmp;
|
||||||
|
|
||||||
/* initialize VALUE */
|
/* initialize VALUE */
|
||||||
result.v_subtype = V_NOSUBTYPE;
|
result.v_subtype = V_NOSUBTYPE;
|
||||||
|
|
||||||
eps = conf->epsilon;
|
err = conf->epsilon;
|
||||||
if (count == 2) {
|
if (count == 2) {
|
||||||
if (vals[1]->v_type != V_NUM || qiszero(vals[1]->v_num))
|
if (vals[1]->v_type != V_NUM || qiszero(vals[1]->v_num))
|
||||||
return error_value(E_AGD1);
|
return error_value(E_AGD1);
|
||||||
eps = vals[1]->v_num;
|
err = vals[1]->v_num;
|
||||||
}
|
}
|
||||||
result.v_type = V_COM;
|
result.v_type = V_COM;
|
||||||
switch (vals[0]->v_type) {
|
switch (vals[0]->v_type) {
|
||||||
@@ -3102,17 +3057,17 @@ f_agd(int count, VALUE **vals)
|
|||||||
tmp = comalloc();
|
tmp = comalloc();
|
||||||
qfree(tmp->real);
|
qfree(tmp->real);
|
||||||
tmp->real = qlink(vals[0]->v_num);
|
tmp->real = qlink(vals[0]->v_num);
|
||||||
result.v_com = cagd(tmp, eps);
|
result.v_com = cagd(tmp, err);
|
||||||
comfree(tmp);
|
comfree(tmp);
|
||||||
break;
|
break;
|
||||||
case V_COM:
|
case V_COM:
|
||||||
result.v_com = cagd(vals[0]->v_com, eps);
|
result.v_com = cagd(vals[0]->v_com, err);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return error_value(E_AGD2);
|
return error_value(E_AGD2);
|
||||||
}
|
}
|
||||||
if (result.v_com == NULL)
|
if (result.v_com == NULL)
|
||||||
return error_value(E_AGD3);
|
return error_value(E_LOGINF);
|
||||||
if (cisreal(result.v_com)) {
|
if (cisreal(result.v_com)) {
|
||||||
q = qlink(result.v_com->real);
|
q = qlink(result.v_com->real);
|
||||||
comfree(result.v_com);
|
comfree(result.v_com);
|
||||||
@@ -7359,49 +7314,6 @@ f_md5(int count, VALUE **vals)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static VALUE
|
|
||||||
f_argv(int count, VALUE **vals)
|
|
||||||
{
|
|
||||||
int arg; /* the argv_value string index */
|
|
||||||
VALUE result;
|
|
||||||
|
|
||||||
/* initialize VALUE */
|
|
||||||
result.v_subtype = V_NOSUBTYPE;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* arg check
|
|
||||||
*/
|
|
||||||
if (count == 0) {
|
|
||||||
|
|
||||||
/* return the argc count */
|
|
||||||
result.v_type = V_NUM;
|
|
||||||
result.v_num = itoq((long) argc_value);
|
|
||||||
|
|
||||||
} else {
|
|
||||||
|
|
||||||
/* firewall */
|
|
||||||
if (vals[0]->v_type != V_NUM || qisfrac(vals[0]->v_num) ||
|
|
||||||
qisneg(vals[0]->v_num) || zge31b(vals[0]->v_num->num)) {
|
|
||||||
|
|
||||||
math_error("argv argument must be a integer [0,2^31)");
|
|
||||||
/*NOTREACHED*/
|
|
||||||
}
|
|
||||||
|
|
||||||
/* return the n-th argv string */
|
|
||||||
arg = qtoi(vals[0]->v_num);
|
|
||||||
if (arg < argc_value && argv_value[arg] != NULL) {
|
|
||||||
result.v_type = V_STR;
|
|
||||||
result.v_str = makestring(strdup(argv_value[arg]));
|
|
||||||
} else {
|
|
||||||
result.v_type = V_NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/* return the result */
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#endif /* !FUNCLIST */
|
#endif /* !FUNCLIST */
|
||||||
|
|
||||||
|
|
||||||
@@ -7466,8 +7378,6 @@ static CONST struct builtin builtins[] = {
|
|||||||
"approximate a by multiple of b using rounding c"},
|
"approximate a by multiple of b using rounding c"},
|
||||||
{"arg", 1, 2, 0, OP_NOP, 0, f_arg,
|
{"arg", 1, 2, 0, OP_NOP, 0, f_arg,
|
||||||
"argument (the angle) of complex number"},
|
"argument (the angle) of complex number"},
|
||||||
{"argv", 0, 1, 0, OP_NOP, 0, f_argv,
|
|
||||||
"calc argc or argv string"},
|
|
||||||
{"asec", 1, 2, 0, OP_NOP, 0, f_asec,
|
{"asec", 1, 2, 0, OP_NOP, 0, f_asec,
|
||||||
"arcsecant of a within accuracy b"},
|
"arcsecant of a within accuracy b"},
|
||||||
{"asech", 1, 2, 0, OP_NOP, 0, f_asech,
|
{"asech", 1, 2, 0, OP_NOP, 0, f_asech,
|
||||||
|
29
func.h
29
func.h
@@ -1,30 +1,7 @@
|
|||||||
/*
|
/*
|
||||||
* func - built-in function interface definitions
|
* Copyright (c) 1997 David I. Bell
|
||||||
*
|
* Permission is granted to use, distribute, or modify this source,
|
||||||
* Copyright (C) 1999 David I. Bell
|
* provided that this copyright notice remains intact.
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: func.h,v 29.1 1999/12/14 09:15:38 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/func.h,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1990/02/15 01:48:33
|
|
||||||
* File existed as early as: before 1990
|
|
||||||
*
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
46
hash.c
46
hash.c
@@ -1,34 +1,25 @@
|
|||||||
/*
|
/*
|
||||||
* hash - one-way hash routines
|
* Copyright (c) 1997 by Landon Curt Noll. All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999 Landon Curt Noll
|
* Permission to use, copy, modify, and distribute this software and
|
||||||
|
* its documentation for any purpose and without fee is hereby granted,
|
||||||
|
* provided that the above copyright, this permission notice and text
|
||||||
|
* this comment, and the disclaimer below appear in all of the following:
|
||||||
*
|
*
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
* supporting documentation
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
* source copies
|
||||||
* as published by the Free Software Foundation.
|
* source works derived from this source
|
||||||
|
* binaries derived from this source or from derived source
|
||||||
*
|
*
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
* LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
* EVENT SHALL LANDON CURT NOLL BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
||||||
* Public License for more details.
|
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
|
||||||
*
|
* USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.2 $
|
|
||||||
* @(#) $Id: hash.c,v 29.2 1999/12/14 19:37:46 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/hash.c,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1995/11/23 05:13:11
|
|
||||||
* File existed as early as: 1995
|
|
||||||
*
|
|
||||||
* chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
@@ -974,16 +965,13 @@ hash_value(int type, void *v, HASH *state)
|
|||||||
state = hash_int(type, value->v_config->blkbase, state);
|
state = hash_int(type, value->v_config->blkbase, state);
|
||||||
state = hash_int(type, value->v_config->blkfmt, state);
|
state = hash_int(type, value->v_config->blkfmt, state);
|
||||||
state = hash_long(type,
|
state = hash_long(type,
|
||||||
(long)value->v_config->resource_debug, state);
|
(long)value->v_config->lib_debug, state);
|
||||||
state = hash_long(type,
|
state = hash_long(type,
|
||||||
(long)value->v_config->calc_debug, state);
|
(long)value->v_config->calc_debug, state);
|
||||||
state = hash_long(type,
|
state = hash_long(type,
|
||||||
(long)value->v_config->user_debug, state);
|
(long)value->v_config->user_debug, state);
|
||||||
state = hash_bool(type, value->v_config->verbose_quit, state);
|
state = hash_bool(type, value->v_config->verbose_quit, state);
|
||||||
state = hash_int(type, value->v_config->ctrl_d, state);
|
state = hash_int(type, value->v_config->ctrl_d, state);
|
||||||
state = hash_str(type, value->v_config->program, state);
|
|
||||||
state = hash_str(type, value->v_config->base_name, state);
|
|
||||||
state = hash_str(type, value->v_config->version, state);
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case V_HASH:
|
case V_HASH:
|
||||||
|
40
hash.h
40
hash.h
@@ -1,31 +1,23 @@
|
|||||||
/*
|
/*
|
||||||
* hash - one-way hash routines
|
* Copyright (c) 1997 by Landon Curt Noll. All Rights Reserved.
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999 Landon Curt Noll
|
* Permission to use, copy, modify, and distribute this software and
|
||||||
|
* its documentation for any purpose and without fee is hereby granted,
|
||||||
|
* provided that the above copyright, this permission notice and text
|
||||||
|
* this comment, and the disclaimer below appear in all of the following:
|
||||||
*
|
*
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
* supporting documentation
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
* source copies
|
||||||
* as published by the Free Software Foundation.
|
* source works derived from this source
|
||||||
|
* binaries derived from this source or from derived source
|
||||||
*
|
*
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
* LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
* EVENT SHALL LANDON CURT NOLL BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
||||||
* Public License for more details.
|
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
|
||||||
*
|
* USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: hash.h,v 29.1 1999/12/14 09:15:38 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/hash.h,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1995/11/14 23:57:45
|
|
||||||
* File existed as early as: 1995
|
|
||||||
*
|
|
||||||
* chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
52
have_const.c
52
have_const.c
@@ -1,34 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* have_const - Determine if we want or can support ansi const
|
* have_const - Determine if we want or can support ansi const
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999 Landon Curt Noll
|
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: have_const.c,v 29.1 1999/12/14 09:15:38 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/have_const.c,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1995/04/22 13:18:44
|
|
||||||
* File existed as early as: 1995
|
|
||||||
*
|
|
||||||
* chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* usage:
|
* usage:
|
||||||
* have_const
|
* have_const
|
||||||
*
|
*
|
||||||
@@ -44,7 +16,29 @@
|
|||||||
* const ==> use const
|
* const ==> use const
|
||||||
* (nothing) ==> const not used
|
* (nothing) ==> const not used
|
||||||
*/
|
*/
|
||||||
|
/*
|
||||||
|
* Copyright (c) 1995 by Landon Curt Noll. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Permission to use, copy, modify, and distribute this software and
|
||||||
|
* its documentation for any purpose and without fee is hereby granted,
|
||||||
|
* provided that the above copyright, this permission notice and text
|
||||||
|
* this comment, and the disclaimer below appear in all of the following:
|
||||||
|
*
|
||||||
|
* supporting documentation
|
||||||
|
* source copies
|
||||||
|
* source works derived from this source
|
||||||
|
* binaries derived from this source or from derived source
|
||||||
|
*
|
||||||
|
* LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
||||||
|
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
|
||||||
|
* EVENT SHALL LANDON CURT NOLL BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
||||||
|
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
|
||||||
|
* USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||||
|
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*
|
||||||
|
* chongo was here /\../\
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
|
52
have_fpos.c
52
have_fpos.c
@@ -1,40 +1,34 @@
|
|||||||
/*
|
/*
|
||||||
* have_fpos - Determine if have fgetpos and fsetpos functions
|
* have_fpos - Determine if have fgetpos and fsetpos functions
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999 Landon Curt Noll
|
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: have_fpos.c,v 29.1 1999/12/14 09:15:38 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/have_fpos.c,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1994/11/05 03:19:52
|
|
||||||
* File existed as early as: 1994
|
|
||||||
*
|
|
||||||
* chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* If the symbol HAVE_NO_FPOS is defined, we will output nothing.
|
* If the symbol HAVE_NO_FPOS is defined, we will output nothing.
|
||||||
* If we are able to compile this program, then we must have the
|
* If we are able to compile this program, then we must have the
|
||||||
* fgetpos and fsetpos functions and we will output the
|
* fgetpos and fsetpos functions and we will output the
|
||||||
* appropriate have_fpos.h file body.
|
* appropriate have_fpos.h file body.
|
||||||
*/
|
*/
|
||||||
|
/*
|
||||||
|
* Copyright (c) 1995 by Landon Curt Noll. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Permission to use, copy, modify, and distribute this software and
|
||||||
|
* its documentation for any purpose and without fee is hereby granted,
|
||||||
|
* provided that the above copyright, this permission notice and text
|
||||||
|
* this comment, and the disclaimer below appear in all of the following:
|
||||||
|
*
|
||||||
|
* supporting documentation
|
||||||
|
* source copies
|
||||||
|
* source works derived from this source
|
||||||
|
* binaries derived from this source or from derived source
|
||||||
|
*
|
||||||
|
* LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
||||||
|
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
|
||||||
|
* EVENT SHALL LANDON CURT NOLL BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
||||||
|
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
|
||||||
|
* USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||||
|
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*
|
||||||
|
* chongo was here /\../\
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
|
@@ -1,34 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* have_getpgid - determine if we have getpgid()
|
* have_getpgid - Determine if we getpgid()
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999 Landon Curt Noll
|
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: have_getpgid.c,v 29.1 1999/12/14 09:15:39 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/have_getpgid.c,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1999/10/20 22:51:13
|
|
||||||
* File existed as early as: 1999
|
|
||||||
*
|
|
||||||
* chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* usage:
|
* usage:
|
||||||
* have_getpgid
|
* have_getpgid
|
||||||
*
|
*
|
||||||
@@ -41,6 +13,29 @@
|
|||||||
* defined ==> use getpgid()
|
* defined ==> use getpgid()
|
||||||
* undefined ==> do not or cannot call getpgid()
|
* undefined ==> do not or cannot call getpgid()
|
||||||
*/
|
*/
|
||||||
|
/*
|
||||||
|
* Copyright (c) 1999 by Landon Curt Noll. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Permission to use, copy, modify, and distribute this software and
|
||||||
|
* its documentation for any purpose and without fee is hereby granted,
|
||||||
|
* provided that the above copyright, this permission notice and text
|
||||||
|
* this comment, and the disclaimer below appear in all of the following:
|
||||||
|
*
|
||||||
|
* supporting documentation
|
||||||
|
* source copies
|
||||||
|
* source works derived from this source
|
||||||
|
* binaries derived from this source or from derived source
|
||||||
|
*
|
||||||
|
* LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
||||||
|
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
|
||||||
|
* EVENT SHALL LANDON CURT NOLL BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
||||||
|
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
|
||||||
|
* USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||||
|
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*
|
||||||
|
* chongo was here /\../\
|
||||||
|
*/
|
||||||
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
@@ -1,34 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* have_getprid - determine if we have getprid()
|
* have_getprid - Determine if we getprid()
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999 Landon Curt Noll
|
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: have_getprid.c,v 29.1 1999/12/14 09:15:39 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/have_getprid.c,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1999/10/20 23:43:42
|
|
||||||
* File existed as early as: 1999
|
|
||||||
*
|
|
||||||
* chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* usage:
|
* usage:
|
||||||
* have_getprid
|
* have_getprid
|
||||||
*
|
*
|
||||||
@@ -41,7 +13,29 @@
|
|||||||
* defined ==> use getprid()
|
* defined ==> use getprid()
|
||||||
* undefined ==> do not or cannot call getprid()
|
* undefined ==> do not or cannot call getprid()
|
||||||
*/
|
*/
|
||||||
|
/*
|
||||||
|
* Copyright (c) 1999 by Landon Curt Noll. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Permission to use, copy, modify, and distribute this software and
|
||||||
|
* its documentation for any purpose and without fee is hereby granted,
|
||||||
|
* provided that the above copyright, this permission notice and text
|
||||||
|
* this comment, and the disclaimer below appear in all of the following:
|
||||||
|
*
|
||||||
|
* supporting documentation
|
||||||
|
* source copies
|
||||||
|
* source works derived from this source
|
||||||
|
* binaries derived from this source or from derived source
|
||||||
|
*
|
||||||
|
* LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
||||||
|
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
|
||||||
|
* EVENT SHALL LANDON CURT NOLL BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
||||||
|
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
|
||||||
|
* USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||||
|
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*
|
||||||
|
* chongo was here /\../\
|
||||||
|
*/
|
||||||
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
@@ -1,34 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* have_getsid - determine if we have getsid()
|
* have_getsid - Determine if we getsid()
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999 Landon Curt Noll
|
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: have_getsid.c,v 29.1 1999/12/14 09:15:39 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/have_getsid.c,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1999/10/20 22:51:13
|
|
||||||
* File existed as early as: 1999
|
|
||||||
*
|
|
||||||
* chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* usage:
|
* usage:
|
||||||
* have_getsid
|
* have_getsid
|
||||||
*
|
*
|
||||||
@@ -41,7 +13,29 @@
|
|||||||
* defined ==> use getsid()
|
* defined ==> use getsid()
|
||||||
* undefined ==> do not call or cannot call getsid()
|
* undefined ==> do not call or cannot call getsid()
|
||||||
*/
|
*/
|
||||||
|
/*
|
||||||
|
* Copyright (c) 1999 by Landon Curt Noll. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Permission to use, copy, modify, and distribute this software and
|
||||||
|
* its documentation for any purpose and without fee is hereby granted,
|
||||||
|
* provided that the above copyright, this permission notice and text
|
||||||
|
* this comment, and the disclaimer below appear in all of the following:
|
||||||
|
*
|
||||||
|
* supporting documentation
|
||||||
|
* source copies
|
||||||
|
* source works derived from this source
|
||||||
|
* binaries derived from this source or from derived source
|
||||||
|
*
|
||||||
|
* LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
||||||
|
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
|
||||||
|
* EVENT SHALL LANDON CURT NOLL BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
||||||
|
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
|
||||||
|
* USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||||
|
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*
|
||||||
|
* chongo was here /\../\
|
||||||
|
*/
|
||||||
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
|
||||||
|
@@ -1,34 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* have_gettime - determine if we have clock_gettime()
|
* have_gettime - Determine if we clock_gettime()
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999 Landon Curt Noll
|
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: have_gettime.c,v 29.1 1999/12/14 09:15:39 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/have_gettime.c,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1999/10/20 23:43:42
|
|
||||||
* File existed as early as: 1999
|
|
||||||
*
|
|
||||||
* chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* usage:
|
* usage:
|
||||||
* have_gettime
|
* have_gettime
|
||||||
*
|
*
|
||||||
@@ -43,7 +15,29 @@
|
|||||||
* undefined ==> clock_gettime() is not available for both
|
* undefined ==> clock_gettime() is not available for both
|
||||||
* CLOCK_SGI_CYCLE and CLOCK_REALTIME
|
* CLOCK_SGI_CYCLE and CLOCK_REALTIME
|
||||||
*/
|
*/
|
||||||
|
/*
|
||||||
|
* Copyright (c) 1999 by Landon Curt Noll. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Permission to use, copy, modify, and distribute this software and
|
||||||
|
* its documentation for any purpose and without fee is hereby granted,
|
||||||
|
* provided that the above copyright, this permission notice and text
|
||||||
|
* this comment, and the disclaimer below appear in all of the following:
|
||||||
|
*
|
||||||
|
* supporting documentation
|
||||||
|
* source copies
|
||||||
|
* source works derived from this source
|
||||||
|
* binaries derived from this source or from derived source
|
||||||
|
*
|
||||||
|
* LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
||||||
|
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
|
||||||
|
* EVENT SHALL LANDON CURT NOLL BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
||||||
|
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
|
||||||
|
* USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||||
|
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*
|
||||||
|
* chongo was here /\../\
|
||||||
|
*/
|
||||||
|
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
|
||||||
|
54
have_memmv.c
54
have_memmv.c
@@ -1,34 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* have_memmv - Determine if we have memmove()
|
* have_memmv - Determine if we memmove()
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999 Landon Curt Noll
|
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: have_memmv.c,v 29.1 1999/12/14 09:15:39 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/have_memmv.c,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1997/04/16 02:02:34
|
|
||||||
* File existed as early as: 1997
|
|
||||||
*
|
|
||||||
* chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* usage:
|
* usage:
|
||||||
* have_memmv
|
* have_memmv
|
||||||
*
|
*
|
||||||
@@ -41,7 +13,29 @@
|
|||||||
* defined ==> use memmove()
|
* defined ==> use memmove()
|
||||||
* undefined ==> use internal slow memmove() instead
|
* undefined ==> use internal slow memmove() instead
|
||||||
*/
|
*/
|
||||||
|
/*
|
||||||
|
* Copyright (c) 1997 by Landon Curt Noll. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Permission to use, copy, modify, and distribute this software and
|
||||||
|
* its documentation for any purpose and without fee is hereby granted,
|
||||||
|
* provided that the above copyright, this permission notice and text
|
||||||
|
* this comment, and the disclaimer below appear in all of the following:
|
||||||
|
*
|
||||||
|
* supporting documentation
|
||||||
|
* source copies
|
||||||
|
* source works derived from this source
|
||||||
|
* binaries derived from this source or from derived source
|
||||||
|
*
|
||||||
|
* LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
||||||
|
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
|
||||||
|
* EVENT SHALL LANDON CURT NOLL BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
||||||
|
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
|
||||||
|
* USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||||
|
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*
|
||||||
|
* chongo was here /\../\
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
|
@@ -1,34 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* have_newstr - Determine if we have a system without ANSI C string functions
|
* have_newstr - Determine if we have a system without ANSI C string functions
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999 Landon Curt Noll
|
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: have_newstr.c,v 29.1 1999/12/14 09:15:39 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/have_newstr.c,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1995/05/02 03:55:08
|
|
||||||
* File existed as early as: 1995
|
|
||||||
*
|
|
||||||
* chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* usage:
|
* usage:
|
||||||
* have_newstr
|
* have_newstr
|
||||||
*
|
*
|
||||||
@@ -43,7 +15,29 @@
|
|||||||
* use bfill() instead of memset(),
|
* use bfill() instead of memset(),
|
||||||
* use index() instead of strchr()
|
* use index() instead of strchr()
|
||||||
*/
|
*/
|
||||||
|
/*
|
||||||
|
* Copyright (c) 1995 by Landon Curt Noll. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Permission to use, copy, modify, and distribute this software and
|
||||||
|
* its documentation for any purpose and without fee is hereby granted,
|
||||||
|
* provided that the above copyright, this permission notice and text
|
||||||
|
* this comment, and the disclaimer below appear in all of the following:
|
||||||
|
*
|
||||||
|
* supporting documentation
|
||||||
|
* source copies
|
||||||
|
* source works derived from this source
|
||||||
|
* binaries derived from this source or from derived source
|
||||||
|
*
|
||||||
|
* LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
||||||
|
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
|
||||||
|
* EVENT SHALL LANDON CURT NOLL BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
||||||
|
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
|
||||||
|
* USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||||
|
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*
|
||||||
|
* chongo was here /\../\
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
|
@@ -1,34 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* have_offscl - determine if we have a scalar off_t element
|
* have_offscl - determine if have a scalar off_t element
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999 Landon Curt Noll
|
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: have_offscl.c,v 29.1 1999/12/14 09:15:39 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/have_offscl.c,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1996/07/13 12:57:22
|
|
||||||
* File existed as early as: 1996
|
|
||||||
*
|
|
||||||
* chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* usage:
|
* usage:
|
||||||
* have_offscl
|
* have_offscl
|
||||||
*
|
*
|
||||||
@@ -45,7 +17,29 @@
|
|||||||
* defined ==> ok to perform arithmetic ops, = and comparisons
|
* defined ==> ok to perform arithmetic ops, = and comparisons
|
||||||
* undefined ==> convert to ZVALUE first
|
* undefined ==> convert to ZVALUE first
|
||||||
*/
|
*/
|
||||||
|
/*
|
||||||
|
* Copyright (c) 1996 by Landon Curt Noll. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Permission to use, copy, modify, and distribute this software and
|
||||||
|
* its documentation for any purpose and without fee is hereby granted,
|
||||||
|
* provided that the above copyright, this permission notice and text
|
||||||
|
* this comment, and the disclaimer below appear in all of the following:
|
||||||
|
*
|
||||||
|
* supporting documentation
|
||||||
|
* source copies
|
||||||
|
* source works derived from this source
|
||||||
|
* binaries derived from this source or from derived source
|
||||||
|
*
|
||||||
|
* LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
||||||
|
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
|
||||||
|
* EVENT SHALL LANDON CURT NOLL BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
||||||
|
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
|
||||||
|
* USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||||
|
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*
|
||||||
|
* chongo was here /\../\
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
@@ -1,34 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* have_posscl - determine if we have a scalar FILEPOS element
|
* have_posscl - determine if have a scalar FILEPOS element
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999 Landon Curt Noll
|
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: have_posscl.c,v 29.1 1999/12/14 09:15:39 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/have_posscl.c,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1996/07/13 12:57:22
|
|
||||||
* File existed as early as: 1996
|
|
||||||
*
|
|
||||||
* chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* usage:
|
* usage:
|
||||||
* have_posscl
|
* have_posscl
|
||||||
*
|
*
|
||||||
@@ -38,13 +10,36 @@
|
|||||||
* a ZVALUE in order to perform arithmetic operations, assignments and
|
* a ZVALUE in order to perform arithmetic operations, assignments and
|
||||||
* comparisons.
|
* comparisons.
|
||||||
*
|
*
|
||||||
|
*
|
||||||
* This prog outputs several defines:
|
* This prog outputs several defines:
|
||||||
*
|
*
|
||||||
* HAVE_FILEPOS_SCALAR
|
* HAVE_FILEPOS_SCALAR
|
||||||
* defined ==> ok to perform arithmetic ops, = and comparisons
|
* defined ==> ok to perform arithmetic ops, = and comparisons
|
||||||
* undefined ==> convert to ZVALUE first
|
* undefined ==> convert to ZVALUE first
|
||||||
*/
|
*/
|
||||||
|
/*
|
||||||
|
* Copyright (c) 1996 by Landon Curt Noll. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Permission to use, copy, modify, and distribute this software and
|
||||||
|
* its documentation for any purpose and without fee is hereby granted,
|
||||||
|
* provided that the above copyright, this permission notice and text
|
||||||
|
* this comment, and the disclaimer below appear in all of the following:
|
||||||
|
*
|
||||||
|
* supporting documentation
|
||||||
|
* source copies
|
||||||
|
* source works derived from this source
|
||||||
|
* binaries derived from this source or from derived source
|
||||||
|
*
|
||||||
|
* LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
||||||
|
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
|
||||||
|
* EVENT SHALL LANDON CURT NOLL BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
||||||
|
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
|
||||||
|
* USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||||
|
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*
|
||||||
|
* chongo was here /\../\
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
@@ -1,34 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* have_rusage - Determine if we have getrusage()
|
* have_rusage - Determine if we getrusage()
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999 Landon Curt Noll
|
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: have_rusage.c,v 29.1 1999/12/14 09:15:39 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/have_rusage.c,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1999/11/05 11:28:15
|
|
||||||
* File existed as early as: 1999
|
|
||||||
*
|
|
||||||
* chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* usage:
|
* usage:
|
||||||
* have_rusage
|
* have_rusage
|
||||||
*
|
*
|
||||||
@@ -41,7 +13,29 @@
|
|||||||
* defined ==> use getrusage()
|
* defined ==> use getrusage()
|
||||||
* undefined ==> do not call or cannot call getrusage()
|
* undefined ==> do not call or cannot call getrusage()
|
||||||
*/
|
*/
|
||||||
|
/*
|
||||||
|
* Copyright (c) 1999 by Landon Curt Noll. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Permission to use, copy, modify, and distribute this software and
|
||||||
|
* its documentation for any purpose and without fee is hereby granted,
|
||||||
|
* provided that the above copyright, this permission notice and text
|
||||||
|
* this comment, and the disclaimer below appear in all of the following:
|
||||||
|
*
|
||||||
|
* supporting documentation
|
||||||
|
* source copies
|
||||||
|
* source works derived from this source
|
||||||
|
* binaries derived from this source or from derived source
|
||||||
|
*
|
||||||
|
* LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
||||||
|
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
|
||||||
|
* EVENT SHALL LANDON CURT NOLL BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
||||||
|
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
|
||||||
|
* USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||||
|
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*
|
||||||
|
* chongo was here /\../\
|
||||||
|
*/
|
||||||
|
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
#include <sys/resource.h>
|
#include <sys/resource.h>
|
||||||
|
52
have_stdvs.c
52
have_stdvs.c
@@ -1,34 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* have_stdvs - try <stdarg.h> to see if it really works with vsprintf()
|
* have_stdvs - try <stdarg.h> to see if it really works with vsprintf()
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999 Landon Curt Noll
|
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: have_stdvs.c,v 29.1 1999/12/14 09:15:39 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/have_stdvs.c,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1995/09/09 22:41:10
|
|
||||||
* File existed as early as: 1995
|
|
||||||
*
|
|
||||||
* chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* On some systems that have both <stdarg.h> and <varargs.h>, vsprintf()
|
* On some systems that have both <stdarg.h> and <varargs.h>, vsprintf()
|
||||||
* does not work well under one type of include file.
|
* does not work well under one type of include file.
|
||||||
*
|
*
|
||||||
@@ -41,7 +13,29 @@
|
|||||||
* (or sprintf()) produces unexpected results while using the <stdarg.h>
|
* (or sprintf()) produces unexpected results while using the <stdarg.h>
|
||||||
* include file.
|
* include file.
|
||||||
*/
|
*/
|
||||||
|
/*
|
||||||
|
* Copyright (c) 1995 by Landon Curt Noll. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Permission to use, copy, modify, and distribute this software and
|
||||||
|
* its documentation for any purpose and without fee is hereby granted,
|
||||||
|
* provided that the above copyright, this permission notice and text
|
||||||
|
* this comment, and the disclaimer below appear in all of the following:
|
||||||
|
*
|
||||||
|
* supporting documentation
|
||||||
|
* source copies
|
||||||
|
* source works derived from this source
|
||||||
|
* binaries derived from this source or from derived source
|
||||||
|
*
|
||||||
|
* LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
||||||
|
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
|
||||||
|
* EVENT SHALL LANDON CURT NOLL BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
||||||
|
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
|
||||||
|
* USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||||
|
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*
|
||||||
|
* chongo was here /\../\
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
|
@@ -1,34 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* have_strdup - determine if we have strdup()
|
* have_strdup - Determine if we strdup()
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999 Landon Curt Noll
|
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: have_strdup.c,v 29.1 1999/12/14 09:15:39 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/have_strdup.c,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1999/11/09 12:46:54
|
|
||||||
* File existed as early as: 1999
|
|
||||||
*
|
|
||||||
* chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* usage:
|
* usage:
|
||||||
* have_strdup
|
* have_strdup
|
||||||
*
|
*
|
||||||
@@ -41,7 +13,29 @@
|
|||||||
* defined ==> use strdup()
|
* defined ==> use strdup()
|
||||||
* undefined ==> do not call or cannot call strdup()
|
* undefined ==> do not call or cannot call strdup()
|
||||||
*/
|
*/
|
||||||
|
/*
|
||||||
|
* Copyright (c) 1999 by Landon Curt Noll. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Permission to use, copy, modify, and distribute this software and
|
||||||
|
* its documentation for any purpose and without fee is hereby granted,
|
||||||
|
* provided that the above copyright, this permission notice and text
|
||||||
|
* this comment, and the disclaimer below appear in all of the following:
|
||||||
|
*
|
||||||
|
* supporting documentation
|
||||||
|
* source copies
|
||||||
|
* source works derived from this source
|
||||||
|
* binaries derived from this source or from derived source
|
||||||
|
*
|
||||||
|
* LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
||||||
|
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
|
||||||
|
* EVENT SHALL LANDON CURT NOLL BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
||||||
|
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
|
||||||
|
* USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||||
|
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*
|
||||||
|
* chongo was here /\../\
|
||||||
|
*/
|
||||||
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
|
52
have_uid_t.c
52
have_uid_t.c
@@ -1,34 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* have_uid_t - Determine if we want or can support uid_t
|
* have_uid_t - Determine if we want or can support uid_t
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999 Landon Curt Noll
|
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: have_uid_t.c,v 29.1 1999/12/14 09:15:39 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/have_uid_t.c,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1995/05/02 03:03:24
|
|
||||||
* File existed as early as: 1995
|
|
||||||
*
|
|
||||||
* chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* usage:
|
* usage:
|
||||||
* have_uid_t
|
* have_uid_t
|
||||||
*
|
*
|
||||||
@@ -40,7 +12,29 @@
|
|||||||
* defined ==> ok to use uid_t
|
* defined ==> ok to use uid_t
|
||||||
* undefined ==> do not use uid_t
|
* undefined ==> do not use uid_t
|
||||||
*/
|
*/
|
||||||
|
/*
|
||||||
|
* Copyright (c) 1995 by Landon Curt Noll. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Permission to use, copy, modify, and distribute this software and
|
||||||
|
* its documentation for any purpose and without fee is hereby granted,
|
||||||
|
* provided that the above copyright, this permission notice and text
|
||||||
|
* this comment, and the disclaimer below appear in all of the following:
|
||||||
|
*
|
||||||
|
* supporting documentation
|
||||||
|
* source copies
|
||||||
|
* source works derived from this source
|
||||||
|
* binaries derived from this source or from derived source
|
||||||
|
*
|
||||||
|
* LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
||||||
|
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
|
||||||
|
* EVENT SHALL LANDON CURT NOLL BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
||||||
|
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
|
||||||
|
* USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||||
|
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*
|
||||||
|
* chongo was here /\../\
|
||||||
|
*/
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
|
||||||
|
54
have_ustat.c
54
have_ustat.c
@@ -1,34 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* have_ustat - Determine if we have ustat()
|
* have_ustat - Determine if we ustat()
|
||||||
*
|
*
|
||||||
* Copyright (C) 1999 Landon Curt Noll
|
|
||||||
*
|
|
||||||
* Calc is open software; you can redistribute it and/or modify it under
|
|
||||||
* the terms of the version 2.1 of the GNU Lesser General Public License
|
|
||||||
* as published by the Free Software Foundation.
|
|
||||||
*
|
|
||||||
* Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
||||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
||||||
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
||||||
* Public License for more details.
|
|
||||||
*
|
|
||||||
* A copy of version 2.1 of the GNU Lesser General Public License is
|
|
||||||
* distributed with calc under the filename COPYING-LGPL. You should have
|
|
||||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
||||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 29.1 $
|
|
||||||
* @(#) $Id: have_ustat.c,v 29.1 1999/12/14 09:15:40 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/have_ustat.c,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1999/10/20 22:51:13
|
|
||||||
* File existed as early as: 1999
|
|
||||||
*
|
|
||||||
* chongo <was here> /\oo/\ http://reality.sgi.com/chongo/
|
|
||||||
* Share and enjoy! :-) http://reality.sgi.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* usage:
|
* usage:
|
||||||
* have_ustat
|
* have_ustat
|
||||||
*
|
*
|
||||||
@@ -41,7 +13,29 @@
|
|||||||
* defined ==> use ustat()
|
* defined ==> use ustat()
|
||||||
* undefined ==> do not call or cannot call ustat()
|
* undefined ==> do not call or cannot call ustat()
|
||||||
*/
|
*/
|
||||||
|
/*
|
||||||
|
* Copyright (c) 1999 by Landon Curt Noll. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Permission to use, copy, modify, and distribute this software and
|
||||||
|
* its documentation for any purpose and without fee is hereby granted,
|
||||||
|
* provided that the above copyright, this permission notice and text
|
||||||
|
* this comment, and the disclaimer below appear in all of the following:
|
||||||
|
*
|
||||||
|
* supporting documentation
|
||||||
|
* source copies
|
||||||
|
* source works derived from this source
|
||||||
|
* binaries derived from this source or from derived source
|
||||||
|
*
|
||||||
|
* LANDON CURT NOLL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
|
||||||
|
* INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO
|
||||||
|
* EVENT SHALL LANDON CURT NOLL BE LIABLE FOR ANY SPECIAL, INDIRECT OR
|
||||||
|
* CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
|
||||||
|
* USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
||||||
|
* OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
||||||
|
* PERFORMANCE OF THIS SOFTWARE.
|
||||||
|
*
|
||||||
|
* chongo was here /\../\
|
||||||
|
*/
|
||||||
|
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/stat.h>
|
#include <sys/stat.h>
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user