- Switching scsh over to the SRE regexp system.
- Upgraded string & character handling
- Switching code over to list-lib SRFI names. Some switchover to
probably new string-lib SRFI names, though that SRFI hasn't happened,
so it's probably a waste of time at the moment to stress out about it.
- General switching from "reduce-" lexeme to "fold-" lexeme.
-Olin
A per-file breakdown of changes:
ccp.scm New
char-set.scm New features
stringlib.scm New
stringpack.scm New
awk.scm SRE
filemtch.scm SRE string-lib
fname.scm string-lib
fr.scm SRE string-lib
glob.scm SRE
procobj.scm list-lib
rdelim.scm SRE
re.c SRE killed
re.scm SRE killed
re1.c SRE moved to rx/ dir
re1.h SRE moved to rx/ dir
rx/... SRE General fitting-it-in to the upgraded scsh.
scsh-interfaces.scm
scsh-package.scm
scsh.scm type-check loophole added; string-lib; list-lib
reduce-port -> foldl-port
syscalls.scm string-lib; diked out unused MATCH-FILES code
syscalls.c
utilities.scm string-lib; {any?,every?} -> {any,every}
procobj list-lib
that shouldn't even be in this dir -- it was from a different Spencer
package, and wasn't used; got copied in by accident at some point.
2. Removed *.ih Makefile regex.h
These are derived files produced during the build.
3. Removed patch-msg, which is old & dead.
4. Updated rest of the source to a newer version of Spencer's Posix package
(alpha3.7). Not all of these files changed, actually, but I guess
the last-mod dates did, so CVS thinks they're being updated or something?
after it was forked, but before the scsh fork procedure could register
the child's procobj in the pid/procobj table, then when the SIGCHLD
signal-handler reaped the process, there would be no procobj for it.
We now lock out interrupts across the fork and register operations.
neglecting to assign them in error cases. We'd return from the C function
into the cig C stub with random garbage still in these pointers. The
string rep converters would then treat this garbage as a real pointer to
be copied into malloc'd storage, and havoc would result.
I fixed the code to assign 0 to the pointers in error cases. I should fix
cig to pre-initialise out parameters. The only real problem code was in
userinfo1.c, but I scanned all the sources, and fixed a few suspicious cases
here and there as well.