mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-11-22 07:09:54 +00:00
* 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.
This commit is contained in:
parent
05227fbee3
commit
d5dc8c5635
@ -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)
|
||||
|
@ -125,10 +125,10 @@ COMMA-SEPARATOR is non-nil."
|
||||
(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 @@ Blind aliases or users from /etc/passwd are not expanded."
|
||||
(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 @@ filing messages."
|
||||
|
||||
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."
|
||||
|
@ -1031,7 +1031,7 @@ discarded."
|
||||
(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.
|
||||
|
@ -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.
|
||||
;; 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))
|
||||
|
||||
(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 @@ COMMON-SUBSTRING argument, introduced in Emacs 22."
|
||||
"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 @@ argument, introduced in Emacs 22."
|
||||
"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 @@ This is a copy of `url-hexify-string' from url-util.el in Emacs
|
||||
(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'.
|
||||
|
@ -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 @@ all the strings have been used."
|
||||
(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 @@ entirely if the display does not support the number of specified
|
||||
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.
|
||||
|
@ -516,7 +516,7 @@ font-lock is done highlighting.")
|
||||
(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))
|
||||
|
||||
|
@ -154,7 +154,7 @@ Display the results only if something went wrong."
|
||||
"-recurse"
|
||||
"-norecurse"))
|
||||
(goto-char (point-min))
|
||||
(view-mode-enter)
|
||||
(mh-view-mode-enter)
|
||||
(setq view-exit-action 'kill-buffer)
|
||||
(message "Listing folders...done")))))
|
||||
|
||||
|
@ -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)
|
||||
|
@ -267,7 +267,7 @@ searching for `mh-mail-header-separator' in the buffer."
|
||||
(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 @@ order).
|
||||
(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 @@ body."
|
||||
((< (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)))
|
||||
|
@ -211,7 +211,7 @@ Return number of messages put in the sequence:
|
||||
(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 @@ Return number of messages put in the sequence:
|
||||
(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 @@ The MH command pick is used to do the match."
|
||||
(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)
|
||||
|
@ -302,14 +302,14 @@ the attachment labeled with that number."
|
||||
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 @@ buttons for alternative parts that are usually suppressed."
|
||||
(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 @@ This function will quote all such characters."
|
||||
(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 @@ buffer, while END defaults to the the end of the buffer."
|
||||
(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))
|
||||
|
@ -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 @@ configuration and is used when the search folder is dismissed."
|
||||
(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 @@ group of results."
|
||||
(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 @@ The cdr of the element is the pattern to search."
|
||||
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 @@ The cdr of the element is the pattern to search."
|
||||
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 @@ is used to search."
|
||||
(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 @@ SEARCH-REGEXP-LIST is used to search."
|
||||
(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 @@ is used to search."
|
||||
(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 @@ is used to search."
|
||||
(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 @@ record is invalid return 'error."
|
||||
(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 @@ being the list of messages originally from that folder."
|
||||
(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 @@ folder, is removed from `mh-index-data'."
|
||||
(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 @@ PROC is used to convert the value to actual data."
|
||||
|
||||
(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 @@ PROC is used to convert the value to actual data."
|
||||
|
||||
(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 @@ origin-index) map is updated too."
|
||||
(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 @@ origin-index) map is updated too."
|
||||
(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)))))
|
||||
|
@ -175,7 +175,7 @@ The list appears in a buffer named \"*MH-E Sequences*\"."
|
||||
(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 @@ completion is over."
|
||||
(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 @@ folders whose names end with a '+' character."
|
||||
(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 @@ font-lock is turned on."
|
||||
;; 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)
|
||||
|
@ -878,7 +878,7 @@ See also `mh-folder-mode'.
|
||||
(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))))
|
||||
|
||||
|
@ -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 @@ The optional ARGS from speedbar are ignored."
|
||||
(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 @@ The optional ARGS from speedbar are ignored."
|
||||
(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."
|
||||
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 @@ created."
|
||||
(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 @@ The update is always carried out if FORCE is non-nil."
|
||||
(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 @@ The function will expand out parent folders of FOLDER if needed."
|
||||
(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 @@ uses."
|
||||
(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 @@ flists is run only for that one folder."
|
||||
(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 @@ be handled next."
|
||||
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 @@ be handled next."
|
||||
(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 @@ be handled next."
|
||||
"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 @@ The function invalidates the latest ancestor that is present."
|
||||
(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))))
|
||||
|
||||
|
@ -296,7 +296,7 @@ at the end."
|
||||
(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 @@ are the same containers."
|
||||
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 @@ Only information about messages in MSG-LIST are added to the tree."
|
||||
(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)
|
||||
|
@ -68,7 +68,7 @@ used in lieu of `search' in the CL package."
|
||||
(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 @@ not be returned."
|
||||
;; 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 @@ directories that aren't usually mail folders are hidden."
|
||||
(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 @@ directories that aren't usually mail folders are hidden."
|
||||
(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 @@ is hidden, if positive then the field is displayed."
|
||||
(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.
|
||||
|
Loading…
Reference in New Issue
Block a user