From 78cdf4c7627e0ce857bb6c6ebbca183e18762c21 Mon Sep 17 00:00:00 2001 From: Stefan Kangas Date: Fri, 4 Dec 2020 10:55:50 +0100 Subject: [PATCH] Prefer setq-local in eshell * lisp/eshell/em-cmpl.el (eshell-cmpl-initialize): * lisp/eshell/em-dirs.el (eshell-dirs-initialize): * lisp/eshell/em-glob.el (eshell-glob-initialize, eshell-glob-regexp): * lisp/eshell/em-hist.el (eshell-hist-initialize): * lisp/eshell/em-prompt.el (eshell-prompt-initialize): * lisp/eshell/em-rebind.el (eshell-rebind-initialize) (eshell-setup-input-keymap): * lisp/eshell/em-script.el (eshell-script-initialize): * lisp/eshell/em-smart.el (eshell-smart-initialize): * lisp/eshell/em-term.el (eshell-term-initialize, eshell-exec-visual): * lisp/eshell/em-tramp.el (eshell-tramp-initialize): * lisp/eshell/em-unix.el (eshell-unix-initialize, eshell/diff): * lisp/eshell/esh-arg.el (eshell-arg-initialize): * lisp/eshell/esh-cmd.el (eshell-cmd-initialize): * lisp/eshell/esh-io.el (eshell-get-target): * lisp/eshell/esh-mode.el (eshell-mode): * lisp/eshell/esh-var.el (eshell-var-initialize): Prefer setq-local. --- lisp/eshell/em-cmpl.el | 72 ++++++++++++++++++++-------------------- lisp/eshell/em-dirs.el | 6 ++-- lisp/eshell/em-glob.el | 4 +-- lisp/eshell/em-hist.el | 11 +++--- lisp/eshell/em-prompt.el | 5 ++- lisp/eshell/em-rebind.el | 5 ++- lisp/eshell/em-script.el | 6 ++-- lisp/eshell/em-smart.el | 6 ++-- lisp/eshell/em-term.el | 8 ++--- lisp/eshell/em-tramp.el | 7 ++-- lisp/eshell/em-unix.el | 5 ++- lisp/eshell/esh-arg.el | 4 +-- lisp/eshell/esh-cmd.el | 12 +++---- lisp/eshell/esh-io.el | 4 +-- lisp/eshell/esh-mode.el | 35 +++++++++---------- lisp/eshell/esh-var.el | 7 ++-- 16 files changed, 90 insertions(+), 107 deletions(-) diff --git a/lisp/eshell/em-cmpl.el b/lisp/eshell/em-cmpl.el index 53a0cda354e..d0d7aff7720 100644 --- a/lisp/eshell/em-cmpl.el +++ b/lisp/eshell/em-cmpl.el @@ -267,48 +267,48 @@ to writing a completion function." (defun eshell-cmpl-initialize () ;Called from `eshell-mode' via intern-soft! "Initialize the completions module." - (set (make-local-variable 'pcomplete-command-completion-function) - eshell-command-completion-function) - (set (make-local-variable 'pcomplete-command-name-function) - eshell-cmpl-command-name-function) - (set (make-local-variable 'pcomplete-default-completion-function) - eshell-default-completion-function) - (set (make-local-variable 'pcomplete-parse-arguments-function) - 'eshell-complete-parse-arguments) - (set (make-local-variable 'pcomplete-file-ignore) - eshell-cmpl-file-ignore) - (set (make-local-variable 'pcomplete-dir-ignore) - eshell-cmpl-dir-ignore) - (set (make-local-variable 'pcomplete-ignore-case) - eshell-cmpl-ignore-case) - (set (make-local-variable 'pcomplete-autolist) - eshell-cmpl-autolist) + (setq-local pcomplete-command-completion-function + eshell-command-completion-function) + (setq-local pcomplete-command-name-function + eshell-cmpl-command-name-function) + (setq-local pcomplete-default-completion-function + eshell-default-completion-function) + (setq-local pcomplete-parse-arguments-function + 'eshell-complete-parse-arguments) + (setq-local pcomplete-file-ignore + eshell-cmpl-file-ignore) + (setq-local pcomplete-dir-ignore + eshell-cmpl-dir-ignore) + (setq-local pcomplete-ignore-case + eshell-cmpl-ignore-case) + (setq-local pcomplete-autolist + eshell-cmpl-autolist) (if (boundp 'pcomplete-suffix-list) - (set (make-local-variable 'pcomplete-suffix-list) - eshell-cmpl-suffix-list)) - (set (make-local-variable 'pcomplete-recexact) - eshell-cmpl-recexact) - (set (make-local-variable 'pcomplete-man-function) - eshell-cmpl-man-function) - (set (make-local-variable 'pcomplete-compare-entry-function) - eshell-cmpl-compare-entry-function) - (set (make-local-variable 'pcomplete-expand-before-complete) - eshell-cmpl-expand-before-complete) - (set (make-local-variable 'pcomplete-cycle-completions) - eshell-cmpl-cycle-completions) - (set (make-local-variable 'pcomplete-cycle-cutoff-length) - eshell-cmpl-cycle-cutoff-length) - (set (make-local-variable 'pcomplete-restore-window-delay) - eshell-cmpl-restore-window-delay) - (set (make-local-variable 'pcomplete-use-paring) - eshell-cmpl-use-paring) + (setq-local pcomplete-suffix-list + eshell-cmpl-suffix-list)) + (setq-local pcomplete-recexact + eshell-cmpl-recexact) + (setq-local pcomplete-man-function + eshell-cmpl-man-function) + (setq-local pcomplete-compare-entry-function + eshell-cmpl-compare-entry-function) + (setq-local pcomplete-expand-before-complete + eshell-cmpl-expand-before-complete) + (setq-local pcomplete-cycle-completions + eshell-cmpl-cycle-completions) + (setq-local pcomplete-cycle-cutoff-length + eshell-cmpl-cycle-cutoff-length) + (setq-local pcomplete-restore-window-delay + eshell-cmpl-restore-window-delay) + (setq-local pcomplete-use-paring + eshell-cmpl-use-paring) ;; `comint-file-name-quote-list' should only be set after all the ;; load-hooks for any other extension modules have been run, which ;; is true at the time `eshell-mode-hook' is run (add-hook 'eshell-mode-hook (lambda () - (set (make-local-variable 'comint-file-name-quote-list) - eshell-special-chars-outside-quoting)) + (setq-local comint-file-name-quote-list + eshell-special-chars-outside-quoting)) nil t) (add-hook 'pcomplete-quote-arg-hook #'eshell-quote-backslash nil t) (add-hook 'completion-at-point-functions diff --git a/lisp/eshell/em-dirs.el b/lisp/eshell/em-dirs.el index b4ed3794add..c0c25390256 100644 --- a/lisp/eshell/em-dirs.el +++ b/lisp/eshell/em-dirs.el @@ -175,8 +175,7 @@ Thus, this does not include the current directory.") (defun eshell-dirs-initialize () ;Called from `eshell-mode' via intern-soft! "Initialize the builtin functions for Eshell." - (make-local-variable 'eshell-variable-aliases-list) - (setq eshell-variable-aliases-list + (setq-local eshell-variable-aliases-list (append eshell-variable-aliases-list `(("-" ,(lambda (indices) @@ -199,8 +198,7 @@ Thus, this does not include the current directory.") t)))) (when eshell-cd-on-directory - (make-local-variable 'eshell-interpreter-alist) - (setq eshell-interpreter-alist + (setq-local eshell-interpreter-alist (cons (cons #'(lambda (file _args) (eshell-lone-directory-p file)) 'eshell-dirs-substitute-cd) diff --git a/lisp/eshell/em-glob.el b/lisp/eshell/em-glob.el index a32a6abe29c..9ae2dd94ecf 100644 --- a/lisp/eshell/em-glob.el +++ b/lisp/eshell/em-glob.el @@ -129,7 +129,7 @@ This option slows down recursive glob processing by quite a bit." "Initialize the extended globbing code." ;; it's important that `eshell-glob-chars-list' come first (when (boundp 'eshell-special-chars-outside-quoting) - (set (make-local-variable 'eshell-special-chars-outside-quoting) + (setq-local eshell-special-chars-outside-quoting (append eshell-glob-chars-list eshell-special-chars-outside-quoting))) (add-hook 'eshell-parse-argument-hook 'eshell-parse-glob-chars t t) (add-hook 'eshell-pre-rewrite-command-hook @@ -205,7 +205,7 @@ resulting regular expression." regexp) (while (string-match (or eshell-glob-chars-regexp - (set (make-local-variable 'eshell-glob-chars-regexp) + (setq-local eshell-glob-chars-regexp (format "[%s]+" (apply 'string eshell-glob-chars-list)))) pattern matched-in-pattern) (let* ((op-begin (match-beginning 0)) diff --git a/lisp/eshell/em-hist.el b/lisp/eshell/em-hist.el index c27e4503767..490b8b679c1 100644 --- a/lisp/eshell/em-hist.el +++ b/lisp/eshell/em-hist.el @@ -243,11 +243,10 @@ Returns nil if INPUT is prepended by blank space, otherwise non-nil." (if (and (eshell-using-module 'eshell-rebind) (not eshell-non-interactive-p)) (let ((rebind-alist eshell-rebind-keys-alist)) - (make-local-variable 'eshell-rebind-keys-alist) - (setq eshell-rebind-keys-alist + (setq-local eshell-rebind-keys-alist (append rebind-alist eshell-hist-rebind-keys-alist)) - (set (make-local-variable 'search-invisible) t) - (set (make-local-variable 'search-exit-option) t) + (setq-local search-invisible t) + (setq-local search-exit-option t) (add-hook 'isearch-mode-hook (lambda () (if (>= (point) eshell-last-output-end) @@ -278,8 +277,8 @@ Returns nil if INPUT is prepended by blank space, otherwise non-nil." (make-local-variable 'eshell-save-history-index) (if (minibuffer-window-active-p (selected-window)) - (set (make-local-variable 'eshell-save-history-on-exit) nil) - (set (make-local-variable 'eshell-history-ring) nil) + (setq-local eshell-save-history-on-exit nil) + (setq-local eshell-history-ring nil) (if eshell-history-file-name (eshell-read-history nil t)) diff --git a/lisp/eshell/em-prompt.el b/lisp/eshell/em-prompt.el index dcee1e7a981..c6afc5a240d 100644 --- a/lisp/eshell/em-prompt.el +++ b/lisp/eshell/em-prompt.el @@ -117,10 +117,9 @@ arriving, or after." (make-local-variable 'eshell-prompt-regexp) (if eshell-prompt-regexp - (set (make-local-variable 'paragraph-start) eshell-prompt-regexp)) + (setq-local paragraph-start eshell-prompt-regexp)) - (set (make-local-variable 'eshell-skip-prompt-function) - 'eshell-skip-prompt) + (setq-local eshell-skip-prompt-function #'eshell-skip-prompt) (eshell-prompt-mode))) (defun eshell-emit-prompt () diff --git a/lisp/eshell/em-rebind.el b/lisp/eshell/em-rebind.el index 7991c631772..ab102116877 100644 --- a/lisp/eshell/em-rebind.el +++ b/lisp/eshell/em-rebind.el @@ -163,7 +163,7 @@ This is default behavior of shells like bash." (add-hook 'pre-command-hook 'eshell-save-previous-point nil t) (make-local-variable 'overriding-local-map) (add-hook 'post-command-hook 'eshell-rebind-input-map nil t) - (set (make-local-variable 'eshell-lock-keymap) nil) + (setq-local eshell-lock-keymap nil) (eshell-rebind-mode))) (defun eshell-lock-local-map (&optional arg) @@ -219,8 +219,7 @@ lock it at that." (defun eshell-setup-input-keymap () "Setup the input keymap to be used during input editing." - (make-local-variable 'eshell-input-keymap) - (setq eshell-input-keymap (make-sparse-keymap)) + (setq-local eshell-input-keymap (make-sparse-keymap)) (set-keymap-parent eshell-input-keymap eshell-mode-map) (let ((bindings eshell-rebind-keys-alist)) (while bindings diff --git a/lisp/eshell/em-script.el b/lisp/eshell/em-script.el index 5c2f145f595..857ae6a4755 100644 --- a/lisp/eshell/em-script.el +++ b/lisp/eshell/em-script.el @@ -58,15 +58,13 @@ This includes when running `eshell-command'." (defun eshell-script-initialize () ;Called from `eshell-mode' via intern-soft! "Initialize the script parsing code." - (make-local-variable 'eshell-interpreter-alist) - (setq eshell-interpreter-alist + (setq-local eshell-interpreter-alist (cons (cons #'(lambda (file _args) (string= (file-name-nondirectory file) "eshell")) 'eshell/source) eshell-interpreter-alist)) - (make-local-variable 'eshell-complex-commands) - (setq eshell-complex-commands + (setq-local eshell-complex-commands (append '("source" ".") eshell-complex-commands)) ;; these two variables are changed through usage, but we don't want ;; to ruin it for other modules diff --git a/lisp/eshell/em-smart.el b/lisp/eshell/em-smart.el index a28bb1d6415..8bc88f2f4bc 100644 --- a/lisp/eshell/em-smart.el +++ b/lisp/eshell/em-smart.el @@ -170,9 +170,9 @@ The options are `begin', `after' or `end'." (unless eshell-non-interactive-p ;; override a few variables, since they would interfere with the ;; smart display functionality. - (set (make-local-variable 'eshell-scroll-to-bottom-on-output) nil) - (set (make-local-variable 'eshell-scroll-to-bottom-on-input) nil) - (set (make-local-variable 'eshell-scroll-show-maximum-output) t) + (setq-local eshell-scroll-to-bottom-on-output nil) + (setq-local eshell-scroll-to-bottom-on-input nil) + (setq-local eshell-scroll-show-maximum-output t) (add-hook 'window-scroll-functions 'eshell-smart-scroll-window nil t) (add-hook 'window-configuration-change-hook 'eshell-refresh-windows) diff --git a/lisp/eshell/em-term.el b/lisp/eshell/em-term.el index f52b3cda73b..be91cf79774 100644 --- a/lisp/eshell/em-term.el +++ b/lisp/eshell/em-term.el @@ -143,8 +143,7 @@ behavior for short-lived processes, see bug#18108." (defun eshell-term-initialize () ;Called from `eshell-mode' via intern-soft! "Initialize the `term' interface code." - (make-local-variable 'eshell-interpreter-alist) - (setq eshell-interpreter-alist + (setq-local eshell-interpreter-alist (cons (cons #'eshell-visual-command-p 'eshell-exec-visual) eshell-interpreter-alist))) @@ -179,9 +178,8 @@ allowed." (save-current-buffer (switch-to-buffer term-buf) (term-mode) - (set (make-local-variable 'term-term-name) eshell-term-name) - (make-local-variable 'eshell-parent-buffer) - (setq eshell-parent-buffer eshell-buf) + (setq-local term-term-name eshell-term-name) + (setq-local eshell-parent-buffer eshell-buf) (term-exec term-buf program program nil args) (let ((proc (get-buffer-process term-buf))) (if (and proc (eq 'run (process-status proc))) diff --git a/lisp/eshell/em-tramp.el b/lisp/eshell/em-tramp.el index 01f7038e462..c2d3c3edce2 100644 --- a/lisp/eshell/em-tramp.el +++ b/lisp/eshell/em-tramp.el @@ -51,10 +51,9 @@ (when (eshell-using-module 'eshell-cmpl) (add-hook 'pcomplete-try-first-hook 'eshell-complete-host-reference nil t)) - (make-local-variable 'eshell-complex-commands) - (setq eshell-complex-commands - (append '("su" "sudo") - eshell-complex-commands))) + (setq-local eshell-complex-commands + (append '("su" "sudo") + eshell-complex-commands))) (autoload 'eshell-parse-command "esh-cmd") diff --git a/lisp/eshell/em-unix.el b/lisp/eshell/em-unix.el index c66f307bfee..2d6bd32b5a2 100644 --- a/lisp/eshell/em-unix.el +++ b/lisp/eshell/em-unix.el @@ -144,8 +144,7 @@ Otherwise, Emacs will attempt to use rsh to invoke du on the remote machine." (when (eshell-using-module 'eshell-cmpl) (add-hook 'pcomplete-try-first-hook 'eshell-complete-host-reference nil t)) - (make-local-variable 'eshell-complex-commands) - (setq eshell-complex-commands + (setq-local eshell-complex-commands (append '("grep" "egrep" "fgrep" "agrep" "glimpse" "locate" "cat" "time" "cp" "mv" "make" "du" "diff") eshell-complex-commands))) @@ -1008,7 +1007,7 @@ Show wall-clock time elapsed during execution of COMMAND.") (lambda (buff _msg) (with-current-buffer buff (diff-mode) - (set (make-local-variable 'eshell-diff-window-config) config) + (setq-local eshell-diff-window-config config) (local-set-key [?q] #'eshell-diff-quit) (if (fboundp 'turn-on-font-lock-if-enabled) (turn-on-font-lock-if-enabled)) diff --git a/lisp/eshell/esh-arg.el b/lisp/eshell/esh-arg.el index aefda647689..cecb6f7918f 100644 --- a/lisp/eshell/esh-arg.el +++ b/lisp/eshell/esh-arg.el @@ -168,8 +168,8 @@ treated as a literal character." (defun eshell-arg-initialize () ;Called from `eshell-mode' via intern-soft! "Initialize the argument parsing code." (eshell-arg-mode) - (set (make-local-variable 'eshell-inside-quote-regexp) nil) - (set (make-local-variable 'eshell-outside-quote-regexp) nil)) + (setq-local eshell-inside-quote-regexp nil) + (setq-local eshell-outside-quote-regexp nil)) (defun eshell-insert-buffer-name (buffer-name) "Insert BUFFER-NAME into the current buffer at point." diff --git a/lisp/eshell/esh-cmd.el b/lisp/eshell/esh-cmd.el index 68b34837a23..81124413a42 100644 --- a/lisp/eshell/esh-cmd.el +++ b/lisp/eshell/esh-cmd.el @@ -290,12 +290,12 @@ otherwise t.") (defun eshell-cmd-initialize () ;Called from `eshell-mode' via intern-soft! "Initialize the Eshell command processing module." - (set (make-local-variable 'eshell-current-command) nil) - (set (make-local-variable 'eshell-command-name) nil) - (set (make-local-variable 'eshell-command-arguments) nil) - (set (make-local-variable 'eshell-last-arguments) nil) - (set (make-local-variable 'eshell-last-command-name) nil) - (set (make-local-variable 'eshell-last-async-proc) nil) + (setq-local eshell-current-command nil) + (setq-local eshell-command-name nil) + (setq-local eshell-command-arguments nil) + (setq-local eshell-last-arguments nil) + (setq-local eshell-last-command-name nil) + (setq-local eshell-last-async-proc nil) (add-hook 'eshell-kill-hook #'eshell-resume-command nil t) diff --git a/lisp/eshell/esh-io.el b/lisp/eshell/esh-io.el index b0443a4acee..de41fccc1f5 100644 --- a/lisp/eshell/esh-io.el +++ b/lisp/eshell/esh-io.el @@ -344,8 +344,8 @@ it defaults to `insert'." (if buffer-file-read-only (error "Cannot write to read-only file `%s'" target)) (setq buffer-read-only nil) - (set (make-local-variable 'eshell-output-file-buffer) - (if (eq exists buf) 0 t)) + (setq-local eshell-output-file-buffer + (if (eq exists buf) 0 t)) (cond ((eq mode 'overwrite) (erase-buffer)) ((eq mode 'append) diff --git a/lisp/eshell/esh-mode.el b/lisp/eshell/esh-mode.el index a80c2fc60d9..e2ec7101f3d 100644 --- a/lisp/eshell/esh-mode.el +++ b/lisp/eshell/esh-mode.el @@ -312,45 +312,40 @@ and the hook `eshell-exit-hook'." (if mode-line-elt (setcar mode-line-elt 'eshell-command-running-string)))) - (set (make-local-variable 'bookmark-make-record-function) - 'eshell-bookmark-make-record) + (setq-local bookmark-make-record-function #'eshell-bookmark-make-record) (setq local-abbrev-table eshell-mode-abbrev-table) - (set (make-local-variable 'list-buffers-directory) - (expand-file-name default-directory)) + (setq-local list-buffers-directory (expand-file-name default-directory)) ;; always set the tab width to 8 in Eshell buffers, since external ;; commands which do their own formatting almost always expect this - (set (make-local-variable 'tab-width) 8) + (setq-local tab-width 8) ;; don't ever use auto-fill in Eshell buffers (setq auto-fill-function nil) ;; always display everything from a return value (if (boundp 'print-length) - (set (make-local-variable 'print-length) nil)) + (setq-local print-length nil)) (if (boundp 'print-level) - (set (make-local-variable 'print-level) nil)) + (setq-local print-level nil)) ;; set require-final-newline to nil; otherwise, all redirected ;; output will end with a newline, whether or not the source ;; indicated it! - (set (make-local-variable 'require-final-newline) nil) + (setq-local require-final-newline nil) - (set (make-local-variable 'max-lisp-eval-depth) - (max 3000 max-lisp-eval-depth)) - (set (make-local-variable 'max-specpdl-size) - (max 6000 max-lisp-eval-depth)) + (setq-local max-lisp-eval-depth (max 3000 max-lisp-eval-depth)) + (setq-local max-specpdl-size (max 6000 max-lisp-eval-depth)) - (set (make-local-variable 'eshell-last-input-start) (point-marker)) - (set (make-local-variable 'eshell-last-input-end) (point-marker)) - (set (make-local-variable 'eshell-last-output-start) (point-marker)) - (set (make-local-variable 'eshell-last-output-end) (point-marker)) - (set (make-local-variable 'eshell-last-output-block-begin) (point)) + (setq-local eshell-last-input-start (point-marker)) + (setq-local eshell-last-input-end (point-marker)) + (setq-local eshell-last-output-start (point-marker)) + (setq-local eshell-last-output-end (point-marker)) + (setq-local eshell-last-output-block-begin (point)) (let ((modules-list (copy-sequence eshell-modules-list))) - (make-local-variable 'eshell-modules-list) - (setq eshell-modules-list modules-list)) + (setq-local eshell-modules-list modules-list)) ;; This is to avoid making the paragraph base direction ;; right-to-left if the first word just happens to start with a @@ -391,7 +386,7 @@ and the hook `eshell-exit-hook'." (add-hook 'pre-command-hook #'eshell-preinput-scroll-to-bottom t t)) (when eshell-scroll-show-maximum-output - (set (make-local-variable 'scroll-conservatively) 1000)) + (setq-local scroll-conservatively 1000)) (when eshell-status-in-mode-line (add-hook 'eshell-pre-command-hook #'eshell-command-started nil t) diff --git a/lisp/eshell/esh-var.el b/lisp/eshell/esh-var.el index 7a80cd86877..9aea5430ad7 100644 --- a/lisp/eshell/esh-var.el +++ b/lisp/eshell/esh-var.el @@ -227,12 +227,11 @@ environment of created subprocesses." ;; Break the association with our parent's environment. Otherwise, ;; changing a variable will affect all of Emacs. (unless eshell-modify-global-environment - (set (make-local-variable 'process-environment) - (eshell-copy-environment))) + (setq-local process-environment (eshell-copy-environment))) - (set (make-local-variable 'eshell-special-chars-inside-quoting) + (setq-local eshell-special-chars-inside-quoting (append eshell-special-chars-inside-quoting '(?$))) - (set (make-local-variable 'eshell-special-chars-outside-quoting) + (setq-local eshell-special-chars-outside-quoting (append eshell-special-chars-outside-quoting '(?$))) (add-hook 'eshell-parse-argument-hook #'eshell-interpolate-variable t t) -- 2.39.5