(FILECREATED "28-MAR-83 12:00:37" <NEWLISP>COMMENT.;1 22415 changes to: (FNS FONTNAME) previous date: " 9-MAR-83 21:53:07" <LISP>COMMENT.;157) (* Copyright (c) 1983 by Xerox Corporation) (PRETTYCOMPRINT COMMENTCOMS) (RPAQQ COMMENTCOMS [(VARS LCASELST UCASELST ABBREVLST) [COMS (* * PRINTFN) (FNS PF PF* PMORE PRINTFN PRINTFNDEF FINDFNDEF FINDBCPLDEF FINDSUBRDEF SEARCHFILEMAP) (E (* currently PFDEFAULT has 3 possible settings: COPYBYTES means always use COPYBYTES to print the functions. - NIL means use the PFCOPYBYTES function, which prints comments as **COMMENT**FLG, and reduces the spacing from the left margin by 1/2 and gets rid of the changechar indicators. - PFDEFAULT=T uses PFCOPYBYTES, but leaves the spacing as-is)) (INITVARS PFDEFAULT (LASTFNDEF)) (P (MOVD? (QUOTE COPYBYTES) (QUOTE PFCOPYBYTES))) (USERMACROS PF) (PROP MAC SUBR) (BLOCKS (NIL PRINTFN PF PF* PMORE PRINTFNDEF (LOCALVARS . T) (GLOBALVARS **COMMENT**FLG LASTFNDEF LASTWORD PFDEFAULT FILERDTBL)) (NIL FINDFNDEF FINDSUBRDEF FINDBCPLDEF SEARCHFILEMAP (GLOBALVARS FILERDTBL BUILDMAPFLG ERRORTYPELST USEMAPFLG) (NOLINKFNS . T] [COMS (* * FONT) (FNS FONTSET FONTNAME FONTPROFILE FONTPROFILE1) (INITVARS (FONTESCAPECHAR (CHARACTER 6)) (FONTFNS) (FONTWORDS)) (VARS FONTDEFSVARS) [ADDVARS (FONTSETUPFNS) (FONTDEFS (STANDARD (FONTCHANGEFLG) (FILELINELENGTH . 72) (COMMENTLINELENGTH . 72) (LAMBDAFONTLINELENGTH . 72) (FIRSTCOL . 48) (PRETTYLCOM . 14) (LISTFILESTR . " ") (FONTPROFILE (DEFAULTFONT) (USERFONT) (COMMENTFONT) (LAMBDAFONT) (SYSTEMFONT) (CLISPFONT) (CHANGEFONT) (PRETTYCOMFONT) (BIGFONT) (LITTLEFONT) (BOLDFONT))) (SMALL (FONTCHANGEFLG) (FILELINELENGTH . 96) (COMMENTLINELENGTH . 96) (LAMBDAFONTLINELENGTH . 96) (FIRSTCOL . 60) (PRETTYLCOM . 14) (LISTFILESTR . " ") (FONTPROFILE (DEFAULTFONT) (USERFONT) (COMMENTFONT) (LAMBDAFONT) (SYSTEMFONT) (CLISPFONT) (CHANGEFONT) (PRETTYCOMFONT) (BIGFONT) (LITTLEFONT) (BOLDFONT] [DECLARE: DONTEVAL@LOAD DOCOPY (P (FONTSET (QUOTE STANDARD] (BLOCKS (NIL FONTSET FONTNAME FONTPROFILE FONTPROFILE1 (LOCALVARS . T) (GLOBALVARS FONTPROFILE FONTCHANGEFLG FONTESCAPECHAR FONTDEFS FONTDEFSVARS] (COMS (* Some prettyprint macros) (FNS LONGLAMBDA.PPMACRO LONGPROGN.PPMACRO)) (DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDVARS (NLAMA PF* PF) (NLAML) (LAMA]) (RPAQQ LCASELST (A ADD AN AND ARRAY ARRAYS AS ATOM ATOMIC ATOMS ATTACH BETWEEN BY CALLS CHARACTER CHART COLLECT COMMENT CONTROL COPY COUNT CREATE DEFINE DIFFERENCE DISPLAY DIVIDE DO E EDIT EITHER ELSE EQ EQUAL EQUALS ERROR EVERY FINALLY FIRST FIX FIXED FLOATING FOR FROM FUNCTION GET GO GREATER HELP IF IN INPUT INTEGER INTEGERS IS JOIN LAST LENGTH LESS LIST LISTS LITATOM LITATOMS LITERAL MARK MEMB MEMBER MEMBERS MINUS MIXED MOVE MOVES NEGATIVE NOT NTH NULL NUMBER NUMBERS OF OLD ON OR OUTPUT PLUS POINT POSITION PRETTY PRINT PUSH PUT QUIT READ REMOVE RESET RESTORE RESULTS RETURN REVERSE SAVED SET SIDE SKIP SMALL SOME SORT START STRING STRINGS TAIL THAN THE THEN THRU TIME TIMES TO UNLESS UNTIL USED VARIABLES WHEN WHERE WHILE)) (RPAQQ UCASELST NIL) (RPAQQ ABBREVLST (ETC. I.E. E.G. etc. i.e. e.g.)) (* * PRINTFN) (DEFINEQ (PF [NLAMBDA FN (* rmk: "18-AUG-81 13:38") (RESETLST (* Print from files known to masterscope database before looking at whereis database. Note, however, that it also prefers the masterscope database to incore files) (PROG (OUT OTHERARGS) [COND ((LISTP FN) (SETQ OTHERARGS (CDR FN)) (SETQ FN (CAR FN] (COND (FN (SETQ LASTWORD FN)) (T (SETQ FN LASTWORD))) [RESETSAVE (OUTPUT (COND ((CADR OTHERARGS) (OR (OPENP (CADR OTHERARGS) (QUOTE OUTPUT)) (PROGN [RESETSAVE (SETQ OUT (OPENFILE (CADR OTHERARGS) (QUOTE OUTPUT))) (QUOTE (PROGN (CLOSEF? OLDVALUE] OUT))) (T T] (COND ((CAR OTHERARGS) (for FILE inside (CAR OTHERARGS) do (PRINTFN FN FILE))) (T (WHEREIS FN (QUOTE FNS) T (FUNCTION PRINTFN]) (PF* [NLAMBDA FN (* lmm "30-MAR-78 23:40") (RESETVARS (**COMMENT**FLG) (APPLY (FUNCTION PF) FN]) (PMORE (LAMBDA NIL (* lmm " 9-AUG-78 17:21") (* lmm "17-MAY-78 15:38") (PRINTFNDEF (CAR LASTFNDEF) T (CADDR LASTFNDEF) -1 (CADDDR LASTFNDEF)))) (PRINTFN (LAMBDA (FN FROMFILE TOFILE) (* lmm " 9-AUG-78 17:21") (PROG ((LOC (FINDFNDEF FN FROMFILE))) (COND (LOC (SETQ LASTFNDEF LOC) (PRINTFNDEF (CAR LOC) TOFILE (CADR LOC) (CADDR LOC) (CADDDR LOC)) (RETURN FN)))))) (PRINTFNDEF [LAMBDA (SRCFIL DSTFIL START END TYPE) (* rmk: " 1-MAR-82 15:45" ) (RESETLST (PROG (TEM) [COND ((NULL DSTFIL) (SETQ DSTFIL (OUTPUT))) ((SETQ TEM (OPENP DSTFIL)) (SETQ DSTFIL TEM)) (T (RESETSAVE (SETQ DSTFIL (OPENFILE DSTFIL (QUOTE OUTPUT))) (QUOTE (PROGN (CLOSEF? OLDVALUE] [COND ((SETQ TEM (OPENP SRCFIL (QUOTE INPUT))) (RESETSAVE NIL (LIST (QUOTE SETFILEPTR) TEM (GETFILEPTR TEM))) (SETQ SRCFIL TEM)) (T (RESETSAVE (SETQ SRCFIL (OPENFILE SRCFIL (QUOTE INPUT))) (QUOTE (PROGN (CLOSEF? OLDVALUE] (PRIN1 "{from " DSTFIL) (PRIN2 SRCFIL DSTFIL T) (PRIN1 "} " DSTFIL)) (COND ((OR (NEQ DSTFIL T) (EQ PFDEFAULT (QUOTE COPYBYTES)) (EQ TYPE (QUOTE MAC))) (COPYBYTES SRCFIL DSTFIL START END)) (T (PFCOPYBYTES SRCFIL DSTFIL START END PFDEFAULT))) (TERPRI DSTFIL]) (FINDFNDEF [LAMBDA (FN FROMFILE) (* rmk: " 1-MAR-82 15:43" ) (PROG (FULL ST TEM MAP) [COND [(SETQ TEM (GETP FROMFILE (QUOTE MAC))) (RETURN (FINDSUBRDEF FN (CAR TEM) (CADR TEM) (CADDR TEM] ((SETQ TEM (GETP FROMFILE (QUOTE BCPL))) (RETURN (FINDBCPLDEF FN (CAR TEM) (CADR TEM) (CADDR TEM] (RETURN (AND (SETQ FULL (OR (AND [SETQ TEM (LISTP (GETP FROMFILE (QUOTE FILEDATES] (INFILEP (CDAR TEM))) (FINDFILE FROMFILE T))) (COND ((AND USEMAPFLG (SETQ MAP (GETP (NAMEFIELD FULL) (QUOTE FILEMAP))) (EQ FULL (CAR MAP))) (* quick check when the file already has a map) (SEARCHFILEMAP FN MAP)) (T (RESETLST (RESETSAVE (INPUT)) (INFILE FULL) (RESETSAVE NIL (LIST (QUOTE CLOSEF?) (INPUT))) (RESETSAVE (SETREADTABLE FILERDTBL)) (SELECTQ (SETQ ST (RATOM)) [%( (* Assume it's a lisp file) (COND ([AND USEMAPFLG (EQ (RATOM) (QUOTE FILECREATED)) [PROGN (SKREAD) (* DATE) (SKREAD) (* NAME) (FIXP (SETQ ST (RATOM] [PROGN (SETFILEPTR NIL ST) (* next expression checks to make sure FILEMAP is valid, e.g. file may have been ftped to dorado. reason for the errorset is if file map is not valid, may read off of end of file.) (AND [RESETVARS (ERRORTYPELST) (RETURN (NLSETQ (PROGN (READC) (SETQ TEM (RATOM] (EQ TEM (QUOTE FILEMAP] (SETQ ST (FFILEPOS (CONCAT " (" FN " ") (INPUT) ST NIL NIL NIL (SEPRCASE))) (OR (EQ (RATOM) FN) (EQ (RATOM) FN)) (FIXP (SETQ ST (RATOM))) (EQ (RATOM) (QUOTE %.)) (FIXP (SETQ TEM (RATOM] (LIST (INPUT) ST TEM (QUOTE SCAN))) ((AND BUILDMAPFLG (SETQ MAP (LOADFILEMAP FULL))) (* will rebuild filemap. rewrite it on file if updatemapflg is T.) (SEARCHFILEMAP FN (LIST FULL MAP] ((TITLE Title title) (FINDSUBRDEF FN)) (SELCHARQ (NTHCHARCODE ST 1) ((; *) (FINDSUBRDEF FN)) (/ (FINDBCPLDEF FN)) NIL]) (FINDBCPLDEF [LAMBDA (FN FROMFILES DIRS INDEX) (* rmk: " 5-MAY-81 22:00") (RESETLST (PROG ((LABEL FN) TEM BCPLFILE TEM2 INDEXFILE LABLEN) [SETQ LABLEN (NCHARS (SETQ LABEL (CONCAT " " LABEL "("] (RETURN (for BC in (OR (LISTP FROMFILES) (SETQ FROMFILES (LIST FROMFILES))) do (COND ((SETQ BCPLFILE (FINDFILE (PACKFILENAME (QUOTE BODY) BC (QUOTE EXTENSION) (QUOTE BCPL)) T DIRS)) [RESETSAVE NIL (LIST (QUOTE CLOSEF?) (INPUT (INFILE BCPLFILE] (SETFILEPTR BCPLFILE 0) (COND ([SETQ TEM (PROG NIL LP (COND ((SETQ TEM (FFILEPOS LABEL BCPLFILE)) (SETFILEPTR BCPLFILE (SETQ TEM (IDIFFERENCE TEM 3))) (COND [(FMEMB (U-CASE (RATOM BCPLFILE FILERDTBL)) (QUOTE (AND LET))) (RETURN (LIST BCPLFILE TEM (PROGN (FFILEPOS "[" BCPLFILE) (SKREAD BCPLFILE) (GETFILEPTR BCPLFILE)) (QUOTE BCPL] (T (SETFILEPTR BCPLFILE (IPLUS TEM LABLEN 3)) (GO LP] (MOVETOP BC FROMFILES) (RETURN TEM]) (FINDSUBRDEF [LAMBDA (FN FROMFILES DIRS INDEX) (* rmk: " 6-JUN-82 15:28" ) (RESETLST (PROG ((LABEL FN) TEM MACFILE TEM2 INDEXFILE) [COND ((EQ (NTHCHARCODE LABEL -1) (CHARCODE :))) ((NULL INDEX) (RETURN)) ((AND (CAR INDEX) (SETQ INDEXFILE (FINDFILE (PACK* (CAR INDEX) ".MAC") T DIRS)) (FFILEPOS (CONCAT (CADR INDEX) LABEL (CADDR INDEX)) (PROGN [RESETSAVE NIL (LIST (QUOTE CLOSEF?) (SETQ INDEXFILE (INPUT (INFILE INDEXFILE] INDEXFILE) (CADDDR INDEX) NIL NIL T)) (SETQ TEM (RSTRING INDEXFILE T)) (SELECTQ (CADDDR (CDR INDEX)) [EXEC (SETQ LABEL (COND ((SETQ TEM2 (STRPOS "," TEM)) (SUBSTRING TEM (ADD1 TEM2) -1)) (T (CONCAT "." (COND ((NOT (IGREATERP (NCHARS LABEL) 5)) LABEL) (T (SUBSTRING LABEL 1 5 TEM] (SETQ LABEL (SUBSTRING TEM 1 (SUB1 (OR (STRPOS "," TEM) 0)) TEM] [SETQ LABEL (CONCAT " " LABEL (COND ((EQ (NTHCHARCODE LABEL -1) (CHARCODE :)) "") (T (QUOTE :] (RETURN (for MC inside (OR FROMFILES (INPUT)) do [AND (SETQ MACFILE (FINDFILE (PACKFILENAME (QUOTE BODY) MC (QUOTE EXTENSION) (QUOTE MAC)) T DIRS)) (OR (EQ MACFILE INDEXFILE) (RESETSAVE NIL (LIST (QUOTE CLOSEF?) (INPUT (INFILE MACFILE] (COND ((SETQ TEM (FFILEPOS LABEL MACFILE 0)) (PROG (CR (MAXBEG (IPLUS TEM 2)) (MINBEG 0) (TRY (IDIFFERENCE TEM 80)) (ENDTRY (IDIFFERENCE TEM 2)) MAXP MINP) LP (COND ((ILESSP TRY MINBEG) (SETQ TRY MINBEG))) (SETQ CR TRY) [while (SETQ CR (FFILEPOS " " MACFILE CR ENDTRY NIL T)) do (SELECTQ (PEEKC MACFILE) ((; *) (OR MAXP (SETQ MAXP CR))) (% ) (PROGN (SETQ MAXP NIL) (SETQ MINP CR] (COND (MAXP (SETQ MAXBEG MAXP))) (COND ((AND (NULL MINP) (IGREATERP TRY MINBEG)) (SETQ ENDTRY TRY) (SETQ TRY (IDIFFERENCE TRY 80)) (GO LP))) (SETQ TEM2 MAXBEG)) (AND (LISTP FROMFILES) (MOVETOP MC FROMFILES)) (RETURN (LIST MACFILE TEM2 [SUB1 (OR (FFILEPOS (OR (CADDDR (CDDR INDEX)) "") MACFILE TEM) (ADD1 (GETEOFPTR MACFILE] (QUOTE MAC]) (SEARCHFILEMAP (LAMBDA (FN MAP) (* lmm " 9-AUG-78 17:20") (PROG (VALUE) (AND (SOME (CDADR MAP) (FUNCTION (LAMBDA (X) (SETQ VALUE (FASSOC FN X))))) (RETURN (LIST (CAR MAP) (CADR VALUE) (CDDR VALUE) (QUOTE MAP))))))) ) (RPAQ? PFDEFAULT NIL) (RPAQ? LASTFNDEF ) (MOVD? (QUOTE COPYBYTES) (QUOTE PFCOPYBYTES)) (ADDTOVAR EDITMACROS [PF NIL (ORR [(E (APPLY* (QUOTE PF) (FIRSTATOM (##] ((E (QUOTE PF?]) (ADDTOVAR EDITCOMSA PF) (PUTPROPS SUBR MAC ((ATHASH LISP GC SWAP BYTE) (NEWLISP LISP NETLISP) (LISP "ATM <" ">," 250000 LISP))) [DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY (BLOCK: NIL PRINTFN PF PF* PMORE PRINTFNDEF (LOCALVARS . T) (GLOBALVARS **COMMENT**FLG LASTFNDEF LASTWORD PFDEFAULT FILERDTBL)) (BLOCK: NIL FINDFNDEF FINDSUBRDEF FINDBCPLDEF SEARCHFILEMAP (GLOBALVARS FILERDTBL BUILDMAPFLG ERRORTYPELST USEMAPFLG) (NOLINKFNS . T)) ] (* * FONT) (DEFINEQ (FONTSET [LAMBDA (NAME) (* rmk: "22-NOV-81 14:36") (PROG (TEM) (RETURN (COND ((SETQ TEM (FASSOC NAME FONTDEFS)) (* Looks up NAME on FONTSLST and sets apropriate parameters. entries are added to fontslst by FONTNAME.) [MAPC (CDR TEM) (FUNCTION (LAMBDA (X) (/SETATOMVAL (CAR X) (CDR X] (FONTPROFILE FONTPROFILE) (SETQ FONTNAME NAME)) (T (ERROR NAME "not a defined font configuration"]) (FONTNAME [LAMBDA (NAME) (* lmm "28-MAR-83 12:00") (* Defines NAME to correspond to current setting of various parameters, and adds to FONTDEFS) (PROG [TEM (L (CONS NAME (MAPCAR FONTDEFSVARS (FUNCTION (LAMBDA (X) (CONS X (GETATOMVAL X] (RETURN (COND [(SETQ TEM (FASSOC NAME FONTDEFS)) (/RPLACD TEM (CDR L)) (RETURN (LIST NAME (QUOTE redefined] (T (/SETATOMVAL (QUOTE FONTDEFS) (CONS L FONTDEFS)) NAME]) (FONTPROFILE [LAMBDA (PROFILE) (* rmk: "23-NOV-81 16:47" ) (* The user defines a font configurationby setting the variables DEFAULTFONT, CLISPFONT, SYSTEMFONT, USERFONT, LAMBDAFONT, COMMENTFONT. If non-NIL they define the font to be used on corresonding class of WORDS as follows: (1 words) CLISPFONT is font to be used on cispwords, USERFONT all members of the list FONTFNS, or if FONTFNS=T, all members of FILEFNS. USERFONT also applies to all members of FONTWORDS, initially NIL. SYSTEMFONT used for other functions. COMMENTFONT for printing comments, and LAMBDAFONT for printing the function name before its definition. The same font name can be given to more than one of th above, although there is a limit on the xgp of 3 fonts. The psuedo-font UNDERLINE is also avaiaable, e.g. CLISPFONT=UNDERLINE means underline all clispwords.) (DECLARE (GLOBALVARS FONTSETUPFNS)) [PROG (BASICCLASSES) [MAPC PROFILE (FUNCTION (LAMBDA (X) (PROG (SEEN (NAME (CAR X)) (FONTS X)) LP [COND ((MEMB (CAR FONTS) SEEN) (ERROR "Circular font profile specification" X)) (T (push SEEN (CAR FONTS] [SETQ FONTS (CDR (COND ((OR (NULL (CADR FONTS)) (LISTP (CADR FONTS))) (* This skips over the now-defunct NIL or list-of-escape sequence) (CDR FONTS)) (T FONTS] [COND ((OR (NLISTP FONTS) (LITATOM (CAR FONTS))) (* Indirect thru another's font spec) (AND (SETQ FONTS (ASSOC (SELECTQ (CAR (LISTP FONTS)) ((NIL DEFAULTFONT) (* Don't let DEFAULTFONT loop thru itself) (AND (NOT (MEMB (QUOTE DEFAULTFONT) SEEN)) (QUOTE DEFAULTFONT))) (CAR FONTS)) PROFILE)) (GO LP))) (T (push BASICCLASSES (CONS NAME FONTS)) (* The CONS is needed to compensate for the old style specification, with the smash-cell.) (SETQ FONTS (FONTPROFILE1 NAME FONTS] (AND NAME (/SETATOMVAL NAME FONTS)) (* NIL for the class-name means just establish the font-correspondences but don't connect them up with a pretty class name.) (RETURN] (MAPC FONTSETUPFNS (FUNCTION (LAMBDA (FNS) (* FONTSETUPFNS supplies device-dependent fontsetup functions. CAR of the pairs on FONTSETUPFNS are executed after all fonts have been processed. This is used typically to set up inverse mappings between font numbers and device-dependent fonts The CADR is executed in FONTPROFILE1 on each element to produce individual descriptors.) (AND (CADR FNS) (APPLY* (CADR FNS) BASICCLASSES] T]) (FONTPROFILE1 [LAMBDA (NAME FONTLIST) (* rmk: "21-NOV-81 13:56") (* Internalizes a FONTLIST of user-readable font specifications for various devices. The device-dependent setup function is obtained from the parallel list FONTSETUPFNS, which can be initialized to NIL when only symbolic file escape sequences are specified.) (DECLARE (GLOBALVARS FONTSETUPFNS FONTESCAPECHAR)) (for FNS in (OR FONTSETUPFNS (QUOTE (NIL))) as FONT in FONTLIST collect (COND ((CAR FNS) (* NAME enables, e.g., global var declarations.) (APPLY* (CAR FNS) NAME FONT)) ((NULL FONT) (* Now starts the generic setup, suitable only for symbolic files) NIL) ((FIXP FONT) (PACK* FONTESCAPECHAR (CHARACTER FONT))) (T (ERROR "illegal font specification" FONT]) ) (RPAQ? FONTESCAPECHAR (CHARACTER 6)) (RPAQ? FONTFNS ) (RPAQ? FONTWORDS ) (RPAQQ FONTDEFSVARS (FONTCHANGEFLG FILELINELENGTH COMMENTLINELENGTH FIRSTCOL PRETTYLCOM LISTFILESTR FONTPROFILE FONTESCAPECHAR)) (ADDTOVAR FONTSETUPFNS ) (ADDTOVAR FONTDEFS (STANDARD (FONTCHANGEFLG) (FILELINELENGTH . 72) (COMMENTLINELENGTH . 72) (LAMBDAFONTLINELENGTH . 72) (FIRSTCOL . 48) (PRETTYLCOM . 14) (LISTFILESTR . " ") (FONTPROFILE (DEFAULTFONT) (USERFONT) (COMMENTFONT) (LAMBDAFONT) (SYSTEMFONT) (CLISPFONT) (CHANGEFONT) (PRETTYCOMFONT) (BIGFONT) (LITTLEFONT) (BOLDFONT))) (SMALL (FONTCHANGEFLG) (FILELINELENGTH . 96) (COMMENTLINELENGTH . 96) (LAMBDAFONTLINELENGTH . 96) (FIRSTCOL . 60) (PRETTYLCOM . 14) (LISTFILESTR . " ") (FONTPROFILE (DEFAULTFONT) (USERFONT) (COMMENTFONT) (LAMBDAFONT) (SYSTEMFONT) (CLISPFONT) (CHANGEFONT) (PRETTYCOMFONT) (BIGFONT) (LITTLEFONT) (BOLDFONT)))) (DECLARE: DONTEVAL@LOAD DOCOPY (FONTSET (QUOTE STANDARD)) ) [DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY (BLOCK: NIL FONTSET FONTNAME FONTPROFILE FONTPROFILE1 (LOCALVARS . T) (GLOBALVARS FONTPROFILE FONTCHANGEFLG FONTESCAPECHAR FONTDEFS FONTDEFSVARS)) ] (* Some prettyprint macros) (DEFINEQ (LONGLAMBDA.PPMACRO [LAMBDA (FORM) (* bvm: " 2-MAR-83 15:35") (* Prettyprintmacro for forms whose CAR is a long word and look like a lambda--first arg wants to be on first line, others after it) (COND ((AND (LISTP FORM) (LISTP (CDR FORM)) (LISTP (CDDR FORM))) (PROG [(POS (IPLUS 4 (POSITION] (PRIN1 "(") (PRIN2 (CAR FORM)) (SPACES 1) (PRINTDEF (CADR FORM) (POSITION)) (OR [EQ COMMENTFLG (CAAR (SETQ FORM (CDDR FORM] (TAB POS 0)) (PRINTDEF FORM POS T T FNSLST) (PRIN1 ")") (RETURN NIL))) (T FORM]) (LONGPROGN.PPMACRO [LAMBDA (FORM) (* bvm: " 2-MAR-83 15:37") (* Prettyprintmacro for forms whose CAR is a long word and look like a progn--all args equal weight, one below another) (COND ((AND (LISTP FORM) (LISTP (CDR FORM))) (PROG [(POS (IPLUS 4 (POSITION] (PRIN1 "(") (PRIN2 (CAR FORM)) (OR [EQ COMMENTFLG (CAAR (SETQ FORM (CDR FORM] (TAB POS 0)) (PRINTDEF FORM POS T T FNSLST) (PRIN1 ")") (RETURN NIL))) (T FORM]) ) (DECLARE: DONTEVAL@LOAD DOEVAL@COMPILE DONTCOPY COMPILERVARS (ADDTOVAR NLAMA PF* PF) (ADDTOVAR NLAML ) (ADDTOVAR LAMA ) ) (PUTPROPS COMMENT COPYRIGHT ("Xerox Corporation" 1983)) (DECLARE: DONTCOPY (FILEMAP (NIL (3949 13293 (PF 3961 . 4920) (PF* 4924 . 5086) (PMORE 5090 . 5374) (PRINTFN 5378 . 5706) (PRINTFNDEF 5710 . 6695) (FINDFNDEF 6699 . 9098) (FINDBCPLDEF 9102 . 10358) (FINDSUBRDEF 10362 . 12957) (SEARCHFILEMAP 12961 . 13290)) (14028 19292 (FONTSET 14040 . 14593) (FONTNAME 14597 . 15155) ( FONTPROFILE 15159 . 18164) (FONTPROFILE1 18168 . 19289)) (20829 22188 (LONGLAMBDA.PPMACRO 20841 . 21528) (LONGPROGN.PPMACRO 21532 . 22185))))) STOP