* EXAMINEDEFS uses the Tedit atom-bound table for word selection
* REGIONMANAGER gives client better control over region recovered
* TEDIT-PF-SEE: Meta-T defaults to showing the definition in the curren…
* REGIONMANAGER and GITFNS documentation update
* Better handling of a glyph with ENCODING of -1.
I treat it as the _slug_ glyph, instead of the _default_ of a solid block.
* Handle scrambled bitmaps issue #2109.
Glyphs with zero width bitmap *and* zero advance (_escapement_) caused miscalculated glyph offsets into the CHARSETINFO bitmap.
* Allow and ignore COMMENT lines preceding the STARTFONT line.
Add error checking for extracting font FAMILY, SIZE, FACE, etc. from the BDF-FONT object.
Add recommendation to documentation to write the DISPLAYFONT files to a directory separate from the system's IL:DISPLAYFONTDIRECTORIES locations.
* Account for glyphs with a negative initial offset.
* Add VERBOSE optional parameter to READ-BDF to report font internal FAMILY, FACE, etc.
Change &OPTIONAL parameters of WRITE-BDF-TO-DISPLAYFONT-FILES to &KEY to simplify calling. (No need to remember the order.)
Add CHAR-SETS and WRITE-UNMAPPED parameters to WRITE-BDF-TO-DISPLAYFONT-FILES to allow some level of control of which DISPLAYFONT files are written.
Updated documentation, and added warning note about font's FAMILY containing any digits.
This PR is an extensive revamp of the loadup scripts including the following changes:
New omnibus script scripts/loadup which is meant to be the single interface to the loadup system. The man page for this script can be found here: https://online.interlisp.org/downloads/man_loadup.html
The new loadup script allows you to restart the loadup process from any particular stage - init, mid, lisp, full, etc. For example, you can start the loadup from an existing init-mid.sysout and have it run thru creating the full.sysout. The call for this would be: ./scripts/loadup --target full --start mid. (See man page for all options to the loadup script as well as examples of their use.)
In order to facilitate this target/start feature, the loadup workdir has been moved to a single location per MEDLEYDIR, specifically to MEDLEDIR/loadups/build. (Previously, it was different for every invocation in /tmp/loadups-$$)
When restarting the loadup from, say, lisp.sysout, the script will look for the lisp.sysout to start from first in MEDLEYDIR/loadups and then in MEDLEYDIR/loadups/build. If the starting sysout is found in loadups, it will be copied (non-versioned) into the workdir before doing the loadup, overwriting whatever is already there.
There is now a lock (MEDLEYDIR/loadups/build/lock) that prevents concurrent loadups from running (and very occassionally needs to be manually removed).
At successful completion of a loadup run, the created .sysouts and other files are moved into the loadups directory as before (unless the --nocopy option is specified). BUT the build files - including the dribble files - are left in the working directory (i.e., in loadups/build)
The loadup script now supersedes the former loadup-all.sh, loadup-full.sh and loadup-db.sh scripts. But I have left in their place scripts that call the new loadup script with the right options. loadup-all.sh is now just a link to the single loadup script, who's options are (hopefully) a superset of loadup-all.sh.
All of the worker scripts (e.g., loadup-full-from-lisp.sh) have been updated to use better mechanisms to catch and report errors, including the new (LOGOUT T EXITCODE) feature. The main script has been updated to better catch errors in these worker scripts when they do happen.
You can now specify a MAIKODIR for the loadup, either using the MAIKODIR env variable or thru the --maikodir command line option.
All of the loadup scripts have been moved down one level into scripts/loadups. But there are links from the scripts/ directory into the scripts/loadups directory for all of the top-level legacy scripts - loadup-all.sh, loadup-db.sh, loadup-full.sh so that you do not have to change your own scripts unless you need to use some of the new features. More importantly, none of the github workflows need to change right now.
The SYSOUTCOMMITS mechanism had to be changed since there is no guarantee that e.g., lisp.sysout and full.sysout are built on the same commit. So (ASSOC 'MEDLEY SYSOUTCOMMITS) now returns an assoc list of sysouts, e.g., ((INIT "aaa")(LISP "bbb")(FULL "ccc")(APPS "ddd")), showing the commits for the various layers of the loadup.
The new loadup scheme allows different sysouts to be created from different commits, so there is an issue with RDSYS (and RDSYS.LCOM) being out of sync with one or more of the sysout in loadups. RDSYS(.LCOM) are copied into library when ever a loadup of the Init stage completes successfully (unless the -nocopy option is specified). The only way to solve this issue when it arises is to do a complete loadup from starter.sysout to full.sysout (or apps.sysout) to ensure evrything is built on the same commit.
* Now can create the FONTDESCRIPTOR with all non-empty charsets.
Can write DISPLAYFONTFILE format ("STRIKE") files for the charsets.
Add ability to use mapping of Unicode charcode to unknown XCCS charcode in the private space.
* Create 2nd FONTDESCRIPTOR for unmapped Unicode to XCCS charcodes, organized by charset-like (8-bit splitting of charcode) of Unicode encoding value.
* Added option to create and write files for RAW FONTDESCRIPTOR which does NO mapping from Unicode to XCCS.
All glyphs are at the Unicode encoding positions.
Any glyphs with Unicode encoding > xFFFF are not included in the FONTDESCRIPTOR or DISPLAYFONT files.
* Fix a bug where I assumed glyph names couldn't be parsed as a number; and a little cleanup.
The linux otf2bdf utility uses the hex of encoding value as the name, which can appear to be a FLOAT and overflow (i.e., 3D39).
Similar parsing problem fixed and corrected an error message.
* Initial documentation file written.
1961 - RDSYS incomplete path for copying
2061 - delay starting making loadups due to "expensive" operation just to check if connected dir is inside of a git repo
* Distinguish public TEDIT.NTHCHARCODE... from private \TEDIT.NTHCHARCODE...
* Fix screen-update bug: deleting the character before the first character in a window
* glitch in region code
* Implement new key binding architecture for Tedit actions, to make mappings more user-accessible. Includes new Buttons item on Tedit menu. See TEDIT-RELEASENOTES
* Prompts for Tedit initial-window region based on document properties
* More flexible Tedit abbreviations
* Size + or - in Tedit character looks go to next available
* Other bug fixes and code adjustments.
* Fix Issue 2072: update do_hcfiles.sh to use new rem.cm argument to medley script. Also update medley script to print out the REM.CM file used (if any).
* Update buildReleaseIncDocker.yml to account for the change on interlisp/online repo from 'master' to 'main' as primary branch
* Do compile.sh after update to medley-run.sh to add REM.CM to printout when using the medley command.
DLIONFNKEYS created button-images on the screen corresponding to some of
the Dandelion edit buttons for Tedit. EDITKEYS is a newer and better
version of the same functionality, and even that will be replaced by a new internal Tedit keyaction architecture.
Currently, (CHARCODE 1) produces 49, just like (CHARCODE a) produces 97.
That's because CHARCODE.DECODE interprets a single character (that is
not also defined as a cHARACTERNAME) input as exactly that character,
and gets its character code.
But a character name in the charset,charnum format is treated in a
different way. If either part of the name is a number, it is interpreted
as an octal number, to make it easier to match against the XCCS
specifications. So (CHARCODE Meta,1) does not map to the position of
digit 1 in the Meta (currently 1) character set (= 256+49=305), it maps
to 256+1=257. In order to get 305, you have to specify Meta,61 (where 61
is the octal equivalent of 49).
That's rather opaque, and I found that TEDITKEY had a workaround based
on the obscure fact that CHARCODE.DECODE adds 128 for each # it sees in
the beginning of a character name. So ##1 adds 2*128 to 49 to get 305,
corresponding to digit 1 in the Meta character set. But that depends on
the fact that Meta is currently defined as charset 1, it won't work when
we move Meta up to the Unicode/XCCS undefined region of the code space.
This PR adds (Zero 48) (One 49)...(Nine 57) to the initial value of
CHARACTERNAMES in LLREAD, so that 305 for example can be specified as
Meta,One. This is more obvious than Meta,61 and will remain valid when
Meta is moved, unlike the ## hack..
Lafite is not in the fuller ms database, so I missed these references in
TEDIT-INDENT.
But note also: there are 2 definitions of the function
\GV.PARSERECIPIENTS1, one on lafite/TEDIT-PRIVATEDL and one on
internal/MAILCLIENT.
The one on TEDIT-PRIVATEDL references the variable ADDRESSPARSERRDTBL,
which is not initialized.
Selection highlighting should be correct if line contains a preceding
diacritic.
Find from expanded menu should work.
Screen and selection should not be garbled after substitute.
I have not yet replicated the break-on-put also reported in #2055
* Paren error when selection looks set to INVERTED
* Add SET, SHADE, and SHADEHEIGHT properties to TEDIT.SELPROP
* Add QUIET as optional last argument to TEDIT.FORMAT.HARDCOPY, suppress prompt-window message
* COLLECT? argument to TEDIT.MAP.OBJECTS can specify what kind of information to collect.