Commit Graph

4091 Commits

Author SHA1 Message Date
christos 7d48644528 Resolve corn flakes. 1999-11-01 17:39:26 +00:00
christos 39cf80bb8c new version of file(1) 1999-11-01 17:30:12 +00:00
thorpej 0bd35e4157 This program has to use KVM alrady, so use that to read uvmexp, rather
than sysctl.  This can now read VM stats from crash dumps.
1999-10-30 22:49:58 +00:00
explorer 7e9d7f75aa make change to the yacc output bits, not to the yacc binary bits 1999-10-29 16:41:51 +00:00
explorer 3cdbacc45a defined(__NetBSD__) && defined(__RCSID) 1999-10-29 16:35:46 +00:00
itohy 2f4c0d5e74 Make ktrace(1) not affect interactions between processes.
Following examples show the cases.

    % ktrace -f - false >/dev/null && echo wrong
    wrong
    % ktrace -f - -i /usr/sbin/update >/dev/null
    (does not return to command line)

That is, back out last change and restore the roles of parent/child for
ktrace(1).  The ktruss(1) stuff still remains.
Yes, ktruss(1) has the problems.  Better implementation is expected.
1999-10-29 09:11:49 +00:00
explorer 2e74cdd712 Only use __RCSID() if defined(__NetBSD__) so the yacc output files can
be used on non-NetBSD platforms, too.
1999-10-27 20:28:11 +00:00
kleink 522cbf0248 Update to match new SVR4-style definition names in <sys/exec_elf.h>. 1999-10-25 13:55:06 +00:00
lukem 4f2d3550d0 new features:
- add `usage'; displays the usage of a command.
  implemented by calling the c_handler() with argc = 0, argv = "funcname".
- add `passive auto'; does the same as $FTPMODE=auto.
- add `set [option value]'; display all options, or set an option to a value.
- add `unset option'; unset an option.
- add getoptionvalue() to retrieve an option's value, and replace a few
  global variables with calls to this.
- implement cleanuppeer(), which resets various bits of state back to
  `disconnected'. call in disconnect() and lostpeer().
- support completing on `options'.
- improve recovery after a SIGINT may have closed the connection.
  XXX: there's still a couple to fix

other stuff:
- various consistency fixes in the man page.
- ensure that the command usage strings in the code and man page match reality.
- mput/mget: check that the connection still exists before each xfer.
- minor cosmetic changes in confirm().
- set code correctly in sizecmd() and modtime()
- don't need \n in err() strings.
- change lostpeer to take an argument (rather than casting (sig_t)lostpeer
  in signal handlers)
- knf and whitespace police.
1999-10-24 12:31:36 +00:00
mrg 4b5ab45441 fix bug introduced in 1.12:
only return a header length of 0 if we are using -f (force), not
in the case when we know how long the header is.  this stops from
playing the audio header.
1999-10-23 04:20:14 +00:00
hannken b383db3e6c Undo last change. While these macros are defined in exec_elf.h, they are
enclosed by `#ifdef _KERNEL'.
1999-10-22 10:47:37 +00:00
erh e896ce55a0 Remove ELFNAME macros which are already defined in exec_elf.h 1999-10-21 21:16:07 +00:00
lukem f74df4b2ea * fix up confirm() (broke `a' and `p' in last commit)
* simplify main loop (don't need `top' variable any more)
* use a struct sockaddr_in6.sin6_addr for the result from inet_pton(),
  rather than u_char buf[16]
* add a few more comments
1999-10-13 02:47:54 +00:00
lukem 28f9cbb866 s/ARPANET/Internet/ ... 1999-10-12 08:11:59 +00:00
lukem da626f2307 a few user interface and cosmetic tweaks:
* confirm(): move from util.c to cmds.c. display mnemonic string in its prompt.
  add support for `q' (terminate current xfer), `?' (show help list)
* in various signal handlers, output a linefeed only if fromatty.
* if fgets(stdin) returned NULL (i.e, EOF), clearerr(stdin) because you don't
  want future fgets to fail. this is not done for the fgets() in the main
  command loop, since ftp will quit at that point.
* unless ftp is invoked with -a, don't retain the anonftp setting between
  hosts (`ftp somehost:' sets anonftp, but you don't want that to `stick'
  if you close that connection and open a new one).
1999-10-12 06:04:59 +00:00
augustss 551f9b0d0c Fix timer reset bug when playing multiple songs. 1999-10-11 12:52:10 +00:00
lukem d5b5f0e034 * in the SIGINFO/SIGQUIT handler, print a newline before displaying
the xfer stats
* crankrate() should have a K&R decl (for consistency)
1999-10-11 12:35:42 +00:00
lukem bd5207d5ac if editing is enabled when intr() is called, print a newline. (cosmetic fix) 1999-10-11 12:34:17 +00:00
mrg 45cd15f3ed recognise "dty" the same as we do "tty" 1999-10-11 11:55:27 +00:00
lukem 08ebd97c48 use sigjmp_buf for sigsetjmp(), instead of jmp_buf.
noted by Havard.Eidnes@runit.sintef.no.
1999-10-10 22:33:54 +00:00
mrg 345a3bce75 let "systat vmstat" say "1 user" not "1 users" 1999-10-10 01:07:03 +00:00
lukem afb965e778 allow a second SIGINT during the "xfer aborted. waiting for remote to finish abort."
stage. if this occurs, just call lostpeer() to close the connection.  whilst this
might be considered brutal, it's also extremely handy if you're impatient or there's
lossage at the remote end.
1999-10-09 12:48:12 +00:00
lukem a53d7d57a9 * use sigsetjmp()/siglongjump() instead of setjmp()/longjmp(); the latter
don't save the signal mask on some foreign systems.
* ensure signal handlers don't use stdio and do reset errno if they
  don't exit with siglongjmp()
* use a common SIGINT handler for {send,recv}request()
1999-10-09 03:00:55 +00:00
msaitoh 0fcbe067c6 s/ the the / the / 1999-10-08 20:13:42 +00:00
msaitoh 759d929514 s/ as as / are as / 1999-10-08 18:13:16 +00:00
simonb 7d7c6d9f66 Minor nit - don't append a '/' to tmpdir if it already ends in a '/'. 1999-10-07 02:05:22 +00:00
ad 37a134f54b Add a new optional parameter to the configuration file, specifying the
path to a file containing a PID to send SIGHUP to. If omitted, the default
is to signal syslogd. Idea from FreeBSD.
1999-10-06 13:26:28 +00:00
lukem ce2d63fcbf more propaganda :) 1999-10-06 08:57:46 +00:00
lukem 141ae91ed8 * fetch_url(): specifically set SIGQUIT to psummary before each xfer.
(work around editline's override)
* minor cleanup of signal handler (along the lines of similar work in
  recvrequest()). the handlers should now be reset everytime the cleanup
  handler was callled.
1999-10-05 22:12:34 +00:00
lukem c694a5290b * set SIGQUIT to psummary in each of the xfer routines. (editline seems to
override SIGQUIT when EL_SIGNAL = 1 (but we want the latter for all the
  other signal support it has).
* more fixes after previous rototill
1999-10-05 22:04:30 +00:00
lukem 781fce374d the prior change was a bit too aggressive in factoring out common code in
{send,recv}request(). completion and uploading now works again...
1999-10-05 13:44:39 +00:00
lukem 3f8b92b0b3 * factor out SIGINFO setting into a handler that is always active (but only
prints out info if bytes > 0). only set the handler if SIGINFO is defined
* hijack SIGQUIT to be the same as SIGINFO (foreign ports have this, and it's
  annoying to have SIGQUIT dump core on netbsd when it prints info on other
  systems)
* in {recv,send}request(), factor a lot of duplicated code out into a
  `cleanup' section at the end
* rework shell() a bit
1999-10-05 13:05:39 +00:00
ad b545302160 Allow use of use of ':' to separate user and group names, since elsewhere
'.' is a valid character in user and group names. '.' still works, but
':' takes priority.
1999-10-05 12:11:27 +00:00
matthias 6ecf374e0c make this actually display the flag descriptions and examples. 1999-10-05 11:56:15 +00:00
lukem f45505380a add TNFi copyright to all files i've done more than a minor amount of work to... 1999-10-05 01:16:11 +00:00
lukem 4309cfaab3 enhancments from Marc Horowitz <marc@mit.edu> to improve connection timeouts:
* implement xsignal_restart(), which only sets the SA_RESTART flag if
  specifically requested
* xsignal() is now a wrapper to xsignal_restart(). INFO, USR1, USR2 and WINCH
  are restartable, ALRM, INT, PIPE and QUIT are not.
* improve getreply()'s timeout code to take advantage of the above.

other changes:
* improve wording of how globbing works for `classic' URLs (host:path).
  suggested by John Refling <johnr@imageworks.com> in relation to PRs
  [bin/8519] and [bin/8520]
* always compile in the `edit' command even if NO_EDITCOMPLETE defined.
  it's just a no-op in the latter case, which is more consistent to
  the users.
* always compile in about: support (i.e, remove NO_ABOUT).
  i'm entitled to some vanity in this program...
* clean up some whitespace
1999-10-05 00:54:07 +00:00
lukem 88d3d7c59e update after change to return value of tputs() third argument 1999-10-04 23:26:59 +00:00
lukem 670c7ebebd restart_point is a global; no need for it here 1999-10-01 09:23:32 +00:00
lukem fcb1a22a1c If EPSV or EPRT fails, disable epsv4 for the rest of the current connection.
the disabled state can be overridden by toggling epsv4.

(I got sick of the errors about EPSV not being supported on almost
every server I connect to. This way we retain support for epsv4, but
it's not so whiny after the first failure...)
1999-10-01 08:01:12 +00:00
lukem 4c9f05c61f simple dependancy so addition of global vars to ftp_var.h is detected for main.c 1999-10-01 07:58:02 +00:00
lukem ad70c1982e prefix the global variables in ftp_var.h with GLOBAL, which defaults
to "extern" if it's not set. define GLOBAL to (empty) in main.c.
this effectively moves all the globals into main.c whilst retaining
namespace access to them in other source files.
(global vars in header files confuse foreign linkers)
1999-10-01 06:55:44 +00:00
lukem 46111773d1 * don't bother with "pathnames.h"; it contained just a single #define.
instead, include <paths.h> in the files that need it
* slightly reorg ftp_var.h
1999-10-01 06:18:32 +00:00
lukem 38100c05f4 * newer takes an optional second arg, so document this
* be a bit more explicit that the arguments to rate are in bytes
1999-10-01 05:08:31 +00:00
lukem 25790d921d * In the !NI_NUMERICHOST case (i.e, getaddrinfo() challenged systems), portnum
should be in host order. found/fixed by Matthias Pfaller <leo@dachau.marco.de>
* parse_url(): improve checking of portnum, and add an extra argument to pass
  back the parsed portnum to the caller (reduces a bit of code duplication)
* Move the KAME/WIDE copyrights after the BSD/TNFi ones. Since there was
  significantly less code added under the former, it's only fair on the latter.
1999-09-30 23:51:26 +00:00
soren 60b747deab Typo. 1999-09-30 13:47:57 +00:00
soren a87871bbec There's room in the systat-vmstat-iostat display, so allow four-letter
device names like e.g. ccd0 and print an extra digit of precision in
the 'sec' line like iostat(8) does.
1999-09-30 13:16:27 +00:00
soren 30d18a154c Remove extraneous colons and newlines from perror(3) arguments. 1999-09-30 12:35:52 +00:00
lukem 1b3e840242 * fix initialisation of home[]
* fetch_url(): if path would be NULL, return strdup("")
1999-09-30 12:18:03 +00:00
lukem c4a3ce23de in empty(), FD_ZERO(&rmask) not (&cin). (hi christos! :)
fixes abort_remote() when __USE_SELECT is defined.
thanks to simonb@netbsd.org for reporting this bug
1999-09-30 06:35:13 +00:00
lukem 5f7fe832b6 #define BUFLEFT is always used... 1999-09-30 05:38:19 +00:00
lukem 9f5bda2e21 * consistentnly use memset(a,0,c); there were some cases of memset(a,'\0',c)
* remove explicit extern int h_errno; it's in <netdb.h>
* add <termios.h> back to util.c; it contains struct winsize on some systems
1999-09-29 00:44:01 +00:00
ad a14ea316bd Typos. 1999-09-28 18:36:33 +00:00
lukem 6c997b7af6 revert snprintf() -> sprintf(). the original idea was that sprintf() would be
more portable, except that certain systems have char *sprintf() instead of
int sprintf(). (we'll provide snprintf() on those)
1999-09-28 09:12:06 +00:00
lukem f3f34df069 don't fudge out the stalltime when calculating the ETA. this means that the
ETA might be over and will appear to drop rapidly, rather than being under
and appear not to change. the original code makes sense when you're testing
by suspending & resuming the client. however, the unfudged number is probably
better in reality, especially for slow spurty networks.

requested by ITOH Yasufumi <itohy@netbsd.org> in [bin/7977]
1999-09-28 07:54:01 +00:00
lukem 8c29ac4ade remove debugging cruft 1999-09-28 07:51:05 +00:00
lukem 256fc138f1 * add new commands:
lpage	page local files
	pdir	as dir, but through your $PAGER
	pls	as ls, but through your $PAGER
* implement docase() (a la dotrans() et al) and use appropriately, rototilling
  some duplicated code
* globulize(): modify to return a pointer to the strdup()ed result in all cases,
  and hack the code that calls it to take this into account
* replace strcpy() and strncpy() with strlcpy()
* put(), getit(): use some aptly named local vars instead of argv[...]
* delint
1999-09-28 06:47:38 +00:00
lukem 002c3f9216 * idle(): rename to idlecmd(). certain linux distributions have an incompatible
prototype for idle() in <unistd.h> (which i thought was against namespace
  and sensibility guidelines, but...)
* consistently use xsignal() instead of signal(). we get known behaviour
  in all cases (SA_RESTART), which is good for some borken foreign systems.
* remove signal.h from most files; it's unnecessary now
* fetch_url(): use `long chunksize' instead of ssize_t; it's more portable, and
  we're setting chunksize with strtol() anyway
* xsignal(): only use SA_RESTART if it exists. SunOS 4.x doesn't have it
  but has the inverse (SA_INTERRUPT). the original function i was inspired
  from had this support (lib/signal.c, W. Richard Stevens' `UNP 2nd ed Vol 1').
* remove <termios.h> from util.c; it should be unnecessary now
1999-09-27 23:32:31 +00:00
lukem 70c01ac44a * idle(): rename to idlecmd(). certain linux distributions have an incompatible
prototype for idle() in <unistd.h> (which i thought was against namespace
  and sensibility guidelines, but...)
* consistently use xsignal() instead of signal(). we get known behaviour
  in all cases (SA_RESTART), which is good for some borken foreign systems.
* remove signal.h from most files; it's unnecessary now
* fetch_url(): use `long chunksize' instead of ssize_t; it's more portable, and
  we're setting chunksize with strtol() anyway
* xsignal(): only use SA_RESTART if it exists. SunOS 4.x doesn't have it
  but has the inverse (SA_INTERRUPT). the original function i was inspired
  from had this support (lib/signal.c, W. Richard Stevens' `UNP 2nd ed Vol 1').
* remove <termios.h> from util.c; it should be unnecessary now
1999-09-27 23:09:42 +00:00
mjl d6634fdb48 Mention "-" is the same as "-l". Closes PR/8499 by Matthew Aldous. 1999-09-27 19:41:33 +00:00
kleink c13a492388 1003.1c: add {LOGIN_NAME_MAX}. 1999-09-27 16:24:39 +00:00
mrg cc78535b32 fix off-by-one error in error message array. add a comment. 1999-09-27 05:06:10 +00:00
mrg 86ee174f0b honour -f, even if we appear to have a sun audio file. un-byte-screw the encoding for printing, too. 1999-09-27 05:00:21 +00:00
mrg b3a888e9cd run forever if no -t is specified, from dan mcmahill 1999-09-27 01:58:07 +00:00
lukem 02e1aae831 remove now-unused variable left over from last commit.
(repeat after me; `test compile before commit...')
1999-09-26 14:21:50 +00:00
lukem 02387d2c93 Use tcgetpgrp(fd) instead of ioctl(fd, TIOCGPGRP, &var), because
Kimmo Suominen <kim@netbsd.org> informs me that it's more portable.
1999-09-26 14:18:01 +00:00
lukem 75e3195cad * replace ifdefs against __SVR4 and __linux__ with DIRENT_MISSING_D_NAMLEN;
it's more portable and more obvious
* remove the mkgmtime() && HAVE_TIMEGM stuff:
	a) why should netbsd have to define HAVE_TIMEGM to compile cleanly?
	b) foreign compiles of ftp should just be linked with working
	   timegm function

a more portable version of this ftp client will be released as a 3rdparty
product; no use polluting our code with half-baked attempts...
1999-09-26 02:00:12 +00:00
lukem a222db7c70 * use %lld instead of %qd to print out (long long) vars.
(slightly more portable; e.g, solaris supports this)
* remove some fluff (lint)
1999-09-24 14:28:14 +00:00
lukem 14b5ecf789 use an off_t instead of quad_t (or long #ifndef NO_QUAD) to store the
temporary restart point. (yet another portability fix...)
1999-09-24 12:52:18 +00:00
lukem ec4e414dc8 fix a couple of thinkos in my recent work:
* abort_remote(): replace borken MIN(4,BUFSIZ) with just BUFSIZ; it
  should have been MAX(4,BUFSIZ), but it's probably safe to assume that
  BUFSIZ is at least 3... (fix from simonb)
* auth_url(): use the correct variable when calculating a buffer size.
1999-09-24 06:57:37 +00:00
lukem cb8c56db8a if getsockopt() returns a buffer size of <= 0, set them to 8192.
this works around a problem in certain OS from Sun with a version < 5.6...
1999-09-24 06:14:40 +00:00
lukem e73d848293 in complete(), only copy the word if there is one.
`cd <TAB>' was triggering _DIAGASSERT(src != NULL)).
1999-09-24 05:35:09 +00:00
lukem 76c8d5f094 * finish replacing snprintf() with sprintf(), for portability reasons.
add lots of comments about how to size up the buffers, and add extra
  checks to hopefully ensure that there won't be an overflow (unless
  someone modifies the length of the sprintf()s).
* as part of the above, slightly rework the way the `*' bar is calculated.
  also fixes a display bug when > 160 stars were needed to be printed.
  the maximum progress bar width at this time is 256.
* remove some code that checks the port that was #if 0-ed out as part of the
  ipv6 migration; it's not going to be used again.
1999-09-24 00:48:24 +00:00
dmcmahill 10800b97f9 add description of the -t option 1999-09-23 15:42:06 +00:00
dmcmahill df5a9e3cb5 fix -t option 1999-09-23 15:41:31 +00:00
tron 22cf28baac Fix wrong option string in call to getopt(3). Patch supplied by
Geoff C. Wing in PR bin/8475.
1999-09-23 08:47:47 +00:00
lukem 700e3c1ec7 * add support for `xferbuf', which sets both `sndbuf' and `rcvbuf'
* document the above three commands
* rototill the way the sndbuf and rcvbuf work. remove resetsockbufsize()
* use the appropriate socket buffer size as the size of the buffer that
  the read()/write() loops use. speeds up things in some cases.
1999-09-22 07:18:31 +00:00
lukem 5d3667b758 replace snprintf() with strlcpy(), strlcat(), or direct assignment
where appropriate. (strlc*() are easier to port to foriegn systems).

XXX; there's still a few snprintf's in the progress meter stuff to convert
1999-09-22 03:01:53 +00:00
lukem 84e2c387e7 * protect more of the AF_INET6 stuff with #ifdef INET6 (for portability)
* in the main data moving loops only call the initial gettimeofday() if
  rate throttling is enabled (saves a system call per loop when not
  throttling).
1999-09-21 13:17:22 +00:00
lukem 20a4d96576 reword EPSV status line 1999-09-21 13:10:16 +00:00
lukem 2ef7f5d71d add trailing . to message 1999-09-21 12:57:51 +00:00
lukem f7ead868c0 cast 4th arg to [gs]etsockopt() to (void *), to satisfy some foriegn systems 1999-09-21 11:18:27 +00:00
lukem 26738e38b8 only default to epsv4 if INET6 is defined 1999-09-21 10:11:56 +00:00
cgd 7132ce2fd3 RCS ID police (sigh) 1999-09-21 06:24:46 +00:00
tron ab40c54610 Use full hostnames when sorting rwho database entries. Fixes PR bin/8401
by John Darrow.
1999-09-20 20:35:43 +00:00
christos f6ae64deff Free the right thing. 1999-09-20 04:12:16 +00:00
ad a74cd67dcf Some cleanup [Fixes to follow as soon as I get a CD-ROM drive at home] 1999-09-18 21:15:23 +00:00
kim 6c6c0c0d5c Make this compile on Solaris... 1999-09-16 19:57:54 +00:00
mycroft 2500a4b975 Some minor cleanup of :: tests. 1999-09-16 00:54:14 +00:00
mycroft ce14db1fcd Fix a bug in the previous. In the `compat' case, we don't actually use the
list of target nodes returned by Make_ExpandUse().  We have to search the
cohorts explicitly while iterating through the tree.  So, tweak CompatMake()
to do this.
1999-09-16 00:49:48 +00:00
sommerfeld bcb141e5d0 Reuse the Hash_Entry `name' field to store the variable name when we
can (i.e., everything except environment variables, which aren't
stored in hash tables).

While we're here, inline the body of VarDelete into Var_Delete since
it's the only caller and it's just simpler that way when v->name can
share storage with the hash entry and may not need to be freed
separately.

Speeds up the infamous libc build benchhmark maybe 1% on PIII, 4% on
alpha pc164

Suggested by Perry Metzger.
1999-09-15 22:51:05 +00:00
is cef52aa203 Add -L option. netstat -r -L behaves like 4.3BSD netstat -r, that is, it
does not show route table entries pointing to link level addresses (ARP
entries or IPv6 neighbour discovery entries).
1999-09-15 20:12:18 +00:00
is 4d1abcb145 Netstat knows about "-f inet6". 1999-09-15 19:57:02 +00:00
mycroft b12871c6cb Rework how :: dependencies are handled.
Build a list of `cohorts' as before, but do *not* link each one into all the
parent nodes; instead, copy the `cohort' lists into the stream of targets to
be built inside Make_ExpandUse().  Also do the attribute propagation as a
separate pass after parsing.
This eliminates several O(n^2) algorithms.
1999-09-15 10:47:37 +00:00
mycroft c29ad80902 More cleanup code bites it. 1999-09-15 08:48:17 +00:00
mycroft dd291116bc Don't bother iterating through all the data structures to free(3) everything
right before exiting.
(The code is still present, `#ifdef CLEANUP', in case someone needs it...)
1999-09-15 08:43:21 +00:00
mycroft 441a442e46 Fix another case where we stat(2)ed .PHONY targets. 1999-09-15 05:56:33 +00:00
mycroft ff6341a190 Nuke Buf_{G,Ung}etByte{,s}(), since they aren't used, and make BufExpand do
power-of-2 allocation.
1999-09-15 04:16:31 +00:00
mycroft c33b6eca55 Avoid using Lst_Member() in SuffExpandChildren(), by avoiding Lst_ForEach() and
passing in the LstNode of the child being inspected.  Shaves off another few %,
particularly when there are long child lists containing $ expansions (e.g. in
libc).
1999-09-15 03:59:44 +00:00
mycroft d2ec8b0e26 Replace the linear variable list in the GNode with a hash table. Gives a
small (~10% on my machine) speedup building libc.
Changes by: perry (+ bug fix and minor change by me)
Reviewed by: mycroft sommerfeld
1999-09-15 02:56:34 +00:00
mycroft a502b0ee92 warn()->warnx() in a couple of places. 1999-09-14 22:49:14 +00:00
mrg 217279cb42 add a note about "audioctl encodings", to find available supported encodings. 1999-09-14 05:04:21 +00:00
tron ac79ed84db Name possible encodings for "-e" option and add an example provided by
Ben Wong in PR bin/8391. Thanks must go to Ross Harvey for helping me
with the "nroff" stuff.
1999-09-13 19:36:30 +00:00
tron feac6b2836 Use "NULL" instead of "0" for null pointer. 1999-09-13 17:35:33 +00:00
tron 5b011b57a2 Fix broken "-f" and "-P" options. Patches supplied by Ben Wong in
PR bin/8390.
1999-09-13 17:18:21 +00:00
kleink 03126e1c99 Use full month names with .Dd, as per mdoc.samples(7). 1999-09-12 18:47:10 +00:00
jdolecek 1a3b3e1f42 pull in <sys/mount.h> (with _KERNEL) to get definition of struct netexport,
used in struct ntfsmount
1999-09-12 16:47:42 +00:00
itojun 510eaf2f65 fix duplicated "leshort 42 Hitachi SH" (one of them should be "beshort").
(part of NetBSD/sh3 patches)
1999-09-12 16:38:16 +00:00
itojun bb41dd1eaa add "#ifdef __sh3__" section.
(part of NetBSD/sh3 patches)
1999-09-12 16:10:45 +00:00
dbj e1c216bcdf RTF_PROTO1 is indicated by the flag '1' and RTF_PROTO2 is indicated by the flag '2',
not the other way around
1999-09-12 02:33:43 +00:00
chs 21eedb0ec1 the PMAP_NEW option is gone as the new interface is no longer optional. 1999-09-12 01:19:23 +00:00
christos ab01074993 Add :O var modifier, that sorts the words in a variable. 1999-09-12 00:17:50 +00:00
simonb 1f7c79634d Fix inconsistancy at start of copyright message. 1999-09-10 04:05:28 +00:00
kleink 938ac456e0 Define __LINT__, per XCU5. 1999-09-09 09:34:25 +00:00
fredb 66635b21d1 Doc previously undocumented `-k' option, correctly note mutually exclusive
options, various stylistic changes.
Closes PR bin/8325.
1999-09-08 20:32:03 +00:00
jwise 75eb9e11a9 Slight improvement to last fix: don't need to reset the cpp tempfile for
files which don't need to be run through cpp.  Also, use vfork() instead of
fork().

Both from Anders Hjalmarsson (Anders.Hjalmarsson@economics.gu.se)
1999-09-07 02:36:57 +00:00
kleink 3b9e70a904 Pasto in previous; noticed by Perry. 1999-09-06 21:50:39 +00:00
kleink 4fe72c2fe5 Use NL_TEXTMAX to size the buffer passed to regerror(). 1999-09-06 09:37:29 +00:00
jwise 6c0498c892 Apply fix from PR bin/8328 by Anders Hjalmarsson (Anders.Hjalmarsson@economics.gu.se):
work properly again when passwd multiple files on the command line.
1999-09-06 06:45:20 +00:00
itojun 1f293daeb9 fix getaddrinfo() loop.
Approved by: seirios@iri.co.jp (submitter of IPv6 whois patch)
1999-09-06 06:23:08 +00:00
tron 4de1769208 Forgot to mention OpenBSD in history. 1999-09-04 20:53:05 +00:00
tron 16e75e8bbc Correct history for NetBSD and add RCS Id. 1999-09-04 20:36:15 +00:00
mycroft 3596f4a0cb Increase the default maxmagic. 1999-09-04 19:51:58 +00:00
mycroft bd10bffcd8 Make maxmagic always increase by a factor of 2. 1999-09-04 19:51:11 +00:00
perry 29c51c5557 fix a bug with terminal modes being badly set on exit 1999-09-04 18:02:58 +00:00
perry bfb2ae4d85 Clean up, add RCS ids, make this build on a modern NetBSD, etc., etc. 1999-09-04 17:07:22 +00:00
perry e3d1a2c0e4 Initial import of "qsubst", a command line query search and replace
facility. Note that this is the raw distribution I got from der Mouse,
for reference on the vendor branch.
1999-09-04 17:04:05 +00:00
christos 7057287c54 PR/8259: Chris Demetriou: Fix stack overflow bugs exposed by the glibc-2.1.1
Makefile. Use snprintf everywhere.
1999-09-04 04:21:28 +00:00
kleink edafa96ea6 Change the behaviour when in `more' mode (less invoked as more):
* Treat search patterns as BREs only, per 1003.2 and XCU5.
* Do not perform any special treatment when an unqoted * or @ is given as
  the first character of the search pattern.
Addresses PR bin/8269 by Chris Demetriou.
1999-09-03 22:07:05 +00:00
itojun fa7c0ce4df IPv6-ready whois client.
PR: 8281
1999-09-03 13:51:28 +00:00
itojun a4e46e8ae8 sync with recent kAME.
- avoid s6_addr{8,16,32} which are nonstanard.
1999-09-03 04:29:57 +00:00
itojun f84fab5af8 sync with recent KAME.
- fix routing socket align issue on 64bit arch.
- avoid s6_addr{8,16,32}, which are nonstandard.
1999-09-03 04:26:31 +00:00
tron 8bdd9799a5 Build and install "mktemp". 1999-09-02 20:48:27 +00:00
tron bd999492f6 Import FreeBSD's mktemp(1) utility. 1999-09-02 20:46:17 +00:00
itojun b59b162709 ftpd(8): Copy sin6_scope_id from control connection to active data
connection destination, hoping this to help ftpd's behavior with
scoped IPv6 addresses.
I'm not sure if it is the right way, but it is the best way available to us.
LPRT or EPRT command gives no information about which interface (or scope)
to be used for new data connection.

ftp(1): On data connection establishment, warn if scoped address is used.
If peer (ftp daemon) does not handle scoped address, data connection
may not work right.

This seems to be sort of protocol spec hole, not implementation issue.
1999-09-01 05:03:41 +00:00
christos 915a67c083 The port number might have changed in the proxy case. Re-evaluate it. 1999-08-31 22:05:22 +00:00
christos 0f5eb412c3 fix proxy code. strtol() does not work very well for parsing port names. 1999-08-31 21:30:25 +00:00
kleink 3e325adc1a Nuke unused V8 regexp. 1999-08-31 21:05:07 +00:00
christos 2cec9705c5 make ftp work again with the traditional gethostbyname/getservbyname
interfaces.
1999-08-29 22:21:57 +00:00
mycroft 625f1f9bb9 Don't use .Fl for non-flags. 1999-08-29 17:50:09 +00:00
christos 36dc48ce6e Amazing how this worked for so long. setenv(3) expects environ(7) to be
a malloc'ed pointer and it tries to realloc(3) it if it had to grow it
before. su(1) gave it a pointer from the stack which caused realloc to
core dump.
1999-08-29 04:21:55 +00:00
simonb dcb4cadef7 Don't need strftime() on Ultrix either. 1999-08-27 00:47:25 +00:00
marc 6458b2ce43 it doesn't make any sense to use -u with -r or -i, so don't permit it. 1999-08-26 07:33:16 +00:00
hwr a657ac3ef3 Added missing ``"''. From PR 8278 by <seebs@plethora.net>. 1999-08-26 07:18:10 +00:00
christos f5241efcfa make this compile.... 1999-08-25 19:58:15 +00:00
thorpej cff45b3bc0 formatting nits; nothing a quick pass through indent(1) can't fix. 1999-08-25 05:15:39 +00:00
thorpej 8c879edd2b Nuke extra RCS ID, rearrange some includes. 1999-08-25 05:13:06 +00:00
thorpej 6d16244386 Update for new semctl() footprint. 1999-08-25 05:12:15 +00:00
thorpej 345cb51c05 Update for changes to SVID IPC data structures. 1999-08-25 05:11:51 +00:00
mrg ec70388809 add a comment 1999-08-24 09:16:36 +00:00
lukem 6d532c26d3 fetch_url() fixes:
- just display the hostname:port of the proxy url, rather than the full url.
  this prevents someone `shoulder surfing' a proxy username/password
  in $http_proxy. [suggested by perry]
- compact verbose notes for http fetchs; now displays
    (via host:port, with authorization, with proxy authorization)
  with each component being optional.
(and a couple introduced with the ipv6 mods...)
- don't override host with the canonical name; this prevented fetches from
  http/1.1 virtual hosts from working if the virtual host was a CNAME.
  [noted by bernd]
- call freeaddrinfo() if res was built with getaddrinfo()
1999-08-22 12:49:00 +00:00
enami 07f35abba9 Replace TAB in message printed by file command with SPACE. 1999-08-21 16:05:56 +00:00
matt a5b92e89e1 Add knowledge of the VAX ELF magic number 1999-08-21 00:28:09 +00:00
ross cf4d2683a8 Classical Unix guaranteed that nice +19 would not compete with base priority
process execution. As this is true once again: say so.
1999-08-20 20:03:21 +00:00
ross be6dde2c3c Note that nice +20 only guarantees exclusion w.r.t. the base priority,
and not w.r.t. intermediate nice-levels. Correct english and formatting.
1999-08-20 18:09:48 +00:00
cgd f33ac29caa not all kvm_getfiles() errors are "out of memory." for instance,
some of them are caused by the kvm_getfiles() implementation being
TOTALLY BROKEN for dead kernels.  Print out the KVM descriptor's
error so that error causes are more easily diagnosed.
1999-08-19 06:13:09 +00:00
mycroft b6fad0e324 Make the group list format consistent between `id' and `id userid'. Also make
it look like what Solaris and Linux use (comma but no space between items).
1999-08-17 17:37:32 +00:00
enami d8ad2663a8 In name section, use .Dq macro rather than writing double quote directly. 1999-08-17 03:36:35 +00:00
simonb 299578ebd5 Spell "privilege" correctly (correct spelling from Jonathan Stone). 1999-08-16 02:59:22 +00:00
enami f6e5e6544e Always unlink the temporary file created by mkstemp(3). 1999-08-16 02:49:20 +00:00
sjg 84a0eb9650 Add support for multiple locate databases via $LOCATE_PATH and/or
command line switch.
Also exit(0) only if a match is found.
1999-08-16 01:41:16 +00:00
proff 209c8a802a ctrl-g is beep(), not "^G", damnit. strictly for the attention deprived. 1999-08-13 13:52:59 +00:00
tron c8b0d04949 Fix wrong array size calculation in call to memset() and avoid a possible
segmentation fault in memmove(). Patches supplied by Stephan Thesing in
PR bin/8184.
1999-08-10 20:09:02 +00:00
aidan 58f27ba58c Added .PARSEDIR and .PARSEFILE variables to make(1). 1999-08-09 21:06:28 +00:00
thorpej 2d720e5ff0 Don't truncate syscall return values on LP64 platforms. 1999-08-06 00:11:02 +00:00
ross 7886a593e3 Back out part of previous, only the parse.c mod was intended. 1999-08-04 16:44:07 +00:00
ross 0728723c31 Trivial speed hack. 1999-08-04 02:54:56 +00:00
jdolecek 88a653ac21 add support for ntfs 1999-08-02 17:39:13 +00:00
ad aa707bd962 Add 'inet.' prefix to 'tcp', 'ip', 'tcpsyn' and 'icmp' displays.
Fixes PR: bin/8130 (Geoff C. Wing)
1999-08-02 17:27:27 +00:00
hubertf 5674691260 Save the walls, use fly swatters instead of machine guns!
(s/sscanf/strtol/, per Christos)
1999-08-02 17:23:58 +00:00
hubertf a38c426e1c Detect invalid arguments to -j and -L by using sscanf() instead of atoi().
Fixes PR 6743 by Assar Westerlund <assar@sics.se>
1999-08-02 15:23:11 +00:00
sommerfeld cb8819d25b Serious fix for the silly and flippant PR7875 which preserves the
original silly spirit of the man page.
1999-08-02 12:41:20 +00:00
sommerfeld 728f40d730 Fix from PR7655: translation of keyboard command in systat is Wrong.
(breaks netstat's :ignore command for upper-case service names)
1999-08-02 02:01:57 +00:00
kleink 1cc052ce00 Rearrange the shared library search path precedences to LD_LIBRARY_PATH >
runpath > built-in default; this is the behaviour of the SVR4 shared loader,
and gives users the opportunity to override the runpath.  (Addresses a report
on current-users by John Kohl.)
1999-08-01 19:47:07 +00:00
lukem 8e17c17112 fix problem with www authentication: len passed to snprintf() for
auth_url() strings was 1 too small. noted by veego@
1999-08-01 12:22:23 +00:00
sommerfeld 0c41be440f Add `-U' flag (for "unprivileged"). Currently just skips the
chown/chgrp stages which would otherwise blow out if not running as
root.  A future version may log the owner/group to allow correction by
a later privileged cleanup pass.

Just warn about madvise failure; it's not something to blow up about.

Document new option, and clean up option grouping for -d (install
directory) option.
1999-08-01 05:02:06 +00:00
christos 022cc95f70 Document kernel behaviour: flags on block and character devices cannot
be changed except by the superuser. [Commit by cjs.]
1999-07-31 03:24:46 +00:00
ad 5cd8715136 Formatting nits. 1999-07-30 16:08:59 +00:00
darrenr c1f203f8b5 Change behaviour from running the command as the parent and ktrace/ktruss as
the child to be ktruss/ktrace is the parent.  This fixes a problem with ktruss
where the prompt would be returned in the middle of output.
1999-07-30 14:03:55 +00:00
hubertf 693fcfea31 s/uname -p/uname -m/ of course. Noted by Simon Burge. 1999-07-30 11:44:57 +00:00
itojun 5413fa8362 do not include netinet/in6_systm.h, which has been empty for a while. 1999-07-30 10:31:22 +00:00
mycroft a18e0fb5ab Use exec. 1999-07-30 02:42:32 +00:00
hubertf 7efd5195db Shell script implementation of "machine" by me.
I hereby place this into the public domain, the script contains
no copyright header to make it small. Replacing the binary
implementation saves 8k on /usr.

See also PRs 6614 and 361.
1999-07-30 02:07:15 +00:00
mycroft ee0dfce003 Make this compile again in an ELF world. 1999-07-30 01:56:49 +00:00
hubertf 4b53c6d85d If printing of a host's time is requested via the -d switch, condense
output so it doesn't exceed 80 columns.

Patch submitted in PR 5933 by Tim Rightnour <root@garbled.net>
1999-07-30 01:29:30 +00:00
hubertf d5df2197fb sprite.h is private to make, so #include it with "sprite.h",
not <sprite.h>.

Problem reported in PR 4381 bye Soren S. Jorvang <soren@t.dk>
1999-07-29 19:45:32 +00:00
enami 095b98a6ab call clearerr for the right file pointer. 1999-07-29 01:53:26 +00:00
darrenr 57c66d8b8b fix an error where we attempt to bcopy to a long's value rather than address 1999-07-28 15:38:46 +00:00
abs 8714299f16 Add -N option (numeric host address) - idea taken from FreeBSD.
Fix bug where -E8 would still pick up 0xFF as escape (again from FreeBSD)
1999-07-28 06:35:15 +00:00
enami 4191a1e6d4 - remove duplicated setting for LDSTATIC in ktruss/Makefile.
- fix command name in SYNOPSIS section of man page.
- link ktrace man page to ktruss man page.
- add executable and man page for ktruss in distrib sets.
1999-07-28 01:56:03 +00:00
christos 3b943b9c88 declare EXITSTRING 1999-07-26 06:19:01 +00:00
itohy 2b46b2b820 Eliminate illegal cast from function pointer (sig_t) to object pointer (void *). 1999-07-26 01:49:09 +00:00
christos edac4bd44f fix SDEAD problems. 1999-07-23 18:40:27 +00:00
veego bb1198e9ee According to the previous commit the new process state should be SDEAD and
not SDYING, so s/SDYING/SDEAD/.
And add the new element "dying" to the state_abbrev array.
XXX Is is correct to have two elements with the number 3 in sorted_state?
1999-07-23 09:01:09 +00:00
veego 03fd106af5 According to the previous commit the new process state should be SDEAD and
not SDYING, so s/SDYING/SDEAD/.
1999-07-23 08:56:13 +00:00
itohy 17cd5b4ec1 Fix memory-related problems.
Other problems remain, though....
1999-07-23 03:12:31 +00:00
itohy 99624b0b6d Fix fowllowing problems:
1. If fork()ing, the program is executed twice.
2. If the ktruss(1) output is bufferd, the final output is not flushed
   (because it is executing).

    % ktrace -f - rm >/dev/null
    usage: rm [-dfiPRrW] file ...
    usage: rm [-dfiPRrW] file ...
    % ktruss date | cat
    Fri Jul 23 12:09:45 JST 1999
    Fri Jul 23 12:09:46 JST 1999
    %
1999-07-23 03:10:49 +00:00
thorpej 3586621927 Update for SDEAD. 1999-07-22 18:16:05 +00:00
kleink 6546b1feed Try $TMPDIR first, then fall back to _PATH_TMP. 1999-07-22 15:09:45 +00:00
itohy b70a1b7220 A caught signal is blocked in the handler and
must be unblocked to do the default action.
The old code may generate weird exit status
on signals.
1999-07-22 03:02:36 +00:00
kleink fbfc6d0d28 Rather than hardcoding _PATH_TMP (and relying on const string concatenation),
try TMPDIR (if set in the environment).
1999-07-21 15:20:55 +00:00
jtk be9d0297fd fix handling of port number preceded by minus sign to restore documented behavior 1999-07-21 13:24:56 +00:00
cgd b02d81404c avoid repeated error messages by making bytes(), lines() and rlines() return
meaningful values, which can then be checked to avoid another error message.
1999-07-21 06:38:49 +00:00
itojun 31055e9319 cleanup EPSV return code checking part.
remove debug fputs() left by mistake.
1999-07-20 17:52:03 +00:00
mrg ba255f8a34 optionally include CRYPTOPATH Makefile.frag files. 1999-07-20 09:47:07 +00:00
mrg 51a96a002f optionally include CRYPTOPATH Makefile.frag files. 1999-07-20 09:35:18 +00:00
kleink 13ca730983 Mention -iregex and -regex primaries being non-standard extensions. 1999-07-20 09:02:24 +00:00
cgd 91ff0a1b87 add -regex and -iregex primaries which, like GNU find's primaries of the
same name, match files' entire paths against regular expressions.
-regex is case sensitive, -iregex is case-insensitive.  Note that these
primaries are _not_ entirely compatible with the GNU find primaries,
because their BREs appear to support alternation with \| whereas our BREs
do not.  Also note there are no primaries which provide extended regular
expressions matching, though if they are desired they would be trivial
to implement.
1999-07-20 01:28:41 +00:00
itojun a382c0c34d avoid false warnings on 22x reply code checks. previous code was too picky.
From: Wolfgang Rupprecht <wolfgang@wsrcc.com>
1999-07-17 22:39:18 +00:00
christos 6653fa8b3c How did this bug survive for so long? 'who am i' was busted because
it checked for valid utmp entries with usr.ut_name != NULL which can
never happen ofcourse, instead of usr.ut_name[0] != '\0'
1999-07-17 16:41:44 +00:00
ad 77895f938d - cdplay(1) first appeared in 1.5.
- correct date on manpage.
1999-07-16 14:15:49 +00:00
christos 10e7b7f04d Fix extreme brokeness with job control that appeared when we set USE_PGRP. 1999-07-16 05:38:20 +00:00
wrstuden f61cc70c2c Make these files use bsd.hostprog.mk so you can cross-compile tn3270! 1999-07-14 21:36:36 +00:00
itojun 6ae77d03dc clarify socket-connect trial loop. fix freeaddrinfo().
adjust indentation (commands.c uses sw=4 ts=8).
1999-07-14 20:47:41 +00:00
itojun 1e44889b75 implement more fallback case for EPSV. BSDI ftpd is very broken
that it returns status 228 against EPSV, where it must return status
of 229.

separate PASV and LPSV processing.

PR: 7976
1999-07-13 21:43:31 +00:00
kleink 8731671861 If not specified on the command line, attempt to fall back to the environment
variables AUDIODEVICE (for -d) and AUDIOCTLDEVICE (for -C, already used in
audioctl(1)) before falling back to _PATH_* constants.
1999-07-13 14:02:33 +00:00
thorpej 9630ed475e Use bsd.crypto.mk. 1999-07-12 22:11:37 +00:00
thorpej 7550139fd7 Whitespace cleanup. 1999-07-12 22:10:52 +00:00
thorpej 1c912b351f Nuke this from orbit. We don't have placeholders for any of the other
only-in-crypto-us programs, so why should this be any different?
1999-07-12 22:07:22 +00:00
aidan 3a4abbe0d1 Kerberos5 changes to login -- now supports forwarded TGTs. 1999-07-12 21:36:10 +00:00
itojun 9b9f995d4b call freeaddrinfo() after getaddrinfo() to reclaim results. 1999-07-12 20:50:54 +00:00
itojun a40e2f2822 IPv6 support.
clarify a bit (specifically, routines in tftp.c now does not
modify "peeraddr")
1999-07-12 20:19:20 +00:00
thorpej 70b6975a7e Fix a typo. 1999-07-12 18:22:49 +00:00
thorpej 00fb13f649 Revert previous, as it merely worked around a recent bug in make(1) which
is now fixed.
1999-07-12 18:17:56 +00:00
itojun e56c252759 make sure to use files in ${.CURDIR} before ${.CURDIR}/../../sys/netiso.
(namely iso.c)
1999-07-12 17:53:42 +00:00
itojun 5d56439d90 merge SRCS into one. 1999-07-12 17:48:45 +00:00
thorpej 484fe86089 Correct an inverse initialization of a variable, which caused all .PATHs
to be treated as .DOTLAST.
1999-07-12 17:29:32 +00:00
lukem 375a0efb60 * change fetch_ftp() to be fully rfc 1738 compliant; if the URL contains
the an empty directory (e.g, between `some' and `path' in
  `ftp://host/some//path'), then execute `CWD ' (without a path).
  This command will probably fail on rfc 959 compliant servers, so
  issue a warning in this case and bail. [noted by cgd].
  (i wonder if the people who wrote rfc 1738 actually realised that this
  requirement appears to contravene the spec for `cwd' in rfc 959 ?)
* replace isurl() with isipv6addr(), and use appropriately. fixes
  auto-login with `classic ftp URLs' (e.g, `ftp somehost:')
* cleanup and rework some of the ipv6 stuff in parse_url()
* prevent potential coredump in fetch_ftp() when parsing `;type=X'
* KNF a few lines
* fix a couple of comments
* cleanup the man page a bit
1999-07-12 13:20:34 +00:00
mrg 9abab6de8b - build with obj dirs.
- use .PATH not broken links
- share the make fragment to build "ioctl.c"
- general clean up, RCSID, etc.

this is all happy now AFAICT.
1999-07-12 04:13:34 +00:00
darrenr b7eb8dab03 include comments for ktruss 1999-07-12 03:24:58 +00:00
darrenr 43fc13da12 build ktruss 1999-07-12 03:21:50 +00:00
darrenr c0090d81bf import Makefile and dump.c required for building ktruss. 1999-07-12 03:20:17 +00:00
kim bfb603392a Allow people in group wheel to use the ROOTAUTH group.
Pick up SUROOTAUTH (presumably from /etc/mk.conf).
1999-07-11 23:41:10 +00:00
itojun 940276557f add epsv4 command, which enable/disable the use of EPSV/EPRT.
this is mainly for (hypothetical) ftp server which disconnect clients
that use EPSV/EPRT.  I've never seen any ftp server like this, but
epsv4 command may be of use when such an ftp server is found.
1999-07-11 20:37:39 +00:00
thorpej 3e29511219 Simply a construct in usage(). 1999-07-11 19:30:39 +00:00
thorpej 0157452a1b Clean up some warnings in the Kerberos section. 1999-07-11 18:21:18 +00:00
thorpej 5a0addc0ef Add a mechanism for specifying that ${.CURDIR} will be searched last
in the presence of .PATH directives by specifying:

.PATH: .DOTLAST

This will be used to fixup the build system to work with both crypto-us
and crypto-intl sub-trees.

Make(1) changes by Christos Zoulas, after much badgering by me :-)
1999-07-11 02:06:57 +00:00
christos 17e6e111b9 oops, need to declare tos. 1999-07-11 00:41:59 +00:00
christos 5d5741e3ba Kludge around non 4.4BSD systems that don't have a length field in struct
sockaddr*.
1999-07-10 20:46:42 +00:00
christos 7e3d65379b isurl does not return a pointer! 1999-07-10 19:41:15 +00:00
christos 2107d6d2da remove unused variable 1999-07-10 19:41:01 +00:00
christos c2a03912bb don't do unnecessary const castaways 1999-07-10 19:40:36 +00:00
tron 52f4fd7993 Define "_LKM" before including kernel includes with "_KERNEL" defined
so that "opt_ffs.h" gets skipped.
1999-07-08 12:07:56 +00:00
dean 448aa67f43 Fix for PR 5108 - vi gets SEGV after SIGHUP. 1999-07-08 06:09:04 +00:00
tron 9e48344ed0 Make FTP downloads via HTTP proxy servers work again. 1999-07-06 22:11:37 +00:00
christos 4bcc4c73c4 pacify gcc-2.8 uninitialized variable warnings, and only use timespecs in
struct stat on BSD4_4 systems.
1999-07-06 14:45:31 +00:00
christos 80d9d7d175 Regular bourne shells don't have the -q option (from Chuck Cranor) 1999-07-06 14:02:56 +00:00
itojun 26c3d764fd add NetBSD RCS ID. 1999-07-06 13:14:54 +00:00
thorpej 0ecdd58add Define _RTLD_SOURCE so this builds again. PR 7927, itojun@itojun.org. 1999-07-06 08:04:31 +00:00
hubertf 057479d6da Add sidplay information, submitted in PR 7918 by Antti Kantee <pooka@iki.fi> 1999-07-05 21:38:21 +00:00
cgd 4515ccfe3e nuke msg_printf() and msg_printf_add(). 1999-07-04 22:55:48 +00:00