Commit Graph

1579 Commits

Author SHA1 Message Date
jdolecek a76b375c0f put -l explanation before -m, so that the options are in alphabet order
Fixes misc/14471 by Hiramatsu Yoshifumi.
2001-11-05 17:51:56 +00:00
lukem 678a800f83 change from WARNS?=1 to WARNS?=2 for bin/ 2001-11-03 13:40:30 +00:00
lukem 94f08e9869 default to WARNS=1 if not set 2001-11-03 13:39:25 +00:00
lukem 537f55c6b7 fix WARNS=2 2001-11-03 13:35:39 +00:00
lukem b8a6769184 fix minor WARNS=2 2001-11-03 13:21:09 +00:00
lukem cc76cf8530 fix WARNS=2 2001-11-03 13:08:16 +00:00
lukem 33b90eebfd fix WARNS=2 2001-11-03 12:49:31 +00:00
christos 0598afe4d0 Fix switch alias handling. Inspired from FreeBSD, but corrected to handle
alias expansion inside the switch as appropriate. This is achieved by a
flag noalias which is turned on and off in as we parse. In the following
example [1] and [0] indicate the value of noalias.

[0] case <expr> in
[1] <lit> ) [0] <expr> ;;
[1] <lit> ) [0] <expr> ;;
...
[1] esac [0]

FreeBSD does:

[0] case <expr> in [1]
<lit> ) <expr> ;;
<lit> )  <expr> ;;
...
esac [0]

This handles the following shell script:

alias a=ls

case $1 in
a)	echo a;
	a;;
f)	echo f;;
*)	echo default;;
esac
2001-11-02 23:49:14 +00:00
wiz ee03b26cd0 Whitespace nits, sort sections, fix Dv usage (doesn't like macro argument). 2001-10-28 19:03:12 +00:00
lukem 9ee82d317a s/u_longlong_t/unsigned long long/ to shut up the parc port 2001-10-28 13:06:43 +00:00
lukem 158048edab improve previous; use %lu and (u_long) to print size_t 2001-10-26 16:03:24 +00:00
lukem 5e919e1699 Cast size_t's to (int) when printing as %d; appeases the sparc port.
Found by Rob Windsor in [bin/14362].
2001-10-26 15:58:43 +00:00
lukem a7febe9ca0 minor improvements in wording and flag testing 2001-10-25 13:54:54 +00:00
lukem 55026d5454 Implement -M flag: During a write or copy operation, treat the list of
files on standard input as an mtree(8) `specfile' specification, and
write or copy only those items in the specfile.

If the file exists in the underlying file system, its permissions and
modification time will be used unless specifically overridden by the
specfile. An error will be raised if the type of entry in the specfile
conflicts with that of an existing file.

Otherwise, it is necessary to specify at least the following parameters
in the specfile: type, mode, gname or gid, and uname or uid, device
(in the case of block or character devices), and link (in the case of
symbolic links). If time isn't provided, the current time will be used.
2001-10-25 08:51:50 +00:00
lukem c1bd745ccb - ansi KNF (just remove all the #ifndef __STDC__ prototype junk,
leaving the ansi stuff)
- use longlong_t instead of quad_t (etc), and rename *uqd*() -> *ull*()
- clean up the NET2_STAT stuff similar to ftpd; provide #defines and
  macros which select which cast to use, etc
- clean up the NET2_FTS and NET2_REGEX #define use
2001-10-25 05:33:32 +00:00
lukem 655fadf63c fix typo 2001-10-24 11:28:55 +00:00
lukem a596720367 enable WARNS?= 2 2001-10-19 00:59:07 +00:00
wiz 880b4d21b9 Quote `:' correctly. 2001-10-18 11:00:03 +00:00
lukem 353bb37176 fix strlcpy length in previous... 2001-10-18 08:03:46 +00:00
lukem b720dda403 make this WARNS=2 safe 2001-10-18 03:54:18 +00:00
lukem 0d74a5dc03 flags_to_strings() changes:
- fix bug where the 'clear' flag was set outside of main loop, so
  "dump,uchg,arch" on a file with flags would clear all the bits
  (because "dump" sets 'clear'). noted in FreeBSD PR 10071, and fix
  obtained from FreeBSD.

- enforce right-most priority on arguments by clearing the appropriate
  bit in the opposite set; if a string of "nouchg,uchg" is given,
  chflags(8) would clear uchg because it applies the "set" bits before
  clearing the "clear" bits.  now, "uchg" sets UF_IMMUTABLE in setp
  and also resets it in clrp, solving this problem

- constify second arg (the `default' arg)
2001-10-18 03:16:20 +00:00
wiz 98af901532 Whitespace, punctuation fixes. Sort sections. 2001-10-17 21:50:57 +00:00
wiz 4b238d257d Properly quote `[' as macro argument. 2001-10-17 21:14:45 +00:00
christos bebeebd8aa if -a is not given, we need to walk the filesystem list to check the
flags in order to get the correct count (from enami)
2001-10-11 16:31:33 +00:00
enami 802d6b10df KNF. 2001-10-11 09:23:31 +00:00
wiz 5893dbb3e5 Fix typo. 2001-10-07 16:28:39 +00:00
wiz 3eaf37c5c9 Bring in pdksh-5.2.14-patches.2.
ChangeLog entry:
Mon Jan 29 10:12:31 NST 2001 Michael Rendell (michael@garfield.cs.mun.ca)
* c_exec.c(execute): added rv_prop flag to prevent if/while/for/...
  in the presence of "set -e" from causing the shell to exit.
Example:
	set -e
	(false && echo hi)
[exits shell though it shouldn't]
ChangeLog and example provided by pdksh maintainer, Michael Rendell.
2001-09-29 15:05:47 +00:00
wiz 4c99916337 va_{start,end} audit:
Make sure that each va_start has one and only one matching va_end,
especially in error cases.
If the va_list is used multiple times, do multiple va_starts/va_ends.
If a function gets va_list as argument, don't let it use va_end (since
it's the callers responsibility).

Improved by comments from enami and christos -- thanks!

Heimdal/krb4/KAME changes already fed back, rest to follow.

Inspired by, but not not based on, OpenBSD.
2001-09-24 13:22:25 +00:00
itojun 31952d578f make sure we do not truncate arith expresssion > 10 digits.
freebsd bin/sh/expand.c revision 1.15.  NetBSD PR 13943.
2001-09-19 06:38:19 +00:00
wiz f64af5cae0 ANSIfy, KNF, by Petri Koistinen. 2001-09-16 22:14:40 +00:00
wiz 3684e0c468 ANSIfy, KNF, use [gs]etprogname. By Petri Koistinen. 2001-09-16 22:07:14 +00:00
wiz 12fd1274d8 ANSIfy, KNF, use [gs]etprogname. Patch by Petri Koistinen. 2001-09-16 21:57:34 +00:00
wiz 263be60d13 ANSIfy, KNF, use [gs]etprogname. By Petri Koistinen, slightly modified by me. 2001-09-16 21:53:55 +00:00
wiz 0b11ad4584 ANSIfy, KNF, [gs]etprogname, by Petri Koistinen. 2001-09-16 21:24:54 +00:00
wiz 244247f8ff ANSIfy, KNF, [gs]etprogname. By Petri Koistinen. 2001-09-16 21:21:14 +00:00
wiz 240b5f82de ANSIfy and KNF by Petri Koistinen. 2001-09-16 21:18:33 +00:00
wiz d3d81c4e84 Some KNF fixes by Petri Koistinen and me. 2001-09-16 19:03:26 +00:00
wiz f80fec075d ANSIfy, use setprogname. Patch by Petri Koistinen. 2001-09-16 18:57:45 +00:00
wiz 456dff6cb8 Spell 'occurred' with two 'r's. 2001-09-16 16:34:23 +00:00
wiz ed7b508e36 Use {g,s}etprogname. Patch by Petri Koistinen. 2001-09-16 13:55:09 +00:00
wiz 354d883bd4 ANSIfy and KNF fixes, use {g,s}etprogname. Patch by Petri Koistinen. 2001-09-16 13:48:35 +00:00
wiz 7a64806dbc Use {g,s}etprogname, and some other KNF stuff. Patch by Petri Koistinen. 2001-09-16 13:42:10 +00:00
wiz bb88f10d3d Use setprogname. Patch by Petri Koistinen. 2001-09-16 13:35:52 +00:00
wiz 8e36d79b4f Use setprogname. Patch by Petri Koistinen. 2001-09-16 12:20:33 +00:00
wiz 516b44de0a ANSIfy, use {s,g}etprogname and other KNF. Patch by Petri Koistinen. 2001-09-16 12:16:20 +00:00
wiz 48366c095a Add setprogname call. Patch from Petri Koistinen. 2001-09-16 12:13:33 +00:00
wiz bb2c669165 Some KNF, via patch by Petri Koistinen in private mail. 2001-09-16 12:12:13 +00:00
wiz b771e65ba1 ANSIfication and KNF improvements by Petri Koistinen in bin/13689,
with some fixes by me.
2001-09-14 14:03:59 +00:00
assar 50ed29b359 (waitproc): handle jp == NULL, it happens 2001-09-13 21:33:05 +00:00
wiz a824cb6a27 ANSIfication and KNF fixes by Petri Koistinen in bin/13691. 2001-09-13 10:06:40 +00:00
wiz 793d1a41f0 ANSIfication and KNF fixes by Petri Koistinen via bin/13690. 2001-09-13 10:00:44 +00:00
wiz 633b06fe1e ANSIfication and some KNF fixes by Petri Koistinen from bin/13681. 2001-09-13 09:53:59 +00:00
christos a7560f06ec Don't wait with UNTRACED for jobs that have not been started with job control
(i.e. processes started from shell scripts). Fixes problem where kill -STOP'ing
a subprocess of a shell script would cause the shell to proceed to the next
command.
2001-09-10 15:47:03 +00:00
wiz 2b3a9dde88 Fix typo (specifc instead of specific). 2001-09-04 21:47:31 +00:00
chs ec039eb93d enable use of mmap(), falling back to read()/write() if mmap() fails. 2001-08-30 04:45:56 +00:00
lukem 725b21190a fix comment: "[]" are [square] brackets, "<>" are angle brackets 2001-08-24 06:37:03 +00:00
enami 48661b973f Print commands within angled brackets only if they are system processes.
Print other commands, like cc, cpp and as, within parentheres.
2001-08-24 01:48:22 +00:00
wiz c52d355d71 "wierd" is weird. 2001-08-20 12:20:01 +00:00
wiz 1e378c4c12 precede, not preceed. 2001-08-20 12:00:46 +00:00
christos c91b59d1de Print system processes/kernel threads as [kprocname] as top(1) does. 2001-08-07 14:46:09 +00:00
wiz 8c6310c4a3 Remove duplicate `if'. Noted by Geoff C. Wing in bin/13551. 2001-07-30 16:22:49 +00:00
wiz 8cfb973b8e ANSIfy and slight KNF. Mostly #13594 by Petri Koistinen. 2001-07-30 10:17:41 +00:00
wiz e54efb953b ANSIfy, some style improvements. Some parts from #13593 by Petri Koistinen. 2001-07-29 22:46:36 +00:00
wiz aaec222d9c Some style improvements. [Nearly] #13592 by Petri Koistinen. 2001-07-29 22:40:57 +00:00
wiz 1738245911 ANSIfy, KNF. Parts from #13590 by Petri Koistinen. 2001-07-29 22:36:11 +00:00
wiz 30b2bf87ed Various typos in comments (neccessary, sceme, choise, ...). 2001-07-26 15:05:07 +00:00
wiz a9356936b4 seperate -> separate 2001-07-22 13:33:58 +00:00
matt c6458f33d8 Add a small optimizetion in savevars(). break out of the loop once needcomm
is set since setting it multiple times only wastes cpu time.
2001-07-20 21:59:58 +00:00
tron 8ae0a016a0 Use madvise(2) after mmap(2) in case "VM_AND_BUFFER_CACHE_SYNCHRONIZED"
is defined which it is not right now.
2001-07-18 11:01:54 +00:00
matt 68b3b7e9c7 Retrieve maxslp & uspace from kernel instead of using defines. Needed for
shared arm code.
2001-07-14 06:53:43 +00:00
simonb 79f5a137af Xref getbsize(3). 2001-07-08 15:34:13 +00:00
gmcgarry bad387a59a Use socklen_t; for compilers with strict type checking. 2001-07-08 05:26:03 +00:00
gmcgarry 91825c128d setthetime() is prototyped static; make it so. 2001-07-08 05:24:50 +00:00
sommerfeld d19e89a7c0 correct the description of paddr 2001-07-04 20:49:00 +00:00
lukem 17c6a1082e doc2hmtl is broken for recursive Oo ... Oc at this time 2001-07-03 21:50:13 +00:00
wiz 3f9984fc90 `existent', not `existant' 2001-06-19 13:42:07 +00:00
cyber 428f40d685 If there were no processes to list, it meant that our criteria failed
and didnt match anything.  Dont make our caller think we succeeded.
2001-06-14 19:04:49 +00:00
lukem c0b18597d8 fix grammar 2001-06-13 08:48:06 +00:00
wiz 0a600be867 receive, not recieve 2001-06-12 15:17:10 +00:00
wiz 40ac848024 Fix various misspellings of compatible/compatibility. 2001-06-11 01:50:48 +00:00
simonb 4f7969814a Don't build ksh.1 if MKMAN == "no". 2001-05-15 23:50:36 +00:00
jdolecek 3b932d2fe1 Fix the operator precedence list to match reality. Operators were incorrectly
grouped there.
2001-05-07 10:14:43 +00:00
jmc 64e6a11adc Various cleanups/fixes.
Change the add/subtract overflow checks to use an unsigned to do the op
and then cast back into the signed var to check the signs.

Make multiply shortcut on either right or left being 0.
Make multiply's overflow test not fail on simple cases like 1 * -1
Make the multiple overflow test pass all the regress tests.
2001-05-06 06:20:39 +00:00
jmc a7755cce7c Various changes to fix bugs in PR bin/12838.
Make sure all precendence is spelled out correctly (comparison does not
have the same level as the arithmetic operators..)
Break the arithemtic operators into 2 classes (+- are lower than */%)
Restructure the arithmetic code into a function either class above can call.
Finally, add a whole suite of regression tests (checked in separately) which
the previous code failed on 3 of them.
2001-05-05 06:57:57 +00:00
ross aecbd4c404 In the words of Our Fearless Leader, I am "utterly sick" of dd(1)
lying to me about transfer rates. Do some fixed point frobbing to get
stuff like: 2486864 bytes transferred in 0.272 secs (9142882 bytes/sec)
2001-04-28 22:47:23 +00:00
simonb 6f6fe2f3ad Spell occurred correctly. 2001-04-25 02:33:08 +00:00
bjh21 45a6b58c3e Use ${MACHINE_CPU} == "arm" to test for ARMishness. 2001-04-18 17:35:36 +00:00
wiz d753ffdad1 environ(7), not (5); add RCS Id; whitespace fixes. 2001-04-09 12:33:22 +00:00
christos ea8e5cf90b PR/12533: Koji Mori: eval gets misparsed when it has a trailing semi-colon. 2001-04-03 15:00:11 +00:00
wiz 242b959069 Don't xref set(1) and case(1), since they are builtins and we don't
have separate man pages for them.
Xref passwd 5 instead of 4, environ 7 instead of 5, and comment out xref
to profile(4), which we don't have.
Improve markup of SYNOPSIS.
Some whitespace fixes while I'm here.
2001-04-03 10:56:03 +00:00
wiz 2e3fadc95f Xref kerberos 8, not 3.
XXX: trailing xrefs to krb_sendauth(3) and krb_realmofhost(3) -- remove them?
2001-04-03 10:53:45 +00:00
toddpw e08886d505 Correct {list;} example and fix formatting/typo in the operator lists. 2001-04-01 02:15:45 +00:00
mycroft 59771e308b Globbing should match broken symlinks. stat()->lstat() to fix this. 2001-03-30 17:45:00 +00:00
enami 4aa8283eb7 Always initialize an auto variable. 2001-03-23 01:06:02 +00:00
itojun 58a9573963 do not update maxlen if realloc fails. 2001-03-20 19:05:11 +00:00
wulf 8d23cb0373 Extended functionality of the trap builtin, which now closely follows
POSIX recommendations.

	- trap now accepts signal names and signal numbers
	  e.g. INT, SIGINT, 2
	- added option -l that outputs a list of valid signals
	- added signal EXIT to list of valid signals
	- a `-' in the action part will reset specified signal to their
	  default behaviour
	- changed standard output format to make it suitable as an input
	  to another shell that achieves the same trapping results
2001-03-18 04:04:23 +00:00
fair 7f36bd20e2 Add references to getrlimit(2) and setrlimit(2) under the csh built-in
"limit" command, so as to more completely document the workings of this
command, per PR 11658.
2001-03-16 08:45:33 +00:00
christos 5aaa548267 echo;echo;echo; should echo 2001-03-14 18:01:22 +00:00
hubertf bb6b8354d9 xref settimeofday(2) 2001-03-09 15:16:49 +00:00
mason f7df6a3796 Update to reflect reality - s,/etc/netstart,/etc/rc.d/network, 2001-02-27 17:47:22 +00:00
wiz 8d35854b5d Fix command name in error message for 'sh nonexistingfile'. 2001-02-26 13:06:43 +00:00
cgd e459adfd7a use getprogname() 2001-02-20 23:02:07 +00:00
cgd 668a4dd967 convert to use getprogname() 2001-02-19 22:39:39 +00:00
mason 885787d267 Equally trivial formatting tweak. Leaving the thing alone after this. :) 2001-02-13 19:39:34 +00:00
mason 3b04543d8b trivial formatting tweak 2001-02-13 19:37:13 +00:00
christos 5b0331e6c7 from Mason Loring Bliss: support "asf 0" 2001-02-13 16:07:59 +00:00
christos 3380980447 remove redundant declarations and nexted externs. 2001-02-04 19:52:06 +00:00
christos 80d86b9e7c remove redundant declaration of yyparse, and move code to the bottom of
the file.
2001-02-04 19:51:43 +00:00
christos a66a2e0ad0 remove redundant declaration of yyparse 2001-02-04 19:51:14 +00:00
christos 18d76c325c fix nested extern. 2001-02-04 19:32:26 +00:00
christos cba68cff4c remove duplicate declarations, and fix nested externs. 2001-02-04 19:26:04 +00:00
christos 621611e98a we do have dup2. 2001-02-04 19:25:43 +00:00
mason c066b768e7 Clarify meaning of "mt asf". The man page extant says "Absolute space
to file count", which is incorrect. File numbering, according to
restore(8), starts at one, and thus "mt asf 1" neither moves to the
first file on the tape nor to file number one on the tape.
2001-02-03 16:26:45 +00:00
tsutsui 337db294f1 Adjust output column in printf(). 2001-02-01 10:19:51 +00:00
cgd 9cfe468c74 avoid C sequence point issues warned about by development version of gcc. 2001-01-16 02:41:17 +00:00
christos a396a72f84 clarify things a bit more (from hubertf) 2001-01-15 21:02:58 +00:00
christos 3141a5cc48 Really explain what parenthesized names mean and why we parenthesize names! 2001-01-15 17:57:14 +00:00
hubertf 9bb3e62b11 Document the meaning of commands shown in parantheses.
Patches submitted by Jeremy C. Reed <reed@reedmedia.net> in PR 11930.
2001-01-15 16:16:51 +00:00
itojun bc8fe00e2e KPTR/KPTR24 are using u_int64_t. commented by minoura 2001-01-09 01:21:59 +00:00
itojun adf3a0eef5 redo previous (simplify KPTR) 2001-01-08 18:03:45 +00:00
itojun 3410e7bd02 backout previous; did not compile on non-alpha 2001-01-08 17:55:28 +00:00
itojun a3c77f0437 simplify KPTR processing. 2001-01-08 17:18:24 +00:00
itojun f320afb26b address PR 11653. checked on alpha.
XXX supports 32bit and 64bit pointers only
2001-01-08 13:20:29 +00:00
lukem 10fc746e6d if HAVE_VASPRINTF (set ifdef BSD4_4), use vasprintf() instead of homegrown
code in doformat().  results in slightly smaller /bin/sh.  idea suggested by
Witold J. Wnuk <witek@pd37.warszawa.sdi.tpnet.pl>, approved by christos.
2001-01-07 23:39:07 +00:00
lukem dd7296f47a support %ll (as synonym for %q) in doformat(), since my changes to %q -> %ll
broke this :/
problem reported in private email by Witold J. Wnuk.
<witek@pd37.warszawa.sdi.tpnet.pl>.
2001-01-07 22:19:53 +00:00
christos 07c9f4f644 remove redundant declaration of errmsg 2001-01-07 05:41:20 +00:00
christos 3ca65e4438 eliminate nested extern 2001-01-07 05:37:10 +00:00
christos 51b56986d6 eliminate nested extern decls. 2001-01-06 23:56:26 +00:00
lukem f819878ce7 use more standard %ll_ in favour of %q_ 2001-01-04 15:39:50 +00:00
mjl 73ef471d4f Un-__P and ANSIfy 2001-01-03 14:32:40 +00:00
mjl 0c55b7011c Sync usage w/ options, remove bogus cast. 2001-01-03 14:29:24 +00:00
hubertf 69939b09cd Add -m option, similar to -k, but display output in 1024*1024 byte units.
Patch submitted by Chris Pinnock <C.J.E.Pinnock@qmw.ac.uk> in PR 11849,
adjusted for NetBSD-current by me.
2000-12-30 16:20:58 +00:00
bjh21 c9ee8d3362 arm26 has unsigned chars too. 2000-12-29 16:30:31 +00:00
cgd 84d782a52f __CONCAT does token pasting, not string concatnation. if something like:
__CONCAT("PATH=",_PATH_STDPATH);
actually works to concantate strings, it's because the preprocessor expands
it into "PATH=""whatever _PATH_STDPATH is" as separate strings, and then
ANSI string concatenation is performed on that.  It's more straightforward
to just use ANSI string concatenation directly, and newer GCCs complain
(rightly) about mis-use of token pasting.
2000-12-20 00:15:10 +00:00
hubertf 84a116117c Document /etc/localtime, per PR 8099 by Charles Hannum. 2000-12-18 07:57:02 +00:00
simonb 39096410f1 Need alvec global variable now. 2000-12-14 00:13:07 +00:00
scw a1dfcb96e7 Sprinkle some `extern' qualifiers for initialised globals. 2000-12-13 22:29:41 +00:00
christos 1d9dab3e95 error message cleanup:
- don't print the builtin name twice
    - explain why things fail
    - no extra newline
2000-11-22 19:20:31 +00:00
christos 212627911f fix typo. 2000-11-20 17:48:05 +00:00
christos fb16d6d0ec Add an example on how to use getopts, stolen from the getopt manual page :-) 2000-11-20 16:59:56 +00:00
lukem 8ea171b99a be consistent with man page xrefs (this is a pre mandoc man page) 2000-11-07 01:45:49 +00:00
lukem 091dffc1a7 fix borken Xr 2000-11-07 01:45:04 +00:00
mycroft 3112db7eb8 Call el_source() to use .editrc. 2000-11-06 04:21:14 +00:00
christos 12bd7d8870 Correct stupid cast problem. Pointed out by simon burge. 2000-11-03 02:27:35 +00:00
christos d2765ed72b PR/11361:Matthias Buelow: Apply patch1 from pdksh site.
- set -x dumps core (shf.c);
    - output of "jobs" command is filled with ^A characters (jobs.c);
    - "typeset -r foo=bar" fails saying foo is readonly (var.c).
2000-11-02 01:10:08 +00:00
christos 8e2797bc1e PR/11283: Hubert Feyrer: random memory corruption executing commands:
Fix from FreeBSD:

    growstackblock() sometimes relocates a stack_block considered empty
    without properly relocating stack marks referencing that block.
    The first call to popstackmark() with the unrelocated stack mark
    as argument then causes sh to abort.

    Relocating the relevant stack marks seems to solve this problem.

    The patch changes the semantics of popstackmark() somewhat.  It can
    only be called once after a call to setstackmark(), thus cmdloop() in
    main.c needs an extra call to setstackmark().
2000-11-01 19:56:01 +00:00
christos 9cc4e15f46 handle type command on names that contain slashes, and print a : in the not
found case. From FreeBSD.
2000-11-01 19:21:41 +00:00
christos e5dfea2ff4 Avoid turning into a random file writing tool when using here-doc's.
Reported to BUGTRAQ by proton <proton@ENERGYMECH.NET>.
2000-10-31 16:53:10 +00:00
jdolecek 9ad5bf10de list parenthesis usage similar way as other operators
document operator precedence
rename section BUGS to COMPATIBILITY, add paragraph about -- handling
2000-10-30 16:20:12 +00:00
jdolecek 5888f4d21c add a hack to properly handle '--' as first argument -
it's ignored if it would cause syntax error, otherwise treated as common
string; this is so that both 'expr -- : .' and 'expr -- foo : .' works
This addresses standards/11230 by Ben Harris.

while here, make all global variables but main() static, use const more
2000-10-30 14:55:02 +00:00