Commit Graph

362 Commits

Author SHA1 Message Date
jtc af8ead3302 Fix from Jochen Pohl which fixes case where quad multiply
goes awry if bit 31 of at least one of the operands is set
(PR #1591).
1995-10-12 15:05:35 +00:00
pk 600acb3b06 Conditionalize ancient `@' and `#' erasors. 1995-10-11 21:16:57 +00:00
mycroft 9782971b02 Remove setjmp() and ffs(). 1995-10-07 22:26:53 +00:00
mycroft 209bd1b877 Build libkern as one .o file, so that all symbols defined therein are
always available to loadable modules.
1995-10-07 09:56:54 +00:00
mycroft 120925e7c3 Remove bzero.S and setjmp.S, as these functions are in locore. 1995-10-07 09:52:48 +00:00
mycroft a09832e624 Update from libc. 1995-10-07 09:26:14 +00:00
phil 1f494d0265 Don't add network files to SRCS if NO_NET is defined. (I'm getting
very short of disk space on STEELHEAD!)  The pc532 doesn't use the
network (yet?) from boot.
1995-10-01 06:00:32 +00:00
pk de4e651542 Careful with initializers. 1995-09-27 23:14:57 +00:00
jonathan 65c53f255c Remove old .PATH directives that referenced libc source.
Libkern has its own copies of all the requisite source files.
1995-09-26 18:27:24 +00:00
leo 230fb12a7a Add abs() function as an 'inline'. The atari-port needs it since the
-fno-builtin is used in the kernel Makefile.
1995-09-23 20:35:47 +00:00
thorpej df8c694f7e Add an inet_addr() function; return network-order numeric representation
of an IP address from `aa.bb.cc.dd'-style text input.
1995-09-23 17:14:40 +00:00
gwr 23ee56022d Cleanup, and catch up with libsa changes. 1995-09-23 03:42:17 +00:00
gwr 6f2a9404ee More cleanup: change some private types to eliminate casts,
replace some "goto xxx" with return(-1). (mostly cosmetic)
1995-09-23 03:36:06 +00:00
gwr bdad6c4104 Fix/improve some comments. 1995-09-23 03:31:50 +00:00
thorpej c9a13fa080 Assume that if devopen() points `file' at a NULL that a raw device was
opened (as opposed to only checking to see if `file' itself is NULL).
1995-09-19 09:16:52 +00:00
pk d9124da47f Another round of clean up, including fixes presented by Matthias Drochner
(PR#1404). Things to be noted:
	- all IP addresses are now `struct in_addr's.
	- the function rarp_getipaddress() no longer return `myip'; in stead
	  it returns -1 on failure (errno set), 0 on success. `myip' is set
	  as a size-effect.
1995-09-18 21:19:18 +00:00
pk f5cf4bbc37 De-activate DEBUGFLAGS again. 1995-09-17 01:01:07 +00:00
pk 82e5cf06bc Revert fs_ops read/write declarations; these return error numbers.
Get rid of some more compiler warnings.
Set errno where appropriate.
1995-09-17 00:49:37 +00:00
pk 7824355d25 libsa compilation is no longer controlled from here, obviating the purpose
of this makefile.
1995-09-15 21:04:33 +00:00
pk 84c517c128 Clear up some size_t/ssize_t confusion. 1995-09-14 23:45:21 +00:00
pk 0c92121b3f Mirror libkern makefiles. 1995-09-14 20:55:00 +00:00
gwr 0081434965 Correct the padding to min Ethernet packet size. 1995-09-13 15:06:12 +00:00
thorpej eb50acd998 Changes from Gordon Ross:
a) check against `my' ethernet or broadcast addresses done in
	   ether.c
	b) changed interface to readether() to provide ethertype info
	c) respond to arp requests when appropriate.
First two are clean-up.  Last fixes hp300 and presumably mvme68k netboot
code.
1995-09-11 21:11:36 +00:00
pk 07f70f97f1 Avoid calling device-close routine when open() not completed. Otherwise you
lose if this sequence occurs: open()->devopen()->...->panic()->closeall().
1995-09-06 19:53:27 +00:00
pk 848dfdfec6 Fix bogus numerical conversion by using sprintf(); 1995-09-03 20:56:14 +00:00
pk 8ede82abe2 Merge an sprintf() in. 1995-09-03 20:51:21 +00:00
pk 904eed507d Add a driver hook to the `netif' structure. 1995-09-03 20:49:38 +00:00
cgd 26fbf3bbb8 prototype inline functions, almost as suggested by Jonathan Stone in PR 1258. 1995-08-14 05:43:24 +00:00
gwr b090a64678 Add bcea[] here now that is is gone from arp.c 1995-08-08 20:59:07 +00:00
thorpej 9800370998 Fix off-by-one error when padding text segment. 1995-08-04 07:37:03 +00:00
thorpej fb56ae3095 Kill extra declaration of bcea[]. It's also defined in globals.c. 1995-08-04 01:17:26 +00:00
gwr 492a481622 Removed libc_sa, libnetboot 1995-07-10 23:14:46 +00:00
gwr 0604e38f2e Nobody uses this anymore (all use ../libsa) 1995-07-10 23:09:30 +00:00
gwr 0a035e5e9f Can not use htonl() in static initializers. (Fixes PR 1188) 1995-07-03 04:56:33 +00:00
gwr 2d83203f6a Build all RPC requests with AUTH_UNIX (thanks to Chuck Silvers) 1995-07-03 02:59:16 +00:00
christos 6b27eeffbc Don't make libkern. 1995-06-30 03:00:33 +00:00
cgd 8357feb486 update dependencies to deal with the alpha 1995-06-28 02:59:12 +00:00
gwr b4c3997cb9 Support functions for NFS boot (get server address and root path). 1995-06-27 15:32:40 +00:00
gwr 539a3bff11 Modified to do less copying, and to allow determination of
the address from whence the reply has come.
1995-06-27 15:28:58 +00:00
gwr 1fe28794f3 Fix ARP opcode, add more debugging prints. 1995-06-27 15:27:24 +00:00
gwr 55eb5a12f1 Re-work for new rpc interface, and simplify a bit. 1995-06-27 15:25:30 +00:00
gwr d7e1ef6af2 Pad HEADER_SIZE for alignment. 1995-06-27 15:23:18 +00:00
gwr 0e4efb30ef Pad the request out to the minimum Ethernet length.
Improve some debug prints...
1995-06-27 15:18:57 +00:00
christos 2cb09c2709 Add the ability to override KERNREL and KERNDST. 1995-06-26 03:25:46 +00:00
christos fc5a8cffa2 Build libkern in the kernel compilation directory, like libcompat. 1995-06-24 20:31:12 +00:00
mycroft 6897f39ae9 Various cleanup, including:
* Convert several data structures to use queue.h.
* Split in_pcbnotify() into two parts; one for notifying a specific PCB, and
one for notifying all PCBs for a particular foreign address.
1995-06-12 00:46:47 +00:00
gwr 8e179d8e95 Have netboot! 1995-06-09 22:02:39 +00:00
cgd dd614d8474 parenthesize macro arg usage 1995-05-16 05:26:36 +00:00
cgd 05af191f3b spacing fixups and KNF. #define ether address size, so it's not
hardcoded as '6' all over.
1995-05-15 01:30:44 +00:00
cgd b835913465 first arg to open() is a 'const char *'. pointed out by David Brownlee
in pr 1004.
1995-04-30 03:57:54 +00:00
cgd a24d2f6e17 cast pointers to longs, print appropriately 1995-04-22 14:10:10 +00:00
cgd b94f71c618 prototype strlen; shouldn't be here. 1995-04-22 14:09:29 +00:00
cgd 29038d1929 cast pointers to longs 1995-04-22 14:09:00 +00:00
cgd f8e4de6a7a ints and pointers of various types are _NOT_ interchangable in protos 1995-04-22 14:07:54 +00:00
cgd 01208c85a3 cast pointers to longs, kill stupid local var return error, types. 1995-04-22 14:01:40 +00:00
cgd 586427643d various attribute poisoning, don't be as quick to specify size of files[] 1995-04-22 13:57:03 +00:00
cgd 4316c36ca7 cast pointers to longs 1995-04-22 13:53:48 +00:00
cgd 07231e5b52 note properly whether or not functions return, etc. 1995-04-22 13:51:19 +00:00
cgd 60b1ffa877 cast ptrs to longs, etc. 1995-04-22 13:50:27 +00:00
cgd 06b2dbd4dd cast ptrs to longs. 1995-04-22 13:47:52 +00:00
cgd 84d0d2f495 various type fixups 1995-04-22 13:46:50 +00:00
pk 1778fc8e4a eserve the equality "x == y*(x/y)+(x%y)" for negative y; from Lon Willett. 1995-04-22 09:37:39 +00:00
ragge dfcfbc4f03 Added VAX specific makefile. (In libkern/arch/vax) 1995-04-18 21:59:46 +00:00
cgd c03b53c2e8 spacing cleaup. also, minor type mixup fixups. 1995-04-17 05:32:52 +00:00
cgd b5b72d26ea be a bit more careful and explicit with types. (basically a large no-op.) 1995-04-13 06:25:36 +00:00
mycroft 2f30839b62 Remove now unneeded #ifdef. Prototype new function. 1995-04-10 00:06:54 +00:00
briggs 6efcd1b6d4 KERNEL -> _KERNEL 1995-03-29 21:57:43 +00:00
jtc db0046c14d KERNEL -> _KERNEL 1995-03-28 19:59:56 +00:00
jtc 7c04233887 KERNEL -> _KERNEL 1995-03-26 20:23:52 +00:00
glass af55380e5a remove references to arptnew. fix spelling error 1995-03-06 19:06:05 +00:00
cgd b5d8c76eb5 copy down from libc. 1995-03-03 01:14:11 +00:00
mycroft 4c34be6b52 Clean up deleted files. 1995-03-01 00:00:00 +00:00
glass 48b5b94c4f fix some typos. from frank@fwi.uva.nl (Frank van der Linden) 1995-02-27 09:10:24 +00:00
mycroft 3757efcbfc Clean up a little. 1995-02-21 10:14:53 +00:00
mycroft 97cf758f6d Add EFTYPE. 1995-02-21 07:52:45 +00:00
mycroft cba39e9e88 Correct some error strings, and add a few more. Don't print error messages in
exec(); let the caller do it.
1995-02-21 07:38:37 +00:00
mycroft 248e7ebfb0 Update prototypes. 1995-02-21 07:16:24 +00:00
mycroft d031ff677c exec() doesn't need to return a value. 1995-02-21 07:14:37 +00:00
mycroft 2af23945b3 Add the security check in the hp300 code, and clean a little. 1995-02-21 06:56:06 +00:00
mycroft 2d7464c4b9 Add a generic twiddler. 1995-02-21 06:33:22 +00:00
mycroft 258efc53df Various:
* Fix some misused types.
* Encapsulate the protocols better.
* Rearrange the RPC stuff to work more like the kernel.  (Needs more work.)
* Remove a bunch of extra hair when reading a file over NFS.
* Use RPCAUTH_UNIX when talking to the NFS server.
1995-02-20 11:04:00 +00:00
mycroft fcf2c007f3 Define netif_debug in here. 1995-02-20 00:19:09 +00:00
mycroft ffd9c97e2a Add some more diagnostic info. Increment the xid in a better place. 1995-02-19 23:52:18 +00:00
mycroft ad21848143 Adjust the attribute info size for our NFS code. 1995-02-19 23:51:39 +00:00
mycroft 61c45cc32e Remove duplicate defn of bcea. 1995-02-19 17:04:46 +00:00
cgd e133097a8e Alpha support from libc. 1995-02-13 21:49:11 +00:00
cgd 537b309ca7 slight cleanup/reorg. don't use quad code on the alpha. 1995-02-13 21:48:17 +00:00
mycroft e9b92ad027 Sync with libc. 1995-02-08 18:35:50 +00:00
mycroft c318fc2e81 Sync with libc. 1995-02-05 15:06:43 +00:00
ws dcb3f5a8b8 Better fix for the last.
Worked this out together with Darren Reed.
This one fixes several bugs, plus it's closer to the original
1995-01-07 20:53:31 +00:00
cgd daf1f43606 copy back from libc 1995-01-06 00:48:11 +00:00
pk 2f25eb5231 Update symbolic-link handling, from Darren Reed. 1995-01-06 00:22:58 +00:00
cgd 50c2ab0cd0 from libc 1995-01-06 00:10:05 +00:00
mycroft ccfbdee90e Change a dependency to work when not using `all' target. 1994-12-31 04:32:23 +00:00
mycroft ee9082a163 Only build the version of the library that's needed. 1994-12-31 04:26:58 +00:00
deraadt f4713b5e96 silence link creation 1994-12-07 14:53:53 +00:00
deraadt 9df57d6a8e round text segment to __LDPGSZ bytes 1994-11-25 23:08:31 +00:00
cgd 6ac2bbfc35 be more careful with types, also pull in headers where necessary. 1994-10-30 21:43:03 +00:00
cgd aa9eacdd59 new RCS ID format. 1994-10-26 06:39:02 +00:00
cgd 6668f51c96 new RCS ID format. 1994-10-26 05:44:32 +00:00
cgd 69d2deb545 new RCS ID format. 1994-10-26 05:27:43 +00:00
deraadt 2b10ae150f compile -O3 1994-09-16 01:27:58 +00:00
deraadt 9d977e669b gcc automatically calls memset in certain situations. 1994-09-15 01:46:37 +00:00
mycroft 6ba85483c3 Use bfffo rather than a slow loop. 1994-09-09 03:07:23 +00:00
brezak 6f0b0cdc86 Cleanup to make more ANSI compliant; checkpoint 1994-08-22 21:55:58 +00:00
pk ff05bd4bc1 Echo terminating NL too. 1994-08-09 14:00:06 +00:00
brezak c2e9be0873 Make libsa compile again by not including sys/errno.h 1994-08-04 19:39:32 +00:00
cgd d5bc01994f include libkern.h 1994-07-27 07:58:45 +00:00
cgd de29b5d301 get includes from sys, and define KERNEL 1994-07-27 07:40:52 +00:00
cgd 20b21822a4 use ALIGN, rather than hard-coded numbers 1994-07-27 07:39:17 +00:00
cgd ab51cf264b make bcopy work for overlapping regions, as is standard. 1994-07-27 07:38:17 +00:00
cgd 4b0d7d9d90 get rid of someone else's bravery (stupidity) 1994-07-27 07:37:25 +00:00
brezak 60d0f39500 Build libsa too 1994-07-27 03:10:37 +00:00
mycroft 5b619bed0f Add some more constants. 1994-07-24 01:22:01 +00:00
pk fc5405fc33 do echo. 1994-07-18 18:42:06 +00:00
pk 8e2c980509 Avoid descriptor leakage. 1994-07-18 18:41:12 +00:00
pk b4a094da43 Include ffs_oldfscompat() from ffs_vfsops.c; enables booting from pre-44
filesystems (on big-endian machines).
1994-07-18 13:08:09 +00:00
cgd d7fc64af84 don't use inline, use __inline, like cdefs intends (so it can kill it if nongcc 1994-07-15 22:29:22 +00:00
deraadt c5656ed1f6 clean obj better 1994-06-30 20:17:47 +00:00
deraadt cb2b615c65 to find the DEFS.h files here, not in libc.. 1994-06-30 06:54:22 +00:00
deraadt 983c6f33c3 auto-copied from libc 1994-06-30 06:52:54 +00:00
deraadt b13e4ea39a find divrem.m4 automatically 1994-06-30 06:51:51 +00:00
mycroft 7762f58480 Clean up deleted files. 1994-06-30 04:49:02 +00:00
mycroft 4908dd6ed9 Clean up deleted files. 1994-06-30 04:26:23 +00:00
deraadt b70d67af03 mv ${arch}/ to arch/${arch}, so that libkern builds without obj/ 1994-06-30 04:26:07 +00:00
cgd cf92afd66e New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD' 1994-06-29 06:29:24 +00:00
pk c6a70c0ca9 Further adaptions to 4.4-lite header files. 1994-06-20 08:39:01 +00:00
glass d2ec31313f make it compile w/4.4-lite header file changes 1994-06-20 07:50:17 +00:00
glass 9e3c581a30 wierd fix for very wierd pmax compile problem. terry hit this too 1994-06-16 05:17:20 +00:00
glass 48967285da fix typo: scan.c -> scanc.c 1994-06-15 15:27:42 +00:00
glass 6efa4eb0bc fix compilation errors caused by new nfsv2.h 1994-06-14 00:31:43 +00:00
glass 78bf21476b works in bootstrapping caseee 1994-06-03 03:44:41 +00:00
glass ae4959931e needed by some multicast thing 1994-06-03 03:37:30 +00:00
hpeyerl d649b1e46a s/REVARP/ARPOP/
(duh; thanx Gordon)
1994-05-31 04:26:31 +00:00
cgd 804948a48f kill header and Header lossage 1994-05-27 03:33:03 +00:00
cgd 2ae7f39161 be careful about mcount.po 1994-05-21 03:22:42 +00:00
cgd 17ab905850 need a backslash! 1994-05-16 11:01:45 +00:00
deraadt a3c5a71f9f attempts to reduce our reliance on /usr/include 1994-05-16 06:25:21 +00:00
cgd e7a10fd212 add libkern mcount 1994-05-14 06:00:34 +00:00
mycroft 07b4f2ab54 Update to 4.4-Lite networking code, with a few local changes. 1994-05-13 06:02:48 +00:00
brezak e03842d0c7 Standalone networking for network boot loaders. 1994-05-08 16:11:14 +00:00
cgd a0a7429482 lots of changes: prototype migration, move lots of variables, definitions,
and structure elements around.  kill some unnecessary type and macro
definitions.  standardize clock handling.  More changes than you'd want.
1994-05-05 05:35:42 +00:00
glass 590e7a9105 missing. not noticed because all the ports have their own version. 1994-04-17 03:47:16 +00:00
chopps 7bb230219d copied over so lib/libc/arch not needed to build kernel. 1994-03-29 07:14:42 +00:00
deraadt d77d51eea8 kernel/disklib.c goes away, not very portable 1994-03-23 18:18:45 +00:00
mycroft fcb12cd74d Much faster on 486s and Pentiums; a little slower on 386s. 1994-03-23 08:49:46 +00:00
deraadt 21bd5c11f4 delete some unneeded things 1994-03-22 19:17:22 +00:00
ws ce516ff13d Make FFS optional 1994-03-09 21:21:37 +00:00
pk 381f4cb170 set errno. 1994-03-01 20:57:56 +00:00
pk 2c2ca1351c Don't use aggregate initialization;
Add memcpy().
1994-02-26 10:29:41 +00:00
mycroft e50e5bc84b Minor speedup. 1994-02-24 06:58:36 +00:00
mycroft 2f681356c4 Minutely faster. 1994-02-24 01:32:14 +00:00
mycroft afe588b9d2 Assembler versions of these. 1994-02-24 00:41:00 +00:00
mycroft 451fbfb366 Update from libc. 1994-02-15 13:42:30 +00:00
mycroft 4a5c858157 PARANOID --> DIAGNOSTIC for inexpensive tests. 1994-02-14 21:49:08 +00:00
hpeyerl d7038296be Multicast is no longer optional. 1994-02-02 05:58:50 +00:00
jtc 5235180083 Fix spelling error in Copyright notice 1994-01-28 23:43:26 +00:00
mycroft 8854a8d447 Clean up deleted files. 1994-01-26 03:21:46 +00:00
brezak 36b52a824e CMU/4.4 stand-alone library 1994-01-26 02:03:32 +00:00
pk ccbb67e8c3 Find source in the right places. 1994-01-15 19:48:56 +00:00
ws e33a014618 Use $(MAKE) instead of make 1994-01-09 17:22:54 +00:00
mycroft 4fe12e6e88 Fix some inconsistent spacing; spaces at the end of lines, etc. 1994-01-08 21:21:28 +00:00
deraadt 49c0e9bead "struct ether_addr" for ethers(3) functions. 1993-12-30 04:17:40 +00:00
davidb 3a435f99f9 Changed to use make's new .OBJDIR 1993-12-28 10:59:05 +00:00
cgd 0be07477eb use ${MAKE} rather than "make", as suggested by Roland McGrath 1993-12-22 04:58:02 +00:00
hpeyerl 5097691559 >From cmaeda@cs.washington.edu; part of the multicast patches derived
from the Multicast patches for BSDI.

(I am a "big dopey bear" for having forgotten this. Thanx Havard.)
1993-12-13 15:10:40 +00:00
mycroft 6f9ba74d72 Clean up deleted files. 1993-12-05 07:20:14 +00:00
mycroft c051bea7ca Clean up deleted files. 1993-12-05 01:56:14 +00:00
cgd fdc1a28735 use .S 1993-12-05 01:52:27 +00:00
cgd 30dc89704d split up the {ntoh,hton}[ls] functions 1993-12-05 01:36:46 +00:00
cgd 1e98b770b2 use .S files 1993-12-04 05:21:29 +00:00
cgd d226f795ee quad support 1993-12-04 05:21:03 +00:00
cgd 90d44a4697 oops; we need this 1993-12-04 05:09:14 +00:00
cgd aa73ac7b19 quad support copied in from libc. 1993-12-04 05:01:33 +00:00
cgd 4b9f919ec3 deal with missing lib dirs 1993-12-04 03:13:31 +00:00
cgd 5d996b5fbb change to use MACHINE_ARCH and update from libc 1993-12-04 03:08:13 +00:00
mycroft fb44c683a4 Clean up deleted files. 1993-12-04 03:07:53 +00:00
cgd 879130b794 change to use MACHINE_ARCH and update from libc 1993-12-04 03:05:16 +00:00
mycroft 75fe89c2ef Clean up deleted files. 1993-12-04 03:04:56 +00:00
cgd e21de4e71b change to use MACHINE_ARCH and update from libc 1993-12-04 03:04:30 +00:00
briggs 606d45ee4a Move the SRCS from hp300 over to here, changing ffs.c to ffs.s.
Am I missing something obvious in doing this?  This makes the
${ARCH}/Makefile.inc for 68k able to just set ARCH=m68k.
1993-11-29 05:29:51 +00:00
cgd e685fd393f added files copied in from libc. version numbers are screwed,
but are screwed for the rest of libkern's files, anyway.
1993-11-05 22:40:48 +00:00
jtc 9c896370ee Did a ``make copy-to-libkern'' from libc to copy libc files to libkern.
Checking them in to make people happy.
1993-10-27 22:00:42 +00:00
cgd 9f8465b49c use obj.${MACHINE} dirs to compile into 1993-10-23 02:33:12 +00:00
jtc 79591d04bc So many files in arch/i386 have been changed I might as well run my
remove unecessary trailing whitespace script.
1993-10-21 01:48:14 +00:00
jtc 823c36577c Change instances of LIBC_RCS back to LIBC_SCCS. If we are going to change
th LIBC_RCS, the entire source tree should be updated at once.
Remove && !defined(lint) from conditionals around rcs id's.  No one is
ever going to pass a *.s file through lint.
1993-10-21 01:39:55 +00:00
jtc 97ad548bc0 Replaced instructions with immediate operands with compatible alternatives
saving a few bytes while the cycle count remains the same --- could
actually be faster, depending on the cache, prefetch queue, etc.
1993-10-20 18:50:15 +00:00
cgd 1411cfbd47 byte-order fixes, and bunch of debug printfs... 1993-10-18 23:01:13 +00:00
cgd 238d7de281 byte-order fixes 1993-10-18 22:59:56 +00:00
cgd bf4b776381 total overhaul. still needs a lot of cleanup though... 1993-10-16 07:57:36 +00:00
cgd 29988603d4 add a header file with some protos... 1993-10-16 07:32:22 +00:00
cgd d3731177f7 rename nfsboot.c, and add boot_tftp.c, which isn't done yet. 1993-10-15 13:52:26 +00:00
cgd ca91b52083 get rid of extra variable, and move to boot_nfs.c 1993-10-15 13:43:16 +00:00
cgd 2193c056b8 add strncmp to anything 1993-10-15 08:41:12 +00:00
cgd acbf63a86b add __main() 1993-10-15 06:20:46 +00:00
glass e74dea9259 upgraded the critical bits to 'bootbootp' version 0.3.
added file to describe bootbootp -> netboot integration, though it does so
badly and without much detail.
1993-10-14 04:53:34 +00:00
cgd aed90a8659 make user define debug variable. get rid of the COMMON_ETHER
define; always require a machdep_common_ether routine, which
may do zip if no common enet addr
1993-10-13 21:22:27 +00:00
cgd b6a7521043 separate globals, add the bootinfo.c file to the lib 1993-10-13 16:33:55 +00:00
cgd c141ecaada fix lbl revision number, and update to latest lbl source (fix bug) 1993-10-13 13:55:38 +00:00
cgd c667517e13 punt on doing minimal work in favor of less output in 'happy' case. 1993-10-13 12:19:37 +00:00