mirror of
https://github.com/lcn2/calc.git
synced 2025-08-19 01:13:27 +03:00
Compare commits
13 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
2441df7fdc | ||
|
5c565a7cea | ||
|
810e541281 | ||
|
ee30d787ea | ||
|
4e92927183 | ||
|
fb4a03c1f1 | ||
|
81a523043e | ||
|
2c0d0bbc1b | ||
|
a7147039ee | ||
|
6fa83e417e | ||
|
c335809b5f | ||
|
ee99adf8ca | ||
|
87570b56fe |
72
BUGS
72
BUGS
@@ -68,10 +68,6 @@ of a context diff patch).
|
||||
|
||||
Known bugs:
|
||||
|
||||
The stoponerror() facility does not seem to work, or perhaps
|
||||
the stoponerror help file is incorrect. The stoponerror help file
|
||||
lacks examples because of this problem.
|
||||
|
||||
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
|
||||
EMail your bug reports and hopefully patches to fix them.
|
||||
@@ -84,6 +80,25 @@ mis-features in calc:
|
||||
work better. The following is a list of mis-features that should be
|
||||
addressed and improved someday.
|
||||
|
||||
* When statement is of the form { ... }, the leading { MUST BE ON
|
||||
THE SAME LINE as the if, for, while or do keyword.
|
||||
|
||||
This works as expected:
|
||||
|
||||
if (expr) {
|
||||
...
|
||||
}
|
||||
|
||||
However this WILL NOT WORK AS EXPECTED:
|
||||
|
||||
if (expr)
|
||||
{
|
||||
...
|
||||
}
|
||||
|
||||
This needs to be changed. See also "help statement", "help unexpected",
|
||||
and "help todo".
|
||||
|
||||
* The chi.cal resource file does not work well with odd degrees
|
||||
of freedom. Can someone improve this algorithm?
|
||||
|
||||
@@ -114,51 +129,6 @@ Problems with old systems that have known work-a-rounds:
|
||||
to fail the regression test. The work-a-round is to compile with -O
|
||||
or to use gcc-2.96 or later.
|
||||
|
||||
This bug has been observed on the Sparc and the PowerPC machine.
|
||||
|
||||
On the PowerPC with gcc-2.95 when compiled with -O2, the following
|
||||
patch seems to help:
|
||||
|
||||
*** zfunc.c.orig Fri Feb 23 18:18:39 2001
|
||||
--- zfunc.c Fri Feb 23 18:39:33 2001
|
||||
***************
|
||||
*** 1481,1487 ****
|
||||
{
|
||||
HALF *a, *A, *b, *a0, u;
|
||||
int i, j, j1, j2, k, k1, m, m0, m1, n, n0, o;
|
||||
! FULL d, e, f, g, h, s, t, x, topbit;
|
||||
int remsign;
|
||||
BOOL up, onebit;
|
||||
ZVALUE sqrt;
|
||||
--- 1481,1488 ----
|
||||
{
|
||||
HALF *a, *A, *b, *a0, u;
|
||||
int i, j, j1, j2, k, k1, m, m0, m1, n, n0, o;
|
||||
! volatile FULL d;
|
||||
! FULL e, f, g, h, s, t, x, topbit;
|
||||
int remsign;
|
||||
BOOL up, onebit;
|
||||
ZVALUE sqrt;
|
||||
*** zmath.c 2000/06/07 14:02:13 29.2
|
||||
--- zmath.c 2001/03/13 19:47:03
|
||||
***************
|
||||
*** 1608,1614 ****
|
||||
void
|
||||
zbitvalue(long n, ZVALUE *res)
|
||||
{
|
||||
! ZVALUE z;
|
||||
|
||||
if (n < 0) n = 0;
|
||||
z.sign = 0;
|
||||
--- 1608,1614 ----
|
||||
void
|
||||
zbitvalue(long n, ZVALUE *res)
|
||||
{
|
||||
! volatile ZVALUE z;
|
||||
|
||||
if (n < 0) n = 0;
|
||||
z.sign = 0;
|
||||
|
||||
* There are problems compiling calc on the sparcv9 under 64 bit
|
||||
Solaris. On that platform, gcc-2.96 is able to compile calc, but
|
||||
calc dumps core very early on in startup. It is said that sparcv9
|
||||
@@ -190,8 +160,8 @@ Problems with old systems that have known work-a-rounds:
|
||||
## 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.24 $
|
||||
## @(#) $Id: BUGS,v 29.24 2006/05/21 07:54:13 chongo Exp $
|
||||
## @(#) $Revision: 29.26 $
|
||||
## @(#) $Id: BUGS,v 29.26 2007/01/03 21:26:22 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/RCS/BUGS,v $
|
||||
##
|
||||
## Under source code control: 1994/03/18 14:06:13
|
||||
|
287
CHANGES
287
CHANGES
@@ -1,4 +1,150 @@
|
||||
The following are the changes from calc version 2.12.0 to date:
|
||||
The following are the changes from calc version 2.12.1.8 to date:
|
||||
|
||||
Fixed calc cscripts that contained comments that were not valid calc
|
||||
comments. Improved calc comment documentation in "help unexpected"
|
||||
to help other avoid similar mistakes. Calc comments are of the form:
|
||||
|
||||
/* c style comments */
|
||||
/*
|
||||
* multi-line
|
||||
* commentts
|
||||
*/
|
||||
## two or more #-signs
|
||||
### in a row
|
||||
### Note that # along is a calc uniary and binary operator
|
||||
|
||||
Added "help pound" or "help #' to document the # operator, comments,
|
||||
and the first line of cscript files.
|
||||
|
||||
Documented these help commands in "help help":
|
||||
|
||||
help ->
|
||||
help *
|
||||
help .
|
||||
help %
|
||||
help //
|
||||
help #
|
||||
|
||||
The usage help file is now formed from the contents of the calc man page.
|
||||
So "help usage" prints the version of the calc man page. Added ${COL}
|
||||
makefile symbol to support the formation of the calc.usage file from
|
||||
calc.1 via the CALCPAGER (less).
|
||||
|
||||
The "help calc" command is now equivalent to "help help".
|
||||
|
||||
The "help define" command is now equivalent to "help command".
|
||||
|
||||
Fixed calc command line usage message.
|
||||
|
||||
Fixed missing README.src file in RPM src and tgz src tarball.
|
||||
|
||||
Removed HAVE_SNPRINTF test in version.c. We now assume that
|
||||
all systems come with the standard snprintf() library function.
|
||||
|
||||
Make does not assume that DONT_HAVE_VSPRINTF must be defined in
|
||||
order to test for varargs (via have_varvs.c). Instead it uses the
|
||||
${HAVE_VSPRINTF} to determine if the vsprintf() and vsnprintf()
|
||||
should be tested to assumed to exist or not exist.
|
||||
|
||||
Tests for the existence of vsprintf() now also require the existence
|
||||
of vsnprintf(). Test for the existence of vsnprintf() now also
|
||||
require the existence of vsprintf().
|
||||
|
||||
The #define CALC_SIZE_T was never used except when memmove() was
|
||||
not found. This symbol was renamed to MEMMOVE_SIZE_T. Calc
|
||||
requires that size_t must be a known type.
|
||||
|
||||
|
||||
The following are the changes from calc version 2.12.1.6 to 2.12.1.7:
|
||||
|
||||
Added the calc builtin function, usertime(), to return the amount of
|
||||
user CPU time used by the current process. Unlike the old runtime()
|
||||
builtin, the CPU time reported for long running processes will not
|
||||
wrap around to 0 after only a few months.
|
||||
|
||||
Added the calc builtin function, systime(), to return the amount of
|
||||
kernel CPU time used by the current process.
|
||||
|
||||
The runtime() builtin function now returns the total amount of CPU
|
||||
time used by the current process. This time includes both user mode
|
||||
and kernel mode time. Unlike the old runtime() builtin, the builtin
|
||||
includes time spent executing operating system code on behalf of
|
||||
the current process.
|
||||
|
||||
Fixed runtime() so that the CPU time reported for long running
|
||||
processes will wrap around to 0 for a long time.
|
||||
|
||||
Added config("hz") to return the clock tick rate. This is
|
||||
a read-only configuration value.
|
||||
|
||||
Added regression tests for recently added config() parameters.
|
||||
|
||||
Fixed the #define symbols that were created in have_strdup.h.
|
||||
Previously this file looked as if have_rusage.h has been
|
||||
included already.
|
||||
|
||||
Restored the function of "help" (without any args) printing the
|
||||
default help file. Thanks for this fix goes to Silvan Minghetti
|
||||
<bullet at users dot sourceforge dot net>.
|
||||
|
||||
Fixed a problem where some old MS environments failed some of the
|
||||
regression tests because "read -once foo.cal" was not behaving
|
||||
correctly due to how the _fullpath() was being called. Thanks for
|
||||
this fix goes to Anatoly <notexistent-anb at yandex dot ru>.
|
||||
|
||||
Documented the mis-feature about how calc parses if, for, while
|
||||
and do statements in an unexpected way. For example:
|
||||
|
||||
This works as expected:
|
||||
|
||||
if (expr) {
|
||||
...
|
||||
}
|
||||
|
||||
However this WILL NOT WORK AS EXPECTED:
|
||||
|
||||
if (expr)
|
||||
{
|
||||
...
|
||||
}
|
||||
|
||||
because calc will parse the if being terminated by
|
||||
an empty statement followed by a
|
||||
|
||||
if (expr) ;
|
||||
{
|
||||
...
|
||||
}
|
||||
|
||||
See also "help statement", "help unexpected", "help todo", and
|
||||
"help bugs".
|
||||
|
||||
|
||||
The following are the changes from calc version 2.12.1 to 2.12.1.5:
|
||||
|
||||
Fixed minor typos in the 'version 2.12.0 to 2.12.0.8' section below.
|
||||
Made minor formatting changes as well.
|
||||
|
||||
Changed use of ${Q} in the Makefile to avoid an make "feature"
|
||||
related to OpenBSD. Added ${RM} make variable for make tools that
|
||||
do not have builtin defined terms.
|
||||
|
||||
Removed the ECHO_PROG Makefile variable. Also removed it from
|
||||
the sysinfo() custom function.
|
||||
|
||||
Improved the support for cross-compiled environmens by using
|
||||
make symbols for all non-shell commands executed by Makefiles.
|
||||
|
||||
Fixed a problem with the make chk awk script which failed under
|
||||
OS X 10.4.7.
|
||||
|
||||
Fixed a few minor variables that were not set to default values in
|
||||
lower level Makefiles.
|
||||
|
||||
Fixed a reference to a non-existent make variable in HOWTO.INSTALL.
|
||||
|
||||
|
||||
The following are the changes from calc version 2.12.0 to 2.12.0.8:
|
||||
|
||||
Fixed ellip.cal to deal with a calc syntax change that happened
|
||||
many ages ago but was never applied to this file until now.
|
||||
@@ -109,34 +255,34 @@ The following are the changes from calc version 2.12.0 to date:
|
||||
<ebowen at une dot edu dot au>, the dotest evaluates individual
|
||||
lines from a file. The dotest() function takes 1 to 3 arguments:
|
||||
|
||||
dotest(dotest_file [,dotest_code [,dotest_maxcond]])
|
||||
dotest(dotest_file [,dotest_code [,dotest_maxcond]])
|
||||
|
||||
dotest_file
|
||||
dotest_file
|
||||
|
||||
Search along CALCPATH for dotest_file, which contains lines that
|
||||
should evaluate to 1. Comment lines and empty lines are ignored.
|
||||
Comment lines should use ## instead of the multi like /* ... */
|
||||
because lines are evaluated one line at a time.
|
||||
Search along CALCPATH for dotest_file, which contains lines that
|
||||
should evaluate to 1. Comment lines and empty lines are ignored.
|
||||
Comment lines should use ## instead of the multi like /* ... */
|
||||
because lines are evaluated one line at a time.
|
||||
|
||||
dotest_code
|
||||
dotest_code
|
||||
|
||||
Assign the code number that is to be printed at the start of
|
||||
each non-error line and after **** in each error line.
|
||||
The default code number is 999.
|
||||
Assign the code number that is to be printed at the start of
|
||||
each non-error line and after **** in each error line.
|
||||
The default code number is 999.
|
||||
|
||||
dotest_maxcond
|
||||
dotest_maxcond
|
||||
|
||||
The maximum number of error conditions that may be detected.
|
||||
An error condition is not a sign of a problem, in some cases
|
||||
a line deliberately forces an error condition. A value of -1,
|
||||
the default, implies a maximum of 2147483647.
|
||||
The maximum number of error conditions that may be detected.
|
||||
An error condition is not a sign of a problem, in some cases
|
||||
a line deliberately forces an error condition. A value of -1,
|
||||
the default, implies a maximum of 2147483647.
|
||||
|
||||
Global variables and functions must be declared ahead of time because
|
||||
the dotest scope of evaluation is a line at a time. For example:
|
||||
Global variables and functions must be declared ahead of time because
|
||||
the dotest scope of evaluation is a line at a time. For example:
|
||||
|
||||
; read dotest.cal
|
||||
; read set8700.cal
|
||||
; dotest("set8700.line");
|
||||
; read dotest.cal
|
||||
; read set8700.cal
|
||||
; dotest("set8700.line");
|
||||
|
||||
Updated the todo / wish list items. The top priority now is to
|
||||
convert calc to GNU autoconf / configure to build the calc.
|
||||
@@ -164,7 +310,7 @@ The following are the changes from calc version 2.12.0 to date:
|
||||
Made math_error() in math_error.c more robust against a error
|
||||
message constant that is too long.
|
||||
|
||||
Made read_bindings() in hist.c more robust against very line bindings
|
||||
Made read_bindings() in hist.c more robust against very long bindings
|
||||
config lines.
|
||||
|
||||
Made listsort() in listfunc.c and matsort() matfunc.c more robust
|
||||
@@ -179,8 +325,7 @@ The following are the changes from calc version 2.12.0 to date:
|
||||
no other compile errors, only the unterminated comment will stop
|
||||
completion of the function being defined.
|
||||
|
||||
Added the reading of more calc resource files to the cal/regress.cal
|
||||
regression test.
|
||||
The cal/regress.cal now reads most of the calc resource files.
|
||||
|
||||
The issq() test had a slight performance boost. A minor note
|
||||
was added to the help/issq file.
|
||||
@@ -192,25 +337,18 @@ The following are the changes from calc version 2.12.0 to date:
|
||||
the number of bits in the fundamental base in which calculations
|
||||
are performed. This is a read-only configuration value.
|
||||
|
||||
Calc now permits such as:
|
||||
|
||||
++*p-- ++*----*++p----
|
||||
|
||||
Calc now will allow syntax such as ++*p-- and ++*----*++p----
|
||||
where p is an lvalue; successful evaluation of course require the
|
||||
successive operations to be performed to have operands of appropriate
|
||||
types; e.g. in *A, A is usually an lvalue whose current value is a
|
||||
pointer. ++ and -- act on lvalues. In the above examples there are
|
||||
implied parentheses from the beginning to immediately after p. If
|
||||
there are no pre ++ or -- operations, as in
|
||||
|
||||
**p++
|
||||
|
||||
the implied parentheses are from immediately before p to the end.
|
||||
there are no pre ++ or -- operations, as in **p++. The implied
|
||||
parentheses are from immediately before p to the end.
|
||||
|
||||
Improved the error message when && is used as a prefix operator.
|
||||
|
||||
Changed the help/config file to read like a builtin function
|
||||
help file.
|
||||
Changed the help/config file to read like a builtin function help file.
|
||||
|
||||
One can no longer set to 1, or to a value < 0, the config()
|
||||
parameters: "mul2", "sq2", "pow2", and "redc2". These values
|
||||
@@ -224,10 +362,10 @@ The following are the changes from calc version 2.12.0 to date:
|
||||
config("sq2") == 3388
|
||||
config("pow2") == 176
|
||||
|
||||
These values were determined established on a 1.8GHz AMD 32-bit
|
||||
CPU of ~3406 BogoMIPS by the new resource file:
|
||||
These values were determined established on a 1.8GHz AMD 32-bit
|
||||
CPU of ~3406 BogoMIPS by the new resource file:
|
||||
|
||||
cal/alg_config.cal
|
||||
cal/alg_config.cal
|
||||
|
||||
Regarding the alg_config.cal resource file:
|
||||
|
||||
@@ -255,7 +393,7 @@ The following are the changes from calc version 2.12.0 to date:
|
||||
inaccuracy in CPU timings will cause the best value returned to
|
||||
differ slightly from run to run.
|
||||
|
||||
See "help resource" for more information on alg_config.cal.
|
||||
See "help resource" for more information on alg_config.cal.
|
||||
|
||||
Updated the "help variable" text to reflect the current calc
|
||||
use of ` (backquote), * (star), and & (ampersand).
|
||||
@@ -304,24 +442,22 @@ The following are the changes from calc version 2.12.0 to date:
|
||||
silly to use the same identifier for both a parameter and local
|
||||
variable, it should not be illegal.
|
||||
|
||||
The provision of warnings for possibly questionable programming in
|
||||
function definitions.
|
||||
Added warnings for possibly questionable code in function definitions.
|
||||
|
||||
Added config("redecl_warn", boolean) to control if calc issues
|
||||
warnings about variables being declared. The config("redecl_warn")
|
||||
value is TRUE by default.
|
||||
|
||||
Added config("dupvar_warn", boolean) to control if calc issues
|
||||
warnings about when variable names collide. Examples of variable name
|
||||
collisions include when:
|
||||
warnings about when variable names collide. The config("dupvar_warn")
|
||||
value is TRUE by default. Examples of variable name collisions
|
||||
include when:
|
||||
|
||||
* both local and static variables have the same name
|
||||
* both local and global variables have the same name
|
||||
* both function parameter and local variables have the same name
|
||||
* both function parameter and global variables have the same name
|
||||
|
||||
The config("dupvar_warn") value is TRUE by default.
|
||||
|
||||
Fix of a bug which causes some static variables not to be correctly
|
||||
unscoped when their identifiers are used in a global declaration.
|
||||
|
||||
@@ -332,6 +468,56 @@ The following are the changes from calc version 2.12.0 to date:
|
||||
Change/restored the syntax rules for "for" and "while" loops to
|
||||
recognize an unescaped newline in top-level command-level statements.
|
||||
|
||||
Updated help/avg, help/define, help/fprintf, help/gcd, help/hash,
|
||||
help/hmean, help/lcm, help/max, help/min, help/null, help/poly,
|
||||
help/printf, help/ssq, help/strcat, help/strprintf, help/sum,
|
||||
help/xor.
|
||||
|
||||
Changed the definition of the function ssq() to enable list arguments
|
||||
to be processed in the same way as in sum(). For example:
|
||||
|
||||
ssq(1,2, list(3,4,list(5,6)), list(), 7, 8)
|
||||
|
||||
returns the value of 1^2 + 2^2 + ... + 8^2 == 204.
|
||||
|
||||
Added the calc resource sumtimes.cal, to give the runtimes for
|
||||
various ways of evaluating sums, sums of squares, etc, for large
|
||||
lists and matrices. For example:
|
||||
|
||||
read sumtimes
|
||||
doalltimes(1e6)
|
||||
|
||||
Calc now ignores carriage returns (\r), vertical tabs (\v), and
|
||||
form feeds (\f) when token parsing. Thus users on Windoz systems
|
||||
can write files using their \r\n format and users on non-Windoz
|
||||
systems can read them without errors.
|
||||
|
||||
The quomod() builtin function now takes an optional 5th argument
|
||||
which controls the rounding mode like config("quomod") does, but
|
||||
only for that call. Now quomod() is in line with quo() and mod()
|
||||
in that the final argument is an optional rounding mode.
|
||||
|
||||
Added a "make uninstall" rule which will attempt to remove everything
|
||||
that was installed by a "make install".
|
||||
|
||||
Changed the "Copyright" line in the rpm spec file to a "License" line
|
||||
as per new rpm v4.4 syntax.
|
||||
|
||||
The quomod() builtin function does not allow constants for its 3rd
|
||||
and 4th arguments. Updated the "help quomod" file and added more
|
||||
quomod regression tests.
|
||||
|
||||
Added patch from Ernest Bowen <ebowen at une dot edu dot au> to
|
||||
add the builtin: estr(). The estr(x) will return a representation
|
||||
of a null, string, real number, complex number, list, matrix,
|
||||
object. block, named block, error as a string.
|
||||
|
||||
Added patch from Ernest Bowen <ebowen at une dot edu dot au> to
|
||||
add the builtin: fgetfile(). The fgetfile(x) will return the rest
|
||||
of an open file as a string.
|
||||
|
||||
Improved help files for fgetfield, fputs, name, or quomod.
|
||||
|
||||
|
||||
The following are the changes from calc version 2.11.10.1 to 2.11.11:
|
||||
|
||||
@@ -478,6 +664,9 @@ The following are the changes from calc version 2.11.10 to 2.11.10:
|
||||
that was reported for the PowerMac G5 2GHz MacOS 10.3 by
|
||||
Guillaume VERGNAUD <vergnaud at via dot ecp dot fr>.
|
||||
|
||||
Fixed a number of pending issues with help files filling in
|
||||
missing LIMITS, LINK LIBRARY, and SEE ALSO information,
|
||||
|
||||
|
||||
The following are the changes from calc version 2.11.9 to 2.11.9.3:
|
||||
|
||||
@@ -856,7 +1045,7 @@ The following are the changes from calc version 2.11.5t4.1 to 2.11.5t4.4:
|
||||
For example when forming the calc rpm, the Makefile is called with
|
||||
T=$RPM_BUILD_ROOT. If $T is empty, calc is installed under /.
|
||||
|
||||
Removed all echo_XXX rules except for echo_inst_files from lower
|
||||
Removed all echo_XYZ rules except for echo_inst_files from lower
|
||||
level makefile. The calc.spec will use a make install rule
|
||||
with T=$RPM_BUILD_ROOT.
|
||||
|
||||
@@ -2514,8 +2703,6 @@ The following are the changes from calc version 2.10.3t5.38 to 2.11.3t5.46:
|
||||
into a single section.
|
||||
|
||||
|
||||
|
||||
|
||||
The following are the changes from calc version 2.10.3t5.34 to 2.10.3t5.37:
|
||||
|
||||
Per request from David I Bell, the README line:
|
||||
@@ -6149,8 +6336,8 @@ Following is a list of visible changes to calc from version 1.24.7 to 1.26.1:
|
||||
## received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
##
|
||||
## @(#) $Revision: 29.82 $
|
||||
## @(#) $Id: CHANGES,v 29.82 2006/06/20 10:26:41 chongo Exp $
|
||||
## @(#) $Revision: 29.95 $
|
||||
## @(#) $Id: CHANGES,v 29.95 2007/02/07 21:28:20 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/RCS/CHANGES,v $
|
||||
##
|
||||
## Under source code control: 1993/06/02 18:12:57
|
||||
|
@@ -52,14 +52,14 @@ Installing calc from the gziped tarball in 4 easy steps:
|
||||
CALC_INCDIR where the calc include files are installed
|
||||
CUSTOMCALDIR where custom *.cal files are installed
|
||||
CUSTOMHELPDIR where custom help files are installed
|
||||
CUSTOMINCPDIR where custom .h files are installed
|
||||
CUSTOMINCDIR where custom .h files are installed
|
||||
SCRIPTDIR where calc shell scripts are installed
|
||||
|
||||
If you want to install calc files under a top level directory,
|
||||
then set the T value:
|
||||
|
||||
The calc install is performed under $T, the calc build is
|
||||
performed under /. The purpose for $T is to allow someone
|
||||
The calc install is performed under ${T}, the calc build is
|
||||
performed under /. The purpose for ${T} is to allow someone
|
||||
to install calc somewhere other than into the system area.
|
||||
|
||||
For example, if:
|
||||
@@ -79,10 +79,10 @@ Installing calc from the gziped tarball in 4 easy steps:
|
||||
calc help, .cal ...: /var/tmp/testing/usr/share/calc
|
||||
... etc ... /var/tmp/testing/...
|
||||
|
||||
If $T is empty, calc is installed under /, which is the same
|
||||
top of tree for which it was built. If $T is non-empty, then
|
||||
calc is installed under $T, as if one had to chroot under
|
||||
$T for calc to operate.
|
||||
If ${T} is empty, calc is installed under /, which is the same
|
||||
top of tree for which it was built. If ${T} is non-empty, then
|
||||
calc is installed under ${T}, as if one had to chroot under
|
||||
${T} for calc to operate.
|
||||
|
||||
Look for the section that starts:
|
||||
|
||||
@@ -162,8 +162,8 @@ the calc help subsystem. See the README file for details.
|
||||
## 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.7 $
|
||||
## @(#) $Id: HOWTO.INSTALL,v 29.7 2003/04/15 03:38:34 chongo Exp $
|
||||
## @(#) $Revision: 29.9 $
|
||||
## @(#) $Id: HOWTO.INSTALL,v 29.9 2006/09/18 13:11:57 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/RCS/HOWTO.INSTALL,v $
|
||||
##
|
||||
## Under source code control: 1999/09/27 20:48:44
|
||||
|
12
alloc.h
12
alloc.h
@@ -17,8 +17,8 @@
|
||||
* 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.4 $
|
||||
* @(#) $Id: alloc.h,v 29.4 2001/06/08 21:00:58 chongo Exp $
|
||||
* @(#) $Revision: 29.5 $
|
||||
* @(#) $Id: alloc.h,v 29.5 2007/02/07 20:51:38 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/alloc.h,v $
|
||||
*
|
||||
* Under source code control: 1990/02/15 01:48:29
|
||||
@@ -94,13 +94,13 @@ extern int strcmp();
|
||||
#endif /* HAVE_NEWSTR */
|
||||
|
||||
#if !defined(HAVE_MEMMOVE)
|
||||
# undef CALC_SIZE_T
|
||||
# undef MEMMOVE_SIZE_T
|
||||
#if defined(FORCE_STDC) || (defined(__STDC__) && __STDC__ != 0) || defined(__cplusplus)
|
||||
# define CALC_SIZE_T size_t
|
||||
# define MEMMOVE_SIZE_T size_t
|
||||
# else
|
||||
# define CALC_SIZE_T long
|
||||
# define MEMMOVE_SIZE_T long
|
||||
# endif
|
||||
extern void *memmove(void *s1, const void *s2, CALC_SIZE_T n);
|
||||
extern void *memmove(void *s1, const void *s2, MEMMOVE_SIZE_T n);
|
||||
#endif
|
||||
|
||||
#endif /* !__ALLOC_H__ */
|
||||
|
6
blkcpy.c
6
blkcpy.c
@@ -19,8 +19,8 @@
|
||||
* 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.9 $
|
||||
* @(#) $Id: blkcpy.c,v 29.9 2006/05/20 08:43:55 chongo Exp $
|
||||
* @(#) $Revision: 29.10 $
|
||||
* @(#) $Id: blkcpy.c,v 29.10 2007/02/07 20:51:38 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/blkcpy.c,v $
|
||||
*
|
||||
* Under source code control: 1997/04/18 20:41:26
|
||||
@@ -935,7 +935,7 @@ copyostr2blk(char *str,long ssi,long num,BLOCK *dblk,long dsi,BOOL noreloc)
|
||||
* s1
|
||||
*/
|
||||
void *
|
||||
memmove(void *s1, const void *s2, CALC_SIZE_T n)
|
||||
memmove(void *s1, const void *s2, MEMMOVE_SIZE_T n)
|
||||
{
|
||||
/*
|
||||
* firewall
|
||||
|
123
cal/Makefile
123
cal/Makefile
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# cal - makefile for calc standard resource files
|
||||
#
|
||||
# Copyright (C) 1999 Landon Curt Noll
|
||||
# Copyright (C) 1999-2006 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
|
||||
@@ -18,8 +18,8 @@
|
||||
# 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.19 $
|
||||
# @(#) $Id: Makefile,v 29.19 2006/06/10 13:01:34 chongo Exp $
|
||||
# @(#) $Revision: 29.24 $
|
||||
# @(#) $Id: Makefile,v 29.24 2006/09/18 13:13:25 chongo Exp $
|
||||
# @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/Makefile,v $
|
||||
#
|
||||
# Under source code control: 1991/07/21 05:00:54
|
||||
@@ -33,8 +33,8 @@
|
||||
|
||||
# required vars
|
||||
#
|
||||
SHELL = /bin/sh
|
||||
MAKE_FILE = Makefile
|
||||
SHELL= /bin/sh
|
||||
MAKE_FILE= Makefile
|
||||
|
||||
####
|
||||
# Normally, the upper level makefile will set these values. We provide
|
||||
@@ -62,9 +62,9 @@ INCDIR= /usr/include
|
||||
# ${LIBDIR} where calc link library (*.a) files are installed
|
||||
# ${CALC_SHAREDIR} where to install calc help, .cal, startup, config files
|
||||
#
|
||||
# NOTE: The install rule prepends installation paths with $T, which
|
||||
# by default is empty. If $T is non-empty, then installation
|
||||
# locations will be relative to the $T directory.
|
||||
# NOTE: The install rule prepends installation paths with ${T}, which
|
||||
# by default is empty. If ${T} is non-empty, then installation
|
||||
# locations will be relative to the ${T} directory.
|
||||
#
|
||||
# For DJGPP, select:
|
||||
#
|
||||
@@ -96,12 +96,12 @@ CALC_SHAREDIR= /usr/share/calc
|
||||
# ${CALC_INCDIR} where the calc include files are installed
|
||||
# ${CUSTOMCALDIR} where custom *.cal files are installed
|
||||
# ${CUSTOMHELPDIR} where custom help files are installed
|
||||
# ${CUSTOMINCPDIR} where custom .h files are installed
|
||||
# ${CUSTOMINCDIR} where custom .h files are installed
|
||||
# ${SCRIPTDIR} where calc shell scripts are installed
|
||||
#
|
||||
# NOTE: The install rule prepends installation paths with $T, which
|
||||
# by default is empty. If $T is non-empty, then installation
|
||||
# locations will be relative to the $T directory.
|
||||
# NOTE: The install rule prepends installation paths with ${T}, which
|
||||
# by default is empty. If ${T} is non-empty, then installation
|
||||
# locations will be relative to the ${T} directory.
|
||||
#
|
||||
# If in doubt, set:
|
||||
#
|
||||
@@ -121,8 +121,8 @@ SCRIPTDIR= ${BINDIR}/cscript
|
||||
|
||||
# T - top level directory under which calc will be installed
|
||||
#
|
||||
# The calc install is performed under $T, the calc build is
|
||||
# performed under /. The purpose for $T is to allow someone
|
||||
# The calc install is performed under ${T}, the calc build is
|
||||
# performed under /. The purpose for ${T} is to allow someone
|
||||
# to install calc somewhere other than into the system area.
|
||||
#
|
||||
# For example, if:
|
||||
@@ -142,10 +142,10 @@ SCRIPTDIR= ${BINDIR}/cscript
|
||||
# calc help, .cal ...: /var/tmp/testing/usr/share/calc
|
||||
# ... etc ... /var/tmp/testing/...
|
||||
#
|
||||
# If $T is empty, calc is installed under /, which is the same
|
||||
# top of tree for which it was built. If $T is non-empty, then
|
||||
# calc is installed under $T, as if one had to chroot under
|
||||
# $T for calc to operate.
|
||||
# If ${T} is empty, calc is installed under /, which is the same
|
||||
# top of tree for which it was built. If ${T} is non-empty, then
|
||||
# calc is installed under ${T}, as if one had to chroot under
|
||||
# ${T} for calc to operate.
|
||||
#
|
||||
# If in doubt, use T=
|
||||
#
|
||||
@@ -163,6 +163,14 @@ Q=@
|
||||
#
|
||||
CHMOD= chmod
|
||||
CMP= cmp
|
||||
RM= rm
|
||||
MKDIR= mkdir
|
||||
RMDIR= rmdir
|
||||
CP= cp
|
||||
MV= mv
|
||||
CO= co
|
||||
TRUE= true
|
||||
TOUCH= touch
|
||||
|
||||
# The calc files to install
|
||||
#
|
||||
@@ -177,7 +185,7 @@ CALC_FILES= README bigprime.cal deg.cal ellip.cal lucas.cal lucas_chk.cal \
|
||||
beer.cal hello.cal test5100.cal test5200.cal randombitrun.cal \
|
||||
randomrun.cal repeat.cal xx_print.cal natnumset.cal qtime.cal \
|
||||
test8400.cal test8500.cal test8600.cal chi.cal intfile.cal screen.cal \
|
||||
dotest.cal set8700.cal set8700.line alg_config.cal
|
||||
dotest.cal set8700.cal set8700.line alg_config.cal sumtimes.cal
|
||||
|
||||
# These files are found (but not built) in the distribution
|
||||
#
|
||||
@@ -192,8 +200,8 @@ all: ${CALC_FILES} ${MAKE_FILE} .all
|
||||
# used by the upper level Makefile to determine of we have done all
|
||||
#
|
||||
.all:
|
||||
rm -f .all
|
||||
touch .all
|
||||
${RM} -f .all
|
||||
${TOUCH} .all
|
||||
|
||||
##
|
||||
#
|
||||
@@ -209,17 +217,17 @@ all: ${CALC_FILES} ${MAKE_FILE} .all
|
||||
##
|
||||
|
||||
distlist: ${DISTLIST}
|
||||
${Q}for i in ${DISTLIST} /dev/null; do \
|
||||
${Q} for i in ${DISTLIST} /dev/null; do \
|
||||
if [ X"$$i" != X"/dev/null" ]; then \
|
||||
echo cal/$$i; \
|
||||
fi; \
|
||||
done
|
||||
|
||||
distdir:
|
||||
${Q}echo cal
|
||||
${Q} echo cal
|
||||
|
||||
calcliblist:
|
||||
${Q}for i in ${CALCLIBLIST} /dev/null; do \
|
||||
${Q} for i in ${CALCLIBLIST} /dev/null; do \
|
||||
if [ X"$$i" != X"/dev/null" ]; then \
|
||||
echo cal/$$i; \
|
||||
fi; \
|
||||
@@ -232,7 +240,7 @@ calcliblist:
|
||||
##
|
||||
|
||||
echo_inst_files:
|
||||
${Q}for i in ${CALC_FILES} /dev/null; do \
|
||||
${Q} for i in ${CALC_FILES} /dev/null; do \
|
||||
if [ X"$$i" != X"/dev/null" ]; then \
|
||||
echo __file__ ${CALC_SHAREDIR}/$$i; \
|
||||
fi; \
|
||||
@@ -247,32 +255,61 @@ echo_inst_files:
|
||||
clean:
|
||||
|
||||
clobber:
|
||||
rm -f .all
|
||||
${RM} -f .all
|
||||
|
||||
# install everything
|
||||
#
|
||||
# NOTE: Keep the uninstall rule in reverse order to the install rule
|
||||
#
|
||||
install: all
|
||||
-${Q}if [ ! -d $T${CALC_SHAREDIR} ]; then \
|
||||
echo mkdir $T${CALC_SHAREDIR}; \
|
||||
mkdir $T${CALC_SHAREDIR}; \
|
||||
if [ ! -d "$T${CALC_SHAREDIR}" ]; then \
|
||||
echo mkdir -p "$T${CALC_SHAREDIR}"; \
|
||||
mkdir -p "$T${CALC_SHAREDIR}"; \
|
||||
-${Q} if [ ! -d ${T}${CALC_SHAREDIR} ]; then \
|
||||
echo ${MKDIR} ${T}${CALC_SHAREDIR}; \
|
||||
${MKDIR} ${T}${CALC_SHAREDIR}; \
|
||||
if [ ! -d "${T}${CALC_SHAREDIR}" ]; then \
|
||||
echo ${MKDIR} -p "${T}${CALC_SHAREDIR}"; \
|
||||
${MKDIR} -p "${T}${CALC_SHAREDIR}"; \
|
||||
fi; \
|
||||
echo ${CHMOD} 0755 $T${CALC_SHAREDIR}; \
|
||||
${CHMOD} 0755 $T${CALC_SHAREDIR}; \
|
||||
echo ${CHMOD} 0755 ${T}${CALC_SHAREDIR}; \
|
||||
${CHMOD} 0755 ${T}${CALC_SHAREDIR}; \
|
||||
else \
|
||||
true; \
|
||||
${TRUE}; \
|
||||
fi
|
||||
${Q}for i in ${CALC_FILES} /dev/null; do \
|
||||
${Q} for i in ${CALC_FILES} /dev/null; do \
|
||||
if [ "$$i" = "/dev/null" ]; then \
|
||||
continue; \
|
||||
fi; \
|
||||
if ${CMP} -s $$i $T${CALC_SHAREDIR}/$$i; then \
|
||||
true; \
|
||||
if ${CMP} -s $$i ${T}${CALC_SHAREDIR}/$$i; then \
|
||||
${TRUE}; \
|
||||
else \
|
||||
rm -f $T${CALC_SHAREDIR}/$$i.new; \
|
||||
cp -f $$i $T${CALC_SHAREDIR}/$$i.new; \
|
||||
${CHMOD} 0444 $T${CALC_SHAREDIR}/$$i.new; \
|
||||
mv -f $T${CALC_SHAREDIR}/$$i.new $T${CALC_SHAREDIR}/$$i; \
|
||||
echo "installed $T${CALC_SHAREDIR}/$$i"; \
|
||||
${RM} -f ${T}${CALC_SHAREDIR}/$$i.new; \
|
||||
${CP} -f $$i ${T}${CALC_SHAREDIR}/$$i.new; \
|
||||
${CHMOD} 0444 ${T}${CALC_SHAREDIR}/$$i.new; \
|
||||
${MV} -f ${T}${CALC_SHAREDIR}/$$i.new ${T}${CALC_SHAREDIR}/$$i; \
|
||||
echo "installed ${T}${CALC_SHAREDIR}/$$i"; \
|
||||
fi; \
|
||||
done
|
||||
|
||||
# Try to remove everything that was installed
|
||||
#
|
||||
# NOTE: Keep the uninstall rule in reverse order to the install rule
|
||||
#
|
||||
uninstall:
|
||||
-${Q} for i in ${CALC_FILES} /dev/null; do \
|
||||
if [ "$$i" = "/dev/null" ]; then \
|
||||
continue; \
|
||||
fi; \
|
||||
if [ -f "${T}${CALC_SHAREDIR}/$$i" ]; then \
|
||||
${RM} -f "${T}${CALC_SHAREDIR}/$$i"; \
|
||||
if [ -f "${T}${CALC_SHAREDIR}/$$i" ]; then \
|
||||
echo "cannot uninstall ${T}${CALC_SHAREDIR}/$$i"; \
|
||||
else \
|
||||
echo "uninstalled ${T}${CALC_SHAREDIR}/$$i"; \
|
||||
fi; \
|
||||
fi; \
|
||||
done
|
||||
-${Q} for i in ${CALC_SHAREDIR}; do \
|
||||
if [ -d "${T}$$i" ]; then \
|
||||
${RMDIR} "${T}$$i" 2>/dev/null; \
|
||||
echo "cleaned up ${T}$$i"; \
|
||||
fi; \
|
||||
done
|
||||
|
25
cal/README
25
cal/README
@@ -701,6 +701,27 @@ sumsq.cal
|
||||
4N+1, and always impossible for primes of the form 4N-1.
|
||||
|
||||
|
||||
sumtimes.cal
|
||||
|
||||
timematsum(N)
|
||||
timelistsum(N)
|
||||
timematsort(N)
|
||||
timelistsort(N)
|
||||
timematreverse(N)
|
||||
timelistreverse(N)
|
||||
timematssq(N)
|
||||
timelistssq(N)
|
||||
timehmean(N,M)
|
||||
doalltimes(N)
|
||||
|
||||
Give the user CPU time for various ways of evaluating sums, sums of
|
||||
squares, etc, for large lists and matrices. N is the size of
|
||||
the list or matrix to use. The doalltimes() function will run
|
||||
all fo the sumtimes tests. For example:
|
||||
|
||||
doalltimes(1e6);
|
||||
|
||||
|
||||
surd.cal
|
||||
|
||||
surd(a, b)
|
||||
@@ -993,8 +1014,8 @@ xx_print.cal
|
||||
## 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.14 $
|
||||
## @(#) $Id: README,v 29.14 2006/06/11 07:22:05 chongo Exp $
|
||||
## @(#) $Revision: 29.16 $
|
||||
## @(#) $Id: README,v 29.16 2006/12/16 11:18:46 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/README,v $
|
||||
##
|
||||
## Under source code control: 1990/02/15 01:50:32
|
||||
|
@@ -17,8 +17,8 @@
|
||||
* 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.14 $
|
||||
* @(#) $Id: alg_config.cal,v 29.14 2006/06/11 07:22:05 chongo Exp $
|
||||
* @(#) $Revision: 29.15 $
|
||||
* @(#) $Id: alg_config.cal,v 29.15 2006/12/16 11:18:46 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/alg_config.cal,v $
|
||||
*
|
||||
* Under source code control: 2006/06/07 14:10:11
|
||||
@@ -85,7 +85,7 @@ define mul_loop(repeat, x)
|
||||
}
|
||||
|
||||
/* multiply pairwise, all sets of a given length */
|
||||
start = runtime();
|
||||
start = usertime();
|
||||
for (i=0; i < repeat; ++i) {
|
||||
|
||||
if (len == 1) {
|
||||
@@ -130,7 +130,7 @@ define mul_loop(repeat, x)
|
||||
/*
|
||||
* return duration
|
||||
*/
|
||||
end = runtime();
|
||||
end = usertime();
|
||||
return end-start;
|
||||
}
|
||||
|
||||
@@ -477,7 +477,7 @@ define sq_loop(repeat, x)
|
||||
}
|
||||
|
||||
/* square pairwise, all sets of a given length */
|
||||
start = runtime();
|
||||
start = usertime();
|
||||
for (i=0; i < repeat; ++i) {
|
||||
|
||||
if (len == 1) {
|
||||
@@ -524,7 +524,7 @@ define sq_loop(repeat, x)
|
||||
/*
|
||||
* return duration
|
||||
*/
|
||||
end = runtime();
|
||||
end = usertime();
|
||||
return end-start;
|
||||
}
|
||||
|
||||
@@ -874,7 +874,7 @@ define pow_loop(repeat, x, ex)
|
||||
}
|
||||
|
||||
/* pmod pairwise, all sets of a given length */
|
||||
start = runtime();
|
||||
start = usertime();
|
||||
for (i=0; i < repeat; ++i) {
|
||||
|
||||
if (len == 1) {
|
||||
@@ -927,7 +927,7 @@ define pow_loop(repeat, x, ex)
|
||||
/*
|
||||
* return duration
|
||||
*/
|
||||
end = runtime();
|
||||
end = usertime();
|
||||
return end-start;
|
||||
}
|
||||
|
||||
|
@@ -17,8 +17,8 @@
|
||||
* 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: mfactor.cal,v 29.2 2000/06/07 14:02:25 chongo Exp $
|
||||
* @(#) $Revision: 29.3 $
|
||||
* @(#) $Id: mfactor.cal,v 29.3 2006/12/16 11:18:46 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/mfactor.cal,v $
|
||||
*
|
||||
* Under source code control: 1996/07/06 06:09:40
|
||||
@@ -261,7 +261,7 @@ define mfactor(n, start_k, rept_loop, p_elim)
|
||||
} else {
|
||||
/* report this loop */
|
||||
printf("at 2*%d*%d+1, cpu: %f\n",
|
||||
(q-1)/(2*n), n, runtime());
|
||||
(q-1)/(2*n), n, usertime());
|
||||
fflush(files(1));
|
||||
loop = 0;
|
||||
}
|
||||
@@ -274,7 +274,7 @@ define mfactor(n, start_k, rept_loop, p_elim)
|
||||
if (rept_loop <= ++loop) {
|
||||
/* report this loop */
|
||||
printf("at 2*%d*%d+1, cpu: %f\n",
|
||||
(q-1)/(2*n), n, runtime());
|
||||
(q-1)/(2*n), n, usertime());
|
||||
fflush(files(1));
|
||||
loop = 0;
|
||||
}
|
||||
|
@@ -17,8 +17,8 @@
|
||||
* 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: randmprime.cal,v 29.2 2000/06/07 14:02:25 chongo Exp $
|
||||
* @(#) $Revision: 29.3 $
|
||||
* @(#) $Id: randmprime.cal,v 29.3 2006/12/16 11:18:46 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/randmprime.cal,v $
|
||||
*
|
||||
* Under source code control: 1994/03/14 23:11:21
|
||||
@@ -88,8 +88,8 @@ randmprime(bits, seed, dbg)
|
||||
* loop until we find a prime
|
||||
*/
|
||||
if (dbg >= 1) {
|
||||
start = runtime();
|
||||
init = runtime();
|
||||
start = usertime();
|
||||
init = usertime();
|
||||
plush = 0;
|
||||
print "DEBUG1: testing (h+" : plush : ")*2^" : n : "-1";
|
||||
}
|
||||
@@ -97,7 +97,7 @@ randmprime(bits, seed, dbg)
|
||||
|
||||
/* bump h, and n if needed */
|
||||
if (dbg >= 2) {
|
||||
stop = runtime();
|
||||
stop = usertime();
|
||||
print "DEBUG2: last test:", stop-start, " total time:", stop-init;
|
||||
}
|
||||
if (dbg >= 1) {
|
||||
@@ -116,7 +116,7 @@ randmprime(bits, seed, dbg)
|
||||
|
||||
/* found a prime */
|
||||
if (dbg >= 2) {
|
||||
stop = runtime();
|
||||
stop = usertime();
|
||||
print "DEBUG2: last test:", stop-start, " total time:", stop-init;
|
||||
print "DEBUG3: " : h : "*2^" : n : "-1 is prime";
|
||||
}
|
||||
|
145
cal/regress.cal
145
cal/regress.cal
@@ -17,8 +17,8 @@
|
||||
* 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.31 $
|
||||
* @(#) $Id: regress.cal,v 29.31 2006/06/20 10:25:00 chongo Exp $
|
||||
* @(#) $Revision: 29.36 $
|
||||
* @(#) $Id: regress.cal,v 29.36 2006/12/16 11:18:46 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/regress.cal,v $
|
||||
*
|
||||
* Under source code control: 1990/02/15 01:50:36
|
||||
@@ -497,7 +497,33 @@ define test_config()
|
||||
vrfy(config("mode2") == "off",
|
||||
'556: config("mode2") == "off"');
|
||||
|
||||
print '557: Ending test_config';
|
||||
/* hz is numeric */
|
||||
vrfy(isint(config("hz")), '557: isint(config("hz"))');
|
||||
|
||||
/* compile_custom is simple */
|
||||
vrfy(issimple(config("compile_custom")),
|
||||
'558: issimple(config("compile_custom"))');
|
||||
|
||||
/* allow_custom is simple */
|
||||
vrfy(issimple(config("allow_custom")),
|
||||
'559: issimple(config("allow_custom"))');
|
||||
|
||||
/* allow_custom is simple */
|
||||
vrfy(issimple(config("allow_custom")),
|
||||
'559: issimple(config("allow_custom"))');
|
||||
|
||||
/* baseb is numeric */
|
||||
vrfy(isint(config("baseb")), '560: isint(config("baseb"))');
|
||||
|
||||
/* redecl_warn is simple */
|
||||
vrfy(issimple(config("redecl_warn")),
|
||||
'561: issimple(config("redecl_warn"))');
|
||||
|
||||
/* dupvar_warn is simple */
|
||||
vrfy(issimple(config("dupvar_warn")),
|
||||
'562: issimple(config("rdupvar_warn"))');
|
||||
|
||||
print '563: Ending test_config';
|
||||
}
|
||||
print '010: parsed test_config()';
|
||||
|
||||
@@ -743,6 +769,7 @@ define test_functions()
|
||||
local pi;
|
||||
local h, n, r, m, v;
|
||||
local n2, m2, v2;
|
||||
local t;
|
||||
|
||||
print '700: Beginning test_functions';
|
||||
|
||||
@@ -1316,7 +1343,70 @@ define test_functions()
|
||||
*/
|
||||
vrfy(isstr(calcpath()), '1155: isstr(calcpath())');
|
||||
|
||||
print '1156: Ending test_functions';
|
||||
/*
|
||||
* ssq use of lists
|
||||
*/
|
||||
vrfy(ssq(1,2, list(3,4,list(5,6)), list(), 7, 8) == 204,
|
||||
'1156: ssq(1,2, list(3,4,list(5,6)), list(), 7, 8) == 204');
|
||||
|
||||
/*
|
||||
* quomod 5th argument rounding tests
|
||||
*/
|
||||
vrfy(quomod(10,-3,a,b,0) == 1, '1157: vrfy(quomod(10,-3,a,b,0) == 1');
|
||||
vrfy(a == -4, '1158: a == -4');
|
||||
vrfy(b == -2, '1159: b == -2');
|
||||
vrfy(quomod(-10,-3,a,b,1) == 1, '1160: vrfy(quomod(-10,-3,a,b,1) == 1');
|
||||
vrfy(a == 4, '1161: a == 4');
|
||||
vrfy(b == 2, '1162: b == 2');
|
||||
vrfy(quomod(10,3,a,b,2) == 1, '1163: vrfy(quomod(10,3,a,b,2) == 1');
|
||||
vrfy(a == 3, '1164: a == 3');
|
||||
vrfy(b == 1, '1165: b == 1');
|
||||
vrfy(quomod(-10,3,a,b,3) == 1, '1166: vrfy(quomod(-10,3,a,b,3) == 1');
|
||||
vrfy(a == -4, '1167: a == -4');
|
||||
vrfy(b == 2, '1168: b == 2');
|
||||
vrfy(quomod(10,-3,a,b,4) == 1, '1169: vrfy(quomod(10,-3,a,b,4) == 1');
|
||||
vrfy(a == -3, '1170: a == -3');
|
||||
vrfy(b == 1, '1171: b == 1');
|
||||
vrfy(quomod(-10,-3,a,b,5) == 1, '1172: vrfy(quomod(-10,-3,a,b,5) == 1');
|
||||
vrfy(a == 3, '1173: a == 3');
|
||||
vrfy(b == -1, '1174: b == -1');
|
||||
vrfy(quomod(10,3,a,b,6) == 1, '1175: vrfy(quomod(10,3,a,b,6) == 1');
|
||||
vrfy(a == 3, '1176: a == 3');
|
||||
vrfy(b == 1, '1177: b == 1');
|
||||
vrfy(quomod(-10,3,a,b,7) == 1, '1178: vrfy(quomod(-10,3,a,b,7) == 1');
|
||||
vrfy(a == -4, '1179: a == -4');
|
||||
vrfy(b == 2, '1180: b == 2');
|
||||
vrfy(quomod(10,-3,a,b,8) == 1, '1181: vrfy(quomod(10,-3,a,b,8) == 1');
|
||||
vrfy(a == -4, '1182: a == -4');
|
||||
vrfy(b == -2, '1183: b == -2');
|
||||
vrfy(quomod(-10,-3,a,b,9) == 1, '1184: vrfy(quomod(-10,-3,a,b,9) == 1');
|
||||
vrfy(a == 3, '1185: a == 3');
|
||||
vrfy(b == -1, '1186: b == -1');
|
||||
vrfy(quomod(10,3,a,b,10) == 1, '1187: vrfy(quomod(10,3,a,b,10) == 1');
|
||||
vrfy(a == 4, '1188: a == 4');
|
||||
vrfy(b == -2, '1189: b == -2');
|
||||
vrfy(quomod(-10,3,a,b,11) == 1, '1190: vrfy(quomod(-10,3,a,b,11) == 1');
|
||||
vrfy(a == -4, '1191: a == -4');
|
||||
vrfy(b == 2, '1192: b == 2');
|
||||
vrfy(quomod(10,-3,a,b,12) == 1, '1193: vrfy(quomod(10,-3,a,b,12) == 1');
|
||||
vrfy(a == -3, '1194: a == -3');
|
||||
vrfy(b == 1, '1195: b == 1');
|
||||
vrfy(quomod(-10,-3,a,b,13) == 1,'1196: vrfy(quomod(-10,-3,a,b,13) == 1');
|
||||
vrfy(a == 4, '1197: a == 4');
|
||||
vrfy(b == 2, '1198: b == 2');
|
||||
vrfy(quomod(10,3,a,b,14) == 1, '1199: vrfy(quomod(10,3,a,b,14) == 1');
|
||||
vrfy(a == 4, '1200: a == 4');
|
||||
vrfy(b == -2, '1201: b == -2');
|
||||
vrfy(quomod(-10,3,a,b,15) == 1, '1202: vrfy(quomod(-10,3,a,b,15) == 1');
|
||||
vrfy(a == -4, '1203: a == -4');
|
||||
vrfy(b == 2, '1204: b == 2');
|
||||
|
||||
/* runtime(), systime(), usertime() return numeric values */
|
||||
vrfy(isnum(runtime()), '1205: isnum(runtime())');
|
||||
vrfy(isnum(systime()), '1206: isnum(systime())');
|
||||
vrfy(isnum(usertime()), '1207: isnum(usertime())');
|
||||
|
||||
print '1208: Ending test_functions';
|
||||
}
|
||||
print '017: parsed test_functions()';
|
||||
|
||||
@@ -1333,14 +1423,14 @@ define _test_underscore()
|
||||
local _a = 27;
|
||||
local __a = 23209;
|
||||
|
||||
print "1200: Beginning _test_underscore";
|
||||
print "1290: Beginning _test_underscore";
|
||||
|
||||
vrfy(_a == 27, '1201: _a == 27');
|
||||
vrfy(_ == 49, '1202: _ == 49');
|
||||
vrfy(__ == 63, '1203: __ == 63');
|
||||
vrfy(__a == 23209, '1204: __a == 23209');
|
||||
vrfy(_a == 27, '1291: _a == 27');
|
||||
vrfy(_ == 49, '1292: _ == 49');
|
||||
vrfy(__ == 63, '1293: __ == 63');
|
||||
vrfy(__a == 23209, '1294: __a == 23209');
|
||||
|
||||
print "1205: Ending _test_underscore";
|
||||
print "1295: Ending _test_underscore";
|
||||
}
|
||||
print '020: parsed _test_underscore';
|
||||
|
||||
@@ -3403,7 +3493,7 @@ print '070: parsed test_redc()';
|
||||
*/
|
||||
define test_fileops()
|
||||
{
|
||||
local a, b, c, f, m, n, p, r, x, y, z;
|
||||
local a, b, c, f, m, n, p, r, s, x, y, z;
|
||||
local L = "Landon";
|
||||
local C = "Curt";
|
||||
local N = "Noll";
|
||||
@@ -3528,15 +3618,38 @@ define test_fileops()
|
||||
++ecnt;
|
||||
print '4267: ++ecnt;';
|
||||
vrfy(isfile(p=fopen(long,"r")) == 0,
|
||||
'4268: isfile(p=fopen(long,"r")) == 0');
|
||||
'4268: isfile(p=fopen(long,"r")) == 0');
|
||||
|
||||
/*
|
||||
* test fgetfile() and fgetline()
|
||||
*/
|
||||
vrfy(!iserror(p=fopen("tmp4200","w")),
|
||||
'4269: !iserror(p=fopen("tmp4200","w"))');
|
||||
vrfy(!iserror(fputs(p,"chongo\n")),
|
||||
'4270: !iserror(fputs(p,"chongo\n"))');
|
||||
vrfy(!iserror(fputs(p,"w\0a\0s\n")),
|
||||
'4271: !iserror(fputs(p,"w\0a\0s\n"))');
|
||||
vrfy(!iserror(fputs(p,"here\n")),
|
||||
'4272: !iserror(fputs(p,"here\n"))');
|
||||
vrfy(!iserror(fclose(p)), '4273: !iserror(fclose(p))');
|
||||
vrfy(!iserror(p=fopen("tmp4200","r")),
|
||||
'4274: !iserror(p=fopen("tmp4200","r"))');
|
||||
vrfy(!iserror(s=fgetline(p)), '4275: !iserror(s=fgetline(p))');
|
||||
vrfy(strcmp(s,"chongo") == 0, '4276: strcmp(s,"chongo") == 0');
|
||||
vrfy(!iserror(s=fgetfile(p)), '4277: !iserror(s=fgetfile(p))');
|
||||
vrfy(strcmp(s,"w\0a\0s\nhere\n") == 0,
|
||||
'4278: strcmp(s,"w\0a\0s\nhere\n") == 0');
|
||||
vrfy(!iserror(fclose(p)), '4279: !iserror(fclose(p))');
|
||||
|
||||
/*
|
||||
* cleanup
|
||||
*/
|
||||
x = rm("junk4200");
|
||||
print '4269: x = rm("junk4200")';
|
||||
print '4280: x = rm("junk4200")';
|
||||
x = rm("tmp4200");
|
||||
print '4281: x = rm("tmp4200")';
|
||||
|
||||
print '4270: Ending test_fileops';
|
||||
print '4282: Ending test_fileops';
|
||||
}
|
||||
print '071: parsed test_fileops()';
|
||||
|
||||
@@ -7947,7 +8060,9 @@ print '9836: read -once linear';
|
||||
print '9837: skipping read -once beer.cal because it is an infinite loop';
|
||||
print '9838: skipping read -once hello.cal because it is an infinite loop';
|
||||
print '9839: skipping read -once xx_print.cal because it is a printing demo';
|
||||
print '9840: Ending read of selected calc resource files';
|
||||
read -once sumtimes;
|
||||
print '9840: read -once sumtimes';
|
||||
print '9841: Ending read of selected calc resource files';
|
||||
|
||||
|
||||
/*
|
||||
|
@@ -17,8 +17,8 @@
|
||||
* 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: set8700.cal,v 29.1 2006/05/20 19:35:33 chongo Exp $
|
||||
* @(#) $Revision: 29.2 $
|
||||
* @(#) $Id: set8700.cal,v 29.2 2006/08/20 16:16:11 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/set8700.cal,v $
|
||||
*
|
||||
* Under source code control: 2006/05/20 14:10:11
|
||||
@@ -70,3 +70,8 @@ define set8700_g(set8700_x)
|
||||
obj set8700_point {
|
||||
set8700_x, set8700_y, set8700_z
|
||||
}
|
||||
|
||||
global mat set8700_c[] = { 1, 2+3i, -5+4i, 5i+6, -7i };
|
||||
|
||||
global mat set8700_e[] = { 0, 1, 0, 0, 2, -3/2, 2, -1/2,
|
||||
-3, 0.5, -1.0, 0.5, 1.0, 0.0, 0.0, 0.0 };
|
||||
|
@@ -17,8 +17,8 @@
|
||||
## 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: set8700.line,v 29.2 2006/06/20 09:29:16 chongo Exp $
|
||||
## @(#) $Revision: 29.4 $
|
||||
## @(#) $Id: set8700.line,v 29.4 2006/08/20 16:16:11 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/set8700.line,v $
|
||||
##
|
||||
## Under source code control: 2006/05/20 14:10:11
|
||||
@@ -402,3 +402,28 @@ set8700_P == (obj set8700_point = {1,2,3})
|
||||
set8700_L = list(mat[1] = {set8700_P}), protect(set8700_L[0][0]) == 16
|
||||
set8700_L = {{{4,5,6}}}, set8700_L[0][0] == set8700_P
|
||||
protect(set8700_L,0,2), set8700_L = {{{4,5,6}}}, set8700_L[0][0] == (obj set8700_point = {4,5,6})
|
||||
|
||||
## Testing quomod
|
||||
quomod(14,5,3,4) == error(10374)
|
||||
global set8700_a,set8700_b; quomod("abc", 4, set8700_a, set8700_b) == error(10375)
|
||||
quomod(14,5,set8700_a,set8700_b,0) == 1 && set8700_a == 2 && set8700_b == 4
|
||||
quomod(14,5,set8700_a,set8700_b,1) == 1 && set8700_a == 3 && set8700_b == -1
|
||||
quomod("abc",2,set8700_a,set8700_b) == error(10375)
|
||||
set8700_a = "abc"; quomod(14,5,set8700_a,set8700_b) == error(10375)
|
||||
set8700_a = null(); quomod(14,5,set8700_a,set8700_b,24) == 1; set8700_a == 3 && set8700_b == -1
|
||||
quomod(14,5,set8700_a,set8700_a) == error(10374)
|
||||
quomod(14,5,set8700_a,set8700_b,-1) == error(10375)
|
||||
protect(set8700_a,1); quomod(17,2,set8700_a,set8700_b) == error(10376)
|
||||
protect(set8700_a,0); quomod(17,2,set8700_a,set8700_b); set8700_a == 8 && set8700_b == 1
|
||||
set8700_p = &set8700_a, set8700_q = &set8700_b; quomod(14,5,*set8700_p,*set8700_q); *set8700_p == 2 && *set8700_q == 4
|
||||
|
||||
## Testing estr
|
||||
base(1/3) == 10
|
||||
strcmp(estr(null()), "\"\"") == 0
|
||||
strcmp(estr(bernoulli(48)), "-5609403368997817686249127547/46410") == 0
|
||||
strcmp(estr(sin(3i)), "1001787492740990189897i/100000000000000000000") == 0
|
||||
base(10) == 1/3
|
||||
strcmp(estr("fizzbin"), "\"fizzbin\"") == 0
|
||||
strcmp(estr(set8700_c), "mat[5]={1,2+3i,-5+4i,6+5i,-7i}") == 0
|
||||
strcmp(estr(set8700_e), "mat[16]={0,1,0,0,2,-3/2,2,-1/2,-3,1/2,-1,1/2,1,0,0,0}") == 0
|
||||
strcmp(estr(list(2,3,5)), "list(2,3,5)") == 0
|
||||
|
186
cal/sumtimes.cal
Normal file
186
cal/sumtimes.cal
Normal file
@@ -0,0 +1,186 @@
|
||||
/*
|
||||
* sumtimes - runtimes evaluating sums & squares of large lists and mats
|
||||
*
|
||||
* Copyright (C) 2006 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.2 $
|
||||
* @(#) $Id: sumtimes.cal,v 29.2 2006/12/16 11:18:46 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/sumtimes.cal,v $
|
||||
*
|
||||
* Under source code control: 2006/06/22 17:29
|
||||
* File existed as early as: 2006
|
||||
*
|
||||
* Share and enjoy! :-) http://www.isthe.com/chongo/tech/comp/calc/
|
||||
*/
|
||||
|
||||
|
||||
global sumtimes_t0, sumtimes_t1, sumtimes_t2, sumtimes_t3;
|
||||
global sumtimes_A, sumtimes_B;
|
||||
config("tilde", 0),;
|
||||
|
||||
define timematsum(N) {
|
||||
local n, s, p, ptop;
|
||||
|
||||
sumtimes_A = mat[N];
|
||||
|
||||
for (n = 0; n < N; n++) sumtimes_A[n] = rand(N);
|
||||
|
||||
ptop = &sumtimes_A[n-1];
|
||||
sumtimes_t0 = usertime();
|
||||
for (s = n = 0; n < N; n++) s += sumtimes_A[n];
|
||||
sumtimes_t1 = usertime();
|
||||
for (s = 0, p = &sumtimes_A[0]; p <= ptop; p++) s += *p;
|
||||
sumtimes_t2 = usertime();
|
||||
s = matsum(sumtimes_A);
|
||||
sumtimes_t3 = usertime();
|
||||
|
||||
print "Matrix sum runtimes";
|
||||
printf('\tStandard "for" loop:\t\t%.4f\n', sumtimes_t1 - sumtimes_t0);
|
||||
printf('\t"For" loop using pointers:\t\t%.4f\n', sumtimes_t2 - sumtimes_t1);
|
||||
printf('\tUsing builtin "matsum":\t\t%.4f\n', sumtimes_t3 - sumtimes_t2);
|
||||
}
|
||||
|
||||
define timelistsum(N) {
|
||||
local n, s;
|
||||
|
||||
sumtimes_A = makelist(N);
|
||||
for (n = 0; n < N; n++) sumtimes_A[n] = rand(N);
|
||||
|
||||
sumtimes_t0 = usertime();
|
||||
for (s = n = 0; n < N; n++) s += sumtimes_A[n];
|
||||
sumtimes_t1 = usertime();
|
||||
s = sum(sumtimes_A);
|
||||
sumtimes_t2 = usertime();
|
||||
print "List sum runtimes";
|
||||
printf('\tStandard "for" loop:\t\t%.4f\n', sumtimes_t1 - sumtimes_t0);
|
||||
printf('\tUsing builtin "sum":\t\t%.4f\n', sumtimes_t2 - sumtimes_t1);
|
||||
}
|
||||
|
||||
|
||||
define timematsort(N) {
|
||||
local n;
|
||||
|
||||
sumtimes_A = mat[N];
|
||||
for (n = 0; n < N; n++) sumtimes_A[n] = rand(N);
|
||||
sumtimes_t0 = usertime();
|
||||
sort(sumtimes_A);
|
||||
sumtimes_t1 = usertime();
|
||||
printf('\tMatrix sort runtime:\t\t%.4f\n', sumtimes_t1 - sumtimes_t0);
|
||||
}
|
||||
|
||||
|
||||
define timelistsort(N) {
|
||||
local n;
|
||||
|
||||
sumtimes_A = makelist(N);
|
||||
for (n = 0; n < N; n++) sumtimes_A[n] = rand(N);
|
||||
sumtimes_t0 = usertime();
|
||||
sort(sumtimes_A);
|
||||
sumtimes_t1 = usertime();
|
||||
printf('\tList sort runtime:\t\t%.4f\n', sumtimes_t1 - sumtimes_t0);
|
||||
}
|
||||
|
||||
define timematreverse(N) {
|
||||
local n;
|
||||
|
||||
sumtimes_A = mat[N];
|
||||
for (n = 0; n < N; n++) sumtimes_A[n] = rand(N);
|
||||
sumtimes_t0 = usertime();
|
||||
reverse(sumtimes_A);
|
||||
sumtimes_t1 = usertime();
|
||||
printf('\tMatrix reverse runtime %.4f\n', sumtimes_t1 - sumtimes_t0);
|
||||
}
|
||||
|
||||
define timelistreverse(N) {
|
||||
local n;
|
||||
|
||||
sumtimes_A = makelist(N);
|
||||
for (n = 0; n < N; n++) sumtimes_A[n] = rand(N);
|
||||
sumtimes_t0 = usertime();
|
||||
reverse(sumtimes_A);
|
||||
sumtimes_t1 = usertime();
|
||||
printf('\tList reverse runtime:\t\t%.4f\n', sumtimes_t1 - sumtimes_t0);
|
||||
}
|
||||
|
||||
define timematssq(N) {
|
||||
local n, s, p, ptop;
|
||||
|
||||
sumtimes_A = mat[N];
|
||||
|
||||
for (n = 0; n < N; n++) sumtimes_A[n] = rand(N);
|
||||
|
||||
ptop = &sumtimes_A[n-1];
|
||||
sumtimes_t0 = usertime();
|
||||
for (s = n = 0; n < N; n++) s += sumtimes_A[n]^2;
|
||||
sumtimes_t1 = usertime();
|
||||
for (s = 0, p = &sumtimes_A[0]; p <= ptop; p++) s += (*p)^2;
|
||||
sumtimes_t2 = usertime();
|
||||
|
||||
print "Matrix sum of squares runtimes";
|
||||
printf('\tStandard "for" loop:\t\t%.4f\n', sumtimes_t1 - sumtimes_t0);
|
||||
printf('\t"For" loop using pointers:\t\t%.4f\n', sumtimes_t2 - sumtimes_t1);
|
||||
}
|
||||
|
||||
define timelistssq(N) {
|
||||
local n, s;
|
||||
|
||||
sumtimes_A = makelist(N);
|
||||
for (n = 0; n < N; n++) sumtimes_A[n] = rand(N);
|
||||
|
||||
sumtimes_t0 = usertime();
|
||||
for (s = n = 0; n < N; n++) s += sumtimes_A[n]^2;
|
||||
sumtimes_t1 = usertime();
|
||||
s = ssq(sumtimes_A);
|
||||
sumtimes_t2 = usertime();
|
||||
print "List sum of squares runtimes";
|
||||
printf('\tStandard "for" loop:\t\t%.4f\n', sumtimes_t1 - sumtimes_t0);
|
||||
printf('\tUsing builtin "ssq":\t\t%.4f\n', sumtimes_t2 - sumtimes_t1);
|
||||
}
|
||||
|
||||
define timehmean(N, M = 10) {
|
||||
local n, s, v1, v2;
|
||||
|
||||
sumtimes_A = makelist(N);
|
||||
for (n = 0; n < N; n++) sumtimes_A[n] = rand(1, M);
|
||||
|
||||
sumtimes_t0 = usertime();
|
||||
for (s = n = 0; n < N; n++) s += 1/sumtimes_A[n];
|
||||
v1 = N/s;
|
||||
sumtimes_t1 = usertime();
|
||||
v2 = hmean(sumtimes_A);
|
||||
sumtimes_t2 = usertime();
|
||||
print v1, v2;
|
||||
print "List harmonic meanruntimes";
|
||||
printf('\tStandard "for" loop:\t\t%.4f\n', sumtimes_t1 - sumtimes_t0);
|
||||
printf('\tUsing builtin "hmean":\t\t%.4f\n', sumtimes_t2 - sumtimes_t1);
|
||||
}
|
||||
|
||||
define doalltimes(N) {
|
||||
timematsum(N);
|
||||
print;
|
||||
timelistsum(N);
|
||||
print;
|
||||
timematssq(N);
|
||||
print;
|
||||
timelistssq(N);
|
||||
print;
|
||||
timematsort(N);
|
||||
timelistsort(N);
|
||||
timematreverse(N);
|
||||
timelistreverse(N);
|
||||
print;
|
||||
}
|
@@ -19,8 +19,8 @@
|
||||
* 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: test2700.cal,v 29.3 2006/06/20 09:29:16 chongo Exp $
|
||||
* @(#) $Revision: 29.4 $
|
||||
* @(#) $Id: test2700.cal,v 29.4 2006/06/25 22:06:23 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/test2700.cal,v $
|
||||
*
|
||||
* Under source code control: 1995/11/01 22:52:25
|
||||
@@ -88,11 +88,11 @@ define mkfrac() = rand(2) ? mkposfrac() : -mkposfrac();
|
||||
define mksquarereal() = mknonnegreal()^2;
|
||||
|
||||
/*
|
||||
* XXX - Should be able to do better than the following. For nonsquare
|
||||
* positive integer less than 1e6, could use
|
||||
* We might be able to do better than the following. For nonsquare
|
||||
* positive integer less than 1e6, could use:
|
||||
* x = rand(1, 1000);
|
||||
* return rand(x^2 + 1, (x + 1)^2);
|
||||
* Maybe could do
|
||||
* Maybe could do:
|
||||
* do
|
||||
* x = mkreal_2700();
|
||||
* while
|
||||
|
@@ -19,8 +19,8 @@
|
||||
* 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: test3300.cal,v 29.3 2006/06/20 09:29:16 chongo Exp $
|
||||
* @(#) $Revision: 29.5 $
|
||||
* @(#) $Id: test3300.cal,v 29.5 2006/12/16 11:19:45 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/test3300.cal,v $
|
||||
*
|
||||
* Under source code control: 1995/12/02 04:27:41
|
||||
@@ -81,9 +81,9 @@ define testr(str, n, N, verbose)
|
||||
for (i = 0; i < n; i++)
|
||||
for (j = 0; j < n; j++)
|
||||
A[i,j] = rand(-(N^2), N^2)/rand(1, N);
|
||||
t = runtime();
|
||||
t = usertime();
|
||||
d1 = det(A);
|
||||
t = runtime() - t;
|
||||
t = usertime() - t;
|
||||
d2 = det(A^2);
|
||||
if (d2 != d1^2) {
|
||||
if (verbose > 0) {
|
||||
|
@@ -19,8 +19,8 @@
|
||||
* 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: test4000.cal,v 29.3 2006/06/20 09:29:16 chongo Exp $
|
||||
* @(#) $Revision: 29.4 $
|
||||
* @(#) $Id: test4000.cal,v 29.4 2006/12/16 11:18:46 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/test4000.cal,v $
|
||||
*
|
||||
* Under source code control: 1996/03/13 02:38:45
|
||||
@@ -145,7 +145,7 @@ define ptimes(str, N, n, count, skip, verbose)
|
||||
mat A[n];
|
||||
for (i = 0; i < n; i++)
|
||||
A[i] = plen(N);
|
||||
t = runtime();
|
||||
t = usertime();
|
||||
for (i = 0; i < n; i++) {
|
||||
p = ptest(A[i], count, skip);
|
||||
if (!p) {
|
||||
@@ -159,7 +159,7 @@ define ptimes(str, N, n, count, skip, verbose)
|
||||
if (m) {
|
||||
printf("*** %d error(s)\n", m);
|
||||
} else {
|
||||
t = round(runtime() - t, 4);
|
||||
t = round(usertime() - t, 4);
|
||||
if (verbose > 1) {
|
||||
printf("%d probable primes: time = %d\n", n, t);
|
||||
} else {
|
||||
@@ -194,7 +194,7 @@ define ctimes(str, N, n, count, skip, verbose)
|
||||
mat A[n];
|
||||
for (i = 0; i < n; i++)
|
||||
A[i] = clen(N);
|
||||
t = runtime();
|
||||
t = usertime();
|
||||
for (i = 0; i < n; i++) {
|
||||
p = ptest(A[i], count, skip);
|
||||
if (p) {
|
||||
@@ -208,7 +208,7 @@ define ctimes(str, N, n, count, skip, verbose)
|
||||
if (m) {
|
||||
printf("*** %d error(s)\n", m);
|
||||
} else {
|
||||
t = round(runtime() - t, 4);
|
||||
t = round(usertime() - t, 4);
|
||||
if (verbose > 1) {
|
||||
printf("%d probable primes: time = %d\n", n, t);
|
||||
} else {
|
||||
@@ -242,7 +242,7 @@ define crtimes(str, a, b, n, count, skip, verbose)
|
||||
A[i] = rand(a,b);
|
||||
P[i] = ptest(A[i], 20, 0);
|
||||
}
|
||||
t = runtime();
|
||||
t = usertime();
|
||||
for (i = 0; i < n; i++) {
|
||||
p = ptest(A[i], count, skip);
|
||||
if (p != P[i]) {
|
||||
@@ -257,7 +257,7 @@ define crtimes(str, a, b, n, count, skip, verbose)
|
||||
if (m) {
|
||||
printf("*** %d error(s)?\n", m);
|
||||
} else {
|
||||
t = round(runtime() - t, 4);
|
||||
t = round(usertime() - t, 4);
|
||||
if (verbose > 1) {
|
||||
printf("%d probable primes: time = %d\n", n, t);
|
||||
} else {
|
||||
@@ -295,16 +295,16 @@ define ntimes(str, N, n, count, skip, residue, modulus, verbose)
|
||||
mat A[n];
|
||||
for (i = 0; i < n; i++)
|
||||
A[i] = rlen(N);
|
||||
t = runtime();
|
||||
t = usertime();
|
||||
for (i = 0; i < n; i++) {
|
||||
p = nextcand(A[i], count, skip, residue, modulus);
|
||||
}
|
||||
tnext = round(runtime() - t, 4);
|
||||
t = runtime();
|
||||
tnext = round(usertime() - t, 4);
|
||||
t = usertime();
|
||||
for (i = 0; i < n; i++) {
|
||||
p = prevcand(A[i], count, skip, residue, modulus);
|
||||
}
|
||||
tprev = round(runtime() - t, 4);
|
||||
tprev = round(usertime() - t, 4);
|
||||
if (verbose > 0) {
|
||||
printf("%d evaluations, nextcand: %d, prevcand: %d\n", n, tnext, tprev);
|
||||
}
|
||||
|
@@ -19,8 +19,8 @@
|
||||
* 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.4 $
|
||||
* @(#) $Id: test4100.cal,v 29.4 2006/06/20 09:29:16 chongo Exp $
|
||||
* @(#) $Revision: 29.5 $
|
||||
* @(#) $Id: test4100.cal,v 29.5 2006/12/16 11:18:46 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/test4100.cal,v $
|
||||
*
|
||||
* Under source code control: 1996/03/13 03:53:22
|
||||
@@ -245,38 +245,38 @@ define times(str,N,n,verbose)
|
||||
C[i] = rand(m2);
|
||||
}
|
||||
z = rcin(0,m); /* to initialize redc and maybe lastmod information */
|
||||
t = runtime();
|
||||
t = usertime();
|
||||
for (i = 0; i < n; i++)
|
||||
z = rcin(A[i],m);
|
||||
trcin = round(runtime() - t, 3);
|
||||
t = runtime();
|
||||
trcin = round(usertime() - t, 3);
|
||||
t = usertime();
|
||||
for (i = 0; i < n; i++)
|
||||
z = rcout(A[i],m);
|
||||
trcout = round(runtime() - t, 3);
|
||||
t = runtime();
|
||||
trcout = round(usertime() - t, 3);
|
||||
t = usertime();
|
||||
for (i = 0; i < n; i++)
|
||||
z = rcmul(A[i],B[i],m);
|
||||
trcmul = round(runtime() - t, 3);
|
||||
t = runtime();
|
||||
trcmul = round(usertime() - t, 3);
|
||||
t = usertime();
|
||||
for (i = 0; i < n; i++)
|
||||
z = rcsq(A[i],m);
|
||||
trcsq = round(runtime() - t, 3);
|
||||
t = runtime();
|
||||
trcsq = round(usertime() - t, 3);
|
||||
t = usertime();
|
||||
for (i = 0; i < n; i++)
|
||||
z = A[i] * B[i];
|
||||
tmul = round(runtime() - t, 3);
|
||||
t = runtime();
|
||||
tmul = round(usertime() - t, 3);
|
||||
t = usertime();
|
||||
for (i = 0; i < n; i++)
|
||||
z = A[i]^2;
|
||||
tsq = round(runtime() - t, 3);
|
||||
t = runtime();
|
||||
tsq = round(usertime() - t, 3);
|
||||
t = usertime();
|
||||
for (i = 0; i < n; i++)
|
||||
z = C[i] % A[i];
|
||||
tmod = round(runtime() - t, 3);
|
||||
t = runtime();
|
||||
tmod = round(usertime() - t, 3);
|
||||
t = usertime();
|
||||
for (i = 0; i < n; i++)
|
||||
quomod(C[i], A[i], x, y);
|
||||
tquomod = round(runtime() - t,3);
|
||||
tquomod = round(usertime() - t,3);
|
||||
|
||||
if (verbose > 1) {
|
||||
printf("rcin: %d, rcout: %d, rcmul: %d, rcsq: %d\n",
|
||||
@@ -326,29 +326,29 @@ define powtimes(str, N1, N2, n, verbose)
|
||||
Ar[i] = rcin(A[i], v);
|
||||
B[i] = rlen_4100(N2);
|
||||
}
|
||||
t = runtime();
|
||||
t = usertime();
|
||||
for (i = 0; i < n; i++)
|
||||
z1 += pmod(A[i], B[i], v);
|
||||
tbignum = round(runtime() - t, 4);
|
||||
tbignum = round(usertime() - t, 4);
|
||||
config("pow2", 1e6);
|
||||
t = runtime();
|
||||
t = usertime();
|
||||
for (i = 0; i < n; i++)
|
||||
z2 += pmod(A[i], B[i], v);
|
||||
tnormal = round(runtime() - t, 4);
|
||||
tnormal = round(usertime() - t, 4);
|
||||
config("redc2",1e6);
|
||||
t = runtime();
|
||||
t = usertime();
|
||||
for (i = 0; i < n; i++)
|
||||
z3 += pmod(A[i], B[i], v);
|
||||
tsmall = round(runtime() - t, 4);
|
||||
t = runtime();
|
||||
tsmall = round(usertime() - t, 4);
|
||||
t = usertime();
|
||||
for (i = 0; i < n; i++)
|
||||
z4 += rcpow(Ar[i], B[i], v);
|
||||
trcsmall = round(runtime() - t, 4);
|
||||
trcsmall = round(usertime() - t, 4);
|
||||
config("redc2", 2);
|
||||
t = runtime();
|
||||
t = usertime();
|
||||
for (i = 0; i < n; i++)
|
||||
z5 += rcpow(Ar[i], B[i], v);
|
||||
trcbig = round(runtime() - t, 4);
|
||||
trcbig = round(usertime() - t, 4);
|
||||
|
||||
if (z1 != z2) {
|
||||
++m;
|
||||
@@ -419,13 +419,13 @@ define inittimes(str,N,n,verbose)
|
||||
M[i] = olen(N);
|
||||
A[i] = rand(M[i]);
|
||||
}
|
||||
t = runtime();
|
||||
t = usertime();
|
||||
for (i = 0; i < n; i++)
|
||||
R[i] = rcin(A[i], M[i]);
|
||||
trcin = round(runtime() - t, 4);
|
||||
trcin = round(usertime() - t, 4);
|
||||
for (i = 0; i < n; i++)
|
||||
B[i] = rcout(R[i], M[i]);
|
||||
trcout = round(runtime() - t, 4);
|
||||
trcout = round(usertime() - t, 4);
|
||||
for (i = 0; i < n; i++) {
|
||||
if (B[i] != A[i]) {
|
||||
++m;
|
||||
|
15
calc.c
15
calc.c
@@ -19,8 +19,8 @@
|
||||
* 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.13 $
|
||||
* @(#) $Id: calc.c,v 29.13 2006/05/19 15:26:10 chongo Exp $
|
||||
* @(#) $Revision: 29.14 $
|
||||
* @(#) $Id: calc.c,v 29.14 2007/02/07 00:37:25 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/calc.c,v $
|
||||
*
|
||||
* Under source code control: 1990/02/15 01:48:11
|
||||
@@ -416,6 +416,7 @@ main(int argc, char **argv)
|
||||
cp++;
|
||||
*bp++ = ';';
|
||||
cmdlen++;
|
||||
s_flag = TRUE; /* -f implies -s */
|
||||
break;
|
||||
|
||||
case 's':
|
||||
@@ -431,11 +432,13 @@ main(int argc, char **argv)
|
||||
fprintf(stderr, "Illegal option -%c\n",
|
||||
c);
|
||||
fprintf(stderr,
|
||||
"usage: %s [-a] [-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[-O] [-p] [-q] [-u] [-v] "
|
||||
"[--] [calc_cmd ...]\n",
|
||||
program);
|
||||
"\t[-O] [-p] [-q] [-s] [-u] [-v] "
|
||||
"[--] [calc_cmd ...]\n"
|
||||
"usage: %s ... -f filename\n"
|
||||
"1st cscript line: #/path/to/calc ... -f\n",
|
||||
program, program);
|
||||
exit(1);
|
||||
}
|
||||
if (havearg)
|
||||
|
8
calc.h
8
calc.h
@@ -17,8 +17,8 @@
|
||||
* 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.18 $
|
||||
* @(#) $Id: calc.h,v 29.18 2006/05/21 07:28:54 chongo Exp $
|
||||
* @(#) $Revision: 29.19 $
|
||||
* @(#) $Id: calc.h,v 29.19 2006/08/20 15:01:30 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/calc.h,v $
|
||||
*
|
||||
* Under source code control: 1990/02/15 01:48:31
|
||||
@@ -113,10 +113,10 @@ extern DLL int closeid(FILEID id);
|
||||
extern DLL int getcharid(FILEID id);
|
||||
extern DLL int idprintf(FILEID id, char *fmt, int count, VALUE **vals);
|
||||
extern DLL int idfputc(FILEID id, int ch);
|
||||
extern DLL int idfputs(FILEID id, char *str);
|
||||
extern DLL int idfputs(FILEID id, STRING *str);
|
||||
extern DLL int printid(FILEID id, int flags);
|
||||
extern DLL int flushid(FILEID id);
|
||||
extern DLL int readid(FILEID id, int flags, char **retptr);
|
||||
extern DLL int readid(FILEID id, int flags, STRING **retptr);
|
||||
extern DLL int getloc(FILEID id, ZVALUE *loc);
|
||||
extern DLL int setloc(FILEID id, ZVALUE zpos);
|
||||
extern DLL int getsize(FILEID id, ZVALUE *size);
|
||||
|
8
calc.man
8
calc.man
@@ -1,5 +1,5 @@
|
||||
.\"
|
||||
.\" Copyright (C) 1999-2004 Landon Curt Noll
|
||||
.\" Copyright (C) 1999-2007 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
|
||||
@@ -15,8 +15,8 @@
|
||||
.\" 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.20 $
|
||||
.\" @(#) $Id: calc.man,v 29.20 2006/06/01 12:04:16 chongo Exp $
|
||||
.\" @(#) $Revision: 29.21 $
|
||||
.\" @(#) $Id: calc.man,v 29.21 2007/02/07 00:38:43 chongo Exp $
|
||||
.\" @(#) $Source: /usr/local/src/cmd/calc/RCS/calc.man,v $
|
||||
.\"
|
||||
.\" Under source code control: 1991/07/23 05:48:26
|
||||
@@ -28,7 +28,7 @@
|
||||
.\" calculator by David I. Bell
|
||||
.\" man page by Landon Noll
|
||||
.\"
|
||||
.TH calc 1 "^..^" "1999-11-30"
|
||||
.TH calc 1 "^..^" "2007-02-06"
|
||||
.SH NAME
|
||||
calc \- arbitrary precision calculator
|
||||
.SH SYNOPSIS
|
||||
|
@@ -18,8 +18,8 @@
|
||||
# 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.15 $
|
||||
# @(#) $Id: calc.spec.in,v 29.15 2006/05/21 06:26:00 chongo Exp $
|
||||
# @(#) $Revision: 29.16 $
|
||||
# @(#) $Id: calc.spec.in,v 29.16 2006/06/26 05:50:44 chongo Exp $
|
||||
# @(#) $Source: /usr/local/src/cmd/calc/RCS/calc.spec.in,v $
|
||||
#
|
||||
# Under source code control: 2003/02/16 20:21:39
|
||||
@@ -38,7 +38,7 @@ Summary: Arbitrary precision calculator.
|
||||
Name: calc
|
||||
Version: <<<PROJECT_VERSION>>>
|
||||
Release: 0
|
||||
Copyright: LGPL
|
||||
License: LGPL
|
||||
Group: Applications/Engineering
|
||||
Source: %{name}-%{version}.tar.gz
|
||||
URL: http://www.isthe.com/chongo/tech/comp/calc/index.html
|
||||
@@ -101,6 +101,8 @@ rm -rf %{buildroot}
|
||||
%attr(644, root, root) %{_libdir}/*.a
|
||||
|
||||
%changelog
|
||||
* Sun Jun 25 2006 Landon Curt Noll http://www.isthe.com/chongo
|
||||
- Changed Copyright to License as per new rpm v4.4 syntax
|
||||
* Sun May 20 2006 Landon Curt Noll http://www.isthe.com/chongo
|
||||
- Release of calc-2.12.0
|
||||
- Added *.line set files to the list of packaged files
|
||||
|
16
calcerr.tbl
16
calcerr.tbl
@@ -1,7 +1,7 @@
|
||||
#
|
||||
# calcerr - error codes and messages
|
||||
#
|
||||
# Copyright (C) 1999 Ernest Bowen
|
||||
# Copyright (C) 1999-2006 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
|
||||
@@ -17,8 +17,8 @@
|
||||
# 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.8 $
|
||||
# @(#) $Id: calcerr.tbl,v 29.8 2006/05/19 15:12:57 chongo Exp $
|
||||
# @(#) $Revision: 29.10 $
|
||||
# @(#) $Id: calcerr.tbl,v 29.10 2006/08/20 15:01:30 chongo Exp $
|
||||
# @(#) $Source: /usr/local/src/cmd/calc/RCS/calcerr.tbl,v $
|
||||
#
|
||||
# Under source code control: 1996/05/23 17:38:44
|
||||
@@ -404,9 +404,9 @@ E_ASSIGN8 No-type-change destination for assign
|
||||
E_ASSIGN9 No-error-value destination for assign
|
||||
E_SWAP1 No-copy argument for octet swap
|
||||
E_SWAP2 No-assign-to-or-from argument for swap
|
||||
E_SWAP3 Non-variable argument for swap
|
||||
E_QUOMOD1 Non-variable argument 4 or 4 for quomod
|
||||
E_QUOMOD2 Non-real-number argument 1 or 2 for quomod
|
||||
E_SWAP3 Non-lvalue argument for swap
|
||||
E_QUOMOD1 Non-lvalue argument 3 or 4 for quomod
|
||||
E_QUOMOD2 Non-real-number arg 1 or 2 or bad arg 5 for quomod
|
||||
E_QUOMOD3 No-assign-to argument 3 or 4 for quomod
|
||||
E_PREINC1 No-copy-to or no-change argument for octet preinc
|
||||
E_PREINC2 Non-variable argument for preinc
|
||||
@@ -445,3 +445,7 @@ E_FPATHOPEN1 Non-string arguments for fpathopen
|
||||
E_FPATHOPEN2 Unrecognized mode for fpathopen
|
||||
E_LOG1 Bad epsilon argument for log
|
||||
E_LOG2 Non-numeric first argument for log
|
||||
E_FGETFILE1 Non-file argument for fgetfile
|
||||
E_FGETFILE2 File argument for fgetfile not open for reading
|
||||
E_FGETFILE3 Unable to set file position in fgetfile
|
||||
E_ESTR Non-representable type for estr
|
||||
|
@@ -18,8 +18,8 @@
|
||||
# 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: check.awk,v 29.3 2006/05/20 19:43:39 chongo Exp $
|
||||
# @(#) $Revision: 29.5 $
|
||||
# @(#) $Id: check.awk,v 29.5 2006/09/18 08:01:13 chongo Exp $
|
||||
# @(#) $Source: /usr/local/src/cmd/calc/RCS/check.awk,v $
|
||||
#
|
||||
# Under source code control: 1996/05/25 22:07:58
|
||||
@@ -64,7 +64,7 @@ NF == 0 {
|
||||
end_seen = 1;
|
||||
}
|
||||
|
||||
$1 ~ /^[0-9]+:/ || $1 ~ /^[0-9]+-[0-9]*:/ {
|
||||
$1 ~ /^[0-9]+:/ || $1 ~ /^[0-9]+-[0-9]*:/ || $1 ~ /^"\)\)$/ {
|
||||
if (error > 0) {
|
||||
if (havebuf2) {
|
||||
print buf2;
|
||||
|
@@ -19,8 +19,8 @@
|
||||
* 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.21 $
|
||||
* @(#) $Id: codegen.c,v 29.21 2006/06/20 10:28:06 chongo Exp $
|
||||
* @(#) $Revision: 29.22 $
|
||||
* @(#) $Id: codegen.c,v 29.22 2006/12/15 16:25:09 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/codegen.c,v $
|
||||
*
|
||||
* Under source code control: 1990/02/15 01:48:13
|
||||
@@ -144,6 +144,7 @@ getcommands(BOOL toplevel)
|
||||
case T_HELP:
|
||||
for (i=1;;i++) {
|
||||
switch(getfilename(name, MAXCMD+1, NULL)) {
|
||||
case 1:
|
||||
case -1:
|
||||
if(i == 1) {
|
||||
strcpy(name, DEFAULTCALCHELP);
|
||||
|
43
config.c
43
config.c
@@ -19,8 +19,8 @@
|
||||
* 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.21 $
|
||||
* @(#) $Id: config.c,v 29.21 2006/06/20 10:25:45 chongo Exp $
|
||||
* @(#) $Revision: 29.23 $
|
||||
* @(#) $Id: config.c,v 29.23 2006/12/15 16:17:18 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/config.c,v $
|
||||
*
|
||||
* Under source code control: 1991/07/20 00:21:56
|
||||
@@ -31,6 +31,24 @@
|
||||
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#include "have_times.h"
|
||||
#if defined(HAVE_TIME_H)
|
||||
#include <time.h>
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_TIMES_H)
|
||||
#include <times.h>
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_SYS_TIME_H)
|
||||
#include <sys/time.h>
|
||||
#endif
|
||||
|
||||
#if defined(HAVE_SYS_TIMES_H)
|
||||
#include <sys/times.h>
|
||||
#endif
|
||||
|
||||
#include "calc.h"
|
||||
#include "token.h"
|
||||
#include "zrand.h"
|
||||
@@ -45,6 +63,15 @@
|
||||
# define strdup(x) calc_strdup((CONST char *)(x))
|
||||
#endif /* HAVE_STRDUP */
|
||||
|
||||
/*
|
||||
* deal with systems that lack a defined CLK_TCK
|
||||
*/
|
||||
#if defined(CLK_TCK)
|
||||
# define CALC_HZ ((long)(CLK_TCK))
|
||||
#else
|
||||
# define CALC_HZ (0L) /* no defined clock tick rate */
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* Table of configuration types that can be set or read.
|
||||
@@ -100,6 +127,7 @@ NAMETYPE configs[] = {
|
||||
{"baseb", CONFIG_BASEB},
|
||||
{"redecl_warn", CONFIG_REDECL_WARN},
|
||||
{"dupvar_warn", CONFIG_DUPVAR_WARN},
|
||||
{"hz", CONFIG_HZ},
|
||||
{NULL, 0}
|
||||
};
|
||||
|
||||
@@ -414,7 +442,8 @@ lookup_name(NAMETYPE *set, long val)
|
||||
/*
|
||||
* Check whether VALUE at vp is a LEN (32-bit signed integer) and if so,
|
||||
* copy that integer to lp.
|
||||
* Return: 1, 2, 0, or -1 XXX
|
||||
*
|
||||
* Return: 1 ==> not an integer, 2 ==> int > 2^31, 0 ==> OK, -1 ==> error
|
||||
*/
|
||||
|
||||
static int
|
||||
@@ -940,6 +969,10 @@ setconfig(int type, VALUE *vp)
|
||||
}
|
||||
break;
|
||||
|
||||
case CONFIG_HZ:
|
||||
math_error("The clock tick rate config parameter is read-only");
|
||||
/*NOTREACHED*/
|
||||
|
||||
default:
|
||||
math_error("Setting illegal config parameter");
|
||||
/*NOTREACHED*/
|
||||
@@ -1329,6 +1362,10 @@ config_value(CONFIG *cfg, int type, VALUE *vp)
|
||||
i = (cfg->dupvar_warn ? 1 : 0);
|
||||
break;
|
||||
|
||||
case CONFIG_HZ:
|
||||
i = CALC_HZ;
|
||||
break;
|
||||
|
||||
default:
|
||||
math_error("Getting illegal CONFIG element");
|
||||
/*NOTREACHED*/
|
||||
|
9
config.h
9
config.h
@@ -19,8 +19,8 @@
|
||||
* 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.19 $
|
||||
* @(#) $Id: config.h,v 29.19 2006/06/20 10:25:45 chongo Exp $
|
||||
* @(#) $Revision: 29.21 $
|
||||
* @(#) $Id: config.h,v 29.21 2006/12/15 16:16:59 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/config.h,v $
|
||||
*
|
||||
* Under source code control: 1995/11/01 22:20:17
|
||||
@@ -97,6 +97,7 @@
|
||||
#define CONFIG_BASEB 43
|
||||
#define CONFIG_REDECL_WARN 44
|
||||
#define CONFIG_DUPVAR_WARN 45
|
||||
#define CONFIG_HZ 46
|
||||
|
||||
|
||||
/*
|
||||
@@ -153,8 +154,8 @@ struct config {
|
||||
BOOL blkverbose; /* TRUE => print all lines if a block */
|
||||
int blkbase; /* block output base */
|
||||
int blkfmt; /* block output style */
|
||||
long calc_debug; /* internal debug, see CALC_DEBUG_XXX below */
|
||||
long resource_debug; /* resource debug, see RSCDBG_XXX below */
|
||||
long calc_debug; /* internal debug, see CALC_DEBUG_XYZ below */
|
||||
long resource_debug; /* resource debug, see RSCDBG_XYZ below */
|
||||
long user_debug; /* user defined debug value: 0 default */
|
||||
BOOL verbose_quit; /* TRUE => print Quit or abort executed msg */
|
||||
int ctrl_d; /* see CTRL_D_xyz below */
|
||||
|
@@ -1,4 +1,4 @@
|
||||
#!/usr/local/src/cmd/calc/calc -q -s -f
|
||||
#!/usr/local/src/cmd/calc/calc -q -f
|
||||
/*
|
||||
* 4dsphere - determine if 6 points lie on the surface of a sphere in R^4
|
||||
*
|
||||
@@ -26,8 +26,8 @@
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* @(#) $Revision: 1.3 $
|
||||
* @(#) $Id: 4dsphere.calc,v 1.3 2001/06/06 09:06:29 chongo Exp $
|
||||
* @(#) $Revision: 1.4 $
|
||||
* @(#) $Id: 4dsphere.calc,v 1.4 2007/02/07 00:34:04 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cscript/RCS/4dsphere.calc,v $
|
||||
*
|
||||
* Under source code control: 2001/05/03 19:02:03
|
||||
|
234
cscript/Makefile
234
cscript/Makefile
@@ -1,7 +1,7 @@
|
||||
#
|
||||
# cscript - makefile for calc shell script files
|
||||
#
|
||||
# Copyright (C) 1999 Landon Curt Noll
|
||||
# Copyright (C) 1999-2006 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
|
||||
@@ -17,8 +17,8 @@
|
||||
# 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.23 $
|
||||
# @(#) $Id: Makefile,v 29.23 2003/01/14 01:58:18 chongo Exp $
|
||||
# @(#) $Revision: 29.31 $
|
||||
# @(#) $Id: Makefile,v 29.31 2007/02/07 01:43:56 chongo Exp $
|
||||
# @(#) $Source: /usr/local/src/cmd/calc/cscript/RCS/Makefile,v $
|
||||
#
|
||||
# Under source code control: 1999/11/29 11:10:26
|
||||
@@ -34,7 +34,7 @@
|
||||
# required vars
|
||||
#
|
||||
SHELL= /bin/sh
|
||||
MAKE_FILE = Makefile
|
||||
MAKE_FILE= Makefile
|
||||
|
||||
####
|
||||
# Normally, the upper level makefile will set these values. We provide
|
||||
@@ -62,9 +62,9 @@ INCDIR= /usr/include
|
||||
# ${LIBDIR} where calc link library (*.a) files are installed
|
||||
# ${CALC_SHAREDIR} where to install calc help, .cal, startup, config files
|
||||
#
|
||||
# NOTE: The install rule prepends installation paths with $T, which
|
||||
# by default is empty. If $T is non-empty, then installation
|
||||
# locations will be relative to the $T directory.
|
||||
# NOTE: The install rule prepends installation paths with ${T}, which
|
||||
# by default is empty. If ${T} is non-empty, then installation
|
||||
# locations will be relative to the ${T} directory.
|
||||
#
|
||||
# For DJGPP, select:
|
||||
#
|
||||
@@ -96,12 +96,12 @@ CALC_SHAREDIR= /usr/share/calc
|
||||
# ${CALC_INCDIR} where the calc include files are installed
|
||||
# ${CUSTOMCALDIR} where custom *.cal files are installed
|
||||
# ${CUSTOMHELPDIR} where custom help files are installed
|
||||
# ${CUSTOMINCPDIR} where custom .h files are installed
|
||||
# ${CUSTOMINCDIR} where custom .h files are installed
|
||||
# ${SCRIPTDIR} where calc shell scripts are installed
|
||||
#
|
||||
# NOTE: The install rule prepends installation paths with $T, which
|
||||
# by default is empty. If $T is non-empty, then installation
|
||||
# locations will be relative to the $T directory.
|
||||
# NOTE: The install rule prepends installation paths with ${T}, which
|
||||
# by default is empty. If ${T} is non-empty, then installation
|
||||
# locations will be relative to the ${T} directory.
|
||||
#
|
||||
# If in doubt, set:
|
||||
#
|
||||
@@ -121,8 +121,8 @@ SCRIPTDIR= ${BINDIR}/cscript
|
||||
|
||||
# T - top level directory under which calc will be installed
|
||||
#
|
||||
# The calc install is performed under $T, the calc build is
|
||||
# performed under /. The purpose for $T is to allow someone
|
||||
# The calc install is performed under ${T}, the calc build is
|
||||
# performed under /. The purpose for ${T} is to allow someone
|
||||
# to install calc somewhere other than into the system area.
|
||||
#
|
||||
# For example, if:
|
||||
@@ -142,10 +142,10 @@ SCRIPTDIR= ${BINDIR}/cscript
|
||||
# calc help, .cal ...: /var/tmp/testing/usr/share/calc
|
||||
# ... etc ... /var/tmp/testing/...
|
||||
#
|
||||
# If $T is empty, calc is installed under /, which is the same
|
||||
# top of tree for which it was built. If $T is non-empty, then
|
||||
# calc is installed under $T, as if one had to chroot under
|
||||
# $T for calc to operate.
|
||||
# If ${T} is empty, calc is installed under /, which is the same
|
||||
# top of tree for which it was built. If ${T} is non-empty, then
|
||||
# calc is installed under ${T}, as if one had to chroot under
|
||||
# ${T} for calc to operate.
|
||||
#
|
||||
# If in doubt, use T=
|
||||
#
|
||||
@@ -166,6 +166,14 @@ SED= sed
|
||||
SORT= sort
|
||||
FMT= fmt
|
||||
CMP= cmp
|
||||
MKDIR= mkdir
|
||||
RMDIR= rmdir
|
||||
RM= rm
|
||||
TOUCH= touch
|
||||
MV= mv
|
||||
CP= cp
|
||||
CO= co
|
||||
TRUE= true
|
||||
|
||||
# The ${SCRIPT} list is the list of calc shell script files (without the .calc
|
||||
# extension) which will be installed.
|
||||
@@ -191,7 +199,7 @@ SCRIPT_SRC= 4dsphere.calc fproduct.calc mersenne.calc \
|
||||
|
||||
# These files are found (but not built) in the distribution
|
||||
#
|
||||
DISTLIST= ${SCRIPT_SRC} ${MAKE_FILE} README
|
||||
DISTLIST= ${SCRIPT_SRC} ${MAKE_FILE} README.src
|
||||
|
||||
# These files are used to make (but not build) a calc .a library
|
||||
#
|
||||
@@ -199,24 +207,28 @@ CALCLIBLIST=
|
||||
|
||||
# complete list of targets
|
||||
#
|
||||
# NOTE: This list MUST be co-ordinated with the ${CSCRIPT_TARGETS} variable
|
||||
# NOTE: This list MUST be coordinated with the ${CSCRIPT_TARGETS} variable
|
||||
# in the upper level ../Makefile
|
||||
#
|
||||
CSCRIPT_TARGETS= ${SCRIPT}
|
||||
TARGETS= ${CSCRIPT_TARGETS}
|
||||
TARGETS= ${CSCRIPT_TARGETS} README
|
||||
|
||||
# The reason for this Makefile
|
||||
#
|
||||
all: ${TARGETS} .all
|
||||
|
||||
README: README.src
|
||||
@${RM} -f $@
|
||||
@${SED} -e "s:#!/usr/local/src/cmd/calc/calc:#!${BINDIR}/calc:" $?>$@
|
||||
|
||||
# used by the upper level Makefile to determine if we have done all
|
||||
#
|
||||
# NOTE: Due to bogus shells found on one common system we must have
|
||||
# a non-empty else clause for every if condition. *sigh*
|
||||
#
|
||||
.all:
|
||||
rm -f .all
|
||||
touch .all
|
||||
${RM} -f .all
|
||||
${TOUCH} .all
|
||||
|
||||
##
|
||||
#
|
||||
@@ -229,21 +241,22 @@ all: ${TARGETS} .all
|
||||
##
|
||||
|
||||
distlist: ${DISTLIST}
|
||||
${Q}for i in ${DISTLIST} /dev/null; do \
|
||||
${Q} for i in ${DISTLIST} /dev/null; do \
|
||||
if [ X"$$i" != X"/dev/null" ]; then \
|
||||
echo cscript/$$i; \
|
||||
fi; \
|
||||
done | LANG=C ${SORT}
|
||||
|
||||
distdir:
|
||||
${Q}echo cscript
|
||||
${Q} echo cscript
|
||||
|
||||
calcliblist:
|
||||
|
||||
# These next rule help me form the ${DETAIL_HELP} makefile variables above.
|
||||
# These next rule help me form the ${SCRIPT} and ${SCRIPT_SRC} makefile
|
||||
# variables above.
|
||||
#
|
||||
detaillist:
|
||||
${Q}-(echo "xxxxxxx"; \
|
||||
${Q} -(echo "xxxxxxx"; \
|
||||
for i in ${SCRIPT} /dev/null; do \
|
||||
if [ X"$$i" != X"/dev/null" ]; then \
|
||||
if [ ! -f RCS/$$i.calc,v ]; then \
|
||||
@@ -255,9 +268,9 @@ detaillist:
|
||||
done | LANG=C ${SORT}) | ${FMT} -70 | \
|
||||
${SED} -e '1s/xxxxxxx/SCRIPT=/' -e '2,$$s/^/ /' \
|
||||
-e 's/$$/ \\/' -e '$$s/ \\$$//'
|
||||
${Q}echo
|
||||
${Q}-(echo "xxxxxxxxxxx"; \
|
||||
for i in ${SCRIPT} /dev/null; do \
|
||||
${Q} echo
|
||||
${Q} -(echo "xxxxxxxxxxx"; \
|
||||
for i in ${SCRIPT} /dev/null; do \
|
||||
if [ X"$$i" != X"/dev/null" ]; then \
|
||||
if [ ! -f RCS/$$i.calc,v ]; then \
|
||||
echo "WARNING: $$i.calc not under RCS control" 1>&2; \
|
||||
@@ -282,46 +295,46 @@ detaillist:
|
||||
##
|
||||
|
||||
depend:
|
||||
${Q}if [ -f Makefile.bak ]; then \
|
||||
echo "Makefile.bak exists, remove or move it out of the way"; \
|
||||
exit 1; \
|
||||
${Q} if [ -f Makefile.bak ]; then \
|
||||
echo "Makefile.bak exists, remove or move it out of the way"; \
|
||||
exit 1; \
|
||||
else \
|
||||
true; \
|
||||
${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." > \
|
||||
-${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} /dev/null; do \
|
||||
${Q} echo "" >> makedep.out
|
||||
${Q} for i in ${SCRIPT} /dev/null; do \
|
||||
if [ X"$$i" != X"/dev/null" ]; then \
|
||||
echo "$$i: $$i.calc"; \
|
||||
echo ' @rm -f $$@'; \
|
||||
echo ' @$${RM} -f $$@'; \
|
||||
echo ' @$${SED} -e "1s:^#!/usr/local/src/cmd/calc/calc:#!$${BINDIR}/calc:" $$?>$$@'; \
|
||||
echo ' @$${CHMOD} +x $$@'; \
|
||||
fi; \
|
||||
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; \
|
||||
${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; \
|
||||
${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
|
||||
|
||||
##
|
||||
@@ -331,7 +344,7 @@ depend:
|
||||
##
|
||||
|
||||
echo_inst_files:
|
||||
${Q}for i in ${SCRIPT} /dev/null; do \
|
||||
${Q} for i in ${SCRIPT} /dev/null; do \
|
||||
if [ X"$$i" != X"/dev/null" ]; then \
|
||||
echo __file__ ${SCRIPTDIR}/$$i; \
|
||||
fi; \
|
||||
@@ -344,82 +357,111 @@ echo_inst_files:
|
||||
##
|
||||
|
||||
clean:
|
||||
-rm -f makedep.out
|
||||
-${RM} -f makedep.out
|
||||
|
||||
clobber:
|
||||
-rm -f ${TARGETS}
|
||||
-${RM} -f ${TARGETS}
|
||||
|
||||
# install everything
|
||||
#
|
||||
# NOTE: Keep the uninstall rule in reverse order to the install rule
|
||||
#
|
||||
install: all
|
||||
-${Q}if [ ! -d $T${BINDIR} ]; then \
|
||||
echo mkdir $T${BINDIR}; \
|
||||
mkdir $T${BINDIR}; \
|
||||
if [ ! -d "$T${BINDIR}" ]; then \
|
||||
echo mkdir -p "$T${BINDIR}"; \
|
||||
mkdir -p "$T${BINDIR}"; \
|
||||
-${Q} if [ ! -d ${T}${BINDIR} ]; then \
|
||||
echo ${MKDIR} ${T}${BINDIR}; \
|
||||
${MKDIR} ${T}${BINDIR}; \
|
||||
if [ ! -d "${T}${BINDIR}" ]; then \
|
||||
echo ${MKDIR} -p "${T}${BINDIR}"; \
|
||||
${MKDIR} -p "${T}${BINDIR}"; \
|
||||
fi; \
|
||||
echo ${CHMOD} 0755 $T${BINDIR}; \
|
||||
${CHMOD} 0755 $T${BINDIR}; \
|
||||
echo ${CHMOD} 0755 ${T}${BINDIR}; \
|
||||
${CHMOD} 0755 ${T}${BINDIR}; \
|
||||
else \
|
||||
true; \
|
||||
${TRUE}; \
|
||||
fi
|
||||
-${Q}if [ ! -d $T${SCRIPTDIR} ]; then \
|
||||
echo mkdir $T${SCRIPTDIR}; \
|
||||
mkdir $T${SCRIPTDIR}; \
|
||||
if [ ! -d "$T${SCRIPTDIR}" ]; then \
|
||||
echo mkdir -p "$T${SCRIPTDIR}"; \
|
||||
mkdir -p "$T${SCRIPTDIR}"; \
|
||||
-${Q} if [ ! -d ${T}${SCRIPTDIR} ]; then \
|
||||
echo ${MKDIR} ${T}${SCRIPTDIR}; \
|
||||
${MKDIR} ${T}${SCRIPTDIR}; \
|
||||
if [ ! -d "${T}${SCRIPTDIR}" ]; then \
|
||||
echo ${MKDIR} -p "${T}${SCRIPTDIR}"; \
|
||||
${MKDIR} -p "${T}${SCRIPTDIR}"; \
|
||||
fi; \
|
||||
echo ${CHMOD} 0755 $T${SCRIPTDIR}; \
|
||||
${CHMOD} 0755 $T${SCRIPTDIR}; \
|
||||
echo ${CHMOD} 0755 ${T}${SCRIPTDIR}; \
|
||||
${CHMOD} 0755 ${T}${SCRIPTDIR}; \
|
||||
else \
|
||||
true; \
|
||||
${TRUE}; \
|
||||
fi
|
||||
${Q}for i in ${SCRIPT} /dev/null; do \
|
||||
${Q} for i in ${SCRIPT} /dev/null; do \
|
||||
if [ "$$i" = "/dev/null" ]; then \
|
||||
continue; \
|
||||
fi; \
|
||||
if ${CMP} -s $$i $T${SCRIPTDIR}/$$i; then \
|
||||
true; \
|
||||
if ${CMP} -s $$i ${T}${SCRIPTDIR}/$$i; then \
|
||||
${TRUE}; \
|
||||
else \
|
||||
rm -f $T${SCRIPTDIR}/$$i.new; \
|
||||
cp -f $$i $T${SCRIPTDIR}/$$i.new; \
|
||||
${CHMOD} 0555 $T${SCRIPTDIR}/$$i.new; \
|
||||
mv -f $T${SCRIPTDIR}/$$i.new $T${SCRIPTDIR}/$$i; \
|
||||
echo "installed $T${SCRIPTDIR}/$$i"; \
|
||||
${RM} -f ${T}${SCRIPTDIR}/$$i.new; \
|
||||
${CP} -f $$i ${T}${SCRIPTDIR}/$$i.new; \
|
||||
${CHMOD} 0555 ${T}${SCRIPTDIR}/$$i.new; \
|
||||
${MV} -f ${T}${SCRIPTDIR}/$$i.new ${T}${SCRIPTDIR}/$$i; \
|
||||
echo "installed ${T}${SCRIPTDIR}/$$i"; \
|
||||
fi; \
|
||||
done
|
||||
|
||||
# Try to remove everything that was installed
|
||||
#
|
||||
# NOTE: Keep the uninstall rule in reverse order to the install rule
|
||||
#
|
||||
uninstall:
|
||||
-${Q} for i in ${SCRIPT} /dev/null; do \
|
||||
if [ "$$i" = "/dev/null" ]; then \
|
||||
continue; \
|
||||
fi; \
|
||||
if [ -f "${T}${SCRIPTDIR}/$$i" ]; then \
|
||||
${RM} -f "${T}${SCRIPTDIR}/$$i"; \
|
||||
if [ -f "${T}${SCRIPTDIR}/$$i" ]; then \
|
||||
echo "cannot uninstall ${T}${SCRIPTDIR}/$$i"; \
|
||||
else \
|
||||
echo "uninstalled ${T}${SCRIPTDIR}/$$i"; \
|
||||
fi; \
|
||||
fi; \
|
||||
done
|
||||
-${Q} for i in ${SCRIPTDIR} ${BINDIR}; do \
|
||||
if [ -d "${T}$$i" ]; then \
|
||||
${RMDIR} "${T}$$i" 2>/dev/null; \
|
||||
echo "cleaned up ${T}$$i"; \
|
||||
fi; \
|
||||
done
|
||||
|
||||
# DO NOT DELETE THIS LINE -- make depend depends on it.
|
||||
|
||||
4dsphere: 4dsphere.calc
|
||||
@rm -f $@
|
||||
@${RM} -f $@
|
||||
@${SED} -e "1s:^#!/usr/local/src/cmd/calc/calc:#!${BINDIR}/calc:" $?>$@
|
||||
@${CHMOD} +x $@
|
||||
fproduct: fproduct.calc
|
||||
@rm -f $@
|
||||
@${RM} -f $@
|
||||
@${SED} -e "1s:^#!/usr/local/src/cmd/calc/calc:#!${BINDIR}/calc:" $?>$@
|
||||
@${CHMOD} +x $@
|
||||
mersenne: mersenne.calc
|
||||
@rm -f $@
|
||||
@${RM} -f $@
|
||||
@${SED} -e "1s:^#!/usr/local/src/cmd/calc/calc:#!${BINDIR}/calc:" $?>$@
|
||||
@${CHMOD} +x $@
|
||||
piforever: piforever.calc
|
||||
@rm -f $@
|
||||
@${RM} -f $@
|
||||
@${SED} -e "1s:^#!/usr/local/src/cmd/calc/calc:#!${BINDIR}/calc:" $?>$@
|
||||
@${CHMOD} +x $@
|
||||
plus: plus.calc
|
||||
@rm -f $@
|
||||
@${RM} -f $@
|
||||
@${SED} -e "1s:^#!/usr/local/src/cmd/calc/calc:#!${BINDIR}/calc:" $?>$@
|
||||
@${CHMOD} +x $@
|
||||
powerterm: powerterm.calc
|
||||
@rm -f $@
|
||||
@${RM} -f $@
|
||||
@${SED} -e "1s:^#!/usr/local/src/cmd/calc/calc:#!${BINDIR}/calc:" $?>$@
|
||||
@${CHMOD} +x $@
|
||||
simple: simple.calc
|
||||
@rm -f $@
|
||||
@${RM} -f $@
|
||||
@${SED} -e "1s:^#!/usr/local/src/cmd/calc/calc:#!${BINDIR}/calc:" $?>$@
|
||||
@${CHMOD} +x $@
|
||||
square: square.calc
|
||||
@rm -f $@
|
||||
@${RM} -f $@
|
||||
@${SED} -e "1s:^#!/usr/local/src/cmd/calc/calc:#!${BINDIR}/calc:" $?>$@
|
||||
@${CHMOD} +x $@
|
||||
|
@@ -5,6 +5,46 @@ These calc shell scripts are provided because they serve as examples of
|
||||
how use the calc language, and/or because the authors thought them to
|
||||
be useful!
|
||||
|
||||
Please note that calc shell scripts must start with the line:
|
||||
|
||||
#!/usr/local/src/cmd/calc/calc -q -f
|
||||
|
||||
The above line MUST start in column 1 of the first line. The first line
|
||||
must also end in -f. The -q is optional, but is recommended to disable
|
||||
the processing of calc startup scripts.
|
||||
|
||||
Also please note that single # shell line comments are not supported in calc.
|
||||
Comments must be /* c-like comment */ or start with a double ## symbol.
|
||||
|
||||
This is the correct way to form a calc shell script:
|
||||
|
||||
#!/usr/local/src/cmd/calc/calc -q -f
|
||||
|
||||
/* a correct comment */
|
||||
## another correct comment
|
||||
### two or more together is also a comment
|
||||
/*
|
||||
* another correct comment
|
||||
*/
|
||||
print "2+2 =", 2+2; ## yet another comment
|
||||
|
||||
The first argument after the path to calc executable must be an -S.
|
||||
The next arguments are optional. The -q is often recommended because
|
||||
it will disable the processing of the startup scripts.
|
||||
|
||||
For more informaton about calc command lines, see "help usage".
|
||||
|
||||
This next example WRONG:
|
||||
|
||||
#!/usr/local/src/cmd/calc/calc -q
|
||||
|
||||
# This is not a calc calc comment because it has only a single #
|
||||
# You must to start comments with ## or /*
|
||||
# is is also wrong because the first line does not end in -f
|
||||
print "This example has invalid comments"
|
||||
|
||||
#####
|
||||
|
||||
If you write something that you think is useful, please send it to:
|
||||
|
||||
calc-contrib at asthe dot com
|
||||
@@ -77,9 +117,9 @@ simple
|
||||
## 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.10 $
|
||||
## @(#) $Id: README,v 29.10 2001/06/10 19:34:40 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/cscript/RCS/README,v $
|
||||
## @(#) $Revision: 29.11 $
|
||||
## @(#) $Id: README.src,v 29.11 2007/02/07 00:33:10 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/cscript/RCS/README.src,v $
|
||||
##
|
||||
## Under source code control: 1999/12/17 10:23:40
|
||||
## File existed as early as: 1999
|
@@ -1,4 +1,4 @@
|
||||
#!/usr/local/src/cmd/calc/calc -q -s -f
|
||||
#!/usr/local/src/cmd/calc/calc -q -f
|
||||
/*
|
||||
* fproduct - write the big Endian product of terms to a file
|
||||
*
|
||||
@@ -24,8 +24,8 @@
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.2 $
|
||||
* @(#) $Id: fproduct.calc,v 29.2 2001/06/06 09:06:29 chongo Exp $
|
||||
* @(#) $Revision: 29.3 $
|
||||
* @(#) $Id: fproduct.calc,v 29.3 2007/02/07 00:34:04 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cscript/RCS/fproduct.calc,v $
|
||||
*
|
||||
* Under source code control: 2001/04/07 20:13:11
|
||||
|
@@ -1,35 +1,36 @@
|
||||
#!/usr/local/src/cmd/calc/calc -q -s -f
|
||||
#
|
||||
# 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.3 $
|
||||
# @(#) $Id: mersenne.calc,v 29.3 2000/12/15 14:56:54 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://www.isthe.com/chongo/
|
||||
# Share and enjoy! :-) http://www.isthe.com/chongo/tech/comp/calc/
|
||||
|
||||
# usage:
|
||||
# mersenne exp
|
||||
#!/usr/local/src/cmd/calc/calc -q -f
|
||||
/*
|
||||
* mersenne - print the value of a mersenne number
|
||||
*
|
||||
* Copyright (C) 1999-2007 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.4 $
|
||||
* @(#) $Id: mersenne.calc,v 29.4 2007/02/07 00:34:04 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://www.isthe.com/chongo/
|
||||
* Share and enjoy! :-) http://www.isthe.com/chongo/tech/comp/calc/
|
||||
*
|
||||
* usage:
|
||||
* mersenne exp
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
|
@@ -1,35 +1,36 @@
|
||||
#!/usr/local/src/cmd/calc/calc -q -f
|
||||
#
|
||||
# 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.3 $
|
||||
# @(#) $Id: piforever.calc,v 29.3 2000/12/15 14:56:54 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://www.isthe.com/chongo/
|
||||
# Share and enjoy! :-) http://www.isthe.com/chongo/tech/comp/calc/
|
||||
|
||||
# usage:
|
||||
# piforever
|
||||
/*
|
||||
* piforever - print digits of pi forever (or as long as your mem/cpu allow)
|
||||
*
|
||||
* Copyright (C) 1999-2007 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.4 $
|
||||
* @(#) $Id: piforever.calc,v 29.4 2007/02/07 00:34:04 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://www.isthe.com/chongo/
|
||||
* Share and enjoy! :-) http://www.isthe.com/chongo/tech/comp/calc/
|
||||
*
|
||||
* usage:
|
||||
* piforever
|
||||
*/
|
||||
|
||||
|
||||
read -once pi.cal
|
||||
|
@@ -1,35 +1,36 @@
|
||||
#!/usr/local/src/cmd/calc/calc -q -s -f
|
||||
#
|
||||
# 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.3 $
|
||||
# @(#) $Id: plus.calc,v 29.3 2000/12/15 14:56:54 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://www.isthe.com/chongo/
|
||||
# Share and enjoy! :-) http://www.isthe.com/chongo/tech/comp/calc/
|
||||
|
||||
# usage:
|
||||
# plus val ...
|
||||
#!/usr/local/src/cmd/calc/calc -q -f
|
||||
/*
|
||||
* plus - add two or more arguments together
|
||||
*
|
||||
* Copyright (C) 1999-2007 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.4 $
|
||||
* @(#) $Id: plus.calc,v 29.4 2007/02/07 00:34:04 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://www.isthe.com/chongo/
|
||||
* Share and enjoy! :-) http://www.isthe.com/chongo/tech/comp/calc/
|
||||
*
|
||||
* usage:
|
||||
* plus val ...
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
|
@@ -1,4 +1,4 @@
|
||||
#!/usr/local/src/cmd/calc/calc -q -s -f
|
||||
#!/usr/local/src/cmd/calc/calc -q -f
|
||||
/*
|
||||
* powerterm - print the argument as a sum of powers of integers
|
||||
*
|
||||
@@ -24,8 +24,8 @@
|
||||
* received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||
*
|
||||
* @(#) $Revision: 29.6 $
|
||||
* @(#) $Id: powerterm.calc,v 29.6 2001/06/06 09:06:29 chongo Exp $
|
||||
* @(#) $Revision: 29.7 $
|
||||
* @(#) $Id: powerterm.calc,v 29.7 2007/02/07 00:34:04 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cscript/RCS/powerterm.calc,v $
|
||||
*
|
||||
* Under source code control: 2001/04/24 23:49:11
|
||||
|
@@ -1,32 +1,33 @@
|
||||
#!/usr/local/src/cmd/calc/calc -q -f
|
||||
#
|
||||
# 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.3 $
|
||||
# @(#) $Id: simple.calc,v 29.3 2000/12/15 14:56:54 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://www.isthe.com/chongo/
|
||||
# Share and enjoy! :-) http://www.isthe.com/chongo/tech/comp/calc/
|
||||
/*
|
||||
* simple - an example of a simple calc shell script
|
||||
*
|
||||
* Copyright (C) 1999-2007 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.4 $
|
||||
* @(#) $Id: simple.calc,v 29.4 2007/02/07 00:34:04 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://www.isthe.com/chongo/
|
||||
* Share and enjoy! :-) http://www.isthe.com/chongo/tech/comp/calc/
|
||||
*/
|
||||
|
||||
|
||||
/*
|
||||
|
@@ -1,64 +1,67 @@
|
||||
#!/usr/local/src/cmd/calc/calc -q -f
|
||||
#
|
||||
# sqaure - print the squares of input values
|
||||
#
|
||||
# Copyright (C) 2000 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.3 $
|
||||
# @(#) $Id: square.calc,v 29.3 2000/12/17 14:31:58 chongo Exp $
|
||||
# @(#) $Source: /usr/local/src/cmd/calc/cscript/RCS/square.calc,v $
|
||||
#
|
||||
# Under source code control: 2000/12/15 06:52:01
|
||||
# File existed as early as: 2000
|
||||
#
|
||||
# Share and enjoy! :-) http://www.isthe.com/chongo/tech/comp/calc/
|
||||
/*
|
||||
* sqaure - print the squares of input values
|
||||
*
|
||||
* Copyright (C) 2000-2007 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.4 $
|
||||
* @(#) $Id: square.calc,v 29.4 2007/02/07 00:34:04 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cscript/RCS/square.calc,v $
|
||||
*
|
||||
* Under source code control: 2000/12/15 06:52:01
|
||||
* File existed as early as: 2000
|
||||
*
|
||||
* Share and enjoy! :-) http://www.isthe.com/chongo/tech/comp/calc/
|
||||
*/
|
||||
|
||||
/*
|
||||
* Usage:
|
||||
*
|
||||
* From the shell:
|
||||
*
|
||||
* ./square
|
||||
* cat file | ./square
|
||||
* echo "123" | ./square
|
||||
*
|
||||
* Within calc:
|
||||
*
|
||||
* > read square
|
||||
*
|
||||
* With input from a terminal, there is no prompt but each non-empty
|
||||
* line of input is evaluated as a calc expression and if it can be
|
||||
* calculated, the square of the value of that expression is displayed.
|
||||
* Execution stops when an empty line is input.
|
||||
*
|
||||
* From the shell:
|
||||
*
|
||||
* ./square
|
||||
*
|
||||
* The following shows lines of input followed by output:
|
||||
*
|
||||
* 1234
|
||||
* 1522756
|
||||
* ln(2)
|
||||
* ~.48045301391820142467
|
||||
* config("mode","frac"), bernoulli(10)
|
||||
* 25/4356
|
||||
* config("mode", "hex"), 0xff
|
||||
* 0xfe01
|
||||
*/
|
||||
|
||||
# Usage:
|
||||
#
|
||||
# From the shell:
|
||||
#
|
||||
# ./square
|
||||
# cat file | ./square
|
||||
# echo "123" | ./square
|
||||
#
|
||||
# Within calc:
|
||||
#
|
||||
# > read square
|
||||
#
|
||||
# With input from a terminal, there is no prompt but each non-empty
|
||||
# line of input is evaluated as a calc expression and if it can be
|
||||
# calculated, the square of the value of that expression is displayed.
|
||||
# Execution stops when an empty line is input.
|
||||
#
|
||||
# From the shell:
|
||||
#
|
||||
# ./square
|
||||
#
|
||||
# The following shows lines of input followed by output:
|
||||
#
|
||||
# 1234
|
||||
# 1522756
|
||||
# ln(2)
|
||||
# ~.48045301391820142467
|
||||
# config("mode","frac"), bernoulli(10)
|
||||
# 25/4356
|
||||
# config("mode", "hex"), 0xff
|
||||
# 0xfe01
|
||||
#
|
||||
|
||||
global s;
|
||||
while ((s = prompt("")))
|
||||
|
466
custom/Makefile
466
custom/Makefile
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# custom - makefile for calc custom routines
|
||||
#
|
||||
# Copyright (C) 1999,2004 Landon Curt Noll
|
||||
# Copyright (C) 1999-2006 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
|
||||
@@ -18,8 +18,8 @@
|
||||
# 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.24 $
|
||||
# @(#) $Id: Makefile,v 29.24 2004/07/29 08:38:18 chongo Exp $
|
||||
# @(#) $Revision: 29.29 $
|
||||
# @(#) $Id: Makefile,v 29.29 2006/09/18 13:13:25 chongo Exp $
|
||||
# @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/Makefile,v $
|
||||
#
|
||||
# Under source code control: 1997/03/09 02:28:54
|
||||
@@ -114,9 +114,9 @@ INCDIR= /usr/include
|
||||
# ${LIBDIR} where calc link library (*.a) files are installed
|
||||
# ${CALC_SHAREDIR} where to install calc help, .cal, startup, config files
|
||||
#
|
||||
# NOTE: The install rule prepends installation paths with $T, which
|
||||
# by default is empty. If $T is non-empty, then installation
|
||||
# locations will be relative to the $T directory.
|
||||
# NOTE: The install rule prepends installation paths with ${T}, which
|
||||
# by default is empty. If ${T} is non-empty, then installation
|
||||
# locations will be relative to the ${T} directory.
|
||||
#
|
||||
# For DJGPP, select:
|
||||
#
|
||||
@@ -148,12 +148,12 @@ CALC_SHAREDIR= /usr/share/calc
|
||||
# ${CALC_INCDIR} where the calc include files are installed
|
||||
# ${CUSTOMCALDIR} where custom *.cal files are installed
|
||||
# ${CUSTOMHELPDIR} where custom help files are installed
|
||||
# ${CUSTOMINCPDIR} where custom .h files are installed
|
||||
# ${CUSTOMINCDIR} where custom .h files are installed
|
||||
# ${SCRIPTDIR} where calc shell scripts are installed
|
||||
#
|
||||
# NOTE: The install rule prepends installation paths with $T, which
|
||||
# by default is empty. If $T is non-empty, then installation
|
||||
# locations will be relative to the $T directory.
|
||||
# NOTE: The install rule prepends installation paths with ${T}, which
|
||||
# by default is empty. If ${T} is non-empty, then installation
|
||||
# locations will be relative to the ${T} directory.
|
||||
#
|
||||
# If in doubt, set:
|
||||
#
|
||||
@@ -173,8 +173,8 @@ SCRIPTDIR= ${BINDIR}/cscript
|
||||
|
||||
# T - top level directory under which calc will be installed
|
||||
#
|
||||
# The calc install is performed under $T, the calc build is
|
||||
# performed under /. The purpose for $T is to allow someone
|
||||
# The calc install is performed under ${T}, the calc build is
|
||||
# performed under /. The purpose for ${T} is to allow someone
|
||||
# to install calc somewhere other than into the system area.
|
||||
#
|
||||
# For example, if:
|
||||
@@ -194,10 +194,10 @@ SCRIPTDIR= ${BINDIR}/cscript
|
||||
# calc help, .cal ...: /var/tmp/testing/usr/share/calc
|
||||
# ... etc ... /var/tmp/testing/...
|
||||
#
|
||||
# If $T is empty, calc is installed under /, which is the same
|
||||
# top of tree for which it was built. If $T is non-empty, then
|
||||
# calc is installed under $T, as if one had to chroot under
|
||||
# $T for calc to operate.
|
||||
# If ${T} is empty, calc is installed under /, which is the same
|
||||
# top of tree for which it was built. If ${T} is non-empty, then
|
||||
# calc is installed under ${T}, as if one had to chroot under
|
||||
# ${T} for calc to operate.
|
||||
#
|
||||
# If in doubt, use T=
|
||||
#
|
||||
@@ -249,6 +249,20 @@ NO_SHARED=
|
||||
#NO_SHARED= -dn
|
||||
#NO_SHARED= -non_shared
|
||||
|
||||
# On some systems where you are disabling dynamic shared link libs, you may
|
||||
# need to pass a special flag to ${CC} and ${LCC} during linking stage.
|
||||
#
|
||||
# System type NO_SHARED recommendation
|
||||
#
|
||||
# IRIX with NO_SHARED= -non_shared LD_NO_SHARED= -Wl,-rdata_shared
|
||||
# IRIX with NO_SHARED= LD_NO_SHARED=
|
||||
# others LD_NO_SHARED=
|
||||
#
|
||||
# If in doubt, use LD_NO_SHARED=
|
||||
#
|
||||
LD_NO_SHARED=
|
||||
#LD_NO_SHARED= -Wl,-rdata_shared
|
||||
|
||||
# Normally, the upper level makefile will set these values. We provide
|
||||
# a default here just in case you want to build from this directory.
|
||||
#
|
||||
@@ -275,12 +289,13 @@ 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.
|
||||
#
|
||||
# If you do not wish to use purify, leave PURIFY commented out.
|
||||
# If you do not wish to use purify, set PURIFY to an empty string.
|
||||
#
|
||||
# If in doubt, leave PURIFY commented out.
|
||||
# If in doubt, use PURIFY=
|
||||
#
|
||||
#PURIFY= purify -logfile=pure.out
|
||||
#PURIFY= purify
|
||||
PURIFY=
|
||||
|
||||
# Normally, the upper level makefile will set these values. We provide
|
||||
# a default here just in case you want to build from this directory.
|
||||
@@ -402,6 +417,16 @@ MAKEDEPEND= makedepend
|
||||
CHMOD= chmod
|
||||
SORT= sort
|
||||
CMP= cmp
|
||||
AR= ar
|
||||
RM= rm
|
||||
TOUCH= touch
|
||||
MKDIR= mkdir
|
||||
RMDIR= rmdir
|
||||
MV= mv
|
||||
CP= cp
|
||||
CO= co
|
||||
TRUE= true
|
||||
MAKE= make
|
||||
|
||||
##
|
||||
#
|
||||
@@ -413,8 +438,8 @@ all: ${TARGETS} ${INSTALL_H_SRC} ${CUSTOM_CALC_FILES} \
|
||||
${CUSTOM_HELP} ${MAKE_FILE} .all
|
||||
|
||||
libcustcalc.a: ${CUSTCALC_OBJ} ${MAKE_FILE} ../${MAKE_FILE}
|
||||
-rm -f libcustcalc.a
|
||||
ar qc libcustcalc.a ${CUSTCALC_OBJ}
|
||||
-${RM} -f libcustcalc.a
|
||||
${AR} qc libcustcalc.a ${CUSTCALC_OBJ}
|
||||
${RANLIB} libcustcalc.a
|
||||
|
||||
##
|
||||
@@ -435,8 +460,8 @@ c_sysinfo.o: c_sysinfo.c ${MAKE_FILE}
|
||||
# to determine of we have done all
|
||||
#
|
||||
.all:
|
||||
rm -f .all
|
||||
touch .all
|
||||
${RM} -f .all
|
||||
${TOUCH} .all
|
||||
|
||||
##
|
||||
#
|
||||
@@ -452,17 +477,17 @@ c_sysinfo.o: c_sysinfo.c ${MAKE_FILE}
|
||||
##
|
||||
|
||||
distlist: ${DISTLIST}
|
||||
${Q}for i in ${DISTLIST} /dev/null; do \
|
||||
${Q} for i in ${DISTLIST} /dev/null; do \
|
||||
if [ X"$$i" != X"/dev/null" ]; then \
|
||||
echo custom/$$i; \
|
||||
fi; \
|
||||
done
|
||||
|
||||
distdir:
|
||||
${Q}echo custom
|
||||
${Q} echo custom
|
||||
|
||||
calcliblist: ${CALCLIBLIST}
|
||||
${Q}for i in ${CALCLIBLIST} /dev/null; do \
|
||||
${Q} for i in ${CALCLIBLIST} /dev/null; do \
|
||||
if [ X"$$i" != X"/dev/null" ]; then \
|
||||
echo custom/$$i; \
|
||||
fi; \
|
||||
@@ -481,81 +506,81 @@ calcliblist: ${CALCLIBLIST}
|
||||
##
|
||||
|
||||
depend:
|
||||
${Q}if [ -f Makefile.bak ]; then \
|
||||
echo "Makefile.bak exists, remove or move it out of the way"; \
|
||||
exit 1; \
|
||||
${Q} if [ -f Makefile.bak ]; then \
|
||||
echo "Makefile.bak exists, remove or move it out of the way"; \
|
||||
exit 1; \
|
||||
else \
|
||||
true; \
|
||||
${TRUE}; \
|
||||
fi
|
||||
${Q}echo forming custom/skel
|
||||
-${Q}rm -rf skel
|
||||
${Q}mkdir skel
|
||||
${Q}mkdir skel/custom
|
||||
-${Q}for i in ${C_SRC} /dev/null; do \
|
||||
${Q} echo forming custom/skel
|
||||
-${Q} ${RM} -rf skel
|
||||
${Q} ${MKDIR} skel
|
||||
${Q} ${MKDIR} skel/custom
|
||||
-${Q} for i in ${C_SRC} /dev/null; do \
|
||||
if [ X"$$i" != X"/dev/null" ]; then \
|
||||
${SED} -n '/^#[ ]*include[ ]*"/p' \
|
||||
"$$i" > "skel/custom/$$i"; \
|
||||
fi; \
|
||||
done
|
||||
-${Q}for i in ${H_SRC} /dev/null; do \
|
||||
if [ "$$i" = "/dev/null" ]; then \
|
||||
continue; \
|
||||
fi; \
|
||||
tag="`echo $$i | ${SED} 's/[\.+,:]/_/g'`"; \
|
||||
echo "#if !defined($$tag)" > "skel/custom/$$i"; \
|
||||
echo "#define $$tag" >> "skel/custom/$$i"; \
|
||||
${SED} -n '/^#[ ]*include[ ]*"/p' "$$i" \
|
||||
>> "skel/custom/$$i"; \
|
||||
echo '#endif /* '"$$tag"' */' >> "skel/custom/$$i"; \
|
||||
-${Q} for i in ${H_SRC} /dev/null; do \
|
||||
if [ "$$i" = "/dev/null" ]; then \
|
||||
continue; \
|
||||
fi; \
|
||||
tag="`echo $$i | ${SED} 's/[\.+,:]/_/g'`"; \
|
||||
echo "#if !defined($$tag)" > "skel/custom/$$i"; \
|
||||
echo "#define $$tag" >> "skel/custom/$$i"; \
|
||||
${SED} -n '/^#[ ]*include[ ]*"/p' "$$i" \
|
||||
>> "skel/custom/$$i"; \
|
||||
echo '#endif /* '"$$tag"' */' >> "skel/custom/$$i"; \
|
||||
done
|
||||
${Q}(cd ..; ${MAKE} hsrc)
|
||||
${Q}for i in `cd ..; ${MAKE} h_list 2>&1 | \
|
||||
${SED} -e '/Entering directory/d' \
|
||||
-e '/Nothing to be done/d' \
|
||||
-e '/Leaving directory/d'` /dev/null; do \
|
||||
if [ "$$i" = "/dev/null" ]; then \
|
||||
continue; \
|
||||
fi; \
|
||||
tag="`echo $$i | ${SED} 's/[\.+,:]/_/g'`"; \
|
||||
echo "#if !defined($$tag)" > "skel/$$i"; \
|
||||
echo "#define $$tag" >> "skel/$$i"; \
|
||||
${SED} -n '/^#[ ]*include[ ]*"/p' "../$$i" \
|
||||
>> "skel/$$i"; \
|
||||
echo '#endif /* '"$$tag"' */' >> "skel/$$i"; \
|
||||
${Q} (cd ..; $(MAKE) hsrc)
|
||||
${Q} for i in `cd ..; $(MAKE) h_list 2>&1 | \
|
||||
${SED} -e '/Entering directory/d' \
|
||||
-e '/Nothing to be done/d' \
|
||||
-e '/Leaving directory/d'` /dev/null; do \
|
||||
if [ "$$i" = "/dev/null" ]; then \
|
||||
continue; \
|
||||
fi; \
|
||||
tag="`echo $$i | ${SED} 's/[\.+,:]/_/g'`"; \
|
||||
echo "#if !defined($$tag)" > "skel/$$i"; \
|
||||
echo "#define $$tag" >> "skel/$$i"; \
|
||||
${SED} -n '/^#[ ]*include[ ]*"/p' "../$$i" \
|
||||
>> "skel/$$i"; \
|
||||
echo '#endif /* '"$$tag"' */' >> "skel/$$i"; \
|
||||
done
|
||||
-${Q}rm -f skel/custom/makedep.out
|
||||
${Q}echo custom/skel formed
|
||||
${Q}echo forming custom dependency list
|
||||
${Q}echo "# DO NOT DELETE THIS LINE -- make depend depends on it." > \
|
||||
-${Q} ${RM} -f skel/custom/makedep.out
|
||||
${Q} echo custom/skel formed
|
||||
${Q} echo forming custom dependency list
|
||||
${Q} echo "# DO NOT DELETE THIS LINE -- make depend depends on it." > \
|
||||
skel/custom/makedep.out
|
||||
${Q}cd skel/custom; ${MAKEDEPEND} -w 1 -f makedep.out ${C_SRC}
|
||||
-${Q}for i in ${C_SRC} /dev/null; do \
|
||||
${Q} cd skel/custom; ${MAKEDEPEND} -w 1 -f makedep.out ${C_SRC}
|
||||
-${Q} for i in ${C_SRC} /dev/null; do \
|
||||
if [ X"$$i" != X"/dev/null" ]; then \
|
||||
echo "$$i" | ${SED} 's/^\(.*\)\.c/\1.o: \1.c/'; \
|
||||
fi; \
|
||||
done >> skel/custom/makedep.out
|
||||
${Q}echo custom dependency list formed
|
||||
${Q}echo forming new custom/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' skel/custom/makedep.out | \
|
||||
${Q} echo custom dependency list formed
|
||||
${Q} echo forming new custom/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' skel/custom/makedep.out | \
|
||||
LANG=C ${SORT} -u >> Makefile
|
||||
-${Q}rm -rf skel
|
||||
-${Q}if ${CMP} -s Makefile.bak Makefile; then \
|
||||
echo 'custom Makefile was already up to date'; \
|
||||
mv -f Makefile.bak Makefile; \
|
||||
-${Q} ${RM} -rf skel
|
||||
-${Q} if ${CMP} -s Makefile.bak Makefile; then \
|
||||
echo 'custom 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 custom Makefile formed -- you need to check it in'; \
|
||||
fi; \
|
||||
${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 custom Makefile formed -- you need to check it in'; \
|
||||
fi; \
|
||||
fi
|
||||
|
||||
##
|
||||
@@ -565,22 +590,22 @@ depend:
|
||||
##
|
||||
|
||||
echo_inst_files:
|
||||
${Q}for i in ${INSTALL_H_SRC} /dev/null; do \
|
||||
${Q} for i in ${INSTALL_H_SRC} /dev/null; do \
|
||||
if [ X"$$i" != X"/dev/null" ]; then \
|
||||
echo __file__ ${CUSTOMINCDIR}/$$i; \
|
||||
fi; \
|
||||
done
|
||||
${Q}for i in ${CUSTOM_HELP} /dev/null; do \
|
||||
${Q} for i in ${CUSTOM_HELP} /dev/null; do \
|
||||
if [ X"$$i" != X"/dev/null" ]; then \
|
||||
echo __file__ ${CUSTOMHELPDIR}/$$i; \
|
||||
fi; \
|
||||
done
|
||||
${Q}for i in ${CUSTOM_CALC_FILES} /dev/null; do \
|
||||
${Q} for i in ${CUSTOM_CALC_FILES} /dev/null; do \
|
||||
if [ X"$$i" != X"/dev/null" ]; then \
|
||||
echo __file__ ${CUSTOMCALDIR}/$$i; \
|
||||
fi; \
|
||||
done
|
||||
${Q}for i in ${CALC_LIBCUSTOM} /dev/null; do \
|
||||
${Q} for i in ${CALC_LIBCUSTOM} /dev/null; do \
|
||||
if [ X"$$i" != X"/dev/null" ]; then \
|
||||
echo __file__ ${CUSTOMCALDIR}/$$i; \
|
||||
fi; \
|
||||
@@ -593,154 +618,217 @@ echo_inst_files:
|
||||
##
|
||||
|
||||
clean:
|
||||
-rm -f ${CUSTCALC_OBJ}
|
||||
-${RM} -f ${CUSTCALC_OBJ}
|
||||
|
||||
clobber:
|
||||
-rm -f ${TARGETS}
|
||||
rm -f .all Makefile.tmp Makefile.bak
|
||||
-${RM} -f ${TARGETS}
|
||||
${RM} -f .all Makefile.tmp Makefile.bak
|
||||
|
||||
# install everything
|
||||
#
|
||||
# NOTE: Keep the uninstall rule in reverse order to the install rule
|
||||
#
|
||||
install: all
|
||||
-${Q}if [ ! -d $T${INCDIR} ]; then \
|
||||
echo mkdir $T${INCDIR}; \
|
||||
mkdir $T${INCDIR}; \
|
||||
if [ ! -d "$T${INCDIR}" ]; then \
|
||||
echo mkdir -p "$T${INCDIR}"; \
|
||||
mkdir -p "$T${INCDIR}"; \
|
||||
-${Q} if [ ! -d ${T}${INCDIR} ]; then \
|
||||
echo ${MKDIR} ${T}${INCDIR}; \
|
||||
${MKDIR} ${T}${INCDIR}; \
|
||||
if [ ! -d "${T}${INCDIR}" ]; then \
|
||||
echo ${MKDIR} -p "${T}${INCDIR}"; \
|
||||
${MKDIR} -p "${T}${INCDIR}"; \
|
||||
fi; \
|
||||
echo ${CHMOD} 0755 $T${INCDIR}; \
|
||||
${CHMOD} 0755 $T${INCDIR}; \
|
||||
echo ${CHMOD} 0755 ${T}${INCDIR}; \
|
||||
${CHMOD} 0755 ${T}${INCDIR}; \
|
||||
else \
|
||||
true; \
|
||||
${TRUE}; \
|
||||
fi
|
||||
-${Q}if [ ! -d $T${CALC_SHAREDIR} ]; then \
|
||||
echo mkdir $T${CALC_SHAREDIR}; \
|
||||
mkdir $T${CALC_SHAREDIR}; \
|
||||
if [ ! -d "$T${CALC_SHAREDIR}" ]; then \
|
||||
echo mkdir -p "$T${CALC_SHAREDIR}"; \
|
||||
mkdir -p "$T${CALC_SHAREDIR}"; \
|
||||
-${Q} if [ ! -d ${T}${CALC_SHAREDIR} ]; then \
|
||||
echo ${MKDIR} ${T}${CALC_SHAREDIR}; \
|
||||
${MKDIR} ${T}${CALC_SHAREDIR}; \
|
||||
if [ ! -d "${T}${CALC_SHAREDIR}" ]; then \
|
||||
echo ${MKDIR} -p "${T}${CALC_SHAREDIR}"; \
|
||||
${MKDIR} -p "${T}${CALC_SHAREDIR}"; \
|
||||
fi; \
|
||||
echo ${CHMOD} 0755 $T${CALC_SHAREDIR}; \
|
||||
${CHMOD} 0755 $T${CALC_SHAREDIR}; \
|
||||
echo ${CHMOD} 0755 ${T}${CALC_SHAREDIR}; \
|
||||
${CHMOD} 0755 ${T}${CALC_SHAREDIR}; \
|
||||
else \
|
||||
true; \
|
||||
${TRUE}; \
|
||||
fi
|
||||
-${Q}if [ ! -d $T${CALC_INCDIR} ]; then \
|
||||
echo mkdir $T${CALC_INCDIR}; \
|
||||
mkdir $T${CALC_INCDIR}; \
|
||||
if [ ! -d "$T${CALC_INCDIR}" ]; then \
|
||||
echo mkdir -p "$T${CALC_INCDIR}"; \
|
||||
mkdir -p "$T${CALC_INCDIR}"; \
|
||||
-${Q} if [ ! -d ${T}${CALC_INCDIR} ]; then \
|
||||
echo ${MKDIR} ${T}${CALC_INCDIR}; \
|
||||
${MKDIR} ${T}${CALC_INCDIR}; \
|
||||
if [ ! -d "${T}${CALC_INCDIR}" ]; then \
|
||||
echo ${MKDIR} -p "${T}${CALC_INCDIR}"; \
|
||||
${MKDIR} -p "${T}${CALC_INCDIR}"; \
|
||||
fi; \
|
||||
echo ${CHMOD} 0755 $T${CALC_INCDIR}; \
|
||||
${CHMOD} 0755 $T${CALC_INCDIR}; \
|
||||
echo ${CHMOD} 0755 ${T}${CALC_INCDIR}; \
|
||||
${CHMOD} 0755 ${T}${CALC_INCDIR}; \
|
||||
else \
|
||||
true; \
|
||||
${TRUE}; \
|
||||
fi
|
||||
-${Q}if [ ! -d $T${HELPDIR} ]; then \
|
||||
echo mkdir $T${HELPDIR}; \
|
||||
mkdir $T${HELPDIR}; \
|
||||
if [ ! -d "$T${HELPDIR}" ]; then \
|
||||
echo mkdir -p "$T${HELPDIR}"; \
|
||||
mkdir -p "$T${HELPDIR}"; \
|
||||
-${Q} if [ ! -d ${T}${HELPDIR} ]; then \
|
||||
echo ${MKDIR} ${T}${HELPDIR}; \
|
||||
${MKDIR} ${T}${HELPDIR}; \
|
||||
if [ ! -d "${T}${HELPDIR}" ]; then \
|
||||
echo ${MKDIR} -p "${T}${HELPDIR}"; \
|
||||
${MKDIR} -p "${T}${HELPDIR}"; \
|
||||
fi; \
|
||||
echo ${CHMOD} 0755 $T${HELPDIR}; \
|
||||
${CHMOD} 0755 $T${HELPDIR}; \
|
||||
echo ${CHMOD} 0755 ${T}${HELPDIR}; \
|
||||
${CHMOD} 0755 ${T}${HELPDIR}; \
|
||||
else \
|
||||
true; \
|
||||
${TRUE}; \
|
||||
fi
|
||||
-${Q}if [ ! -d $T${CUSTOMCALDIR} ]; then \
|
||||
echo mkdir $T${CUSTOMCALDIR}; \
|
||||
mkdir $T${CUSTOMCALDIR}; \
|
||||
if [ ! -d "$T${CUSTOMCALDIR}" ]; then \
|
||||
echo mkdir -p "$T${CUSTOMCALDIR}"; \
|
||||
mkdir -p "$T${CUSTOMCALDIR}"; \
|
||||
-${Q} if [ ! -d ${T}${CUSTOMCALDIR} ]; then \
|
||||
echo ${MKDIR} ${T}${CUSTOMCALDIR}; \
|
||||
${MKDIR} ${T}${CUSTOMCALDIR}; \
|
||||
if [ ! -d "${T}${CUSTOMCALDIR}" ]; then \
|
||||
echo ${MKDIR} -p "${T}${CUSTOMCALDIR}"; \
|
||||
${MKDIR} -p "${T}${CUSTOMCALDIR}"; \
|
||||
fi; \
|
||||
echo ${CHMOD} 0755 $T${CUSTOMCALDIR}; \
|
||||
${CHMOD} 0755 $T${CUSTOMCALDIR}; \
|
||||
echo ${CHMOD} 0755 ${T}${CUSTOMCALDIR}; \
|
||||
${CHMOD} 0755 ${T}${CUSTOMCALDIR}; \
|
||||
else \
|
||||
true; \
|
||||
${TRUE}; \
|
||||
fi
|
||||
-${Q}if [ ! -d $T${CUSTOMHELPDIR} ]; then \
|
||||
echo mkdir $T${CUSTOMHELPDIR}; \
|
||||
mkdir $T${CUSTOMHELPDIR}; \
|
||||
if [ ! -d "$T${CUSTOMHELPDIR}" ]; then \
|
||||
echo mkdir -p "$T${CUSTOMHELPDIR}"; \
|
||||
mkdir -p "$T${CUSTOMHELPDIR}"; \
|
||||
-${Q} if [ ! -d ${T}${CUSTOMHELPDIR} ]; then \
|
||||
echo ${MKDIR} ${T}${CUSTOMHELPDIR}; \
|
||||
${MKDIR} ${T}${CUSTOMHELPDIR}; \
|
||||
if [ ! -d "${T}${CUSTOMHELPDIR}" ]; then \
|
||||
echo ${MKDIR} -p "${T}${CUSTOMHELPDIR}"; \
|
||||
${MKDIR} -p "${T}${CUSTOMHELPDIR}"; \
|
||||
fi; \
|
||||
echo ${CHMOD} 0755 $T${CUSTOMHELPDIR}; \
|
||||
${CHMOD} 0755 $T${CUSTOMHELPDIR}; \
|
||||
echo ${CHMOD} 0755 ${T}${CUSTOMHELPDIR}; \
|
||||
${CHMOD} 0755 ${T}${CUSTOMHELPDIR}; \
|
||||
else \
|
||||
true; \
|
||||
${TRUE}; \
|
||||
fi
|
||||
-${Q}if [ ! -d $T${CUSTOMINCDIR} ]; then \
|
||||
echo mkdir $T${CUSTOMINCDIR}; \
|
||||
mkdir $T${CUSTOMINCDIR}; \
|
||||
if [ ! -d "$T${CUSTOMINCDIR}" ]; then \
|
||||
echo mkdir -p "$T${CUSTOMINCDIR}"; \
|
||||
mkdir -p "$T${CUSTOMINCDIR}"; \
|
||||
-${Q} if [ ! -d ${T}${CUSTOMINCDIR} ]; then \
|
||||
echo ${MKDIR} ${T}${CUSTOMINCDIR}; \
|
||||
${MKDIR} ${T}${CUSTOMINCDIR}; \
|
||||
if [ ! -d "${T}${CUSTOMINCDIR}" ]; then \
|
||||
echo ${MKDIR} -p "${T}${CUSTOMINCDIR}"; \
|
||||
${MKDIR} -p "${T}${CUSTOMINCDIR}"; \
|
||||
fi; \
|
||||
echo ${CHMOD} 0755 $T${CUSTOMINCDIR}; \
|
||||
${CHMOD} 0755 $T${CUSTOMINCDIR}; \
|
||||
echo ${CHMOD} 0755 ${T}${CUSTOMINCDIR}; \
|
||||
${CHMOD} 0755 ${T}${CUSTOMINCDIR}; \
|
||||
else \
|
||||
true; \
|
||||
${TRUE}; \
|
||||
fi
|
||||
-${Q}for i in ${INSTALL_H_SRC} /dev/null; do \
|
||||
-${Q} for i in ${INSTALL_H_SRC} /dev/null; do \
|
||||
if [ "$$i" = "/dev/null" ]; then \
|
||||
continue; \
|
||||
fi; \
|
||||
if ${CMP} -s tmp $T${CUSTOMINCDIR}/$$i; then \
|
||||
true; \
|
||||
if ${CMP} -s "$$i" ${T}${CUSTOMINCDIR}/$$i; then \
|
||||
${TRUE}; \
|
||||
else \
|
||||
rm -f $T${CUSTOMINCDIR}/$$i.new; \
|
||||
cp -f $$i $T${CUSTOMINCDIR}/$$i.new; \
|
||||
${CHMOD} 0444 $T${CUSTOMINCDIR}/$$i.new; \
|
||||
mv -f $T${CUSTOMINCDIR}/$$i.new $T${CUSTOMINCDIR}/$$i; \
|
||||
echo "installed $T${CUSTOMINCDIR}/$$i"; \
|
||||
${RM} -f ${T}${CUSTOMINCDIR}/$$i.new; \
|
||||
${CP} -f $$i ${T}${CUSTOMINCDIR}/$$i.new; \
|
||||
${CHMOD} 0444 ${T}${CUSTOMINCDIR}/$$i.new; \
|
||||
${MV} -f ${T}${CUSTOMINCDIR}/$$i.new ${T}${CUSTOMINCDIR}/$$i; \
|
||||
echo "installed ${T}${CUSTOMINCDIR}/$$i"; \
|
||||
fi; \
|
||||
done
|
||||
-${Q}rm -f tmp
|
||||
-${Q}for i in ${CUSTOM_CALC_FILES} /dev/null; do \
|
||||
-${Q} for i in ${CUSTOM_CALC_FILES} /dev/null; do \
|
||||
if [ "$$i" = "/dev/null" ]; then \
|
||||
continue; \
|
||||
fi; \
|
||||
if ${CMP} -s $$i $T${CUSTOMCALDIR}/$$i; then \
|
||||
true; \
|
||||
if ${CMP} -s $$i ${T}${CUSTOMCALDIR}/$$i; then \
|
||||
${TRUE}; \
|
||||
else \
|
||||
rm -f $T${CUSTOMCALDIR}/$$i.new; \
|
||||
cp -f $$i $T${CUSTOMCALDIR}/$$i.new; \
|
||||
${CHMOD} 0444 $T${CUSTOMCALDIR}/$$i.new; \
|
||||
mv -f $T${CUSTOMCALDIR}/$$i.new $T${CUSTOMCALDIR}/$$i; \
|
||||
echo "installed $T${CUSTOMCALDIR}/$$i"; \
|
||||
${RM} -f ${T}${CUSTOMCALDIR}/$$i.new; \
|
||||
${CP} -f $$i ${T}${CUSTOMCALDIR}/$$i.new; \
|
||||
${CHMOD} 0444 ${T}${CUSTOMCALDIR}/$$i.new; \
|
||||
${MV} -f ${T}${CUSTOMCALDIR}/$$i.new ${T}${CUSTOMCALDIR}/$$i; \
|
||||
echo "installed ${T}${CUSTOMCALDIR}/$$i"; \
|
||||
fi; \
|
||||
done
|
||||
-${Q}for i in ${CUSTOM_HELP} /dev/null; do \
|
||||
-${Q} for i in ${CUSTOM_HELP} /dev/null; do \
|
||||
if [ "$$i" = "/dev/null" ]; then \
|
||||
continue; \
|
||||
fi; \
|
||||
if ${CMP} -s $$i $T${CUSTOMHELPDIR}/$$i; then \
|
||||
true; \
|
||||
if ${CMP} -s $$i ${T}${CUSTOMHELPDIR}/$$i; then \
|
||||
${TRUE}; \
|
||||
else \
|
||||
rm -f $T${CUSTOMHELPDIR}/$$i.new; \
|
||||
cp -f $$i $T${CUSTOMHELPDIR}/$$i.new; \
|
||||
${CHMOD} 0444 $T${CUSTOMHELPDIR}/$$i.new; \
|
||||
mv -f $T${CUSTOMHELPDIR}/$$i.new $T${CUSTOMHELPDIR}/$$i; \
|
||||
echo "installed $T${CUSTOMHELPDIR}/$$i"; \
|
||||
${RM} -f ${T}${CUSTOMHELPDIR}/$$i.new; \
|
||||
${CP} -f $$i ${T}${CUSTOMHELPDIR}/$$i.new; \
|
||||
${CHMOD} 0444 ${T}${CUSTOMHELPDIR}/$$i.new; \
|
||||
${MV} -f ${T}${CUSTOMHELPDIR}/$$i.new ${T}${CUSTOMHELPDIR}/$$i; \
|
||||
echo "installed ${T}${CUSTOMHELPDIR}/$$i"; \
|
||||
fi; \
|
||||
done
|
||||
-${Q}if [ ! -z ${ALLOW_CUSTOM} ]; then \
|
||||
if ${CMP} -s libcustcalc.a $T${CUSTOMCALDIR}/libcustcalc.a; then \
|
||||
true; \
|
||||
-${Q} if [ ! -z ${ALLOW_CUSTOM} ]; then \
|
||||
if ${CMP} -s libcustcalc.a ${T}${CUSTOMCALDIR}/libcustcalc.a; then \
|
||||
${TRUE}; \
|
||||
else \
|
||||
rm -f $T${CUSTOMCALDIR}/libcustcalc.a.new; \
|
||||
cp -f libcustcalc.a $T${CUSTOMCALDIR}/libcustcalc.a.new; \
|
||||
${CHMOD} 0644 $T${CUSTOMCALDIR}/libcustcalc.a.new; \
|
||||
mv -f $T${CUSTOMCALDIR}/libcustcalc.a.new \
|
||||
$T${CUSTOMCALDIR}/libcustcalc.a; \
|
||||
${RANLIB} $T${CUSTOMCALDIR}/libcustcalc.a; \
|
||||
echo "installed $T${CUSTOMCALDIR}/libcustcalc.a"; \
|
||||
${RM} -f ${T}${CUSTOMCALDIR}/libcustcalc.a.new; \
|
||||
${CP} -f libcustcalc.a ${T}${CUSTOMCALDIR}/libcustcalc.a.new; \
|
||||
${CHMOD} 0644 ${T}${CUSTOMCALDIR}/libcustcalc.a.new; \
|
||||
${MV} -f ${T}${CUSTOMCALDIR}/libcustcalc.a.new \
|
||||
${T}${CUSTOMCALDIR}/libcustcalc.a; \
|
||||
${RANLIB} ${T}${CUSTOMCALDIR}/libcustcalc.a; \
|
||||
echo "installed ${T}${CUSTOMCALDIR}/libcustcalc.a"; \
|
||||
fi; \
|
||||
fi
|
||||
|
||||
# Try to remove everything that was installed
|
||||
#
|
||||
# NOTE: Keep the uninstall rule in reverse order to the install rule
|
||||
#
|
||||
uninstall:
|
||||
-${Q} if [ -f "${T}${CUSTOMCALDIR}/libcustcalc.a" ]; then \
|
||||
${RM} -f "${T}${CUSTOMCALDIR}/libcustcalc.a"; \
|
||||
if [ -f "${T}${CUSTOMCALDIR}/libcustcalc.a" ]; then \
|
||||
echo "cannot uninstall ${T}${CUSTOMCALDIR}/libcustcalc.a"; \
|
||||
else \
|
||||
echo "uninstalled ${T}${CUSTOMCALDIR}/libcustcalc.a"; \
|
||||
fi; \
|
||||
fi
|
||||
-${Q} for i in ${CUSTOM_HELP} /dev/null; do \
|
||||
if [ "$$i" = "/dev/null" ]; then \
|
||||
continue; \
|
||||
fi; \
|
||||
if [ -f "${T}${CUSTOMHELPDIR}/$$i" ]; then \
|
||||
${RM} -f "${T}${CUSTOMHELPDIR}/$$i"; \
|
||||
if [ -f "${T}${CUSTOMHELPDIR}/$$i" ]; then \
|
||||
echo "cannot uninstall ${T}${CUSTOMHELPDIR}/$$i"; \
|
||||
else \
|
||||
echo "uninstalled ${T}${CUSTOMHELPDIR}/$$i"; \
|
||||
fi; \
|
||||
fi; \
|
||||
done
|
||||
-${Q} for i in ${CUSTOM_CALC_FILES} /dev/null; do \
|
||||
if [ "$$i" = "/dev/null" ]; then \
|
||||
continue; \
|
||||
fi; \
|
||||
if [ -f "${T}${CUSTOMCALDIR}/$$i" ]; then \
|
||||
${RM} -f "${T}${CUSTOMCALDIR}/$$i"; \
|
||||
if [ -f "${T}${CUSTOMCALDIR}/$$i" ]; then \
|
||||
echo "cannot uninstall ${T}${CUSTOMCALDIR}/$$i"; \
|
||||
else \
|
||||
echo "uninstalled ${T}${CUSTOMCALDIR}/$$i"; \
|
||||
fi; \
|
||||
fi; \
|
||||
done
|
||||
-${Q} for i in ${INSTALL_H_SRC} /dev/null; do \
|
||||
if [ "$$i" = "/dev/null" ]; then \
|
||||
continue; \
|
||||
fi; \
|
||||
if [ -f "${T}${CUSTOMINCDIR}/$$i" ]; then \
|
||||
${RM} -f "${T}${CUSTOMINCDIR}/$$i"; \
|
||||
if [ -f "${T}${CUSTOMINCDIR}/$$i" ]; then \
|
||||
echo "cannot uninstall ${T}${CUSTOMINCDIR}/$$i"; \
|
||||
else \
|
||||
echo "uninstalled ${T}${CUSTOMINCDIR}/$$i"; \
|
||||
fi; \
|
||||
fi; \
|
||||
done
|
||||
-${Q} for i in ${CUSTOMINCDIR} ${CUSTOMHELPDIR} ${CUSTOMCALDIR} \
|
||||
${HELPDIR} ${CALC_INCDIR} ${CALC_SHAREDIR} ${INCDIR}; do \
|
||||
if [ -d "${T}$$i" ]; then \
|
||||
${RMDIR} "${T}$$i" 2>/dev/null; \
|
||||
echo "cleaned up ${T}$$i"; \
|
||||
fi; \
|
||||
done
|
||||
|
||||
##
|
||||
#
|
||||
# make depend stuff
|
||||
|
@@ -17,8 +17,8 @@
|
||||
* 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.7 $
|
||||
* @(#) $Id: c_argv.c,v 29.7 2006/05/22 19:04:45 chongo Exp $
|
||||
* @(#) $Revision: 29.8 $
|
||||
* @(#) $Id: c_argv.c,v 29.8 2006/06/25 22:06:23 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/c_argv.c,v $
|
||||
*
|
||||
* Under source code control: 1997/03/09 20:27:37
|
||||
@@ -123,12 +123,9 @@ c_argv(char UNUSED *name, int count, VALUE **vals)
|
||||
case V_BLOCK: /* memory block */
|
||||
type = "octet_block";
|
||||
break;
|
||||
#if 0
|
||||
/* XXX - V_OCTET is subject to change */
|
||||
case V_OCTET: /* octet (unsigned char) */
|
||||
type = "octet";
|
||||
break;
|
||||
#endif
|
||||
default:
|
||||
type = "unknown";
|
||||
break;
|
||||
|
@@ -17,8 +17,8 @@
|
||||
* 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: c_pmodm127.c,v 29.3 2004/07/29 09:48:31 chongo Exp $
|
||||
* @(#) $Revision: 29.5 $
|
||||
* @(#) $Id: c_pmodm127.c,v 29.5 2006/06/25 22:08:42 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/c_pmodm127.c,v $
|
||||
*
|
||||
* Under source code control: 2004/07/28 22:12:25
|
||||
@@ -156,7 +156,11 @@ c_pmodm127(char UNUSED *name, int UNUSED count, VALUE **vals)
|
||||
#else
|
||||
zsquare(result.v_num->num, &temp); /* square */
|
||||
#endif
|
||||
/* XXX - we could manually shift to speed up a tiny bit */
|
||||
/*
|
||||
* We could manually shift here, but this would o speed
|
||||
* up the operation only a very tiny bit at the expense
|
||||
* of a bunch of special code.
|
||||
*/
|
||||
zfree(result.v_num->num);
|
||||
zshift(temp, 1, &result.v_num->num); /* times 2 */
|
||||
zfree(temp);
|
||||
|
@@ -17,8 +17,8 @@
|
||||
* 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.11 $
|
||||
* @(#) $Id: c_sysinfo.c,v 29.11 2006/05/22 19:04:45 chongo Exp $
|
||||
* @(#) $Revision: 29.12 $
|
||||
* @(#) $Id: c_sysinfo.c,v 29.12 2006/09/18 06:28:47 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/c_sysinfo.c,v $
|
||||
*
|
||||
* Under source code control: 1997/03/09 23:14:40
|
||||
@@ -85,7 +85,6 @@ static struct infoname sys_info[] = {
|
||||
{"DEFAULTSHELL", "default shell to use", DEFAULTSHELL, (FULL)0},
|
||||
{"DEV_BITS", "device number size in bits", NULL, (FULL)DEV_BITS},
|
||||
{"DISPLAY_DEFAULT", "default digits for float display", NULL, (FULL)DISPLAY_DEFAULT},
|
||||
{"ECHO_PROG", "where the echo command is located", ECHO_PROG, (FULL)0},
|
||||
{"EPSILONPREC_DEFAULT", "2^-EPSILON_DEFAULT <= EPSILON_DEFAULT", NULL, (FULL)EPSILONPREC_DEFAULT},
|
||||
{"EPSILON_DEFAULT", "allowed error for float calculations", EPSILON_DEFAULT, (FULL)0},
|
||||
{"ERRMAX", "default errmax value", NULL, (FULL)ERRMAX},
|
||||
|
38
file.c
38
file.c
@@ -19,8 +19,8 @@
|
||||
* 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.15 $
|
||||
* @(#) $Id: file.c,v 29.15 2006/05/22 19:04:45 chongo Exp $
|
||||
* @(#) $Revision: 29.16 $
|
||||
* @(#) $Id: file.c,v 29.16 2006/08/20 15:01:30 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/file.c,v $
|
||||
*
|
||||
* Under source code control: 1991/07/20 00:21:56
|
||||
@@ -746,10 +746,10 @@ flushall(void)
|
||||
* given:
|
||||
* id file to read from
|
||||
* flags read flags (see above)
|
||||
* retptr returned pointer to string
|
||||
* retstr returned pointer to string
|
||||
*/
|
||||
int
|
||||
readid(FILEID id, int flags, char **retptr)
|
||||
readid(FILEID id, int flags, STRING **retstr)
|
||||
{
|
||||
FILEIO *fiop; /* file structure */
|
||||
FILE *fp;
|
||||
@@ -761,6 +761,7 @@ readid(FILEID id, int flags, char **retptr)
|
||||
int c;
|
||||
BOOL nlstop, nullstop, wsstop, rmstop, done;
|
||||
FILEPOS fpos;
|
||||
STRING *newstr;
|
||||
|
||||
totlen = 0;
|
||||
str = NULL;
|
||||
@@ -831,7 +832,10 @@ readid(FILEID id, int flags, char **retptr)
|
||||
if ((nullstop && c == '\0') && !rmstop)
|
||||
str[totlen - 1] = '\0';
|
||||
str[totlen] = '\0';
|
||||
*retptr = str;
|
||||
newstr = stralloc();
|
||||
newstr->s_len = totlen;
|
||||
newstr->s_str = str;
|
||||
*retstr = newstr;
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -895,7 +899,7 @@ printid(FILEID id, int flags)
|
||||
math_chr('"');
|
||||
return 0;
|
||||
}
|
||||
math_fmt("FILE %d \"%s\" (%s, ", id, fiop->name, fiop->mode);
|
||||
math_fmt("FILE %d \"%s\" (%s", id, fiop->name, fiop->mode);
|
||||
|
||||
/*
|
||||
* print file position
|
||||
@@ -904,11 +908,13 @@ printid(FILEID id, int flags)
|
||||
fp = fiop->fp;
|
||||
|
||||
if (get_open_pos(fp, &pos) < 0) {
|
||||
math_str("Error while determining file position!)");
|
||||
if (fileno(fp) > 2)
|
||||
math_str("Error while determining file position!");
|
||||
math_chr(')');
|
||||
return 0;
|
||||
}
|
||||
|
||||
math_str("pos ");
|
||||
math_str(", pos ");
|
||||
zprintval(pos, 0, 0);
|
||||
zfree(pos);
|
||||
|
||||
@@ -1233,10 +1239,13 @@ idungetc(FILEID id, int ch)
|
||||
* str string to write
|
||||
*/
|
||||
int
|
||||
idfputs(FILEID id, char *str)
|
||||
idfputs(FILEID id, STRING *str)
|
||||
{
|
||||
FILEIO *fiop;
|
||||
FILEPOS fpos;
|
||||
FILE *fp;
|
||||
char *c;
|
||||
long len;
|
||||
|
||||
/* get the file info pointer */
|
||||
fiop = findid(id, TRUE);
|
||||
@@ -1251,14 +1260,13 @@ idfputs(FILEID id, char *str)
|
||||
|
||||
fiop->action = 'w';
|
||||
|
||||
/* set output to file */
|
||||
math_setfp(fiop->fp);
|
||||
fp = fiop->fp;
|
||||
len = str->s_len;
|
||||
c = str->s_str;
|
||||
|
||||
/* write the string */
|
||||
math_str(str);
|
||||
while (len-- > 0)
|
||||
fputc(*c++, fp);
|
||||
|
||||
/* restore output to stdout */
|
||||
math_setfp(stdout);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
391
func.c
391
func.c
@@ -19,8 +19,8 @@
|
||||
* 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.26 $
|
||||
* @(#) $Id: func.c,v 29.26 2006/06/11 00:08:56 chongo Exp $
|
||||
* @(#) $Revision: 29.32 $
|
||||
* @(#) $Id: func.c,v 29.32 2006/12/16 10:46:07 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/func.c,v $
|
||||
*
|
||||
* Under source code control: 1990/02/15 01:48:15
|
||||
@@ -83,6 +83,11 @@
|
||||
# define strdup(x) calc_strdup((CONST char *)(x))
|
||||
#endif
|
||||
|
||||
#include "have_rusage.h"
|
||||
#if defined(HAVE_GETRUSAGE)
|
||||
# include <sys/resource.h>
|
||||
#endif
|
||||
|
||||
#include "have_const.h"
|
||||
#include "have_unused.h"
|
||||
#include "calc.h"
|
||||
@@ -142,18 +147,6 @@ static int env_pool_max = 0; /* number of env_pool elements allocated */
|
||||
static struct env_pool *e_pool = NULL; /* env_pool elements */
|
||||
|
||||
|
||||
/*
|
||||
* if HZ & CLK_TCK are not defined, pick typical values, hope for the best
|
||||
*/
|
||||
#if !defined(HZ)
|
||||
# define HZ 60
|
||||
#endif
|
||||
#if !defined(CLK_TCK)
|
||||
# undef CLK_TCK
|
||||
# define CLK_TCK HZ
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
* user-defined error strings
|
||||
*/
|
||||
@@ -357,6 +350,24 @@ f_str(VALUE *vp)
|
||||
}
|
||||
|
||||
|
||||
static VALUE
|
||||
f_estr(VALUE *vp)
|
||||
{
|
||||
VALUE result;
|
||||
char *cp;
|
||||
|
||||
/* initialize result */
|
||||
result.v_type = V_STR;
|
||||
result.v_subtype = V_NOSUBTYPE;
|
||||
|
||||
math_divertio();
|
||||
printestr(vp);
|
||||
cp = math_getdivertedio();
|
||||
result.v_str = makestring(cp);
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
static VALUE
|
||||
f_name(VALUE *vp)
|
||||
{
|
||||
@@ -1694,14 +1705,13 @@ sumlistitems(LIST *lp)
|
||||
NULL_VALUE, NULL_VALUE);
|
||||
break;
|
||||
default:
|
||||
copyvalue(vp, &term);
|
||||
addvalue(&sum, vp, &tmp);
|
||||
freevalue(&sum);
|
||||
if (tmp.v_type < 0)
|
||||
return tmp;
|
||||
sum = tmp;
|
||||
continue;
|
||||
}
|
||||
if (sum.v_type == V_NULL) {
|
||||
sum = term;
|
||||
continue;
|
||||
}
|
||||
if (term.v_type == V_NULL)
|
||||
continue;
|
||||
addvalue(&sum, &term, &tmp);
|
||||
freevalue(&sum);
|
||||
freevalue(&term);
|
||||
@@ -1728,7 +1738,6 @@ f_sum(int count, VALUE **vals)
|
||||
sum.v_subtype = V_NOSUBTYPE;
|
||||
term.v_type = V_NULL;
|
||||
term.v_subtype = V_NOSUBTYPE;
|
||||
|
||||
while (count-- > 0) {
|
||||
vp = *vals++;
|
||||
switch(vp->v_type) {
|
||||
@@ -1740,24 +1749,19 @@ f_sum(int count, VALUE **vals)
|
||||
NULL_VALUE, NULL_VALUE);
|
||||
break;
|
||||
default:
|
||||
copyvalue(vp, &term);
|
||||
}
|
||||
if (sum.v_type == V_NULL) {
|
||||
sum = term;
|
||||
continue;
|
||||
}
|
||||
if (term.v_type == V_NULL)
|
||||
continue;
|
||||
if (term.v_type < 0) {
|
||||
freevalue(&sum);
|
||||
return term;
|
||||
addvalue(&sum, vp, &tmp);
|
||||
freevalue(&sum);
|
||||
if (tmp.v_type < 0)
|
||||
return tmp;
|
||||
sum = tmp;
|
||||
continue;
|
||||
}
|
||||
addvalue(&sum, &term, &tmp);
|
||||
freevalue(&term);
|
||||
freevalue(&sum);
|
||||
sum = tmp;
|
||||
if (sum.v_type < 0)
|
||||
return sum;
|
||||
break;
|
||||
}
|
||||
return sum;
|
||||
}
|
||||
@@ -1904,26 +1908,70 @@ f_hnrmod(NUMBER *val1, NUMBER *val2, NUMBER *val3, NUMBER *val4)
|
||||
return res;
|
||||
}
|
||||
|
||||
VALUE
|
||||
ssqlistitems(LIST *lp)
|
||||
{
|
||||
LISTELEM *ep;
|
||||
VALUE *vp;
|
||||
VALUE term;
|
||||
VALUE tmp;
|
||||
VALUE sum;
|
||||
|
||||
/* initialize VALUEs */
|
||||
term.v_type = V_NULL;
|
||||
term.v_subtype = V_NOSUBTYPE;
|
||||
tmp.v_type = V_NULL;
|
||||
tmp.v_subtype = V_NOSUBTYPE;
|
||||
sum.v_type = V_NULL;
|
||||
sum.v_subtype = V_NOSUBTYPE;
|
||||
|
||||
for (ep = lp->l_first; ep; ep = ep->e_next) {
|
||||
vp = &ep->e_value;
|
||||
if (vp->v_type == V_LIST) {
|
||||
term = ssqlistitems(vp->v_list);
|
||||
} else {
|
||||
squarevalue(vp, &term);
|
||||
}
|
||||
addvalue(&sum, &term, &tmp);
|
||||
freevalue(&sum);
|
||||
freevalue(&term);
|
||||
sum = tmp;
|
||||
if (sum.v_type < 0)
|
||||
break;
|
||||
}
|
||||
return sum;
|
||||
}
|
||||
|
||||
static VALUE
|
||||
f_ssq(int count, VALUE **vals)
|
||||
{
|
||||
VALUE result, tmp1, tmp2;
|
||||
VALUE tmp;
|
||||
VALUE sum;
|
||||
VALUE term;
|
||||
VALUE *vp;
|
||||
|
||||
/* initialize VALUEs */
|
||||
result.v_subtype = V_NOSUBTYPE;
|
||||
tmp1.v_subtype = V_NOSUBTYPE;
|
||||
tmp2.v_subtype = V_NOSUBTYPE;
|
||||
|
||||
squarevalue(*vals++, &result);
|
||||
while (--count > 0) {
|
||||
squarevalue(*vals++, &tmp1);
|
||||
addvalue(&tmp1, &result, &tmp2);
|
||||
freevalue(&tmp1);
|
||||
freevalue(&result);
|
||||
result = tmp2;
|
||||
tmp.v_type = V_NULL;
|
||||
tmp.v_subtype = V_NOSUBTYPE;
|
||||
sum.v_type = V_NULL;
|
||||
sum.v_subtype = V_NOSUBTYPE;
|
||||
term.v_type = V_NULL;
|
||||
term.v_subtype = V_NOSUBTYPE;
|
||||
while (count-- > 0) {
|
||||
vp = *vals++;
|
||||
if (vp->v_type == V_LIST) {
|
||||
term = ssqlistitems(vp->v_list);
|
||||
} else {
|
||||
squarevalue(vp, &term);
|
||||
}
|
||||
addvalue(&sum, &term, &tmp);
|
||||
freevalue(&term);
|
||||
freevalue(&sum);
|
||||
sum = tmp;
|
||||
if (sum.v_type < 0)
|
||||
break;
|
||||
}
|
||||
return result;
|
||||
return sum;
|
||||
}
|
||||
|
||||
|
||||
@@ -3521,6 +3569,67 @@ f_mod(int count, VALUE **vals)
|
||||
return res;
|
||||
}
|
||||
|
||||
static VALUE
|
||||
f_quomod(int count, VALUE **vals)
|
||||
{
|
||||
VALUE *v1, *v2, *v3, *v4, *v5;
|
||||
VALUE result;
|
||||
long rnd;
|
||||
BOOL res;
|
||||
short s3, s4; /* to preserve subtypes of v3, v4 */
|
||||
|
||||
v1 = vals[0];
|
||||
v2 = vals[1];
|
||||
v3 = vals[2];
|
||||
v4 = vals[3];
|
||||
|
||||
if (v3->v_type != V_ADDR || v4->v_type != V_ADDR ||
|
||||
v3->v_addr == v4->v_addr)
|
||||
return error_value(E_QUOMOD1);
|
||||
if (count == 5) {
|
||||
v5 = vals[4];
|
||||
if (v5->v_type == V_ADDR)
|
||||
v5 = v5->v_addr;
|
||||
if (v5->v_type != V_NUM || qisfrac(v5->v_num) ||
|
||||
qisneg(v5->v_num) || zge31b(v5->v_num->num))
|
||||
return error_value(E_QUOMOD2);
|
||||
rnd = qtoi(v5->v_num);
|
||||
} else
|
||||
rnd = conf->quomod;
|
||||
|
||||
if (v1->v_type == V_ADDR)
|
||||
v1 = v1->v_addr;
|
||||
if (v2->v_type == V_ADDR)
|
||||
v2 = v2->v_addr;
|
||||
v3 = v3->v_addr;
|
||||
v4 = v4->v_addr;
|
||||
|
||||
if (v1->v_type != V_NUM || v2->v_type != V_NUM ||
|
||||
(v3->v_type != V_NUM && v3->v_type != V_NULL) ||
|
||||
(v4->v_type != V_NUM && v4->v_type != V_NULL))
|
||||
return error_value(E_QUOMOD2);
|
||||
|
||||
s3 = v3->v_subtype;
|
||||
s4 = v4->v_subtype;
|
||||
|
||||
if ((s3 | s4) & V_NOASSIGNTO)
|
||||
return error_value(E_QUOMOD3);
|
||||
|
||||
freevalue(v3);
|
||||
freevalue(v4);
|
||||
|
||||
v3->v_type = V_NUM;
|
||||
v4->v_type = V_NUM;
|
||||
|
||||
v3->v_subtype = s3;
|
||||
v4->v_subtype = s4;
|
||||
|
||||
res = qquomod(v1->v_num, v2->v_num, &v3->v_num, &v4->v_num, rnd);
|
||||
result.v_type = V_NUM;
|
||||
result.v_subtype = V_NOSUBTYPE;
|
||||
result.v_num = res ? qlink(&_qone_) : qlink(&_qzero_);
|
||||
return result;
|
||||
}
|
||||
|
||||
static VALUE
|
||||
f_mmin(VALUE *v1, VALUE *v2)
|
||||
@@ -4951,20 +5060,131 @@ f_listremove(VALUE *vp)
|
||||
|
||||
|
||||
/*
|
||||
* Return the current runtime of calc in seconds.
|
||||
* This is the user mode time only.
|
||||
* Return the current user time of calc in seconds.
|
||||
*/
|
||||
static NUMBER *
|
||||
f_usertime(void)
|
||||
{
|
||||
#if defined(HAVE_GETRUSAGE)
|
||||
struct rusage usage; /* system resource usage */
|
||||
int who = RUSAGE_SELF; /* obtain time for just this process */
|
||||
int status; /* getrusage() return code */
|
||||
NUMBER *ret; /* CPU time to return */
|
||||
NUMBER *secret; /* whole sconds of CPU time to return */
|
||||
NUMBER *usecret; /* microseconds of CPU time to return */
|
||||
|
||||
/* get the resource informaion for ourself */
|
||||
status = getrusage(who, &usage);
|
||||
if (status < 0) {
|
||||
/* system call error, so return 0 */
|
||||
return qlink(&_qzero_);
|
||||
}
|
||||
|
||||
/* add user time */
|
||||
secret = stoq(usage.ru_utime.tv_sec);
|
||||
usecret = iitoq((long)usage.ru_utime.tv_usec, 1000000L);
|
||||
ret = qqadd(secret, usecret);
|
||||
qfree(secret);
|
||||
qfree(usecret);
|
||||
|
||||
/* return user CPU time */
|
||||
return ret;
|
||||
|
||||
#else /* HAVE_GETRUSAGE */
|
||||
/* not a POSIX system */
|
||||
return qlink(&_qzero_);
|
||||
#endif /* HAVE_GETRUSAGE */
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Return the current kernel time of calc in seconds.
|
||||
* This is the kernel mode time only.
|
||||
*/
|
||||
static NUMBER *
|
||||
f_systime(void)
|
||||
{
|
||||
#if defined(HAVE_GETRUSAGE)
|
||||
struct rusage usage; /* system resource usage */
|
||||
int who = RUSAGE_SELF; /* obtain time for just this process */
|
||||
int status; /* getrusage() return code */
|
||||
NUMBER *ret; /* CPU time to return */
|
||||
NUMBER *secret; /* whole sconds of CPU time to return */
|
||||
NUMBER *usecret; /* microseconds of CPU time to return */
|
||||
|
||||
/* get the resource informaion for ourself */
|
||||
status = getrusage(who, &usage);
|
||||
if (status < 0) {
|
||||
/* system call error, so return 0 */
|
||||
return qlink(&_qzero_);
|
||||
}
|
||||
|
||||
/* add kernel time */
|
||||
secret = stoq(usage.ru_stime.tv_sec);
|
||||
usecret = iitoq((long)usage.ru_stime.tv_usec, 1000000L);
|
||||
ret = qqadd(secret, usecret);
|
||||
qfree(secret);
|
||||
qfree(usecret);
|
||||
|
||||
/* return kernel CPU time */
|
||||
return ret;
|
||||
|
||||
#else /* HAVE_GETRUSAGE */
|
||||
/* not a POSIX system */
|
||||
return qlink(&_qzero_);
|
||||
#endif /* HAVE_GETRUSAGE */
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Return the current user and kernel time of calc in seconds.
|
||||
*/
|
||||
static NUMBER *
|
||||
f_runtime(void)
|
||||
{
|
||||
#if defined(_WIN32)
|
||||
return qlink(&_qzero_);
|
||||
#else /* Windoz free systems */
|
||||
struct tms buf;
|
||||
#if defined(HAVE_GETRUSAGE)
|
||||
struct rusage usage; /* system resource usage */
|
||||
int who = RUSAGE_SELF; /* obtain time for just this process */
|
||||
int status; /* getrusage() return code */
|
||||
NUMBER *user; /* user CPU time to return */
|
||||
NUMBER *sys; /* kernel CPU time to return */
|
||||
NUMBER *ret; /* total CPU time to return */
|
||||
NUMBER *secret; /* whole sconds of CPU time to return */
|
||||
NUMBER *usecret; /* microseconds of CPU time to return */
|
||||
|
||||
times(&buf);
|
||||
return iitoq((long) buf.tms_utime, (long) CLK_TCK);
|
||||
#endif /* Windoz free systems */
|
||||
/* get the resource informaion for ourself */
|
||||
status = getrusage(who, &usage);
|
||||
if (status < 0) {
|
||||
/* system call error, so return 0 */
|
||||
return qlink(&_qzero_);
|
||||
}
|
||||
|
||||
/* add kernel time */
|
||||
secret = stoq(usage.ru_stime.tv_sec);
|
||||
usecret = iitoq((long)usage.ru_stime.tv_usec, 1000000L);
|
||||
sys = qqadd(secret, usecret);
|
||||
qfree(secret);
|
||||
qfree(usecret);
|
||||
|
||||
/* add user time */
|
||||
secret = stoq(usage.ru_utime.tv_sec);
|
||||
usecret = iitoq((long)usage.ru_utime.tv_usec, 1000000L);
|
||||
user = qqadd(secret, usecret);
|
||||
qfree(secret);
|
||||
qfree(usecret);
|
||||
|
||||
/* total time is user + kernel */
|
||||
ret = qqadd(user, sys);
|
||||
qfree(user);
|
||||
qfree(sys);
|
||||
|
||||
/* return CPU time */
|
||||
return ret;
|
||||
|
||||
#else /* HAVE_GETRUSAGE */
|
||||
/* not a POSIX system */
|
||||
return qlink(&_qzero_);
|
||||
#endif /* HAVE_GETRUSAGE */
|
||||
}
|
||||
|
||||
|
||||
@@ -5738,7 +5958,7 @@ strscan(char *s, int count, VALUE **vals)
|
||||
static int
|
||||
filescan(FILEID id, int count, VALUE **vals)
|
||||
{
|
||||
char *str;
|
||||
STRING *str;
|
||||
int i;
|
||||
int n = 0;
|
||||
VALUE val;
|
||||
@@ -5759,7 +5979,7 @@ filescan(FILEID id, int count, VALUE **vals)
|
||||
if (i > 0)
|
||||
return EOF;
|
||||
n++;
|
||||
val.v_str = makenewstring(str);
|
||||
val.v_str = str;
|
||||
result = f_eval(&val);
|
||||
var = *vals++;
|
||||
if (var->v_type == V_ADDR) {
|
||||
@@ -6006,7 +6226,7 @@ f_fputs(int count, VALUE **vals)
|
||||
return error_value(E_FPUTS2);
|
||||
}
|
||||
for (i = 1; i < count; i++) {
|
||||
err = idfputs(vals[0]->v_file, vals[i]->v_str->s_str);
|
||||
err = idfputs(vals[0]->v_file, vals[i]->v_str);
|
||||
if (err > 0)
|
||||
return error_value(E_FPUTS3);
|
||||
}
|
||||
@@ -6153,7 +6373,7 @@ static VALUE
|
||||
f_fgetline(VALUE *vp)
|
||||
{
|
||||
VALUE result;
|
||||
char *str;
|
||||
STRING *str;
|
||||
int i;
|
||||
|
||||
/* initialize VALUE */
|
||||
@@ -6167,7 +6387,7 @@ f_fgetline(VALUE *vp)
|
||||
result.v_type = V_NULL;
|
||||
if (i == 0) {
|
||||
result.v_type = V_STR;
|
||||
result.v_str = makestring(str);
|
||||
result.v_str = str;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@@ -6177,7 +6397,7 @@ static VALUE
|
||||
f_fgets(VALUE *vp)
|
||||
{
|
||||
VALUE result;
|
||||
char *str;
|
||||
STRING *str;
|
||||
int i;
|
||||
|
||||
/* initialize VALUE */
|
||||
@@ -6191,7 +6411,7 @@ f_fgets(VALUE *vp)
|
||||
result.v_type = V_NULL;
|
||||
if (i == 0) {
|
||||
result.v_type = V_STR;
|
||||
result.v_str = makestring(str);
|
||||
result.v_str = str;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@@ -6201,7 +6421,7 @@ static VALUE
|
||||
f_fgetstr(VALUE *vp)
|
||||
{
|
||||
VALUE result;
|
||||
char *str;
|
||||
STRING *str;
|
||||
int i;
|
||||
|
||||
/* initialize VALUE */
|
||||
@@ -6215,7 +6435,7 @@ f_fgetstr(VALUE *vp)
|
||||
result.v_type = V_NULL;
|
||||
if (i == 0) {
|
||||
result.v_type = V_STR;
|
||||
result.v_str = makestring(str);
|
||||
result.v_str = str;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@@ -6225,7 +6445,7 @@ static VALUE
|
||||
f_fgetfield(VALUE *vp)
|
||||
{
|
||||
VALUE result;
|
||||
char *str;
|
||||
STRING *str;
|
||||
int i;
|
||||
|
||||
/* initialize VALUE */
|
||||
@@ -6239,7 +6459,32 @@ f_fgetfield(VALUE *vp)
|
||||
result.v_type = V_NULL;
|
||||
if (i == 0) {
|
||||
result.v_type = V_STR;
|
||||
result.v_str = makestring(str);
|
||||
result.v_str = str;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
static VALUE
|
||||
f_fgetfile(VALUE *vp)
|
||||
{
|
||||
VALUE result;
|
||||
STRING *str;
|
||||
int i;
|
||||
|
||||
/* initialize VALUE */
|
||||
result.v_subtype = V_NOSUBTYPE;
|
||||
|
||||
if (vp->v_type != V_FILE)
|
||||
return error_value(E_FGETFILE1);
|
||||
i = readid(vp->v_file, 0, &str);
|
||||
if (i == 1)
|
||||
return error_value(E_FGETFILE2);
|
||||
if (i == 3)
|
||||
return error_value(E_FGETFILE3);
|
||||
result.v_type = V_NULL;
|
||||
if (i == 0) {
|
||||
result.v_type = V_STR;
|
||||
result.v_str = str;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@@ -8076,6 +8321,8 @@ static CONST struct builtin builtins[] = {
|
||||
"set or read calc_errno"},
|
||||
{"error", 0, 1, 0, OP_NOP, 0, f_error,
|
||||
"generate error value"},
|
||||
{"estr", 1, 1, 0, OP_NOP, 0, f_estr,
|
||||
"exact text string representation of value"},
|
||||
{"euler", 1, 1, 0, OP_NOP, 0, f_euler,
|
||||
"Euler number"},
|
||||
{"eval", 1, 1, 0, OP_NOP, 0, f_eval,
|
||||
@@ -8106,6 +8353,8 @@ static CONST struct builtin builtins[] = {
|
||||
"read next char from file"},
|
||||
{"fgetfield", 1, 1, 0, OP_NOP, 0, f_fgetfield,
|
||||
"read next white-space delimited field from file"},
|
||||
{"fgetfile", 1, 1, 0, OP_NOP, 0, f_fgetfile,
|
||||
"read to end of file"},
|
||||
{"fgetline", 1, 1, 0, OP_NOP, 0, f_fgetline,
|
||||
"read next line from file, newline removed"},
|
||||
{"fgets", 1, 1, 0, OP_NOP, 0, f_fgets,
|
||||
@@ -8374,7 +8623,7 @@ static CONST struct builtin builtins[] = {
|
||||
"define an environment variable"},
|
||||
{"quo", 2, 3, 0, OP_NOP, 0, f_quo,
|
||||
"integer quotient of a by b, rounding type c"},
|
||||
{"quomod", 4, 4, 0, OP_QUOMOD, 0, 0,
|
||||
{"quomod", 4, 5, FA, OP_NOP, 0, f_quomod,
|
||||
"set c and d to quotient and remainder of a\n\t\t\tdivided by b"},
|
||||
{"rand", 0, 2, 0, OP_NOP, f_rand, 0,
|
||||
"additive 55 random number [0,2^64), [0,a), or [a,b)"},
|
||||
@@ -8413,7 +8662,7 @@ static CONST struct builtin builtins[] = {
|
||||
{"rsearch", 2, 4, 0, OP_NOP, 0, f_rsearch,
|
||||
"reverse search matrix or list for value b\n\t\t\tstarting at index c"},
|
||||
{"runtime", 0, 0, 0, OP_NOP, f_runtime, 0,
|
||||
"user mode cpu time in seconds"},
|
||||
"user and kernel mode cpu time in seconds"},
|
||||
{"saveval", 1, 1, 0, OP_SAVEVAL, 0, 0,
|
||||
"set flag for saving values"},
|
||||
{"scale", 2, 2, 0, OP_SCALE, 0, 0,
|
||||
@@ -8496,6 +8745,8 @@ static CONST struct builtin builtins[] = {
|
||||
"swap values of variables a and b (can be dangerous)"},
|
||||
{"system", 1, 1, 0, OP_NOP, 0, f_system,
|
||||
"call Unix command"},
|
||||
{"systime", 0, 0, 0, OP_NOP, f_systime, 0,
|
||||
"kernel mode cpu time in seconds"},
|
||||
{"tail", 2, 2, 0, OP_NOP, 0, f_tail,
|
||||
"retain list of specified number at tail of list"},
|
||||
{"tan", 1, 2, 0, OP_NOP, 0, f_tan,
|
||||
@@ -8510,6 +8761,8 @@ static CONST struct builtin builtins[] = {
|
||||
"truncate a to b number of decimal places"},
|
||||
{"ungetc", 2, 2, 0, OP_NOP, 0, f_ungetc,
|
||||
"unget char read from file"},
|
||||
{"usertime", 0, 0, 0, OP_NOP, f_usertime, 0,
|
||||
"user mode cpu time in seconds"},
|
||||
{"version", 0, 0, 0, OP_NOP, 0, f_version,
|
||||
"calc version string"},
|
||||
{"xor", 1, IN, 0, OP_NOP, 0, f_xor,
|
||||
|
65
have_stdvs.c
65
have_stdvs.c
@@ -17,8 +17,8 @@
|
||||
* 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: have_stdvs.c,v 29.2 2000/06/07 14:02:13 chongo Exp $
|
||||
* @(#) $Revision: 29.3 $
|
||||
* @(#) $Id: have_stdvs.c,v 29.3 2007/02/07 20:53:18 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/have_stdvs.c,v $
|
||||
*
|
||||
* Under source code control: 1995/09/09 22:41:10
|
||||
@@ -56,6 +56,13 @@
|
||||
# include <string.h>
|
||||
#endif
|
||||
|
||||
#undef VSPRINTF_SIZE_T
|
||||
#if defined(FORCE_STDC) || (defined(__STDC__) && __STDC__ != 0) || defined(__cplusplus)
|
||||
# define VSPRINTF_SIZE_T size_t
|
||||
#else
|
||||
# define VSPRINTF_SIZE_T long
|
||||
#endif
|
||||
|
||||
char buf[BUFSIZ];
|
||||
|
||||
|
||||
@@ -74,6 +81,21 @@ try_this(char *fmt, ...)
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
try_nthis(char *fmt, VSPRINTF_SIZE_T size, ...)
|
||||
{
|
||||
va_list ap;
|
||||
|
||||
va_start(ap, fmt);
|
||||
#if !defined(DONT_HAVE_VSPRINTF)
|
||||
vsnprintf(buf, size, fmt, ap);
|
||||
#else
|
||||
snprintf(buf, size, fmt, ap);
|
||||
#endif
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
main(void)
|
||||
{
|
||||
@@ -95,9 +117,9 @@ main(void)
|
||||
exit(1);
|
||||
}
|
||||
try_this("%s %d%s%d%d %s",
|
||||
"Landon Noll 1st proved that", 2, "^", 23209, -1, "was prime");
|
||||
"Landon Noll 1st coproved that", 2, "^", 21701, -1, "was prime");
|
||||
if (strcmp(buf,
|
||||
"Landon Noll 1st proved that 2^23209-1 was prime") != 0) {
|
||||
"Landon Noll 1st coproved that 2^21701-1 was prime") != 0) {
|
||||
#if !defined(DONT_HAVE_VSPRINTF)
|
||||
/* <stdarg.h> with vsprintf() didn't work */
|
||||
#else
|
||||
@@ -106,6 +128,30 @@ main(void)
|
||||
exit(1);
|
||||
}
|
||||
|
||||
/*
|
||||
* test variable args and vsnprintf/snprintf
|
||||
*/
|
||||
try_nthis("@%d:%s:%d@", sizeof(buf)-1, 1, "hello", 5);
|
||||
if (strcmp(buf, "@1:hello:5@") != 0) {
|
||||
#if !defined(DONT_HAVE_VSPRINTF)
|
||||
/* <stdarg.h> with vsnprintf() didn't work */
|
||||
#else
|
||||
/* <stdarg.h> with snprintf() simulating vsnprintf() didn't work */
|
||||
#endif
|
||||
exit(1);
|
||||
}
|
||||
try_nthis("%s %d%s%d%d %s", sizeof(buf)-1,
|
||||
"Landon Noll 1st proved that", 2, "^", 23209, -1, "was prime");
|
||||
if (strcmp(buf,
|
||||
"Landon Noll 1st proved that 2^23209-1 was prime") != 0) {
|
||||
#if !defined(DONT_HAVE_VSPRINTF)
|
||||
/* <stdarg.h> with vsnprintf() didn't work */
|
||||
#else
|
||||
/* <stdarg.h> with snprintf() simulating vsnprintf() didn't work */
|
||||
#endif
|
||||
exit(1);
|
||||
}
|
||||
|
||||
/*
|
||||
* report the result
|
||||
*/
|
||||
@@ -128,19 +174,22 @@ main(void)
|
||||
puts("#define STDARG /* use <stdarg.h> */");
|
||||
puts("#include <stdarg.h>");
|
||||
#endif
|
||||
puts("\n/* should we use vsprintf()? */");
|
||||
puts("\n/* should we use vsprintf() and vsnprintf()? */");
|
||||
#if !defined(DONT_HAVE_VSPRINTF)
|
||||
puts("#define HAVE_VS /* yes */");
|
||||
puts("#define HAVE_VSPRINTF /* yes */");
|
||||
#else
|
||||
puts("/*");
|
||||
puts(" * Hack aleart!!!");
|
||||
puts(" *");
|
||||
puts(" * Systems that do not have vsprintf() need something. In some");
|
||||
puts(" * cases the sprintf function will deal correctly with the");
|
||||
puts(" * va_alist 3rd arg. Hope for the best!");
|
||||
puts(" * va_alist 3rd arg. Same gors for a lack of an vsnprintf()");
|
||||
puts(" * function. In either case we use the #defines below and");
|
||||
puts(" * hope for the best!");
|
||||
puts(" */");
|
||||
puts("#define vsprintf sprintf");
|
||||
puts("#undef HAVE_VS");
|
||||
puts("#define vsnprintf snprintf");
|
||||
puts("#undef HAVE_VSPRINTF");
|
||||
#endif
|
||||
/* exit(0); */
|
||||
return 0;
|
||||
|
72
have_varvs.c
72
have_varvs.c
@@ -17,8 +17,8 @@
|
||||
* 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: have_varvs.c,v 29.2 2000/06/07 14:02:13 chongo Exp $
|
||||
* @(#) $Revision: 29.3 $
|
||||
* @(#) $Id: have_varvs.c,v 29.3 2007/02/07 20:53:18 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/have_varvs.c,v $
|
||||
*
|
||||
* Under source code control: 1995/09/09 22:41:10
|
||||
@@ -52,6 +52,13 @@
|
||||
# include <string.h>
|
||||
#endif
|
||||
|
||||
#undef VSPRINTF_SIZE_T
|
||||
#if defined(FORCE_STDC) || (defined(__STDC__) && __STDC__ != 0) || defined(__cplusplus)
|
||||
# define VSPRINTF_SIZE_T size_t
|
||||
#else
|
||||
# define VSPRINTF_SIZE_T long
|
||||
#endif
|
||||
|
||||
char buf[BUFSIZ];
|
||||
|
||||
#if !defined(STDARG) && !defined(SIMULATE_STDARG)
|
||||
@@ -73,6 +80,22 @@ try_this(char *fmt, ...)
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
void
|
||||
try_nthis(char *fmt, VSPRINTF_SIZE_T size, ...)
|
||||
{
|
||||
va_list ap;
|
||||
|
||||
va_start(ap);
|
||||
|
||||
#if !defined(DONT_HAVE_VSPRINTF)
|
||||
vsnprintf(buf, size, fmt, ap);
|
||||
#else
|
||||
snprintf(buf, size, fmt, ap);
|
||||
#endif
|
||||
|
||||
va_end(ap);
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
void
|
||||
@@ -81,6 +104,12 @@ try_this(char *a, int b, char *c, int d)
|
||||
return;
|
||||
}
|
||||
|
||||
void
|
||||
try_nthis(char *a, VSPRINTF_SIZE_T size, int b, char *c, int d)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -109,9 +138,33 @@ main(void)
|
||||
if (strcmp(buf,
|
||||
"Landon Noll 1st proved that 2^23209-1 was prime") != 0) {
|
||||
#if !defined(DONT_HAVE_VSPRINTF)
|
||||
/* <stdarg.h> with vsprintf() didn't work */
|
||||
/* <varargs.h> with vsprintf() didn't work */
|
||||
#else
|
||||
/* <stdarg.h> with sprintf() simulating vsprintf() didn't work */
|
||||
/* <varargs.h> with sprintf() simulating vsprintf() didn't work */
|
||||
#endif
|
||||
exit(1);
|
||||
}
|
||||
|
||||
/*
|
||||
* test variable args and vsnprintf/snprintf
|
||||
*/
|
||||
try_nthis("@%d:%s:%d@", sizeof(buf)-1, 1, "hello", 5);
|
||||
if (strcmp(buf, "@1:hello:5@") != 0) {
|
||||
#if !defined(DONT_HAVE_VSPRINTF)
|
||||
/* <varargs.h> with vsnprintf() didn't work */
|
||||
#else
|
||||
/* <varargs.h> with snprintf() simulating vsnprintf() didn't work */
|
||||
#endif
|
||||
exit(1);
|
||||
}
|
||||
try_nthis("%s %d%s%d%d %s", sizeof(buf)-1,
|
||||
"Landon Noll 1st proved that", 2, "^", 23209, -1, "was prime");
|
||||
if (strcmp(buf,
|
||||
"Landon Noll 1st proved that 2^23209-1 was prime") != 0) {
|
||||
#if !defined(DONT_HAVE_VSPRINTF)
|
||||
/* <varargs.h> with vsnprintf() didn't work */
|
||||
#else
|
||||
/* <varargs.h> with snprintf() simulating vsnprintf() didn't work */
|
||||
#endif
|
||||
exit(1);
|
||||
}
|
||||
@@ -122,19 +175,22 @@ main(void)
|
||||
puts("/* what type of variable args do we have? */");
|
||||
puts("#define VARARGS /* use <varargs.h> */");
|
||||
puts("#include <varargs.h>");
|
||||
puts("\n/* should we use vsprintf()? */");
|
||||
puts("\n/* should we use vsprintf() and vsnprintf()? */");
|
||||
#if !defined(DONT_HAVE_VSPRINTF)
|
||||
puts("#define HAVE_VS /* yes */");
|
||||
puts("#define HAVE_VSPRINTF /* yes */");
|
||||
#else
|
||||
puts("/*");
|
||||
puts(" * Hack aleart!!!");
|
||||
puts(" *");
|
||||
puts(" * Systems that do not have vsprintf() need something. In some");
|
||||
puts(" * cases the sprintf function will deal correctly with the");
|
||||
puts(" * va_alist 3rd arg. Hope for the best!");
|
||||
puts(" * va_alist 3rd arg. Same gors for a lack of an vsnprintf()");
|
||||
puts(" * function. In either case we use the #defines below and");
|
||||
puts(" * hope for the best!");
|
||||
puts(" */");
|
||||
puts("#define vsprintf sprintf");
|
||||
puts("#undef HAVE_VS");
|
||||
puts("#define vsnprintf snprintf");
|
||||
puts("#undef HAVE_VSPRINTF");
|
||||
#endif
|
||||
/* exit(0); */
|
||||
return 0;
|
||||
|
7
help.c
7
help.c
@@ -17,8 +17,8 @@
|
||||
* 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.8 $
|
||||
* @(#) $Id: help.c,v 29.8 2001/04/08 08:29:28 chongo Exp $
|
||||
* @(#) $Revision: 29.9 $
|
||||
* @(#) $Id: help.c,v 29.9 2007/02/07 00:37:52 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/help.c,v $
|
||||
*
|
||||
* Under source code control: 1997/09/14 10:58:30
|
||||
@@ -62,6 +62,8 @@ static struct help_alias {
|
||||
{".", "oldvalue"},
|
||||
{"%", "mod"},
|
||||
{"//", "quo"},
|
||||
{"#", "pound"},
|
||||
{"calc", "help"},
|
||||
{"copy", "blkcpy"},
|
||||
{"copying", "COPYING"},
|
||||
{"copying-lgpl", "COPYING-LGPL"},
|
||||
@@ -71,6 +73,7 @@ static struct help_alias {
|
||||
{"COPYRIGHT", "copyright"},
|
||||
{"Copyleft", "copyright"},
|
||||
{"COPYLEFT", "copyright"},
|
||||
{"define", "command"},
|
||||
{"read", "command"},
|
||||
{"write", "command"},
|
||||
{"quit", "command"},
|
||||
|
390
help/Makefile
390
help/Makefile
@@ -2,7 +2,7 @@
|
||||
#
|
||||
# help - makefile for calc help files
|
||||
#
|
||||
# Copyright (C) 1999-2002 Landon Curt Noll
|
||||
# Copyright (C) 1999-2006 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
|
||||
@@ -18,8 +18,8 @@
|
||||
# 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.28 $
|
||||
# @(#) $Id: Makefile,v 29.28 2006/05/07 12:59:51 chongo Exp $
|
||||
# @(#) $Revision: 29.36 $
|
||||
# @(#) $Id: Makefile,v 29.36 2007/02/07 00:31:06 chongo Exp $
|
||||
# @(#) $Source: /usr/local/src/cmd/calc/help/RCS/Makefile,v $
|
||||
#
|
||||
# Under source code control: 1991/07/23 06:47:57
|
||||
@@ -34,7 +34,7 @@
|
||||
# required vars
|
||||
#
|
||||
SHELL= /bin/sh
|
||||
MAKE_FILE = Makefile
|
||||
MAKE_FILE= Makefile
|
||||
|
||||
####
|
||||
# Normally, the upper level makefile will set these values. We provide
|
||||
@@ -62,9 +62,9 @@ INCDIR= /usr/include
|
||||
# ${LIBDIR} where calc link library (*.a) files are installed
|
||||
# ${CALC_SHAREDIR} where to install calc help, .cal, startup, config files
|
||||
#
|
||||
# NOTE: The install rule prepends installation paths with $T, which
|
||||
# by default is empty. If $T is non-empty, then installation
|
||||
# locations will be relative to the $T directory.
|
||||
# NOTE: The install rule prepends installation paths with ${T}, which
|
||||
# by default is empty. If ${T} is non-empty, then installation
|
||||
# locations will be relative to the ${T} directory.
|
||||
#
|
||||
# For DJGPP, select:
|
||||
#
|
||||
@@ -99,9 +99,9 @@ CALC_SHAREDIR= /usr/share/calc
|
||||
# ${CUSTOMINCPDIR} where custom .h files are installed
|
||||
# ${SCRIPTDIR} where calc shell scripts are installed
|
||||
#
|
||||
# NOTE: The install rule prepends installation paths with $T, which
|
||||
# by default is empty. If $T is non-empty, then installation
|
||||
# locations will be relative to the $T directory.
|
||||
# NOTE: The install rule prepends installation paths with ${T}, which
|
||||
# by default is empty. If ${T} is non-empty, then installation
|
||||
# locations will be relative to the ${T} directory.
|
||||
#
|
||||
# If in doubt, set:
|
||||
#
|
||||
@@ -121,8 +121,8 @@ SCRIPTDIR= ${BINDIR}/cscript
|
||||
|
||||
# T - top level directory under which calc will be installed
|
||||
#
|
||||
# The calc install is performed under $T, the calc build is
|
||||
# performed under /. The purpose for $T is to allow someone
|
||||
# The calc install is performed under ${T}, the calc build is
|
||||
# performed under /. The purpose for ${T} is to allow someone
|
||||
# to install calc somewhere other than into the system area.
|
||||
#
|
||||
# For example, if:
|
||||
@@ -142,10 +142,10 @@ SCRIPTDIR= ${BINDIR}/cscript
|
||||
# calc help, .cal ...: /var/tmp/testing/usr/share/calc
|
||||
# ... etc ... /var/tmp/testing/...
|
||||
#
|
||||
# If $T is empty, calc is installed under /, which is the same
|
||||
# top of tree for which it was built. If $T is non-empty, then
|
||||
# calc is installed under $T, as if one had to chroot under
|
||||
# $T for calc to operate.
|
||||
# If ${T} is empty, calc is installed under /, which is the same
|
||||
# top of tree for which it was built. If ${T} is non-empty, then
|
||||
# calc is installed under ${T}, as if one had to chroot under
|
||||
# ${T} for calc to operate.
|
||||
#
|
||||
# If in doubt, use T=
|
||||
#
|
||||
@@ -169,6 +169,14 @@ SED= sed
|
||||
SORT= sort
|
||||
FMT= fmt
|
||||
CMP= cmp
|
||||
CP= cp
|
||||
MV= mv
|
||||
TRUE= true
|
||||
RM= rm
|
||||
MKDIR= mkdir
|
||||
RMDIR= rmdir
|
||||
TOUCH= touch
|
||||
CAT= cat
|
||||
|
||||
# Some out of date operating systems require / want an executable to
|
||||
# end with a certain file extension. Some compile systems such as
|
||||
@@ -206,9 +214,9 @@ STD_HELP_FILES_8= operator statement
|
||||
|
||||
BLT_HELP_FILES_9= resource
|
||||
|
||||
STD_HELP_FILES_10= types usage script
|
||||
STD_HELP_FILES_10= types script
|
||||
|
||||
BLT_HELP_FILES_10a= cscript
|
||||
BLT_HELP_FILES_10a= usage cscript
|
||||
|
||||
STD_HELP_FILES_10b= unexpected variable
|
||||
|
||||
@@ -267,15 +275,15 @@ BLT_HELP_FILES= ${BLT_HELP_FILES_3} ${BLT_HELP_FILES_5} \
|
||||
#
|
||||
DETAIL_HELP= abs access acos acosh acot acoth acsc acsch address agd append \
|
||||
appr arg argv arrow asec asech asin asinh assign atan atan2 atanh \
|
||||
avg base base2 bernoulli bit blk blkcpy blkfree blocks bround btrunc \
|
||||
calc_tty calclevel catalan ceil cfappr cfsim char cmdbuf cmp comb \
|
||||
conj cos cosh cot coth count cp csc csch ctime delete den dereference \
|
||||
det digit digits display dp epsilon errcount errmax errno error \
|
||||
euler eval exp fact factor fclose fcnt feof ferror fflush fgetc \
|
||||
fgetfield fgetline fgets fgetstr fib files floor fopen forall \
|
||||
fpathopen fprintf fputc fputs fputstr frac free freebernoulli \
|
||||
freeeuler freeglobals freeredc freestatics frem freopen fscan \
|
||||
fscanf fseek fsize ftell gcd gcdrem gd getenv hash head highbit \
|
||||
avg base base2 bernoulli bit blk blkcpy blkfree blocks bround \
|
||||
btrunc calc_tty calclevel catalan ceil cfappr cfsim char cmdbuf \
|
||||
cmp comb conj cos cosh cot coth count csc csch ctime delete den \
|
||||
dereference det digit digits display dp epsilon errcount errmax \
|
||||
errno error estr euler eval exp fact factor fclose fcnt feof ferror \
|
||||
fflush fgetc fgetfield fgetfile fgetline fgets fgetstr fib files \
|
||||
floor fopen forall fpathopen fprintf fputc fputs fputstr frac free \
|
||||
freebernoulli freeeuler freeglobals freeredc freestatics frem freopen \
|
||||
fscan fscanf fseek fsize ftell gcd gcdrem gd getenv hash head highbit \
|
||||
hmean hnrmod hypot ilog ilog10 ilog2 im indices inputlevel insert \
|
||||
int inverse iroot isassoc isatty isblk isconfig isdefined iserror \
|
||||
iseven isfile ishash isident isint islist ismat ismult isnull isnum \
|
||||
@@ -284,15 +292,15 @@ DETAIL_HELP= abs access acos acosh acot acoth acsc acsch address agd append \
|
||||
ln log lowbit ltol makelist matdim matfill matmax matmin matsum \
|
||||
mattrace mattrans max md5 memsize meq min minv mmin mne mod modify \
|
||||
name near newerror nextcand nextprime norm null num oldvalue ord \
|
||||
param perm pfact pi pix places pmod polar poly pop popcnt power \
|
||||
prevcand prevprime printf prompt protect ptest push putenv quo \
|
||||
quomod rand randbit random randombit randperm rcin rcmul rcout \
|
||||
param perm pfact pi pix places pmod polar poly pop popcnt pound \
|
||||
power prevcand prevprime printf prompt protect ptest push putenv \
|
||||
quo quomod rand randbit random randombit randperm rcin rcmul rcout \
|
||||
rcpow rcsq re remove reverse rewind rm root round rsearch runtime \
|
||||
saveval scale scan scanf search sec sech seed segment select sgn \
|
||||
sha sha1 sin sinh size sizeof sleep sort sqrt srand srandom ssq \
|
||||
str strcat strcmp strcpy strerror strlen strncmp strncpy strpos \
|
||||
strprintf strscan strscanf substr sum swap system tail tan tanh \
|
||||
test time trunc version xor
|
||||
strprintf strscan strscanf substr sum swap system systime tail tan \
|
||||
tanh test time trunc usertime version xor
|
||||
|
||||
# This list is of files that are clones of DETAIL_HELP files. They are
|
||||
# built from DETAIL_HELP files.
|
||||
@@ -317,7 +325,7 @@ DISTLIST= ${STD_HELP_FILES} ${DETAIL_HELP} ${MAKE_FILE} \
|
||||
CALCLIBLIST=
|
||||
|
||||
all: ${FULL_HELP_FILES} full ${DETAIL_HELP} ${DETAIL_CLONE} \
|
||||
${SINGULAR_FILES} calc .all
|
||||
${SINGULAR_FILES} .all
|
||||
|
||||
# used by the upper level Makefile to determine of we have done all
|
||||
#
|
||||
@@ -325,175 +333,183 @@ all: ${FULL_HELP_FILES} full ${DETAIL_HELP} ${DETAIL_CLONE} \
|
||||
# an non-emoty else clause for every if condition. *sigh*
|
||||
#
|
||||
.all:
|
||||
rm -f .all
|
||||
touch .all
|
||||
${RM} -f .all
|
||||
${TOUCH} .all
|
||||
|
||||
bindings: ../cal/bindings
|
||||
rm -f $@
|
||||
cp ../cal/bindings $@
|
||||
${RM} -f $@
|
||||
${CP} ../cal/bindings $@
|
||||
${CHMOD} 0444 $@
|
||||
-@if [ -z "${Q}" ]; then \
|
||||
echo ''; \
|
||||
echo '=-=-= skipping the cat of help/$@ =-=-='; \
|
||||
echo '=-=-= skipping the ${CAT} of help/$@ =-=-='; \
|
||||
echo ''; \
|
||||
else \
|
||||
true; \
|
||||
${TRUE}; \
|
||||
fi
|
||||
|
||||
resource: ../cal/README
|
||||
rm -f $@
|
||||
cp ../cal/README $@
|
||||
${RM} -f $@
|
||||
${CP} ../cal/README $@
|
||||
${CHMOD} 0444 $@
|
||||
-@if [ -z "${Q}" ]; then \
|
||||
echo ''; \
|
||||
echo '=-=-= skipping the cat of help/$@ =-=-='; \
|
||||
echo '=-=-= skipping the ${CAT} of help/$@ =-=-='; \
|
||||
echo ''; \
|
||||
else \
|
||||
true; \
|
||||
${TRUE}; \
|
||||
fi
|
||||
|
||||
changes: ../CHANGES
|
||||
rm -f $@
|
||||
cp ../CHANGES $@
|
||||
${RM} -f $@
|
||||
${CP} ../CHANGES $@
|
||||
${CHMOD} 0444 $@
|
||||
-@if [ -z "${Q}" ]; then \
|
||||
echo ''; \
|
||||
echo '=-=-= skipping the cat of help/$@ =-=-='; \
|
||||
echo '=-=-= skipping the ${CAT} of help/$@ =-=-='; \
|
||||
echo ''; \
|
||||
else \
|
||||
true; \
|
||||
${TRUE}; \
|
||||
fi
|
||||
|
||||
libcalc: ../LIBRARY
|
||||
rm -f $@
|
||||
${RM} -f $@
|
||||
${SED} -e 's:$${LIBDIR}:${LIBDIR}:g' \
|
||||
-e 's:$${CALC_INCDIR}:${CALC_INCDIR}:g' < ../LIBRARY > $@
|
||||
${CHMOD} 0444 $@
|
||||
-@if [ -z "${Q}" ]; then \
|
||||
echo ''; \
|
||||
echo '=-=-= skipping the cat of help/$@ =-=-='; \
|
||||
echo '=-=-= skipping the ${CAT} of help/$@ =-=-='; \
|
||||
echo ''; \
|
||||
else \
|
||||
true; \
|
||||
${TRUE}; \
|
||||
fi
|
||||
|
||||
bugs: ../BUGS
|
||||
rm -f $@
|
||||
cp ../BUGS $@
|
||||
${RM} -f $@
|
||||
${CP} ../BUGS $@
|
||||
${CHMOD} 0444 $@
|
||||
-@if [ -z "${Q}" ]; then \
|
||||
echo ''; \
|
||||
echo '=-=-= skipping the cat of help/$@ =-=-='; \
|
||||
echo '=-=-= skipping the ${CAT} of help/$@ =-=-='; \
|
||||
echo ''; \
|
||||
else \
|
||||
true; \
|
||||
${TRUE}; \
|
||||
fi
|
||||
|
||||
errorcodes: ../calcerr.h errorcodes.hdr errorcodes.sed
|
||||
rm -f $@
|
||||
cat errorcodes.hdr > $@
|
||||
${RM} -f $@
|
||||
${CAT} errorcodes.hdr > $@
|
||||
${SED} -n -f errorcodes.sed < ../calcerr.h >> $@
|
||||
${CHMOD} 0444 $@
|
||||
-@if [ -z "${Q}" ]; then \
|
||||
echo ''; \
|
||||
echo '=-=-= skipping the cat of help/$@ =-=-='; \
|
||||
echo '=-=-= skipping the ${CAT} of help/$@ =-=-='; \
|
||||
echo ''; \
|
||||
else \
|
||||
true; \
|
||||
${TRUE}; \
|
||||
fi
|
||||
|
||||
calc: usage
|
||||
rm -f $@
|
||||
cp usage $@
|
||||
usage: ../calc.usage
|
||||
${RM} -f $@
|
||||
${CP} ../calc.usage $@
|
||||
${CHMOD} 0444 $@
|
||||
-@if [ -z "${Q}" ]; then \
|
||||
echo ''; \
|
||||
echo '=-=-= skipping the cat of help/$@ =-=-='; \
|
||||
echo '=-=-= skipping the ${CAT} of help/$@ =-=-='; \
|
||||
echo ''; \
|
||||
else \
|
||||
true; \
|
||||
${TRUE}; \
|
||||
fi
|
||||
|
||||
../calc.usage:
|
||||
(cd ..; $(MAKE) calc.usage)
|
||||
|
||||
custom_cal: ../custom/CUSTOM_CAL
|
||||
rm -f $@
|
||||
cp ../custom/CUSTOM_CAL $@
|
||||
${RM} -f $@
|
||||
${CP} ../custom/CUSTOM_CAL $@
|
||||
${CHMOD} 0444 $@
|
||||
-@if [ -z "${Q}" ]; then \
|
||||
echo ''; \
|
||||
echo '=-=-= skipping the cat of help/$@ =-=-='; \
|
||||
echo '=-=-= skipping the ${CAT} of help/$@ =-=-='; \
|
||||
echo ''; \
|
||||
else \
|
||||
true; \
|
||||
${TRUE}; \
|
||||
fi
|
||||
|
||||
new_custom: ../custom/HOW_TO_ADD
|
||||
rm -f $@
|
||||
cp ../custom/HOW_TO_ADD $@
|
||||
${RM} -f $@
|
||||
${CP} ../custom/HOW_TO_ADD $@
|
||||
${CHMOD} 0444 $@
|
||||
-@if [ -z "${Q}" ]; then \
|
||||
echo ''; \
|
||||
echo '=-=-= skipping the cat of help/$@ =-=-='; \
|
||||
echo '=-=-= skipping the ${CAT} of help/$@ =-=-='; \
|
||||
echo ''; \
|
||||
else \
|
||||
true; \
|
||||
${TRUE}; \
|
||||
fi
|
||||
|
||||
copy: blkcpy
|
||||
rm -f $@
|
||||
cp blkcpy $@
|
||||
${RM} -f $@
|
||||
${CP} blkcpy $@
|
||||
${CHMOD} 0444 $@
|
||||
-@if [ -z "${Q}" ]; then \
|
||||
echo ''; \
|
||||
echo '=-=-= skipping the cat of help/$@ =-=-='; \
|
||||
echo '=-=-= skipping the ${CAT} of help/$@ =-=-='; \
|
||||
echo ''; \
|
||||
else \
|
||||
true; \
|
||||
${TRUE}; \
|
||||
fi
|
||||
|
||||
COPYING: ../COPYING
|
||||
rm -f $@
|
||||
cp ../COPYING $@
|
||||
${RM} -f $@
|
||||
${CP} ../COPYING $@
|
||||
${CHMOD} 0444 $@
|
||||
-@if [ -z "${Q}" ]; then \
|
||||
echo ''; \
|
||||
echo '=-=-= skipping the cat of help/$@ =-=-='; \
|
||||
echo '=-=-= skipping the ${CAT} of help/$@ =-=-='; \
|
||||
echo ''; \
|
||||
else \
|
||||
true; \
|
||||
${TRUE}; \
|
||||
fi
|
||||
|
||||
COPYING-LGPL: ../COPYING-LGPL
|
||||
rm -f $@
|
||||
cp ../COPYING-LGPL $@
|
||||
${RM} -f $@
|
||||
${CP} ../COPYING-LGPL $@
|
||||
${CHMOD} 0444 $@
|
||||
-@if [ -z "${Q}" ]; then \
|
||||
echo ''; \
|
||||
echo '=-=-= skipping the cat of help/$@ =-=-='; \
|
||||
echo '=-=-= skipping the ${CAT} of help/$@ =-=-='; \
|
||||
echo ''; \
|
||||
else \
|
||||
true; \
|
||||
${TRUE}; \
|
||||
fi
|
||||
|
||||
cscript: ../cscript/README
|
||||
rm -f $@
|
||||
cp ../cscript/README $@
|
||||
${RM} -f $@
|
||||
${CP} ../cscript/README $@
|
||||
${CHMOD} 0444 $@
|
||||
-@if [ -z "${Q}" ]; then \
|
||||
echo ''; \
|
||||
echo '=-=-= skipping the cat of help/$@ =-=-='; \
|
||||
echo '=-=-= skipping the ${CAT} of help/$@ =-=-='; \
|
||||
echo ''; \
|
||||
else \
|
||||
true; \
|
||||
${TRUE}; \
|
||||
fi
|
||||
|
||||
../cscript/README: ../cscript/README.src
|
||||
${Q} echo "forming cscript/README"
|
||||
-${Q} ${RM} -f $@
|
||||
(cd ../cscript; $(MAKE) README)
|
||||
|
||||
full: ${FULL_HELP_FILES} ${MAKE_FILE}
|
||||
${Q}echo "forming full"
|
||||
-${Q}rm -f $@
|
||||
-${Q}for i in ${FULL_HELP_FILES}; do \
|
||||
${Q} echo "forming full"
|
||||
-${Q} ${RM} -f $@
|
||||
-${Q} for i in ${FULL_HELP_FILES}; do \
|
||||
if [ Xintro != X"$$i" ]; then \
|
||||
echo ""; \
|
||||
else \
|
||||
true; \
|
||||
${TRUE}; \
|
||||
fi; \
|
||||
if [ Xobj.file = X"$$i" ]; then \
|
||||
j=obj; \
|
||||
@@ -504,34 +520,34 @@ full: ${FULL_HELP_FILES} ${MAKE_FILE}
|
||||
echo "* $$j"; \
|
||||
echo "*************"; \
|
||||
echo ""; \
|
||||
cat $$i; \
|
||||
${CAT} $$i; \
|
||||
done > $@
|
||||
${Q}echo "full formed"
|
||||
${Q} echo "full formed"
|
||||
-@if [ -z "${Q}" ]; then \
|
||||
echo ''; \
|
||||
echo '=-=-= skipping the cat of help/$@ =-=-='; \
|
||||
echo '=-=-= skipping the ${CAT} of help/$@ =-=-='; \
|
||||
echo ''; \
|
||||
else \
|
||||
true; \
|
||||
${TRUE}; \
|
||||
fi
|
||||
|
||||
# Singular files are the same files as their plural form.
|
||||
#
|
||||
${SINGULAR_FILES}: ${PLURAL_FILES}
|
||||
${Q}for i in ${SINGULAR_FILES} /dev/null; do \
|
||||
${Q} for i in ${SINGULAR_FILES} /dev/null; do \
|
||||
if [ X"$$i" != X"/dev/null" ]; then \
|
||||
echo "rm -f $${i}"; \
|
||||
rm -f $${i}; \
|
||||
echo "cp $${i}s $${i}"; \
|
||||
cp $${i}s $${i}; \
|
||||
echo "${RM} -f $${i}"; \
|
||||
${RM} -f $${i}; \
|
||||
echo "${CP} $${i}s $${i}"; \
|
||||
${CP} $${i}s $${i}; \
|
||||
fi; \
|
||||
done
|
||||
-@if [ -z "${Q}" ]; then \
|
||||
echo ''; \
|
||||
echo '=-=-= skipping the cat of help/SINGULAR_FILES =-=-='; \
|
||||
echo '=-=-= skipping the ${CAT} of help/SINGULAR_FILES =-=-='; \
|
||||
echo ''; \
|
||||
else \
|
||||
true; \
|
||||
${TRUE}; \
|
||||
fi
|
||||
|
||||
# Form the builtin file
|
||||
@@ -553,25 +569,25 @@ ${SINGULAR_FILES}: ${PLURAL_FILES}
|
||||
# do not treat -I.. correctly!
|
||||
#
|
||||
builtin: builtin.top builtin.end ../func.c funclist.sed
|
||||
${Q}echo "forming builtin help file"
|
||||
-${Q}rm -f funclist.c
|
||||
${Q}${SED} -n -f funclist.sed ../func.c > funclist.c
|
||||
-${Q}rm -f funclist.o funclist${EXT}
|
||||
${Q}${LCC} ${ICFLAGS} -DFUNCLIST -I/usr/include \
|
||||
${Q} echo "forming builtin help file"
|
||||
-${Q} ${RM} -f funclist.c
|
||||
${Q} ${SED} -n -f funclist.sed ../func.c > funclist.c
|
||||
-${Q} ${RM} -f funclist.o funclist${EXT}
|
||||
${Q} ${LCC} ${ICFLAGS} -DFUNCLIST -I/usr/include \
|
||||
-I.. funclist.c -c 2>/dev/null
|
||||
${Q}${LCC} ${ILDFLAGS} funclist.o -o funclist${EXT}
|
||||
-${Q}rm -f builtin
|
||||
${Q}cat builtin.top > builtin
|
||||
${Q}./funclist${EXT} | \
|
||||
${Q} ${LCC} ${ILDFLAGS} funclist.o -o funclist${EXT}
|
||||
-${Q} ${RM} -f builtin
|
||||
${Q} ${CAT} builtin.top > builtin
|
||||
${Q} ./funclist${EXT} | \
|
||||
${SED} -e 's/^/ /' -e 's/[ ][ ]*$$//' >> builtin
|
||||
${Q}cat builtin.end >> builtin
|
||||
${Q}echo "builtin help file formed"
|
||||
${Q} ${CAT} builtin.end >> builtin
|
||||
${Q} echo "builtin help file formed"
|
||||
-@if [ -z "${Q}" ]; then \
|
||||
echo ''; \
|
||||
echo '=-=-= skipping the cat of help/$@ =-=-='; \
|
||||
echo '=-=-= skipping the ${CAT} of help/$@ =-=-='; \
|
||||
echo ''; \
|
||||
else \
|
||||
true; \
|
||||
${TRUE}; \
|
||||
fi
|
||||
|
||||
##
|
||||
@@ -585,17 +601,17 @@ builtin: builtin.top builtin.end ../func.c funclist.sed
|
||||
##
|
||||
|
||||
distlist: ${DISTLIST}
|
||||
${Q}for i in ${DISTLIST} /dev/null; do \
|
||||
${Q} for i in ${DISTLIST} /dev/null; do \
|
||||
if [ X"$$i" != X"/dev/null" ]; then \
|
||||
echo help/$$i; \
|
||||
fi; \
|
||||
done | LANG=C ${SORT}
|
||||
|
||||
distdir:
|
||||
${Q}echo help
|
||||
${Q} echo help
|
||||
|
||||
calcliblist:
|
||||
${Q}for i in ${CALCLIBLIST} /dev/null; do \
|
||||
${Q} for i in ${CALCLIBLIST} /dev/null; do \
|
||||
if [ X"$$i" != X"/dev/null" ]; then \
|
||||
echo help/$$i; \
|
||||
fi; \
|
||||
@@ -606,21 +622,21 @@ calcliblist:
|
||||
# ignore this rule.
|
||||
#
|
||||
bsdi: all
|
||||
rm -f obj
|
||||
cp obj.file obj
|
||||
${RM} -f obj
|
||||
${CP} obj.file obj
|
||||
|
||||
# These next rule help me form the ${DETAIL_HELP} makefile variables above.
|
||||
#
|
||||
detaillist:
|
||||
${Q}-(echo "xxxxx"; \
|
||||
${Q} -(echo "xxxxx"; \
|
||||
for i in ${DETAIL_HELP} /dev/null; do \
|
||||
if [ X"$$i" != X"/dev/null" ]; then \
|
||||
if [ ! -f RCS/$$i,v ]; then \
|
||||
echo "WARNING: $$i not under RCS control" 1>&2; \
|
||||
else \
|
||||
echo $$i; \
|
||||
if [ X"$$i" != X"/dev/null" ]; then \
|
||||
if [ ! -f RCS/$$i,v ]; then \
|
||||
echo "WARNING: $$i not under RCS control" 1>&2; \
|
||||
else \
|
||||
echo $$i; \
|
||||
fi; \
|
||||
fi; \
|
||||
fi; \
|
||||
done | LANG=C ${SORT}) | ${FMT} -70 | \
|
||||
${SED} -e '1s/xxxxx/DETAIL_HELP=/' -e '2,$$s/^/ /' \
|
||||
-e 's/$$/ \\/' -e '$$s/ \\$$//'
|
||||
@@ -632,13 +648,13 @@ detaillist:
|
||||
##
|
||||
|
||||
echo_inst_files:
|
||||
${Q}for i in ${STD_HELP_FILES} full ${BLT_HELP_FILES} \
|
||||
${Q} for i in ${STD_HELP_FILES} full ${BLT_HELP_FILES} \
|
||||
builtin ${DETAIL_HELP} ${SINGULAR_FILES} /dev/null; do \
|
||||
if [ X"$$i" != X"/dev/null" ]; then \
|
||||
echo __file__ ${HELPDIR}/$$i; \
|
||||
fi; \
|
||||
done
|
||||
${Q}echo __file__ ${HELPDIR}/obj
|
||||
${Q} echo __file__ ${HELPDIR}/obj
|
||||
|
||||
##
|
||||
#
|
||||
@@ -647,61 +663,99 @@ echo_inst_files:
|
||||
##
|
||||
|
||||
clean:
|
||||
rm -f obj mkbuiltin funclist.c funclist.o funclist${EXT}
|
||||
rm -f COPYING COPYING-LGPL
|
||||
${RM} -f obj mkbuiltin funclist.c funclist.o funclist${EXT}
|
||||
${RM} -f COPYING COPYING-LGPL
|
||||
|
||||
clobber:
|
||||
rm -f ${BLT_HELP_FILES} full .all calc
|
||||
rm -f obj mkbuiltin funclist.c funclist.o funclist${EXT}
|
||||
rm -f COPYING COPYING-LGPL
|
||||
rm -f ${SINGULAR_FILES} ${DETAIL_CLONE}
|
||||
${RM} -f ${BLT_HELP_FILES} full .all calc
|
||||
${RM} -f obj mkbuiltin funclist.c funclist.o funclist${EXT}
|
||||
${RM} -f COPYING COPYING-LGPL
|
||||
${RM} -f ${SINGULAR_FILES} ${DETAIL_CLONE}
|
||||
|
||||
# install everything
|
||||
#
|
||||
# NOTE: Keep the uninstall rule in reverse order to the install rule
|
||||
#
|
||||
install: all
|
||||
-${Q}if [ ! -d $T${CALC_SHAREDIR} ]; then \
|
||||
echo mkdir $T${CALC_SHAREDIR}; \
|
||||
mkdir $T${CALC_SHAREDIR}; \
|
||||
if [ ! -d "$T${CALC_SHAREDIR}" ]; then \
|
||||
echo mkdir -p "$T${CALC_SHAREDIR}"; \
|
||||
mkdir -p "$T${CALC_SHAREDIR}"; \
|
||||
-${Q} if [ ! -d ${T}${CALC_SHAREDIR} ]; then \
|
||||
echo ${MKDIR} ${T}${CALC_SHAREDIR}; \
|
||||
${MKDIR} ${T}${CALC_SHAREDIR}; \
|
||||
if [ ! -d "${T}${CALC_SHAREDIR}" ]; then \
|
||||
echo ${MKDIR} -p "${T}${CALC_SHAREDIR}"; \
|
||||
${MKDIR} -p "${T}${CALC_SHAREDIR}"; \
|
||||
fi; \
|
||||
echo ${CHMOD} 0755 $T${CALC_SHAREDIR}; \
|
||||
${CHMOD} 0755 $T${CALC_SHAREDIR}; \
|
||||
echo ${CHMOD} 0755 ${T}${CALC_SHAREDIR}; \
|
||||
${CHMOD} 0755 ${T}${CALC_SHAREDIR}; \
|
||||
else \
|
||||
true; \
|
||||
${TRUE}; \
|
||||
fi
|
||||
-${Q}if [ ! -d $T${HELPDIR} ]; then \
|
||||
echo mkdir $T${HELPDIR}; \
|
||||
mkdir $T${HELPDIR}; \
|
||||
if [ ! -d "$T${HELPDIR}" ]; then \
|
||||
echo mkdir -p "$T${HELPDIR}"; \
|
||||
mkdir -p "$T${HELPDIR}"; \
|
||||
-${Q} if [ ! -d ${T}${HELPDIR} ]; then \
|
||||
echo ${MKDIR} ${T}${HELPDIR}; \
|
||||
${MKDIR} ${T}${HELPDIR}; \
|
||||
if [ ! -d "${T}${HELPDIR}" ]; then \
|
||||
echo ${MKDIR} -p "${T}${HELPDIR}"; \
|
||||
${MKDIR} -p "${T}${HELPDIR}"; \
|
||||
fi; \
|
||||
echo ${CHMOD} 0755 $T${HELPDIR}; \
|
||||
${CHMOD} 0755 $T${HELPDIR}; \
|
||||
echo ${CHMOD} 0755 ${T}${HELPDIR}; \
|
||||
${CHMOD} 0755 ${T}${HELPDIR}; \
|
||||
else \
|
||||
true; \
|
||||
${TRUE}; \
|
||||
fi
|
||||
-${Q}for i in ${STD_HELP_FILES} ${BLT_HELP_FILES} builtin \
|
||||
-${Q} for i in ${STD_HELP_FILES} ${BLT_HELP_FILES} builtin \
|
||||
full ${DETAIL_HELP} ${SINGULAR_FILES} /dev/null; do \
|
||||
if [ "$$i" = "/dev/null" ]; then \
|
||||
continue; \
|
||||
fi; \
|
||||
if ${CMP} -s $$i $T${HELPDIR}/$$i; then \
|
||||
true; \
|
||||
if ${CMP} -s $$i ${T}${HELPDIR}/$$i; then \
|
||||
${TRUE}; \
|
||||
else \
|
||||
rm -f $T${HELPDIR}/$$i.new; \
|
||||
cp -f $$i $T${HELPDIR}/$$i.new; \
|
||||
${CHMOD} 0444 $T${HELPDIR}/$$i.new; \
|
||||
mv -f $T${HELPDIR}/$$i.new $T${HELPDIR}/$$i; \
|
||||
echo "installed $T${HELPDIR}/$$i"; \
|
||||
${RM} -f ${T}${HELPDIR}/$$i.new; \
|
||||
${CP} -f $$i ${T}${HELPDIR}/$$i.new; \
|
||||
${CHMOD} 0444 ${T}${HELPDIR}/$$i.new; \
|
||||
${MV} -f ${T}${HELPDIR}/$$i.new ${T}${HELPDIR}/$$i; \
|
||||
echo "installed ${T}${HELPDIR}/$$i"; \
|
||||
fi; \
|
||||
done
|
||||
-${Q}if ${CMP} -s obj.file $T${HELPDIR}/obj; then \
|
||||
true; \
|
||||
-${Q} if ${CMP} -s obj.file ${T}${HELPDIR}/obj; then \
|
||||
${TRUE}; \
|
||||
else \
|
||||
rm -f $T${HELPDIR}/obj.new; \
|
||||
cp -f obj.file $T${HELPDIR}/obj.new; \
|
||||
${CHMOD} 0444 $T${HELPDIR}/obj.new; \
|
||||
mv -f $T${HELPDIR}/obj.new $T${HELPDIR}/obj; \
|
||||
echo "installed $T${HELPDIR}/obj"; \
|
||||
${RM} -f ${T}${HELPDIR}/obj.new; \
|
||||
${CP} -f obj.file ${T}${HELPDIR}/obj.new; \
|
||||
${CHMOD} 0444 ${T}${HELPDIR}/obj.new; \
|
||||
${MV} -f ${T}${HELPDIR}/obj.new ${T}${HELPDIR}/obj; \
|
||||
echo "installed ${T}${HELPDIR}/obj"; \
|
||||
fi
|
||||
|
||||
# Try to remove everything that was installed
|
||||
#
|
||||
# NOTE: Keep the uninstall rule in reverse order to the install rule
|
||||
#
|
||||
uninstall:
|
||||
-${Q} if [ -f "${T}${HELPDIR}/obj" ]; then \
|
||||
${RM} -f "${T}${HELPDIR}/obj"; \
|
||||
if [ -f "${T}${HELPDIR}/obj" ]; then \
|
||||
echo "cannot uninstall ${T}${HELPDIR}/obj"; \
|
||||
else \
|
||||
echo "uninstalled ${T}${HELPDIR}/obj"; \
|
||||
fi; \
|
||||
fi
|
||||
-${Q} for i in ${SINGULAR_FILES} ${DETAIL_HELP} full builtin \
|
||||
${BLT_HELP_FILES} ${STD_HELP_FILES} /dev/null; do \
|
||||
if [ "$$i" = "/dev/null" ]; then \
|
||||
continue; \
|
||||
fi; \
|
||||
if [ -f "${T}${HELPDIR}/$$i" ]; then \
|
||||
${RM} -f "${T}${HELPDIR}/$$i"; \
|
||||
if [ -f "${T}${HELPDIR}/$$i" ]; then \
|
||||
echo "cannot uninstall ${T}${HELPDIR}/$$i"; \
|
||||
else \
|
||||
echo "uninstalled ${T}${HELPDIR}/$$i"; \
|
||||
fi; \
|
||||
fi; \
|
||||
done
|
||||
-${Q} for i in ${HELPDIR} ${CALC_SHAREDIR}; do \
|
||||
if [ -d "${T}$$i" ]; then \
|
||||
${RMDIR} "${T}$$i" 2>/dev/null; \
|
||||
echo "cleaned up ${T}$$i"; \
|
||||
fi; \
|
||||
done
|
||||
|
@@ -57,9 +57,10 @@ LINK LIBRARY
|
||||
none
|
||||
|
||||
SEE ALSO
|
||||
delete, insert, islist, list, pop, push, remove, rsearch, search, size
|
||||
delete, insert, islist, pop, push, remove, rsearch, search,
|
||||
select, size
|
||||
|
||||
## Copyright (C) 1999 Landon Curt Noll
|
||||
## Copyright (C) 1999-2006 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
|
||||
@@ -75,8 +76,8 @@ SEE ALSO
|
||||
## 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: append,v 29.3 2006/05/07 07:25:46 chongo Exp $
|
||||
## @(#) $Revision: 29.4 $
|
||||
## @(#) $Id: append,v 29.4 2006/06/25 22:16:55 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/append,v $
|
||||
##
|
||||
## Under source code control: 1994/03/19 03:13:17
|
||||
|
@@ -51,9 +51,9 @@ LINK LIBRARY
|
||||
none
|
||||
|
||||
SEE ALSO
|
||||
param, usage
|
||||
param, system, usage
|
||||
|
||||
## Copyright (C) 1999 Landon Curt Noll
|
||||
## Copyright (C) 1999-2006 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
|
||||
@@ -69,8 +69,8 @@ SEE ALSO
|
||||
## 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: argv,v 29.3 2006/05/07 07:25:46 chongo Exp $
|
||||
## @(#) $Revision: 29.4 $
|
||||
## @(#) $Id: argv,v 29.4 2006/06/25 22:16:55 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/argv,v $
|
||||
##
|
||||
## Under source code control: 1999/11/23 19:45:05
|
||||
|
8
help/avg
8
help/avg
@@ -41,7 +41,7 @@ EXAMPLE
|
||||
[1,1] = 6
|
||||
|
||||
LIMITS
|
||||
The number of arguments is not to exceed 100.
|
||||
The number of arguments is not to exceed 1024.
|
||||
|
||||
LINK LIBRARY
|
||||
none
|
||||
@@ -49,7 +49,7 @@ LINK LIBRARY
|
||||
SEE ALSO
|
||||
hmean
|
||||
|
||||
## Copyright (C) 1999 Landon Curt Noll
|
||||
## Copyright (C) 1999-2006 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
|
||||
@@ -65,8 +65,8 @@ SEE ALSO
|
||||
## 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: avg,v 29.3 2006/05/07 07:25:46 chongo Exp $
|
||||
## @(#) $Revision: 29.4 $
|
||||
## @(#) $Id: avg,v 29.4 2006/06/22 23:49:22 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/avg,v $
|
||||
##
|
||||
## Under source code control: 1994/09/25 20:22:31
|
||||
|
23
help/blk
23
help/blk
@@ -213,12 +213,27 @@ LIMITS
|
||||
1 <= chunk < 2^31
|
||||
|
||||
LINK LIBRARY
|
||||
XXX
|
||||
BLOCK *blkalloc(int len, int chunk)
|
||||
void blk_free(BLOCK *blk)
|
||||
BLOCK *blkrealloc(BLOCK *blk, int newlen, int newchunk)
|
||||
void blktrunc(BLOCK *blk)
|
||||
BLOCK *blk_copy(BLOCK *blk)
|
||||
int blk_cmp(BLOCK *a, BLOCK *b)
|
||||
void blk_print(BLOCK *blk)
|
||||
void nblock_print(NBLOCK *nblk)
|
||||
NBLOCK *reallocnblock(int id, int len, int chunk)
|
||||
NBLOCK *createnblock(char *name, int len, int chunk)
|
||||
int findnblockid(char * name)
|
||||
int removenblock(int id)
|
||||
int countnblocks(void)
|
||||
void shownblocks(void)
|
||||
NBLOCK *findnblock(int id)
|
||||
BLOCK *copyrealloc(BLOCK *blk, int newlen, int newchunk)
|
||||
|
||||
SEE ALSO
|
||||
blocks, blkfree
|
||||
|
||||
## Copyright (C) 1999 Landon Curt Noll
|
||||
## Copyright (C) 1999-2006 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
|
||||
@@ -234,8 +249,8 @@ SEE ALSO
|
||||
## 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.4 $
|
||||
## @(#) $Id: blk,v 29.4 2006/05/07 07:16:42 chongo Exp $
|
||||
## @(#) $Revision: 29.5 $
|
||||
## @(#) $Id: blk,v 29.5 2006/06/25 22:16:55 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/blk,v $
|
||||
##
|
||||
## Under source code control: 1997/04/05 13:07:13
|
||||
|
@@ -26,9 +26,9 @@ LINK LIBRARY
|
||||
none
|
||||
|
||||
SEE ALSO
|
||||
XXX - fill in
|
||||
argv, system
|
||||
|
||||
## Copyright (C) 1999 Landon Curt Noll
|
||||
## Copyright (C) 1999-2006 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
|
||||
@@ -44,8 +44,8 @@ SEE ALSO
|
||||
## 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: cmdbuf,v 29.2 2000/06/07 14:02:33 chongo Exp $
|
||||
## @(#) $Revision: 29.3 $
|
||||
## @(#) $Id: cmdbuf,v 29.3 2006/06/25 22:16:55 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/cmdbuf,v $
|
||||
##
|
||||
## Under source code control: 1995/07/09 04:05:58
|
||||
|
@@ -36,9 +36,9 @@ LINK LIBRARY
|
||||
void zcomb(ZVALUE x, ZVALUE y, ZVALUE *res)
|
||||
|
||||
SEE ALSO
|
||||
fact, perm
|
||||
fact, perm, randperm
|
||||
|
||||
## Copyright (C) 1999 Landon Curt Noll
|
||||
## Copyright (C) 1999-2006 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
|
||||
@@ -54,8 +54,8 @@ SEE ALSO
|
||||
## 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: comb,v 29.3 2006/05/07 07:25:46 chongo Exp $
|
||||
## @(#) $Revision: 29.4 $
|
||||
## @(#) $Id: comb,v 29.4 2006/06/25 22:16:55 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/comb,v $
|
||||
##
|
||||
## Under source code control: 1994/10/20 04:03:02
|
||||
|
22
help/config
22
help/config
@@ -68,6 +68,7 @@ DESCRIPTION
|
||||
"baseb" bits in calculation base, a read-only value
|
||||
"redecl_warn" TRUE => warn when redeclaring
|
||||
"dupvar_warn" TRUE => warn when variable names collide
|
||||
"hz" Read-only operating system tick rate or 0
|
||||
|
||||
The "all" config value allows one to save/restore the configuration
|
||||
set of values. The return of:
|
||||
@@ -430,6 +431,12 @@ DESCRIPTION
|
||||
by the various kinds of printing to the output: bits 0, 1, 3 and 4
|
||||
are used in the same way as for the functions round and bround.
|
||||
|
||||
The C language method of modulus and integer division is:
|
||||
|
||||
config("quomod", 2)
|
||||
config("quo", 2)
|
||||
config("mod", 2)
|
||||
|
||||
=-=
|
||||
|
||||
config("leadzero", boolean)
|
||||
@@ -861,6 +868,16 @@ DESCRIPTION
|
||||
|
||||
The initial "redecl_warn" value is 1.
|
||||
|
||||
=-=
|
||||
|
||||
config("hz") <== NOTE: This is a read-only config value
|
||||
|
||||
Returns the rate at which the operating system advances the clock
|
||||
on POSIX based systems. Returns 0 on non-POSIX based systems.
|
||||
The non-zero value returned is in Hetrz.
|
||||
|
||||
This config parameter is read-only and cannot be set.
|
||||
|
||||
|
||||
EXAMPLE
|
||||
; current_cfg = config("all");
|
||||
@@ -922,6 +939,7 @@ EXAMPLE
|
||||
baseb 32
|
||||
redecl_warn 1
|
||||
dupvar_warn 1
|
||||
hz 100
|
||||
|
||||
; display()
|
||||
20
|
||||
@@ -954,8 +972,8 @@ SEE ALSO
|
||||
## 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.16 $
|
||||
## @(#) $Id: config,v 29.16 2006/06/20 10:25:00 chongo Exp $
|
||||
## @(#) $Revision: 29.18 $
|
||||
## @(#) $Id: config,v 29.18 2006/12/16 11:14:28 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/config,v $
|
||||
##
|
||||
## Under source code control: 1991/07/21 04:37:17
|
||||
|
63
help/cp
63
help/cp
@@ -1,63 +0,0 @@
|
||||
NAME
|
||||
cp - cross product of two 3 element vectors
|
||||
|
||||
SYNOPSIS
|
||||
cp(x, y)
|
||||
|
||||
TYPES
|
||||
x, y 1-dimensional matrices with 3 elements
|
||||
|
||||
return 1-dimensional matrix with 3 elements
|
||||
|
||||
DESCRIPTION
|
||||
Calculate the product of two 3 1-dimensional matrices.
|
||||
If x has elements (x0, x1, x2), and y has elements (y0, y1, y2),
|
||||
cp(x,y) returns the matrix of type [0:2] with elements:
|
||||
|
||||
{x1 * y2 - x2 * y1, x3 * y1 - x1 * y3, x1 * y2 - x2 * y1}
|
||||
|
||||
EXAMPLE
|
||||
; mat x[3] = {2,3,4}
|
||||
; mat y[3] = {3,4,5}
|
||||
; print cp(x,y)
|
||||
|
||||
mat [3] (3 elements, 3 nonzero):
|
||||
[0] = -1
|
||||
[1] = 2
|
||||
[2] = -1
|
||||
|
||||
LIMITS
|
||||
The components of the matrices are to be of types for which the
|
||||
required algebraic operations have been defined.
|
||||
|
||||
LINK LIBRARY
|
||||
MATRIX *matcross(MATRIX *x, MATRIX *y)
|
||||
|
||||
SEE ALSO
|
||||
dp
|
||||
|
||||
## 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: cp,v 29.3 2006/05/07 07:25:46 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/cp,v $
|
||||
##
|
||||
## Under source code control: 1995/10/05 04:52:26
|
||||
## File existed as early as: 1995
|
||||
##
|
||||
## chongo <was here> /\oo/\ http://www.isthe.com/chongo/
|
||||
## Share and enjoy! :-) http://www.isthe.com/chongo/tech/comp/calc/
|
@@ -183,7 +183,7 @@ EXAMPLE
|
||||
;; }
|
||||
|
||||
LIMITS
|
||||
The number of arguments in a function-call cannot exceed 100.
|
||||
The number of arguments in a function-call cannot exceed 1024.
|
||||
|
||||
LIBRARY
|
||||
none
|
||||
@@ -207,8 +207,8 @@ SEE ALSO
|
||||
## 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.5 $
|
||||
## @(#) $Id: define,v 29.5 2006/06/10 12:28:10 chongo Exp $
|
||||
## @(#) $Revision: 29.6 $
|
||||
## @(#) $Id: define,v 29.6 2006/06/22 23:49:22 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/define,v $
|
||||
##
|
||||
##
|
||||
|
@@ -39,9 +39,10 @@ LINK LIBRARY
|
||||
none
|
||||
|
||||
SEE ALSO
|
||||
append, insert, pop, push, remove, size
|
||||
append, insert, islist, pop, push, remove, rsearch, search,
|
||||
select, size
|
||||
|
||||
## Copyright (C) 1999 Landon Curt Noll
|
||||
## Copyright (C) 1999-2006 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
|
||||
@@ -57,8 +58,8 @@ SEE ALSO
|
||||
## 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: delete,v 29.3 2006/05/07 07:25:46 chongo Exp $
|
||||
## @(#) $Revision: 29.4 $
|
||||
## @(#) $Id: delete,v 29.4 2006/06/25 22:16:55 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/delete,v $
|
||||
##
|
||||
## Under source code control: 1994/03/19 03:13:18
|
||||
|
45
help/estr
Normal file
45
help/estr
Normal file
@@ -0,0 +1,45 @@
|
||||
NAME
|
||||
estr - represent some types of value by text strings
|
||||
|
||||
|
||||
SYNOPSIS
|
||||
estr(x)
|
||||
|
||||
TYPES
|
||||
x null, string, real or complex number, list, matrix,
|
||||
object. block, named block, error
|
||||
|
||||
return string
|
||||
|
||||
DESCRIPTION
|
||||
This function attempts to represent x exactly by a string s of
|
||||
ordinary text characters such that eval(s) == x.
|
||||
|
||||
If x is null, estr(x) returns the string "".
|
||||
|
||||
If x is a string, estr(x) returns the string in which occurrences of
|
||||
newline, tab, ", \, etc. have been converted to \n, \t, \",
|
||||
\\, etc., '\0' to \000 or \0 according as the next character is
|
||||
or is not an octal digit, and other non-text characters to their
|
||||
escaped hex representation, e.g. char(165) becomes \xa5.
|
||||
|
||||
For real x, estr(x) represebts x in fractional mode.
|
||||
|
||||
|
||||
EXAMPLE
|
||||
; estr("abc\0xyz\00023\n\xa5\r\n")
|
||||
""abc\0xyz\00023\n\xa5\r\n""
|
||||
; estr(1.67)
|
||||
"167/100"
|
||||
; estr(mat[3] = {2, list(3,5), "abc"})
|
||||
"mat[3]={2,list(3,5),"abc""
|
||||
|
||||
LIMITS
|
||||
none
|
||||
|
||||
LINK LIBRARY
|
||||
none
|
||||
|
||||
SEE ALSO
|
||||
str, strprintf
|
||||
|
@@ -30,9 +30,9 @@ LINK LIBRARY
|
||||
void zfact(NUMBER x, *ret)
|
||||
|
||||
SEE ALSO
|
||||
comb, perm
|
||||
comb, perm, randperm
|
||||
|
||||
## Copyright (C) 1999 Landon Curt Noll
|
||||
## Copyright (C) 1999-2006 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
|
||||
@@ -48,8 +48,8 @@ SEE ALSO
|
||||
## 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: fact,v 29.3 2006/05/07 07:25:46 chongo Exp $
|
||||
## @(#) $Revision: 29.4 $
|
||||
## @(#) $Id: fact,v 29.4 2006/06/25 22:16:55 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/fact,v $
|
||||
##
|
||||
## Under source code control: 1994/10/20 04:03:02
|
||||
|
@@ -47,7 +47,8 @@ LINK LIBRARY
|
||||
FLAG zfactor(ZVALUE n, ZVALUE limit, ZVALUE *res)
|
||||
|
||||
SEE ALSO
|
||||
lfactor
|
||||
isprime, lfactor, nextcand, nextprime, prevcand, prevprime,
|
||||
pfact, pix, ptest
|
||||
|
||||
## Copyright (C) 1999-2006 Landon Curt Noll
|
||||
##
|
||||
@@ -65,8 +66,8 @@ SEE ALSO
|
||||
## 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.4 $
|
||||
## @(#) $Id: factor,v 29.4 2006/06/01 11:36:02 chongo Exp $
|
||||
## @(#) $Revision: 29.5 $
|
||||
## @(#) $Id: factor,v 29.5 2006/06/25 22:16:55 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/factor,v $
|
||||
##
|
||||
## Under source code control: 1995/12/18 12:34:57
|
||||
|
@@ -7,19 +7,18 @@ SYNOPSIS
|
||||
TYPES
|
||||
fs file stream open for reading
|
||||
|
||||
return string, null or error value
|
||||
return string or null
|
||||
|
||||
DESCRIPTION
|
||||
If characters cannot be read from the file, an error value is returned.
|
||||
|
||||
Otherwise starting at the current file position, any whitespace
|
||||
Starting at the current file position, any whitespace
|
||||
characters are skipped. If the reading reaches end-of-file, the
|
||||
null value is returned. If non-whitespace is encountered, formation
|
||||
of a string begins, continuing until whitespace of '\0' or end-of-file
|
||||
is reached. The returned value is this string (terminated as usual
|
||||
by a null character). After the operation, the file position will
|
||||
be immediately after the first whitespace character of '\0' or at
|
||||
end-of-file.
|
||||
null value is returned. Otherwise the function returns the empty
|
||||
string "" if the first non-white character is '\0', and in other cases,
|
||||
the string formed by the non-white-space characters read until '\0' or
|
||||
a white-space character or te end of the file is reached. In the
|
||||
cases where the reading is stopped by '\0' or white-space character,
|
||||
the file position will be that immediately after that character.
|
||||
|
||||
EXAMPLE
|
||||
|
||||
@@ -43,10 +42,10 @@ EXAMPLE
|
||||
"Beta"
|
||||
|
||||
LIMITS
|
||||
none - XXX - is this correct?
|
||||
none
|
||||
|
||||
LINK LIBRARY
|
||||
none - XXX - is this correct?
|
||||
none
|
||||
|
||||
SEE ALSO
|
||||
fgetstr, fputstr, fgets, fputs, fopen, files, fprintf
|
||||
@@ -67,8 +66,8 @@ SEE ALSO
|
||||
## 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.4 $
|
||||
## @(#) $Id: fgetfield,v 29.4 2006/06/10 12:28:10 chongo Exp $
|
||||
## @(#) $Revision: 29.6 $
|
||||
## @(#) $Id: fgetfield,v 29.6 2006/08/20 15:01:57 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/fgetfield,v $
|
||||
##
|
||||
## Under source code control: 1996/04/30 03:05:17
|
||||
|
72
help/fgetfile
Normal file
72
help/fgetfile
Normal file
@@ -0,0 +1,72 @@
|
||||
NAME
|
||||
fgetfile - read the rest of a file to form a string
|
||||
|
||||
SYNOPSIS
|
||||
fgetfile(fs)
|
||||
|
||||
TYPES
|
||||
fs file stream open for reading
|
||||
|
||||
return string or null value
|
||||
|
||||
DESCRIPTION
|
||||
|
||||
If the current file position for fs is the end of the file, the
|
||||
null value is returned.
|
||||
|
||||
Otherwise the function returns the string formed from reading all
|
||||
characters from the current file position to the end of the file.
|
||||
|
||||
If the content of the file "newfile" is a sequence of statements that
|
||||
could form the body of function definition, the statement sequence
|
||||
|
||||
fs = fopen("newfile", "r");
|
||||
eval(fgetfile(fs));
|
||||
|
||||
achieves the same as the command
|
||||
|
||||
read newfile;
|
||||
|
||||
|
||||
EXAMPLE
|
||||
|
||||
; f = fopen("/tmp/newfile", "w")
|
||||
; fputs(f, "abc\0xyz\n\t\xb0\0\r\v123"
|
||||
; freopen(f, "r")
|
||||
; estr(fgetfile(f))
|
||||
""abc\0xyz\n\t\xb0\0\r\v123""
|
||||
|
||||
LIMITS
|
||||
none
|
||||
|
||||
LINK LIBRARY
|
||||
none
|
||||
|
||||
SEE ALSO
|
||||
fgets, fgetstr, files, fopen, fprintf, fputs, fputstr
|
||||
|
||||
## Copyright (C) 1999-2006 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: fgetfile,v 29.2 2006/08/20 15:01:57 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/fgetfile,v $
|
||||
##
|
||||
## Under source code control: 1996/04/30 03:05:17
|
||||
## File existed as early as: 1996
|
||||
##
|
||||
## chongo <was here> /\oo/\ http://www.isthe.com/chongo/
|
||||
## Share and enjoy! :-) http://www.isthe.com/chongo/tech/comp/calc/
|
@@ -38,10 +38,10 @@ EXAMPLE
|
||||
; fgetstr(f)
|
||||
|
||||
LIMITS
|
||||
none - XXX - is this correct?
|
||||
none
|
||||
|
||||
LINK LIBRARY
|
||||
none - XXX - is this correct?
|
||||
none
|
||||
|
||||
SEE ALSO
|
||||
fputstr, fgetword, fgets, fputs, fopen, files, fprintf
|
||||
@@ -62,8 +62,8 @@ SEE ALSO
|
||||
## 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.4 $
|
||||
## @(#) $Id: fgetstr,v 29.4 2006/06/10 12:28:10 chongo Exp $
|
||||
## @(#) $Revision: 29.5 $
|
||||
## @(#) $Id: fgetstr,v 29.5 2006/06/25 22:16:55 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/fgetstr,v $
|
||||
##
|
||||
## Under source code control: 1996/04/30 03:05:17
|
||||
|
8
help/fib
8
help/fib
@@ -25,9 +25,9 @@ LINK LIBRARY
|
||||
NUMBER *qfib(NUMBER *n)
|
||||
|
||||
SEE ALSO
|
||||
XXX - fill in
|
||||
fact
|
||||
|
||||
## Copyright (C) 1999 Landon Curt Noll
|
||||
## Copyright (C) 1999-2006 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
|
||||
@@ -43,8 +43,8 @@ SEE ALSO
|
||||
## 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: fib,v 29.3 2006/05/07 07:25:46 chongo Exp $
|
||||
## @(#) $Revision: 29.4 $
|
||||
## @(#) $Id: fib,v 29.4 2006/06/25 22:16:55 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/fib,v $
|
||||
##
|
||||
## Under source code control: 1995/10/25 04:03:45
|
||||
|
@@ -46,7 +46,7 @@ EXAMPLE
|
||||
[3] = NULL
|
||||
|
||||
LIMITS
|
||||
The number of arguments of fprintf() is not to exceed 100.
|
||||
The number of arguments of fprintf() is not to exceed 1024.
|
||||
|
||||
LINK LIBRARY
|
||||
none
|
||||
@@ -54,7 +54,7 @@ LINK LIBRARY
|
||||
SEE ALSO
|
||||
printf, strprintf, print
|
||||
|
||||
## Copyright (C) 1999 Landon Curt Noll
|
||||
## Copyright (C) 1999-2006 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
|
||||
@@ -70,8 +70,8 @@ SEE ALSO
|
||||
## 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: fprintf,v 29.3 2006/05/07 07:25:46 chongo Exp $
|
||||
## @(#) $Revision: 29.4 $
|
||||
## @(#) $Id: fprintf,v 29.4 2006/06/22 23:49:22 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/fprintf,v $
|
||||
##
|
||||
## Under source code control: 1996/03/12 22:50:41
|
||||
|
24
help/fputs
24
help/fputs
@@ -2,34 +2,34 @@ NAME
|
||||
fputs - write a string to a file
|
||||
|
||||
SYNOPSIS
|
||||
fputs(fd, data)
|
||||
fputs(fd, s1, s2, ...)
|
||||
|
||||
TYPES
|
||||
fd file
|
||||
data str
|
||||
fd file stream open for writing
|
||||
s1, s2, ... strings
|
||||
|
||||
return nil
|
||||
return null value
|
||||
|
||||
DESCRIPTION
|
||||
This function writes the string found in data to the file
|
||||
associated with fd.
|
||||
This function writes in succession the strings s1, s2, ..., to the
|
||||
file associated with fd.
|
||||
|
||||
EXAMPLE
|
||||
; fd = fopen("/tmp/newfile", "w")
|
||||
; fputs(fd, "chongo was here\n")
|
||||
; fputs(fd, "chongo was", " here\n")
|
||||
; fd2 = fopen("/tmp/newfile", "r")
|
||||
; fgetline(fd2)
|
||||
"chongo was here"
|
||||
|
||||
LIMITS
|
||||
fd must be associated with an open file
|
||||
The number of arguments is not to exceed 1024
|
||||
|
||||
LINK LIBRARY
|
||||
none
|
||||
|
||||
SEE ALSO
|
||||
errno, fclose, feof, ferror, fflush, fgetc, fgetline, fgets, files, fopen,
|
||||
fprintf, fputc, fputs, fseek, fsize, ftell, isfile, printf, prompt
|
||||
errno, fclose, feof, ferror, fflush, fgetc, fgetfile, fgetline, fgets,
|
||||
files, fopen, fprintf, fputc, fseek, fsize, ftell, isfile
|
||||
|
||||
## Copyright (C) 1999 Landon Curt Noll
|
||||
##
|
||||
@@ -47,8 +47,8 @@ SEE ALSO
|
||||
## 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: fputs,v 29.3 2006/05/07 07:25:46 chongo Exp $
|
||||
## @(#) $Revision: 29.4 $
|
||||
## @(#) $Id: fputs,v 29.4 2006/08/20 15:01:57 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/fputs,v $
|
||||
##
|
||||
## Under source code control: 1995/03/04 11:33:20
|
||||
|
@@ -31,10 +31,10 @@ EXAMPLE
|
||||
Error 72
|
||||
|
||||
LIMITS
|
||||
none - XXX - is this correct?
|
||||
none
|
||||
|
||||
LINK LIBRARY
|
||||
none - XXX - is this correct?
|
||||
none
|
||||
|
||||
SEE ALSO
|
||||
fgetstr, fgetfield, fgets, fputs, fopen, files, fprintf
|
||||
@@ -55,8 +55,8 @@ SEE ALSO
|
||||
## 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.4 $
|
||||
## @(#) $Id: fputstr,v 29.4 2006/06/10 12:28:10 chongo Exp $
|
||||
## @(#) $Revision: 29.5 $
|
||||
## @(#) $Id: fputstr,v 29.5 2006/06/25 22:16:55 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/fputstr,v $
|
||||
##
|
||||
## Under source code control: 1996/04/30 03:05:18
|
||||
|
10
help/freopen
10
help/freopen
@@ -32,16 +32,16 @@ EXAMPLE
|
||||
Error 10013
|
||||
|
||||
LIMITS
|
||||
none - XXX - is this correct?
|
||||
none
|
||||
|
||||
LINK LIBRARY
|
||||
none - XXX - is this correct?
|
||||
none
|
||||
|
||||
SEE ALSO
|
||||
errno, fclose, feof, ferror, fflush, fgetc, fgetline, fgets, files, fopen,
|
||||
fprintf, fputc, fputs, fseek, fsize, ftell, isfile, printf, prompt
|
||||
|
||||
## Copyright (C) 1999 Landon Curt Noll
|
||||
## Copyright (C) 1999-2006 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
|
||||
@@ -57,8 +57,8 @@ SEE ALSO
|
||||
## 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: freopen,v 29.3 2006/05/07 07:18:56 chongo Exp $
|
||||
## @(#) $Revision: 29.4 $
|
||||
## @(#) $Id: freopen,v 29.4 2006/06/25 22:16:55 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/freopen,v $
|
||||
##
|
||||
## Under source code control: 1996/04/30 03:05:18
|
||||
|
10
help/fscan
10
help/fscan
@@ -30,15 +30,15 @@ EXAMPLE
|
||||
7 a-2i word 49
|
||||
|
||||
LIMITS
|
||||
none - XXX - is this correct?
|
||||
The number of arguments is not to exceed 1024.
|
||||
|
||||
LINK LIBRARY
|
||||
none - XXX - is this correct?
|
||||
none
|
||||
|
||||
SEE ALSO
|
||||
scan, strscan, fscanf, scanf, strscanf, printf, fprintf, strprintf
|
||||
|
||||
## Copyright (C) 1999 Landon Curt Noll
|
||||
## Copyright (C) 1999-2006 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
|
||||
@@ -54,8 +54,8 @@ SEE ALSO
|
||||
## 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: fscan,v 29.3 2006/05/07 07:25:46 chongo Exp $
|
||||
## @(#) $Revision: 29.4 $
|
||||
## @(#) $Id: fscan,v 29.4 2006/06/25 22:16:55 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/fscan,v $
|
||||
##
|
||||
## Under source code control: 1996/04/30 03:05:18
|
||||
|
10
help/fscanf
10
help/fscanf
@@ -121,15 +121,15 @@ EXAMPLE
|
||||
"mma"
|
||||
|
||||
LIMITS
|
||||
none - XXX - is this correct?
|
||||
The number of arguments is not to exceed 1024.
|
||||
|
||||
LINK LIBRARY
|
||||
none - XXX - is this correct?
|
||||
extern int fscanfid(FILEID id, char *fmt, int count, VALUE **vals);
|
||||
|
||||
SEE ALSO
|
||||
scanf, strscanf, printf, fprintf, strprintf, fscan, scan, strscan
|
||||
|
||||
## Copyright (C) 1999 Landon Curt Noll
|
||||
## Copyright (C) 1999-2006 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
|
||||
@@ -145,8 +145,8 @@ SEE ALSO
|
||||
## 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: fscanf,v 29.3 2006/05/07 07:25:46 chongo Exp $
|
||||
## @(#) $Revision: 29.4 $
|
||||
## @(#) $Id: fscanf,v 29.4 2006/06/25 22:16:55 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/fscanf,v $
|
||||
##
|
||||
## Under source code control: 1996/04/30 03:05:18
|
||||
|
8
help/gcd
8
help/gcd
@@ -19,7 +19,7 @@ EXAMPLE
|
||||
6 .02 0
|
||||
|
||||
LIMITS
|
||||
The number of arguments may not to exceed 100.
|
||||
The number of arguments may not to exceed 1024.
|
||||
|
||||
LINK LIBRARY
|
||||
NUMBER *qgcd(NUMBER *x1, NUMBER *x2)
|
||||
@@ -27,7 +27,7 @@ LINK LIBRARY
|
||||
SEE ALSO
|
||||
lcm
|
||||
|
||||
## Copyright (C) 1999 Landon Curt Noll
|
||||
## Copyright (C) 1999-2006 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
|
||||
@@ -43,8 +43,8 @@ SEE ALSO
|
||||
## 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: gcd,v 29.3 2006/05/07 07:25:46 chongo Exp $
|
||||
## @(#) $Revision: 29.4 $
|
||||
## @(#) $Id: gcd,v 29.4 2006/06/22 23:49:22 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/gcd,v $
|
||||
##
|
||||
## Under source code control: 1995/10/05 04:52:26
|
||||
|
@@ -29,7 +29,7 @@ EXAMPLE
|
||||
2378490456
|
||||
|
||||
LIMITS
|
||||
The number of arguments is not to exceed 100.
|
||||
The number of arguments is not to exceed 1024.
|
||||
|
||||
LINK LIBRARY
|
||||
none
|
||||
@@ -37,7 +37,7 @@ LINK LIBRARY
|
||||
SEE ALSO
|
||||
sha, sha1, md5
|
||||
|
||||
## Copyright (C) 1999-2003 Landon Curt Noll
|
||||
## Copyright (C) 1999-2006 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
|
||||
@@ -53,8 +53,8 @@ SEE ALSO
|
||||
## 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.4 $
|
||||
## @(#) $Id: hash,v 29.4 2006/05/07 07:25:46 chongo Exp $
|
||||
## @(#) $Revision: 29.5 $
|
||||
## @(#) $Id: hash,v 29.5 2006/06/22 23:49:22 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/hash,v $
|
||||
##
|
||||
## Under source code control: 1996/03/12 23:10:01
|
||||
|
36
help/help
36
help/help
@@ -51,15 +51,6 @@ following topics:
|
||||
|
||||
full all of the above (in the above order)
|
||||
|
||||
You can also ask for help on a particular function name. For example,
|
||||
|
||||
help asinh
|
||||
help round
|
||||
|
||||
or on a particular symbol such as:
|
||||
|
||||
help =
|
||||
|
||||
For example:
|
||||
|
||||
help usage
|
||||
@@ -71,6 +62,27 @@ without invoking any startup code by running calc as follows:
|
||||
|
||||
where 'topic' is one of the topics listed above.
|
||||
|
||||
You can also ask for help on a particular builtin function name. For example:
|
||||
|
||||
help asinh
|
||||
help round
|
||||
|
||||
See:
|
||||
|
||||
help builtin
|
||||
|
||||
for a list of builtin functions.
|
||||
|
||||
Some calc operators have their own help pages:
|
||||
|
||||
help =
|
||||
help ->
|
||||
help *
|
||||
help .
|
||||
help %
|
||||
help //
|
||||
help #
|
||||
|
||||
If the -m mode disallows opening files for reading or execution of programs,
|
||||
then the help facility will be disabled. See:
|
||||
|
||||
@@ -103,7 +115,7 @@ as the same effect as:
|
||||
|
||||
custom("help", "anything");
|
||||
|
||||
## Copyright (C) 1999 Landon Curt Noll
|
||||
## Copyright (C) 1999-2007 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
|
||||
@@ -119,8 +131,8 @@ as the same effect as:
|
||||
## 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: help,v 29.3 2000/06/07 14:02:33 chongo Exp $
|
||||
## @(#) $Revision: 29.4 $
|
||||
## @(#) $Id: help,v 29.4 2007/02/07 00:30:04 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/help,v $
|
||||
##
|
||||
## Under source code control: 1991/07/21 04:37:20
|
||||
|
@@ -29,7 +29,7 @@ EXAMPLE
|
||||
1 4/3 18/11 48/25 0
|
||||
|
||||
LIMITS
|
||||
The number of arguments is not to exceed 100.
|
||||
The number of arguments is not to exceed 1024.
|
||||
|
||||
LINK LIBRARY
|
||||
none
|
||||
@@ -37,7 +37,7 @@ LINK LIBRARY
|
||||
SEE ALSO
|
||||
avg
|
||||
|
||||
## Copyright (C) 1999 Landon Curt Noll
|
||||
## Copyright (C) 1999-2006 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
|
||||
@@ -53,8 +53,8 @@ SEE ALSO
|
||||
## 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: hmean,v 29.3 2006/05/07 07:25:46 chongo Exp $
|
||||
## @(#) $Revision: 29.4 $
|
||||
## @(#) $Id: hmean,v 29.4 2006/06/22 23:49:22 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/hmean,v $
|
||||
##
|
||||
## Under source code control: 1995/12/18 03:30:59
|
||||
|
@@ -56,9 +56,10 @@ LINK LIBRARY
|
||||
none
|
||||
|
||||
SEE ALSO
|
||||
append, delete, islist, list, pop, push, remove, rsearch, search, size
|
||||
append, delete, islist, pop, push, remove, rsearch, search,
|
||||
select, size
|
||||
|
||||
## Copyright (C) 1999 Landon Curt Noll
|
||||
## Copyright (C) 1999-2006 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
|
||||
@@ -74,8 +75,8 @@ SEE ALSO
|
||||
## 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: insert,v 29.3 2006/05/07 07:25:46 chongo Exp $
|
||||
## @(#) $Revision: 29.4 $
|
||||
## @(#) $Id: insert,v 29.4 2006/06/25 22:16:55 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/insert,v $
|
||||
##
|
||||
## Under source code control: 1994/03/19 03:13:18
|
||||
|
@@ -34,7 +34,7 @@ LIMITS
|
||||
none
|
||||
|
||||
LINK LIBRARY
|
||||
none - XXX ???
|
||||
none
|
||||
|
||||
SEE ALSO
|
||||
blk, blocks, blkfree,
|
||||
@@ -43,7 +43,7 @@ SEE ALSO
|
||||
isobjtype, isodd, isprime, isrand, israndom, isreal, isrel,
|
||||
issimple, issq, isstr, istype
|
||||
|
||||
## Copyright (C) 1999 Landon Curt Noll
|
||||
## Copyright (C) 1999-2006 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
|
||||
@@ -59,8 +59,8 @@ SEE ALSO
|
||||
## 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: isblk,v 29.3 2006/05/07 07:25:46 chongo Exp $
|
||||
## @(#) $Revision: 29.4 $
|
||||
## @(#) $Id: isblk,v 29.4 2006/06/25 22:16:55 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/isblk,v $
|
||||
##
|
||||
## Under source code control: 1997/04/06 03:03:23
|
||||
|
@@ -34,7 +34,7 @@ LIMITS
|
||||
none
|
||||
|
||||
LINK LIBRARY
|
||||
none - XXX ?
|
||||
none
|
||||
|
||||
SEE ALSO
|
||||
define, undefine,
|
||||
@@ -43,7 +43,7 @@ SEE ALSO
|
||||
isobjtype, isodd, isprime, isrand, israndom, isreal, isrel,
|
||||
issimple, issq, isstr, istype
|
||||
|
||||
## Copyright (C) 1999 Landon Curt Noll
|
||||
## Copyright (C) 1999-2006 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
|
||||
@@ -59,8 +59,8 @@ SEE ALSO
|
||||
## 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: isdefined,v 29.3 2006/05/07 07:25:46 chongo Exp $
|
||||
## @(#) $Revision: 29.4 $
|
||||
## @(#) $Id: isdefined,v 29.4 2006/06/25 22:16:55 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/isdefined,v $
|
||||
##
|
||||
## Under source code control: 1997/04/05 14:10:17
|
||||
|
19
help/islist
19
help/islist
@@ -25,14 +25,15 @@ LINK LIBRARY
|
||||
none
|
||||
|
||||
SEE ALSO
|
||||
append, delete, insert, islist, pop, push, remove, rsearch,
|
||||
search, size, list,
|
||||
isassoc, isatty, isblk, isconfig, isdefined, iserror, iseven, isfile,
|
||||
ishash, isident, isint, ismat, ismult, isnull, isnum, isobj,
|
||||
isobjtype, isodd, isprime, isrand, israndom, isreal, isrel,
|
||||
issimple, issq, isstr, istype
|
||||
append, delete, insert, pop, push, remove, rsearch, search,
|
||||
select, size,
|
||||
|
||||
## Copyright (C) 1999 Landon Curt Noll
|
||||
isassoc, isatty, isblk, isconfig, isdefined, iserror, iseven, isfile,
|
||||
ishash, isident, isint, ismat, ismult, isnull, isnum, isobj,
|
||||
isobjtype, isodd, isprime, isrand, israndom, isreal, isrel,
|
||||
issimple, issq, isstr, istype
|
||||
|
||||
## Copyright (C) 1999-2006 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
|
||||
@@ -48,8 +49,8 @@ SEE ALSO
|
||||
## 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: islist,v 29.3 2006/05/07 07:25:46 chongo Exp $
|
||||
## @(#) $Revision: 29.4 $
|
||||
## @(#) $Id: islist,v 29.4 2006/06/25 22:16:55 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/islist,v $
|
||||
##
|
||||
## Under source code control: 1994/03/19 03:13:19
|
||||
|
@@ -25,7 +25,7 @@ LIMITS
|
||||
none
|
||||
|
||||
LINK LIBRARY
|
||||
none - XXX ???
|
||||
none
|
||||
|
||||
SEE ALSO
|
||||
obj,
|
||||
@@ -34,7 +34,7 @@ SEE ALSO
|
||||
isodd, isprime, isrand, israndom, isreal, isrel,
|
||||
issimple, issq, isstr, istype
|
||||
|
||||
## Copyright (C) 1999 Landon Curt Noll
|
||||
## Copyright (C) 1999-2006 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
|
||||
@@ -50,8 +50,8 @@ SEE ALSO
|
||||
## 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: isobjtype,v 29.3 2006/05/07 07:25:46 chongo Exp $
|
||||
## @(#) $Revision: 29.4 $
|
||||
## @(#) $Id: isobjtype,v 29.4 2006/06/25 22:16:55 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/isobjtype,v $
|
||||
##
|
||||
## Under source code control: 1997/04/05 14:10:17
|
||||
|
13
help/isprime
13
help/isprime
@@ -45,13 +45,10 @@ LINK LIBRARY
|
||||
FLAG zisprime(ZVALUE x) (return 1 if prime, 0 not prime, -1 if >= 2^32)
|
||||
|
||||
SEE ALSO
|
||||
factor, lfactor, nextprime, prevprime, pfact, pix,
|
||||
isassoc, isatty, isblk, isconfig, isdefined, iserror, iseven, isfile,
|
||||
ishash, isident, isint, islist, ismat, ismult, isnull, isnum, isobj,
|
||||
isobjtype, isodd, isrand, israndom, isreal, isrel,
|
||||
issimple, issq, isstr, istype
|
||||
factor, lfactor, nextcand, nextprime, prevcand, prevprime,
|
||||
pfact, pix, ptest
|
||||
|
||||
## Copyright (C) 1999 Landon Curt Noll
|
||||
## Copyright (C) 1999-2006 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
|
||||
@@ -67,8 +64,8 @@ SEE ALSO
|
||||
## 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: isprime,v 29.3 2006/05/07 07:25:46 chongo Exp $
|
||||
## @(#) $Revision: 29.4 $
|
||||
## @(#) $Id: isprime,v 29.4 2006/06/25 22:16:55 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/isprime,v $
|
||||
##
|
||||
## Under source code control: 1994/10/21 02:21:29
|
||||
|
@@ -13,8 +13,6 @@ DESCRIPTION
|
||||
Determine if x is a Blum-Blum-Shub pseudo-random number generator state.
|
||||
This function will return 1 if x is a file, 0 otherwise.
|
||||
|
||||
XXX - the interface to the Blum generator has not been not written.
|
||||
|
||||
EXAMPLE
|
||||
; a = srandom(0)
|
||||
; print israndom(a), israndom(0);
|
||||
@@ -33,7 +31,7 @@ SEE ALSO
|
||||
isobjtype, isodd, isprime, isrand, isreal, isrel,
|
||||
issimple, issq, isstr, istype
|
||||
|
||||
## Copyright (C) 1999 Landon Curt Noll
|
||||
## Copyright (C) 1999-2006 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
|
||||
@@ -49,8 +47,8 @@ SEE ALSO
|
||||
## 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: israndom,v 29.3 2006/05/07 07:25:46 chongo Exp $
|
||||
## @(#) $Revision: 29.4 $
|
||||
## @(#) $Id: israndom,v 29.4 2006/06/25 22:16:55 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/israndom,v $
|
||||
##
|
||||
## Under source code control: 1995/11/11 05:09:41
|
||||
|
8
help/lcm
8
help/lcm
@@ -21,7 +21,7 @@ EXAMPLE
|
||||
-120 79.2 2
|
||||
|
||||
LIMITS
|
||||
none
|
||||
The number of arguments is not to exceed 1024.
|
||||
|
||||
LINK LIBRARY
|
||||
NUMBER *qlcm(NUMBER *x1, NUMBER *x2)
|
||||
@@ -29,7 +29,7 @@ LINK LIBRARY
|
||||
SEE ALSO
|
||||
gcd
|
||||
|
||||
## Copyright (C) 1999 Landon Curt Noll
|
||||
## Copyright (C) 1999-2006 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
|
||||
@@ -45,8 +45,8 @@ SEE ALSO
|
||||
## 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: lcm,v 29.3 2006/05/07 07:25:46 chongo Exp $
|
||||
## @(#) $Revision: 29.4 $
|
||||
## @(#) $Id: lcm,v 29.4 2006/06/22 23:49:22 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/lcm,v $
|
||||
##
|
||||
## Under source code control: 1995/10/05 04:52:26
|
||||
|
@@ -40,7 +40,8 @@ LINK LIBRARY
|
||||
FULL zlowfactor(ZVALUE z, long count)
|
||||
|
||||
SEE ALSO
|
||||
factor
|
||||
factor, isprime, nextcand, nextprime, prevcand, prevprime,
|
||||
pfact, pix, ptest
|
||||
|
||||
## Copyright (C) 1999-2006 Landon Curt Noll
|
||||
##
|
||||
@@ -58,8 +59,8 @@ SEE ALSO
|
||||
## 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.4 $
|
||||
## @(#) $Id: lfactor,v 29.4 2006/06/01 11:36:02 chongo Exp $
|
||||
## @(#) $Revision: 29.5 $
|
||||
## @(#) $Id: lfactor,v 29.5 2006/06/25 22:16:55 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/lfactor,v $
|
||||
##
|
||||
## Under source code control: 1995/12/18 12:34:57
|
||||
|
10
help/mat
10
help/mat
@@ -410,9 +410,9 @@ LINK LIBRARY
|
||||
n/a
|
||||
|
||||
SEE ALSO
|
||||
ismat, matdim, matmax, matmin, mattrans, mattrace, matsum, det, inverse,
|
||||
isident, test, config, search, rsearch, reverse, copy, blkcpy, dp, cp,
|
||||
randperm, sort
|
||||
ismat, matdim, matmax, matmin, mattrans, mattrace, matsum, matfill,
|
||||
det, inverse, isident, test, config, search, rsearch, reverse, copy,
|
||||
blkcpy, dp, cp, randperm, sort
|
||||
|
||||
## Copyright (C) 1999-2006 Landon Curt Noll
|
||||
##
|
||||
@@ -430,8 +430,8 @@ SEE ALSO
|
||||
## 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.6 $
|
||||
## @(#) $Id: mat,v 29.6 2006/06/11 07:25:14 chongo Exp $
|
||||
## @(#) $Revision: 29.7 $
|
||||
## @(#) $Id: mat,v 29.7 2006/06/25 22:16:55 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/mat,v $
|
||||
##
|
||||
## Under source code control: 1991/07/21 04:37:22
|
||||
|
10
help/matdim
10
help/matdim
@@ -24,9 +24,11 @@ LINK LIBRARY
|
||||
none
|
||||
|
||||
SEE ALSO
|
||||
XXX - fill in
|
||||
mat, ismat, matmax, matmin, mattrans, mattrace, matsum, matfill,
|
||||
det, inverse, isident, test, config, search, rsearch, reverse, copy,
|
||||
blkcpy, dp, cp, randperm, sort
|
||||
|
||||
## Copyright (C) 1999 Landon Curt Noll
|
||||
## Copyright (C) 1999-2006 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
|
||||
@@ -42,8 +44,8 @@ SEE ALSO
|
||||
## 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: matdim,v 29.3 2006/05/07 07:25:46 chongo Exp $
|
||||
## @(#) $Revision: 29.4 $
|
||||
## @(#) $Id: matdim,v 29.4 2006/06/25 22:16:55 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/matdim,v $
|
||||
##
|
||||
## Under source code control: 1995/10/25 04:03:45
|
||||
|
10
help/matfill
10
help/matfill
@@ -37,9 +37,11 @@ LINK LIBRARY
|
||||
none
|
||||
|
||||
SEE ALSO
|
||||
XXX - fill in
|
||||
mat, ismat, matdim, matmax, matmin, mattrans, mattrace, matsum,
|
||||
det, inverse, isident, test, config, search, rsearch, reverse, copy,
|
||||
blkcpy, dp, cp, randperm, sort
|
||||
|
||||
## Copyright (C) 1999 Landon Curt Noll
|
||||
## Copyright (C) 1999-2006 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
|
||||
@@ -55,8 +57,8 @@ SEE ALSO
|
||||
## 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: matfill,v 29.3 2006/05/07 07:25:46 chongo Exp $
|
||||
## @(#) $Revision: 29.4 $
|
||||
## @(#) $Id: matfill,v 29.4 2006/06/25 22:16:55 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/matfill,v $
|
||||
##
|
||||
## Under source code control: 1995/10/25 04:03:45
|
||||
|
10
help/matmax
10
help/matmax
@@ -26,9 +26,11 @@ LINK LIBRARY
|
||||
none
|
||||
|
||||
SEE ALSO
|
||||
XXX - fill in
|
||||
mat, ismat, matdim, matmin, mattrans, mattrace, matsum, matfill,
|
||||
det, inverse, isident, test, config, search, rsearch, reverse, copy,
|
||||
blkcpy, dp, cp, randperm, sort
|
||||
|
||||
## Copyright (C) 1999 Landon Curt Noll
|
||||
## Copyright (C) 1999-2006 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
|
||||
@@ -44,8 +46,8 @@ SEE ALSO
|
||||
## 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: matmax,v 29.3 2006/05/07 07:25:46 chongo Exp $
|
||||
## @(#) $Revision: 29.4 $
|
||||
## @(#) $Id: matmax,v 29.4 2006/06/25 22:16:55 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/matmax,v $
|
||||
##
|
||||
## Under source code control: 1995/10/25 04:03:45
|
||||
|
10
help/matmin
10
help/matmin
@@ -26,9 +26,11 @@ LINK LIBRARY
|
||||
none
|
||||
|
||||
SEE ALSO
|
||||
XXX - fill in
|
||||
mat, ismat, matdim, matmax, mattrans, mattrace, matsum, matfill,
|
||||
det, inverse, isident, test, config, search, rsearch, reverse, copy,
|
||||
blkcpy, dp, cp, randperm, sort
|
||||
|
||||
## Copyright (C) 1999 Landon Curt Noll
|
||||
## Copyright (C) 1999-2006 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
|
||||
@@ -44,8 +46,8 @@ SEE ALSO
|
||||
## 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: matmin,v 29.3 2006/05/07 07:25:46 chongo Exp $
|
||||
## @(#) $Revision: 29.4 $
|
||||
## @(#) $Id: matmin,v 29.4 2006/06/25 22:16:55 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/matmin,v $
|
||||
##
|
||||
## Under source code control: 1995/10/25 04:03:45
|
||||
|
10
help/matsum
10
help/matsum
@@ -25,9 +25,11 @@ LINK LIBRARY
|
||||
void matsum(MATRIX *m, VALUE *vres);
|
||||
|
||||
SEE ALSO
|
||||
XXX - fill in
|
||||
mat, ismat, matdim, matmax, matmin, mattrans, mattrace, matfill,
|
||||
det, inverse, isident, test, config, search, rsearch, reverse, copy,
|
||||
blkcpy, dp, cp, randperm, sort
|
||||
|
||||
## Copyright (C) 1999 Landon Curt Noll
|
||||
## Copyright (C) 1999-2006 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
|
||||
@@ -43,8 +45,8 @@ SEE ALSO
|
||||
## 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: matsum,v 29.3 2006/05/07 07:25:46 chongo Exp $
|
||||
## @(#) $Revision: 29.4 $
|
||||
## @(#) $Id: matsum,v 29.4 2006/06/25 22:16:55 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/matsum,v $
|
||||
##
|
||||
## Under source code control: 1995/10/25 04:03:46
|
||||
|
@@ -31,9 +31,11 @@ LINK LIBRARY
|
||||
MATRIX *mattrans(MATRIX *m)
|
||||
|
||||
SEE ALSO
|
||||
XXX - fill in
|
||||
mat, ismat, matdim, matmax, matmin, mattrace, matsum, matfill,
|
||||
det, inverse, isident, test, config, search, rsearch, reverse, copy,
|
||||
blkcpy, dp, cp, randperm, sort
|
||||
|
||||
## Copyright (C) 1999 Landon Curt Noll
|
||||
## Copyright (C) 1999-2006 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
|
||||
@@ -49,8 +51,8 @@ SEE ALSO
|
||||
## 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: mattrans,v 29.3 2006/05/07 07:25:46 chongo Exp $
|
||||
## @(#) $Revision: 29.4 $
|
||||
## @(#) $Id: mattrans,v 29.4 2006/06/25 22:16:55 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/mattrans,v $
|
||||
##
|
||||
## Under source code control: 1995/10/25 04:03:46
|
||||
|
8
help/max
8
help/max
@@ -62,7 +62,7 @@ EXAMPLE
|
||||
3
|
||||
|
||||
LIMITS
|
||||
The number of arguments is not to exceed 100.
|
||||
The number of arguments is not to exceed 1024.
|
||||
|
||||
LINK LIBRARY
|
||||
NUMBER *qmax(NUMBER *x1, NUMBER *x2)
|
||||
@@ -70,7 +70,7 @@ LINK LIBRARY
|
||||
SEE ALSO
|
||||
max, obj
|
||||
|
||||
## Copyright (C) 1999 Landon Curt Noll
|
||||
## Copyright (C) 1999-2006 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
|
||||
@@ -86,8 +86,8 @@ SEE ALSO
|
||||
## 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: max,v 29.3 2006/05/07 07:25:46 chongo Exp $
|
||||
## @(#) $Revision: 29.4 $
|
||||
## @(#) $Id: max,v 29.4 2006/06/22 23:49:22 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/max,v $
|
||||
##
|
||||
## Under source code control: 1995/10/05 04:52:27
|
||||
|
10
help/min
10
help/min
@@ -62,15 +62,15 @@ EXAMPLE
|
||||
1
|
||||
|
||||
LIMITS
|
||||
The number of arguments is not to exceed 100.
|
||||
The number of arguments is not to exceed 1024.
|
||||
|
||||
LINK LIBRARY
|
||||
NUMBER *qmin(NUMBER *x1, NUMBER *x2)
|
||||
|
||||
SEE ALSO
|
||||
max, obj
|
||||
max, obj, sum, ssq
|
||||
|
||||
## Copyright (C) 1999 Landon Curt Noll
|
||||
## Copyright (C) 1999-2006 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
|
||||
@@ -86,8 +86,8 @@ SEE ALSO
|
||||
## 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: min,v 29.3 2006/05/07 07:25:46 chongo Exp $
|
||||
## @(#) $Revision: 29.4 $
|
||||
## @(#) $Id: min,v 29.4 2006/06/22 23:49:22 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/min,v $
|
||||
##
|
||||
## Under source code control: 1995/10/05 04:52:27
|
||||
|
72
help/mod
72
help/mod
@@ -23,6 +23,24 @@ TYPES
|
||||
return number
|
||||
|
||||
DESCRIPTION
|
||||
The expression:
|
||||
|
||||
x % y
|
||||
|
||||
is equivalent to call:
|
||||
|
||||
mod(x, y)
|
||||
|
||||
The function:
|
||||
|
||||
mod(x, y, rnd)
|
||||
|
||||
is equivalent to:
|
||||
|
||||
config("mod", rnd), x % y
|
||||
|
||||
except that the global config("mod") value does not change.
|
||||
|
||||
If x is real or complex and y is zero, mod(x, y, rnd) returns x.
|
||||
|
||||
If x is complex, mod(x, y, rnd) returns
|
||||
@@ -32,18 +50,16 @@ DESCRIPTION
|
||||
|
||||
If x/y is an integer mod(x, y, rnd) returns zero.
|
||||
|
||||
If x/y is not an integer, mod(x, y, rnd) returns one of the two numbers
|
||||
r for which for some integer q, x = q * v + r and abs(r) < abs(y).
|
||||
Which of the two numbers is returned is controlled by rnd.
|
||||
If x/y is not an integer, mod(x, y, rnd) returns one of the two
|
||||
values of r for which for some integer q exists such that x = q * y + r
|
||||
and abs(r) < abs(y). Which of the two values or r that is returned is
|
||||
controlled by rnd.
|
||||
|
||||
If bit 4 of rnd is set (e.g. if 16 <= rnd < 32) abs(r) <= abs(y)/2;
|
||||
this uniquely determines r if abs(r) < abs(y)/2. If bit 4 of rnd is
|
||||
set and abs(r) = abs(y)/2, or if bit 4 of r is not set, the result for
|
||||
r depends on rnd as in the following table:
|
||||
|
||||
(Blank entries indicate that the description would be complicated
|
||||
and probably not of much interest.)
|
||||
|
||||
rnd & 15 sign of r parity of q
|
||||
|
||||
0 sgn(y)
|
||||
@@ -63,26 +79,36 @@ DESCRIPTION
|
||||
14 even if x > 0, otherwise odd
|
||||
15 odd if x > 0, otherwise even
|
||||
|
||||
This dependence on rnd is consistent with quo(x, y, rnd) and
|
||||
appr(x, y, rnd) in that for any real x and y and any integer rnd,
|
||||
NOTE: Blank entries in the table above indicate that the
|
||||
description would be complicated and probably not of
|
||||
much interest.
|
||||
|
||||
x = y * quo(x, y, rnd) + mod(x, y, rnd).
|
||||
mod(x, y, rnd) = x - appr(x, y, rnd)
|
||||
The C language method of modulus and integer division is:
|
||||
|
||||
If y and rnd are fixed and mod(x, y, rnd) is to be considered as
|
||||
a canonical residue of x modulo y, bits 1 and 3 of rnd should be
|
||||
zero: if 0 <= rnd < 32, it is only for rnd = 0, 1, 4, 5, 16, 17,
|
||||
20, or 21, that the set of possible values for mod(x, y, rnd)
|
||||
form an interval of length y, and for any x1, x2,
|
||||
config("quomod", 2)
|
||||
config("quo", 2)
|
||||
config("mod", 2)
|
||||
|
||||
mod(x1, y, rnd) = mod(x2, y, rnd)
|
||||
This dependence on rnd is consistent with quo(x, y, rnd) and
|
||||
appr(x, y, rnd) in that for any real x and y and any integer rnd,
|
||||
|
||||
is equivalent to:
|
||||
x = y * quo(x, y, rnd) + mod(x, y, rnd).
|
||||
mod(x, y, rnd) = x - appr(x, y, rnd)
|
||||
|
||||
x1 is congruent to x2 modulo y.
|
||||
If y and rnd are fixed and mod(x, y, rnd) is to be considered as
|
||||
a canonical residue of x % y, bits 1 and 3 of rnd should be
|
||||
zero: if 0 <= rnd < 32, it is only for rnd = 0, 1, 4, 5, 16, 17,
|
||||
20, or 21, that the set of possible values for mod(x, y, rnd)
|
||||
form an interval of length y, and for any x1, x2,
|
||||
|
||||
This is particularly relevant when working with the ring of
|
||||
integers modulo an integer y.
|
||||
mod(x1, y, rnd) = mod(x2, y, rnd)
|
||||
|
||||
is equivalent to:
|
||||
|
||||
x1 is congruent to x2 modulo y.
|
||||
|
||||
This is particularly relevant when working with the ring of
|
||||
integers modulo an integer y.
|
||||
|
||||
EXAMPLE
|
||||
; print mod(11,5,0), mod(11,5,1), mod(-11,5,2), mod(-11,-5,3)
|
||||
@@ -111,7 +137,7 @@ LINK LIBRARY
|
||||
SEE ALSO
|
||||
quo, quomod, //, %
|
||||
|
||||
## Copyright (C) 1999 Landon Curt Noll
|
||||
## Copyright (C) 1999-2006 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
|
||||
@@ -127,8 +153,8 @@ SEE ALSO
|
||||
## 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: mod,v 29.3 2006/05/07 07:25:46 chongo Exp $
|
||||
## @(#) $Revision: 29.5 $
|
||||
## @(#) $Id: mod,v 29.5 2006/06/24 19:06:58 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/mod,v $
|
||||
##
|
||||
## Under source code control: 1995/09/18 02:09:31
|
||||
|
10
help/name
10
help/name
@@ -26,19 +26,19 @@ EXAMPLE
|
||||
; name(f)
|
||||
"/tmp/beta"
|
||||
|
||||
; names(files(0))
|
||||
; name(files(0))
|
||||
"(stdin)"
|
||||
|
||||
LIMITS
|
||||
none
|
||||
|
||||
LINK LIBRARY
|
||||
none - XXX ???
|
||||
none
|
||||
|
||||
SEE ALSO
|
||||
blk, fopen
|
||||
|
||||
## Copyright (C) 1999 Landon Curt Noll
|
||||
## Copyright (C) 1999-2006 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
|
||||
@@ -54,8 +54,8 @@ SEE ALSO
|
||||
## 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: name,v 29.3 2006/05/07 07:25:46 chongo Exp $
|
||||
## @(#) $Revision: 29.5 $
|
||||
## @(#) $Id: name,v 29.5 2006/08/20 15:01:57 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/name,v $
|
||||
##
|
||||
## Under source code control: 1997/04/05 14:12:44
|
||||
|
@@ -74,9 +74,10 @@ LINK LIBRARY
|
||||
ZVALUE *cand)
|
||||
|
||||
SEE ALSO
|
||||
prevcand, ptest
|
||||
factor, isprime, lfactor, nextprime, prevcand, prevprime,
|
||||
pfact, pix, ptest
|
||||
|
||||
## Copyright (C) 1999 Landon Curt Noll
|
||||
## Copyright (C) 1999-2006 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
|
||||
@@ -92,8 +93,8 @@ SEE ALSO
|
||||
## 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: nextcand,v 29.3 2006/05/07 07:25:46 chongo Exp $
|
||||
## @(#) $Revision: 29.4 $
|
||||
## @(#) $Id: nextcand,v 29.4 2006/06/25 22:16:55 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/nextcand,v $
|
||||
##
|
||||
## Under source code control: 1996/02/25 00:27:43
|
||||
|
@@ -33,9 +33,10 @@ LINK LIBRARY
|
||||
FULL znprime(ZVALUE z)
|
||||
|
||||
SEE ALSO
|
||||
prevprime
|
||||
factor, isprime, lfactor, nextcand, prevcand, prevprime,
|
||||
pfact, pix, ptest
|
||||
|
||||
## Copyright (C) 1999 Landon Curt Noll
|
||||
## Copyright (C) 1999-2006 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
|
||||
@@ -51,8 +52,8 @@ SEE ALSO
|
||||
## 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: nextprime,v 29.3 2006/05/07 07:25:46 chongo Exp $
|
||||
## @(#) $Revision: 29.4 $
|
||||
## @(#) $Id: nextprime,v 29.4 2006/06/25 22:16:55 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/nextprime,v $
|
||||
##
|
||||
## Under source code control: 1995/12/18 12:34:57
|
||||
|
@@ -66,7 +66,7 @@ EXAMPLE
|
||||
27
|
||||
|
||||
LIMITS
|
||||
The number of arguments is not to exceed 100.
|
||||
The number of arguments is not to exceed 1024.
|
||||
|
||||
LINK LIBRARY
|
||||
none
|
||||
@@ -74,7 +74,7 @@ LINK LIBRARY
|
||||
SEE ALSO
|
||||
isnull, test
|
||||
|
||||
## Copyright (C) 1999 Landon Curt Noll
|
||||
## Copyright (C) 1999-2006 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
|
||||
@@ -90,8 +90,8 @@ SEE ALSO
|
||||
## 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: null,v 29.3 2006/05/07 07:25:46 chongo Exp $
|
||||
## @(#) $Revision: 29.4 $
|
||||
## @(#) $Id: null,v 29.4 2006/06/22 23:49:22 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/null,v $
|
||||
##
|
||||
## Under source code control: 1996/03/12 23:10:01
|
||||
|
@@ -35,9 +35,9 @@ LINK LIBRARY
|
||||
void zperm(NUMBER x, y, *ret)
|
||||
|
||||
SEE ALSO
|
||||
comb, fact
|
||||
comb, fact, randperm
|
||||
|
||||
## Copyright (C) 1999 Landon Curt Noll
|
||||
## Copyright (C) 1999-2006 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
|
||||
@@ -53,8 +53,8 @@ SEE ALSO
|
||||
## 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: perm,v 29.3 2006/05/07 07:25:46 chongo Exp $
|
||||
## @(#) $Revision: 29.4 $
|
||||
## @(#) $Id: perm,v 29.4 2006/06/25 22:16:55 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/perm,v $
|
||||
##
|
||||
## Under source code control: 1994/10/20 04:03:02
|
||||
|
@@ -24,9 +24,10 @@ LINK LIBRARY
|
||||
void zpfact(ZVALUE z, ZVALUE *dest)
|
||||
|
||||
SEE ALSO
|
||||
fact, lcmfact
|
||||
factor, isprime, lfactor, nextcand, nextprime, prevcand, prevprime,
|
||||
pix, ptest, fact, lcmfact
|
||||
|
||||
## Copyright (C) 1999 Landon Curt Noll
|
||||
## Copyright (C) 1999-2006 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
|
||||
@@ -42,8 +43,8 @@ SEE ALSO
|
||||
## 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: pfact,v 29.3 2006/05/07 07:25:46 chongo Exp $
|
||||
## @(#) $Revision: 29.4 $
|
||||
## @(#) $Id: pfact,v 29.4 2006/06/25 22:16:55 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/pfact,v $
|
||||
##
|
||||
## Under source code control: 1995/12/18 12:34:57
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user