]> code.delx.au - gnu-emacs/blobdiff - lisp/dabbrev.el
(inferior-octave-complete): Use comint-line-beginning-position.
[gnu-emacs] / lisp / dabbrev.el
index 89f26507f6bbf3318e8a538f89655ccd16416169..542f657fceb0b4ccc237f3e99457317b369f7f63 100644 (file)
@@ -552,7 +552,8 @@ See also `dabbrev-abbrev-char-regexp' and \\[dabbrev-completion]."
       (error "No%s dynamic expansion for `%s' found"
             (if old " further" "") abbrev))
      (t
-      (if (not (eq dabbrev--last-buffer dabbrev--last-buffer-found))
+      (if (not (or (eq dabbrev--last-buffer dabbrev--last-buffer-found)
+                  (minibuffer-window-active-p (selected-window))))
          (progn
            (message "Expansion found in '%s'"
                     (buffer-name dabbrev--last-buffer))
@@ -787,12 +788,12 @@ See also `dabbrev-abbrev-char-regexp' and \\[dabbrev-completion]."
        ;; Move buffers that are visible on the screen
        ;; to the front of the list.  Remove the current buffer.
        (when dabbrev--friend-buffer-list
-         (let ((w (next-window (selected-window))))
-           (while (not (eq w (selected-window)))
-             (setq dabbrev--friend-buffer-list
-                   (cons (window-buffer w)
-                         (delq (window-buffer w) dabbrev--friend-buffer-list)))
-             (setq w (next-window w))))
+         (walk-windows (lambda (w)
+                         (unless (eq w (selected-window))
+                           (setq dabbrev--friend-buffer-list
+                                 (cons (window-buffer w)
+                                       (delq (window-buffer w)
+                                             dabbrev--friend-buffer-list))))))
          (setq dabbrev--friend-buffer-list
                (delq (current-buffer) dabbrev--friend-buffer-list)))
        ;; Walk through the buffers