This corrects some errors in the handling of initializing variables across SAVEVM, LOGOUT, SYSOUT and MAKESYS.
This is all now handled by MEDLEY-INIT-VARS (function and variable) which is called as an EVENTFN.
BEFOREMAKESYS (invoked by ENDLOADUP) clears the variables to a default setting (all directories are just {DSK}).
The other "BEFORE" events save away the current values of the variables in MEDLEY-INIT-VARS.
In order to get this to work it was necessary to change a hack for deciding where to find EXPORTS.ALL and WHEREIS.HASH. Now if you do `./scripts/loadup-all.sh` to make a full, lisp sysouts, exports.all and whereis.hash it will still build the sysouts in tmp/ but will also "link" new versions in loadups (and library for exports.all). This replaces the previous hack scanning the sysout name for "tmp/".
MEDLEY-INIT-VARS had been called both by the AROUNDEXITFN and AFTER*FORMS.
* Rework MEDLEYDIR before/after logout to substitute instead of reset
* debugging
* working when changing home directory
* fix bug and removed redundtant declarations
\SENDMESSAGE.RESTARTABLE unconditionally used OPENSTRINGSTREAM on its
argument, which is not usually a string. Now, only use OPENSTRINGSTREAM
if the argument is a string, otherwise pass it unchanged to TEDIT.
Plus typo fixes in the TEDIT file.
Note that the MATCHNAME has always been uppercase, and that the directory matching has been filtered using the FILEDIRCASEARRAY
* IFLE.PROFILE has LOGOUT and SAVEVM options; add some delays in IDLE hacks
* add extra delays so the demos work more like intended
* IDLEDEMO loads lispusers with idle hacks
* make sure NOTIFY.EVENT \IDLING.OVER is called
* clean up resetsave
* slow down KINETIC
* Redo logic to minimize diffs with 1992 version
* minor tweaks to \IDLER for making sure mouse doesn't hang
* Update HELPSYS to find CLHS (Common Lisp HyperSpec) and lispusers/library docs
* restore lost edits; fix package inclusion for XCL and LISP
* mere with previous commit
* try again
* INSPECT: Allow optional user-specified tags in window titles to help keep track of multiple instances of the same datatype
* DWIM: Remove warning about order of evaluation change that happened in 1980
* BREAK-AND-TRACE: remake to get functions in filemap
* GITFNS, COMPAREDIRECTORIES: prc file list correlates with github PR web page
* DWIM, DWIMIFY: Removed WARNUSER and its calls
* INSPECT: Value of INSPECT is the inspect window
(as IRM says it should be)
* Move cd, ls, pwd to it's own little lispusers (needs documentation)
* add .TXT documentation, also patch lsee script to translate ^ and _ to up and left arrow
* Add document for CONDITIONGRAPH
* IDLE will LOGOUT instead of SAVEVM if ONLINEP
* patched some idle hacks fora better show
* idle.random chooses an idle program at random among those loaded
* Make PICK a Lispusers module
* PICK moved to lispusers, HCFILES moved to test repo (currently new/printing)
* redo PICK documentation
* Update documents and projects choices
* more testing and restore lost edits to TEDIT
* fix some typos
* VTCHAT: Changed name of CHARSET field to avoid ambiguity
Even though field was never referenced
* INSPECT: WHERE argument was passed incorrectly to datatype subfunction
* GITFNS: Better recognition of funny cases (colon) etc
Reconciled with Larry's previous commit
* COMPAREDIRECTORIES: Bug fix in separate-panel display
* Eliminate duplicate declarations for TABLEBROWSER record, remove TABLEBROWSERDECLS file
* change packages that used to load TABEBROWSERDECLS SOURCE to just LOADCOMP TABLEBROWSER
* make sure full RECORD is saved
* ARCHIVETOOL update of ARCHIVEBROWSER but no docs and looks like PARC-only
* Added IBM-EGA fixed pitch font files
* move IBM-EGA fonts to file names that will be recognized
Co-authored-by: Matt Heffron <heffron@alumni.caltech.edu>
* \RPLPTR when run interpreted doesn't work with large vmem pointers
* oops, misread maiko N_OP_rplptr; this is closer
* Make LLNEW UFNs and functions run renamed match maiko interp wrt high 4 bits
* unsafe.to.modify only warns if redefining compiled with interpreted (or in original UNSAFE.TO.MODIFY.FNS
* Add list of functions you said OK to modify
* HRULE: Add a PREPRINTFN for horizontal rules
Looks better in plaintext files
* GITFNS, COMPAREDIRECTORIES: Group earler/later in separate segments
GIT-CDBROWSER-SEPARATE-DIRECTIONS defaults to T
* FILEIO: INITVARS rather than VARS for FILING.TYPES
To avoid contamination with values from other files (like LAFITE)
* FILEPKG: SEPRCASE in EDITCALLERS includes comma and quote even if no DWIMIFYCOMPLFG
Also seprate the caseinsensitive UPPERCASEARRAY from the SEPRCASE array
* IOCHAR: Open code the call to \INCCODE.EOLC
About a 30% speed up in the slow (casearray/skip) case. Eventually macros should be defined for the externalformat interface functions, for now it is nice to be able to trace/break them.
* EXTERNALFORMAT: a little bit of cleanup
particularly around EOLC
* EXTERNALFORMAT,UNICODE,XCCS: Consistent naming of \PEEKCCODE(.EOL), \BACKCCODE returns the code
It was confusing that the naming of the peek functions was inconsistent with the inccode and backccode functions with respect to the EOLC qualifier. Now uniformaly, the unqualified names (\PEEKCCODE, \BACKCCODE, \INCCODE) do not do any EOL interpretation. The qualified-name functions (\PEEKCCODE.EOLC, \INCCODE.EOLC, \BACKCCODE.EOLC) do EOL interpretation.
Also, the \BACKCCODE interface is changed so that it returns the code corresponding to the bytes that it passed over. This simplifies some of the callers.
* Clients of \PEEKCCODE \BACKCCODE and .EOL
Small changes either to fix inconsistencies (backing, reading, peeking with inconsistent EOL interpretation), updating the names in a few other cases, a few simplifications.
* glitches in ATERM, HARDCOPY updates