Release calc version 2.11.5t1.0

This commit is contained in:
Landon Curt Noll
2001-03-17 19:35:52 -08:00
parent fc85ac3791
commit 63d9b22067
28 changed files with 1179 additions and 699 deletions

23
BUGS
View File

@@ -108,6 +108,25 @@ Problems with known work-a-rounds:
int remsign; int remsign;
BOOL up, onebit; BOOL up, onebit;
ZVALUE sqrt; ZVALUE sqrt;
*** zmath.c 2000/06/07 14:02:13 29.2
--- zmath.c 2001/03/13 19:47:03
***************
*** 1608,1614 ****
void
zbitvalue(long n, ZVALUE *res)
{
! ZVALUE z;
if (n < 0) n = 0;
z.sign = 0;
--- 1608,1614 ----
void
zbitvalue(long n, ZVALUE *res)
{
! volatile ZVALUE z;
if (n < 0) n = 0;
z.sign = 0;
* Solaris cc somtimes barfs while compiling zrand.c. In particular, calc * Solaris cc somtimes barfs while compiling zrand.c. In particular, calc
barfs on on the SVAL macro. The work-a-round is to use the Solaric cc barfs on on the SVAL macro. The work-a-round is to use the Solaric cc
@@ -205,8 +224,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.7 $ ## @(#) $Revision: 29.9 $
## @(#) $Id: BUGS,v 29.7 2001/02/25 21:01:52 chongo Exp $ ## @(#) $Id: BUGS,v 29.9 2001/03/18 03:34:41 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

41
CHANGES
View File

@@ -1,6 +1,6 @@
The following are the changes from calc version 2.11.5t0 to date: The following are the changes from calc version 2.11.5t0 to date:
Fixed a compile problem with Linux 2.4 / Debian. Thanks goes Fixed a compile problem with Linux 2.4 / Debian. Thanks goes
to Martin Buck <m at rtin-buck dot de> for help with this issue. to Martin Buck <m at rtin-buck dot de> for help with this issue.
Fixed a bug in how L64_FORMAT (it determined if "%ld" or "%lld" Fixed a bug in how L64_FORMAT (it determined if "%ld" or "%lld"
@@ -10,11 +10,44 @@ The following are the changes from calc version 2.11.5t0 to date:
An effort was made to make calc easier to build under Windoz An effort was made to make calc easier to build under Windoz
using the Cygwin project (http://sources.redhat.com/cygwin/). using the Cygwin project (http://sources.redhat.com/cygwin/).
Thanks to the work of Thomas Jones-Low (tjoneslo and softstart Thanks to the work of Thomas Jones-Low (tjoneslo and softstart
dot com), a number of #if defined(_WIN32)'s have been added dot com), a number of #if defined(_WIN32)'s have been added
to calc source. These changes should not effect Windoz to calc source. These changes should not effect Windoz
free system such as GNU/Linux, Solaris, POSIX-like, etc ... free system such as GNU/Linux, Solaris, POSIX-like, etc ...
Added windll.h to deal with Windoz related DLL issues.
Using the convention of 'extern DLL' instead of 'DLL extern'
to deal with symbols that export to or import from a DLL.
Added HAVE_MALLOC_H, HAVE_STDLIB_H, HAVE_STRING_H, HAVE_TIMES_H,
HAVE_SYS_TIMES_H, HAVE_TIME_H, HAVE_SYS_TIME_H, HAVE_UNISTD_H
and HAVE_URANDOM to the Makefile. If these symcols are empty,
then the Makefile looks for the appropriate system include file.
If they are YES, then the Makefile will assume they exist.
If they are NO, then the Makefile will assume they do not exist.
Changed HAVE_URANDOM to match the empty, YES, NO values.
If HAVE_URANDOM is empty, then the Makefile will look for /dev/urandom.
If HAVE_URANDOM is YES, then the Makefile will assume /dev/urandom exists.
If HAVE_URANDOM is NO, then the Makefile will assume /dev/urandom does
not exist.
If TERMCONTROL is -DUSE_WIN32, then the Windoz terminal control
(no TERMIOS, no TERMIO, no SGTTY) will be assumed.
Added a win32_hsrc Makefile rule to create hsrc files appropriate
for a Windoz system using Cygwin gcc environment. Added win32.mkdef
which is used by the win32_hsrc rule to set the Windoz specific
Makefile values to build hsrc files. The hsrc files are built
under the win32 directory.
Added FPOS_POS_BITS, OFF_T_BITS, DEV_BITS and INODE_BITS Makefile
symbiols to allow one to force the size of a file position, file
offset, dev and inode value. Leaving these values blank will
Makefile to determine their size.
Fixed a bug in the way file offsets, device and inode values are copied.
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:
@@ -5059,8 +5092,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.20 $ ## @(#) $Revision: 29.22 $
## @(#) $Id: CHANGES,v 29.20 2001/02/25 22:07:36 chongo Exp $ ## @(#) $Id: CHANGES,v 29.22 2001/03/18 03:27:28 chongo Exp $
## @(#) $Source: /usr/local/src/cmd/calc/RCS/CHANGES,v $ ## @(#) $Source: /usr/local/src/cmd/calc/RCS/CHANGES,v $
## ##
## Under source code control: 1993/06/02 18:12:57 ## Under source code control: 1993/06/02 18:12:57

535
Makefile

File diff suppressed because it is too large Load Diff

View File

@@ -64,7 +64,7 @@ People who maintain calc need to keep in mind the following:
The following was added to opcodes.h, config.h, zmath.h and value.h: The following was added to opcodes.h, config.h, zmath.h and value.h:
#if defined (_WIN32) #if defined(_WIN32)
#ifdef _EXPORTING #ifdef _EXPORTING
#define DLL __declspec(dllexport) #define DLL __declspec(dllexport)
#else #else
@@ -102,8 +102,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.2 $ ## @(#) $Revision: 29.3 $
## @(#) $Id: README.WINDOWS,v 29.2 2001/02/25 22:20:38 chongo Exp $ ## @(#) $Id: README.WINDOWS,v 29.3 2001/03/17 21:31:47 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

24
calc.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.6 $ * @(#) $Revision: 29.7 $
* @(#) $Id: calc.c,v 29.6 2001/02/25 22:07:36 chongo Exp $ * @(#) $Id: calc.c,v 29.7 2001/03/17 21:31:47 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/calc.c,v $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/calc.c,v $
* *
* Under source code control: 1990/02/15 01:48:11 * Under source code control: 1990/02/15 01:48:11
@@ -32,20 +32,25 @@
#include <stdio.h> #include <stdio.h>
#include <signal.h> #include <signal.h>
#include <pwd.h>
#if !defined (_WIN32)
# include <pwd.h>
#endif
#include <sys/types.h> #include <sys/types.h>
#include <ctype.h> #include <ctype.h>
#if defined (_WIN32) #if defined(_WIN32)
#include <io.h> # include <io.h>
/* /*
* getopt.h file is from the Cygwin GNU library * getopt.h file is from the Cygwin GNU library
* *
* See: * See:
* http://sources.redhat.com/cygwin/ * http://sources.redhat.com/cygwin/
*/ */
#include "../getopt/getopt.h" # include "../getopt/getopt.h"
#define strdup _strdup # define strdup _strdup
# define isatty _isatty
#endif /* Windoz */ #endif /* Windoz */
#define CALC_C #define CALC_C
@@ -61,6 +66,7 @@
#include "custom.h" #include "custom.h"
#include "math_error.h" #include "math_error.h"
#include "args.h" #include "args.h"
#include "zmath.h"
#include "have_unistd.h" #include "have_unistd.h"
#if defined(HAVE_UNISTD_H) #if defined(HAVE_UNISTD_H)

229
calc.h
View File

@@ -17,8 +17,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 29.5 $ * @(#) $Revision: 29.6 $
* @(#) $Id: calc.h,v 29.5 2000/12/04 19:32:33 chongo Exp $ * @(#) $Id: calc.h,v 29.6 2001/03/17 21:31:47 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/calc.h,v $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/calc.h,v $
* *
* Under source code control: 1990/02/15 01:48:31 * Under source code control: 1990/02/15 01:48:31
@@ -32,9 +32,8 @@
#define __CALC_H__ #define __CALC_H__
#include <setjmp.h> #include <setjmp.h>
#include "win32dll.h"
#include "value.h" #include "value.h"
#include "have_const.h" #include "have_const.h"
@@ -94,134 +93,140 @@
/* /*
* File I/O routines. * File I/O routines.
*/ */
extern FILEID openid(char *name, char *mode); extern DLL FILEID openid(char *name, char *mode);
extern FILEID indexid(long index); extern DLL FILEID indexid(long index);
extern BOOL validid(FILEID id); extern DLL BOOL validid(FILEID id);
extern BOOL errorid(FILEID id); extern DLL BOOL errorid(FILEID id);
extern BOOL eofid(FILEID id); extern DLL BOOL eofid(FILEID id);
extern int closeid(FILEID id); extern DLL int closeid(FILEID id);
extern int getcharid(FILEID id); extern DLL int getcharid(FILEID id);
extern int idprintf(FILEID id, char *fmt, int count, VALUE **vals); extern DLL int idprintf(FILEID id, char *fmt, int count, VALUE **vals);
extern int idfputc(FILEID id, int ch); extern DLL int idfputc(FILEID id, int ch);
extern int idfputs(FILEID id, char *str); extern DLL int idfputs(FILEID id, char *str);
extern int printid(FILEID id, int flags); extern DLL int printid(FILEID id, int flags);
extern int flushid(FILEID id); extern DLL int flushid(FILEID id);
extern int readid(FILEID id, int flags, char **retptr); extern DLL int readid(FILEID id, int flags, char **retptr);
extern int getloc(FILEID id, ZVALUE *loc); extern DLL int getloc(FILEID id, ZVALUE *loc);
extern int setloc(FILEID id, ZVALUE zpos); extern DLL int setloc(FILEID id, ZVALUE zpos);
extern int getsize(FILEID id, ZVALUE *size); extern DLL int getsize(FILEID id, ZVALUE *size);
extern int get_device(FILEID id, ZVALUE *dev); extern DLL int get_device(FILEID id, ZVALUE *dev);
extern int get_inode(FILEID id, ZVALUE *ino); extern DLL int get_inode(FILEID id, ZVALUE *ino);
extern FILEID reopenid(FILEID id, char *mode, char *name); extern DLL FILEID reopenid(FILEID id, char *mode, char *name);
extern int closeall(void); extern DLL int closeall(void);
extern int flushall(void);
extern int idfputstr(FILEID id, char *str); #if !defined(_WIN32)
extern int rewindid(FILEID id); extern DLL int flushall(void);
extern void rewindall(void); #endif
extern ZVALUE zfilesize(FILEID id);
extern void showfiles(void); extern DLL int idfputstr(FILEID id, char *str);
extern int fscanfid(FILEID id, char *fmt, int count, VALUE **vals); extern DLL int rewindid(FILEID id);
extern int scanfstr(char *str, char *fmt, int count, VALUE **vals); extern DLL void rewindall(void);
extern int ftellid(FILEID id, ZVALUE *res); extern DLL ZVALUE zfilesize(FILEID id);
extern int fseekid(FILEID id, ZVALUE offset, int whence); extern DLL void showfiles(void);
extern int isattyid(FILEID id); extern DLL int fscanfid(FILEID id, char *fmt, int count, VALUE **vals);
extern int fsearch(FILEID id, char *str, ZVALUE start, ZVALUE end, ZVALUE *res); extern DLL int scanfstr(char *str, char *fmt, int count, VALUE **vals);
extern int frsearch(FILEID id, char *str, ZVALUE first, ZVALUE last, ZVALUE *res); extern DLL int ftellid(FILEID id, ZVALUE *res);
extern void showconstants(void); extern DLL int fseekid(FILEID id, ZVALUE offset, int whence);
extern void freeconstant(unsigned long); extern DLL int isattyid(FILEID id);
extern void freestringconstant(long); extern DLL int fsearch(FILEID id, char *str, ZVALUE start, ZVALUE end, ZVALUE *res);
extern void trimconstants(void); extern DLL int frsearch(FILEID id, char *str, ZVALUE first, ZVALUE last, ZVALUE *res);
extern DLL void showconstants(void);
extern DLL void freeconstant(unsigned long);
extern DLL void freestringconstant(long);
extern DLL void trimconstants(void);
/* /*
* Input routines. * Input routines.
*/ */
extern int openstring(char *str, long num); extern DLL int openstring(char *str, long num);
extern int openterminal(void); extern DLL int openterminal(void);
extern int opensearchfile(char *name, char *pathlist, char *exten, int reopen_ok); extern DLL int opensearchfile(char *name, char *pathlist, char *exten, int reopen_ok);
extern char *nextline(void); extern DLL char *nextline(void);
extern int nextchar(void); extern DLL int nextchar(void);
extern void reread(void); extern DLL void reread(void);
extern void resetinput(void); extern DLL void resetinput(void);
extern void setprompt(char *); extern DLL void setprompt(char *);
extern BOOL inputisterminal(void); extern DLL BOOL inputisterminal(void);
extern int inputlevel(void); extern DLL int inputlevel(void);
extern long calclevel(void); extern DLL long calclevel(void);
extern char *inputname(void); extern DLL char *inputname(void);
extern long linenumber(void); extern DLL long linenumber(void);
extern void runrcfiles(void); extern DLL void runrcfiles(void);
extern void closeinput(void); extern DLL void closeinput(void);
/* /*
* Other routines. * Other routines.
*/ */
extern NUMBER *constvalue(unsigned long index); extern DLL NUMBER *constvalue(unsigned long index);
extern long addnumber(char *str); extern DLL long addnumber(char *str);
extern long addqconstant(NUMBER *q); extern DLL long addqconstant(NUMBER *q);
extern void initstack(void); extern DLL void initstack(void);
extern void getcommands(BOOL toplevel); extern DLL void getcommands(BOOL toplevel);
extern void givehelp(char *type); extern DLL void givehelp(char *type);
extern void libcalc_call_me_first(void); extern DLL void libcalc_call_me_first(void);
extern void libcalc_call_me_last(void); extern DLL void libcalc_call_me_last(void);
extern BOOL calc_tty(int fd); extern DLL BOOL calc_tty(int fd);
extern BOOL orig_tty(int fd); extern DLL BOOL orig_tty(int fd);
extern void showerrors(void); extern DLL void showerrors(void);
extern char *calc_strdup(CONST char *); extern DLL char *calc_strdup(CONST char *);
/* /*
* Initialization * Initialization
*/ */
extern void initialize(void); extern DLL void initialize(void);
extern void reinitialize(void); extern DLL void reinitialize(void);
extern int isatty(int tty); /* TRUE if fd is a tty */ #if !defined (_WIN32)
extern char *version(void); /* return version string */ extern DLL int isatty(int tty); /* TRUE if fd is a tty */
extern int post_init; /* TRUE => setjmp for math_error is ready */ #endif
extern DLL char *version(void); /* return version string */
extern DLL int post_init; /* TRUE => math_error setjmp is ready */
/* /*
* global flags and definitions * global flags and definitions
*/ */
extern int abortlevel; /* current level of aborts */ extern DLL int abortlevel; /* current level of aborts */
extern BOOL inputwait; /* TRUE if in a terminal input wait */ extern DLL BOOL inputwait; /* TRUE if in a terminal input wait */
extern jmp_buf jmpbuf; /* for errors */ extern DLL jmp_buf jmpbuf; /* for errors */
extern int p_flag; /* TRUE => pipe mode */ extern DLL int p_flag; /* TRUE => pipe mode */
extern int q_flag; /* TRUE => don't execute rc files */ extern DLL int q_flag; /* TRUE => don't execute rc files */
extern int u_flag; /* TRUE => unbuffer stdin and stdout */ extern DLL int u_flag; /* TRUE => unbuffer stdin and stdout */
extern int d_flag; /* TRUE => disable heading, resource_debug */ extern DLL int d_flag; /* TRUE => disable heading, resource_debug */
extern int c_flag; /* TRUE => continue after error if permitted */ extern DLL int c_flag; /* TRUE => continue after error if permitted */
extern int i_flag; /* TRUE => try to go interactive after error */ extern DLL int i_flag; /* TRUE => try to go interactive after error */
extern int s_flag; /* TRUE => keep args as strings for argv() */ extern DLL int s_flag; /* TRUE => keep args as strings for argv() */
extern int stoponerror; /* >0 => stop, <0 => continue, ==0 => use -c */ extern DLL int stoponerror; /* >0 => stop, <0 => continue, ==0 => use -c */
extern BOOL abort_now; /* TRUE => try to go interactive */ extern DLL BOOL abort_now; /* TRUE => try to go interactive */
extern int argc_value; /* count of argv[] strings for argv() builtin */ extern DLL int argc_value; /* count of argv[] strings for argv() builtin */
extern char **argv_value; /* argv[] strings for argv() builtin */ extern DLL char **argv_value; /* argv[] strings for argv() builtin */
extern char *pager; /* $PAGER or default */ extern DLL char *pager; /* $PAGER or default */
extern int stdin_tty; /* TRUE if stdin is a tty */ extern DLL int stdin_tty; /* TRUE if stdin is a tty */
extern int havecommands; /* TRUE if have cmd args) */ extern DLL int havecommands; /* TRUE if have cmd args) */
extern char *program; /* our name */ extern DLL char *program; /* our name */
extern char *base_name; /* basename of our name */ extern DLL char *base_name; /* basename of our name */
extern char cmdbuf[]; /* command line expression */ extern DLL char cmdbuf[]; /* command line expression */
extern int abortlevel; /* current level of aborts */ extern DLL int abortlevel; /* current level of aborts */
extern BOOL inputwait; /* TRUE if in a terminal input wait */ extern DLL BOOL inputwait; /* TRUE if in a terminal input wait */
extern VALUE *stack; /* execution stack */ extern DLL VALUE *stack; /* execution stack */
extern int dumpnames; /* TRUE => dump names rather than indices */ extern DLL int dumpnames; /* TRUE => dump names rather than indices */
extern char *calcpath; /* $CALCPATH or default */ extern DLL char *calcpath; /* $CALCPATH or default */
extern char *calcrc; /* $CALCRC or default */ extern DLL char *calcrc; /* $CALCRC or default */
extern char *calcbindings; /* $CALCBINDINGS or default */ extern DLL char *calcbindings; /* $CALCBINDINGS or default */
extern char *home; /* $HOME or default */ extern DLL char *home; /* $HOME or default */
extern char *shell; /* $SHELL or default */ extern DLL char *shell; /* $SHELL or default */
extern char *program; /* our name (argv[0]) */ extern DLL char *program; /* our name (argv[0]) */
extern int no_env; /* TRUE (-e) => ignore env vars on startup */ extern DLL int no_env; /* TRUE (-e) => ignore env vars on startup */
extern int errmax; /* if >= 0, error when errcount exceeds errmax */ extern DLL int errmax; /* if >= 0, error when errcount exceeds errmax */
extern int new_std; /* TRUE (-n) => use newstd configuration */ extern DLL int new_std; /* TRUE (-n) => use newstd configuration */
extern int allow_read; /* FALSE => may not open any files for reading */ extern DLL int allow_read; /* FALSE => dont open any files for reading */
extern int allow_write; /* FALSE => may not open any files for writing */ extern DLL int allow_write; /* FALSE => dont open any files for writing */
extern int allow_exec; /* FALSE => may not execute any commands */ extern DLL int allow_exec; /* FALSE => may not execute any commands */
/* /*
* calc startup and run state * calc startup and run state
@@ -237,8 +242,8 @@ typedef enum {
RUN_EXIT, /* normal exit from calc */ RUN_EXIT, /* normal exit from calc */
RUN_EXIT_WITH_ERROR /* exit with error */ RUN_EXIT_WITH_ERROR /* exit with error */
} run; } run;
extern run run_state; extern DLL run run_state;
extern char *run_state_name(run state); extern DLL char *run_state_name(run state);
/* /*
* calc version information * calc version information
@@ -249,7 +254,7 @@ extern int calc_minor_ver;
extern int calc_major_patch; extern int calc_major_patch;
extern char *calc_minor_patch; extern char *calc_minor_patch;
extern char *Copyright; extern char *Copyright;
extern char *version(void); extern DLL char *version(void);
#endif /* !__CALC_H__ */ #endif /* !__CALC_H__ */

View File

@@ -19,8 +19,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 29.3 $ * @(#) $Revision: 29.4 $
* @(#) $Id: codegen.c,v 29.3 2000/07/17 15:35:49 chongo Exp $ * @(#) $Id: codegen.c,v 29.4 2001/03/17 21:31:47 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/codegen.c,v $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/codegen.c,v $
* *
* Under source code control: 1990/02/15 01:48:13 * Under source code control: 1990/02/15 01:48:13
@@ -45,6 +45,10 @@
#include "func.h" #include "func.h"
#include "conf.h" #include "conf.h"
#if defined(_WIN32)
# include <direct.h>
#endif
static BOOL rdonce; /* TRUE => do not reread this file */ static BOOL rdonce; /* TRUE => do not reread this file */
FUNC *curfunc; FUNC *curfunc;

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.5 $ * @(#) $Revision: 29.6 $
* @(#) $Id: config.h,v 29.5 2001/02/25 22:07:36 chongo Exp $ * @(#) $Id: config.h,v 29.6 2001/03/17 21:31:47 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/config.h,v $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/config.h,v $
* *
* Under source code control: 1995/11/01 22:20:17 * Under source code control: 1995/11/01 22:20:17
@@ -35,20 +35,7 @@
#define __CONFIG_H__ #define __CONFIG_H__
#if defined (_WIN32) #include "win32dll.h"
#ifdef _EXPORTING
#define DLL __declspec(dllexport)
#else
#define DLL __declspec(dllimport)
#endif
#else /* Windoz free systems */
#define DLL
#endif /* Windoz free systems */
#include "nametype.h" #include "nametype.h"
#include "qmath.h" #include "qmath.h"
@@ -196,23 +183,23 @@ typedef struct config CONFIG;
/* /*
* global configuration states and aliases * global configuration states and aliases
*/ */
extern CONFIG *conf; /* current configuration */ extern DLL CONFIG *conf; /* current configuration */
extern CONFIG oldstd; /* backward compatible standard configuration */ extern DLL CONFIG oldstd; /* backward compatible standard configuration */
extern CONFIG newstd; /* new non-backward compatible configuration */ extern DLL CONFIG newstd; /* new non-backward compatible configuration */
extern char *calc_debug; /* !=NULL => value of config("calc_debug") */ extern DLL char *calc_debug; /* !=NULL => value of config("calc_debug") */
extern char *resource_debug; /* !=NULL => config("resource_debug") value */ extern DLL char *resource_debug; /* !=NULL => config("resource_debug") value */
extern char *user_debug; /* !=NULL => value of config("user_debug") */ extern DLL char *user_debug; /* !=NULL => value of config("user_debug") */
/* /*
* configuration externals * configuration externals
*/ */
DLL extern CONFIG *config_copy(CONFIG *src); extern DLL CONFIG *config_copy(CONFIG *src);
DLL extern void config_free(CONFIG *cfg); extern DLL void config_free(CONFIG *cfg);
DLL extern void config_print(CONFIG *cfg); extern DLL void config_print(CONFIG *cfg);
DLL extern int configtype(char*); extern DLL int configtype(char*);
DLL extern void config_print(CONFIG*); extern DLL void config_print(CONFIG*);
DLL extern BOOL config_cmp(CONFIG*, CONFIG*); extern DLL BOOL config_cmp(CONFIG*, CONFIG*);
#endif /* !__CONFIG_H__ */ #endif /* !__CONFIG_H__ */

View File

@@ -17,8 +17,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 29.2 $ * @(#) $Revision: 29.3 $
* @(#) $Id: custom.c,v 29.2 2000/06/07 14:02:13 chongo Exp $ * @(#) $Id: custom.c,v 29.3 2001/03/17 21:31:47 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/custom.c,v $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/custom.c,v $
* *
* Under source code control: 1997/03/03 04:53:08 * Under source code control: 1997/03/03 04:53:08
@@ -34,11 +34,10 @@
#include "value.h" #include "value.h"
#include "custom.h" #include "custom.h"
#include <stdio.h>
#if defined(CUSTOM) #if defined(CUSTOM)
#include <stdio.h>
#include "calc.h" #include "calc.h"
#include "have_string.h" #include "have_string.h"

View File

@@ -18,8 +18,8 @@
# received a copy with calc; if not, write to Free Software Foundation, Inc. # received a copy with calc; if not, write to Free Software Foundation, Inc.
# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. # 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
# #
# @(#) $Revision: 29.3 $ # @(#) $Revision: 29.5 $
# @(#) $Id: Makefile,v 29.3 2000/12/17 12:28:15 chongo Exp $ # @(#) $Id: Makefile,v 29.5 2001/03/17 21:39:24 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
@@ -460,7 +460,7 @@ clean:
clobber: clobber:
-rm -f ${TARGETS} -rm -f ${TARGETS}
rm -f .all Makefile.tmp rm -f .all Makefile.tmp Makefile.bak
install: all install: all
-${Q}if [ ! -d ${TOPDIR} ]; then \ -${Q}if [ ! -d ${TOPDIR} ]; then \
@@ -537,11 +537,13 @@ install: all
# DO NOT DELETE THIS LINE # DO NOT DELETE THIS LINE
c_argv.o: ../alloc.h c_argv.o: ../alloc.h
c_argv.o: ../block.h c_argv.o: ../block.h
c_argv.o: ../byteswap.h c_argv.o: ../byteswap.h
c_argv.o: ../calc.h
c_argv.o: ../calcerr.h c_argv.o: ../calcerr.h
c_argv.o: ../calc.h
c_argv.o: c_argv.c
c_argv.o: ../cmath.h c_argv.o: ../cmath.h
c_argv.o: ../config.h c_argv.o: ../config.h
c_argv.o: ../custom.h c_argv.o: ../custom.h
@@ -557,16 +559,17 @@ c_argv.o: ../longbits.h
c_argv.o: ../md5.h c_argv.o: ../md5.h
c_argv.o: ../nametype.h c_argv.o: ../nametype.h
c_argv.o: ../qmath.h c_argv.o: ../qmath.h
c_argv.o: ../shs.h
c_argv.o: ../shs1.h c_argv.o: ../shs1.h
c_argv.o: ../shs.h
c_argv.o: ../string.h c_argv.o: ../string.h
c_argv.o: ../value.h c_argv.o: ../value.h
c_argv.o: ../win32dll.h
c_argv.o: ../zmath.h c_argv.o: ../zmath.h
c_argv.o: c_argv.c
c_devnull.o: ../alloc.h c_devnull.o: ../alloc.h
c_devnull.o: ../block.h c_devnull.o: ../block.h
c_devnull.o: ../byteswap.h c_devnull.o: ../byteswap.h
c_devnull.o: ../calcerr.h c_devnull.o: ../calcerr.h
c_devnull.o: c_devnull.c
c_devnull.o: ../cmath.h c_devnull.o: ../cmath.h
c_devnull.o: ../config.h c_devnull.o: ../config.h
c_devnull.o: ../custom.h c_devnull.o: ../custom.h
@@ -582,16 +585,17 @@ c_devnull.o: ../longbits.h
c_devnull.o: ../md5.h c_devnull.o: ../md5.h
c_devnull.o: ../nametype.h c_devnull.o: ../nametype.h
c_devnull.o: ../qmath.h c_devnull.o: ../qmath.h
c_devnull.o: ../shs.h
c_devnull.o: ../shs1.h c_devnull.o: ../shs1.h
c_devnull.o: ../shs.h
c_devnull.o: ../string.h c_devnull.o: ../string.h
c_devnull.o: ../value.h c_devnull.o: ../value.h
c_devnull.o: ../win32dll.h
c_devnull.o: ../zmath.h c_devnull.o: ../zmath.h
c_devnull.o: c_devnull.c
c_help.o: ../alloc.h c_help.o: ../alloc.h
c_help.o: ../block.h c_help.o: ../block.h
c_help.o: ../byteswap.h c_help.o: ../byteswap.h
c_help.o: ../calcerr.h c_help.o: ../calcerr.h
c_help.o: c_help.c
c_help.o: ../cmath.h c_help.o: ../cmath.h
c_help.o: ../config.h c_help.o: ../config.h
c_help.o: ../custom.h c_help.o: ../custom.h
@@ -607,18 +611,19 @@ c_help.o: ../longbits.h
c_help.o: ../md5.h c_help.o: ../md5.h
c_help.o: ../nametype.h c_help.o: ../nametype.h
c_help.o: ../qmath.h c_help.o: ../qmath.h
c_help.o: ../shs.h
c_help.o: ../shs1.h c_help.o: ../shs1.h
c_help.o: ../shs.h
c_help.o: ../string.h c_help.o: ../string.h
c_help.o: ../value.h c_help.o: ../value.h
c_help.o: ../win32dll.h
c_help.o: ../zmath.h c_help.o: ../zmath.h
c_help.o: c_help.c
c_pzasusb8.o: ../alloc.h c_pzasusb8.o: ../alloc.h
c_pzasusb8.o: ../block.h c_pzasusb8.o: ../block.h
c_pzasusb8.o: ../byteswap.h c_pzasusb8.o: ../byteswap.h
c_pzasusb8.o: ../calcerr.h c_pzasusb8.o: ../calcerr.h
c_pzasusb8.o: ../cmath.h c_pzasusb8.o: ../cmath.h
c_pzasusb8.o: ../config.h c_pzasusb8.o: ../config.h
c_pzasusb8.o: c_pzasusb8.c
c_pzasusb8.o: ../custom.h c_pzasusb8.o: ../custom.h
c_pzasusb8.o: ../endian_calc.h c_pzasusb8.o: ../endian_calc.h
c_pzasusb8.o: ../hash.h c_pzasusb8.o: ../hash.h
@@ -632,20 +637,21 @@ c_pzasusb8.o: ../longbits.h
c_pzasusb8.o: ../md5.h c_pzasusb8.o: ../md5.h
c_pzasusb8.o: ../nametype.h c_pzasusb8.o: ../nametype.h
c_pzasusb8.o: ../qmath.h c_pzasusb8.o: ../qmath.h
c_pzasusb8.o: ../shs.h
c_pzasusb8.o: ../shs1.h c_pzasusb8.o: ../shs1.h
c_pzasusb8.o: ../shs.h
c_pzasusb8.o: ../string.h c_pzasusb8.o: ../string.h
c_pzasusb8.o: ../value.h c_pzasusb8.o: ../value.h
c_pzasusb8.o: ../win32dll.h
c_pzasusb8.o: ../zmath.h c_pzasusb8.o: ../zmath.h
c_pzasusb8.o: c_pzasusb8.c
c_sysinfo.o: ../alloc.h c_sysinfo.o: ../alloc.h
c_sysinfo.o: ../block.h c_sysinfo.o: ../block.h
c_sysinfo.o: ../byteswap.h c_sysinfo.o: ../byteswap.h
c_sysinfo.o: ../calc.h
c_sysinfo.o: ../calcerr.h c_sysinfo.o: ../calcerr.h
c_sysinfo.o: ../calc.h
c_sysinfo.o: ../cmath.h c_sysinfo.o: ../cmath.h
c_sysinfo.o: ../conf.h c_sysinfo.o: ../conf.h
c_sysinfo.o: ../config.h c_sysinfo.o: ../config.h
c_sysinfo.o: c_sysinfo.c
c_sysinfo.o: ../custom.h c_sysinfo.o: ../custom.h
c_sysinfo.o: ../endian_calc.h c_sysinfo.o: ../endian_calc.h
c_sysinfo.o: ../fposval.h c_sysinfo.o: ../fposval.h
@@ -663,14 +669,14 @@ c_sysinfo.o: ../md5.h
c_sysinfo.o: ../nametype.h c_sysinfo.o: ../nametype.h
c_sysinfo.o: ../prime.h c_sysinfo.o: ../prime.h
c_sysinfo.o: ../qmath.h c_sysinfo.o: ../qmath.h
c_sysinfo.o: ../shs.h
c_sysinfo.o: ../shs1.h c_sysinfo.o: ../shs1.h
c_sysinfo.o: ../shs.h
c_sysinfo.o: ../string.h c_sysinfo.o: ../string.h
c_sysinfo.o: ../value.h c_sysinfo.o: ../value.h
c_sysinfo.o: ../win32dll.h
c_sysinfo.o: ../zmath.h c_sysinfo.o: ../zmath.h
c_sysinfo.o: ../zrand.h c_sysinfo.o: ../zrand.h
c_sysinfo.o: ../zrandom.h c_sysinfo.o: ../zrandom.h
c_sysinfo.o: c_sysinfo.c
custtbl.o: ../alloc.h custtbl.o: ../alloc.h
custtbl.o: ../block.h custtbl.o: ../block.h
custtbl.o: ../byteswap.h custtbl.o: ../byteswap.h
@@ -678,6 +684,7 @@ custtbl.o: ../calcerr.h
custtbl.o: ../cmath.h custtbl.o: ../cmath.h
custtbl.o: ../config.h custtbl.o: ../config.h
custtbl.o: ../custom.h custtbl.o: ../custom.h
custtbl.o: custtbl.c
custtbl.o: ../endian_calc.h custtbl.o: ../endian_calc.h
custtbl.o: ../hash.h custtbl.o: ../hash.h
custtbl.o: ../have_const.h custtbl.o: ../have_const.h
@@ -690,9 +697,9 @@ custtbl.o: ../longbits.h
custtbl.o: ../md5.h custtbl.o: ../md5.h
custtbl.o: ../nametype.h custtbl.o: ../nametype.h
custtbl.o: ../qmath.h custtbl.o: ../qmath.h
custtbl.o: ../shs.h
custtbl.o: ../shs1.h custtbl.o: ../shs1.h
custtbl.o: ../shs.h
custtbl.o: ../string.h custtbl.o: ../string.h
custtbl.o: ../value.h custtbl.o: ../value.h
custtbl.o: ../win32dll.h
custtbl.o: ../zmath.h custtbl.o: ../zmath.h
custtbl.o: custtbl.c

View File

@@ -17,8 +17,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 29.2 $ * @(#) $Revision: 29.3 $
* @(#) $Id: endian.c,v 29.2 2000/06/07 14:02:13 chongo Exp $ * @(#) $Id: endian.c,v 29.3 2001/03/18 02:59:42 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/endian.c,v $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/endian.c,v $
* *
* Under source code control: 1993/11/15 04:32:58 * Under source code control: 1993/11/15 04:32:58
@@ -48,8 +48,10 @@ char byte[8] = { (char)0x12, (char)0x36, (char)0x48, (char)0x59,
int int
main(void) main(void)
{ {
#if !defined(LITTLE_ENDIAN) && !defined(BIG_ENDIAN)
/* pointers into the byte order array */ /* pointers into the byte order array */
int *intp = (int *)byte; int *intp = (int *)byte;
#endif
#if defined(DEBUG) #if defined(DEBUG)
short *shortp = (short *)byte; short *shortp = (short *)byte;
long *longp = (long *)byte; long *longp = (long *)byte;
@@ -69,6 +71,11 @@ main(void)
printf("#define BIG_ENDIAN\t4321\n"); printf("#define BIG_ENDIAN\t4321\n");
printf("#define LITTLE_ENDIAN\t1234\n"); printf("#define LITTLE_ENDIAN\t1234\n");
#if defined(LITTLE_ENDIAN)
printf("#define CALC_BYTE_ORDER\tLITTLE_ENDIAN\n");
#elif defined(BIG_ENDIAN)
printf("#define CALC_BYTE_ORDER\tBIG_ENDIAN\n");
#else
/* Determine byte order */ /* Determine byte order */
if (intp[0] == 0x12364859) { if (intp[0] == 0x12364859) {
/* Most Significant Byte first */ /* Most Significant Byte first */
@@ -81,6 +88,7 @@ main(void)
"Unknown int Byte Order, set CALC_BYTE_ORDER in Makefile\n"); "Unknown int Byte Order, set CALC_BYTE_ORDER in Makefile\n");
exit(1); exit(1);
} }
#endif
/* exit(0); */ /* exit(0); */
return 0; return 0;
} }

12
file.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.5 $ * @(#) $Revision: 29.6 $
* @(#) $Id: file.c,v 29.5 2001/02/25 22:07:36 chongo Exp $ * @(#) $Id: file.c,v 29.6 2001/03/17 21:31:47 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/file.c,v $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/file.c,v $
* *
* Under source code control: 1991/07/20 00:21:56 * Under source code control: 1991/07/20 00:21:56
@@ -37,7 +37,7 @@
#include <stdlib.h> #include <stdlib.h>
#include "have_unistd.h" #include "have_unistd.h"
#if defined(HAVE_UNISTD_H) #if defined(HAVE_UNISTD_H)
#include <unistd.h> # include <unistd.h>
#endif /* HAVE_UNISTD_H */ #endif /* HAVE_UNISTD_H */
#include <ctype.h> #include <ctype.h>
#include "calc.h" #include "calc.h"
@@ -48,6 +48,10 @@
#include "file.h" #include "file.h"
#include "calcerr.h" #include "calcerr.h"
#if defined(_WIN32)
# include <io.h>
#endif
#define READSIZE 1024 /* buffer size for reading */ #define READSIZE 1024 /* buffer size for reading */
/* /*
@@ -540,6 +544,7 @@ flushid(FILEID id)
} }
#if !defined(_WIN32)
int int
flushall(void) flushall(void)
{ {
@@ -555,6 +560,7 @@ flushall(void)
} }
return err; return err;
} }
#endif /* Windoz free systems */
/* /*

View File

@@ -17,8 +17,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 29.5 $ * @(#) $Revision: 29.6 $
* @(#) $Id: fposval.c,v 29.5 2001/02/25 21:01:34 chongo Exp $ * @(#) $Id: fposval.c,v 29.6 2001/03/18 03:01:41 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/fposval.c,v $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/fposval.c,v $
* *
* Under source code control: 1994/11/05 03:19:52 * Under source code control: 1994/11/05 03:19:52
@@ -87,7 +87,11 @@ main(int argc, char **argv)
#if defined(HAVE_FPOS_POS) #if defined(HAVE_FPOS_POS)
fileposlen = FPOS_POS_BITS; fileposlen = FPOS_POS_BITS;
#else /* ! HAVE_FPOS_POS */ #else /* ! HAVE_FPOS_POS */
# if defined(FPOS_BITS)
fileposlen = FPOS_BITS;
# else
fileposlen = sizeof(FILEPOS)*8; fileposlen = sizeof(FILEPOS)*8;
# endif
#endif /* ! HAVE_FPOS_POS */ #endif /* ! HAVE_FPOS_POS */
printf("#undef FILEPOS_BITS\n"); printf("#undef FILEPOS_BITS\n");
printf("#define FILEPOS_BITS %d\n", fileposlen); printf("#define FILEPOS_BITS %d\n", fileposlen);
@@ -127,7 +131,11 @@ main(int argc, char **argv)
/* /*
* print the stat file size information * print the stat file size information
*/ */
#if defined(OFF_T_BITS)
stsizelen = OFF_T_BITS;
#else
stsizelen = sizeof(buf.st_size)*8; stsizelen = sizeof(buf.st_size)*8;
#endif
printf("#undef OFF_T_BITS\n"); printf("#undef OFF_T_BITS\n");
printf("#define OFF_T_BITS %d\n", stsizelen); printf("#define OFF_T_BITS %d\n", stsizelen);
#if CALC_BYTE_ORDER == BIG_ENDIAN #if CALC_BYTE_ORDER == BIG_ENDIAN
@@ -161,7 +169,7 @@ main(int argc, char **argv)
* systems, a off_t is not a scalar hince we must memcpy. * systems, a off_t is not a scalar hince we must memcpy.
*/ */
printf("#define SWAP_HALF_IN_OFF_T(dest, src)\t%s%d%s\n", printf("#define SWAP_HALF_IN_OFF_T(dest, src)\t%s%d%s\n",
"memcpy((void *)(dest), (void *)(src), sizeof(",stsizelen,"))"); "memcpy((void *)(dest), (void *)(src), ", stsizelen/8, ")");
#endif /* HAVE_OFF_T_SCALAR */ #endif /* HAVE_OFF_T_SCALAR */
#endif /* CALC_BYTE_ORDER == BIG_ENDIAN */ #endif /* CALC_BYTE_ORDER == BIG_ENDIAN */
putchar('\n'); putchar('\n');
@@ -169,7 +177,11 @@ main(int argc, char **argv)
/* /*
* print the dev_t size * print the dev_t size
*/ */
#if defined(DEV_BITS)
devlen = DEV_BITS;
#else
devlen = sizeof(buf.st_dev)*8; devlen = sizeof(buf.st_dev)*8;
#endif
printf("#undef DEV_BITS\n"); printf("#undef DEV_BITS\n");
printf("#define DEV_BITS %d\n", devlen); printf("#define DEV_BITS %d\n", devlen);
#if CALC_BYTE_ORDER == BIG_ENDIAN #if CALC_BYTE_ORDER == BIG_ENDIAN
@@ -198,14 +210,18 @@ main(int argc, char **argv)
* systems, a DEV is not a scalar hince we must memcpy. * systems, a DEV is not a scalar hince we must memcpy.
*/ */
printf("#define SWAP_HALF_IN_DEV(dest, src)\t%s%d%s\n", printf("#define SWAP_HALF_IN_DEV(dest, src)\t%s%d%s\n",
"memcpy((void *)(dest), (void *)(src), sizeof(",devlen,"))"); "memcpy((void *)(dest), (void *)(src), ", devlen/8, ")");
#endif /* CALC_BYTE_ORDER == BIG_ENDIAN */ #endif /* CALC_BYTE_ORDER == BIG_ENDIAN */
putchar('\n'); putchar('\n');
/* /*
* print the ino_t size * print the ino_t size
*/ */
#if defined(INODE_BITS)
inodelen = INODE_BITS;
#else
inodelen = sizeof(buf.st_ino)*8; inodelen = sizeof(buf.st_ino)*8;
#endif
printf("#undef INODE_BITS\n"); printf("#undef INODE_BITS\n");
printf("#define INODE_BITS %d\n", inodelen); printf("#define INODE_BITS %d\n", inodelen);
#if CALC_BYTE_ORDER == BIG_ENDIAN #if CALC_BYTE_ORDER == BIG_ENDIAN
@@ -234,7 +250,7 @@ main(int argc, char **argv)
* systems, a INODE is not a scalar hince we must memcpy. * systems, a INODE is not a scalar hince we must memcpy.
*/ */
printf("#define SWAP_HALF_IN_INODE(dest, src)\t%s%d%s\n", printf("#define SWAP_HALF_IN_INODE(dest, src)\t%s%d%s\n",
"memcpy((void *)(dest), (void *)(src), sizeof(",inodelen,"))"); "memcpy((void *)(dest), (void *)(src), ", inodelen/8, ")");
#endif /* CALC_BYTE_ORDER == BIG_ENDIAN */ #endif /* CALC_BYTE_ORDER == BIG_ENDIAN */
/* exit(0); */ /* exit(0); */
return 0; return 0;

23
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.6 $ * @(#) $Revision: 29.7 $
* @(#) $Id: func.c,v 29.6 2001/02/25 22:07:36 chongo Exp $ * @(#) $Id: func.c,v 29.7 2001/03/17 21:31:47 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
@@ -36,9 +36,9 @@
#include <errno.h> #include <errno.h>
#if defined(_WIN32) #if defined(_WIN32)
#include <io.h> # include <io.h>
#define _access access # define _access access
#endif /* Windoz */ #endif
#if defined(FUNCLIST) #if defined(FUNCLIST)
@@ -6894,7 +6894,16 @@ f_system(VALUE *vp)
if (conf->calc_debug & CALCDBG_SYSTEM) { if (conf->calc_debug & CALCDBG_SYSTEM) {
printf("%s\n", vp->v_str->s_str); printf("%s\n", vp->v_str->s_str);
} }
result.v_num = itoq((long) system(vp->v_str->s_str)); #if defined(_WIN32)
/* if the execute length is 0 then use NULL in system call */
if (strlen(vp->v_str->s_str) == 0) {
result.v_num = itoq((long)system(NULL));
} else {
result.v_num = itoq((long)system(vp->v_str->s_str));
}
#else /* Windoz free systems */
result.v_num = itoq((long)system(vp->v_str->s_str));
#endif /* Windoz free systems */
return result; return result;
} }
@@ -6907,6 +6916,7 @@ f_sleep(int count, VALUE **vals)
NUMBER *q1, *q2; NUMBER *q1, *q2;
res.v_type = V_NULL; res.v_type = V_NULL;
#if !defined(_WIN32)
if (count > 0) { if (count > 0) {
if (vals[0]->v_type != V_NUM || qisneg(vals[0]->v_num)) if (vals[0]->v_type != V_NUM || qisneg(vals[0]->v_num))
return error_value(E_SLEEP); return error_value(E_SLEEP);
@@ -6937,6 +6947,7 @@ f_sleep(int count, VALUE **vals)
res.v_type = V_NUM; res.v_type = V_NUM;
res.v_num = itoq(time); res.v_num = itoq(time);
} }
#endif /* Windoz free systems */
return res; return res;
} }

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.1 $ * @(#) $Revision: 29.2 $
* @(#) $Id: have_fpos_pos.c,v 29.1 2000/12/17 11:25:22 chongo Exp $ * @(#) $Id: have_fpos_pos.c,v 29.2 2001/03/18 03:00:11 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/have_fpos_pos.c,v $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/have_fpos_pos.c,v $
* *
* Under source code control: 2000/12/17 01:23 * Under source code control: 2000/12/17 01:23
@@ -51,8 +51,17 @@ main(void)
printf("#define HAVE_FPOS_POS 1 /* yes */\n\n"); printf("#define HAVE_FPOS_POS 1 /* yes */\n\n");
/* determine __pos element size */ /* determine __pos element size */
printf("#undef FPOS_POS_BITS\n"); printf("#undef FPOS_POS_BITS\t/* no */\n");
# if defined(FPOS_POS_BITS)
printf("#define FPOS_POS_BITS %d\n\n", FPOS_POS_BITS);
# else
printf("#define FPOS_POS_BITS %d\n\n", sizeof(pos.__pos)*8); printf("#define FPOS_POS_BITS %d\n\n", sizeof(pos.__pos)*8);
# endif
#else
/* we have no __pos element */
printf("#undef HAVE_FPOS_POS\t/* no */\n");
printf("#undef FPOS_POS_BITS\n");
#endif #endif
/* exit(0); */ /* exit(0); */
return 0; return 0;

9
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.5 $ * @(#) $Revision: 29.6 $
* @(#) $Id: help.c,v 29.5 2001/02/25 22:07:36 chongo Exp $ * @(#) $Id: help.c,v 29.6 2001/03/17 21:31:47 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
@@ -42,6 +42,11 @@
#include <unistd.h> #include <unistd.h>
#endif #endif
#if defined(_WIN32)
# define popen _popen
# define pclose _pclose
#endif
/* /*
* some help topics are symbols, so we alias them to nice filenames * some help topics are symbols, so we alias them to nice filenames

8
hist.c
View File

@@ -17,8 +17,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 29.2 $ * @(#) $Revision: 29.3 $
* @(#) $Id: hist.c,v 29.2 2000/06/07 14:02:13 chongo Exp $ * @(#) $Id: hist.c,v 29.3 2001/03/17 21:31:47 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/hist.c,v $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/hist.c,v $
* *
* Under source code control: 1993/05/02 20:09:19 * Under source code control: 1993/05/02 20:09:19
@@ -40,7 +40,9 @@
#include <stdio.h> #include <stdio.h>
#include <ctype.h> #include <ctype.h>
#include <pwd.h> #if !defined(_WIN32)
# include <pwd.h>
#endif
#include "have_unistd.h" #include "have_unistd.h"
#if defined(HAVE_UNISTD_H) #if defined(HAVE_UNISTD_H)

12
hist.h
View File

@@ -17,8 +17,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 29.2 $ * @(#) $Revision: 29.3 $
* @(#) $Id: hist.h,v 29.2 2000/06/07 14:02:13 chongo Exp $ * @(#) $Id: hist.h,v 29.3 2001/03/17 21:31:47 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/hist.h,v $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/hist.h,v $
* *
* Under source code control: 1993/05/02 20:09:20 * Under source code control: 1993/05/02 20:09:20
@@ -64,10 +64,10 @@
#define HIST_NOTTY 3 /* terminal modes could not be set */ #define HIST_NOTTY 3 /* terminal modes could not be set */
extern int hist_init(char *filename); extern DLL int hist_init(char *filename);
extern void hist_term(void); extern DLL void hist_term(void);
extern int hist_getline(char *prompt, char *buf, int len); extern DLL int hist_getline(char *prompt, char *buf, int len);
extern void hist_saveline(char *line, int len); extern DLL void hist_saveline(char *line, int len);
#endif /* !__HIST_H__ */ #endif /* !__HIST_H__ */

42
input.c
View File

@@ -17,8 +17,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 29.4 $ * @(#) $Revision: 29.5 $
* @(#) $Id: input.c,v 29.4 2001/02/25 22:07:36 chongo Exp $ * @(#) $Id: input.c,v 29.5 2001/03/17 21:31:47 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/input.c,v $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/input.c,v $
* *
* Under source code control: 1990/02/15 01:48:16 * Under source code control: 1990/02/15 01:48:16
@@ -36,8 +36,8 @@
#include <stdio.h> #include <stdio.h>
#include <ctype.h> #include <ctype.h>
#if !defined(_WIN32) #if !defined(_WIN32)
#include <pwd.h> # include <pwd.h>
#endif /* Windoz free systems */ #endif
#include <sys/types.h> #include <sys/types.h>
#include <sys/stat.h> #include <sys/stat.h>
@@ -259,7 +259,7 @@ opensearchfile(char *name, char *pathlist, char *extension, int rd_once)
static char * static char *
homeexpand(char *name) homeexpand(char *name)
{ {
#if defined (_WIN32) #if defined(_WIN32)
return NULL; return NULL;
@@ -804,6 +804,15 @@ runrcfiles(void)
* This function returns the index of the readset element that matches * This function returns the index of the readset element that matches
* a given device/inode, -1 otherwise. * a given device/inode, -1 otherwise.
* *
*
* WIN32 NOTE:
*
* This function does not work under WIN32. The sbuf->st_ino is always
* zero because the FAT and NTFS filesystems do not support inodes.
* They also don't support links, which is why you need this function
* under UNIX. For WIN32, use _fullpath() to determine if you have
* already opened a file.
*
* given: * given:
* sbuf stat of the inode in question * sbuf stat of the inode in question
*/ */
@@ -811,6 +820,9 @@ static int
isinoderead(struct stat *sbuf) isinoderead(struct stat *sbuf)
{ {
int i; int i;
#if defined(_WIN32)
char fullpathname[_MAX_PATH];
#endif
/* deal with the empty case */ /* deal with the empty case */
if (readset == NULL || maxreadset <= 0) { if (readset == NULL || maxreadset <= 0) {
@@ -820,12 +832,22 @@ isinoderead(struct stat *sbuf)
/* scan the entire readset */ /* scan the entire readset */
for (i=0; i < maxreadset; ++i) { for (i=0; i < maxreadset; ++i) {
#if defined(_WIN32)
if (readset[i].active &&
strcmp(readset[i].path,
_fullpath(fullpathname,cip->i_name,
_MAX_PATH)) == 0) {
/* found a match */
return i;
}
#else /* Windoz free systems */
if (readset[i].active && if (readset[i].active &&
sbuf->st_dev == readset[i].inode.st_dev && sbuf->st_dev == readset[i].inode.st_dev &&
sbuf->st_ino == readset[i].inode.st_ino) { sbuf->st_ino == readset[i].inode.st_ino) {
/* found a match */ /* found a match */
return i; return i;
} }
#endif /* Windoz free systems */
} }
/* no match found */ /* no match found */
@@ -932,11 +954,21 @@ addreadset(char *name, char *path, struct stat *sbuf)
return -1; return -1;
} }
strcpy(readset[ret].name, name); strcpy(readset[ret].name, name);
#if defined(_WIN32)
/*
* For WIN32, _fullpath expands the path to a fully qualified
* path name, which under WIN32 FAT and NTFS is unique, just
* like UNIX inodes. _fullpath also allocated the memory for
* this new longer path name.
*/
readset[ret].path = _fullpath(NULL, path, 0);
#else /* Windoz free systems */
readset[ret].path = (char *)malloc(strlen(path)+1); readset[ret].path = (char *)malloc(strlen(path)+1);
if (readset[ret].path == NULL) { if (readset[ret].path == NULL) {
return -1; return -1;
} }
strcpy(readset[ret].path, path); strcpy(readset[ret].path, path);
#endif /* Windoz free systems */
readset[ret].inode = *sbuf; readset[ret].inode = *sbuf;
readset[ret].active = 1; readset[ret].active = 1;

View File

@@ -17,8 +17,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 29.5 $ * @(#) $Revision: 29.6 $
* @(#) $Id: lib_calc.c,v 29.5 2001/02/25 22:07:36 chongo Exp $ * @(#) $Id: lib_calc.c,v 29.6 2001/03/17 21:31:47 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/lib_calc.c,v $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/lib_calc.c,v $
* *
* Under source code control: 1996/06/17 18:06:19 * Under source code control: 1996/06/17 18:06:19
@@ -32,7 +32,10 @@
#include <stdio.h> #include <stdio.h>
#include <setjmp.h> #include <setjmp.h>
#include <signal.h> #include <signal.h>
#include <pwd.h>
#if !defined(_WIN32)
# include <pwd.h>
#endif
#include "calc.h" #include "calc.h"
#include "zmath.h" #include "zmath.h"
@@ -63,7 +66,7 @@
# include <termios.h> # include <termios.h>
typedef struct termios ttystruct; typedef struct termios ttystruct;
#elif defined(USE_TERMIOS) #elif defined(USE_TERMIO)
# include <termio.h> # include <termio.h>
typedef struct termio ttystruct; typedef struct termio ttystruct;
@@ -73,12 +76,20 @@ typedef struct termio ttystruct;
# include <sys/ioctl.h> # include <sys/ioctl.h>
typedef struct sgttyb ttystruct; typedef struct sgttyb ttystruct;
#elif !defined(_WIN32) #else
typedef struct {int fd;} ttystruct;
#endif
#if !defined(_WIN32)
# if !defined(USE_SGTTY) && !defined (USE_TERMIOS) && !defined(USE_TERMIO)
-=*#*=- A Windoz free system without termio, termios or sgtty!!! -=*#*=- -=*#*=- A Windoz free system without termio, termios or sgtty!!! -=*#*=-
-=*#*=- We do not know how to compile for such a host, sorry!!!! -=*#*=- -=*#*=- We do not know how to compile for such a host, sorry!!!! -=*#*=-
#endif # endif
#endif /* Windoz */
/* /*
* in case we do not have certain .h files * in case we do not have certain .h files
@@ -199,7 +210,7 @@ libcalc_call_me_first(void)
*/ */
#if !defined(_WIN32) #if !defined(_WIN32)
(void) signal(SIGPIPE, SIG_IGN); (void) signal(SIGPIPE, SIG_IGN);
#endif /* Windoz free systems */ #endif
/* /*
* determine the basename * determine the basename
@@ -382,7 +393,7 @@ initenv(void)
{ {
#if !defined(_WIN32) #if !defined(_WIN32)
struct passwd *ent; /* our password entry */ struct passwd *ent; /* our password entry */
#endif /* Windoz free systems */ #endif
char *c; char *c;
/* determine the $CALCPATH value */ /* determine the $CALCPATH value */
@@ -742,7 +753,7 @@ calc_tty(int fd)
printf("calc_tty: stty -ECHO -ECHOE -ECHOK -ICANON +ISTRIP " printf("calc_tty: stty -ECHO -ECHOE -ECHOK -ICANON +ISTRIP "
"VMIN=1 VTIME=0: fd %d\n", fd); "VMIN=1 VTIME=0: fd %d\n", fd);
#else /* assume USE_SGTTY */ #elif defined (USE_SGTTY)/* assume USE_SGTTY */
/* /*
* assume USE_SGTTY tty state method * assume USE_SGTTY tty state method
@@ -768,6 +779,10 @@ calc_tty(int fd)
if (conf->calc_debug & CALCDBG_TTY) if (conf->calc_debug & CALCDBG_TTY)
printf("calc_tty: stty -ECHO -ECHOE -ECHOK -ICANON +ISTRIP " printf("calc_tty: stty -ECHO -ECHOE -ECHOK -ICANON +ISTRIP "
"VMIN=1 VTIME=0: fd %d\n", fd); "VMIN=1 VTIME=0: fd %d\n", fd);
#else /* Using none of the above */
fd_cur[slot] = fd_orig[slot];
#endif #endif
/* /*
@@ -833,7 +848,7 @@ orig_tty(int fd)
if (conf->calc_debug & CALCDBG_TTY) if (conf->calc_debug & CALCDBG_TTY)
printf("orig_tty: TCSETAW restored fd %d\n", fd); printf("orig_tty: TCSETAW restored fd %d\n", fd);
#else /* assume USE_SGTTY */ #elif defined (USE_SGTTY)/* assume USE_SGTTY */
/* /*
* assume USE_SGTTY tty state method * assume USE_SGTTY tty state method
@@ -841,6 +856,12 @@ orig_tty(int fd)
(void) tcsetattr(fd, TCSANOW, fd_orig+slot); (void) tcsetattr(fd, TCSANOW, fd_orig+slot);
if (conf->calc_debug & CALCDBG_TTY) if (conf->calc_debug & CALCDBG_TTY)
printf("orig_tty: TCSANOW restored fd %d\n", fd); printf("orig_tty: TCSANOW restored fd %d\n", fd);
#else /* nothing assigned */
if (conf->calc_debug & CALCDBG_TTY)
printf ("orig_tty: nothing restored to fd %d\n", fd);
#endif #endif
/* /*

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: math_error.h,v 29.2 2000/06/07 14:02:13 chongo Exp $ * @(#) $Id: math_error.h,v 29.3 2001/03/17 21:31:47 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/math_error.h,v $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/math_error.h,v $
* *
* Under source code control: 1997/03/23 18:37:10 * Under source code control: 1997/03/23 18:37:10
@@ -33,10 +33,13 @@
#define __MATH_ERROR_H__ #define __MATH_ERROR_H__
#include "win32dll.h"
/* /*
* Global data definitions. * Global data definitions.
*/ */
extern jmp_buf jmpbuf; /* for errors */ extern DLL jmp_buf jmpbuf; /* for errors */
#endif /* !__MATH_ERROR_H__ */ #endif /* !__MATH_ERROR_H__ */

View File

@@ -17,8 +17,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 29.3 $ * @(#) $Revision: 29.4 $
* @(#) $Id: opcodes.h,v 29.3 2001/02/25 22:07:36 chongo Exp $ * @(#) $Id: opcodes.h,v 29.4 2001/03/17 21:31:47 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/opcodes.h,v $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/opcodes.h,v $
* *
* Under source code control: 1990/02/15 01:48:35 * Under source code control: 1990/02/15 01:48:35
@@ -32,18 +32,7 @@
#define __OPCODES_H__ #define __OPCODES_H__
#if defined (_WIN32) #include "win32dll.h"
#ifdef _EXPORTING
#define DLL __declspec(dllexport)
#else
#define DLL __declspec(dllimport)
#endif
#else /* Windoz free systems */
#define DLL
#endif /* Windoz free systems */
/* /*
@@ -188,8 +177,8 @@
/* /*
* external declarations * external declarations
*/ */
extern char *funcname; /* function being executed */ extern DLL char *funcname; /* function being executed */
extern long funcline; /* function line being executed */ extern DLL long funcline; /* function line being executed */
#endif /* !__OPCODES_H__ */ #endif /* !__OPCODES_H__ */

View File

@@ -17,8 +17,8 @@
# received a copy with calc; if not, write to Free Software Foundation, Inc. # received a copy with calc; if not, write to Free Software Foundation, Inc.
# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. # 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
# #
# @(#) $Revision: 29.3 $ # @(#) $Revision: 29.4 $
# @(#) $Id: Makefile,v 29.3 2000/12/17 12:28:31 chongo Exp $ # @(#) $Id: Makefile,v 29.4 2001/03/17 21:37:54 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
@@ -446,11 +446,12 @@ install: all
# DO NOT DELETE THIS LINE # DO NOT DELETE THIS LINE
many_random.o: ../alloc.h many_random.o: ../alloc.h
many_random.o: ../block.h many_random.o: ../block.h
many_random.o: ../byteswap.h many_random.o: ../byteswap.h
many_random.o: ../calc.h
many_random.o: ../calcerr.h many_random.o: ../calcerr.h
many_random.o: ../calc.h
many_random.o: ../cmath.h many_random.o: ../cmath.h
many_random.o: ../config.h many_random.o: ../config.h
many_random.o: ../endian_calc.h many_random.o: ../endian_calc.h
@@ -463,21 +464,22 @@ many_random.o: ../have_stdlib.h
many_random.o: ../have_string.h many_random.o: ../have_string.h
many_random.o: ../lib_util.h many_random.o: ../lib_util.h
many_random.o: ../longbits.h many_random.o: ../longbits.h
many_random.o: many_random.c
many_random.o: ../md5.h many_random.o: ../md5.h
many_random.o: ../nametype.h many_random.o: ../nametype.h
many_random.o: ../qmath.h many_random.o: ../qmath.h
many_random.o: ../shs.h
many_random.o: ../shs1.h many_random.o: ../shs1.h
many_random.o: ../shs.h
many_random.o: ../string.h many_random.o: ../string.h
many_random.o: ../value.h many_random.o: ../value.h
many_random.o: ../win32dll.h
many_random.o: ../zmath.h many_random.o: ../zmath.h
many_random.o: ../zrandom.h many_random.o: ../zrandom.h
many_random.o: many_random.c
test_random.o: ../alloc.h test_random.o: ../alloc.h
test_random.o: ../block.h test_random.o: ../block.h
test_random.o: ../byteswap.h test_random.o: ../byteswap.h
test_random.o: ../calc.h
test_random.o: ../calcerr.h test_random.o: ../calcerr.h
test_random.o: ../calc.h
test_random.o: ../cmath.h test_random.o: ../cmath.h
test_random.o: ../config.h test_random.o: ../config.h
test_random.o: ../endian_calc.h test_random.o: ../endian_calc.h
@@ -493,10 +495,11 @@ test_random.o: ../longbits.h
test_random.o: ../md5.h test_random.o: ../md5.h
test_random.o: ../nametype.h test_random.o: ../nametype.h
test_random.o: ../qmath.h test_random.o: ../qmath.h
test_random.o: ../shs.h
test_random.o: ../shs1.h test_random.o: ../shs1.h
test_random.o: ../shs.h
test_random.o: ../string.h test_random.o: ../string.h
test_random.o: test_random.c
test_random.o: ../value.h test_random.o: ../value.h
test_random.o: ../win32dll.h
test_random.o: ../zmath.h test_random.o: ../zmath.h
test_random.o: ../zrandom.h test_random.o: ../zrandom.h
test_random.o: test_random.c

18
seed.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.3 $ * @(#) $Revision: 29.4 $
* @(#) $Id: seed.c,v 29.3 2001/02/25 22:07:36 chongo Exp $ * @(#) $Id: seed.c,v 29.4 2001/03/17 21:31:47 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/seed.c,v $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/seed.c,v $
* *
* Under source code control: 1999/10/03 10:06:53 * Under source code control: 1999/10/03 10:06:53
@@ -47,9 +47,9 @@
#endif #endif
#if defined(_WIN32) #if defined(_WIN32)
#include <process.h> # include <process.h>
#define pid_t int # define pid_t int
#endif /* Windoz */ #endif
/* /*
* PORTING NOTE: * PORTING NOTE:
@@ -75,8 +75,8 @@
#include <sys/times.h> #include <sys/times.h>
#endif #endif
#if !defined(_WIN32) #if !defined(_WIN32)
#include <sys/resource.h> # include <sys/resource.h>
#endif /* Windoz free systems */ #endif
#include <setjmp.h> #include <setjmp.h>
#include "qmath.h" #include "qmath.h"
#include "longbits.h" #include "longbits.h"
@@ -308,7 +308,9 @@ pseudo_seed(void)
struct timeval tp; /* time of day */ struct timeval tp; /* time of day */
#endif #endif
pid_t getpid; /* process ID */ pid_t getpid; /* process ID */
#if !defined(_WIN32)
pid_t getppid; /* parent process ID */ pid_t getppid; /* parent process ID */
#endif
#if defined(HAVE_UID_T) #if defined(HAVE_UID_T)
uid_t getuid; /* real user ID */ uid_t getuid; /* real user ID */
uid_t geteuid; /* effective user ID */ uid_t geteuid; /* effective user ID */
@@ -387,7 +389,9 @@ pseudo_seed(void)
(void) gettimeofday(&sdata.tp, NULL); (void) gettimeofday(&sdata.tp, NULL);
#endif #endif
sdata.getpid = getpid(); sdata.getpid = getpid();
#if !defined(_WIN32)
sdata.getppid = getppid(); sdata.getppid = getppid();
#endif
#if defined(HAVE_UID_T) #if defined(HAVE_UID_T)
sdata.getuid = getuid(); sdata.getuid = getuid();
sdata.geteuid = geteuid(); sdata.geteuid = geteuid();

355
value.h
View File

@@ -17,8 +17,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 29.4 $ * @(#) $Revision: 29.5 $
* @(#) $Id: value.h,v 29.4 2001/02/25 22:07:36 chongo Exp $ * @(#) $Id: value.h,v 29.5 2001/03/17 21:31:47 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/value.h,v $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/value.h,v $
* *
* Under source code control: 1993/07/30 19:42:47 * Under source code control: 1993/07/30 19:42:47
@@ -32,20 +32,7 @@
#define __VALUE_H__ #define __VALUE_H__
#if defined (_WIN32) #include "win32dll.h"
#ifdef _EXPORTING
#define DLL __declspec(dllexport)
#else
#define DLL __declspec(dllimport)
#endif
#else /* Windoz free systems */
#define DLL
#endif /* Windoz free systems */
#include "cmath.h" #include "cmath.h"
#include "config.h" #include "config.h"
#include "shs.h" #include "shs.h"
@@ -201,59 +188,59 @@ struct value {
/* /*
* value functions * value functions
*/ */
DLL extern void freevalue(VALUE *vp); extern DLL void freevalue(VALUE *vp);
DLL extern void copyvalue(VALUE *vp, VALUE *vres); extern DLL void copyvalue(VALUE *vp, VALUE *vres);
DLL extern void negvalue(VALUE *vp, VALUE *vres); extern DLL void negvalue(VALUE *vp, VALUE *vres);
DLL extern void addvalue(VALUE *v1, VALUE *v2, VALUE *vres); extern DLL void addvalue(VALUE *v1, VALUE *v2, VALUE *vres);
DLL extern void subvalue(VALUE *v1, VALUE *v2, VALUE *vres); extern DLL void subvalue(VALUE *v1, VALUE *v2, VALUE *vres);
DLL extern void mulvalue(VALUE *v1, VALUE *v2, VALUE *vres); extern DLL void mulvalue(VALUE *v1, VALUE *v2, VALUE *vres);
DLL extern void orvalue(VALUE *v1, VALUE *v2, VALUE *vres); extern DLL void orvalue(VALUE *v1, VALUE *v2, VALUE *vres);
DLL extern void andvalue(VALUE *v1, VALUE *v2, VALUE *vres); extern DLL void andvalue(VALUE *v1, VALUE *v2, VALUE *vres);
DLL extern void compvalue(VALUE *vp, VALUE *vres); extern DLL void compvalue(VALUE *vp, VALUE *vres);
DLL extern void xorvalue(VALUE *v1, VALUE *v2, VALUE *vres); extern DLL void xorvalue(VALUE *v1, VALUE *v2, VALUE *vres);
DLL extern void squarevalue(VALUE *vp, VALUE *vres); extern DLL void squarevalue(VALUE *vp, VALUE *vres);
DLL extern void invertvalue(VALUE *vp, VALUE *vres); extern DLL void invertvalue(VALUE *vp, VALUE *vres);
DLL extern void roundvalue(VALUE *v1, VALUE *v2, VALUE *v3, VALUE *vres); extern DLL void roundvalue(VALUE *v1, VALUE *v2, VALUE *v3, VALUE *vres);
DLL extern void broundvalue(VALUE *v1, VALUE *v2, VALUE *v3, VALUE *vres); extern DLL void broundvalue(VALUE *v1, VALUE *v2, VALUE *v3, VALUE *vres);
DLL extern void setminusvalue(VALUE *, VALUE *, VALUE *); extern DLL void setminusvalue(VALUE *, VALUE *, VALUE *);
DLL extern void backslashvalue(VALUE *, VALUE *); extern DLL void backslashvalue(VALUE *, VALUE *);
DLL extern void contentvalue(VALUE *, VALUE *); extern DLL void contentvalue(VALUE *, VALUE *);
DLL extern void hashopvalue(VALUE *, VALUE *, VALUE *); extern DLL void hashopvalue(VALUE *, VALUE *, VALUE *);
DLL extern void apprvalue(VALUE *v1, VALUE *v2, VALUE *v3, VALUE *vres); extern DLL void apprvalue(VALUE *v1, VALUE *v2, VALUE *v3, VALUE *vres);
DLL extern void intvalue(VALUE *vp, VALUE *vres); extern DLL void intvalue(VALUE *vp, VALUE *vres);
DLL extern void fracvalue(VALUE *vp, VALUE *vres); extern DLL void fracvalue(VALUE *vp, VALUE *vres);
DLL extern void incvalue(VALUE *vp, VALUE *vres); extern DLL void incvalue(VALUE *vp, VALUE *vres);
DLL extern void decvalue(VALUE *vp, VALUE *vres); extern DLL void decvalue(VALUE *vp, VALUE *vres);
DLL extern void conjvalue(VALUE *vp, VALUE *vres); extern DLL void conjvalue(VALUE *vp, VALUE *vres);
DLL extern void sqrtvalue(VALUE *v1, VALUE *v2, VALUE *v3, VALUE *vres); extern DLL void sqrtvalue(VALUE *v1, VALUE *v2, VALUE *v3, VALUE *vres);
DLL extern void rootvalue(VALUE *v1, VALUE *v2, VALUE *v3, VALUE *vres); extern DLL void rootvalue(VALUE *v1, VALUE *v2, VALUE *v3, VALUE *vres);
DLL extern void absvalue(VALUE *v1, VALUE *v2, VALUE *vres); extern DLL void absvalue(VALUE *v1, VALUE *v2, VALUE *vres);
DLL extern void normvalue(VALUE *vp, VALUE *vres); extern DLL void normvalue(VALUE *vp, VALUE *vres);
DLL extern void shiftvalue(VALUE *v1, VALUE *v2, BOOL rightshift, VALUE *vres); extern DLL void shiftvalue(VALUE *v1, VALUE *v2, BOOL rightshift, VALUE *vres);
DLL extern void scalevalue(VALUE *v1, VALUE *v2, VALUE *vres); extern DLL void scalevalue(VALUE *v1, VALUE *v2, VALUE *vres);
DLL extern void powivalue(VALUE *v1, VALUE *v2, VALUE *vres); extern DLL void powivalue(VALUE *v1, VALUE *v2, VALUE *vres);
DLL extern void powervalue(VALUE *v1, VALUE *v2, VALUE *v3, VALUE *vres); extern DLL void powervalue(VALUE *v1, VALUE *v2, VALUE *v3, VALUE *vres);
DLL extern void divvalue(VALUE *v1, VALUE *v2, VALUE *vres); extern DLL void divvalue(VALUE *v1, VALUE *v2, VALUE *vres);
DLL extern void quovalue(VALUE *v1, VALUE *v2, VALUE *v3, VALUE *vres); extern DLL void quovalue(VALUE *v1, VALUE *v2, VALUE *v3, VALUE *vres);
DLL extern void modvalue(VALUE *v1, VALUE *v2, VALUE *v3, VALUE *vres); extern DLL void modvalue(VALUE *v1, VALUE *v2, VALUE *v3, VALUE *vres);
DLL extern BOOL testvalue(VALUE *vp); extern DLL BOOL testvalue(VALUE *vp);
DLL extern BOOL comparevalue(VALUE *v1, VALUE *v2); extern DLL BOOL comparevalue(VALUE *v1, VALUE *v2);
DLL extern BOOL acceptvalue(VALUE *v1, VALUE *v2); extern DLL BOOL acceptvalue(VALUE *v1, VALUE *v2);
DLL extern void relvalue(VALUE *v1, VALUE *v2, VALUE *vres); extern DLL void relvalue(VALUE *v1, VALUE *v2, VALUE *vres);
DLL extern void sgnvalue(VALUE *vp, VALUE *vres); extern DLL void sgnvalue(VALUE *vp, VALUE *vres);
DLL extern QCKHASH hashvalue(VALUE *vp, QCKHASH val); extern DLL QCKHASH hashvalue(VALUE *vp, QCKHASH val);
DLL extern void printvalue(VALUE *vp, int flags); extern DLL void printvalue(VALUE *vp, int flags);
DLL extern BOOL precvalue(VALUE *v1, VALUE *v2); extern DLL BOOL precvalue(VALUE *v1, VALUE *v2);
DLL extern VALUE error_value(int e); extern DLL VALUE error_value(int e);
DLL extern int set_errno(int e); extern DLL int set_errno(int e);
DLL extern int set_errcount(int e); extern DLL int set_errcount(int e);
DLL extern long countlistitems(LIST *lp); extern DLL long countlistitems(LIST *lp);
DLL extern void addlistitems(LIST *lp, VALUE *vres); extern DLL void addlistitems(LIST *lp, VALUE *vres);
DLL extern void addlistinv(LIST *lp, VALUE *vres); extern DLL void addlistinv(LIST *lp, VALUE *vres);
DLL extern void copy2octet(VALUE *, OCTET *); extern DLL void copy2octet(VALUE *, OCTET *);
DLL extern int copystod(VALUE *, long, long, VALUE *, long); extern DLL int copystod(VALUE *, long, long, VALUE *, long);
DLL extern void protectall(VALUE *, int); extern DLL void protectall(VALUE *, int);
DLL extern void set_update(int); extern DLL void set_update(int);
/* /*
@@ -270,44 +257,44 @@ struct matrix {
#define matsize(n) (sizeof(MATRIX) - sizeof(VALUE) + ((n) * sizeof(VALUE))) #define matsize(n) (sizeof(MATRIX) - sizeof(VALUE) + ((n) * sizeof(VALUE)))
DLL extern MATRIX *matadd(MATRIX *m1, MATRIX *m2); extern DLL MATRIX *matadd(MATRIX *m1, MATRIX *m2);
DLL extern MATRIX *matsub(MATRIX *m1, MATRIX *m2); extern DLL MATRIX *matsub(MATRIX *m1, MATRIX *m2);
DLL extern MATRIX *matmul(MATRIX *m1, MATRIX *m2); extern DLL MATRIX *matmul(MATRIX *m1, MATRIX *m2);
DLL extern MATRIX *matneg(MATRIX *m); extern DLL MATRIX *matneg(MATRIX *m);
DLL extern MATRIX *matalloc(long size); extern DLL MATRIX *matalloc(long size);
DLL extern MATRIX *matcopy(MATRIX *m); extern DLL MATRIX *matcopy(MATRIX *m);
DLL extern MATRIX *matinit(MATRIX *m, VALUE *v1, VALUE *v2); extern DLL MATRIX *matinit(MATRIX *m, VALUE *v1, VALUE *v2);
DLL extern MATRIX *matsquare(MATRIX *m); extern DLL MATRIX *matsquare(MATRIX *m);
DLL extern MATRIX *matinv(MATRIX *m); extern DLL MATRIX *matinv(MATRIX *m);
DLL extern MATRIX *matscale(MATRIX *m, long n); extern DLL MATRIX *matscale(MATRIX *m, long n);
DLL extern MATRIX *matshift(MATRIX *m, long n); extern DLL MATRIX *matshift(MATRIX *m, long n);
DLL extern MATRIX *matmulval(MATRIX *m, VALUE *vp); extern DLL MATRIX *matmulval(MATRIX *m, VALUE *vp);
DLL extern MATRIX *matpowi(MATRIX *m, NUMBER *q); extern DLL MATRIX *matpowi(MATRIX *m, NUMBER *q);
DLL extern MATRIX *matconj(MATRIX *m); extern DLL MATRIX *matconj(MATRIX *m);
DLL extern MATRIX *matquoval(MATRIX *m, VALUE *vp, VALUE *v3); extern DLL MATRIX *matquoval(MATRIX *m, VALUE *vp, VALUE *v3);
DLL extern MATRIX *matmodval(MATRIX *m, VALUE *vp, VALUE *v3); extern DLL MATRIX *matmodval(MATRIX *m, VALUE *vp, VALUE *v3);
DLL extern MATRIX *matint(MATRIX *m); extern DLL MATRIX *matint(MATRIX *m);
DLL extern MATRIX *matfrac(MATRIX *m); extern DLL MATRIX *matfrac(MATRIX *m);
DLL extern MATRIX *matappr(MATRIX *m, VALUE *v2, VALUE *v3); extern DLL MATRIX *matappr(MATRIX *m, VALUE *v2, VALUE *v3);
DLL extern VALUE mattrace(MATRIX *m); extern DLL VALUE mattrace(MATRIX *m);
DLL extern MATRIX *mattrans(MATRIX *m); extern DLL MATRIX *mattrans(MATRIX *m);
DLL extern MATRIX *matcross(MATRIX *m1, MATRIX *m2); extern DLL MATRIX *matcross(MATRIX *m1, MATRIX *m2);
DLL extern BOOL mattest(MATRIX *m); extern DLL BOOL mattest(MATRIX *m);
DLL extern void matsum(MATRIX *m, VALUE *vres); extern DLL void matsum(MATRIX *m, VALUE *vres);
DLL extern BOOL matcmp(MATRIX *m1, MATRIX *m2); extern DLL BOOL matcmp(MATRIX *m1, MATRIX *m2);
DLL extern int matsearch(MATRIX *m, VALUE *vp, long start, long end, ZVALUE *index); extern DLL int matsearch(MATRIX *m, VALUE *vp, long start, long end, ZVALUE *index);
DLL extern int matrsearch(MATRIX *m, VALUE *vp, long start, long end, ZVALUE *index); extern DLL int matrsearch(MATRIX *m, VALUE *vp, long start, long end, ZVALUE *index);
DLL extern VALUE matdet(MATRIX *m); extern DLL VALUE matdet(MATRIX *m);
DLL extern VALUE matdot(MATRIX *m1, MATRIX *m2); extern DLL VALUE matdot(MATRIX *m1, MATRIX *m2);
DLL extern void matfill(MATRIX *m, VALUE *v1, VALUE *v2); extern DLL void matfill(MATRIX *m, VALUE *v1, VALUE *v2);
DLL extern void matfree(MATRIX *m); extern DLL void matfree(MATRIX *m);
DLL extern void matprint(MATRIX *m, long max_print); extern DLL void matprint(MATRIX *m, long max_print);
DLL extern VALUE *matindex(MATRIX *mp, BOOL create, long dim, VALUE *indices); extern DLL VALUE *matindex(MATRIX *mp, BOOL create, long dim, VALUE *indices);
DLL extern void matreverse(MATRIX *m); extern DLL void matreverse(MATRIX *m);
DLL extern void matsort(MATRIX *m); extern DLL void matsort(MATRIX *m);
DLL extern BOOL matisident(MATRIX *m); extern DLL BOOL matisident(MATRIX *m);
DLL extern MATRIX *matround(MATRIX *m, VALUE *v2, VALUE *v3); extern DLL MATRIX *matround(MATRIX *m, VALUE *v2, VALUE *v3);
DLL extern MATRIX *matbround(MATRIX *m, VALUE *v2, VALUE *v3); extern DLL MATRIX *matbround(MATRIX *m, VALUE *v2, VALUE *v3);
/* /*
@@ -334,32 +321,32 @@ struct list {
}; };
DLL extern void insertlistfirst(LIST *lp, VALUE *vp); extern DLL void insertlistfirst(LIST *lp, VALUE *vp);
DLL extern void insertlistlast(LIST *lp, VALUE *vp); extern DLL void insertlistlast(LIST *lp, VALUE *vp);
DLL extern void insertlistmiddle(LIST *lp, long index, VALUE *vp); extern DLL void insertlistmiddle(LIST *lp, long index, VALUE *vp);
DLL extern void removelistfirst(LIST *lp, VALUE *vp); extern DLL void removelistfirst(LIST *lp, VALUE *vp);
DLL extern void removelistlast(LIST *lp, VALUE *vp); extern DLL void removelistlast(LIST *lp, VALUE *vp);
DLL extern void removelistmiddle(LIST *lp, long index, VALUE *vp); extern DLL void removelistmiddle(LIST *lp, long index, VALUE *vp);
DLL extern void listfree(LIST *lp); extern DLL void listfree(LIST *lp);
DLL extern void listprint(LIST *lp, long max_print); extern DLL void listprint(LIST *lp, long max_print);
DLL extern int listsearch(LIST *lp, VALUE *vp, long start, long end, ZVALUE *index); extern DLL int listsearch(LIST *lp, VALUE *vp, long start, long end, ZVALUE *index);
DLL extern int listrsearch(LIST *lp, VALUE *vp, long start, long end, ZVALUE *index); extern DLL int listrsearch(LIST *lp, VALUE *vp, long start, long end, ZVALUE *index);
DLL extern BOOL listcmp(LIST *lp1, LIST *lp2); extern DLL BOOL listcmp(LIST *lp1, LIST *lp2);
DLL extern VALUE *listfindex(LIST *lp, long index); extern DLL VALUE *listfindex(LIST *lp, long index);
DLL extern LIST *listalloc(void); extern DLL LIST *listalloc(void);
DLL extern LIST *listcopy(LIST *lp); extern DLL LIST *listcopy(LIST *lp);
DLL extern void listreverse(LIST *lp); extern DLL void listreverse(LIST *lp);
DLL extern void listsort(LIST *lp); extern DLL void listsort(LIST *lp);
DLL extern LIST *listappr(LIST *lp, VALUE *v2, VALUE *v3); extern DLL LIST *listappr(LIST *lp, VALUE *v2, VALUE *v3);
DLL extern LIST *listround(LIST *m, VALUE *v2, VALUE *v3); extern DLL LIST *listround(LIST *m, VALUE *v2, VALUE *v3);
DLL extern LIST *listbround(LIST *m, VALUE *v2, VALUE *v3); extern DLL LIST *listbround(LIST *m, VALUE *v2, VALUE *v3);
DLL extern LIST *listquo(LIST *lp, VALUE *v2, VALUE *v3); extern DLL LIST *listquo(LIST *lp, VALUE *v2, VALUE *v3);
DLL extern LIST *listmod(LIST *lp, VALUE *v2, VALUE *v3); extern DLL LIST *listmod(LIST *lp, VALUE *v2, VALUE *v3);
DLL extern BOOL evp(LISTELEM *cp, LISTELEM *x, VALUE *vres); extern DLL BOOL evp(LISTELEM *cp, LISTELEM *x, VALUE *vres);
DLL extern BOOL evalpoly(LIST *clist, LISTELEM *x, VALUE *vres); extern DLL BOOL evalpoly(LIST *clist, LISTELEM *x, VALUE *vres);
DLL extern void insertitems(LIST *lp1, LIST *lp2); extern DLL void insertitems(LIST *lp1, LIST *lp2);
DLL extern LISTELEM *listelement(LIST *, long); extern DLL LISTELEM *listelement(LIST *, long);
DLL extern LIST *listsegment(LIST *, long, long); extern DLL LIST *listsegment(LIST *, long, long);
/* /*
@@ -384,15 +371,15 @@ struct assoc {
}; };
DLL extern ASSOC *assocalloc(long initsize); extern DLL ASSOC *assocalloc(long initsize);
DLL extern ASSOC *assoccopy(ASSOC *ap); extern DLL ASSOC *assoccopy(ASSOC *ap);
DLL extern void assocfree(ASSOC *ap); extern DLL void assocfree(ASSOC *ap);
DLL extern void assocprint(ASSOC *ap, long max_print); extern DLL void assocprint(ASSOC *ap, long max_print);
DLL extern int assocsearch(ASSOC *ap, VALUE *vp, long start, long end, ZVALUE *index); extern DLL int assocsearch(ASSOC *ap, VALUE *vp, long start, long end, ZVALUE *index);
DLL extern int assocrsearch(ASSOC *ap, VALUE *vp, long start, long end, ZVALUE *index); extern DLL int assocrsearch(ASSOC *ap, VALUE *vp, long start, long end, ZVALUE *index);
DLL extern BOOL assoccmp(ASSOC *ap1, ASSOC *ap2); extern DLL BOOL assoccmp(ASSOC *ap1, ASSOC *ap2);
DLL extern VALUE *assocfindex(ASSOC *ap, long index); extern DLL VALUE *assocfindex(ASSOC *ap, long index);
DLL extern VALUE *associndex(ASSOC *ap, BOOL create, long dim, VALUE *indices); extern DLL VALUE *associndex(ASSOC *ap, BOOL create, long dim, VALUE *indices);
/* /*
@@ -474,62 +461,62 @@ struct object {
(sizeof(OBJECT) + ((elements) - USUAL_ELEMENTS) * sizeof(VALUE)) (sizeof(OBJECT) + ((elements) - USUAL_ELEMENTS) * sizeof(VALUE))
DLL extern OBJECT *objcopy(OBJECT *op); extern DLL OBJECT *objcopy(OBJECT *op);
DLL extern OBJECT *objalloc(long index); extern DLL OBJECT *objalloc(long index);
DLL extern VALUE objcall(int action, VALUE *v1, VALUE *v2, VALUE *v3); extern DLL VALUE objcall(int action, VALUE *v1, VALUE *v2, VALUE *v3);
DLL extern void objfree(OBJECT *op); extern DLL void objfree(OBJECT *op);
DLL extern int addelement(char *name); extern DLL int addelement(char *name);
DLL extern int defineobject(char *name, int indices[], int count); extern DLL int defineobject(char *name, int indices[], int count);
DLL extern int checkobject(char *name); extern DLL int checkobject(char *name);
DLL extern void showobjfuncs(void); extern DLL void showobjfuncs(void);
DLL extern void showobjtypes(void); extern DLL void showobjtypes(void);
DLL extern int findelement(char *name); extern DLL int findelement(char *name);
DLL extern char *objtypename(unsigned long index); extern DLL char *objtypename(unsigned long index);
DLL extern int objoffset(OBJECT *op, long index); extern DLL int objoffset(OBJECT *op, long index);
/* /*
* Configuration parameter name and type. * Configuration parameter name and type.
*/ */
extern NAMETYPE configs[]; extern NAMETYPE configs[];
DLL extern void config_value(CONFIG *cfg, int type, VALUE *ret); extern DLL void config_value(CONFIG *cfg, int type, VALUE *ret);
DLL extern void setconfig(int type, VALUE *vp); extern DLL void setconfig(int type, VALUE *vp);
DLL extern void config_print(CONFIG *cfg); /* the CONFIG to print */ extern DLL void config_print(CONFIG *cfg); /* the CONFIG to print */
/* /*
* size, memsize and sizeof support * size, memsize and sizeof support
*/ */
DLL extern long elm_count(VALUE *vp); extern DLL long elm_count(VALUE *vp);
DLL extern long lsizeof(VALUE *vp); extern DLL long lsizeof(VALUE *vp);
DLL extern long memsize(VALUE *vp); extern DLL long memsize(VALUE *vp);
/* /*
* String functions * String functions
*/ */
DLL extern STRING *stringadd(STRING *, STRING *); extern DLL STRING *stringadd(STRING *, STRING *);
DLL extern STRING *stringcopy(STRING *); extern DLL STRING *stringcopy(STRING *);
DLL extern STRING *stringsub(STRING *, STRING *); extern DLL STRING *stringsub(STRING *, STRING *);
DLL extern STRING *stringmul(NUMBER *, STRING *); extern DLL STRING *stringmul(NUMBER *, STRING *);
DLL extern STRING *stringand(STRING *, STRING *); extern DLL STRING *stringand(STRING *, STRING *);
DLL extern STRING *stringor(STRING *, STRING *); extern DLL STRING *stringor(STRING *, STRING *);
DLL extern STRING *stringxor(STRING *, STRING *); extern DLL STRING *stringxor(STRING *, STRING *);
DLL extern STRING *stringdiff(STRING *, STRING *); extern DLL STRING *stringdiff(STRING *, STRING *);
DLL extern STRING *stringsegment(STRING *, long, long); extern DLL STRING *stringsegment(STRING *, long, long);
DLL extern STRING *stringshift(STRING *, long); extern DLL STRING *stringshift(STRING *, long);
DLL extern STRING *stringcomp(STRING *); extern DLL STRING *stringcomp(STRING *);
DLL extern STRING *stringneg(STRING *); extern DLL STRING *stringneg(STRING *);
DLL extern STRING *stringcpy(STRING *, STRING *); extern DLL STRING *stringcpy(STRING *, STRING *);
DLL extern STRING *stringncpy(STRING *, STRING *, long); extern DLL STRING *stringncpy(STRING *, STRING *, long);
DLL extern long stringcontent(STRING *s); extern DLL long stringcontent(STRING *s);
DLL extern long stringlowbit(STRING *s); extern DLL long stringlowbit(STRING *s);
DLL extern long stringhighbit(STRING *s); extern DLL long stringhighbit(STRING *s);
DLL extern BOOL stringcmp(STRING *, STRING *); extern DLL BOOL stringcmp(STRING *, STRING *);
DLL extern BOOL stringrel(STRING *, STRING *); extern DLL BOOL stringrel(STRING *, STRING *);
DLL extern int stringbit(STRING *, long); extern DLL int stringbit(STRING *, long);
DLL extern BOOL stringtest(STRING *); extern DLL BOOL stringtest(STRING *);
DLL extern int stringsetbit(STRING *, long, BOOL); extern DLL int stringsetbit(STRING *, long, BOOL);
DLL extern int stringsearch(STRING *, STRING *, long, long, ZVALUE *); extern DLL int stringsearch(STRING *, STRING *, long, long, ZVALUE *);
DLL extern int stringrsearch(STRING *, STRING *, long, long, ZVALUE *); extern DLL int stringrsearch(STRING *, STRING *, long, long, ZVALUE *);
#endif /* !__VALUE_H__ */ #endif /* !__VALUE_H__ */

View File

@@ -19,8 +19,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 29.19 $ * @(#) $Revision: 29.20 $
* @(#) $Id: version.c,v 29.19 2001/02/25 22:07:36 chongo Exp $ * @(#) $Id: version.c,v 29.20 2001/03/17 21:31:47 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 "0" /* test number or empty string if no patch */ #define MINOR_PATCH "1.0" /* test number or empty string if no patch */
/* /*
* calc version constants * calc version constants

50
win32dll.h Normal file
View File

@@ -0,0 +1,50 @@
/*
* win32dll - definitions for building windoz dll files
*
* 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: win32dll.h,v 29.1 2001/03/18 03:03:11 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/win32dll.h,v $
*
* Under source code control: 2001/03/17 13:05:31
* 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/
*/
#if !defined(__WIN32DLL_H__)
#define __WIN32DLL_H__
#if defined(_WIN32)
# if defined(_EXPORTING)
# define DLL __declspec(dllexport)
# else
# define DLL __declspec(dllimport)
# endif
#else /* Windoz free systems */
# define DLL
#endif /* Windoz free systems */
#endif /* !__WIN32DLL_H__ */

243
zmath.h
View File

@@ -17,8 +17,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc. * received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA. * 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
* *
* @(#) $Revision: 29.4 $ * @(#) $Revision: 29.5 $
* @(#) $Id: zmath.h,v 29.4 2001/02/25 22:07:36 chongo Exp $ * @(#) $Id: zmath.h,v 29.5 2001/03/17 21:31:47 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/zmath.h,v $ * @(#) $Source: /usr/local/src/cmd/calc/RCS/zmath.h,v $
* *
* Under source code control: 1993/07/30 19:42:48 * Under source code control: 1993/07/30 19:42:48
@@ -38,20 +38,7 @@
#define __ZMATH_H__ #define __ZMATH_H__
#if defined (_WIN32) #include "win32dll.h"
#ifdef _EXPORTING
#define DLL __declspec(dllexport)
#else
#define DLL __declspec(dllimport)
#endif
#else /* Windoz free systems */
#define DLL
#endif /* Windoz free systems */
#include "alloc.h" #include "alloc.h"
#include "endian_calc.h" #include "endian_calc.h"
#include "longbits.h" #include "longbits.h"
@@ -281,126 +268,126 @@ typedef struct {
/* /*
* Function prototypes for integer math routines. * Function prototypes for integer math routines.
*/ */
DLL extern HALF * alloc(LEN len); extern DLL HALF * alloc(LEN len);
#ifdef ALLOCTEST #ifdef ALLOCTEST
DLL extern void freeh(HALF *); extern DLL void freeh(HALF *);
#endif #endif
/* /*
* Input, output, and conversion routines. * Input, output, and conversion routines.
*/ */
DLL extern void zcopy(ZVALUE z, ZVALUE *res); extern DLL void zcopy(ZVALUE z, ZVALUE *res);
DLL extern void itoz(long i, ZVALUE *res); extern DLL void itoz(long i, ZVALUE *res);
DLL extern void utoz(FULL i, ZVALUE *res); extern DLL void utoz(FULL i, ZVALUE *res);
DLL extern void str2z(char *s, ZVALUE *res); extern DLL void str2z(char *s, ZVALUE *res);
DLL extern long ztoi(ZVALUE z); extern DLL long ztoi(ZVALUE z);
DLL extern FULL ztou(ZVALUE z); extern DLL FULL ztou(ZVALUE z);
DLL extern void zprintval(ZVALUE z, long decimals, long width); extern DLL void zprintval(ZVALUE z, long decimals, long width);
DLL extern void zprintx(ZVALUE z, long width); extern DLL void zprintx(ZVALUE z, long width);
DLL extern void zprintb(ZVALUE z, long width); extern DLL void zprintb(ZVALUE z, long width);
DLL extern void zprinto(ZVALUE z, long width); extern DLL void zprinto(ZVALUE z, long width);
DLL extern void fitzprint(ZVALUE, long, long); extern DLL void fitzprint(ZVALUE, long, long);
/* /*
* Basic numeric routines. * Basic numeric routines.
*/ */
DLL extern void zmuli(ZVALUE z, long n, ZVALUE *res); extern DLL void zmuli(ZVALUE z, long n, ZVALUE *res);
DLL extern long zdivi(ZVALUE z, long n, ZVALUE *res); extern DLL long zdivi(ZVALUE z, long n, ZVALUE *res);
DLL extern long zmodi(ZVALUE z, long n); extern DLL long zmodi(ZVALUE z, long n);
DLL extern void zadd(ZVALUE z1, ZVALUE z2, ZVALUE *res); extern DLL void zadd(ZVALUE z1, ZVALUE z2, ZVALUE *res);
DLL extern void zsub(ZVALUE z1, ZVALUE z2, ZVALUE *res); extern DLL void zsub(ZVALUE z1, ZVALUE z2, ZVALUE *res);
DLL extern void zmul(ZVALUE z1, ZVALUE z2, ZVALUE *res); extern DLL void zmul(ZVALUE z1, ZVALUE z2, ZVALUE *res);
DLL extern long zdiv(ZVALUE z1, ZVALUE z2, ZVALUE *res, ZVALUE *rem, long R); extern DLL long zdiv(ZVALUE z1, ZVALUE z2, ZVALUE *res, ZVALUE *rem, long R);
DLL extern long zquo(ZVALUE z1, ZVALUE z2, ZVALUE *res, long R); extern DLL long zquo(ZVALUE z1, ZVALUE z2, ZVALUE *res, long R);
DLL extern long zmod(ZVALUE z1, ZVALUE z2, ZVALUE *rem, long R); extern DLL long zmod(ZVALUE z1, ZVALUE z2, ZVALUE *rem, long R);
DLL extern void zequo(ZVALUE z1, ZVALUE z2, ZVALUE *res); extern DLL void zequo(ZVALUE z1, ZVALUE z2, ZVALUE *res);
DLL extern BOOL zdivides(ZVALUE z1, ZVALUE z2); extern DLL BOOL zdivides(ZVALUE z1, ZVALUE z2);
DLL extern void zor(ZVALUE z1, ZVALUE z2, ZVALUE *res); extern DLL void zor(ZVALUE z1, ZVALUE z2, ZVALUE *res);
DLL extern void zand(ZVALUE z1, ZVALUE z2, ZVALUE *res); extern DLL void zand(ZVALUE z1, ZVALUE z2, ZVALUE *res);
DLL extern void zxor(ZVALUE z1, ZVALUE z2, ZVALUE *res); extern DLL void zxor(ZVALUE z1, ZVALUE z2, ZVALUE *res);
DLL extern void zandnot(ZVALUE z1, ZVALUE z2, ZVALUE *res); extern DLL void zandnot(ZVALUE z1, ZVALUE z2, ZVALUE *res);
DLL extern long zpopcnt(ZVALUE z, int bitval); extern DLL long zpopcnt(ZVALUE z, int bitval);
DLL extern void zshift(ZVALUE z, long n, ZVALUE *res); extern DLL void zshift(ZVALUE z, long n, ZVALUE *res);
DLL extern void zsquare(ZVALUE z, ZVALUE *res); extern DLL void zsquare(ZVALUE z, ZVALUE *res);
DLL extern long zlowbit(ZVALUE z); extern DLL long zlowbit(ZVALUE z);
DLL extern LEN zhighbit(ZVALUE z); extern DLL LEN zhighbit(ZVALUE z);
DLL extern void zbitvalue(long n, ZVALUE *res); extern DLL void zbitvalue(long n, ZVALUE *res);
DLL extern BOOL zisset(ZVALUE z, long n); extern DLL BOOL zisset(ZVALUE z, long n);
DLL extern BOOL zisonebit(ZVALUE z); extern DLL BOOL zisonebit(ZVALUE z);
DLL extern BOOL zisallbits(ZVALUE z); extern DLL BOOL zisallbits(ZVALUE z);
DLL extern FLAG ztest(ZVALUE z); extern DLL FLAG ztest(ZVALUE z);
DLL extern FLAG zrel(ZVALUE z1, ZVALUE z2); extern DLL FLAG zrel(ZVALUE z1, ZVALUE z2);
DLL extern FLAG zabsrel(ZVALUE z1, ZVALUE z2); extern DLL FLAG zabsrel(ZVALUE z1, ZVALUE z2);
DLL extern BOOL zcmp(ZVALUE z1, ZVALUE z2); extern DLL BOOL zcmp(ZVALUE z1, ZVALUE z2);
/* /*
* More complicated numeric functions. * More complicated numeric functions.
*/ */
DLL extern FULL uugcd(FULL i1, FULL i2); extern DLL FULL uugcd(FULL i1, FULL i2);
DLL extern long iigcd(long i1, long i2); extern DLL long iigcd(long i1, long i2);
DLL extern void zgcd(ZVALUE z1, ZVALUE z2, ZVALUE *res); extern DLL void zgcd(ZVALUE z1, ZVALUE z2, ZVALUE *res);
DLL extern void zlcm(ZVALUE z1, ZVALUE z2, ZVALUE *res); extern DLL void zlcm(ZVALUE z1, ZVALUE z2, ZVALUE *res);
DLL extern void zreduce(ZVALUE z1, ZVALUE z2, ZVALUE *z1res, ZVALUE *z2res); extern DLL void zreduce(ZVALUE z1, ZVALUE z2, ZVALUE *z1res, ZVALUE *z2res);
DLL extern void zfact(ZVALUE z, ZVALUE *dest); extern DLL void zfact(ZVALUE z, ZVALUE *dest);
DLL extern void zperm(ZVALUE z1, ZVALUE z2, ZVALUE *res); extern DLL void zperm(ZVALUE z1, ZVALUE z2, ZVALUE *res);
DLL extern int zcomb(ZVALUE z1, ZVALUE z2, ZVALUE *res); extern DLL int zcomb(ZVALUE z1, ZVALUE z2, ZVALUE *res);
DLL extern FLAG zjacobi(ZVALUE z1, ZVALUE z2); extern DLL FLAG zjacobi(ZVALUE z1, ZVALUE z2);
DLL extern void zfib(ZVALUE z, ZVALUE *res); extern DLL void zfib(ZVALUE z, ZVALUE *res);
DLL extern void zpowi(ZVALUE z1, ZVALUE z2, ZVALUE *res); extern DLL void zpowi(ZVALUE z1, ZVALUE z2, ZVALUE *res);
DLL extern void ztenpow(long power, ZVALUE *res); extern DLL void ztenpow(long power, ZVALUE *res);
DLL extern void zpowermod(ZVALUE z1, ZVALUE z2, ZVALUE z3, ZVALUE *res); extern DLL void zpowermod(ZVALUE z1, ZVALUE z2, ZVALUE z3, ZVALUE *res);
DLL extern BOOL zmodinv(ZVALUE z1, ZVALUE z2, ZVALUE *res); extern DLL BOOL zmodinv(ZVALUE z1, ZVALUE z2, ZVALUE *res);
DLL extern BOOL zrelprime(ZVALUE z1, ZVALUE z2); extern DLL BOOL zrelprime(ZVALUE z1, ZVALUE z2);
DLL extern long zlog(ZVALUE z1, ZVALUE z2); extern DLL long zlog(ZVALUE z1, ZVALUE z2);
DLL extern long zlog10(ZVALUE z); extern DLL long zlog10(ZVALUE z);
DLL extern long zdivcount(ZVALUE z1, ZVALUE z2); extern DLL long zdivcount(ZVALUE z1, ZVALUE z2);
DLL extern long zfacrem(ZVALUE z1, ZVALUE z2, ZVALUE *rem); extern DLL long zfacrem(ZVALUE z1, ZVALUE z2, ZVALUE *rem);
DLL extern long zgcdrem(ZVALUE z1, ZVALUE z2, ZVALUE *res); extern DLL long zgcdrem(ZVALUE z1, ZVALUE z2, ZVALUE *res);
DLL extern long zdigits(ZVALUE z1); extern DLL long zdigits(ZVALUE z1);
DLL extern long zdigit(ZVALUE z1, long n); extern DLL long zdigit(ZVALUE z1, long n);
DLL extern FLAG zsqrt(ZVALUE z1, ZVALUE *dest, long R); extern DLL FLAG zsqrt(ZVALUE z1, ZVALUE *dest, long R);
DLL extern void zroot(ZVALUE z1, ZVALUE z2, ZVALUE *dest); extern DLL void zroot(ZVALUE z1, ZVALUE z2, ZVALUE *dest);
DLL extern BOOL zissquare(ZVALUE z); extern DLL BOOL zissquare(ZVALUE z);
DLL extern void zhnrmod(ZVALUE v, ZVALUE h, ZVALUE zn, ZVALUE zr, ZVALUE *res); extern DLL void zhnrmod(ZVALUE v, ZVALUE h, ZVALUE zn, ZVALUE zr, ZVALUE *res);
/* /*
* Prime related functions. * Prime related functions.
*/ */
DLL extern FLAG zisprime(ZVALUE z); extern DLL FLAG zisprime(ZVALUE z);
DLL extern FULL znprime(ZVALUE z); extern DLL FULL znprime(ZVALUE z);
DLL extern FULL next_prime(FULL v); extern DLL FULL next_prime(FULL v);
DLL extern FULL zpprime(ZVALUE z); extern DLL FULL zpprime(ZVALUE z);
DLL extern void zpfact(ZVALUE z, ZVALUE *dest); extern DLL void zpfact(ZVALUE z, ZVALUE *dest);
DLL extern BOOL zprimetest(ZVALUE z, long count, ZVALUE skip); extern DLL BOOL zprimetest(ZVALUE z, long count, ZVALUE skip);
DLL extern BOOL zredcprimetest(ZVALUE z, long count, ZVALUE skip); extern DLL BOOL zredcprimetest(ZVALUE z, long count, ZVALUE skip);
DLL extern BOOL znextcand(ZVALUE z1, long count, ZVALUE skip, ZVALUE res, ZVALUE mod, ZVALUE *cand); extern DLL BOOL znextcand(ZVALUE z1, long count, ZVALUE skip, ZVALUE res, ZVALUE mod, ZVALUE *cand);
DLL extern BOOL zprevcand(ZVALUE z1, long count, ZVALUE skip, ZVALUE res, ZVALUE mod, ZVALUE *cand); extern DLL BOOL zprevcand(ZVALUE z1, long count, ZVALUE skip, ZVALUE res, ZVALUE mod, ZVALUE *cand);
DLL extern FULL zlowfactor(ZVALUE z, long count); extern DLL FULL zlowfactor(ZVALUE z, long count);
DLL extern FLAG zfactor(ZVALUE z1, ZVALUE z2, ZVALUE *res); extern DLL FLAG zfactor(ZVALUE z1, ZVALUE z2, ZVALUE *res);
DLL extern long zpix(ZVALUE z1); extern DLL long zpix(ZVALUE z1);
DLL extern void zlcmfact(ZVALUE z, ZVALUE *dest); extern DLL void zlcmfact(ZVALUE z, ZVALUE *dest);
/* /*
* Misc misc functions. :-) * Misc misc functions. :-)
*/ */
DLL extern void zsquaremod(ZVALUE z1, ZVALUE z2, ZVALUE *res); extern DLL void zsquaremod(ZVALUE z1, ZVALUE z2, ZVALUE *res);
DLL extern void zminmod(ZVALUE z1, ZVALUE z2, ZVALUE *res); extern DLL void zminmod(ZVALUE z1, ZVALUE z2, ZVALUE *res);
DLL extern BOOL zcmpmod(ZVALUE z1, ZVALUE z2, ZVALUE z3); extern DLL BOOL zcmpmod(ZVALUE z1, ZVALUE z2, ZVALUE z3);
DLL extern void zio_init(void); extern DLL void zio_init(void);
/* /*
* These functions are for internal use only. * These functions are for internal use only.
*/ */
DLL extern void ztrim(ZVALUE *z); extern DLL void ztrim(ZVALUE *z);
DLL extern void zshiftr(ZVALUE z, long n); extern DLL void zshiftr(ZVALUE z, long n);
DLL extern void zshiftl(ZVALUE z, long n); extern DLL void zshiftl(ZVALUE z, long n);
DLL extern HALF *zalloctemp(LEN len); extern DLL HALF *zalloctemp(LEN len);
/* /*
@@ -417,13 +404,13 @@ typedef struct {
ZVALUE one; /* REDC format for the number 1 */ ZVALUE one; /* REDC format for the number 1 */
} REDC; } REDC;
DLL extern REDC *zredcalloc(ZVALUE z1); extern DLL REDC *zredcalloc(ZVALUE z1);
DLL extern void zredcfree(REDC *rp); extern DLL void zredcfree(REDC *rp);
DLL extern void zredcencode(REDC *rp, ZVALUE z1, ZVALUE *res); extern DLL void zredcencode(REDC *rp, ZVALUE z1, ZVALUE *res);
DLL extern void zredcdecode(REDC *rp, ZVALUE z1, ZVALUE *res); extern DLL void zredcdecode(REDC *rp, ZVALUE z1, ZVALUE *res);
DLL extern void zredcmul(REDC *rp, ZVALUE z1, ZVALUE z2, ZVALUE *res); extern DLL void zredcmul(REDC *rp, ZVALUE z1, ZVALUE z2, ZVALUE *res);
DLL extern void zredcsquare(REDC *rp, ZVALUE z1, ZVALUE *res); extern DLL void zredcsquare(REDC *rp, ZVALUE z1, ZVALUE *res);
DLL extern void zredcpower(REDC *rp, ZVALUE z1, ZVALUE z2, ZVALUE *res); extern DLL void zredcpower(REDC *rp, ZVALUE z1, ZVALUE z2, ZVALUE *res);
/* /*
@@ -564,32 +551,32 @@ DLL extern void zredcpower(REDC *rp, ZVALUE z1, ZVALUE z2, ZVALUE *res);
/* /*
* Output routines for either FILE handles or strings. * Output routines for either FILE handles or strings.
*/ */
DLL extern void math_chr(int ch); extern DLL void math_chr(int ch);
DLL extern void math_str(char *str); extern DLL void math_str(char *str);
DLL extern void math_fill(char *str, long width); extern DLL void math_fill(char *str, long width);
DLL extern void math_flush(void); extern DLL void math_flush(void);
DLL extern void math_divertio(void); extern DLL void math_divertio(void);
DLL extern void math_cleardiversions(void); extern DLL void math_cleardiversions(void);
DLL extern char *math_getdivertedio(void); extern DLL char *math_getdivertedio(void);
DLL extern int math_setmode(int mode); extern DLL int math_setmode(int mode);
DLL extern LEN math_setdigits(LEN digits); extern DLL LEN math_setdigits(LEN digits);
DLL extern void math_fmt(char *, ...); extern DLL void math_fmt(char *, ...);
/* /*
* The error routine. * The error routine.
*/ */
DLL extern void math_error(char *, ...); extern DLL void math_error(char *, ...);
/* /*
* external swap functions * external swap functions
*/ */
DLL extern HALF *swap_b8_in_HALFs(HALF *dest, HALF *src, LEN len); extern DLL HALF *swap_b8_in_HALFs(HALF *dest, HALF *src, LEN len);
DLL extern ZVALUE *swap_b8_in_ZVALUE(ZVALUE *dest, ZVALUE *src, BOOL all); extern DLL ZVALUE *swap_b8_in_ZVALUE(ZVALUE *dest, ZVALUE *src, BOOL all);
DLL extern HALF *swap_b16_in_HALFs(HALF *dest, HALF *src, LEN len); extern DLL HALF *swap_b16_in_HALFs(HALF *dest, HALF *src, LEN len);
DLL extern ZVALUE *swap_b16_in_ZVALUE(ZVALUE *dest, ZVALUE *src, BOOL all); extern DLL ZVALUE *swap_b16_in_ZVALUE(ZVALUE *dest, ZVALUE *src, BOOL all);
DLL extern ZVALUE *swap_HALF_in_ZVALUE(ZVALUE *dest, ZVALUE *src, BOOL all); extern DLL ZVALUE *swap_HALF_in_ZVALUE(ZVALUE *dest, ZVALUE *src, BOOL all);
/* /*
@@ -609,7 +596,7 @@ extern ZVALUE _sqbase_, _pow4base_, _pow8base_;
extern ZVALUE _b32_, _b64_; extern ZVALUE _b32_, _b64_;
extern BOOL _math_abort_; /* nonzero to abort calculations */ extern DLL BOOL _math_abort_; /* nonzero to abort calculations */
extern ZVALUE _tenpowers_[]; /* table of 10^2^n */ extern ZVALUE _tenpowers_[]; /* table of 10^2^n */
/* /*