Skip to content

Support for MCCS and other font character codes, medley-font format #2168

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 5 commits into
base: master
Choose a base branch
from

Conversation

rmkaplan
Copy link
Contributor

This is the first draft of changes aimed at the font problems discussed in #2120 and #2135 and elsewhere.

It introduces and integrates a new, medley-specific font-file format that let's us write out and read in font information apart from the legacy font formats (strike, ac, ip...), and introduces support for font character-set manipulation (including clarifying and defining the MCCS encoding and its relationship to Unicode and XCCS.

The code for the medleyfont format is described in the doc/internal/ tedit file. I'm also writing up description of the changes/extensions to FONT.

The point of this PR/draft is that things should work as they used to, that the integration of new stuff hasn't broken anything even though it may not yet have improved anything.

@rmkaplan rmkaplan marked this pull request as draft May 26, 2025 05:54
@rmkaplan
Copy link
Contributor Author

Other initial commentS: You will see that there is a new file MCCS early in the loadup, as a replacement for the previous XCCS file, which I am deprecating. This file defines the future -oriented MCCS external format but also still includes the legacy XCCS external format and translation functions that map between MCCS and XCCS (and actually a new encoding XCCS$ (like XCCS but the $ and currency are swapped) that corresponds to the encoding of our NS fonts).

The new Unicode tables and translation functions map between MCCS and Unicode (the XCCS translation functions are still there). These changes also have to be documented.

@pamoroso
Copy link
Contributor

I built this branch on Linux Mint 22.1 Cinnamon and so far I'm noticing the following error in the main Exec of a session freshly started with medley -a -e -n -s 1920x1005 -v +:

Undefined car of form
EXEC#INTERLISP

startup-error

where # is a black box. I haven't changed anything in my setup.

@rmkaplan
Copy link
Contributor Author

What is (FILEDATE 'LLKEY) (or the filecreated date if you look at the file)? Should be May 5.

@nbriggs
Copy link
Contributor

nbriggs commented May 26, 2025

It's May 5 in the branch you pushed.

 git diff ad5216cf 032f719b
diff --git a/ad5216cf b/032f719b
index ad5216cf..032f719b 100644
--- a/ad5216cf
+++ b/032f719b
@@ -1,13 +1,12 @@
 (DEFINE-FILE-INFO ^^PACKAGE "INTERLISP" ^^READTABLE "INTERLISP" ^^BASE 10)
 
-(FILECREATED " 4-Apr-2025 17:10:10" ^F^D{WMEDLEY}<sources>LLKEY.;11 199518 
+(FILECREATED " 5-May-2025 20:57:08" ^F^D{WMEDLEY}<sources>LLKEY.;15 199508 
 

@rmkaplan
Copy link
Contributor Author

What character are you trying to get into that string? If an underscore and if the LLKEY version is correct, try typing it with Function 10? You should still see a left arrow, since the fonts are not yet translated here.

If you (CHCON "string") typed with either shift-hyphen or F10, you should see 95 for F10 and 172 for shift-hyphen, even though the glyphs are mixed up.

@pamoroso
Copy link
Contributor

The date of LLKEY is May 5 according to FILEDATE:

6> (IL:FILEDATE 'LLKEY)
" 5-May-2025 20:57:08"

I'm not sure about your question on the character to get into a string as I'm not typing any particular character. Anyway, with this PR I can get the underscore/left arrow as usual by typing _ and (CHCON "#") (where # is a black box typed by F10) yields 95:

7> (IL:CHCON "_")
(172)
8> (IL:CHCON "¬")
(95)

blackbox

@rmkaplan
Copy link
Contributor Author

I added an MCCS.TEDIT documentation file.

I have seen some crashes in Tedit that seem unrelated to MCCS but might interact in some way, so perhaps defer testing this until I get a little more information.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants