From a946a90ef814615ef9c9edf9ef3d1c7b5014a37d Mon Sep 17 00:00:00 2001 From: Larry Masinter Date: Sat, 1 May 2021 09:08:43 -0700 Subject: [PATCH] left out from PR #324 --- library/TEDITDECLS.SAVED | 1664 -------------------------------------- 1 file changed, 1664 deletions(-) delete mode 100644 library/TEDITDECLS.SAVED diff --git a/library/TEDITDECLS.SAVED b/library/TEDITDECLS.SAVED deleted file mode 100644 index e29c668e..00000000 --- a/library/TEDITDECLS.SAVED +++ /dev/null @@ -1,1664 +0,0 @@ -(DEFINE-FILE-INFO READTABLE "INTERLISP" PACKAGE "INTERLISP") -(FILECREATED "25-Aug-94 10:38:37" {DSK}export>lispcore>library>TEDITDCL.;3 89102 - - changes to%: (VARS TEDITDCLCOMS TEDITFILES) - - previous date%: " 4-Jul-93 01:06:33" {DSK}export>lispcore>library>TEDITDCL.;2) - - -(* ; " -Copyright (c) 1986, 1987, 1988, 1989, 1990, 1991, 1993, 1994 by Venue. All rights reserved. -") - -(PRETTYCOMPRINT TEDITDCLCOMS) - -(RPAQQ TEDITDCLCOMS [ - -(* ;;; "This file is the collected record declarations and compile-time necessities for TEDIT.") - - - (* ;; "FROM TEDIT") - - (DECLARE%: EVAL@COMPILE DONTCOPY (CONSTANTS (\SCRATCHLEN 64))) - - (* ;; "FROM TEDITSELECTION") - - (RECORDS SELECTION) - (DECLARE%: EVAL@COMPILE DONTCOPY (CONSTANTS (COPYSELSHADE 30583) - (COPYLOOKSSELSHADE 30583) - (EDITMOVESHADE -1) - (EDITGRAY 32800))) - (VARS TEDITFILES) - - (* ;; "FROM TEDITSCREEN") - - (RECORDS THISLINE LINEDESCRIPTOR LINECACHE) - (DECLARE%: EVAL@COMPILE DONTCOPY (CONSTANTS (LMInvisibleRun 401) - (LMLooksChange 400))) - - (* ;; "FROM TEXTOFD") - - (RECORDS EDITMARK) - (RECORDS PIECE TEXTOBJ TEXTIMAGEDATA TEXTSTREAM) - (OPTIMIZERS TEXTPROP) - (COMS - (* ;; "Private data structures and constants FROM TEXTOFD") - - (DECLARE%: EVAL@COMPILE DONTCOPY (CONSTANTS (\PCTBFreePieces 0) - (\PCTBLastPieceOffset 1) - (\FirstPieceOffset 2) - (\SecondPieceOffset 4) - (\EltsPerPiece 2)) - (MACROS \EDITELT \GETCH \GETCHB \EDITSETA \WORDSETA) - (GLOBALVARS \TEXTIMAGEOPS \TEXTOFD \TEXTFDEV))) - - -(* ;;; "FROM TEDITPAGE") - - (RECORDS PAGEFORMATTINGSTATE PAGEREGION) - (DECLARE%: EVAL@COMPILE DONTCOPY (RECORDS TEDITPAPERSIZE) - (FUNCTIONS \NEW-COLUMN-START \FIRST-COLUMN-START)) - - (* ;; "FROM TEDITFIND") - - (DECLARE%: EVAL@COMPILE DONTCOPY (CONSTANTS (\AlphaNumericFlag 256) - (\AlphaFlag 512) - (\OneCharPattern 1024) - (\AnyStringPattern 1025) - (\OneAlphaPattern 1026) - (\AnyAlphaPattern 1027) - (\OneNonAlphaPattern 1028) - (\AnyNonAlphaPattern 1029) - (\LeftBracketPattern 1030) - (\RightBracketPattern 1031) - (\SpecialPattern 1024))) - - (* ;; " FROM TEDITLOOKS") - - (RECORDS CHARLOOKS FMTSPEC PENDINGTAB) - (DECLARE%: EVAL@COMPILE DONTCOPY (MACROS \SMALLPIN \SMALLPOUT ONOFF)) - - (* ;; "FROM TEDITMENU") - - (DECLARE%: EVAL@COMPILE DONTCOPY (RECORDS MBUTTON)) - (INITRECORDS MBUTTON) - (DECLARE%: EVAL@COMPILE DONTCOPY (RECORDS NWAYBUTTON)) - (INITRECORDS NWAYBUTTON) - (DECLARE%: EVAL@COMPILE DONTCOPY (RECORDS MARGINBAR)) - (INITRECORDS MARGINBAR) - (DECLARE%: EVAL@COMPILE DONTCOPY (RECORDS TAB)) - (RECORDS MB.3STATE MB.BUTTON MB.INSERT MB.MARGINBAR MB.NWAY MB.TEXT - MB.TOGGLE) - (FUNCTIONS WITHOUT-UPDATES) - - (* ;; "FROM TEDITHISTORY") - - (RECORDS TEDITHISTORYEVENT) - - (* ;; "FROM TEDITFILE") - - (DECLARE%: EVAL@COMPILE DONTCOPY (CONSTANTS (\PieceDescriptorLOOKS 0) - (\PieceDescriptorOBJECT 1) - (\PieceDescriptorPARA 2) - (\PieceDescriptorPAGEFRAME 3) - (\PieceDescriptorCHARLOOKSLIST - 4) - (\PieceDescriptorPARALOOKSLIST - 5) - (\PieceDescriptorSAFEOBJECT 6))) - - (* ;; "FROM TEDITCOMMAND") - - (DECLARE%: EVAL@COMPILE DONTCOPY (MACROS \INSERT\TTY\BUFFER - \TEDIT.MOUSESTATE \TEDIT.CHECK)) - (DECLARE%: EVAL@COMPILE DONTCOPY (RECORDS TEDITTERMCODE)) - (DECLARE%: EVAL@COMPILE DONTCOPY (CONSTANTS (NONE.TTC 0) - (CHARDELETE.TTC 1) - (WORDDELETE.TTC 2) - (DELETE.TTC 3) - (FUNCTIONCALL.TTC 4) - (REDO.TTC 5) - (UNDO.TTC 6) - (CMD.TTC 7) - (NEXT.TTC 8) - (EXPAND.TTC 9) - (PUNCT.TTC 20) - (TEXT.TTC 21) - (WHITESPACE.TTC 22))) - (DECLARE%: EVAL@COMPILE DONTCOPY (CONSTANTS (MSPACE 153) - (NSPACE 152) - (THINSPACE 159) - (FIGSPACE 154))) - - (* ;; "FROM TEDITWINDOW") - - (DECLARE%: EVAL@COMPILE DONTCOPY (RECORDS TEDITCARET)) - (INITRECORDS TEDITCARET) - - (* ;; "FROM PCTREE added by Nakamura") - - (RECORDS PCTNODE) - - -(* ;;; "THE END") - - (COMS - (* ;; "Bits in the CHARTABLE that control line breaking, and what happens when a line is broken on this character ") - - (DECLARE%: EVAL@COMPILE DONTCOPY (CONSTANTS (NOTBEFORE.LB 1) - - (* ; - "Must not break before this character (e.g. Japanese right-paren)") - (NOTAFTER.LB 2) - - (* ; - "Must not break after this character (e.g. Japanese open-quote)") - (BEFORE.LB 4) - - (* ; "OK to break before this character, provided it's OK to break after the prior char (true of most non-white-space)") - (AFTER.LB 8) - - (* ; - "OK to break after this char, if it's OK to break before the next one (true of most white space)") - (DISAPPEAR-IF-NOT-SPLIT.LB - 16) - - (* ; "This character shouldn't be rendered if it isn't the last char on the line (non-breaking hyphen has this)") - (NEWCHAR-IF-SPLIT.LB 32) - - (* ; "Look this char up in *TEDIT-SPLITCHAR-HASH* if this IS the last character on a line, and render it as the char we found.") - ]) - - - -(* ;;; "This file is the collected record declarations and compile-time necessities for TEDIT.") - - - - -(* ;; "FROM TEDIT") - -(DECLARE%: EVAL@COMPILE DONTCOPY -(DECLARE%: EVAL@COMPILE - -(RPAQQ \SCRATCHLEN 64) - - -(CONSTANTS (\SCRATCHLEN 64)) -) -) - - - -(* ;; "FROM TEDITSELECTION") - -(DECLARE%: EVAL@COMPILE - -(DATATYPE SELECTION - ( - (* ;; "Description of a piece of selected text for TEdit. Text has to be selected before it can be operated on by the user.") - - Y0 (* ; - "Y value of topmost line of selection") - X0 (* ; - "X value of left edge of selection") - DX (* ; - "Width of the selection, if it's on one line.") - CH# (* ; - "CH# of the first selected character") - XLIM (* ; - "X value of right edge of last selected character") - CHLIM (* ; - "CH# of the last character in the selection") - DCH (* ; - "# of characters selected (can be zero, for point selection.)") - L1 (* ; - "-> line descriptor for the line where the first selected character is") - LN (* ; - "-> line descriptor for the line which contains the end of the selection") - YLIM (* ; - "Y value of the bottom of the line that ends the selection") - POINT (* ; - "Which end should the caret appear at? (LEFT or RIGHT)") - (SET FLAG) (* ; - "T if this selection is real; NIL if not") - (\TEXTOBJ FULLXPOINTER) (* ; - "TEXTOBJ that describes the selected text") - SELKIND (* ; - "What kind of selection? CHAR or WORD or LINE or PARA") - HOW (* ; - "SHADE used to highlight this selection") - HOWHEIGHT (* ; - "Height of the highlight (1 usually, full line for delete selection...)") - (HASCARET FLAG) (* ; - "T if there should be a caret for this selection") - SELOBJ (* ; - "If this selection is inside an object, which object?") - (ONFLG FLAG) (* ; - "T if the selection is highlighted on the screen, else NIL") - SELOBJINFO (* ; - "A Place for the selected object to put info about selection inside itself.") - ) - SET _ NIL HOW _ BLACKSHADE HOWHEIGHT _ 1 HASCARET _ T Y0 _ 0 X0 _ 0 POINT _ 'LEFT L1 _ - (LIST NIL) - LN _ (LIST NIL)) -) - -(/DECLAREDATATYPE 'SELECTION - '(POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER FLAG - FULLXPOINTER POINTER POINTER POINTER FLAG POINTER FLAG POINTER) - '((SELECTION 0 POINTER) - (SELECTION 2 POINTER) - (SELECTION 4 POINTER) - (SELECTION 6 POINTER) - (SELECTION 8 POINTER) - (SELECTION 10 POINTER) - (SELECTION 12 POINTER) - (SELECTION 14 POINTER) - (SELECTION 16 POINTER) - (SELECTION 18 POINTER) - (SELECTION 20 POINTER) - (SELECTION 20 (FLAGBITS . 0)) - (SELECTION 22 FULLXPOINTER) - (SELECTION 24 POINTER) - (SELECTION 26 POINTER) - (SELECTION 28 POINTER) - (SELECTION 28 (FLAGBITS . 0)) - (SELECTION 30 POINTER) - (SELECTION 30 (FLAGBITS . 0)) - (SELECTION 32 POINTER)) - '34) -(DECLARE%: EVAL@COMPILE DONTCOPY -(DECLARE%: EVAL@COMPILE - -(RPAQQ COPYSELSHADE 30583) - -(RPAQQ COPYLOOKSSELSHADE 30583) - -(RPAQQ EDITMOVESHADE -1) - -(RPAQQ EDITGRAY 32800) - - -(CONSTANTS (COPYSELSHADE 30583) - (COPYLOOKSSELSHADE 30583) - (EDITMOVESHADE -1) - (EDITGRAY 32800)) -) -) - -(RPAQQ TEDITFILES - (PCTREE TEXTOFD TEDIT TEDITABBREV TEDITCOMMAND TEDITDCL TEDITFILE TEDITFIND TEDITFNKEYS - TEDITHCPY TEDITHISTORY TEDITLOOKS TEDITMENU TEDITPAGE TEDITSCREEN TEDITSELECTION - TEDITWINDOW)) - - - -(* ;; "FROM TEDITSCREEN") - -(DECLARE%: EVAL@COMPILE - -(DATATYPE THISLINE ( - (* ;; - "Cache for line-related character location info, for selection and line-display code to use.") - - (DESC FULLXPOINTER) (* ; - "Line descriptor for the line this describes now") - LEN (* ; - "Length of the line in characters") - CHARS - - (* ;; "Array of character codes (or objects) on the line (charcode of 400 => dummy entry for looks change--go get next entry in LOOKS)") - - WIDTHS (* ; - "Array of each character's width in points") - LOOKS (* ; - "Array of any looks changes within the line. LOOKS (0) = starting character looks for the line") - TLSPACEFACTOR (* ; - "The SPACEFACTOR to be used in printing this line") - TLFIRSTSPACE (* ; "The first space to which SPACEFACTOR is to apply. This is used so that spaces to the left of a TAB have their default width.") - ) - LEN _ 0 CHARS _ (ARRAY 512 'POINTER 0 0) - WIDTHS _ (ARRAY 512 'POINTER 0 0) - LOOKS _ (ARRAY 512 'POINTER NIL 0) - TLFIRSTSPACE _ 0) - -(DATATYPE LINEDESCRIPTOR - ( - (* ;; - "Description of a single line of formatted text, either on the display or for a printed page.") - - YBOT (* ; - "Y value for the bottom of the line (below the descent)") - YBASE (* ; - "Yvalue for the base line the characters sit on") - LEFTMARGIN (* ; "Left margin, in screen points") - RIGHTMARGIN (* ; "Right margin, in screen points") - LXLIM (* ; "X value of right edge of rightmost character on the line (may exceed right margin, if char is a space.)") - SPACELEFT (* ; - "Space left on the line, ignoring trailing blanks & CRs.") - LHEIGHT (* ; - "Total height of hte line, Ascent+Descent.") - ASCENT (* ; "Ascent of the line above YBASE") - DESCENT (* ; - "How far line descends below YBASE") - LTRUEDESCENT (* ; - "The TRUE DESCENT for this line, unadjusted for line leading.") - LTRUEASCENT (* ; - "The TRUE ASCENT for this line, unadjusted for pre-paragraph leading.") - CHAR1 (* ; - "CH# of the first character on the line.") - CHARLIM (* ; - "CH# of the last character on the line") - CHARTOP (* ; - "CH# of the character which forced the line break (may exceed CHARLIM)") - NEXTLINE (* ; "Next line chain pointer") - (PREVLINE FULLXPOINTER) (* ; "Previous line chain pointer") - LMARK (* ; "One of SOLID, GREY, NIL. Tells what kind of special-line marker should be put in the left margin for this paragraph. (For hardcopy, can also be an indicator for special processing?)") - LTEXTOBJ (* ; "A cached TEXTOBJ that this line took its text from. Used in hardcopy to disambiguate when chno's should be updated...") - CACHE (* ; "A cached THISLINE, for keeping hardcopy info around while we crunch with the line descriptors to make things fit.") - LDOBJ (* ; - "The object which lies behind this line of text, for updating, etc.") - LFMTSPEC (* ; - "The format spec for this line's paragraph (eventually)") - (DIRTY FLAG) (* ; - "T if this line has changed since it was last formatted.") - (CR\END FLAG) (* ; "T if this line ends with a CR.") - (DELETED FLAG) (* ; "T if this line has been completely deleted since it was last formatted or displayed. (Used by deletion routines to detect garbage lines)") - (LHASPROT FLAG) (* ; - "This line contains protected text.") - (LHASTABS FLAG) (* ; "If this line has a tab in it, this is the line-relative ch# of the final tab. This is to let us punt properly with tabs in a line.") - (1STLN FLAG) (* ; - "This line is the first line in a paragraph") - (LSTLN FLAG) (* ; - "This is the last line in a paragraph") - ) - CHARLIM _ 1000000 NEXTLINE _ NIL PREVLINE _ NIL DIRTY _ NIL YBOT _ 0 YBASE _ 0 LEFTMARGIN _ - 0 DELETED _ NIL) - -(DATATYPE LINECACHE ( - (* ;; "Image cache for display lines.") - - LCBITMAP (* ; - "The bitmap that will be used by this instance of the cache") - (LCNEXTCACHE FULLXPOINTER) (* ; - "The next cache in the chain, for screen updates.") - )) -) - -(/DECLAREDATATYPE 'THISLINE '(FULLXPOINTER POINTER POINTER POINTER POINTER POINTER POINTER) - '((THISLINE 0 FULLXPOINTER) - (THISLINE 2 POINTER) - (THISLINE 4 POINTER) - (THISLINE 6 POINTER) - (THISLINE 8 POINTER) - (THISLINE 10 POINTER) - (THISLINE 12 POINTER)) - '14) - -(/DECLAREDATATYPE 'LINEDESCRIPTOR - '(POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER - POINTER POINTER POINTER POINTER FULLXPOINTER POINTER POINTER POINTER POINTER POINTER - FLAG FLAG FLAG FLAG FLAG FLAG FLAG) - '((LINEDESCRIPTOR 0 POINTER) - (LINEDESCRIPTOR 2 POINTER) - (LINEDESCRIPTOR 4 POINTER) - (LINEDESCRIPTOR 6 POINTER) - (LINEDESCRIPTOR 8 POINTER) - (LINEDESCRIPTOR 10 POINTER) - (LINEDESCRIPTOR 12 POINTER) - (LINEDESCRIPTOR 14 POINTER) - (LINEDESCRIPTOR 16 POINTER) - (LINEDESCRIPTOR 18 POINTER) - (LINEDESCRIPTOR 20 POINTER) - (LINEDESCRIPTOR 22 POINTER) - (LINEDESCRIPTOR 24 POINTER) - (LINEDESCRIPTOR 26 POINTER) - (LINEDESCRIPTOR 28 POINTER) - (LINEDESCRIPTOR 30 FULLXPOINTER) - (LINEDESCRIPTOR 32 POINTER) - (LINEDESCRIPTOR 34 POINTER) - (LINEDESCRIPTOR 36 POINTER) - (LINEDESCRIPTOR 38 POINTER) - (LINEDESCRIPTOR 40 POINTER) - (LINEDESCRIPTOR 40 (FLAGBITS . 0)) - (LINEDESCRIPTOR 40 (FLAGBITS . 16)) - (LINEDESCRIPTOR 40 (FLAGBITS . 32)) - (LINEDESCRIPTOR 40 (FLAGBITS . 48)) - (LINEDESCRIPTOR 38 (FLAGBITS . 0)) - (LINEDESCRIPTOR 38 (FLAGBITS . 16)) - (LINEDESCRIPTOR 38 (FLAGBITS . 32))) - '42) - -(/DECLAREDATATYPE 'LINECACHE '(POINTER FULLXPOINTER) - '((LINECACHE 0 POINTER) - (LINECACHE 2 FULLXPOINTER)) - '4) -(DECLARE%: EVAL@COMPILE DONTCOPY -(DECLARE%: EVAL@COMPILE - -(RPAQQ LMInvisibleRun 401) - -(RPAQQ LMLooksChange 400) - - -(CONSTANTS (LMInvisibleRun 401) - (LMLooksChange 400)) -) -) - - - -(* ;; "FROM TEXTOFD") - -(DECLARE%: EVAL@COMPILE - -(RECORD EDITMARK ( - (* ;; "Used for fast access to a given place in the text--a %"Marker%". It consists of the piece, and the offset within the piece, and the piece number within the piece table. That's everything that's needed to set a text stream up quickly to start reading from a given place.") - - PC PCOFF . PCNO)) -) -(DECLARE%: EVAL@COMPILE - -(DATATYPE PIECE - ( (* ; - "The piece describes either a string or part of a file. , or a generalized OBJECT.") - PSTR (* ; - "The string where this piece's text resides, or NIL") - PFILE (* ; - "The file which contains this piece's text, or NIL") - PFPOS (* ; - "The FILEPTR of the start of the piece in the file") - PLEN (* ; - "Length of the piece, in characters.") - NEXTPIECE (* ; "-> Next piece in this textobj.") - (PREVPIECE FULLXPOINTER) (* ; - "-> Prior piece in this text object.") - PLOOKS (* ; - "Formatting info and formatting events in this piece") - POBJ (* ; "The OBJECT this piece describes") - (PPARALAST FLAG) (* ; - "This piece contains a paragraph break") - PPARALOOKS (* ; "Paragraph looks for this piece") - (PNEW FLAG) (* ; - "This text is new here; used by the tentative edit system, and anyone else interested.") - (PFATP FLAG) (* ; - "T if the characters in this piece are FAT -- i.e., are 16 bits each.") - (PTREENODE XPOINTER) (* ; - "Points to the PCTB tree-node that contains this piece.") - ) - PSTR _ NIL PFILE _ NIL PFPOS _ 0 PLEN _ 0 PPARALOOKS _ TEDIT.DEFAULT.FMTSPEC PTREENODE _ - NIL) - -(DATATYPE TEXTOBJ - ( - (* ;; - "This is where TEdit stores its state information, and internal data about the text being edited.") - - PCTB (* ; "The piece table") - TEXTLEN (* ; "# of chars in the text") - \INSERTPC (* ; "Piece to hold type-in") - \INSERTPCNO (* ; "Piece # of the input piece") - \INSERTNEXTCH (* ; - "CH# of next char which is typed into that piece.") - \INSERTLEFT (* ; "Space left in the type-in piece") - \INSERTLEN (* ; - "# of characters already in the piece.") - \INSERTSTRING (* ; - "The string which the piece describes.") - \INSERTFIRSTCH (* ; "CH# of first char in the piece.") - (\INSERTPCVALID FLAG) (* ; "T if it's OK to use the cached piece. Set to NIL by people who require that the next insertion/deletion use a different piece.") - \WINDOW (* ; - "The window where this textobj is displayed") - MOUSEREGION (* ; - "Section of the window the mouse is in.") - LINES (* ; - "-> to top of chain of line descriptors for displayed text") - DS (* ; - "Display stream where this textobj is displayed") - SEL (* ; - "The current selection within the text") - SCRATCHSEL (* ; - "Scratch space for the selection code") - MOVESEL (* ; - "Source for the next MOVE of text") - SHIFTEDSEL (* ; "Source for the next COPY") - DELETESEL (* ; "Text to be deleted imminently") - WRIGHT (* ; - "Right edge of the window (or subregion) where this is displayed") - WTOP (* ; "Top of the window/region") - WBOTTOM (* ; "Bottom of the window/region") - WLEFT (* ; "Left edge of the window/region") - TXTFILE (* ; - "The original text file we're editing") - (\XDIRTY FLAG) (* ; "T => changed since last saved.") - (STREAMHINT FULLXPOINTER) (* ; - "-> the TEXTOFD stream which gives access to this textobj") - EDITFINISHEDFLG (* ; - "T => The guy has asked the editor to go way") - CARET (* ; - "Describes the flashing caret for the editing window") - CARETLOOKS (* ; - "Font to be used for inserted text.") - WINDOWTITLE (* ; - "Original title for this window, of there was one.") - THISLINE (* ; - "Cache of line-related info, to speed up selection &c") - (MENUFLG FLAG) (* ; - "T if this TEXTOBJ is a tedit-style menu") - FMTSPEC (* ; - "Default Formatting Spec to be used when formatting paragraphs") - (FORMATTEDP FLAG) (* ; -"Flag for paragraph formatting. T if this document is to contain paragraph formatting information.") - (TXTREADONLY FLAG) (* ; - "This is only available for shift selection.") - (TXTEDITING FLAG) (* ; "T => This document is in a window and there is an edit process behind it. For example, it only makes sense to have a caret show up if you are editing.") - (TXTNONSCHARS FLAG) (* ; "T => If TEdit rns into a 255, it won't attempt to convert to NS characters. Used for REALLY plain-text manipulation.") - TXTTERMSA (* ; - "Special instructions for displaying characters on the screen") - EDITOPACTIVE (* ; - "T if there is an editing operation in progress. Used to interlock the TEdit menu") - DEFAULTCHARLOOKS (* ; "The default character looks -- if any -- to be applied to characters coming into the file from outside.") - TXTRTBL (* ; - "The READTABLE to be used by the command loop for command dispatch") - TXTWTBL (* ; - "The READTABLE to be used to decide on word breaks") - EDITPROPS (* ; - "The PROPS that were passed into this edit session") - (BLUEPENDINGDELETE FLAG) (* ; "T if the next insertion in this document is to be preceded by a deletion of the then-current selection") - TXTHISTORY (* ; - "The history list for this edit session.") - (SELWINDOW FULLXPOINTER) (* ; "The window in which the last 'real' selection got made for this edit; used to control caret placement") - PROMPTWINDOW (* ; - "A window to be used for unscheduled interactions; normally a small window above the edit window") - DISPLAYCACHE (* ; - "The bitmap to be used when building the image of a line for display") - DISPLAYCACHEDS (* ; - "The DISPLAYSTREAM that is used to build line images") - DISPLAYHCPYDS (* ; "The DISPLAYSTREAM used to build line images of lines that are displayed in 'hardcopy' simulation mode") - TXTPAGEFRAMES (* ; - "A tree of page frames, specifying how the document is to be laid out.") - TXTCHARLOOKSLIST (* ; - "List of all the CHARLOOKSs in the document, so they can be kept unique") - TXTPARALOOKSLIST (* ; - "List of all the FMTSPECs in the document, so they can be kept unique") - (TXTNEEDSUPDATE FLAG) (* ; - "T => Screen invalid, need to run updater") - (TXTDON'TUPDATE FLAG) (* ; "T if we're holding off on screen updates until later. Used, e.g., by the menu-SHOW code so that you don't get piecemeal updates, but only one at the end of the SHOW.") - TXTRAWINCLUDESTREAM (* ; - "NODIRCORE stream used to cache RAW includes (and maybe later, all includes?)") - DOCPROPS (* ; - "Document properties that are stored with the document (not used yet)") - TXTSTYLESHEET (* ; - "Style sheet local to this document. Not currently saved as part of the file.") - ) - [ACCESSFNS TEXTOBJ ((\DIRTY (ffetch (TEXTOBJ \XDIRTY) of DATUM) - (PROGN (IF (NEQ (FETCH (TEXTOBJ \XDIRTY) OF DATUM) - NEWVALUE) - THEN (* ; - "update the title to reflect the change") - (\TEDIT.WINDOW.TITLE DATUM - (\TEDIT.ORIGINAL.WINDOW.TITLE - (ffetch (TEXTOBJ TXTFILE) - of DATUM) - NEWVALUE))) - (freplace \XDIRTY OF DATUM WITH NEWVALUE] - SEL _ (create SELECTION) - SCRATCHSEL _ (create SELECTION) - MOVESEL _ (create SELECTION - HOWHEIGHT _ 32767 - HASCARET _ NIL) - SHIFTEDSEL _ (create SELECTION - HASCARET _ NIL) - DELETESEL _ (create SELECTION - HOWHEIGHT _ 32767 - HASCARET _ NIL) - \INSERTNEXTCH _ -1 \INSERTPC _ NIL \INSERTLEFT _ 0 \INSERTLEN _ 0 \INSERTSTRING _ NIL - \INSERTFIRSTCH _ 1000000 TEXTLEN _ 0 WRIGHT _ 0 WTOP _ 0 WLEFT _ 0 WBOTTOM _ 0 TXTFILE _ - NIL \XDIRTY _ NIL MOUSEREGION _ 'TEXT THISLINE _ (create THISLINE) - MENUFLG _ NIL FMTSPEC _ TEDIT.DEFAULT.FMTSPEC FORMATTEDP _ NIL) - -(DATATYPE TEXTIMAGEDATA ( - (* ;; "Fills the IMAGEDATA field of text streams.") - - TICURPARALOOKS (* ; "The current paragraph looks") - TICURIMAGESTREAM (* ; - "The image stream for this hardcopy transduction") - TILOOKSUPDATEFN (* ; - "The function to call to update looks for this stream") - TIPCOFFSET (* ; - "The offset into the current piece, as of the last page cross.") - )) - -(ACCESSFNS TEXTSTREAM ( - (* ;; - "Overlay for the STREAM record to allow mnemonic access to stream fields for Text streams.") - - (REALFILE (fetch F1 of DATUM) - (REPLACE F1 OF DATUM WITH NEWVALUE)) - (* ; - "The real, underlying file behind the current piece") - (CHARSLEFT (fetch F2 of DATUM) - (REPLACE F2 OF DATUM WITH NEWVALUE)) - - (* ;; "The # of characters that will be left in the current piece the next time its file crosses a page boundary") - - (TEXTOBJ (fetch F3 of DATUM) - (REPLACE F3 OF DATUM WITH NEWVALUE)) - (* ; - "The TEXTOBJ that is editing this text") - (PIECE (fetch F5 of DATUM) - (REPLACE F5 OF DATUM WITH NEWVALUE)) - (* ; - "The PIECE we're currently fetching chars from/putting chars into") - (PCNO (fetch FW8 of DATUM) - (REPLACE FW8 OF DATUM WITH NEWVALUE)) - (* ; - "The position of that piece in the piece table") - (PCSTARTPG (fetch FW6 of DATUM) - (REPLACE FW6 OF DATUM WITH NEWVALUE)) - (* ; - "The underlying file page# that this piece starts on") - (PCSTARTCH (fetch FW7 of DATUM) - (REPLACE FW7 OF DATUM WITH NEWVALUE)) - (* ; - "The char within page of the underlying file that this piece starts on -- for backbin & co") - (PCOFFSET (fetch TIPCOFFSET of (fetch IMAGEDATA of DATUM)) - (REPLACE TIPCOFFSET OF (fetch IMAGEDATA of DATUM) - with NEWVALUE)) (* ; - "The offset into the current piece, as of the last page cross.") - (CURRENTLOOKS (fetch F10 of DATUM) - (replace F10 of DATUM with NEWVALUE)) - (* ; - "The CHARLOOKS that are currently applicable to characters being taken from the stream.") - (CURRENTPARALOOKS (fetch TICURPARALOOKS of (fetch IMAGEDATA - of DATUM)) - (REPLACE TICURPARALOOKS OF (fetch IMAGEDATA - of DATUM) with - NEWVALUE) - ) (* ; - "The FMTSPEC that is currently applicable to characters being taken from the stream.") - (CURRENTIMAGESTREAM (fetch TICURIMAGESTREAM - of (fetch IMAGEDATA of DATUM)) - (REPLACE TICURIMAGESTREAM OF (fetch IMAGEDATA - of DATUM) with - NEWVALUE) - (* ; - "The image stream that this text is being put onto; used for scaling decisions") - ) - (LOOKSUPDATEFN (fetch TILOOKSUPDATEFN of (fetch IMAGEDATA - of DATUM)) - (REPLACE TILOOKSUPDATEFN OF (fetch IMAGEDATA - of DATUM) with - NEWVALUE)) - (* ; - "Function to be called each time character looks change.") - (FATSTREAMP (fetch F4 of DATUM) - (REPLACE F4 OF DATUM WITH NEWVALUE)) - (* ; - "T if the current piece is 16 bit characters.") - ) - (CREATE (create STREAM using \TEXTOFD IMAGEDATA _ (create - - TEXTIMAGEDATA - )))) -) - -(/DECLAREDATATYPE 'PIECE '(POINTER POINTER POINTER POINTER POINTER FULLXPOINTER POINTER POINTER FLAG - POINTER FLAG FLAG XPOINTER) - '((PIECE 0 POINTER) - (PIECE 2 POINTER) - (PIECE 4 POINTER) - (PIECE 6 POINTER) - (PIECE 8 POINTER) - (PIECE 10 FULLXPOINTER) - (PIECE 12 POINTER) - (PIECE 14 POINTER) - (PIECE 14 (FLAGBITS . 0)) - (PIECE 16 POINTER) - (PIECE 16 (FLAGBITS . 0)) - (PIECE 16 (FLAGBITS . 16)) - (PIECE 18 XPOINTER)) - '20) - -(/DECLAREDATATYPE 'TEXTOBJ - '(POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER FLAG POINTER POINTER - POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER - POINTER POINTER FLAG FULLXPOINTER POINTER POINTER POINTER POINTER POINTER FLAG POINTER - FLAG FLAG FLAG FLAG POINTER POINTER POINTER POINTER POINTER POINTER FLAG POINTER - FULLXPOINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER FLAG FLAG POINTER - POINTER POINTER) - '((TEXTOBJ 0 POINTER) - (TEXTOBJ 2 POINTER) - (TEXTOBJ 4 POINTER) - (TEXTOBJ 6 POINTER) - (TEXTOBJ 8 POINTER) - (TEXTOBJ 10 POINTER) - (TEXTOBJ 12 POINTER) - (TEXTOBJ 14 POINTER) - (TEXTOBJ 16 POINTER) - (TEXTOBJ 16 (FLAGBITS . 0)) - (TEXTOBJ 18 POINTER) - (TEXTOBJ 20 POINTER) - (TEXTOBJ 22 POINTER) - (TEXTOBJ 24 POINTER) - (TEXTOBJ 26 POINTER) - (TEXTOBJ 28 POINTER) - (TEXTOBJ 30 POINTER) - (TEXTOBJ 32 POINTER) - (TEXTOBJ 34 POINTER) - (TEXTOBJ 36 POINTER) - (TEXTOBJ 38 POINTER) - (TEXTOBJ 40 POINTER) - (TEXTOBJ 42 POINTER) - (TEXTOBJ 44 POINTER) - (TEXTOBJ 44 (FLAGBITS . 0)) - (TEXTOBJ 46 FULLXPOINTER) - (TEXTOBJ 48 POINTER) - (TEXTOBJ 50 POINTER) - (TEXTOBJ 52 POINTER) - (TEXTOBJ 54 POINTER) - (TEXTOBJ 56 POINTER) - (TEXTOBJ 56 (FLAGBITS . 0)) - (TEXTOBJ 58 POINTER) - (TEXTOBJ 58 (FLAGBITS . 0)) - (TEXTOBJ 58 (FLAGBITS . 16)) - (TEXTOBJ 58 (FLAGBITS . 32)) - (TEXTOBJ 58 (FLAGBITS . 48)) - (TEXTOBJ 60 POINTER) - (TEXTOBJ 62 POINTER) - (TEXTOBJ 64 POINTER) - (TEXTOBJ 66 POINTER) - (TEXTOBJ 68 POINTER) - (TEXTOBJ 70 POINTER) - (TEXTOBJ 70 (FLAGBITS . 0)) - (TEXTOBJ 72 POINTER) - (TEXTOBJ 74 FULLXPOINTER) - (TEXTOBJ 76 POINTER) - (TEXTOBJ 78 POINTER) - (TEXTOBJ 80 POINTER) - (TEXTOBJ 82 POINTER) - (TEXTOBJ 84 POINTER) - (TEXTOBJ 86 POINTER) - (TEXTOBJ 88 POINTER) - (TEXTOBJ 88 (FLAGBITS . 0)) - (TEXTOBJ 88 (FLAGBITS . 16)) - (TEXTOBJ 90 POINTER) - (TEXTOBJ 92 POINTER) - (TEXTOBJ 94 POINTER)) - '96) - -(/DECLAREDATATYPE 'TEXTIMAGEDATA '(POINTER POINTER POINTER POINTER) - '((TEXTIMAGEDATA 0 POINTER) - (TEXTIMAGEDATA 2 POINTER) - (TEXTIMAGEDATA 4 POINTER) - (TEXTIMAGEDATA 6 POINTER)) - '8) - -(DEFOPTIMIZER TEXTPROP (TEXTOBJ PROP &OPTIONAL (VAL NIL WRITING)) - - (* ;; "compiles calls to TEXTPROP") - - [COND - ((NOT (LISTP PROP)) (* ; "property is not quoted.") - 'IGNOREMACRO) - ((NOT (EQ (CAR PROP) - 'QUOTE)) (* ; "property is not quoted.") - 'IGNOREMACRO) - [(NOT WRITING) (* ; "fetching a TEXTPROP property.") - (SELECTQ (CADR PROP) - ((READONLY READ-ONLY) - `(fetch (TEXTOBJ TXTREADONLY) of (TEXTOBJ - ,TEXTOBJ))) - ((BEING-EDITED ACTIVE) - `(fetch (TEXTOBJ TXTEDITING) of (TEXTOBJ ,TEXTOBJ))) - ((NO-NS-CHARS NONSCHARS NO-NSCHARS) - `(fetch (TEXTOBJ TXTNONSCHARS) of (TEXTOBJ - ,TEXTOBJ))) - `(LISTGET (fetch (TEXTOBJ EDITPROPS) - of (TEXTOBJ ,TEXTOBJ)) - ,PROP] - (T (* ; "storing a window property") - (SELECTQ (CADR PROP) - ((READONLY READ-ONLY) - `(REPLACE (TEXTOBJ TXTREADONLY) - OF (TEXTOBJ ,TEXTOBJ) WITH ,VAL)) - ((BEING-EDITED ACTIVE) - `(REPLACE (TEXTOBJ TXTEDITING) - OF (TEXTOBJ ,TEXTOBJ) WITH ,VAL)) - ((NO-NS-CHARS NONSCHARS NO-NSCHARS) - `(REPLACE (TEXTOBJ TXTNONSCHARS) - OF (TEXTOBJ ,TEXTOBJ) WITH ,VAL)) - `(LET* (($$TEXTOBJ$$ (TEXTOBJ ,TEXTOBJ)) - ($$PROPLST$$ (FETCH EDITPROPS OF $$TEXTOBJ$$))) - (COND - ($$PROPLST$$ (LISTPUT $$PROPLST$$ ,PROP ,VAL)) - (T (REPLACE EDITPROPS OF $$TEXTOBJ$$ - WITH (LIST ,PROP ,VAL]) - - - -(* ;; "Private data structures and constants FROM TEXTOFD") - -(DECLARE%: EVAL@COMPILE DONTCOPY -(DECLARE%: EVAL@COMPILE - -(RPAQQ \PCTBFreePieces 0) - -(RPAQQ \PCTBLastPieceOffset 1) - -(RPAQQ \FirstPieceOffset 2) - -(RPAQQ \SecondPieceOffset 4) - -(RPAQQ \EltsPerPiece 2) - - -(CONSTANTS (\PCTBFreePieces 0) - (\PCTBLastPieceOffset 1) - (\FirstPieceOffset 2) - (\SecondPieceOffset 4) - (\EltsPerPiece 2)) -) - -(DECLARE%: EVAL@COMPILE - -(PUTPROPS \EDITELT DMACRO (OPENLAMBDA (ARR NO) - - (* This is equivalent to ELT, but bypasses the checking, since we "know" that - ARR is an array. Hence, much faster.) - - (GETBASEPTR (\ADDBASE2 (fetch (ARRAYP BASE) of ARR) - NO) - 0))) - -[PUTPROPS \GETCH MACRO ((TEXTOBJ) (* jds "23-FEB-82 08:56") - (* Get the next available character - from the text being edited.) - (\BIN (fetch STREAMHINT of TEXTOBJ] - -[PUTPROPS \GETCHB MACRO ((TEXTOBJ) (* Get the next prior character in - the text being edited.) - (\BACKBIN (fetch STREAMHINT of TEXTOBJ] - -(PUTPROPS \EDITSETA DMACRO (OPENLAMBDA (ARR N VAL) - - (* Equivalent to SETA (for pointer-type arrays)%, but bypasses the bounds and - type checking. Hence MUCH faster.) - - (\RPLPTR (\ADDBASE2 (fetch (ARRAYP BASE) of ARR) - N) - 0 VAL))) - -(PUTPROPS \WORDSETA DMACRO (OPENLAMBDA (A J V) - [CHECK (AND (ARRAYP A) - (ZEROP (fetch (ARRAYP ORIG) of A)) - (EQ \ST.POS16 (fetch (ARRAYP TYP) of A] - (CHECK (IGREATERP (fetch (ARRAYP LENGTH) of A) - J)) - (\PUTBASE (fetch (ARRAYP BASE) of A) - (IPLUS (fetch (ARRAYP OFFST) of A) - J) - V))) -) - -(DECLARE%: DOEVAL@COMPILE DONTCOPY - -(GLOBALVARS \TEXTIMAGEOPS \TEXTOFD \TEXTFDEV) -) -) - - - -(* ;;; "FROM TEDITPAGE") - -(DECLARE%: EVAL@COMPILE - -(RECORD PAGEFORMATTINGSTATE ( - (* ;; "Contains the state for a TEdit page-formatting job.") - - PAGE# (* ; - "The current page number. Counted from 1") - FIRSTPAGE - - (* ;; "T if the current page is the 'first page' . Is set initially, and can be set again by the user at will. Gets reset after each page image is printed.") - - MINPAGE# (* ; - "The page # of the first page to be printed, or NIL") - MAXPAGE# (* ; - "The page # of the last page to be printed, or NIL") - STATE (* ; "One of FORMATTING or SEARCHING.") - REQUIREDREGIONTYPE (* ; "If STATE is SEARCHING, the kind of box we're looking for. If STATE is :SEARCHING-FOR-EQUIVALENT-PAGE, this is the page count for the matching page.") - MAINSTREAM (* ; - "The principal textobj/stream source") - CHNO (* ; "Our position in that stream") - PRESSREGION (* ; "The press code's REGION info.") - PAGEHEADINGS (* ; - "The list of current values to be printed, indexed by heading type") - PAGE#GENERATOR (* ; "List of page numbers; later, maybe, a function to generate page numbers. Used to fill in PAGE#TEXT, below") - PAGE#TEXT (* ; "If special page numbers are in use, this is the place to take them from. PAGE# is still used for recto/verso decisions &c") - PAGEISRECTO (* ; - "T if this is a recto page, NIL if it's a VERSO page.") - PAGEFOOTNOTELINES (* ; - "A list of extant footnote lines that should appear at the next opportunity") - PAGEFLOATINGTOPLINES (* ; - "A list of lines that should float to the top of the next available place") - PAGECOUNT (* ; - "The number of pages we've formatted so far.") - PAGELINECACHE (* ; "A cache for pre-created LINEDESCRIPTOR/THISLINE sets, to avoid the overhead of re-allocating them all the time") - NEWPAGELAYOUT (* ; "If we switch page layouts in mid-document, this is where the new layout gets cached until we get started again.") - ) - PAGECOUNT _ 0) - -(DATATYPE PAGEREGION ( - (* ;; - "Describe a part of a page for page formatting. Can be made into compound descriptions.") - - REGIONFILLMETHOD (* ; - "What kind of a region this is -- TEXT, FOLIO, PAGEHEADING, etc.") - REGIONSPEC (* ; - "The page-relative region this occupies") - REGIONLOCALINFO (* ; "A PLIST for local information") - (REGIONPARENT FULLXPOINTER) (* ; - "The parent node for this box, for sub-boxes") - REGIONSUBBOXES (* ; "The sub-regions of this region") - REGIONTYPE (* ; "A user-settable region type") - )) -) - -(/DECLAREDATATYPE 'PAGEREGION '(POINTER POINTER POINTER FULLXPOINTER POINTER POINTER) - '((PAGEREGION 0 POINTER) - (PAGEREGION 2 POINTER) - (PAGEREGION 4 POINTER) - (PAGEREGION 6 FULLXPOINTER) - (PAGEREGION 8 POINTER) - (PAGEREGION 10 POINTER)) - '12) -(DECLARE%: EVAL@COMPILE DONTCOPY -(DECLARE%: EVAL@COMPILE - -(RECORD TEDITPAPERSIZE ( - (* ;; - "Describe the size of a sheet of paper (in points), given a paper size-name.") - - TPSNAME (* ; "The name, as a litatom") - TPSWIDTH (* ; "Paper width, in points") - TPSHEIGHT (* ; "Paper Height, in points") - TPSLANDSCAPE? (* ; - "T if we have to rotate things to print them on this paper.") - )) -) - - -(DEFMACRO \NEW-COLUMN-START (LINE FMTSPEC) - `(AND (FFETCH (LINEDESCRIPTOR 1STLN) OF ,LINE) - (EQ (FFETCH (FMTSPEC FMTCOLUMN) OF ,FMTSPEC) - 'NEXT))) - -(DEFMACRO \FIRST-COLUMN-START (LINE FMTSPEC) - `(AND (FFETCH (LINEDESCRIPTOR 1STLN) OF ,LINE) - (EQ (FFETCH (FMTSPEC FMTCOLUMN) OF ,FMTSPEC) - 'FIRST))) -) - - - -(* ;; "FROM TEDITFIND") - -(DECLARE%: EVAL@COMPILE DONTCOPY -(DECLARE%: EVAL@COMPILE - -(RPAQQ \AlphaNumericFlag 256) - -(RPAQQ \AlphaFlag 512) - -(RPAQQ \OneCharPattern 1024) - -(RPAQQ \AnyStringPattern 1025) - -(RPAQQ \OneAlphaPattern 1026) - -(RPAQQ \AnyAlphaPattern 1027) - -(RPAQQ \OneNonAlphaPattern 1028) - -(RPAQQ \AnyNonAlphaPattern 1029) - -(RPAQQ \LeftBracketPattern 1030) - -(RPAQQ \RightBracketPattern 1031) - -(RPAQQ \SpecialPattern 1024) - - -(CONSTANTS (\AlphaNumericFlag 256) - (\AlphaFlag 512) - (\OneCharPattern 1024) - (\AnyStringPattern 1025) - (\OneAlphaPattern 1026) - (\AnyAlphaPattern 1027) - (\OneNonAlphaPattern 1028) - (\AnyNonAlphaPattern 1029) - (\LeftBracketPattern 1030) - (\RightBracketPattern 1031) - (\SpecialPattern 1024)) -) -) - - - -(* ;; " FROM TEDITLOOKS") - -(DECLARE%: EVAL@COMPILE - -(DATATYPE CHARLOOKS ( - (* ;; - "Describes the appearance (%"Looks%") of characters in a TEdit document.") - - CLFONT (* ; - "The font descriptor for these characters") - CLNAME - - (* ;; "Name of the font (e.g., HELVETICA) THIS FIELD IS A HINT, OR FOR USE IN CHARLOOKS-BUILDING CODE. USE FONTPROP TO GET THE RIGHT VALUE FROM CLFONT.") - - CLSIZE (* ; "Font size, in points") - (CLITAL FLAG) (* ; - "T if the characters are italic, else NIL") - (CLBOLD FLAG) (* ; - "T if the characters are bold, else NIL") - (CLULINE FLAG) (* ; - "T if the characters are to be underscored, else NIL") - (CLOLINE FLAG) (* ; - "T if the characters are to be overscored, else NIL") - (CLSTRIKE FLAG) (* ; - "T if the characters are to be struck thru, else nil.") - CLOFFSET (* ; - "A superscripting offset in points (?) else NIL (SUBSCRIPTING IF NEGATIVE.)") - (CLSMALLCAP FLAG) (* ; "T if small caps, else NIL") - (CLINVERTED FLAG) (* ; - "T if the characters are to be shown white-on-black") - (CLPROTECTED FLAG) (* ; - "T if chars can't be selected, else NIL") - (CLINVISIBLE FLAG) (* ; - "T if TEDIT is to ignore these chars; else NIL") - (CLSELHERE FLAG) - - (* ;; "T if TEDIT can put selection after this char (for menu blanks) else NIL; anything typed after this char will NOT BE PROTECTED.") - - (CLCANCOPY FLAG) - - (* ;; "T if this text can be selected for copying, even tho protected (it will become unprotected after the copy; for Dribble/TTY interface)") - - CLSTYLE (* ; - "The style to be used in marking these characters; overridden by the other fields") - CLUSERINFO (* ; - "Any information that an outsider wants to include") - CLLEADER (* ; - "For creating dotted and other kinds of leader") - CLRULES - - (* ;; "For arbitrarily-places horizontal rules. List of pairs, of (widthinpts . offsetfrombaselineinpts). Should be taken account of in ascent/descent calcs.") - - (CLMARK FLAG) - - (* ;; "Used for a mark-&-sweep of looks at PUT time -- T means this set of looks really IS in use in the document") - - ) - CLOFFSET _ 0) - -(DATATYPE FMTSPEC ( - (* ;; - "Describe the paragraph formatting for a paragraph in a TEdit document.") - - 1STLEFTMAR (* ; - "Left margin of the first line of the paragraph") - LEFTMAR (* ; - "Left margin of the rest of the lines in the paragraph") - RIGHTMAR (* ; "Right margin for the paragraph") - LEADBEFORE (* ; - "Leading above the paragraph's first line, in points") - LEADAFTER (* ; - "Leading below the paragraph's bottom line, in points. NOT IMPLEMENTED.") - LINELEAD (* ; - "Leading between lines, in points. Actually, this space is added BELOW each line in the para.") - FMTBASETOBASE (* ; -"The baseline-to-baseline spacing between lines in this paragraph. THIS OVERRIDES THE LINE LEADING") - TABSPEC (* ; - "The list of tabs for this paragraph, including CAR for a default tab width") - QUAD (* ; - "How the para is formatted: one of LEFT, RIGHT, CENTERED, JUSTIFIED") - FMTSTYLE (* ; - "The STYLE that controls this paragraph's appearance") - FMTCHARSTYLES (* ; "The characterstyles that control the appearance of characters in this para (maybe? may be part of the fmtstyle.)") - FMTUSERINFO (* ; "Space for a PLIST of user info") - FMTSPECIALX (* ; - "A special horizontal location on the printed page for this para.") - FMTSPECIALY (* ; - "A special vertical location on the page for this para") - (FMTHEADINGKEEP FLAG) (* ; - "This para should be kept with the top line or so of the next para..") - FMTPARATYPE (* ; - "What kind of para this is: TEXT, PAGEHEADING, whatever") - FMTPARASUBTYPE (* ; - "Sub type of the type, e.g., what KIND of page heading this is.") - FMTNEWPAGEBEFORE (* ; "Start a new box (if T) or back up the page formatting tree to make a new box of the type named in the value -- by going the least distance back up the tree, then back down until you find that kind of box.") - FMTNEWPAGEAFTER (* ; "Similarly") - FMTKEEP (* ; - "For information about how this paragraph is to be kept with other paragraphs.") - FMTCOLUMN (* ; - "For setting up side-by-side paragraphs easily ala BravoX") - FMTVERTRULES (* ; - "For Keeping track of vertical rules in force") - (FMTMARK FLAG) (* ; "Used to keep track of which PARALOOKSs are really being used -- a mark & collect is done just before a PUT, so that only 'real' PARALOOKSs make it into the file") - (* ; "Used for a mark&sweep of para looks at PUT time -- T means this looks really IS in use in the document, so it makes sense to save it on the file.") - (FMTHARDCOPY FLAG) (* ; - "T if this paragraph is to be displayed in hardcopy-format.") - FMTREVISED (* ; "T (or perhaps a revision level or revision-mark spec??) if this paragraph is to be marked as changed on output.") - ) - TABSPEC _ (CONS NIL NIL)) - -(DATATYPE PENDINGTAB ( - (* ;; "The data structure for a tab, within the line formatter, that we haven't finished dealing with yet, e.g. a centered tab where you need to wait for AFTER the centered text to do the formatting.") - - PTNEWTX - - (* ;; "An updated TX, being passed back to the line formatter. This results from the resolution of an old RIGHT, CENTERED, or DECIMAL tab, which changed the width of a prior tab.") - - PTOLDTAB (* ; "The pending tab") - PTTYPE (* ; "Its tab type") - PTTABX (* ; "Its nominal X position") - (PTWBASE FULLXPOINTER) (* ; - "The WBASE for its width, for updating when we've figured out how wide the tab really is") - PTOLDTX (* ; - "The TX as of when the tab was encountered.") - )) -) - -(/DECLAREDATATYPE 'CHARLOOKS - '(POINTER POINTER POINTER FLAG FLAG FLAG FLAG FLAG POINTER FLAG FLAG FLAG FLAG FLAG FLAG - POINTER POINTER POINTER POINTER FLAG) - '((CHARLOOKS 0 POINTER) - (CHARLOOKS 2 POINTER) - (CHARLOOKS 4 POINTER) - (CHARLOOKS 4 (FLAGBITS . 0)) - (CHARLOOKS 4 (FLAGBITS . 16)) - (CHARLOOKS 4 (FLAGBITS . 32)) - (CHARLOOKS 4 (FLAGBITS . 48)) - (CHARLOOKS 2 (FLAGBITS . 0)) - (CHARLOOKS 6 POINTER) - (CHARLOOKS 6 (FLAGBITS . 0)) - (CHARLOOKS 6 (FLAGBITS . 16)) - (CHARLOOKS 6 (FLAGBITS . 32)) - (CHARLOOKS 6 (FLAGBITS . 48)) - (CHARLOOKS 2 (FLAGBITS . 16)) - (CHARLOOKS 2 (FLAGBITS . 32)) - (CHARLOOKS 8 POINTER) - (CHARLOOKS 10 POINTER) - (CHARLOOKS 12 POINTER) - (CHARLOOKS 14 POINTER) - (CHARLOOKS 14 (FLAGBITS . 0))) - '16) - -(/DECLAREDATATYPE 'FMTSPEC - '(POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER - POINTER POINTER POINTER FLAG POINTER POINTER POINTER POINTER POINTER POINTER POINTER - FLAG FLAG POINTER) - '((FMTSPEC 0 POINTER) - (FMTSPEC 2 POINTER) - (FMTSPEC 4 POINTER) - (FMTSPEC 6 POINTER) - (FMTSPEC 8 POINTER) - (FMTSPEC 10 POINTER) - (FMTSPEC 12 POINTER) - (FMTSPEC 14 POINTER) - (FMTSPEC 16 POINTER) - (FMTSPEC 18 POINTER) - (FMTSPEC 20 POINTER) - (FMTSPEC 22 POINTER) - (FMTSPEC 24 POINTER) - (FMTSPEC 26 POINTER) - (FMTSPEC 26 (FLAGBITS . 0)) - (FMTSPEC 28 POINTER) - (FMTSPEC 30 POINTER) - (FMTSPEC 32 POINTER) - (FMTSPEC 34 POINTER) - (FMTSPEC 36 POINTER) - (FMTSPEC 38 POINTER) - (FMTSPEC 40 POINTER) - (FMTSPEC 40 (FLAGBITS . 0)) - (FMTSPEC 40 (FLAGBITS . 16)) - (FMTSPEC 42 POINTER)) - '44) - -(/DECLAREDATATYPE 'PENDINGTAB '(POINTER POINTER POINTER POINTER FULLXPOINTER POINTER) - '((PENDINGTAB 0 POINTER) - (PENDINGTAB 2 POINTER) - (PENDINGTAB 4 POINTER) - (PENDINGTAB 6 POINTER) - (PENDINGTAB 8 FULLXPOINTER) - (PENDINGTAB 10 POINTER)) - '12) -(DECLARE%: EVAL@COMPILE DONTCOPY -(DECLARE%: EVAL@COMPILE - -(PUTPROPS \SMALLPIN MACRO (OPENLAMBDA (STREAM) - (SIGNED (create WORD - HIBYTE _ (\BIN STREAM) - LOBYTE _ (\BIN STREAM)) - BITSPERWORD))) - -[PUTPROPS \SMALLPOUT MACRO (OPENLAMBDA (STREAM W) - (\BOUT STREAM (LOGAND 255 (LRSH W 8))) - (\BOUT STREAM (LOGAND W 255] - -[PUTPROPS ONOFF MACRO (OPENLAMBDA (VAL) - (COND - (VAL 'ON) - (T 'OFF] -) -) - - - -(* ;; "FROM TEDITMENU") - -(DECLARE%: EVAL@COMPILE DONTCOPY -(DECLARE%: EVAL@COMPILE - -(RECORD MBUTTON NIL [TYPE? (AND (IMAGEOBJP DATUM) - (OR (EQ (IMAGEOBJPROP DATUM 'DISPLAYFN) - 'MB.DISPLAY) - (EQ (IMAGEOBJPROP DATUM 'DISPLAYFN) - 'MB.THREESTATE.DISPLAY) - (EQ (IMAGEOBJPROP DATUM 'DISPLAYFN) - '\TEXTMENU.TOGGLE.DISPLAY]) -) -) -(DECLARE%: EVAL@COMPILE DONTCOPY -(DECLARE%: EVAL@COMPILE - -(RECORD NWAYBUTTON NIL [TYPE? (AND (IMAGEOBJP DATUM) - (EQ (IMAGEOBJPROP DATUM 'DISPLAYFN) - 'MB.NB.DISPLAYFN]) -) -) -(DECLARE%: EVAL@COMPILE DONTCOPY -(DECLARE%: EVAL@COMPILE - -(RECORD MARGINBAR (MARL1 MARLN MARR MARTABS MARUNIT MARTABTYPE) - [TYPE? (AND (IMAGEOBJP DATUM) - (EQ (IMAGEOBJPROP DATUM 'DISPLAYFN) - 'MB.MARGINBAR.DISPLAYFN]) -) -) -(DECLARE%: EVAL@COMPILE DONTCOPY -(DECLARE%: EVAL@COMPILE - -(RECORD TAB (TABX . TABKIND)) -) -) -(DECLARE%: EVAL@COMPILE - -(TYPERECORD MB.3STATE ( - (* ;; "Describes a 3-state menu button.") - - MBLABEL (* ; - "Label for the button on the screen") - MBFONT (* ; - "Font the label text should appear in") - MBCHANGESTATEFN (* ; - "Function to call when the button's state changes") - MBINITSTATE (* ; "Button's initial state.") - ) - MBFONT _ (FONTCREATE 'HELVETICA 8 'BOLD)) - -(TYPERECORD MB.BUTTON (MBLABEL MBBUTTONEVENTFN MBFONT) - MBBUTTONEVENTFN _ 'MB.DEFAULTBUTTON.FN MBFONT _ (FONTCREATE 'HELVETICA 8 - 'BOLD)) - -(TYPERECORD MB.INSERT (MBINITENTRY)) - -(TYPERECORD MB.MARGINBAR (ignoredfield)) - -(TYPERECORD MB.NWAY (MBBUTTONS MBFONT MBCHANGESTATEFN MBINITSTATE MBMAXITEMSPERLINE) - MBFONT _ (FONTCREATE 'HELVETICA 8 'BOLD)) - -(TYPERECORD MB.TEXT (MBSTRING MBFONT)) - -(TYPERECORD MB.TOGGLE (MBTEXT MBFONT MBCHANGESTATEFN MBINITSTATE) - MBFONT _ (FONTCREATE 'HELVETICA 8 'BOLD)) -) - -(DEFMACRO WITHOUT-UPDATES (TEXTOBJ SCRATCHSEL &BODY BODY) - - (* ;; "For TEdit windows, run BODY without updating the edit window for TEXTOBJ. This is useful if you're making a log of changes to a document at one time, where the changes are in essence atomic, and you don't need to see intermediate results. It's also a good bit faster than constant updating.") - - (* ;; "TEXTOBJ is the TEXTOBJ for the document you'll be modifying.") - - (* ;; "SCRATCHSEL should be the scratch selection (often used in this work)") - - `[LET [(OLD-UNWIND-FLAG (FETCH (TEXTOBJ TXTDON'TUPDATE) OF ,TEXTOBJ] - (CL:UNWIND-PROTECT - (PROGN (replace (TEXTOBJ TXTDON'TUPDATE) of ,TEXTOBJ with T) - ,@BODY) - (\SHOWSEL ,SCRATCHSEL NIL NIL) - (replace SET of ,SCRATCHSEL with NIL) - (\TEDIT.MARK.LINES.DIRTY ,TEXTOBJ 1 (fetch (TEXTOBJ TEXTLEN) of ,TEXTOBJ)) - (replace (TEXTOBJ TXTDON'TUPDATE) of ,TEXTOBJ with OLD-UNWIND-FLAG) - (TEDIT.UPDATE.SCREEN ,TEXTOBJ))]) - - - -(* ;; "FROM TEDITHISTORY") - -(DECLARE%: EVAL@COMPILE - -(RECORD TEDITHISTORYEVENT ( - (* ;; "Describes one event on the TEdit edit history list.") - - THACTION (* ; - "A LITATOM, specifying what the event was") - THPOINT (* ; - "Was the selection to the left or right?") - THLEN (* ; "The # of chars involved") - THCH# (* ; "The starting ch#") - THFIRSTPIECE (* ; "First piece involved") - THOLDINFO (* ; "Old info, for undo") - THAUXINFO (* ; - "Auxiliary info about the event, primarily for redo") - THTEXTOBJ - - (* ;; "Place to remember a second textobj, for those like MOVE who need to remember both a source and a destination.") - - ) - THPOINT _ 'LEFT) -) - - - -(* ;; "FROM TEDITFILE") - -(DECLARE%: EVAL@COMPILE DONTCOPY -(DECLARE%: EVAL@COMPILE - -(RPAQQ \PieceDescriptorLOOKS 0) - -(RPAQQ \PieceDescriptorOBJECT 1) - -(RPAQQ \PieceDescriptorPARA 2) - -(RPAQQ \PieceDescriptorPAGEFRAME 3) - -(RPAQQ \PieceDescriptorCHARLOOKSLIST 4) - -(RPAQQ \PieceDescriptorPARALOOKSLIST 5) - -(RPAQQ \PieceDescriptorSAFEOBJECT 6) - - -(CONSTANTS (\PieceDescriptorLOOKS 0) - (\PieceDescriptorOBJECT 1) - (\PieceDescriptorPARA 2) - (\PieceDescriptorPAGEFRAME 3) - (\PieceDescriptorCHARLOOKSLIST 4) - (\PieceDescriptorPARALOOKSLIST 5) - (\PieceDescriptorSAFEOBJECT 6)) -) -) - - - -(* ;; "FROM TEDITCOMMAND") - -(DECLARE%: EVAL@COMPILE DONTCOPY -(DECLARE%: EVAL@COMPILE - -(PUTPROPS \INSERT\TTY\BUFFER MACRO (NIL (\TEDIT.INSERT.TTY.BUFFER ISCRSTRING IPASSSTRING TEXTOBJ SEL) - )) - -[PUTPROPS \TEDIT.MOUSESTATE MACRO (BUTTON - - (* Test to see if only the specified mouse button is down. - DOES NOT call GETMOUSESTATE, so the mouse-button info is the same as the last - time it WAS called.) - - (SELECTQ (CAR BUTTON) - (LEFT '(IEQP LASTMOUSEBUTTONS 4)) - (MIDDLE '(IEQP LASTMOUSEBUTTONS 1)) - (RIGHT '(IEQP LASTMOUSEBUTTONS 2)) - (SHOULDNT] - -[PUTPROPS \TEDIT.CHECK MACRO (ARGS (COND - [(AND (BOUNDP 'CHECK) - CHECK) - (CONS 'PROGN - (for I in ARGS as J on ARGS - when (NOT (STRINGP I)) - collect (LIST 'OR I - (LIST 'HELP - "TEdit consistency-check failure [RETURN to continue]: " - (COND - ((STRINGP (CADR J))) - (T (KWOTE I] - (T (CONS COMMENTFLG ARGS] -) -) -(DECLARE%: EVAL@COMPILE DONTCOPY -(DECLARE%: EVAL@COMPILE - -(ACCESSFNS TEDITTERMCODE ((TTCLASS (LOGAND DATUM 224)) - (TTDECODE (LOGAND DATUM 31)))) -) -) -(DECLARE%: EVAL@COMPILE DONTCOPY -(DECLARE%: EVAL@COMPILE - -(RPAQQ NONE.TTC 0) - -(RPAQQ CHARDELETE.TTC 1) - -(RPAQQ WORDDELETE.TTC 2) - -(RPAQQ DELETE.TTC 3) - -(RPAQQ FUNCTIONCALL.TTC 4) - -(RPAQQ REDO.TTC 5) - -(RPAQQ UNDO.TTC 6) - -(RPAQQ CMD.TTC 7) - -(RPAQQ NEXT.TTC 8) - -(RPAQQ EXPAND.TTC 9) - -(RPAQQ PUNCT.TTC 20) - -(RPAQQ TEXT.TTC 21) - -(RPAQQ WHITESPACE.TTC 22) - - -(CONSTANTS (NONE.TTC 0) - (CHARDELETE.TTC 1) - (WORDDELETE.TTC 2) - (DELETE.TTC 3) - (FUNCTIONCALL.TTC 4) - (REDO.TTC 5) - (UNDO.TTC 6) - (CMD.TTC 7) - (NEXT.TTC 8) - (EXPAND.TTC 9) - (PUNCT.TTC 20) - (TEXT.TTC 21) - (WHITESPACE.TTC 22)) -) -) -(DECLARE%: EVAL@COMPILE DONTCOPY -(DECLARE%: EVAL@COMPILE - -(RPAQQ MSPACE 153) - -(RPAQQ NSPACE 152) - -(RPAQQ THINSPACE 159) - -(RPAQQ FIGSPACE 154) - - -(CONSTANTS (MSPACE 153) - (NSPACE 152) - (THINSPACE 159) - (FIGSPACE 154)) -) -) - - - -(* ;; "FROM TEDITWINDOW") - -(DECLARE%: EVAL@COMPILE DONTCOPY -(DECLARE%: EVAL@COMPILE - -(DATATYPE TEDITCARET (TCNOWTIME - - (* Used to hold the current time, when checking to see if a transition is due) - - TCTHENTIME (* Time when the next transition is - to take place) - TCFORCEDDOWN (* TCFORCEDOWN = T means - (Make the caret visible at the next - call to \EDIT.FLIPCARET.)) - TCUP - - (* TCUP = T => The caret is NOT VISIBLE. - Used to track the current state of the caret) - - TCCARETDS (* The display stream that the caret - appears in) - TCCURSORBM (* The CURSOR representing the caret) - TCCARETRATE (* %# of MSEC between caret up/down - transitions) - TCFORCEUP - - (* T => The caret is not allowed to become visible. - Used to keep the caret up during screen updates) - - TCCARETX (* X position in the window that the - caret appears at) - TCCARETY (* Y position in the window where - the caret appears) - TCCARET (* A lisp CARET to be flashed - (eventually)) - ) - TCNOWTIME _ (CREATECELL \FIXP) - TCTHENTIME _ (CREATECELL \FIXP) - TCCURSORBM _ BXCARET TCCARETRATE _ \CARETRATE TCUP _ T TCCARET _ - (\CARET.CREATE BXCARET)) -) - -(/DECLAREDATATYPE 'TEDITCARET '(POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER - POINTER POINTER POINTER) - '((TEDITCARET 0 POINTER) - (TEDITCARET 2 POINTER) - (TEDITCARET 4 POINTER) - (TEDITCARET 6 POINTER) - (TEDITCARET 8 POINTER) - (TEDITCARET 10 POINTER) - (TEDITCARET 12 POINTER) - (TEDITCARET 14 POINTER) - (TEDITCARET 16 POINTER) - (TEDITCARET 18 POINTER) - (TEDITCARET 20 POINTER)) - '22) -) - -(/DECLAREDATATYPE 'TEDITCARET '(POINTER POINTER POINTER POINTER POINTER POINTER POINTER POINTER - POINTER POINTER POINTER) - '((TEDITCARET 0 POINTER) - (TEDITCARET 2 POINTER) - (TEDITCARET 4 POINTER) - (TEDITCARET 6 POINTER) - (TEDITCARET 8 POINTER) - (TEDITCARET 10 POINTER) - (TEDITCARET 12 POINTER) - (TEDITCARET 14 POINTER) - (TEDITCARET 16 POINTER) - (TEDITCARET 18 POINTER) - (TEDITCARET 20 POINTER)) - '22) - - - -(* ;; "FROM PCTREE added by Nakamura") - -(DECLARE%: EVAL@COMPILE - -(DATATYPE PCTNODE (CHNUM (* ; - "Character #of piece in this node.") - PCE (* ; "PIECE ") - LO (* ; - "Subtree these nodes' ch#are less than this node.") - HI (* ; - " Subtree these nodes' ch#are more than this node.") - BF (* ; "Balance factor.") - (* ; - "1: Right(HI) Subtree is higher than left(lo) subtree.") - (* ; - "0: Right subtree and left subtree are same height") - (* ; - "-1: Right(HI) Subtree is shorter than left(lo) subtree.") - RANK (* ; "(# of nodes in left subtree) +1") - ) - CHNUM _ 0 BF _ 0 RANK _ 1) -) - -(/DECLAREDATATYPE 'PCTNODE '(POINTER POINTER POINTER POINTER POINTER POINTER) - '((PCTNODE 0 POINTER) - (PCTNODE 2 POINTER) - (PCTNODE 4 POINTER) - (PCTNODE 6 POINTER) - (PCTNODE 8 POINTER) - (PCTNODE 10 POINTER)) - '12) - - - -(* ;;; "THE END") - - - - -(* ;; -"Bits in the CHARTABLE that control line breaking, and what happens when a line is broken on this character " -) - -(DECLARE%: EVAL@COMPILE DONTCOPY -(DECLARE%: EVAL@COMPILE - -(RPAQQ NOTBEFORE.LB 1) - -(RPAQQ NOTAFTER.LB 2) - -(RPAQQ BEFORE.LB 4) - -(RPAQQ AFTER.LB 8) - -(RPAQQ DISAPPEAR-IF-NOT-SPLIT.LB 16) - -(RPAQQ NEWCHAR-IF-SPLIT.LB 32) - - -(CONSTANTS (NOTBEFORE.LB 1) - (NOTAFTER.LB 2) - (BEFORE.LB 4) - (AFTER.LB 8) - (DISAPPEAR-IF-NOT-SPLIT.LB 16) - (NEWCHAR-IF-SPLIT.LB 32)) -) -) -(PUTPROPS TEDITDCL COPYRIGHT ("Venue" 1986 1987 1988 1989 1990 1991 1993 1994)) -(DECLARE%: DONTCOPY - (FILEMAP (NIL))) -STOP