Release calc version 2.11.5t1.1

This commit is contained in:
Landon Curt Noll
2001-04-08 04:34:21 -07:00
parent 63d9b22067
commit fc0a3dd183
57 changed files with 2224 additions and 153 deletions

26
BUGS
View File

@@ -208,6 +208,28 @@ Problems with known work-a-rounds:
or performance. The work-a-round is to ignore these warnings or performance. The work-a-round is to ignore these warnings
under BSDI. under BSDI.
* The chi.cal resource file does not work well with odd degrees
of freedom. Can someone improve this algorithm?
* The intfile.cal resource file reads and writes big or little Endian
integers to/from files the hard way. It does NOT use blkcpy. The
following code:
i = (ord("\n") << 16) | (ord("i") << 8) | ord("H")
b = blk()
copy(i, b)
fd = fopen("file", "w")
copy(b, fd);
fclose(fd)
will write an extra NUL octet to the file. Where as:
read intfile
i = (ord("\n") << 16) | (ord("i") << 8) | ord("H")
be2file(i, "file2")
will not.
## Copyright (C) 1999 Landon Curt Noll ## Copyright (C) 1999 Landon Curt Noll
## ##
## Calc is open software; you can redistribute it and/or modify it under ## Calc is open software; you can redistribute it and/or modify it under
@@ -224,8 +246,8 @@ Problems with known work-a-rounds:
## received a copy with calc; if not, write to Free Software Foundation, Inc. ## received a copy with calc; if not, write to Free Software Foundation, Inc.
## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
## ##
## @(#) $Revision: 29.9 $ ## @(#) $Revision: 29.10 $
## @(#) $Id: BUGS,v 29.9 2001/03/18 03:34:41 chongo Exp $ ## @(#) $Id: BUGS,v 29.10 2001/04/08 11:32:52 chongo Exp $
## @(#) $Source: /usr/local/src/cmd/calc/RCS/BUGS,v $ ## @(#) $Source: /usr/local/src/cmd/calc/RCS/BUGS,v $
## ##
## Under source code control: 1994/03/18 14:06:13 ## Under source code control: 1994/03/18 14:06:13

76
CHANGES
View File

@@ -48,6 +48,78 @@ The following are the changes from calc version 2.11.5t0 to date:
Fixed a bug in the way file offsets, device and inode values are copied. Fixed a bug in the way file offsets, device and inode values are copied.
Added chi.cal for a initial stab as a Chi^2 function. The chi_prob()
function does not work well with odd degrees of freedom, however.
Added big 3 to config("resource_debug"). Calc resource file scripts
check for config("resource_debug") & 8 prior to printing internal debug
statements. Thus by default they do not print them.
Added intfile.cal as a calc resource file script:
file2be(filename)
Read filename and return an integer that is built from the
octets in that file in Big Endian order. The first octets
of the file become the most significant bits of the integer.
file2le(filename)
Read filename and return an integer that is built from the
octets in that file in Little Endian order. The first octets
of the file become the most significant bits of the integer.
be2file(v, filename)
Write the absolute value of v into filename in Big Endian order.
The v argument must be on integer. The most significant bits
of the integer become the first octets of the file.
le2file(v, filename)
Write the absolute value of v into filename in Little Endian order.
The v argument must be on integer. The least significant bits
of the integer become the last octets of the file.
Added the following help aliases:
copy blkcpy
read command
write command
quit command
exit command
abort command
cd command
show command
Added the cscript:
fproduct filename term ...
to write the big Endian product of terms to a filename. Use - for stdout.
Fixed calc path in help/script.
Added read-only parameter, config("windows") to indicate if the system
is MS windowz WIN32 like system.
Configuration values that used to return "true" or "false" now return
1 (a true value) or 0 (a false value). Thus one can do:
if (config("tab")) { ... } else { ... }
The configuration values that now return 1 or 0 are:
config("tilde")
config("tab")
config("leadzero")
config("blkverbose")
config("verbose_quit")
config("windows")
Now shipping a win32 sub-directory that contains hsrc .h files
that have been attempted to be built for windoz.
The following are the changes from calc version 2.11.4t1 to date: The following are the changes from calc version 2.11.4t1 to date:
@@ -5092,8 +5164,8 @@ Following is a list of visible changes to calc from version 1.24.7 to 1.26.1:
## received a copy with calc; if not, write to Free Software Foundation, Inc. ## received a copy with calc; if not, write to Free Software Foundation, Inc.
## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
## ##
## @(#) $Revision: 29.22 $ ## @(#) $Revision: 29.26 $
## @(#) $Id: CHANGES,v 29.22 2001/03/18 03:27:28 chongo Exp $ ## @(#) $Id: CHANGES,v 29.26 2001/04/08 11:03:37 chongo Exp $
## @(#) $Source: /usr/local/src/cmd/calc/RCS/CHANGES,v $ ## @(#) $Source: /usr/local/src/cmd/calc/RCS/CHANGES,v $
## ##
## Under source code control: 1993/06/02 18:12:57 ## Under source code control: 1993/06/02 18:12:57

View File

@@ -20,8 +20,8 @@
# received a copy with calc; if not, write to Free Software Foundation, Inc. # received a copy with calc; if not, write to Free Software Foundation, Inc.
# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. # 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
# #
MAKEFILE_REV= $$Revision: 29.18 $$ MAKEFILE_REV= $$Revision: 29.19 $$
# @(#) $Id: Makefile.ship,v 29.18 2001/03/18 03:26:52 chongo Exp $ # @(#) $Id: Makefile.ship,v 29.19 2001/04/08 10:54:22 chongo Exp $
# @(#) $Source: /usr/local/src/cmd/calc/RCS/Makefile.ship,v $ # @(#) $Source: /usr/local/src/cmd/calc/RCS/Makefile.ship,v $
# #
# Under source code control: 1990/02/15 01:48:41 # Under source code control: 1990/02/15 01:48:41
@@ -2768,7 +2768,7 @@ depend: hsrc
echo "#if !defined($$tag)" > "skel/$$i"; \ echo "#if !defined($$tag)" > "skel/$$i"; \
echo "#define $$tag" >> "skel/$$i"; \ echo "#define $$tag" >> "skel/$$i"; \
${SED} -n '/^#[ ]*include[ ]*"/p' "$$i" | \ ${SED} -n '/^#[ ]*include[ ]*"/p' "$$i" | \
${SORT} -u >> "skel/$$i"; \ LANG=C ${SORT} -u >> "skel/$$i"; \
echo '#endif /* '"$$tag"' */' >> "skel/$$i"; \ echo '#endif /* '"$$tag"' */' >> "skel/$$i"; \
done done
-${Q}rm -f skel/makedep.out -${Q}rm -f skel/makedep.out
@@ -2787,7 +2787,7 @@ depend: hsrc
${Q}mv Makefile Makefile.bak ${Q}mv Makefile Makefile.bak
${Q}${SED} -n '1,/^# DO NOT DELETE THIS LINE/p' Makefile.bak > Makefile ${Q}${SED} -n '1,/^# DO NOT DELETE THIS LINE/p' Makefile.bak > Makefile
${Q}echo "" >> Makefile ${Q}echo "" >> Makefile
${Q}${SED} -n '3,$$p' skel/makedep.out | ${SORT} -u >> Makefile ${Q}${SED} -n '3,$$p' skel/makedep.out | LANG=C ${SORT} -u >> Makefile
-${Q}rm -rf skel -${Q}rm -rf skel
-${Q}if cmp -s Makefile.bak Makefile; then \ -${Q}if cmp -s Makefile.bak Makefile; then \
echo 'Makefile was already up to date'; \ echo 'Makefile was already up to date'; \
@@ -2822,19 +2822,23 @@ distlist: ${DISTLIST}
${Q}(for i in ${DISTLIST}; do \ ${Q}(for i in ${DISTLIST}; do \
echo $$i; \ echo $$i; \
done; \ done; \
for i in ${BUILD_H_SRC} ${BUILD_C_SRC}; do \
echo win32/$$i; \
done; \
(cd help; ${MAKE} ${HELP_PASSDOWN} $@); \ (cd help; ${MAKE} ${HELP_PASSDOWN} $@); \
(cd cal; ${MAKE} ${CAL_PASSDOWN} $@); \ (cd cal; ${MAKE} ${CAL_PASSDOWN} $@); \
(cd custom; ${MAKE} ${CUSTOM_PASSDOWN} $@); \ (cd custom; ${MAKE} ${CUSTOM_PASSDOWN} $@); \
(cd cscript; ${MAKE} ${CSCRIPT_PASSDOWN} $@); \ (cd cscript; ${MAKE} ${CSCRIPT_PASSDOWN} $@); \
(cd sample; ${MAKE} ${SAMPLE_PASSDOWN} $@)) | ${SORT} (cd sample; ${MAKE} ${SAMPLE_PASSDOWN} $@)) | LANG=C ${SORT}
distdir: distdir:
${Q}(echo .; \ ${Q}(echo .; \
echo win32; \
(cd help; ${MAKE} ${HELP_PASSDOWN} $@); \ (cd help; ${MAKE} ${HELP_PASSDOWN} $@); \
(cd cal; ${MAKE} ${CAL_PASSDOWN} $@); \ (cd cal; ${MAKE} ${CAL_PASSDOWN} $@); \
(cd custom; ${MAKE} ${CUSTOM_PASSDOWN} $@); \ (cd custom; ${MAKE} ${CUSTOM_PASSDOWN} $@); \
(cd cscript; ${MAKE} ${CSCRIPT_PASSDOWN} $@); \ (cd cscript; ${MAKE} ${CSCRIPT_PASSDOWN} $@); \
(cd sample; ${MAKE} ${SAMPLE_PASSDOWN} $@)) | ${SORT} (cd sample; ${MAKE} ${SAMPLE_PASSDOWN} $@)) | LANG=C ${SORT}
calcliblist: calcliblist:
${Q}(for i in ${CALCLIBLIST}; do \ ${Q}(for i in ${CALCLIBLIST}; do \
@@ -2844,7 +2848,7 @@ calcliblist:
(cd cal; ${MAKE} ${CAL_PASSDOWN} $@); \ (cd cal; ${MAKE} ${CAL_PASSDOWN} $@); \
(cd custom; ${MAKE} ${CUSTOM_PASSDOWN} $@); \ (cd custom; ${MAKE} ${CUSTOM_PASSDOWN} $@); \
(cd cscript; ${MAKE} ${CSCRIPT_PASSDOWN} $@); \ (cd cscript; ${MAKE} ${CSCRIPT_PASSDOWN} $@); \
(cd sample; ${MAKE} ${SAMPLE_PASSDOWN} $@)) | ${SORT} (cd sample; ${MAKE} ${SAMPLE_PASSDOWN} $@)) | LANG=C ${SORT}
calcliblistfmt: calcliblistfmt:
${Q}${MAKE} calcliblist | ${FMT} -64 | ${SED} -e 's/^/ /' ${Q}${MAKE} calcliblist | ${FMT} -64 | ${SED} -e 's/^/ /'

View File

@@ -55,8 +55,10 @@ by the make file:
have_gettime.h have_getprid.h have_urandom.h have_rusage.h have_gettime.h have_getprid.h have_urandom.h have_rusage.h
have_strdup.h have_strdup.h
NOTE: In a future release, a tarball of these files will be shipped with You will find generated versions of these files located in the win32
calc so that you do not have to do much other than inspect them. sub-directory. These files may be appropriate for your Cygwin building
needs. Just copy the win32/*.[ch] files up into the mail calc
source directory.
=-= =-=
@@ -102,8 +104,8 @@ was changed to:
## received a copy with calc; if not, write to Free Software Foundation, Inc. ## received a copy with calc; if not, write to Free Software Foundation, Inc.
## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
## ##
## @(#) $Revision: 29.3 $ ## @(#) $Revision: 29.5 $
## @(#) $Id: README.WINDOWS,v 29.3 2001/03/17 21:31:47 chongo Exp $ ## @(#) $Id: README.WINDOWS,v 29.5 2001/04/08 10:57:56 chongo Exp $
## @(#) $Source: /usr/local/src/cmd/calc/RCS/README.WINDOWS,v $ ## @(#) $Source: /usr/local/src/cmd/calc/RCS/README.WINDOWS,v $
## ##
## Under source code control: 2001/02/25 14:00:05 ## Under source code control: 2001/02/25 14:00:05

View File

@@ -18,8 +18,8 @@
# received a copy with calc; if not, write to Free Software Foundation, Inc. # received a copy with calc; if not, write to Free Software Foundation, Inc.
# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. # 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
# #
# @(#) $Revision: 29.3 $ # @(#) $Revision: 29.5 $
# @(#) $Id: Makefile,v 29.3 2000/12/15 14:42:52 chongo Exp $ # @(#) $Id: Makefile,v 29.5 2001/03/31 16:24:17 chongo Exp $
# @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/Makefile,v $ # @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/Makefile,v $
# #
# Under source code control: 1991/07/21 05:00:54 # Under source code control: 1991/07/21 05:00:54
@@ -70,7 +70,7 @@ CALC_FILES= README bigprime.cal deg.cal ellip.cal lucas.cal lucas_chk.cal \
test3500.cal seedrandom.cal test4000.cal test4100.cal test4600.cal \ test3500.cal seedrandom.cal test4000.cal test4100.cal test4600.cal \
beer.cal hello.cal test5100.cal test5200.cal randombitrun.cal \ beer.cal hello.cal test5100.cal test5200.cal randombitrun.cal \
randomrun.cal xx_print.cal natnumset.cal qtime.cal test8400.cal \ randomrun.cal xx_print.cal natnumset.cal qtime.cal test8400.cal \
test8500.cal test8600.cal test8500.cal test8600.cal chi.cal intfile.cal
# These files are found (but not built) in the distribution # These files are found (but not built) in the distribution
# #

View File

@@ -64,7 +64,7 @@ Zero value of config("resource_debug") means that no such information
is displayed. For other values, the non-zero bits which currently is displayed. For other values, the non-zero bits which currently
have meanings are as follows: have meanings are as follows:
n Meaning of bit n of config("resource_debug") n Meaning of bit n of config("resource_debug")
0 When a function is defined, redefined or undefined at 0 When a function is defined, redefined or undefined at
interactive level, a message saying what has been done interactive level, a message saying what has been done
@@ -74,6 +74,12 @@ have meanings are as follows:
the reading of a file, a message saying what has been done the reading of a file, a message saying what has been done
is displayed. is displayed.
2 Show func will display more information about a functions
arguments as well as more argument sdummary information.
3 During execution, allow calc standard resource files
to output additional debugging information.
The value for config("resource_debug") in both oldstd and newstd is 3, The value for config("resource_debug") in both oldstd and newstd is 3,
but if calc is invoked with the -d flag, its initial value is zero. but if calc is invoked with the -d flag, its initial value is zero.
Thus, if calc is started without the -d flag, until config("resource_debug") Thus, if calc is started without the -d flag, until config("resource_debug")
@@ -97,6 +103,14 @@ either of the bottom 2 bits set:
print "funcB(size, mass, ...) defined"; print "funcB(size, mass, ...) defined";
} }
If your the resource file needs to output special debugging informatin,
we recommend that you check for bit 3 of the config("resource_debug")
before printing the debug statement:
if (config("resource_debug") & 8) {
print "DEBUG: This a sample debug statement";
}
=-= =-=
The following is a brief description of some of the calc resource files The following is a brief description of some of the calc resource files
@@ -128,6 +142,24 @@ bigprime.cal
A prime test, base a, on p*2^x+1 for even x>m. A prime test, base a, on p*2^x+1 for even x>m.
chi.cal
Z(x[, eps])
P(x[, eps])
chi_prob(chi_sq, v[, eps])
Computes the Probability, given the Null Hypothesis, that a given
Chi squared values >= chi_sq with v degrees of freedom.
The chi_prob() function does not work well with odd degrees of freedom.
It is reasonable with even degrees of freedom, although one must give
a sifficently small error term as the degress gets large (>100).
The Z(x) and P(x) are internal statistical funcions.
eps is an optional epsilon() like error term.
chrem.cal chrem.cal
chrem(r1,m1 [,r2,m2, ...]) chrem(r1,m1 [,r2,m2, ...])
@@ -163,6 +195,33 @@ hello.cal
http://www.latech.edu/~acm/helloworld/calc.html http://www.latech.edu/~acm/helloworld/calc.html
intfile.cal
file2be(filename)
Read filename and return an integer that is built from the
octets in that file in Big Endian order. The first octets
of the file become the most significant bits of the integer.
file2le(filename)
Read filename and return an integer that is built from the
octets in that file in Little Endian order. The first octets
of the file become the most significant bits of the integer.
be2file(v, filename)
Write the absolute value of v into filename in Big Endian order.
The v argument must be on integer. The most significant bits
of the integer become the first octets of the file.
le2file(v, filename)
Write the absolute value of v into filename in Little Endian order.
The v argument must be on integer. The least significant bits
of the integer become the last octets of the file.
lucas.cal lucas.cal
lucas(h, n) lucas(h, n)
@@ -756,8 +815,8 @@ xx_print.cal
## received a copy with calc; if not, write to Free Software Foundation, Inc. ## received a copy with calc; if not, write to Free Software Foundation, Inc.
## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
## ##
## @(#) $Revision: 29.4 $ ## @(#) $Revision: 29.8 $
## @(#) $Id: README,v 29.4 2000/12/17 12:26:04 chongo Exp $ ## @(#) $Id: README,v 29.8 2001/03/31 16:26:23 chongo Exp $
## @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/README,v $ ## @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/README,v $
## ##
## Under source code control: 1990/02/15 01:50:32 ## Under source code control: 1990/02/15 01:50:32

251
cal/chi.cal Normal file
View File

@@ -0,0 +1,251 @@
/*
* chi - chi^2 probabilities with degrees of freedom for null hypothesis
*
* Copyright (C) 2001 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: chi.cal,v 29.2 2001/04/08 10:21:23 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/chi.cal,v $
*
* Under source code control: 2001/03/27 14:10:11
* File existed as early as: 2001
*
* chongo <was here> /\oo/\ http://www.isthe.com/chongo/
* Share and enjoy! :-) http://www.isthe.com/chongo/tech/comp/calc/
*/
/*
* Z(x)
*
* From Handbook of Mathematical Functions
* 10th printing, Dec 1972 with corrections
* National Bureau of Standards
*
* Section 26.2.1, p931.
*/
define Z(x, eps_term)
{
local eps; /* error term */
/* obtain the error term */
if (isnull(eps_term)) {
eps = epsilon();
} else {
eps = eps_term;
}
/* compute Z(x) value */
return exp(-x*x/2, eps) / sqrt(2*pi(eps), eps);
}
/*
* P(x[, eps]) asymtotic P(x) expansion for x>0 to an given epsilon error term
*
* NOTE: If eps is omitted, the stored epsilon value is used.
*
* From Handbook of Mathematical Functions
* 10th printing, Dec 1972 with corrections
* National Bureau of Standards
*
* 26.2.11, p932:
*
* P(x) = 1/2 + Z(x) * sum(n=0; n < infinity){x^(2*n+1)/(1*3*5*...(2*n+1)};
*
* We continue the fraction until it is less than epsilon error term.
*
* Also note 26.2.5:
*
* P(x) + Q(x) = 1
*/
define P(x, eps_term)
{
local eps; /* error term */
local s; /* sum */
local x2; /* x^2 */
local x_term; /* x^(2*r+1) */
local odd_prod; /* 1*3*5* ... */
local odd_term; /* next odd value to multiply into odd_prod */
local term; /* the recent term added to the sum */
/* obtain the error term */
if (isnull(eps_term)) {
eps = epsilon();
} else {
eps = eps_term;
}
/* firewall */
if (x <= 0) {
if (x == 0) {
return 0; /* hack */
} else {
quit "Q(x[,eps]) 1st argument must be >= 0";
}
}
if (eps <= 0) {
quit "Q(x[,eps]) 2nd argument must be > 0";
}
/*
* aproximate sum(n=0; n < infinity){x^(2*n+1)/(1*3*5*...(2*n+1)}
*/
x2 = x*x;
x_term = x;
s = x_term; /* 1st term */
odd_term = 1;
odd_prod = 1;
do {
/* compute the term */
odd_term += 2;
odd_prod *= odd_term;
x_term *= x2;
term = x_term / odd_prod;
s += term;
} while (term >= eps);
/* apply term and factor */
return 0.5 + Z(x,eps)*s;
}
/*
* chi_prob(chi_sq, v[, eps]) - Prob of >= chi^2 with v degrees of freedom
*
* Computes the Probability, given the Null Hypothesis, that a given
* Chi squared values >= chi_sq with v degrees of freedom.
*
* The chi_prob() function does not work well with odd degrees of freedom.
* It is reasonable with even degrees of freedom, although one must give
* a sifficently small error term as the degress gets large (>100).
*
* NOTE: This function does not work well with odd degrees of freedom.
* Can somebody help / find a bug / provide a better method of
* this odd degrees of freedom case?
*
* NOTE: This function works well with even degrees of freedom. However
* when the even degrees gets large (say, as you approach 100), you
* need to increase your error term.
*
* From Handbook of Mathematical Functions
* 10th printing, Dec 1972 with corrections
* National Bureau of Standards
*
* Section 26.4.4, p941:
*
* For odd v:
*
* Q(chi_sq, v) = 2*Q(chi) + 2*Z(chi) * (
* sum(r=1, r<=(r-1)/2) {(chi_sq^r/chi) / (1*3*5*...(2*r-1)});
*
* chi = sqrt(chi_sq)
*
* NOTE: Q(x) = 1-P(x)
*
* Section 26.4.5, p941.
*
* For even v:
*
* Q(chi_sq, v) = sqrt(2*pi()) * Z(chi) * ( 1 +
* sum(r=1, r=((v-2)/2)) { chi_sq^r / (2*4*...*(2r)) } );
*
* chi = sqrt(chi_sq)
*
* Observe that:
*
* Z(x) = exp(-x*x/2) / sqrt(2*pi()); (Section 26.2.1, p931)
*
* and thus:
*
* sqrt(2*pi()) * Z(chi) =
* sqrt(2*pi()) * Z(sqrt(chi_sq)) =
* sqrt(2*pi()) * exp(-sqrt(chi_sq)*sqrt(chi_sq)/2) / sqrt(2*pi()) =
* exp(-sqrt(chi_sq)*sqrt(chi_sq)/2) =
* exp(-sqrt(-chi_sq/2)
*
* So:
*
* Q(chi_sq, v) = exp(-sqrt(-chi_sq/2) * ( 1 + sum(....){...} );
*/
define chi_prob(chi_sq, v, eps_term)
{
local eps; /* error term */
local r; /* index in finite sum */
local r_lim; /* limit value for r */
local s; /* sum */
local d; /* demoninator (2*4*6*... or 1*3*5...) */
local chi_term; /* chi_sq^r */
local ret; /* return value */
/* obtain the error term */
if (isnull(eps_term)) {
eps = epsilon();
} else {
eps = eps_term;
}
/*
* odd degrees of freedom
*/
if (isodd(v)) {
local chi; /* sqrt(chi_sq) */
/* setup for sum */
s = 1;
d = 1;
chi = sqrt(abs(chi_sq), eps);
chi_term = chi;
r_lim = (v-1)/2;
/* compute sum(r=1, r=((v-1)/2)) {(chi_sq^r/chi) / (1*3*5...*(2r-1))} */
for (r=2; r <= r_lim; ++r) {
chi_term *= chi_sq;
d *= (2*r)-1;
s += chi_term/d;
}
/* apply term and factor, Q(x) = 1-P(x) */
ret = 2*(1-P(chi)) + 2*Z(chi)*s;
/*
* even degrees of freedom
*/
} else {
/* setup for sum */
s =1;
d = 1;
chi_term = 1;
r_lim = (v-2)/2;
/* compute sum(r=1, r=((v-2)/2)) { chi_sq^r / (2*4*...*(2r)) } */
for (r=1; r <= r_lim; ++r) {
chi_term *= chi_sq;
d *= r*2;
s += chi_term/d;
}
/* apply factor - see observation in the main comment above */
ret = exp(-chi_sq/2, eps) * s;
}
return ret;
}

222
cal/intfile.cal Normal file
View File

@@ -0,0 +1,222 @@
/*
* intfile - integer to file and file to integer conversion
*
* Copyright (C) 2001 Landon Curt Noll
*
* Calc is open software; you can redistribute it and/or modify it under
* the terms of the version 2.1 of the GNU Lesser General Public License
* as published by the Free Software Foundation.
*
* Calc is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
* Public License for more details.
*
* A copy of version 2.1 of the GNU Lesser General Public License is
* distributed with calc under the filename COPYING-LGPL. You should have
* received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* @(#) $Revision: 29.4 $
* @(#) $Id: intfile.cal,v 29.4 2001/04/08 08:13:10 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/intfile.cal,v $
*
* Under source code control: 2001/03/31 08:13:11
* File existed as early as: 2001
*
* chongo <was here> /\oo/\ http://www.isthe.com/chongo/
* Share and enjoy! :-) http://www.isthe.com/chongo/tech/comp/calc/
*/
/*
* NOTE: Because leading HALF values are trimmed from integer, a file
* that begins with lots of 0 bits (in the case of big endian)
* or that ends with lots of 0 bits (in the case of little endian)
* will be changed when the subsequent integer is written back.
*/
/*
* file2be - convert a file into an big endian integer
*
* given:
* filename filename to read
*
* returns:
* integer read from its contents on big endian order
*/
define file2be(filename)
{
local fd; /* open file */
local ret; /* integer to return */
local c; /* character read from the file */
local i;
/*
* open the file for reading
*/
fd = fopen(filename, "r");
if (!isfile(fd)) quit "file2be: cannot open file for reading";
/*
* read the contents of the file
*
* The first octets become the most significant bits of the integer.
*/
ret = 0;
while (! isnull(c = fgetc(fd))) {
ret <<= 8;
ret += ord(c);
}
/*
* cleanup and return the integer
*/
fclose(fd);
return ret;
}
/*
* file2le - convert a file into an little endian integer
*
* given:
* filename filename to read
*
* returns:
* integer read from its contents on little endian order
*/
define file2le(filename)
{
local fd; /* open file */
local ret; /* integer to return */
local c; /* character read from the file */
local shft; /* bit shift for the c value */
local i;
/*
* open the file for reading
*/
fd = fopen(filename, "r");
if (!isfile(fd)) quit "file2le: cannot open file for reading";
/*
* read the contents of the file into a string
*
* The first octets become are the least significant bits of the integer.
*/
ret = 0;
shft = 0;
while (! isnull(c = fgetc(fd))) {
ret |= (ord(c) << shft);
shft += 8;
}
/*
* cleanup and return the integer
*/
fclose(fd);
return ret;
}
/*
* be2file - convert a big endian integer into a file
*
* given:
* v integer to write to the file
* filename filename to write
*
* returns:
* The number of octets written to the file.
*
* NOTE: The absolute value of the integer is written to the file.
*/
define be2file(v, filename)
{
local fd; /* open file */
local octlen; /* length of v in octets */
local i;
/*
* firewall
*/
if (!isint(v)) {
quit "be2file: 1st arg not an integer";
}
v = abs(v);
/*
* open the file for writing
*/
fd = fopen(filename, "w");
if (!isfile(fd)) quit "be2file: cannot open file for writing";
/*
* write the octets to the file
*
* The most significant bits of the integer become the first file octets.
*/
octlen = int((highbit(v)+8) / 8);
for (i=octlen-1; i >= 0; --i) {
fputc(fd, char(v >> (i*8)));
}
/*
* cleanup
*/
fclose(fd);
return octlen;
}
/*
* le2file - convert a little endian integer into a file
*
* given:
* v integer to write to the file
* filename filename to write
*
* returns:
* The number of octets written to the file.
*
* NOTE: The absolute value of the integer is written to the file.
*/
define le2file(v, filename)
{
local fd; /* open file */
local cnt; /* octets written */
/*
* firewall
*/
if (!isint(v)) {
quit "be2file: 1st arg not an integer";
}
v = abs(v);
/*
* open the file for writing
*/
fd = fopen(filename, "w");
if (!isfile(fd)) quit "le2file: cannot open file for writing";
/*
* Write the octets to the file.
*
* The least significant bits of the integer become the first file octets.
*/
cnt = 0;
while (v > 0) {
fputc(fd, char(v));
v >>= 8;
++cnt;
}
/*
* cleanup
*/
fclose(fd);
return cnt;
}

View File

@@ -17,8 +17,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 29.2 $ * @(#) $Revision: 29.3 $
* @(#) $Id: lucas.cal,v 29.2 2000/06/07 14:02:25 chongo Exp $ * @(#) $Id: lucas.cal,v 29.3 2001/03/31 13:31:34 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/lucas.cal,v $ * @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/lucas.cal,v $
* *
* Under source code control: 1990/05/03 16:49:51 * Under source code control: 1990/05/03 16:49:51
@@ -1030,7 +1030,7 @@ gen_v1(h, n)
define define
ldebug(funct, str) ldebug(funct, str)
{ {
if (config("resource_debug") & 3) { if (config("resource_debug") & 8) {
print "DEBUG:", funct:":", str; print "DEBUG:", funct:":", str;
} }
return; return;

View File

@@ -17,8 +17,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 29.2 $ * @(#) $Revision: 29.3 $
* @(#) $Id: lucas_chk.cal,v 29.2 2000/06/07 14:02:25 chongo Exp $ * @(#) $Id: lucas_chk.cal,v 29.3 2001/03/31 13:31:34 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/lucas_chk.cal,v $ * @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/lucas_chk.cal,v $
* *
* Under source code control: 1991/01/11 05:41:43 * Under source code control: 1991/01/11 05:41:43
@@ -336,7 +336,7 @@ lucas_chk(high_n, quiet)
/* skip primes where h>=2^n */ /* skip primes where h>=2^n */
if (highbit(h_p[i]) >= n_p[i]) { if (highbit(h_p[i]) >= n_p[i]) {
if (config("resource_debug") & 3) { if (config("resource_debug") & 8) {
print "h>=2^n skip:", h_p[i]:"*2^":n_p[i]:"-1"; print "h>=2^n skip:", h_p[i]:"*2^":n_p[i]:"-1";
} }
continue; continue;

View File

@@ -17,8 +17,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 29.6 $ * @(#) $Revision: 29.7 $
* @(#) $Id: regress.cal,v 29.6 2000/12/17 12:26:42 chongo Exp $ * @(#) $Id: regress.cal,v 29.7 2001/04/08 10:09:39 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/regress.cal,v $ * @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/regress.cal,v $
* *
* Under source code control: 1990/02/15 01:50:36 * Under source code control: 1990/02/15 01:50:36
@@ -411,10 +411,10 @@ define test_config()
'516: config("pow2") == 40'); '516: config("pow2") == 40');
vrfy(config("redc2") == 50, vrfy(config("redc2") == 50,
'517: config("redc2") == 50'); '517: config("redc2") == 50');
vrfy(config("tilde") == "true", vrfy(config("tilde"),
'518: config("tilde") == "true"'); '518: config("tilde")');
vrfy(config("tab") == "true", vrfy(config("tab"),
'519: config("tab") == "true"'); '519: config("tab")');
vrfy(config("quomod") == 0, vrfy(config("quomod") == 0,
'520: config("quomod") == 0'); '520: config("quomod") == 0');
vrfy(config("quo") == 2, vrfy(config("quo") == 2,
@@ -433,10 +433,10 @@ define test_config()
'527: config("outround") == 2'); '527: config("outround") == 2');
vrfy(config("round") == 24, vrfy(config("round") == 24,
'528: config("round") == 24'); '528: config("round") == 24');
vrfy(config("leadzero") == "false", vrfy(config("leadzero") == 0,
'529: config("leadzero") == "false"'); '529: config("leadzero") == 0');
vrfy(config("fullzero") == "false", vrfy(config("fullzero") == 0,
'530: config("fullzero") == "false"'); '530: config("fullzero") == 0');
vrfy(config("maxscan") == 20, vrfy(config("maxscan") == 20,
'531: config("maxscan") == 20'); '531: config("maxscan") == 20');
vrfy(config("prompt") == "> ", vrfy(config("prompt") == "> ",
@@ -452,10 +452,10 @@ define test_config()
vrfy(config("quo", 0) == 2, '536: config("quo", 0) == 2'); vrfy(config("quo", 0) == 2, '536: config("quo", 0) == 2');
vrfy(config("outround", 24) == 2, vrfy(config("outround", 24) == 2,
'537: config("outround", 24) == 2'); '537: config("outround", 24) == 2');
vrfy(config("leadzero","y") == "false", vrfy(config("leadzero","y") == 0,
'538: config("leadzero","y") == "false"'); '538: config("leadzero","y") == 0');
vrfy(config("fullzero", 1) == "false", vrfy(config("fullzero", 1) == 0,
'539: config("fullzero", 1) == "false"'); '539: config("fullzero", 1) == 0');
vrfy(config("prompt", "; ") == "> ", vrfy(config("prompt", "; ") == "> ",
'540: config("prompt", "; ") == "> "'); '540: config("prompt", "; ") == "> "');
vrfy(config("more", ";; ") == ">> ", vrfy(config("more", ";; ") == ">> ",
@@ -467,14 +467,14 @@ define test_config()
'543: config("all",callcfg) == newcfg'); '543: config("all",callcfg) == newcfg');
vrfy(config("display",2) == 20, vrfy(config("display",2) == 20,
'544: config("display",2) == 20'); '544: config("display",2) == 20');
vrfy(config("fullzero",1) == "false", vrfy(config("fullzero",1) == 0,
'545: config("fullzero",1) == "false"'); '545: config("fullzero",1) == 0');
vrfy(strprintf("%d %d %d", 0, 1, 2) == ".00 1.00 2.00", 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"'); '546: strprintf("%d %d %d", 0, 1, 2) == ".00 1.00 2.00"');
vrfy(config("display",20) == 2, vrfy(config("display",20) == 2,
'547: config("display",20) == 2'); '547: config("display",20) == 2');
vrfy(config("fullzero",0) == "true", vrfy(config("fullzero",0),
'548: config("fullzero",0) == "true"'); '548: config("fullzero",0)');
vrfy(strprintf("%d %d %d", 0, 1, 2) == "0 1 2", vrfy(strprintf("%d %d %d", 0, 1, 2) == "0 1 2",
'549: strprintf("%d %d %d", 0, 1, 2) == "0 1 2"'); '549: strprintf("%d %d %d", 0, 1, 2) == "0 1 2"');
@@ -996,8 +996,13 @@ define test_functions()
vrfy(strpos(a, "abc") == 1, '946: strpos(a, "abc") == 1'); vrfy(strpos(a, "abc") == 1, '946: strpos(a, "abc") == 1');
vrfy(strpos(a, "xyz") == 0, '947: strpos(a, "xyz") == 0'); vrfy(strpos(a, "xyz") == 0, '947: strpos(a, "xyz") == 0');
vrfy(strpos(a, a) == 1, '948: strpos(a, a) == 1'); vrfy(strpos(a, a) == 1, '948: strpos(a, a) == 1');
vrfy(system("") == 0, '949: system("") == 0'); if (config("windows")) {
vrfy(system("true") == 0, '950: system("true") == 0'); print '949: test skipped for windows systems';
print '950: test skipped for windows systems';
} else {
vrfy(system("") == 0, '949: system("") == 0');
vrfy(system("true") == 0, '950: system("true") == 0');
}
print '951: test disabled due to stdin dependency'; print '951: test disabled due to stdin dependency';
print '952: test removed'; print '952: test removed';
print '953: test removed'; print '953: test removed';
@@ -5112,10 +5117,17 @@ define test_is()
*/ */
a = assoc(); a = assoc();
print '5901: a = assoc()'; print '5901: a = assoc()';
ofd = fopen("/dev/null", "r"); if (config("windows")) {
print '5902: ofd = fopen("/dev/null", "r")'; ofd = fopen("NUL:", "r");
cfd = fopen("/dev/null", "r"); print '5902: ofd = fopen("NUL:", "r")';
print '5903: cfd = fopen("/dev/null", "r")'; cfd = fopen("NUL:", "r");
print '5903: cfd = fopen("NUL:", "r")';
} else {
ofd = fopen("/dev/null", "r");
print '5902: ofd = fopen("/dev/null", "r")';
cfd = fopen("/dev/null", "r");
print '5903: cfd = fopen("/dev/null", "r")';
}
fclose(cfd); fclose(cfd);
print '5904: fclose(cfd)'; print '5904: fclose(cfd)';
blk = blk(); blk = blk();

View File

@@ -17,8 +17,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 29.2 $ * @(#) $Revision: 29.3 $
* @(#) $Id: seedrandom.cal,v 29.2 2000/06/07 14:02:25 chongo Exp $ * @(#) $Id: seedrandom.cal,v 29.3 2001/03/31 13:31:34 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/seedrandom.cal,v $ * @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/seedrandom.cal,v $
* *
* Under source code control: 1996/01/01 08:21:00 * Under source code control: 1996/01/01 08:21:00
@@ -115,7 +115,7 @@ define seedrandom(seed1, seed2, size, trials)
p = 2*fp+1; p = 2*fp+1;
} while (ptest(p,1,0) == 0); } while (ptest(p,1,0) == 0);
} while(ptest(p, trials) == 0 || ptest(fp, trials) == 0); } while(ptest(p, trials) == 0 || ptest(fp, trials) == 0);
if (config("resource_debug") & 3) { if (config("resource_debug") & 8) {
print "/* 1st Blum prime */ p=", p; print "/* 1st Blum prime */ p=", p;
} }
@@ -129,7 +129,7 @@ define seedrandom(seed1, seed2, size, trials)
q = 2*fq+1; q = 2*fq+1;
} while (ptest(q,1,0) == 0); } while (ptest(q,1,0) == 0);
} while(ptest(q, trials) == 0 || ptest(fq, trials) == 0); } while(ptest(q, trials) == 0 || ptest(fq, trials) == 0);
if (config("resource_debug") & 3) { if (config("resource_debug") & 8) {
print "/* 2nd Blum prime */ q=", q; print "/* 2nd Blum prime */ q=", q;
} }
@@ -139,7 +139,7 @@ define seedrandom(seed1, seed2, size, trials)
n = p*q; /* the Blum modulus */ n = p*q; /* the Blum modulus */
binsize = highbit(n)+1; /* smallest power of 2 > p*q */ binsize = highbit(n)+1; /* smallest power of 2 > p*q */
r = pmod(rand(1<<ceil(binsize*4/5), 1<<(binsize-2)), 2, n); r = pmod(rand(1<<ceil(binsize*4/5), 1<<(binsize-2)), 2, n);
if (config("resource_debug") & 3) { if (config("resource_debug") & 8) {
print "/* seed quadratic residue */ r=", r; print "/* seed quadratic residue */ r=", r;
print "/* newn", binsize, "bit quadratic residue*/ newn=", n; print "/* newn", binsize, "bit quadratic residue*/ newn=", n;
} }

View File

@@ -19,8 +19,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 29.2 $ * @(#) $Revision: 29.3 $
* @(#) $Id: test4600.cal,v 29.2 2000/06/07 14:02:25 chongo Exp $ * @(#) $Id: test4600.cal,v 29.3 2001/04/08 10:09:39 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/test4600.cal,v $ * @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/test4600.cal,v $
* *
* Under source code control: 1996/07/02 20:04:40 * Under source code control: 1996/07/02 20:04:40
@@ -87,35 +87,68 @@ define stest(str, verbose)
print '**** ftell(f) != 13 failed'; print '**** ftell(f) != 13 failed';
return 1; return 1;
} }
if (search(f, "and") != 109) { if (config("windows")) {
print 'failed'; if (search(f, "and") != 110) {
print '**** search(f, "and") != 109 failed'; print 'failed';
return 1; print '**** search(f, "and") != 110 failed';
} return 1;
if (ftell(f) != 112) { }
print 'failed'; if (ftell(f) != 113) {
print '**** ftell(f) != 112 failed'; print 'failed';
return 1; print '**** ftell(f) != 113 failed';
} return 1;
if (!isnull(search(f, "and"))) { }
print 'failed'; if (!isnull(search(f, "and"))) {
print '**** !isnull(search(f, "and")) failed'; print 'failed';
return 1; print '**** !isnull(search(f, "and")) failed';
} return 1;
if (ftell(f) != 172) { }
print 'failed'; if (ftell(f) != 174) {
print '**** ftell(f) != 172 failed'; print 'failed';
return 1; print '**** ftell(f) != 174 failed';
} return 1;
if (rsearch(f, "and") != 109) { }
print 'failed'; if (rsearch(f, "and") != 110) {
print '**** rsearch(f, "and") != 109 failed'; print 'failed';
return 1; print '**** rsearch(f, "and") != 110 failed';
} return 1;
if (ftell(f) != 111) { }
print 'failed'; if (ftell(f) != 112) {
print '**** ftell(f) != 111 failed'; print 'failed';
return 1; print '**** ftell(f) != 112 failed';
return 1;
}
} else {
if (search(f, "and") != 109) {
print 'failed';
print '**** search(f, "and") != 109 failed';
return 1;
}
if (ftell(f) != 112) {
print 'failed';
print '**** ftell(f) != 112 failed';
return 1;
}
if (!isnull(search(f, "and"))) {
print 'failed';
print '**** !isnull(search(f, "and")) failed';
return 1;
}
if (ftell(f) != 172) {
print 'failed';
print '**** ftell(f) != 172 failed';
return 1;
}
if (rsearch(f, "and") != 109) {
print 'failed';
print '**** rsearch(f, "and") != 109 failed';
return 1;
}
if (ftell(f) != 111) {
print 'failed';
print '**** ftell(f) != 111 failed';
return 1;
}
} }
if (iserror(fseek(f, -4, 1))) { if (iserror(fseek(f, -4, 1))) {
print 'failed'; print 'failed';

View File

@@ -19,8 +19,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 29.4 $ * @(#) $Revision: 29.6 $
* @(#) $Id: config.c,v 29.4 2000/07/17 15:35:49 chongo Exp $ * @(#) $Id: config.c,v 29.6 2001/04/08 10:07:19 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/config.c,v $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/config.c,v $
* *
* Under source code control: 1991/07/20 00:21:56 * Under source code control: 1991/07/20 00:21:56
@@ -90,6 +90,7 @@ NAMETYPE configs[] = {
{"ctrl-d", CONFIG_CTRL_D}, /* alias for ctrl_d */ {"ctrl-d", CONFIG_CTRL_D}, /* alias for ctrl_d */
{"program", CONFIG_PROGRAM}, {"program", CONFIG_PROGRAM},
{"basename", CONFIG_BASENAME}, {"basename", CONFIG_BASENAME},
{"windows", CONFIG_WINDOWS},
{"version", CONFIG_VERSION}, {"version", CONFIG_VERSION},
{NULL, 0} {NULL, 0}
}; };
@@ -136,6 +137,11 @@ CONFIG oldstd = { /* backward compatible standard configuration */
CTRL_D_VIRGIN_EOF, /* ^D only exits on virgin lines */ CTRL_D_VIRGIN_EOF, /* ^D only exits on virgin lines */
NULL, /* our name */ NULL, /* our name */
NULL, /* basename of our name */ NULL, /* basename of our name */
#if defined(_WIN32)
TRUE, /* running under windows */
#else
FALSE, /* congrats, you are not using windows */
#endif
NULL /* version */ NULL /* version */
}; };
CONFIG newstd = { /* new non-backward compatible configuration */ CONFIG newstd = { /* new non-backward compatible configuration */
@@ -176,6 +182,11 @@ CONFIG newstd = { /* new non-backward compatible configuration */
CTRL_D_VIRGIN_EOF, /* ^D only exits on virgin lines */ CTRL_D_VIRGIN_EOF, /* ^D only exits on virgin lines */
NULL, /* our name */ NULL, /* our name */
NULL, /* basename of our name */ NULL, /* basename of our name */
#if defined(_WIN32)
TRUE, /* running under windows */
#else
FALSE, /* congrats, you are not using windows */
#endif
NULL /* version */ NULL /* version */
}; };
CONFIG *conf = NULL; /* loaded in at startup - current configuration */ CONFIG *conf = NULL; /* loaded in at startup - current configuration */
@@ -822,11 +833,15 @@ setconfig(int type, VALUE *vp)
/*NOTREACHED*/ /*NOTREACHED*/
case CONFIG_BASENAME: case CONFIG_BASENAME:
math_error("The program config parameter is read-only"); math_error("The basename config parameter is read-only");
/*NOTREACHED*/
case CONFIG_WINDOWS:
math_error("The windows config parameter is read-only");
/*NOTREACHED*/ /*NOTREACHED*/
case CONFIG_VERSION: case CONFIG_VERSION:
math_error("The program config parameter is read-only"); math_error("The version config parameter is read-only");
/*NOTREACHED*/ /*NOTREACHED*/
default: default:
@@ -1028,20 +1043,18 @@ config_value(CONFIG *cfg, int type, VALUE *vp)
break; break;
case CONFIG_TILDE: case CONFIG_TILDE:
vp->v_type = V_STR;
if (cfg->tilde_ok) { if (cfg->tilde_ok) {
vp->v_str = makenewstring(TRUE_STRING); vp->v_num = itoq(1);
} else { } else {
vp->v_str = makenewstring(FALSE_STRING); vp->v_num = itoq(0);
} }
return; return;
case CONFIG_TAB: case CONFIG_TAB:
vp->v_type = V_STR;
if (cfg->tab_ok) { if (cfg->tab_ok) {
vp->v_str = makenewstring(TRUE_STRING); vp->v_num = itoq(1);
} else { } else {
vp->v_str = makenewstring(FALSE_STRING); vp->v_num = itoq(0);
} }
return; return;
@@ -1082,20 +1095,18 @@ config_value(CONFIG *cfg, int type, VALUE *vp)
break; break;
case CONFIG_LEADZERO: case CONFIG_LEADZERO:
vp->v_type = V_STR;
if (cfg->leadzero) { if (cfg->leadzero) {
vp->v_str = makenewstring(TRUE_STRING); vp->v_num = itoq(1);
} else { } else {
vp->v_str = makenewstring(FALSE_STRING); vp->v_num = itoq(0);
} }
return; return;
case CONFIG_FULLZERO: case CONFIG_FULLZERO:
vp->v_type = V_STR;
if (cfg->fullzero) { if (cfg->fullzero) {
vp->v_str = makenewstring(TRUE_STRING); vp->v_num = itoq(1);
} else { } else {
vp->v_str = makenewstring(FALSE_STRING); vp->v_num = itoq(0);
} }
return; return;
@@ -1118,11 +1129,10 @@ config_value(CONFIG *cfg, int type, VALUE *vp)
break; break;
case CONFIG_BLKVERBOSE: case CONFIG_BLKVERBOSE:
vp->v_type = V_STR;
if (cfg->blkverbose) { if (cfg->blkverbose) {
vp->v_str = makenewstring(TRUE_STRING); vp->v_num = itoq(1);
} else { } else {
vp->v_str = makenewstring(FALSE_STRING); vp->v_num = itoq(0);
} }
return; return;
@@ -1159,11 +1169,10 @@ config_value(CONFIG *cfg, int type, VALUE *vp)
break; break;
case CONFIG_VERBOSE_QUIT: case CONFIG_VERBOSE_QUIT:
vp->v_type = V_STR;
if (cfg->verbose_quit) { if (cfg->verbose_quit) {
vp->v_str = makenewstring(TRUE_STRING); vp->v_num = itoq(1);
} else { } else {
vp->v_str = makenewstring(FALSE_STRING); vp->v_num = itoq(0);
} }
return; return;
@@ -1195,6 +1204,14 @@ config_value(CONFIG *cfg, int type, VALUE *vp)
} }
return; return;
case CONFIG_WINDOWS:
if (cfg->windows) {
vp->v_num = itoq(1);
} else {
vp->v_num = itoq(0);
}
return;
case CONFIG_VERSION: case CONFIG_VERSION:
vp->v_type = V_STR; vp->v_type = V_STR;
if (cfg->version == NULL) { if (cfg->version == NULL) {
@@ -1295,6 +1312,7 @@ config_cmp(CONFIG *cfg1, CONFIG *cfg2)
(cfg1->version == NULL && cfg2->version != NULL) || (cfg1->version == NULL && cfg2->version != NULL) ||
(cfg1->version != NULL && cfg2->version == NULL) || (cfg1->version != NULL && cfg2->version == NULL) ||
cfg1->windows != cfg2->windows ||
(cfg1->version != NULL && cfg2->version != NULL && (cfg1->version != NULL && cfg2->version != NULL &&
strcmp(cfg1->version, cfg2->version) != 0); strcmp(cfg1->version, cfg2->version) != 0);
} }

View File

@@ -19,8 +19,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 29.6 $ * @(#) $Revision: 29.8 $
* @(#) $Id: config.h,v 29.6 2001/03/17 21:31:47 chongo Exp $ * @(#) $Id: config.h,v 29.8 2001/04/08 09:08:57 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/config.h,v $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/config.h,v $
* *
* Under source code control: 1995/11/01 22:20:17 * Under source code control: 1995/11/01 22:20:17
@@ -83,6 +83,7 @@
#define CONFIG_PROGRAM 35 #define CONFIG_PROGRAM 35
#define CONFIG_BASENAME 36 #define CONFIG_BASENAME 36
#define CONFIG_VERSION 37 #define CONFIG_VERSION 37
#define CONFIG_WINDOWS 38
/* /*
@@ -147,6 +148,7 @@ struct config {
int ctrl_d; /* see CTRL_D_xyz below */ int ctrl_d; /* see CTRL_D_xyz below */
char *program; /* our name */ char *program; /* our name */
char *base_name; /* basename of our name */ char *base_name; /* basename of our name */
BOOL windows; /* TRUE => running under MS windows */
char *version; /* calc version string */ char *version; /* calc version string */
}; };
typedef struct config CONFIG; typedef struct config CONFIG;
@@ -158,7 +160,8 @@ typedef struct config CONFIG;
#define RSCDBG_STDIN_FUNC (0x00000001) /* interactive func define debug */ #define RSCDBG_STDIN_FUNC (0x00000001) /* interactive func define debug */
#define RSCDBG_FILE_FUNC (0x00000002) /* file read func define debug */ #define RSCDBG_FILE_FUNC (0x00000002) /* file read func define debug */
#define RSCDBG_FUNC_INFO (0x00000004) /* print extra info for show func */ #define RSCDBG_FUNC_INFO (0x00000004) /* print extra info for show func */
#define RSCDBG_MASK (0x00000007) #define RSCDBG_PRINT_DBG (0x00000008) /* print debug messages */
#define RSCDBG_MASK (0x0000000f)
/* /*

View File

@@ -17,8 +17,8 @@
# received a copy with calc; if not, write to Free Software Foundation, Inc. # received a copy with calc; if not, write to Free Software Foundation, Inc.
# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. # 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
# #
# @(#) $Revision: 29.6 $ # @(#) $Revision: 29.9 $
# @(#) $Id: Makefile,v 29.6 2000/12/15 14:56:14 chongo Exp $ # @(#) $Id: Makefile,v 29.9 2001/04/08 10:53:52 chongo Exp $
# @(#) $Source: /usr/local/src/cmd/calc/cscript/RCS/Makefile,v $ # @(#) $Source: /usr/local/src/cmd/calc/cscript/RCS/Makefile,v $
# #
# Under source code control: 1999/11/29 11:10:26 # Under source code control: 1999/11/29 11:10:26
@@ -76,9 +76,10 @@ FMT= fmt
# #
# make detaillist # make detaillist
# #
SCRIPT= mersenne piforever plus simple square SCRIPT= mersenne piforever plus simple square fproduct
SCRIPT_SRC= mersenne.calc piforever.calc plus.calc simple.calc square.calc SCRIPT_SRC= mersenne.calc piforever.calc plus.calc simple.calc square.calc \
fproduct.calc
# These files are found (but not built) in the distribution # These files are found (but not built) in the distribution
# #
@@ -114,7 +115,7 @@ all: ${SCRIPT} ${SCRIPT_SRC} .all
distlist: ${DISTLIST} distlist: ${DISTLIST}
${Q}for i in ${DISTLIST}; do \ ${Q}for i in ${DISTLIST}; do \
echo cscript/$$i; \ echo cscript/$$i; \
done | ${SORT} done | LANG=C ${SORT}
distdir: distdir:
${Q}echo cscript ${Q}echo cscript
@@ -131,7 +132,7 @@ detaillist:
else \ else \
echo $$i; \ echo $$i; \
fi; \ fi; \
done | ${SORT}) | ${FMT} -70 | \ done | LANG=C ${SORT}) | ${FMT} -70 | \
${SED} -e '1s/xxxxxxx/SCRIPT=/' -e '2,$$s/^/ /' \ ${SED} -e '1s/xxxxxxx/SCRIPT=/' -e '2,$$s/^/ /' \
-e 's/$$/ \\/' -e '$$s/ \\$$//' -e 's/$$/ \\/' -e '$$s/ \\$$//'
${Q}echo ${Q}echo
@@ -142,7 +143,7 @@ detaillist:
else \ else \
echo $$i.calc; \ echo $$i.calc; \
fi; \ fi; \
done | ${SORT}) | ${FMT} -70 | \ done | LANG=C ${SORT}) | ${FMT} -70 | \
${SED} -e '1s/xxxxxxxxxxx/SCRIPT_SRC=/' -e '2,$$s/^/ /' \ ${SED} -e '1s/xxxxxxxxxxx/SCRIPT_SRC=/' -e '2,$$s/^/ /' \
-e 's/$$/ \\/' -e '$$s/ \\$$//' -e 's/$$/ \\/' -e '$$s/ \\$$//'
@@ -249,3 +250,7 @@ square: square.calc
rm -f $@ rm -f $@
${SED} -e "1s:^#!/usr/local/src/cmd/calc/calc:#!${BINDIR}/calc:" $?>$@ ${SED} -e "1s:^#!/usr/local/src/cmd/calc/calc:#!${BINDIR}/calc:" $?>$@
${CHMOD} +x $@ ${CHMOD} +x $@
fproduct: fproduct.calc
rm -f $@
${SED} -e "1s:^#!/usr/local/src/cmd/calc/calc:#!${BINDIR}/calc:" $?>$@
${CHMOD} +x $@

View File

@@ -19,6 +19,11 @@ For more info, see:
=-= =-=
fproduct filename term ...
Write the big Endian product of terms to a file. Use - for stdout.
mersenne exp mersenne exp
Print the value of 2^exp-1. Print the value of 2^exp-1.
@@ -54,8 +59,8 @@ simple
## received a copy with calc; if not, write to Free Software Foundation, Inc. ## received a copy with calc; if not, write to Free Software Foundation, Inc.
## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
## ##
## @(#) $Revision: 29.4 $ ## @(#) $Revision: 29.5 $
## @(#) $Id: README,v 29.4 2000/06/07 14:02:59 chongo Exp $ ## @(#) $Id: README,v 29.5 2001/04/08 08:24:40 chongo Exp $
## @(#) $Source: /usr/local/src/cmd/calc/cscript/RCS/README,v $ ## @(#) $Source: /usr/local/src/cmd/calc/cscript/RCS/README,v $
## ##
## Under source code control: 1999/12/17 10:23:40 ## Under source code control: 1999/12/17 10:23:40

88
cscript/fproduct.calc Normal file
View File

@@ -0,0 +1,88 @@
#!/usr/local/bin/calc -q -s -f
/*
* fproduct - write the big Endian product of terms to a file
*
* usage:
* fproduct filename term [term ...]
*
* filename where to write the product, use - for stdout
* term ... terms to multiply
*
* Copyright (C) 2001 Landon Curt Noll
*
* Calc is open software; you can redistribute it and/or modify it under
* the terms of the version 2.1 of the GNU Lesser General Public License
* as published by the Free Software Foundation.
*
* Calc is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
* or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
* Public License for more details.
*
* A copy of version 2.1 of the GNU Lesser General Public License is
* distributed with calc under the filename COPYING-LGPL. You should have
* received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* @(#) $Revision: 29.1 $
* @(#) $Id: fproduct.calc,v 29.1 2001/04/08 08:25:15 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/cscript/RCS/fproduct.calc,v $
*
* Under source code control: 2001/04/07 20:13:11
* File existed as early as: 2001
*
* chongo <was here> /\oo/\ http://www.isthe.com/chongo/
* Share and enjoy! :-) http://www.isthe.com/chongo/tech/comp/calc/
*/
/*
* parse args
*/
argc = argv();
if (argc < 2) {
fprintf(files(2), "usage: %s term [term ...]\n", argv(0));
exit;
}
filename = argv(1);
/*
* build the product
*/
product = 1;
for (i=2; i < argc; ++i) {
product *= eval(argv(i));
}
product = abs(product);
/*
* open the file for writing, "-" is stdout
*/
if (filename == "-") {
fd = files(1);
} else {
fd = fopen(filename, "w");
if (!isfile(fd)) quit "be2file: cannot open file for writing";
}
/*
* write the octets to the file
*
* The most significant bits of the integer become the first file octets.
*/
if (product > 0) {
octlen = int((highbit(product)+8) / 8);
for (i=octlen-1; i >= 0; --i) {
fputc(fd, char(product >> (i*8)));
}
}
/*
* cleanup
*/
if (filename != "-") {
fclose(fd);
}

View File

@@ -18,8 +18,8 @@
# received a copy with calc; if not, write to Free Software Foundation, Inc. # received a copy with calc; if not, write to Free Software Foundation, Inc.
# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. # 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
# #
# @(#) $Revision: 29.5 $ # @(#) $Revision: 29.6 $
# @(#) $Id: Makefile,v 29.5 2001/03/17 21:39:24 chongo Exp $ # @(#) $Id: Makefile,v 29.6 2001/04/08 10:53:52 chongo Exp $
# @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/Makefile,v $ # @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/Makefile,v $
# #
# Under source code control: 1997/03/09 02:28:54 # Under source code control: 1997/03/09 02:28:54
@@ -432,7 +432,8 @@ depend:
${Q}mv Makefile Makefile.bak ${Q}mv Makefile Makefile.bak
${Q}${SED} -n '1,/^# DO NOT DELETE THIS LINE/p' Makefile.bak > Makefile ${Q}${SED} -n '1,/^# DO NOT DELETE THIS LINE/p' Makefile.bak > Makefile
${Q}echo "" >> Makefile ${Q}echo "" >> Makefile
${Q}${SED} -n '3,$$p' skel/custom/makedep.out | ${SORT} -u >> Makefile ${Q}${SED} -n '3,$$p' skel/custom/makedep.out | \
LANG=C ${SORT} -u >> Makefile
-${Q}rm -rf skel -${Q}rm -rf skel
-${Q}if cmp -s Makefile.bak Makefile; then \ -${Q}if cmp -s Makefile.bak Makefile; then \
echo 'custom Makefile was already up to date'; \ echo 'custom Makefile was already up to date'; \

22
func.c
View File

@@ -19,8 +19,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 29.7 $ * @(#) $Revision: 29.8 $
* @(#) $Id: func.c,v 29.7 2001/03/17 21:31:47 chongo Exp $ * @(#) $Id: func.c,v 29.8 2001/04/08 10:06:56 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/func.c,v $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/func.c,v $
* *
* Under source code control: 1990/02/15 01:48:15 * Under source code control: 1990/02/15 01:48:15
@@ -1225,8 +1225,10 @@ f_primetest(int count, NUMBER **vals)
{ {
/* parse args */ /* parse args */
switch (count) { switch (count) {
case 1: return itoq((long) qprimetest(vals[0], &_qone_, &_qone_)); case 1: return itoq((long) qprimetest(vals[0],
case 2: return itoq((long) qprimetest(vals[0], vals[1], &_qone_)); qlink(&_qone_), qlink(&_qone_)));
case 2: return itoq((long) qprimetest(vals[0],
vals[1], qlink(&_qone_)));
default: return itoq((long) qprimetest(vals[0], vals[1], vals[2])); default: return itoq((long) qprimetest(vals[0], vals[1], vals[2]));
} }
} }
@@ -2013,7 +2015,7 @@ f_ln(int count, VALUE **vals)
return result; return result;
} }
ctmp.real = vals[0]->v_num; ctmp.real = vals[0]->v_num;
ctmp.imag = &_qzero_; ctmp.imag = qlink(&_qzero_);
ctmp.links = 1; ctmp.links = 1;
c = cln(&ctmp, err); c = cln(&ctmp, err);
break; break;
@@ -3351,7 +3353,7 @@ f_trunc(int count, NUMBER **vals)
{ {
NUMBER *val; NUMBER *val;
val = &_qzero_; val = qlink(&_qzero_);
if (count == 2) if (count == 2)
val = vals[1]; val = vals[1];
return qtrunc(*vals, val); return qtrunc(*vals, val);
@@ -3433,7 +3435,7 @@ f_btrunc(int count, NUMBER **vals)
{ {
NUMBER *val; NUMBER *val;
val = &_qzero_; val = qlink(&_qzero_);
if (count == 2) if (count == 2)
val = vals[1]; val = vals[1];
return qbtrunc(*vals, val); return qbtrunc(*vals, val);
@@ -3538,7 +3540,7 @@ f_ceil(VALUE *val)
tmp.v_subtype = V_NOSUBTYPE; tmp.v_subtype = V_NOSUBTYPE;
tmp.v_type = V_NUM; tmp.v_type = V_NUM;
tmp.v_num = &_qone_; tmp.v_num = qlink(&_qone_);
apprvalue(val, &tmp, &tmp, &res); apprvalue(val, &tmp, &tmp, &res);
return res; return res;
} }
@@ -3555,9 +3557,9 @@ f_floor(VALUE *val)
tmp2.v_subtype = V_NOSUBTYPE; tmp2.v_subtype = V_NOSUBTYPE;
tmp1.v_type = V_NUM; tmp1.v_type = V_NUM;
tmp1.v_num = &_qone_; tmp1.v_num = qlink(&_qone_);
tmp2.v_type = V_NUM; tmp2.v_type = V_NUM;
tmp2.v_num = &_qzero_; tmp2.v_num = qlink(&_qzero_);
apprvalue(val, &tmp1, &tmp2, &res); apprvalue(val, &tmp1, &tmp2, &res);
return res; return res;
} }

12
help.c
View File

@@ -17,8 +17,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 29.6 $ * @(#) $Revision: 29.8 $
* @(#) $Id: help.c,v 29.6 2001/03/17 21:31:47 chongo Exp $ * @(#) $Id: help.c,v 29.8 2001/04/08 08:29:28 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/help.c,v $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/help.c,v $
* *
* Under source code control: 1997/09/14 10:58:30 * Under source code control: 1997/09/14 10:58:30
@@ -62,6 +62,7 @@ static struct help_alias {
{".", "oldvalue"}, {".", "oldvalue"},
{"%", "mod"}, {"%", "mod"},
{"//", "quo"}, {"//", "quo"},
{"copy", "blkcpy"},
{"copying", "COPYING"}, {"copying", "COPYING"},
{"copying-lgpl", "COPYING-LGPL"}, {"copying-lgpl", "COPYING-LGPL"},
{"copying_lgpl", "COPYING-LGPL"}, {"copying_lgpl", "COPYING-LGPL"},
@@ -70,6 +71,13 @@ static struct help_alias {
{"COPYRIGHT", "copyright"}, {"COPYRIGHT", "copyright"},
{"Copyleft", "copyright"}, {"Copyleft", "copyright"},
{"COPYLEFT", "copyright"}, {"COPYLEFT", "copyright"},
{"read", "command"},
{"write", "command"},
{"quit", "command"},
{"exit", "command"},
{"abort", "command"},
{"cd", "command"},
{"show", "command"},
{"stdlib", "resource"}, {"stdlib", "resource"},
{NULL, NULL} {NULL, NULL}
}; };

View File

@@ -18,8 +18,8 @@
# received a copy with calc; if not, write to Free Software Foundation, Inc. # received a copy with calc; if not, write to Free Software Foundation, Inc.
# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. # 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
# #
# @(#) $Revision: 29.5 $ # @(#) $Revision: 29.6 $
# @(#) $Id: Makefile,v 29.5 2000/12/14 10:33:06 chongo Exp $ # @(#) $Id: Makefile,v 29.6 2001/04/08 10:53:52 chongo Exp $
# @(#) $Source: /usr/local/src/cmd/calc/help/RCS/Makefile,v $ # @(#) $Source: /usr/local/src/cmd/calc/help/RCS/Makefile,v $
# #
# Under source code control: 1991/07/23 06:47:57 # Under source code control: 1991/07/23 06:47:57
@@ -455,7 +455,7 @@ builtin: builtin.top builtin.end ../func.c funclist.sed
distlist: ${DISTLIST} distlist: ${DISTLIST}
${Q}for i in ${DISTLIST}; do \ ${Q}for i in ${DISTLIST}; do \
echo help/$$i; \ echo help/$$i; \
done | ${SORT} done | LANG=C ${SORT}
distdir: distdir:
${Q}echo help ${Q}echo help
@@ -485,7 +485,7 @@ detaillist:
else \ else \
echo $$i; \ echo $$i; \
fi; \ fi; \
done | ${SORT}) | ${FMT} -70 | \ done | LANG=C ${SORT}) | ${FMT} -70 | \
${SED} -e '1s/xxxxx/DETAIL_HELP=/' -e '2,$$s/^/ /' \ ${SED} -e '1s/xxxxx/DETAIL_HELP=/' -e '2,$$s/^/ /' \
-e 's/$$/ \\/' -e '$$s/ \\$$//' -e 's/$$/ \\/' -e '$$s/ \\$$//'

View File

@@ -47,6 +47,7 @@ Configuration parameters
"ctrl_d" The interactive meaning of ^D (Control D) "ctrl_d" The interactive meaning of ^D (Control D)
"program" Read-only calc program or shell script path "program" Read-only calc program or shell script path
"basename" Read-only basename of the program value "basename" Read-only basename of the program value
"windows" Read-only indicator of MS windows
"version" Read-only calc version "version" Read-only calc version
The "all" config value allows one to save/restore the configuration The "all" config value allows one to save/restore the configuration
@@ -539,6 +540,9 @@ Detailed config descriptions
2 Show func will display more information about a functions 2 Show func will display more information about a functions
arguments as well as more argument sdummary information. arguments as well as more argument sdummary information.
3 During execution, allow calc standard resource files
to output additional debugging information.
The value for config("resource_debug") in both oldstd and newstd is 3, The value for config("resource_debug") in both oldstd and newstd is 3,
but if calc is invoked with the -d flag, its initial value is zero. but if calc is invoked with the -d flag, its initial value is zero.
Thus, if calc is started without the -d flag, until config("resource_debug") Thus, if calc is started without the -d flag, until config("resource_debug")
@@ -674,6 +678,13 @@ Detailed config descriptions
=-= =-=
config("windows") <== NOTE: This is a read-only config value
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.
=-=
config("version") <== NOTE: This is a read-only config value config("version") <== NOTE: This is a read-only config value
The version string of the calc program can be obtained by: The version string of the calc program can be obtained by:
@@ -698,8 +709,8 @@ Detailed config descriptions
## received a copy with calc; if not, write to Free Software Foundation, Inc. ## received a copy with calc; if not, write to Free Software Foundation, Inc.
## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
## ##
## @(#) $Revision: 29.2 $ ## @(#) $Revision: 29.4 $
## @(#) $Id: config,v 29.2 2000/06/07 14:02:33 chongo Exp $ ## @(#) $Id: config,v 29.4 2001/04/08 09:08:27 chongo Exp $
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/config,v $ ## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/config,v $
## ##
## Under source code control: 1991/07/21 04:37:17 ## Under source code control: 1991/07/21 04:37:17

View File

@@ -144,9 +144,9 @@ Calc shell scripts
For systems that support interpreter files, essentially the For systems that support interpreter files, essentially the
same thing may be done more efficiently by using calc as an same thing may be done more efficiently by using calc as an
interpreter. Assuming the full path for calc is interpreter. Assuming the full path for calc is
/usr/bin/calc, one could use the file addall3 with contents /usr/local/bin/calc, one could use the file addall3 with contents
#!/usr/bin/calc -q -s -f #!/usr/local/bin/calc -q -s -f
global i, n, s; global i, n, s;
n = argv(); n = argv();
for (i = 1; i <= n; i++) for (i = 1; i <= n; i++)
@@ -166,7 +166,7 @@ Calc shell scripts
or what is essentially an interpreter equivalent sqrts2: or what is essentially an interpreter equivalent sqrts2:
#!/usr/bin/calc -q -f #!/usr/local/bin/calc -q -f
global s; global s;
while (scanf('%s', s) == 1) while (scanf('%s', s) == 1)
print sqrt(eval(s)); print sqrt(eval(s));
@@ -283,8 +283,8 @@ For more information use the following calc commands:
## received a copy with calc; if not, write to Free Software Foundation, Inc. ## received a copy with calc; if not, write to Free Software Foundation, Inc.
## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. ## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
## ##
## @(#) $Revision: 29.4 $ ## @(#) $Revision: 29.5 $
## @(#) $Id: script,v 29.4 2000/07/17 15:36:26 chongo Exp $ ## @(#) $Id: script,v 29.5 2001/04/08 07:56:32 chongo Exp $
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/script,v $ ## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/script,v $
## ##
## Under source code control: 1999/11/30 05:29:48 ## Under source code control: 1999/11/30 05:29:48

View File

@@ -17,8 +17,8 @@
# received a copy with calc; if not, write to Free Software Foundation, Inc. # received a copy with calc; if not, write to Free Software Foundation, Inc.
# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. # 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
# #
# @(#) $Revision: 29.4 $ # @(#) $Revision: 29.5 $
# @(#) $Id: Makefile,v 29.4 2001/03/17 21:37:54 chongo Exp $ # @(#) $Id: Makefile,v 29.5 2001/04/08 10:53:52 chongo Exp $
# @(#) $Source: /usr/local/src/cmd/calc/sample/RCS/Makefile,v $ # @(#) $Source: /usr/local/src/cmd/calc/sample/RCS/Makefile,v $
# #
# Under source code control: 1997/04/19 22:46:49 # Under source code control: 1997/04/19 22:46:49
@@ -404,7 +404,8 @@ depend:
${Q}mv Makefile Makefile.bak ${Q}mv Makefile Makefile.bak
${Q}${SED} -n '1,/^# DO NOT DELETE THIS LINE/p' Makefile.bak > Makefile ${Q}${SED} -n '1,/^# DO NOT DELETE THIS LINE/p' Makefile.bak > Makefile
${Q}echo "" >> Makefile ${Q}echo "" >> Makefile
${Q}${SED} -n '3,$$p' skel/sample/makedep.out | ${SORT} -u >> Makefile ${Q}${SED} -n '3,$$p' skel/sample/makedep.out | \
LANG=C ${SORT} -u >> Makefile
-${Q}rm -rf skel -${Q}rm -rf skel
-${Q}if cmp -s Makefile.bak Makefile; then \ -${Q}if cmp -s Makefile.bak Makefile; then \
echo 'sample Makefile was already up to date'; \ echo 'sample Makefile was already up to date'; \

View File

@@ -19,8 +19,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 29.20 $ * @(#) $Revision: 29.21 $
* @(#) $Id: version.c,v 29.20 2001/03/17 21:31:47 chongo Exp $ * @(#) $Id: version.c,v 29.21 2001/04/08 10:09:20 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/version.c,v $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/version.c,v $
* *
* Under source code control: 1990/05/22 11:00:58 * Under source code control: 1990/05/22 11:00:58
@@ -43,7 +43,7 @@ static char *program;
#define MAJOR_VER 2 /* major version */ #define MAJOR_VER 2 /* major version */
#define MINOR_VER 11 /* minor version */ #define MINOR_VER 11 /* minor version */
#define MAJOR_PATCH 5 /* patch level or 0 if no patch */ #define MAJOR_PATCH 5 /* patch level or 0 if no patch */
#define MINOR_PATCH "1.0" /* test number or empty string if no patch */ #define MINOR_PATCH "1.1" /* test number or empty string if no patch */
/* /*
* calc version constants * calc version constants

15
win32/align32.h Normal file
View File

@@ -0,0 +1,15 @@
/*
* DO NOT EDIT -- generated by the Makefile
*/
#if !defined(__MUST_ALIGN32_H__)
#define __MUST_ALIGN32_H__
/* must we always align 32 bit accesses? */
/* forced to not require 32 bit alignment */
#undef MUST_ALIGN32
#endif /* !__MUST_ALIGN32_H__ */

18
win32/args.h Normal file
View File

@@ -0,0 +1,18 @@
/*
* DO NOT EDIT -- generated by the Makefile
*/
#if !defined(__ARGS_H__)
#define __ARGS_H__
/* what type of variable args do we have? */
#define STDARG /* use <stdarg.h> */
#include <stdarg.h>
/* should we use vsprintf()? */
#define HAVE_VS /* yes */
#endif /* !__ARGS_H__ */

379
win32/calcerr.c Normal file
View File

@@ -0,0 +1,379 @@
/*
* DO NOT EDIT
*
* generated by calcerr.tbl via Makefile
*/
#include <stdio.h>
#include "calcerr.h"
#include "have_const.h"
/*
* names of calc error values
*/
CONST char *error_table[E__COUNT+2] = {
"No error",
"Division by zero",
"Indeterminate (0/0)",
"Bad arguments for +",
"Bad arguments for binary -",
"Bad arguments for *",
"Bad arguments for /",
"Bad argument for unary -",
"Bad argument for squaring",
"Bad argument for inverse",
"Bad argument for ++",
"Bad argument for --",
"Bad argument for int",
"Bad argument for frac",
"Bad argument for conj",
"Bad first argument for appr",
"Bad second argument for appr",
"Bad third argument for appr",
"Bad first argument for round",
"Bad second argument for round",
"Bad third argument for round",
"Bad first argument for bround",
"Bad second argument for bround",
"Bad third argument for bround",
"Bad first argument for sqrt",
"Bad second argument for sqrt",
"Bad third argument for sqrt",
"Bad first argument for root",
"Bad second argument for root",
"Bad third argument for root",
"Bad argument for norm",
"Bad first argument for << or >>",
"Bad second argument for << or >>",
"Bad first argument for scale",
"Bad second argument for scale",
"Bad first argument for ^",
"Bad second argument for ^",
"Bad first argument for power",
"Bad second argument for power",
"Bad third argument for power",
"Bad first argument for quo or //",
"Bad second argument for quo or //",
"Bad third argument for quo",
"Bad first argument for mod or %",
"Bad second argument for mod or %",
"Bad third argument for mod",
"Bad argument for sgn",
"Bad first argument for abs",
"Bad second argument for abs",
"Scan error in argument for eval",
"Non-simple type for str",
"Non-real epsilon for exp",
"Bad first argument for exp",
"Non-file first argument for fputc",
"Bad second argument for fputc",
"File not open for writing for fputc",
"Non-file first argument for fgetc",
"File not open for reading for fgetc",
"Non-string arguments for fopen",
"Unrecognized mode for fopen",
"Non-file first argument for freopen",
"Non-string or unrecognized mode for freopen",
"Non-string third argument for freopen",
"Non-file argument for fclose",
"Non-file argument for fflush",
"Non-file first argument for fputs",
"Non-string argument after first for fputs",
"File not open for writing for fputs",
"Non-file argument for fgets",
"File not open for reading for fgets",
"Non-file first argument for fputstr",
"Non-string argument after first for fputstr",
"File not open for writing for fputstr",
"Non-file first argument for fgetstr",
"File not open for reading for fgetstr",
"Non-file argument for fgetline",
"File not open for reading for fgetline",
"Non-file argument for fgetword",
"File not open for reading for fgetword",
"Non-file argument for rewind",
"Non-integer argument for files",
"Non-string fmt argument for fprint",
"Stdout not open for writing to ???",
"Non-file first argument for fprintf",
"Non-string second (fmt) argument for fprintf",
"File not open for writing for fprintf",
"Non-string first (fmt) argument for strprintf",
"Error in attempting strprintf ???",
"Non-file first argument for fscan",
"File not open for reading for fscan",
"Non-string first argument for strscan",
"Non-file first argument for fscanf",
"Non-string second (fmt) argument for fscanf",
"Non-lvalue argument after second for fscanf",
"File not open for reading or other error for fscanf",
"Non-string first argument for strscanf",
"Non-string second (fmt) argument for strscanf",
"Non-lvalue argument after second for strscanf",
"Some error in attempting strscanf ???",
"Non-string first (fmt) argument for scanf",
"Non-lvalue argument after first for scanf",
"Some error in attempting scanf ???",
"Non-file argument for ftell",
"File not open or other error for ftell",
"Non-file first argument for fseek",
"Non-integer or negative second argument for fseek",
"File not open or other error for fseek",
"Non-file argument for fsize",
"File not open or other error for fsize",
"Non-file argument for feof",
"File not open or other error for feof",
"Non-file argument for ferror",
"File not open or other error for ferror",
"Non-file argument for ungetc",
"File not open for reading for ungetc",
"Bad second argument or other error for ungetc",
"Exponent too big in scanning",
"E_ISATTY1 is no longer used",
"E_ISATTY2 is no longer used",
"Non-string first argument for access",
"Bad second argument for access",
"Bad first argument for search",
"Bad second argument for search",
"Bad third argument for search",
"Bad fourth argument for search",
"Cannot find fsize or fpos for search",
"File not readable for search",
"Bad first argument for rsearch",
"Bad second argument for rsearch",
"Bad third argument for rsearch",
"Bad fourth argument for rsearch",
"Cannot find fsize or fpos for rsearch",
"File not readable for rsearch",
"Too many open files",
"Attempt to rewind a file that is not open",
"Bad argument type for strerror",
"Index out of range for strerror",
"Bad epsilon for cos",
"Bad first argument for cos",
"Bad epsilon for sin",
"Bad first argument for sin",
"Non-string argument for eval",
"Bad epsilon for arg",
"Bad first argument for arg",
"Non-real argument for polar",
"Bad epsilon for polar",
"Non-integral argument for fcnt",
"Non-variable first argument for matfill",
"Non-matrix first argument-value for matfill",
"Non-matrix argument for matdim",
"Non-matrix argument for matsum",
"E_ISIDENT is no longer used",
"Non-matrix argument for mattrans",
"Non-two-dimensional matrix for mattrans",
"Non-matrix argument for det",
"Matrix for det not of dimension 2",
"Non-square matrix for det",
"Non-matrix first argument for matmin",
"Non-positive-integer second argument for matmin",
"Second argument for matmin exceeds dimension",
"Non-matrix first argument for matmin",
"Second argument for matmax not positive integer",
"Second argument for matmax exceeds dimension",
"Non-matrix argument for cp",
"Non-one-dimensional matrix for cp",
"Matrix size not 3 for cp",
"Non-matrix argument for dp",
"Non-one-dimensional matrix for dp",
"Different-size matrices for dp",
"Non-string argument for strlen",
"Non-string argument for strcat",
"Non-string first argument for strcat",
"Non-non-negative integer second argument for strcat",
"Bad argument for char",
"Non-string argument for ord",
"Non-list-variable first argument for insert",
"Non-integral second argument for insert",
"Non-list-variable first argument for push",
"Non-list-variable first argument for append",
"Non-list-variable first argument for delete",
"Non-integral second argument for delete",
"Non-list-variable argument for pop",
"Non-list-variable argument for remove",
"Bad epsilon argument for ln",
"Non-numeric first argument for ln",
"Non-integer argument for error",
"Argument outside range for error",
"Attempt to eval at maximum input depth",
"Unable to open string for reading",
"First argument for rm is not a non-empty string",
"Unable to remove a file",
"Operation allowed because calc mode disallows read operations",
"Operation allowed because calc mode disallows write operations",
"Operation allowed because calc mode disallows exec operations",
"Unordered arguments for min",
"Unordered arguments for max",
"Unordered items for minimum of list",
"Unordered items for maximum of list",
"Size undefined for argument type",
"Calc must be run with a -C argument to use custom function",
"Calc was built with custom functions disabled",
"Custom function unknown, try: show custom",
"Non-integral length for block",
"Negative or too-large length for block",
"Non-integral chunksize for block",
"Negative or too-large chunksize for block",
"Named block does not exist for blkfree",
"Non-integral id specification for blkfree",
"Block with specified id does not exist",
"Block already freed",
"No-realloc protection prevents blkfree",
"Non-integer argument for blocks",
"Non-allocated index number for blocks",
"Non-integer or negative source index for copy",
"Source index too large for copy",
"E_COPY3 is no longer used",
"Non-integer or negative number for copy",
"Number too large for copy",
"Non-integer or negative destination index for copy",
"Destination index too large for copy",
"Freed block source for copy",
"Unsuitable source type for copy",
"Freed block destinction for copy",
"Unsuitable destination type for copy",
"Incompatible source and destination for copy",
"No-copy-from source variable",
"No-copy-to destination variable",
"No-copy-from source named block",
"No-copy-to destination named block",
"No-relocation destination for copy",
"File not open for copy",
"fseek or fsize failure for copy",
"fwrite error for copy",
"fread error for copy",
"Non-variable first argument for protect",
"Non-integer second argument for protect",
"Out-of-range second argument for protect",
"No-copy-to destination for matfill",
"No-assign-from source for matfill",
"Non-matrix argument for mattrace",
"Non-two-dimensional argument for mattrace",
"Non-square argument for mattrace",
"Bad epsilon for tan",
"Bad argument for tan",
"Bad epsilon for cot",
"Bad argument for cot",
"Bad epsilon for sec",
"Bad argument for sec",
"Bad epsilon for csc",
"Bad argument for csc",
"Bad epsilon for sinh",
"Bad argument for sinh",
"Bad epsilon for cosh",
"Bad argument for cosh",
"Bad epsilon for tanh",
"Bad argument for tanh",
"Bad epsilon for coth",
"Bad argument for coth",
"Bad epsilon for sech",
"Bad argument for sech",
"Bad epsilon for csch",
"Bad argument for csch",
"Bad epsilon for asin",
"Bad argument for asin",
"Bad epsilon for acos",
"Bad argument for acos",
"Bad epsilon for atan",
"Bad argument for atan",
"Bad epsilon for acot",
"Bad argument for acot",
"Bad epsilon for asec",
"Bad argument for asec",
"Bad epsilon for acsc",
"Bad argument for acsc",
"Bad epsilon for asin",
"Bad argument for asinh",
"Bad epsilon for acosh",
"Bad argument for acosh",
"Bad epsilon for atanh",
"Bad argument for atanh",
"Bad epsilon for acoth",
"Bad argument for acoth",
"Bad epsilon for asech",
"Bad argument for asech",
"Bad epsilon for acsch",
"Bad argument for acsch",
"Bad epsilon for gd",
"Bad argument for gd",
"Bad epsilon for agd",
"Bad argument for agd",
"Log of zero or infinity",
"String addition failure",
"String multiplication failure",
"String reversal failure",
"String subtraction failure",
"Bad argument type for bit",
"Index too large for bit",
"Non-integer second argument for setbit",
"Out-of-range index for setbit",
"Non-string first argument for setbit",
"Bad argument for or",
"Bad argument for and",
"Allocation failure for string or",
"Allocation failure for string and",
"Bad argument for xorvalue",
"Bad argument for comp",
"Allocation failure for string diff",
"Allocation failure for string comp",
"Bad first argument for segment",
"Bad second argument for segment",
"Bad third argument for segment",
"Failure for string segment",
"Bad argument type for highbit",
"Non-integer argument for highbit",
"Bad argument type for lowbit",
"Non-integer argument for lowbit",
"Bad argument type for unary hash op",
"Bad argument type for binary hash op",
"Bad first argument for head",
"Bad second argument for head",
"Failure for strhead",
"Bad first argument for tail",
"Bad second argument for tail",
"Failure for strtail",
"Failure for strshift",
"Non-string argument for strcmp",
"Bad argument type for strncmp",
"Varying types of argument for xor",
"Bad argument type for xor",
"Bad argument type for strcpy",
"Bad argument type for strncpy",
"Bad argument type for unary backslash",
"Bad argument type for setminus",
"Bad first argument type for indices",
"Bad second argument for indices",
"Too-large re(argument) for exp",
"Too-large re(argument) for sinh",
"Too-large re(argument) for cosh",
"Too-large im(argument) for sin",
"Too-large im(argument) for cos",
"Infinite or too-large result for gd",
"Infinite or too-large result for agd",
"Too-large value for power",
"Too-large value for root",
"Non-real first arg for digit",
"Non-integral second arg for digit",
"Bad third arg for digit",
"Bad first argument for places",
"Bad second argument for places",
"Bad first argument for digits",
"Bad second argument for digits",
"Bad first argument for ilog",
"Bad second argument for ilog",
"Bad argument for ilog10",
"Bad argument for ilog2",
"Non-integer second arg for comb",
"Too-large second arg for comb",
"Bad argument for catalan",
"Bad argument for bern",
"Bad argument for euler",
"Bad argument for sleep",
"calc_tty failure",
NULL
};

383
win32/calcerr.h Normal file
View File

@@ -0,0 +1,383 @@
/*
* DO NOT EDIT
*
* generated by calcerr.tbl via Makefile
*/
#if !defined(__CALCERR_H__)
#define __CALCERR_H__
#define E__BASE 10000 /* calc errors start above here */
#define E_1OVER0 10001 /* Division by zero */
#define E_0OVER0 10002 /* Indeterminate (0/0) */
#define E_ADD 10003 /* Bad arguments for + */
#define E_SUB 10004 /* Bad arguments for binary - */
#define E_MUL 10005 /* Bad arguments for * */
#define E_DIV 10006 /* Bad arguments for / */
#define E_NEG 10007 /* Bad argument for unary - */
#define E_SQUARE 10008 /* Bad argument for squaring */
#define E_INV 10009 /* Bad argument for inverse */
#define E_INCV 10010 /* Bad argument for ++ */
#define E_DECV 10011 /* Bad argument for -- */
#define E_INT 10012 /* Bad argument for int */
#define E_FRAC 10013 /* Bad argument for frac */
#define E_CONJ 10014 /* Bad argument for conj */
#define E_APPR 10015 /* Bad first argument for appr */
#define E_APPR2 10016 /* Bad second argument for appr */
#define E_APPR3 10017 /* Bad third argument for appr */
#define E_ROUND 10018 /* Bad first argument for round */
#define E_ROUND2 10019 /* Bad second argument for round */
#define E_ROUND3 10020 /* Bad third argument for round */
#define E_BROUND 10021 /* Bad first argument for bround */
#define E_BROUND2 10022 /* Bad second argument for bround */
#define E_BROUND3 10023 /* Bad third argument for bround */
#define E_SQRT 10024 /* Bad first argument for sqrt */
#define E_SQRT2 10025 /* Bad second argument for sqrt */
#define E_SQRT3 10026 /* Bad third argument for sqrt */
#define E_ROOT 10027 /* Bad first argument for root */
#define E_ROOT2 10028 /* Bad second argument for root */
#define E_ROOT3 10029 /* Bad third argument for root */
#define E_NORM 10030 /* Bad argument for norm */
#define E_SHIFT 10031 /* Bad first argument for << or >> */
#define E_SHIFT2 10032 /* Bad second argument for << or >> */
#define E_SCALE 10033 /* Bad first argument for scale */
#define E_SCALE2 10034 /* Bad second argument for scale */
#define E_POWI 10035 /* Bad first argument for ^ */
#define E_POWI2 10036 /* Bad second argument for ^ */
#define E_POWER 10037 /* Bad first argument for power */
#define E_POWER2 10038 /* Bad second argument for power */
#define E_POWER3 10039 /* Bad third argument for power */
#define E_QUO 10040 /* Bad first argument for quo or // */
#define E_QUO2 10041 /* Bad second argument for quo or // */
#define E_QUO3 10042 /* Bad third argument for quo */
#define E_MOD 10043 /* Bad first argument for mod or % */
#define E_MOD2 10044 /* Bad second argument for mod or % */
#define E_MOD3 10045 /* Bad third argument for mod */
#define E_SGN 10046 /* Bad argument for sgn */
#define E_ABS 10047 /* Bad first argument for abs */
#define E_ABS2 10048 /* Bad second argument for abs */
#define E_EVAL 10049 /* Scan error in argument for eval */
#define E_STR 10050 /* Non-simple type for str */
#define E_EXP1 10051 /* Non-real epsilon for exp */
#define E_EXP2 10052 /* Bad first argument for exp */
#define E_FPUTC1 10053 /* Non-file first argument for fputc */
#define E_FPUTC2 10054 /* Bad second argument for fputc */
#define E_FPUTC3 10055 /* File not open for writing for fputc */
#define E_FGETC1 10056 /* Non-file first argument for fgetc */
#define E_FGETC2 10057 /* File not open for reading for fgetc */
#define E_FOPEN1 10058 /* Non-string arguments for fopen */
#define E_FOPEN2 10059 /* Unrecognized mode for fopen */
#define E_FREOPEN1 10060 /* Non-file first argument for freopen */
#define E_FREOPEN2 10061 /* Non-string or unrecognized mode for freopen */
#define E_FREOPEN3 10062 /* Non-string third argument for freopen */
#define E_FCLOSE1 10063 /* Non-file argument for fclose */
#define E_FFLUSH 10064 /* Non-file argument for fflush */
#define E_FPUTS1 10065 /* Non-file first argument for fputs */
#define E_FPUTS2 10066 /* Non-string argument after first for fputs */
#define E_FPUTS3 10067 /* File not open for writing for fputs */
#define E_FGETS1 10068 /* Non-file argument for fgets */
#define E_FGETS2 10069 /* File not open for reading for fgets */
#define E_FPUTSTR1 10070 /* Non-file first argument for fputstr */
#define E_FPUTSTR2 10071 /* Non-string argument after first for fputstr */
#define E_FPUTSTR3 10072 /* File not open for writing for fputstr */
#define E_FGETSTR1 10073 /* Non-file first argument for fgetstr */
#define E_FGETSTR2 10074 /* File not open for reading for fgetstr */
#define E_FGETLINE1 10075 /* Non-file argument for fgetline */
#define E_FGETLINE2 10076 /* File not open for reading for fgetline */
#define E_FGETWORD1 10077 /* Non-file argument for fgetword */
#define E_FGETWORD2 10078 /* File not open for reading for fgetword */
#define E_REWIND1 10079 /* Non-file argument for rewind */
#define E_FILES 10080 /* Non-integer argument for files */
#define E_PRINTF1 10081 /* Non-string fmt argument for fprint */
#define E_PRINTF2 10082 /* Stdout not open for writing to ??? */
#define E_FPRINTF1 10083 /* Non-file first argument for fprintf */
#define E_FPRINTF2 10084 /* Non-string second (fmt) argument for fprintf */
#define E_FPRINTF3 10085 /* File not open for writing for fprintf */
#define E_STRPRINTF1 10086 /* Non-string first (fmt) argument for strprintf */
#define E_STRPRINTF2 10087 /* Error in attempting strprintf ??? */
#define E_FSCAN1 10088 /* Non-file first argument for fscan */
#define E_FSCAN2 10089 /* File not open for reading for fscan */
#define E_STRSCAN 10090 /* Non-string first argument for strscan */
#define E_FSCANF1 10091 /* Non-file first argument for fscanf */
#define E_FSCANF2 10092 /* Non-string second (fmt) argument for fscanf */
#define E_FSCANF3 10093 /* Non-lvalue argument after second for fscanf */
#define E_FSCANF4 10094 /* File not open for reading or other error for fscanf */
#define E_STRSCANF1 10095 /* Non-string first argument for strscanf */
#define E_STRSCANF2 10096 /* Non-string second (fmt) argument for strscanf */
#define E_STRSCANF3 10097 /* Non-lvalue argument after second for strscanf */
#define E_STRSCANF4 10098 /* Some error in attempting strscanf ??? */
#define E_SCANF1 10099 /* Non-string first (fmt) argument for scanf */
#define E_SCANF2 10100 /* Non-lvalue argument after first for scanf */
#define E_SCANF3 10101 /* Some error in attempting scanf ??? */
#define E_FTELL1 10102 /* Non-file argument for ftell */
#define E_FTELL2 10103 /* File not open or other error for ftell */
#define E_FSEEK1 10104 /* Non-file first argument for fseek */
#define E_FSEEK2 10105 /* Non-integer or negative second argument for fseek */
#define E_FSEEK3 10106 /* File not open or other error for fseek */
#define E_FSIZE1 10107 /* Non-file argument for fsize */
#define E_FSIZE2 10108 /* File not open or other error for fsize */
#define E_FEOF1 10109 /* Non-file argument for feof */
#define E_FEOF2 10110 /* File not open or other error for feof */
#define E_FERROR1 10111 /* Non-file argument for ferror */
#define E_FERROR2 10112 /* File not open or other error for ferror */
#define E_UNGETC1 10113 /* Non-file argument for ungetc */
#define E_UNGETC2 10114 /* File not open for reading for ungetc */
#define E_UNGETC3 10115 /* Bad second argument or other error for ungetc */
#define E_BIGEXP 10116 /* Exponent too big in scanning */
#define E_ISATTY1 10117 /* E_ISATTY1 is no longer used */
#define E_ISATTY2 10118 /* E_ISATTY2 is no longer used */
#define E_ACCESS1 10119 /* Non-string first argument for access */
#define E_ACCESS2 10120 /* Bad second argument for access */
#define E_SEARCH1 10121 /* Bad first argument for search */
#define E_SEARCH2 10122 /* Bad second argument for search */
#define E_SEARCH3 10123 /* Bad third argument for search */
#define E_SEARCH4 10124 /* Bad fourth argument for search */
#define E_SEARCH5 10125 /* Cannot find fsize or fpos for search */
#define E_SEARCH6 10126 /* File not readable for search */
#define E_RSEARCH1 10127 /* Bad first argument for rsearch */
#define E_RSEARCH2 10128 /* Bad second argument for rsearch */
#define E_RSEARCH3 10129 /* Bad third argument for rsearch */
#define E_RSEARCH4 10130 /* Bad fourth argument for rsearch */
#define E_RSEARCH5 10131 /* Cannot find fsize or fpos for rsearch */
#define E_RSEARCH6 10132 /* File not readable for rsearch */
#define E_FOPEN3 10133 /* Too many open files */
#define E_REWIND2 10134 /* Attempt to rewind a file that is not open */
#define E_STRERROR1 10135 /* Bad argument type for strerror */
#define E_STRERROR2 10136 /* Index out of range for strerror */
#define E_COS1 10137 /* Bad epsilon for cos */
#define E_COS2 10138 /* Bad first argument for cos */
#define E_SIN1 10139 /* Bad epsilon for sin */
#define E_SIN2 10140 /* Bad first argument for sin */
#define E_EVAL2 10141 /* Non-string argument for eval */
#define E_ARG1 10142 /* Bad epsilon for arg */
#define E_ARG2 10143 /* Bad first argument for arg */
#define E_POLAR1 10144 /* Non-real argument for polar */
#define E_POLAR2 10145 /* Bad epsilon for polar */
#define E_FCNT 10146 /* Non-integral argument for fcnt */
#define E_MATFILL1 10147 /* Non-variable first argument for matfill */
#define E_MATFILL2 10148 /* Non-matrix first argument-value for matfill */
#define E_MATDIM 10149 /* Non-matrix argument for matdim */
#define E_MATSUM 10150 /* Non-matrix argument for matsum */
#define E_ISIDENT 10151 /* E_ISIDENT is no longer used */
#define E_MATTRANS1 10152 /* Non-matrix argument for mattrans */
#define E_MATTRANS2 10153 /* Non-two-dimensional matrix for mattrans */
#define E_DET1 10154 /* Non-matrix argument for det */
#define E_DET2 10155 /* Matrix for det not of dimension 2 */
#define E_DET3 10156 /* Non-square matrix for det */
#define E_MATMIN1 10157 /* Non-matrix first argument for matmin */
#define E_MATMIN2 10158 /* Non-positive-integer second argument for matmin */
#define E_MATMIN3 10159 /* Second argument for matmin exceeds dimension */
#define E_MATMAX1 10160 /* Non-matrix first argument for matmin */
#define E_MATMAX2 10161 /* Second argument for matmax not positive integer */
#define E_MATMAX3 10162 /* Second argument for matmax exceeds dimension */
#define E_CP1 10163 /* Non-matrix argument for cp */
#define E_CP2 10164 /* Non-one-dimensional matrix for cp */
#define E_CP3 10165 /* Matrix size not 3 for cp */
#define E_DP1 10166 /* Non-matrix argument for dp */
#define E_DP2 10167 /* Non-one-dimensional matrix for dp */
#define E_DP3 10168 /* Different-size matrices for dp */
#define E_STRLEN 10169 /* Non-string argument for strlen */
#define E_STRCAT 10170 /* Non-string argument for strcat */
#define E_SUBSTR1 10171 /* Non-string first argument for strcat */
#define E_SUBSTR2 10172 /* Non-non-negative integer second argument for strcat */
#define E_CHAR 10173 /* Bad argument for char */
#define E_ORD 10174 /* Non-string argument for ord */
#define E_INSERT1 10175 /* Non-list-variable first argument for insert */
#define E_INSERT2 10176 /* Non-integral second argument for insert */
#define E_PUSH 10177 /* Non-list-variable first argument for push */
#define E_APPEND 10178 /* Non-list-variable first argument for append */
#define E_DELETE1 10179 /* Non-list-variable first argument for delete */
#define E_DELETE2 10180 /* Non-integral second argument for delete */
#define E_POP 10181 /* Non-list-variable argument for pop */
#define E_REMOVE 10182 /* Non-list-variable argument for remove */
#define E_LN1 10183 /* Bad epsilon argument for ln */
#define E_LN2 10184 /* Non-numeric first argument for ln */
#define E_ERROR1 10185 /* Non-integer argument for error */
#define E_ERROR2 10186 /* Argument outside range for error */
#define E_EVAL3 10187 /* Attempt to eval at maximum input depth */
#define E_EVAL4 10188 /* Unable to open string for reading */
#define E_RM1 10189 /* First argument for rm is not a non-empty string */
#define E_RM2 10190 /* Unable to remove a file */
#define E_RDPERM 10191 /* Operation allowed because calc mode disallows read operations */
#define E_WRPERM 10192 /* Operation allowed because calc mode disallows write operations */
#define E_EXPERM 10193 /* Operation allowed because calc mode disallows exec operations */
#define E_MIN 10194 /* Unordered arguments for min */
#define E_MAX 10195 /* Unordered arguments for max */
#define E_LISTMIN 10196 /* Unordered items for minimum of list */
#define E_LISTMAX 10197 /* Unordered items for maximum of list */
#define E_SIZE 10198 /* Size undefined for argument type */
#define E_NO_C_ARG 10199 /* Calc must be run with a -C argument to use custom function */
#define E_NO_CUSTOM 10200 /* Calc was built with custom functions disabled */
#define E_UNK_CUSTOM 10201 /* Custom function unknown, try: show custom */
#define E_BLK1 10202 /* Non-integral length for block */
#define E_BLK2 10203 /* Negative or too-large length for block */
#define E_BLK3 10204 /* Non-integral chunksize for block */
#define E_BLK4 10205 /* Negative or too-large chunksize for block */
#define E_BLKFREE1 10206 /* Named block does not exist for blkfree */
#define E_BLKFREE2 10207 /* Non-integral id specification for blkfree */
#define E_BLKFREE3 10208 /* Block with specified id does not exist */
#define E_BLKFREE4 10209 /* Block already freed */
#define E_BLKFREE5 10210 /* No-realloc protection prevents blkfree */
#define E_BLOCKS1 10211 /* Non-integer argument for blocks */
#define E_BLOCKS2 10212 /* Non-allocated index number for blocks */
#define E_COPY1 10213 /* Non-integer or negative source index for copy */
#define E_COPY2 10214 /* Source index too large for copy */
#define E_COPY3 10215 /* E_COPY3 is no longer used */
#define E_COPY4 10216 /* Non-integer or negative number for copy */
#define E_COPY5 10217 /* Number too large for copy */
#define E_COPY6 10218 /* Non-integer or negative destination index for copy */
#define E_COPY7 10219 /* Destination index too large for copy */
#define E_COPY8 10220 /* Freed block source for copy */
#define E_COPY9 10221 /* Unsuitable source type for copy */
#define E_COPY10 10222 /* Freed block destinction for copy */
#define E_COPY11 10223 /* Unsuitable destination type for copy */
#define E_COPY12 10224 /* Incompatible source and destination for copy */
#define E_COPY13 10225 /* No-copy-from source variable */
#define E_COPY14 10226 /* No-copy-to destination variable */
#define E_COPY15 10227 /* No-copy-from source named block */
#define E_COPY16 10228 /* No-copy-to destination named block */
#define E_COPY17 10229 /* No-relocation destination for copy */
#define E_COPYF1 10230 /* File not open for copy */
#define E_COPYF2 10231 /* fseek or fsize failure for copy */
#define E_COPYF3 10232 /* fwrite error for copy */
#define E_COPYF4 10233 /* fread error for copy */
#define E_PROTECT1 10234 /* Non-variable first argument for protect */
#define E_PROTECT2 10235 /* Non-integer second argument for protect */
#define E_PROTECT3 10236 /* Out-of-range second argument for protect */
#define E_MATFILL3 10237 /* No-copy-to destination for matfill */
#define E_MATFILL4 10238 /* No-assign-from source for matfill */
#define E_MATTRACE1 10239 /* Non-matrix argument for mattrace */
#define E_MATTRACE2 10240 /* Non-two-dimensional argument for mattrace */
#define E_MATTRACE3 10241 /* Non-square argument for mattrace */
#define E_TAN1 10242 /* Bad epsilon for tan */
#define E_TAN2 10243 /* Bad argument for tan */
#define E_COT1 10244 /* Bad epsilon for cot */
#define E_COT2 10245 /* Bad argument for cot */
#define E_SEC1 10246 /* Bad epsilon for sec */
#define E_SEC2 10247 /* Bad argument for sec */
#define E_CSC1 10248 /* Bad epsilon for csc */
#define E_CSC2 10249 /* Bad argument for csc */
#define E_SINH1 10250 /* Bad epsilon for sinh */
#define E_SINH2 10251 /* Bad argument for sinh */
#define E_COSH1 10252 /* Bad epsilon for cosh */
#define E_COSH2 10253 /* Bad argument for cosh */
#define E_TANH1 10254 /* Bad epsilon for tanh */
#define E_TANH2 10255 /* Bad argument for tanh */
#define E_COTH1 10256 /* Bad epsilon for coth */
#define E_COTH2 10257 /* Bad argument for coth */
#define E_SECH1 10258 /* Bad epsilon for sech */
#define E_SECH2 10259 /* Bad argument for sech */
#define E_CSCH1 10260 /* Bad epsilon for csch */
#define E_CSCH2 10261 /* Bad argument for csch */
#define E_ASIN1 10262 /* Bad epsilon for asin */
#define E_ASIN2 10263 /* Bad argument for asin */
#define E_ACOS1 10264 /* Bad epsilon for acos */
#define E_ACOS2 10265 /* Bad argument for acos */
#define E_ATAN1 10266 /* Bad epsilon for atan */
#define E_ATAN2 10267 /* Bad argument for atan */
#define E_ACOT1 10268 /* Bad epsilon for acot */
#define E_ACOT2 10269 /* Bad argument for acot */
#define E_ASEC1 10270 /* Bad epsilon for asec */
#define E_ASEC2 10271 /* Bad argument for asec */
#define E_ACSC1 10272 /* Bad epsilon for acsc */
#define E_ACSC2 10273 /* Bad argument for acsc */
#define E_ASINH1 10274 /* Bad epsilon for asin */
#define E_ASINH2 10275 /* Bad argument for asinh */
#define E_ACOSH1 10276 /* Bad epsilon for acosh */
#define E_ACOSH2 10277 /* Bad argument for acosh */
#define E_ATANH1 10278 /* Bad epsilon for atanh */
#define E_ATANH2 10279 /* Bad argument for atanh */
#define E_ACOTH1 10280 /* Bad epsilon for acoth */
#define E_ACOTH2 10281 /* Bad argument for acoth */
#define E_ASECH1 10282 /* Bad epsilon for asech */
#define E_ASECH2 10283 /* Bad argument for asech */
#define E_ACSCH1 10284 /* Bad epsilon for acsch */
#define E_ACSCH2 10285 /* Bad argument for acsch */
#define E_GD1 10286 /* Bad epsilon for gd */
#define E_GD2 10287 /* Bad argument for gd */
#define E_AGD1 10288 /* Bad epsilon for agd */
#define E_AGD2 10289 /* Bad argument for agd */
#define E_LOGINF 10290 /* Log of zero or infinity */
#define E_STRADD 10291 /* String addition failure */
#define E_STRMUL 10292 /* String multiplication failure */
#define E_STRNEG 10293 /* String reversal failure */
#define E_STRSUB 10294 /* String subtraction failure */
#define E_BIT1 10295 /* Bad argument type for bit */
#define E_BIT2 10296 /* Index too large for bit */
#define E_SETBIT1 10297 /* Non-integer second argument for setbit */
#define E_SETBIT2 10298 /* Out-of-range index for setbit */
#define E_SETBIT3 10299 /* Non-string first argument for setbit */
#define E_OR 10300 /* Bad argument for or */
#define E_AND 10301 /* Bad argument for and */
#define E_STROR 10302 /* Allocation failure for string or */
#define E_STRAND 10303 /* Allocation failure for string and */
#define E_XOR 10304 /* Bad argument for xorvalue */
#define E_COMP 10305 /* Bad argument for comp */
#define E_STRDIFF 10306 /* Allocation failure for string diff */
#define E_STRCOMP 10307 /* Allocation failure for string comp */
#define E_SEG1 10308 /* Bad first argument for segment */
#define E_SEG2 10309 /* Bad second argument for segment */
#define E_SEG3 10310 /* Bad third argument for segment */
#define E_STRSEG 10311 /* Failure for string segment */
#define E_HIGHBIT1 10312 /* Bad argument type for highbit */
#define E_HIGHBIT2 10313 /* Non-integer argument for highbit */
#define E_LOWBIT1 10314 /* Bad argument type for lowbit */
#define E_LOWBIT2 10315 /* Non-integer argument for lowbit */
#define E_CONTENT 10316 /* Bad argument type for unary hash op */
#define E_HASHOP 10317 /* Bad argument type for binary hash op */
#define E_HEAD1 10318 /* Bad first argument for head */
#define E_HEAD2 10319 /* Bad second argument for head */
#define E_STRHEAD 10320 /* Failure for strhead */
#define E_TAIL1 10321 /* Bad first argument for tail */
#define E_TAIL2 10322 /* Bad second argument for tail */
#define E_STRTAIL 10323 /* Failure for strtail */
#define E_STRSHIFT 10324 /* Failure for strshift */
#define E_STRCMP 10325 /* Non-string argument for strcmp */
#define E_STRNCMP 10326 /* Bad argument type for strncmp */
#define E_XOR1 10327 /* Varying types of argument for xor */
#define E_XOR2 10328 /* Bad argument type for xor */
#define E_STRCPY 10329 /* Bad argument type for strcpy */
#define E_STRNCPY 10330 /* Bad argument type for strncpy */
#define E_BACKSLASH 10331 /* Bad argument type for unary backslash */
#define E_SETMINUS 10332 /* Bad argument type for setminus */
#define E_INDICES1 10333 /* Bad first argument type for indices */
#define E_INDICES2 10334 /* Bad second argument for indices */
#define E_EXP3 10335 /* Too-large re(argument) for exp */
#define E_SINH3 10336 /* Too-large re(argument) for sinh */
#define E_COSH3 10337 /* Too-large re(argument) for cosh */
#define E_SIN3 10338 /* Too-large im(argument) for sin */
#define E_COS3 10339 /* Too-large im(argument) for cos */
#define E_GD3 10340 /* Infinite or too-large result for gd */
#define E_AGD3 10341 /* Infinite or too-large result for agd */
#define E_POWER4 10342 /* Too-large value for power */
#define E_ROOT4 10343 /* Too-large value for root */
#define E_DGT1 10344 /* Non-real first arg for digit */
#define E_DGT2 10345 /* Non-integral second arg for digit */
#define E_DGT3 10346 /* Bad third arg for digit */
#define E_PLCS1 10347 /* Bad first argument for places */
#define E_PLCS2 10348 /* Bad second argument for places */
#define E_DGTS1 10349 /* Bad first argument for digits */
#define E_DGTS2 10350 /* Bad second argument for digits */
#define E_ILOG 10351 /* Bad first argument for ilog */
#define E_ILOGB 10352 /* Bad second argument for ilog */
#define E_ILOG10 10353 /* Bad argument for ilog10 */
#define E_ILOG2 10354 /* Bad argument for ilog2 */
#define E_COMB1 10355 /* Non-integer second arg for comb */
#define E_COMB2 10356 /* Too-large second arg for comb */
#define E_CTLN 10357 /* Bad argument for catalan */
#define E_BERN 10358 /* Bad argument for bern */
#define E_EULER 10359 /* Bad argument for euler */
#define E_SLEEP 10360 /* Bad argument for sleep */
#define E_TTY 10361 /* calc_tty failure */
#define E__HIGHEST 10361 /* highest calc error */
#define E__COUNT 361 /* number of calc errors */
#define E_USERDEF 20000 /* base of user defined errors */
/* names of calc error values */
#endif /* !__CALCERR_H__ */

41
win32/conf.h Normal file
View File

@@ -0,0 +1,41 @@
/*
* DO NOT EDIT -- generated by the Makefile
*/
#if !defined(__CONF_H__)
#define __CONF_H__
/* the default :-separated search path */
#if !defined(DEFAULTCALCPATH)
#define DEFAULTCALCPATH "./cal"
#endif /* DEFAULTCALCPATH */
/* the default :-separated startup file list */
#if !defined(DEFAULTCALCRC)
#define DEFAULTCALCRC "/lib/calc/startup:~/.calcrc:./.calcinit"
#endif /* DEFAULTCALCRC */
/* the location of the help directory */
#if !defined(HELPDIR)
#define HELPDIR "/lib/calc/help"
#endif /* HELPDIR */
/* the location of the custom help directory */
#if !defined(CUSTOMHELPDIR)
#define CUSTOMHELPDIR "/lib/calc/help/custhelp"
#endif /* CUSTOMHELPDIR */
/* the default pager to use */
#if !defined(DEFAULTCALCPAGER)
#define DEFAULTCALCPAGER ""
#endif /* DEFAULTCALCPAGER */
/* where the echo command is located */
#if !defined(ECHO_PROG)
#define ECHO_PROG ""
#endif /* ECHO_PROG */
#endif /* !__CONF_H__ */

16
win32/endian_calc.h Normal file
View File

@@ -0,0 +1,16 @@
/*
* DO NOT EDIT -- generated by the Makefile
*/
#if !defined(__ENDIAN_CALC_H__)
#define __ENDIAN_CALC_H__
/* what byte order are we? */
#define BIG_ENDIAN 4321
#define LITTLE_ENDIAN 1234
#define CALC_BYTE_ORDER LITTLE_ENDIAN
#endif /* !__ENDIAN_CALC_H__ */

28
win32/fposval.h Normal file
View File

@@ -0,0 +1,28 @@
/*
* DO NOT EDIT -- generated by the Makefile
*/
#if !defined(__FPOSVAL_H__)
#define __FPOSVAL_H__
/* what are our file position & size types? */
#undef FILEPOS_BITS
#define FILEPOS_BITS 64
#define SWAP_HALF_IN_FILEPOS(dest, src) (*(dest) = *(src))
#undef OFF_T_BITS
#define OFF_T_BITS 32
#define SWAP_HALF_IN_OFF_T(dest, src) (*(dest) = *(src))
#undef DEV_BITS
#define DEV_BITS 32
#define SWAP_HALF_IN_DEV(dest, src) memcpy((void *)(dest), (void *)(src), 4)
#undef INODE_BITS
#define INODE_BITS 16
#define SWAP_HALF_IN_INODE(dest, src) memcpy((void *)(dest), (void *)(src), 2)
#endif /* !__FPOSVAL_H__ */

16
win32/have_const.h Normal file
View File

@@ -0,0 +1,16 @@
/*
* DO NOT EDIT -- generated by the Makefile
*/
#if !defined(__HAVE_CONST_H__)
#define __HAVE_CONST_H__
/* do we have or want const? */
#define HAVE_CONST /* yes */
#undef CONST
#define CONST const /* yes */
#endif /* !__HAVE_CONST_H__ */

16
win32/have_fpos.h Normal file
View File

@@ -0,0 +1,16 @@
/*
* DO NOT EDIT -- generated by the Makefile
*/
#if !defined(__HAVE_FPOS_H__)
#define __HAVE_FPOS_H__
/* do we have fgetpos & fsetpos functions? */
#undef HAVE_FPOS /* no */
typedef long FILEPOS;
#endif /* !__HAVE_FPOS_H__ */

15
win32/have_fpos_pos.h Normal file
View File

@@ -0,0 +1,15 @@
/*
* DO NOT EDIT -- generated by the Makefile
*/
#if !defined(__HAVE_FPOS_POS_H__)
#define __HAVE_FPOS_POS_H__
/* do we have fgetpos & fsetpos functions? */
#undef HAVE_FPOS_POS /* no */
#undef FPOS_POS_BITS
#endif /* !__HAVE_FPOS_POS_H__ */

14
win32/have_getpgid.h Normal file
View File

@@ -0,0 +1,14 @@
/*
* DO NOT EDIT -- generated by the Makefile
*/
#if !defined(__HAVE_GETPGID_H__)
#define __HAVE_GETPGID_H__
/* do we have or want getpgid()? */
#undef HAVE_GETPGID /* no */
#endif /* !__HAVE_GETPGID_H__ */

14
win32/have_getprid.h Normal file
View File

@@ -0,0 +1,14 @@
/*
* DO NOT EDIT -- generated by the Makefile
*/
#if !defined(__HAVE_GETPRID_H__)
#define __HAVE_GETPRID_H__
/* do we have or want getprid()? */
#undef HAVE_GETPRID /* no */
#endif /* !__HAVE_GETPRID_H__ */

14
win32/have_getsid.h Normal file
View File

@@ -0,0 +1,14 @@
/*
* DO NOT EDIT -- generated by the Makefile
*/
#if !defined(__HAVE_GETSID_H__)
#define __HAVE_GETSID_H__
/* do we have or want getsid()? */
#undef HAVE_GETSID /* no */
#endif /* !__HAVE_GETSID_H__ */

14
win32/have_gettime.h Normal file
View File

@@ -0,0 +1,14 @@
/*
* DO NOT EDIT -- generated by the Makefile
*/
#if !defined(__HAVE_GETTIME_H__)
#define __HAVE_GETTIME_H__
/* do we have or want clock_gettime()? */
#undef HAVE_GETTIME /* no */
#endif /* !__HAVE_GETTIME_H__ */

14
win32/have_malloc.h Normal file
View File

@@ -0,0 +1,14 @@
/*
* DO NOT EDIT -- generated by the Makefile
*/
#if !defined(__HAVE_MALLOC_H__)
#define __HAVE_MALLOC_H__
/* do we have /usr/include/malloc.h? */
#define HAVE_MALLOC_H /* yes */
#endif /* !__HAVE_MALLOC_H__ */

14
win32/have_memmv.h Normal file
View File

@@ -0,0 +1,14 @@
/*
* DO NOT EDIT -- generated by the Makefile
*/
#if !defined(__HAVE_MEMMV_H__)
#define __HAVE_MEMMV_H__
/* do we have or want memmove()? */
#define HAVE_MEMMOVE /* yes */
#endif /* !__HAVE_MEMMV_H__ */

14
win32/have_newstr.h Normal file
View File

@@ -0,0 +1,14 @@
/*
* DO NOT EDIT -- generated by the Makefile
*/
#if !defined(__HAVE_NEWSTR_H__)
#define __HAVE_NEWSTR_H__
/* do we have or want memcpy(), memset() & strchr()? */
#define HAVE_NEWSTR /* yes */
#endif /* !__HAVE_NEWSTR_H__ */

14
win32/have_offscl.h Normal file
View File

@@ -0,0 +1,14 @@
/*
* DO NOT EDIT -- generated by the Makefile
*/
#if !defined(__HAVE_OFFSCL_H__)
#define __HAVE_OFFSCL_H__
#undef HAVE_OFF_T_SCALAR
#define HAVE_OFF_T_SCALAR /* off_t is a simple value */
#endif /* !__HAVE_OFFSCL_H__ */

14
win32/have_posscl.h Normal file
View File

@@ -0,0 +1,14 @@
/*
* DO NOT EDIT -- generated by the Makefile
*/
#if !defined(__HAVE_POSSCL_H__)
#define __HAVE_POSSCL_H__
#undef HAVE_FILEPOS_SCALAR
#define HAVE_FILEPOS_SCALAR /* FILEPOS is a simple value */
#endif /* !__HAVE_POSSCL_H__ */

14
win32/have_rusage.h Normal file
View File

@@ -0,0 +1,14 @@
/*
* DO NOT EDIT -- generated by the Makefile
*/
#if !defined(__HAVE_RUSAGE_H__)
#define __HAVE_RUSAGE_H__
/* do we have or want getrusage()? */
#undef HAVE_GETRUSAGE /* no */
#endif /* !__HAVE_RUSAGE_H__ */

14
win32/have_stdlib.h Normal file
View File

@@ -0,0 +1,14 @@
/*
* DO NOT EDIT -- generated by the Makefile
*/
#if !defined(__HAVE_STDLIB_H__)
#define __HAVE_STDLIB_H__
/* do we have /usr/include/stdlib.h? */
#define HAVE_STDLIB_H /* yes */
#endif /* !__HAVE_STDLIB_H__ */

14
win32/have_strdup.h Normal file
View File

@@ -0,0 +1,14 @@
/*
* DO NOT EDIT -- generated by the Makefile
*/
#if !defined(__HAVE_RUSAGE_H__)
#define __HAVE_RUSAGE_H__
/* do we have or want getstrdup()? */
#define HAVE_STRDUP /* yes */
#endif /* !__HAVE_RUSAGE_H__ */

14
win32/have_string.h Normal file
View File

@@ -0,0 +1,14 @@
/*
* DO NOT EDIT -- generated by the Makefile
*/
#if !defined(__HAVE_STRING_H__)
#define __HAVE_STRING_H__
/* do we have /usr/include/string.h? */
#define HAVE_STRING_H /* yes */
#endif /* !__HAVE_STRING_H__ */

17
win32/have_times.h Normal file
View File

@@ -0,0 +1,17 @@
/*
* DO NOT EDIT -- generated by the Makefile
*/
#if !defined(__HAVE_TIMES_H__)
#define __HAVE_TIMES_H__
/* do we have /usr/include/times.h? */
#undef HAVE_TIMES_H /* no */
#undef HAVE_SYS_TIMES_H /* no */
#define HAVE_TIME_H /* yes */
#undef HAVE_SYS_TIME_H /* no */
#endif /* !__HAVE_TIMES_H__ */

14
win32/have_uid_t.h Normal file
View File

@@ -0,0 +1,14 @@
/*
* DO NOT EDIT -- generated by the Makefile
*/
#if !defined(__HAVE_UID_T_H__)
#define __HAVE_UID_T_H__
/* do we have or want uid_t? */
#undef HAVE_UID_T /* no */
#endif /* !__HAVE_UID_T_H__ */

14
win32/have_unistd.h Normal file
View File

@@ -0,0 +1,14 @@
/*
* DO NOT EDIT -- generated by the Makefile
*/
#if !defined(__HAVE_UNISTD_H__)
#define __HAVE_UNISTD_H__
/* do we have /usr/include/unistd.h? */
#undef HAVE_UNISTD_H /* no */
#endif /* !__HAVE_UNISTD_H__ */

14
win32/have_urandom.h Normal file
View File

@@ -0,0 +1,14 @@
/*
* DO NOT EDIT -- generated by the Makefile
*/
#if !defined(__HAVE_URANDOM_H__)
#define __HAVE_URANDOM_H__
/* do we have /dev/urandom? */
#undef HAVE_URANDOM_H /* no */
#endif /* !__HAVE_URANDOM_H__ */

14
win32/have_ustat.h Normal file
View File

@@ -0,0 +1,14 @@
/*
* DO NOT EDIT -- generated by the Makefile
*/
#if !defined(__HAVE_USTAT_H__)
#define __HAVE_USTAT_H__
/* do we have or want ustat()? */
#undef HAVE_USTAT /* no */
#endif /* !__HAVE_USTAT_H__ */

31
win32/longbits.h Normal file
View File

@@ -0,0 +1,31 @@
/*
* DO NOT EDIT -- generated by the Makefile
*/
#if !defined(__LONGBITS_H__)
#define __LONGBITS_H__
#undef LONG_BITS
#define LONG_BITS 32 /* bit length of a long */
/* size of long was forced */
typedef unsigned char USB8; /* unsigned 8 bits */
typedef signed char SB8; /* signed 8 bits */
typedef unsigned short USB16; /* unsigned 16 bits */
typedef short SB16; /* signed 16 bits */
typedef unsigned long USB32; /* unsigned 32 bits */
typedef long SB32; /* signed 32 bits */
#undef HAVE_B64 /* we have no USB64 and no SB64 types */
/* no 64 bit constants */
#define U(x) no 33 to 64 bit constants - do not use this macro!
#define L(x) no 33 to 64 bit constants - do not use this macro!
#endif /* !__LONGBITS_H__ */

16
win32/longlong.h Normal file
View File

@@ -0,0 +1,16 @@
/*
* DO NOT EDIT -- generated by the Makefile
*/
#if !defined(__LONGLONG_H__)
#define __LONGLONG_H__
/* do we have/want to use a long long type? */
#undef HAVE_LONGLONG
#define LONGLONG_BITS 0 /* no */
#undef L64_FORMAT
#endif /* !__LONGLONG_H__ */

23
win32/terminal.h Normal file
View File

@@ -0,0 +1,23 @@
/*
* DO NOT EDIT -- generated by the Makefile
*/
#if !defined(__TERMINAL_H__)
#define __TERMINAL_H__
/* determine the type of terminal interface */
#if !defined(USE_TERMIOS)
#if !defined(USE_TERMIO)
#if !defined(USE_SGTTY)
/* windoz, use none of these modes */
#undef USE_TERMIOS /* <termios.h> */
#undef USE_TERMIO /* <termio.h> */
#undef USE_SGTTY /* <sys/ioctl.h> */
#endif
#endif
#endif
#endif /* !__TERMINAL_H__ */