the expectations of Lst_Find*. This way we only read the first sys.mk
found via sysIncPath.
At the same time we need to add a ReadAllMakefiles() for the case
where multiple -f makefile args are provided (uncommon, but documented).
- avoid double slashes when displaying man pages (got tired
of '/usr/share/man//cat1/man.0').
- got rid of __P() while working on it.
- incorporate some of my old notes explaining how manpath works into the
comments of the code itself.
- renamed some of the vars so that the code is consistent throughout
(and hopefully clearer and easier to understand)
- fixed relative man paths for multiple man pages (man did a chdir()
on the first man page it had to format --- this broke any remaining
relative path man pages left to process). save old directory and
fchdir() back to it after formatting.
- improved doc on "man -h" which does more than just whatis(1) [e.g.
"man -h fopen" prints the required include files and the prototypes
rather than just the one-liner you get with whatis(1)]
- manconf.c now fills in the "len" length field in the TAG/ENTRY
structures (man now uses len).
revise man.conf file reading stuff to return error on failure in
addentry/gettag (fka getlist) rather than just err()ing out. this
allows man(1) to call cleanup and delete its tmp files rather than
just leave them floating. revise other apps using this code
(makewhatis, apropos, catman, whatis) to expect this. also remove
__P on updated files.
In particular avoid calling fclose() again once it has failed.
Also multply 'oreg' by 2 once we modify the file - so we know when to
unlink it on error.
Fixes Coverty CIDs 2535 and 2536
I'm not at all sure EOF handling is correct anyway - but it probably only
affects the last line of a file (and maybe last lines without \n).
In particular I suspect that 'ungetc(EOF, file)' doesn't do the expected
thing, and that fseek() needs to be preceeded by clearerr(). But life it short.
TIPIN and TIPOUT processes with a third "attention" pipe. While we're
here, fix a few other minor nits like the hardcoded use of fd 3 in
consh().
Now ~+/~C appear to work. This must have been broken for years.
of digital video recorders popular in Europe and Australia.
These devices have a USB client port which can be used to upload and
download recordings (and other files, such as MIPS binaries for execution
on the DVR's CPU) to/from their internal hard disk, in addition to some
other operations on files and directories.
These programs are no longer setuid, and now lock devices with flock,
not file locks in /var/spool/. They will no longer lock against UUCP
itself unless we modify UUCP to lock with flock, but this seems highly
unlikely to be an issue in the present day.
This means we can get rid of the suid/sgid parts of the code (which
have been removed). The program is now installed with normal permissions.
To prevent accidents, we now flock the tty line, attempting to get an
exclusive lock.
Reviewed by: tls
(a.k.a. "tandem" mode). While we're here, fix a buglet with --halfduplex,
and add --flow {hard, soft, none}. Note that you can't get *both* hard and
soft flow control using the command-line option; if you want that, you
have to set the variables in tiprc or with ~s once tip is running.
Move all setting of vars.c named variables to *after* the call to vinit().
Turn it off by default -- it hardly saves any space, but it's
one of the reasons why the executable is installed setuid, and
other versions of tip/cu don't write a log file anyway. We can
add syslog support later if we ever really want this back, the
file-writing is all encapsulated in log.c.
but with some long options added for Taylor 'cu' compatibility, and
with some bugs fixed (in particular, the handling of -# now works as
documented and does not overwrite argv).
the others (maybe "Courier", but I doubt it) we can easily enough turn
them back on.
Saves 20-30K depending on platform. Not totally insignificant, since this
often goes on install media, or very small systems.
emit an error -- and it would be nice if it were the *right* program name.
Since it's convenient, change most perror calls to warn, and a lot of
fprintf ... exit to errx. Fix at least one fprintf that could run off
the end of its arguments (%s but no argument, how did we never catch this?).
functions work. When they allocate storage that needs to be freed, instead
of setting a boolean, set the pointer to be freed. Plug some more memory
leaks found by inspection.
horrid nasty things don't happen when the input lines are the same size
as the buffer.
Simplify by using an array of 'FILE *' instead of a linked list so that
is possible to appease coverty (SID:1598) by freeing the memory.
Also fclose() the input lines when they are consumed.
Code still modifies optarg strings....
I suspect it has never, ever, ever been asked to delete anything that exists.
Also neither it, nor MCDelMsg() below free() the set and msg structures.
Found by Coverty SID:54
buffer inside the loop. Fixes coverty CID:1674.
(This should only happen at EOF, so the loop SHOULD terminate.)
While here always output a newline at the end of the input data even when
the last (unterminated) line doesn't contain a separator.
and bump date of the manpage.
date: 2003/09/20 18:15:32; author: millert; state: Exp; lines: +4 -2
Implement hardwareflow varable in tip(1) like Solaris and hf in /etc/remote.
Based on PR 3411 from Matthew Gream
Also document "tandem" variable (XON/XOFF) in tip man page.
include statements so that if a variable expands to more than one file
name make will "do the right thing".
- Add additional debug print
Reviewed by christos.
day-of-month on normal entries to always be treated as a wildcard.
Specifically, "if (x&(y|z))" is equivalent to "if ((x&y)||(x&z))", not
"if ((x&y)&&(x&z))", which latter is clearly what was intended.
every time initvmstat() is called.
Change intrnamebuf to be static so this works.
Inspired by Coverty CID 2072 (incorrectly) reporting that the memory assigned
to intrnamebuf wasn't being freed.
Very useful to help identify which code is doing 1000s of system calls.
Not built because no one else has a kernel yet, and I need to make
the kernel side configurable. But I don't want to lose this code....
they can be used to head other pages (not ready to commit yet...).
Use puthumanint() for oversize numbers when display_mode is RUN or BOOT (when
very big numbers are to be expected).
Allow an extra column for Csw..Flt.
Adjust some #defines to avoid use of global s & s1.
Looks like it was intended as a minor (and pointless) optimisation to
remove a free() malloc() pair.
Make he comment about the stoppedJobs list more correct.
It isn't clear that it ever worked, if it did it has almost certainly
bitrotted in the last 12 years. I'm not even sure all the required
components were present.
I suspect it was written to attempt to use a 'farm' of diskless sun3s.
In any case the apparant random assignment fo jobs to other systems doesn't
actually seem like a good idea!
Things like 'distcc' han be used to help slow systems run native builds.
Removing this code also simplifies make, and should let me speed up some of
its processing - without worrying about bitrotting it further.
is not specified. This is because it prints getgid() and getgroups(). If the
getgid() is in the getgroups() set, it was printed twice. This is now detected
and the duplicate printing is avoided.
push a byte through the (now badly named) exit_pipe and call JobRestartJobs()
from the main code path when poll() wakes up.
Part of a plan to remove JobSigLock() and the zillions of system calls
it does.
hand side of the .WAIT, except when the recursive interpretation would
cause a cycle in the dependency graph.
Discussed in tech-toolchain. Reviewed by christos, sjg.
condition on /tmp/: if creating the file list ($FILELIST) fails,
immediately exit with a non-zero result code. This fixes a bug
where, if the file list filled /tmp/, updatedb.sh would nevertheless
run for several minutes before it removed the file list as it quit.
wprintw(menu->mw, ftm, args) to generate the menu label.
Allows static menu labels to contain the current value (like a lot of the
dynamic menus do).
Correct width calculations, and bound menu table lookup.
This primary causes find to stop traversing the filesystem and
exit immediately if a previous condition was met. If no value is
specified, the exit value will be 0, else n. Note that other
primaries will be evaluated and acted upon before exiting.
Ok matt@, garbled@.