summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
diff options
context:
space:
mode:
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r--lisp/emacs-lisp/edebug.el16
-rw-r--r--lisp/emacs-lisp/lisp.el55
2 files changed, 44 insertions, 27 deletions
diff --git a/lisp/emacs-lisp/edebug.el b/lisp/emacs-lisp/edebug.el
index 9290ede2bdf..beb88cfea25 100644
--- a/lisp/emacs-lisp/edebug.el
+++ b/lisp/emacs-lisp/edebug.el
@@ -570,6 +570,7 @@ already is one.)"
;; Compatibility with old versions.
(defalias 'edebug-all-defuns 'edebug-all-defs)
+;;;###autoload
(defun edebug-all-defs ()
"Toggle edebugging of all definitions."
(interactive)
@@ -578,6 +579,7 @@ already is one.)"
(if edebug-all-defs "on" "off")))
+;;;###autoload
(defun edebug-all-forms ()
"Toggle edebugging of all forms."
(interactive)
@@ -2516,6 +2518,7 @@ MSG is printed after `::::} '."
(defvar edebug-outside-o-a-p) ; outside overlay-arrow-position
(defvar edebug-outside-o-a-s) ; outside overlay-arrow-string
(defvar edebug-outside-c-i-e-a) ; outside cursor-in-echo-area
+(defvar edebug-outside-d-c-i-n-s-w) ; outside default-cursor-in-non-selected-windows
(defvar edebug-eval-list nil) ;; List of expressions to evaluate.
@@ -2557,11 +2560,13 @@ MSG is printed after `::::} '."
(edebug-outside-o-a-p overlay-arrow-position)
(edebug-outside-o-a-s overlay-arrow-string)
- (edebug-outside-c-i-e-a cursor-in-echo-area))
+ (edebug-outside-c-i-e-a cursor-in-echo-area)
+ (edebug-outside-d-c-i-n-s-w default-cursor-in-non-selected-windows))
(unwind-protect
(let ((overlay-arrow-position overlay-arrow-position)
(overlay-arrow-string overlay-arrow-string)
(cursor-in-echo-area nil)
+ (default-cursor-in-non-selected-windows t)
;; any others??
)
(if (not (buffer-name edebug-buffer))
@@ -2767,7 +2772,8 @@ MSG is printed after `::::} '."
(setq
overlay-arrow-position edebug-outside-o-a-p
overlay-arrow-string edebug-outside-o-a-s
- cursor-in-echo-area edebug-outside-c-i-e-a)
+ cursor-in-echo-area edebug-outside-c-i-e-a
+ default-cursor-in-non-selected-windows edebug-outside-d-c-i-n-s-w)
)))
@@ -3580,6 +3586,7 @@ Return the result of the last expression."
(overlay-arrow-position edebug-outside-o-a-p)
(overlay-arrow-string edebug-outside-o-a-s)
(cursor-in-echo-area edebug-outside-c-i-e-a)
+ (default-cursor-in-non-selected-windows edebug-outside-d-c-i-n-s-w)
)
(unwind-protect
(save-excursion ; of edebug-buffer
@@ -3618,6 +3625,7 @@ Return the result of the last expression."
edebug-outside-o-a-p overlay-arrow-position
edebug-outside-o-a-s overlay-arrow-string
edebug-outside-c-i-e-a cursor-in-echo-area
+ edebug-outside-d-c-i-n-s-w default-cursor-in-non-selected-windows
)
;; Restore the outside saved values; don't alter
@@ -3897,7 +3905,7 @@ buffer) there are local and global key bindings to several Edebug
specific commands. E.g. `edebug-step-mode' is bound to \\[edebug-step-mode]
in the Edebug buffer and \\<global-map>\\[edebug-step-mode] in any buffer.
-Also see bindings for the eval list buffer, *edebug*.
+Also see bindings for the eval list buffer *edebug* in `edebug-eval-mode'.
The edebug buffer commands:
\\{edebug-mode-map}
@@ -4054,7 +4062,7 @@ buffer and \\<global-map>\\[edebug-step-mode] in any buffer.
Eval list buffer commands:
\\{edebug-eval-mode-map}
-Global commands prefixed by global-edebug-prefix:
+Global commands prefixed by `global-edebug-prefix':
\\{global-edebug-map}")
;;; Interface with standard debugger.
diff --git a/lisp/emacs-lisp/lisp.el b/lisp/emacs-lisp/lisp.el
index 7aeb33a648e..30505c95223 100644
--- a/lisp/emacs-lisp/lisp.el
+++ b/lisp/emacs-lisp/lisp.el
@@ -569,28 +569,37 @@ considered."
((null completion)
(message "Can't find completion for \"%s\"" pattern)
(ding))
+ ((not (string= pattern completion))
+ (delete-region beg end)
+ (insert completion)
+ ;; Don't leave around a completions buffer that's out of date.
+ (let ((win (get-buffer-window "*Completions*" 0)))
+ (if win (with-selected-window win (bury-buffer)))))
(t
- (unless (string= completion pattern)
- (delete-region beg end)
- (insert completion)
- (setq pattern completion))
- (message "Making completion list...")
- (let ((list (all-completions pattern obarray predicate)))
- (setq list (sort list 'string<))
- (or (eq predicate 'fboundp)
- (let (new)
- (while list
- (setq new (cons (if (fboundp (intern (car list)))
- (list (car list) " <f>")
- (car list))
- new))
- (setq list (cdr list)))
- (setq list (nreverse new))))
- (if (> (length list) 1)
- (with-output-to-temp-buffer "*Completions*"
- (display-completion-list list pattern))
- (delete-windows-on "*Completions*")))
- (message "Making completion list...%s" "done")))))))
-
-;;; arch-tag: aa7fa8a4-2e6f-4e9b-9cd9-fef06340e67e
+ (let ((minibuf-is-in-use
+ (eq (minibuffer-window) (selected-window))))
+ (unless minibuf-is-in-use
+ (message "Making completion list..."))
+ (let ((list (all-completions pattern obarray predicate)))
+ (setq list (sort list 'string<))
+ (or (eq predicate 'fboundp)
+ (let (new)
+ (while list
+ (setq new (cons (if (fboundp (intern (car list)))
+ (list (car list) " <f>")
+ (car list))
+ new))
+ (setq list (cdr list)))
+ (setq list (nreverse new))))
+ (if (> (length list) 1)
+ (with-output-to-temp-buffer "*Completions*"
+ (display-completion-list list pattern))
+ ;; Don't leave around a completions buffer that's
+ ;; out of date.
+ (let ((win (get-buffer-window "*Completions*" 0)))
+ (if win (with-selected-window win (bury-buffer))))))
+ (unless minibuf-is-in-use
+ (message "Making completion list...%s" "done")))))))))
+
+;; arch-tag: aa7fa8a4-2e6f-4e9b-9cd9-fef06340e67e
;;; lisp.el ends here