summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2011-05-12 09:55:10 -0300
committerStefan Monnier <monnier@iro.umontreal.ca>2011-05-12 09:55:10 -0300
commit914a0ae1bab4f6f76c0b2654e0ca78fdb07f294a (patch)
tree8e185992974b0d3fd7ee592300f14444c53d2ef1
parent98dc3df322a2706803625ddfce0038ce94eec5d8 (diff)
downloademacs-914a0ae1bab4f6f76c0b2654e0ca78fdb07f294a.tar.gz
* lisp/shell.el (shell-completion-vars): New function.
(shell-mode): * lisp/simple.el (read-shell-command): Use it. (blink-matching-open): No need for " [...]" in minibuffer-message.
-rw-r--r--lisp/ChangeLog7
-rw-r--r--lisp/shell.el39
-rw-r--r--lisp/simple.el25
3 files changed, 35 insertions, 36 deletions
diff --git a/lisp/ChangeLog b/lisp/ChangeLog
index beaee515a52..bac4931f4eb 100644
--- a/lisp/ChangeLog
+++ b/lisp/ChangeLog
@@ -1,3 +1,10 @@
+2011-05-12 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * shell.el (shell-completion-vars): New function.
+ (shell-mode):
+ * simple.el (read-shell-command): Use it.
+ (blink-matching-open): No need for " [...]" in minibuffer-message.
+
2011-05-12 Glenn Morris <rgm@gnu.org>
* calendar/appt.el (appt-now-displayed): Remove pointless variable.
diff --git a/lisp/shell.el b/lisp/shell.el
index d6bc685618c..a05fefa9c11 100644
--- a/lisp/shell.el
+++ b/lisp/shell.el
@@ -380,6 +380,25 @@ to `dirtrack-mode'."
:group 'shell
:type '(choice (const nil) regexp))
+(defun shell-completion-vars ()
+ "Setup completion vars for `shell-mode' and `read-shell-command'."
+ (set (make-local-variable 'comint-completion-fignore)
+ shell-completion-fignore)
+ (set (make-local-variable 'comint-delimiter-argument-list)
+ shell-delimiter-argument-list)
+ (set (make-local-variable 'comint-file-name-chars) shell-file-name-chars)
+ (set (make-local-variable 'comint-file-name-quote-list)
+ shell-file-name-quote-list)
+ (set (make-local-variable 'comint-dynamic-complete-functions)
+ shell-dynamic-complete-functions)
+ (set (make-local-variable 'pcomplete-parse-arguments-function)
+ ;; FIXME: This function should be moved to shell.el.
+ #'pcomplete-parse-comint-arguments)
+ (setq comint-input-autoexpand shell-input-autoexpand)
+ ;; Not needed in shell-mode because it's inherited from comint-mode, but
+ ;; placed here for read-shell-command.
+ (add-hook 'completion-at-point-functions 'comint-completion-at-point nil t))
+
(put 'shell-mode 'mode-class 'special)
(define-derived-mode shell-mode comint-mode "Shell"
@@ -437,22 +456,12 @@ Variables `comint-output-filter-functions', a hook, and
control whether input and output cause the window to scroll to the end of the
buffer."
(setq comint-prompt-regexp shell-prompt-pattern)
- (setq comint-completion-fignore shell-completion-fignore)
- (setq comint-delimiter-argument-list shell-delimiter-argument-list)
- (setq comint-file-name-chars shell-file-name-chars)
- (setq comint-file-name-quote-list shell-file-name-quote-list)
- (set (make-local-variable 'comint-dynamic-complete-functions)
- shell-dynamic-complete-functions)
+ (shell-completion-vars)
(set (make-local-variable 'paragraph-separate) "\\'")
- (make-local-variable 'paragraph-start)
- (setq paragraph-start comint-prompt-regexp)
- (make-local-variable 'font-lock-defaults)
- (setq font-lock-defaults '(shell-font-lock-keywords t))
- (make-local-variable 'shell-dirstack)
- (setq shell-dirstack nil)
- (make-local-variable 'shell-last-dir)
- (setq shell-last-dir nil)
- (setq comint-input-autoexpand shell-input-autoexpand)
+ (set (make-local-variable 'paragraph-start) comint-prompt-regexp)
+ (set (make-local-variable 'font-lock-defaults) '(shell-font-lock-keywords t))
+ (set (make-local-variable 'shell-dirstack) nil)
+ (set (make-local-variable 'shell-last-dir) nil)
(shell-dirtrack-mode 1)
;; This is not really correct, since the shell buffer does not really
;; edit this directory. But it is useful in the buffer list and menus.
diff --git a/lisp/simple.el b/lisp/simple.el
index 5efb6769e17..ac53ce3add1 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -36,10 +36,6 @@
;;; From compile.el
(defvar compilation-current-error)
(defvar compilation-context-lines)
-;;; From comint.el
-(defvar comint-file-name-quote-list)
-(defvar comint-file-name-chars)
-(defvar comint-delimiter-argument-list)
(defcustom idle-update-delay 0.5
"Idle time delay before updating various things on the screen.
@@ -2167,12 +2163,7 @@ to the end of the list of defaults just after the default value."
(append minibuffer-default commands)
(cons minibuffer-default commands))))
-(defvar shell-delimiter-argument-list)
-(defvar shell-file-name-chars)
-(defvar shell-file-name-quote-list)
-(defvar shell-dynamic-complete-functions)
-;; shell requires comint.
-(defvar comint-dynamic-complete-functions)
+(declare-function shell-completion-vars "shell" ())
(defvar minibuffer-local-shell-command-map
(let ((map (make-sparse-keymap)))
@@ -2189,15 +2180,7 @@ to `shell-command-history'."
(require 'shell)
(minibuffer-with-setup-hook
(lambda ()
- (set (make-local-variable 'comint-delimiter-argument-list)
- shell-delimiter-argument-list)
- (set (make-local-variable 'comint-file-name-chars) shell-file-name-chars)
- (set (make-local-variable 'comint-file-name-quote-list)
- shell-file-name-quote-list)
- (set (make-local-variable 'comint-dynamic-complete-functions)
- shell-dynamic-complete-functions)
- (add-hook 'completion-at-point-functions
- 'comint-completion-at-point nil 'local)
+ (shell-completion-vars)
(set (make-local-variable 'minibuffer-default-add-function)
'minibuffer-default-add-shell-commands))
(apply 'read-from-minibuffer prompt initial-contents
@@ -5589,10 +5572,10 @@ The function should return non-nil if the two tokens do not match.")
(mismatch
(if blinkpos
(if (minibufferp)
- (minibuffer-message " [Mismatched parentheses]")
+ (minibuffer-message "Mismatched parentheses")
(message "Mismatched parentheses"))
(if (minibufferp)
- (minibuffer-message " [Unmatched parenthesis]")
+ (minibuffer-message "Unmatched parenthesis")
(message "Unmatched parenthesis"))))
((not blinkpos) nil)
((pos-visible-in-window-p blinkpos)