changeset 68529:7daec5f4a289

* mh-alias.el (mh-alias-gecos-name): Use mh-replace-regexp-in-string instead of replace-regexp-in-string. (crm, multi-prompt): Use mh-require instead of require. (mh-goto-address-find-address-at-point): Use mh-line-beginning-position and mh-line-end-position instead of line-beginning-position and line-end-position. Use mh-match-string-no-properties instead of match-string-no-properties. * mh-comp.el (mh-modify-header-field): Use mh-line-beginning-position and mh-line-end-position instead of line-beginning-position and line-end-position. * mh-compat.el (mailabbrev): Use mh-require instead of require. (mh-assoc-string, mh-display-completion-list, mh-face-foreground) (mh-face-background): Make docstring consistent. (mh-require, mh-cancel-timer, mh-display-color-cells) (mh-line-beginning-position, mh-line-end-position) (mh-match-string-no-properties, mh-replace-regexp-in-string) (mh-view-mode-enter): Move definition here from mh-xemacs.el and add mh- prefix since compatibility functions should have our package prefix (mh-) by Emacs convention and to avoid messing up checks for the same functions in other packages. * mh-e.el (mh-compiling-flag): Move mh-xemacs-compiling-flag here from mh-xemacs.el and rename. (mh-xargs): Use mh-line-beginning-position and mh-line-end-position instead of line-beginning-position and line-end-position. (mh-defface-compat): Use mh-display-color-cells instead of display-color-cells. * mh-folder.el (which-func): Use mh-require instead of require. * mh-funcs.el (mh-list-folders): Use mh-view-mode-enter instead of view-mode-enter. * mh-gnus.el (gnus-util, mm-bodies, mm-decode, mm-view, mml): Use mh-require instead of require. * mh-letter.el (mh-letter-header-end, mh-letter-mode) (mh-letter-next-header-field): Use mh-line-beginning-position and mh-line-end-position instead of line-beginning-position and line-end-position. * mh-limit.el (mh-subject-to-sequence-unthreaded): Use mh-match-string-no-properties instead of match-string-no-properties. (mh-narrow-to-header-field): Use mh-line-beginning-position and mh-line-end-position instead of line-beginning-position and line-end-position. * mh-mime.el (mh-mime-inline-part, mh-mm-display-part) (mh-mh-quote-unescaped-sharp, mh-mh-directive-present-p): Use mh-line-beginning-position and mh-line-end-position instead of line-beginning-position and line-end-position. * mh-search.el (which-func): Use mh-require instead of require. (mh-make-pick-template, mh-index-visit-folder) (mh-pick-parse-search-buffer, mh-swish-next-result) (mh-mairix-next-result, mh-namazu-next-result) (mh-pick-next-result, mh-grep-next-result) (mh-index-create-imenu-index, mh-index-match-checksum) (mh-md5sum-parser, mh-openssl-parser, mh-index-update-maps): Use mh-line-beginning-position and mh-line-end-position instead of line-beginning-position and line-end-position. * mh-seq.el (mh-list-sequences): Use mh-view-mode-enter instead of view-mode-enter. (mh-folder-size-flist, mh-parse-flist-output-line) (mh-add-sequence-notation): Use mh-line-beginning-position and mh-line-end-position instead of line-beginning-position and line-end-position. * mh-show.el (mh-show-addr): Use mh-require instead of require. * mh-speed.el (mh-folder-speedbar-menu-items, mh-speed-toggle) (mh-speed-view, mh-folder-speedbar-buttons) (mh-speed-highlight, mh-speed-goto-folder) (mh-speed-add-buttons, mh-speed-parse-flists-output) (mh-speed-invalidate-map, mh-speedbar-change-expand-button-char) (mh-speed-add-folder): Use mh-line-beginning-position and mh-line-end-position instead of line-beginning-position and line-end-position. (mh-speed-flists): Use mh-cancel-timer instead of cancel-timer. * mh-thread.el (mh-thread-find-children) (mh-thread-parse-scan-line, mh-thread-generate): Use mh-line-beginning-position and mh-line-end-position instead of line-beginning-position and line-end-position. * mh-utils.el (mh-colors-available-p): Use mh-display-color-cells instead of display-color-cells. (mh-folder-list): Use mh-replace-regexp-in-string instead of replace-regexp-in-string. (mh-sub-folders-actual, mh-letter-toggle-header-field-display): Use mh-line-beginning-position and mh-line-end-position instead of line-beginning-position and line-end-position. * mh-comp.el (mh-send-sub): Don't find components file in current directory--this seems to have been a side-effect of commenting out the use of an old mh-etc variable. Improve error message.
author Bill Wohler <wohler@newt.com>
date Wed, 01 Feb 2006 23:24:34 +0000
parents bd5e46db392c
children 52ef8d8ecd83
files lisp/mh-e/ChangeLog lisp/mh-e/mh-alias.el lisp/mh-e/mh-comp.el lisp/mh-e/mh-compat.el lisp/mh-e/mh-e.el lisp/mh-e/mh-folder.el lisp/mh-e/mh-funcs.el lisp/mh-e/mh-gnus.el lisp/mh-e/mh-letter.el lisp/mh-e/mh-limit.el lisp/mh-e/mh-mime.el lisp/mh-e/mh-search.el lisp/mh-e/mh-seq.el lisp/mh-e/mh-show.el lisp/mh-e/mh-speed.el lisp/mh-e/mh-thread.el lisp/mh-e/mh-utils.el
diffstat 17 files changed, 328 insertions(+), 130 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/mh-e/ChangeLog	Wed Feb 01 23:17:50 2006 +0000
+++ b/lisp/mh-e/ChangeLog	Wed Feb 01 23:24:34 2006 +0000
@@ -1,10 +1,115 @@
+2006-02-01  Bill Wohler  <wohler@newt.com>
+
+	* mh-alias.el (mh-alias-gecos-name): Use
+	mh-replace-regexp-in-string instead of replace-regexp-in-string.
+	(crm, multi-prompt): Use mh-require instead of require.
+	(mh-goto-address-find-address-at-point): Use
+	mh-line-beginning-position and mh-line-end-position instead of
+	line-beginning-position and line-end-position. Use
+	mh-match-string-no-properties instead of
+	match-string-no-properties.
+
+	* mh-comp.el (mh-modify-header-field): Use
+	mh-line-beginning-position and mh-line-end-position instead of
+	line-beginning-position and line-end-position.
+
+	* mh-compat.el (mailabbrev): Use mh-require instead of require.
+	(mh-assoc-string, mh-display-completion-list, mh-face-foreground)
+	(mh-face-background): Make docstring consistent.
+	(mh-require, mh-cancel-timer, mh-display-color-cells)
+	(mh-line-beginning-position, mh-line-end-position)
+	(mh-match-string-no-properties, mh-replace-regexp-in-string)
+	(mh-view-mode-enter): Move definition here from mh-xemacs.el and 
+	add mh- prefix since compatibility functions should have our
+	package prefix (mh-) by Emacs convention and to avoid messing up
+	checks for the same functions in other packages.
+
+	* mh-e.el (mh-compiling-flag): Move mh-xemacs-compiling-flag here
+	from mh-xemacs.el and rename.
+	(mh-xargs): Use mh-line-beginning-position and
+	mh-line-end-position instead of line-beginning-position and
+	line-end-position.
+	(mh-defface-compat): Use mh-display-color-cells instead of
+	display-color-cells.
+
+	* mh-folder.el (which-func): Use mh-require instead of require.
+
+	* mh-funcs.el (mh-list-folders): Use mh-view-mode-enter instead of
+	view-mode-enter.
+
+	* mh-gnus.el (gnus-util, mm-bodies, mm-decode, mm-view, mml): Use
+	mh-require instead of require.
+
+	* mh-letter.el (mh-letter-header-end, mh-letter-mode)
+	(mh-letter-next-header-field): Use mh-line-beginning-position and
+	mh-line-end-position instead of line-beginning-position and
+	line-end-position.
+
+	* mh-limit.el (mh-subject-to-sequence-unthreaded): Use
+	mh-match-string-no-properties instead of
+	match-string-no-properties.
+	(mh-narrow-to-header-field): Use mh-line-beginning-position and
+	mh-line-end-position instead of line-beginning-position and
+	line-end-position.
+
+	* mh-mime.el (mh-mime-inline-part, mh-mm-display-part)
+	(mh-mh-quote-unescaped-sharp, mh-mh-directive-present-p): Use
+	mh-line-beginning-position and mh-line-end-position instead of
+	line-beginning-position and line-end-position.
+
+	* mh-search.el (which-func): Use mh-require instead of require.
+	(mh-make-pick-template, mh-index-visit-folder)
+	(mh-pick-parse-search-buffer, mh-swish-next-result)
+	(mh-mairix-next-result, mh-namazu-next-result)
+	(mh-pick-next-result, mh-grep-next-result)
+	(mh-index-create-imenu-index, mh-index-match-checksum)
+	(mh-md5sum-parser, mh-openssl-parser, mh-index-update-maps): Use
+	mh-line-beginning-position and mh-line-end-position instead of
+	line-beginning-position and line-end-position.
+
+	* mh-seq.el (mh-list-sequences): Use mh-view-mode-enter instead of
+	view-mode-enter.
+	(mh-folder-size-flist, mh-parse-flist-output-line)
+	(mh-add-sequence-notation): Use mh-line-beginning-position and
+	mh-line-end-position instead of line-beginning-position and
+	line-end-position.
+
+	* mh-show.el (mh-show-addr): Use mh-require instead of require.
+
+	* mh-speed.el (mh-folder-speedbar-menu-items, mh-speed-toggle)
+	(mh-speed-view, mh-folder-speedbar-buttons)
+	(mh-speed-highlight, mh-speed-goto-folder)
+	(mh-speed-add-buttons, mh-speed-parse-flists-output)
+	(mh-speed-invalidate-map, mh-speedbar-change-expand-button-char)
+	(mh-speed-add-folder): Use mh-line-beginning-position and
+	mh-line-end-position instead of line-beginning-position and
+	line-end-position.
+	(mh-speed-flists): Use mh-cancel-timer instead of cancel-timer.
+
+	* mh-thread.el (mh-thread-find-children)
+	(mh-thread-parse-scan-line, mh-thread-generate): Use
+	mh-line-beginning-position and mh-line-end-position instead of
+	line-beginning-position and line-end-position.
+
+	* mh-utils.el (mh-colors-available-p): Use mh-display-color-cells
+	instead of display-color-cells.
+	(mh-folder-list): Use mh-replace-regexp-in-string instead of
+	replace-regexp-in-string.
+	(mh-sub-folders-actual, mh-letter-toggle-header-field-display):
+	Use mh-line-beginning-position and mh-line-end-position instead of
+	line-beginning-position and line-end-position.
+
+	* mh-comp.el (mh-send-sub): Don't find components file in current
+	directory--this seems to have been a side-effect of commenting out
+	the use of an old mh-etc variable. Improve error message.
+
 2006-01-31  Bill Wohler  <wohler@newt.com>
 
 	* mh-acros.el (mh-defun-compat, mh-defmacro-compat): Add name
 	argument since compatibility functions should have our package
 	prefix (mh-) by Emacs convention and to avoid messing up checks
 	for the same functions in other packages. Use explicit argument
-	instead of forming name by adding mh-e prefix so that one can grep
+	instead of forming name by adding mh- prefix so that one can grep
 	and find the definition.
 
 	* mh-alias.el (mh-alias-local-users, mh-alias-reload)
--- a/lisp/mh-e/mh-alias.el	Wed Feb 01 23:17:50 2006 +0000
+++ b/lisp/mh-e/mh-alias.el	Wed Feb 01 23:24:34 2006 +0000
@@ -125,10 +125,10 @@
         (setq res (match-string 1 res)))
     ;; Replace "&" with capitalized username
     (if (string-match "&" res)
-        (setq res (replace-regexp-in-string "&" (capitalize username) res)))
+        (setq res (mh-replace-regexp-in-string "&" (capitalize username) res)))
     ;; Remove " character
     (if (string-match "\"" res)
-        (setq res (replace-regexp-in-string "\"" "" res)))
+        (setq res (mh-replace-regexp-in-string "\"" "" res)))
     ;; If empty string, use username instead
     (if (string-equal "" res)
         (setq res username))
@@ -258,8 +258,8 @@
    (t
     (mh-alias-ali alias))))
 
-(require 'crm nil t)                   ; completing-read-multiple
-(require 'multi-prompt nil t)
+(mh-require 'crm nil t)                 ; completing-read-multiple
+(mh-require 'multi-prompt nil t)
 
 ;;;###mh-autoload
 (defun mh-read-address (prompt)
@@ -606,12 +606,12 @@
 
 Then search backwards to beginning of line for the start of an
 e-mail address. If no e-mail address found, return nil."
-  (re-search-backward "[^-_A-z0-9.@]" (line-beginning-position) 'lim)
+  (re-search-backward "[^-_A-z0-9.@]" (mh-line-beginning-position) 'lim)
   (if (or (looking-at mh-address-mail-regexp) ; already at start
           (and (re-search-forward mh-address-mail-regexp
-                                  (line-end-position) 'lim)
+                                  (mh-line-end-position) 'lim)
                (goto-char (match-beginning 0))))
-      (match-string-no-properties 0)))
+      (mh-match-string-no-properties 0)))
 
 (defun mh-alias-apropos (regexp)
   "Show all aliases or addresses that match a regular expression REGEXP."
--- a/lisp/mh-e/mh-comp.el	Wed Feb 01 23:17:50 2006 +0000
+++ b/lisp/mh-e/mh-comp.el	Wed Feb 01 23:24:34 2006 +0000
@@ -1031,7 +1031,7 @@
   (cond ((and overwrite-flag
               (mh-goto-header-field (concat field ":")))
          (insert " " value)
-         (delete-region (point) (line-end-position)))
+         (delete-region (point) (mh-line-end-position)))
         ((and (not overwrite-flag)
               (mh-regexp-in-field-p (concat "\\b" value "\\b") field))
          ;; Already there, do nothing.
--- a/lisp/mh-e/mh-compat.el	Wed Feb 01 23:17:50 2006 +0000
+++ b/lisp/mh-e/mh-compat.el	Wed Feb 01 23:24:34 2006 +0000
@@ -37,31 +37,60 @@
 ;; macros we can retire.
 
 ;; Please use mh-gnus.el when providing compatibility with different
-;; versions of Gnus and mh-xemacs.el for compatibility with XEmacs.
+;; versions of Gnus.
+
+;; Items are listed alphabetically (except for mh-require which is
+;; needed by a lesser character).
+
+(require 'mh-acros)
+
+(mh-do-in-gnu-emacs
+  (defalias 'mh-require 'require))
 
-;; Items are listed alphabetically.
+(mh-do-in-xemacs
+  (defun mh-require (feature &optional filename noerror)
+    "If feature FEATURE is not loaded, load it from FILENAME.
+If FEATURE is not a member of the list `features', then the feature
+is not loaded; so load the file FILENAME.
+If FILENAME is omitted, the printname of FEATURE is used as the file name.
+If the optional third argument NOERROR is non-nil,
+then return nil if the file is not found instead of signaling an error.
+
+Simulate NOERROR argument in XEmacs which lacks it."
+    (if (not (featurep feature))
+        (if filename
+            (load filename noerror t)
+          (load (format "%s" feature) noerror t)))))
 
 (mh-defun-compat mh-assoc-string assoc-string (key list case-fold)
   "Like `assoc' but specifically for strings.
 Case is ignored if CASE-FOLD is non-nil.
-This function added by MH-E for Emacs versions that lack
-`assoc-string', introduced in Emacs 22."
+This function is used by Emacs versions that lack `assoc-string',
+introduced in Emacs 22."
   (if case-fold
       (assoc-ignore-case key list)
     (assoc key list)))
 
-(require 'mailabbrev nil t)
-(mh-defun-compat mh-mail-abbrev-make-syntax-table
-  mail-abbrev-make-syntax-table ()
-  "Emacs 21 and XEmacs don't have this function."
-  nil)
+;; For XEmacs.
+(defalias 'mh-cancel-timer
+  (if (fboundp 'cancel-timer)
+      'cancel-timer
+    'delete-itimer))
+
+(mh-defun-compat mh-display-color-cells display-color-cells (&optional display)
+  "Return the number of color cells supported by DISPLAY.
+This function is used by XEmacs to always return 0 when compiling
+to avoid compiling errors. Otherwise uses `device-color-cells'."
+  (if mh-compiling-flag
+      0
+    (device-color-cells display)))
 
 (defmacro mh-display-completion-list (completions &optional common-substring)
   "Display the list of COMPLETIONS.
 See documentation for `display-completion-list' for a description of the
 arguments COMPLETIONS and perhaps COMMON-SUBSTRING.
-This macro added by MH-E for Emacs versions that lack a
-COMMON-SUBSTRING argument, introduced in Emacs 22."
+This macro is used by Emacs versions that lack a COMMON-SUBSTRING
+argument, introduced in Emacs 22."
   (if (< emacs-major-version 22)
       `(display-completion-list ,completions)
     `(display-completion-list ,completions ,common-substring)))
@@ -70,8 +99,8 @@
   "Return the foreground color name of FACE, or nil if unspecified.
 See documentation for `face-foreground' for a description of the
 arguments FACE, FRAME, and perhaps INHERIT.
-This macro added by MH-E for Emacs versions that lack an INHERIT
-argument, introduced in Emacs 22."
+This macro is used by Emacs versions that lack an INHERIT argument,
+introduced in Emacs 22."
   (if (< emacs-major-version 22)
       `(face-foreground ,face ,frame)
     `(face-foreground ,face ,frame ,inherit)))
@@ -80,12 +109,48 @@
   "Return the background color name of face, or nil if unspecified.
 See documentation for `back-foreground' for a description of the
 arguments FACE, FRAME, and INHERIT.
-This macro added by MH-E for Emacs versions that lack an INHERIT
-argument, introduced in Emacs 22."
+This macro is used by Emacs versions that lack an INHERIT argument,
+introduced in Emacs 22."
   (if (< emacs-major-version 22)
       `(face-background ,face ,frame)
     `(face-background ,face ,frame ,inherit)))
 
+;; For XEmacs.
+(defalias 'mh-line-beginning-position
+  (if (fboundp 'line-beginning-position)
+      'line-beginning-position
+    'point-at-bol))
+
+;; For XEmacs.
+(defalias 'mh-line-end-position
+  (if (fboundp 'line-end-position)
+      'line-end-position
+    'point-at-eol))
+
+(mh-require 'mailabbrev nil t)
+(mh-defun-compat mh-mail-abbrev-make-syntax-table
+  mail-abbrev-make-syntax-table ()
+  "Emacs 21 and XEmacs don't have `mail-abbrev-make-syntax-table'.
+This function does nothing on those systems."
+  nil)
+
+(mh-defun-compat mh-match-string-no-properties
+  match-string-no-properties (num &optional string)
+  "Return string of text matched by last search, without text properties.
+This function is used by XEmacs that lacks `match-string-no-properties'.
+The function `buffer-substring-no-properties' is used instead.
+The argument STRING is ignored."
+  (buffer-substring-no-properties
+   (match-beginning num) (match-end num)))
+
+(mh-defun-compat mh-replace-regexp-in-string replace-regexp-in-string
+  (rep string &optional fixedcase literal subexp start)
+  "Replace REGEXP with REP everywhere in STRING and return result.
+This function is used by XEmacs that lacks `replace-regexp-in-string'.
+The function `replace-in-string' is used instead.
+The arguments FIXEDCASE, LITERAL, SUBEXP, and START are ignored."
+  (replace-in-string string regexp rep))
+
 ;; Copy of constant from url-util.el in Emacs 22; needed by Emacs 21.
 (if (not (boundp 'url-unreserved-chars))
     (defconst mh-url-unresrved-chars
@@ -111,6 +176,17 @@
        (char-to-string char)))
    str ""))
 
+(mh-defun-compat mh-view-mode-enter
+  view-mode-enter (&optional return-to exit-action)
+  "Enter View mode.
+This function is used by XEmacs that lacks `view-mode-enter'.
+The function `view-mode' is used instead.
+The arguments RETURN-TO and EXIT-ACTION are ignored."
+  ;; Shush compiler.
+  (if return-to nil)
+  (if exit-action nil)
+  (view-mode 1))
+
 (defmacro mh-write-file-functions ()
   "Return `write-file-functions' if it exists.
 Otherwise return `local-write-file-hooks'.
--- a/lisp/mh-e/mh-e.el	Wed Feb 01 23:17:50 2006 +0000
+++ b/lisp/mh-e/mh-e.el	Wed Feb 01 23:24:34 2006 +0000
@@ -101,7 +101,13 @@
 
 (eval-and-compile
   (defvar mh-xemacs-flag (featurep 'xemacs)
-    "Non-nil means the current Emacs is XEmacs."))
+    "Non-nil means the current Emacs is XEmacs.")
+  (defvar mh-compiling-flag nil
+    "Non-nil means we're compiling."))
+
+(eval-when (compile)
+  (setq mh-compiling-flag t))
+
 (mh-do-in-xemacs
   (require 'mh-xemacs))
 
@@ -464,7 +470,8 @@
           (let ((arg-list (reverse args))
                 (count 0))
             (while (and (not (eobp)) (< count mh-index-max-cmdline-args))
-              (push (buffer-substring-no-properties (point) (line-end-position))
+              (push (buffer-substring-no-properties (point)
+                                                    (mh-line-end-position))
                     arg-list)
               (incf count)
               (forward-line))
@@ -2970,7 +2977,7 @@
 colors."
   (if mh-min-colors-defined-flag
       spec
-    (let ((cells (display-color-cells))
+    (let ((cells (mh-display-color-cells))
           new-spec)
       ;; Remove entries with min-colors, or delete them if we have fewer colors
       ;; than they specify.
--- a/lisp/mh-e/mh-folder.el	Wed Feb 01 23:17:50 2006 +0000
+++ b/lisp/mh-e/mh-folder.el	Wed Feb 01 23:24:34 2006 +0000
@@ -516,7 +516,7 @@
                         (cons (current-buffer) nil)))))
 
 ;; Register mh-folder-mode as supporting which-function-mode...
-(require 'which-func nil t)
+(mh-require 'which-func nil t)
 (when (boundp 'which-func-modes)
   (add-to-list 'which-func-modes 'mh-folder-mode))
 
--- a/lisp/mh-e/mh-funcs.el	Wed Feb 01 23:17:50 2006 +0000
+++ b/lisp/mh-e/mh-funcs.el	Wed Feb 01 23:24:34 2006 +0000
@@ -154,7 +154,7 @@
                                             "-recurse"
                                           "-norecurse"))
         (goto-char (point-min))
-        (view-mode-enter)
+        (mh-view-mode-enter)
         (setq view-exit-action 'kill-buffer)
         (message "Listing folders...done")))))
 
--- a/lisp/mh-e/mh-gnus.el	Wed Feb 01 23:17:50 2006 +0000
+++ b/lisp/mh-e/mh-gnus.el	Wed Feb 01 23:24:34 2006 +0000
@@ -32,11 +32,11 @@
 
 (require 'mh-e)
 
-(require 'gnus-util nil t)
-(require 'mm-bodies nil t)
-(require 'mm-decode nil t)
-(require 'mm-view nil t)
-(require 'mml nil t)
+(mh-require 'gnus-util nil t)
+(mh-require 'mm-bodies nil t)
+(mh-require 'mm-decode nil t)
+(mh-require 'mm-view nil t)
+(mh-require 'mml nil t)
 
 ;; Copy of function from gnus-util.el.
 (mh-defun-compat mh-gnus-local-map-property gnus-local-map-property (map)
--- a/lisp/mh-e/mh-letter.el	Wed Feb 01 23:17:50 2006 +0000
+++ b/lisp/mh-e/mh-letter.el	Wed Feb 01 23:24:34 2006 +0000
@@ -267,7 +267,7 @@
     (goto-char (point-min))
     (cond ((equal mh-mail-header-separator "") (point-min))
           ((search-forward (format "\n%s\n" mh-mail-header-separator) nil t)
-           (line-beginning-position 0))
+           (mh-line-beginning-position 0))
           (t (point-min)))))
 
 
@@ -319,7 +319,7 @@
   (set (make-local-variable 'mh-mail-header-separator)
        (save-excursion
          (goto-char (mh-mail-header-end))
-         (buffer-substring-no-properties (point) (line-end-position))))
+         (buffer-substring-no-properties (point) (mh-line-end-position))))
   (make-local-variable 'mail-header-separator)
   (setq mail-header-separator mh-mail-header-separator) ;override sendmail.el
   (mh-set-help mh-letter-mode-help-messages)
@@ -828,7 +828,7 @@
           ((< (point) (progn
                         (beginning-of-line)
                         (re-search-forward mh-letter-header-field-regexp
-                                           (line-end-position) t)
+                                           (mh-line-end-position) t)
                         (point)))
            (beginning-of-line))
           (t (end-of-line)))
--- a/lisp/mh-e/mh-limit.el	Wed Feb 01 23:17:50 2006 +0000
+++ b/lisp/mh-e/mh-limit.el	Wed Feb 01 23:24:34 2006 +0000
@@ -211,7 +211,7 @@
             (string-equal "" (match-string 3)))
         (progn (message "No subject line")
                nil)
-      (let ((subject (match-string-no-properties 3))
+      (let ((subject (mh-match-string-no-properties 3))
             (list))
         (if (> (length subject) mh-limit-max-subject-size)
             (setq subject (substring subject 0 mh-limit-max-subject-size)))
@@ -219,7 +219,7 @@
           (if all
               (goto-char (point-min)))
           (while (re-search-forward mh-scan-subject-regexp nil t)
-            (let ((this-subject (match-string-no-properties 3)))
+            (let ((this-subject (mh-match-string-no-properties 3)))
               (if (> (length this-subject) mh-limit-max-subject-size)
                   (setq this-subject (substring this-subject
                                                 0 mh-limit-max-subject-size)))
@@ -310,7 +310,7 @@
       (while (not (eobp))
         (let ((num (ignore-errors
                      (string-to-number
-                      (buffer-substring (point) (line-end-position))))))
+                      (buffer-substring (point) (mh-line-end-position))))))
           (when num (push num msg-list))
           (forward-line))))
     (if (null msg-list)
--- a/lisp/mh-e/mh-mime.el	Wed Feb 01 23:17:50 2006 +0000
+++ b/lisp/mh-e/mh-mime.el	Wed Feb 01 23:24:34 2006 +0000
@@ -302,14 +302,14 @@
          start end)
     (cond ((and data (not inserted-flag) (not displayed-flag))
            (let ((contents (mm-get-part data)))
-             (add-text-properties (line-beginning-position) (line-end-position)
-                                  '(mh-mime-inserted t))
+             (add-text-properties (mh-line-beginning-position)
+                                  (mh-line-end-position) '(mh-mime-inserted t))
              (setq start (point-marker))
              (forward-line 1)
              (mm-insert-inline data contents)
              (setq end (point-marker))
              (add-text-properties
-              start (progn (goto-char start) (line-end-position))
+              start (progn (goto-char start) (mh-line-end-position))
               `(mh-region (,start . ,end)))))
           ((and data (or inserted-flag displayed-flag))
            (mh-press-button)
@@ -746,7 +746,8 @@
         (mh-insert-mime-button handle id (mm-handle-displayed-p handle))
         (goto-char point)
         (when region
-          (add-text-properties (line-beginning-position) (line-end-position)
+          (add-text-properties (mh-line-beginning-position)
+                               (mh-line-end-position)
                                `(mh-region ,region)))))))
 
 (defun mh-mime-part-index (handle)
@@ -1500,9 +1501,9 @@
     (goto-char (point-min))
     (while (re-search-forward "^#" nil t)
       (beginning-of-line)
-      (unless (mh-mh-directive-present-p (point) (line-end-position))
+      (unless (mh-mh-directive-present-p (point) (mh-line-end-position))
         (insert "#"))
-      (goto-char (line-end-position)))))
+      (goto-char (mh-line-end-position)))))
 
 ;;;###mh-autoload
 (defun mh-mh-to-mime-undo (noconfirm)
@@ -1672,7 +1673,8 @@
     (block 'search-for-mh-directive
       (goto-char begin)
       (while (re-search-forward "^#" end t)
-        (let ((s (buffer-substring-no-properties (point) (line-end-position))))
+        (let ((s (buffer-substring-no-properties
+                  (point) (mh-line-end-position))))
           (cond ((equal s ""))
                 ((string-match "^forw[ \t\n]+" s)
                  (return-from 'search-for-mh-directive t))
--- a/lisp/mh-e/mh-search.el	Wed Feb 01 23:17:50 2006 +0000
+++ b/lisp/mh-e/mh-search.el	Wed Feb 01 23:24:34 2006 +0000
@@ -51,7 +51,7 @@
 
 (require 'gnus-util)
 (require 'imenu)
-(require 'which-func nil t)
+(mh-require 'which-func nil t)
 
 (defvar mh-searcher nil
   "Cached value of chosen search program.")
@@ -358,12 +358,13 @@
   (goto-char (point-min))
   (dotimes (i 5)
     (add-text-properties (point) (1+ (point)) '(front-sticky t))
-    (add-text-properties (- (line-end-position) 2) (1- (line-end-position))
+    (add-text-properties (- (mh-line-end-position) 2)
+                         (1- (mh-line-end-position))
                          '(rear-nonsticky t))
-    (add-text-properties (point) (1- (line-end-position)) '(read-only t))
+    (add-text-properties (point) (1- (mh-line-end-position)) '(read-only t))
     (forward-line))
   (add-text-properties (point) (1+ (point)) '(front-sticky t))
-  (add-text-properties (point) (1- (line-end-position)) '(read-only t))
+  (add-text-properties (point) (1- (mh-line-end-position)) '(read-only t))
   (goto-char (point-max)))
 
 ;; Sequence Searches
@@ -526,9 +527,10 @@
       (cond ((and (bolp) (eolp))
              (ignore-errors (forward-line -1))
              (setq msg (mh-get-msg-num t)))
-            ((equal (char-after (line-beginning-position)) ?+)
+            ((equal (char-after (mh-line-beginning-position)) ?+)
              (setq folder (buffer-substring-no-properties
-                           (line-beginning-position) (line-end-position))))
+                           (mh-line-beginning-position)
+                           (mh-line-end-position))))
             (t (setq msg (mh-get-msg-num t)))))
     (when (not folder)
       (setq folder (car (gethash (gethash msg mh-index-msg-checksum-map)
@@ -655,13 +657,13 @@
           start begin)
       (goto-char (point-min))
       (while (not (eobp))
-        (if (search-forward "--------" (line-end-position) t)
+        (if (search-forward "--------" (mh-line-end-position) t)
             (setq in-body-flag t)
           (beginning-of-line)
           (setq begin (point))
           (setq start (if in-body-flag
                           (point)
-                        (search-forward ":" (line-end-position) t)
+                        (search-forward ":" (mh-line-end-position) t)
                         (point)))
           (push (cons (and (not in-body-flag)
                            (intern (downcase
@@ -669,7 +671,7 @@
                                      begin (1- start)))))
                       (mh-index-parse-search-regexp
                        (buffer-substring-no-properties
-                        start (line-end-position))))
+                        start (mh-line-end-position))))
                 pattern-list))
         (forward-line))
       pattern-list)))
@@ -979,8 +981,8 @@
           (return nil))
         (when (equal (char-after (point)) ?#)
           (return 'error))
-        (let* ((start (search-forward " " (line-end-position) t))
-               (end (search-forward " " (line-end-position) t)))
+        (let* ((start (search-forward " " (mh-line-end-position) t))
+               (end (search-forward " " (mh-line-end-position) t)))
           (unless (and start end)
             (return 'error))
           (setq end (1- end))
@@ -1058,7 +1060,7 @@
           (return 'error))
         (let ((start (point))
               end msg-start)
-          (setq end (line-end-position))
+          (setq end (mh-line-end-position))
           (unless (search-forward mh-mairix-folder end t)
             (return 'error))
           (goto-char (match-beginning 0))
@@ -1191,7 +1193,7 @@
       (block nil
         (when (eobp) (return nil))
         (let ((file-name (buffer-substring-no-properties
-                          (point) (line-end-position))))
+                          (point) (mh-line-end-position))))
           (unless (equal (string-match mh-namazu-folder file-name) 0)
             (return 'error))
           (unless (file-exists-p file-name)
@@ -1239,17 +1241,17 @@
   (prog1
       (block nil
         (when (eobp) (return nil))
-        (when (search-forward-regexp "^\+" (line-end-position) t)
+        (when (search-forward-regexp "^\+" (mh-line-end-position) t)
           (setq mh-index-pick-folder
-                (buffer-substring-no-properties (line-beginning-position)
-                                                (line-end-position)))
+                (buffer-substring-no-properties (mh-line-beginning-position)
+                                                (mh-line-end-position)))
           (return 'error))
-        (unless (search-forward-regexp "^[1-9][0-9]*$" (line-end-position) t)
+        (unless (search-forward-regexp "^[1-9][0-9]*$" (mh-line-end-position) t)
           (return 'error))
         (list mh-index-pick-folder
               (string-to-number
-               (buffer-substring-no-properties (line-beginning-position)
-                                               (line-end-position)))
+               (buffer-substring-no-properties (mh-line-beginning-position)
+                                               (mh-line-end-position)))
               nil))
     (forward-line)))
 
@@ -1326,8 +1328,8 @@
       (block nil
         (when (eobp)
           (return nil))
-        (let ((eol-pos (line-end-position))
-              (bol-pos (line-beginning-position))
+        (let ((eol-pos (mh-line-end-position))
+              (bol-pos (mh-line-beginning-position))
               folder-start msg-end)
           (goto-char bol-pos)
           (unless (search-forward mh-user-path eol-pos t)
@@ -1423,7 +1425,7 @@
         (save-excursion
           (beginning-of-line)
           (push (cons (buffer-substring-no-properties
-                       (point) (line-end-position))
+                       (point) (mh-line-end-position))
                       (set-marker (make-marker) (point)))
                 alist)))
       (setq imenu--index-alist (nreverse alist)))))
@@ -1696,7 +1698,8 @@
     (mh-exec-cmd-output mh-scan-prog nil "-width" "80"
                         "-format" "%{x-mhe-checksum}\n" folder msg)
     (goto-char (point-min))
-    (string-equal (buffer-substring-no-properties (point) (line-end-position))
+    (string-equal (buffer-substring-no-properties
+                   (point) (mh-line-end-position))
                   checksum)))
 
 
@@ -1805,8 +1808,8 @@
 
 (defun mh-md5sum-parser ()
   "Parse md5sum output."
-  (let ((begin (line-beginning-position))
-        (end (line-end-position))
+  (let ((begin (mh-line-beginning-position))
+        (end (mh-line-end-position))
         first-space last-slash)
     (setq first-space (search-forward " " end t))
     (goto-char end)
@@ -1819,8 +1822,8 @@
 
 (defun mh-openssl-parser ()
   "Parse openssl output."
-  (let ((begin (line-beginning-position))
-        (end (line-end-position))
+  (let ((begin (mh-line-beginning-position))
+        (end (mh-line-end-position))
         last-space last-slash)
     (goto-char end)
     (setq last-space (search-backward " " begin t))
@@ -1854,7 +1857,7 @@
       (let (msg checksum)
         (while (not (eobp))
           (setq msg (buffer-substring-no-properties
-                     (point) (line-end-position)))
+                     (point) (mh-line-end-position)))
           (forward-line)
           (save-excursion
             (cond ((not (string-match "^[0-9]*$" msg)))
@@ -1865,7 +1868,7 @@
                   (t
                    ;; update maps
                    (setq checksum (buffer-substring-no-properties
-                                   (point) (line-end-position)))
+                                   (point) (mh-line-end-position)))
                    (let ((msg (string-to-number msg)))
                      (set-buffer folder)
                      (mh-index-update-single-msg msg checksum origin-map)))))
--- a/lisp/mh-e/mh-seq.el	Wed Feb 01 23:17:50 2006 +0000
+++ b/lisp/mh-e/mh-seq.el	Wed Feb 01 23:24:34 2006 +0000
@@ -175,7 +175,7 @@
             (insert "\n"))
           (setq seq-list (cdr seq-list)))
         (goto-char (point-min))
-        (view-mode-enter)
+        (mh-view-mode-enter)
         (setq view-exit-action 'kill-buffer)
         (message "Listing sequences...done")))))
 
@@ -749,7 +749,7 @@
     (goto-char (point-min))
     (multiple-value-bind (folder unseen total)
         (mh-parse-flist-output-line
-         (buffer-substring (point) (line-end-position)))
+         (buffer-substring (point) (mh-line-end-position)))
       (values total unseen folder))))
 
 (defun mh-folder-size-folder (folder)
@@ -777,7 +777,7 @@
       (when (search-backward " out of " (point-min) t)
         (setq total (string-to-number
                      (buffer-substring-no-properties
-                      (match-end 0) (line-end-position))))
+                      (match-end 0) (mh-line-end-position))))
         (when (search-backward " in sequence " (point-min) t)
           (setq p (point))
           (when (search-backward " has " (point-min) t)
@@ -955,7 +955,7 @@
             ;; the case of user sequences.
             (mh-notate nil nil mh-cmd-note)
             (when font-lock-mode
-              (font-lock-fontify-region (point) (line-end-position))))
+              (font-lock-fontify-region (point) (mh-line-end-position))))
         (forward-char (+ mh-cmd-note mh-scan-field-destination-offset))
         (let ((stack (gethash msg mh-sequence-notation-history)))
           (setf (gethash msg mh-sequence-notation-history)
--- a/lisp/mh-e/mh-show.el	Wed Feb 01 23:17:50 2006 +0000
+++ b/lisp/mh-e/mh-show.el	Wed Feb 01 23:24:34 2006 +0000
@@ -878,7 +878,7 @@
 (defun mh-show-addr ()
   "Use `goto-address'."
   (when mh-show-use-goto-addr-flag
-    (require 'goto-addr nil t)
+    (mh-require 'goto-addr nil t)
     (if (fboundp 'goto-address)
         (goto-address))))
 
--- a/lisp/mh-e/mh-speed.el	Wed Feb 01 23:17:50 2006 +0000
+++ b/lisp/mh-e/mh-speed.el	Wed Feb 01 23:24:34 2006 +0000
@@ -69,13 +69,13 @@
     ["Visit Folder" mh-speed-view
      (save-excursion
        (set-buffer speedbar-buffer)
-       (get-text-property (line-beginning-position) 'mh-folder))]
+       (get-text-property (mh-line-beginning-position) 'mh-folder))]
     ["Expand Nested Folders" mh-speed-expand-folder
-     (and (get-text-property (line-beginning-position) 'mh-children-p)
-          (not (get-text-property (line-beginning-position) 'mh-expanded)))]
+     (and (get-text-property (mh-line-beginning-position) 'mh-children-p)
+          (not (get-text-property (mh-line-beginning-position) 'mh-expanded)))]
     ["Contract Nested Folders" mh-speed-contract-folder
-     (and (get-text-property (line-beginning-position) 'mh-children-p)
-          (get-text-property (line-beginning-position) 'mh-expanded))]
+     (and (get-text-property (mh-line-beginning-position) 'mh-children-p)
+          (get-text-property (mh-line-beginning-position) 'mh-expanded))]
     ["Refresh Speedbar" mh-speed-refresh t])
   "Extra menu items for speedbar.")
 
@@ -157,7 +157,7 @@
              (forward-line -1)
              (speedbar-change-expand-button-char ?+)
              (add-text-properties
-              (line-beginning-position) (1+ (line-beginning-position))
+              (mh-line-beginning-position) (1+ (line-beginning-position))
               '(mh-expanded nil)))
             (t
              (forward-line)
@@ -165,7 +165,7 @@
              (goto-char point)
              (speedbar-change-expand-button-char ?-)
              (add-text-properties
-              (line-beginning-position) (1+ (line-beginning-position))
+              (mh-line-beginning-position) (1+ (line-beginning-position))
               `(mh-expanded t)))))))
 
 (defun mh-speed-view (&rest args)
@@ -173,7 +173,7 @@
 The optional ARGS from speedbar are ignored."
   (interactive)
   (declare (ignore args))
-  (let* ((folder (get-text-property (line-beginning-position) 'mh-folder))
+  (let* ((folder (get-text-property (mh-line-beginning-position) 'mh-folder))
          (range (and (stringp folder)
                      (mh-read-range "Scan" folder t nil nil
                                     mh-interpret-number-as-range-flag))))
@@ -199,9 +199,9 @@
     (forward-line -1)
     (setf (gethash nil mh-speed-folder-map)
           (set-marker (or (gethash nil mh-speed-folder-map) (make-marker))
-                      (1+ (line-beginning-position))))
+                      (1+ (mh-line-beginning-position))))
     (add-text-properties
-     (line-beginning-position) (1+ (line-beginning-position))
+     (mh-line-beginning-position) (1+ (line-beginning-position))
      `(mh-folder nil mh-expanded nil mh-children-p t mh-level 0))
     (mh-speed-stealth-update t)
     (when (> mh-speed-update-interval 0)
@@ -268,12 +268,12 @@
     (speedbar-with-writable
       (goto-char (gethash folder mh-speed-folder-map (point)))
       (beginning-of-line)
-      (if (re-search-forward "([1-9][0-9]*/[0-9]+)" (line-end-position) t)
+      (if (re-search-forward "([1-9][0-9]*/[0-9]+)" (mh-line-end-position) t)
           (setq face (mh-speed-bold-face face))
         (setq face (mh-speed-normal-face face)))
       (beginning-of-line)
-      (when (re-search-forward "\\[.\\] " (line-end-position) t)
-        (put-text-property (point) (line-end-position) 'face face)))))
+      (when (re-search-forward "\\[.\\] " (mh-line-end-position) t)
+        (put-text-property (point) (mh-line-end-position) 'face face)))))
 
 (defun mh-speed-normal-face (face)
   "Return normal face for given FACE."
@@ -313,7 +313,7 @@
     (while suffix-list
       ;; We always need atleast one toggle. We need two if the directory list
       ;; is stale since a folder was added.
-      (when (equal prefix (get-text-property (line-beginning-position)
+      (when (equal prefix (get-text-property (mh-line-beginning-position)
                                              'mh-folder))
         (mh-speed-toggle)
         (unless (get-text-property (point) 'mh-expanded)
@@ -368,9 +368,9 @@
              (setf (gethash folder-name mh-speed-folder-map)
                    (set-marker (or (gethash folder-name mh-speed-folder-map)
                                    (make-marker))
-                               (1+ (line-beginning-position))))
+                               (1+ (mh-line-beginning-position))))
              (add-text-properties
-              (line-beginning-position) (1+ (line-beginning-position))
+              (mh-line-beginning-position) (1+ (mh-line-beginning-position))
               `(mh-folder ,folder-name
                           mh-expanded nil
                           mh-children-p ,(not (not (cdr f)))
@@ -400,7 +400,7 @@
   (interactive (list t))
   (when force
     (when mh-speed-flists-timer
-      (cancel-timer mh-speed-flists-timer)
+      (mh-cancel-timer mh-speed-flists-timer)
       (setq mh-speed-flists-timer nil))
     (when (and (processp mh-speed-flists-process)
                (not (eq (process-status mh-speed-flists-process) 'exit)))
@@ -471,25 +471,25 @@
                           face)
                       (when pos
                         (goto-char pos)
-                        (goto-char (line-beginning-position))
+                        (goto-char (mh-line-beginning-position))
                         (cond
                          ((null (get-text-property (point) 'mh-count))
-                          (goto-char (line-end-position))
+                          (goto-char (mh-line-end-position))
                           (setq face (get-text-property (1- (point)) 'face))
                           (insert (format " (%s/%s)" unseen total))
                           (mh-speed-highlight 'unknown face)
-                          (goto-char (line-beginning-position))
+                          (goto-char (mh-line-beginning-position))
                           (add-text-properties (point) (1+ (point))
                                                `(mh-count (,unseen . ,total))))
                          ((not (equal (get-text-property (point) 'mh-count)
                                       (cons unseen total)))
-                          (goto-char (line-end-position))
+                          (goto-char (mh-line-end-position))
                           (setq face (get-text-property (1- (point)) 'face))
-                          (re-search-backward " " (line-beginning-position) t)
-                          (delete-region (point) (line-end-position))
+                          (re-search-backward " " (mh-line-beginning-position) t)
+                          (delete-region (point) (mh-line-end-position))
                           (insert (format " (%s/%s)" unseen total))
                           (mh-speed-highlight 'unknown face)
-                          (goto-char (line-beginning-position))
+                          (goto-char (mh-line-beginning-position))
                           (add-text-properties
                            (point) (1+ (point))
                            `(mh-count (,unseen . ,total))))))))))))
@@ -519,15 +519,15 @@
                              (caar parent-kids)))
                  (setq parent-change ? ))))
         (goto-char parent-position)
-        (when (equal (get-text-property (line-beginning-position) 'mh-folder)
+        (when (equal (get-text-property (mh-line-beginning-position) 'mh-folder)
                      parent)
-          (when (get-text-property (line-beginning-position) 'mh-expanded)
+          (when (get-text-property (mh-line-beginning-position) 'mh-expanded)
             (mh-speed-toggle))
           (when parent-change
             (speedbar-with-writable
               (mh-speedbar-change-expand-button-char parent-change)
               (add-text-properties
-               (line-beginning-position) (1+ (line-beginning-position))
+               (mh-line-beginning-position) (1+ (mh-line-beginning-position))
                `(mh-children-p ,(equal parent-change ?+)))))
           (mh-speed-highlight mh-speed-last-selected-folder 'mh-speedbar-folder)
           (setq mh-speed-last-selected-folder nil)
@@ -541,7 +541,7 @@
   "Change the expansion button character to CHAR for the current line."
   (save-excursion
     (beginning-of-line)
-    (if (re-search-forward "\\[.\\]" (line-end-position) t)
+    (if (re-search-forward "\\[.\\]" (mh-line-end-position) t)
         (speedbar-with-writable
           (backward-char 2)
           (delete-char 1)
@@ -573,9 +573,9 @@
       (speedbar-with-writable
         (mh-speedbar-change-expand-button-char ?+)
         (add-text-properties
-         (line-beginning-position) (1+ (line-beginning-position))
+         (mh-line-beginning-position) (1+ (mh-line-beginning-position))
          `(mh-children-p t)))
-      (when (get-text-property (line-beginning-position) 'mh-expanded)
+      (when (get-text-property (mh-line-beginning-position) 'mh-expanded)
         (mh-speed-toggle))
       (setq mh-speed-refresh-flag t))))
 
--- a/lisp/mh-e/mh-thread.el	Wed Feb 01 23:17:50 2006 +0000
+++ b/lisp/mh-e/mh-thread.el	Wed Feb 01 23:24:34 2006 +0000
@@ -296,7 +296,7 @@
         (while (not (eobp))
           (forward-char address-start-offset)
           (unless (equal (string-match spaces (buffer-substring-no-properties
-                                               (point) (line-end-position)))
+                                               (point) (mh-line-end-position)))
                          0)
             (beginning-of-line)
             (backward-char)
@@ -456,9 +456,9 @@
 If optional argument STRING is given then that is assumed to be
 the scan line. Otherwise uses the line at point as the scan line
 to parse."
-  (let* ((string (or string
-                     (buffer-substring-no-properties (line-beginning-position)
-                                                     (line-end-position))))
+  (let* ((string (or string (buffer-substring-no-properties
+                             (mh-line-beginning-position)
+                             (mh-line-end-position))))
          (address-start (+ mh-cmd-note mh-scan-field-from-start-offset))
          (body-start (+ mh-cmd-note mh-scan-field-from-end-offset))
          (first-string (substring string 0 address-start)))
@@ -599,18 +599,20 @@
         (while (not (eobp))
           (block process-message
             (let* ((index-line
-                    (prog1 (buffer-substring (point) (line-end-position))
+                    (prog1 (buffer-substring (point) (mh-line-end-position))
                       (forward-line)))
                    (index (string-to-number index-line))
-                   (id (prog1 (buffer-substring (point) (line-end-position))
+                   (id (prog1 (buffer-substring (point) (mh-line-end-position))
                          (forward-line)))
-                   (refs (prog1 (buffer-substring (point) (line-end-position))
+                   (refs (prog1
+                             (buffer-substring (point) (mh-line-end-position))
                            (forward-line)))
                    (in-reply-to (prog1 (buffer-substring (point)
-                                                         (line-end-position))
+                                                         (mh-line-end-position))
                                   (forward-line)))
                    (subject (prog1
-                                (buffer-substring (point) (line-end-position))
+                                (buffer-substring
+                                 (point) (mh-line-end-position))
                               (forward-line)))
                    (subject-re-p nil))
               (unless (gethash index mh-thread-scan-line-map)
--- a/lisp/mh-e/mh-utils.el	Wed Feb 01 23:17:50 2006 +0000
+++ b/lisp/mh-e/mh-utils.el	Wed Feb 01 23:24:34 2006 +0000
@@ -68,7 +68,7 @@
 (defun mh-colors-available-p ()
   "Check if colors are available in the Emacs being used."
   (or mh-xemacs-flag
-      (let ((color-cells (display-color-cells)))
+      (let ((color-cells (mh-display-color-cells)))
         (and (numberp color-cells) (>= color-cells 8)))))
 
 ;;;###mh-autoload
@@ -502,8 +502,8 @@
     ;; top-level folders; otherwise mh-sub-folders returns all the
     ;; files in / if given an empty string or +.
     (when folder
-      (setq folder (replace-regexp-in-string "^\+" "" folder))
-      (setq folder (replace-regexp-in-string "/*$" "/" folder))
+      (setq folder (mh-replace-regexp-in-string "^\+" "" folder))
+      (setq folder (mh-replace-regexp-in-string "/*$" "/" folder))
       (if (equal folder "")
         (setq folder nil)))
     (loop for f in (mh-sub-folders folder) do
@@ -553,9 +553,10 @@
       (apply #'call-process arg-list)
       (goto-char (point-min))
       (while (not (and (eolp) (bolp)))
-        (goto-char (line-end-position))
-        (let ((start-pos (line-beginning-position))
-              (has-pos (search-backward " has " (line-beginning-position) t)))
+        (goto-char (mh-line-end-position))
+        (let ((start-pos (mh-line-beginning-position))
+              (has-pos (search-backward " has "
+                                        (mh-line-beginning-position) t)))
           (when (integerp has-pos)
             (while (equal (char-after has-pos) ? )
               (decf has-pos))
@@ -570,7 +571,7 @@
                   (setq name (substring name 0 (1- (length name)))))
                 (push
                  (cons name
-                       (search-forward "(others)" (line-end-position) t))
+                       (search-forward "(others)" (mh-line-end-position) t))
                  results))))
           (forward-line 1))))
     (setq results (nreverse results))
@@ -927,10 +928,12 @@
       (unwind-protect
           (cond ((or (and (not arg)
                           (text-property-any begin end 'invisible 'vanish))
-                     (and (numberp arg) (>= arg 0))
-                     (and (eq arg 'long) (> (line-beginning-position 5) end)))
+                     (and (numberp arg)
+                          (>= arg 0))
+                     (and (eq arg 'long)
+                          (> (mh-line-beginning-position 5) end)))
                  (remove-text-properties begin end '(invisible nil))
-                 (search-forward ":" (line-end-position) t)
+                 (search-forward ":" (mh-line-end-position) t)
                  (mh-letter-skip-leading-whitespace-in-header-field))
                 ;; XXX Redesign to make usable by user. Perhaps use a positive
                 ;; numeric prefix to make that many lines visible.