rc

[fork] interactive rc shell
Log | Files | Refs | README | LICENSE

commit 6545a5575065ad02dc62ab9092d213615eb5ff59
parent 0d36e707b8649bd34dce72ef786f3355c5154309
Author: tgoodwin <tgoodwin>
Date:   Wed, 15 Jul 1998 14:18:32 +0000

ready for rc-1.5b3

Diffstat:
MChangeLog | 136++++++++++++++++++++++++++++++++++++++++++++++++++-----------------------------
MNEWS | 15++++++++++-----
MREADME | 35+++++++++++++++++++++++++++++++++++
3 files changed, 131 insertions(+), 55 deletions(-)

diff --git a/ChangeLog b/ChangeLog @@ -265,82 +265,118 @@ walk.c: Fixed pre-redirection bug, removed spurious setsigdefaults(), Changes since rc-1.5beta1 - Configuration: rc now uses GNU autoconf. + Configuration: rc now uses GNU autoconf. - Portability: mksignal works on HPUX 10. + Portability: mksignal works on HPUX 10. - Portability: resources can be (quad_t). + Portability: resources can be (quad_t). - Bug: if rc was started with SIGCLD == SIG_IGN (e.g. by Solaris's - rshd) it would loop. Fixed by resetting SIGCLD to SIG_DFL if it - was SIG_IGN when rc was started. + Bug: if rc was started with SIGCLD == SIG_IGN (e.g. by Solaris's + rshd) it would loop. Fixed by resetting SIGCLD to SIG_DFL if it + was SIG_IGN when rc was started. - Portability: POSIXish systems don't have NGROUPS. + Portability: POSIXish systems don't have NGROUPS. Changes since rc-1.5b2 - Configuration: rc now uses GNU automake. + Configuration: rc now uses GNU automake. - Portability: use sigsetjmp() when available. + Portability: use sigsetjmp() when available. - Portability: improve tests for quad_t. + Portability: improve tests for quad_t. - Configuration: don't leave FIFOs in /tmp when configuring. + Configuration: don't leave FIFOs in /tmp when configuring. - Configuration: let configure find `-ltermcap' when using - readline. + Configuration: let configure find `-ltermcap' when using + readline. - Configuration: pick up default path from config.cache. + Configuration: pick up default path from config.cache. - Bug: sense of most HAVE_RESTARTABLE_SYSCALLS tests was wrong. + Bug: sense of most HAVE_RESTARTABLE_SYSCALLS tests was wrong. - Bug: print prompts with `-i', even with editline / readline. + Bug: print prompts with `-i', even with editline / readline. - Testing: just say `false' (not `/bin/false'). + Testing: just say `false' (not `/bin/false'). - Bug: confusion over gid_t versus GETGROUPS_T in which.c. + Bug: confusion over gid_t versus GETGROUPS_T in which.c. - Feature: `-V' option added to report version number. + Feature: `-V' option added to report version number. - Configuration: remove version.c; `id' is defined in main.c now. + Configuration: remove version.c; `id' is defined in main.c now. - Bug: clear list of living children after fork(); `{ ls & wait } - |cat' no longer hangs or panics. + Bug: clear list of living children after fork(); `{ ls & wait } + |cat' no longer hangs or panics. - Testing: add regression test for above. + Testing: add regression test for above. - Tidiness: all the system call wrappers to prevent calls being - restarted now live in system-bsd.c. The configure script - decides whether to build system.c or system-bsd.c. Also, - signal.c is more careful to only declare slowbuf if it will be - needed. + Tidiness: all the system call wrappers to prevent calls being + restarted now live in system-bsd.c. The configure script + decides whether to build system.c or system-bsd.c. Also, + signal.c is more careful to only declare slowbuf if it will be + needed. - Tidiness: similarly, configure decides whether to build execve.c - or not. + Tidiness: similarly, configure decides whether to build execve.c + or not. - Portability: test for ssize_t and use it where available; use - long if there's no ssize_t. + Portability: test for ssize_t and use it where available; use + long if there's no ssize_t. - Portability: use sigsetjmp where it's available and appropriate. - If no sigsetjmp, just use sigjmp; this probably fails in a - traditional SysV environment. + Portability: use sigsetjmp where it's available and appropriate. + If no sigsetjmp, just use sigjmp; this probably fails in a + traditional SysV environment. - Portability: test explicitly for SysV SIGCLD semantics. Main - (and dubious) benefit is that you can now define a function - called `sigcld' on systems where there is no signal called - SIGCLD! + Portability: test explicitly for SysV SIGCLD semantics. Main + (and dubious) benefit is that you can now define a function + called `sigcld' on systems where there is no signal called + SIGCLD! - Bug: rc has its own memory allocator; don't use malloc directly. + Bug: rc has its own memory allocator; don't use malloc directly. - Bug: the rc_wait() wrapper is only needed on systems which - restart system calls. On Linux, in particular, the wrapper - leads to a race which causes rc to hang (or panic in later - versions). Other systems apparently don't exercise this race. + Bug: the rc_wait() wrapper is only needed on systems which + restart system calls. On Linux, in particular, the wrapper + leads to a race which causes rc to hang (or panic in later + versions). Other systems apparently don't exercise this race. - Bug: waitforall() must return if rc_wait4() returns with errno - == EINTR. Otherwise, the rc builtin `wait' cannot be interrupted - if there are background processes (although apparently only if - there is a handler for SIGINT). + Bug: waitforall() must return if rc_wait4() returns with errno + == EINTR. Otherwise, the rc builtin `wait' cannot be interrupted + if there are background processes (although apparently only if + there is a handler for SIGINT). - Portability: dreadful hack to track down the real locations - of signal.h to find signal names. rc now builds under CygWin32! + Portability: dreadful hack to track down the real locations + of signal.h to find signal names. rc now builds under CygWin32! + + Portability: replace above dreadful hack with mksignal.c, contributed + by Vincent Broman. + + Portability: use POSIX wait() macros (WIFEXITED and friends). + Unfortunately, POSIX omitted to supply WIFDUMPED, so this doesn't buy a + great deal. + + Distribution: remove the dependencies of y.tab.[ch] on parse.y from Makefile.am. + The justification for this is that, unless you're hacking on rc's grammar, there's + no reason to use anything other than the distributed files (which were generated + with byacc and very lightly edited to silence a few gcc warnings). + + Enhancement: the example in addon.c wasn't very useful, since it + depended on files which weren't included with the distribution. There + is now a working, if trivial, example. + + Tidiness: the code was compiled with as many gcc warnings enabled as + I could find. Very few problems turned up. Some unused function + arguments were removed. Where unused arguments could not be removed + (because the function is one of a set that must all have the same + prototype), they were renamed to `ignore'. + + Portability: some versions of readline define the name `Function', + which rc also uses. Its use in rc has been renamed to `rc_Function'. + + Documentation: the `history' man page didn't explain what end of line + does in editing mode. It now does. + + Bug: the interaction with readline was broken, particularly with + respect to signal handling. I've incorporated some changes from Tom + Culliton which should sort this out. Unfortunately, we now have 3 different + code paths for readline 2.1, readline 2.2, and editline :-(. + + Configuration: if you say `--with-readline' or `--with-editline' it is now an + error if the appropriate library is not found. diff --git a/NEWS b/NEWS @@ -7,9 +7,9 @@ Navigator---it's a great way to find your way around code (plug!). rc now uses GNU automake. Although I feel that automake is sticking plaster to mend a broken leg, it has made my job as maintainer easier. -(Errm, apart from tracking down bugs in automake itself, that is.) For -people building rc, it's now possible (depending on your flavour of -`make') to build in a separate directory from the source. +(Errm, apart from tracking down bugs in automake itself, and Perl, that +is.) For people building rc, it's now possible (depending on your +flavour of `make') to build in a separate directory from the source. Creeping featurism: rc now has a `-V' switch to report its version number. @@ -18,10 +18,15 @@ Binaries of rc-1.5b3 are typically a few kilobytes smaller than 1.5b2. I believe this is due to improved autoconfiguration: we are now much more careful only to include code that will be used. -rc-1.5b3 will build under the beta18 release of CygWin32. It won't run +rc-1.5b3 will build under the beta19 release of CygWin32. It won't run trip.rc successfully, and does not appear to be very stable. +The detection of signal names has been completely revised. + +The interaction with readline has been redone, principally to work +around bugs in the readline library. + See ChangeLog for more details. Tim Goodwin -1998-02-19 +1998-07-15 diff --git a/README b/README @@ -27,3 +27,38 @@ differences from the "real" rc. Most of these changes were necessary to get rc to work in a reasonable fashion on a real (i.e. commercial, non-Labs) Unix system; a few were changes motivated by concern about some inadequacies in the original design. + +ASSOCIATED PACKAGES + +rc uses a set of printing routines originally written by Paul Haahr. +Scott Schwartz has developed this as a separate package which is +available from comp.sources.unix v29i017. + +rc can be linked with the editline library. This was developed by +Simmule Turner and Rich $alz, and is available from comp.sources.unix +v31i071. + +Alternatively, rc can be linked with readline versions 2.1 or 2.2. + + ftp://prep.ai.mit.edu/pub/gnu/readline-2.2.tar.gz + +There are a number of other programs which, like rc, are Unix +implementations of Plan 9 tools. + +Rob Pike's editor sam has been ported to X, and is available from here. + + http://netlib.bell-labs.com/netlib/research/sam.shar.gz + +Gary Capell has written wily, a reimplementation of the Plan 9 acme. +Although it may sound oxymoronic, wily is a minimalist "integrated +development environment" for X. Further information can be found here. + + http://www.cs.su.oz.au/~gary/wily/ + +James Matthew Farrow has written 9term, and David Hogan 9wm. These are, +respectively, a terminal emulator and window manager for X with the Plan +9 "look and feel". + + http://www.psrg.cs.usyd.edu.au/~matty/9term/index.html + + http://dhog.g7.org/dhog/9wm.html