;; I recommend that you set this to nil.
(defvar dabbrev-case-replace 'case-replace
"*Non-nil means dabbrev should preserve case when expanding the abbreviation.
+More precisely, it preserves the case pattern of the abbreviation as you
+typed it--as opposed to the case pattern of the expansion that is copied.
The value of this variable is an expression; it is evaluated
and the resulting value determines the decision.
For example, setting this to `case-replace' means evaluate that
dabbrev--friend-buffer-list
(append dabbrev--friend-buffer-list
non-friend-buffer-list)))))
+ ;; Move buffers that are visible on the screen
+ ;; to the front of the list.
+ (if 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 through the buffers
(while (and (not expansion) dabbrev--friend-buffer-list)
(setq dabbrev--last-buffer