;;; -*- Mode:Lisp; Readtable:ZL; Package:USER; Base:8; Patch-File:T -*- ;;; Patch file for System version 124.109 ;;; Reason: ;;; Added ZMacs command List-Tag-Buffers. Displays the associated buffers ;;; for a tag table that have been read in. Display is mouse-sensitive like ;;; List-All-Buffers. Also displays the buffer that is the :CURRENT-PATHNAME ;;; in the search path. ;;; ;;; To do this, I added a parameter to the utility function TAG-TABLE-BUFFERS, so ;;; that it can pass a DEFAULT-P argument to SELECT-TAG-TABLE. I used this ;;; so that by default LIST-TAG-BUFFERS asks the user to select a tag table ;;; for the command. Control-U (or any numeric arg) is an escape hatch; ;;; the currently selected tag table, if there is one, will be displayed. ;;; Written 26-Jun-88 05:14:04 by keith (Keith Corbett) at site Gigamos Cambridge ;;; while running on Breaking Glass from band 1 ;;; with Experimental System 124.107, Experimental Local-File 74.3, Experimental File-Server 23.1, Experimental Unix-Interface 12.0, Experimental ZMail 72.1, Experimental Tape 23.6, Experimental Lambda-Diag 16.2, Tiger 28.0, microcode 1761, SDU Boot Tape 3.14, SDU ROM 103, Beta 3 for in-house. ; From modified file DJ: L.ZWEI; SECTIO.LISP#304 at 26-Jun-88 05:22:07 #8R ZWEI#: (COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "ZWEI"))) (COMPILER::PATCH-SOURCE-FILE "SYS: ZWEI; SECTIO  " (DEFUN TAG-TABLE-BUFFERS (READ-IN-ALL-FILES &optional (default-p t) &AUX BUFFER-LIST FILE-LIST tag-table) "Return a list of all buffers in the selected tag table. Also return the tag table that was selected. READ-IN-ALL-FILES means visit all the files; otherwise, we return only the buffers for files already read in. When DEFAULT-P is NIL, offer to select a tag table." (declare (values buffer-list tag-table)) (SETQ FILE-LIST (SEND (or (setq tag-table (SELECT-TAG-TABLE default-p)) (return-from tag-table-buffers)) :GET 'ZMACS-TAG-TABLE-FILE-SYMBOLS)) (DOLIST (FILE FILE-LIST) (LET ((BUFFER (FIND-FILE-BUFFER FILE))) (IF BUFFER (PUSH BUFFER BUFFER-LIST)) (IF READ-IN-ALL-FILES (PUSH (FIND-FILE FILE NIL) BUFFER-LIST)))) (values (NREVERSE BUFFER-LIST) tag-table)) (defcom com-list-tag-buffers "Display buffers and search point associated with a tag table." () ;;;If there is numeric (or universal) arg, use current tag table. ;;;Else, ask to select tag table. ;;;Display item-list of buffer names. (let ((output *standard-output*) buffers current-buffer tag-table tag-table-name) (multiple-value (buffers tag-table) (tag-table-buffers nil *numeric-arg-p*)) (if (null buffers) (barf "No buffers.")) (setq tag-table-name (or (car (rassq tag-table *zmacs-tag-table-alist*)) (format nil "~S" tag-table))) (setq current-buffer (send tag-table :get 'current-pathname)) (let ((MAX-SIZE (- (SEND *STANDARD-OUTPUT* :SIZE-IN-CHARACTERS) 5.)) (mark-search-char #/+)) (FORMAT output "~&Buffers read in for tag table~@[ ~A~]~@[ (current tag table)~]:~2&" tag-table-name (eq tag-table *zmacs-current-tag-table*)) (dolist (buffer buffers) (SEND output :ITEM 'zmacs-buffer buffer "~2T~c ~A" (if (eq buffer current-buffer) mark-search-char #/space) (name-for-display buffer max-size)) (terpri output)) (when current-buffer (format output "~2%~2T~c means current search buffer." mark-search-char)) (terpri output))) DIS-NONE) )) ; From modified file DJ: L.ZWEI; ZMACS.LISP#575 at 26-Jun-88 05:22:50 #8R ZWEI#: (COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "ZWEI"))) (COMPILER::PATCH-SOURCE-FILE "SYS: ZWEI; ZMACS  " (DEFUN INITIALIZE-ZMACS-COMTABS () (SETQ *ZMACS-CONTROL-X-COMTAB* (SET-COMTAB 'ZMACS-CONTROL-X-COMTAB '(#/C-F COM-FIND-FILE #/C-V COM-FIND-ALTERNATE-FILE #/B COM-SELECT-BUFFER #/C-W COM-WRITE-FILE #/C-S COM-SAVE-FILE #/C-Q COM-TOGGLE-READ-ONLY #/C-B COM-LIST-BUFFERS #/K COM-KILL-BUFFER #/A COM-APPEND-TO-BUFFER #/1 COM-ONE-WINDOW #/2 COM-TWO-WINDOWS #/3 COM-VIEW-TWO-WINDOWS #/4 COM-MODIFIED-TWO-WINDOWS #/^ COM-GROW-WINDOW #/O COM-OTHER-WINDOW #/M COM-MAIL #/D COM- R-DIRED #/V COM-VIEW-FILE #/8 COM-TWO-WINDOWS-SHOWING-REGION #/C-M-L COM-SELECT-DEFAULT-PREVIOUS-BUFFER))) (SET-COMTAB-INDIRECTION *ZMACS-CONTROL-X-COMTAB* *STANDARD-CONTROL-X-COMTAB*) (SETQ *ZMACS-COMTAB* (SET-COMTAB 'ZMACS-COMTAB '(#/C-M-V COM-SCROLL-OTHER-WINDOW #/C-SH-P COM-GO-TO-NEXT-POSSIBILITY #/C-SH-W COM-EDIT-NEXT-WARNING #/M-SH-W COM-EDIT-PREVIOUS-WARNING #/M-~ COM-NOT-MODIFIED #/M-/. COM-EDIT-DEFINITION #/C-M-/. COM-EDIT-ZMACS-COMMAND #/C-M-L COM-SELECT-PREVIOUS-BUFFER) (MAKE-COMMAND-ALIST '(COM-REVERT-BUFFER COM-NOT-MODIFIED COM-VISIT-TAG-TABLE COM-LIST-BUFFERS COM-SAVE-ALL-FILES COM-KILL-SOME-BUFFERS COM-KILL-OR-SAVE-BUFFERS COM-EDIT-BUFFERS COM-BUFFER-EDIT com-create-one-buffer-to-go COM-SPLIT-SCREEN COM-LIST-SECTIONS COM-LIST-TAG-TABLES com-list-tag-buffers COM-SELECT-TAG-TABLE com-current-tag-table COM-SET-DEFAULT-FILE-NAME COM-RENAME-BUFFER COM-SET-VISITED-FILE-NAME COM-TAGS-SEARCH COM-TAGS-QUERY-REPLACE COM-NEXT-FILE COM-TAGS-SEARCH-LIST-SECTIONS COM-EDIT-CALLERS COM-LIST-CALLERS COM-LIST-OBJECT-USERS COM-MULTIPLE-LIST-OBJECT-USERS COM-MULTIPLE-EDIT-CALLERS COM-MULTIPLE-LIST-CALLERS COM-EDIT-OBJECT-USERS COM-MULTIPLE-EDIT-OBJECT-USERS COM-LIST-MATCHING-SYMBOLS COM-FUNCTION-APROPOS COM-SECTIONIZE-BUFFER COM-DESCRIBE-FLAVOR COM-LIST-FLAVOR-COMPONENTS COM-EDIT-FLAVOR-COMPONENTS COM-LIST-FLAVOR-DEPENDENTS COM-EDIT-FLAVOR-DEPENDENTS COM-LIST-FLAVOR-DIRECT-DEPENDENTS COM-EDIT-FLAVOR-DIRECT-DEPENDENTS COM-LIST-FLAVOR-METHODS COM-EDIT-FLAVOR-METHODS COM-LIST-METHODS COM-EDIT-METHODS COM-LIST-COMBINED-METHODS COM-EDIT-COMBINED-METHODS COM-FASL-UPDATE COM-EDIT-ZMACS-COMMAND COM-COMPILE-FILE COM-COMPILE-AND-LOAD-FILE COM-REPARSE-ATTRIBUTE-LIST COM-UPDATE-ATTRIBUTE-LIST COM-LIST-FONTS COM-DISPLAY-FONT COM-DIRED COM-BDIRED COM-REAP-FILE COM-CLEAN-DIRECTORY COM-CHANGE-FILE-PROPERTIES COM-EXPUNGE-DIRECTORY COM-CREATE-DIRECTORY COM-CREATE-LINK COM-REMOTE-CONNECT COM-REMOTE-ACCESS COM-MAIL COM-BUG COM-EDIT-WARNINGS COM-EDIT-FILE-WARNINGS COM-EDIT-SYSTEM-WARNINGS COM-INSERT-FILE-WARNINGS COM-INSERT-WARNINGS COM-FIND-SYSTEM-FILES COM-FIND-FILE-NO-SECTIONIZE COM-FIND-FILE-BACKGROUND COM-SELECT-SYSTEM-AS-TAG-TABLE COM-SELECT-ALL-BUFFERS-AS-TAG-TABLE COM-SELECT-SOME-BUFFERS-AS-TAG-TABLE COM-TAGS-MULTIPLE-QUERY-REPLACE COM-TAGS-MULTIPLE-QUERY-REPLACE-FROM-BUFFER COM-WHERE-IS-SYMBOL COM-ZTOP-MODE COM-SELECT-LAST-ZTOP-BUFFER COM-SET-BACKSPACE COM-SET-BASE COM-SET-PACKAGE COM-SET-LOWERCASE COM-SET-NOFILL COM-SET-PATCH-FILE COM-SET-TAB-WIDTH COM-SET-VSP COM-SET-COMMON-LISP COM-SET-READTABLE COM-INDENT-RIGIDLY COM-VIEW-BUFFER COM-INSERT-BUFFER COM-PRINT-MODIFICATIONS COM-COMPILE-CHANGED-SECTIONS COM-COMPILE-BUFFER-CHANGED-SECTIONS COM-EVALUATE-CHANGED-SECTIONS COM-EVALUATE-BUFFER-CHANGED-SECTIONS COM-LIST-CHANGED-SECTIONS COM-EDIT-CHANGED-SECTIONS COM-LIST-BUFFER-CHANGED-SECTIONS COM-EDIT-BUFFER-CHANGED-SECTIONS COM-TAGS-LIST-CHANGED-SECTIONS COM-TAGS-EDIT-CHANGED-SECTIONS COM-TAGS-COMPILE-CHANGED-SECTIONS COM-TAGS-EVALUATE-CHANGED-SECTIONS COM-SOURCE-COMPARE COM-SOURCE-COMPARE-MERGE COM-SOURCE-COMPARE-CHANGES COM-START-PATCH COM-ADD-PATCH COM-FINISH-PATCH COM-CANCEL-PATCH COM-RESUME-PATCH COM-FINISH-PATCH-UNRELEASED COM-RELEASE-PATCH COM-START-PRIVATE-PATCH COM-ADD-PATCH-CHANGED-SECTIONS COM-ADD-PATCH-BUFFER-CHANGED-SECTIONS COM-TEACH-ZMACS )))) (SET-COMTAB-INDIRECTION *ZMACS-COMTAB* *STANDARD-COMTAB*) (SET-COMTAB *ZMACS-COMTAB* (LIST #/C-X (MAKE-EXTENDED-COMMAND *ZMACS-CONTROL-X-COMTAB*))) (SET-COMTAB *ZMACS-COMTAB* (LIST #/MOUSE-3-1 (MAKE-MENU-COMMAND '(COM-ARGLIST COM-EDIT-DEFINITION COM-LIST-CALLERS COM-LIST-SECTIONS COM-LIST-BUFFERS COM-KILL-OR-SAVE-BUFFERS COM-SPLIT-SCREEN COM-COMPILE-REGION COM-INDENT-REGION COM-CHANGE-DEFAULT-FONT COM-CHANGE-FONT-REGION COM-UPPERCASE-REGION COM-LOWERCASE-REGION COM-MOUSE-INDENT-RIGIDLY COM-MOUSE-INDENT-UNDER))))) )) ; From modified file DJ: L.ZWEI; ZMACS.LISP#575 at 26-Jun-88 05:25:08 #8R ZWEI#: (COMPILER-LET ((*PACKAGE* (PKG-FIND-PACKAGE "ZWEI"))) (COMPILER::PATCH-SOURCE-FILE "SYS: ZWEI; ZMACS  " (setq *zmacs-comtab* (set-comtab *zmacs-comtab* nil (make-command-alist '(com-list-tag-buffers)))) ))