mirror of
https://github.com/lcn2/calc.git
synced 2025-08-16 01:03:29 +03:00
Release calc version 2.12.4.0
This commit is contained in:
27
CHANGES
27
CHANGES
@@ -32,29 +32,6 @@ The following are the changes from calc version 2.12.4.0 to date:
|
|||||||
Fixed a bug where an certains typos (e.g., calling an unknown
|
Fixed a bug where an certains typos (e.g., calling an unknown
|
||||||
function) would previously cause calc to exit.
|
function) would previously cause calc to exit.
|
||||||
|
|
||||||
Updated the COPYING file to reflect the new filenames associated
|
|
||||||
with the SHA1 hash function, and removed mention of files related
|
|
||||||
to the SHA (SHA0, not SHA1) and the MD5 hash functions (which is
|
|
||||||
no longer supported in calc).
|
|
||||||
|
|
||||||
Fixed a bug where a calling vsnprintf() twice created problems.
|
|
||||||
The thanks for this fix goes to Matthew Miller (mattdm at mattdm
|
|
||||||
dot org) for this patch.
|
|
||||||
|
|
||||||
Michael Penk (mpenk at wuska dot com) reported success in installs
|
|
||||||
under windoz via Cygwin by making a change to the Cygwin target.
|
|
||||||
These changes have been folded into the main calc Makefile.
|
|
||||||
The old recommendation of using 'make win32_hsrc' is no longer
|
|
||||||
required for Cygwin. See the README.WINDOWS file for details.
|
|
||||||
|
|
||||||
Added dms.cal and hms.cal resource files. The dms.cal is a more
|
|
||||||
functional version of deg.cal. It is a superset except that increment
|
|
||||||
and decrement is on the arc second level. The hms.cal is for
|
|
||||||
24-hour cycle instread of the 360 degree cycle of dms.cal.
|
|
||||||
|
|
||||||
Changed deg.cal object name from dms to deg so that the more functional
|
|
||||||
dms.cal can own the dms object name.
|
|
||||||
|
|
||||||
|
|
||||||
The following are the changes from calc version 2.12.3.0 to 2.12.3.3:
|
The following are the changes from calc version 2.12.3.0 to 2.12.3.3:
|
||||||
|
|
||||||
@@ -6792,8 +6769,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.
|
||||||
## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
##
|
##
|
||||||
## @(#) $Revision: 30.19 $
|
## @(#) $Revision: 30.18 $
|
||||||
## @(#) $Id: CHANGES,v 30.19 2010/09/02 06:09:26 chongo Exp $
|
## @(#) $Id: CHANGES,v 30.18 2008/10/24 09:55:12 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
|
||||||
|
18
COPYING
18
COPYING
@@ -6,14 +6,14 @@ This file is Copyrighted
|
|||||||
|
|
||||||
This file is covered under the following Copyright:
|
This file is covered under the following Copyright:
|
||||||
|
|
||||||
Copyright (C) 1999-2008 Landon Curt Noll
|
Copyright (C) 1999 Landon Curt Noll
|
||||||
All rights reserved.
|
All rights reserved.
|
||||||
|
|
||||||
Everyone is permitted to copy and distribute verbatim copies
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
of this license document, but changing it is not allowed.
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
# @(#) $Revision: 30.2 $
|
# @(#) $Revision: 30.1 $
|
||||||
# @(#) $Id: COPYING,v 30.2 2008/10/24 10:46:52 chongo Exp $
|
# @(#) $Id: COPYING,v 30.1 2007/03/16 11:09:46 chongo Exp $
|
||||||
# @(#) $Source: /usr/local/src/cmd/calc/RCS/COPYING,v $
|
# @(#) $Source: /usr/local/src/cmd/calc/RCS/COPYING,v $
|
||||||
|
|
||||||
=-=
|
=-=
|
||||||
@@ -168,8 +168,9 @@ Calc copyrights and exception files
|
|||||||
|
|
||||||
These files are not covered under one of the Copyrights listed above:
|
These files are not covered under one of the Copyrights listed above:
|
||||||
|
|
||||||
sha1.c sha1.h COPYING
|
shs1.c shs1.h shs.c shs.h
|
||||||
COPYING-LGPL cal/qtime.cal cal/screen.cal
|
md5.c md5.h COPYING COPYING-LGPL
|
||||||
|
cal/qtime.cal cal/screen.cal
|
||||||
|
|
||||||
The file COPYING-LGPL, which contains a copy of the version 2.1
|
The file COPYING-LGPL, which contains a copy of the version 2.1
|
||||||
GNU Lesser General Public License, is itself Copyrighted by the
|
GNU Lesser General Public License, is itself Copyrighted by the
|
||||||
@@ -181,8 +182,11 @@ Calc copyrights and exception files
|
|||||||
top of this file. It is important to note that you may distribute
|
top of this file. It is important to note that you may distribute
|
||||||
verbatim copies of this file but you may not modify this file.
|
verbatim copies of this file but you may not modify this file.
|
||||||
|
|
||||||
Some of these exception files are in the public domain. Other files
|
Some of these exception files are in the public domain. The md5.c
|
||||||
are under the LGPL but have different authors that those listed above.
|
and md5.h files were "derived from the RSA Data Security, Inc. MD5
|
||||||
|
Message-Digest Algorithm" and are under a copyright that allows these
|
||||||
|
two files to be freely used and distributed. Other files are under
|
||||||
|
the LGPL but have different authors that those listed above.
|
||||||
|
|
||||||
In all cases one may use and distribute these exception files freely.
|
In all cases one may use and distribute these exception files freely.
|
||||||
And because one may freely distribute the LGPL covered files, the
|
And because one may freely distribute the LGPL covered files, the
|
||||||
|
49
Makefile
49
Makefile
@@ -39,8 +39,8 @@
|
|||||||
# received a copy with calc; if not, write to Free Software Foundation, Inc.
|
# received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||||
# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#
|
#
|
||||||
MAKEFILE_REV= $$Revision: 30.44 $$
|
MAKEFILE_REV= $$Revision: 30.41 $$
|
||||||
# @(#) $Id: Makefile.ship,v 30.44 2010/09/02 06:07:07 chongo Exp $
|
# @(#) $Id: Makefile.ship,v 30.41 2008/10/24 09:20:09 chongo Exp $
|
||||||
# @(#) $Source: /usr/local/src/cmd/calc/RCS/Makefile.ship,v $
|
# @(#) $Source: /usr/local/src/cmd/calc/RCS/Makefile.ship,v $
|
||||||
#
|
#
|
||||||
# Under source code control: 1990/02/15 01:48:41
|
# Under source code control: 1990/02/15 01:48:41
|
||||||
@@ -983,12 +983,11 @@ MKDIR_ARG= -p
|
|||||||
|
|
||||||
# Some out of date operating systems require / want an executable to
|
# Some out of date operating systems require / want an executable to
|
||||||
# end with a certain file extension. Some compile systems such as
|
# end with a certain file extension. Some compile systems such as
|
||||||
# windoz build calc as calc.exe. The EXT variable is used to denote
|
# Cygwin build calc as calc.exe. The EXT variable is used to denote
|
||||||
# the extension required by such. Note that Cygwin requires EXT to be
|
# the extension required by such.
|
||||||
# the same as Linux/Un*x/GNU, even though it runs under windoz.
|
|
||||||
#
|
#
|
||||||
# EXT= # normal Un*x / Linux / GNU/Linux / Cygwin
|
# EXT= # normal Un*x / Linux / GNU/Linux systems
|
||||||
# EXT=.exe # windoz
|
# EXT=.exe # windoz / Cygwin
|
||||||
#
|
#
|
||||||
# If in doubt, use EXT=
|
# If in doubt, use EXT=
|
||||||
#
|
#
|
||||||
@@ -997,7 +996,7 @@ EXT=
|
|||||||
|
|
||||||
# The default calc versions
|
# The default calc versions
|
||||||
#
|
#
|
||||||
VERSION= 2.12.4.1
|
VERSION= 2.12.4.0
|
||||||
VERS= 2.12.4
|
VERS= 2.12.4
|
||||||
VER= 2.12
|
VER= 2.12
|
||||||
VE= 2
|
VE= 2
|
||||||
@@ -1335,40 +1334,6 @@ CC= ${PURIFY} ${LCC} ${CCWERR}
|
|||||||
#
|
#
|
||||||
endif
|
endif
|
||||||
|
|
||||||
#################
|
|
||||||
# Cygwin target #
|
|
||||||
#################
|
|
||||||
|
|
||||||
ifeq ($(target),Cygwin)
|
|
||||||
#
|
|
||||||
BLD_TYPE= calc-static-only
|
|
||||||
#
|
|
||||||
CC_SHARE= -fPIC
|
|
||||||
DEFAULT_LIB_INSTALL_PATH= ${PWD}:/lib:/usr/lib:${LIBDIR}:/usr/local/lib
|
|
||||||
LD_SHARE= "-Wl,-rpath,${DEFAULT_LIB_INSTALL_PATH}" \
|
|
||||||
"-Wl,-rpath-link,${DEFAULT_LIB_INSTALL_PATH}"
|
|
||||||
LIBCALC_SHLIB= -shared "-Wl,-soname,libcalc${LIB_EXT_VERSION}"
|
|
||||||
ifdef ALLOW_CUSTOM
|
|
||||||
LIBCUSTCALC_SHLIB= -shared "-Wl,-soname,libcustcalc${LIB_EXT_VERSION}"
|
|
||||||
else
|
|
||||||
LIBCUSTCALC_SHLIB=
|
|
||||||
endif
|
|
||||||
#
|
|
||||||
CC_STATIC=
|
|
||||||
LIBCALC_STATIC=
|
|
||||||
LIBCUSTCALC_STATIC=
|
|
||||||
LD_STATIC=
|
|
||||||
#
|
|
||||||
CCWARN= -Wall -W -Wno-comment
|
|
||||||
CCWERR=
|
|
||||||
CCOPT= ${DEBUG}
|
|
||||||
CCMISC=
|
|
||||||
#
|
|
||||||
LCC= gcc
|
|
||||||
CC= ${PURIFY} ${LCC} ${CCWERR}
|
|
||||||
#
|
|
||||||
endif
|
|
||||||
|
|
||||||
#######################################################
|
#######################################################
|
||||||
# simple target - values used to form Makefile.simple #
|
# simple target - values used to form Makefile.simple #
|
||||||
#######################################################
|
#######################################################
|
||||||
|
@@ -39,8 +39,8 @@
|
|||||||
# received a copy with calc; if not, write to Free Software Foundation, Inc.
|
# received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||||
# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
# 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
||||||
#
|
#
|
||||||
MAKEFILE_REV= $$Revision: 30.44 $$
|
MAKEFILE_REV= $$Revision: 30.41 $$
|
||||||
# @(#) $Id: Makefile.ship,v 30.44 2010/09/02 06:07:07 chongo Exp $
|
# @(#) $Id: Makefile.ship,v 30.41 2008/10/24 09:20:09 chongo Exp $
|
||||||
# @(#) $Source: /usr/local/src/cmd/calc/RCS/Makefile.ship,v $
|
# @(#) $Source: /usr/local/src/cmd/calc/RCS/Makefile.ship,v $
|
||||||
#
|
#
|
||||||
# Under source code control: 1990/02/15 01:48:41
|
# Under source code control: 1990/02/15 01:48:41
|
||||||
@@ -960,12 +960,11 @@ MKDIR_ARG= -p
|
|||||||
|
|
||||||
# Some out of date operating systems require / want an executable to
|
# Some out of date operating systems require / want an executable to
|
||||||
# end with a certain file extension. Some compile systems such as
|
# end with a certain file extension. Some compile systems such as
|
||||||
# windoz build calc as calc.exe. The EXT variable is used to denote
|
# Cygwin build calc as calc.exe. The EXT variable is used to denote
|
||||||
# the extension required by such. Note that Cygwin requires EXT to be
|
# the extension required by such.
|
||||||
# the same as Linux/Un*x/GNU, even though it runs under windoz.
|
|
||||||
#
|
#
|
||||||
# EXT= # normal Un*x / Linux / GNU/Linux / Cygwin
|
# EXT= # normal Un*x / Linux / GNU/Linux systems
|
||||||
# EXT=.exe # windoz
|
# EXT=.exe # windoz / Cygwin
|
||||||
#
|
#
|
||||||
# If in doubt, use EXT=
|
# If in doubt, use EXT=
|
||||||
#
|
#
|
||||||
@@ -974,7 +973,7 @@ EXT=
|
|||||||
|
|
||||||
# The default calc versions
|
# The default calc versions
|
||||||
#
|
#
|
||||||
VERSION= 2.12.4.1
|
VERSION= 2.12.4.0
|
||||||
VERS= 2.12.4
|
VERS= 2.12.4
|
||||||
VER= 2.12
|
VER= 2.12
|
||||||
VE= 2
|
VE= 2
|
||||||
|
107
README.WINDOWS
107
README.WINDOWS
@@ -10,63 +10,6 @@ NOTE: The main developers do not have access to a Windoz based platform.
|
|||||||
Of course you are welcome to send us any patches that fix your
|
Of course you are welcome to send us any patches that fix your
|
||||||
Windoz build environment.
|
Windoz build environment.
|
||||||
|
|
||||||
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
||||||
=-= compiling with Cygwin =-=
|
|
||||||
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
||||||
|
|
||||||
An effort is being made to allow windows users to compile calc using the
|
|
||||||
Cygwin project (http://sources.redhat.com/cygwin/) with the GCC compiler
|
|
||||||
and Un*x tools for Windows.
|
|
||||||
|
|
||||||
The major porting work for Cygwin was performed by Thomas Jones-Low
|
|
||||||
(tjoneslo at softstart dot com).
|
|
||||||
|
|
||||||
In March 2009, Michael Penk (mpenk at wuska dot com) reported success in
|
|
||||||
installs under Cygwin:
|
|
||||||
|
|
||||||
On my fairly complete Cygwin installs, everything compiles,
|
|
||||||
checks, and installs correctly. My Cygwin is configured
|
|
||||||
in a very standard way (out of the box, using all of Cygwin's
|
|
||||||
defaults). The install worked on 5 different machines with
|
|
||||||
Cygwin on them: one XP home, one XP professional, and three
|
|
||||||
Vista professionals.
|
|
||||||
|
|
||||||
Using the calc Makefile, he did the following:
|
|
||||||
|
|
||||||
make all target=Cygwin
|
|
||||||
make check
|
|
||||||
make install
|
|
||||||
|
|
||||||
He also reports:
|
|
||||||
|
|
||||||
Of course, one should be logged in as an Administrator when
|
|
||||||
one builds and installs calc.
|
|
||||||
|
|
||||||
He was compiling calc 2.12.4.0 with Cygwin version 1.5.25-15.
|
|
||||||
|
|
||||||
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
||||||
=-= If all else fails, for Cygwin =-=
|
|
||||||
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
|
||||||
|
|
||||||
Much earlier (2001?) Thomas Jones-Low (tjoneslo at softstart dot com)
|
|
||||||
recommended that you generate by hand all of the header files that
|
|
||||||
by the Makefile. This has been done for you via the makefile rule:
|
|
||||||
|
|
||||||
make win32_hsrc
|
|
||||||
|
|
||||||
which uses the Makefile variables in win32.mkdef to form these header
|
|
||||||
files under win32 directory.
|
|
||||||
|
|
||||||
You will find generated versions of these files located in the win32
|
|
||||||
sub-directory. These files may be appropriate for your Cygwin building
|
|
||||||
needs.
|
|
||||||
|
|
||||||
In particular:
|
|
||||||
|
|
||||||
Just copy the win32/*.[ch] files up into the top level calc
|
|
||||||
source directory, edit them (if needed) and build using the
|
|
||||||
Cygwin GCC compiler and Cygwin build environment.
|
|
||||||
|
|
||||||
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
||||||
=-= compiling under DJGPP =-=
|
=-= compiling under DJGPP =-=
|
||||||
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
||||||
@@ -125,8 +68,52 @@ Look for Makefile comments of the form:
|
|||||||
Follow those recommendations. In cases where they conflict with
|
Follow those recommendations. In cases where they conflict with
|
||||||
the above Makefile list, follow the recommendation in the Makefile.
|
the above Makefile list, follow the recommendation in the Makefile.
|
||||||
|
|
||||||
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
||||||
|
=-= compiling with Cygwin =-=
|
||||||
|
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
|
||||||
|
|
||||||
## Copyright (C) 2002-2009 Landon Curt Noll and Thomas Jones-Low
|
An effort is being made to allow windows users to compile calc using the
|
||||||
|
Cygwin project (http://sources.redhat.com/cygwin/) with the GCC compiler
|
||||||
|
and Un*x tools for Windows.
|
||||||
|
|
||||||
|
The major porting work was performed by Thomas Jones-Low
|
||||||
|
(tjoneslo at softstart dot com). He said:
|
||||||
|
|
||||||
|
I had previous stated to this group that I have successfully managed
|
||||||
|
to port a version of Calc to Windows, and promised some point to
|
||||||
|
post what was required, so here it is.
|
||||||
|
|
||||||
|
One obvious manner of doing this port is to get the latest version
|
||||||
|
of the Cygwin project (http://sources.redhat.com/cygwin/) with the
|
||||||
|
GCC compiler and Un*x tools for Windows and recompile.
|
||||||
|
|
||||||
|
I built my working version using Calc ... I am using Visual C++
|
||||||
|
version 7.0, which is an older version of the Microsoft development
|
||||||
|
tools. The make file provided with Calc is not compatible with
|
||||||
|
NMAKE, so I used the Visual Studio tools to generate another one
|
||||||
|
(not included). Calc is built in two parts, calc.dll, which is the
|
||||||
|
library, and calc.exe which is the command line interface.
|
||||||
|
|
||||||
|
He recommended that you generate by hand all of the header files that
|
||||||
|
by the Makefile. This has been done for you via the makefile rule:
|
||||||
|
|
||||||
|
make win32_hsrc
|
||||||
|
|
||||||
|
which uses the Makefile variables in win32.mkdef to form these header
|
||||||
|
files under win32 directory.
|
||||||
|
|
||||||
|
You will find generated versions of these files located in the win32
|
||||||
|
sub-directory. These files may be appropriate for your Cygwin building
|
||||||
|
needs.
|
||||||
|
|
||||||
|
In particular:
|
||||||
|
|
||||||
|
Just copy the win32/*.[ch] files up into the top level calc
|
||||||
|
source directory, edit them (if needed) and build using the
|
||||||
|
Cygwin GCC compiler and Cygwin build environment.
|
||||||
|
|
||||||
|
|
||||||
|
## Copyright (C) 2002-2007 Landon Curt Noll and Thomas Jones-Low
|
||||||
##
|
##
|
||||||
## Calc is open software; you can redistribute it and/or modify it under
|
## Calc is open software; you can redistribute it and/or modify it under
|
||||||
## the terms of the version 2.1 of the GNU Lesser General Public License
|
## the terms of the version 2.1 of the GNU Lesser General Public License
|
||||||
@@ -142,8 +129,8 @@ the above Makefile list, follow the recommendation in the Makefile.
|
|||||||
## 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.
|
||||||
## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
##
|
##
|
||||||
## @(#) $Revision: 30.2 $
|
## @(#) $Revision: 30.1 $
|
||||||
## @(#) $Id: README.WINDOWS,v 30.2 2009/03/14 02:29:31 chongo Exp $
|
## @(#) $Id: README.WINDOWS,v 30.1 2007/03/16 11:09:46 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
|
||||||
|
@@ -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.
|
||||||
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
#
|
#
|
||||||
# @(#) $Revision: 30.4 $
|
# @(#) $Revision: 30.3 $
|
||||||
# @(#) $Id: Makefile,v 30.4 2010/09/02 06:01:39 chongo Exp $
|
# @(#) $Id: Makefile,v 30.3 2007/09/21 01:27:27 chongo Exp $
|
||||||
# @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/Makefile,v $
|
# @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/Makefile,v $
|
||||||
#
|
#
|
||||||
# Under source code control: 1991/07/21 05:00:54
|
# Under source code control: 1991/07/21 05:00:54
|
||||||
@@ -193,8 +193,7 @@ CALC_FILES= README bigprime.cal deg.cal ellip.cal lucas.cal lucas_chk.cal \
|
|||||||
beer.cal hello.cal test5100.cal test5200.cal randombitrun.cal \
|
beer.cal hello.cal test5100.cal test5200.cal randombitrun.cal \
|
||||||
randomrun.cal repeat.cal xx_print.cal natnumset.cal qtime.cal \
|
randomrun.cal repeat.cal xx_print.cal natnumset.cal qtime.cal \
|
||||||
test8400.cal test8500.cal test8600.cal chi.cal intfile.cal screen.cal \
|
test8400.cal test8500.cal test8600.cal chi.cal intfile.cal screen.cal \
|
||||||
dotest.cal set8700.cal set8700.line alg_config.cal sumtimes.cal \
|
dotest.cal set8700.cal set8700.line alg_config.cal sumtimes.cal
|
||||||
dms.cal hms.cal
|
|
||||||
|
|
||||||
# These files are found (but not built) in the distribution
|
# These files are found (but not built) in the distribution
|
||||||
#
|
#
|
||||||
|
50
cal/README
50
cal/README
@@ -226,37 +226,14 @@ chrem.cal
|
|||||||
|
|
||||||
deg.cal
|
deg.cal
|
||||||
|
|
||||||
deg(deg, min, sec)
|
|
||||||
deg_add(a, b)
|
|
||||||
deg_neg(a)
|
|
||||||
deg_sub(a, b)
|
|
||||||
deg_mul(a, b)
|
|
||||||
deg_print(a)
|
|
||||||
|
|
||||||
Calculate in degrees, minutes, and seconds. For a more functional
|
|
||||||
version see dms.cal.
|
|
||||||
|
|
||||||
|
|
||||||
dms.cal
|
|
||||||
|
|
||||||
dms(deg, min, sec)
|
dms(deg, min, sec)
|
||||||
dms_add(a, b)
|
dms_add(a, b)
|
||||||
dms_neg(a)
|
dms_neg(a)
|
||||||
dms_sub(a, b)
|
dms_sub(a, b)
|
||||||
dms_mul(a, b)
|
dms_mul(a, b)
|
||||||
dms_print(a)
|
dms_print(a)
|
||||||
dms_abs(a)
|
|
||||||
dms_norm(a)
|
|
||||||
dms_test(a)
|
|
||||||
dms_int(a)
|
|
||||||
dms_frac(a)
|
|
||||||
dms_rel(a,b)
|
|
||||||
dms_cmp(a,b)
|
|
||||||
dms_inc(a)
|
|
||||||
dms_dec(a)
|
|
||||||
|
|
||||||
Calculate in degrees, minutes, and seconds. Unlike deg.cal, increments
|
Calculate in degrees, minutes, and seconds.
|
||||||
are on the arc second level. See also hms.cal.
|
|
||||||
|
|
||||||
|
|
||||||
dotest.cal
|
dotest.cal
|
||||||
@@ -308,27 +285,6 @@ hello.cal
|
|||||||
NOTE: This resource produces a lot of output. :-)
|
NOTE: This resource produces a lot of output. :-)
|
||||||
|
|
||||||
|
|
||||||
hms.cal
|
|
||||||
|
|
||||||
hms(hour, min, sec)
|
|
||||||
hms_add(a, b)
|
|
||||||
hms_neg(a)
|
|
||||||
hms_sub(a, b)
|
|
||||||
hms_mul(a, b)
|
|
||||||
hms_print(a)
|
|
||||||
hms_abs(a)
|
|
||||||
hms_norm(a)
|
|
||||||
hms_test(a)
|
|
||||||
hms_int(a)
|
|
||||||
hms_frac(a)
|
|
||||||
hms_rel(a,b)
|
|
||||||
hms_cmp(a,b)
|
|
||||||
hms_inc(a)
|
|
||||||
hms_dec(a)
|
|
||||||
|
|
||||||
Calculate in hours, minutes, and seconds. See also dmscal.
|
|
||||||
|
|
||||||
|
|
||||||
intfile.cal
|
intfile.cal
|
||||||
|
|
||||||
file2be(filename)
|
file2be(filename)
|
||||||
@@ -1058,8 +1014,8 @@ xx_print.cal
|
|||||||
## received a copy with calc; if not, write to Free Software Foundation, Inc.
|
## received a copy with calc; if not, write to Free Software Foundation, Inc.
|
||||||
## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
##
|
##
|
||||||
## @(#) $Revision: 30.2 $
|
## @(#) $Revision: 30.1 $
|
||||||
## @(#) $Id: README,v 30.2 2010/09/02 06:01:39 chongo Exp $
|
## @(#) $Id: README,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||||
## @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/README,v $
|
## @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/README,v $
|
||||||
##
|
##
|
||||||
## Under source code control: 1990/02/15 01:50:32
|
## Under source code control: 1990/02/15 01:50:32
|
||||||
|
38
cal/deg.cal
38
cal/deg.cal
@@ -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.
|
||||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
*
|
*
|
||||||
* @(#) $Revision: 30.2 $
|
* @(#) $Revision: 30.1 $
|
||||||
* @(#) $Id: deg.cal,v 30.2 2010/09/02 06:01:14 chongo Exp $
|
* @(#) $Id: deg.cal,v 30.1 2007/03/16 11:09:54 chongo Exp $
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/deg.cal,v $
|
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/deg.cal,v $
|
||||||
*
|
*
|
||||||
* Under source code control: 1990/02/15 01:50:33
|
* Under source code control: 1990/02/15 01:50:33
|
||||||
@@ -28,9 +28,9 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
obj deg {deg, min, sec};
|
obj dms {deg, min, sec};
|
||||||
|
|
||||||
define deg(deg, min, sec)
|
define dms(deg, min, sec)
|
||||||
{
|
{
|
||||||
local ans;
|
local ans;
|
||||||
|
|
||||||
@@ -38,18 +38,18 @@ define deg(deg, min, sec)
|
|||||||
sec = 0;
|
sec = 0;
|
||||||
if (isnull(min))
|
if (isnull(min))
|
||||||
min = 0;
|
min = 0;
|
||||||
obj deg ans;
|
obj dms ans;
|
||||||
ans.deg = deg;
|
ans.deg = deg;
|
||||||
ans.min = min;
|
ans.min = min;
|
||||||
ans.sec = sec;
|
ans.sec = sec;
|
||||||
fixdeg(ans);
|
fixdms(ans);
|
||||||
return ans;
|
return ans;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
define deg_add(a, b)
|
define dms_add(a, b)
|
||||||
{
|
{
|
||||||
local obj deg ans;
|
local obj dms ans;
|
||||||
|
|
||||||
ans.deg = 0;
|
ans.deg = 0;
|
||||||
ans.min = 0;
|
ans.min = 0;
|
||||||
@@ -66,14 +66,14 @@ define deg_add(a, b)
|
|||||||
ans.sec += b.sec;
|
ans.sec += b.sec;
|
||||||
} else
|
} else
|
||||||
ans.deg += b;
|
ans.deg += b;
|
||||||
fixdeg(ans);
|
fixdms(ans);
|
||||||
return ans;
|
return ans;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
define deg_neg(a)
|
define dms_neg(a)
|
||||||
{
|
{
|
||||||
local obj deg ans;
|
local obj dms ans;
|
||||||
|
|
||||||
ans.deg = -a.deg;
|
ans.deg = -a.deg;
|
||||||
ans.min = -a.min;
|
ans.min = -a.min;
|
||||||
@@ -82,15 +82,15 @@ define deg_neg(a)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
define deg_sub(a, b)
|
define dms_sub(a, b)
|
||||||
{
|
{
|
||||||
return a - b;
|
return a - b;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
define deg_mul(a, b)
|
define dms_mul(a, b)
|
||||||
{
|
{
|
||||||
local obj deg ans;
|
local obj dms ans;
|
||||||
|
|
||||||
if (istype(a, ans) && istype(b, ans))
|
if (istype(a, ans) && istype(b, ans))
|
||||||
quit "Cannot multiply degrees together";
|
quit "Cannot multiply degrees together";
|
||||||
@@ -103,24 +103,24 @@ define deg_mul(a, b)
|
|||||||
ans.min = b.min * a;
|
ans.min = b.min * a;
|
||||||
ans.sec = b.sec * a;
|
ans.sec = b.sec * a;
|
||||||
}
|
}
|
||||||
fixdeg(ans);
|
fixdms(ans);
|
||||||
return ans;
|
return ans;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
define deg_print(a)
|
define dms_print(a)
|
||||||
{
|
{
|
||||||
print a.deg : 'd' : a.min : 'm' : a.sec : 's' :;
|
print a.deg : 'd' : a.min : 'm' : a.sec : 's' :;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
define deg_abs(a)
|
define dms_abs(a)
|
||||||
{
|
{
|
||||||
return a.deg + a.min / 60 + a.sec / 3600;
|
return a.deg + a.min / 60 + a.sec / 3600;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
define fixdeg(a)
|
define fixdms(a)
|
||||||
{
|
{
|
||||||
a.min += frac(a.deg) * 60;
|
a.min += frac(a.deg) * 60;
|
||||||
a.deg = int(a.deg);
|
a.deg = int(a.deg);
|
||||||
@@ -134,5 +134,5 @@ define fixdeg(a)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (config("resource_debug") & 3) {
|
if (config("resource_debug") & 3) {
|
||||||
print "obj deg {deg, min, sec} defined";
|
print "obj dms {deg, min, sec} defined";
|
||||||
}
|
}
|
||||||
|
384
cal/dms.cal
384
cal/dms.cal
@@ -1,384 +0,0 @@
|
|||||||
/*
|
|
||||||
* dms - calculate in degrees, minutes, and seconds (based on deg)
|
|
||||||
*
|
|
||||||
* Copyright (C) 1999,2010 David I. Bell and 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.
|
|
||||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 30.2 $
|
|
||||||
* @(#) $Id: dms.cal,v 30.2 2010/09/02 06:14:16 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/dms.cal,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 1990/02/15 01:50:33
|
|
||||||
* File existed as early as: before 1990
|
|
||||||
*
|
|
||||||
* Share and enjoy! :-) http://www.isthe.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
obj dms {deg, min, sec};
|
|
||||||
|
|
||||||
define dms(deg, min, sec)
|
|
||||||
{
|
|
||||||
local obj dms ans; /* return value */
|
|
||||||
|
|
||||||
/* default missing args to 0 */
|
|
||||||
if (isnull(sec)) {
|
|
||||||
sec = 0;
|
|
||||||
}
|
|
||||||
if (isnull(min)) {
|
|
||||||
min = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* load object */
|
|
||||||
ans.deg = deg;
|
|
||||||
ans.min = min;
|
|
||||||
ans.sec = sec;
|
|
||||||
|
|
||||||
/* return properly formed object */
|
|
||||||
ans = fixdms(ans);
|
|
||||||
return ans;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
define dms_add(a, b)
|
|
||||||
{
|
|
||||||
local obj dms ans; /* return value */
|
|
||||||
|
|
||||||
/* initalize value to 1st arg */
|
|
||||||
if (istype(a, ans)) {
|
|
||||||
/* 1st arg is dms object, load it */
|
|
||||||
ans.deg = a.deg;
|
|
||||||
ans.min = a.min;
|
|
||||||
ans.sec = a.sec;
|
|
||||||
} else {
|
|
||||||
/* 1st arg is not dms, assume scalar degrees */
|
|
||||||
ans.deg = a;
|
|
||||||
ans.min = 0;
|
|
||||||
ans.sec = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* add value of 2nd arg */
|
|
||||||
if (istype(b, ans)) {
|
|
||||||
/* 2nd arg is dms object, add it */
|
|
||||||
ans.deg += b.deg;
|
|
||||||
ans.min += b.min;
|
|
||||||
ans.sec += b.sec;
|
|
||||||
} else {
|
|
||||||
/* 2nd arg is not dms, add scalar degrees */
|
|
||||||
ans.deg += b;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* return normalized result */
|
|
||||||
ans = fixdms(ans);
|
|
||||||
return ans;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
define dms_neg(a)
|
|
||||||
{
|
|
||||||
local obj dms ans; /* return value */
|
|
||||||
|
|
||||||
/* negate argument */
|
|
||||||
if (istype(a, ans)) {
|
|
||||||
/* 1st arg is dms object, load it */
|
|
||||||
ans.deg = -a.deg;
|
|
||||||
ans.min = -a.min;
|
|
||||||
ans.sec = -a.sec;
|
|
||||||
} else {
|
|
||||||
/* 2nd arg is not dms, negate scalar degrees */
|
|
||||||
ans.deg = -a;
|
|
||||||
ans.min = 0;
|
|
||||||
ans.sec = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* return normalized result */
|
|
||||||
ans = fixdms(ans);
|
|
||||||
return ans;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
define dms_sub(a, b)
|
|
||||||
{
|
|
||||||
local obj dms ans; /* return value */
|
|
||||||
|
|
||||||
/* initalize value to 1st arg */
|
|
||||||
if (istype(a, ans)) {
|
|
||||||
/* 1st arg is dms object, load it */
|
|
||||||
ans.deg = a.deg;
|
|
||||||
ans.min = a.min;
|
|
||||||
ans.sec = a.sec;
|
|
||||||
} else {
|
|
||||||
/* 1st arg is not dms, assume scalar degrees */
|
|
||||||
ans.deg = a;
|
|
||||||
ans.min = 0;
|
|
||||||
ans.sec = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* subtract value of 2nd arg */
|
|
||||||
if (istype(b, ans)) {
|
|
||||||
/* 2nd arg is dms object, subtract it */
|
|
||||||
ans.deg -= b.deg;
|
|
||||||
ans.min -= b.min;
|
|
||||||
ans.sec -= b.sec;
|
|
||||||
} else {
|
|
||||||
/* 2nd arg is not dms, subtract scalar degrees */
|
|
||||||
ans.deg -= b;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* return normalized result */
|
|
||||||
ans = fixdms(ans);
|
|
||||||
return ans;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
define dms_mul(a, b)
|
|
||||||
{
|
|
||||||
local obj dms ans; /* return value */
|
|
||||||
|
|
||||||
/* dms object multiplication */
|
|
||||||
if (istype(a, ans) && istype(b, ans)) {
|
|
||||||
ans.deg = dms_abs(a) * dms_abs(b);
|
|
||||||
ans.min = 0;
|
|
||||||
ans.sec = 0;
|
|
||||||
|
|
||||||
/* scalar multiplication */
|
|
||||||
} else if (istype(a, ans)) {
|
|
||||||
ans.deg = a.deg * b;
|
|
||||||
ans.min = a.min * b;
|
|
||||||
ans.sec = a.sec * b;
|
|
||||||
} else {
|
|
||||||
ans.deg = b.deg * a;
|
|
||||||
ans.min = b.min * a;
|
|
||||||
ans.sec = b.sec * a;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* return normalized result */
|
|
||||||
ans = fixdms(ans);
|
|
||||||
return ans;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
define dms_print(a)
|
|
||||||
{
|
|
||||||
local obj dms ans; /* temp object for dms type testing */
|
|
||||||
|
|
||||||
/* firewall - arg must be a dms object */
|
|
||||||
if (! istype(a, ans)) {
|
|
||||||
quit "dms_print called with non dms object";
|
|
||||||
}
|
|
||||||
|
|
||||||
/* print in dms form */
|
|
||||||
print a.deg : 'd' : a.min : 'm' : a.sec : 's' :;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
define dms_abs(a)
|
|
||||||
{
|
|
||||||
local obj dms ans; /* temp object for dms type testing */
|
|
||||||
local deg; /* return scalar value */
|
|
||||||
|
|
||||||
/* firewall - just absolute value non dms objects */
|
|
||||||
if (! istype(a, ans)) {
|
|
||||||
return abs(a);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* compute degrees */
|
|
||||||
deg = a.deg + a.min / 60 + a.sec / 3600;
|
|
||||||
|
|
||||||
/* return degrees */
|
|
||||||
return deg;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
define dms_norm(a)
|
|
||||||
{
|
|
||||||
local obj dms ans; /* temp object for dms type testing */
|
|
||||||
local deg; /* degrees */
|
|
||||||
|
|
||||||
/* firewall - arg must be a dms object */
|
|
||||||
if (! istype(a, ans)) {
|
|
||||||
quit "dms_norm called with non dms object";
|
|
||||||
}
|
|
||||||
|
|
||||||
/* square degrees (norm is the square of absolute value */
|
|
||||||
deg = dms_abs(a);
|
|
||||||
|
|
||||||
/* return degrees */
|
|
||||||
return deg*deg;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
define dms_test(a)
|
|
||||||
{
|
|
||||||
local obj dms ans; /* temp value */
|
|
||||||
|
|
||||||
/* firewall - arg must be a dms object */
|
|
||||||
if (! istype(a, ans)) {
|
|
||||||
quit "dms_test called with non dms object";
|
|
||||||
}
|
|
||||||
|
|
||||||
/* return false of non-zero */
|
|
||||||
ans = fixdms(a);
|
|
||||||
if (ans.deg == 0 && ans.min == 0 && ans.sec == 0) {
|
|
||||||
/* false */
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
/* true */
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
define dms_int(a)
|
|
||||||
{
|
|
||||||
local obj dms ans; /* return value */
|
|
||||||
|
|
||||||
/* firewall - arg must be a dms object */
|
|
||||||
if (! istype(a, ans)) {
|
|
||||||
quit "dms_int called with non dms object";
|
|
||||||
}
|
|
||||||
|
|
||||||
/* normalize the argument */
|
|
||||||
ans = fixdms(a);
|
|
||||||
|
|
||||||
/* truncate to the nearest second */
|
|
||||||
ans.sec = int(ans.sec);
|
|
||||||
|
|
||||||
/* return value to the nearest second */
|
|
||||||
return ans;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
define dms_frac(a)
|
|
||||||
{
|
|
||||||
local obj dms ans; /* return value */
|
|
||||||
|
|
||||||
/* firewall - arg must be a dms object */
|
|
||||||
if (! istype(a, ans)) {
|
|
||||||
quit "dms_frac called with non dms object";
|
|
||||||
}
|
|
||||||
|
|
||||||
/* normalize the argument */
|
|
||||||
ans = fixdms(a);
|
|
||||||
|
|
||||||
/* remove all but fractional seconds */
|
|
||||||
ans.deg = 0;
|
|
||||||
ans.min = 0;
|
|
||||||
ans.sec = frac(ans.sec);
|
|
||||||
|
|
||||||
/* return value to the second fraction */
|
|
||||||
return ans;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
define dms_rel(a,b)
|
|
||||||
{
|
|
||||||
local abs_a, abs_b; /* scalars of the arguments */
|
|
||||||
|
|
||||||
/* compute scalars of the arguments */
|
|
||||||
abs_a = dms_abs(a);
|
|
||||||
abs_b = dms_abs(b);
|
|
||||||
|
|
||||||
/* return the comparison */
|
|
||||||
return cmp(abs_a, abs_b);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
define dms_cmp(a,b)
|
|
||||||
{
|
|
||||||
local abs_a, abs_b; /* scalars of the arguments */
|
|
||||||
|
|
||||||
/* compute scalars of the arguments */
|
|
||||||
abs_a = dms_abs(a);
|
|
||||||
abs_b = dms_abs(b);
|
|
||||||
|
|
||||||
/* return the equality comparison */
|
|
||||||
return (abs_a == abs_b);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
define dms_inc(a)
|
|
||||||
{
|
|
||||||
local obj dms ans; /* return value */
|
|
||||||
|
|
||||||
/* increment a dms object */
|
|
||||||
if (istype(a, ans)) {
|
|
||||||
ans = a;
|
|
||||||
++ans.sec;
|
|
||||||
|
|
||||||
/* return normalized result */
|
|
||||||
ans = fixdms(ans);
|
|
||||||
return ans;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* increment a scalar */
|
|
||||||
return a+1;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
define dms_dec(a)
|
|
||||||
{
|
|
||||||
local obj dms ans; /* return value */
|
|
||||||
|
|
||||||
/* decrement a dms object */
|
|
||||||
if (istype(a, ans)) {
|
|
||||||
ans = a;
|
|
||||||
--ans.sec;
|
|
||||||
|
|
||||||
/* return normalized result */
|
|
||||||
ans = fixdms(ans);
|
|
||||||
return ans;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* decrement a scalar */
|
|
||||||
return a-1;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
define fixdms(a)
|
|
||||||
{
|
|
||||||
local obj dms ans; /* temp value */
|
|
||||||
|
|
||||||
/* firewall */
|
|
||||||
if (! istype(a, ans)) {
|
|
||||||
quit "attempt to fix a non dms object";
|
|
||||||
}
|
|
||||||
|
|
||||||
/* force minutes to be intergral */
|
|
||||||
a.min += frac(a.deg) * 60;
|
|
||||||
a.deg = int(a.deg);
|
|
||||||
|
|
||||||
/* force degrees to be intergral */
|
|
||||||
a.sec += frac(a.min) * 60;
|
|
||||||
a.min = int(a.min);
|
|
||||||
|
|
||||||
/* carry excess seconds into minutes */
|
|
||||||
a.min += a.sec // 60;
|
|
||||||
a.sec %= 60;
|
|
||||||
|
|
||||||
/* carry excess minutes into degrees */
|
|
||||||
a.deg += a.min // 60;
|
|
||||||
a.min %= 60;
|
|
||||||
|
|
||||||
/* round degrees :-) */
|
|
||||||
a.deg %= 360;
|
|
||||||
|
|
||||||
/* return normalized result */
|
|
||||||
return a;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (config("resource_debug") & 3) {
|
|
||||||
print "obj dms {deg, min, sec} defined";
|
|
||||||
}
|
|
384
cal/hms.cal
384
cal/hms.cal
@@ -1,384 +0,0 @@
|
|||||||
/*
|
|
||||||
* hms - calculate in hours, minutes, and seconds
|
|
||||||
*
|
|
||||||
* Copyright (C) 2010 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.
|
|
||||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
||||||
*
|
|
||||||
* @(#) $Revision: 30.2 $
|
|
||||||
* @(#) $Id: hms.cal,v 30.2 2010/09/02 06:14:16 chongo Exp $
|
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/hms.cal,v $
|
|
||||||
*
|
|
||||||
* Under source code control: 2010/09/01 17:14:55
|
|
||||||
* File existed as early as: 2010
|
|
||||||
*
|
|
||||||
* Share and enjoy! :-) http://www.isthe.com/chongo/tech/comp/calc/
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
obj hms {hour, min, sec};
|
|
||||||
|
|
||||||
define hms(hour, min, sec)
|
|
||||||
{
|
|
||||||
local obj hms ans; /* return value */
|
|
||||||
|
|
||||||
/* default missing args to 0 */
|
|
||||||
if (isnull(sec)) {
|
|
||||||
sec = 0;
|
|
||||||
}
|
|
||||||
if (isnull(min)) {
|
|
||||||
min = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* load object */
|
|
||||||
ans.hour = hour;
|
|
||||||
ans.min = min;
|
|
||||||
ans.sec = sec;
|
|
||||||
|
|
||||||
/* return properly formed object */
|
|
||||||
ans = fixhms(ans);
|
|
||||||
return ans;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
define hms_add(a, b)
|
|
||||||
{
|
|
||||||
local obj hms ans; /* return value */
|
|
||||||
|
|
||||||
/* initalize value to 1st arg */
|
|
||||||
if (istype(a, ans)) {
|
|
||||||
/* 1st arg is hms object, load it */
|
|
||||||
ans.hour = a.hour;
|
|
||||||
ans.min = a.min;
|
|
||||||
ans.sec = a.sec;
|
|
||||||
} else {
|
|
||||||
/* 1st arg is not hms, assume scalar hours */
|
|
||||||
ans.hour = a;
|
|
||||||
ans.min = 0;
|
|
||||||
ans.sec = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* add value of 2nd arg */
|
|
||||||
if (istype(b, ans)) {
|
|
||||||
/* 2nd arg is hms object, add it */
|
|
||||||
ans.hour += b.hour;
|
|
||||||
ans.min += b.min;
|
|
||||||
ans.sec += b.sec;
|
|
||||||
} else {
|
|
||||||
/* 2nd arg is not hms, add scalar hours */
|
|
||||||
ans.hour += b;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* return normalized result */
|
|
||||||
ans = fixhms(ans);
|
|
||||||
return ans;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
define hms_neg(a)
|
|
||||||
{
|
|
||||||
local obj hms ans; /* return value */
|
|
||||||
|
|
||||||
/* negate argument */
|
|
||||||
if (istype(a, ans)) {
|
|
||||||
/* 1st arg is hms object, load it */
|
|
||||||
ans.hour = -a.hour;
|
|
||||||
ans.min = -a.min;
|
|
||||||
ans.sec = -a.sec;
|
|
||||||
} else {
|
|
||||||
/* 2nd arg is not hms, negate scalar hours */
|
|
||||||
ans.hour = -a;
|
|
||||||
ans.min = 0;
|
|
||||||
ans.sec = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* return normalized result */
|
|
||||||
ans = fixhms(ans);
|
|
||||||
return ans;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
define hms_sub(a, b)
|
|
||||||
{
|
|
||||||
local obj hms ans; /* return value */
|
|
||||||
|
|
||||||
/* initalize value to 1st arg */
|
|
||||||
if (istype(a, ans)) {
|
|
||||||
/* 1st arg is hms object, load it */
|
|
||||||
ans.hour = a.hour;
|
|
||||||
ans.min = a.min;
|
|
||||||
ans.sec = a.sec;
|
|
||||||
} else {
|
|
||||||
/* 1st arg is not hms, assume scalar hours */
|
|
||||||
ans.hour = a;
|
|
||||||
ans.min = 0;
|
|
||||||
ans.sec = 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* subtract value of 2nd arg */
|
|
||||||
if (istype(b, ans)) {
|
|
||||||
/* 2nd arg is hms object, subtract it */
|
|
||||||
ans.hour -= b.hour;
|
|
||||||
ans.min -= b.min;
|
|
||||||
ans.sec -= b.sec;
|
|
||||||
} else {
|
|
||||||
/* 2nd arg is not hms, subtract scalar hours */
|
|
||||||
ans.hour -= b;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* return normalized result */
|
|
||||||
ans = fixhms(ans);
|
|
||||||
return ans;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
define hms_mul(a, b)
|
|
||||||
{
|
|
||||||
local obj hms ans; /* return value */
|
|
||||||
|
|
||||||
/* hms object multiplication */
|
|
||||||
if (istype(a, ans) && istype(b, ans)) {
|
|
||||||
ans.hour = hms_abs(a) * hms_abs(b);
|
|
||||||
ans.min = 0;
|
|
||||||
ans.sec = 0;
|
|
||||||
|
|
||||||
/* scalar multiplication */
|
|
||||||
} else if (istype(a, ans)) {
|
|
||||||
ans.hour = a.hour * b;
|
|
||||||
ans.min = a.min * b;
|
|
||||||
ans.sec = a.sec * b;
|
|
||||||
} else {
|
|
||||||
ans.hour = b.hour * a;
|
|
||||||
ans.min = b.min * a;
|
|
||||||
ans.sec = b.sec * a;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* return normalized result */
|
|
||||||
ans = fixhms(ans);
|
|
||||||
return ans;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
define hms_print(a)
|
|
||||||
{
|
|
||||||
local obj hms ans; /* temp object for hms type testing */
|
|
||||||
|
|
||||||
/* firewall - arg must be a hms object */
|
|
||||||
if (! istype(a, ans)) {
|
|
||||||
quit "hms_print called with non hms object";
|
|
||||||
}
|
|
||||||
|
|
||||||
/* print in hms form */
|
|
||||||
print a.hour : ':' : a.min : ':' : a.sec :;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
define hms_abs(a)
|
|
||||||
{
|
|
||||||
local obj hms ans; /* temp object for hms type testing */
|
|
||||||
local hour; /* return scalar value */
|
|
||||||
|
|
||||||
/* firewall - just absolute value non hms objects */
|
|
||||||
if (! istype(a, ans)) {
|
|
||||||
return abs(a);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* compute hours */
|
|
||||||
hour = a.hour + a.min / 60 + a.sec / 3600;
|
|
||||||
|
|
||||||
/* return hours */
|
|
||||||
return hour;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
define hms_norm(a)
|
|
||||||
{
|
|
||||||
local obj hms ans; /* temp object for hms type testing */
|
|
||||||
local hour; /* hours */
|
|
||||||
|
|
||||||
/* firewall - arg must be a hms object */
|
|
||||||
if (! istype(a, ans)) {
|
|
||||||
quit "hms_norm called with non hms object";
|
|
||||||
}
|
|
||||||
|
|
||||||
/* square hours (norm is the square of absolute value */
|
|
||||||
hour = hms_abs(a);
|
|
||||||
|
|
||||||
/* return hours */
|
|
||||||
return hour*hour;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
define hms_test(a)
|
|
||||||
{
|
|
||||||
local obj hms ans; /* temp value */
|
|
||||||
|
|
||||||
/* firewall - arg must be a hms object */
|
|
||||||
if (! istype(a, ans)) {
|
|
||||||
quit "hms_test called with non hms object";
|
|
||||||
}
|
|
||||||
|
|
||||||
/* return false of non-zero */
|
|
||||||
ans = fixhms(a);
|
|
||||||
if (ans.hour == 0 && ans.min == 0 && ans.sec == 0) {
|
|
||||||
/* false */
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
/* true */
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
define hms_int(a)
|
|
||||||
{
|
|
||||||
local obj hms ans; /* return value */
|
|
||||||
|
|
||||||
/* firewall - arg must be a hms object */
|
|
||||||
if (! istype(a, ans)) {
|
|
||||||
quit "hms_int called with non hms object";
|
|
||||||
}
|
|
||||||
|
|
||||||
/* normalize the argument */
|
|
||||||
ans = fixhms(a);
|
|
||||||
|
|
||||||
/* truncate to the nearest second */
|
|
||||||
ans.sec = int(ans.sec);
|
|
||||||
|
|
||||||
/* return value to the nearest second */
|
|
||||||
return ans;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
define hms_frac(a)
|
|
||||||
{
|
|
||||||
local obj hms ans; /* return value */
|
|
||||||
|
|
||||||
/* firewall - arg must be a hms object */
|
|
||||||
if (! istype(a, ans)) {
|
|
||||||
quit "hms_frac called with non hms object";
|
|
||||||
}
|
|
||||||
|
|
||||||
/* normalize the argument */
|
|
||||||
ans = fixhms(a);
|
|
||||||
|
|
||||||
/* remove all but fractional seconds */
|
|
||||||
ans.hour = 0;
|
|
||||||
ans.min = 0;
|
|
||||||
ans.sec = frac(ans.sec);
|
|
||||||
|
|
||||||
/* return value to the second fraction */
|
|
||||||
return ans;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
define hms_rel(a,b)
|
|
||||||
{
|
|
||||||
local abs_a, abs_b; /* scalars of the arguments */
|
|
||||||
|
|
||||||
/* compute scalars of the arguments */
|
|
||||||
abs_a = hms_abs(a);
|
|
||||||
abs_b = hms_abs(b);
|
|
||||||
|
|
||||||
/* return the comparison */
|
|
||||||
return cmp(abs_a, abs_b);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
define hms_cmp(a,b)
|
|
||||||
{
|
|
||||||
local abs_a, abs_b; /* scalars of the arguments */
|
|
||||||
|
|
||||||
/* compute scalars of the arguments */
|
|
||||||
abs_a = hms_abs(a);
|
|
||||||
abs_b = hms_abs(b);
|
|
||||||
|
|
||||||
/* return the equality comparison */
|
|
||||||
return (abs_a == abs_b);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
define hms_inc(a)
|
|
||||||
{
|
|
||||||
local obj hms ans; /* return value */
|
|
||||||
|
|
||||||
/* increment a hms object */
|
|
||||||
if (istype(a, ans)) {
|
|
||||||
ans = a;
|
|
||||||
++ans.sec;
|
|
||||||
|
|
||||||
/* return normalized result */
|
|
||||||
ans = fixhms(ans);
|
|
||||||
return ans;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* increment a scalar */
|
|
||||||
return a+1;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
define hms_dec(a)
|
|
||||||
{
|
|
||||||
local obj hms ans; /* return value */
|
|
||||||
|
|
||||||
/* decrement a hms object */
|
|
||||||
if (istype(a, ans)) {
|
|
||||||
ans = a;
|
|
||||||
--ans.sec;
|
|
||||||
|
|
||||||
/* return normalized result */
|
|
||||||
ans = fixhms(ans);
|
|
||||||
return ans;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* decrement a scalar */
|
|
||||||
return a-1;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
define fixhms(a)
|
|
||||||
{
|
|
||||||
local obj hms ans; /* temp value */
|
|
||||||
|
|
||||||
/* firewall */
|
|
||||||
if (! istype(a, ans)) {
|
|
||||||
quit "attempt to fix a non hms object";
|
|
||||||
}
|
|
||||||
|
|
||||||
/* force minutes to be intergral */
|
|
||||||
a.min += frac(a.hour) * 60;
|
|
||||||
a.hour = int(a.hour);
|
|
||||||
|
|
||||||
/* force hours to be intergral */
|
|
||||||
a.sec += frac(a.min) * 60;
|
|
||||||
a.min = int(a.min);
|
|
||||||
|
|
||||||
/* carry excess seconds into minutes */
|
|
||||||
a.min += a.sec // 60;
|
|
||||||
a.sec %= 60;
|
|
||||||
|
|
||||||
/* carry excess minutes into hours */
|
|
||||||
a.hour += a.min // 60;
|
|
||||||
a.min %= 60;
|
|
||||||
|
|
||||||
/* round hours by day */
|
|
||||||
a.hour %= 24;
|
|
||||||
|
|
||||||
/* return normalized result */
|
|
||||||
return a;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (config("resource_debug") & 3) {
|
|
||||||
print "obj hms {hour, min, sec} defined";
|
|
||||||
}
|
|
@@ -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.
|
||||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
*
|
*
|
||||||
* @(#) $Revision: 30.6 $
|
* @(#) $Revision: 30.5 $
|
||||||
* @(#) $Id: regress.cal,v 30.6 2010/09/02 06:09:06 chongo Exp $
|
* @(#) $Id: regress.cal,v 30.5 2008/10/24 07:09:41 chongo Exp $
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/regress.cal,v $
|
* @(#) $Source: /usr/local/src/cmd/calc/cal/RCS/regress.cal,v $
|
||||||
*
|
*
|
||||||
* Under source code control: 1990/02/15 01:50:36
|
* Under source code control: 1990/02/15 01:50:36
|
||||||
@@ -8012,11 +8012,7 @@ print '9838: skipping read -once hello.cal because it is an infinite loop';
|
|||||||
print '9839: skipping read -once xx_print.cal because it is a printing demo';
|
print '9839: skipping read -once xx_print.cal because it is a printing demo';
|
||||||
read -once sumtimes;
|
read -once sumtimes;
|
||||||
print '9840: read -once sumtimes';
|
print '9840: read -once sumtimes';
|
||||||
read -once dms;
|
print '9841: Ending read of selected calc resource files';
|
||||||
print '9841: read -once dms';
|
|
||||||
read -once hms;
|
|
||||||
print '9842: read -once hms';
|
|
||||||
print '9843: Ending read of selected calc resource files';
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@@ -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.
|
||||||
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
#
|
#
|
||||||
# @(#) $Revision: 30.21 $
|
# @(#) $Revision: 30.20 $
|
||||||
# @(#) $Id: Makefile.head,v 30.21 2008/11/05 17:38:01 chongo Exp $
|
# @(#) $Id: Makefile.head,v 30.20 2008/10/23 00:13:44 chongo Exp $
|
||||||
# @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/Makefile.head,v $
|
# @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/Makefile.head,v $
|
||||||
#
|
#
|
||||||
# Under source code control: 1997/03/09 02:28:54
|
# Under source code control: 1997/03/09 02:28:54
|
||||||
@@ -366,7 +366,7 @@ EXT=
|
|||||||
|
|
||||||
# The default calc versions
|
# The default calc versions
|
||||||
#
|
#
|
||||||
VERSION= 2.12.4.1
|
VERSION= 2.12.4.0
|
||||||
VERS= 2.12.4
|
VERS= 2.12.4
|
||||||
VER= 2.12
|
VER= 2.12
|
||||||
VE= 2
|
VE= 2
|
||||||
@@ -711,40 +711,6 @@ CC= ${PURIFY} ${LCC} ${CCWERR}
|
|||||||
#
|
#
|
||||||
endif
|
endif
|
||||||
|
|
||||||
#################
|
|
||||||
# Cygwin target #
|
|
||||||
#################
|
|
||||||
|
|
||||||
ifeq ($(target),Cygwin)
|
|
||||||
#
|
|
||||||
BLD_TYPE= calc-static-only
|
|
||||||
#
|
|
||||||
CC_SHARE= -fPIC
|
|
||||||
DEFAULT_LIB_INSTALL_PATH= ${PWD}:/lib:/usr/lib:${LIBDIR}:/usr/local/lib
|
|
||||||
LD_SHARE= "-Wl,-rpath,${DEFAULT_LIB_INSTALL_PATH}" \
|
|
||||||
"-Wl,-rpath-link,${DEFAULT_LIB_INSTALL_PATH}"
|
|
||||||
LIBCALC_SHLIB= -shared "-Wl,-soname,libcalc${LIB_EXT_VERSION}"
|
|
||||||
ifdef ALLOW_CUSTOM
|
|
||||||
LIBCUSTCALC_SHLIB= -shared "-Wl,-soname,libcustcalc${LIB_EXT_VERSION}"
|
|
||||||
else
|
|
||||||
LIBCUSTCALC_SHLIB=
|
|
||||||
endif
|
|
||||||
#
|
|
||||||
CC_STATIC=
|
|
||||||
LIBCALC_STATIC=
|
|
||||||
LIBCUSTCALC_STATIC=
|
|
||||||
LD_STATIC=
|
|
||||||
#
|
|
||||||
CCWARN= -Wall -W -Wno-comment
|
|
||||||
CCWERR=
|
|
||||||
CCOPT= ${DEBUG}
|
|
||||||
CCMISC=
|
|
||||||
#
|
|
||||||
LCC= gcc
|
|
||||||
CC= ${PURIFY} ${LCC} ${CCWERR}
|
|
||||||
#
|
|
||||||
endif
|
|
||||||
|
|
||||||
#######################################################
|
#######################################################
|
||||||
# simple target - values used to form Makefile.simple #
|
# simple target - values used to form Makefile.simple #
|
||||||
#######################################################
|
#######################################################
|
||||||
|
@@ -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.
|
||||||
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
#
|
#
|
||||||
# @(#) $Revision: 30.21 $
|
# @(#) $Revision: 30.20 $
|
||||||
# @(#) $Id: Makefile.head,v 30.21 2008/11/05 17:38:01 chongo Exp $
|
# @(#) $Id: Makefile.head,v 30.20 2008/10/23 00:13:44 chongo Exp $
|
||||||
# @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/Makefile.head,v $
|
# @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/Makefile.head,v $
|
||||||
#
|
#
|
||||||
# Under source code control: 1997/03/09 02:28:54
|
# Under source code control: 1997/03/09 02:28:54
|
||||||
@@ -366,7 +366,7 @@ EXT=
|
|||||||
|
|
||||||
# The default calc versions
|
# The default calc versions
|
||||||
#
|
#
|
||||||
VERSION= 2.12.4.1
|
VERSION= 2.12.4.0
|
||||||
VERS= 2.12.4
|
VERS= 2.12.4
|
||||||
VER= 2.12
|
VER= 2.12
|
||||||
VE= 2
|
VE= 2
|
||||||
|
@@ -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.
|
||||||
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
#
|
#
|
||||||
# @(#) $Revision: 30.21 $
|
# @(#) $Revision: 30.20 $
|
||||||
# @(#) $Id: Makefile.head,v 30.21 2008/11/05 17:38:01 chongo Exp $
|
# @(#) $Id: Makefile.head,v 30.20 2008/10/23 00:13:44 chongo Exp $
|
||||||
# @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/Makefile.head,v $
|
# @(#) $Source: /usr/local/src/cmd/calc/custom/RCS/Makefile.head,v $
|
||||||
#
|
#
|
||||||
# Under source code control: 1997/03/09 02:28:54
|
# Under source code control: 1997/03/09 02:28:54
|
||||||
@@ -351,7 +351,7 @@ EXT=
|
|||||||
|
|
||||||
# The default calc versions
|
# The default calc versions
|
||||||
#
|
#
|
||||||
VERSION= 2.12.4.1
|
VERSION= 2.12.4.0
|
||||||
VERS= 2.12.4
|
VERS= 2.12.4
|
||||||
VER= 2.12
|
VER= 2.12
|
||||||
VE= 2
|
VE= 2
|
||||||
|
5
token.c
5
token.c
@@ -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.
|
||||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
*
|
*
|
||||||
* @(#) $Revision: 30.2 $
|
* @(#) $Revision: 30.1 $
|
||||||
* @(#) $Id: token.c,v 30.2 2008/11/05 17:32:19 chongo Exp $
|
* @(#) $Id: token.c,v 30.1 2007/03/16 11:09:46 chongo Exp $
|
||||||
* @(#) $Source: /usr/local/src/cmd/calc/RCS/token.c,v $
|
* @(#) $Source: /usr/local/src/cmd/calc/RCS/token.c,v $
|
||||||
*
|
*
|
||||||
* Under source code control: 1990/02/15 01:48:25
|
* Under source code control: 1990/02/15 01:48:25
|
||||||
@@ -823,6 +823,7 @@ warning(char *fmt, ...)
|
|||||||
/* form the error message */
|
/* form the error message */
|
||||||
name = inputname();
|
name = inputname();
|
||||||
va_start(ap, fmt);
|
va_start(ap, fmt);
|
||||||
|
vsnprintf(calc_warn_msg, MAXERROR, fmt, ap);
|
||||||
if (name) {
|
if (name) {
|
||||||
snprintf(calc_warn_msg, MAXERROR, "\"%s\", line %ld: ",
|
snprintf(calc_warn_msg, MAXERROR, "\"%s\", line %ld: ",
|
||||||
name, linenumber());
|
name, linenumber());
|
||||||
|
@@ -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.
|
||||||
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||||
*
|
*
|
||||||
* @(#) $Revision: 30.11 $
|
* @(#) $Revision: 30.10 $
|
||||||
* @(#) $Id: version.c,v 30.11 2010/09/02 06:09:26 chongo Exp $
|
* @(#) $Id: version.c,v 30.10 2008/10/24 09:55:12 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
|
||||||
@@ -49,7 +49,7 @@ static char *program;
|
|||||||
#define MAJOR_VER 2 /* major library version */
|
#define MAJOR_VER 2 /* major library version */
|
||||||
#define MINOR_VER 12 /* minor library version */
|
#define MINOR_VER 12 /* minor library version */
|
||||||
#define MAJOR_PATCH 4 /* major software level under library version */
|
#define MAJOR_PATCH 4 /* major software level under library version */
|
||||||
#define MINOR_PATCH 1 /* minor software level or 0 if not patched */
|
#define MINOR_PATCH 0 /* minor software level or 0 if not patched */
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Reference in New Issue
Block a user