mirror of
https://github.com/lcn2/calc.git
synced 2025-08-19 01:13:27 +03:00
Compare commits
3 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
66c3d26611 | ||
|
b4952bd44f | ||
|
0d06d90751 |
272
CHANGES
272
CHANGES
@@ -1,4 +1,106 @@
|
||||
The following are the changes from calc version 2.11.7.0 to date:
|
||||
The following are the changes from calc version 2.11.9 to date:
|
||||
|
||||
Fixed calc man page examples to move -f to the end of the line.
|
||||
Thanks goes to Michael Somos <somos at grail dot cba dot csuohio
|
||||
dot edu> for pointing this out.
|
||||
|
||||
Linux and gcc now compiled with -Wall -W -Wno-comment.
|
||||
|
||||
Fixed a post increment that was reported by R. Trinler <trinler at
|
||||
web dot de> and fixed by Ernest Bowen <ernie at turing dot une dot
|
||||
edu dot au>.
|
||||
|
||||
Fixed pi.cal to not depend on the buggy pre-2.11.9 post increment
|
||||
behavior.
|
||||
|
||||
Added config("cygwin") to determine if calc was compiled under Cygwin.
|
||||
The config("cygwin") is a read-only configuration value that is 1
|
||||
when calc was compiled under Cygwin and 0 otherwise. Regression
|
||||
tests 949 and 950 are skipped when config("cygwin") is true.
|
||||
|
||||
The Makefile variable HAVE_NO_IMPLICIT is empty by default so that
|
||||
the Makefile will test if the compiler has a -Wno-implicit flag.
|
||||
|
||||
Added HAVE_UNUSED Makefile variable. If HAVE_UNUSED is empty,
|
||||
then the Makefile will run the have_unused program to determine
|
||||
if the unused attribute is supported. If HAVE_UNUSED is set to
|
||||
-DHAVE_NO_UNUSED, then the unused attribute will not be used.
|
||||
|
||||
The Makefile builds have_unused.h which defines, if the unused
|
||||
attribute is supported:
|
||||
|
||||
#define HAVE_UNUSED /* yes */
|
||||
#define UNUSED __attribute__((unused)) /* yes */
|
||||
|
||||
or defines, if the unused is not supported (or if the Makefile
|
||||
variable is HAVE_UNUSED= -DHAVE_NO_UNUSED):
|
||||
|
||||
#undef HAVE_UNUSED /* no */
|
||||
#define UNUSED /* no */
|
||||
|
||||
Fixed numerous warnings about comparison between signed and unsigned
|
||||
value warnings and unused parameter warnings in version.c, zrand.c,
|
||||
string.c, shs1.c, shs.c, qtrans.c, qmath.c, qfunc.c, md5.c, matfunc.c,
|
||||
hist.c, file.c, const.c, blkcpy.c, seed.c, opcodes.c, func.c, qio.c,
|
||||
zrandom.c, custom/c_argv.c, custom/c_devnull.c, custom/c_help.c,
|
||||
custom/c_sysinfo.c, addop.c and calc.c.
|
||||
|
||||
Fixed some typos in this CHANGES file.
|
||||
|
||||
|
||||
The following are the changes from calc version 2.11.8.0 to 2.11.8.1:
|
||||
|
||||
Updated HOWTO.INSTALL to reflect the new RPM files.
|
||||
|
||||
Clarify that the internal hash as well as the hash builtin
|
||||
function used by calc, while based on the Fowler/Noll/Vo
|
||||
hash is NOT an FNV hash.
|
||||
|
||||
Made slight performance improvements to calc by an optimization of how
|
||||
calc's internal hash is computed. The "make chk" regression test
|
||||
runs about 1.5% faster (when compiled with -O3 on an AMD Athlon)
|
||||
NO_HASH_CPU_OPTIMIZATION is not defined. Calc's internal hash values
|
||||
have not changed. By default, NO_HASH_CPU_OPTIMIZATION is NOT defined
|
||||
and the slightly faster expression is used.
|
||||
|
||||
A slight modification of what was known as the "calc new standard"
|
||||
configuration (calc -n or config("all", "newstd")) is now the default
|
||||
calc configuration. The flag:
|
||||
|
||||
calc -O
|
||||
|
||||
was added to get the old classic calc configuration. The flag command
|
||||
line flag, -n, now does nothing. Use of -n is deprecated and may go
|
||||
away / be used for something else in the future.
|
||||
|
||||
The following table gives the summary of these changes:
|
||||
|
||||
pre v2.11.8 v2.11.8
|
||||
default pre v2.11.8 -O & oldstd v2.11.8
|
||||
and oldstd -n & newstd classic cfg default
|
||||
--------------------------------------------------------
|
||||
epsilon 1e-20 1e-10 1e-20 1e-20
|
||||
quo 2 2 2 2
|
||||
outround 2 24 2 24
|
||||
leadzero 0 1 0 1
|
||||
fullzero 0 1 0 0
|
||||
prompt > ; > ;
|
||||
more >> ;; >> ;;
|
||||
|
||||
With the exception of epsilon being 1e-20, and fullzero being unset,
|
||||
the new default calc config is like it was (pre-2.11.8) with calc -n /
|
||||
config("all", "newstd").
|
||||
|
||||
The new default config is the old classic config with outround being
|
||||
24, leadzero being set, and the prompts being ;'s.
|
||||
|
||||
Fixed a bug in the evaluation of tanh(1e-23) with an epsilon(1e-100).
|
||||
Thanks goes to Dmitry G. Baksheyev <bd at nbsp dot nsk dot su>
|
||||
for reporting the problem, and thanks goes to Ernest Bowen
|
||||
<ernie at turing dot une dot edu dot au> for the fix.
|
||||
|
||||
|
||||
The following are the changes from calc version 2.11.7.0 to 2.11.7.1:
|
||||
|
||||
Added support to build calc RPMs thanks to Petteri Kettunen
|
||||
<petterik at users dot sourceforge dot net>.
|
||||
@@ -185,7 +287,7 @@ The following are the changes from calc version 2.11.5.5 to 2.11.5.9:
|
||||
|
||||
Updated README.WINDOWS to include information on building with DJGPP.
|
||||
|
||||
The pld folks are building RPMs based on our calc distrbutions.
|
||||
The pld folks are building RPMs based on our calc distributions.
|
||||
See: ftp://ftp.pld.org.pl/dists/ra/PLD/i686/PLD/RPMS or
|
||||
http://ftp.pld.org.pl/dists/ra/PLD/i686/PLD/RPMS more information.
|
||||
We appreciate their work in this regard. In the next release, we
|
||||
@@ -267,7 +369,7 @@ The following are the changes from calc version 2.11.5t4.1 to 2.11.5t4.4:
|
||||
which calc will be installed. The calc install is performed under $T,
|
||||
the calc build is performed under /. The purpose for $T is to allow
|
||||
someone to install calc somewhere other than into the system area.
|
||||
For examplewhen forming the calc rpm, the Makefile is called with
|
||||
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
|
||||
@@ -275,13 +377,13 @@ The following are the changes from calc version 2.11.5t4.1 to 2.11.5t4.4:
|
||||
with T=$RPM_BUILD_ROOT.
|
||||
|
||||
Updated LIBRARY file with instructions related to -DCALC_SRC,
|
||||
the new default include file locatin and -lcustcalc.
|
||||
the new default include file location and -lcustcalc.
|
||||
|
||||
|
||||
The following are the changes from calc version 2.11.5t3 to 2.11.5t4:
|
||||
|
||||
The Makefile will now send both stdout and sterr to /dev/null
|
||||
when compiling hsrc intermeriates.
|
||||
The Makefile will now send both stdout and stderr to /dev/null
|
||||
when compiling hsrc intermediates.
|
||||
|
||||
The config("verbose_quit") value was restored to a default
|
||||
value of FALSE.
|
||||
@@ -328,7 +430,7 @@ The following are the changes from calc version 2.11.5t3 to 2.11.5t4:
|
||||
|
||||
The Makefile variable ${TOPDIR} is no longer used. In some places
|
||||
it has been replaced by a new Makefile variable ${SHAREDIR}. Some
|
||||
of the old TOPDIR functionality has beenn replaced by ${CSHAREDIR}.
|
||||
of the old TOPDIR functionality has been replaced by ${CSHAREDIR}.
|
||||
|
||||
The install rules no longer remove old obsolete files. We assume
|
||||
that these old files have long since vanished! :-)
|
||||
@@ -418,7 +520,7 @@ The following are the changes from calc version 2.11.5t0 to 2.11.5t1.1:
|
||||
|
||||
Added HAVE_MALLOC_H, HAVE_STDLIB_H, HAVE_STRING_H, HAVE_TIMES_H,
|
||||
HAVE_SYS_TIMES_H, HAVE_TIME_H, HAVE_SYS_TIME_H, HAVE_UNISTD_H
|
||||
and HAVE_URANDOM to the Makefile. If these symcols are empty,
|
||||
and HAVE_URANDOM to the Makefile. If these symbols are empty,
|
||||
then the Makefile looks for the appropriate system include file.
|
||||
If they are YES, then the Makefile will assume they exist.
|
||||
If they are NO, then the Makefile will assume they do not exist.
|
||||
@@ -439,7 +541,7 @@ The following are the changes from calc version 2.11.5t0 to 2.11.5t1.1:
|
||||
under the win32 directory.
|
||||
|
||||
Added FPOS_POS_BITS, OFF_T_BITS, DEV_BITS and INODE_BITS Makefile
|
||||
symbiols to allow one to force the size of a file position, file
|
||||
symbols to allow one to force the size of a file position, file
|
||||
offset, dev and inode value. Leaving these values blank will
|
||||
Makefile to determine their size.
|
||||
|
||||
@@ -591,7 +693,7 @@ The following are the changes from calc version 2.11.3t0 to 2.11.4:
|
||||
calc -q -i "define f(x) = x^2;"
|
||||
|
||||
To achieve this, the use of getopts() in calc.c has been dropped in
|
||||
favour of direct reading of the arguments produced by the shell.
|
||||
favor of direct reading of the arguments produced by the shell.
|
||||
In effect, until a "--" or "-s" or a calc command (recognized
|
||||
by not starting with '-') is encountered, the quotation signs in
|
||||
command lines like the above example are ignored. Dropping getopts()
|
||||
@@ -720,7 +822,7 @@ The following are the changes from calc version 2.11.3t0 to 2.11.4:
|
||||
|
||||
(11) The effect of config("trace", 8) which displays opcodes of
|
||||
functions as they are successfully defined has been restricted to
|
||||
functions defioed with explicit use of "define". Thus, it has been
|
||||
functions defined with explicit use of "define". Thus, it has been
|
||||
deactivated for the ephemeral functions used for evaluation of calc
|
||||
command lines or eval() functions.
|
||||
|
||||
@@ -859,7 +961,7 @@ The following are the changes from calc version 2.11.1 to 2.11.1t2.2:
|
||||
#! files calc shell script
|
||||
|
||||
Renamed 'help stdlib' to 'help resource'. The 'help stdlib' is
|
||||
aliased to 'help resource' for ard compatibility.
|
||||
aliased to 'help resource' for arg compatibility.
|
||||
|
||||
Renamed config("lib_debug") to config("resource_debug").
|
||||
The config("lib_debug") will have the same effect as
|
||||
@@ -889,7 +991,7 @@ The following are the changes from calc version 2.11.0t10 to 2.11.0t11:
|
||||
Misc code cleanup. Removed dead code. Removed trailing whitespace.
|
||||
Fixed whitespace to make the best use of 8 character tabs.
|
||||
|
||||
Fixed some bugs relaing to '// and %' in combination with some
|
||||
Fixed some bugs relating to '// and %' in combination with some
|
||||
of the the rounding modes based on a patch from Ernest Bowen
|
||||
<ernie at turing dot une dot edu dot au>.
|
||||
|
||||
@@ -899,7 +1001,7 @@ The following are the changes from calc version 2.11.0t10 to 2.11.0t11:
|
||||
|
||||
Minor typos fixed in regress.cal
|
||||
|
||||
Added 8500 test serise and test8500.cal to perform more extensive
|
||||
Added 8500 test series and test8500.cal to perform more extensive
|
||||
tests on // and % with various rounding modes.
|
||||
|
||||
The 'unused value ignored' messages now start with Line 999: instead
|
||||
@@ -1137,7 +1239,7 @@ The following are the changes from calc version 2.11.0t8.9.1 to 2.11.0t9.4.5:
|
||||
|
||||
Quit or abort executed
|
||||
|
||||
when a non-interactive ABORT, QUIT or EXIT is encounted. By default,
|
||||
when a non-interactive ABORT, QUIT or EXIT is encountered. By default,
|
||||
config("verbose_quit") is TRUE and the message is printed. If one does:
|
||||
|
||||
config("verbose_quit", 0)
|
||||
@@ -1276,11 +1378,11 @@ The following are the changes from calc version 2.11.0t8.9.1 to 2.11.0t9.4.5:
|
||||
by default is /usr/local/include. Include files previously installed
|
||||
directly under ${LIBDIR} will be removed.
|
||||
|
||||
Added the piforever() funcion to lib/pi.cal. It was written by
|
||||
Added the piforever() function to lib/pi.cal. It was written by
|
||||
Klaus Alexander Seistrup <klaus at seistrup dot dk> and was inspired by
|
||||
an algorithm conceived by Lambert Meertens. (See also the ABC
|
||||
Programmer's Handbook, by Geurts, Meertens & Pemberton, published
|
||||
by Prentice-Hall (UK) Ltd., 1990.) The piforever() funcion prints
|
||||
by Prentice-Hall (UK) Ltd., 1990.) The piforever() function prints
|
||||
digits of pi for as long as your memory and system uptime allows. :-)
|
||||
|
||||
Fixed the URLs found thruout the source and documentation which did
|
||||
@@ -1294,7 +1396,7 @@ The following are the changes from calc version 2.11.0t8.9.1 to 2.11.0t9.4.5:
|
||||
|
||||
+ comma operator
|
||||
+ separator of arguments in a function call
|
||||
+ separator of arguments in a defintion
|
||||
+ separator of arguments in a definition
|
||||
etc.
|
||||
|
||||
The expression (mat A[2]), B[3] returns B[3], assuming B already
|
||||
@@ -1337,7 +1439,7 @@ The following are the changes from calc version 2.11.0t8.9.1 to 2.11.0t9.4.5:
|
||||
of including longlong.h will help detect when a system can deal with
|
||||
'long long' but not '%lld' in printf. If a system with 'long long'
|
||||
uses '%ld' to print a 64 bit value, then l_format will be > 0;
|
||||
othewise if "%lld" is required, l_format will be < 0.
|
||||
otherwise if "%lld" is required, l_format will be < 0.
|
||||
|
||||
Added HAVE_STRDUP Makefile variable as well as the have_strdup.c
|
||||
program that forms the have_strdup.h file. The have_strdup.h file
|
||||
@@ -1346,7 +1448,7 @@ The following are the changes from calc version 2.11.0t8.9.1 to 2.11.0t9.4.5:
|
||||
the real strdup() function.
|
||||
|
||||
Calc no longer makes use of sys_errlist and sys_nerr. Some systems
|
||||
no longer suppor these values (even though they should from a
|
||||
no longer support these values (even though they should from a
|
||||
legacy prospective). Calc now relies on the fact that strerror()
|
||||
will return NULL of no such system error exists. System errors >=
|
||||
10000 will be considered calc errors instead. The Makefile symbol
|
||||
@@ -1365,7 +1467,7 @@ The following are the changes from calc version 2.11.0t8.9.1 to 2.11.0t9.4.5:
|
||||
to V_NOSUBTYPE thruout the source code.
|
||||
|
||||
Established a separate calc-bugs address from the calc-tester
|
||||
maining list. Using anti-spam address forms in order to try and
|
||||
mailing list. Using anti-spam address forms in order to try and
|
||||
stay under the radar of spammers as much as one can do so.
|
||||
|
||||
|
||||
@@ -1415,7 +1517,7 @@ The following are the changes from calc version 2.11.0t8 to 2.11.0t8.9:
|
||||
|
||||
Misc source file cleanup for things such as } else { style consistency.
|
||||
|
||||
Fixed the basis for FNV-1 hashes. Piror to this fix, the hash()
|
||||
Fixed the basis for FNV-1 hashes. Prior to this fix, the hash()
|
||||
builtin produced FNV hash values that did not match the FNV-1
|
||||
algorithm as specified in:
|
||||
|
||||
@@ -1438,7 +1540,7 @@ The following are the changes from calc version 2.11.0t8 to 2.11.0t8.9:
|
||||
and:
|
||||
{static a = 5} define f(x) = a + x;
|
||||
|
||||
String constants can now be concatenated. For exmaple:
|
||||
String constants can now be concatenated. For example:
|
||||
|
||||
s = "curds" ' and ' "whey";
|
||||
|
||||
@@ -1507,7 +1609,7 @@ The following are the changes from calc version 2.11.0t8 to 2.11.0t8.9:
|
||||
an error while processing 'args' and drops into interactive mode
|
||||
without the terminal bindings being set.
|
||||
|
||||
Added patch from Ernest Bowen to extablish the abort command as
|
||||
Added patch from Ernest Bowen to establish the abort command as
|
||||
well as to clarify the roles of quit and exit. See the help/command
|
||||
file for details.
|
||||
|
||||
@@ -1654,11 +1756,11 @@ The following are the changes from calc version 2.11.0t7 to 2.11.0t7.5:
|
||||
compile is invoked. Only the source that must be compiled and run
|
||||
on the local machine use ${LCC}; everything else uses ${CC}.
|
||||
|
||||
Fixed memory buffer ovreread problem in eatstring() in token.c.
|
||||
Fixed memory buffer related problem in eatstring() in token.c.
|
||||
|
||||
Fixed memory leaks related to putenv().
|
||||
|
||||
Fixed memory leaks realted to srandom().
|
||||
Fixed memory leaks related to srandom().
|
||||
|
||||
Fixed compilation warnings and problems on BSDI.
|
||||
|
||||
@@ -1960,13 +2062,13 @@ The following are the changes from calc version 2.10.3t5.34 to 2.10.3t5.37:
|
||||
Fixed the order of prints in regress.cal. By convention, a print
|
||||
of a test line happens after the test. This is because function
|
||||
parsed messages occur after the function is parsed. Also the
|
||||
boolean tesrt of vrfy happens before any print statement.
|
||||
Therefore a non-test line is tested and printed as follows:
|
||||
boolean test will verify before any print statements. Therefore
|
||||
a non-test line is tested and printed as follows:
|
||||
|
||||
y = sha();
|
||||
print '7125: y = sha()';
|
||||
|
||||
The perm(a,b) and comb(a,b) have been extented to arbitrary real a and
|
||||
The perm(a,b) and comb(a,b) have been extended to arbitrary real a and
|
||||
integer b.
|
||||
|
||||
Fixed a bug in minv().
|
||||
@@ -2040,7 +2142,7 @@ The following are the changes from calc version 2.10.3t5.34 to 2.10.3t5.37:
|
||||
A = B
|
||||
|
||||
results in A referring to exactly the same string as B rather than to
|
||||
a copy of what is in B. Thie is like the use of character-pointers in
|
||||
a copy of what is in B. This is like the use of character-pointers in
|
||||
C, as in
|
||||
|
||||
char *s1, *s2;
|
||||
@@ -2253,7 +2355,7 @@ The following are the changes from calc version 2.10.3t5.34 to 2.10.3t5.37:
|
||||
if n is negative. I've changed the definitions of head and tail for
|
||||
lists to be consistent with this interpretation of negative n.
|
||||
|
||||
(23) Similarly I've left strpos ezsentially as at present, but search
|
||||
(23) Similarly I've left strpos essentially as at present, but search
|
||||
and rsearch have been extended to strings. For example,
|
||||
|
||||
search(A, B, m, n)
|
||||
@@ -2710,16 +2812,16 @@ The following are the changes from calc version 2.10.3t5.28 to 2.10.3t5.33:
|
||||
|
||||
(11) storing the most recently calculated value of qpi(epsilon)i and
|
||||
epsilon so that when called again with the same epsilon it
|
||||
is copied rather than recalculateed.
|
||||
is copied rather than recalculated.
|
||||
|
||||
(12) defining trace() for square matrices
|
||||
|
||||
(13) expression in parentheses may now be followed by a qualifier
|
||||
computible with its type
|
||||
computable with its type
|
||||
|
||||
When an expression in parentheses evaluates to an lvalue
|
||||
whose current value is a matrix, list or object, it may
|
||||
now be followed by a qualifier computible with its type.
|
||||
now be followed by a qualifier compatible with its type.
|
||||
|
||||
For example:
|
||||
|
||||
@@ -2791,7 +2893,7 @@ The following are the changes from calc version 2.10.3t5.28 to 2.10.3t5.33:
|
||||
|
||||
define f(x) = 5 + x;
|
||||
|
||||
Fixed bug with lowhex2bin converstion in lib_util.c. It did not
|
||||
Fixed bug with lowhex2bin conversation in lib_util.c. It did not
|
||||
correctly convert from hex ASCII to binary values due to a table
|
||||
loading error.
|
||||
|
||||
@@ -2854,7 +2956,7 @@ The following are the changes from calc version 2.10.3t5.11 to 2.10.3t5.27:
|
||||
blocks that have been created, blocks(id) returns the named block
|
||||
with identifying index id.
|
||||
|
||||
Removed the artifical limit of 20 named blocks.
|
||||
Removed the artificial limit of 20 named blocks.
|
||||
|
||||
Added name() builtin to return the name of a type of value
|
||||
as a string.
|
||||
@@ -2917,7 +3019,7 @@ The following are the changes from calc version 2.10.3t5.11 to 2.10.3t5.27:
|
||||
|
||||
Moved blkcpy() routines have been moved to blkcpy.[ch].
|
||||
|
||||
The blkcpy() & copy() builtings can not copy to/from numbers.
|
||||
The blkcpy() & copy() builtins can not copy to/from numbers.
|
||||
For purposes of the copy, only the numerator is ignored.
|
||||
|
||||
Resolved a number of missing symbols for libcalc users.
|
||||
@@ -3063,7 +3165,7 @@ The following are the changes from calc version 2.10.3t5.1 to 2.10.3t5.10:
|
||||
surprises that C programmers may encounter.
|
||||
|
||||
Updated the 'help', 'intro' and 'overview' to reflect the
|
||||
full ilst of non-builtin function help files. Reorered the
|
||||
full list of non-builtin function help files. Reorered the
|
||||
'full' help file.
|
||||
|
||||
The blkalloc() builtin has been renamed blk().
|
||||
@@ -3111,13 +3213,13 @@ The following are the changes from calc version 2.10.3t5.1 to 2.10.3t5.10:
|
||||
|
||||
Added ${LD_DEBUG} Makefile variable to allow for additional
|
||||
libraries to be compiled into calc ... for debugging purposes.
|
||||
In most cases, LD_DEBUG= is sufficent.
|
||||
In most cases, LD_DEBUG= is sufficient.
|
||||
|
||||
Added ${CALC_ENV} makefile variable to allow for particular
|
||||
environment variables to be supplied for make {check,chk,debug}.
|
||||
In most cases, CALC_ENV= CALCPATH=./lib is sufficent.
|
||||
In most cases, CALC_ENV= CALCPATH=./lib is sufficient.
|
||||
|
||||
Added ${CALC_LIBS} to list the libaraies created and used to
|
||||
Added ${CALC_LIBS} to list the libraries created and used to
|
||||
build calc. The CALC_LIBS= custom/libcustcalc.a libcalc.a
|
||||
is standard for everyone.
|
||||
|
||||
@@ -3136,14 +3238,14 @@ The following are the changes from calc version 2.10.3t5.1 to 2.10.3t5.10:
|
||||
The *.c should do that instead where it is reasonable.
|
||||
|
||||
To avoid symbol conflicts, *.h files produced and shipped
|
||||
with calc are inclosed that as similar to the following:
|
||||
with calc are enclosed that as similar to the following:
|
||||
|
||||
#if !defined(__CALC_H__)
|
||||
#define __CALC_H__
|
||||
..
|
||||
#endif /* !__CALC_H__ */
|
||||
|
||||
Added memsize(x) builtin to print the best aproximation of the
|
||||
Added memsize(x) builtin to print the best approximation of the
|
||||
size of 'x' including overhead. The sizeof(x) builtin attempts
|
||||
to cover just the storage of the value and not the overhead.
|
||||
Because -1, 0 and 1 ZVALUES are static common values, sizeof(x)
|
||||
@@ -3168,7 +3270,7 @@ The following are the changes from calc version 2.10.3t4.16 to 2.10.3t5.0:
|
||||
Added more error() and errno() regression tests.
|
||||
|
||||
The convention of using the global variable lib_debug at the
|
||||
end of calc librar scripts has been replaced with config("lib_debug").
|
||||
end of calc library scripts has been replaced with config("lib_debug").
|
||||
The "lib_debug" is reserved by convention for calc library scripts.
|
||||
This config parameter takes the place of the lib_debug global variable.
|
||||
By convention, "lib_debug" has the following meanings:
|
||||
@@ -3222,7 +3324,7 @@ The following are the changes from calc version 2.10.3t4.16 to 2.10.3t5.0:
|
||||
>0 a greater degree of debugging is performed and more
|
||||
verbose messages are printed
|
||||
|
||||
Added more code that is deading with the BLOCK type.
|
||||
Added more code related to the BLOCK type.
|
||||
|
||||
Added blkalloc() builtin.
|
||||
|
||||
@@ -3267,14 +3369,14 @@ The following are the changes from calc version 2.10.3t4.16 to 2.10.3t5.0:
|
||||
arg is "-f", then 'no-such-file' errors are ignored.
|
||||
|
||||
Added errcount([count]) builtin to return or set the error
|
||||
counter. Added errmax([limit]) to rturn or set the error
|
||||
counter. Added errmax([limit]) to return or set the error
|
||||
count limiter.
|
||||
|
||||
Added -n as a calc command line option. This has the effect
|
||||
of calling config("all", "newstd") at startup time.
|
||||
|
||||
Added -e as a calc command line option to ignore all environment
|
||||
varialbes at startup time. The getenv() builtin function will
|
||||
variables at startup time. The getenv() builtin function will
|
||||
still return values, however.
|
||||
|
||||
Added -i as a calc command line option. This has the effect
|
||||
@@ -3457,7 +3559,7 @@ The following are the changes from calc version 2.10.3t3 to 2.10.3t4.15:
|
||||
|
||||
The "blkverbose" determines if all lines, including duplicates
|
||||
should be printed. If TRUE, then all lines are printed. If false,
|
||||
duplicate lines are skipped and only a "*" is printed in a sytle
|
||||
duplicate lines are skipped and only a "*" is printed in a style
|
||||
similar to od. This config value has not meaning if "blkfmt" is
|
||||
"str". The default value for "blkverbose" is FALSE: duplicate
|
||||
lines are not printed.
|
||||
@@ -3530,7 +3632,7 @@ The following are the changes from calc version 2.10.3t0 to 2.10.3t2:
|
||||
|
||||
A lot of work was performed on the code generation by Ernest Bowen
|
||||
<ernie at turing dot une dot edu dot au>. Declarations no longer
|
||||
need to precese code:
|
||||
need to precede code:
|
||||
|
||||
define f(x) {
|
||||
local i = x^2;
|
||||
@@ -3664,7 +3766,7 @@ The following are the changes from calc version 2.10.3t0 to 2.10.3t2:
|
||||
"break", "continue", or "goto", so that only one jump opcode is
|
||||
required.
|
||||
|
||||
A label can now be immediately by a rightbrace. For example:
|
||||
A label can now be immediately by a right-brace. For example:
|
||||
|
||||
define test_newop3(x) {if (x < 0) goto l132; ++x; l132: return x;}
|
||||
|
||||
@@ -3922,7 +4024,7 @@ The following are the changes from calc version 2.10.2t25 to 2.10.2t32:
|
||||
creates four static variables, the first "a" having a very short and
|
||||
useless life.
|
||||
|
||||
Added new tests to verify the new assugnments above.
|
||||
Added new tests to verify the new assignments above.
|
||||
|
||||
Added the builtin test(x) which returns 1 or 0 according as x tests
|
||||
as true or false for conditions.
|
||||
@@ -3963,7 +4065,7 @@ The following are the changes from calc version 2.10.2t4 to 2.10.2t24:
|
||||
so that the entire make is verbose and
|
||||
a constructed files are printed
|
||||
|
||||
Improved instuctions in 'BUGS' section on reporting problems.
|
||||
Improved instructions in 'BUGS' section on reporting problems.
|
||||
In particular we made it easy for people to send in a full
|
||||
diagnostic output by sending 'debug.out' which is made as follows:
|
||||
|
||||
@@ -3978,13 +4080,13 @@ The following are the changes from calc version 2.10.2t4 to 2.10.2t24:
|
||||
|
||||
Attempting to rewind a file this is not open generates an error.
|
||||
|
||||
Noted conversion problems in file.c in tripple X comments.
|
||||
Noted conversion problems in file.c in triple X comments.
|
||||
|
||||
Some extremely braindead shells cannot correctly deal with if
|
||||
cluases that do not have a non-empty else statement. Their
|
||||
Some extremely brain dead shells cannot correctly deal with if
|
||||
clauses that do not have a non-empty else statement. Their
|
||||
exit bogosity results in make problems. As a work-a-round,
|
||||
Makefile if clauses have 'else true;' clauses for if statements
|
||||
that previously did not have an else cluause.
|
||||
that previously did not have an else clause.
|
||||
|
||||
Fixed problems where the input stack depth reached the 10 levels.
|
||||
|
||||
@@ -4099,7 +4201,7 @@ The following are the changes from calc version 2.10.2t4 to 2.10.2t24:
|
||||
A = {{1,2}, {3,4}};
|
||||
|
||||
The config("trace", 8) causes opcodes of newly defined functions
|
||||
are displayed. Also show can now show the opcides for a function.
|
||||
are displayed. Also show can now show the opcodes for a function.
|
||||
For example:
|
||||
|
||||
config("trace", 8);
|
||||
@@ -4205,9 +4307,9 @@ The following are the changes from calc version 2.10.2t4 to 2.10.2t24:
|
||||
Added rm("file") builtin to remove a file.
|
||||
|
||||
The regress test sections that create files also use rm() to remove
|
||||
them before and afterwards.
|
||||
them before and afterward.
|
||||
|
||||
Added 4400-4500 set to test new mat and obj initializaion rules.
|
||||
Added 4400-4500 set to test new mat and obj initialization rules.
|
||||
|
||||
Added 4600 to test version file operations.
|
||||
|
||||
@@ -4223,7 +4325,7 @@ The following are the changes from calc version 2.10.2t4 to 2.10.2t24:
|
||||
|
||||
Renumbered some of the early regress.cal test numbers to make room
|
||||
for more tests. Fixed all out of sequence test numbers. Fixed some
|
||||
malformatted regression reports.
|
||||
malformed regression reports.
|
||||
|
||||
Renamed STSIZE_BITS to OFF_T_BITS. Renamed SWAP_HALF_IN_STSIZE to
|
||||
SWAP_HALF_IN_OFF_T.
|
||||
@@ -4314,7 +4416,7 @@ The following are the changes from calc version 2.10.2t1 to 2.10.2t3:
|
||||
tries "w" and "r", and if none work, gives up. This avoids having
|
||||
"open" files with null fp.
|
||||
|
||||
The buildin rewind() calls the C rewind() function, but one may
|
||||
The builtin rewind() calls the C rewind() function, but one may
|
||||
now rewind several files at once by a call like rewind(f1, f2).
|
||||
With no argument, rewind() rewinds all open files with id >= 3.
|
||||
|
||||
@@ -4337,7 +4439,7 @@ The following are the changes from calc version 2.10.2t1 to 2.10.2t3:
|
||||
y = fgetstr(f); /* returns "Curt" */
|
||||
z = fgetstr(f); /* returns "Noll" */
|
||||
|
||||
The buildin fgetfield() returns the next field of non-whitepsace
|
||||
The builtin fgetfield() returns the next field of non-whitepsace
|
||||
characters.
|
||||
|
||||
The builtins scan(), fscan(), strscan() read tokens (fields of
|
||||
@@ -4361,10 +4463,10 @@ The following are the changes from calc version 2.10.2t1 to 2.10.2t3:
|
||||
or -1 if x is a file but not open. If s is a string, size(s) returns
|
||||
characters in s.
|
||||
|
||||
Added buildin access("foo", "w") returns the null value if a file
|
||||
"foo" exists and is writeable.
|
||||
Added builtin access("foo", "w") returns the null value if a file
|
||||
"foo" exists and is writable.
|
||||
|
||||
Some systems has a libc symbolc qadd() that conflicted with calc's
|
||||
Some systems has a libc symbolic qadd() that conflicted with calc's
|
||||
qadd function. To avoid this, qadd() has been renamed to qqadd().
|
||||
|
||||
The calc error codes are produced from the the calcerr.tbl file.
|
||||
@@ -4519,9 +4621,9 @@ The following are the changes from calc version 2.10.1t20 to 2.10.1t20:
|
||||
<ernie at turing dot une dot edu dot au>
|
||||
|
||||
A new "bignum" algorithm for evaluating pmod(x,k,m) when
|
||||
N >= config("pow2"). For the multiplications and squarings
|
||||
N >= config("pow2"). For the multiplications and squaring
|
||||
modulo m, or their equivalent, when N >= config("redc2"),
|
||||
calc has used evaluations correponding to rcout(x * y, m),
|
||||
calc has used evaluations corresponding to rcout(x * y, m),
|
||||
for which the runtime is essentially that of three multiplications.
|
||||
<ernie at turing dot une dot edu dot au>
|
||||
|
||||
@@ -4594,7 +4696,7 @@ The following are the changes from calc version 2.10.1t11 to 2.10.1t19:
|
||||
|
||||
cmp(a,b) = sgn(re(a) - re(b)) + sgn(im(a) - im(b)) * 1i
|
||||
|
||||
The cmp help file has been uptdated.
|
||||
The cmp help file has been updated.
|
||||
|
||||
Change HASH type to QCKHASH. The HASH type is a name better suited
|
||||
for the upcoming one-way hash interface.
|
||||
@@ -4654,7 +4756,7 @@ The following are the changes from calc version 2.10.1t11 to 2.10.1t19:
|
||||
prompt "; " (allows full line cut/paste)
|
||||
more ";; " (allows full line cut/paste)
|
||||
|
||||
The "newstd" is a (hopefully) more perferred configuration than the
|
||||
The "newstd" is a (hopefully) more preferred configuration than the
|
||||
historic default.
|
||||
|
||||
The fposval.h file defines DEV_BITS and INODE_BITS giving the
|
||||
@@ -4673,7 +4775,7 @@ The following are the changes from calc version 2.10.1t11 to 2.10.1t19:
|
||||
state or RANDOM state.
|
||||
|
||||
The lib/cryrand.cal library now no longer keeps the Blum prime
|
||||
factors used to formt he Blum modulus. The default modulus has
|
||||
factors used to form he Blum modulus. The default modulus has
|
||||
been expanded to 1062 bits product of two Blum primes.
|
||||
|
||||
The function hash_init() is called to initialize the hash function
|
||||
@@ -4704,7 +4806,7 @@ The following are the changes from calc version 2.10.1t11 to 2.10.1t19:
|
||||
help/poly file. Added poly.c. <ernie at turing dot une dot edu
|
||||
dot au>
|
||||
|
||||
Fixes and performance improvemtns to det(). <ernie at turing dot
|
||||
Fixes and performance improvements to det(). <ernie at turing dot
|
||||
une dot edu dot au>
|
||||
|
||||
Renamed atoq() and atoz() to str2q() and str2z() to avoid conflicts
|
||||
@@ -4778,7 +4880,7 @@ The following are the changes from calc version 2.10.0t13 to 2.10.1t10:
|
||||
signed and unsigned values.
|
||||
|
||||
The longbits.h will define HAVE_B64 with a 64 bit type (long or
|
||||
longlong) is available. If one is, then SB64 abd US64 typedefs
|
||||
longlong) is available. If one is, then SB64 and US64 typedefs
|
||||
are declared.
|
||||
|
||||
The U(x) and L(x) macros only used to define 33 to 64 bit signed
|
||||
@@ -4807,7 +4909,7 @@ The following are the changes from calc version 2.10.0t13 to 2.10.1t10:
|
||||
|
||||
The CALCBINDINGS file is searched for along the CALCPATH. The Makefile
|
||||
defines the default CALCBINDINGS is "bindings" (or "altbind") which
|
||||
is now usualy found in ./lib or ${LIBDIR}.
|
||||
is now usually found in ./lib or ${LIBDIR}.
|
||||
|
||||
Per Ernest Bowen <ernie at turing dot une dot edu dot au>, an optional
|
||||
third argument was added sqrt() so that in sqrt(x,y,z), y and z have
|
||||
@@ -4815,7 +4917,7 @@ The following are the changes from calc version 2.10.0t13 to 2.10.1t10:
|
||||
what is being approximated is the sqrt of x. Another difference is
|
||||
that two more bits of z are used in sqrt: bit 5 gives the option of
|
||||
exact results when they exist (the value of y is then ignored) and
|
||||
bit 6 returns the nonprincipal root rather than the principal value.
|
||||
bit 6 returns the non-principal root rather than the principal value.
|
||||
|
||||
If commands are given on the command line, leading tabs are not
|
||||
printed in output. Giving a command on the command line implies
|
||||
@@ -4855,7 +4957,7 @@ The following are the changes from calc version 2.10.0t13 to 2.10.1t10:
|
||||
6 do not execute any program
|
||||
7 allow everything (default mode)
|
||||
|
||||
Thus if one wished to run calc from a privledged user, one might
|
||||
Thus if one wished to run calc from a privileged user, one might
|
||||
want to use -m 0 in an effort to make calc more secure.
|
||||
|
||||
The -m flags for reading and writing apply on open.
|
||||
@@ -4871,7 +4973,7 @@ The following are the changes from calc version 2.10.0t13 to 2.10.1t10:
|
||||
The maximum command line size it MAXCMD (16384) bytes. Calc objects to
|
||||
command lines that are longer.
|
||||
|
||||
The -u flag cause calc to unbuffer stdin and stdout.
|
||||
The -u flag cause calc to un-buffer stdin and stdout.
|
||||
|
||||
Added more help files. Improved other help files.
|
||||
|
||||
@@ -4955,7 +5057,7 @@ The following are the changes from calc version 2.9.3t9.2+ to 2.9.3t10:
|
||||
Makefile symbol. Removed alloc.c.
|
||||
|
||||
Added getenv("name"), putenv("name=val") and putenv("name, "val")
|
||||
builts for environment variable support thanks to "Dr." "D.J." Picton
|
||||
builds for environment variable support thanks to "Dr." "D.J." Picton
|
||||
<dave at aps2 dot ph dot bham dot ac dot uk>.
|
||||
|
||||
Added system("shell command") builtin to execute shell commands,
|
||||
@@ -5000,7 +5102,7 @@ The following are the changes from calc version 2.9.3t9.2+ to 2.9.3t10:
|
||||
|
||||
Expanded the regress.cal regression test suite.
|
||||
|
||||
Fixed -- and ++ with respect to objects and asignment (see the 2300
|
||||
Fixed -- and ++ with respect to objects and assignment (see the 2300
|
||||
series in regress.cal).
|
||||
|
||||
Added isident(m) to determine if m is an identity matrix.
|
||||
@@ -5181,7 +5283,7 @@ The following are the changes from calc version 2.9.3t8 to 2.9.3t9.2:
|
||||
|
||||
The cryrand.cal library has been modified to use the builtin
|
||||
rand() number generator. The output of this generator is
|
||||
different from pervious versions of this generator because
|
||||
different from previous versions of this generator because
|
||||
the rand() builtin does not match the additive 55 / shuffle
|
||||
generators from the old cryrand.cal file.
|
||||
|
||||
@@ -5341,8 +5443,8 @@ The following are the changes from calc version 2.9.2 to 2.9.3t7:
|
||||
|
||||
1/4 < sup(abs(appr(x,e) - x))/e <= 1/2.
|
||||
|
||||
Here 'sup' denotes the supremum or least upper bound over values of x.
|
||||
Previousld calc did: 1/4 <= sup(abs(appr(x,e) - x))/e < 1.
|
||||
Here 'sup' denotes the least upper bound over values of x (supremum).
|
||||
Previously calc did: 1/4 <= sup(abs(appr(x,e) - x))/e < 1.
|
||||
|
||||
Certain 64 bit processors such as the Alpha are now supported.
|
||||
|
||||
@@ -5530,8 +5632,8 @@ Following is a list of visible changes to calc from version 1.24.7 to 1.26.1:
|
||||
easily extracted and used in other programs.
|
||||
|
||||
Two new library files have been added: chrem.cal and cryrand.cal.
|
||||
The first of these solves the chinese remainder problem for a set
|
||||
of modulos and remainders. The second of these implements several
|
||||
The first of these solves the Chinese remainder problem for a set
|
||||
of modulo's and remainders. The second of these implements several
|
||||
very good random number generators for large numbers.
|
||||
|
||||
A small bug which allowed division by zero was fixed.
|
||||
@@ -5561,8 +5663,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.59 $
|
||||
## @(#) $Id: CHANGES,v 29.59 2003/02/26 17:17:12 chongo Exp $
|
||||
## @(#) $Revision: 29.63 $
|
||||
## @(#) $Id: CHANGES,v 29.63 2004/02/23 09:23:39 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/RCS/CHANGES,v $
|
||||
##
|
||||
## Under source code control: 1993/06/02 18:12:57
|
||||
|
@@ -1,4 +1,29 @@
|
||||
Installing calc in 4 easy steps:
|
||||
Installing calc from the gziped tarball in 4 easy steps:
|
||||
|
||||
0) If your platform supports i686 RPMs, you may want to go to:
|
||||
|
||||
http://www.isthe.com/chongo/src/calc/
|
||||
|
||||
and use these RPMs:
|
||||
|
||||
* calc*.i686.rpm
|
||||
- all that is needed if you just want to use calc
|
||||
|
||||
* calc-devel-*.i686.rpm
|
||||
- calc *.h header and *.a lib files for use in other programs
|
||||
|
||||
* calc.*.src.rpm
|
||||
- calc source in RPM package form
|
||||
|
||||
The following 4 steps apply to calc source tree that comes from either:
|
||||
|
||||
gunzip -c calc-*.tar.gz | tar -xvf -
|
||||
|
||||
or from:
|
||||
|
||||
rpm -ivh calc-*.src.rpm
|
||||
cd /var/tmp
|
||||
gunzip -c /usr/src/redhat/SOURCES/calc-*.tar.gz | tar -xvf -
|
||||
|
||||
1) Look at the makefile, and adjust it to suit your needs.
|
||||
|
||||
@@ -137,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.6 $
|
||||
## @(#) $Id: HOWTO.INSTALL,v 29.6 2002/03/14 00:28:28 chongo Exp $
|
||||
## @(#) $Revision: 29.7 $
|
||||
## @(#) $Id: HOWTO.INSTALL,v 29.7 2003/04/15 03:38:34 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/RCS/HOWTO.INSTALL,v $
|
||||
##
|
||||
## Under source code control: 1999/09/27 20:48:44
|
||||
|
97
Makefile
97
Makefile
@@ -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.
|
||||
#
|
||||
MAKEFILE_REV= $$Revision: 29.62 $$
|
||||
# @(#) $Id: Makefile.ship,v 29.62 2003/02/25 17:38:22 chongo Exp $
|
||||
MAKEFILE_REV= $$Revision: 29.68 $$
|
||||
# @(#) $Id: Makefile.ship,v 29.68 2004/02/23 09:30:32 chongo Exp $
|
||||
# @(#) $Source: /usr/local/src/cmd/calc/RCS/Makefile.ship,v $
|
||||
#
|
||||
# Under source code control: 1990/02/15 01:48:41
|
||||
@@ -549,13 +549,28 @@ HAVE_UNISTD_H=
|
||||
|
||||
# Determine if our compiler allows the -Wno-implicit flag
|
||||
#
|
||||
# HAVE_NO_IMPLICIT= Our compiler does not have -Wno-implicit flags
|
||||
# HAVE_NO_IMPLICIT= let the Makefile test the -Wno-implicit flag
|
||||
# HAVE_NO_IMPLICIT= NO Our compiler does not have -Wno-implicit flags
|
||||
# HAVE_NO_IMPLICIT= YES Our compiler has a -Wno-implicit flag
|
||||
#
|
||||
# HAVE_NO_IMPLICIT=
|
||||
# Select HAVE_NO_IMPLICIT= for DJGPP.
|
||||
#
|
||||
HAVE_NO_IMPLICIT=
|
||||
# HAVE_NO_IMPLICIT= NO
|
||||
HAVE_NO_IMPLICIT= YES
|
||||
# HAVE_NO_IMPLICIT= YES
|
||||
|
||||
# Determine if our compiler allows the unused attribute
|
||||
#
|
||||
# If HAVE_UNUSED is empty, this Makefile will run the have_unused program
|
||||
# to determine if the unused attribute is supported. If HAVE_UNUSED is set to
|
||||
# -DHAVE_NO_UNUSED, then the unused attribute will not be used.
|
||||
#
|
||||
# Select HAVE_UNUSED= for DJGPP.
|
||||
#
|
||||
# If in doubt, leave HAVE_UNUSED empty and this Makefile will figure it out.
|
||||
#
|
||||
HAVE_UNUSED=
|
||||
#HAVE_UNUSED= -DHAVE_NO_UNUSED
|
||||
|
||||
# System include files
|
||||
#
|
||||
@@ -985,7 +1000,7 @@ MKDIR_ARG= -p
|
||||
# For better performance, set the following above: DEBUG= -O2 -g3
|
||||
# You might even try: DEBUG= -O3 -g3
|
||||
#
|
||||
CCWARN= -Wall -Wno-comment
|
||||
CCWARN= -Wall -W -Wno-comment
|
||||
CCOPT= ${DEBUG} ${NO_SHARED}
|
||||
CCMISC=
|
||||
#
|
||||
@@ -1005,7 +1020,7 @@ CC= ${PURIFY} ${LCC}
|
||||
# For better performance, set the following above: DEBUG= -O2 -g3
|
||||
# You might even try: DEBUG= -O3 -g3
|
||||
#
|
||||
#CCWARN= -Wall -Wno-comment
|
||||
#CCWARN= -Wall -W -Wno-comment
|
||||
#CCOPT= ${DEBUG} ${NO_SHARED}
|
||||
#CCMISC=
|
||||
#
|
||||
@@ -1265,7 +1280,7 @@ BUILD_H_SRC= align32.h args.h calcerr.h conf.h endian_calc.h \
|
||||
have_unistd.h longbits.h longlong.h terminal.h \
|
||||
have_ustat.h have_getsid.h have_getpgid.h \
|
||||
have_gettime.h have_getprid.h have_urandom.h have_rusage.h \
|
||||
have_strdup.h
|
||||
have_strdup.h have_unused.h
|
||||
|
||||
# we build these .c files during the make
|
||||
#
|
||||
@@ -1280,7 +1295,7 @@ UTIL_C_SRC= align32.c endian.c longbits.c have_newstr.c have_uid_t.c \
|
||||
have_fpos_pos.c longlong.c have_offscl.c have_posscl.c have_memmv.c \
|
||||
have_ustat.c have_getsid.c have_getpgid.c \
|
||||
have_gettime.c have_getprid.c have_rusage.c have_strdup.c \
|
||||
no_implicit.c
|
||||
no_implicit.c have_unused.c
|
||||
|
||||
# these awk and sed tools are used in the process of building BUILD_H_SRC
|
||||
# and BUILD_C_SRC
|
||||
@@ -1297,7 +1312,7 @@ UTIL_OBJS= endian.o longbits.o have_newstr.o have_uid_t.o \
|
||||
try_strarg.o have_stdvs.o have_varvs.o have_posscl.o have_memmv.o \
|
||||
have_ustat.o have_getsid.o have_getpgid.o \
|
||||
have_gettime.o have_getprid.o ver_calc.o have_rusage.o have_strdup.o \
|
||||
no_implicit.o
|
||||
no_implicit.o have_unused.o
|
||||
|
||||
# these temp files may be created (and removed) during the build of BUILD_C_SRC
|
||||
#
|
||||
@@ -1311,7 +1326,7 @@ UTIL_PROGS= align32 fposval have_uid_t longlong have_const \
|
||||
endian longbits have_newstr have_stdvs have_varvs \
|
||||
have_ustat have_getsid have_getpgid \
|
||||
have_gettime have_getprid ver_calc have_strdup \
|
||||
no_implicit no_implicit.arg
|
||||
no_implicit no_implicit.arg have_unused
|
||||
|
||||
# The complete list of Makefile vars passed down to custom/Makefile.
|
||||
#
|
||||
@@ -1555,7 +1570,7 @@ func.o: func.c ${MAKE_FILE}
|
||||
${CC} ${CFLAGS} ${ALLOW_CUSTOM} -c func.c
|
||||
|
||||
seed.o: seed.c no_implicit.arg ${MAKE_FILE}
|
||||
${CC} ${CFLAGS} "`cat no_implicit.arg`" -c seed.c
|
||||
${CC} ${CFLAGS} `cat no_implicit.arg` -c seed.c
|
||||
|
||||
##
|
||||
#
|
||||
@@ -2886,13 +2901,15 @@ no_implicit.arg: no_implicit.c ${MAKE_FILE}
|
||||
-${Q}rm -f no_implicit no_implicit.o no_implicit.arg
|
||||
${Q}echo 'forming no_implicit.arg'
|
||||
-${Q}if [ X"${HAVE_NO_IMPLICIT}" = X"YES" ]; then \
|
||||
echo ""'-Wno-implicit' > no_implicit.arg; \
|
||||
elif [ X"${HAVE_NO_IMPLICIT}" = X"NO" ]; then \
|
||||
touch no_implicit.arg; \
|
||||
else \
|
||||
${LCC} -Wno-implicit ${ICFLAGS} -DHAVE_NO_IMPLICIT \
|
||||
no_implicit.c -c >/dev/null 2>&1; \
|
||||
${LCC} ${ILDFLAGS} no_implicit.o -o no_implicit >/dev/null 2>&1; \
|
||||
${SHELL} -c "./no_implicit > no_implicit.arg 2>/dev/null" \
|
||||
>/dev/null 2>&1; true; \
|
||||
else \
|
||||
touch no_implicit.arg; \
|
||||
fi
|
||||
${Q}echo 'no_implicit.arg formed'
|
||||
-@if [ -z "${Q}" ]; then \
|
||||
@@ -2905,6 +2922,46 @@ no_implicit.arg: no_implicit.c ${MAKE_FILE}
|
||||
true; \
|
||||
fi
|
||||
|
||||
have_unused.h: have_unused.c ${MAKE_FILE}
|
||||
-${Q}rm -f have_unused have_unused.o unused_tmp have_unused.h
|
||||
${Q}echo 'forming have_unused.h'
|
||||
${Q}echo '/*' > have_unused.h
|
||||
${Q}echo ' * DO NOT EDIT -- generated by the Makefile' >> have_unused.h
|
||||
${Q}echo ' */' >> have_unused.h
|
||||
${Q}echo '' >> have_unused.h
|
||||
${Q}echo '' >> have_unused.h
|
||||
${Q}echo '#if !defined(__HAVE_UNUSED_H__)' >> have_unused.h
|
||||
${Q}echo '#define __HAVE_UNUSED_H__' >> have_unused.h
|
||||
${Q}echo '' >> have_unused.h
|
||||
${Q}echo '' >> have_unused.h
|
||||
${Q}echo '/* do we have/want the unused attribute? */' >> have_unused.h
|
||||
-${Q}rm -f have_unused.o have_unused
|
||||
-${Q}${LCC} ${ICFLAGS} ${HAVE_UNUSED} have_unused.c -c \
|
||||
>/dev/null 2>&1; true
|
||||
-${Q}${LCC} ${ILDFLAGS} have_unused.o -o have_unused \
|
||||
>/dev/null 2>&1; true
|
||||
-${Q}${SHELL} -c "./have_unused > unused_tmp 2>/dev/null" \
|
||||
>/dev/null 2>&1; true
|
||||
-${Q}if [ -s unused_tmp ]; then \
|
||||
cat unused_tmp >> have_unused.h; \
|
||||
else \
|
||||
echo '#undef HAVE_UNUSED /* no */' >> have_unused.h; \
|
||||
fi
|
||||
${Q}echo '' >> have_unused.h
|
||||
${Q}echo '' >> have_unused.h
|
||||
${Q}echo '#endif /* !__HAVE_UNUSED_H__ */' >> have_unused.h
|
||||
-${Q}rm -f have_unused have_unused.o unused_tmp
|
||||
${Q}echo 'have_unused.h formed'
|
||||
-@if [ -z "${Q}" ]; then \
|
||||
echo ''; \
|
||||
echo '=-=-= start of $@ =-=-='; \
|
||||
cat $@; \
|
||||
echo '=-=-= end of $@ =-=-='; \
|
||||
echo ''; \
|
||||
else \
|
||||
true; \
|
||||
fi
|
||||
|
||||
##
|
||||
#
|
||||
# Build .h files for windoz based systems
|
||||
@@ -3147,7 +3204,7 @@ h_list:
|
||||
|
||||
# print the calc version
|
||||
#
|
||||
ver_calc: version.c
|
||||
ver_calc: version.c have_unused.h
|
||||
-rm -f $@
|
||||
${LCC} ${ICFLAGS} -DCALC_VER ${ILDFLAGS} version.c -o $@
|
||||
|
||||
@@ -3907,6 +3964,7 @@ calc.o: have_strdup.h
|
||||
calc.o: have_string.h
|
||||
calc.o: have_uid_t.h
|
||||
calc.o: have_unistd.h
|
||||
calc.o: have_unused.h
|
||||
calc.o: hist.h
|
||||
calc.o: label.h
|
||||
calc.o: longbits.h
|
||||
@@ -4134,6 +4192,7 @@ func.o: have_strdup.h
|
||||
func.o: have_string.h
|
||||
func.o: have_times.h
|
||||
func.o: have_unistd.h
|
||||
func.o: have_unused.h
|
||||
func.o: label.h
|
||||
func.o: longbits.h
|
||||
func.o: md5.h
|
||||
@@ -4200,6 +4259,7 @@ have_stdvs.o: have_unistd.h
|
||||
have_strdup.o: have_strdup.c
|
||||
have_uid_t.o: have_uid_t.c
|
||||
have_uid_t.o: have_unistd.h
|
||||
have_unused.o: have_unused.c
|
||||
have_ustat.o: have_ustat.c
|
||||
have_varvs.o: have_string.h
|
||||
have_varvs.o: have_unistd.h
|
||||
@@ -4249,6 +4309,7 @@ hist.o: have_stdlib.h
|
||||
hist.o: have_strdup.h
|
||||
hist.o: have_string.h
|
||||
hist.o: have_unistd.h
|
||||
hist.o: have_unused.h
|
||||
hist.o: hist.c
|
||||
hist.o: hist.h
|
||||
hist.o: longbits.h
|
||||
@@ -4418,6 +4479,7 @@ matfunc.o: have_memmv.h
|
||||
matfunc.o: have_newstr.h
|
||||
matfunc.o: have_stdlib.h
|
||||
matfunc.o: have_string.h
|
||||
matfunc.o: have_unused.h
|
||||
matfunc.o: longbits.h
|
||||
matfunc.o: matfunc.c
|
||||
matfunc.o: md5.h
|
||||
@@ -4533,6 +4595,7 @@ opcodes.o: have_memmv.h
|
||||
opcodes.o: have_newstr.h
|
||||
opcodes.o: have_stdlib.h
|
||||
opcodes.o: have_string.h
|
||||
opcodes.o: have_unused.h
|
||||
opcodes.o: hist.h
|
||||
opcodes.o: label.h
|
||||
opcodes.o: longbits.h
|
||||
@@ -4633,6 +4696,7 @@ qio.o: have_memmv.h
|
||||
qio.o: have_newstr.h
|
||||
qio.o: have_stdlib.h
|
||||
qio.o: have_string.h
|
||||
qio.o: have_unused.h
|
||||
qio.o: longbits.h
|
||||
qio.o: nametype.h
|
||||
qio.o: qio.c
|
||||
@@ -4944,6 +5008,7 @@ version.o: have_memmv.h
|
||||
version.o: have_newstr.h
|
||||
version.o: have_stdlib.h
|
||||
version.o: have_string.h
|
||||
version.o: have_unused.h
|
||||
version.o: longbits.h
|
||||
version.o: md5.h
|
||||
version.o: nametype.h
|
||||
@@ -5067,6 +5132,7 @@ zrand.o: have_memmv.h
|
||||
zrand.o: have_newstr.h
|
||||
zrand.o: have_stdlib.h
|
||||
zrand.o: have_string.h
|
||||
zrand.o: have_unused.h
|
||||
zrand.o: longbits.h
|
||||
zrand.o: md5.h
|
||||
zrand.o: nametype.h
|
||||
@@ -5093,6 +5159,7 @@ zrandom.o: have_memmv.h
|
||||
zrandom.o: have_newstr.h
|
||||
zrandom.o: have_stdlib.h
|
||||
zrandom.o: have_string.h
|
||||
zrandom.o: have_unused.h
|
||||
zrandom.o: longbits.h
|
||||
zrandom.o: md5.h
|
||||
zrandom.o: nametype.h
|
||||
|
12
addop.c
12
addop.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.3 $
|
||||
* @(#) $Id: addop.c,v 29.3 2000/07/17 15:35:49 chongo Exp $
|
||||
* @(#) $Revision: 29.4 $
|
||||
* @(#) $Id: addop.c,v 29.4 2004/02/23 07:25:16 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/addop.c,v $
|
||||
*
|
||||
* Under source code control: 1990/02/15 01:48:10
|
||||
@@ -44,7 +44,7 @@
|
||||
#define OPCODEALLOCSIZE 100 /* reallocate size for opcodes in functions */
|
||||
|
||||
|
||||
static long maxopcodes; /* number of opcodes available */
|
||||
static unsigned long maxopcodes;/* number of opcodes available */
|
||||
static long newindex; /* index of new function */
|
||||
static char *newname; /* name of new function */
|
||||
static long oldop; /* previous opcode */
|
||||
@@ -185,7 +185,7 @@ endfunc(void)
|
||||
{
|
||||
register FUNC *fp; /* function just finished */
|
||||
unsigned long size; /* size of just created function */
|
||||
long index;
|
||||
unsigned long index;
|
||||
|
||||
if (oldop != OP_RETURN) {
|
||||
addop(OP_UNDEF);
|
||||
@@ -302,7 +302,7 @@ void
|
||||
freefunc(FUNC *fp)
|
||||
{
|
||||
long index;
|
||||
long i;
|
||||
unsigned long i;
|
||||
|
||||
if (fp == NULL)
|
||||
return;
|
||||
@@ -383,7 +383,7 @@ clearopt(void)
|
||||
FUNC *
|
||||
findfunc(long index)
|
||||
{
|
||||
if ((unsigned long) index >= funccount) {
|
||||
if (index >= funccount) {
|
||||
math_error("Undefined function");
|
||||
/*NOTREACHED*/
|
||||
}
|
||||
|
44
blkcpy.c
44
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.3 $
|
||||
* @(#) $Id: blkcpy.c,v 29.3 2001/04/10 22:06:46 chongo Exp $
|
||||
* @(#) $Revision: 29.4 $
|
||||
* @(#) $Id: blkcpy.c,v 29.4 2004/02/23 07:47:31 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/blkcpy.c,v $
|
||||
*
|
||||
* Under source code control: 1997/04/18 20:41:26
|
||||
@@ -287,13 +287,13 @@ copymat2mat(MATRIX *smat, long ssi, long num, MATRIX *dmat, long dsi)
|
||||
|
||||
if (num < 0)
|
||||
num = smat->m_size - ssi;
|
||||
if ((USB32) ssi + num > smat->m_size)
|
||||
if (ssi + num > smat->m_size)
|
||||
return E_COPY5;
|
||||
if (num == 0)
|
||||
return 0;
|
||||
if (dsi < 0)
|
||||
dsi = 0;
|
||||
if ((USB32) dsi + num > dmat->m_size)
|
||||
if (dsi + num > dmat->m_size)
|
||||
return E_COPY7;
|
||||
vtemp = (VALUE *) malloc(num * sizeof(VALUE));
|
||||
if (vtemp == NULL) {
|
||||
@@ -335,13 +335,13 @@ copyblk2mat(BLOCK *blk, long ssi, long num, MATRIX *dmat, long dsi)
|
||||
return E_COPY2;
|
||||
if (num < 0)
|
||||
num = blk->datalen - ssi;
|
||||
if ((USB32) ssi + num > blk->datalen)
|
||||
if (ssi + num > blk->datalen)
|
||||
return E_COPY5;
|
||||
if (num == 0)
|
||||
return 0;
|
||||
if (dsi < 0)
|
||||
dsi = 0;
|
||||
if ((USB32) dsi + num > dmat->m_size)
|
||||
if (dsi + num > dmat->m_size)
|
||||
return E_COPY7;
|
||||
op = blk->data + ssi;
|
||||
vtemp = (VALUE *) malloc(num * sizeof(VALUE));
|
||||
@@ -389,7 +389,7 @@ copymat2blk(MATRIX *smat, long ssi, long num, BLOCK *dblk, long dsi, BOOL norelo
|
||||
num = smat->m_size - ssi;
|
||||
if (num == 0)
|
||||
return 0;
|
||||
if ((USB32) ssi + num > smat->m_size)
|
||||
if (ssi + num > smat->m_size)
|
||||
return E_COPY5;
|
||||
if (dsi < 0)
|
||||
dsi = dblk->datalen;
|
||||
@@ -436,11 +436,11 @@ copymat2list(MATRIX *smat, long ssi, long num, LIST *lp, long dsi)
|
||||
num = smat->m_size - ssi;
|
||||
if (num == 0)
|
||||
return 0;
|
||||
if ((USB32) ssi + num > smat->m_size)
|
||||
if (ssi + num > smat->m_size)
|
||||
return E_COPY5;
|
||||
if (dsi < 0)
|
||||
dsi = 0;
|
||||
if ((USB32) dsi + num > lp->l_count)
|
||||
if (dsi + num > lp->l_count)
|
||||
return E_COPY7;
|
||||
vtemp = (VALUE *) malloc(num * sizeof(VALUE));
|
||||
if (vtemp == NULL) {
|
||||
@@ -484,11 +484,11 @@ copylist2mat(LIST *lp, long ssi, long num, MATRIX *dmat, long dsi)
|
||||
num = lp->l_count - ssi;
|
||||
if (num == 0)
|
||||
return 0;
|
||||
if ((USB32) ssi + num > lp->l_count)
|
||||
if (ssi + num > lp->l_count)
|
||||
return E_COPY5;
|
||||
if (dsi < 0)
|
||||
dsi = 0;
|
||||
if ((USB32) dsi + num > dmat->m_size)
|
||||
if (dsi + num > dmat->m_size)
|
||||
return E_COPY7;
|
||||
vtemp = (VALUE *) malloc(num * sizeof(VALUE));
|
||||
if (vtemp == NULL) {
|
||||
@@ -533,11 +533,11 @@ copylist2list(LIST *slp, long ssi, long num, LIST *dlp, long dsi)
|
||||
num = slp->l_count - ssi;
|
||||
if (num == 0)
|
||||
return 0;
|
||||
if ((USB32) ssi + num > slp->l_count)
|
||||
if (ssi + num > slp->l_count)
|
||||
return E_COPY5;
|
||||
if (dsi < 0)
|
||||
dsi = 0;
|
||||
if ((USB32) dsi + num > dlp->l_count)
|
||||
if (dsi + num > dlp->l_count)
|
||||
return E_COPY7;
|
||||
vtemp = (VALUE *) malloc(num * sizeof(VALUE));
|
||||
if (vtemp == NULL) {
|
||||
@@ -572,7 +572,7 @@ copyblk2file(BLOCK *sblk, long ssi, long num, FILEID id, long dsi)
|
||||
{
|
||||
FILEIO *fiop;
|
||||
FILE *fp;
|
||||
unsigned int numw;
|
||||
long numw;
|
||||
|
||||
if (ssi > sblk->datalen)
|
||||
return E_COPY2;
|
||||
@@ -609,7 +609,7 @@ copyfile2blk(FILEID id, long ssi, long num, BLOCK *dblk, long dsi, BOOL noreloc)
|
||||
{
|
||||
FILEIO *fiop;
|
||||
FILE *fp;
|
||||
unsigned int numw;
|
||||
long numw;
|
||||
ZVALUE fsize;
|
||||
long filelen;
|
||||
long newlen;
|
||||
@@ -639,7 +639,7 @@ copyfile2blk(FILEID id, long ssi, long num, BLOCK *dblk, long dsi, BOOL noreloc)
|
||||
num = filelen - ssi;
|
||||
if (num == 0)
|
||||
return 0;
|
||||
if ((USB32) ssi + num > filelen)
|
||||
if (ssi + num > filelen)
|
||||
return E_COPY5;
|
||||
if (fseek(fp, ssi, 0)) /* using system fseek XXX */
|
||||
return E_COPYF2;
|
||||
@@ -677,7 +677,7 @@ copystr2file(STRING *str, long ssi, long num, FILEID id, long dsi)
|
||||
{
|
||||
long len;
|
||||
FILEIO *fiop;
|
||||
unsigned int numw;
|
||||
long numw;
|
||||
FILE *fp;
|
||||
|
||||
len = str->s_len;
|
||||
@@ -688,7 +688,7 @@ copystr2file(STRING *str, long ssi, long num, FILEID id, long dsi)
|
||||
num = len - ssi;
|
||||
if (num <= 0) /* Nothing to be copied */
|
||||
return 0;
|
||||
if ((USB32) ssi + num > len)
|
||||
if (ssi + num > len)
|
||||
return E_COPY5; /* Insufficient memory in str */
|
||||
fiop = findid(id, TRUE);
|
||||
if (fiop == NULL)
|
||||
@@ -726,7 +726,7 @@ copyblk2blk(BLOCK *sblk, long ssi, long num, BLOCK *dblk, long dsi, BOOL noreloc
|
||||
num = sblk->datalen - ssi;
|
||||
if (num == 0) /* Nothing to be copied */
|
||||
return 0;
|
||||
if ((unsigned int) ssi + num > sblk->datalen)
|
||||
if (ssi + num > sblk->datalen)
|
||||
return E_COPY5;
|
||||
if (dsi < 0)
|
||||
dsi = dblk->datalen;
|
||||
@@ -888,7 +888,7 @@ copyostr2blk(char *str,long ssi,long num,BLOCK *dblk,long dsi,BOOL noreloc)
|
||||
|
||||
if (ssi > len)
|
||||
return E_COPY2;
|
||||
if (num < 0 || (unsigned long) ssi + num > len)
|
||||
if (num < 0 || ssi + num > len)
|
||||
num = len - ssi;
|
||||
if (num <= 0) /* Nothing to be copied */
|
||||
return 0;
|
||||
@@ -991,7 +991,7 @@ copynum2blk(NUMBER *snum, long ssi, long num, BLOCK *dblk, long dsi, BOOL norelo
|
||||
num = snum->num.len - ssi;
|
||||
if (num == 0) /* Nothing to be copied */
|
||||
return 0;
|
||||
if ((unsigned long) ssi + num > snum->num.len)
|
||||
if (ssi + num > snum->num.len)
|
||||
return E_COPY5;
|
||||
if (dsi < 0)
|
||||
dsi = dblk->datalen;
|
||||
@@ -1044,7 +1044,7 @@ copyblk2num(BLOCK *sblk, long ssi, long num, NUMBER *dnum, long dsi, NUMBER **re
|
||||
num = sblk->datalen - ssi;
|
||||
if (num == 0) /* Nothing to be copied */
|
||||
return 0;
|
||||
if ((unsigned long) ssi + num > sblk->datalen)
|
||||
if (ssi + num > sblk->datalen)
|
||||
return E_COPY5;
|
||||
if (dsi < 0)
|
||||
dsi = dnum->num.len;
|
||||
|
@@ -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: pi.cal,v 29.2 2000/06/07 14:02:25 chongo Exp $
|
||||
* @(#) $Revision: 29.3 $
|
||||
* @(#) $Id: pi.cal,v 29.3 2004/02/23 06:06:38 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/pi.cal,v $
|
||||
*
|
||||
* Under source code control: 1991/05/22 21:56:37
|
||||
@@ -61,7 +61,7 @@ define qpi(epsilon)
|
||||
yn = sqrt2 - 1;
|
||||
an = 6 - 4 * sqrt2;
|
||||
tn = 2;
|
||||
for (count = 0; count < niter; count++) {
|
||||
for (count = 0; count < niter; ++count) {
|
||||
ym = yn;
|
||||
am = an;
|
||||
tn *= 4;
|
||||
@@ -104,7 +104,8 @@ define piforever()
|
||||
* Next approximation
|
||||
*/
|
||||
p = k * k;
|
||||
q = k + k++;
|
||||
q = k << 1;
|
||||
++k;
|
||||
|
||||
a2 = a;
|
||||
b2 = b;
|
||||
|
119
cal/regress.cal
119
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.15 $
|
||||
* @(#) $Id: regress.cal,v 29.15 2003/01/26 19:42:03 chongo Exp $
|
||||
* @(#) $Revision: 29.18 $
|
||||
* @(#) $Id: regress.cal,v 29.18 2004/02/23 05:58:45 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/regress.cal,v $
|
||||
*
|
||||
* Under source code control: 1990/02/15 01:50:36
|
||||
@@ -52,7 +52,8 @@ errmax(-1),; /* prevent errcount from abouting */
|
||||
global ecnt; /* expected value of errcount() */
|
||||
ecnt = 0; /* clear expected errcount() value */
|
||||
|
||||
initcfg = config("all", "oldstd"); /* set config to startup default */
|
||||
initcfg = config("all", "newstd"); /* set config to startup default */
|
||||
defcfg = config("all"); /* capture the default config */
|
||||
config("resource_debug", 0),; /* disable resource startup messages */
|
||||
config("calc_debug", 0),; /* disable internal debugging */
|
||||
config("verbose_quit", 0),; /* disable quit messages */
|
||||
@@ -380,19 +381,19 @@ define test_config()
|
||||
/* check the set and return of all config */
|
||||
callcfg = config("all");
|
||||
print '501: callcfg = config("all")';
|
||||
vrfy(callcfg == startcfg, '502: callcfg == startcfg');
|
||||
|
||||
callcfg = config("all", "oldstd");
|
||||
print '502: callcfg = config("all","oldstd")';
|
||||
oldcfg = config("all", "newstd");
|
||||
print '503: oldcfg = config("all","newstd")';
|
||||
print '503: callcfg = config("all","oldstd")';
|
||||
vrfy(callcfg == startcfg, '504: callcfg == startcfg');
|
||||
newcfg = config("all");
|
||||
print '505: newcfg = config("all")';
|
||||
vrfy(config("all") == newcfg, '506: config("all") == newcfg');
|
||||
vrfy(config("all", oldcfg) == newcfg,
|
||||
'507: config("all", oldcfg) == newcfg');
|
||||
oldcfg = config("all");
|
||||
print '505: oldcfg = config("all");';
|
||||
vrfy(config("all") == oldcfg, '506: config("all") == oldcfg');
|
||||
vrfy(oldcfg==config("all","newstd"),
|
||||
'507: oldcfg==config("all","newstd")');
|
||||
vrfy(defcfg == config("all"), '508: defcfg == config("all")');
|
||||
|
||||
/* vrfy the state of the default config */
|
||||
vrfy(config("all") == oldcfg, '508: config("all") == oldcfg');
|
||||
vrfy(config("mode") == "real",
|
||||
'509: config("mode") == "real"');
|
||||
vrfy(config("display") == 20,
|
||||
@@ -429,58 +430,59 @@ define test_config()
|
||||
'525: config("cfappr") == 0');
|
||||
vrfy(config("cfsim") == 8,
|
||||
'526: config("cfsim") == 8');
|
||||
vrfy(config("outround") == 2,
|
||||
'527: config("outround") == 2');
|
||||
vrfy(config("outround") == 24,
|
||||
'527: config("outround") == 24');
|
||||
vrfy(config("round") == 24,
|
||||
'528: config("round") == 24');
|
||||
vrfy(config("leadzero") == 0,
|
||||
'529: config("leadzero") == 0');
|
||||
vrfy(config("leadzero") == 1,
|
||||
'529: config("leadzero") == 1');
|
||||
vrfy(config("fullzero") == 0,
|
||||
'530: config("fullzero") == 0');
|
||||
vrfy(config("maxscan") == 20,
|
||||
'531: config("maxscan") == 20');
|
||||
vrfy(config("prompt") == "> ",
|
||||
'532: config("prompt") == "> "');
|
||||
vrfy(config("more") == ">> ",
|
||||
'533: config("more") == ">> "');
|
||||
vrfy(config("prompt") == "; ",
|
||||
'532: config("prompt") == "; "');
|
||||
vrfy(config("more") == ";; ",
|
||||
'533: config("more") == ";; "');
|
||||
|
||||
/* convert to "newstd" config by individual changes */
|
||||
vrfy(config("display", 10) == 20,
|
||||
'534: config("display") == 20');
|
||||
vrfy(config("epsilon",1e-10)==1e-20,
|
||||
'535: config("epsilon",1e-10)==1e-20');
|
||||
vrfy(config("quo", 0) == 2, '536: config("quo", 0) == 2');
|
||||
vrfy(config("outround", 24) == 2,
|
||||
'537: config("outround", 24) == 2');
|
||||
vrfy(config("leadzero","y") == 0,
|
||||
'538: config("leadzero","y") == 0');
|
||||
vrfy(config("fullzero", 1) == 0,
|
||||
'539: config("fullzero", 1) == 0');
|
||||
vrfy(config("prompt", "; ") == "> ",
|
||||
'540: config("prompt", "; ") == "> "');
|
||||
vrfy(config("more", ";; ") == ">> ",
|
||||
'541: config("more", ";; ") == ">> "');
|
||||
vrfy(config("all") == newcfg, '542: config("all") == newcfg');
|
||||
/* convert to "oldstd" config by individual changes */
|
||||
print '534: test unused';
|
||||
vrfy(config("outround", 2) == 24,
|
||||
'535: config("outround", 2) == 24');
|
||||
vrfy(config("leadzero","n") == 1,
|
||||
'536: config("leadzero","n") == 1');
|
||||
print '537: test unused';
|
||||
vrfy(config("prompt", "> ") == "; ",
|
||||
'538: config("prompt", "> ") == "; "');
|
||||
vrfy(config("more", ">> ") == ";; ",
|
||||
'539: config("more", ">> ") == ";; "');
|
||||
vrfy(config("all") == oldcfg, '540: config("all") == oldcfg');
|
||||
|
||||
/* check on the new config("fullzero") effect */
|
||||
vrfy(config("all","oldstd") == newcfg,
|
||||
'543: config("all",callcfg) == newcfg');
|
||||
/* restore the configation at the start of this function */
|
||||
vrfy(config("all",callcfg) == oldcfg,
|
||||
'541: config("all",callcfg) == oldcfg');
|
||||
|
||||
/* display and fullzero tests */
|
||||
vrfy(config("display",2) == 20,
|
||||
'544: config("display",2) == 20');
|
||||
'542: config("display",2) == 20');
|
||||
vrfy(config("leadzero",0) == 1,
|
||||
'543: config("leadzero",0) == 1');
|
||||
vrfy(config("fullzero",1) == 0,
|
||||
'545: config("fullzero",1) == 0');
|
||||
'544: config("fullzero",1) == 0');
|
||||
vrfy(strprintf("%d %d %d", 0, 1, 2) == ".00 1.00 2.00",
|
||||
'546: strprintf("%d %d %d", 0, 1, 2) == ".00 1.00 2.00"');
|
||||
'545: strprintf("%d %d %d", 0, 1, 2) == ".00 1.00 2.00"');
|
||||
vrfy(config("display",20) == 2,
|
||||
'547: config("display",20) == 2');
|
||||
vrfy(config("fullzero",0),
|
||||
'548: config("fullzero",0)');
|
||||
'546: config("display",20) == 2');
|
||||
vrfy(config("leadzero",1) == 0,
|
||||
'547: config("leadzero",1) == 0');
|
||||
vrfy(config("fullzero",0) == 1,
|
||||
'548: config("fullzero",0) == 1');
|
||||
vrfy(strprintf("%d %d %d", 0, 1, 2) == "0 1 2",
|
||||
'549: strprintf("%d %d %d", 0, 1, 2) == "0 1 2"');
|
||||
|
||||
/* restore calling config */
|
||||
vrfy(config("all",callcfg) == oldcfg,
|
||||
'550: config("all",callcfg) == oldcfg');
|
||||
vrfy(config("all",callcfg) == startcfg,
|
||||
'550: config("all",callcfg) == startcfg');
|
||||
vrfy(config("all") == callcfg, '551: config("all") == callcfg');
|
||||
vrfy(config("all") == startcfg, '552: config("all") == startcfg');
|
||||
|
||||
@@ -1000,9 +1002,9 @@ define test_functions()
|
||||
vrfy(strpos(a, "abc") == 1, '946: strpos(a, "abc") == 1');
|
||||
vrfy(strpos(a, "xyz") == 0, '947: strpos(a, "xyz") == 0');
|
||||
vrfy(strpos(a, a) == 1, '948: strpos(a, a) == 1');
|
||||
if (config("windows")) {
|
||||
print '949: test skipped for windows systems';
|
||||
print '950: test skipped for windows systems';
|
||||
if (config("windows") || config("cygwin")) {
|
||||
print '949: test skipped for windows or cygwin systems';
|
||||
print '950: test skipped for windows or cygwin systems';
|
||||
} else {
|
||||
vrfy(system("") == 0, '949: system("") == 0');
|
||||
vrfy(system("true") == 0, '950: system("true") == 0');
|
||||
@@ -2208,6 +2210,7 @@ print '033: read -once test2300';
|
||||
define test_xx_incdec()
|
||||
{
|
||||
local A, B;
|
||||
local n;
|
||||
|
||||
print '2300: Beginning object increment/decrement test';
|
||||
|
||||
@@ -2240,6 +2243,20 @@ define test_xx_incdec()
|
||||
vrfy(ckmat(B,1,2,3) == 1,
|
||||
'2314: ckmat(B,1,2,3) == 1');
|
||||
|
||||
n = 1;
|
||||
print '2315: n = 1';
|
||||
vrfy(n + n + n + n++ == 4,
|
||||
'2316: n + n + n + n++ == 4');
|
||||
vrfy(n == 2, '2317: n == 2');
|
||||
n = 1;
|
||||
print '2318: n = 1';
|
||||
vrfy(n + n + n++ == 3, '2319: n + n + n++ == 3');
|
||||
vrfy(n == 2, '2320: n == 2');
|
||||
n = 1;
|
||||
print '2321: n = 1';
|
||||
vrfy(n + n++ == 2, '2322: n + n++ == 3');
|
||||
vrfy(n == 2, '2323: n == 2');
|
||||
|
||||
print '2315: Ending object increment/decrement test';
|
||||
}
|
||||
print '034: parsed test_xx_incdec()';
|
||||
|
18
calc.c
18
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.8 $
|
||||
* @(#) $Id: calc.c,v 29.8 2001/04/10 22:03:13 chongo Exp $
|
||||
* @(#) $Revision: 29.10 $
|
||||
* @(#) $Id: calc.c,v 29.10 2004/02/23 09:21:35 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/calc.c,v $
|
||||
*
|
||||
* Under source code control: 1990/02/15 01:48:11
|
||||
@@ -83,6 +83,8 @@
|
||||
# define strdup(x) calc_strdup((CONST char *)(x))
|
||||
#endif /* HAVE_STRDUP */
|
||||
|
||||
#include "have_unused.h"
|
||||
|
||||
|
||||
/*
|
||||
* static definitions and functions
|
||||
@@ -214,7 +216,13 @@ main(int argc, char **argv)
|
||||
havearg = TRUE;
|
||||
break;
|
||||
case 'n':
|
||||
new_std = TRUE;
|
||||
/*
|
||||
* -n is deprecated and may be reused
|
||||
* for another purpose in the future
|
||||
*/
|
||||
break;
|
||||
case 'O':
|
||||
use_old_std = TRUE;
|
||||
break;
|
||||
case 'p':
|
||||
p_flag = TRUE;
|
||||
@@ -425,7 +433,7 @@ main(int argc, char **argv)
|
||||
fprintf(stderr,
|
||||
"usage: %s [-a] [-c] [-C] [-d] [-e] [-h] [-i] [-m mode]\n"
|
||||
"\t[-D calc_debug[:resource_debug[:user_debug]]]\n"
|
||||
"\t[-n] [-p] [-q] [-u] [-v] "
|
||||
"\t[-O] [-p] [-q] [-u] [-v] "
|
||||
"[--] [calc_cmd ...]\n",
|
||||
program);
|
||||
exit(1);
|
||||
@@ -700,7 +708,7 @@ main(int argc, char **argv)
|
||||
*/
|
||||
/*ARGSUSED*/
|
||||
static void
|
||||
intint(int arg)
|
||||
intint(int UNUSED arg)
|
||||
{
|
||||
(void) signal(SIGINT, intint);
|
||||
if (inputwait || (++abortlevel >= ABORT_NOW)) {
|
||||
|
6
calc.h
6
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.10 $
|
||||
* @(#) $Id: calc.h,v 29.10 2002/03/12 09:40:57 chongo Exp $
|
||||
* @(#) $Revision: 29.11 $
|
||||
* @(#) $Id: calc.h,v 29.11 2003/08/26 04:36:10 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/calc.h,v $
|
||||
*
|
||||
* Under source code control: 1990/02/15 01:48:31
|
||||
@@ -232,7 +232,7 @@ extern DLL char *program; /* our name (argv[0]) */
|
||||
|
||||
extern DLL int no_env; /* TRUE (-e) => ignore env vars on startup */
|
||||
extern DLL int errmax; /* if >= 0, error when errcount exceeds errmax */
|
||||
extern DLL int new_std; /* TRUE (-n) => use newstd configuration */
|
||||
extern DLL int use_old_std; /* TRUE (-O) => use classic configuration */
|
||||
|
||||
extern DLL int allow_read; /* FALSE => dont open any files for reading */
|
||||
extern DLL int allow_write; /* FALSE => dont open any files for writing */
|
||||
|
31
calc.man
31
calc.man
@@ -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.10 $
|
||||
.\" @(#) $Id: calc.man,v 29.10 2003/01/18 21:19:21 chongo Exp $
|
||||
.\" @(#) $Revision: 29.12 $
|
||||
.\" @(#) $Id: calc.man,v 29.12 2004/02/23 05:21:24 chongo Exp $
|
||||
.\" @(#) $Source: /usr/local/src/cmd/calc/RCS/calc.man,v $
|
||||
.\"
|
||||
.\" Under source code control: 1991/07/23 05:48:26
|
||||
@@ -44,7 +44,7 @@ calc \- arbitrary precision calculator
|
||||
.RB [ \-h ]
|
||||
.RB [ \-i ]
|
||||
.RB [ \-m\ \&mode ]
|
||||
.RB [ \-n ]
|
||||
.RB [ \-O ]
|
||||
.br
|
||||
.RB [ \-p ]
|
||||
.RB [ \-q ]
|
||||
@@ -54,7 +54,7 @@ calc \- arbitrary precision calculator
|
||||
.RB [ calc_cmd\ \&.\|.\|. ]
|
||||
.in -5n
|
||||
.sp
|
||||
\fI#!${BINDIR}/calc\fP\ \fB\-f\fP\ [other_flags\ \&...]
|
||||
\fI#!${BINDIR}/calc\fP\ [other_flags\ \&...] \fB\-f\fP\
|
||||
.SH DESCRIPTION
|
||||
\&
|
||||
.br
|
||||
@@ -302,11 +302,22 @@ The reading of key bindings is also disabled
|
||||
when the mode disables opening of files for reading.
|
||||
|
||||
.TP
|
||||
.B \-n
|
||||
Use the new configuration defaults instead of the old
|
||||
default classic defaults.
|
||||
.B \-O
|
||||
Use the old classic defaults instead of the
|
||||
default configuration.
|
||||
This flag as the same effect
|
||||
as executing \fBconfig("all", "newcfg")\fP at startup time.
|
||||
as executing \fBconfig("all", "oldcfg")\fP at startup time.
|
||||
.sp 1
|
||||
NOTE: Older versions of calc used
|
||||
.B \-n
|
||||
to setup a modified form of the default calc configuration.
|
||||
The
|
||||
.B \-n
|
||||
flag currently does nothing.
|
||||
Use of the
|
||||
.B \-n
|
||||
flag is now deprecated and may be used for
|
||||
something else in the future.
|
||||
|
||||
.TP
|
||||
.B \-p
|
||||
@@ -577,7 +588,7 @@ as in:
|
||||
.sp 1
|
||||
.in +5n
|
||||
.nf
|
||||
\fI#!${BINDIR}/calc\fP\ \fB\-f\fP\ [other_flags\ \&...]
|
||||
\fI#!${BINDIR}/calc\fP\ [other_flags\ \&...] \fB\-f\fP\
|
||||
.fi
|
||||
.in -5n
|
||||
.sp 1
|
||||
@@ -623,7 +634,7 @@ the file
|
||||
.sp 1
|
||||
.in +5n
|
||||
.nf
|
||||
\fI#!${BINDIR}/calc\fP\ \fB\-f\fP\ \&\fB\-q\fP
|
||||
\fI#!${BINDIR}/calc\fP\ \&\fB\-q\fP \fB\-f\fP\
|
||||
#
|
||||
# mersenne - an example of a calc \fBshell script file\fP
|
||||
|
||||
|
@@ -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.11 $
|
||||
# @(#) $Id: calc.spec.in,v 29.11 2003/02/26 17:59:01 chongo Exp $
|
||||
# @(#) $Revision: 29.12 $
|
||||
# @(#) $Id: calc.spec.in,v 29.12 2003/04/15 03:37:59 chongo Exp $
|
||||
# @(#) $Source: /usr/local/src/cmd/calc/RCS/calc.spec.in,v $
|
||||
#
|
||||
# Under source code control: 2003/02/16 20:21:39
|
||||
@@ -37,7 +37,7 @@
|
||||
Summary: Arbitrary precision calculator.
|
||||
Name: calc
|
||||
Version: <<<PROJECT_VERSION>>>
|
||||
Release: 2
|
||||
Release: 0
|
||||
Copyright: LGPL
|
||||
Group: Applications/Engineering
|
||||
Source: %{name}-%{version}.tar.gz
|
||||
|
16
codegen.c
16
codegen.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.7 $
|
||||
* @(#) $Id: codegen.c,v 29.7 2002/07/10 11:51:51 chongo Exp $
|
||||
* @(#) $Revision: 29.8 $
|
||||
* @(#) $Id: codegen.c,v 29.8 2004/02/23 05:39:35 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/codegen.c,v $
|
||||
*
|
||||
* Under source code control: 1990/02/15 01:48:13
|
||||
@@ -1749,6 +1749,8 @@ getrelation(void)
|
||||
rescantoken();
|
||||
return type;
|
||||
}
|
||||
if (islvalue(type))
|
||||
addop(OP_GETVALUE);
|
||||
(void) getsum();
|
||||
addop(op);
|
||||
return EXPR_RVALUE;
|
||||
@@ -1788,6 +1790,8 @@ getsum(void)
|
||||
rescantoken();
|
||||
return type;
|
||||
}
|
||||
if (islvalue(type))
|
||||
addop(OP_GETVALUE);
|
||||
(void) getproduct();
|
||||
addop(op);
|
||||
type = EXPR_RVALUE;
|
||||
@@ -1817,6 +1821,8 @@ getproduct(void)
|
||||
rescantoken();
|
||||
return type;
|
||||
}
|
||||
if (islvalue(type))
|
||||
addop(OP_GETVALUE);
|
||||
(void) getorexpr();
|
||||
addop(op);
|
||||
type = EXPR_RVALUE;
|
||||
@@ -1836,6 +1842,8 @@ getorexpr(void)
|
||||
|
||||
type = getandexpr();
|
||||
while (gettoken() == T_OR) {
|
||||
if (islvalue(type))
|
||||
addop(OP_GETVALUE);
|
||||
(void) getandexpr();
|
||||
addop(OP_OR);
|
||||
type = EXPR_RVALUE;
|
||||
@@ -1867,6 +1875,8 @@ getandexpr(void)
|
||||
rescantoken();
|
||||
return type;
|
||||
}
|
||||
if (islvalue(type))
|
||||
addop(OP_GETVALUE);
|
||||
(void) getshiftexpr();
|
||||
addop(op);
|
||||
type = EXPR_RVALUE;
|
||||
@@ -1919,6 +1929,8 @@ getshiftexpr(void)
|
||||
rescantoken();
|
||||
return type;
|
||||
}
|
||||
if (islvalue(type))
|
||||
addop(OP_GETVALUE);
|
||||
(void) getshiftexpr();
|
||||
addop(op);
|
||||
return EXPR_RVALUE;
|
||||
|
35
config.c
35
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.8 $
|
||||
* @(#) $Id: config.c,v 29.8 2002/12/29 09:20:25 chongo Exp $
|
||||
* @(#) $Revision: 29.12 $
|
||||
* @(#) $Id: config.c,v 29.12 2004/02/23 05:59:50 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/config.c,v $
|
||||
*
|
||||
* Under source code control: 1991/07/20 00:21:56
|
||||
@@ -92,6 +92,7 @@ NAMETYPE configs[] = {
|
||||
{"program", CONFIG_PROGRAM},
|
||||
{"basename", CONFIG_BASENAME},
|
||||
{"windows", CONFIG_WINDOWS},
|
||||
{"cygwin", CONFIG_CYGWIN},
|
||||
{"version", CONFIG_VERSION},
|
||||
{NULL, 0}
|
||||
};
|
||||
@@ -143,15 +144,20 @@ CONFIG oldstd = { /* backward compatible standard configuration */
|
||||
TRUE, /* running under windows */
|
||||
#else
|
||||
FALSE, /* congrats, you are not using windows */
|
||||
#endif
|
||||
#if defined(__CYGWIN__)
|
||||
TRUE, /* compiled under cygwin */
|
||||
#else
|
||||
FALSE, /* not compiled with cygwin */
|
||||
#endif
|
||||
NULL /* version */
|
||||
};
|
||||
CONFIG newstd = { /* new non-backward compatible configuration */
|
||||
MODE_INITIAL, /* current output mode */
|
||||
MODE2_INITIAL, /* current output mode */
|
||||
10, /* current output digits for float or exp */
|
||||
20, /* current output digits for float or exp */
|
||||
NULL, /* loaded in at startup - default error for real functions */
|
||||
NEW_EPSILONPREC_DEFAULT, /* binary precision of epsilon */
|
||||
EPSILONPREC_DEFAULT, /* binary precision of epsilon */
|
||||
FALSE, /* tracing flags */
|
||||
MAXPRINT_DEFAULT, /* number of elements to print */
|
||||
MUL_ALG2, /* size of number to use multiply alg 2 */
|
||||
@@ -161,7 +167,7 @@ CONFIG newstd = { /* new non-backward compatible configuration */
|
||||
TRUE, /* ok to print a tilde on approximations */
|
||||
TRUE, /* ok to print tab before numeric values */
|
||||
0, /* quomod() default rounding mode */
|
||||
0, /* quotient // default rounding mode */
|
||||
2, /* quotient // default rounding mode */
|
||||
0, /* mod % default rounding mode */
|
||||
24, /* sqrt() default rounding mode */
|
||||
24, /* appr() default rounding mode */
|
||||
@@ -170,7 +176,7 @@ CONFIG newstd = { /* new non-backward compatible configuration */
|
||||
24, /* output default rounding mode */
|
||||
24, /* round()/bround() default rounding mode */
|
||||
TRUE, /* ok to print leading 0 before decimal pt */
|
||||
1, /* ok to print trailing 0's */
|
||||
0, /* ok to print trailing 0's */
|
||||
MAXSCANCOUNT, /* max scan errors before abort */
|
||||
"; ", /* normal prompt */
|
||||
";; ", /* prompt when inside multi-line input */
|
||||
@@ -189,6 +195,11 @@ CONFIG newstd = { /* new non-backward compatible configuration */
|
||||
TRUE, /* running under windows */
|
||||
#else
|
||||
FALSE, /* congrats, you are not using windows */
|
||||
#endif
|
||||
#if defined(__CYGWIN__)
|
||||
TRUE, /* compiled under cygwin */
|
||||
#else
|
||||
FALSE, /* not compiled with cygwin */
|
||||
#endif
|
||||
NULL /* version */
|
||||
};
|
||||
@@ -857,6 +868,10 @@ setconfig(int type, VALUE *vp)
|
||||
math_error("The windows config parameter is read-only");
|
||||
/*NOTREACHED*/
|
||||
|
||||
case CONFIG_CYGWIN:
|
||||
math_error("The cygwin config parameter is read-only");
|
||||
/*NOTREACHED*/
|
||||
|
||||
case CONFIG_VERSION:
|
||||
math_error("The version config parameter is read-only");
|
||||
/*NOTREACHED*/
|
||||
@@ -1239,6 +1254,14 @@ config_value(CONFIG *cfg, int type, VALUE *vp)
|
||||
}
|
||||
return;
|
||||
|
||||
case CONFIG_CYGWIN:
|
||||
if (cfg->cygwin) {
|
||||
vp->v_num = itoq(1);
|
||||
} else {
|
||||
vp->v_num = itoq(0);
|
||||
}
|
||||
return;
|
||||
|
||||
case CONFIG_VERSION:
|
||||
vp->v_type = V_STR;
|
||||
if (cfg->version == NULL) {
|
||||
|
26
config.h
26
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.12 $
|
||||
* @(#) $Id: config.h,v 29.12 2002/12/29 09:20:25 chongo Exp $
|
||||
* @(#) $Revision: 29.15 $
|
||||
* @(#) $Id: config.h,v 29.15 2004/02/23 06:08:29 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/config.h,v $
|
||||
*
|
||||
* Under source code control: 1995/11/01 22:20:17
|
||||
@@ -78,19 +78,20 @@
|
||||
#define CONFIG_MORE 25
|
||||
#define CONFIG_BLKMAXPRINT 26
|
||||
#define CONFIG_BLKVERBOSE 27
|
||||
#define CONFIG_BLKBASE 28
|
||||
#define CONFIG_BLKFMT 29
|
||||
#define CONFIG_BLKBASE 28
|
||||
#define CONFIG_BLKFMT 29
|
||||
#define CONFIG_RESOURCE_DEBUG 30
|
||||
#define CONFIG_LIB_DEBUG CONFIG_RESOURCE_DEBUG
|
||||
#define CONFIG_CALC_DEBUG 31
|
||||
#define CONFIG_USER_DEBUG 32
|
||||
#define CONFIG_VERBOSE_QUIT 33
|
||||
#define CONFIG_CTRL_D 34
|
||||
#define CONFIG_PROGRAM 35
|
||||
#define CONFIG_BASENAME 36
|
||||
#define CONFIG_VERSION 37
|
||||
#define CONFIG_WINDOWS 38
|
||||
#define CONFIG_CTRL_D 34
|
||||
#define CONFIG_PROGRAM 35
|
||||
#define CONFIG_BASENAME 36
|
||||
#define CONFIG_VERSION 37
|
||||
#define CONFIG_WINDOWS 38
|
||||
#define CONFIG_MODE2 39
|
||||
#define CONFIG_CYGWIN 40
|
||||
|
||||
|
||||
/*
|
||||
@@ -99,8 +100,6 @@
|
||||
#define DISPLAY_DEFAULT 20 /* default digits for float display */
|
||||
#define EPSILON_DEFAULT "1e-20" /* allowed error for float calculations */
|
||||
#define EPSILONPREC_DEFAULT 67 /* 67 ==> 2^-67 <= EPSILON_DEFAULT < 2^-66 */
|
||||
#define NEW_EPSILON_DEFAULT "1e-10" /* newstd EPSILON_DEFAULT */
|
||||
#define NEW_EPSILONPREC_DEFAULT 34 /* 34 ==> 2^-34 <= 1e-10 < 2^-33 */
|
||||
#define MAXPRINT_DEFAULT 16 /* default number of elements printed */
|
||||
#define MAXSCANCOUNT 20 /* default max scan errors before an abort */
|
||||
|
||||
@@ -157,6 +156,7 @@ struct config {
|
||||
char *program; /* our name */
|
||||
char *base_name; /* basename of our name */
|
||||
BOOL windows; /* TRUE => running under MS windows */
|
||||
BOOL cygwin; /* TRUE => compiled with cygwin */
|
||||
char *version; /* calc version string */
|
||||
};
|
||||
typedef struct config CONFIG;
|
||||
@@ -196,8 +196,8 @@ typedef struct config CONFIG;
|
||||
* global configuration states and aliases
|
||||
*/
|
||||
extern DLL CONFIG *conf; /* current configuration */
|
||||
extern DLL CONFIG oldstd; /* backward compatible standard configuration */
|
||||
extern DLL CONFIG newstd; /* new non-backward compatible configuration */
|
||||
extern DLL CONFIG oldstd; /* old classic standard configuration */
|
||||
extern DLL CONFIG newstd; /* default compatible configuration */
|
||||
extern DLL char *calc_debug; /* !=NULL => value of config("calc_debug") */
|
||||
extern DLL char *resource_debug; /* !=NULL => config("resource_debug") value */
|
||||
extern DLL char *user_debug; /* !=NULL => value of config("user_debug") */
|
||||
|
10
const.c
10
const.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: const.c,v 29.2 2000/06/07 14:02:13 chongo Exp $
|
||||
* @(#) $Revision: 29.3 $
|
||||
* @(#) $Id: const.c,v 29.3 2004/02/23 07:50:41 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/const.c,v $
|
||||
*
|
||||
* Under source code control: 1990/02/15 01:48:14
|
||||
@@ -34,7 +34,7 @@
|
||||
|
||||
#define CONSTALLOCSIZE 400 /* number of constants to allocate */
|
||||
|
||||
static long constcount; /* number of constants defined */
|
||||
static unsigned long constcount;/* number of constants defined */
|
||||
static long constavail; /* number of constants available */
|
||||
static NUMBER **consttable; /* table of constants */
|
||||
|
||||
@@ -92,7 +92,7 @@ addqconstant(NUMBER *q)
|
||||
{
|
||||
register NUMBER **tp; /* pointer to current number */
|
||||
register NUMBER *t; /* number being tested */
|
||||
long index; /* index into constant table */
|
||||
unsigned long index; /* index into constant table */
|
||||
long numlen; /* numerator length */
|
||||
long denlen; /* denominator length */
|
||||
HALF numlow; /* bottom value of numerator */
|
||||
@@ -221,7 +221,7 @@ trimconstants(void)
|
||||
void
|
||||
showconstants(void)
|
||||
{
|
||||
long index;
|
||||
unsigned long index;
|
||||
NUMBER **qp;
|
||||
long count;
|
||||
|
||||
|
@@ -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.20 $
|
||||
# @(#) $Id: Makefile,v 29.20 2003/01/14 02:18:45 chongo Exp $
|
||||
# @(#) $Revision: 29.21 $
|
||||
# @(#) $Id: Makefile,v 29.21 2004/02/23 09:23:08 chongo Exp $
|
||||
# @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/Makefile,v $
|
||||
#
|
||||
# Under source code control: 1997/03/09 02:28:54
|
||||
@@ -765,6 +765,7 @@ c_argv.o: ../have_memmv.h
|
||||
c_argv.o: ../have_newstr.h
|
||||
c_argv.o: ../have_stdlib.h
|
||||
c_argv.o: ../have_string.h
|
||||
c_argv.o: ../have_unused.h
|
||||
c_argv.o: ../longbits.h
|
||||
c_argv.o: ../md5.h
|
||||
c_argv.o: ../nametype.h
|
||||
@@ -791,6 +792,7 @@ c_devnull.o: ../have_memmv.h
|
||||
c_devnull.o: ../have_newstr.h
|
||||
c_devnull.o: ../have_stdlib.h
|
||||
c_devnull.o: ../have_string.h
|
||||
c_devnull.o: ../have_unused.h
|
||||
c_devnull.o: ../longbits.h
|
||||
c_devnull.o: ../md5.h
|
||||
c_devnull.o: ../nametype.h
|
||||
@@ -817,6 +819,7 @@ c_help.o: ../have_memmv.h
|
||||
c_help.o: ../have_newstr.h
|
||||
c_help.o: ../have_stdlib.h
|
||||
c_help.o: ../have_string.h
|
||||
c_help.o: ../have_unused.h
|
||||
c_help.o: ../longbits.h
|
||||
c_help.o: ../md5.h
|
||||
c_help.o: ../nametype.h
|
||||
@@ -843,6 +846,7 @@ c_pzasusb8.o: ../have_memmv.h
|
||||
c_pzasusb8.o: ../have_newstr.h
|
||||
c_pzasusb8.o: ../have_stdlib.h
|
||||
c_pzasusb8.o: ../have_string.h
|
||||
c_pzasusb8.o: ../have_unused.h
|
||||
c_pzasusb8.o: ../longbits.h
|
||||
c_pzasusb8.o: ../md5.h
|
||||
c_pzasusb8.o: ../nametype.h
|
||||
@@ -872,6 +876,7 @@ c_sysinfo.o: ../have_memmv.h
|
||||
c_sysinfo.o: ../have_newstr.h
|
||||
c_sysinfo.o: ../have_stdlib.h
|
||||
c_sysinfo.o: ../have_string.h
|
||||
c_sysinfo.o: ../have_unused.h
|
||||
c_sysinfo.o: ../hist.h
|
||||
c_sysinfo.o: ../longbits.h
|
||||
c_sysinfo.o: ../longlong.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.2 $
|
||||
* @(#) $Id: c_argv.c,v 29.2 2000/06/07 14:03:03 chongo Exp $
|
||||
* @(#) $Revision: 29.3 $
|
||||
* @(#) $Id: c_argv.c,v 29.3 2004/02/23 09:19:18 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/c_argv.c,v $
|
||||
*
|
||||
* Under source code control: 1997/03/09 20:27:37
|
||||
@@ -40,6 +40,8 @@
|
||||
#include "../config.h"
|
||||
#include "../calc.h"
|
||||
|
||||
#include "../have_unused.h"
|
||||
|
||||
/*
|
||||
* c_argv - a custom function display info about its args
|
||||
*
|
||||
@@ -51,7 +53,7 @@
|
||||
*/
|
||||
/*ARGSUSED*/
|
||||
VALUE
|
||||
c_argv(char *name, int count, VALUE **vals)
|
||||
c_argv(char UNUSED *name, int count, VALUE **vals)
|
||||
{
|
||||
VALUE result; /* what we will return */
|
||||
ZVALUE zfilelen; /* length of a file as a ZVALUE */
|
||||
|
@@ -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: c_devnull.c,v 29.2 2000/06/07 14:03:03 chongo Exp $
|
||||
* @(#) $Revision: 29.3 $
|
||||
* @(#) $Id: c_devnull.c,v 29.3 2004/02/23 09:19:18 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/c_devnull.c,v $
|
||||
*
|
||||
* Under source code control: 1997/03/09 17:49:12
|
||||
@@ -36,6 +36,8 @@
|
||||
#include "../value.h"
|
||||
#include "../custom.h"
|
||||
|
||||
#include "../have_unused.h"
|
||||
|
||||
|
||||
/*
|
||||
* c_devnull - a custom function that does nothing
|
||||
@@ -45,7 +47,7 @@
|
||||
*/
|
||||
/*ARGSUSED*/
|
||||
VALUE
|
||||
c_devnull(char *name, int count, VALUE **vals)
|
||||
c_devnull(char UNUSED *name, int UNUSED count, VALUE UNUSED **vals)
|
||||
{
|
||||
VALUE result; /* what we will return */
|
||||
|
||||
|
@@ -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: c_help.c,v 29.2 2000/06/07 14:03:03 chongo Exp $
|
||||
* @(#) $Revision: 29.3 $
|
||||
* @(#) $Id: c_help.c,v 29.3 2004/02/23 09:19:18 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/c_help.c,v $
|
||||
*
|
||||
* Under source code control: 1997/03/09 05:25:41
|
||||
@@ -36,6 +36,8 @@
|
||||
#include "../value.h"
|
||||
#include "../custom.h"
|
||||
|
||||
#include "../have_unused.h"
|
||||
|
||||
|
||||
/*
|
||||
* c_help - custom help function
|
||||
@@ -56,7 +58,7 @@
|
||||
*/
|
||||
/*ARGSUSED*/
|
||||
VALUE
|
||||
c_help(char *name, int count, VALUE **vals)
|
||||
c_help(char UNUSED *name, int UNUSED count, VALUE **vals)
|
||||
{
|
||||
VALUE result; /* what we will return */
|
||||
|
||||
|
@@ -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: c_pzasusb8.c,v 29.2 2000/06/07 14:03:03 chongo Exp $
|
||||
* @(#) $Revision: 29.3 $
|
||||
* @(#) $Id: c_pzasusb8.c,v 29.3 2004/02/23 09:19:18 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/c_pzasusb8.c,v $
|
||||
*
|
||||
* Under source code control: 1999/10/06 03:12:25
|
||||
@@ -37,6 +37,8 @@
|
||||
#include "../custom.h"
|
||||
#include "../zmath.h"
|
||||
|
||||
#include "../have_unused.h"
|
||||
|
||||
/*
|
||||
* c_pzasusb8 - print numereator as a string of USB8s
|
||||
*
|
||||
@@ -49,7 +51,7 @@
|
||||
*/
|
||||
/*ARGSUSED*/
|
||||
VALUE
|
||||
c_pzasusb8(char *name, int count, VALUE **vals)
|
||||
c_pzasusb8(char UNUSED *name, int UNUSED count, VALUE **vals)
|
||||
{
|
||||
VALUE result; /* what we will return */
|
||||
ZVALUE z; /* numerator of the value */
|
||||
|
@@ -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.5 $
|
||||
* @(#) $Id: c_sysinfo.c,v 29.5 2001/04/14 23:04:17 chongo Exp $
|
||||
* @(#) $Revision: 29.7 $
|
||||
* @(#) $Id: c_sysinfo.c,v 29.7 2004/02/23 09:19:18 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/c_sysinfo.c,v $
|
||||
*
|
||||
* Under source code control: 1997/03/09 23:14:40
|
||||
@@ -53,6 +53,8 @@
|
||||
#include "../zrand.h"
|
||||
#include "../zrandom.h"
|
||||
|
||||
#include "../have_unused.h"
|
||||
|
||||
|
||||
/*
|
||||
* sys_info - names and values of selected #defines
|
||||
@@ -128,8 +130,6 @@ static struct infoname sys_info[] = {
|
||||
{"MAX_SM_PRIME", "larest 32 bit prime", NULL, (FULL)MAX_SM_PRIME},
|
||||
{"MAX_SM_VAL", "larest 32 bit value", NULL, (FULL)MAX_SM_VAL},
|
||||
{"MUL_ALG2", "default size for alternative multiply", NULL, (FULL)MUL_ALG2},
|
||||
{"NEW_EPSILONPREC_DEFAULT", "2^-EPSILON_DEFAULT <= EPSILON_DEFAULT", NULL, (FULL)NEW_EPSILONPREC_DEFAULT},
|
||||
{"NEW_EPSILON_DEFAULT", "newstd EPSILON_DEFAULT", NEW_EPSILON_DEFAULT, (FULL)0},
|
||||
{"NXT_MAP_PRIME", "smallest odd prime not in pr_map", NULL, (FULL)NXT_MAP_PRIME},
|
||||
{"NXT_PFACT_VAL", "next prime for higher pfact values", NULL, (FULL)NXT_PFACT_VAL},
|
||||
{"OFF_T_BITS", "file offset size in bits", NULL, (FULL)OFF_T_BITS},
|
||||
@@ -181,7 +181,7 @@ static void dump_mening_value(void); /* custom("sysinfo", 2) */
|
||||
*/
|
||||
/*ARGSUSED*/
|
||||
VALUE
|
||||
c_sysinfo(char *name, int count, VALUE **vals)
|
||||
c_sysinfo(char UNUSED *name, int count, VALUE **vals)
|
||||
{
|
||||
VALUE result; /* what we will return */
|
||||
struct infoname *p; /* current infoname */
|
||||
|
6
file.c
6
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.7 $
|
||||
* @(#) $Id: file.c,v 29.7 2001/04/10 22:06:46 chongo Exp $
|
||||
* @(#) $Revision: 29.8 $
|
||||
* @(#) $Id: file.c,v 29.8 2004/02/23 07:53:12 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/file.c,v $
|
||||
*
|
||||
* Under source code control: 1991/07/20 00:21:56
|
||||
@@ -810,7 +810,7 @@ idprintf(FILEID id, char *fmt, int count, VALUE **vals)
|
||||
VALUE *vp;
|
||||
char *str;
|
||||
int ch;
|
||||
unsigned long len;
|
||||
long len;
|
||||
int oldmode, newmode;
|
||||
long olddigits, newdigits;
|
||||
long width, precision;
|
||||
|
9
func.c
9
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.12 $
|
||||
* @(#) $Id: func.c,v 29.12 2002/12/29 09:20:25 chongo Exp $
|
||||
* @(#) $Revision: 29.13 $
|
||||
* @(#) $Id: func.c,v 29.13 2004/02/23 07:25:41 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/func.c,v $
|
||||
*
|
||||
* Under source code control: 1990/02/15 01:48:15
|
||||
@@ -84,6 +84,7 @@
|
||||
#endif
|
||||
|
||||
#include "have_const.h"
|
||||
#include "have_unused.h"
|
||||
#include "calc.h"
|
||||
#include "calcerr.h"
|
||||
#include "opcodes.h"
|
||||
@@ -307,7 +308,7 @@ f_display(int count, VALUE **vals)
|
||||
|
||||
/*ARGSUSED*/
|
||||
static VALUE
|
||||
f_null(int count, VALUE **vals)
|
||||
f_null(int UNUSED count, VALUE UNUSED **vals)
|
||||
{
|
||||
VALUE res;
|
||||
|
||||
@@ -4729,7 +4730,7 @@ f_list(int count, VALUE **vals)
|
||||
|
||||
/*ARGSUSED*/
|
||||
static VALUE
|
||||
f_assoc(int count, VALUE **vals)
|
||||
f_assoc(int UNUSED count, VALUE UNUSED **vals)
|
||||
{
|
||||
VALUE result;
|
||||
|
||||
|
89
have_unused.c
Normal file
89
have_unused.c
Normal file
@@ -0,0 +1,89 @@
|
||||
/*
|
||||
* have_unused - Determine if we want or can support the unused attribute
|
||||
*
|
||||
* Copyright (C) 2004 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: have_unused.c,v 29.2 2004/02/23 08:35:42 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/have_unused.c,v $
|
||||
*
|
||||
* Under source code control: 2004/02/22 22:36:10
|
||||
* File existed as early as: 2004
|
||||
*
|
||||
* chongo <was here> /\oo/\ http://www.isthe.com/chongo/
|
||||
* Share and enjoy! :-) http://www.isthe.com/chongo/tech/comp/calc/
|
||||
*/
|
||||
|
||||
/*
|
||||
* usage:
|
||||
* have_unused
|
||||
*
|
||||
* Not all compilers support the unused attribute, so this may not compile
|
||||
* on your system.
|
||||
*
|
||||
* This prog outputs several defines:
|
||||
*
|
||||
* HAVE_UNUSED
|
||||
* defined ==> ok to use unused
|
||||
* undefined ==> do not use unused
|
||||
*
|
||||
* UNUSED
|
||||
* unused ==> use unused
|
||||
* (nothing) ==> unused not used
|
||||
*/
|
||||
|
||||
|
||||
#include <stdio.h>
|
||||
|
||||
#if !defined(HAVE_NO_UNUSED)
|
||||
|
||||
/* make sure that we can use the __attribute__((unused)) in #define's */
|
||||
#undef UNUSED
|
||||
#define UNUSED __attribute__((unused))
|
||||
|
||||
/*
|
||||
* unused_str - a function with an unused argument
|
||||
*/
|
||||
static char *
|
||||
unused_str(char UNUSED *str)
|
||||
{
|
||||
return "__attribute__((unused))";
|
||||
}
|
||||
|
||||
#endif /* !HAVE_NO_UNUSED */
|
||||
|
||||
|
||||
int
|
||||
main(void)
|
||||
{
|
||||
#if defined(HAVE_NO_UNUSED)
|
||||
|
||||
printf("#undef HAVE_UNUSED /* no */\n");
|
||||
printf("#undef UNUSED\n");
|
||||
printf("#define UNUSED /* no */\n");
|
||||
|
||||
#else /* HAVE_NO_UNUSED */
|
||||
|
||||
printf("#define HAVE_UNUSED /* yes */\n");
|
||||
printf("#undef UNUSED\n");
|
||||
printf("#define UNUSED %s /* yes */\n", unused_str(NULL));
|
||||
|
||||
#endif /* HAVE_NO_UNUSED */
|
||||
|
||||
/* exit(0); */
|
||||
return 0;
|
||||
}
|
15
help/config
15
help/config
@@ -49,6 +49,7 @@ Configuration parameters
|
||||
"program" Read-only calc program or shell script path
|
||||
"basename" Read-only basename of the program value
|
||||
"windows" Read-only indicator of MS windows
|
||||
"cygwin" TRUE=>calc compiled with cygwin, Read-only
|
||||
"version" Read-only calc version
|
||||
|
||||
The "all" config value allows one to save/restore the configuration
|
||||
@@ -699,6 +700,16 @@ Detailed config descriptions
|
||||
Returns TRUE if you are running on a MS windows system, false if you
|
||||
are running on an operating system that does not hate you.
|
||||
|
||||
This config parameter is read-only and cannot be set.
|
||||
|
||||
=-=
|
||||
|
||||
config("cygwin") <== NOTE: This is a read-only config value
|
||||
|
||||
Returns TRUE if you calc was compiled with cygwin, false otherwise.
|
||||
|
||||
This config parameter is read-only and cannot be set.
|
||||
|
||||
=-=
|
||||
|
||||
config("version") <== NOTE: This is a read-only config value
|
||||
@@ -725,8 +736,8 @@ Detailed config descriptions
|
||||
## 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: config,v 29.7 2002/12/29 08:32:04 chongo Exp $
|
||||
## @(#) $Revision: 29.8 $
|
||||
## @(#) $Id: config,v 29.8 2004/02/23 05:59:22 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/config,v $
|
||||
##
|
||||
## Under source code control: 1991/07/21 04:37:17
|
||||
|
31
help/hash
31
help/hash
@@ -1,5 +1,5 @@
|
||||
NAME
|
||||
hash - FNV-1 hash value
|
||||
hash - return the calc hash value
|
||||
|
||||
SYNOPSIS
|
||||
hash(x_1 [, x_2, x_3, ...])
|
||||
@@ -12,27 +12,16 @@ TYPES
|
||||
DESCRIPTION
|
||||
Returns a hash value for one or more values of arbitrary types.
|
||||
|
||||
The basis of this hash algorithm was taken from an idea sent
|
||||
as reviewer comments to the IEEE POSIX P1003.2 committee by:
|
||||
The calc hash value is based on the core Fowler/Noll/Vo hash
|
||||
known as FNV-1. The return value, however, cannot be used
|
||||
as an FNV hash value because calc's internal function also
|
||||
takes into account more abstract concepts such as data types.
|
||||
|
||||
Phong Vo (http://www.research.att.com/info/kpv/)
|
||||
Glenn Fowler (http://www.research.att.com/~gsf/)
|
||||
|
||||
In a subsequent ballot round:
|
||||
|
||||
Landon Curt Noll (http://www.isthe.com/chongo/)
|
||||
|
||||
improved on their algorithm. Some people tried this hash
|
||||
and found that it worked rather well. In an EMail message
|
||||
to Landon, they named it ``Fowler/Noll/Vo'' or the FNV hash.
|
||||
|
||||
FNV hashes are architected to be fast while maintaining a low
|
||||
collision rate. The FNV speed allows one to quickly hash lots
|
||||
of data while maintaining a reasonable collision rate. See:
|
||||
See:
|
||||
|
||||
http://www.isthe.com/chongo/tech/comp/fnv/
|
||||
|
||||
for more details as well as other forms of the FNV hash.
|
||||
information about the Fowler/Noll/Vo (FNV) hash.
|
||||
|
||||
EXAMPLE
|
||||
> a = isqrt(2e1000); s = "xyz";
|
||||
@@ -48,7 +37,7 @@ LINK LIBRARY
|
||||
SEE ALSO
|
||||
sha, sha1, md5
|
||||
|
||||
## Copyright (C) 1999 Landon Curt Noll
|
||||
## Copyright (C) 1999-2003 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
|
||||
@@ -64,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.2 $
|
||||
## @(#) $Id: hash,v 29.2 2000/06/07 14:02:33 chongo Exp $
|
||||
## @(#) $Revision: 29.3 $
|
||||
## @(#) $Id: hash,v 29.3 2003/03/01 01:16:02 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/hash,v $
|
||||
##
|
||||
## Under source code control: 1996/03/12 23:10:01
|
||||
|
14
help/usage
14
help/usage
@@ -148,10 +148,14 @@ Calc command line
|
||||
when the mode disables opening of files for reading.
|
||||
|
||||
|
||||
-n Use the new configuration defaults instead of the old
|
||||
default classic defaults. This flag as the same effect
|
||||
as executing config("all", "newcfg") at startup time.
|
||||
-O Use the old classic defaults instead of the default
|
||||
configuration. This flag as the same effect as executing
|
||||
config("all", "oldcfg") at startup time.
|
||||
|
||||
NOTE: Older versions of calc used -n to setup a modified
|
||||
form of the default calc configuration. The -n flag
|
||||
currently does nothing. Use of the -n flag is now
|
||||
deprecated and may used for something else in the future.
|
||||
|
||||
-p Pipe processing is enabled by use of -p. For example:
|
||||
|
||||
@@ -353,8 +357,8 @@ For more information use the following calc commands:
|
||||
## 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: usage,v 29.4 2002/07/10 11:47:04 chongo Exp $
|
||||
## @(#) $Revision: 29.6 $
|
||||
## @(#) $Id: usage,v 29.6 2003/06/10 21:39:34 chongo Exp $
|
||||
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/usage,v $
|
||||
##
|
||||
## Under source code control: 1991/07/21 04:37:25
|
||||
|
8
hist.c
8
hist.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.3 $
|
||||
* @(#) $Id: hist.c,v 29.3 2001/03/17 21:31:47 chongo Exp $
|
||||
* @(#) $Revision: 29.4 $
|
||||
* @(#) $Id: hist.c,v 29.4 2004/02/23 07:54:24 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/hist.c,v $
|
||||
*
|
||||
* Under source code control: 1993/05/02 20:09:19
|
||||
@@ -67,6 +67,8 @@
|
||||
# include <string.h>
|
||||
#endif
|
||||
|
||||
#include "have_unused.h"
|
||||
|
||||
#if !defined(USE_READLINE)
|
||||
|
||||
extern FILE *curstream(void);
|
||||
@@ -1489,7 +1491,7 @@ my_stifle_history (void)
|
||||
|
||||
|
||||
int
|
||||
hist_init(char *filename)
|
||||
hist_init(char UNUSED *filename)
|
||||
{
|
||||
/* used when parsing conditionals in ~/.inputrc */
|
||||
rl_readline_name = "calc";
|
||||
|
32
lib_calc.c
32
lib_calc.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: lib_calc.c,v 29.8 2002/03/12 09:40:57 chongo Exp $
|
||||
* @(#) $Revision: 29.9 $
|
||||
* @(#) $Id: lib_calc.c,v 29.9 2003/08/26 04:36:10 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/lib_calc.c,v $
|
||||
*
|
||||
* Under source code control: 1996/06/17 18:06:19
|
||||
@@ -106,10 +106,10 @@ extern uid_t geteuid();
|
||||
/*
|
||||
* Common definitions
|
||||
*/
|
||||
int new_std = FALSE; /* TRUE (-n) => use newstd configuration */
|
||||
int abortlevel; /* current level of aborts */
|
||||
BOOL inputwait; /* TRUE if in a terminal input wait */
|
||||
jmp_buf jmpbuf; /* for errors */
|
||||
int use_old_std = FALSE; /* TRUE => use old classic configuration */
|
||||
int abortlevel; /* current level of aborts */
|
||||
BOOL inputwait; /* TRUE if in a terminal input wait */
|
||||
jmp_buf jmpbuf; /* for errors */
|
||||
char *program = "calc"; /* our name */
|
||||
char *base_name = "calc"; /* basename of our name */
|
||||
char cmdbuf[MAXCMD+1+1+1]; /* command line expression + "\n\0" + guard */
|
||||
@@ -232,23 +232,23 @@ libcalc_call_me_first(void)
|
||||
/*
|
||||
* initialize old and new configuration values
|
||||
*/
|
||||
oldstd.epsilon = &_qonesqbase_; /* magic to fake early str2q() */
|
||||
oldstd.program = strdup(program);
|
||||
oldstd.base_name = strdup(base_name);
|
||||
oldstd.version = strdup(version());
|
||||
conf = config_copy(&oldstd); /* more magic to fake early str2q() */
|
||||
newstd.epsilon = &_qonesqbase_; /* magic to fake early str2q() */
|
||||
newstd.program = strdup(program);
|
||||
newstd.base_name = strdup(base_name);
|
||||
newstd.version = strdup(version());
|
||||
conf = config_copy(&newstd); /* more magic to fake early str2q() */
|
||||
conf->tab_ok = FALSE;
|
||||
newstd.epsilon = str2q(EPSILON_DEFAULT);
|
||||
oldstd.epsilon = str2q(EPSILON_DEFAULT);
|
||||
newstd.epsilon = str2q(NEW_EPSILON_DEFAULT);
|
||||
|
||||
/*
|
||||
* make oldstd our default config
|
||||
* make newstd our default config, unless -O
|
||||
*/
|
||||
config_free(conf);
|
||||
if (new_std) {
|
||||
conf = config_copy(&newstd);
|
||||
} else {
|
||||
if (use_old_std) {
|
||||
conf = config_copy(&oldstd);
|
||||
} else {
|
||||
conf = config_copy(&newstd);
|
||||
}
|
||||
|
||||
/*
|
||||
|
@@ -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: matfunc.c,v 29.2 2000/06/07 14:02:13 chongo Exp $
|
||||
* @(#) $Revision: 29.3 $
|
||||
* @(#) $Id: matfunc.c,v 29.3 2004/02/23 07:55:54 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/matfunc.c,v $
|
||||
*
|
||||
* Under source code control: 1990/02/15 01:48:18
|
||||
@@ -36,6 +36,8 @@
|
||||
#include "zrand.h"
|
||||
#include "calcerr.h"
|
||||
|
||||
#include "have_unused.h"
|
||||
|
||||
extern long irand(long s);
|
||||
|
||||
static void matswaprow(MATRIX *m, long r1, long r2);
|
||||
@@ -853,7 +855,7 @@ matfrac(MATRIX *m)
|
||||
*/
|
||||
/*ARGSUSED*/
|
||||
VALUE *
|
||||
matindex(MATRIX *mp, BOOL create, long dim, VALUE *indices)
|
||||
matindex(MATRIX *mp, BOOL UNUSED create, long dim, VALUE *indices)
|
||||
{
|
||||
NUMBER *q; /* index value */
|
||||
VALUE *vp;
|
||||
|
12
md5.c
12
md5.c
@@ -10,8 +10,8 @@
|
||||
* NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
|
||||
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*
|
||||
* @(#) $Revision: 29.1 $
|
||||
* @(#) $Id: md5.c,v 29.1 1999/12/14 09:16:12 chongo Exp $
|
||||
* @(#) $Revision: 29.2 $
|
||||
* @(#) $Id: md5.c,v 29.2 2004/02/23 07:58:06 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/md5.c,v $
|
||||
*
|
||||
* This file is not covered under version 2.1 of the GNU LGPL.
|
||||
@@ -432,7 +432,7 @@ static void
|
||||
MD5_note(int special, HASH *state)
|
||||
{
|
||||
MD5_CTX *dig = &state->h_union.h_md5; /* digest state */
|
||||
int i;
|
||||
unsigned int i;
|
||||
|
||||
/*
|
||||
* change state to reflect a special value
|
||||
@@ -463,7 +463,7 @@ static void
|
||||
MD5_type(int type, HASH *state)
|
||||
{
|
||||
MD5_CTX *dig = &state->h_union.h_md5; /* digest state */
|
||||
int i;
|
||||
unsigned int i;
|
||||
|
||||
/*
|
||||
* ignore NUMBER and COMPLEX
|
||||
@@ -531,7 +531,7 @@ MD5_final_state(HASH *state)
|
||||
{
|
||||
MD5_CTX *dig = &state->h_union.h_md5; /* digest state */
|
||||
ZVALUE ret; /* return ZVALUE of completed hash state */
|
||||
int i;
|
||||
unsigned int i;
|
||||
|
||||
/*
|
||||
* malloc and initialize if state is NULL
|
||||
@@ -571,7 +571,7 @@ MD5_final_state(HASH *state)
|
||||
}
|
||||
#endif
|
||||
|
||||
for (i=0; i < ret.len; ++i) {
|
||||
for (i=0; i < (unsigned int)ret.len; ++i) {
|
||||
ret.v[ret.len-i-1] = ((HALF*)dig->digest)[i];
|
||||
}
|
||||
|
||||
|
6
obj.c
6
obj.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: obj.c,v 29.2 2000/06/07 14:02:13 chongo Exp $
|
||||
* @(#) $Revision: 29.3 $
|
||||
* @(#) $Id: obj.c,v 29.3 2004/02/23 09:13:15 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/obj.c,v $
|
||||
*
|
||||
* Under source code control: 1990/02/15 01:48:19
|
||||
@@ -115,7 +115,7 @@ static struct objectinfo {
|
||||
{1, A_VALUE, ERR_NONE, "backslash", "unary backslash op"},
|
||||
{2, A_VALUE, ERR_NONE, "setminus", "binary backslash op"},
|
||||
{1, A_VALUE, ERR_NONE, "plus", "unary + op"},
|
||||
{0, 0, 0, NULL}
|
||||
{0, 0, 0, NULL, NULL}
|
||||
};
|
||||
|
||||
|
||||
|
64
opcodes.c
64
opcodes.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.4 $
|
||||
* @(#) $Id: opcodes.c,v 29.4 2001/04/25 07:16:26 chongo Exp $
|
||||
* @(#) $Revision: 29.5 $
|
||||
* @(#) $Id: opcodes.c,v 29.5 2004/02/23 07:34:08 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/opcodes.c,v $
|
||||
*
|
||||
* Under source code control: 1990/02/15 01:48:19
|
||||
@@ -48,6 +48,8 @@
|
||||
#include "block.h"
|
||||
#include "string.h"
|
||||
|
||||
#include "have_unused.h"
|
||||
|
||||
#define QUICKLOCALS 20 /* local vars to handle quickly */
|
||||
|
||||
|
||||
@@ -115,7 +117,7 @@ extern void setconfig(int type, VALUE *vp);
|
||||
void
|
||||
initstack(void)
|
||||
{
|
||||
int i;
|
||||
unsigned int i;
|
||||
|
||||
/* on first init, setup the stack array */
|
||||
if (stack == NULL) {
|
||||
@@ -163,7 +165,7 @@ o_localaddr(FUNC *fp, VALUE *locals, long index)
|
||||
|
||||
/*ARGSUSED*/
|
||||
static void
|
||||
o_globaladdr(FUNC *fp, GLOBAL *sp)
|
||||
o_globaladdr(FUNC UNUSED *fp, GLOBAL *sp)
|
||||
{
|
||||
if (sp == NULL) {
|
||||
math_error("Global variable \"%s\" not initialized", sp->g_name);
|
||||
@@ -178,9 +180,9 @@ o_globaladdr(FUNC *fp, GLOBAL *sp)
|
||||
|
||||
/*ARGSUSED*/
|
||||
static void
|
||||
o_paramaddr(FUNC *fp, int argcount, VALUE *args, long index)
|
||||
o_paramaddr(FUNC UNUSED *fp, int argcount, VALUE *args, long index)
|
||||
{
|
||||
if ((unsigned long)index >= argcount) {
|
||||
if ((long)index >= argcount) {
|
||||
math_error("Bad parameter index");
|
||||
/*NOTREACHED*/
|
||||
}
|
||||
@@ -210,7 +212,7 @@ o_localvalue(FUNC *fp, VALUE *locals, long index)
|
||||
|
||||
/*ARGSUSED*/
|
||||
static void
|
||||
o_globalvalue(FUNC *fp, GLOBAL *sp)
|
||||
o_globalvalue(FUNC UNUSED *fp, GLOBAL *sp)
|
||||
{
|
||||
if (sp == NULL) {
|
||||
math_error("Global variable not defined");
|
||||
@@ -222,9 +224,9 @@ o_globalvalue(FUNC *fp, GLOBAL *sp)
|
||||
|
||||
/*ARGSUSED*/
|
||||
static void
|
||||
o_paramvalue(FUNC *fp, int argcount, VALUE *args, long index)
|
||||
o_paramvalue(FUNC UNUSED *fp, int argcount, VALUE *args, long index)
|
||||
{
|
||||
if ((unsigned long)index >= argcount) {
|
||||
if ((long)index >= argcount) {
|
||||
math_error("Bad parameter index");
|
||||
/*NOTREACHED*/
|
||||
}
|
||||
@@ -267,7 +269,7 @@ o_argvalue(FUNC *fp, int argcount, VALUE *args)
|
||||
|
||||
/*ARGSUSED*/
|
||||
static void
|
||||
o_number(FUNC *fp, long arg)
|
||||
o_number(FUNC UNUSED *fp, long arg)
|
||||
{
|
||||
NUMBER *q;
|
||||
|
||||
@@ -285,7 +287,7 @@ o_number(FUNC *fp, long arg)
|
||||
|
||||
/*ARGSUSED*/
|
||||
static void
|
||||
o_imaginary(FUNC *fp, long arg)
|
||||
o_imaginary(FUNC UNUSED *fp, long arg)
|
||||
{
|
||||
NUMBER *q;
|
||||
COMPLEX *c;
|
||||
@@ -312,7 +314,7 @@ o_imaginary(FUNC *fp, long arg)
|
||||
|
||||
/*ARGSUSED*/
|
||||
static void
|
||||
o_string(FUNC *fp, long arg)
|
||||
o_string(FUNC UNUSED *fp, long arg)
|
||||
{
|
||||
stack++;
|
||||
stack->v_str = slink(findstring(arg));
|
||||
@@ -332,7 +334,7 @@ o_undef(void)
|
||||
|
||||
/*ARGSUSED*/
|
||||
static void
|
||||
o_matcreate(FUNC *fp, long dim)
|
||||
o_matcreate(FUNC UNUSED *fp, long dim)
|
||||
{
|
||||
register MATRIX *mp; /* matrix being defined */
|
||||
NUMBER *num1; /* first number from stack */
|
||||
@@ -400,7 +402,7 @@ o_matcreate(FUNC *fp, long dim)
|
||||
|
||||
/*ARGSUSED*/
|
||||
static void
|
||||
o_eleminit(FUNC *fp, long index)
|
||||
o_eleminit(FUNC UNUSED *fp, long index)
|
||||
{
|
||||
VALUE *vp;
|
||||
static VALUE *oldvp;
|
||||
@@ -501,7 +503,7 @@ o_eleminit(FUNC *fp, long index)
|
||||
*/
|
||||
/*ARGSUSED*/
|
||||
static void
|
||||
o_indexaddr(FUNC *fp, long dim, long writeflag)
|
||||
o_indexaddr(FUNC UNUSED *fp, long dim, long writeflag)
|
||||
{
|
||||
int i;
|
||||
BOOL flag;
|
||||
@@ -653,7 +655,7 @@ o_indexaddr(FUNC *fp, long dim, long writeflag)
|
||||
|
||||
/*ARGSUSED*/
|
||||
static void
|
||||
o_elemaddr(FUNC *fp, long index)
|
||||
o_elemaddr(FUNC UNUSED *fp, long index)
|
||||
{
|
||||
VALUE *vp;
|
||||
MATRIX *mp;
|
||||
@@ -708,7 +710,7 @@ o_elemvalue(FUNC *fp, long index)
|
||||
|
||||
/*ARGSUSED*/
|
||||
static void
|
||||
o_objcreate(FUNC *fp, long arg)
|
||||
o_objcreate(FUNC UNUSED *fp, long arg)
|
||||
{
|
||||
stack++;
|
||||
stack->v_type = V_OBJ;
|
||||
@@ -2558,7 +2560,7 @@ o_return(void)
|
||||
|
||||
/*ARGSUSED*/
|
||||
static void
|
||||
o_jumpz(FUNC *fp, BOOL *dojump)
|
||||
o_jumpz(FUNC UNUSED *fp, BOOL *dojump)
|
||||
{
|
||||
VALUE *vp;
|
||||
int i; /* result of comparison */
|
||||
@@ -2582,7 +2584,7 @@ o_jumpz(FUNC *fp, BOOL *dojump)
|
||||
|
||||
/*ARGSUSED*/
|
||||
static void
|
||||
o_jumpnz(FUNC *fp, BOOL *dojump)
|
||||
o_jumpnz(FUNC UNUSED *fp, BOOL *dojump)
|
||||
{
|
||||
VALUE *vp;
|
||||
int i; /* result of comparison */
|
||||
@@ -2609,7 +2611,7 @@ o_jumpnz(FUNC *fp, BOOL *dojump)
|
||||
*/
|
||||
/*ARGSUSED*/
|
||||
static void
|
||||
o_jumpnn(FUNC *fp, BOOL *dojump)
|
||||
o_jumpnn(FUNC UNUSED *fp, BOOL *dojump)
|
||||
{
|
||||
if (stack->v_addr->v_type) {
|
||||
*dojump = TRUE;
|
||||
@@ -2620,7 +2622,7 @@ o_jumpnn(FUNC *fp, BOOL *dojump)
|
||||
|
||||
/*ARGSUSED*/
|
||||
static void
|
||||
o_condorjump(FUNC *fp, BOOL *dojump)
|
||||
o_condorjump(FUNC UNUSED *fp, BOOL *dojump)
|
||||
{
|
||||
VALUE *vp;
|
||||
|
||||
@@ -2646,7 +2648,7 @@ o_condorjump(FUNC *fp, BOOL *dojump)
|
||||
|
||||
/*ARGSUSED*/
|
||||
static void
|
||||
o_condandjump(FUNC *fp, BOOL *dojump)
|
||||
o_condandjump(FUNC UNUSED *fp, BOOL *dojump)
|
||||
{
|
||||
VALUE *vp;
|
||||
|
||||
@@ -2677,7 +2679,7 @@ o_condandjump(FUNC *fp, BOOL *dojump)
|
||||
*/
|
||||
/*ARGSUSED*/
|
||||
static void
|
||||
o_casejump(FUNC *fp, BOOL *dojump)
|
||||
o_casejump(FUNC UNUSED *fp, BOOL *dojump)
|
||||
{
|
||||
VALUE *v1, *v2;
|
||||
int r;
|
||||
@@ -2699,7 +2701,7 @@ o_casejump(FUNC *fp, BOOL *dojump)
|
||||
|
||||
/*ARGSUSED*/
|
||||
static void
|
||||
o_jump(FUNC *fp, BOOL *dojump)
|
||||
o_jump(FUNC UNUSED *fp, BOOL *dojump)
|
||||
{
|
||||
*dojump = TRUE;
|
||||
}
|
||||
@@ -2719,7 +2721,7 @@ o_usercall(FUNC *fp, long index, long argcount)
|
||||
|
||||
/*ARGSUSED*/
|
||||
static void
|
||||
o_call(FUNC *fp, long index, long argcount)
|
||||
o_call(FUNC UNUSED *fp, long index, long argcount)
|
||||
{
|
||||
VALUE result;
|
||||
|
||||
@@ -3073,7 +3075,7 @@ o_rightshift(void)
|
||||
|
||||
/*ARGSUSED*/
|
||||
static void
|
||||
o_debug(FUNC *fp, long line)
|
||||
o_debug(FUNC UNUSED *fp, long line)
|
||||
{
|
||||
funcline = line;
|
||||
if (abortlevel >= ABORT_STATEMENT) {
|
||||
@@ -3104,7 +3106,7 @@ o_printresult(void)
|
||||
|
||||
/*ARGSUSED*/
|
||||
static void
|
||||
o_print(FUNC *fp, long flags)
|
||||
o_print(FUNC UNUSED *fp, long flags)
|
||||
{
|
||||
VALUE *vp;
|
||||
|
||||
@@ -3138,7 +3140,7 @@ o_printspace(void)
|
||||
|
||||
/*ARGSUSED*/
|
||||
static void
|
||||
o_printstring(FUNC *fp, long index)
|
||||
o_printstring(FUNC UNUSED *fp, long index)
|
||||
{
|
||||
STRING *s;
|
||||
char *cp;
|
||||
@@ -3437,7 +3439,7 @@ o_initfill(void)
|
||||
static void
|
||||
o_show(FUNC *fp, long arg)
|
||||
{
|
||||
int size;
|
||||
unsigned int size;
|
||||
|
||||
switch((int) arg) {
|
||||
case 1: showbuiltins(); return;
|
||||
@@ -3662,7 +3664,7 @@ calculate(FUNC *fp, int argcount)
|
||||
long oldline; /* old value of line counter */
|
||||
unsigned int opnum; /* current opcode number */
|
||||
int origargcount; /* original number of arguments */
|
||||
int i; /* loop counter */
|
||||
unsigned int i; /* loop counter */
|
||||
BOOL dojump; /* TRUE if jump is to occur */
|
||||
char *oldname; /* old function name being executed */
|
||||
VALUE *beginstack; /* beginning of stack frame */
|
||||
@@ -3677,7 +3679,7 @@ calculate(FUNC *fp, int argcount)
|
||||
go = TRUE;
|
||||
++calc_depth;
|
||||
origargcount = argcount;
|
||||
while (argcount < fp->f_paramcount) {
|
||||
while ((unsigned)argcount < fp->f_paramcount) {
|
||||
stack++;
|
||||
stack->v_type = V_NULL;
|
||||
stack->v_subtype = V_NOSUBTYPE;
|
||||
|
6
qfunc.c
6
qfunc.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.5 $
|
||||
* @(#) $Id: qfunc.c,v 29.5 2003/01/26 19:41:35 chongo Exp $
|
||||
* @(#) $Revision: 29.6 $
|
||||
* @(#) $Id: qfunc.c,v 29.6 2004/02/23 07:59:46 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/qfunc.c,v $
|
||||
*
|
||||
* Under source code control: 1990/02/15 01:48:20
|
||||
@@ -1740,7 +1740,7 @@ qgcdrem(NUMBER *q1, NUMBER *q2)
|
||||
NUMBER *
|
||||
qlowfactor(NUMBER *q1, NUMBER *q2)
|
||||
{
|
||||
long count;
|
||||
unsigned long count;
|
||||
|
||||
if (qisfrac(q1) || qisfrac(q2)) {
|
||||
math_error("Non-integers for lowfactor");
|
||||
|
8
qio.c
8
qio.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.4 $
|
||||
* @(#) $Id: qio.c,v 29.4 2002/12/29 09:20:25 chongo Exp $
|
||||
* @(#) $Revision: 29.5 $
|
||||
* @(#) $Id: qio.c,v 29.5 2004/02/23 09:10:59 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/qio.c,v $
|
||||
*
|
||||
* Under source code control: 1993/07/30 19:42:46
|
||||
@@ -32,6 +32,8 @@
|
||||
#include "config.h"
|
||||
#include "args.h"
|
||||
|
||||
#include "have_unused.h"
|
||||
|
||||
|
||||
#define PUTCHAR(ch) math_chr(ch)
|
||||
#define PUTSTR(str) math_str(str)
|
||||
@@ -299,7 +301,7 @@ qprintff(NUMBER *q, long width, long precision)
|
||||
*/
|
||||
/*ARGSUSED*/
|
||||
void
|
||||
qprintfe(NUMBER *q, long width, long precision)
|
||||
qprintfe(NUMBER *q, long UNUSED width, long precision)
|
||||
{
|
||||
long exponent;
|
||||
NUMBER q2;
|
||||
|
6
qmath.c
6
qmath.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.3 $
|
||||
* @(#) $Id: qmath.c,v 29.3 2000/07/17 15:35:49 chongo Exp $
|
||||
* @(#) $Revision: 29.4 $
|
||||
* @(#) $Id: qmath.c,v 29.4 2004/02/23 08:07:43 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/qmath.c,v $
|
||||
*
|
||||
* Under source code control: 1990/02/15 01:48:21
|
||||
@@ -1296,7 +1296,7 @@ qreli(NUMBER *q, long n)
|
||||
if (n == 0)
|
||||
return (q->num.sign ? -1 : 0);
|
||||
|
||||
if (q->num.sign != n < 0)
|
||||
if (q->num.sign != (n < 0))
|
||||
return ((n < 0) ? 1 : -1);
|
||||
|
||||
itoz(n, &z1);
|
||||
|
7
qtrans.c
7
qtrans.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.2 $
|
||||
* @(#) $Id: qtrans.c,v 29.2 2000/06/07 14:02:13 chongo Exp $
|
||||
* @(#) $Revision: 29.4 $
|
||||
* @(#) $Id: qtrans.c,v 29.4 2004/02/23 08:12:43 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/qtrans.c,v $
|
||||
*
|
||||
* Under source code control: 1990/02/15 01:48:22
|
||||
@@ -479,7 +479,8 @@ qacos(NUMBER *q, NUMBER *epsilon)
|
||||
NUMBER *
|
||||
qatan(NUMBER *q, NUMBER *epsilon)
|
||||
{
|
||||
long m, k, i, d;
|
||||
long m, k, i;
|
||||
FULL d;
|
||||
ZVALUE X, D, DD, sum, mul, term, ztmp1, ztmp2;
|
||||
NUMBER *qtmp, *res;
|
||||
BOOL sign;
|
||||
|
136
quickhash.c
136
quickhash.c
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* quickhash - quickly hash a calc value using a partial Fowler/Noll/Vo hash
|
||||
* quickhash - quickly hash a calc value using a quasi Fowler/Noll/Vo hash
|
||||
*
|
||||
* Copyright (C) 1999-2002 Landon Curt Noll
|
||||
*
|
||||
@@ -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.5 $
|
||||
* @(#) $Id: quickhash.c,v 29.5 2002/12/29 09:20:25 chongo Exp $
|
||||
* @(#) $Revision: 29.7 $
|
||||
* @(#) $Id: quickhash.c,v 29.7 2003/03/01 01:21:12 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/quickhash.c,v $
|
||||
*
|
||||
* Under source code control: 1995/03/04 11:34:23
|
||||
@@ -31,26 +31,6 @@
|
||||
/*
|
||||
* NOTE: This file does not contain a hash interface. It is used by
|
||||
* associative arrays and other internal processes.
|
||||
*
|
||||
* We will compute a hash value for any type of calc value
|
||||
* for use in associative arrays and the hash() builtin.
|
||||
* Hash speed is of primary importance to make associative
|
||||
* arrays work at a reasonable speed. For this reason, we
|
||||
* cut corners by hashing only a small part of a calc value.
|
||||
*
|
||||
* The Fowler/Noll/Vo hash does a very good job in producing
|
||||
* a 32 bit hash from ASCII strings in a short amount of time.
|
||||
* It is not bad for hashing calc data as well. So doing a
|
||||
* quick and dirty job of hashing on a part of a calc value,
|
||||
* combined with using a reasonable hash function will result
|
||||
* acceptable associative array performance.
|
||||
*
|
||||
* See:
|
||||
* http://www.isthe.com/chongo/src/fnv/fnv_hash.tar.gz
|
||||
* http://www.isthe.com/chongo/src/fnv/hash_32.c
|
||||
* http://www.isthe.com/chongo/src/fnv/hash_64.c
|
||||
*
|
||||
* for information on 32bit and 64bit Fowler/Noll/Vo hashs.
|
||||
*/
|
||||
|
||||
|
||||
@@ -77,7 +57,7 @@ static QCKHASH blk_hash(BLOCK *blk, QCKHASH val);
|
||||
|
||||
|
||||
/*
|
||||
* FNV-0 - Fowler/Noll/Vo-0 32 bit hash
|
||||
* quasi_fnv - quasi Fowler/Noll/Vo-0 32 bit hash
|
||||
*
|
||||
* The basis of this hash algorithm was taken from an idea sent
|
||||
* as reviewer comments to the IEEE POSIX P1003.2 committee by:
|
||||
@@ -97,7 +77,7 @@ static QCKHASH blk_hash(BLOCK *blk, QCKHASH val);
|
||||
* collision rate. The FNV speed allows one to quickly hash lots
|
||||
* of data while maintaining a reasonable collision rate. See:
|
||||
*
|
||||
* http://www.isthe.com/chongo/tech/comp/fnv/
|
||||
* http://www.isthe.com/chongo/tech/comp/fnv/index.html
|
||||
*
|
||||
* for more details as well as other forms of the FNV hash.
|
||||
*
|
||||
@@ -107,8 +87,55 @@ static QCKHASH blk_hash(BLOCK *blk, QCKHASH val);
|
||||
*
|
||||
* returns:
|
||||
* the next 32 bit QCKHASH
|
||||
*
|
||||
* Example:
|
||||
* QCKHASH val;
|
||||
* int x;
|
||||
*
|
||||
* quasi_fnv(x, val);
|
||||
*
|
||||
* NOTE: The (x) argument may be an expression such as something with
|
||||
* a ++ or --. The macro must only use (x) once.
|
||||
*
|
||||
* NOTE: The (val) argument just be a lvalue / something to which
|
||||
* a value can be assigned.
|
||||
*
|
||||
* The careful observer will note that (x) need not be a simple
|
||||
* octet. This is not a bug, but a feature. The FNV hash was
|
||||
* designed to operate on octets, not abstract objects such
|
||||
* as associations, file descriptors and PRNG states.
|
||||
* You will also notice that we sometimes add values directly
|
||||
* to the (val) hash state. This is a simulation of hashing
|
||||
* a variable type.
|
||||
*
|
||||
* The Fowler/Noll/Vo hash does a very good job in producing
|
||||
* a 32 bit hash arrays of octets in a short amount of time.
|
||||
* It is not bad for hashing calc data as well. So doing a
|
||||
* quick and dirty job of hashing on a part of a calc value
|
||||
* is all that calc really needs.
|
||||
*
|
||||
* The core of the of the FNV hash has been adopted as the calc
|
||||
* quick hash with the provision that it operates on 32 bit
|
||||
* objects instead of octets. For calc's internal purposes,
|
||||
* this is sufficent. For general FNV hashing, this is not
|
||||
* recommended.
|
||||
*
|
||||
* It has been observed that gcc, when using -O, -O2, -O3 or
|
||||
* better on an AMD or AMD-like processor (such as i686) will
|
||||
* produce slightly faster code when using the shift/add
|
||||
* expression than when performing a multiply with a constant.
|
||||
*/
|
||||
#define fnv(x,val) (((QCKHASH)(val)*(QCKHASH)16777619) ^ ((QCKHASH)(x)))
|
||||
#if defined(NO_HASH_CPU_OPTIMIZATION)
|
||||
#define quasi_fnv(x,val) \
|
||||
((val) = (((QCKHASH)(val)*(QCKHASH)16777619) ^ ((QCKHASH)(x))))
|
||||
#else
|
||||
#define quasi_fnv(x,val) ( \
|
||||
((val) += (((QCKHASH)(val)<<1) + ((QCKHASH)(val)<<4) + \
|
||||
((QCKHASH)(val)<<7) + ((QCKHASH)(val)<<8) + \
|
||||
((QCKHASH)(val)<<24))), \
|
||||
((val) ^= (QCKHASH)(x)) \
|
||||
)
|
||||
#endif
|
||||
|
||||
|
||||
/*
|
||||
@@ -159,7 +186,8 @@ hashvalue(VALUE *vp, QCKHASH val)
|
||||
{
|
||||
switch (vp->v_type) {
|
||||
case V_INT:
|
||||
return fnv(vp->v_int, V_NUM+val);
|
||||
val += V_NUM;
|
||||
return quasi_fnv(vp->v_int, val);
|
||||
case V_NUM:
|
||||
return fnv_qhash(vp->v_num, val);
|
||||
case V_COM:
|
||||
@@ -177,7 +205,8 @@ hashvalue(VALUE *vp, QCKHASH val)
|
||||
case V_MAT:
|
||||
return mathash(vp->v_mat, val);
|
||||
case V_FILE:
|
||||
return fnv(vp->v_file, V_FILE+val);
|
||||
val += V_FILE;
|
||||
return quasi_fnv(vp->v_file, val);
|
||||
case V_RAND:
|
||||
return randhash(vp->v_rand, val);
|
||||
case V_RANDOM:
|
||||
@@ -189,7 +218,8 @@ hashvalue(VALUE *vp, QCKHASH val)
|
||||
case V_BLOCK:
|
||||
return blk_hash(vp->v_block, val);
|
||||
case V_OCTET:
|
||||
return fnv((int)*vp->v_octet, V_OCTET+val);
|
||||
val += V_OCTET;
|
||||
return quasi_fnv((int)*vp->v_octet, val);
|
||||
case V_NBLOCK:
|
||||
return blk_hash(vp->v_nblock->blk, val);
|
||||
default:
|
||||
@@ -207,7 +237,8 @@ static QCKHASH
|
||||
assochash(ASSOC *ap, QCKHASH val)
|
||||
{
|
||||
/* XXX - hash the first and last values??? */
|
||||
return fnv(ap->a_count, V_ASSOC+val);
|
||||
val += V_ASSOC;
|
||||
return quasi_fnv(ap->a_count, val);
|
||||
}
|
||||
|
||||
|
||||
@@ -250,15 +281,16 @@ mathash(MATRIX *m, QCKHASH val)
|
||||
/*
|
||||
* hash size parts of the matrix
|
||||
*/
|
||||
val = fnv(m->m_dim, V_MAT+val);
|
||||
val = fnv(m->m_size, val);
|
||||
val += V_MAT;
|
||||
quasi_fnv(m->m_dim, val);
|
||||
quasi_fnv(m->m_size, val);
|
||||
|
||||
/*
|
||||
* hash the matrix index bounds
|
||||
*/
|
||||
for (i = m->m_dim - 1; i >= 0; i--) {
|
||||
val = fnv(m->m_min[i], val);
|
||||
val = fnv(m->m_max[i], val);
|
||||
quasi_fnv(m->m_min[i], val);
|
||||
quasi_fnv(m->m_max[i], val);
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -294,7 +326,7 @@ objhash(OBJECT *op, QCKHASH val)
|
||||
{
|
||||
int i;
|
||||
|
||||
val = fnv(op->o_actions->oa_index, val);
|
||||
quasi_fnv(op->o_actions->oa_index, val);
|
||||
|
||||
i = op->o_actions->oa_count;
|
||||
while (--i >= 0)
|
||||
@@ -323,10 +355,11 @@ randhash(RAND *r, QCKHASH val)
|
||||
return V_RAND+val;
|
||||
} else {
|
||||
/* hash control values */
|
||||
val = fnv(r->j, V_RAND+val);
|
||||
val = fnv(r->k, val);
|
||||
val = fnv(r->bits, val);
|
||||
val = fnv(r->need_to_skip, val);
|
||||
val += V_RAND;
|
||||
quasi_fnv(r->j, val);
|
||||
quasi_fnv(r->k, val);
|
||||
quasi_fnv(r->bits, val);
|
||||
quasi_fnv(r->need_to_skip, val);
|
||||
|
||||
/* hash the state arrays */
|
||||
return fnv_fullhash(&r->buffer[0], SLEN+SCNT+SHUFLEN, val);
|
||||
@@ -356,7 +389,8 @@ randomhash(RANDOM *state, QCKHASH val)
|
||||
/*
|
||||
* hash a seeded RANDOM state
|
||||
*/
|
||||
val = fnv(state->buffer+state->bits, V_RANDOM+val);
|
||||
val += V_RANDOM;
|
||||
quasi_fnv(state->buffer+state->bits, val);
|
||||
if (state->r.v != NULL) {
|
||||
val = fnv_zhash(state->r, val);
|
||||
}
|
||||
@@ -424,7 +458,8 @@ config_hash(CONFIG *cfg, QCKHASH val)
|
||||
/*
|
||||
* hash the built up scalar
|
||||
*/
|
||||
val = fnv(value, V_CONFIG+val);
|
||||
val += V_CONFIG;
|
||||
quasi_fnv(value, val);
|
||||
|
||||
/*
|
||||
* hash the strings if possible
|
||||
@@ -472,7 +507,7 @@ fnv_strhash(char *ch, QCKHASH val)
|
||||
* hash each character in the string
|
||||
*/
|
||||
while (*ch) {
|
||||
val = fnv(*ch++, val);
|
||||
quasi_fnv(*ch++, val);
|
||||
}
|
||||
return val;
|
||||
}
|
||||
@@ -500,7 +535,7 @@ fnv_STRhash(STRING *str, QCKHASH val)
|
||||
* hash each character in the string
|
||||
*/
|
||||
while (n-- > 0) {
|
||||
val = fnv(*ch++, val);
|
||||
quasi_fnv(*ch++, val);
|
||||
}
|
||||
return val;
|
||||
}
|
||||
@@ -524,7 +559,7 @@ fnv_fullhash(FULL *v, LEN len, QCKHASH val)
|
||||
* hash each character in the string
|
||||
*/
|
||||
while (len-- > 0) {
|
||||
val = fnv(*v++, val);
|
||||
quasi_fnv(*v++, val);
|
||||
}
|
||||
return val;
|
||||
}
|
||||
@@ -552,7 +587,8 @@ fnv_zhash(ZVALUE z, QCKHASH val)
|
||||
/*
|
||||
* hash the sign
|
||||
*/
|
||||
val = fnv(z.sign, val + V_NUM);
|
||||
val += V_NUM;
|
||||
quasi_fnv(z.sign, val);
|
||||
|
||||
n = z.len;
|
||||
hp = z.v;
|
||||
@@ -561,15 +597,15 @@ fnv_zhash(ZVALUE z, QCKHASH val)
|
||||
while (n > 1) {
|
||||
f = (FULL) *hp++;
|
||||
f |= (FULL) *hp++ << BASEB;
|
||||
val = fnv(f, val);
|
||||
quasi_fnv(f, val);
|
||||
n -= 2;
|
||||
}
|
||||
if (n) {
|
||||
val = fnv(*hp, val);
|
||||
quasi_fnv(*hp, val);
|
||||
}
|
||||
#else
|
||||
while (n-- > 0) {
|
||||
val = fnv(*hp, val);
|
||||
quasi_fnv(*hp, val);
|
||||
++hp;
|
||||
}
|
||||
#endif
|
||||
@@ -596,7 +632,7 @@ hash_hash(HASH *hash, QCKHASH val)
|
||||
* hash each USB8 in the BLOCK
|
||||
*/
|
||||
for (i=0; i < hash->unionsize; ++i) {
|
||||
val = fnv(hash->h_union.data[i], val);
|
||||
quasi_fnv(hash->h_union.data[i], val);
|
||||
}
|
||||
return val;
|
||||
}
|
||||
@@ -625,7 +661,7 @@ blk_hash(BLOCK *blk, QCKHASH val)
|
||||
*/
|
||||
if (blk->datalen > 0) {
|
||||
for (i=0; i < blk->datalen; ++i) {
|
||||
val = fnv(blk->data[i], val);
|
||||
quasi_fnv(blk->data[i], val);
|
||||
}
|
||||
}
|
||||
return val;
|
||||
|
63
rpm.mk
63
rpm.mk
@@ -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.
|
||||
#
|
||||
MAKEFILE_REV= $$Revision: 29.12 $$
|
||||
# @(#) $Id: rpm.mk,v 29.12 2003/02/26 17:36:14 chongo Exp $
|
||||
MAKEFILE_REV= $$Revision: 29.13 $$
|
||||
# @(#) $Id: rpm.mk,v 29.13 2003/04/15 03:39:17 chongo Exp $
|
||||
# @(#) $Source: /usr/local/src/cmd/calc/RCS/rpm.mk,v $
|
||||
#
|
||||
# Under source code control: 2003/02/16 20:21:39
|
||||
@@ -36,6 +36,8 @@ MAKEFILE_REV= $$Revision: 29.12 $$
|
||||
#
|
||||
SHELL= /bin/sh
|
||||
RPMBUILD_TOOL= rpmbuild
|
||||
TARCH= i686
|
||||
RPMBUILD_OPTION= -ba --target=${TARCH}
|
||||
RPM_TOOL= rpm
|
||||
MD5SUM= md5sum
|
||||
SHA1SUM= sha1sum
|
||||
@@ -49,10 +51,8 @@ PROJECT_RELEASE=
|
||||
PROJECT= $(PROJECT_NAME)-$(PROJECT_VERSION)
|
||||
SPECFILE= $(PROJECT_NAME).spec
|
||||
TARBALL= $(PROJECT).tar.gz
|
||||
RPM386= $(PROJECT)-$(PROJECT_RELEASE).i386.rpm
|
||||
RPM686= $(PROJECT)-$(PROJECT_RELEASE).i686.rpm
|
||||
DRPM386= $(PROJECT_NAME)-devel-$(PROJECT_VERSION)-$(PROJECT_RELEASE).i386.rpm
|
||||
DRPM686= $(PROJECT_NAME)-devel-$(PROJECT_VERSION)-$(PROJECT_RELEASE).i686.rpm
|
||||
RPM686= $(PROJECT)-$(PROJECT_RELEASE).${TARCH}.rpm
|
||||
DRPM686= $(PROJECT_NAME)-devel-$(PROJECT_VERSION)-$(PROJECT_RELEASE).${TARCH}.rpm
|
||||
SRPM= $(PROJECT)-$(PROJECT_RELEASE).src.rpm
|
||||
TMPDIR= /var/tmp
|
||||
RHDIR= /usr/src/redhat
|
||||
@@ -88,30 +88,10 @@ srcpkg: make_rhdir
|
||||
rpm: srcpkg calc.spec
|
||||
$(MAKE) -f Makefile clean
|
||||
cp $(SPECFILE) $(RHDIR)/SPECS/$(SPECFILE)
|
||||
rm -f $(RHDIR)/RPMS/i386/$(RPM386)
|
||||
rm -f $(RHDIR)/RPMS/i386/$(DRPM386)
|
||||
rm -f $(RHDIR)/RPMS/${TARCH}/$(RPM686)
|
||||
rm -f $(RHDIR)/RPMS/${TARCH}/$(DRPM686)
|
||||
rm -f $(RHDIR)/SRPMS/$(SRPM)
|
||||
${RPMBUILD_TOOL} -ba $(RHDIR)/SPECS/$(SPECFILE)
|
||||
@if [ ! -f "RPMS/i386/$(RPM686)" ]; then \
|
||||
rm -f "$(RHDIR)/RPMS/i386/$(RPM686)"; \
|
||||
echo mv -f "$(RHDIR)/RPMS/i386/$(RPM386)" \
|
||||
"$(RHDIR)/RPMS/i386/$(RPM686)"; \
|
||||
mv -f "$(RHDIR)/RPMS/i386/$(RPM386)" \
|
||||
"$(RHDIR)/RPMS/i386/$(RPM686)"; \
|
||||
else \
|
||||
echo "RPMS/i386/$(RPM686) not found" 1>&2; \
|
||||
exit 1; \
|
||||
fi
|
||||
@if [ ! -f "RPMS/i386/$(DRPM386)" ]; then \
|
||||
rm -f "$(RHDIR)/RPMS/i386/$(DRPM686)"; \
|
||||
echo mv -f "$(RHDIR)/RPMS/i386/$(DRPM386)" \
|
||||
"$(RHDIR)/RPMS/i386/$(DRPM686)"; \
|
||||
mv -f "$(RHDIR)/RPMS/i386/$(DRPM386)" \
|
||||
"$(RHDIR)/RPMS/i386/$(DRPM686)"; \
|
||||
else \
|
||||
echo "RPMS/i386/$(DRPM386) not found" 1>&2; \
|
||||
exit 2; \
|
||||
fi
|
||||
${RPMBUILD_TOOL} ${RPMBUILD_OPTION} $(RHDIR)/SPECS/$(SPECFILE)
|
||||
@if [ ! -f "$(RHDIR)/SRPMS/$(SRPM)" ]; then \
|
||||
echo "SRPMS/$(SRPM) not found" 1>&2; \
|
||||
exit 3; \
|
||||
@@ -119,23 +99,23 @@ rpm: srcpkg calc.spec
|
||||
@echo
|
||||
@echo "RPM package sizes:"
|
||||
@echo
|
||||
@cd $(RHDIR); ls -1s RPMS/i386/$(RPM686) \
|
||||
RPMS/i386/$(DRPM686) SRPMS/$(SRPM)
|
||||
@cd $(RHDIR); ls -1s RPMS/${TARCH}/$(RPM686) \
|
||||
RPMS/${TARCH}/$(DRPM686) SRPMS/$(SRPM)
|
||||
@echo
|
||||
@echo "RPM package md5 hashes:"
|
||||
@echo
|
||||
-@cd $(RHDIR); ${MD5SUM} RPMS/i386/$(RPM686) \
|
||||
RPMS/i386/$(DRPM686) SRPMS/$(SRPM)
|
||||
-@cd $(RHDIR); ${MD5SUM} RPMS/${TARCH}/$(RPM686) \
|
||||
RPMS/${TARCH}/$(DRPM686) SRPMS/$(SRPM)
|
||||
@echo
|
||||
@echo "RPM package sha1 hashes:"
|
||||
@echo
|
||||
-@cd $(RHDIR); ${SHA1SUM} RPMS/i386/$(RPM686) \
|
||||
RPMS/i386/$(DRPM686) SRPMS/$(SRPM)
|
||||
-@cd $(RHDIR); ${SHA1SUM} RPMS/${TARCH}/$(RPM686) \
|
||||
RPMS/${TARCH}/$(DRPM686) SRPMS/$(SRPM)
|
||||
@echo
|
||||
@echo "RPM package locations:"
|
||||
@echo
|
||||
@ls -1 $(RHDIR)/RPMS/i386/$(RPM686) \
|
||||
$(RHDIR)/RPMS/i386/$(DRPM686) $(RHDIR)/SRPMS/$(SRPM)
|
||||
@ls -1 $(RHDIR)/RPMS/${TARCH}/$(RPM686) \
|
||||
$(RHDIR)/RPMS/${TARCH}/$(DRPM686) $(RHDIR)/SRPMS/$(SRPM)
|
||||
@echo
|
||||
@echo "All done! -- Jessica Noll, Age 2"
|
||||
@echo
|
||||
@@ -156,8 +136,9 @@ logdate:
|
||||
|
||||
.PHONY: chkpkg
|
||||
chkpkg:
|
||||
for i in $(RHDIR)/RPMS/i386/$(RPM686) $(RHDIR)/RPMS/i386/$(DRPM686) \
|
||||
$(RHDIR)/SRPMS/$(SRPM) ; do \
|
||||
for i in $(RHDIR)/RPMS/${TARCH}/$(RPM686) \
|
||||
$(RHDIR)/RPMS/${TARCH}/$(DRPM686) \
|
||||
$(RHDIR)/SRPMS/$(SRPM) ; do \
|
||||
echo "***** start $$i" ; \
|
||||
${RPM_TOOL} -qpi $$i ; \
|
||||
echo "***** files $$i" ; \
|
||||
@@ -184,8 +165,8 @@ installrpm:
|
||||
echo "must be root to install RPMs" 1>&2; \
|
||||
exit 5; \
|
||||
fi
|
||||
${RPM_TOOL} -ivh $(RHDIR)/RPMS/i386/$(RPM686)
|
||||
${RPM_TOOL} -ivh $(RHDIR)/RPMS/i386/$(DRPM686)
|
||||
${RPM_TOOL} -ivh $(RHDIR)/RPMS/${TARCH}/$(RPM686)
|
||||
${RPM_TOOL} -ivh $(RHDIR)/RPMS/${TARCH}/$(DRPM686)
|
||||
|
||||
.PHONY: uninstallrpm
|
||||
uninstallrpm:
|
||||
|
14
shs.c
14
shs.c
@@ -31,8 +31,8 @@
|
||||
* Based on Version 2.11 (09 Mar 1995) from Landon Curt Noll's
|
||||
* (http://www.isthe.com/chongo/) shs hash program.
|
||||
*
|
||||
* @(#) $Revision: 29.2 $
|
||||
* @(#) $Id: shs.c,v 29.2 2000/06/07 14:02:13 chongo Exp $
|
||||
* @(#) $Revision: 29.3 $
|
||||
* @(#) $Id: shs.c,v 29.3 2004/02/23 08:14:15 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/shs.c,v $
|
||||
*
|
||||
* This file is not covered under version 2.1 of the GNU LGPL.
|
||||
@@ -286,7 +286,7 @@ shsUpdate(HASH *state, USB8 *buffer, USB32 count)
|
||||
USB32 datalen = dig->datalen;
|
||||
USB32 cpylen;
|
||||
#if CALC_BYTE_ORDER == LITTLE_ENDIAN
|
||||
int i;
|
||||
unsigned int i;
|
||||
#endif
|
||||
|
||||
/*
|
||||
@@ -365,7 +365,7 @@ shsFinal(HASH *state)
|
||||
USB32 highBitcount;
|
||||
USB8 *data = (USB8 *) dig->data;
|
||||
#if CALC_BYTE_ORDER == LITTLE_ENDIAN
|
||||
int i;
|
||||
unsigned int i;
|
||||
#endif
|
||||
|
||||
/*
|
||||
@@ -433,7 +433,7 @@ shs_chkpt(HASH *state)
|
||||
{
|
||||
SHS_INFO *dig = &state->h_union.h_shs; /* digest state */
|
||||
#if CALC_BYTE_ORDER == LITTLE_ENDIAN
|
||||
int i;
|
||||
unsigned int i;
|
||||
#endif
|
||||
|
||||
/*
|
||||
@@ -478,7 +478,7 @@ static void
|
||||
shs_note(int special, HASH *state)
|
||||
{
|
||||
SHS_INFO *dig = &state->h_union.h_shs; /* digest state */
|
||||
int i;
|
||||
unsigned int i;
|
||||
|
||||
/*
|
||||
* change state to reflect a special value
|
||||
@@ -509,7 +509,7 @@ static void
|
||||
shs_type(int type, HASH *state)
|
||||
{
|
||||
SHS_INFO *dig = &state->h_union.h_shs; /* digest state */
|
||||
int i;
|
||||
unsigned int i;
|
||||
|
||||
/*
|
||||
* ignore NUMBER and COMPLEX
|
||||
|
14
shs1.c
14
shs1.c
@@ -22,8 +22,8 @@
|
||||
* NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
|
||||
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
|
||||
*
|
||||
* @(#) $Revision: 29.2 $
|
||||
* @(#) $Id: shs1.c,v 29.2 2000/06/07 14:02:13 chongo Exp $
|
||||
* @(#) $Revision: 29.3 $
|
||||
* @(#) $Id: shs1.c,v 29.3 2004/02/23 08:15:52 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/shs1.c,v $
|
||||
*
|
||||
* This file is not covered under version 2.1 of the GNU LGPL.
|
||||
@@ -261,7 +261,7 @@ shs1Update(HASH *state, USB8 *buffer, USB32 count)
|
||||
USB32 datalen = dig->datalen;
|
||||
USB32 cpylen;
|
||||
#if CALC_BYTE_ORDER == LITTLE_ENDIAN
|
||||
int i;
|
||||
unsigned int i;
|
||||
#endif
|
||||
|
||||
/*
|
||||
@@ -341,7 +341,7 @@ shs1Final(HASH *state)
|
||||
USB32 highBitcount;
|
||||
USB8 *data = (USB8 *) dig->data;
|
||||
#if CALC_BYTE_ORDER == LITTLE_ENDIAN
|
||||
int i;
|
||||
unsigned int i;
|
||||
#endif
|
||||
|
||||
/* Pad to end of chunk */
|
||||
@@ -411,7 +411,7 @@ shs1_chkpt(HASH *state)
|
||||
{
|
||||
SHS1_INFO *dig = &state->h_union.h_shs1; /* digest state */
|
||||
#if CALC_BYTE_ORDER == LITTLE_ENDIAN
|
||||
int i;
|
||||
unsigned int i;
|
||||
#endif
|
||||
|
||||
/*
|
||||
@@ -455,7 +455,7 @@ static void
|
||||
shs1_note(int special, HASH *state)
|
||||
{
|
||||
SHS1_INFO *dig = &state->h_union.h_shs1; /* digest state */
|
||||
int i;
|
||||
unsigned int i;
|
||||
|
||||
/*
|
||||
* change state to reflect a special value
|
||||
@@ -486,7 +486,7 @@ static void
|
||||
shs1_type(int type, HASH *state)
|
||||
{
|
||||
SHS1_INFO *dig = &state->h_union.h_shs1; /* digest state */
|
||||
int i;
|
||||
unsigned int i;
|
||||
|
||||
/*
|
||||
* ignore NUMBER and COMPLEX
|
||||
|
6
string.c
6
string.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.2 $
|
||||
* @(#) $Id: string.c,v 29.2 2000/06/07 14:02:13 chongo Exp $
|
||||
* @(#) $Revision: 29.3 $
|
||||
* @(#) $Id: string.c,v 29.3 2004/02/23 08:18:27 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/string.c,v $
|
||||
*
|
||||
* Under source code control: 1990/02/15 01:48:10
|
||||
@@ -184,7 +184,7 @@ namestr(STRINGHEAD *hp, long n)
|
||||
{
|
||||
register char *str; /* current string */
|
||||
|
||||
if ((unsigned long)n >= hp->h_count)
|
||||
if (n >= hp->h_count)
|
||||
return "";
|
||||
str = hp->h_list;
|
||||
while (*str) {
|
||||
|
13
version.c
13
version.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.46 $
|
||||
* @(#) $Id: version.c,v 29.46 2003/02/25 20:28:42 chongo Exp $
|
||||
* @(#) $Revision: 29.49 $
|
||||
* @(#) $Id: version.c,v 29.49 2004/02/23 08:23:19 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/version.c,v $
|
||||
*
|
||||
* Under source code control: 1990/05/22 11:00:58
|
||||
@@ -43,9 +43,11 @@ static char *program;
|
||||
# include "calc.h"
|
||||
#endif
|
||||
|
||||
#include "have_unused.h"
|
||||
|
||||
#define MAJOR_VER 2 /* major version */
|
||||
#define MINOR_VER 11 /* minor version */
|
||||
#define MAJOR_PATCH 7 /* patch level or 0 if no patch */
|
||||
#define MAJOR_PATCH 9 /* patch level or 0 if no patch */
|
||||
#define MINOR_PATCH 0 /* test number or 0 if no minor patch */
|
||||
|
||||
|
||||
@@ -70,7 +72,7 @@ static char *stored_version = NULL; /* version formed if != NULL */
|
||||
char *Copyright = "\n"
|
||||
"calc - arbitrary precision calculator\n"
|
||||
"\n"
|
||||
"@(#) Copyright (C) 1999 David I. Bell, Landon Curt Noll and Ernest Bowen\n"
|
||||
"@(#) Copyright (C) 2003 David I. Bell, Landon Curt Noll and Ernest Bowen\n"
|
||||
"\n"
|
||||
"Primary author: David I. Bell\n"
|
||||
"\n"
|
||||
@@ -96,8 +98,9 @@ char *Copyright = "\n"
|
||||
#if !defined(HAVE_SNPRINTF)
|
||||
/* Simulate snprintf with vsprintf, hoping that BUFSIZ is large enough. */
|
||||
#include <stdarg.h>
|
||||
/*ARGSUSED*/
|
||||
int
|
||||
snprintf (char *buf, size_t n, const char *fmt, ...)
|
||||
snprintf (char *buf, size_t UNUSED n, const char *fmt, ...)
|
||||
{
|
||||
int retval;
|
||||
va_list arg;
|
||||
|
16
win32/have_unused.h
Normal file
16
win32/have_unused.h
Normal file
@@ -0,0 +1,16 @@
|
||||
/*
|
||||
* DO NOT EDIT -- generated by the Makefile
|
||||
*/
|
||||
|
||||
|
||||
#if !defined(__HAVE_UNUSED_H__)
|
||||
#define __HAVE_UNUSED_H__
|
||||
|
||||
|
||||
/* do we have/want the unused attribute? */
|
||||
#define HAVE_UNUSED /* yes */
|
||||
#undef UNUSED
|
||||
#define UNUSED __attribute__((unused)) /* yes */
|
||||
|
||||
|
||||
#endif /* !__HAVE_UNUSED_H__ */
|
12
zfunc.c
12
zfunc.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.3 $
|
||||
* @(#) $Id: zfunc.c,v 29.3 2000/07/17 15:35:49 chongo Exp $
|
||||
* @(#) $Revision: 29.4 $
|
||||
* @(#) $Id: zfunc.c,v 29.4 2003/08/26 04:35:11 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/zfunc.c,v $
|
||||
*
|
||||
* Under source code control: 1990/02/15 01:48:27
|
||||
@@ -817,7 +817,9 @@ zgcd(ZVALUE z1, ZVALUE z2, ZVALUE *res)
|
||||
needw = TRUE;
|
||||
|
||||
w = 0;
|
||||
j = 0;
|
||||
while (m) { /* START OF MAIN LOOP */
|
||||
if (m - n < 2 || needw) {
|
||||
q = 0;
|
||||
u = *a0;
|
||||
v = 1;
|
||||
@@ -872,6 +874,8 @@ zgcd(ZVALUE z1, ZVALUE z2, ZVALUE *res)
|
||||
else g &= BASE1;
|
||||
}
|
||||
else g = 1;
|
||||
} else
|
||||
g = (HALF) *a0 * w;
|
||||
a = a0;
|
||||
b = b0;
|
||||
i = n;
|
||||
@@ -947,6 +951,10 @@ zgcd(ZVALUE z1, ZVALUE z2, ZVALUE *res)
|
||||
}
|
||||
a0 += q;
|
||||
m -= q;
|
||||
while (m && !*a0) { /* Removing trailing zeros */
|
||||
m--;
|
||||
a0++;
|
||||
}
|
||||
}
|
||||
while (m && !a0[m-1]) m--; /* Removing leading zeros */
|
||||
}
|
||||
|
9
zrand.c
9
zrand.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.5 $
|
||||
* @(#) $Id: zrand.c,v 29.5 2003/01/14 00:54:24 chongo Exp $
|
||||
* @(#) $Revision: 29.6 $
|
||||
* @(#) $Id: zrand.c,v 29.6 2004/02/23 08:22:22 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/zrand.c,v $
|
||||
*
|
||||
* Under source code control: 1995/01/07 09:45:25
|
||||
@@ -357,6 +357,7 @@
|
||||
|
||||
#include "zrand.h"
|
||||
#include "have_const.h"
|
||||
#include "have_unused.h"
|
||||
|
||||
|
||||
/*
|
||||
@@ -860,7 +861,7 @@ randreseed64(ZVALUE seed, ZVALUE *res)
|
||||
/*
|
||||
* form chunk mod 2^64
|
||||
*/
|
||||
if (chunk.len > SHALFS) {
|
||||
if (chunk.len > (SB32)SHALFS) {
|
||||
/* result is too large, reduce to 64 bits */
|
||||
v64 = alloc(SHALFS);
|
||||
memcpy(v64, chunk.v, SHALFS*sizeof(HALF));
|
||||
@@ -2104,7 +2105,7 @@ randcmp(CONST RAND *s1, CONST RAND *s2)
|
||||
*/
|
||||
/*ARGSUSED*/
|
||||
void
|
||||
randprint(CONST RAND *state, int flags)
|
||||
randprint(CONST RAND UNUSED *state, int UNUSED flags)
|
||||
{
|
||||
math_str("RAND state");
|
||||
}
|
||||
|
@@ -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: zrandom.c,v 29.4 2002/12/29 06:35:08 chongo Exp $
|
||||
* @(#) $Revision: 29.5 $
|
||||
* @(#) $Id: zrandom.c,v 29.5 2004/02/23 09:12:13 chongo Exp $
|
||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/zrandom.c,v $
|
||||
*
|
||||
* Under source code control: 1997/02/15 04:01:56
|
||||
@@ -1084,6 +1084,7 @@
|
||||
|
||||
#include "zrandom.h"
|
||||
#include "have_const.h"
|
||||
#include "have_unused.h"
|
||||
|
||||
|
||||
/*
|
||||
@@ -2489,7 +2490,7 @@ randomcmp(CONST RANDOM *s1, CONST RANDOM *s2)
|
||||
*/
|
||||
/*ARGSUSED*/
|
||||
void
|
||||
randomprint(CONST RANDOM *state, int flags)
|
||||
randomprint(CONST RANDOM UNUSED *state, int UNUSED flags)
|
||||
{
|
||||
math_str("RANDOM state");
|
||||
}
|
||||
|
Reference in New Issue
Block a user