Release calc version 2.11.1t2

This commit is contained in:
Landon Curt Noll
1999-12-17 02:08:57 -08:00
parent 6f5e8bf1b6
commit 0521ed202f
8 changed files with 320 additions and 140 deletions

View File

@@ -46,6 +46,10 @@ The following are the changes from calc version 2.11.1 to date:
Changed the recommended Comqaq cc compile to be -std0 -fast -O4 -static.
Fixed a problem related to asking for help for a non-existent file.
Added ./.calcinit to the default calcrc.
The following are the changes from calc version 2.11.0t10 to 2.11.0t11:
@@ -279,6 +283,7 @@ The following are the changes from calc version 2.11.0t10 to 2.11.0t11:
# this is a comment
#
# The lone # above was also a comment
## is also a comment
Improved how calc makes changes to file descriptor interactive state.
Moved state changing code to calc_tty() and orig_tty() in lib_calc.c.
@@ -4710,8 +4715,8 @@ Following is a list of visible changes to calc from version 1.24.7 to 1.26.1:
## received a copy with calc; if not, write to Free Software Foundation, Inc.
## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
##
## @(#) $Revision: 29.3 $
## @(#) $Id: CHANGES,v 29.3 1999/12/15 09:13:45 chongo Exp $
## @(#) $Revision: 29.4 $
## @(#) $Id: CHANGES,v 29.4 1999/12/17 10:06:46 chongo Exp $
## @(#) $Source: /usr/local/src/cmd/calc/RCS/CHANGES,v $
##
## Under source code control: 1993/06/02 18:12:57

View File

@@ -20,8 +20,8 @@
# received a copy with calc; if not, write to Free Software Foundation, Inc.
# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
#
# @(#) $Revision: 29.4 $
# @(#) $Id: Makefile.ship,v 29.4 1999/12/15 08:54:07 chongo Exp $
# @(#) $Revision: 29.5 $
# @(#) $Id: Makefile.ship,v 29.5 1999/12/17 09:07:35 chongo Exp $
# @(#) $Source: /usr/local/src/cmd/calc/RCS/Makefile.ship,v $
#
# Under source code control: 1990/02/15 01:48:41
@@ -425,7 +425,7 @@ CALCPATH= .:./cal:~/cal:${LIBDIR}:${CUSTOMLIBDIR}
# If the $CALCRC environment variable is not defined, then the following
# path will be search for calc resource files.
#
CALCRC= ${LIBDIR}/startup:~/.calcrc
CALCRC= ${LIBDIR}/startup:~/.calcrc:./.calcinit
# Determine of the GNU-readline facility will be used instead of the
# built-in calc binding method.

6
calc.c
View File

@@ -19,8 +19,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* @(#) $Revision: 29.1 $
* @(#) $Id: calc.c,v 29.1 1999/12/14 09:15:34 chongo Exp $
* @(#) $Revision: 29.2 $
* @(#) $Id: calc.c,v 29.2 1999/12/17 09:21:45 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/calc.c,v $
*
* Under source code control: 1990/02/15 01:48:11
@@ -197,7 +197,7 @@ main(int argc, char **argv)
*/
fprintf(stderr,
"usage: %s [-c] [-C] [-d] [-e] [-h] [-i] [-m mode]\n"
"\t[-D calc_debug[:resource_debug:[user_debug]]]\n"
"\t[-D calc_debug[:resource_debug[:user_debug]]]\n"
"\t[-n] [-p] [-q] [-s] [-u] [-v] "
"[[--] calc_cmd ...]\n",
program);

250
calc.man
View File

@@ -15,8 +15,8 @@
.\" received a copy with calc; if not, write to Free Software Foundation, Inc.
.\" 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
.\"
.\" @(#) $Revision: 29.1 $
.\" @(#) $Id: calc.man,v 29.1 1999/12/14 09:15:35 chongo Exp $
.\" @(#) $Revision: 29.4 $
.\" @(#) $Id: calc.man,v 29.4 1999/12/17 10:06:31 chongo Exp $
.\" @(#) $Source: /usr/local/src/cmd/calc/RCS/calc.man,v $
.\"
.\" Under source code control: 1991/07/23 05:48:26
@@ -36,7 +36,7 @@ calc \- arbitrary precision calculator
.RB [ \-c ]
.RB [ \-C ]
.RB [ \-d ]
.RB [ -D\ \&calc_debug[:resource_debug:[user_debug]] ]
.RB [ -D\ \&calc_debug[:resource_debug[:user_debug]] ]
.br
.in +5n
.RB [ \-e ]
@@ -53,7 +53,7 @@ calc \- arbitrary precision calculator
.RB [ calc_cmd\ \&.\|.\|. ]
.in -5n
.sp
\fI#!${BINDIR}/calc\fP\ \fB\-S\fP\ [\-other_flags\ \&...]
\fI#!${BINDIR}/calc\fP\ \fB\-S\fP\ [other_flags\ \&...]
.SH DESCRIPTION
\&
.br
@@ -89,7 +89,7 @@ cause
to try to process each line being read
despite the errors that it encounters.
.sp 1
By default, calc startup resource files ($CALCRC) are silently
By default, calc startup resource files are silently
ignored if not found.
This flag will report missing
startup resource files unless
@@ -103,10 +103,10 @@ Without
this flag, calling the custom() builtin function will
simply generate an error.
.sp 1
Use if this flag may cause
Use of this flag may cause
.B calc
to execute functions that
are non-standard and that are not portable. Custom builtin
to execute functions
that are non-standard and that are not portable. Custom builtin
functions are disabled by default for this reason.
.TP
@@ -147,14 +147,14 @@ It's nearly ten past six.
.in -5n
.sp 1
This flag disables the reporting of missing calc
startup resource files ($CALCRC).
startup resource files.
.TP
.BR -D " calc_debug[:resource_debug:[user_debug]]"
.BR -D " calc_debug[:resource_debug[:user_debug]]"
Force the initial value of config("calc_debug"),
config("resource_debug") and config("user_debug").
.sp 1
The : separated strings are interpreted as signed 32 bit values.
The : separated strings are interpreted as signed 32 bit integers.
After an optional leading sign a leading zero indicates octal
conversion, and a leading ``0x'' or ``0X'' hexadecimal
conversion. Otherwise, decimal conversion is assumed.
@@ -197,14 +197,14 @@ See
.TP
.B \-i
Become interactive if possible.
Be default, if
If
.I calc_cmd
args are given,
.B calc
will execute them and exit.
This flag args are given,
by default, calc will execute them and exit.
This flag causes
.B calc
will execute them and exit.
to drop into interactive mode after the commands are executed.
This flag will cause
.B calc
to drop into interactive mode after the
@@ -294,7 +294,7 @@ unknown mode.
will attempt to read or write them if directed.
.sp 1
If the mode disables opening of files for reading, then
the startup resource files are disabled as of
the startup resource files are disabled as if
.B \-q
was given.
The reading of key bindings is also disabled
@@ -330,7 +330,7 @@ flag overrides
.TP
.B \-q
Disable the use of the $CALCRC startup resource files.
Disable the reading of the startup scripts.
.TP
.B \-s
@@ -355,26 +355,20 @@ version number and exit.
.br
CALC COMMAND LINE
.PP
Without
.IR calc_cmd ,
With no
.I calc_cmd
arguments,
.B calc
operates interactively.
If one or more
.I calc_cmd
are given on the command line and
arguments are given on the command line and
.B \-s
is NOT given, then
.B calc
will evaluate and execute them and then exit.
.sp
If
will read and execute them and either attempt
to go interactive according as the
.B \-i
is given,
.B calc
will attempt to become interactive
even of one or more
.I calc_cmd
are given on the command line.
flag was present or absent.
.sp
If
.B \-s
@@ -384,32 +378,157 @@ will not evaluate any
.I calc_cmd
arguments but instead make them available
as strings to the argv() builtin function.
Sufficiently simple commands with no no characters like
parentheses, brackets, semicolons, '*', which have special
interpretations in UNIX shells may be entered, possibly with
spaces, until the terminating newline.
For example:
.sp 1
.in +5n
.nf
calc 23 + 47
.fi
.in -5n
.sp 1
should respond with display of 70, but
.sp 1
.in +5n
.nf
calc 23 * 47
.fi
.in -5n
.sp 1
may fail.
Such cases can usually be made to work as expected by
enclosing the command between single marks as in:
.sp 1
.in +5n
.nf
calc '23 * 47'
.fi
.in -5n
.sp 1
and
.sp 1
.in +5n
.nf
calc 'print sqrt(2), exp(1)'
.fi
.in -5n
.sp
If '!' is to be used to indicate the factorial function, for
shells like
.BI csh (1)
for which '!' followed by a non-space character
is used for history substitution, it may be necessary to
include a space or use a backslash to escape the special
meaning of '!'.
For example, the command:
.sp 1
.in +5n
.nf
print 27!^2
.fi
.in -5n
.sp 1
may have to be replaced by:
.sp 1
.in +5n
.nf
print 27! ^2 or print 27\!^2
.fi
.in -5n
\&
.br
CALC STARTUP FILES
.PP
Normally on startup,
if the environment variable
.B $CALCRC
is undefined and
.B calc
attempts to execute a collection of
startup resource files.
The environment variable $CALCRC (if non-existent
then a compiled in value) contains a : separated list of startup
resource files.
No error conditions are produced if these startup
resource files are not found.
.PP
If the mode disables opening of files for reading, then the startup
resource files are disabled as of
is invoked without the
.B \-q
was given and $CALCRC as well
as the default compiled in value are ignored.
flag, or if
.B $CALCRC
is defined and calc is invoked with
.BR \-e ,
.B calc
looks for a file "startup" in the calc resource directory
.B .calcrc
in the user's home directory, and
.B .calcinit in the current directory.
If one or more of these are found, they are read in succession as
.B calc
scripts and their commands executed.
When defined,
.B $CALCRC
is to contain a ':' separated list of names of files,
and if calc is then invoked without either the
.B \-q
or
.B \-e
flags, these files are read in succession and their commands executed.
No error condition is produced if a listed file is not found.
.sp
If the mode specified by
.B \-m
disables opening of files for reading, then the reading of startup
files is also disabled as if
.B \-q
was given.
\&
.br
CALC FILE SEARCH PATH
.PP
Filenames are subject to ``~'' expansion (see below).
The
environment variable $CALCPATH (if non-existent then a compiled in
value) contains a : separated list of search directories.
If a
file does not begin with /, ~ or ./, then it is searched for under
each directory listed in the $CALCPATH.
It is an error if no such
readable file is found.
If the environment variable
.B $CALCPATH
is undefined, or if it
is defined and
.B calc
is invoked with the
.B \-e
flag, when a file name not beginning with
.BR / ,
.B ~
or
.BR ./ ,
is specified as in:
.sp 1
.in +5n
.nf
calc read myfile
.fi
.in -5n
.sp 1
.B calc
searches in succession:
.sp 1
.in +5n
.nf
./myfile
./myfile.cal
${LIBDIR}/myfile
${LIBDIR}/myfile.cal
${CUSTOMLIBDIR}/myfile
${CUSTOMLIBDIR}/myfile.cal
.fi
.in -5n
.sp 1
If the file is found, the
search stops and the commands in the file are executed.
It is an error if no readable file with the specified name is found.
An alternative search path can be specified by defining
.B $CALCPATH
in the same way as PATH is defined, as a ':' separated
list of directories, and then invoking
.B calc
without the
.B \-e
flag.
.PP
.B Calc
treats all open files, other than stdin, stdout and
@@ -447,11 +566,17 @@ help config
.br
SHELL SCRIPT MODE
.PP
If an executable file begins with:
If first line of an executable file begins
.B #!
followed by the absolute pathname of the
.B calc
program and the flag
.B \-S
as in:
.sp 1
.in +5n
.nf
\fI#!${BINDIR}/calc\fP\ \fB\-S\fP\ [\-other_flags\ \&...]
\fI#!${BINDIR}/calc\fP\ \fB\-S\fP\ [other_flags\ \&...]
.fi
.in -5n
.sp 1
@@ -462,19 +587,22 @@ Note that
(UPPER CASE
.BR \-S )
must be the first \-flag on the ``#!'' line.
Any other optional ``\-other_flags'' must come after
Any other optional
.B "other_flags"
must come after
the
.BR \-S .
.sp 1
In
.B "shell script mode"
the contents of the file
are evaluated and executed as if they were processed
by the
.B read
command.
Any optional ``\-other_flags'' will by parsed first
followed by any arguments given shell script itself.
the contents of the file are read and
executed as if they were in a file being processed by a read
command, except that a "command" beginning with '#' followed by
whitespace and ending at the next newline is treated as a comment.
Any optional
.B "other_flags"
will be parsed first followed by
the later lines within the script itself.
.sp 1
In
.BR "shell script mode" ,

20
help.c
View File

@@ -17,8 +17,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* @(#) $Revision: 29.1 $
* @(#) $Id: help.c,v 29.1 1999/12/14 09:15:40 chongo Exp $
* @(#) $Revision: 29.2 $
* @(#) $Id: help.c,v 29.2 1999/12/17 09:22:03 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/help.c,v $
*
* Under source code control: 1997/09/14 10:58:30
@@ -253,19 +253,15 @@ givehelp(char *type)
stream = fopen(helppath, "r");
if (stream == NULL) {
/*
* we have the help file open, now display it
*/
page_file(stream);
(void) fclose(stream);
/*
* no such help file
*/
} else {
/* no such help file */
fprintf(stderr,
"%s: no such help file, try: help help\n",
type);
} else {
/* we have the help file open, now display it */
page_file(stream);
(void) fclose(stream);
}
}

View File

@@ -2,11 +2,11 @@ Calc command line
Calc has the following command line:
calc [-c] [-C] [-d] [-D calc_debug[:resource_debug:[user_debug]]]
calc [-c] [-C] [-d] [-D calc_debug[:resource_debug[:user_debug]]]
[-e] [-h] [-i] [-m mode] [-n] [-p] [-q] [-s] [-u] [-v]
[calc_cmd ...]
#!/usr/local/bin/calc -S [-other_flags ...]
#!/usr/local/bin/calc -S [other_flags]
-c Continue reading command lines even after an execution
error has caused the abandonment of a line.
@@ -22,7 +22,7 @@ Calc command line
will cause calc to try to process each line being read
despite the errors that it encounters.
By default, calc startup resource files ($CALCRC) are
By default, calc startup resource files are
silently ignored if not found. This flag will report
missing startup scripts unless -d is also given.
@@ -31,7 +31,7 @@ Calc command line
Without this flag, calling the custom() builtin
function will simply generate an error.
Use if this flag may cause calc to execute functions
Use of this flag may cause calc to execute functions
that are non-standard and that are not portable.
Custom builtin functions are disabled by default for
this reason.
@@ -60,7 +60,7 @@ Calc command line
It's nearly ten past six.
This flag disables the reporting of missing calc
startup scripts ($CALCRC).
startup scripts.
-D calc_debug[:resource_debug:[user_debug]]
@@ -68,7 +68,7 @@ Calc command line
config("resource_debug") and config("user_debug").
The : separated strings are interpreted as signed 32
bit values. After an optional leading sign a leading
bit integers. After an optional leading sign a leading
zero indicates octal conversion, and a leading ``0x''
or ``0X'' hexadecimal conversion. Otherwise, decimal
conversion is assumed.
@@ -91,11 +91,10 @@ Calc command line
-m.
-i Become interactive if possible. Be default, if
calc_cmd args are given, calc will execute them and
exit. This flag args are given, calc will execute them
and exit. This flag will cause calc to drop into
interactive mode after the commands are executed.
-i Become interactive if possible. If calc_cmd args are given,
by default, calc will execute them and exit. This flag causes
calc to drop into interactive mode after the commands are
executed.
For example:
@@ -144,7 +143,7 @@ Calc command line
if directed.
If the mode disables opening of files for reading, then
the startup resource files are disabled as of -q was
the startup resource files are disabled as if -q was
given. The reading of key bindings is also disabled
when the mode disables opening of files for reading.
@@ -163,7 +162,7 @@ Calc command line
The -p flag overrides -i.
-q Disable the use of the $CALCRC startup scripts.
-q Disable the reading of the startup scripts.
-s By default, all calc_cmd args are evaluated and
@@ -178,39 +177,87 @@ Calc command line
-v Print the calc version number and exit.
CALC COMMAND LINE
CALC COMMAND ARGUMENTS
Without calc_cmd, calc operates interactively. If one or
more calc_cmd are given on the command line and -s is NOT
given, then calc will evaluate and execute them and then
exit.
If -i is given, calc will attempt to become interactive even
of one or more calc_cmd are given on the command line.
With no calc_cmd arguments, calc operates interactively. If one
or more arguments are given on the command line and -s is NOT
given, then calc will read and execute them and either attempt
to go interactive according as the -i flag was present or absent.
If -s is given, calc will not evaluate any calc_cmd
arguments but instead make them available as strings to the
argv() builtin function.
Normally on startup, calc attempts to execute a collection
of resource files. The environment variable $CALCRC (if
non-existent then a compiled in value) contains a
: separated list of startup resource files. No error
conditions are produced if these startup resource file are
not found.
Sufficiently simple commands with no no characters like
parentheses, brackets, semicolons, '*', which have special
interpretations in UNIX commands may be entered, possibly with
spaces, until the terminating newline. For example:
If the mode disables opening of files for reading, then the
startup resource files are disabled as of -q was given and
$CALCRC as well as the default compiled in value are
ignored.
calc 23 + 47
Filenames are subject to ``~'' expansion (see below). The
environment variable $CALCPATH (if non-existent then a
compiled in value) contains a : separated list of search
directories. If a file does not begin with /, ~ or ./, then
it is searched for under each directory listed in the
$CALCPATH. It is an error if no such readable file is
found.
should respond with display of 70, but:
calc 23 * 47
may fail. Such cases can usually be made to work as expected by
enclosing the command between single quotation marks as in:
calc '23 * 47'
and
calc 'print sqrt(2), exp(1)'
If '!' is to be used to indicate the factorial function, for
shells like csh for which '!' followed by a non-space character
is used for history substitution, it may be necessary to
include a space or use a backslash to escape the special
meaning of '!'. For example, the command "print 27!^2" may have
to be replaced by "print 27! ^2" or "print 27\!^2".
CALC STARTUP FILES
Normally on startup, if the environment variable $CALCRC is
undefined and calc is invoked without the -q flag, or if
$CALCRC is defined and calc is invoked with -e, calc looks
for a file "startup" in the calc resource directory, .calcrc in
the user's home directory, and .calcinit in the current directory.
If one or more of these are found, they are read in succession
as calc scripts and their commands executed. When defined,
$CALCRC is to contain a ':' separated list of names of files,
and if calc is then invoked without either the -q or -e flags,
these files are read in succession and their commands executed.
No error condition is produced if a listed file is not found.
If the mode specified by -m disables opening of files for
reading, then the reading of startup files is also disabled
as if -q was given.
CALC FILE SEARCH PATH
If the environment variable $CALCPATH is undefined, or if it
is defined and calc is invoked with the -e flag, when a file
name not beginning with /, ~ or ./, is specified as in:
calc read myfile
calc searches in succession:
./myfile
./myfile.cal
${LIBDIR}/myfile
${LIBDIR}/myfile.cal
${CUSTOMLIBDIR}/myfile
${CUSTOMLIBDIR}/myfile.cal
If the file is found, the search stops and the commands in
the file are executed. It is an error if no readable file
with the specified name is found. An alternative search
path can be specified by defining $CALCPATH in the same way
as PATH is defined, as a ':' separated list of directories,
and then invoking calc without the -e flag.
Calc treats all open files, other than stdin, stdout and
stderr as files available for reading and writing. One may
@@ -222,21 +269,24 @@ Calc command line
SHELL SCRIPT MODE
If an executable file begins with:
If first line of an executable file begins #! followed by the
absolute pathname of the calc program and the flag -S as in
#!/usr/local/bin/calc -S [-other_flags ...]
#!/usr/local/bin/calc -S [other_flags]
the rest of the file will be processed in shell script mode.
Note that -S (UPPER CASE -S) must be the first -flag on the
``#!'' line. Any other optional ``-other_flags'' must come
after the -S.
Note that -S (UPPER CASE S) must be the first -flag on the
``#!'' line. Any optional ``other_flags'' must come after
the -S.
In shell script mode the contents of the file are evaluated
and executed as if they were processed by the read command.
Any optional ``-other_flags'' will by parsed first followed
by any arguments given shell script itself.
In shell script mode the contents of the file are read and
executed as if they were in a file being processed by a read
command, except that a "command" beginning with '#' followed by
whitespace and ending at the next newline is treated as a comment.
Any optional ``other_flags'' will be parsed first followed by
the later lines within the script itself.
In shell script mode, -s (lower case -s) is always assumed.
In shell script mode, -s (lower case s) is always assumed.
In addition, -d and -p are automatically set if -i is not
given.
@@ -303,8 +353,8 @@ For more information use the following calc commands:
## received a copy with calc; if not, write to Free Software Foundation, Inc.
## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
##
## @(#) $Revision: 29.1 $
## @(#) $Id: usage,v 29.1 1999/12/14 09:16:10 chongo Exp $
## @(#) $Revision: 29.2 $
## @(#) $Id: usage,v 29.2 1999/12/17 10:05:20 chongo Exp $
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/usage,v $
##
## Under source code control: 1991/07/21 04:37:25

11
token.c
View File

@@ -19,8 +19,8 @@
* received a copy with calc; if not, write to Free Software Foundation, Inc.
* 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
*
* @(#) $Revision: 29.1 $
* @(#) $Id: token.c,v 29.1 1999/12/14 09:16:16 chongo Exp $
* @(#) $Revision: 29.2 $
* @(#) $Id: token.c,v 29.2 1999/12/17 09:22:38 chongo Exp $
* @(#) $Source: /usr/local/src/cmd/calc/RCS/token.c,v $
*
* Under source code control: 1990/02/15 01:48:25
@@ -335,9 +335,10 @@ gettoken(void)
switch(nextchar()) {
case '=': type = T_HASHEQUALS; break;
case '!': type = T_POUNDBANG; eatline(); break;
case ' ': type = T_POUNDCOMMENT; eatline();
break;
case '\t': type = T_POUNDCOMMENT; eatline();
case '#':
case ' ':
case '\t':
type = T_POUNDCOMMENT; eatline();
break;
case '\n': type = T_POUNDCOMMENT; break;
default: type = T_HASH; reread();

View File

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