* Coerce MCCS filename strings to UTF8 filename strings in file-name system calls, coerce system filenames back to MCCS codes
* Add UNICODE-TABLES so MTOUTF8STRING gets defined in right place in the loadup sequence
* ADIR: Bug fix: UNPACKFILENAME sets FATSTRINGP
* fix virtualkeyboard bug in code assignment
* Unicode canonicalizes non-SMALLP unicodes
- Fixed INTERPRET.REM.CM so that it no longer tries to load the file pointed to by LDEINIT and instead loads the file pointed to by LDEREMCM.
LDEINIT remains the file used by greet.
- Adjusted the medley script to have a new argument -cm (or --rem.cm) which sets LDEREMCM as appropriate before launching lde.
- Updated the loadup scripts as required to use this new -cm argument when calling medley.
Finally, added a new feature to the medley script -cc (or --repeat) whereby which when medley finishes it checks for a nonzero file given as the argument to -cc. If that file exists, medley is run again (i.e., repeated) with LDEREMCM set to that file. This repeats until this file no longer exists or is zero-length. The file can be found as the vale of LDEREPEATCM so that each invocation of medley can modify (or delete) this file so as to change the subsequent run of medley.
* FILEIO: EOL for input defaults to ANY, EXT-FORMAT can specify EOL
As per technical meeting on 7/15/2024
* Revert "FILEIO: EOL for input defaults to ANY, EXT-FORMAT can specify EOL"
This reverts commit 6a7e8c3665bbdcb401f81aa49eadb603874fb4b2.
* FILEIO: Fix comment
* Added DETECTEDEOLCONVENTION to STREAM declaration
and recompiled calls to macro \CHECKEOLC.
* COMAPARETEXT: was trying to set EOL to ANY on a Tedit stream
* LCOMS needing to be recompiled for \CHECKEOLC macro and Create STREAM
(plus a new (unchanged) version of IOCHAR needed to get the cleanup to work for the recompile)
* EXTERNALFORMAT macro and function implement EOL detection
* FILEIO: stream records detected EOL, also RENAMEFILE uses COPYBYTES
UFS doesn't check file devices identity, doesn't give type-change message. Recompiled for create stream
* ADIR has TRUEDEVICE
* Revert "FILEIO: stream records detected EOL, also RENAMEFILE uses COPYBYTES"
This reverts commit fa97aa61575f3ba0876b9ad6aadebf2892a0cb15.
* Revert "EXTERNALFORMAT macro and function implement EOL detection"
This reverts commit eb098615edbc32961558ec3ba42fdf0d712cafa4.
* Revert "LCOMS needing to be recompiled for \CHECKEOLC macro and Create STREAM"
This reverts commit 5967452c637861fda6a0e24db32ec387451cc085.
* Revert "Added DETECTEDEOLCONVENTION to STREAM declaration"
This reverts commit 196f105cf5e536e7d14736863a359fca673d69a4.
* Trying to complete the ANY/EOLC and binary RENAMEFILE issues
* loadup glitch
* UNPACKFILENAME produces <> for top-level directory
For virtually any combination of leading <, > or /. Addresses #1685.
* Produce < instead of <> for top-level empty directory
Does not yet deal with all combinations of directory-internal bracket sequences
* ADIR: prevent segmentation fault on Intel macs
* Move the coercion of STRUCTURE and GENERATION down into UNPACKFILENAME.STRING
It was just in FILENAMEFIELD and FILENAMEFIELD.STRING, I think the coercion should be uniform
The early . was seen as starting an extension, the ! then was seen as starting a version. When the other marks caused those hypotheses to be revised, the extension's end wasn't being revised
* Remove calls to OPENFILE
OPENFILE is a residual Interlisp function that returns a litatom instead of a stream. In almost all cases, this immediate causes an error that litatom files are no longer supported. I have found (FINDCALLERS) all the examples in lispusers/sources/library/ and replaced OPENFILE with OPENSTREAM (except for the calls from \PEEKPUP and \PEEKNS, that I didn't track down). There was a trivai call in COMPILE.FILECHECK in COMPILE, but that function is not called anywhere. So I removed it.
* ADIR: remove OPENFILE calls, also another stab at \COPYSYS
With respect to \COPYSYS, this replaces the draft PR #1263. This applies TRUEFILENAME at the start, but remembers whether it was in fact a pseudohost and restores that for the return value. So if you start in a pseudo world you end up there.
---------
Co-authored-by: Larry Masinter <lmm@acm.org>
* Another pass on CLOSEALL simplify by calling (OPENP)
* Put back in checks for CLOSEALL IOMODE USERVISIBLE
* \TERM.OFD and \LINEBUF.OFD are bound, no global
* getting rid of \OPENFILES everywhere
* one more \OPENFILES
* FILEPKG: EDITCALLERS now notices possible new stream after getting filemap
* GITFNS: cdw and cdg commands preserve pseudohost
* SAMEDIR: match all combinations of truefilename and pseudofilename
* PSEUDOHOSTS: Bug fix--openstream failure goes thru normal error machinery
* ADIR: Put in stubs for TRUEFILENAME, PSEUDOFILENAME, PSEUDOHOSTP
Also, fix \COPYSYS so it works with pseudhosts
* ADIR, COREIO: Just move FILEDIRCASE array from COREIO to ADIR
Logically better place, my fear about loadup interactions was unfounded (I got burned before with bittables, but this is just a simple array)
* SPY: Modernize the spy window
* TEDITHCPY: Make Interpress conditional on Interpress being loaded
This was an old edit that somehow got lost
* TEDITSCREEN: Remove WAITINGCURSOR
The RESETSAVE for WAITINGCURSOR somehow wasn't working, but not worth debugging because we now don't have a wait.
* TEDITWINDOW: Use TTYINPROMPTFORWORD instead of PROMPTFORWORD
* Cleanup of character IO interface
Committing this branch for further testing. I know at least that the TTY output stream somehow is defaulting to :XCCS, which is wrong, but I haven't yet found the interface for that.
* Clean out \NSIN etc
No top-level calls to the NS specific functions, just to the generic \OUTCHAR etc.
Updated full.database
* MODERNIZE: added dragging for fixed-menu windows
They can be dragged by their title bars
* UNICODE: Added Greek to the default set
Also made spelling of default-externalformats consistent with FILEIO
* FASLOAD: EOL conversion in FASL::READ-TEXT
EOL's printed as LF's will be read as EOL
* LLREAD: Added meta as a CHARACTERSETNAME
meta,a maps to 1,a now. But slowly propagating this to TEDIT, SEDIT, etc will make it easier to change the coding of meta characters, e.g. as part of a Unicode transition.
* APRINT FILEIO LLREAD: \OUTCHAR now a closed function
Removed the macro
* LLKEY: call CHARCODE.DECODE directory in \KEYACTION1
Minor cleanup, avoid typical user entry and APPLY*
* WHEELSCROLL: re-enable on AFTERMAKESYS/SYSOUT FORMS
Also sets up mappings in the \COMMANDKEYACTIONS, whatever that is
* ABASIC: NILL and ZERO change from LAMBDA NOBIND to LAMBDA NIL
So that things like Masterscope don't break
* MASTERSCOPE: Added WHEREIS as last-resort for CONTAINS
Looks at the WHEREIS database, if present, for FNS and FUNCTIONS if it has no other information. . WHO CONTAINS ANY CALLING FOO works, but not the inverse: . WHO DOES FUM CONTAIN. We still need to figure out why the CONTAINS table isn't populated
* POSTSCRIPTSTREAM: use standard \OUTCHAR conventions
Now uses generic \OUTCHAR to get the proper function from the stream (or default)
* Recompile with right EXPORTS.ALL
Some of the macros weren't correct.
* Fix POSTSCRIPTSTREAM
Cleaner separation between external \OUTCHAR and internal BOUT
* POSTSCRIPTSTREAM gets its own external format
* Minor fix
* Compile-time warning about EXPORTS.ALL
* MODERNIZE: Modern button fn has same args as the original
For Notecards #343
* Fixed another glitch in the MODERNIZE arglist thing
\TEDIT.BUTTONEVENTFN actually takes a second STREAM argument. I don't see where it is ever called with that. The modernize replacement binds that argument, but it isn't being passed to the original.
* FILEWATCH: added missing record field
* Update FILEWATCH.LCOM
* Eliminating record/type name conflicts
Mostly just qualifying references, more work to get BIGBITMAP stuff out of ADISPLAY and to eliminate ambiguity of LINE record (now XXLINE in XXGEOM)
* Compile away open calls to \OUTCHAR, add loadups/full.database
Mostly new LCOMS where \OUTCHAR calls were compiled open
* Remove garbage library/XCCS
Old tools for reading wikipedia XCCS tables, sources/XCCS will deal with XCCS external format
* Next step: Remove open input-character calls, factor XCCS to separate file
XCCS is the default, but can be swapped out (eventually) by setting a few variables, without recompiling everything
* Lots of residual cleanup for XCCS isolation
* Delete old file MACINTERFACE (migrated to MODERNIZE)
* Eliminate straggling NS calls: LAFITE, READINTERPRESS
* Typo
* READINTERPRESS: removed CHARSET
* MODERNIZE: Interface to control title-bar response (for Notecards)
* Many changes for external format name consistency
Very close to the end of this
* Put :FORMAT in file info, fix TEDIT plaintext hardcopy
I distributed :FORMAT :XCCS as the default marking, but somehow one of the variables seems to get revert during the loadup. This is correct, as far as it goes.
* Getting the format in the file-info
This is all very twisty, different variables set in different places. It now seems to do the right thing, at least for new files. Marks them with :FORMAT :XCCS.
* Another fileinfo glitch
* CLIPBOARD -UNICODE: Make UTF8 to UTF-8 to match standards
* MODERNIZE: fix bug in MODERWINDOW
* External format as MAKEFILE option, LOAD applies the file's format
(MAKEFILE 'XX '((FORMAT :UTF-8)))
will dump XX as a UTF-8 file. LOAD will load it back to XCCS internal.
* Compilers respect DEFINE-FILE-INFO format
* MODERNIZE: little glitch
* Delete old FILEIO.LCOM
* More edge cases of external format thru MAKEFILE, PRETTY, PRETTYFILEINDEX etc.
* FILEBROWSER: Can SEE UTF-8 Lisp sourcefile
* INSPECT: Better macro for inspecting readtables
* recompile changed files and do new loadup
Co-authored-by: rmkaplan <ron.kaplan@post.harvard.edu>