From c7a219fd2261a95cdfde68de114bbe2809f8380b Mon Sep 17 00:00:00 2001 From: Larry Masinter Date: Thu, 21 Oct 2021 09:50:15 -0700 Subject: [PATCH] Use COPYCHARS instead of COPYBYTES when HPRINT is copying from NODIRCORE buffer (#506) * Use COPYCHARS instead of COPYBYTES when HPRINT is copying from NODIRCORE buffer * Change HPRINT of non-random-access files to use FORMAT of ultimate destination --- sources/HPRINT | 261 ++++++++++++++++++++++++-------------------- sources/HPRINT.LCOM | Bin 25652 -> 26023 bytes 2 files changed, 144 insertions(+), 117 deletions(-) diff --git a/sources/HPRINT b/sources/HPRINT index 86b4962b..3594b3e9 100644 --- a/sources/HPRINT +++ b/sources/HPRINT @@ -1,13 +1,20 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED "26-Apr-2021 14:45:00"  -{DSK}kaplan>Local>medley3.5>git-medley>sources>HPRINT.;2 57689 - previous date%: " 9-Oct-94 13:07:03" -{DSK}kaplan>Local>medley3.5>git-medley>sources>HPRINT.;1) +(FILECREATED "17-Oct-2021 13:54:11" {DSK}larry>medley>sources>HPRINT.;2 59850 + + changes to%: (VARS HPRINTCOMS) + (FNS MAKEHVPRETTYCOMS READVARS HPRINT0 READVAR-FROM-STRING READVARS-FROM-STRING + HPRINT-TO-STRING HPRINT-TO-STRINGS HPRINT HPRINT1 HPRINTEND RPTPRINT RPTEND + RPTPUT HPRINTSP HPERR HVFWDCDREAD HVBAKREAD HVREADCHECKGETFN HVREADEND + HVRPTREAD HVFWDREAD HREAD HPINITRDTBL HVREADERR HPRINSP COPYALL + \COPYDATATYPE HCOPYALL HCOPYALL1 EQUALALL EQUALHASH) + (FILEPKGCOMS HORRIBLEVARS UGLYVARS) + + previous date%: "28-Sep-2021 10:44:11" {DSK}larry>medley>sources>HPRINT.;1) (* ; " -Copyright (c) 1982-1988, 1990-1991, 1993-1994, 2021 by Venue & Xerox Corporation. +Copyright (c) 1982-1988, 1990-1991, 1993-1994 by Venue & Xerox Corporation. ") (PRETTYCOMPRINT HPRINTCOMS) @@ -66,16 +73,16 @@ Copyright (c) 1982-1988, 1990-1991, 1993-1994, 2021 by Venue & Xerox Corporation (DEFINEQ (MAKEHVPRETTYCOMS - [NLAMBDA (VARS NO-CIRCLE-FLAG) (* ; "Edited 9-Sep-87 16:52 by amd") - (* "The old code" (HPINITRDTBL) - (for X in VARS do (OR - (LITATOM X) (ERROR X - "invalid in HORRIBLEVARS" T))) - (LIST (LIST (QUOTE P) - (CONS (FUNCTION READVARS) VARS)) - (LIST (QUOTE E) (CONS - (QUOTE HPRINT0) (if NO-CIRCLE-FLAG - then (CONS 0 VARS) else VARS))))) + [NLAMBDA (VARS NO-CIRCLE-FLAG) (* ; "Edited 9-Sep-87 16:52 by amd") + (* "The old code" (HPINITRDTBL) + (for X in VARS do (OR + (LITATOM X) (ERROR X + "invalid in HORRIBLEVARS" T))) + (LIST (LIST (QUOTE P) + (CONS (FUNCTION READVARS) VARS)) + (LIST (QUOTE E) (CONS + (QUOTE HPRINT0) (if NO-CIRCLE-FLAG + then (CONS 0 VARS) else VARS))))) (HPINITRDTBL) (for X in VARS do (if (NOT (LITATOM X)) then (ERROR X "not a symbol in HORRIBLEVARS" T))) @@ -83,7 +90,7 @@ Copyright (c) 1982-1988, 1990-1991, 1993-1994, 2021 by Venue & Xerox Corporation NO-CIRCLE-FLAG]) (READVARS - [NLAMBDA VARS (* lmm%: " 4-JAN-77 23:32:43") + [NLAMBDA VARS (* lmm%: " 4-JAN-77 23:32:43") (HPINITRDTBL) (PROG (BACKREFS (BACKREFCNT 0) DATATYPESEEN) @@ -97,7 +104,7 @@ Copyright (c) 1982-1988, 1990-1991, 1993-1994, 2021 by Venue & Xerox Corporation (HVREADERR]) (HPRINT0 - [NLAMBDA VARS (* lmm%: 30-JAN-76 7 36) + [NLAMBDA VARS (* lmm%: 30-JAN-76 7 36) (HPRINT (for X in (COND ((EQ (CAR VARS) 0) @@ -131,10 +138,10 @@ Copyright (c) 1982-1988, 1990-1991, 1993-1994, 2021 by Venue & Xerox Corporation (DEFINEQ (READVAR-FROM-STRING - [LAMBDA (SYMBOL HPRINT-STRING) (* ; "Edited 10-Feb-87 16:39 by Pavel") + [LAMBDA (SYMBOL HPRINT-STRING) (* ; "Edited 10-Feb-87 16:39 by Pavel") (CL:WITH-INPUT-FROM-STRING (STREAM HPRINT-STRING) - (* ;; "") + (* ;; "") (HPINITRDTBL) (PROG (BACKREFS (BACKREFCNT 0) @@ -143,17 +150,17 @@ Copyright (c) 1982-1988, 1990-1991, 1993-1994, 2021 by Venue & Xerox Corporation T]) (READVARS-FROM-STRING - [LAMBDA (SYMBOLS HPRINT-STRING) (* ; "Edited 9-Sep-87 18:22 by amd") + [LAMBDA (SYMBOLS HPRINT-STRING) (* ; "Edited 9-Sep-87 18:22 by amd") (CL:WITH-INPUT-FROM-STRING (STREAM HPRINT-STRING) (READVARS-FROM-STREAM SYMBOLS STREAM]) (HPRINT-TO-STRING - [LAMBDA (VALUE NO-CIRCLE-FLAG) (* ; "Edited 9-Sep-87 16:21 by amd") + [LAMBDA (VALUE NO-CIRCLE-FLAG) (* ; "Edited 9-Sep-87 16:21 by amd") (CL:WITH-OUTPUT-TO-STRING (S) (HPRINT VALUE S NO-CIRCLE-FLAG]) (HPRINT-TO-STRINGS - [LAMBDA (VALUE NO-CIRCLE-FLAG) (* ; "Edited 5-Feb-88 14:42 by amd") + [LAMBDA (VALUE NO-CIRCLE-FLAG) (* ; "Edited 5-Feb-88 14:42 by amd") (XCL:WITH-COLLECTION (XCL:COLLECT (CL:WITH-OUTPUT-TO-STRING (S) @@ -181,14 +188,32 @@ Copyright (c) 1982-1988, 1990-1991, 1993-1994, 2021 by Venue & Xerox Corporation (DEFINEQ (HPRINT - [LAMBDA (EXPR FILE UNCIRCULAR DATATYPESEEN) (* ; "Edited 10-Feb-87 15:52 by Pavel") + [LAMBDA (EXPR FILE UNCIRCULAR DATATYPESEEN) + (DECLARE (SPECVARS DATATYPESEEN UNCIRCULAR)) (* ; + "Edited 17-Oct-2021 13:06 by larry") + (* ; + "Edited 17-Oct-2021 13:02 by larry") + (* ; + "Edited 17-Oct-2021 12:52 by larry") + (* ; + "Edited 17-Oct-2021 12:46 by larry") + (* ; + "Edited 17-Oct-2021 12:42 by larry") + (* ; + "Edited 17-Oct-2021 12:42 by larry") + (* ; + "Edited 17-Oct-2021 12:41 by larry") + (* ; + "Edited 17-Oct-2021 12:39 by larry") + (* ; "Edited 10-Feb-87 15:52 by Pavel") (RESETLST (PROG (BACKREFS (CELLCOUNT 0) SIZE (U UNCIRCULAR)) + (DECLARE (SPECVARS BACKREFS CELLCOUNT U)) (RESETSAVE (RADIX 10)) [COND - (UNCIRCULAR (* ; "Won't need the hash array")) + (UNCIRCULAR (* ; "Won't need the hash array")) ([OR (HARRAYP HPRINTHASHARRAY) (HARRAYP (CAR (LISTP HPRINTHASHARRAY] (CLRHASH HPRINTHASHARRAY)) @@ -201,28 +226,29 @@ Copyright (c) 1982-1988, 1990-1991, 1993-1994, 2021 by Venue & Xerox Corporation ((RANDACCESSP (OUTPUT)) (HPRINT1 EXPR) (HPRINTEND)) - (T (* ; - "If the byte pointer cannot be reset, want to output to temp file and copy it back") - (LET* ((STREAM (OPENSTREAM "{NoDirCore}" 'OUTPUT)) - (*STANDARD-OUTPUT* STREAM)) - (CL:UNWIND-PROTECT - (PROGN (HPRINT1 EXPR) - (HPRINTEND) - (CL:CLOSE STREAM) - (OPENSTREAM STREAM 'INPUT) - (COPYBYTES STREAM FILE)) - (CL:CLOSE STREAM))] + (T (* ; + "If the byte pointer cannot be reset, want to output to temp file and copy it back") + (LET [(NDC (OPENSTREAM "{NODIRCORE}" 'BOTH 'NEW + `((FORMAT ,(STREAMPROP *STANDARD-OUTPUT* 'FORMAT] + (CL:UNWIND-PROTECT + [LET ((OS *STANDARD-OUTPUT*) + (*STANDARD-OUTPUT* NDC)) + (HPRINT1 EXPR) + (HPRINTEND) + (COPYCHARS NDC OS 0 (PROG1 (GETFILEPTR NDC) + (SETFILEPTR NDC 0] + (CL:CLOSE NDC))] (TERPRI)))]) (HPRINT1 - [LAMBDA (X CDRFLG NOMACROSFLG NOSPFLG) (* ; "Edited 26-Apr-91 13:39 by jds") + [LAMBDA (X CDRFLG NOMACROSFLG NOSPFLG) (* ; "Edited 26-Apr-91 13:39 by jds") - (* ;; "Print the potentially self-referential structure EXPR; if CDRFLG then this is the CDR part of a list") + (* ;; "Print the potentially self-referential structure EXPR; if CDRFLG then this is the CDR part of a list") (PROG (LASTSEEN HERE TYPE SIZE) (SELECTQ (SETQ TYPE (TYPENAME X)) - ((SMALLP LITATOM NEW-ATOM) (* ; - "Atom, small number, are just directly printed") + ((SMALLP LITATOM NEW-ATOM) (* ; + "Atom, small number, are just directly printed") [RETURN (COND [CDRFLG (COND (X (PRIN1 " . ") @@ -234,7 +260,7 @@ Copyright (c) 1982-1988, 1990-1991, 1993-1994, 2021 by Venue & Xerox Corporation [(SETQ LASTSEEN (AND (NOT U) (GETHASH X HPRINTHASHARRAY))) - (* ;; "Seen before --- Hash value is either byte position of first place seen (negative if CDR pointer) or (bytepos-of-expression . byte-positions-of-backrefs)") + (* ;; "Seen before --- Hash value is either byte position of first place seen (negative if CDR pointer) or (bytepos-of-expression . byte-positions-of-backrefs)") (AND CDRFLG (PRIN1 " . ")) (PRIN1 (CONSTANT HPFILLSTRING)) @@ -242,17 +268,17 @@ Copyright (c) 1982-1988, 1990-1991, 1993-1994, 2021 by Venue & Xerox Corporation [PROG ((CN CELLCOUNT)) (while (IGREATERP CN 0) do (PRIN3 (FCHARACTER (CONSTANT HPFILLCHAR))) - (* ;; "HPFILLCHAR is 0; there is still a problem in the system of dumping and reading back in (CHARACTER 0)") + (* ;; "HPFILLCHAR is 0; there is still a problem in the system of dumping and reading back in (CHARACTER 0)") (SETQ CN (IQUOTIENT CN 10] (COND - ((NLISTP LASTSEEN) (* ; "Seen only once before") + ((NLISTP LASTSEEN) (* ; "Seen only once before") (PUTHASH X (CAR (SETQ BACKREFS (CONS (LIST LASTSEEN HERE) BACKREFS))) HPRINTHASHARRAY) NIL) - (T (* ; - "Seen at least once before --- Add this place to the list") + (T (* ; + "Seen at least once before --- Add this place to the list") (FRPLACD LASTSEEN (CONS HERE (CDR LASTSEEN] (T (AND CDRFLG (NLISTP X) @@ -267,8 +293,8 @@ Copyright (c) 1982-1988, 1990-1991, 1993-1994, 2021 by Venue & Xerox Corporation HPRINTHASHARRAY) (SETN CELLCOUNT (ADD1 CELLCOUNT))) ((NOT NOSPFLG) - (SPACES 1))) (* ; - "Now, finally get around to printing the thing --- leave space for macro char") + (SPACES 1))) (* ; + "Now, finally get around to printing the thing --- leave space for macro char") (COND [(LISTP X) (COND @@ -291,8 +317,8 @@ Copyright (c) 1982-1988, 1990-1991, 1993-1994, 2021 by Venue & Xerox Corporation (HPRINTENDSTR] (T (SELECTQ TYPE - ((STRINGP FLOATP FIXP) (* ; - "string, floating point or number") + ((STRINGP FLOATP FIXP) (* ; + "string, floating point or number") (PRIN2 X)) (ARRAYP (PROG ((SIZE (ARRAYSIZE X)) (RPTCNT 0) @@ -322,7 +348,7 @@ Copyright (c) 1982-1988, 1990-1991, 1993-1994, 2021 by Venue & Xerox Corporation [PRIN2 (LIST SIZ (HARRAYPROP X 'OVERFLOW] (SPACES 1) (SELECTQ (SYSTEMTYPE) - ((TENEX TOPS20) (* ; "bug in Interlisp-10 MAPHASH") + ((TENEX TOPS20) (* ; "bug in Interlisp-10 MAPHASH") [COND ((ILESSP (GCTRP) SIZ) @@ -339,8 +365,8 @@ Copyright (c) 1982-1988, 1990-1991, 1993-1994, 2021 by Venue & Xerox Corporation (HPRINTSP (CAR VALS)) (SETQ VALS (CDR VALS))) (HPRINTENDSTR))) - (READTABLEP (* ; - "should dump the READMACROS flag too --- doesn't now and won't until READMACROS takes a RDTBL arg") + (READTABLEP (* ; + "should dump the READMACROS flag too --- doesn't now and won't until READMACROS takes a RDTBL arg") (PROG ((RPTCNT 0) (RPTLAST (CONS))) (HPRINTSTRING D) @@ -384,7 +410,7 @@ Copyright (c) 1982-1988, 1990-1991, 1993-1994, 2021 by Venue & Xerox Corporation (SETQ TYPE (DELETECONTROL PR NIL X] (HPRINSP PR) (HPRINSP TYPE] - (PRIN2) (* ; "end with a NIL") + (PRIN2) (* ; "end with a NIL") (HPRINTENDSTR)) (VAG (HPRINTSTRING %#) (PRIN2 (LOC X)) @@ -415,7 +441,7 @@ Copyright (c) 1982-1988, 1990-1991, 1993-1994, 2021 by Venue & Xerox Corporation (T (HPERR "cannot print this item" X]) (HPRINTEND - [LAMBDA NIL (* lmm%: "29-NOV-76 16:11:02") + [LAMBDA NIL (* lmm%: "29-NOV-76 16:11:02") (PROG [(HERE (GETFILEPTR (OUTPUT] [SORT BACKREFS (FUNCTION (LAMBDA (X Y) (ILESSP (ABS (CAR X)) @@ -445,12 +471,12 @@ Copyright (c) 1982-1988, 1990-1991, 1993-1994, 2021 by Venue & Xerox Corporation (SETQ RPTCNT 1]) (RPTEND - [LAMBDA NIL (* lmm%: "29-NOV-76 16:11:40") + [LAMBDA NIL (* lmm%: "29-NOV-76 16:11:40") (RPTPUT RPTCNT RPTLAST) (HPRINTENDSTR]) (RPTPUT - [LAMBDA (CNT ITEM FLAG) (* lmm "11-SEP-78 03:22") + [LAMBDA (CNT ITEM FLAG) (* lmm "11-SEP-78 03:22") (COND [(AND (ILESSP CNT 4) (OR FLAG (LITATOM ITEM) @@ -481,8 +507,8 @@ Copyright (c) 1982-1988, 1990-1991, 1993-1994, 2021 by Venue & Xerox Corporation (HVFWDCDREAD [LAMBDA (FILE RDTBL TCONCPTR) - (* Do setq so that if the READ adds things to the BACKREF list, it will still - be correct) + (* Do setq so that if the READ adds things to the BACKREF list, it will still + be correct) (TCONC TCONCPTR NIL) (SETQ BACKREFCNT (ADD1 BACKREFCNT)) @@ -493,20 +519,20 @@ Copyright (c) 1982-1988, 1990-1991, 1993-1994, 2021 by Venue & Xerox Corporation TCONCPTR]) (HVBAKREAD - [LAMBDA (FILE RDTBL BKRF) (* rrb "18-Mar-86 15:40") + [LAMBDA (FILE RDTBL BKRF) (* rrb "18-Mar-86 15:40") (PROG (HV HV1 HV2 HV3 (RPTCNT 0) RPTVAL READVAL) READLP (SKIPSEPRS FILE RDTBL) (SELECTQ (SETQ HV (READC FILE)) - (} (* ; - "Empty printout from false start for HPRINTMACRO. Next char should be { and be default") + (} (* ; + "Empty printout from false start for HPRINTMACRO. Next char should be { and be default") (SKIPSEPRS FILE RDTBL) (COND ((EQ '{ (READC FILE)) (GO READLP)) (T (HVREADERR)))) - (H (* ; "Hash array") + (H (* ; "Hash array") [SETQ READVAL (COND ((EQ (SKIPSEPRS FILE RDTBL) '%() @@ -519,7 +545,7 @@ Copyright (c) 1982-1988, 1990-1991, 1993-1994, 2021 by Venue & Xerox Corporation (PUTHASH (READ FILE RDTBL) HV READVAL))) (HVREADEND FILE RDTBL)) - ((A Y) (* ; "array") + ((A Y) (* ; "array") [SETQ READVAL (ARRAY (SETQ HV1 (READ FILE RDTBL)) (SETQ HV2 (READ FILE RDTBL)) NIL @@ -537,11 +563,11 @@ Copyright (c) 1982-1988, 1990-1991, 1993-1994, 2021 by Venue & Xerox Corporation (for I from (ADD1 HV2) to HV1 do (SETD READVAL I (HVRPTREAD FILE RDTBL] (HVREADEND FILE RDTBL)) - (($ ~) (* ; "DATATYPE") + (($ ~) (* ; "DATATYPE") (SETQ HV1 (RATOM FILE RDTBL)) [COND - ((EQ HV '~) (* ; - "This should be a previously known datatype not specified in file") + ((EQ HV '~) (* ; + "This should be a previously known datatype not specified in file") (SETQ HV2 (GETDESCRIPTORS HV1))) ([NOT (SETQ HV2 (CDR (FASSOC HV1 DATATYPESEEN] (SETQ HV2 (READ FILE RDTBL)) @@ -556,21 +582,21 @@ Copyright (c) 1982-1988, 1990-1991, 1993-1994, 2021 by Venue & Xerox Corporation (AND BKRF (FRPLACA BKRF READVAL)) (for X in HV2 do (REPLACEFIELD X READVAL (HVRPTREAD FILE RDTBL))) (HVREADEND FILE RDTBL)) - (R (* ; "repeat") + (R (* ; "repeat") (AND BKRF (HVREADERR)) (RETURN HPRPTSTRING)) - (%# (* ; "Kludge for (VAG smallnumber)") + (%# (* ; "Kludge for (VAG smallnumber)") (RETURN (PROG1 (VAG (RATOM FILE RDTBL)) (HVREADEND FILE RDTBL)))) - (! (* ; "! --- value cell") + (! (* ; "! --- value cell") (RETURN (AT2VC (RATOM FILE RDTBL)))) - (D (* ; "READTABLEP") + (D (* ; "READTABLEP") (SETQ READVAL (COPYREADTABLE 'ORIG)) (AND BKRF (FRPLACA BKRF READVAL)) (for I in (READ FILE RDTBL) do (SETSYNTAX I (HVRPTREAD FILE RDTBL) READVAL)) (HVREADEND FILE RDTBL)) - (T (* ; "TERMTABLEP") + (T (* ; "TERMTABLEP") (SETQ READVAL (COPYTERMTABLE 'ORIG)) (AND BKRF (FRPLACA BKRF READVAL)) (while (SETQ HV (RATOM FILE RDTBL)) @@ -592,10 +618,10 @@ Copyright (c) 1982-1988, 1990-1991, 1993-1994, 2021 by Venue & Xerox Corporation (NOECHO (DELETECONTROL 'NOECHO NIL READVAL)) (HVREADERR))) (HVREADEND FILE RDTBL)) - ((0 1 2 3 4 5 6 7 8 9) (* ; - "immediately followed by a number") - (AND BKRF (HVREADERR)) (* ; - "BACK REFERENCE --- shouldn't be forward reference as well") + ((0 1 2 3 4 5 6 7 8 9) (* ; + "immediately followed by a number") + (AND BKRF (HVREADERR)) (* ; + "BACK REFERENCE --- shouldn't be forward reference as well") (SETQ HV2 HV) (while (SMALLP (SETQ HV (READC FILE))) do (SETQ HV2 (IPLUS (ITIMES HV2 10) @@ -603,20 +629,20 @@ Copyright (c) 1982-1988, 1990-1991, 1993-1994, 2021 by Venue & Xerox Corporation (RETURN (OR [CAR (FNTH BACKREFS (ADD1 (IDIFFERENCE BACKREFCNT HV2] (HVREADERR)))) (%( - (* ;; "form that should be evaluated with its first argument replaced with the file being read. This is the case that handle IMAGEOBJs.") + (* ;; "form that should be evaluated with its first argument replaced with the file being read. This is the case that handle IMAGEOBJs.") (SETQ READVAL (PROG1 [APPLY (HVREADCHECKGETFN (READ FILE RDTBL)) (CONS FILE (PROGN - (* ;; "dump the first argument which is a dummy so that the call that is on the file looks like a realy call.") + (* ;; "dump the first argument which is a dummy so that the call that is on the file looks like a realy call.") (CDR (until (PROGN (SKIPSEPRS FILE RDTBL) (EQ (PEEKC FILE) '%))) collect (EVAL (READ FILE RDTBL)) finally - (* ; "read the closing (QUOTE ))") + (* ; "read the closing (QUOTE ))") (RATOM FILE RDTBL] (HVREADEND FILE RDTBL))) (AND BKRF (FRPLACA BKRF READVAL)) @@ -627,26 +653,26 @@ Copyright (c) 1982-1988, 1990-1991, 1993-1994, 2021 by Venue & Xerox Corporation (RETURN READVAL]) (HVREADCHECKGETFN - [LAMBDA (FN) (* ; "Edited 27-Jan-87 19:41 by rrb") + [LAMBDA (FN) (* ; "Edited 27-Jan-87 19:41 by rrb") - (* ;; - "if in the context of reading an image object, make sure the get function is a known one.") + (* ;; + "if in the context of reading an image object, make sure the get function is a known one.") (COND - ((EQ FN 'READIMAGEOBJ) (* ; "common case") + ((EQ FN 'READIMAGEOBJ) (* ; "common case") FN) [(AND (BOUNDP UNDERREADIMAGEOBJ) - (EQ UNDERREADIMAGEOBJ T)) (* ; - "This is an HREAD that came from an Image object and hence needs to be safe.") + (EQ UNDERREADIMAGEOBJ T)) (* ; + "This is an HREAD that came from an Image object and hence needs to be safe.") (PROG NIL LP (COND ((OR (MEMB FN HPRINTREADFNS) (ASSOC FN IMAGEOBJGETFNS)) (RETURN FN)) - ((NOT (GETD FN)) (* ; - "headed for an undefined function error anyway") - (\LISPERROR FN 46 T) (* ; - "user may have loaded a package during the break.") + ((NOT (GETD FN)) (* ; + "headed for an undefined function error anyway") + (\LISPERROR FN 46 T) (* ; + "user may have loaded a package during the break.") (GO LP)) ((MOUSECONFIRM (CONCAT "Trying to read an IMAGEOBJ with GETFN " FN ". " FN " is NOT registered. Should I use it anyway?") @@ -656,13 +682,13 @@ Copyright (c) 1982-1988, 1990-1991, 1993-1994, 2021 by Venue & Xerox Corporation (T FN]) (HVREADEND - [LAMBDA (FILE RDTBL) (* lmm "21-APR-82 11:25") + [LAMBDA (FILE RDTBL) (* lmm "21-APR-82 11:25") (bind CHAR until (EQ (SETQ CHAR (CHCON1 (READC FILE))) (CONSTANT HPFINALCHAR)) do (OR (SYNTAXP CHAR 'SEPR RDTBL) (HVREADERR]) (HVRPTREAD - [LAMBDA (FILE RDTBL) (* lmm " 2-APR-82 23:26") + [LAMBDA (FILE RDTBL) (* lmm " 2-APR-82 23:26") (PROG NIL LOOP (COND @@ -678,7 +704,7 @@ Copyright (c) 1982-1988, 1990-1991, 1993-1994, 2021 by Venue & Xerox Corporation (T (RETURN RPTVAL]) (HVFWDREAD - [LAMBDA (FILE RDTBL) (* lmm%: "29-NOV-76 15:56:19") + [LAMBDA (FILE RDTBL) (* lmm%: "29-NOV-76 15:56:19") (PROG (CH VAL) (SETQ BACKREFCNT (ADD1 BACKREFCNT)) (SETQ BACKREFS (CONS NIL BACKREFS)) @@ -700,7 +726,7 @@ Copyright (c) 1982-1988, 1990-1991, 1993-1994, 2021 by Venue & Xerox Corporation (T (RETURN (CAR (FRPLACA BACKREFS (READ FILE RDTBL]) (HREAD - [LAMBDA (FILE) (* lmm%: 19 MAY 75 315) + [LAMBDA (FILE) (* lmm%: 19 MAY 75 315) (PROG [BACKREFS (BACKREFCNT 0) DATATYPESEEN (FILE (INPUT (INPUT FILE] @@ -709,7 +735,7 @@ Copyright (c) 1982-1988, 1990-1991, 1993-1994, 2021 by Venue & Xerox Corporation (RETURN (READ FILE HPRINTRDTBL]) (HPINITRDTBL - [LAMBDA NIL (* lmm " 5-JAN-78 23:23") + [LAMBDA NIL (* lmm " 5-JAN-78 23:23") (COND ([NOT (READTABLEP (GETATOMVAL 'HPRINTRDTBL] (PROG [(RDTBL (COPYREADTABLE 'ORIG] @@ -735,14 +761,14 @@ Copyright (c) 1982-1988, 1990-1991, 1993-1994, 2021 by Venue & Xerox Corporation (OR M2 '(in HREAD]) (HPRINSP - [LAMBDA (X) (* lmm%: "29-NOV-76 17:41:47") + [LAMBDA (X) (* lmm%: "29-NOV-76 17:41:47") (PRIN2 X) (SPACES 1]) ) (DEFINEQ (COPYALL - [LAMBDA (X) (* ; "Edited 9-Oct-94 13:06 by jds") + [LAMBDA (X) (* ; "Edited 9-Oct-94 13:06 by jds") (COND ((LISTP X) (PROG [TAIL (VAL (LIST (COPYALL (CAR X] @@ -767,7 +793,7 @@ Copyright (c) 1982-1988, 1990-1991, 1993-1994, 2021 by Venue & Xerox Corporation (STRINGP (CONCAT X)) (FLOATP (FPLUS X)) (FIXP (IPLUS X)) - (HARRAYP (* ; "Hash array") + (HARRAYP (* ; "Hash array") (PROG [(NH (HASHARRAY (HARRAYSIZE X) (HARRAYPROP X 'OVERFLOW] (DECLARE (SPECVARS NH)) @@ -788,7 +814,7 @@ Copyright (c) 1982-1988, 1990-1991, 1993-1994, 2021 by Venue & Xerox Corporation (add ORIG 1)))]) (BITMAP (BITMAPCOPY X)) (CURSOR - (* ;; "For cursors, must preserve EQ-ness of MASK & IMAGE, to avoid trouble with SOFTCURSOR code being missing.(COPY") + (* ;; "For cursors, must preserve EQ-ness of MASK & IMAGE, to avoid trouble with SOFTCURSOR code being missing.(COPY") (LET* [(IM (BITMAPCOPY (FETCH (CURSOR CUIMAGE) OF X))) (NEW (CURSORCREATE IM [COND @@ -810,7 +836,7 @@ Copyright (c) 1982-1988, 1990-1991, 1993-1994, 2021 by Venue & Xerox Corporation (\COPYDATATYPE X]) (\COPYDATATYPE - [LAMBDA (X) (* lmm "21-Apr-85 15:29") + [LAMBDA (X) (* lmm "21-Apr-85 15:29") (LET* ((NTYP (NTYPX X)) (DTD (\GETDTD NTYP)) (PTRS (fetch DTDPTRS of DTD)) @@ -824,7 +850,7 @@ Copyright (c) 1982-1988, 1990-1991, 1993-1994, 2021 by Venue & Xerox Corporation else (\BLT NEW X (fetch DTDSIZE of DTD))))]) (HCOPYALL - [LAMBDA (X) (* rmk%: " 3-Jan-84 13:16") + [LAMBDA (X) (* rmk%: " 3-Jan-84 13:16") [COND ([OR (HARRAYP HPRINTHASHARRAY) (HARRAYP (CAR (LISTP HPRINTHASHARRAY] @@ -833,7 +859,7 @@ Copyright (c) 1982-1988, 1990-1991, 1993-1994, 2021 by Venue & Xerox Corporation (HCOPYALL1 X]) (HCOPYALL1 - [LAMBDA (X) (* bvm%: " 7-Feb-85 21:25") + [LAMBDA (X) (* bvm%: " 7-Feb-85 21:25") (COND ((OR (LITATOM X) (SMALLP X)) @@ -859,7 +885,7 @@ Copyright (c) 1982-1988, 1990-1991, 1993-1994, 2021 by Venue & Xerox Corporation (ARRAYP (PROG ((SIZE (ARRAYSIZE X)) (TYP (ARRAYTYP X)) (ORIG (ARRAYORIG X))) - (* ; "Regular array") + (* ; "Regular array") (PUTHASH X (SETQ NEW (ARRAY SIZE TYP NIL ORIG)) HPRINTHASHARRAY) (FRPTQ SIZE (SETA NEW ORIG @@ -895,13 +921,14 @@ Copyright (c) 1982-1988, 1990-1991, 1993-1994, 2021 by Venue & Xerox Corporation (DEFINEQ (EQUALALL - [LAMBDA (X Y) (* ; "Edited 26-Apr-2021 14:34 by rmk:") + [LAMBDA (X Y) (* ; + "Edited 26-Apr-2021 14:34 by rmk:") (OR (EQ X Y) (PROG ((TY (TYPENAME Y)) TEM) (RETURN (AND (EQ TY (TYPENAME X)) (SELECTQ TY - ((LITATOM NEW-ATOM SMALLP) (* ; "not eq, so not equal") + ((LITATOM NEW-ATOM SMALLP) (* ; "not eq, so not equal") NIL) (FIXP (IEQP X Y)) (FLOATP (EQP X Y)) @@ -920,7 +947,7 @@ Copyright (c) 1982-1988, 1990-1991, 1993-1994, 2021 by Venue & Xerox Corporation always (EQUALALL (ELT X I) (ELT Y I]) ((ONED-ARRAY TWOD-ARRAY GENERAL-ARRAY) - (* ; "RMK: Added CL arrays") + (* ; "RMK: Added CL arrays") [AND (EQUAL (CL:ARRAY-DIMENSIONS X) (CL:ARRAY-DIMENSIONS Y)) (EQUAL (CL:ARRAY-ELEMENT-TYPE X) @@ -973,9 +1000,9 @@ Copyright (c) 1982-1988, 1990-1991, 1993-1994, 2021 by Venue & Xerox Corporation (EQUALHASH [LAMBDA (AR1 AR2) - (DECLARE (SPECVARS AR1 AR2)) (* rmk%: "26-Dec-83 13:33") - (* ; - "What does it mean for two hash arrays to be EQUAL?") + (DECLARE (SPECVARS AR1 AR2)) (* rmk%: "26-Dec-83 13:33") + (* ; + "What does it mean for two hash arrays to be EQUAL?") [PROG (UNMATCHED) (OR (EQUAL (HARRAYPROP AR1 'OVERFLOW) (HARRAYPROP AR2 'OVERFLOW)) @@ -1109,16 +1136,16 @@ Copyright (c) 1982-1988, 1990-1991, 1993-1994, 2021 by Venue & Xerox Corporation (ADDTOVAR LAMA ) ) (PUTPROPS HPRINT COPYRIGHT ("Venue & Xerox Corporation" 1982 1983 1984 1985 1986 1987 1988 1990 1991 -1993 1994 2021)) +1993 1994)) (DECLARE%: DONTCOPY - (FILEMAP (NIL (3661 6199 (MAKEHVPRETTYCOMS 3671 . 4958) (READVARS 4960 . 5526) (HPRINT0 5528 . 6197)) -(6201 6534 (READVARS-FROM-STRINGS 6201 . 6534)) (6536 6923 (READVARS-FROM-STREAM 6536 . 6923)) (6924 -8852 (READVAR-FROM-STRING 6934 . 7340) (READVARS-FROM-STRING 7342 . 7578) (HPRINT-TO-STRING 7580 . -7786) (HPRINT-TO-STRINGS 7788 . 8850)) (9663 37895 (HPRINT 9673 . 11303) (HPRINT1 11305 . 22807) ( -HPRINTEND 22809 . 23845) (RPTPRINT 23847 . 24085) (RPTEND 24087 . 24246) (RPTPUT 24248 . 24746) ( -HPRINTSP 24748 . 24812) (HPERR 24814 . 24911) (HVFWDCDREAD 24913 . 25292) (HVBAKREAD 25294 . 33339) ( -HVREADCHECKGETFN 33341 . 34740) (HVREADEND 34742 . 35094) (HVRPTREAD 35096 . 35622) (HVFWDREAD 35624 - . 36478) (HREAD 36480 . 36802) (HPINITRDTBL 36804 . 37638) (HVREADERR 37640 . 37753) (HPRINSP 37755 - . 37893)) (37896 46778 (COPYALL 37906 . 41809) (\COPYDATATYPE 41811 . 42500) (HCOPYALL 42502 . 42812) - (HCOPYALL1 42814 . 46776)) (46779 54061 (EQUALALL 46789 . 52382) (EQUALHASH 52384 . 54059))))) + (FILEMAP (NIL (4174 6712 (MAKEHVPRETTYCOMS 4184 . 5471) (READVARS 5473 . 6039) (HPRINT0 6041 . 6710)) +(6714 7047 (READVARS-FROM-STRINGS 6714 . 7047)) (7049 7436 (READVARS-FROM-STREAM 7049 . 7436)) (7437 +9365 (READVAR-FROM-STRING 7447 . 7853) (READVARS-FROM-STRING 7855 . 8091) (HPRINT-TO-STRING 8093 . +8299) (HPRINT-TO-STRINGS 8301 . 9363)) (10176 39996 (HPRINT 10186 . 13404) (HPRINT1 13406 . 24908) ( +HPRINTEND 24910 . 25946) (RPTPRINT 25948 . 26186) (RPTEND 26188 . 26347) (RPTPUT 26349 . 26847) ( +HPRINTSP 26849 . 26913) (HPERR 26915 . 27012) (HVFWDCDREAD 27014 . 27393) (HVBAKREAD 27395 . 35440) ( +HVREADCHECKGETFN 35442 . 36841) (HVREADEND 36843 . 37195) (HVRPTREAD 37197 . 37723) (HVFWDREAD 37725 + . 38579) (HREAD 38581 . 38903) (HPINITRDTBL 38905 . 39739) (HVREADERR 39741 . 39854) (HPRINSP 39856 + . 39994)) (39997 48879 (COPYALL 40007 . 43910) (\COPYDATATYPE 43912 . 44601) (HCOPYALL 44603 . 44913) + (HCOPYALL1 44915 . 48877)) (48880 56227 (EQUALALL 48890 . 54548) (EQUALHASH 54550 . 56225))))) STOP diff --git a/sources/HPRINT.LCOM b/sources/HPRINT.LCOM index 68ac9467f05a949afcb61b07919ba20f3fccf266..4b3c4ceb1de40f63d4c742a6dbdee509cf97375b 100644 GIT binary patch delta 7928 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