FONT, EDITFONT: Cleanup strike font reading and writing (#845)
EDITFONThad its own slightly different version. Now centralized in FONT with slight adjustments to internal interfaces. Note that we don't have a way of writing AC font files, as near as I can tell
This commit is contained in:
@@ -1,12 +1,13 @@
|
|||||||
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
|
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
|
||||||
|
|
||||||
(FILECREATED "27-Jun-2022 10:59:12"
|
(FILECREATED "12-Jul-2022 14:18:56"
|
||||||
{DSK}<users>kaplan>local>medley3.5>working-medley>lispusers>EDITFONT.;5 38667
|
{DSK}<Users>kaplan>Local>medley3.5>working-medley>lispusers>EDITFONT.;10 28741
|
||||||
|
|
||||||
:CHANGES-TO (FNS EDITFONT EF.EDIT)
|
:CHANGES-TO (FNS READSTRIKEFONTFILE)
|
||||||
|
(VARS EDITFONTCOMS)
|
||||||
|
|
||||||
:PREVIOUS-DATE "26-Aug-86 16:23:09"
|
:PREVIOUS-DATE "27-Jun-2022 10:59:12"
|
||||||
{DSK}<users>kaplan>local>medley3.5>working-medley>lispusers>EDITFONT.;1)
|
{DSK}<users>kaplan>local>medley3.5>working-medley>lispusers>EDITFONT.;5)
|
||||||
|
|
||||||
|
|
||||||
(* ; "
|
(* ; "
|
||||||
@@ -16,44 +17,26 @@ Copyright (c) 1985-1986 by Xerox Corporation.
|
|||||||
(PRETTYCOMPRINT EDITFONTCOMS)
|
(PRETTYCOMPRINT EDITFONTCOMS)
|
||||||
|
|
||||||
(RPAQQ EDITFONTCOMS
|
(RPAQQ EDITFONTCOMS
|
||||||
((* EDITFONT -- By Kelly Roach. Need to LOAD EXPORTS.ALL and LOADFROM FONT in order to compile
|
((* EDITFONT -- By Kelly Roach. Need to LOAD EXPORTS.ALL in order to compile this file. *)
|
||||||
this file. *)
|
|
||||||
(CONSTANTS (BITSPERWORD 16)
|
|
||||||
(BYTESPERWORD 2)
|
|
||||||
(MAXCODE 255)
|
|
||||||
(DUMMYINDEX 256))
|
|
||||||
(INITVARS (EF.MENU NIL)
|
(INITVARS (EF.MENU NIL)
|
||||||
(EF.TITLEMENU NIL))
|
(EF.TITLEMENU NIL))
|
||||||
(RECORDS CHARITEM)
|
(RECORDS CHARITEM)
|
||||||
(FNS EF.INIT EF.PROMPT EF.MESSAGE EF.CLOSEFN EF.CHARITEMS EF.BUTTONEVENTFN EF.WHENSELECTEDFN
|
(FNS EF.INIT EF.PROMPT EF.MESSAGE EF.CLOSEFN EF.CHARITEMS EF.BUTTONEVENTFN EF.WHENSELECTEDFN
|
||||||
EF.EDITBM EF.MIDDLEBUTTONFN EF.CHANGESIZE EF.DELETE EF.ENTER EF.REPLACE EF.SAVE EF.BLANK
|
EF.EDITBM EF.MIDDLEBUTTONFN EF.CHANGESIZE EF.DELETE EF.ENTER EF.REPLACE EF.SAVE EF.BLANK
|
||||||
COPYFONT READSTRIKEFONTFILE WRITESTRIKEFONTFILE)
|
COPYFONT READSTRIKEFONTFILE)
|
||||||
(FNS BLANKFONTCREATE EDITFONT)
|
(FNS BLANKFONTCREATE EDITFONT)
|
||||||
(DECLARE%: EVAL@COMPILE DONTCOPY (FILES (LOADCOMP)
|
(DECLARE%: EVAL@COMPILE DONTCOPY (CONSTANTS (BITSPERWORD 16)
|
||||||
FONT))
|
(BYTESPERWORD 2)
|
||||||
|
(MAXCODE 255)
|
||||||
|
(DUMMYINDEX 256))
|
||||||
|
(FILES (LOADCOMP)
|
||||||
|
FONT))
|
||||||
(P (EF.INIT))))
|
(P (EF.INIT))))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
(* EDITFONT -- By Kelly Roach. Need to LOAD EXPORTS.ALL and LOADFROM FONT in order to compile this
|
(* EDITFONT -- By Kelly Roach. Need to LOAD EXPORTS.ALL in order to compile this file. *)
|
||||||
file. *)
|
|
||||||
|
|
||||||
(DECLARE%: EVAL@COMPILE
|
|
||||||
|
|
||||||
(RPAQQ BITSPERWORD 16)
|
|
||||||
|
|
||||||
(RPAQQ BYTESPERWORD 2)
|
|
||||||
|
|
||||||
(RPAQQ MAXCODE 255)
|
|
||||||
|
|
||||||
(RPAQQ DUMMYINDEX 256)
|
|
||||||
|
|
||||||
|
|
||||||
(CONSTANTS (BITSPERWORD 16)
|
|
||||||
(BYTESPERWORD 2)
|
|
||||||
(MAXCODE 255)
|
|
||||||
(DUMMYINDEX 256))
|
|
||||||
)
|
|
||||||
|
|
||||||
(RPAQ? EF.MENU NIL)
|
(RPAQ? EF.MENU NIL)
|
||||||
|
|
||||||
@@ -466,166 +449,33 @@ file. *)
|
|||||||
(RETURN NEWFONT])
|
(RETURN NEWFONT])
|
||||||
|
|
||||||
(READSTRIKEFONTFILE
|
(READSTRIKEFONTFILE
|
||||||
[LAMBDA (FAMILY SIZE FACE FILE FONT CHARSET) (* kbr%: "14-Oct-85 11:16")
|
[LAMBDA (FAMILY SIZE FACE FILE FONT CHARSET)
|
||||||
(* Very similar to \READSTRIKEFONTFILE
|
|
||||||
of <LISPCORE>SOURCES>FONT.
|
|
||||||
Returns fontdescriptor FONT.
|
|
||||||
*)
|
|
||||||
(PROG (STRM CSINFO NUMBCODES RW BITMAP OFFSETS FIRSTCHAR LASTCHAR HEIGHT WIDTHS)
|
|
||||||
(* This part imitates
|
|
||||||
\READSTRIKEFONTFILE *)
|
|
||||||
(SETQ STRM (OPENSTREAM FILE 'INPUT 'OLD))
|
|
||||||
(SETQ CSINFO (create CHARSETINFO))
|
|
||||||
(\WIN STRM)
|
|
||||||
(SETQ FIRSTCHAR (\WIN STRM)) (* minimum ascii code)
|
|
||||||
(SETQ LASTCHAR (\WIN STRM)) (* maximum ascii code)
|
|
||||||
(\WIN STRM) (* MaxWidth which isn't used by
|
|
||||||
anyone.)
|
|
||||||
(\WIN STRM) (* number of words in this StrikeBody)
|
|
||||||
(replace (CHARSETINFO CHARSETASCENT) of CSINFO with (\WIN STRM))
|
|
||||||
(* ascent in scan lines
|
|
||||||
(=FBBdy+FBBoy))
|
|
||||||
(replace (CHARSETINFO CHARSETDESCENT) of CSINFO with (\WIN STRM))
|
|
||||||
(* descent in scan-lines
|
|
||||||
(=FBBoy))
|
|
||||||
(\WIN STRM) (* offset in bits (<0 for kerning,
|
|
||||||
else 0, =FBBox))
|
|
||||||
(SETQ RW (\WIN STRM)) (* raster width of bitmap)
|
|
||||||
(* height of bitmap)
|
|
||||||
(SETQ HEIGHT (IPLUS (fetch (CHARSETINFO CHARSETASCENT) of CSINFO)
|
|
||||||
(fetch (CHARSETINFO CHARSETDESCENT) of CSINFO)))
|
|
||||||
(SETQ BITMAP (BITMAPCREATE (UNFOLD RW BITSPERWORD)
|
|
||||||
HEIGHT))
|
|
||||||
(\BINS STRM (fetch (BITMAP BITMAPBASE) of BITMAP)
|
|
||||||
0
|
|
||||||
(UNFOLD (ITIMES RW HEIGHT)
|
|
||||||
BYTESPERWORD)) (* read bits into bitmap)
|
|
||||||
(replace (CHARSETINFO CHARSETBITMAP) of CSINFO with BITMAP)
|
|
||||||
(SETQ NUMBCODES (IPLUS (IDIFFERENCE LASTCHAR FIRSTCHAR)
|
|
||||||
3)) (* SETQ OFFSETS (ARRAY
|
|
||||||
(IPLUS \MAXCHAR 3) (QUOTE SMALLPOSP) 0
|
|
||||||
0))
|
|
||||||
(SETQ OFFSETS (fetch (CHARSETINFO OFFSETS) of CSINFO))
|
|
||||||
(* initialise the offsets to 0)
|
|
||||||
(for I from 0 to (IPLUS \MAXTHINCHAR 2) do (\FSETOFFSET OFFSETS I 0))
|
|
||||||
(* AIN OFFSETS FIRSTCHAR NUMBCODES
|
|
||||||
STRM)
|
|
||||||
(for I from FIRSTCHAR as J from 1 to NUMBCODES do (\FSETOFFSET OFFSETS I (\WIN STRM)))
|
|
||||||
(SETQ WIDTHS (fetch (CHARSETINFO WIDTHS) of CSINFO))
|
|
||||||
(for I from 0 to (IPLUS \MAXTHINCHAR 2) do (\FSETWIDTH WIDTHS I 0))
|
|
||||||
(* replace WIDTHS of CSINFO with
|
|
||||||
(ARRAY (IPLUS \MAXCHAR 3)
|
|
||||||
(QUOTE SMALLPOSP) 0 0))
|
|
||||||
(\FONTRESETCHARWIDTHS CSINFO FIRSTCHAR LASTCHAR)
|
|
||||||
(replace (CHARSETINFO IMAGEWIDTHS) of CSINFO with (fetch (CHARSETINFO WIDTHS) of CSINFO))
|
|
||||||
(CLOSEF STRM) (* This part imitates
|
|
||||||
\CREATEDISPLAYFONT *)
|
|
||||||
(COND
|
|
||||||
((NULL CHARSET)
|
|
||||||
(SETQ CHARSET 0)))
|
|
||||||
[COND
|
|
||||||
((NULL FONT)
|
|
||||||
(SETQ FONT
|
|
||||||
(create FONTDESCRIPTOR
|
|
||||||
FONTDEVICE _ 'DISPLAY
|
|
||||||
FONTFAMILY _ FAMILY
|
|
||||||
FONTSIZE _ SIZE
|
|
||||||
FONTFACE _ FACE
|
|
||||||
\SFAscent _ 0
|
|
||||||
\SFDescent _ 0
|
|
||||||
\SFHeight _ 0
|
|
||||||
ROTATION _ 0
|
|
||||||
FONTDEVICESPEC _ (LIST FAMILY SIZE FACE 0 'DISPLAY]
|
|
||||||
(* This part imitates \CREATECHARSET.
|
|
||||||
*)
|
|
||||||
(replace (FONTDESCRIPTOR \SFAscent) of FONT with (IMAX (fetch (FONTDESCRIPTOR \SFAscent)
|
|
||||||
of FONT)
|
|
||||||
(fetch (CHARSETINFO CHARSETASCENT)
|
|
||||||
of CSINFO)))
|
|
||||||
(replace (FONTDESCRIPTOR \SFDescent) of FONT with (IMAX (fetch (FONTDESCRIPTOR \SFDescent)
|
|
||||||
of FONT)
|
|
||||||
(fetch (CHARSETINFO CHARSETDESCENT)
|
|
||||||
of CSINFO)))
|
|
||||||
[replace (FONTDESCRIPTOR \SFHeight) of FONT with (IMAX (fetch (FONTDESCRIPTOR \SFHeight)
|
|
||||||
of FONT)
|
|
||||||
(IPLUS (fetch (CHARSETINFO
|
|
||||||
CHARSETASCENT)
|
|
||||||
of CSINFO)
|
|
||||||
(fetch (CHARSETINFO
|
|
||||||
CHARSETDESCENT)
|
|
||||||
of CSINFO]
|
|
||||||
(\SETCHARSETINFO (fetch (FONTDESCRIPTOR FONTCHARSETVECTOR) of FONT)
|
|
||||||
CHARSET CSINFO)
|
|
||||||
(replace (FONTDESCRIPTOR FONTAVGCHARWIDTH) of FONT with (\AVGCHARWIDTH FONT))
|
|
||||||
(RETURN FONT])
|
|
||||||
|
|
||||||
(WRITESTRIKEFONTFILE
|
(* ;; "Edited 12-Jul-2022 14:16 by rmk: Removed slightlly different implementations of \READSTRIKEFONTFILE and charset installation in favor of common code in FONT.")
|
||||||
[LAMBDA (FONT CHARSET FILE) (* kbr%: "21-Oct-85 15:08")
|
|
||||||
(* Write strike FILE using info in
|
(* ;; "Edited 12-Jul-2022 13:33 by rmk")
|
||||||
FONT. *)
|
(* kbr%: "14-Oct-85 11:16")
|
||||||
(PROG (STREAM CSINFO FIRSTCHAR LASTCHAR WIDTH MAXWIDTH LENGTH RASTERWIDTH DUMMYCHAR DUMMYOFFSET
|
(CL:UNLESS CHARSET (SETQ CHARSET 0)) (* ; "Returns fontdescriptor FONT. *")
|
||||||
OFFSET PREVIOUSOFFSET WIDTH CODE)
|
(LET (STRM CSINFO)
|
||||||
(COND
|
(SETQ STRM (OPENSTREAM FILE 'INPUT 'OLD))
|
||||||
((NOT (FONTP FONT))
|
(\WIN STRM)
|
||||||
(LISPERROR "ILLEGAL ARG" FONT)))
|
(SETQ CSINFO (\READSTRIKEFONTFILE STRM FAMILY SIZE FACE))
|
||||||
(COND
|
(CLOSEF STRM) (* ;
|
||||||
((NULL CHARSET)
|
"This part imitates \CREATEDISPLAYFONT *")
|
||||||
(SETQ CHARSET 0))
|
(CL:UNLESS FONT
|
||||||
((NOT (AND (IGEQ CHARSET 0)
|
[SETQ FONT
|
||||||
(ILESSP CHARSET \MAXCHARSET)))
|
(create FONTDESCRIPTOR
|
||||||
(LISPERROR "ILLEGAL ARG" CHARSET)))
|
FONTDEVICE _ 'DISPLAY
|
||||||
(SETQ CSINFO (\GETCHARSETINFO CHARSET FONT T))
|
FONTFAMILY _ FAMILY
|
||||||
(COND
|
FONTSIZE _ SIZE
|
||||||
((NULL CSINFO)
|
FONTFACE _ FACE
|
||||||
(ERROR "Couldn't find charset " CHARSET)))
|
\SFAscent _ 0
|
||||||
(SETQ WIDTHS (fetch (CHARSETINFO WIDTHS) of CSINFO))
|
\SFDescent _ 0
|
||||||
(SETQ OFFSETS (fetch (CHARSETINFO OFFSETS) of CSINFO))
|
\SFHeight _ 0
|
||||||
(SETQ DUMMYOFFSET (\FGETOFFSET OFFSETS DUMMYINDEX))
|
ROTATION _ 0
|
||||||
[SETQ FIRSTCHAR (for I from 0 to MAXCODE thereis (NOT (EQ (\FGETOFFSET OFFSETS I)
|
FONTDEVICESPEC _ (LIST FAMILY SIZE FACE 0 'DISPLAY])
|
||||||
DUMMYOFFSET]
|
(\INSTALLCHARSETINFO FONT CSINFO CHARSET)
|
||||||
[SETQ LASTCHAR (for I from MAXCODE to 0 by -1 thereis (NOT (EQ (\FGETOFFSET OFFSETS I)
|
FONT])
|
||||||
DUMMYOFFSET]
|
|
||||||
(SETQ DUMMYCHAR (ADD1 LASTCHAR))
|
|
||||||
[SETQ STREAM (OPENSTREAM FILE 'OUTPUT 'NEW '((TYPE BINARY]
|
|
||||||
(* STRIKE HEADER. *)
|
|
||||||
(\WOUT STREAM 32768)
|
|
||||||
(\WOUT STREAM FIRSTCHAR)
|
|
||||||
(\WOUT STREAM LASTCHAR)
|
|
||||||
(SETQ MAXWIDTH 0)
|
|
||||||
[for I from 0 to DUMMYINDEX do (SETQ MAXWIDTH (IMAX MAXWIDTH (\FGETWIDTH WIDTHS I]
|
|
||||||
(\WOUT STREAM MAXWIDTH) (* STRIKE BODY. *)
|
|
||||||
(* Length. *)
|
|
||||||
(SETQ RASTERWIDTH (fetch (BITMAP BITMAPRASTERWIDTH) of (fetch (CHARSETINFO CHARSETBITMAP)
|
|
||||||
of CSINFO)))
|
|
||||||
(SETQ LENGTH (IPLUS 8 (IDIFFERENCE LASTCHAR FIRSTCHAR)
|
|
||||||
(ITIMES (fetch (FONTDESCRIPTOR \SFHeight) of FONT)
|
|
||||||
RASTERWIDTH)))
|
|
||||||
(\WOUT STREAM LENGTH) (* Ascent, Descent, Xoffset
|
|
||||||
(no longer used) and Rasterwidth.
|
|
||||||
*)
|
|
||||||
(\WOUT STREAM (fetch (CHARSETINFO CHARSETASCENT) of CSINFO))
|
|
||||||
(\WOUT STREAM (fetch (CHARSETINFO CHARSETDESCENT) of CSINFO))
|
|
||||||
(\WOUT STREAM 0)
|
|
||||||
(\WOUT STREAM RASTERWIDTH) (* Bitmap. *)
|
|
||||||
[\BOUTS STREAM (fetch (BITMAP BITMAPBASE) of (fetch (CHARSETINFO CHARSETBITMAP)
|
|
||||||
of CSINFO))
|
|
||||||
0
|
|
||||||
(ITIMES 2 RASTERWIDTH (IPLUS (fetch (CHARSETINFO CHARSETASCENT) of CSINFO)
|
|
||||||
(fetch (CHARSETINFO CHARSETDESCENT) of CSINFO]
|
|
||||||
(* Offsets. *)
|
|
||||||
(SETQ CODE 0)
|
|
||||||
(\WOUT STREAM CODE)
|
|
||||||
(for I from FIRSTCHAR to DUMMYCHAR do (SETQ OFFSET (\FGETOFFSET OFFSETS I))
|
|
||||||
(SETQ WIDTH (\FGETWIDTH WIDTHS I))
|
|
||||||
[COND
|
|
||||||
((AND (IEQP OFFSET DUMMYOFFSET)
|
|
||||||
(NOT (IEQP I DUMMYCHAR)))
|
|
||||||
(* CODE stays the same.
|
|
||||||
*)
|
|
||||||
)
|
|
||||||
(T (SETQ CODE (IPLUS CODE WIDTH]
|
|
||||||
(\WOUT STREAM CODE))
|
|
||||||
(CLOSEF STREAM])
|
|
||||||
)
|
)
|
||||||
(DEFINEQ
|
(DEFINEQ
|
||||||
|
|
||||||
@@ -671,6 +521,23 @@ file. *)
|
|||||||
(WINDOWPROP WINDOW 'BUTTONEVENTFN 'EF.BUTTONEVENTFN])
|
(WINDOWPROP WINDOW 'BUTTONEVENTFN 'EF.BUTTONEVENTFN])
|
||||||
)
|
)
|
||||||
(DECLARE%: EVAL@COMPILE DONTCOPY
|
(DECLARE%: EVAL@COMPILE DONTCOPY
|
||||||
|
(DECLARE%: EVAL@COMPILE
|
||||||
|
|
||||||
|
(RPAQQ BITSPERWORD 16)
|
||||||
|
|
||||||
|
(RPAQQ BYTESPERWORD 2)
|
||||||
|
|
||||||
|
(RPAQQ MAXCODE 255)
|
||||||
|
|
||||||
|
(RPAQQ DUMMYINDEX 256)
|
||||||
|
|
||||||
|
|
||||||
|
(CONSTANTS (BITSPERWORD 16)
|
||||||
|
(BYTESPERWORD 2)
|
||||||
|
(MAXCODE 255)
|
||||||
|
(DUMMYINDEX 256))
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
(FILESLOAD (LOADCOMP)
|
(FILESLOAD (LOADCOMP)
|
||||||
FONT)
|
FONT)
|
||||||
@@ -679,11 +546,10 @@ file. *)
|
|||||||
(EF.INIT)
|
(EF.INIT)
|
||||||
(PUTPROPS EDITFONT COPYRIGHT ("Xerox Corporation" 1985 1986))
|
(PUTPROPS EDITFONT COPYRIGHT ("Xerox Corporation" 1985 1986))
|
||||||
(DECLARE%: DONTCOPY
|
(DECLARE%: DONTCOPY
|
||||||
(FILEMAP (NIL (1748 36280 (EF.INIT 1758 . 2484) (EF.PROMPT 2486 . 3068) (EF.MESSAGE 3070 . 3282) (
|
(FILEMAP (NIL (1567 26117 (EF.INIT 1577 . 2303) (EF.PROMPT 2305 . 2887) (EF.MESSAGE 2889 . 3101) (
|
||||||
EF.CLOSEFN 3284 . 3811) (EF.CHARITEMS 3813 . 6034) (EF.BUTTONEVENTFN 6036 . 6448) (EF.WHENSELECTEDFN
|
EF.CLOSEFN 3103 . 3630) (EF.CHARITEMS 3632 . 5853) (EF.BUTTONEVENTFN 5855 . 6267) (EF.WHENSELECTEDFN
|
||||||
6450 . 6854) (EF.EDITBM 6856 . 8254) (EF.MIDDLEBUTTONFN 8256 . 8501) (EF.CHANGESIZE 8503 . 9722) (
|
6269 . 6673) (EF.EDITBM 6675 . 8073) (EF.MIDDLEBUTTONFN 8075 . 8320) (EF.CHANGESIZE 8322 . 9541) (
|
||||||
EF.DELETE 9724 . 10489) (EF.ENTER 10491 . 11322) (EF.REPLACE 11324 . 12187) (EF.SAVE 12189 . 16862) (
|
EF.DELETE 9543 . 10308) (EF.ENTER 10310 . 11141) (EF.REPLACE 11143 . 12006) (EF.SAVE 12008 . 16681) (
|
||||||
EF.BLANK 16864 . 22489) (COPYFONT 22491 . 24931) (READSTRIKEFONTFILE 24933 . 31905) (
|
EF.BLANK 16683 . 22308) (COPYFONT 22310 . 24750) (READSTRIKEFONTFILE 24752 . 26115)) (26118 28332 (
|
||||||
WRITESTRIKEFONTFILE 31907 . 36278)) (36281 38495 (BLANKFONTCREATE 36291 . 36548) (EDITFONT 36550 .
|
BLANKFONTCREATE 26128 . 26385) (EDITFONT 26387 . 28330)))))
|
||||||
38493)))))
|
|
||||||
STOP
|
STOP
|
||||||
|
|||||||
Binary file not shown.
377
sources/FONT
377
sources/FONT
@@ -1,12 +1,12 @@
|
|||||||
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
|
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
|
||||||
|
|
||||||
(FILECREATED "26-Jun-2022 13:00:17" {DSK}<Users>kaplan>Local>medley3.5>working-medley>sources>FONT.;2 188234
|
(FILECREATED "12-Jul-2022 15:09:31" {DSK}<Users>kaplan>Local>medley3.5>working-medley>sources>FONT.;11 187571
|
||||||
|
|
||||||
:CHANGES-TO (VARS FONTCOMS)
|
:CHANGES-TO (FNS \INSTALLCHARSETINFO \CREATECHARSET WRITESTRIKEFONTFILE \READSTRIKEFONTFILE)
|
||||||
(FNS \CREATE-REAL-CHARSET.DISPLAY)
|
(VARS FONTCOMS)
|
||||||
|
|
||||||
:PREVIOUS-DATE " 9-Feb-2021 11:39:44"
|
:PREVIOUS-DATE "11-Jul-2022 23:05:20"
|
||||||
{DSK}<Users>kaplan>Local>medley3.5>working-medley>sources>FONT.;1)
|
{DSK}<Users>kaplan>Local>medley3.5>working-medley>sources>FONT.;3)
|
||||||
|
|
||||||
|
|
||||||
(* ; "
|
(* ; "
|
||||||
@@ -98,7 +98,7 @@ Copyright (c) 1981-1994, 1999, 2021 by Venue & Xerox Corporation.
|
|||||||
(FUNCTIONS \CREATEKERNELEMENT \FSETLEFTKERN \FGETLEFTKERN)
|
(FUNCTIONS \CREATEKERNELEMENT \FSETLEFTKERN \FGETLEFTKERN)
|
||||||
(CONSTANTS (\MAXNSCHAR 65535]
|
(CONSTANTS (\MAXNSCHAR 65535]
|
||||||
(COMS (* ; "NS Character specific code")
|
(COMS (* ; "NS Character specific code")
|
||||||
(FNS \CREATECHARSET)
|
(FNS \CREATECHARSET \INSTALLCHARSETINFO)
|
||||||
(GLOBALVARS DISPLAYFONTCOERCIONS MISSINGDISPLAYFONTCOERCIONS
|
(GLOBALVARS DISPLAYFONTCOERCIONS MISSINGDISPLAYFONTCOERCIONS
|
||||||
MISSINGCHARSETDISPLAYFONTCOERCIONS CHARSETERRORFLG)
|
MISSINGCHARSETDISPLAYFONTCOERCIONS CHARSETERRORFLG)
|
||||||
(INITVARS (DISPLAYFONTCOERCIONS NIL)
|
(INITVARS (DISPLAYFONTCOERCIONS NIL)
|
||||||
@@ -2425,66 +2425,61 @@ Copyright (c) 1981-1994, 1999, 2021 by Venue & Xerox Corporation.
|
|||||||
(DEFINEQ
|
(DEFINEQ
|
||||||
|
|
||||||
(\READSTRIKEFONTFILE
|
(\READSTRIKEFONTFILE
|
||||||
[LAMBDA (STRM FAMILY SIZE FACE) (* ; "Edited 4-Dec-92 12:11 by jds")
|
[LAMBDA (STRM FAMILY SIZE FACE) (* ; "Edited 12-Jul-2022 09:19 by rmk")
|
||||||
|
(* ; "Edited 4-Dec-92 12:11 by jds")
|
||||||
(* ;
|
(* ;
|
||||||
"STRM has already been determined to be a vanilla strike-format file.")
|
"STRM has already been determined to be a vanilla strike-format file.")
|
||||||
(* ; "returns a charsetinfo")
|
(* ; "returns a charsetinfo")
|
||||||
(COND
|
(COND
|
||||||
((NEQ 2 (GETFILEPTR STRM))
|
((NEQ 2 (GETFILEPTR STRM))
|
||||||
(SETFILEPTR STRM 2)))
|
(SETFILEPTR STRM 2)))
|
||||||
(PROG (CSINFO NUMBCODES RW BITMAP OFFSETS FIRSTCHAR LASTCHAR HEIGHT WIDTHS)
|
(LET (CSINFO NUMBCODES RW BITMAP OFFSETS FIRSTCHAR LASTCHAR HEIGHT WIDTHS)
|
||||||
(SETQ CSINFO (create CHARSETINFO))
|
(SETQ CSINFO (create CHARSETINFO))
|
||||||
(SETQ FIRSTCHAR (\WIN STRM)) (* ; "minimum ascii code")
|
(SETQ FIRSTCHAR (\WIN STRM)) (* ; "minimum ascii code")
|
||||||
(SETQ LASTCHAR (\WIN STRM)) (* ; "maximum ascii code")
|
(SETQ LASTCHAR (\WIN STRM)) (* ; "maximum ascii code")
|
||||||
(\WIN STRM) (* ;
|
(\WIN STRM) (* ;
|
||||||
"MaxWidth which isn't used by anyone.")
|
"MaxWidth which isn't used by anyone.")
|
||||||
(\WIN STRM) (* ;
|
(\WIN STRM) (* ;
|
||||||
"number of words in this StrikeBody")
|
"number of words in this StrikeBody")
|
||||||
(replace (CHARSETINFO CHARSETASCENT) of CSINFO with (\WIN STRM))
|
(replace (CHARSETINFO CHARSETASCENT) of CSINFO with (\WIN STRM))
|
||||||
(* ;
|
(* ;
|
||||||
"ascent in scan lines (=FBBdy+FBBoy)")
|
"ascent in scan lines (=FBBdy+FBBoy)")
|
||||||
(replace (CHARSETINFO CHARSETDESCENT) of CSINFO with (\WIN STRM))
|
(replace (CHARSETINFO CHARSETDESCENT) of CSINFO with (\WIN STRM))
|
||||||
(* ; "descent in scan-lines (=FBBoy)")
|
(* ; "descent in scan-lines (=FBBoy)")
|
||||||
(\WIN STRM) (* ;
|
(\WIN STRM) (* ;
|
||||||
"offset in bits (<0 for kerning, else 0, =FBBox)")
|
"offset in bits (<0 for kerning, else 0, =FBBox)")
|
||||||
(SETQ RW (\WIN STRM)) (* ; "raster width of bitmap")
|
(SETQ RW (\WIN STRM)) (* ; "raster width of bitmap")
|
||||||
(* ; "height of bitmap")
|
(* ; "height of bitmap")
|
||||||
|
|
||||||
(* ;; "JDS 12/4/92: Apparently, these fields can be signed values, if all chars, e.g., ride above the base line.")
|
(* ;; "JDS 12/4/92: Apparently, these fields can be signed values, if all chars, e.g., ride above the base line.")
|
||||||
|
|
||||||
(SETQ HEIGHT (IPLUS (SIGNED (fetch (CHARSETINFO CHARSETASCENT) of CSINFO)
|
(SETQ HEIGHT (IPLUS (SIGNED (fetch (CHARSETINFO CHARSETASCENT) of CSINFO)
|
||||||
16)
|
16)
|
||||||
(SIGNED (fetch (CHARSETINFO CHARSETDESCENT) of CSINFO)
|
(SIGNED (fetch (CHARSETINFO CHARSETDESCENT) of CSINFO)
|
||||||
16)))
|
16)))
|
||||||
(SETQ BITMAP (BITMAPCREATE (UNFOLD RW BITSPERWORD)
|
(SETQ BITMAP (BITMAPCREATE (UNFOLD RW BITSPERWORD)
|
||||||
HEIGHT))
|
HEIGHT))
|
||||||
(\BINS STRM (fetch BITMAPBASE of BITMAP)
|
(\BINS STRM (fetch BITMAPBASE of BITMAP)
|
||||||
0
|
0
|
||||||
(UNFOLD (ITIMES RW HEIGHT)
|
(UNFOLD (ITIMES RW HEIGHT)
|
||||||
BYTESPERWORD)) (* ; "read bits into bitmap")
|
BYTESPERWORD)) (* ; "read bits into bitmap")
|
||||||
(replace (CHARSETINFO CHARSETBITMAP) of CSINFO with BITMAP)
|
(replace (CHARSETINFO CHARSETBITMAP) of CSINFO with BITMAP)
|
||||||
(SETQ NUMBCODES (IPLUS (IDIFFERENCE LASTCHAR FIRSTCHAR)
|
(SETQ NUMBCODES (IPLUS (IDIFFERENCE LASTCHAR FIRSTCHAR)
|
||||||
3)) (* (SETQ OFFSETS (ARRAY
|
3)) (* ;
|
||||||
(IPLUS \MAXCHAR 3)
|
"(SETQ OFFSETS (ARRAY (IPLUS \MAXCHAR 3) (QUOTE SMALLPOSP) 0 0))")
|
||||||
(QUOTE SMALLPOSP) 0 0)))
|
(SETQ OFFSETS (fetch (CHARSETINFO OFFSETS) of CSINFO))
|
||||||
(SETQ OFFSETS (fetch (CHARSETINFO OFFSETS) of CSINFO))
|
|
||||||
(* ; "initialise the offsets to 0")
|
(* ; "initialise the offsets to 0")
|
||||||
(for I from 0 to (IPLUS \MAXTHINCHAR 2) do (\FSETOFFSET OFFSETS I 0))
|
(for I from 0 to (IPLUS \MAXTHINCHAR 2) do (\FSETOFFSET OFFSETS I 0))
|
||||||
(* (AIN OFFSETS FIRSTCHAR NUMBCODES
|
(* ;
|
||||||
STRM))
|
"(AIN OFFSETS FIRSTCHAR NUMBCODES STRM)")
|
||||||
(for I from FIRSTCHAR as J from 1 to NUMBCODES
|
(for I from FIRSTCHAR as J from 1 to NUMBCODES do (\FSETOFFSET OFFSETS I (\WIN STRM)))
|
||||||
do (\FSETOFFSET OFFSETS I (\WIN STRM)))
|
(SETQ WIDTHS (fetch (CHARSETINFO WIDTHS) of CSINFO))
|
||||||
(SETQ WIDTHS (fetch (CHARSETINFO WIDTHS) of CSINFO))
|
(for I from 0 to (IPLUS \MAXTHINCHAR 2) do (\FSETWIDTH WIDTHS I 0))
|
||||||
(for I from 0 to (IPLUS \MAXTHINCHAR 2) do (\FSETWIDTH WIDTHS I 0))
|
(* ;
|
||||||
(* (replace WIDTHS of
|
"(replace WIDTHS of (CHARSETINFO CSINFO) with (ARRAY (IPLUS \MAXCHAR 3) (QUOTE SMALLPOSP) 0 0))")
|
||||||
(CHARSETINFO CSINFO) with
|
(\FONTRESETCHARWIDTHS CSINFO FIRSTCHAR LASTCHAR)
|
||||||
(ARRAY (IPLUS \MAXCHAR 3)
|
(replace (CHARSETINFO IMAGEWIDTHS) of CSINFO with (fetch (CHARSETINFO WIDTHS) of CSINFO))
|
||||||
(QUOTE SMALLPOSP) 0 0)))
|
CSINFO])
|
||||||
(\FONTRESETCHARWIDTHS CSINFO FIRSTCHAR LASTCHAR)
|
|
||||||
(replace (CHARSETINFO IMAGEWIDTHS) of CSINFO with (fetch (CHARSETINFO
|
|
||||||
WIDTHS)
|
|
||||||
of CSINFO))
|
|
||||||
(RETURN CSINFO])
|
|
||||||
|
|
||||||
(\SFMAKEBOLD
|
(\SFMAKEBOLD
|
||||||
[LAMBDA (CSINFO) (* gbn "25-Jul-85 04:52")
|
[LAMBDA (CSINFO) (* gbn "25-Jul-85 04:52")
|
||||||
@@ -2693,107 +2688,60 @@ Copyright (c) 1981-1994, 1999, 2021 by Venue & Xerox Corporation.
|
|||||||
(DEFINEQ
|
(DEFINEQ
|
||||||
|
|
||||||
(WRITESTRIKEFONTFILE
|
(WRITESTRIKEFONTFILE
|
||||||
[LAMBDA (FONT CHARSET FILENAME) (* ; "Edited 30-Mar-87 20:25 by FS")
|
[LAMBDA (FONT CHARSET FILE) (* ; "Edited 12-Jul-2022 14:36 by rmk")
|
||||||
|
(* kbr%: "21-Oct-85 15:08")
|
||||||
(* ;; "Write strike FILE using info in FONT, AND CHARSET number.")
|
|
||||||
|
|
||||||
(* ;; "This code only works if original file was STRIKE. Otherwise, a new CSINFO is dummied up and it is used instead. So, CSINFO when read in might be different than the one written out.")
|
|
||||||
|
|
||||||
(PROG (STREAM CSINFO FIRSTCHAR LASTCHAR WIDTHS OFFSETS IMWIDTHS MAXWIDTH RASTERWIDTH LENGTH
|
|
||||||
DUMMYCHAR DUMMYOFFSET DUMMYINDEX WIDTH OFFSET CODE MAXCODE)
|
|
||||||
(SETQ MAXCODE 255) (* ; "Max charcode")
|
|
||||||
(SETQ DUMMYINDEX 256) (* ; "Dummy char marker")
|
|
||||||
(COND
|
|
||||||
((NOT (FONTP FONT))
|
|
||||||
(LISPERROR "ILLEGAL ARG" FONT)))
|
|
||||||
(COND
|
|
||||||
((NULL CHARSET)
|
|
||||||
(SETQ CHARSET 0))
|
|
||||||
((NOT (AND (IGEQ CHARSET 0)
|
|
||||||
(ILESSP CHARSET \MAXCHARSET)))
|
|
||||||
(LISPERROR "ILLEGAL ARG" CHARSET)))
|
|
||||||
(SETQ CSINFO (STRIKECSINFO (\GETCHARSETINFO CHARSET FONT T)))
|
|
||||||
(* ;
|
(* ;
|
||||||
"Guarantee its a STRIKE font CSINFO.")
|
"Write strike FILE using info in FONT. *")
|
||||||
(COND
|
(CL:UNLESS (FONTP FONT)
|
||||||
((NULL CSINFO)
|
(LISPERROR "ILLEGAL ARG" FONT))
|
||||||
(ERROR "Couldn't find charset " CHARSET)))
|
(CL:UNLESS CHARSET (SETQ CHARSET 0))
|
||||||
(SETQ WIDTHS (fetch (CHARSETINFO WIDTHS) of CSINFO))
|
(CL:UNLESS (AND (IGEQ CHARSET 0)
|
||||||
(SETQ OFFSETS (fetch (CHARSETINFO OFFSETS) of CSINFO))
|
(ILEQ CHARSET \MAXCHARSET))
|
||||||
(SETQ IMWIDTHS (fetch (CHARSETINFO IMAGEWIDTHS) of CSINFO))
|
(LISPERROR "ILLEGAL ARG" CHARSET))
|
||||||
|
(LET (STREAM CSINFO FIRSTCHAR LASTCHAR WIDTHS MAXWIDTH LENGTH RASTERWIDTH DUMMYCHAR DUMMYOFFSET
|
||||||
(* ;; "Index 256 contains a dummy width; use it's value to determine missing chars")
|
PREVIOUSOFFSET OFFSETS)
|
||||||
|
(SETQ CSINFO (\GETCHARSETINFO CHARSET FONT T))
|
||||||
(SETQ DUMMYOFFSET (\FGETOFFSET OFFSETS DUMMYINDEX))
|
(CL:UNLESS CSINFO (ERROR "Couldn't find charset " CHARSET))
|
||||||
[SETQ FIRSTCHAR (for I from 0 to MAXCODE
|
(SETQ WIDTHS (fetch (CHARSETINFO WIDTHS) of CSINFO))
|
||||||
thereis (NOT (EQ (\FGETOFFSET OFFSETS I)
|
(SETQ OFFSETS (fetch (CHARSETINFO OFFSETS) of CSINFO))
|
||||||
DUMMYOFFSET]
|
(SETQ DUMMYOFFSET (\FGETOFFSET OFFSETS DUMMYINDEX))
|
||||||
[SETQ LASTCHAR (for I from MAXCODE to 0 by -1
|
[SETQ FIRSTCHAR (for I from 0 to MAXCODE thereis (NOT (EQ (\FGETOFFSET OFFSETS I)
|
||||||
thereis (NOT (EQ (\FGETOFFSET OFFSETS I)
|
DUMMYOFFSET]
|
||||||
DUMMYOFFSET]
|
[SETQ LASTCHAR (for I from MAXCODE to 0 by -1 thereis (NOT (EQ (\FGETOFFSET OFFSETS I)
|
||||||
(SETQ DUMMYCHAR (ADD1 LASTCHAR))
|
DUMMYOFFSET]
|
||||||
[SETQ STREAM (OPENSTREAM FILENAME 'OUTPUT 'NEW '((TYPE BINARY]
|
(SETQ DUMMYCHAR (ADD1 LASTCHAR))
|
||||||
|
[SETQ STREAM (OPENSTREAM FILE 'OUTPUT 'NEW '((TYPE BINARY]
|
||||||
(* ;; "")
|
(\WOUT STREAM 32768) (* ; "STRIKE HEADER. *")
|
||||||
|
(\WOUT STREAM FIRSTCHAR)
|
||||||
(* ;; "STRIKE Header")
|
(\WOUT STREAM LASTCHAR)
|
||||||
|
(SETQ MAXWIDTH 0)
|
||||||
(* ;; "")
|
[for I from 0 to DUMMYINDEX do (SETQ MAXWIDTH (IMAX MAXWIDTH (\FGETWIDTH WIDTHS I]
|
||||||
|
(\WOUT STREAM MAXWIDTH) (* ; "STRIKE BODY. *")
|
||||||
(\WOUT STREAM 32768)
|
(* ; "Length. *")
|
||||||
(\WOUT STREAM FIRSTCHAR)
|
(SETQ RASTERWIDTH (fetch (BITMAP BITMAPRASTERWIDTH) of (fetch (CHARSETINFO CHARSETBITMAP)
|
||||||
(\WOUT STREAM LASTCHAR)
|
of CSINFO)))
|
||||||
(SETQ MAXWIDTH 0)
|
(SETQ LENGTH (IPLUS 8 (IDIFFERENCE LASTCHAR FIRSTCHAR)
|
||||||
[for I from 0 to DUMMYINDEX do (SETQ MAXWIDTH (IMAX MAXWIDTH
|
(ITIMES (fetch (FONTDESCRIPTOR \SFHeight) of FONT)
|
||||||
(\FGETWIDTH WIDTHS I]
|
RASTERWIDTH)))
|
||||||
(\WOUT STREAM MAXWIDTH)
|
(\WOUT STREAM LENGTH) (* ;
|
||||||
|
"Ascent, Descent, Xoffset (no longer used) and Rasterwidth. *")
|
||||||
(* ;; "")
|
(\WOUT STREAM (fetch (CHARSETINFO CHARSETASCENT) of CSINFO))
|
||||||
|
(\WOUT STREAM (fetch (CHARSETINFO CHARSETDESCENT) of CSINFO))
|
||||||
(* ;; "STRIKE Body")
|
(\WOUT STREAM 0)
|
||||||
|
(\WOUT STREAM RASTERWIDTH) (* ; "Bitmap. *")
|
||||||
(* ;; "")
|
[\BOUTS STREAM (fetch (BITMAP BITMAPBASE) of (fetch (CHARSETINFO CHARSETBITMAP) of CSINFO))
|
||||||
|
0
|
||||||
(* ;; "Length of body")
|
(ITIMES 2 RASTERWIDTH (IPLUS (fetch (CHARSETINFO CHARSETASCENT) of CSINFO)
|
||||||
|
(fetch (CHARSETINFO CHARSETDESCENT) of CSINFO]
|
||||||
(SETQ RASTERWIDTH (fetch (BITMAP BITMAPRASTERWIDTH) of (fetch (CHARSETINFO
|
(* ; "Offsets. *")
|
||||||
CHARSETBITMAP)
|
(for I WIDTH OFFSET (CODE _ 0) from FIRSTCHAR to DUMMYCHAR first (\WOUT STREAM CODE)
|
||||||
of CSINFO)))
|
do (SETQ OFFSET (\FGETOFFSET OFFSETS I))
|
||||||
(SETQ LENGTH (IPLUS 8 (IDIFFERENCE LASTCHAR FIRSTCHAR)
|
(SETQ WIDTH (\FGETWIDTH WIDTHS I))
|
||||||
(ITIMES (fetch (FONTDESCRIPTOR \SFHeight) of FONT)
|
(CL:UNLESS (AND (IEQP OFFSET DUMMYOFFSET)
|
||||||
RASTERWIDTH)))
|
(NOT (IEQP I DUMMYCHAR)))
|
||||||
(\WOUT STREAM LENGTH)
|
(ADD CODE WIDTH))
|
||||||
|
(\WOUT STREAM CODE))
|
||||||
(* ;; "Ascent, Descent, Xoffset (no longer used) and Rasterwidth.")
|
(CLOSEF STREAM])
|
||||||
|
|
||||||
(\WOUT STREAM (fetch (CHARSETINFO CHARSETASCENT) of CSINFO))
|
|
||||||
(\WOUT STREAM (fetch (CHARSETINFO CHARSETDESCENT) of CSINFO))
|
|
||||||
(\WOUT STREAM 0) (* ;
|
|
||||||
"offset in bits (<0 for kerning, else 0, =FBBox)")
|
|
||||||
(\WOUT STREAM RASTERWIDTH)
|
|
||||||
|
|
||||||
(* ;; "Bitmap")
|
|
||||||
|
|
||||||
[\BOUTS STREAM (fetch (BITMAP BITMAPBASE) of (fetch (CHARSETINFO CHARSETBITMAP)
|
|
||||||
of CSINFO))
|
|
||||||
0
|
|
||||||
(ITIMES 2 RASTERWIDTH (IPLUS (fetch (CHARSETINFO CHARSETASCENT) of CSINFO)
|
|
||||||
(fetch (CHARSETINFO CHARSETDESCENT) of CSINFO]
|
|
||||||
|
|
||||||
(* ;; "Offsets")
|
|
||||||
|
|
||||||
(SETQ CODE 0)
|
|
||||||
(\WOUT STREAM CODE)
|
|
||||||
(for I from FIRSTCHAR to DUMMYCHAR
|
|
||||||
do (SETQ OFFSET (\FGETOFFSET OFFSETS I))
|
|
||||||
(SETQ WIDTH (\FGETWIDTH WIDTHS I))
|
|
||||||
[COND
|
|
||||||
((AND (IEQP OFFSET DUMMYOFFSET)
|
|
||||||
(NOT (IEQP I DUMMYCHAR))) (* ; "CODE stays the same.")
|
|
||||||
)
|
|
||||||
(T (SETQ CODE (IPLUS CODE WIDTH]
|
|
||||||
(\WOUT STREAM CODE))
|
|
||||||
(CLOSEF STREAM])
|
|
||||||
|
|
||||||
(STRIKECSINFO
|
(STRIKECSINFO
|
||||||
[LAMBDA (CSINFO) (* ; "Edited 27-Apr-89 13:39 by atm")
|
[LAMBDA (CSINFO) (* ; "Edited 27-Apr-89 13:39 by atm")
|
||||||
@@ -3193,45 +3141,56 @@ Copyright (c) 1981-1994, 1999, 2021 by Venue & Xerox Corporation.
|
|||||||
(DEFINEQ
|
(DEFINEQ
|
||||||
|
|
||||||
(\CREATECHARSET
|
(\CREATECHARSET
|
||||||
[LAMBDA (CHARSET FONT NOSLUG?) (* ; "Edited 8-May-93 23:42 by rmk:")
|
[LAMBDA (CHARSET FONT NOSLUG?) (* ; "Edited 12-Jul-2022 14:37 by rmk")
|
||||||
|
(* ; "Edited 8-May-93 23:42 by rmk:")
|
||||||
(* ; "Edited 4-Dec-92 11:43 by jds")
|
(* ; "Edited 4-Dec-92 11:43 by jds")
|
||||||
|
|
||||||
(* ;; "Creates and returns the CHARSETINFO for charset CHARSET in fontdesc FONT, installing it in fonts FONTCHARSETVECTOR")
|
(* ;; "Creates and returns the CHARSETINFO for charset CHARSET in fontdesc FONT, installing it in fonts FONTCHARSETVECTOR")
|
||||||
(* ;
|
(* ;
|
||||||
"NOSLUG? means don't create an empty (slug) csinfo if the charset is not found, just return NIL")
|
"NOSLUG? means don't create an empty (slug) csinfo if the charset is not found, just return NIL")
|
||||||
(DECLARE (GLOBALVARS \DISPLAYSTREAMTYPES))
|
(DECLARE (GLOBALVARS \DISPLAYSTREAMTYPES))
|
||||||
(AND (IGREATERP CHARSET \MAXCHARSET)
|
(CL:WHEN (OR (ILESSP CHARSET 0)
|
||||||
(\ILLEGAL.ARG CHARSET))
|
(IGREATERP CHARSET \MAXCHARSET))
|
||||||
(PROG [CSINFO (CREATEFN (COND
|
(\ILLEGAL.ARG CHARSET))
|
||||||
((FMEMB (FONTPROP FONT 'DEVICE)
|
(LET [CSINFO (CREATEFN (COND
|
||||||
\DISPLAYSTREAMTYPES)
|
((FMEMB (FONTPROP FONT 'DEVICE)
|
||||||
(FUNCTION \CREATECHARSET.DISPLAY))
|
\DISPLAYSTREAMTYPES)
|
||||||
(T (CADR (ASSOC 'CREATECHARSET (CDR (ASSOC (FONTPROP FONT
|
(FUNCTION \CREATECHARSET.DISPLAY))
|
||||||
'DEVICE)
|
(T (CADR (ASSOC 'CREATECHARSET (CDR (ASSOC (FONTPROP FONT 'DEVICE)
|
||||||
IMAGESTREAMTYPES]
|
IMAGESTREAMTYPES]
|
||||||
|
|
||||||
(* ;; "Create a descriptor of info for that charset, and use it to fill things in.")
|
(* ;; "Create a descriptor of info for that charset, and use it to fill things in.")
|
||||||
|
|
||||||
(COND
|
(CL:WHEN [SETQ CSINFO (APPLY CREATEFN (APPEND (FONTPROP FONT 'DEVICESPEC)
|
||||||
([NOT (SETQ CSINFO (APPLY CREATEFN (APPEND (FONTPROP FONT 'DEVICESPEC)
|
(LIST CHARSET FONT NOSLUG?]
|
||||||
(LIST CHARSET FONT NOSLUG?]
|
|
||||||
(* ;
|
(* ;
|
||||||
"the create method returned NIL--NOSLUG? must be T.")
|
"the create method did not return NIL--NOSLUG? must be T. ")
|
||||||
(RETURN NIL)))
|
(\INSTALLCHARSETINFO FONT CSINFO CHARSET))])
|
||||||
(replace \SFAscent of FONT with (IMAX (fetch \SFAscent of FONT)
|
|
||||||
(SIGNED (fetch CHARSETASCENT
|
(\INSTALLCHARSETINFO
|
||||||
|
[LAMBDA (FONT CSINFO CHARSET) (* ; "Edited 12-Jul-2022 15:08 by rmk")
|
||||||
|
(replace \SFAscent of FONT with (IMAX (fetch \SFAscent of FONT)
|
||||||
|
(SIGNED (fetch CHARSETASCENT of CSINFO)
|
||||||
|
16)))
|
||||||
|
(replace (FONTDESCRIPTOR \SFDescent) of FONT with (IMAX (fetch (FONTDESCRIPTOR \SFDescent)
|
||||||
|
of FONT)
|
||||||
|
(SIGNED (fetch (CHARSETINFO
|
||||||
|
CHARSETDESCENT)
|
||||||
of CSINFO)
|
of CSINFO)
|
||||||
16)))
|
16)))
|
||||||
(replace \SFDescent of FONT with (IMAX (fetch \SFDescent of FONT)
|
|
||||||
(SIGNED (ffetch CHARSETDESCENT
|
|
||||||
of CSINFO)
|
|
||||||
16)))
|
|
||||||
(replace \SFHeight of FONT with (IPLUS (fetch \SFAscent of FONT)
|
|
||||||
(ffetch \SFDescent of FONT)))
|
|
||||||
(* ;
|
(* ;
|
||||||
"jtm: height = ascent + descent, not (IMAX fontHeight charSetHeight)")
|
"jtm: height = ascent + descent, not (IMAX fontHeight charSetHeight)")
|
||||||
(RETURN (\SETCHARSETINFO (ffetch FONTCHARSETVECTOR of FONT)
|
(replace (FONTDESCRIPTOR \SFHeight) of FONT with (IPLUS (fetch (FONTDESCRIPTOR \SFAscent)
|
||||||
CHARSET CSINFO])
|
of FONT)
|
||||||
|
(ffetch (FONTDESCRIPTOR \SFDescent)
|
||||||
|
of FONT)))
|
||||||
|
(\SETCHARSETINFO (fetch (FONTDESCRIPTOR FONTCHARSETVECTOR) of FONT)
|
||||||
|
CHARSET CSINFO)
|
||||||
|
|
||||||
|
(* ;; "\AVGCHARWIDTH has to be confused after the CSINFO is stuck in.")
|
||||||
|
|
||||||
|
(replace (FONTDESCRIPTOR FONTAVGCHARWIDTH) of FONT with (\AVGCHARWIDTH FONT))
|
||||||
|
CSINFO])
|
||||||
)
|
)
|
||||||
(DECLARE%: DOEVAL@COMPILE DONTCOPY
|
(DECLARE%: DOEVAL@COMPILE DONTCOPY
|
||||||
|
|
||||||
@@ -3348,30 +3307,30 @@ Copyright (c) 1981-1994, 1999, 2021 by Venue & Xerox Corporation.
|
|||||||
(PUTPROPS FONT COPYRIGHT ("Venue & Xerox Corporation" 1981 1982 1983 1984 1985 1986 1987 1988 1989
|
(PUTPROPS FONT COPYRIGHT ("Venue & Xerox Corporation" 1981 1982 1983 1984 1985 1986 1987 1988 1989
|
||||||
1990 1991 1992 1993 1994 1999 2021))
|
1990 1991 1992 1993 1994 1999 2021))
|
||||||
(DECLARE%: DONTCOPY
|
(DECLARE%: DONTCOPY
|
||||||
(FILEMAP (NIL (8745 18264 (CHARWIDTH 8755 . 9540) (CHARWIDTHY 9542 . 10912) (STRINGWIDTH 10914 . 12007
|
(FILEMAP (NIL (8812 18331 (CHARWIDTH 8822 . 9607) (CHARWIDTHY 9609 . 10979) (STRINGWIDTH 10981 . 12074
|
||||||
) (\CHARWIDTH.DISPLAY 12009 . 12422) (\STRINGWIDTH.DISPLAY 12424 . 12848) (\STRINGWIDTH.GENERIC 12850
|
) (\CHARWIDTH.DISPLAY 12076 . 12489) (\STRINGWIDTH.DISPLAY 12491 . 12915) (\STRINGWIDTH.GENERIC 12917
|
||||||
. 18262)) (18265 24647 (DEFAULTFONT 18275 . 20108) (FONTCLASS 20110 . 22272) (FONTCLASSUNPARSE 22274
|
. 18329)) (18332 24714 (DEFAULTFONT 18342 . 20175) (FONTCLASS 20177 . 22339) (FONTCLASSUNPARSE 22341
|
||||||
. 23173) (FONTCLASSCOMPONENT 23175 . 23684) (SETFONTCLASSCOMPONENT 23686 . 24645)) (25321 38053 (
|
. 23240) (FONTCLASSCOMPONENT 23242 . 23751) (SETFONTCLASSCOMPONENT 23753 . 24712)) (25388 38120 (
|
||||||
FONTCREATE 25331 . 34598) (\FONT.SYMBOLMEMB 34600 . 34830) (\FONT.SYMBOLASSOC 34832 . 35990) (
|
FONTCREATE 25398 . 34665) (\FONT.SYMBOLMEMB 34667 . 34897) (\FONT.SYMBOLASSOC 34899 . 36057) (
|
||||||
\FONT.COMPARESYMBOL 35992 . 38051)) (38092 42716 (FONTASCENT 38102 . 38270) (FONTDESCENT 38272 . 38541
|
\FONT.COMPARESYMBOL 36059 . 38118)) (38159 42783 (FONTASCENT 38169 . 38337) (FONTDESCENT 38339 . 38608
|
||||||
) (FONTHEIGHT 38543 . 38729) (FONTPROP 38731 . 42174) (\AVGCHARWIDTH 42176 . 42714)) (42763 55402 (
|
) (FONTHEIGHT 38610 . 38796) (FONTPROP 38798 . 42241) (\AVGCHARWIDTH 42243 . 42781)) (42830 55469 (
|
||||||
GETCHARBITMAP 42773 . 45663) (PUTCHARBITMAP 45665 . 53722) (MOVECHARBITMAP 53724 . 55400)) (55403
|
GETCHARBITMAP 42840 . 45730) (PUTCHARBITMAP 45732 . 53789) (MOVECHARBITMAP 53791 . 55467)) (55470
|
||||||
139942 (FONTCOPY 55413 . 60721) (FONTSAVAILABLE 60723 . 65928) (FONTFILEFORMAT 65930 . 67554) (FONTP
|
140009 (FONTCOPY 55480 . 60788) (FONTSAVAILABLE 60790 . 65995) (FONTFILEFORMAT 65997 . 67621) (FONTP
|
||||||
67556 . 67855) (FONTUNPARSE 67857 . 70421) (SETFONTDESCRIPTOR 70423 . 72132) (CHARCODEP 72134 . 72495)
|
67623 . 67922) (FONTUNPARSE 67924 . 70488) (SETFONTDESCRIPTOR 70490 . 72199) (CHARCODEP 72201 . 72562)
|
||||||
(EDITCHAR 72497 . 72926) (\STREAMCHARWIDTH 72928 . 77092) (\UNITWIDTHSVECTOR 77094 . 77457) (
|
(EDITCHAR 72564 . 72993) (\STREAMCHARWIDTH 72995 . 77159) (\UNITWIDTHSVECTOR 77161 . 77524) (
|
||||||
\CREATEDISPLAYFONT 77459 . 78212) (\CREATECHARSET.DISPLAY 78214 . 81130) (\CREATE-REAL-CHARSET.DISPLAY
|
\CREATEDISPLAYFONT 77526 . 78279) (\CREATECHARSET.DISPLAY 78281 . 81197) (\CREATE-REAL-CHARSET.DISPLAY
|
||||||
81132 . 88036) (\BUILDSLUGCSINFO 88038 . 89481) (\SEARCHDISPLAYFONTFILES 89483 . 91416) (
|
81199 . 88103) (\BUILDSLUGCSINFO 88105 . 89548) (\SEARCHDISPLAYFONTFILES 89550 . 91483) (
|
||||||
\SEARCHFONTFILES 91418 . 94729) (\FINDFONTFILE 94731 . 95922) (\FONTSYMBOL 95924 . 96574) (
|
\SEARCHFONTFILES 91485 . 94796) (\FINDFONTFILE 94798 . 95989) (\FONTSYMBOL 95991 . 96641) (
|
||||||
\DEVICESYMBOL 96576 . 97445) (\FONTFACE 97447 . 104637) (\FONTFACE.COLOR 104639 . 111559) (
|
\DEVICESYMBOL 96643 . 97512) (\FONTFACE 97514 . 104704) (\FONTFACE.COLOR 104706 . 111626) (
|
||||||
\FONTFILENAME 111561 . 114976) (\FONTFILENAME.OLD 114978 . 117927) (\FONTFILENAME.NEW 117929 . 120186)
|
\FONTFILENAME 111628 . 115043) (\FONTFILENAME.OLD 115045 . 117994) (\FONTFILENAME.NEW 117996 . 120253)
|
||||||
(\FONTINFOFROMFILENAME 120188 . 123302) (\FONTINFOFROMFILENAME.OLD 123304 . 125581) (\GETFONTDESC
|
(\FONTINFOFROMFILENAME 120255 . 123369) (\FONTINFOFROMFILENAME.OLD 123371 . 125648) (\GETFONTDESC
|
||||||
125583 . 125974) (\COERCEFONTDESC 125976 . 131361) (\LOOKUPFONT 131363 . 132707) (\LOOKUPFONTSINCORE
|
125650 . 126041) (\COERCEFONTDESC 126043 . 131428) (\LOOKUPFONT 131430 . 132774) (\LOOKUPFONTSINCORE
|
||||||
132709 . 134782) (\READDISPLAYFONTFILE 134784 . 139940)) (140845 157895 (\READSTRIKEFONTFILE 140855 .
|
132776 . 134849) (\READDISPLAYFONTFILE 134851 . 140007)) (140912 157636 (\READSTRIKEFONTFILE 140922 .
|
||||||
145383) (\SFMAKEBOLD 145385 . 147781) (\SFMAKEITALIC 147783 . 150686) (\SFMAKEROTATEDFONT 150688 .
|
145124) (\SFMAKEBOLD 145126 . 147522) (\SFMAKEITALIC 147524 . 150427) (\SFMAKEROTATEDFONT 150429 .
|
||||||
152089) (\SFROTATECSINFO 152091 . 152728) (\SFROTATEFONTCHARACTERS 152730 . 153110) (
|
151830) (\SFROTATECSINFO 151832 . 152469) (\SFROTATEFONTCHARACTERS 152471 . 152851) (
|
||||||
\SFFIXOFFSETSAFTERROTATION 153112 . 155251) (\SFROTATECSINFOOFFSETS 155253 . 156522) (\SFMAKECOLOR
|
\SFFIXOFFSETSAFTERROTATION 152853 . 154992) (\SFROTATECSINFOOFFSETS 154994 . 156263) (\SFMAKECOLOR
|
||||||
156524 . 157893)) (157896 166207 (WRITESTRIKEFONTFILE 157906 . 162747) (STRIKECSINFO 162749 . 166205))
|
156265 . 157634)) (157637 164890 (WRITESTRIKEFONTFILE 157647 . 161430) (STRIKECSINFO 161432 . 164888))
|
||||||
(180252 180415 (\CREATEKERNELEMENT 180252 . 180415)) (180417 180545 (\FSETLEFTKERN 180417 . 180545))
|
(178935 179098 (\CREATEKERNELEMENT 178935 . 179098)) (179100 179228 (\FSETLEFTKERN 179100 . 179228))
|
||||||
(180547 180641 (\FGETLEFTKERN 180547 . 180641)) (180810 183666 (\CREATECHARSET 180820 . 183664)) (
|
(179230 179324 (\FGETLEFTKERN 179230 . 179324)) (179493 183003 (\CREATECHARSET 179503 . 181254) (
|
||||||
184821 186573 (\FONTRESETCHARWIDTHS 184831 . 186571)))))
|
\INSTALLCHARSETINFO 181256 . 183001)) (184158 185910 (\FONTRESETCHARWIDTHS 184168 . 185908)))))
|
||||||
STOP
|
STOP
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user