Skip to content

Commit 931807e

Browse files
authored
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)
1 parent d79d5b3 commit 931807e

File tree

2 files changed

+34
-28
lines changed

2 files changed

+34
-28
lines changed

doctools/IMINDEX

+34-28
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
22

3-
(FILECREATED " 6-Mar-2024 21:19:25" {WMEDLEY}<doctools>IMINDEX.;2 36416
3+
(FILECREATED " 7-Apr-2024 09:25:49" {WMEDLEY}<doctools>IMINDEX.;6 37064
44

55
:EDIT-BY rmk
66

7-
:CHANGES-TO (VARS IMINDEXCOMS)
7+
:CHANGES-TO (FNS IM.INDEX.PUTFN IM.INDEX.GETFN)
88

9-
:PREVIOUS-DATE "12-Feb-92 12:28:48" {WMEDLEY}<doctools>IMINDEX.;1)
9+
:PREVIOUS-DATE " 4-Apr-2024 23:17:47" {WMEDLEY}<doctools>IMINDEX.;5)
1010

1111

1212
(PRETTYCOMPRINT IMINDEXCOMS)
@@ -40,10 +40,10 @@
4040
(DEFINEQ
4141

4242
(IM.INDEX.CLOSEF
43-
[LAMBDA (TEXTSTREAM) (* mjs " 4-Aug-86 17:02")
44-
45-
(* * Closes the IMINDEX pointer file associated with the textstream TEXTSTREAM.
46-
 This is called by means of advice to TEDIT.HARDCOPY.)
43+
[LAMBDA (TEXTSTREAM) (* ; "Edited 4-Apr-2024 22:51 by rmk")
44+
(* mjs " 4-Aug-86 17:02")
45+
46+
(* ;;; "Closes the IMINDEX pointer file associated with the textstream TEXTSTREAM. This is called by means of advice to TEDIT.HARDCOPY.")
4747

4848
(PROG [(PTRFILE (TEXTPROP TEXTSTREAM 'IM.INDEX.PTRFILE]
4949
(if (AND PTRFILE (OPENP PTRFILE))
@@ -87,7 +87,8 @@
8787
'|...|])
8888

8989
(IM.INDEX.DISPLAYFN
90-
[LAMBDA (OBJ STREAM STREAMTYPE HOSTSTREAM) (* ; "Edited 8-Dec-91 15:12 by jds")
90+
[LAMBDA (OBJ STREAM STREAMTYPE HOSTSTREAM) (* ; "Edited 4-Apr-2024 23:17 by rmk")
91+
(* ; "Edited 8-Dec-91 15:12 by jds")
9192

9293
(* ;; "only print index if you are going to display")
9394

@@ -130,22 +131,24 @@
130131

131132
(PROG ((*READTABLE* *TEDIT-FILE-READTABLE*)
132133
PTRFILE PTRFILENAME TXTFILE)
134+
135+
(* ;; "RMK: THIS SHOULD REALLY SAVE THE OPENSTREAM, NOT DEPEND ON ATOMIC FILENAME")
136+
133137
(SETQ PTRFILE (TEXTPROP HOSTSTREAM 'IM.INDEX.PTRFILE))
134-
(COND
135-
((NOT (AND PTRFILE (OPENP PTRFILE)))
138+
(CL:UNLESS (AND PTRFILE (OPENP PTRFILE))
136139
(SETQ PTRFILENAME (TEXTPROP HOSTSTREAM 'IM.INDEX.PTRFILENAME))
137-
[COND
138-
((NULL PTRFILENAME)
140+
(CL:UNLESS PTRFILENAME
139141
(SETQ TXTFILE (fetch (TEXTOBJ TXTFILE) of (TEXTOBJ HOSTSTREAM)))
140-
(SETQ PTRFILENAME (PACKFILENAME 'EXTENSION 'IMPTR 'VERSION NIL 'BODY
142+
[SETQ PTRFILENAME (PACKFILENAME 'EXTENSION 'IMPTR 'VERSION NIL 'BODY
141143
(COND
142144
(TXTFILE (FULLNAME TXTFILE))
143-
(T 'NONAME]
145+
(T 'NONAME])
144146
(SETQ PTRFILENAME (PACKFILENAME 'BODY PTRFILENAME 'BODY (DIRECTORYNAME T)))
145147
(printout PROMPTWINDOW "Opening index pointer file: " PTRFILENAME "...")
146148
(SETQ PTRFILE (OPENSTREAM PTRFILENAME 'OUTPUT 'NEW))
147149
(printout PROMPTWINDOW "done" T)
148-
(TEXTPROP HOSTSTREAM 'IM.INDEX.PTRFILE PTRFILE)))
150+
(TEXTPROP HOSTSTREAM 'IM.INDEX.PTRFILE PTRFILE)
151+
(TEXTPROP HOSTSTREAM 'AFTERHARDCOPYFN (FUNCTION IM.INDEX.CLOSEF)))
149152
(replace (IM.INDEX.DATA PAGE#) of (IMAGEOBJPROP OBJ 'OBJECTDATUM)
150153
with (fetch (PAGEFORMATTINGSTATE PAGE#) of FORMATTINGSTATE))
151154

@@ -253,13 +256,16 @@
253256
else (CONCATLIST (CDR (for X in LST join (LIST " " X])
254257

255258
(IM.INDEX.PUTFN
256-
[LAMBDA (OBJ STREAM) (* ; "Edited 7-Apr-87 18:44 by jds")
259+
[LAMBDA (OBJ STREAM) (* ; "Edited 7-Apr-2024 09:14 by rmk")
260+
(* ; "Edited 7-Apr-87 18:44 by jds")
257261
(PRIN4 (IMAGEOBJPROP OBJ 'OBJECTDATUM)
258-
STREAM])
262+
STREAM
263+
(FIND-READTABLE "OLD-INTERLISP-FILE"])
259264

260265
(IM.INDEX.GETFN
261-
[LAMBDA (FILE TEXTSTREAM) (* mjs " 4-Aug-86 16:26")
262-
(IM.INDEX.CREATEOBJ (READ FILE])
266+
[LAMBDA (FILE TEXTSTREAM) (* ; "Edited 7-Apr-2024 09:14 by rmk")
267+
(* mjs " 4-Aug-86 16:26")
268+
(IM.INDEX.CREATEOBJ (READ FILE (FIND-READTABLE "OLD-INTERLISP-FILE"])
263269

264270
(IM.INDEX.BUTTONEVENTFN
265271
[LAMBDA (OBJ WINDOWSTREAM SEL RELX RELY WIN HOSTSTREAM BUTTON)
@@ -634,13 +640,13 @@
634640

635641
(IM.INDEX.INIT)
636642
(DECLARE%: DONTCOPY
637-
(FILEMAP (NIL (1673 14725 (IM.INDEX.CLOSEF 1683 . 2298) (IM.INDEX.COPYFN 2300 . 2485) (
638-
IM.INDEX.CREATEOBJ 2487 . 3833) (IM.INDEX.DISPLAY.STRING 3835 . 4256) (IM.INDEX.DISPLAYFN 4258 . 8101)
639-
(IM.INDEX.EDIT 8103 . 11571) (IM.INDEX.LIST.FROM.STRING 11573 . 12607) (IM.INDEX.SIZEFN 12609 . 13369
640-
) (IM.INDEX.STRING.FROM.LIST 13371 . 13616) (IM.INDEX.PUTFN 13618 . 13807) (IM.INDEX.GETFN 13809 .
641-
13964) (IM.INDEX.BUTTONEVENTFN 13966 . 14723)) (14726 16796 (IM.INDEX.INIT 14736 . 16794)) (16797
642-
28713 (IM.INDEX.MENU 16807 . 18495) (IM.INDEX.MENU.WHENSELECTEDFN 18497 . 25252) (
643-
IM.INDEX.OBJ.FREEMENU.SELECTEDFN 25254 . 28711)) (31229 36372 (IM.CHAP.COPYFN 31239 . 31419) (
644-
IM.CHAP.CREATEOBJ 31421 . 32847) (IM.CHAP.DISPLAYFN 32849 . 34809) (IM.CHAP.SIZEFN 34811 . 35813) (
645-
IM.CHAP.PUTFN 35815 . 35999) (IM.CHAP.GETFN 36001 . 36162) (IM.CHAP.BUTTONEVENTFN 36164 . 36370)))))
643+
(FILEMAP (NIL (1692 15373 (IM.INDEX.CLOSEF 1702 . 2393) (IM.INDEX.COPYFN 2395 . 2580) (
644+
IM.INDEX.CREATEOBJ 2582 . 3928) (IM.INDEX.DISPLAY.STRING 3930 . 4351) (IM.INDEX.DISPLAYFN 4353 . 8450)
645+
(IM.INDEX.EDIT 8452 . 11920) (IM.INDEX.LIST.FROM.STRING 11922 . 12956) (IM.INDEX.SIZEFN 12958 . 13718
646+
) (IM.INDEX.STRING.FROM.LIST 13720 . 13965) (IM.INDEX.PUTFN 13967 . 14313) (IM.INDEX.GETFN 14315 .
647+
14612) (IM.INDEX.BUTTONEVENTFN 14614 . 15371)) (15374 17444 (IM.INDEX.INIT 15384 . 17442)) (17445
648+
29361 (IM.INDEX.MENU 17455 . 19143) (IM.INDEX.MENU.WHENSELECTEDFN 19145 . 25900) (
649+
IM.INDEX.OBJ.FREEMENU.SELECTEDFN 25902 . 29359)) (31877 37020 (IM.CHAP.COPYFN 31887 . 32067) (
650+
IM.CHAP.CREATEOBJ 32069 . 33495) (IM.CHAP.DISPLAYFN 33497 . 35457) (IM.CHAP.SIZEFN 35459 . 36461) (
651+
IM.CHAP.PUTFN 36463 . 36647) (IM.CHAP.GETFN 36649 . 36810) (IM.CHAP.BUTTONEVENTFN 36812 . 37018)))))
646652
STOP

doctools/IMINDEX.LCOM

177 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)