From 72d7b3e99ef4ab60cea3bdca947c27fe48787cdd Mon Sep 17 00:00:00 2001 From: Chris Hanson Date: Fri, 15 Mar 1991 23:40:26 +0000 Subject: [PATCH] Change most auto-loading files to be loaded when Edwin is built. Only a few rarely used files remain auto-loading now. --- v7/src/edwin/c-mode.scm | 36 ++++--- v7/src/edwin/cinden.scm | 26 ++++- v7/src/edwin/dired.scm | 154 ++++++++++++++++-------------- v7/src/edwin/info.scm | 23 ++++- v7/src/edwin/loadef.scm | 203 +--------------------------------------- v7/src/edwin/tagutl.scm | 8 +- 6 files changed, 160 insertions(+), 290 deletions(-) diff --git a/v7/src/edwin/c-mode.scm b/v7/src/edwin/c-mode.scm index 726b33e4e..1dad6955e 100644 --- a/v7/src/edwin/c-mode.scm +++ b/v7/src/edwin/c-mode.scm @@ -1,8 +1,8 @@ ;;; -*-Scheme-*- ;;; -;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/c-mode.scm,v 1.44 1990/10/03 04:54:21 cph Rel $ +;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/c-mode.scm,v 1.45 1991/03/15 23:37:29 cph Exp $ ;;; -;;; Copyright (c) 1986, 1989, 1990 Massachusetts Institute of Technology +;;; Copyright (c) 1986, 1989-91 Massachusetts Institute of Technology ;;; ;;; This material was developed by the Scheme project at the ;;; Massachusetts Institute of Technology, Department of @@ -49,8 +49,7 @@ (define-command c-mode "Enter C mode." () - (lambda () - (set-current-major-mode! (ref-mode-object c)))) + (lambda () (set-current-major-mode! (ref-mode-object c)))) (define-major-mode c fundamental "C" "Major mode for editing C code. @@ -62,24 +61,24 @@ Delete converts tabs to spaces as it moves back. The characters { } ; : correct indentation when typed. Variables controlling indentation style: - C Auto Newline + c-auto-newline Non-false means automatically newline before and after braces, and after colons and semicolons, inserted in C code. - C Indent Level + c-indent-level Indentation of C statements within surrounding block. The surrounding block's indentation is the indentation of the line on which the open-brace appears. - C Continued Statement Offset + c-continued-statement-offset Extra indentation given to a substatement, such as the then-clause of an if or body of a while. - C Brace Offset + c-brace-offset Extra indentation for line if it starts with an open brace. - C Brace Imaginary Offset + c-brace-imaginary-offset An open brace following other text is treated as if it were this far to the right of the start of its line. - C Argdecl Indent + c-argdecl-indent Indentation level of declarations of C function arguments. - C Label Offset + c-label-offset Extra indentation for line that is a label, or case or default." (local-set-variable! syntax-table c-mode:syntax-table) @@ -94,7 +93,11 @@ Variables controlling indentation style: (local-set-variable! comment-end " */") (local-set-variable! comment-column 32) (event-distributor/invoke! (ref-variable c-mode-hook))) - + +(define-variable c-mode-hook + "An event distributor that is invoked when entering C mode." + (make-event-distributor)) + (define-key 'c #\linefeed 'reindent-then-newline-and-indent) (define-key 'c #\{ 'electric-c-brace) (define-key 'c #\} 'electric-c-brace) @@ -116,7 +119,7 @@ Variables controlling indentation style: (modify-syntax-entry! c-mode:syntax-table #\< ".") (modify-syntax-entry! c-mode:syntax-table #\> ".") (modify-syntax-entry! c-mode:syntax-table #\' "\"") - + (define (c-mode:comment-locate start) (and (re-search-forward "/\\*[ \t]*" start (line-end start 0)) (cons (re-match-start 0) (re-match-end 0)))) @@ -126,7 +129,12 @@ Variables controlling indentation style: 0 (max (1+ (mark-column (horizontal-space-start start))) (ref-variable comment-column)))) - + +(define-variable c-auto-newline + "Non-false means automatically newline before and after braces, +and after colons and semicolons, inserted in C code." + false) + (define-command electric-c-brace "Insert character and correct line's indentation." "P" diff --git a/v7/src/edwin/cinden.scm b/v7/src/edwin/cinden.scm index 24d68e27e..28bd64516 100644 --- a/v7/src/edwin/cinden.scm +++ b/v7/src/edwin/cinden.scm @@ -1,6 +1,6 @@ ;;; -*-Scheme-*- ;;; -;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/cinden.scm,v 1.3 1989/04/28 22:48:19 cph Rel $ +;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/cinden.scm,v 1.4 1991/03/15 23:37:44 cph Exp $ ;;; ;;; Copyright (c) 1986, 1989 Massachusetts Institute of Technology ;;; @@ -46,6 +46,30 @@ (declare (usual-integrations)) +(define-variable c-indent-level + "Indentation of C statements with respect to containing block." + 2) + +(define-variable c-brace-offset + "Extra indentation for braces, compared with other text in same context." + 0) + +(define-variable c-brace-imaginary-offset + "Imagined indentation of a C open brace that actually follows a statement." + 0) + +(define-variable c-argdecl-indent + "Indentation level of declarations of C function arguments." + 5) + +(define-variable c-label-offset + "Offset of C label lines and case statements relative to usual indentation." + -2) + +(define-variable c-continued-statement-offset + "Extra indent for lines not starting new statements." + 2) + (define (c-indent-line start) (maybe-change-indentation (c-indent-line:indentation start) start)) diff --git a/v7/src/edwin/dired.scm b/v7/src/edwin/dired.scm index 0543c1fef..64e145e38 100644 --- a/v7/src/edwin/dired.scm +++ b/v7/src/edwin/dired.scm @@ -1,8 +1,8 @@ ;;; -*-Scheme-*- ;;; -;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/dired.scm,v 1.104 1989/08/07 08:44:35 cph Rel $ +;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/dired.scm,v 1.105 1991/03/15 23:38:39 cph Exp $ ;;; -;;; Copyright (c) 1986, 1989 Massachusetts Institute of Technology +;;; Copyright (c) 1986, 1989-91 Massachusetts Institute of Technology ;;; ;;; This material was developed by the Scheme project at the ;;; Massachusetts Institute of Technology, Department of @@ -46,6 +46,35 @@ (declare (usual-integrations)) +(define-major-mode dired fundamental "Dired" + "Major mode for editing a list of files. +Each line describes a file in the directory. +F -- visit the file on the current line. +D -- mark that file to be killed. +U -- remove all marks from the current line. +Rubout -- back up a line and remove marks. +Space -- move down one line. +X -- kill marked files. +Q -- quit, killing marked files. + This is like \\[dired-do-deletions] followed by \\[kill-buffer]. +C-] -- abort Dired; this is like \\[kill-buffer] on this buffer." + (local-set-variable! case-fold-search true)) + +(define-key 'dired #\f 'dired-find-file) +(define-key 'dired #\o 'dired-find-file-other-window) +(define-key 'dired #\g 'dired-revert) +(define-key 'dired #\d 'dired-flag-file-deleted) +(define-key 'dired #\c-d 'dired-flag-file-deleted) +(define-key 'dired #\u 'dired-unflag) +(define-key 'dired #\rubout 'dired-backup-unflag) +(define-key 'dired #\space 'dired-next-line) +(define-key 'dired #\c-n 'dired-next-line) +(define-key 'dired #\c-p 'dired-previous-line) +(define-key 'dired #\x 'dired-do-deletions) +(define-key 'dired #\q 'dired-quit) +(define-key 'dired #\c-\] 'dired-abort) +(define-key 'dired #\? 'dired-summary) + (define-command dired "\"Edit\" directory DIRNAME--delete, rename, print, etc. some files in it. Dired displays a list of files in DIRNAME. @@ -62,92 +91,71 @@ Type `h' after entering dired for more info." "DDired in other window (directory)" (lambda (directory) (select-buffer-other-window (make-dired-buffer directory)))) - + (define (make-dired-buffer directory) - (let ((pathname (->pathname directory))) - (let ((buffer (get-dired-buffer pathname))) + (let ((directory (->pathname directory))) + (let ((buffer (get-dired-buffer directory))) (set-buffer-major-mode! buffer (ref-mode-object dired)) - (set-buffer-truename! buffer pathname) + (set-buffer-default-directory! buffer + (pathname-directory-path directory)) (buffer-put! buffer 'REVERT-BUFFER-METHOD revert-dired-buffer) - (fill-dired-buffer! buffer) + (buffer-put! buffer 'DIRED-DIRECTORY directory) + (fill-dired-buffer! buffer directory) buffer))) -(define (get-dired-buffer pathname) +(define (get-dired-buffer directory) (or (list-search-positive (buffer-list) (lambda (buffer) - (and (eq? (ref-mode-object dired) (buffer-major-mode buffer)) - (pathname=? pathname (buffer-truename buffer))))) - (new-buffer (pathname->buffer-name pathname)))) + (let ((directory* (buffer-get buffer 'DIRED-DIRECTORY))) + (and directory* + (pathname=? directory* directory))))) + (new-buffer (pathname->buffer-name directory)))) + +(define (dired-buffer-directory buffer) + (or (buffer-get buffer 'DIRED-DIRECTORY) + (let ((directory (buffer-default-directory buffer))) + (buffer-put! buffer 'DIRED-DIRECTORY directory) + directory))) (define (revert-dired-buffer buffer dont-use-auto-save? dont-confirm?) dont-use-auto-save? dont-confirm? ;ignore - (fill-dired-buffer! buffer)) + (fill-dired-buffer! buffer (dired-buffer-directory buffer))) -(define (fill-dired-buffer! buffer) +(define (fill-dired-buffer! buffer pathname) (set-buffer-writeable! buffer) (region-delete! (buffer-region buffer)) - (let ((pathname (buffer-truename buffer))) - (temporary-message - (string-append "Reading directory " - (pathname->string pathname) - "...")) - (let ((pathnames (read&sort-directory pathname))) - (let ((lines (map os/make-dired-line pathnames)) - (point (buffer-point buffer))) - (append-message "done") - (for-each (lambda (line pathname) - (if (not line) - (begin - (insert-string "can't find file: " point) - (insert-string (pathname-name-string pathname) point) - (insert-newline point)))) - lines - pathnames) - (insert-string "Directory " point) - (insert-string (pathname->string pathname) point) - (insert-newlines 2 point) - (buffer-put! buffer 'DIRED-HEADER-END (mark-right-inserting point)) - (for-each (lambda (line) - (if line - (begin - (insert-string line point) - (insert-newline point)))) - lines)))) + (temporary-message + (string-append "Reading directory " + (pathname->string pathname) + "...")) + (let ((pathnames (read&sort-directory pathname))) + (let ((lines (map os/make-dired-line pathnames)) + (point (buffer-point buffer))) + (append-message "done") + (for-each (lambda (line pathname) + (if (not line) + (begin + (insert-string "can't find file: " point) + (insert-string (pathname-name-string pathname) point) + (insert-newline point)))) + lines + pathnames) + (insert-string "Directory " point) + (insert-string (pathname->string pathname) point) + (insert-newlines 2 point) + (buffer-put! buffer 'DIRED-HEADER-END (mark-right-inserting point)) + (for-each (lambda (line) + (if line + (begin + (insert-string line point) + (insert-newline point)))) + lines))) (buffer-not-modified! buffer) (set-buffer-read-only! buffer) (add-buffer-initialization! buffer (lambda () (set-dired-point! (buffer-get (current-buffer) 'DIRED-HEADER-END))))) -(define-major-mode dired fundamental "Dired" - "Major mode for editing a list of files. -Each line describes a file in the directory. -F -- visit the file on the current line. -D -- mark that file to be killed. -U -- remove all marks from the current line. -Rubout -- back up a line and remove marks. -Space -- move down one line. -X -- kill marked files. -Q -- quit, killing marked files. - This is like \\[dired-do-deletions] followed by \\[kill-buffer]. -C-] -- abort Dired; this is like \\[kill-buffer] on this buffer." - (local-set-variable! case-fold-search true)) - -(define-key 'dired #\f 'dired-find-file) -(define-key 'dired #\o 'dired-find-file-other-window) -(define-key 'dired #\g 'dired-revert) -(define-key 'dired #\d 'dired-flag-file-deleted) -(define-key 'dired #\c-d 'dired-flag-file-deleted) -(define-key 'dired #\u 'dired-unflag) -(define-key 'dired #\rubout 'dired-backup-unflag) -(define-key 'dired #\space 'dired-next-line) -(define-key 'dired #\c-n 'dired-next-line) -(define-key 'dired #\c-p 'dired-previous-line) -(define-key 'dired #\x 'dired-do-deletions) -(define-key 'dired #\q 'dired-quit) -(define-key 'dired #\c-\] 'dired-abort) -(define-key 'dired #\? 'dired-summary) - (define-command dired-find-file "Read the current file into a buffer." () @@ -245,7 +253,7 @@ C-] -- abort Dired; this is like \\[kill-buffer] on this buffer." (define (dired-pathname lstart) (merge-pathnames - (pathname-directory-path (buffer-truename (current-buffer))) + (pathname-directory-path (dired-buffer-directory (current-buffer))) (string->pathname (region->string (os/dired-filename-region lstart))))) (define (dired-mark char n) @@ -300,6 +308,12 @@ C-] -- abort Dired; this is like \\[kill-buffer] on this buffer." ;;;; List Directory +(define-variable list-directory-unpacked + "If not false, \\[list-directory] puts one file on each line. +Normally it packs many onto a line. +This has no effect if \\[list-directory] is invoked with an argument." + false) + (define-command list-directory "Generate a directory listing." "DList directory\nP" diff --git a/v7/src/edwin/info.scm b/v7/src/edwin/info.scm index c844ad9ec..f0208f20c 100644 --- a/v7/src/edwin/info.scm +++ b/v7/src/edwin/info.scm @@ -1,6 +1,6 @@ ;;; -*-Scheme-*- ;;; -;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/info.scm,v 1.96 1991/02/15 18:13:44 cph Exp $ +;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/info.scm,v 1.97 1991/03/15 23:39:31 cph Exp $ ;;; ;;; Copyright (c) 1986, 1989-91 Massachusetts Institute of Technology ;;; @@ -58,6 +58,24 @@ (define info-buffer-name "*info*") +(define-variable info-enable-edit + "If true, the \\[info-edit] command in Info can edit the current node." + false) + +(define-variable info-enable-active-nodes + "If true, allows Info to execute Scheme code associated with nodes. +The Scheme code is executed when the node is selected." + true) + +(define-variable info-directory + "If not false, default directory for Info documentation files. +Otherwise the standard directory is used." + false) + +(define-variable info-previous-search + "Default search string for Info \\[info-search] command to search for." + false) + (define-variable info-history "List of info nodes user has visited. Each element of list is a vector #(FILENAME NODENAME BUFFERPOS)." @@ -596,8 +614,7 @@ The name may be an abbreviation of the reference name." (if (let ((directory (pathname-directory pathname))) (and (pair? directory) (eq? (car directory) 'SELF))) - (pathname-directory-path - (current-default-pathname)) + (buffer-default-directory (current-buffer)) (let ((info-directory (ref-variable info-directory))) (if info-directory diff --git a/v7/src/edwin/loadef.scm b/v7/src/edwin/loadef.scm index 5b1dfa866..c389113f9 100644 --- a/v7/src/edwin/loadef.scm +++ b/v7/src/edwin/loadef.scm @@ -1,8 +1,8 @@ ;;; -*-Scheme-*- ;;; -;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/loadef.scm,v 1.7 1990/10/03 04:55:26 cph Rel $ +;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/loadef.scm,v 1.8 1991/03/15 23:39:59 cph Exp $ ;;; -;;; Copyright (c) 1986, 1989, 1990 Massachusetts Institute of Technology +;;; Copyright (c) 1986, 1989-91 Massachusetts Institute of Technology ;;; ;;; This material was developed by the Scheme project at the ;;; Massachusetts Institute of Technology, Department of @@ -46,133 +46,6 @@ (declare (usual-integrations)) -;;;; Various Libraries - -(define-library 'INFO - '("info" (EDWIN INFO))) - -(define-variable info-enable-edit - "If true, the \\[info-edit] command in Info can edit the current node." - false) - -(define-variable info-enable-active-nodes - "If true, allows Info to execute Scheme code associated with nodes. -The Scheme code is executed when the node is selected." - true) - -(define-variable info-directory - "If not false, default directory for Info documentation files. -Otherwise the standard directory is used." - false) - -(define-variable info-previous-search - "Default search string for Info \\[info-search] command to search for." - false) - -(define-autoload-command 'info 'INFO - "Create a buffer for Info, the documentation browser program.") - -(define-library 'DIRED - '("dired" (EDWIN DIRED))) - -(define-variable list-directory-unpacked - "If not false, \\[list-directory] puts one file on each line. -Normally it packs many onto a line. -This has no effect if \\[list-directory] is invoked with an argument." - false) - -(define-autoload-command 'dired 'DIRED - "Edit a directory. You type the directory name.") - -(define-autoload-command 'dired-other-window 'DIRED - "Edit a directory in another window. You type the directory name.") - -(define-autoload-command 'list-directory 'DIRED - "Generate a directory listing.") - -(define-autoload-procedure 'make-dired-buffer '(EDWIN DIRED) 'DIRED) - -(define-library 'RECTANGLE-COMMANDS - '("reccom" (EDWIN RECTANGLE))) - -(define-autoload-command 'kill-rectangle 'RECTANGLE-COMMANDS - "Delete rectangle with corners at point and mark; save as last killed one.") - -(define-autoload-command 'delete-rectangle 'RECTANGLE-COMMANDS - "Delete (don't save) text in rectangle with point and mark as corners. -The same range of columns is deleted in each line -starting with the line where the region begins -and ending with the line where the region ends.") - -(define-autoload-command 'open-rectangle 'RECTANGLE-COMMANDS - "Blank out rectangle with corners at point and mark, shifting text right. -The text previously in the region is not overwritten by the blanks, -but instead winds up to the right of the rectangle.") - -(define-autoload-command 'clear-rectangle 'RECTANGLE-COMMANDS - "Blank out rectangle with corners at point and mark. -The text previously in the region is overwritten by the blanks.") - -(define-autoload-command 'yank-rectangle 'RECTANGLE-COMMANDS - "Yank the last killed rectangle with upper left corner at point.") - -(define-autoload-procedure 'delete-rectangle '(EDWIN RECTANGLE) - 'RECTANGLE-COMMANDS) - -(define-autoload-procedure 'yank-rectangle '(EDWIN RECTANGLE) - 'RECTANGLE-COMMANDS) - -(define-library 'COMMAND-SUMMARY - '("keymap" (EDWIN COMMAND-SUMMARY))) - -(define-autoload-command 'make-command-summary 'COMMAND-SUMMARY - "Make a summary of current key bindings in the buffer *Summary*. -Previous contents of that buffer are killed first.") - -(define-autoload-command 'describe-bindings 'COMMAND-SUMMARY - "Show a list of all defined keys, and their definitions. -The list is put in a buffer, which is displayed.") - -;;;; Tags Package - -(define-library 'TAGS - '("tags" (EDWIN TAGS))) - -(define-variable tags-table-pathname - "Pathname of current tags table." - false) - -(define-autoload-command 'visit-tags-table 'TAGS - "Tell tags commands to use a given tags table file.") - -(define-autoload-command 'find-tag 'TAGS - "Find tag (in current tags table) whose name contains a given string. - Selects the buffer that the tag is contained in -and puts point at its definition. - With argument, searches for the next tag in the tags table that matches -the string used in the previous Find Tag.") - -(define-autoload-command 'find-tag-other-window 'TAGS - "Like \\[find-tag], but selects buffer in another window.") - -(define-autoload-command 'tags-search 'TAGS - "Search through all files listed in tag table for a given string. -Stops when a match is found. -To continue searching for next match, use command \\[tags-loop-continue].") - -(define-autoload-command 're-tags-search 'TAGS - "Search through all files listed in tag table for a given regexp. -Stops when a match is found. -To continue searching for next match, use command \\[tags-loop-continue].") - -(define-autoload-command 'tags-query-replace 'TAGS - "Query replace a given string with another one though all files listed -in tag table. If you exit (C-G or Altmode), you can resume the query -replace with the command \\[tags-loop-continue].") - -(define-autoload-command 'tags-loop-continue 'TAGS - "Continue last \\[tags-search] or \\[tags-query-replace] command.") - ;;;; Major Mode Libraries (define-library 'MIDAS-MODE @@ -225,74 +98,4 @@ modified version of TeX input format.") (define-variable texinfo-mode-hook "An event distributor that is invoked when entering Texinfo mode." - (make-event-distributor)) - -(define-library 'C-MODE - '("c-mode" (EDWIN)) - '("cinden" (EDWIN C-INDENTATION))) - -(define-autoload-major-mode 'c 'fundamental "C" 'C-MODE - "Major mode for editing C code. -Expression and list commands understand all C brackets. -Tab indents for C code. -Comments are delimited with /* ... */. -Paragraphs are separated by blank lines only. -Delete converts tabs to spaces as it moves back. -The characters { } ; : correct indentation when typed. - -Variables controlling indentation style: - c-auto-newline - Non-false means automatically newline before and after braces, - and after colons and semicolons, inserted in C code. - c-indent-level - Indentation of C statements within surrounding block. - The surrounding block's indentation is the indentation - of the line on which the open-brace appears. - c-continued-statement-offset - Extra indentation given to a substatement, such as the - then-clause of an if or body of a while. - c-brace-offset - Extra indentation for line if it starts with an open brace. - c-brace-imaginary-offset - An open brace following other text is treated as if it were - this far to the right of the start of its line. - c-argdecl-indent - Indentation level of declarations of C function arguments. - c-label-offset - Extra indentation for line that is a label, or case or default.") - -(define-autoload-command 'c-mode 'C-MODE - "Enter C mode.") - -(define-variable c-mode-hook - "An event distributor that is invoked when entering C mode." - (make-event-distributor)) - -(define-variable c-indent-level - "Indentation of C statements with respect to containing block." - 2) - -(define-variable c-brace-offset - "Extra indentation for braces, compared with other text in same context." - 0) - -(define-variable c-brace-imaginary-offset - "Imagined indentation of a C open brace that actually follows a statement." - 0) - -(define-variable c-argdecl-indent - "Indentation level of declarations of C function arguments." - 5) - -(define-variable c-label-offset - "Offset of C label lines and case statements relative to usual indentation." - -2) - -(define-variable c-continued-statement-offset - "Extra indent for lines not starting new statements." - 2) - -(define-variable c-auto-newline - "Non-false means automatically newline before and after braces, -and after colons and semicolons, inserted in C code." - false) \ No newline at end of file + (make-event-distributor)) \ No newline at end of file diff --git a/v7/src/edwin/tagutl.scm b/v7/src/edwin/tagutl.scm index db2f00655..da075a86d 100644 --- a/v7/src/edwin/tagutl.scm +++ b/v7/src/edwin/tagutl.scm @@ -1,8 +1,8 @@ ;;; -*-Scheme-*- ;;; -;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/tagutl.scm,v 1.35 1990/10/06 00:00:30 cph Rel $ +;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/tagutl.scm,v 1.36 1991/03/15 23:40:26 cph Exp $ ;;; -;;; Copyright (c) 1986, 1989, 1990 Massachusetts Institute of Technology +;;; Copyright (c) 1986, 1989-91 Massachusetts Institute of Technology ;;; ;;; This material was developed by the Scheme project at the ;;; Massachusetts Institute of Technology, Department of @@ -47,6 +47,10 @@ (declare (usual-integrations)) +(define-variable tags-table-pathname + "Pathname of current tags table." + false) + (define-command visit-tags-table "Tell tags commands to use tag table file FILE. FILE should be the name of a file created with the `etags' program. -- 2.25.1