aboutsummaryrefslogtreecommitdiffstats
path: root/lisp/mh-e
diff options
context:
space:
mode:
authorBill Wohler <[email protected]>2011-07-11 21:40:16 -0700
committerBill Wohler <[email protected]>2011-07-11 21:40:16 -0700
commit93d4ce1e19dd390cbf6b8e0e49e0f7eface5f279 (patch)
tree7fb2bfea35d8c3746b0788599bb08f22c4b301d4 /lisp/mh-e
parent644509873286e39a24207d47fea38bd11d1d6386 (diff)
* 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.
Diffstat (limited to 'lisp/mh-e')
-rw-r--r--lisp/mh-e/ChangeLog10
-rw-r--r--lisp/mh-e/mh-compat.el32
-rw-r--r--lisp/mh-e/mh-folder.el8
3 files changed, 36 insertions, 14 deletions
diff --git a/lisp/mh-e/ChangeLog b/lisp/mh-e/ChangeLog
index d6ee6329ae..1ee4867fde 100644
--- a/lisp/mh-e/ChangeLog
+++ b/lisp/mh-e/ChangeLog
@@ -1,3 +1,13 @@
+2011-07-12 Bill Wohler <[email protected]>
+
+ * 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 <[email protected]> (tiny change)
* mh-xface.el (mh-picon-get-image): Remove quote from block
diff --git a/lisp/mh-e/mh-compat.el b/lisp/mh-e/mh-compat.el
index ae2cbff408..16dfe05b09 100644
--- a/lisp/mh-e/mh-compat.el
+++ b/lisp/mh-e/mh-compat.el
@@ -122,16 +122,6 @@ introduced in Emacs 22."
"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.
@@ -261,6 +251,18 @@ The argument STRING is ignored."
(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.
@@ -312,6 +314,16 @@ The arguments RETURN-TO and EXIT-ACTION are ignored."
(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'.
diff --git a/lisp/mh-e/mh-folder.el b/lisp/mh-e/mh-folder.el
index 2248221664..1d9a79d0de 100644
--- a/lisp/mh-e/mh-folder.el
+++ b/lisp/mh-e/mh-folder.el
@@ -795,7 +795,7 @@ instead."
(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
@@ -855,7 +855,7 @@ From a program, edit MESSAGE; nil means edit current message."
;; 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)
@@ -1705,7 +1705,7 @@ DONT-EXEC-PENDING is non-nil."
(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")
@@ -1786,7 +1786,7 @@ Also removes all content from the folder buffer."
(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