* 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
* 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
* CLIPBOARD, FILEIO: external format
CLIPBOARD uses SYSTEM-EXTERNALFORMAT.
FILEIO: added sourceparameters argument to COPYFILE, so format can be specified.
* GITFNS: rework to avoid hanging process stream
Redirects command output to tmp output and error streams, at most only looks for a COMPLETED signal in the process stream (which still sometimes hangs)
* EXAMINEDEFS: Asks for a menu position on a keyboard call
(Otherwise, the chunk menu may be buried under the TTY window)
* CLSTREAMS: Fix EOL/external format on error stream (synonym and 2-way) #815
* CMLFORMAT: makefile NEW to get functions in filemap
* CLSTREAMS: cleanup formats for more types
* FILEIO: Add readonly bit in streams for external-format
* Compile device-creation functions for new default interface
* UNICODE: minor bug
* LLINTERP: MOVD? APPLY* to SPREADAPPLY*
* External format interface: a few more adjustments
* CLSTREAMS: Recompile, no source change
* PRETTYFILEINDEX: suppress when printing gitmaps to a non-display stream
* UNIXCOMM: Default format comes from device
Also, I seemed to have reverted back to LCOM with FAKE-COMPILE-FILE
* TEXTOFD: Property OBJECTBYTE returned instead of image objects
This allows COMPARETEXT to work on TEDIT files
* ATBL: Default reader environment uses *DEFAULT-EXTERNALFORMAT* instead of :XCCS constant
* CMLEXEC: Fix FILETYPE property
It had CL:COMPILE-FILE, but the directory had LCOMs. Changed to :FAKE-COMPILE-FILE.
* FILEIO: single place for EOL specification
Now only in SETFILEINFO, not separately in \DO.PARAMS.AT.OPEN
* WINDOWOBJ: COPYINSERT now uniformly allows lists of objects
It was incomplete.
* COMPARETEXT: Now works for TEDIT files
* EXAMINEDEFS: side-by-side attached SEDIT windows for comparing alternative definitions
* OBJECTWINDOW: container for arbitrary image objects
* Format implementation functions set a known variable *BYTECOUNTER*
The generic functions deal with updating the application variable.
\INCHAR eliminated in favor of \INCCODE.EOLC to make clear what it does.
OPENSTRINGSTREAM streams have their own format, and the string is always fattened.
READBITMAP doesn't mix character and byte reading
* AOFD: Don't execute \STRINGSTREAM.INIT
This creates a file device that is not used anywhere. The function OPENSTRINGSTREAM provides the functionality that this file device suggests that it would provide, but that functionality seems suspect at best. The function is left in the system for now, probably should be deleted at some point in the future so we don't try to maintain it if we trip over it.
* TTYIN: Fix an ancient coding error
but still doesn't solve the (DIRECTORY ?= problem #402
* LLREAD, FILEIO, XCCS: Improve charcode backing, copychars
Added \BACKCCODE.EOLC that backs up over EOL encoding bytes, simplifies \RSTRING2.
\XCCSBACKCCODE returns T/NIL according to whether it succeeded.
\XCCSOUTCHAR uses IPLUS16 for CHARPOSITION
COPYCHARS makes no assumptions about EOL encoding
But still no solution for #402
* LLREAD, TTYIN.LCOM fix#402
The bug showed up in TTYIN, but it was actually a bad edit in the generic backccode.
TTYIN.LCOM is just a recompile--that had never been done with various new declarations.
And related adjustments so that the display output stream (which is created in various places) is always created with the right (CR) EOL convention. Also a little simpler interface for creating external formats.
Including format. That reader environment also allows colon as a package delimiter, in addition to the funky control and upper panel character.
"Function" is now a synonym for character set 2. WITH-READER-ENVIRONMENT doesn't bind EXTERNALFORMAT.
* 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>
* All source files converted to LF
Also, HPRINT: EQUALALL knows about CL arrays
FILEIO: STREAM record with fields for external format functions
* Delete makeinit.dribble
* Converted CR to LF on internal/library and docs/Documentation Tools
this will give us a stable point on which we can make changes in coordination via git.
NO MORE USING A SHARED DROPBOX
Last major commit wihout a PR against a Medley issue.