(expect-strings): use peek-char to get the next char. this has
the advantage of getting the handling of $ "correct", but the
disadvantage of needing to get (and maybe block for) an extra character
from the port when it may not be needed. hence:
* (expect-strings-exec-flags): new variable/parameter, supplies
flags for regexp-exec. if this includes regexp/noteol, then
automatic regexp/noteol handling (requiring an extra peeked char)
is enabled. default is regexp/noteol.
* (expect-strings-compile-flags): new variable/parameter, supplies
flags for make-regexp. default is regexp/newline.
* * expect.scm (expect): call the match proc with an extra char,
peeked from the stream.
(expect-strings): build a match proc which takes the extra char.
(expect-regexec): take an extra arg "eof-next?" and use it
to decide whether the regexp/noteol flag should be added.
(error-catching-loop): likewise.
* boot-9.scm (scm-style-repl): -read: don't call
consume-trailing-whitespace if val is eof object. Allows
exiting repl with single control-D.
* boot-9.scm (error-catching-loop): don't force output within
error catching loop after quit received.
(top-repl): flush all ports when the repl terminates.
* boot-9.scm (error-catching-loop): flush all ports before
primitive exit if non-interactive.
force-output on current-error-port if interactive.
* boot-9.scm (reopen-file): deleted.
* popen.scm (open-output-pipe, open-input-pipe): moved from
boot-9.scm.
* popen.scm: new file.
(which could be dynamically linked in the future anyway).
* Makefile.am (ice9_sources): Don't list string-case.scm.
* Makefile.in: Regenerated.
* format.scm: Don't bother importing (ice-9 string-case).
changes:
(format:format): If the first argument is the format string, stick
a #f on the front of it, so it is now a valid CL format argument
list. This is easier than changing everyplace else (like the
error formatter) that expects it to be in CL form. The other
clause which explicitly tests for this case is now dead code.
(format:format-work): Allow `@' and `:' in either order, as per
modern CL behavior.
(format:num->cardinal): Don't assume that an elseless if returns
'() when the condition is false.
resolve-module.
(resolve-module): Bugfix: Make it possible for a module at a
deeper level (x y z) to depend on a module on a higher (x y).
Use try-load-module.
status of a module.;
Mark `the-root-module' and `the-scm-module' as system modules.
(process-define-module): Add new keyword :no-backtrace.
* boot-9.scm (environment-module): Bugfixed.
(set-module-eval-closure!): Add a pointer back from the eval
closure to the module.
* getopt-long.scm (parse-option-spec): Store 'optional as the
value-required? field for options that take optional values.
(process-short-option): Grab a value for the option when it takes
either an optional or required value.
A new argument-processing package from Russ McManus.
* getopt-long.scm: New file.
* Makefile.am (ice9_sources): Added getopt-long.scm.
* Makefile.in: Regenerated.