home *** CD-ROM | disk | FTP | other *** search
- Bugs and changes since version 0.9:
-
- -----
- A pipe with a null first command caused rc to dump core. e.g.,
-
- |;
- -----
- When fifo redirection was used with builtin commands, rc would hang:
-
- diff <{echo hi} <{echo bye}
-
- a missing exit() was the cause of all this
- -----
- A double backquote operator was added to make inlining of ifs-type material
- possible; thus
-
- `` ($ifs / :) command
-
- is the same as
-
- ifs=($ifs / :)
- ` command
-
- only without the assignment.
- -----
- An "rc error" (e.g., trying to evaluate $()) inside a function messed up
- rc's interactive state, i.e., it stopped printing prompts.
-
- fn foo { echo $() }
-
- this was fixed by adding full-fledged exception handling, with a separate
- exception stack
- -----
- rc did not raise sigexit from the builtin "exit".
- -----
- rc assumed the existence of getgroups(). Also, a typo in
- the getgroups() code in which.c was fixed.
- -----
- rc now sets $0 to the name of the function being called or the file being
- interpreted by dot.
- -----
- if - else statements were incorrectly exported into the environment
- -----
- rc now has stubs for GNU readline compatability. (compile -DREADLINE)
- -----
- rc used to use a single arena for temporary space which got clobbered if there
- was a command of the form:
-
- eval foo ; bar
-
- since the eval would cause rc to prematurely recycle that memory. I fixed
- this by adding support for multiple arenas.
- -----
- an assignment inside a compound command clobbered the global definition
- of a variable:
-
- foo=a
- foo=b { stuff; foo=c; stuff }
-
- $foo was set to () after this.
- -----
- rc -e now is much more sh-like. In particular
-
- false || echo bletch
-
- now does the right thing.
- -----
- rc did not print $prompt(2) while scanning heredocs
- -----
- exec with a redirection but without other arguments now does the
- same thing as sh, i.e., it alters rc's own file descriptors
- -----
- the command
-
- eval eval eval [200 times or so] echo hi
-
- would cause rc to allocate obnoxious amounts of memory. This has
- been cleaned up.
- -----
- rc how has full support for *all* signals, not just sigquit, sigint
- and sighup and sigterm. Additionally, the signal code is generated via
- an awk script operating on /usr/include/signal.h, so that rc "learns"
- about the signals of a particular machine at compile time.
- -----
- rc now supports "fn prompt", a function that gets executed before
- each $prompt(1) is printed.
- -----
- ~ () '' incorrectly returned a true status.
- -----
-