Requires microcode version 11.50 or later.
authorChris Hanson <org/chris-hanson/cph>
Fri, 2 Nov 1990 02:07:08 +0000 (02:07 +0000)
committerChris Hanson <org/chris-hanson/cph>
Fri, 2 Nov 1990 02:07:08 +0000 (02:07 +0000)
commit76f5b492c7e0ff191da672e48258f6eaef0a2b76
tree4c928241c9064cc8defa1c79c58a1a166a5e6f41
parent5c199ef88fad6ea881cf43b6b60c880ceb06f521
Requires microcode version 11.50 or later.

Many changes to provide for smooth control of terminal state:

* Procedures `make-cmdl' and `push-cmdl' each take additional argument
  that specifies how to spawn a child CMDL object -- a good default
  for this argument is `make-cmdl'.  `make-cmdl' should not be used
  except by this "spawning" operation -- always use `(cmdl/spawn-child
  cmdl)' to do that.  Command loops should be extended to have generic
  operations for reading input, evaluating, writing results,
  prompting, etc.  This would simplify switching between the editor
  and user code.

* Command loops now temporarily switch input and output modes of
  terminals to appropriate values when doing input or output.  Thus
  REP loops and the debugger need not worry about what state the
  terminal is in -- the user can change it arbitrarily.

* New procedures `input-port/channel' and `output-port/channel' return
  a port's underlying channel if known, else #F.  This is not yet
  completely implemented, but since it is only used for terminals it
  is OK for now.

* New procedures `terminal-get-state' and `terminal-set-state' can be
  used to save and restore a terminal's state.

* Renamed procedures:
terminal-buffered? terminal-cooked-input?
terminal-buffered terminal-cooked-input
terminal-nonbuffered terminal-raw-input

* Eliminated procedure `make-repl'.  Most instances of this should
  have been `push-repl' instead.

* Eliminated procedures `input-port/immediate-mode' and
  `input-port/normal-mode'.  Eliminated output-port operations
  `raw-mode' and `cooked-mode'.  Eliminated port operation
  `baud-rate'.

* Eliminated ill-advised `fresh-line' operation on output ports.  This
  should be supplied directly by each type of port.
v7/src/runtime/dbgcmd.scm
v7/src/runtime/input.scm
v7/src/runtime/io.scm
v7/src/runtime/output.scm
v7/src/runtime/rep.scm
v7/src/runtime/runtime.pkg
v7/src/runtime/version.scm
v8/src/runtime/runtime.pkg