1
0
mirror of synced 2026-04-28 04:55:54 +00:00

rmk122--Next round on fonts and MCCS (#2280)

* A revision to the font, Unicode, Tedit, and other modules to implement the MCCS character coding as the standard for internal text strings.  MCCS is a variant of XCCS with arrows switched with circumflex/underscore and $ switched with currency, and allows for additional code assignments over time. :MCCS replaces :XCCS as the default external format, especially for source files.  The file XCCS is removed in favor of the file MCCS, which includes the XCCS external format for backward compatibility.

* This includes a single Medley-font formatted font file for each of the family/size/face display fonts.  The glyph assignments correspond to the MCCS character encoding (except for fonts with idiosyncratic encodings--Hippo, Symbol).  All charsets from legacy font files are included in each file, and the character sets and glyphs in each file have also been extended by offline coercion from related families (e.g. Glyphs not in legacy Terminal are taken from legacy Modern). There should be fewer black boxes, and character-display shouldn't change when you switch fonts.

* The Unicode mapping tables have been redefined to set up correspondences between Unicode and MCCS, not XCCS.  Separate XCCS to/from MCCS mapping functions are provided in the file MCCS; they are no longer included in INTERPRESS.

* TEDIT converts characters in legacy fonts to their new MCCS codes as it reads formatted files, marks the file as MCCS compatible and preserves the new codes on writing.

* Default keyboard assignments produce the MCCS uparrow and leftarrow for shift-6 and shift-hyphen, use Function-6 for circumflex and Function-10 for underscore.

See documentation in FONTCODECHANGES.TEDIT MCCS.TEDIT MEDLEYFONTFORMAT.TEDIT in docs/internal, and library/UNICODE.TEDIT.
This commit is contained in:
rmkaplan
2025-10-20 17:17:34 -07:00
committed by GitHub
parent 54353a4bef
commit 82fc95ce18
401 changed files with 8871 additions and 6601 deletions

View File

@@ -1,19 +1,14 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED "17-Apr-2023 08:04:06" {DSK}<home>larry>il>medley>sources>LLDATATYPE.;2 94197
(FILECREATED " 5-Aug-2025 09:18:50" {WMEDLEY}<sources>LLDATATYPE.;3 93956
:EDIT-BY "lmm"
:EDIT-BY rmk
:CHANGES-TO (VARS LLDATATYPECOMS)
(FNS \SET.STORAGE.STATE \MAPMDS)
:CHANGES-TO (FNS \DTEST.UFN)
:PREVIOUS-DATE "28-Jun-99 16:57:50" {DSK}<home>larry>il>medley>sources>LLDATATYPE.;1)
:PREVIOUS-DATE "17-Apr-2023 08:04:06" {WMEDLEY}<sources>LLDATATYPE.;2)
(* ; "
Copyright (c) 1982-1995, 1999 by VENUE, Oakland, CA.
")
(PRETTYCOMPRINT LLDATATYPECOMS)
(RPAQQ LLDATATYPECOMS
@@ -800,7 +795,8 @@ Copyright (c) 1982-1995, 1999 by VENUE, Oakland, CA.
(\DTEST.UFN OBJ TYPE])
(\DTEST.UFN
[LAMBDA (OBJ TYPEN) (* gbn " 3-Oct-86 10:49")
[LAMBDA (OBJ TYPEN) (* ; "Edited 5-Aug-2025 09:18 by rmk")
(* gbn " 3-Oct-86 10:49")
(* ;; "ufn for DTEST opcode ")
@@ -809,15 +805,14 @@ Copyright (c) 1982-1995, 1999 by VENUE, Oakland, CA.
(PROG ((N (NTYPX OBJ)))
LP (COND
((EQ (fetch DTDNAME of (\GETDTD N))
TYPEN) (* ;
 "should be happening in microcode")
TYPEN) (* ; "should be happening in microcode")
(RETURN OBJ))
([NEQ 0 (SETQ N (fetch DTDSUPERTYPE of (\GETDTD N]
(GO LP))
(T (RETURN (SELECTQ (\INDEXATOMPNAME TYPEN)
(FLOATP (\FLOAT OBJ))
(STREAM (* ;
 "Should be able to get at the INPUT/OUTPUT flg--a second arg to \DTEST ?")
 "Should be able to get at the INPUT/OUTPUT flg--a second arg to \DTEST ?")
(\GETSTREAM OBJ (SELECTQ (STKNTHNAME -1 '\DTEST.UFN)
((\BINS \BIN BIN)
'INPUT)
@@ -836,7 +831,7 @@ Copyright (c) 1982-1995, 1999 by VENUE, Oakland, CA.
(CAR OBJ))
(T (LISPERROR "ARG NOT HARRAY" OBJ T))))
(FONTDESCRIPTOR
(\COERCEFONTDESC OBJ))
(FONTCREATE OBJ))
(SMALLP [PROG (HI LO)
(.UNBOX. OBJ HI LO)
(RETURN (OR (SMALLP (\MAKENUMBER HI LO))
@@ -848,7 +843,7 @@ Copyright (c) 1982-1995, 1999 by VENUE, Oakland, CA.
(TERMTABLEP (LISPERROR "ILLEGAL TERMINAL TABLE" OBJ T))
(ARRAYP (LISPERROR "ARG NOT ARRAY" OBJ T))
(\DISPLAYDATA (* ;
 "Should be able to get at the stream--a second arg to \DTEST ?")
 "Should be able to get at the stream--a second arg to \DTEST ?")
(ERROR "ARG NOT DISPLAY STREAM" NIL))
(\LISPERROR OBJ (CONCAT "ARG NOT " (\INDEXATOMPNAME TYPEN))
T])
@@ -1744,25 +1739,23 @@ EVAL@COMPILE
(FILESLOAD (LOADCOMP)
DTDECLARE)
)
(PUTPROPS LLDATATYPE COPYRIGHT ("VENUE, Oakland, CA" 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991
1992 1993 1994 1995 1999))
(DECLARE%: DONTCOPY
(FILEMAP (NIL (6524 37135 (NTYPX 6534 . 7011) (\TYPEMASK.UFN 7013 . 7537) (\TYPEP.UFN 7539 . 7708) (
\ALLOCMDSPAGE 7710 . 9112) (\ALLOCPAGEBLOCK 9114 . 9820) (\ALLOCVIRTUALPAGEBLOCK 9822 . 12437) (
\MAPMDS 12439 . 13626) (\CHECKFORSTORAGEFULL 13628 . 18774) (\DOSTORAGEFULLINTERRUPT 18776 . 19070) (
\SET.STORAGE.STATE 19072 . 19484) (\SETTYPEMASK 19486 . 20433) (\ADVANCE.STORAGE.STATE 20435 . 20943)
(\NEW2PAGE 20945 . 21131) (\MAKEMDSENTRY 21133 . 21579) (\INITMDSPAGE 21581 . 23373) (\ASSIGNDATATYPE1
23375 . 33003) (\RESOLVE.TYPENUMBER 33005 . 33470) (\TYPENUMBERFROMNAME 33472 . 34012) (CREATECELL
34014 . 34147) (\CREATECELL 34149 . 37133)) (37627 59689 (FETCHFIELD 37637 . 40828) (REPLACEFIELD
40830 . 46456) (BOXCOUNT 46458 . 46959) (CONSCOUNT 46961 . 47095) (\DTEST 47097 . 47230) (\TYPECHECK
47232 . 47369) (\DTEST.UFN 47371 . 50626) (\INSTANCEP.UFN 50628 . 51856) (\INSTANCE-P 51858 . 52121) (
\TYPECHECK.UFN 52123 . 52686) (GETDESCRIPTORS 52688 . 53206) (GETSUPERTYPE 53208 . 53722) (
GETFIELDSPECS 53724 . 54361) (NCREATE 54363 . 54535) (NCREATE2 54537 . 55252) (REPLACEFIELDVAL 55254
. 55518) (PUTBASEPTRX 55520 . 55999) (/REPLACEFIELD 56001 . 56266) (TYPENAME 56268 . 57110) (
TYPENAMEP 57112 . 57336) (\TYPENAMEFROMNUMBER 57338 . 57568) (\BLOCKDATAP 57570 . 57890) (
USERDATATYPES 57892 . 58024) (DATATYPEP 58026 . 59175) (DATATYPES 59177 . 59687)) (61931 77082 (
STORAGE 61941 . 66362) (STORAGE.LEFT 66364 . 69905) (\STORAGE.TYPE 69907 . 73967) (\STLINP 73969 .
74155) (\STMDSTYPE 74157 . 75356) (\STMDS.APPROX 75358 . 75626) (\STORAGE.HUNKTYPE 75628 . 77080)) (
83752 92451 (CREATEMDSTYPETABLE 83762 . 85551) (INITDATATYPES 85553 . 90398) (INITDATATYPENAMES 90400
. 92449)))))
(FILEMAP (NIL (6370 36981 (NTYPX 6380 . 6857) (\TYPEMASK.UFN 6859 . 7383) (\TYPEP.UFN 7385 . 7554) (
\ALLOCMDSPAGE 7556 . 8958) (\ALLOCPAGEBLOCK 8960 . 9666) (\ALLOCVIRTUALPAGEBLOCK 9668 . 12283) (
\MAPMDS 12285 . 13472) (\CHECKFORSTORAGEFULL 13474 . 18620) (\DOSTORAGEFULLINTERRUPT 18622 . 18916) (
\SET.STORAGE.STATE 18918 . 19330) (\SETTYPEMASK 19332 . 20279) (\ADVANCE.STORAGE.STATE 20281 . 20789)
(\NEW2PAGE 20791 . 20977) (\MAKEMDSENTRY 20979 . 21425) (\INITMDSPAGE 21427 . 23219) (\ASSIGNDATATYPE1
23221 . 32849) (\RESOLVE.TYPENUMBER 32851 . 33316) (\TYPENUMBERFROMNAME 33318 . 33858) (CREATECELL
33860 . 33993) (\CREATECELL 33995 . 36979)) (37473 59579 (FETCHFIELD 37483 . 40674) (REPLACEFIELD
40676 . 46302) (BOXCOUNT 46304 . 46805) (CONSCOUNT 46807 . 46941) (\DTEST 46943 . 47076) (\TYPECHECK
47078 . 47215) (\DTEST.UFN 47217 . 50516) (\INSTANCEP.UFN 50518 . 51746) (\INSTANCE-P 51748 . 52011) (
\TYPECHECK.UFN 52013 . 52576) (GETDESCRIPTORS 52578 . 53096) (GETSUPERTYPE 53098 . 53612) (
GETFIELDSPECS 53614 . 54251) (NCREATE 54253 . 54425) (NCREATE2 54427 . 55142) (REPLACEFIELDVAL 55144
. 55408) (PUTBASEPTRX 55410 . 55889) (/REPLACEFIELD 55891 . 56156) (TYPENAME 56158 . 57000) (
TYPENAMEP 57002 . 57226) (\TYPENAMEFROMNUMBER 57228 . 57458) (\BLOCKDATAP 57460 . 57780) (
USERDATATYPES 57782 . 57914) (DATATYPEP 57916 . 59065) (DATATYPES 59067 . 59577)) (61821 76972 (
STORAGE 61831 . 66252) (STORAGE.LEFT 66254 . 69795) (\STORAGE.TYPE 69797 . 73857) (\STLINP 73859 .
74045) (\STMDSTYPE 74047 . 75246) (\STMDS.APPROX 75248 . 75516) (\STORAGE.HUNKTYPE 75518 . 76970)) (
83642 92341 (CREATEMDSTYPETABLE 83652 . 85441) (INITDATATYPES 85443 . 90288) (INITDATATYPENAMES 90290
. 92339)))))
STOP