1
0
mirror of synced 2026-04-05 05:51:07 +00:00

WIP. Saving so I can merge in latest TEdit.

This commit is contained in:
Frank Halasz
2026-02-11 15:10:48 -08:00
parent 5a79b56a4f
commit 3fcb7e0819
4 changed files with 325 additions and 153 deletions

View File

@@ -1,21 +1,19 @@
(DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10)
(FILECREATED " 8-Dec-91 15:13:17" {DSK}<users>sybalsky>PUBS>IMTOOLS.;2 65965
changes to%: (VARS IMTOOLSCOMS)
(FNS GRAB.IMPTR PRINT.INDEX.OBJECT REF.TO.PAGE)
(FILECREATED " 3-Feb-2026 23:54:33" {DSK}<home>frank>il>medley>doctools>IMTOOLS.;2 65434
previous date%: " 4-Sep-91 18:04:53" {DSK}<users>sybalsky>PUBS>IMTOOLS.;1)
:EDIT-BY "FGH"
:CHANGES-TO (FNS MAKE.IM.TOC)
:PREVIOUS-DATE " 8-Dec-91 15:13:17" {DSK}<home>frank>il>medley>doctools>IMTOOLS.;1)
(* ; "
Copyright (c) 1985, 1986, 1987, 1988, 1991 by Xerox Corporation. All rights reserved.
")
(PRETTYCOMPRINT IMTOOLSCOMS)
(RPAQQ IMTOOLSCOMS
(RPAQQ IMTOOLSCOMS
( (* ;
 "Maintainance Functions: generating indexes, etc")
 "Maintainance Functions: generating indexes, etc")
(FNS ADD.IM.MENU COLLECT.MODIFIED.IM.CHAPTERS DO.INDEX DO.MANUAL GRAB.IM.MANUAL.PTRS
GRAB.IMPTR IM.COMMAND.MENU IM.TEDIT.SELECTION INIT.INDEX.VARS INSERT.CHARS.AROUND.SEL
INTERPRET.IM.MENU.COMMAND MAKE.IM.TITLE MAKE.IM.TOC NEWTO PRINT.INDEX.OBJECT
@@ -313,26 +311,26 @@ Copyright (c) 1985, 1986, 1987, 1988, 1991 by Xerox Corporation. All rights res
OUTFILE.FLG NIL "Hardcopy of Title Page"])
(MAKE.IM.TOC
[LAMBDA (OUTFILE.FLG CHAPTER.NUMBERS IMPTR.FILES) (* mjs "12-Aug-86 09:54")
[LAMBDA (OUTFILE.FLG CHAPTER.NUMBERS IMPTR.FILES) (* ; "Edited 18-Jan-2026 23:26 by FGH")
(* mjs "12-Aug-86 09:54")
(* * CHAPTER.NUMBERS is either%: NIL, meaning to generate TOC of ALL data
 available; a single number, meaning to generate a chapter TOC for that chapter;
 or a list of numbers, meaning to generate a TOC for those chapters)
 available; a single number, meaning to generate a chapter TOC for that chapter;
 or a list of numbers, meaning to generate a TOC for those chapters)
(PROG* ([IMPTR.DATA (if IMPTR.FILES
then (PROG ((IMPTR.HASH (HASHARRAY 50))
(IMPTR.TOC.LIST NIL)
(IMPTR.NAME.LIST NIL))
(DECLARE (SPECVARS IMPTR.HASH IMPTR.TOC.LIST
IMPTR.NAME.LIST))
[for X in (MKLIST IMPTR.FILES)
do (printout T "Grabbing IMPTR file: " X T)
(IMPTR.TOC.LIST NIL)
(IMPTR.NAME.LIST NIL))
(DECLARE (SPECVARS IMPTR.HASH IMPTR.TOC.LIST IMPTR.NAME.LIST))
[for X in (MKLIST IMPTR.FILES)
do (printout T "Grabbing IMPTR file: " X T)
(* * the IMPTR.TYPES arg to GRAB.IMPTR is a list containing no possible types,
 so that no index entries will be saved.)
(* * the IMPTR.TYPES arg to GRAB.IMPTR is a list containing no possible types, so
 that no index entries will be saved.)
(GRAB.IMPTR X NIL '(XXXXXXXXX]
(RETURN (LIST IMPTR.HASH IMPTR.TOC.LIST IMPTR.NAME.LIST]
(GRAB.IMPTR X NIL '(XXXXXXXXX]
(RETURN (LIST IMPTR.HASH IMPTR.TOC.LIST IMPTR.NAME.LIST]
(IMPTR.HASH (if IMPTR.FILES
then (CAR IMPTR.DATA)
else IMPTR.HASH))
@@ -349,15 +347,14 @@ Copyright (c) 1985, 1986, 1987, 1988, 1991 by Xerox Corporation. All rights res
else "TABLE OF CONTENTS"))
MAKE.IM.TOC.LIST)
(DECLARE (SPECVARS SINGLE.CHAP.TOC.FLG SUBSEC.COUNT.LIST MAKE.IM.TOC.TITLE
MAKE.IM.TOC.LIST IMPTR.HASH IMPTR.TOC.LIST IMPTR.NAME.LIST))
MAKE.IM.TOC.LIST IMPTR.HASH IMPTR.TOC.LIST IMPTR.NAME.LIST))
(SETQ MAKE.IM.TOC.LIST (if (NULL CHAPTER.NUMBERS)
then (APPEND IMPTR.TOC.LIST)
else (for X in IMPTR.TOC.LIST
bind (CHLST _ (MKLIST CHAPTER.NUMBERS))
when (MEMB (CAR (LAST (fetch (IM.INDEX.DATA
SUBSEC)
of X)))
CHLST) collect X)))
else (for X in IMPTR.TOC.LIST bind (CHLST _ (MKLIST
CHAPTER.NUMBERS
))
when (MEMB (fetch (IM.INDEX.DATA CHAPTER) of X)
CHLST) collect X)))
[SORT MAKE.IM.TOC.LIST (FUNCTION (LAMBDA (A B)
(LIST.ORDER (REVERSE (fetch (IM.INDEX.DATA SUBSEC)
of A))
@@ -379,16 +376,15 @@ Copyright (c) 1985, 1986, 1987, 1988, 1991 by Xerox Corporation. All rights res
do
(SETQ TOC.LINE (CAR TOC.PTR))
(PROG ((SECTION.STRING "")
(SEC.LIST (REVERSE (fetch (IM.INDEX.DATA SUBSEC) of
TOC.LINE)))
(SEC.LIST (REVERSE (fetch (IM.INDEX.DATA SUBSEC) of TOC.LINE)))
(PAGE.LIST (REF.TO.PAGE TOC.LINE))
MAJOR.SECTION.FLG LINE.PARA LINE.INDENT)
(SETQ MAJOR.SECTION.FLG (EQLENGTH SEC.LIST 1))
[for X on SEC.LIST
do (SETQ SECTION.STRING (CONCAT SECTION.STRING (CAR X)
(if (CDR X)
then "."
else ""]
(if (CDR X)
then "."
else ""]
(SETQ LINE.INDENT (if MAJOR.SECTION.FLG
then 0
elseif (EQLENGTH SEC.LIST 2)
@@ -406,8 +402,7 @@ Copyright (c) 1985, 1986, 1987, 1988, 1991 by Xerox Corporation. All rights res
then IM.SUBSEC.ONE.TITLE.FONT
else IM.SUBSEC.THREE.TITLE.FONT)
DUMP.CHARS SECTION.STRING DUMP.CHARS ". " DUMP.CHARS
[PROG ((SAV (fetch (IM.INDEX.DATA SAV) of TOC.LINE)
))
[PROG ((SAV (fetch (IM.INDEX.DATA SAV) of TOC.LINE)))
(if (NLISTP SAV)
then (SETQ SAV (CHCON SAV)))
(RETURN (CONS SAV (LAST SAV]
@@ -419,14 +414,13 @@ Copyright (c) 1985, 1986, 1987, 1988, 1991 by Xerox Corporation. All rights res
1 NIL
(APPEND
(if [AND MAJOR.SECTION.FLG
(EQP (CAR SEC.LIST)
(CAR (REVERSE (fetch (IM.INDEX.DATA SUBSEC
)
of (CADR TOC.PTR]
then (* if this is a major heading, and
 there are subheadings, prevent a
 pagebreak here)
'(HEADINGKEEP ON)
(EQP (CAR SEC.LIST)
(CAR (REVERSE (fetch (IM.INDEX.DATA SUBSEC)
of (CADR TOC.PTR]
then (* if this is a major heading, and
 there are subheadings, prevent a
 pagebreak here)
'(HEADINGKEEP ON)
else NIL)
LINE.PARA]
OUTFILE.FLG NIL "Hardcopy of Table of Contents"])
@@ -985,7 +979,7 @@ Copyright (c) 1985, 1986, 1987, 1988, 1991 by Xerox Corporation. All rights res
IM.INDEX.LEFTMARGIN POSTPARALEADING 0 PARALEADING 0 LINELEADING 0])
)
(RPAQQ IM.MANUAL.CHAPTERS
(RPAQQ IM.MANUAL.CHAPTERS
(((NIL iii iv v vi vii viii ix x xi xii xiii xiv xv)
ChapAck)
(1 ChapIntro)
@@ -1022,20 +1016,20 @@ Copyright (c) 1985, 1986, 1987, 1988, 1991 by Xerox Corporation. All rights res
(31 ChapEther ETHEROVERVIEW ETHERPUP ETHERNS ETHERINTROLEVELONE ETHERPUPLEVELONE
ETHERNSLEVELONE ETHEROTHERLEVELONE)))
(RPAQQ IM.MANUAL.VOLUMES ((I 1 2 3 4 5 6 7 8 9 10 11 12)
(II 13 14 15 16 17 18 19 20 21 22 23)
(III 24 25 26 27 28 29 30 31)))
(RPAQQ IM.MANUAL.VOLUMES
((I 1 2 3 4 5 6 7 8 9 10 11 12)
(II 13 14 15 16 17 18 19 20 21 22 23)
(III 24 25 26 27 28 29 30 31)))
(RPAQQ IM.MANUAL.DIRECTORY "{PELE:}<DOC>IRM>")
(FILESLOAD IMTEDIT FREEMENU)
(PUTPROPS IMTOOLS COPYRIGHT ("Xerox Corporation" 1985 1986 1987 1988 1991))
(DECLARE%: DONTCOPY
(FILEMAP (NIL (1285 53259 (ADD.IM.MENU 1295 . 1667) (COLLECT.MODIFIED.IM.CHAPTERS 1669 . 4256) (
DO.INDEX 4258 . 6023) (DO.MANUAL 6025 . 6709) (GRAB.IM.MANUAL.PTRS 6711 . 7127) (GRAB.IMPTR 7129 .
10872) (IM.COMMAND.MENU 10874 . 11304) (IM.TEDIT.SELECTION 11306 . 13009) (INIT.INDEX.VARS 13011 .
13223) (INSERT.CHARS.AROUND.SEL 13225 . 13634) (INTERPRET.IM.MENU.COMMAND 13636 . 14734) (
MAKE.IM.TITLE 14736 . 18929) (MAKE.IM.TOC 18931 . 27165) (NEWTO 27167 . 27736) (PRINT.INDEX.OBJECT
27738 . 45522) (PRINT.INDEX.SUBREFS 45524 . 49994) (PROCESS.IM.CHAPTERS 49996 . 52611) (REF.TO.PAGE
52613 . 52963) (REFS.TO.PAGES 52965 . 53257)) (53260 63626 (MAKE.IM.INDEX 53270 . 63624)))))
(FILEMAP (NIL (1161 52842 (ADD.IM.MENU 1171 . 1543) (COLLECT.MODIFIED.IM.CHAPTERS 1545 . 4132) (
DO.INDEX 4134 . 5899) (DO.MANUAL 5901 . 6585) (GRAB.IM.MANUAL.PTRS 6587 . 7003) (GRAB.IMPTR 7005 .
10748) (IM.COMMAND.MENU 10750 . 11180) (IM.TEDIT.SELECTION 11182 . 12885) (INIT.INDEX.VARS 12887 .
13099) (INSERT.CHARS.AROUND.SEL 13101 . 13510) (INTERPRET.IM.MENU.COMMAND 13512 . 14610) (
MAKE.IM.TITLE 14612 . 18805) (MAKE.IM.TOC 18807 . 26748) (NEWTO 26750 . 27319) (PRINT.INDEX.OBJECT
27321 . 45105) (PRINT.INDEX.SUBREFS 45107 . 49577) (PROCESS.IM.CHAPTERS 49579 . 52194) (REF.TO.PAGE
52196 . 52546) (REFS.TO.PAGES 52548 . 52840)) (52843 63209 (MAKE.IM.INDEX 52853 . 63207)))))
STOP