|
1 | 1 | (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "INTERLISP" BASE 10) |
2 | 2 |
|
3 | | -(FILECREATED " 7-Mar-2024 09:55:14" {WMEDLEY}<library>TEDIT>TEDIT-PAGE.;154 111276 |
| 3 | +(FILECREATED "13-Mar-2024 17:12:34" {WMEDLEY}<library>TEDIT>TEDIT-PAGE.;163 112427 |
4 | 4 |
|
5 | 5 | :EDIT-BY rmk |
6 | 6 |
|
7 | | - :CHANGES-TO (FNS TEDIT.FORMAT.HARDCOPY) |
| 7 | + :CHANGES-TO (FNS TEDIT.FORMATBOX \TEDIT.FORMAT.FOOTNOTE) |
| 8 | + (RECORDS PAGEFORMATTINGSTATE PAGEREGION) |
| 9 | + (MACROS GETPFS SETPFS) |
8 | 10 |
|
9 | | - :PREVIOUS-DATE " 7-Mar-2024 00:14:19" {WMEDLEY}<library>TEDIT>TEDIT-PAGE.;152) |
| 11 | + :PREVIOUS-DATE "13-Mar-2024 10:28:14" {WMEDLEY}<library>tedit>TEDIT-PAGE.;157) |
10 | 12 |
|
11 | 13 |
|
12 | 14 | (PRETTYCOMPRINT TEDIT-PAGECOMS) |
|
559 | 561 |
|
560 | 562 | (TEDIT.FORMAT.HARDCOPY |
561 | 563 | [LAMBDA (TEXTSTREAM FILE DONTSEND BREAKPAGETITLE SERVER PRINTOPTIONS IMAGETYPE FIRSTPG# STARTPG |
562 | | - ENDPG) (* ; "Edited 7-Mar-2024 09:55 by rmk") |
| 564 | + ENDPG) (* ; "Edited 7-Mar-2024 12:34 by rmk") |
563 | 565 | (* ; "Edited 19-Jan-2024 23:39 by rmk") |
564 | 566 | (* ; "Edited 24-Dec-2023 14:10 by rmk") |
565 | 567 | (* ; "Edited 15-Nov-2023 23:56 by rmk") |
|
577 | 579 | (SETQ TEXTSTREAM (if (TEXTSTREAM TEXTSTREAM T) |
578 | 580 | elseif (TEDIT.FORMATTEDFILEP TEXTSTREAM) |
579 | 581 | then (CL:UNLESS (\GETSTREAM TEXTSTREAM 'INPUT T) |
580 | | - [RESETSAVE (SETQ TEXTSTREAM (OPENSTREAM TEXTSTREAM 'INPUT)) |
| 582 | + [RESETSAVE (SETQ TEXTSTREAM (OPENTEXTSTREAM TEXTSTREAM)) |
581 | 583 | `(PROGN (CLOSEF? OLDVALUE]) |
582 | | - (OPENTEXTSTREAM TEXTSTREAM) |
| 584 | + TEXTSTREAM |
583 | 585 | else (ERROR TEXTSTREAM "is not a Tedit stream"))) |
584 | 586 | (PROG ((TEXTOBJ (fetch (TEXTSTREAM TEXTOBJ) of TEXTSTREAM)) |
585 | 587 | [FORMATTINGSTATE (create PAGEFORMATTINGSTATE |
|
705 | 707 |
|
706 | 708 | (TEDIT.FORMATBOX |
707 | 709 | [LAMBDA (TEXTOBJ PRSTREAM STARTINGCHNO PAGEREGION FORMATTINGSTATE) |
| 710 | + (* ; "Edited 13-Mar-2024 17:09 by rmk") |
708 | 711 | (* ; "Edited 20-Jan-2024 12:16 by rmk") |
709 | 712 | (* ; "Edited 28-Jun-2023 15:54 by rmk") |
710 | 713 | (* ; "Edited 22-Jun-2023 21:50 by rmk") |
|
820 | 823 | "For now, draw a box around it, too.") |
821 | 824 | ) |
822 | 825 | NIL) |
823 | | - (for LINE in LINES when LINE do (* ; |
| 826 | + (for LINE LTEXTOBJ in LINES when LINE do (* ; |
824 | 827 | "Run thru the lines displaying them all.") |
825 | | - (BLOCK) |
826 | | - (CL:WHEN (OR (NOT (GETPFS FORMATTINGSTATE MINPAGE#)) |
827 | | - (IGEQ (GETPFS FORMATTINGSTATE PAGE#) |
828 | | - (GETPFS FORMATTINGSTATE MINPAGE#))) |
| 828 | + (BLOCK) |
| 829 | + (SETQ LTEXTOBJ (fetch (TEXTSTREAM TEXTOBJ) |
| 830 | + of (FGETLD LINE LTEXTSTREAM))) |
| 831 | + (CL:WHEN (OR (NOT (GETPFS FORMATTINGSTATE MINPAGE#) |
| 832 | + ) |
| 833 | + (IGEQ (GETPFS FORMATTINGSTATE PAGE#) |
| 834 | + (GETPFS FORMATTINGSTATE MINPAGE# |
| 835 | + ))) |
829 | 836 | (* ; |
830 | 837 | "We're beyond the min page number -- go ahead and print the line") |
831 | | - (\TEDIT.HARDCOPY.DISPLAYLINE (GETLD LINE LTEXTOBJ) |
832 | | - LINE |
833 | | - (SCALEREGION (DSPSCALE NIL PRSTREAM) |
834 | | - REGION) |
835 | | - PRSTREAM FORMATTINGSTATE)) |
836 | | - (CL:WHEN (EQ TEXTOBJ (GETLD LINE LTEXTOBJ)) |
837 | | - |
838 | | - (* ;; |
| 838 | + (\TEDIT.HARDCOPY.DISPLAYLINE |
| 839 | + LTEXTOBJ LINE (SCALEREGION (DSPSCALE NIL |
| 840 | + PRSTREAM) |
| 841 | + REGION) |
| 842 | + PRSTREAM FORMATTINGSTATE)) |
| 843 | + (CL:WHEN (EQ TEXTOBJ LTEXTOBJ) |
| 844 | + |
| 845 | + (* ;; |
839 | 846 | "This line refers back to the main text, so update the current-char pointer.") |
840 | 847 |
|
841 | | - (* ;; |
| 848 | + (* ;; |
842 | 849 | "[NB that footnotes could cause the count to be non-monotonic; hence the IMAX.]") |
843 | 850 |
|
844 | | - [SETQ CHNO (IMAX (OR CHNO 0) |
845 | | - (ADD1 (GETLD LINE LCHARLIM]) |
846 | | - (push (GETPFS FORMATTINGSTATE PAGELINECACHE) |
847 | | - LINE) |
848 | | - (SETLD LINE LTEXTOBJ NIL)) |
| 851 | + [SETQ CHNO (IMAX (OR CHNO 0) |
| 852 | + (ADD1 (FGETLD LINE LCHARLIM]) |
| 853 | + (push (GETPFS FORMATTINGSTATE PAGELINECACHE) |
| 854 | + LINE) |
| 855 | + (FSETLD LINE LTEXTSTREAM NIL)) |
849 | 856 | (COND |
850 | 857 | (LAST-CHNO (* ; |
851 | 858 | "We got a definite last chno from FORMATTEXTBOX.") |
|
855 | 862 | (SETPFS FORMATTINGSTATE CHNO CHNO]) |
856 | 863 |
|
857 | 864 | (TEDIT.FORMATHEADING |
858 | | - [LAMBDA (TEXTOBJ PRSTREAM FORMATTINGSTATE PAGEREGION) (* ; "Edited 6-Mar-2024 13:09 by rmk") |
| 865 | + [LAMBDA (TEXTOBJ PRSTREAM FORMATTINGSTATE PAGEREGION) (* ; "Edited 13-Mar-2024 09:00 by rmk") |
| 866 | + (* ; "Edited 6-Mar-2024 13:09 by rmk") |
859 | 867 | (* ; "Edited 15-Feb-2024 22:02 by rmk") |
860 | 868 | (* ; "Edited 19-Jan-2024 23:20 by rmk") |
861 | 869 | (* ; "Edited 9-Sep-2023 22:17 by rmk") |
|
868 | 876 | (LET ((REGION (SCALEREGION (DSPSCALE NIL PRSTREAM) |
869 | 877 | (fetch (PAGEREGION REGIONSPEC) of PAGEREGION))) |
870 | 878 | (LOCALINFO (fetch (PAGEREGION REGIONLOCALINFO) of PAGEREGION)) |
871 | | - HEADINGTEXTOBJ FORCENEXTPAGE HEADING) |
| 879 | + HEADINGTEXTOBJ HEADINGSTREAM FORCENEXTPAGE HEADING) |
872 | 880 | (CL:WHEN [AND (for FORM inside (LISTGET LOCALINFO 'PRECONDITIONS) always (EVAL FORM)) |
873 | 881 | (SETQ HEADING (LISTGET (GETPFS FORMATTINGSTATE PAGEHEADINGS) |
874 | 882 | (LISTGET LOCALINFO 'HEADINGTYPE] |
875 | | - [SETQ HEADINGTEXTOBJ (fetch (TEXTSTREAM TEXTOBJ) |
876 | | - of (OPENTEXTSTREAM |
877 | | - NIL NIL NIL NIL |
878 | | - `(PARALOOKS ,(PPARALOOKS (fetch (SELPIECES SPFIRST) |
879 | | - of HEADING] |
| 883 | + |
| 884 | + (* ;; "Bind the stream to make sure it isn't collected.") |
| 885 | + |
| 886 | + [SETQ HEADINGSTREAM (OPENTEXTSTREAM NIL NIL NIL NIL |
| 887 | + `(PARALOOKS ,(PPARALOOKS (fetch (SELPIECES SPFIRST) |
| 888 | + of HEADING] |
| 889 | + (SETQ HEADINGTEXTOBJ (fetch (TEXTSTREAM TEXTOBJ) of HEADINGSTREAM)) |
880 | 890 |
|
881 | 891 | (* ;; "Insert the heading pieces into HEADINGTEXTOBJ") |
882 | 892 |
|
|
912 | 922 | LINE))]) |
913 | 923 |
|
914 | 924 | (TEDIT.FORMATPAGE |
915 | | - [LAMBDA (TEXTOBJ PRSTREAM CHNO PAGEREGION FORMATTINGSTATE) (* ; "Edited 19-Jan-2024 23:10 by rmk") |
| 925 | + [LAMBDA (TEXTOBJ PRSTREAM CHNO PAGEREGION FORMATTINGSTATE) (* ; "Edited 13-Mar-2024 10:28 by rmk") |
| 926 | + (* ; "Edited 19-Jan-2024 23:10 by rmk") |
916 | 927 | (* ; "Edited 11-Dec-2023 22:02 by rmk") |
917 | 928 | (* ; "Edited 13-Nov-2023 00:15 by rmk") |
918 | 929 | (* ; "Edited 22-Sep-2023 20:37 by rmk") |
|
997 | 1008 |
|
998 | 1009 | (* ;; "We now fill up the next complete page. Afterwards, we either continue to the next page (DPSNEWPAGE) or finish up. TEDIT.FORMATBOX is responsible for setting up NEWPAGEBEFORFE and NEWPAGEAFTER") |
999 | 1010 |
|
1000 | | - (SETPFS FORMATTINGSTATE CHNO CHNO with CHNO) |
| 1011 | + (SETPFS FORMATTINGSTATE CHNO CHNO) |
1001 | 1012 | (for SUBREGION in (fetch (PAGEREGION REGIONSUBBOXES) of PAGEREGION) |
1002 | 1013 | while (ILEQ (GETPFS FORMATTINGSTATE CHNO) |
1003 | 1014 | TEXTLEN) do |
|
1269 | 1280 | FORMATTINGSTATE FINAL-CHNO)))]) |
1270 | 1281 |
|
1271 | 1282 | (TEDIT.FORMATFOLIO |
1272 | | - [LAMBDA (TEXTOBJ PRSTREAM FORMATTINGSTATE PAGEREGION) (* ; "Edited 19-Jan-2024 23:28 by rmk") |
| 1283 | + [LAMBDA (TEXTOBJ PRSTREAM FORMATTINGSTATE PAGEREGION) (* ; "Edited 13-Mar-2024 09:00 by rmk") |
| 1284 | + (* ; "Edited 19-Jan-2024 23:28 by rmk") |
1273 | 1285 | (* ; "Edited 18-Jan-2024 17:04 by rmk") |
1274 | 1286 | (* ; "Edited 13-Nov-2023 00:24 by rmk") |
1275 | 1287 | (* ; "Edited 1-Jun-2023 00:12 by rmk") |
|
1281 | 1293 | (LET ((REGION (SCALEREGION (DSPSCALE NIL PRSTREAM) |
1282 | 1294 | (fetch (PAGEREGION REGIONSPEC) of PAGEREGION))) |
1283 | 1295 | (FOLIOINFO (fetch (PAGEREGION REGIONLOCALINFO) of PAGEREGION)) |
1284 | | - FOLIOTEXTOBJ PAGE# FOLIOFORMAT PRETEXT POSTTEXT INFOLIST) |
| 1296 | + FOLIOSTREAM FOLIOTEXTOBJ PAGE# FOLIOFORMAT PRETEXT POSTTEXT INFOLIST) |
1285 | 1297 | (CL:UNLESS (AND (GETPFS FORMATTINGSTATE FIRSTPAGE) |
1286 | 1298 | (LISTGET FOLIOINFO 'NOFIRSTPAGE)) (* ; |
1287 | 1299 | "If this isn't the first page, OR we want a page # on the first page, go ahead and format it.") |
|
1300 | 1312 | (UPPERROMAN (ROMANNUMERALS (GETPFS FORMATTINGSTATE PAGE#) |
1301 | 1313 | T)) |
1302 | 1314 | (MKSTRING (GETPFS FORMATTINGSTATE PAGE#] |
1303 | | - [SETQ FOLIOTEXTOBJ (TEXTOBJ (OPENTEXTSTREAM NIL NIL NIL NIL |
1304 | | - `(PARALOOKS ,(LISTGET FOLIOINFO 'PARALOOKS) |
1305 | | - LOOKS |
1306 | | - ,(LISTGET FOLIOINFO 'CHARLOOKS] |
| 1315 | + |
| 1316 | + (* ;; "Bind the stream to make sure it isn't collected.") |
| 1317 | + |
| 1318 | + [SETQ FOLIOSTREAM (OPENTEXTSTREAM NIL NIL NIL NIL |
| 1319 | + `(PARALOOKS ,(LISTGET FOLIOINFO 'PARALOOKS) |
| 1320 | + LOOKS |
| 1321 | + ,(LISTGET FOLIOINFO 'CHARLOOKS] |
| 1322 | + (SETQ FOLIOTEXTOBJ (fetch (TEXTSTREAM TEXTOBJ) of FOLIOSTREAM)) |
1307 | 1323 | (TEDIT.INSERT FOLIOTEXTOBJ (CONCAT PRETEXT PAGE# POSTTEXT) |
1308 | 1324 | 1 NIL T) |
1309 | 1325 | (bind LINE YBOT FORCENEXTPAGE (TEXTLEN _ (TEXTLEN FOLIOTEXTOBJ)) |
|
1745 | 1761 | (DEFINEQ |
1746 | 1762 |
|
1747 | 1763 | (\TEDIT.FORMAT.FOOTNOTE |
1748 | | - [LAMBDA (TEXTOBJ PRSTREAM LINE REGION FORMATTINGSTATE) (* ; "Edited 19-Jan-2024 23:30 by rmk") |
| 1764 | + [LAMBDA (TEXTOBJ PRSTREAM LINE REGION FORMATTINGSTATE) (* ; "Edited 13-Mar-2024 17:00 by rmk") |
| 1765 | + (* ; "Edited 19-Jan-2024 23:30 by rmk") |
1749 | 1766 | (* ; "Edited 6-May-2023 20:38 by rmk") |
1750 | 1767 | (* ; "Edited 7-Mar-2023 13:11 by rmk") |
1751 | 1768 | (* ; "Edited 30-May-91 12:52 by jds") |
|
1766 | 1783 | REGION PRSTREAM FORMATTINGSTATE)) |
1767 | 1784 | (* ; |
1768 | 1785 | "Format the line, noting any form-feeds") |
1769 | | - (SETLD LINE LTEXTOBJ TEXTOBJ) (* ; |
1770 | | - "And remember the document it came from.") |
1771 | 1786 | (add (FGETLD LINE LEFTMARGIN) |
1772 | 1787 | LEFT) |
1773 | 1788 | (add (FGETLD LINE RIGHTMARGIN) |
|
1780 | 1795 | (RETURN (DREMOVE NIL $$VAL]) |
1781 | 1796 | ) |
1782 | 1797 | (DECLARE%: DONTCOPY |
1783 | | - (FILEMAP (NIL (11921 15254 (\TEDIT.PARSE.PAGEFRAMES 11931 . 13431) (\TEDIT.PUT.PAGEFRAMES 13433 . |
1784 | | -14257) (\TEDIT.UNPARSE.PAGEFRAMES 14259 . 15252)) (15317 31779 (TEDIT.SINGLE.PAGEFORMAT 15327 . 25545) |
1785 | | - (TEDIT.COMPOUND.PAGEFORMAT 25547 . 26526) (TEDIT.PAGEFORMAT 26528 . 31777)) (31866 90148 ( |
1786 | | -TEDIT.FORMAT.HARDCOPY 31876 . 42886) (TEDIT.FORMATBOX 42888 . 55048) (TEDIT.FORMATHEADING 55050 . |
1787 | | -58664) (TEDIT.FORMATPAGE 58666 . 66869) (TEDIT.FORMATTEXTBOX 66871 . 81654) (TEDIT.FORMATFOLIO 81656 |
1788 | | - . 86040) (\TEDIT.FORMAT.FOUNDBOX? 86042 . 88081) (TEDIT.SKIP.SPECIALCOND 88083 . 90146)) (90228 92509 |
1789 | | - (TEDIT.HARDCOPY.PAGEHEADINGS 90238 . 92507)) (92618 99801 (TEDIT.HARDCOPY-COLUMN-END 92628 . 99799)) |
1790 | | -(99846 104787 (SCALEPAGEUNITS 99856 . 100997) (SCALEPAGEXUNITS 100999 . 101769) (SCALEPAGEYUNITS |
1791 | | -101771 . 102542) (\TEDIT.PAPERHEIGHT 102544 . 103479) (\TEDIT.PAPERWIDTH 103481 . 104785)) (105203 |
1792 | | -108771 (ROMANNUMERALS 105213 . 108769)) (108807 111253 (\TEDIT.FORMAT.FOOTNOTE 108817 . 111251))))) |
| 1798 | + (FILEMAP (NIL (12038 15371 (\TEDIT.PARSE.PAGEFRAMES 12048 . 13548) (\TEDIT.PUT.PAGEFRAMES 13550 . |
| 1799 | +14374) (\TEDIT.UNPARSE.PAGEFRAMES 14376 . 15369)) (15434 31896 (TEDIT.SINGLE.PAGEFORMAT 15444 . 25662) |
| 1800 | + (TEDIT.COMPOUND.PAGEFORMAT 25664 . 26643) (TEDIT.PAGEFORMAT 26645 . 31894)) (31983 91368 ( |
| 1801 | +TEDIT.FORMAT.HARDCOPY 31993 . 42983) (TEDIT.FORMATBOX 42985 . 55757) (TEDIT.FORMATHEADING 55759 . |
| 1802 | +59542) (TEDIT.FORMATPAGE 59544 . 67846) (TEDIT.FORMATTEXTBOX 67848 . 82631) (TEDIT.FORMATFOLIO 82633 |
| 1803 | + . 87260) (\TEDIT.FORMAT.FOUNDBOX? 87262 . 89301) (TEDIT.SKIP.SPECIALCOND 89303 . 91366)) (91448 93729 |
| 1804 | + (TEDIT.HARDCOPY.PAGEHEADINGS 91458 . 93727)) (93838 101021 (TEDIT.HARDCOPY-COLUMN-END 93848 . 101019) |
| 1805 | +) (101066 106007 (SCALEPAGEUNITS 101076 . 102217) (SCALEPAGEXUNITS 102219 . 102989) (SCALEPAGEYUNITS |
| 1806 | +102991 . 103762) (\TEDIT.PAPERHEIGHT 103764 . 104699) (\TEDIT.PAPERWIDTH 104701 . 106005)) (106423 |
| 1807 | +109991 (ROMANNUMERALS 106433 . 109989)) (110027 112404 (\TEDIT.FORMAT.FOOTNOTE 110037 . 112402))))) |
1793 | 1808 | STOP |
0 commit comments