1
0
mirror of synced 2026-02-27 17:32:34 +00:00

Update to new imagefile architetecture (#2467)

* Update HPGL to new imagefile architetecture

* {LPT} improvements, TEXT imagetype centralized in HARDCOPY

* \EXTERNALFORMAT respects explicit fields in create stream expressions, doesn't override non-NIL fields
This commit is contained in:
rmkaplan
2026-02-02 11:56:50 -08:00
committed by GitHub
parent de0ba95497
commit 53d6387e93
8 changed files with 368 additions and 349 deletions

View File

@@ -1,20 +1,19 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED "20-Jul-88 17:47:02" |{MCS:MCS:STANFORD}<LANE>HPGL.;24| 45342
changes to%: (FNS \DRAWLINE.HPGL \FONT.HPGL \INIT.HPGL HARDCOPYW.HPGL)
(FILECREATED "29-Jan-2026 21:10:52" {WMEDLEY}<lispusers>HPGL.;9 43562
previous date%: "20-Jul-88 17:34:42" |{MCS:MCS:STANFORD}<LANE>HPGL.;23|)
:EDIT-BY rmk
:CHANGES-TO (FNS OPENHPGLSTREAM)
:PREVIOUS-DATE "29-Jan-2026 11:02:32" {WMEDLEY}<lispusers>HPGL.;7)
(* "
Copyright (c) 1985, 1986, 1987, 1988 by Stanford University. All rights reserved.
")
(PRETTYCOMPRINT HPGLCOMS)
(RPAQQ HPGLCOMS
(RPAQQ HPGLCOMS
((* * User Functions)
(FNS MAKEHPGL OPENHPGLSTREAM HARDCOPYW.HPGL)
(FNS OPENHPGLSTREAM HARDCOPYW.HPGL)
(* * ImageOp Functions)
(FNS \BITBLT.HPGL \BLTSHADE.HPGL \CLOSEFN.HPGL \COLOR.HPGL \DRAWARC.HPGL \DRAWCIRCLE.HPGL
\DRAWCURVE.HPGL \DRAWLINE.HPGL \DRAWPOLYGON.HPGL \FILLCIRCLE.HPGL \FONT.HPGL
@@ -36,20 +35,11 @@ Copyright (c) 1985, 1986, 1987, 1988 by Stanford University. All rights reserve
(DECLARE%: DOEVAL@COMPILE DONTCOPY (FILES UTILISOPRS)
(ALISTS (PRINTOUTMACROS !, !; !!;))
(RECORDS PLOTTERDATA))
(ALISTS (PRINTFILETYPES HPGL))
[ADDVARS (PRINTERTYPES ((PLOTTER HPGL)
(CANPRINT (HPGL))
(STATUS TRUE)
(BITMAPFILE (HARDCOPYW.HPGL FILE BITMAP SCALEFACTOR REGION ROTATION
TITLE))
(PROPERTIES NILL)))
[PRINTFILETYPES (HPGL (EXTENSION (HPGL PLOT))
(CONVERSION (TEXT MAKEHPGL TEDIT
(LAMBDA (FILE PFILE)
(SETQ FILE (OPENTEXTSTREAM FILE))
(TEDIT.FORMAT.HARDCOPY FILE PFILE T NIL
NIL NIL 'HPGL)
(CLOSEF? FILE)
PFILE]
(IMAGESTREAMTYPES (HPGL (OPENSTREAM OPENHPGLSTREAM)
(FONTCREATE \FONTCREATE.HPGL)
(FONTSAVAILABLE \SEARCH.HPGL.FONTS)
@@ -64,39 +54,36 @@ Copyright (c) 1985, 1986, 1987, 1988 by Stanford University. All rights reserve
(DEFINEQ
(MAKEHPGL
[LAMBDA (FILE PFILE FONTS HEADING TABS) (* cdl "12-Jun-85 11:22")
(TEXTTOIMAGEFILE FILE PFILE 'HPGL FONTS HEADING TABS])
(OPENHPGLSTREAM
[LAMBDA (FILE OPTIONS) (* ; "Edited 8-Sep-87 08:50 by cdl")
[LAMBDA (FILE OPTIONS) (* ; "Edited 29-Jan-2026 21:10 by rmk")
(* ; "Edited 28-Jan-2026 01:00 by rmk")
(* ; "Edited 8-Sep-87 08:50 by cdl")
(* DECLARATIONS%: (RECORD PAIR
 (KEY VALUE)))
 (KEY VALUE)))
(LET (HPGLSTREAM POSITION (STREAM (OPENSTREAM FILE 'OUTPUT))
(SCALE (create POSITION
XCOORD _ SCREENWIDTH
YCOORD _ SCREENHEIGHT)))
(if (AND (SETQ POSITION (LISTGET OPTIONS 'SCALE))
(POSITIONP POSITION))
(POSITIONP POSITION))
then (SETQ SCALE POSITION))
(SETQ HPGLSTREAM (create STREAM
IMAGEOPS _ \HPGLIMAGEOPS
IMAGEDATA _ (create PLOTTERDATA
PD.STREAM _ STREAM
PD.SCALE _ SCALE
PD.RIGHTMARGIN _ (with POSITION SCALE XCOORD)
)
PD.RIGHTMARGIN _ (with POSITION SCALE XCOORD))
OUTCHARFN _ (FUNCTION \OUTCHAR.HPGL)
CBUFPTR _ NIL
CBUFSIZE _ 0
DEVICE _ \NULLFDEV using STREAM))
(with STREAM STREAM (SETQ LINELENGTH MAX.SMALLP))
(with POSITION SCALE
(printout STREAM "DF" !; "SC" "0" !, XCOORD !, "0" !, YCOORD !; "DT" !!; !;))
(printout STREAM "DF" !; "SC" "0" !, XCOORD !, "0" !, YCOORD !; "DT" !!; !;))
[bind ENTRY for PAIR on OPTIONS by (CDDR PAIR)
do (with PAIR PAIR (if (SETQ ENTRY (ASSOC KEY HPGL.OPTIONS))
then (printout STREAM (CDR ENTRY)
VALUE !;]
then (printout STREAM (CDR ENTRY)
VALUE !;]
(DSPFONT DEFAULTFONT HPGLSTREAM)
(DSPRESET HPGLSTREAM)
HPGLSTREAM])
@@ -513,37 +500,38 @@ Copyright (c) 1985, 1986, 1987, 1988 by Stanford University. All rights reserve
T])
(\FONTCREATE.HPGL
[LAMBDA (FAMILY SIZE FACE ROTATION) (* ; "Edited 4-Sep-87 15:13 by cdl")
(if (ASSOC FAMILY HPGL.FONTS)
then (LET ((WIDTHSBLOCK (\CREATECSINFOELEMENT))
(FONTDESCRIPTOR (create FONTDESCRIPTOR
FONTDEVICE _ 'HPGL
FONTFAMILY _ FAMILY
FONTSIZE _ SIZE
FONTFACE _ FACE
ROTATION _ ROTATION
\SFHeight _ SIZE
\SFAscent _ SIZE
\SFDescent _ 0)))
(bind (WIDTH _ (FIX (QUOTIENT (TIMES 3 SIZE)
4))) for N from 0 to 254
do (\FSETWIDTH WIDTHSBLOCK N WIDTH))
(with FONTDESCRIPTOR FONTDESCRIPTOR
(\SETCHARSETINFO FONTCHARSETVECTOR 0
(create CHARSETINFO
WIDTHS _ WIDTHSBLOCK
IMAGEWIDTHS _ WIDTHSBLOCK
CHARSETASCENT _ SIZE
CHARSETDESCENT _ 0)))
FONTDESCRIPTOR)
else (FONTCREATE (CAAR HPGL.FONTS)
SIZE FACE ROTATION 'HPGL])
[LAMBDA (FONTSPEC) (* ; "Edited 28-Jan-2026 00:58 by rmk")
(* ; "Edited 4-Sep-87 15:13 by cdl")
(if (ASSOC (fetch (FONTSPEC FSFAMILY) of FONTSPEC)
HPGL.FONTS)
then (LET* ((SIZE (fetch (FONTSPEC FSSIZE) of FONTSPEC))
(WIDTHSBLOCK (\CREATECSINFOELEMENT))
(FONTDESCRIPTOR (create FONTDESCRIPTOR
FONTDEVICE _ 'HPGL
FONTFAMILY _ (fetch (FONTSPEC FSFAMILY) of FONTSPEC)
FONTSIZE _ SIZE
FONTFACE _ (fetch (FONTSPEC FSFACE) of FONTSPEC)
ROTATION _ (fetch (FONTSPEC FSROTATION) of FONTSPEC)
\SFHeight _ SIZE
\SFAscent _ SIZE
\SFDescent _ 0)))
(for N (WIDTH _ (FIX (QUOTIENT (TIMES 3 SIZE)
4))) from 0 to \MAXTHINCHAR
do (\FSETWIDTH WIDTHSBLOCK N WIDTH))
(\SETCHARSETINFO FONTDESCRIPTOR 0
(create CHARSETINFO
WIDTHS _ WIDTHSBLOCK
IMAGEWIDTHS _ WIDTHSBLOCK
CHARSETASCENT _ SIZE
CHARSETDESCENT _ 0))
FONTDESCRIPTOR)
else (FONTCREATE (create FONTSPEC using FONTSPEC FSFAMILY _ (CAAR HPGL.FONTS])
(\INIT.HPGL
[LAMBDA NIL (* ; "Edited 20-Jul-88 17:04 by cdl")
[LAMBDA NIL (* ; "Edited 20-Jul-88 17:04 by cdl")
(* DECLARATIONS%: (RECORD CLASS
 (FONTCLASSNAME PRETTYFONT# DISPLAYFD
 PRESSFD INTERPRESSFD . OTHERFDS)))
 (FONTCLASSNAME PRETTYFONT# DISPLAYFD
 PRESSFD INTERPRESSFD . OTHERFDS)))
(DECLARE (GLOBALVARS FONTDEFS FONTNAME))
(SETQ \NULLFDEV (create FDEV
CLOSEFILE _ (FUNCTION NILL)))
@@ -579,16 +567,14 @@ Copyright (c) 1985, 1986, 1987, 1988 by Stanford University. All rights reserve
IMROTATE _ (FUNCTION \ROTATE.HPGL)))
(for FONTSET in FONTDEFS
do [for CLASS in (CDR (ASSOC 'FONTPROFILE (CDR FONTSET)))
unless (with CLASS CLASS (OR (NULL DISPLAYFD)
(NULL INTERPRESSFD)
(ASSOC 'HPGL OTHERFDS)))
do (with CLASS CLASS (push
OTHERFDS
(LIST 'HPGL (CONS 'STANDARD
(CDR (if (LISTP DISPLAYFD)
then DISPLAYFD
else (FONTUNPARSE
DISPLAYFD]
unless (with CLASS CLASS (OR (NULL DISPLAYFD)
(NULL INTERPRESSFD)
(ASSOC 'HPGL OTHERFDS)))
do (with CLASS CLASS (push OTHERFDS (LIST 'HPGL (CONS 'STANDARD
(CDR (if (LISTP DISPLAYFD)
then DISPLAYFD
else (FONTUNPARSE DISPLAYFD
]
finally (FONTSET FONTNAME])
(\OUTCHAR.HPGL
@@ -603,10 +589,13 @@ Copyright (c) 1985, 1986, 1987, 1988 by Stanford University. All rights reserve
(push PD.TEXT CHARCODE])
(\SEARCH.HPGL.FONTS
[LAMBDA (FAMILY SIZE FACE ROTATION DEVICE) (* cdl " 1-May-85 09:34")
(if (EQ DEVICE 'HPGL)
then (if (FASSOC FAMILY HPGL.FONTS)
then (LIST (LIST FAMILY SIZE FACE ROTATION DEVICE])
[LAMBDA (FONTSPEC) (* ; "Edited 28-Jan-2026 00:53 by rmk")
(* cdl " 1-May-85 09:34")
(CL:WHEN (AND (EQ (fetch (FONTSPEC FSDEVICE) of FONTSPEC)
'HPGL)
(FASSOC (fetch (FONTSPEC FSFAMILY) of FONTSPEC)
HPGL.FONTS)) (* ; "Make a copy?")
(create FONTSPEC using FONTSPEC))])
(\FILL.HPGL
[LAMBDA (STREAM TEXTURE) (* ; "Edited 8-Dec-87 16:56 by cdl")
@@ -679,41 +668,43 @@ Copyright (c) 1985, 1986, 1987, 1988 by Stanford University. All rights reserve
(* * etc.)
(RPAQQ HPGL.FONTS ((STANDARD . 0)
(9825 . 1)
(FRENCH . 2)
(SCANDINAVIAN . 3)
(SPANISH . 4)
(JISASCII . 6)
(ROMAN . 7)
(KATAKANA . 8)
(IRV . 9)
(SWEDISH . 30)
(SWEDISH2 . 31)
(NORWAY . 32)
(GERMAN . 33)
(FRENCH2 . 34)
(BRITISH . 35)
(ITALIAN . 36)
(SPANISH2 . 37)
(PORTUGUESE . 38)
(NORWAY2 . 39)))
(RPAQQ HPGL.FONTS
((STANDARD . 0)
(9825 . 1)
(FRENCH . 2)
(SCANDINAVIAN . 3)
(SPANISH . 4)
(JISASCII . 6)
(ROMAN . 7)
(KATAKANA . 8)
(IRV . 9)
(SWEDISH . 30)
(SWEDISH2 . 31)
(NORWAY . 32)
(GERMAN . 33)
(FRENCH2 . 34)
(BRITISH . 35)
(ITALIAN . 36)
(SPANISH2 . 37)
(PORTUGUESE . 38)
(NORWAY2 . 39)))
(RPAQQ HPGL.OPTIONS ((ROTATE . "RO")
(VELOCITY . "VS")
(PAPER . "PS")
(TERMINATOR . "DT")))
(VELOCITY . "VS")
(PAPER . "PS")
(TERMINATOR . "DT")))
(RPAQQ HPGL.FONT.EXPANSIONS ((REGULAR . 200.0)
(COMPRESSED . 100.0)
(EXPANDED . 400.0)))
(COMPRESSED . 100.0)
(EXPANDED . 400.0)))
(RPAQQ HPGL.DASHING ((1 1 49)
(2 25)
(3 35 15)
(4 39 5 1 5)
(5 35 5 5 5)
(6 25 5 5 5 5 5)))
(RPAQQ HPGL.DASHING
((1 1 49)
(2 25)
(3 35 15)
(4 39 5 1 5)
(5 35 5 5 5)
(6 25 5 5 5 5 5)))
(RPAQQ SKETCHINCOLORFLG T)
@@ -742,63 +733,55 @@ Copyright (c) 1985, 1986, 1987, 1988 by Stanford University. All rights reserve
(FILESLOAD UTILISOPRS)
(ADDTOVAR PRINTOUTMACROS [!, (LAMBDA (COMS)
(CONS '(PRIN1 HPGL.SEPARATOR NIL)
(CDR COMS]
[!; (LAMBDA (COMS)
(CONS '(PRIN1 HPGL.TERMINATOR NIL)
(CDR COMS]
[!!; (LAMBDA (COMS)
(CONS '(PRIN1 HPGL.TEXT.TERMINATOR NIL)
(CDR COMS])
(ADDTOVAR PRINTOUTMACROS
[!, (LAMBDA (COMS)
(CONS '(PRIN1 HPGL.SEPARATOR NIL)
(CDR COMS]
[!; (LAMBDA (COMS)
(CONS '(PRIN1 HPGL.TERMINATOR NIL)
(CDR COMS]
[!!; (LAMBDA (COMS)
(CONS '(PRIN1 HPGL.TEXT.TERMINATOR NIL)
(CDR COMS])
(DECLARE%: EVAL@COMPILE
(RECORD PLOTTERDATA (PD.STREAM PD.POSITION PD.FONT PD.TEXT PD.COLOR PD.SCALE PD.LEFTMARGIN
PD.RIGHTMARGIN PD.DASHING PD.ROTATION)
PD.POSITION _ (create POSITION)
PD.COLOR _ 0 PD.LEFTMARGIN _ 0 PD.ROTATION _ 0)
PD.RIGHTMARGIN PD.DASHING PD.ROTATION)
PD.POSITION _ (create POSITION)
PD.COLOR _ 0 PD.LEFTMARGIN _ 0 PD.ROTATION _ 0)
)
)
(ADDTOVAR PRINTFILETYPES (HPGL (EXTENSION (HPGL PLOT))
(BITMAPFILE (HARDCOPYW.HPGL FILE BITMAP SCALEFACTOR REGION ROTATION
TITLE))))
(ADDTOVAR PRINTERTYPES ((PLOTTER HPGL)
(CANPRINT (HPGL))
(STATUS TRUE)
(BITMAPFILE (HARDCOPYW.HPGL FILE BITMAP SCALEFACTOR REGION ROTATION TITLE
))
(PROPERTIES NILL)))
(ADDTOVAR PRINTFILETYPES [HPGL (EXTENSION (HPGL PLOT))
(CONVERSION (TEXT MAKEHPGL TEDIT
(LAMBDA (FILE PFILE)
(SETQ FILE (OPENTEXTSTREAM FILE))
(TEDIT.FORMAT.HARDCOPY FILE PFILE T NIL
NIL NIL 'HPGL)
(CLOSEF? FILE)
PFILE])
(CANPRINT (HPGL))
(STATUS TRUE)
(PROPERTIES NILL)))
(ADDTOVAR IMAGESTREAMTYPES (HPGL (OPENSTREAM OPENHPGLSTREAM)
(FONTCREATE \FONTCREATE.HPGL)
(FONTSAVAILABLE \SEARCH.HPGL.FONTS)
(CREATECHARSET NILL)))
(FONTCREATE \FONTCREATE.HPGL)
(FONTSAVAILABLE \SEARCH.HPGL.FONTS)
(CREATECHARSET NILL)))
[if (FGETD (FUNCTION SK.DASHING.LABEL))
then (for ENTRY in HPGL.DASHING do (push SK.DASHING.PATTERNS
(LIST (SK.DASHING.LABEL (CDR ENTRY))
(CDR ENTRY]
then (for ENTRY in HPGL.DASHING do (push SK.DASHING.PATTERNS (LIST (SK.DASHING.LABEL (CDR ENTRY))
(CDR ENTRY]
(\INIT.HPGL)
(PUTPROPS HPGL COPYRIGHT ("Stanford University" 1985 1986 1987 1988))
(DECLARE%: DONTCOPY
(FILEMAP (NIL (3583 6000 (MAKEHPGL 3593 . 3756) (OPENHPGLSTREAM 3758 . 5715) (HARDCOPYW.HPGL 5717 .
5998)) (6031 29802 (\BITBLT.HPGL 6041 . 8018) (\BLTSHADE.HPGL 8020 . 9173) (\CLOSEFN.HPGL 9175 . 9503)
(\COLOR.HPGL 9505 . 11429) (\DRAWARC.HPGL 11431 . 12940) (\DRAWCIRCLE.HPGL 12942 . 14285) (
\DRAWCURVE.HPGL 14287 . 15076) (\DRAWLINE.HPGL 15078 . 17236) (\DRAWPOLYGON.HPGL 17238 . 18904) (
\FILLCIRCLE.HPGL 18906 . 19622) (\FONT.HPGL 19624 . 23275) (\LEFTMARGIN.HPGL 23277 . 23578) (
\LINEFEED.HPGL 23580 . 23823) (\MOVETO.HPGL 23825 . 24303) (\RESET.HPGL 24305 . 24674) (
\RIGHTMARGIN.HPGL 24676 . 24980) (\ROTATE.HPGL 24982 . 25356) (\SCALEDBITBLT.HPGL 25358 . 27641) (
\STRINGWIDTH.HPGL 27643 . 27826) (\CLIPPINGREGION.HPGL 27828 . 28133) (\TERPRI.HPGL 28135 . 28492) (
\XPOSITION.HPGL 28494 . 29156) (\YPOSITION.HPGL 29158 . 29800)) (29834 40881 (\DUMPSTRING.HPGL 29844
. 30316) (\FONTCREATE.HPGL 30318 . 31926) (\INIT.HPGL 31928 . 35493) (\OUTCHAR.HPGL 35495 . 36108) (
\SEARCH.HPGL.FONTS 36110 . 36383) (\FILL.HPGL 36385 . 39041) (\DASHING.HPGL 39043 . 40879)))))
(FILEMAP (NIL (2696 5094 (OPENHPGLSTREAM 2706 . 4809) (HARDCOPYW.HPGL 4811 . 5092)) (5125 28896 (
\BITBLT.HPGL 5135 . 7112) (\BLTSHADE.HPGL 7114 . 8267) (\CLOSEFN.HPGL 8269 . 8597) (\COLOR.HPGL 8599
. 10523) (\DRAWARC.HPGL 10525 . 12034) (\DRAWCIRCLE.HPGL 12036 . 13379) (\DRAWCURVE.HPGL 13381 .
14170) (\DRAWLINE.HPGL 14172 . 16330) (\DRAWPOLYGON.HPGL 16332 . 17998) (\FILLCIRCLE.HPGL 18000 .
18716) (\FONT.HPGL 18718 . 22369) (\LEFTMARGIN.HPGL 22371 . 22672) (\LINEFEED.HPGL 22674 . 22917) (
\MOVETO.HPGL 22919 . 23397) (\RESET.HPGL 23399 . 23768) (\RIGHTMARGIN.HPGL 23770 . 24074) (
\ROTATE.HPGL 24076 . 24450) (\SCALEDBITBLT.HPGL 24452 . 26735) (\STRINGWIDTH.HPGL 26737 . 26920) (
\CLIPPINGREGION.HPGL 26922 . 27227) (\TERPRI.HPGL 27229 . 27586) (\XPOSITION.HPGL 27588 . 28250) (
\YPOSITION.HPGL 28252 . 28894)) (28928 40323 (\DUMPSTRING.HPGL 28938 . 29410) (\FONTCREATE.HPGL 29412
. 31221) (\INIT.HPGL 31223 . 34674) (\OUTCHAR.HPGL 34676 . 35289) (\SEARCH.HPGL.FONTS 35291 . 35825)
(\FILL.HPGL 35827 . 38483) (\DASHING.HPGL 38485 . 40321)))))
STOP

Binary file not shown.

View File

@@ -1,12 +1,12 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED "24-Apr-2025 08:43:01" {WMEDLEY}<sources>EXTERNALFORMAT.;91 38905
(FILECREATED "29-Jan-2026 21:09:02" {WMEDLEY}<sources>EXTERNALFORMAT.;92 39722
:EDIT-BY rmk
:CHANGES-TO (VARS EXTERNALFORMATCOMS)
:CHANGES-TO (FNS \EXTERNALFORMAT)
:PREVIOUS-DATE "19-Mar-2024 18:24:39" {WMEDLEY}<sources>EXTERNALFORMAT.;90)
:PREVIOUS-DATE "24-Apr-2025 08:43:01" {WMEDLEY}<sources>EXTERNALFORMAT.;91)
(PRETTYCOMPRINT EXTERNALFORMATCOMS)
@@ -131,7 +131,11 @@
(DEFINEQ
(\EXTERNALFORMAT
[LAMBDA (STREAM NEWFORMAT/NAME)
[LAMBDA (STREAM NEWFORMAT/NAME CREATING) (* ; "Edited 29-Jan-2026 21:05 by rmk")
(* ;; "CREATING is T from STREAM declaration, tries to not override the fields that are specified in the create expression")
(* ;; "Edited 29-Jan-2026 21:01 by rmk")
(* ;; "Edited 2-Jul-2022 19:17 by rmk: Fast case: NEWFORMAT/NAME is an external format")
@@ -177,14 +181,20 @@
(CL:WHEN (ffetch (EXTERNALFORMAT EOLVALID) of EXTFORMAT)
(freplace (STREAM EOLCONVENTION) of STREAM with (ffetch (EXTERNALFORMAT EOL)
of EXTFORMAT)))
(freplace (STREAM OUTCHARFN) of STREAM with (ffetch (EXTERNALFORMAT OUTCHARFN)
of EXTFORMAT))
(freplace (STREAM INCCODEFN) of STREAM with (ffetch (EXTERNALFORMAT INCCODEFN)
of EXTFORMAT))
(freplace (STREAM PEEKCCODEFN) of STREAM with (ffetch (EXTERNALFORMAT PEEKCCODEFN)
of EXTFORMAT))
(freplace (STREAM BACKCCODEFN) of STREAM with (ffetch (EXTERNALFORMAT BACKCCODEFN)
of EXTFORMAT)))])
(CL:UNLESS (AND CREATING (ffetch (STREAM OUTCHARFN) of STREAM))
(freplace (STREAM OUTCHARFN) of STREAM with (ffetch (EXTERNALFORMAT OUTCHARFN)
of EXTFORMAT)))
(CL:UNLESS (AND CREATING (ffetch (STREAM INCCODEFN) of STREAM))
(freplace (STREAM INCCODEFN) of STREAM with (ffetch (EXTERNALFORMAT INCCODEFN)
of EXTFORMAT)))
(CL:UNLESS (AND CREATING (ffetch (STREAM PEEKCCODEFN) of STREAM))
(freplace (STREAM PEEKCCODEFN) of STREAM with (ffetch (EXTERNALFORMAT
PEEKCCODEFN)
of EXTFORMAT)))
(CL:UNLESS (AND CREATING (ffetch (STREAM BACKCCODEFN) of STREAM))
(freplace (STREAM BACKCCODEFN) of STREAM with (ffetch (EXTERNALFORMAT
BACKCCODEFN)
of EXTFORMAT))))])
(ffetch (EXTERNALFORMAT NAME) of (fetch (STREAM EXTERNALFORMAT) of STREAM])
(MAKE-EXTERNALFORMAT
@@ -737,13 +747,13 @@
(\CREATE.THROUGH.EXTERNALFORMAT)
)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (6710 13543 (\EXTERNALFORMAT 6720 . 10498) (MAKE-EXTERNALFORMAT 10500 . 13070) (
\EXTERNALFORMAT.DEFPRINT 13072 . 13541)) (13544 16585 (\INSTALL.EXTERNALFORMAT 13554 . 15003) (
\REMOVE.EXTERNALFORMAT 15005 . 15836) (FIND-FORMAT 15838 . 16583)) (16586 16998 (SYSTEM-EXTERNALFORMAT
16596 . 16996)) (17347 33324 (\OUTCHAR 17357 . 18574) (\INCCODE 18576 . 19729) (\BACKCCODE 19731 .
21410) (\BACKCCODE.EOLC 21412 . 23602) (\PEEKCCODE 23604 . 23929) (\PEEKCCODE.EOLC 23931 . 24310) (
\INCCODE.EOLC 24312 . 26111) (\FORMATBYTESTREAM 26113 . 28557) (\FORMATBYTESTRING 28559 . 30259) (
\CHECKEOLC.CRLF 30261 . 33322)) (34606 36842 (\NULLDEVICE 34616 . 36518) (\NULL.OPENFILE 36520 . 36840
)) (36982 38809 (\CREATE.THROUGH.EXTERNALFORMAT 36992 . 37778) (\THROUGHIN 37780 . 38200) (
\THROUGHBACKCCODE 38202 . 38469) (\THROUGHOUTCHARFN 38471 . 38807)))))
(FILEMAP (NIL (6706 14360 (\EXTERNALFORMAT 6716 . 11315) (MAKE-EXTERNALFORMAT 11317 . 13887) (
\EXTERNALFORMAT.DEFPRINT 13889 . 14358)) (14361 17402 (\INSTALL.EXTERNALFORMAT 14371 . 15820) (
\REMOVE.EXTERNALFORMAT 15822 . 16653) (FIND-FORMAT 16655 . 17400)) (17403 17815 (SYSTEM-EXTERNALFORMAT
17413 . 17813)) (18164 34141 (\OUTCHAR 18174 . 19391) (\INCCODE 19393 . 20546) (\BACKCCODE 20548 .
22227) (\BACKCCODE.EOLC 22229 . 24419) (\PEEKCCODE 24421 . 24746) (\PEEKCCODE.EOLC 24748 . 25127) (
\INCCODE.EOLC 25129 . 26928) (\FORMATBYTESTREAM 26930 . 29374) (\FORMATBYTESTRING 29376 . 31076) (
\CHECKEOLC.CRLF 31078 . 34139)) (35423 37659 (\NULLDEVICE 35433 . 37335) (\NULL.OPENFILE 37337 . 37657
)) (37799 39626 (\CREATE.THROUGH.EXTERNALFORMAT 37809 . 38595) (\THROUGHIN 38597 . 39017) (
\THROUGHBACKCCODE 39019 . 39286) (\THROUGHOUTCHARFN 39288 . 39624)))))
STOP

Binary file not shown.

View File

@@ -1,14 +1,12 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED "19-Jan-2026 17:17:23" {WMEDLEY}<sources>HARDCOPY.;155 147674
(FILECREATED "29-Jan-2026 10:45:17" {WMEDLEY}<sources>HARDCOPY.;160 149481
:EDIT-BY rmk
:CHANGES-TO (VARS HARDCOPYCOMS)
(FNS TEXT.TO.IMAGEFILE TEXTTOIMAGEFILE VIEWERPRINT PRINTERDEVICE.OPENFN
SEND.FILE.TO.PRINTER)
:CHANGES-TO (FNS PRINTERNAME FIND.PRINTER.FOR.IMAGETYPE PRINTERDEVICE.OPENFN PRINTERTYPE)
:PREVIOUS-DATE "18-Jan-2026 15:20:21" {WMEDLEY}<sources>HARDCOPY.;149)
:PREVIOUS-DATE "27-Jan-2026 23:11:17" {WMEDLEY}<sources>HARDCOPY.;157)
(PRETTYCOMPRINT HARDCOPYCOMS)
@@ -52,11 +50,14 @@
(FNS SCALEREGION)
[COMS (* ;
 "Converting text files to imagestreams")
(GLOBALVARS TEXTDEFAULTPAGEREGION)
[INITVARS (TEXTDEFAULTPAGEREGION (SCALEREGION MICASPERINCH (CREATEREGION 1.1 0.75 7.25
9.75]
(GLOBALVARS TEXTDEFAULTPAGEREGION)
(ALISTS (IMAGESTREAMTYPES TEXT)
(PRINTFILETYPES TEXT))
(FNS TEXT.TO.IMAGEFILE COPY.TEXT.TO.IMAGE TEXTTOIMAGEFILE)
(P (DEFAULT.IMAGETYPE.CONVERSIONS '(TEXT TEXT.TO.IMAGEFILE]
(P (FONTPROFILE.ADDDEVICE 'TEXT)
(DEFAULT.IMAGETYPE.CONVERSIONS '(TEXT TEXT.TO.IMAGEFILE]
(COMS (* ;
 "hack for printers that can't really BLTSHADE")
(FNS \BLTSHADE.GENERICPRINTER))
@@ -369,7 +370,8 @@
(AND STATUSFN (APPLY* STATUSFN PRINTER])
(PRINTERTYPE
[LAMBDA (HOST PREFERRED NODEFAULT) (* ; "Edited 18-Jan-2026 14:47 by rmk")
[LAMBDA (HOST PREFERRED NODEFAULT) (* ; "Edited 28-Jan-2026 23:55 by rmk")
(* ; "Edited 18-Jan-2026 14:47 by rmk")
(* ; "Edited 16-Jan-2026 07:35 by rmk")
(* ; "Edited 17-Dec-2025 00:52 by rmk")
(* ; "Edited 14-Dec-2025 17:53 by rmk")
@@ -378,11 +380,6 @@
(* ; "Edited 19-Sep-2025 10:18 by rmk")
(* ; "Edited 27-Apr-98 16:16 by rmk:")
(* ; "Edited 15-Feb-91 14:14 by gadener")
(* ;;
 "We uppercase before we look at the printer HOSTNAMEP functions--they can handle the casing")
(SETQ HOST (MKATOM HOST))
(COND
((NULL HOST)
DEFAULTPRINTERTYPE)
@@ -424,7 +421,8 @@
DEFAULTPRINTERTYPE])
(PRINTERNAME
[LAMBDA (PRINTER) (* ; "Edited 5-Dec-2025 09:35 by rmk")
[LAMBDA (PRINTER) (* ; "Edited 29-Jan-2026 10:44 by rmk")
(* ; "Edited 5-Dec-2025 09:35 by rmk")
(* ; "Edited 19-Sep-2025 09:59 by rmk")
(* ;;
@@ -432,17 +430,20 @@
(* ;; "Takes a printer-spec (in form (type printer-name) or just printer-name) and returns printer-name. returns nil for null arg.")
(CL:WHEN (LISTP PRINTER)
(SETQ PRINTER (CADR PRINTER)))
(CL:WHEN (PRINTERDEVICEP PRINTER)
[LET (FDEV)
(if (AND (STREAMP PRINTER)
(STREAMPROP PRINTER 'PRINTERNAME))
else (SETQ FDEV (TRUEDEVICE PRINTER))
(if (EQ 'LPT (fetch (FDEV DEVICENAME) of FDEV))
then (CL:UNLESS [EQ '%. (SETQ PRINTER (FILENAMEFIELD PRINTER 'NAME]
PRINTER)
else (fetch (FDEV DEVICENAME) of FDEV])])
(if (LISTP PRINTER)
then (CADR PRINTER)
elseif (LITATOM PRINTER)
then PRINTER
elseif (PRINTERDEVICEP PRINTER)
then (LET (FDEV)
(if (AND (STREAMP PRINTER)
(STREAMPROP PRINTER 'PRINTERNAME))
else (SETQ FDEV (TRUEDEVICE PRINTER))
(if (EQ 'LPT (fetch (FDEV DEVICENAME) of FDEV))
then (CL:UNLESS [EQ '%. (SETQ PRINTER (FILENAMEFIELD PRINTER
'NAME]
PRINTER)
else (fetch (FDEV DEVICENAME) of FDEV])
(PRINTFILETYPE
[LAMBDA (FILE DONTOPEN) (* ; "Edited 24-Dec-2025 20:39 by rmk")
@@ -542,7 +543,8 @@
IMAGESOURCE)))])])
(FIND.PRINTER.FOR.IMAGETYPE
[LAMBDA (IMAGETYPE HOST) (* ; "Edited 12-Jan-2026 23:49 by rmk")
[LAMBDA (IMAGETYPE HOST) (* ; "Edited 29-Jan-2026 10:29 by rmk")
(* ; "Edited 12-Jan-2026 23:49 by rmk")
(* ; "Edited 28-Dec-2025 18:02 by rmk")
(* ; "Edited 23-Dec-2025 10:13 by rmk")
(* ; "Edited 17-Dec-2025 00:59 by rmk")
@@ -559,22 +561,19 @@
(CL:WHEN (SETQ TARGETTYPE (CAN.PRINT.SOMEHOW HOST IMAGETYPE))
(LIST (PRINTERTYPE HOST)
HOST TARGETTYPE))
(PRINTERNAME HOST)
TARGETTYPE))
elseif (for PRINTER in (DEFAULTPRINTERS) when (SETQ TARGETTYPE (CAN.PRINT.SOMEHOW PRINTER
IMAGETYPE T))
do (* ; "Direct?")
(RETURN (LIST (PRINTERTYPE PRINTER)
(CL:IF (LISTP PRINTER)
(CADR PRINTER)
PRINTER)
(PRINTERNAME PRINTER)
TARGETTYPE)))
else (for PRINTER in (DEFAULTPRINTERS) when (SETQ TARGETTYPE (CAN.PRINT.SOMEHOW PRINTER
IMAGETYPE))
do (* ; "Conversion")
(RETURN (LIST (PRINTERTYPE PRINTER)
(CL:IF (LISTP PRINTER)
(CADR PRINTER)
PRINTER)
(PRINTERNAME PRINTER)
TARGETTYPE])
(CAN.PRINT.SOMEHOW
@@ -626,7 +625,8 @@
LPTNAME])
(PRINTERDEVICE.OPENFN
[LAMBDA (LPTNAME ACCESS RECOG PARAMETERS FDEV OLDSTREAM) (* ; "Edited 19-Jan-2026 12:19 by rmk")
[LAMBDA (LPTNAME ACCESS RECOG PARAMETERS FDEV OLDSTREAM) (* ; "Edited 29-Jan-2026 00:13 by rmk")
(* ; "Edited 19-Jan-2026 12:19 by rmk")
(* ; "Edited 16-Jan-2026 23:09 by rmk")
(* ; "Edited 28-Dec-2025 17:44 by rmk")
(* ; "Edited 11-Sep-2025 17:03 by rmk")
@@ -656,14 +656,25 @@
 "The case of foo.local as a printer name with no type")
(SETQ PRINTERNAME PN)
(SETQ IMAGEFILETYPE NIL))
(CL:UNLESS PRINTERNAME (SETQ PRINTERNAME :DEFAULTPRINTER))
(* ;; "Filename is now decoded")
[if IMAGEFILETYPE
[if (AND IMAGEFILETYPE PRINTERNAME)
then (CL:UNLESS (CAN.PRINT.SOMEHOW PRINTERNAME IMAGEFILETYPE)
(* ; "{LPT}P.T")
(ERROR PRINTERNAME (CONCAT "cannot print files of type " IMAGEFILETYPE)))
else (SETQ IMAGEFILETYPE (CAR (PRINTERPROP (PRINTERTYPE PRINTERNAME)
elseif PRINTERNAME
then (* ; "{LPT}P")
[SETQ IMAGEFILETYPE (CAR (PRINTERPROP (PRINTERTYPE PRINTERNAME)
'CANPRINT]
elseif IMAGEFILETYPE
then (* ; "{LPT}.T")
(CL:UNLESS (SETQ PRINTERNAME (FIND.PRINTER.FOR.IMAGETYPE IMAGEFILETYPE))
(ERROR "No printers for " IMAGEFILETYPE " files" (CONCAT
"cannot print files of type "
IMAGEFILETYPE)))
else (SETQ PRINTERNAME :DEFAULTPRINTER) (* ; "Just {LPT}")
(SETQ IMAGEFILETYPE (CAR (PRINTERPROP (PRINTERTYPE PRINTERNAME)
'CANPRINT]
(* ;; "Open as a regular Unix tmp stream... with a funky closefn")
@@ -723,7 +734,8 @@
(fetch (FDEV DEVICENAME) of FDEV))))])
(PRINTERNAME
[LAMBDA (PRINTER) (* ; "Edited 5-Dec-2025 09:35 by rmk")
[LAMBDA (PRINTER) (* ; "Edited 29-Jan-2026 10:44 by rmk")
(* ; "Edited 5-Dec-2025 09:35 by rmk")
(* ; "Edited 19-Sep-2025 09:59 by rmk")
(* ;;
@@ -731,17 +743,20 @@
(* ;; "Takes a printer-spec (in form (type printer-name) or just printer-name) and returns printer-name. returns nil for null arg.")
(CL:WHEN (LISTP PRINTER)
(SETQ PRINTER (CADR PRINTER)))
(CL:WHEN (PRINTERDEVICEP PRINTER)
[LET (FDEV)
(if (AND (STREAMP PRINTER)
(STREAMPROP PRINTER 'PRINTERNAME))
else (SETQ FDEV (TRUEDEVICE PRINTER))
(if (EQ 'LPT (fetch (FDEV DEVICENAME) of FDEV))
then (CL:UNLESS [EQ '%. (SETQ PRINTER (FILENAMEFIELD PRINTER 'NAME]
PRINTER)
else (fetch (FDEV DEVICENAME) of FDEV])])
(if (LISTP PRINTER)
then (CADR PRINTER)
elseif (LITATOM PRINTER)
then PRINTER
elseif (PRINTERDEVICEP PRINTER)
then (LET (FDEV)
(if (AND (STREAMP PRINTER)
(STREAMPROP PRINTER 'PRINTERNAME))
else (SETQ FDEV (TRUEDEVICE PRINTER))
(if (EQ 'LPT (fetch (FDEV DEVICENAME) of FDEV))
then (CL:UNLESS [EQ '%. (SETQ PRINTER (FILENAMEFIELD PRINTER
'NAME]
PRINTER)
else (fetch (FDEV DEVICENAME) of FDEV])
)
(DECLARE%: DONTEVAL@LOAD DOCOPY
@@ -839,12 +854,18 @@
(* ; "Converting text files to imagestreams")
(RPAQ? TEXTDEFAULTPAGEREGION (SCALEREGION MICASPERINCH (CREATEREGION 1.1 0.75 7.25 9.75)))
(DECLARE%: DOEVAL@COMPILE DONTCOPY
(GLOBALVARS TEXTDEFAULTPAGEREGION)
)
(RPAQ? TEXTDEFAULTPAGEREGION (SCALEREGION MICASPERINCH (CREATEREGION 1.1 0.75 7.25 9.75)))
(ADDTOVAR IMAGESTREAMTYPES (TEXT (FONTCREATE \CREATEDISPLAYFONT)
(CREATECHARSET \CREATECHARSET.DISPLAY)))
(ADDTOVAR PRINTFILETYPES (TEXT (TEST LISPSOURCEFILEP)
(EXTENSION (TXT TEXT))))
(DEFINEQ
(TEXT.TO.IMAGEFILE
@@ -970,6 +991,8 @@
(TEDIT.TO.IMAGEFILE FILE IMAGEFILE IMAGETYPE OPTIONS])
)
(FONTPROFILE.ADDDEVICE 'TEXT)
(DEFAULT.IMAGETYPE.CONVERSIONS '(TEXT TEXT.TO.IMAGEFILE))
@@ -2330,35 +2353,35 @@
(ADDTOVAR LAMA )
)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (6606 19331 (MakeMenuOfPrinters 6616 . 8105) (PRINTERS.WHENSELECTEDFN 8107 . 10038) (
MakeMenuOfImageTypes 10040 . 10859) (GetNewPrinterFromUser 10861 . 11417) (PopUpWindowAndGetAtom 11419
. 12870) (PopUpWindowAndGetList 12872 . 14442) (NewPrinter 14444 . 16058) (GetPrinterName 16060 .
16348) (GetImageFile 16350 . 19329)) (19386 37306 (HARDCOPYW 19396 . 20869) (LISTFILES1 20871 . 21048)
(PRINTERPROP 21050 . 21300) (PRINTERSTATUS 21302 . 21577) (PRINTERTYPE 21579 . 24855) (PRINTERNAME
24857 . 25943) (PRINTFILETYPE 25945 . 26318) (PRINTERTYPEP 26320 . 26545) (SEND.FILE.TO.PRINTER 26547
. 32796) (FIND.PRINTER.FOR.IMAGETYPE 32798 . 35503) (CAN.PRINT.SOMEHOW 35505 . 36877) (
CAN.PRINT.DIRECTLY 36879 . 37304)) (37307 45651 (PRINTERDEVICE 37317 . 38926) (PRINTERDEVICE.OPENFN
38928 . 41914) (PRINTERDEVICE.CLOSEFN 41916 . 43635) (PRINTERDEVICEP 43637 . 44561) (PRINTERNAME 44563
. 45649)) (45713 48137 (DEFAULTPRINTERS 45723 . 48135)) (48536 49833 (VIEWERPRINT 48546 . 49831)) (
49951 50509 (SCALEREGION 49961 . 50507)) (50733 58555 (TEXT.TO.IMAGEFILE 50743 . 51956) (
COPY.TEXT.TO.IMAGE 51958 . 58306) (TEXTTOIMAGEFILE 58308 . 58553)) (58676 60419 (
\BLTSHADE.GENERICPRINTER 58686 . 60417)) (60486 97652 (MAKEHARDCOPYSTREAM 60496 . 62212) (
UNMAKEHARDCOPYSTREAM 62214 . 63144) (HARDCOPYSTREAMTYPE 63146 . 63553) (\CHARWIDTH.HDCPYDISPLAY 63555
. 64375) (\DSPFONT.HDCPYDISPLAY 64377 . 67172) (\DSPRIGHTMARGIN.HDCPYDISPLAY 67174 . 68029) (
\DSPXPOSITION.HDCPYDISPLAY 68031 . 68406) (\DSPYPOSITION.HDCPYDISPLAY 68408 . 68783) (
\STRINGWIDTH.HDCPYDISPLAY 68785 . 69740) (\STRINGWIDTH.HCPYDISPLAYAUX 69742 . 75082) (\HDCPYBLTCHAR
75084 . 79981) (\HDCPYDISPLAY.FIX.XPOS 79983 . 80740) (\HDCPYDISPLAY.FIX.YPOS 80742 . 81483) (
\HDCPYDISPLAYINIT 81485 . 83175) (\HDCPYDSPPRINTCHAR 83177 . 89090) (\SLOWHDCPYBLTCHAR 89092 . 95708)
(\CHANGECHARSET.HDCPYDISPLAY 95710 . 97650)) (97967 147518 (MAKEHARDCOPYMODESTREAM 97977 . 100698) (
UNMAKEHARDCOPYMODESTREAM 100700 . 102290) (\HCPYDISPLAYIMAGEOPS 102292 . 105112) (\BLTSHADE.HCPYMODE
105114 . 105780) (\BITBLT.HCPYMODE 105782 . 106530) (\BRUSHCONVERT.HCPYMODE 106532 . 107081) (
\CHANGECHARSET.HCPYMODE 107083 . 110345) (\DASHINGCONVERT.HCPYMODE 110347 . 110688) (
\CHARWIDTH.HCPYMODE 110690 . 111127) (\DRAWLINE.HCPYMODE 111129 . 111658) (\DRAWCURVE.HCPYMODE 111660
. 112247) (\DRAWCIRCLE.HCPYMODE 112249 . 112734) (\DRAWELLIPSE.HCPYMODE 112736 . 113420) (
\DSPFONT.HCPYMODE 113422 . 116106) (\DSPLEFTMARGIN.HCPYMODE 116108 . 116850) (\DSPLINEFEED.HCPYMODE
116852 . 117485) (\DSPRIGHTMARGIN.HCPYMODE 117487 . 118555) (\DSPSPACEFACTOR.HCPYMODE 118557 . 119332)
(\DSPXPOSITION.HCPYMODE 119334 . 120352) (\DSPYPOSITION.HCPYMODE 120354 . 121004) (\MOVETO.HCPYMODE
121006 . 121220) (\FONTCREATE.HCPYMODE 121222 . 123179) (\CREATECHARSET.HCPYMODE 123181 . 124904) (
\STRINGWIDTH.HCPYMODE 124906 . 125701) (\HCPYMODEBLTCHAR 125703 . 131453) (\HCPYMODEDSPPRINTCHAR
131455 . 137389) (\SLOWHCPYMODEBLTCHAR 137391 . 144020) (\SFFixY.HCPYMODE 144022 . 147516)))))
(FILEMAP (NIL (6665 19390 (MakeMenuOfPrinters 6675 . 8164) (PRINTERS.WHENSELECTEDFN 8166 . 10097) (
MakeMenuOfImageTypes 10099 . 10918) (GetNewPrinterFromUser 10920 . 11476) (PopUpWindowAndGetAtom 11478
. 12929) (PopUpWindowAndGetList 12931 . 14501) (NewPrinter 14503 . 16117) (GetPrinterName 16119 .
16407) (GetImageFile 16409 . 19388)) (19445 37555 (HARDCOPYW 19455 . 20928) (LISTFILES1 20930 . 21107)
(PRINTERPROP 21109 . 21359) (PRINTERSTATUS 21361 . 21636) (PRINTERTYPE 21638 . 24874) (PRINTERNAME
24876 . 26243) (PRINTFILETYPE 26245 . 26618) (PRINTERTYPEP 26620 . 26845) (SEND.FILE.TO.PRINTER 26847
. 33096) (FIND.PRINTER.FOR.IMAGETYPE 33098 . 35752) (CAN.PRINT.SOMEHOW 35754 . 37126) (
CAN.PRINT.DIRECTLY 37128 . 37553)) (37556 47168 (PRINTERDEVICE 37566 . 39175) (PRINTERDEVICE.OPENFN
39177 . 43150) (PRINTERDEVICE.CLOSEFN 43152 . 44871) (PRINTERDEVICEP 44873 . 45797) (PRINTERNAME 45799
. 47166)) (47230 49654 (DEFAULTPRINTERS 47240 . 49652)) (50053 51350 (VIEWERPRINT 50063 . 51348)) (
51468 52026 (SCALEREGION 51478 . 52024)) (52509 60331 (TEXT.TO.IMAGEFILE 52519 . 53732) (
COPY.TEXT.TO.IMAGE 53734 . 60082) (TEXTTOIMAGEFILE 60084 . 60329)) (60483 62226 (
\BLTSHADE.GENERICPRINTER 60493 . 62224)) (62293 99459 (MAKEHARDCOPYSTREAM 62303 . 64019) (
UNMAKEHARDCOPYSTREAM 64021 . 64951) (HARDCOPYSTREAMTYPE 64953 . 65360) (\CHARWIDTH.HDCPYDISPLAY 65362
. 66182) (\DSPFONT.HDCPYDISPLAY 66184 . 68979) (\DSPRIGHTMARGIN.HDCPYDISPLAY 68981 . 69836) (
\DSPXPOSITION.HDCPYDISPLAY 69838 . 70213) (\DSPYPOSITION.HDCPYDISPLAY 70215 . 70590) (
\STRINGWIDTH.HDCPYDISPLAY 70592 . 71547) (\STRINGWIDTH.HCPYDISPLAYAUX 71549 . 76889) (\HDCPYBLTCHAR
76891 . 81788) (\HDCPYDISPLAY.FIX.XPOS 81790 . 82547) (\HDCPYDISPLAY.FIX.YPOS 82549 . 83290) (
\HDCPYDISPLAYINIT 83292 . 84982) (\HDCPYDSPPRINTCHAR 84984 . 90897) (\SLOWHDCPYBLTCHAR 90899 . 97515)
(\CHANGECHARSET.HDCPYDISPLAY 97517 . 99457)) (99774 149325 (MAKEHARDCOPYMODESTREAM 99784 . 102505) (
UNMAKEHARDCOPYMODESTREAM 102507 . 104097) (\HCPYDISPLAYIMAGEOPS 104099 . 106919) (\BLTSHADE.HCPYMODE
106921 . 107587) (\BITBLT.HCPYMODE 107589 . 108337) (\BRUSHCONVERT.HCPYMODE 108339 . 108888) (
\CHANGECHARSET.HCPYMODE 108890 . 112152) (\DASHINGCONVERT.HCPYMODE 112154 . 112495) (
\CHARWIDTH.HCPYMODE 112497 . 112934) (\DRAWLINE.HCPYMODE 112936 . 113465) (\DRAWCURVE.HCPYMODE 113467
. 114054) (\DRAWCIRCLE.HCPYMODE 114056 . 114541) (\DRAWELLIPSE.HCPYMODE 114543 . 115227) (
\DSPFONT.HCPYMODE 115229 . 117913) (\DSPLEFTMARGIN.HCPYMODE 117915 . 118657) (\DSPLINEFEED.HCPYMODE
118659 . 119292) (\DSPRIGHTMARGIN.HCPYMODE 119294 . 120362) (\DSPSPACEFACTOR.HCPYMODE 120364 . 121139)
(\DSPXPOSITION.HCPYMODE 121141 . 122159) (\DSPYPOSITION.HCPYMODE 122161 . 122811) (\MOVETO.HCPYMODE
122813 . 123027) (\FONTCREATE.HCPYMODE 123029 . 124986) (\CREATECHARSET.HCPYMODE 124988 . 126711) (
\STRINGWIDTH.HCPYMODE 126713 . 127508) (\HCPYMODEBLTCHAR 127510 . 133260) (\HCPYMODEDSPPRINTCHAR
133262 . 139196) (\SLOWHCPYMODEBLTCHAR 139198 . 145827) (\SFFixY.HCPYMODE 145829 . 149323)))))
STOP

Binary file not shown.

View File

@@ -1,12 +1,12 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED "19-Jan-2026 14:08:55" {WMEDLEY}<sources>IMAGEIO.;51 99943
(FILECREATED "29-Jan-2026 08:48:22" {WMEDLEY}<sources>IMAGEIO.;60 100411
:EDIT-BY rmk
:CHANGES-TO (FNS IMAGESTREAMTYPE)
:CHANGES-TO (VARS IMAGEIOCOMS)
:PREVIOUS-DATE "18-Jan-2026 15:04:58" {WMEDLEY}<sources>IMAGEIO.;50)
:PREVIOUS-DATE "29-Jan-2026 00:29:52" {WMEDLEY}<sources>IMAGEIO.;57)
(PRETTYCOMPRINT IMAGEIOCOMS)
@@ -19,17 +19,18 @@
(FNS CONVERT.TO.IMAGEFILE)
(FNS BITMAPFILEP BITMAP.TO.BITMAPFILE BITMAPFILE.TO.BITMAP BITMAPFILE.TO.IMAGEFILE)
(FNS BITMAP.TO.IMAGEFILE WINDOW.TO.IMAGEFILE SCREENREGION.TO.IMAGEFILE COPY.WINDOW.TO.BITMAP)
(COMS (ADDVARS (PRINTFILETYPES (DEFAULT)))
(COMS (* ; "PRINTFILETYPES")
(INITVARS (PRINTFILETYPES NIL))
(GLOBALVARS PRINTFILETYPES)
(FNS DEFAULT.IMAGETYPE.CONVERSIONS)
[P (DEFAULT.IMAGETYPE.CONVERSIONS '(BITMAP BITMAP.TO.IMAGEFILE WINDOW
WINDOW.TO.IMAGEFILE SCREENREGION
SCREENREGION.TO.IMAGEFILE BITMAPFILE
BITMAPFILE.TO.IMAGEFILE]
(ALISTS (PRINTFILETYPES BITMAP WINDOW SCREENREGION BITMAPFILE TEXT)))
(COMS (* ; "Until HTML streams")
(ALISTS (PRINTFILETYPES HTML))
(FNS HTMLFILEP))
(ALISTS (PRINTFILETYPES BITMAP WINDOW SCREENREGION BITMAPFILE))
(COMS (* ; "Until HTML streams")
(ALISTS (PRINTFILETYPES HTML))
(FNS HTMLFILEP)))
(INITVARS (IMAGESTREAMTYPES NIL))
(FNS \GOOD.DASHLST)
(FNS DRAWDASHEDLINE)
@@ -220,6 +221,7 @@
(CONVERT.TO.IMAGEFILE
[LAMBDA (IMAGESOURCE IMAGEFILE IMAGEFILETYPE OPTIONS NOERROR)
(* ; "Edited 27-Jan-2026 17:45 by rmk")
(* ; "Edited 17-Jan-2026 12:41 by rmk")
(* ; "Edited 12-Jan-2026 23:49 by rmk")
(* ; "Edited 11-Jan-2026 13:21 by rmk")
@@ -254,40 +256,43 @@
(SETQ IMAGEFILETYPE (IMAGESOURCETYPE IMAGEFILE)))
(CL:WHEN (MEMB IMAGEFILETYPE '(PDF POSTSCRIPT)) (* ; "POSTSCRIPT SCREWS UP")
(push OPTIONS 'HEADING NIL))
(LET
((SOURCETYPE (IMAGESOURCETYPE IMAGESOURCE))
CONVERTED CFN)
(LET ((SOURCETYPE (IMAGESOURCETYPE IMAGESOURCE))
CONVERTED CFN)
(* ;; "The conversion function may abandon the IMAGEFILE we provide and create its own.")
(* ;; "The conversion function may abandon the IMAGEFILE we provide and create its own.")
(if (EQ IMAGEFILETYPE SOURCETYPE)
then
(* ;; "Already have what we want")
(if (EQ IMAGEFILETYPE SOURCETYPE)
then
(* ;; "Already have what we want")
IMAGESOURCE
else (if [AND (SETQ CFN (OR (LISTGET (IMAGEFILEPROP IMAGEFILETYPE 'CONVERSION)
SOURCETYPE)
(LISTGET (IMAGEFILEPROP 'DEFAULT 'CONVERSION)
SOURCETYPE)))
(SETQ CONVERTED (CAR (NLSETQ (APPLY* CFN IMAGESOURCE
[OR (STREAMP IMAGEFILE)
(AND IMAGEFILE
(PACKFILENAME 'BODY IMAGEFILE
'EXTENSION
(CAR (
IMAGESOURCE
elseif [AND (SETQ CFN (OR (LISTGET (IMAGEFILEPROP IMAGEFILETYPE 'CONVERSION)
SOURCETYPE)
(LISTGET (IMAGEFILEPROP 'DEFAULT 'CONVERSION)
SOURCETYPE)))
(SETQ CONVERTED (CAR (NLSETQ (APPLY* CFN IMAGESOURCE
[OR (STREAMP IMAGEFILE)
[AND IMAGEFILE
(PACKFILENAME 'BODY IMAGEFILE
'EXTENSION
(CAR (
 EXTENSIONS.FOR.IMAGEFILETYPE
IMAGEFILETYPE]
IMAGEFILETYPE OPTIONS]
then (CL:WHEN (STREAMP CONVERTED) (* ; "Can't tell from the name")
(STREAMPROP CONVERTED 'IMAGETYPE IMAGEFILETYPE))
(CLOSEF? CONVERTED)
CONVERTED
elseif NOERROR
then NIL
else (ERROR (CONCAT "Can't convert " SOURCETYPE " file to " IMAGEFILETYPE)
(CL:IF (STREAMP IMAGESOURCE)
(FULLNAME IMAGESOURCE)
IMAGESOURCE)])
IMAGEFILETYPE]
(UNIX-TMP-FILE-NAME
(L-CASE SOURCETYPE)
(CAR (EXTENSIONS.FOR.IMAGEFILETYPE
IMAGEFILETYPE]
IMAGEFILETYPE OPTIONS]
then (CL:WHEN (STREAMP CONVERTED) (* ; "Can't tell from the name")
(STREAMPROP CONVERTED 'IMAGETYPE IMAGEFILETYPE))
(CLOSEF? CONVERTED)
CONVERTED
elseif NOERROR
then NIL
else (ERROR (CONCAT "Can't convert " SOURCETYPE " file to " IMAGEFILETYPE)
(CL:IF (STREAMP IMAGESOURCE)
(FULLNAME IMAGESOURCE)
IMAGESOURCE)])
)
(DEFINEQ
@@ -479,7 +484,12 @@
(T (BITMAPCOPY (WINDOWPROP WINDOW 'IMAGECOVERED])
)
(ADDTOVAR PRINTFILETYPES (DEFAULT))
(* ; "PRINTFILETYPES")
(RPAQ? PRINTFILETYPES NIL)
(DECLARE%: DOEVAL@COMPILE DONTCOPY
(GLOBALVARS PRINTFILETYPES)
@@ -487,33 +497,27 @@
(DEFINEQ
(DEFAULT.IMAGETYPE.CONVERSIONS
[LAMBDA (CONVERSIONS) (* ; "Edited 18-Jan-2026 00:18 by rmk")
(* ;; "Adds CONVERSIONS to the DEFAULT PRINTFILETYPE")
 (* ; "Edited 24-Dec-2025 22:42 by rmk")
(CL:UNLESS (EQ 0 (IMOD (LENGTH CONVERSIONS)
2))
(ERROR "CONVERSIONS is not a property list"))
(PUTMULTI PRINTFILETYPES 'DEFAULT 'CONVERSION
(CONS (for CTAIL (CURRENT _ (OR (CAR (GETMULTI PRINTFILETYPES 'DEFAULT 'CONVERSION))
(LIST (CAR CONVERSIONS)
NIL))) on CONVERSIONS by (CDDR CTAIL)
do (LISTPUT CURRENT (CAR CTAIL)
(CADR CTAIL)) finally (RETURN CURRENT])
[LAMBDA (CONVERSIONS) (* ; "Edited 27-Jan-2026 23:24 by rmk")
(* ; "Edited 18-Jan-2026 00:18 by rmk")
(* ; "Edited 24-Dec-2025 22:42 by rmk")
(CL:WHEN CONVERSIONS
[PUTMULTI PRINTFILETYPES 'DEFAULT 'CONVERSION
(CONS (for CTAIL (CURRENT _ (OR (CAR (GETMULTI PRINTFILETYPES 'DEFAULT 'CONVERSION))
(LIST (CAR CONVERSIONS)
NIL))) on CONVERSIONS by (CDDR CTAIL)
do (LISTPUT CURRENT (CAR CTAIL)
(CADR CTAIL)) finally (RETURN CURRENT])])
)
(DEFAULT.IMAGETYPE.CONVERSIONS '(BITMAP BITMAP.TO.IMAGEFILE WINDOW WINDOW.TO.IMAGEFILE SCREENREGION
SCREENREGION.TO.IMAGEFILE BITMAPFILE BITMAPFILE.TO.IMAGEFILE))
(ADDTOVAR PRINTFILETYPES
(BITMAP (TEST BITMAPP))
(WINDOW (TEST WINDOWP))
(SCREENREGION (TEST REGIONP))
(BITMAPFILE (TEST BITMAPFILEP)
(EXTENSION (BM BITMAP))
(CONVERSION (BITMAP BITMAP.TO.BITMAPFILE)))
(TEXT (TEST LISPSOURCEFILEP)
(EXTENSION (TXT TEXT))))
(ADDTOVAR PRINTFILETYPES (BITMAP (TEST BITMAPP))
(WINDOW (TEST WINDOWP))
(SCREENREGION (TEST REGIONP))
(BITMAPFILE (TEST BITMAPFILEP)
(EXTENSION (BM BITMAP))
(CONVERSION (BITMAP BITMAP.TO.BITMAPFILE))))
@@ -1834,23 +1838,22 @@
)
(ADDTOVAR IMAGESTREAMTYPES
(DISPLAY (OPENSTREAM OPENDISPLAYSTREAM)
(FONTCREATE \CREATEDISPLAYFONT)
(DISPLAY (FONTCREATE \CREATEDISPLAYFONT)
(OPENSTREAM OPENDISPLAYSTREAM)
(FONTSAVAILABLE \SEARCHFONTFILES)
(CREATECHARSET \CREATECHARSET.DISPLAY)
(FONTEXISTS? \FONTEXISTS?.DISPLAY))
(4DISPLAY (OPENSTREAM OPENDISPLAYSTREAM)
(4DISPLAY (FONTCREATE \CREATEDISPLAYFONT)
(OPENSTREAM OPENDISPLAYSTREAM)
(FONTSAVAILABLE \SEARCHFONTFILES)
(FONTEXISTS? \FONTEXISTS?.DISPLAY))
(8DISPLAY (FONTCREATE \CREATEDISPLAYFONT)
(OPENSTREAM OPENDISPLAYSTREAM)
(FONTCREATE \CREATEDISPLAYFONT)
(FONTSAVAILABLE \SEARCHFONTFILES)
(CREATECHARSET \CREATECHARSET.DISPLAY)
(FONTEXISTS? \FONTEXISTS?.DISPLAY))
(8DISPLAY (OPENSTREAM OPENDISPLAYSTREAM)
(FONTCREATE \CREATEDISPLAYFONT)
(FONTSAVAILABLE \SEARCHFONTFILES)
(CREATECHARSET \CREATECHARSET.DISPLAY)
(FONTEXISTS? \FONTEXISTS?.DISPLAY))
(24DISPLAY (OPENSTREAM OPENDISPLAYSTREAM)
(FONTCREATE \CREATEDISPLAYFONT)
(24DISPLAY (FONTCREATE \CREATEDISPLAYFONT)
(OPENSTREAM OPENDISPLAYSTREAM)
(FONTSAVAILABLE \SEARCHFONTFILES)
(CREATECHARSET \CREATECHARSET.DISPLAY)
(FONTEXISTS? \FONTEXISTS?.DISPLAY)))
@@ -1877,32 +1880,32 @@
(ADDTOVAR LAMA IMAGESTREAMP)
)
(DECLARE%: DONTCOPY
(FILEMAP (NIL (4337 6241 (OPENIMAGESTREAM 4347 . 6239)) (6242 11483 (IMAGESTREAMP 6252 . 7084) (
IMAGESTREAMTYPE 7086 . 7602) (IMAGESTREAMTYPEP 7604 . 8239) (IMAGEFILEPROP 8241 . 8779) (
IMAGESOURCEFILEP 8781 . 9058) (IMAGESOURCETYPE 9060 . 11481)) (11484 12775 (
EXTENSIONS.FOR.IMAGEFILETYPE 11494 . 12136) (IMAGEFILETYPE.FROM.EXTENSION 12138 . 12773)) (12776 17758
(CONVERT.TO.IMAGEFILE 12786 . 17756)) (17759 21850 (BITMAPFILEP 17769 . 19270) (BITMAP.TO.BITMAPFILE
19272 . 20949) (BITMAPFILE.TO.BITMAP 20951 . 21605) (BITMAPFILE.TO.IMAGEFILE 21607 . 21848)) (21851
28176 (BITMAP.TO.IMAGEFILE 21861 . 23418) (WINDOW.TO.IMAGEFILE 23420 . 26249) (
SCREENREGION.TO.IMAGEFILE 26251 . 27155) (COPY.WINDOW.TO.BITMAP 27157 . 28174)) (28284 29190 (
DEFAULT.IMAGETYPE.CONVERSIONS 28294 . 29188)) (29904 30130 (HTMLFILEP 29914 . 30128)) (30165 32280 (
\GOOD.DASHLST 30175 . 32278)) (32281 34578 (DRAWDASHEDLINE 32291 . 34576)) (34579 41919 (DSPBACKCOLOR
34589 . 34961) (DSPBOTTOMMARGIN 34963 . 35348) (DSPCOLOR 35350 . 35714) (DSPCLIPPINGREGION 35716 .
36421) (DSPRESET 36423 . 36703) (DSPFONT 36705 . 37069) (DSPLEFTMARGIN 37071 . 37452) (DSPLINEFEED
37454 . 37754) (DSPOPERATION 37756 . 38133) (DSPRIGHTMARGIN 38135 . 38518) (DSPTOPMARGIN 38520 . 38899
) (DSPSCALE 38901 . 39268) (DSPSPACEFACTOR 39270 . 39663) (DSPXPOSITION 39665 . 39970) (DSPYPOSITION
39972 . 40277) (DSPROTATE 40279 . 40574) (DSPPUSHSTATE 40576 . 40822) (DSPPOPSTATE 40824 . 41067) (
DSPDEFAULTSTATE 41069 . 41321) (DSPSCALE2 41323 . 41614) (DSPTRANSLATE 41616 . 41917)) (41920 50721 (
DSPNEWPAGE 41930 . 42622) (DRAWBETWEEN 42624 . 43326) (DRAWCIRCLE 43328 . 43824) (DRAWARC 43826 .
44343) (DRAWCURVE 44345 . 45022) (DRAWELLIPSE 45024 . 45810) (DRAWLINE 45812 . 46202) (DRAWPOLYGON
46204 . 46659) (DRAWPOINT 46661 . 47080) (FILLPOLYGON 47082 . 47648) (DRAWTO 47650 . 48068) (
FILLCIRCLE 48070 . 48293) (MOVETO 48295 . 48659) (RELDRAWTO 48661 . 49578) (BITMAPIMAGESIZE 49580 .
49751) (SCALEDBITBLT 49753 . 50719)) (50722 57761 (\DRAWPOINT.GENERIC 50732 . 51079) (
\DRAWPOLYGON.GENERIC 51081 . 53389) (\DRAWCIRCLE.GENERIC 53391 . 55049) (\DRAWELLIPSE.GENERIC 55051 .
57759)) (57762 62706 (\IMAGEIOINIT 57772 . 61052) (\NOIMAGE.DSPFONT 61054 . 62540) (\UNIMPIMAGEOP
62542 . 62704)) (62829 65953 (INSURE.BRUSH 62839 . 64213) (BRUSHP 64215 . 65005) (\POSSIBLECOLOR 65007
. 65558) (NEGSHADE 65560 . 65951)) (66509 67193 (DASHINGP 66519 . 66849) (INSURE.DASHING 66851 .
67191)) (77931 98477 (\DisplayEventFn 77941 . 78451) (\DISPLAYINIT 78453 . 84036) (\4DISPLAYINIT 84038
. 88739) (\8DISPLAYINIT 88741 . 93444) (\24DISPLAYINIT 93446 . 98218) (\DISPLAYSTREAMTYPEBPP 98220 .
98475)))))
(FILEMAP (NIL (4424 6328 (OPENIMAGESTREAM 4434 . 6326)) (6329 11570 (IMAGESTREAMP 6339 . 7171) (
IMAGESTREAMTYPE 7173 . 7689) (IMAGESTREAMTYPEP 7691 . 8326) (IMAGEFILEPROP 8328 . 8866) (
IMAGESOURCEFILEP 8868 . 9145) (IMAGESOURCETYPE 9147 . 11568)) (11571 12862 (
EXTENSIONS.FOR.IMAGEFILETYPE 11581 . 12223) (IMAGEFILETYPE.FROM.EXTENSION 12225 . 12860)) (12863 18321
(CONVERT.TO.IMAGEFILE 12873 . 18319)) (18322 22413 (BITMAPFILEP 18332 . 19833) (BITMAP.TO.BITMAPFILE
19835 . 21512) (BITMAPFILE.TO.BITMAP 21514 . 22168) (BITMAPFILE.TO.IMAGEFILE 22170 . 22411)) (22414
28739 (BITMAP.TO.IMAGEFILE 22424 . 23981) (WINDOW.TO.IMAGEFILE 23983 . 26812) (
SCREENREGION.TO.IMAGEFILE 26814 . 27718) (COPY.WINDOW.TO.BITMAP 27720 . 28737)) (28869 29735 (
DEFAULT.IMAGETYPE.CONVERSIONS 28879 . 29733)) (30435 30661 (HTMLFILEP 30445 . 30659)) (30696 32811 (
\GOOD.DASHLST 30706 . 32809)) (32812 35109 (DRAWDASHEDLINE 32822 . 35107)) (35110 42450 (DSPBACKCOLOR
35120 . 35492) (DSPBOTTOMMARGIN 35494 . 35879) (DSPCOLOR 35881 . 36245) (DSPCLIPPINGREGION 36247 .
36952) (DSPRESET 36954 . 37234) (DSPFONT 37236 . 37600) (DSPLEFTMARGIN 37602 . 37983) (DSPLINEFEED
37985 . 38285) (DSPOPERATION 38287 . 38664) (DSPRIGHTMARGIN 38666 . 39049) (DSPTOPMARGIN 39051 . 39430
) (DSPSCALE 39432 . 39799) (DSPSPACEFACTOR 39801 . 40194) (DSPXPOSITION 40196 . 40501) (DSPYPOSITION
40503 . 40808) (DSPROTATE 40810 . 41105) (DSPPUSHSTATE 41107 . 41353) (DSPPOPSTATE 41355 . 41598) (
DSPDEFAULTSTATE 41600 . 41852) (DSPSCALE2 41854 . 42145) (DSPTRANSLATE 42147 . 42448)) (42451 51252 (
DSPNEWPAGE 42461 . 43153) (DRAWBETWEEN 43155 . 43857) (DRAWCIRCLE 43859 . 44355) (DRAWARC 44357 .
44874) (DRAWCURVE 44876 . 45553) (DRAWELLIPSE 45555 . 46341) (DRAWLINE 46343 . 46733) (DRAWPOLYGON
46735 . 47190) (DRAWPOINT 47192 . 47611) (FILLPOLYGON 47613 . 48179) (DRAWTO 48181 . 48599) (
FILLCIRCLE 48601 . 48824) (MOVETO 48826 . 49190) (RELDRAWTO 49192 . 50109) (BITMAPIMAGESIZE 50111 .
50282) (SCALEDBITBLT 50284 . 51250)) (51253 58292 (\DRAWPOINT.GENERIC 51263 . 51610) (
\DRAWPOLYGON.GENERIC 51612 . 53920) (\DRAWCIRCLE.GENERIC 53922 . 55580) (\DRAWELLIPSE.GENERIC 55582 .
58290)) (58293 63237 (\IMAGEIOINIT 58303 . 61583) (\NOIMAGE.DSPFONT 61585 . 63071) (\UNIMPIMAGEOP
63073 . 63235)) (63360 66484 (INSURE.BRUSH 63370 . 64744) (BRUSHP 64746 . 65536) (\POSSIBLECOLOR 65538
. 66089) (NEGSHADE 66091 . 66482)) (67040 67724 (DASHINGP 67050 . 67380) (INSURE.DASHING 67382 .
67722)) (78462 99008 (\DisplayEventFn 78472 . 78982) (\DISPLAYINIT 78984 . 84567) (\4DISPLAYINIT 84569
. 89270) (\8DISPLAYINIT 89272 . 93975) (\24DISPLAYINIT 93977 . 98749) (\DISPLAYSTREAMTYPEBPP 98751 .
99006)))))
STOP

Binary file not shown.