From 931807ef44cf69a62f7fb29954fdbe680beb902e Mon Sep 17 00:00:00 2001 From: rmkaplan <69548581+rmkaplan@users.noreply.github.com> Date: Mon, 29 Apr 2024 17:04:12 -0700 Subject: [PATCH] IMINDEX: The displayfn of index image objects sets AFTERHARDCOPYFN to close the index file (#1649) * IMINDEX: The displayfn of index image objects sets AFTERHARDCOPYFN to close the index file Removes the need for advising the Tedit hardcopy function. This won't have an effect until a separate PR (after rmk7 is merged) that updates the hardcopy function. * Index image object explicitly uses OLD-INTERLISP-FILE for printing and reading (cf #1652) --- doctools/IMINDEX | 62 +++++++++++++++++++++++------------------- doctools/IMINDEX.LCOM | Bin 16726 -> 16903 bytes 2 files changed, 34 insertions(+), 28 deletions(-) diff --git a/doctools/IMINDEX b/doctools/IMINDEX index b0a0e94b..6b1a8976 100644 --- a/doctools/IMINDEX +++ b/doctools/IMINDEX @@ -1,12 +1,12 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) -(FILECREATED " 6-Mar-2024 21:19:25" {WMEDLEY}IMINDEX.;2 36416 +(FILECREATED " 7-Apr-2024 09:25:49" {WMEDLEY}IMINDEX.;6 37064 :EDIT-BY rmk - :CHANGES-TO (VARS IMINDEXCOMS) + :CHANGES-TO (FNS IM.INDEX.PUTFN IM.INDEX.GETFN) - :PREVIOUS-DATE "12-Feb-92 12:28:48" {WMEDLEY}IMINDEX.;1) + :PREVIOUS-DATE " 4-Apr-2024 23:17:47" {WMEDLEY}IMINDEX.;5) (PRETTYCOMPRINT IMINDEXCOMS) @@ -40,10 +40,10 @@ (DEFINEQ (IM.INDEX.CLOSEF - [LAMBDA (TEXTSTREAM) (* mjs " 4-Aug-86 17:02") - - (* * Closes the IMINDEX pointer file associated with the textstream TEXTSTREAM. - This is called by means of advice to TEDIT.HARDCOPY.) + [LAMBDA (TEXTSTREAM) (* ; "Edited 4-Apr-2024 22:51 by rmk") + (* mjs " 4-Aug-86 17:02") + +(* ;;; "Closes the IMINDEX pointer file associated with the textstream TEXTSTREAM. This is called by means of advice to TEDIT.HARDCOPY.") (PROG [(PTRFILE (TEXTPROP TEXTSTREAM 'IM.INDEX.PTRFILE] (if (AND PTRFILE (OPENP PTRFILE)) @@ -87,7 +87,8 @@ '|...|]) (IM.INDEX.DISPLAYFN - [LAMBDA (OBJ STREAM STREAMTYPE HOSTSTREAM) (* ; "Edited 8-Dec-91 15:12 by jds") + [LAMBDA (OBJ STREAM STREAMTYPE HOSTSTREAM) (* ; "Edited 4-Apr-2024 23:17 by rmk") + (* ; "Edited 8-Dec-91 15:12 by jds") (* ;; "only print index if you are going to display") @@ -130,22 +131,24 @@ (PROG ((*READTABLE* *TEDIT-FILE-READTABLE*) PTRFILE PTRFILENAME TXTFILE) + + (* ;; "RMK: THIS SHOULD REALLY SAVE THE OPENSTREAM, NOT DEPEND ON ATOMIC FILENAME") + (SETQ PTRFILE (TEXTPROP HOSTSTREAM 'IM.INDEX.PTRFILE)) - (COND - ((NOT (AND PTRFILE (OPENP PTRFILE))) + (CL:UNLESS (AND PTRFILE (OPENP PTRFILE)) (SETQ PTRFILENAME (TEXTPROP HOSTSTREAM 'IM.INDEX.PTRFILENAME)) - [COND - ((NULL PTRFILENAME) + (CL:UNLESS PTRFILENAME (SETQ TXTFILE (fetch (TEXTOBJ TXTFILE) of (TEXTOBJ HOSTSTREAM))) - (SETQ PTRFILENAME (PACKFILENAME 'EXTENSION 'IMPTR 'VERSION NIL 'BODY + [SETQ PTRFILENAME (PACKFILENAME 'EXTENSION 'IMPTR 'VERSION NIL 'BODY (COND (TXTFILE (FULLNAME TXTFILE)) - (T 'NONAME] + (T 'NONAME]) (SETQ PTRFILENAME (PACKFILENAME 'BODY PTRFILENAME 'BODY (DIRECTORYNAME T))) (printout PROMPTWINDOW "Opening index pointer file: " PTRFILENAME "...") (SETQ PTRFILE (OPENSTREAM PTRFILENAME 'OUTPUT 'NEW)) (printout PROMPTWINDOW "done" T) - (TEXTPROP HOSTSTREAM 'IM.INDEX.PTRFILE PTRFILE))) + (TEXTPROP HOSTSTREAM 'IM.INDEX.PTRFILE PTRFILE) + (TEXTPROP HOSTSTREAM 'AFTERHARDCOPYFN (FUNCTION IM.INDEX.CLOSEF))) (replace (IM.INDEX.DATA PAGE#) of (IMAGEOBJPROP OBJ 'OBJECTDATUM) with (fetch (PAGEFORMATTINGSTATE PAGE#) of FORMATTINGSTATE)) @@ -253,13 +256,16 @@ else (CONCATLIST (CDR (for X in LST join (LIST " " X]) (IM.INDEX.PUTFN - [LAMBDA (OBJ STREAM) (* ; "Edited 7-Apr-87 18:44 by jds") + [LAMBDA (OBJ STREAM) (* ; "Edited 7-Apr-2024 09:14 by rmk") + (* ; "Edited 7-Apr-87 18:44 by jds") (PRIN4 (IMAGEOBJPROP OBJ 'OBJECTDATUM) - STREAM]) + STREAM + (FIND-READTABLE "OLD-INTERLISP-FILE"]) (IM.INDEX.GETFN - [LAMBDA (FILE TEXTSTREAM) (* mjs " 4-Aug-86 16:26") - (IM.INDEX.CREATEOBJ (READ FILE]) + [LAMBDA (FILE TEXTSTREAM) (* ; "Edited 7-Apr-2024 09:14 by rmk") + (* mjs " 4-Aug-86 16:26") + (IM.INDEX.CREATEOBJ (READ FILE (FIND-READTABLE "OLD-INTERLISP-FILE"]) (IM.INDEX.BUTTONEVENTFN [LAMBDA (OBJ WINDOWSTREAM SEL RELX RELY WIN HOSTSTREAM BUTTON) @@ -634,13 +640,13 @@ (IM.INDEX.INIT) (DECLARE%: DONTCOPY - (FILEMAP (NIL (1673 14725 (IM.INDEX.CLOSEF 1683 . 2298) (IM.INDEX.COPYFN 2300 . 2485) ( -IM.INDEX.CREATEOBJ 2487 . 3833) (IM.INDEX.DISPLAY.STRING 3835 . 4256) (IM.INDEX.DISPLAYFN 4258 . 8101) - (IM.INDEX.EDIT 8103 . 11571) (IM.INDEX.LIST.FROM.STRING 11573 . 12607) (IM.INDEX.SIZEFN 12609 . 13369 -) (IM.INDEX.STRING.FROM.LIST 13371 . 13616) (IM.INDEX.PUTFN 13618 . 13807) (IM.INDEX.GETFN 13809 . -13964) (IM.INDEX.BUTTONEVENTFN 13966 . 14723)) (14726 16796 (IM.INDEX.INIT 14736 . 16794)) (16797 -28713 (IM.INDEX.MENU 16807 . 18495) (IM.INDEX.MENU.WHENSELECTEDFN 18497 . 25252) ( -IM.INDEX.OBJ.FREEMENU.SELECTEDFN 25254 . 28711)) (31229 36372 (IM.CHAP.COPYFN 31239 . 31419) ( -IM.CHAP.CREATEOBJ 31421 . 32847) (IM.CHAP.DISPLAYFN 32849 . 34809) (IM.CHAP.SIZEFN 34811 . 35813) ( -IM.CHAP.PUTFN 35815 . 35999) (IM.CHAP.GETFN 36001 . 36162) (IM.CHAP.BUTTONEVENTFN 36164 . 36370))))) + (FILEMAP (NIL (1692 15373 (IM.INDEX.CLOSEF 1702 . 2393) (IM.INDEX.COPYFN 2395 . 2580) ( +IM.INDEX.CREATEOBJ 2582 . 3928) (IM.INDEX.DISPLAY.STRING 3930 . 4351) (IM.INDEX.DISPLAYFN 4353 . 8450) + (IM.INDEX.EDIT 8452 . 11920) (IM.INDEX.LIST.FROM.STRING 11922 . 12956) (IM.INDEX.SIZEFN 12958 . 13718 +) (IM.INDEX.STRING.FROM.LIST 13720 . 13965) (IM.INDEX.PUTFN 13967 . 14313) (IM.INDEX.GETFN 14315 . +14612) (IM.INDEX.BUTTONEVENTFN 14614 . 15371)) (15374 17444 (IM.INDEX.INIT 15384 . 17442)) (17445 +29361 (IM.INDEX.MENU 17455 . 19143) (IM.INDEX.MENU.WHENSELECTEDFN 19145 . 25900) ( +IM.INDEX.OBJ.FREEMENU.SELECTEDFN 25902 . 29359)) (31877 37020 (IM.CHAP.COPYFN 31887 . 32067) ( +IM.CHAP.CREATEOBJ 32069 . 33495) (IM.CHAP.DISPLAYFN 33497 . 35457) (IM.CHAP.SIZEFN 35459 . 36461) ( +IM.CHAP.PUTFN 36463 . 36647) (IM.CHAP.GETFN 36649 . 36810) (IM.CHAP.BUTTONEVENTFN 36812 . 37018))))) STOP diff --git a/doctools/IMINDEX.LCOM b/doctools/IMINDEX.LCOM index 133af2de7e333e4f6ddc666786f9e762230f3507..576ff64268788cb8a87e12107b711dfdb32cab16 100644 GIT binary patch delta 1883 zcmZuy&yU+g6t=TfyLDM<7o_frs>@R(q|HhRo*%a32qC=5cw=yE*KwL%iK;+T0Ycg$ z#0d^T6%yh`@rfJaz=aE;J#bs0iX#^e`~h4M2RI|an{l#sqWF-VdGqGIdEfiqx4%Es zKmSbs^5i+E>3#5FlbV!+>2|2q;qIgNTYGi`j5^rmAtfC`I`q+OcNz>@LDUl`tz?w> z5nODKh1|Y(26cZFhEToTYPITMOy2tF{sh*9Wu)FP4*Vb#-Bfs)=%Le^ht=Ve@j&F? z>3dgfV2)|?Jkf9T{b&fr#Vgi5ssWuO6}N+UG;H=TK8EL&(pZN$9q#1c==-{rpX+4W z0PRfIH2u|gH2e(tv!iSM$&YVbmFp*?2lCIG@<$z>_m#b3SnqJYYF0PY-FLUO17g~c zi8Ps}0k{?D86NHzT z1Rdf*l8v!_@fcild2c(5{jI{mTDidZ!eM@1_CCo{**;7IZ42s?2WR)O&lKva^VH4% zt$}VlzPa&dEkC^clTLE8vv2u8sCr_2^cvuXfgh&>FUx}Hc$i_M8c=)X+J<(?QxJVS z)1Hp6=aVbHzIX0_DAI)|9JDIn)Xlr z{bsYS?iDSJpRH`lKIMOJzHqN{qLwP`c@Z<-zNXLkCp+cUT{Kn7gdn>l;t3JKD zKUHyO|Ltf8mhG0UwGc_k3#5f*6};eJ@iyY`9Sa0cwiqnz&!XR85qJ5NyQ_w_Q@V3U za%EbO1vnCHo{#ed4>@%duZ9`U=m5C6;2U!p@ET8ubQ=D;CpbdWXuU@H_&q(d+B zjzV#m|ME<710{g73k_gMyFvs|uyb=us=%$Szc!~gab{|jaq!g0sR2;qgK|gV?alz(x(v9qh*P$o9=dmAs> dvL2aWIc39$f)K-EWox76KVRB?tnZEv{|Cb-rUn22 delta 1653 zcmZux&u<$=6!xYeB&JIfQZ=bT>5~-+JIH2dc4l|Ir>^aFvc=xrtk>D(fT9LRO(`Uz z^uo!gLPEV!RvhRBiNBzxXXW_!^nwQk-mQH?U7#3mJ+@`rcI%d`mDJg|vPYI9=qhyA6G4v+2~+&;Vow+|uT z=ro%!=~ph7^U%F{Z@+s^0BUO_U(6O7Uem2bt`oa;$iq1)q>i$ZP|yuV46xn07niC# zaQD+YVAnPrf8A}D;s6R;PSnnV*YfZZL#cmWv9#|$O;rRqi4z*^`b{k+=Lx>wALjys! z@3dTC`ViDL2twBnfkW(W$3gW*Q7sS?DJe@%%3&M{vVmw54qy?;caIJ)?<4sX^0H>S z3HjP5N1vxXHK(Xg9$ff$>KcXBRir0uw&T@R2!Rj;h8H1_em3*lqDbY0K*1& zXpEB*r~zwOZY-q8r-a3?$4<5Bu8BPp8bQ=@;@I=o+cDOy2vZ-buVtnkN!O44%(LX3 z^vl=(@D7uey_si%_NN!__m$lQ7D%>swpzRM-S4{+{=Ico1x1;bL%QD3IOdpFbWhq*j9YgIw-%WAVCN$=Flk zN%G3_E7&=i9pomRg7necrQR^?8{)?w{~+_||NkOWFtiC(@QMyiuN{Y-7`R!%f=hLA zlS;KP;08x!IO{IzM3fb{ZjEFCoLaAJYGa@`aAyV?yED#47ce%`DAS45V>`zBwt$h5 zP8sGokhoqMTd4NXseK^yAXTlK8q~eWt;IpKGeB5Hx)@_0S`q&xl@8Q2PHe*%b^^ub z7<#0CW*<+h1#YF!FD~}Dfz49Af#Gp7bXvf<2C_*|bS0cBA@T+M4zuu0O!FlUu1J>UO&SF=E*TihV!IjdG!d(_TQ?SP$u&YWTKVz)@3?vjRs2 z(~Qxqu=Ml`6>v;EQvaJx8{A8$m)=W%;aAh|%JY{vi1se3zSmR>MKzsYzVf8Mw6*pU DjKX$$