(like upgrade but without trying to save etc.
* Add option to setls0urce menu to look in an already-mounted (local)
directory. Change `local fs' option to say umounted local fs.
* Change extract_file() to check that a tarball actually exists
and give an explicit non-curses warning if it doesn't. (see above.)
* GNU tar returns a successful status if its gunzip child dies.
Add short sleep() after tar commands in case of undetected errors.
* Change set-source selection code (except FTP, floppy) to check
that the mandatory set files (base.tgz, etc.tgz) exist
in the selected directory. If they don't, warn the user and
prompt the user to change the selected directory.
Give the user the option to explicitly continue even if
base.tgz or etc.tgz not found, just in case.
* Change extract_file() to keep count of set unpacks that succeeded
or failed. (Unreliable, given the broken return status of gnu tar.)
Warn the user if there are errors and abort the installation/upgrade
if we find any. Does at least catch Ctrl-C interrupts of unpacking.
* Make unwind_mounts() signal-safe.
* Sense of target_verify_* is broken. Replace with predicates that
return 1 iff the file or directory exists.
* Fix upgrade tests for existing etc.old (see above) before saving
target /etc as /etc.old.
* Other detail fixes.
undefined". The sigaltstack structure layout didn't actually change on
the sparc, so just change the syscall name. A better fix would probably
be to replace the direct system call with a function call to the libc
sigaltstack().
* Add `partinfo' type, for description of a single partition,
so we can pass labels by reference..
* Add label.c with label initialization, naive overlap-check code,
and a UI entrypoint edit_and_check_label() which iterates through
checking a label for overlaps, and if any, giving the user the choice of
fixing them or punting back to the main menu.
* Change return type of md_make_bsd_partitions from void to int.
Return 0 if the partition has problems (or the user gave up on it)
and 1 if the partition is completed and looks OK.
* Change install() to check return value of md_make_bsd_partitions().
If it returns zero, print an `abort' message and return to main menu.
* Add label.c to all ports' Makefile.
MD code tested on pmax and cut-and-pasted to other ports.
* Add mount_with_unwind() that adds mountpoint to a LIFO queue
of mountpoints to undo on error. Use in target_mount().
* Add unwind_mounts() which traverses the LIFO queue and unmounts
filesystems, silently ignoring errors.
* create toplevel() function which displays banner message and
calls unwind_mounts().
* change toplevel menu to call toplevel() instead of inline banner.
Where to do unwinds needs more thought. Perhaps we should only unwind
if an upgrade or install appears unsuccessful, so after a successful
install, the target is mounted (e.g., for upgrading /etc/rc.conf).
interrupt properly on a SuperMac Spectrum/8 Series III, and thanks
to Dan McMahill for loaning the card to Paul.
I modified Paul's patch somewhat to change grfmv_intr_generic_{1,4}
to grfmv_intr_generic_write{1,4} and added grfmv_intr_generic_or4 to
handle this card.
- Closing the audio device should stop recording.
- Manipulating the pause function could accidentally start playing or recording.
- AUDIO_FLUSH could accidentally start playing or recording.
that typedef 'short'. 'char' (which was previously used) because char
may be unsigned and ((char)EOF) != EOF if that is the case. That was
causing the (char)EOF (0xff) pushed back in main to be interepreted as
a character, and, in some cases, to be written to the output. 'short'
was used rather than 'signed char' because if the latter is used,
0xff characters in the input would confuse m4. (No point in introducing
(more?) 8-bit lossage.)
- guard against synchronous I/O completion
- avoid race conditions
- use bgetvp/brelvp to properly maintain the vnode holdcount
and clean/dirty buffer lists.