|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802 |
-
-
- README file for
-
-
- Bywater BASIC Interpreter, version 3.10
- ---------------------------------------------
-
- Copyright (c) 1993, Ted A. Campbell
- for bwBASIC version 2.10, 11 October 1993
-
- Version 2.20 modifications by Jon B. Volkoff,
- 25 November 1995
-
- Patch level 1 release by Jon B. Volkoff,
- 15 March 1996
-
- Patch level 2 release by Jon B. Volkoff,
- 11 October 1997
-
- Version 2.30 modifications by Paul Edwards,
- 5 March 2008
-
- Version 2.40 modifications by Paul Edwards,
- 26 Jan 2009
-
- Version 2.50 modifications by Paul Edwards,
- 4 June 2009
-
- Version 2.60 modifications by Paul Edwards,
- 6 November 2012
-
- Version 2.61 modifications by Paul Edwards,
- 4 August 2014
-
- Version 3.00 modifications by Howard Wulf, AF5NE
- 12 May 2015
-
- Version 3.10 modifications by Howard Wulf, AF5NE
- 27 July 2016
-
-
-
-
-
- DESCRIPTION:
-
- The Bywater BASIC Interpreter (bwBASIC) implements a large
- superset of the ANSI Standard for Minimal BASIC (X3.60-1978)
- and a significant subset of the ANSI Standard for Full BASIC
- (X3.113-1987) in C. It also offers shell programming facilities
- as an extension of BASIC. bwBASIC seeks to be as portable
- as possible.
-
- This version of Bywater BASIC is released under the terms of the
- GNU General Public License (GPL), which is distributed with this
- software in the file "COPYING". The GPL specifies the terms
- under which users may copy and use the software in this distribution.
-
- A separate license is available for commercial distribution,
- for information on which you should contact the author.
-
-
-
- OBTAINING THE SOURCE CODE:
-
- The source code for bwBASIC is available from
- http://bwbasic.sourceforge.net
-
-
-
- COMMUNICATIONS:
-
- email: tcamp@delphi.com (for Ted Campbell)
- eidetics@cerf.net (for Jon Volkoff)
- mutazilah@gmail.com (for Paul Edwards)
-
-
- A LIST OF BASIC COMMANDS AND FUNCTIONS IMPLEMENTED in bwBASIC:
-
- Be aware that many of these commands and functions will not be
- available unless you have enabled a particular dialect using
- the OPTION VERSION command.
-
- # X
- + X
- - X
- ? expressions...
- A$ LIKE B$
- APPEND filename$ | APPEND # filenumber
- AS string-variable$ [, ...]
- AUTO [start [, increment]]
- BACKSPACE # X
- BREAK line [, ...]]
- BYE
- CALL subroutine-name( [parameter [, ...] ] )
- CASE ELSE
- CASE constant [TO constant] | CASE IF partial-expression | CASE IS partial-expression
- CHAIN filename$ [, linenumber]
- CHANGE A$ TO X | CHANGE X TO A$
- CLEAR
- CLOAD [file-name$]
- CLOAD* ArrayName
- CLOSE filename$ [, ...]
- CLR
- CMDS
- COMMON variable [, ...]
- CONSOLE [WIDTH width]
- CONT
- CREATE filename$ [ RECL reclen ] AS filenum [ BUFF number ] [ RECS size ]
- CSAVE [file-name$]
- CSAVE* ArrayName
- DATA constant [, ...]
- DEF FNname[(arg...)] [= expression]
- DEF SUB
- DEFBYT letter[-letter] [, ...]
- DEFCUR letter[-letter] [, ...]
- DEFDBL letter[-letter] [, ...]
- DEFINT letter[-letter] [, ...]
- DEFLNG letter[-letter] [, ...]
- DEFSNG letter[-letter] [, ...]
- DEFSTR letter[-letter] [, ...]
- DELETE line [- line]
- DELIMIT # X, A$
- DIM variable( elements [, ...]) [, ...]
- DO [UNTIL|WHILE expression]
- DSP variable [, ...]]
- EDIT
- ELSE
- ELSEIF
- END
- END FUNCTION
- END IF
- END SELECT
- END SUB
- ERASE variable [, ...]
- EXCHANGE variable, variable
- EXIT
- EXIT DO
- EXIT FOR
- EXIT FUNCTION
- EXIT SUB
- EXIT UNTIL
- EXIT WHILE
- FEND
- FIELD [#] device-number, number AS string-variable$ [, ...]
- FILE # X, A$
- FILES A$[, ...]
- FNCS
- FNEND
- FOR variable = start TO finish [STEP increment]
- FUNCTION [ ( parameter [, ... ] ) ]
- GET filename$ , scalar [, ...]
- GO
- GO SUB line
- GO TO line
- GOODBYE
- GOSUB line
- GOTO line
- HELP name
- IF END # filenum THEN line1 [ELSE line2]
- IF MORE # filenum THEN line1 [ELSE line2]
- IF expression THEN
- IF expression THEN line1 [ELSE line2]
- IMAGE "format string"
- INPUT [# device-number]|[;]["prompt string";] variable [, ...]s
- LINE INPUT [[#] device-number,]["prompt string";] string-variable$
- LIST line1 [- line2]
- LLIST line1 [- line2]
- LOAD [file-name$]
- LOOP [UNTIL|WHILE expression]
- LPRINT [USING format-string$;] expressions...
- LPRINTER [WIDTH width]
- LSET string-variable$ = expression
- MAINTAINER
- MARGIN # filenumber, width
- MAT GET filename$, arrayname
- MAT INPUT arrayname
- MAT PRINT arrayname
- MAT PUT filename$, arrayname
- MAT READ arrayname
- MAT WRITE arrayname
- MAT arrayname = expression
- MERGE file-name
- MID$( variable$, start [, count ] ) = expression
- N = ABS( X )
- N = ACOS( X )
- N = ACS( X )
- N = ACSD( X )
- N = ACSG( X )
- N = ANGLE( X, Y )
- N = ARCSIN( X )
- N = ARCTAN( X )
- N = ARGC
- N = ARGV( X )
- N = ASC( A$ )
- N = ASC( A$, X )
- N = ASCII( A$ )
- N = ASIN( X )
- N = ASN( X )
- N = ASND( X )
- N = ASNG( X )
- N = ATAN( X )
- N = ATN( X )
- N = ATND( X )
- N = ATNG( X )
- N = BASE
- N = CATALOG
- N = CATALOG( A$ )
- N = CCUR( X )
- N = CDBL( X )
- N = CEIL( X )
- N = CHDIR( A$ )
- N = CINT( X )
- N = CLG( X )
- N = CLK( X )
- N = CLNG( X )
- N = CLOG( X )
- N = CLOSE
- N = CLOSE( X )
- N = CLS
- N = CODE( A$ )
- N = COLOR( X, Y )
- N = COS( X )
- N = COSD( X )
- N = COSG( X )
- N = COSH( X )
- N = COT( X )
- N = COUNT
- N = CSC( X )
- N = CSH( X )
- N = CSNG( X )
- N = CVC( A$ )
- N = CVD( A$ )
- N = CVI( A$ )
- N = CVL( A$ )
- N = CVS( A$ )
- N = DATE
- N = DEF FN
- N = DEG
- N = DEG( X )
- N = DEGREE
- N = DEGREE( X )
- N = DET
- N = DIM( ... )
- N = ENVIRON( A$ )
- N = EOF( X )
- N = EPS( X )
- N = ERL
- N = ERR
- N = ERRL
- N = ERRN
- N = ERROR( X )
- N = ERROR( X, A$ )
- N = EXAM( X )
- N = EXP( X )
- N = FETCH( X )
- N = FILEATTR( X, Y )
- N = FILES
- N = FILES( A$ )
- N = FILL( X, Y )
- N = FIX( X )
- N = FLOAT( X )
- N = FLOW
- N = FP( X )
- N = FRAC( X )
- N = FRE
- N = FRE( A$ )
- N = FRE( X )
- N = FREE
- N = FREE( A$ )
- N = FREE( X )
- N = FREEFILE
- N = GET( X )
- N = GET( X, Y )
- N = GRAD
- N = GRADIAN
- N = HCS( X )
- N = HOME
- N = HSN( X )
- N = HTN( X )
- N = INDEX( A$, B$ )
- N = INITIALIZE
- N = INP( X )
- N = INSTR( A$, B$ )
- N = INSTR( X, A$, B$ )
- N = INT%( X )
- N = INT( X )
- N = IP( X )
- N = KILL( A$ )
- N = LBOUND( ... )
- N = LEN( A$ )
- N = LGT( X )
- N = LN( X )
- N = LOC( X )
- N = LOCATE( X, Y )
- N = LOF( X )
- N = LOG( X )
- N = LOG10( X )
- N = LOG2( X )
- N = LOGE( X )
- N = LPOS
- N = LTW( X )
- N = LWIDTH( X )
- N = MATCH( A$, B$, X )
- N = MAX( X, Y )
- N = MAXBYT
- N = MAXCUR
- N = MAXDBL
- N = MAXDEV
- N = MAXINT
- N = MAXLEN( A$ )
- N = MAXLNG
- N = MAXLVL
- N = MAXNUM
- N = MAXSNG
- N = MEM
- N = MIN( X, Y )
- N = MINBYT
- N = MINCUR
- N = MINDBL
- N = MINDEV
- N = MININT
- N = MINLNG
- N = MINNUM
- N = MINSNG
- N = MKDIR( A$ )
- N = MOD( X, Y )
- N = NAME( A$, B$ )
- N = NOFLOW
- N = NOTRACE
- N = NULL( X )
- N = NUM
- N = NUM( A$ )
- N = OPEN( A$, X, B$ )
- N = OPEN( A$, X, B$, Y )
- N = ORD( A$ )
- N = OUT( X, Y )
- N = PAUSE( X )
- N = PDL( X )
- N = PEEK( X )
- N = PI
- N = PI( X )
- N = PIN( X )
- N = POKE( X, Y )
- N = POS
- N = POS( A$, B$ )
- N = POS( A$, B$, X )
- N = POS( X )
- N = PUT( X )
- N = PUT( X, Y )
- N = RAD
- N = RAD( X )
- N = RADIAN
- N = RAN
- N = RAN( X )
- N = RANDOM
- N = RANDOM( X )
- N = RANDOMIZE
- N = RANDOMIZE( X )
- N = REMAINDER( X, Y )
- N = RENAME( A$, B$ )
- N = RESET
- N = RMDIR( A$ )
- N = RND
- N = RND( X )
- N = ROUND( X, Y )
- N = SEC( X )
- N = SEEK( X )
- N = SEEK( X, Y )
- N = SGN( X )
- N = SHELL( A$ )
- N = SIN( X )
- N = SIND( X )
- N = SING( X )
- N = SINH( X )
- N = SIZE( ... )
- N = SIZE( A$ )
- N = SLEEP( X )
- N = SNH( X )
- N = SQR( X )
- N = SQRT( X )
- N = STUFF( X, Y )
- N = TAN( X )
- N = TAND( X )
- N = TANG( X )
- N = TANH( X )
- N = TI
- N = TIM
- N = TIM( X )
- N = TIME
- N = TIME( X )
- N = TIMER
- N = TOP
- N = TRACE
- N = TROFF
- N = TRON
- N = TRUNCATE( X, Y )
- N = UBOUND( ... )
- N = UNSAVE( A$ )
- N = VAL( A$ )
- N = VTAB( X )
- N = WAIT( X )
- N = WAIT( X, Y )
- N = WAIT( X, Y, Z )
- N = WIDTH( X )
- N = WIDTH( X, Y )
- NAME old-file-name AS new-file-name
- NEW
- NEXT [variable]
- NOT X
- OF line, ...
- OLD [file-name$]
- ON ERROR ...
- ON ERROR GOSUB errline
- ON ERROR GOTO errline
- ON ERROR RESUME ...
- ON ERROR RESUME NEXT
- ON ERROR RETURN ...
- ON ERROR RETURN NEXT
- ON TIMER count GOSUB line
- ON expression GOTO | GOSUB line [, ...]
- OPEN file-name [FOR INPUT|OUTPUT|APPEND|BINARY|RANDOM] AS [#]device-number [LEN = record-length]
- OPTION ...
- OPTION ANGLE ...
- OPTION ANGLE DEGREES
- OPTION ANGLE GRADIANS
- OPTION ANGLE RADIANS
- OPTION ARITHMETIC
- OPTION ARITHMETIC DECIMAL
- OPTION ARITHMETIC FIXED
- OPTION ARITHMETIC NATIVE
- OPTION BASE X
- OPTION BUGS
- OPTION BUGS OFF
- OPTION BUGS ON
- OPTION COMMENT char
- OPTION COMPARE
- OPTION COMPARE BINARY
- OPTION COMPARE DATABASE
- OPTION COMPARE TEXT
- OPTION COVERAGE
- OPTION COVERAGE OFF
- OPTION COVERAGE ON
- OPTION DATE format
- OPTION DISABLE
- OPTION DISABLE COMMAND name
- OPTION DISABLE FUNCTION name
- OPTION DISABLE OPERATOR name
- OPTION ENABLE
- OPTION ENABLE COMMAND name
- OPTION ENABLE FUNCTION name
- OPTION ENABLE OPERATOR name
- OPTION ERROR
- OPTION ERROR GOSUB
- OPTION ERROR GOTO
- OPTION EXPLICIT
- OPTION IMAGE char
- OPTION IMPLICIT
- OPTION INDENT number
- OPTION LABELS
- OPTION LABELS OFF
- OPTION LABELS ON
- OPTION PRINT char
- OPTION ROUND
- OPTION ROUND BANK
- OPTION ROUND MATH
- OPTION ROUND TRUNCATE
- OPTION SLEEP number
- OPTION STATEMENT char
- OPTION STDERR filename$
- OPTION STDIN filename$
- OPTION STDOUT filename$
- OPTION STRICT
- OPTION STRICT OFF
- OPTION STRICT ON
- OPTION TERMINAL
- OPTION TERMINAL ADM
- OPTION TERMINAL ANSI
- OPTION TERMINAL NONE
- OPTION TIME format
- OPTION TRACE
- OPTION TRACE OFF
- OPTION TRACE ON
- OPTION USING string$
- OPTION VERSION [version]
- PAUSE [comment]
- POP
- PRINT [# device-number,][USING format$;] expressions ...
- PUT filename$ , value [, ...]
- QUIT
- READ variable [, ...]
- RECALL ArrayName
- REM ...
- RENAME [file-name$]
- RENUM
- RENUMBER
- RESET filename$ [, ...]
- RESTORE [line]
- RESUME [ 0 | line | NEXT ]
- RETURN
- RSET string-variable$ = expression
- RUN [line | file-name$]
- S$ = ARGT$( X )
- S$ = ARGV$( X )
- S$ = CHAR$( X )
- S$ = CHAR( X, Y )
- S$ = CHR$( X )
- S$ = CHR( X )
- S$ = CLK$
- S$ = CLK( X )
- S$ = COMMAND$( X )
- S$ = CUR( X, Y )
- S$ = DAT$
- S$ = DATE$
- S$ = DATE$( X )
- S$ = ENVIRON$( A$ )
- S$ = ERR$
- S$ = ERROR$
- S$ = HEX$( X )
- S$ = INKEY$
- S$ = INPUT$( X )
- S$ = INPUT$( X, Y )
- S$ = KEY
- S$ = KEY$
- S$ = LCASE$( A$ )
- S$ = LEFT$( A$, X )
- S$ = LEFT( A$, X )
- S$ = LIN( X )
- S$ = LTRIM$( A$ )
- S$ = MAX( A$, B$ )
- S$ = MID$( A$, X )
- S$ = MID$( A$, X, Y )
- S$ = MID( A$, X )
- S$ = MID( A$, X, Y )
- S$ = MIN( A$, B$ )
- S$ = MKC$( X )
- S$ = MKD$( X )
- S$ = MKI$( X )
- S$ = MKL$( X )
- S$ = MKS$( X )
- S$ = NUM$( X )
- S$ = OCT$( X )
- S$ = REPEAT$( X, A$ )
- S$ = REPEAT$( X, Y )
- S$ = RIGHT$( A$, X )
- S$ = RIGHT( A$, X )
- S$ = RTRIM$( A$ )
- S$ = SEG$( A$, X, Y )
- S$ = SEG( A$, X, Y )
- S$ = SPA( X )
- S$ = SPACE$( X )
- S$ = SPACE( X )
- S$ = SPC( X )
- S$ = STR$( X )
- S$ = STR( X, Y )
- S$ = STRING$( X, A$ )
- S$ = STRING$( X, Y )
- S$ = STRING( X, Y )
- S$ = TAB( X )
- S$ = TI$
- S$ = TIME$
- S$ = TIME$( X )
- S$ = TRIM$( A$ )
- S$ = UCASE$( A$ )
- SAVE [file-name$]
- SCRATCH # X
- SELECT
- SELECT CASE expression
- STEP
- STOP
- STORE ArrayName
- SUB name [ ( parameter [,...] ) ]
- SUBEND
- SWAP variable, variable
- SYSTEM
- TEXT letter[-letter] [, ...]
- THEN line1
- TIMER
- TIMER OFF
- TIMER ON
- TIMER STOP
- TLOAD [file-name$]
- TO
- TRACE OFF
- TRACE ON
- TRACE ON | OFF
- TSAVE [file-name$]
- UEND
- UNTIL expression
- USE parameter$
- USER LBL
- VARS
- WEND
- WHILE
- WRITE [# device-number,] element [, .... ]
- X # Y
- X & Y
- X * Y
- X ** Y
- X + Y
- X - Y
- X / Y
- X < Y
- X <= Y
- X <> Y
- X = Y
- X =< Y
- X => Y
- X > Y
- X >< Y
- X >= Y
- X AND Y
- X EQ Y
- X EQV Y
- X GE Y
- X GT Y
- X IMP Y
- X LE Y
- X LT Y
- X MAX Y
- X MIN Y
- X MOD Y
- X NE Y
- X OR Y
- X XOR Y
- X XRA Y
- X [ Y
- X \ Y
- X ^ Y
- [LET] variable = expression
-
-
-
-
- CHANGE HISTORY
-
- CHANGES FROM 3.00 to 3.10
-
- * Implements most of the following BASIC dialects:
- OPTION VERSION DARTMOUTH ' Dartmouth DTSS BASIC
- OPTION VERSION MARK-I ' GE 265 Mainframe BASIC
- OPTION VERSION MARK-II ' GE 435 Mainframe BASIC
- OPTION VERSION SYSTEM-360 ' IBM System/360 BASIC
- OPTION VERSION SYSTEM-370 ' IBM System/370 BASIC
- OPTION VERSION CBASIC-II ' CBASIC-II for CP/M
- OPTION VERSION ECMA-55 ' ANSI Minimal BASIC
- OPTION VERSION HANDBOOK1 ' The BASIC Handbook, 1st Edition
- OPTION VERSION HANDBOOK2 ' The BASIC Handbook, 2nd Edition
- OPTION VERSION TRS-80 ' TRS-80 Model I/III/4 LBASIC
- OPTION VERSION BASIC-80 ' Microsoft BASIC-80 for Xenix
- OPTION VERSION ECMA-116 ' ANSI Full BASIC
-
- * from Howard Wulf, AF5NE
-
-
- CHANGES FROM 2.61 to 3.00
-
- * Code redesign from Howard Wulf, AF5NE
-
-
- CHANGES FROM 2.60 to 2.61
-
- * Bug fix from Matthias Rustler
-
-
- CHANGES FROM 2.50 to 2.60
-
- * New maths functions and append mode support from Edmond Orignac
-
- * Bug fixes
-
-
- CHANGES FROM 2.40 to 2.50
-
- * Bug fixes
-
- * New compilation procedure for MVS and CMS
-
-
- CHANGES FROM 2.30 to 2.40
-
- * Bug fixes from Bill Chatfield
-
- * Updated documentation
-
- * Added support for compiling on CMS (another IBM mainframe OS)
-
-
- CHANGES FROM 2.20pl2 to 2.30
-
- * Minor bug fixes, cosmetic improvements and portability improvements
-
- * Added support for compiling on MVS (IBM mainframe)
-
-
- CHANGES FROM 2.20pl1 to 2.20pl2
-
- bwb_cmd.c
- Fixed calling stack level logic in RETURN statement to prevent erroneous
- "RETURN without GOSUB" messages.
-
- bwb_cnd.c
- bwb_stc.c
-
- Changed continuation condition for WHILE, ELSEIF, and LOOP UNTIL
- to be != FALSE, not == TRUE. More in line with common commercial
- BASIC implementations.
-
- bwb_mth.c
- Fixed initialization in VAL function so that old results are not later
- returned as values.
-
- bwb_var.c
- Added parenthesis level checking to dim_getparams. Using multi-level
- expressions as array subscripts was causing the program to bomb.
-
- bwx_iqc.c
- bwx_tty.c
- bwb_mes.h
- Added second copyright notice.
-
- bwb_dio.c
- bwb_str.c
- Added support for strings longer than 255 characters.
-
- bwb_prn.c
- Disabled tab expansion and print width checks when not printing to a file.
-
- bwb_inp.c
- Fixed LINE INPUT file reads to accommodate strings of length MAXSTRINGSIZE.
-
- bwx_ncu.h
- bwx_ncu.c
- New files. Code for UNIX ncurses interface, compliments of L.C. Benschop,
- Eindhoven, The Netherlands.
-
- Makefile.ncu
- New files. Sample makefile for ncurses implementation.
-
- bwbasic.h
- Revised defines for MININTSIZE and MAXINTSIZE from 16-bit to 32-bit limits.
- Revised define for MAXSTRINGSIZE from 255 to 5000 characters.
- Changed string length from unsigned char to unsigned int to support strings
- longer than 255 characters.
- Added support for new ncurses package.
- Revised VERSION define to reflect above changes.
-
-
- CHANGES FROM 2.20 to 2.20pl1
-
- bwb_cnd.c
-
- Moved init routine for bwb_while so that it would be initialized regardless
- of expression value, not just if TRUE. This was causing some segmentation
- faults in WHILE-WEND loops.
-
- bwb_elx.c
-
- Plugged gaping memory leak. Temp variable space for expression evaluation
- was being allocated but not freed when done (oops!).
-
- bwb_fnc.c
-
- Added check for NULL return from getenv to prevent segmentation faults.
-
- bwbasic.h
- Revised VERSION define to reflect above changes.
-
-
-
- CHANGES FROM 2.10 to 2.20:
-
- * Plugged numerous memory leaks, resolved memory overruns and allocation
- difficulties.
-
- * General cleanup and bug fixes, too many to list in detail here.
- The major problem areas addressed were:
-
- - RUN command with file name argument
- - nested and cascaded FOR-NEXT loops
- - PRINT USING
- - EOF, LOF functions
- - string concatenation
- - operator hierarchy
- - multi-level expression evaluation
- - hex constant interpretation
- - hex and octal constants in INPUT and DATA statements
-
- * Added a CLOSE all files feature (when no argument supplied).
-
- * Added a unary minus sign operator.
-
- * Added a MID$ command to complement the MID$ function.
-
- * Added a RENUM facility in a standalone program.
-
- * Added checking in configure for unistd.h (important on Sun systems).
-
-
-
-
|