+2011-07-12 Bill Wohler <wohler@newt.com>
+
+ * mh-compat.el (mh-pop-to-buffer-same-window): Add compatibility
+ function to call switch-to-buffer on systems that lack
+ pop-to-buffer-same-window.
+ * mh-folder.el (mh-inc-folder, mh-modify, mh-scan-folder)
+ (mh-make-folder): Call mh-pop-to-buffer-same-window instead of
+ switch-to-buffer. The previous change which used pop-to-buffer
+ produced the wrong behavior.
+
2011-07-12 Henrique Martins <henrique@martins.cc> (tiny change)
* mh-xface.el (mh-picon-get-image): Remove quote from block
"XEmacs does not have `font-lock-add-keywords'.
This function returns nil on that system.")
-(defun-mh mh-window-full-height-p
- window-full-height-p (&optional WINDOW)
- "Return non-nil if WINDOW is not the result of a vertical split.
-This function is defined in XEmacs as it lacks
-`window-full-height-p'. The values of the functions
-`window-height' and `frame-height' are compared instead. The
-argument WINDOW is ignored."
- (= (1+ (window-height))
- (frame-height)))
-
(defun-mh mh-image-load-path-for-library
image-load-path-for-library (library image &optional path no-error)
"Return a suitable search path for images used by LIBRARY.
(buffer-substring-no-properties
(match-beginning num) (match-end num)))
+(defun-mh mh-pop-to-buffer-same-window
+ pop-to-buffer-same-window (&optional buffer-or-name norecord label)
+ "Pop to buffer specified by BUFFER-OR-NAME in the selected window.
+Another window will be used only if the buffer can't be shown in
+the selected window, usually because it is dedicated to another
+buffer. Optional arguments BUFFER-OR-NAME, NORECORD and LABEL are
+as for `pop-to-buffer'. This macro is used by Emacs versions that
+lack the `pop-to-buffer-same-window' function, introduced in
+Emacs 24. The function `switch-to-buffer' is used instead and
+LABEL is ignored."
+ (switch-to-buffer buffer-or-name norecord))
+
(defun-mh mh-replace-regexp-in-string replace-regexp-in-string
(regexp rep string &optional fixedcase literal subexp start)
"Replace REGEXP with REP everywhere in STRING and return result.
(if exit-action nil)
(view-mode 1))
+(defun-mh mh-window-full-height-p
+ window-full-height-p (&optional WINDOW)
+ "Return non-nil if WINDOW is not the result of a vertical split.
+This function is defined in XEmacs as it lacks
+`window-full-height-p'. The values of the functions
+`window-height' and `frame-height' are compared instead. The
+argument WINDOW is ignored."
+ (= (1+ (window-height))
+ (frame-height)))
+
(defmacro mh-write-file-functions ()
"Return `write-file-functions' if it exists.
Otherwise return `local-write-file-hooks'.
(setq threading-needed-flag mh-show-threads-flag)
(setq mh-previous-window-config config))
((not (eq (current-buffer) (get-buffer folder)))
- (pop-to-buffer folder)
+ (mh-pop-to-buffer-same-window folder)
(setq mh-previous-window-config config))))
(mh-get-new-mail file)
(when (and threading-needed-flag
;; Just show the edit buffer...
(delete-other-windows)
- (pop-to-buffer edit-buffer)))
+ (mh-pop-to-buffer-same-window edit-buffer)))
;;;###mh-autoload
(defun mh-next-button (&optional backward-flag)
(unless dont-exec-pending
(mh-process-or-undo-commands folder)
(mh-reset-threads-and-narrowing))
- (pop-to-buffer folder)))
+ (mh-pop-to-buffer-same-window folder)))
(mh-regenerate-headers range)
(if (zerop (buffer-size))
(if (equal range "all")
(defun mh-make-folder (name)
"Create a new mail folder called NAME.
Make it the current folder."
- (pop-to-buffer name)
+ (mh-pop-to-buffer-same-window name)
(setq buffer-read-only nil)
(erase-buffer)
(if mh-adaptive-cmd-note-flag