(gnus-registry-initialize): Use it.
(gnus-registry-default-mark): Clarify documentation.
+2008-02-29 Glenn Morris <rgm@gnu.org>
+
+ * gnus-art.el, gnus-bookmark.el, gnus-dired.el, gnus-draft.el:
+ * gnus-group.el, gnus-msg.el, gnus-score.el, gnus-sum.el, gnus-util.el:
+ * gnus.el, mail-source.el, message.el, mm-decode.el, mm-uu.el, mml.el:
+ * nnmail.el, pop3.el, smiley.el, smime.el, spam-report.el:
+ Change defcustom :version from 23.0 to 23.1.
+
2008-02-28 Teodor Zlatanov <tzz@lifelogs.com>
* gnus-registry.el (gnus-registry-follow-group-p)
documentation.
(gnus-registry-split-fancy-with-parent): Use them.
+2008-02-28 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * gnus-art.el: Use with-current-buffer.
+
2008-02-27 David Engster <dengste@eml.cc>
* nnmairix.el (nnmairix-request-group-with-article-number-correction):
(mm-uu-extract): Improve face for low color ttys. Reported by Sascha
Wilde.
+2008-02-27 Glenn Morris <rgm@gnu.org>
+
+ * nnmairix.el: Change defcustom :version from 23.0 to 23.1.
+ (nnmairix-group-regexp, nnmairix-valid-backends): Convert from free
+ variables to defconsts. Convert comments to doc-strings.
+ (nnmairix-last-server, nnmairix-current-server): Convert from free
+ variables to defvars. Convert comments to doc-strings.
+ (gnus-registry-fetch-group): Autoload.
+ (nnmairix-replace-group-and-numbers): Use mapc rather than mapcar.
+ (nnmairix-widget-get-values, nnmairix-widget-make-query-from-widgets)
+ (nnmairix-widget-build-editable-fields): Use car cddr rather than
+ caddr.
+ (nnmairix-request-group): Bind nnmairix-fast and nnmairix-group around
+ nnmairix-request-group-with-article-number-correction call.
+ (nnmairix-fast, nnmairix-group): New, less general names, for free
+ variables passed from nnmairix-request-group to
+ nnmairix-request-group-with-article-number-correction. Declare.
+ (nnmairix-request-group-with-article-number-correction):
+ Use nnmairix-fast, nnmairix-group rather than fast, group.
+
2008-02-26 David Engster <dengste@eml.cc>
* nnmairix.el: New file. Mairix back end for Gnus. Initial import of
(defcustom gnus-copy-article-ignored-headers nil
"List of headers to be removed when copying an article.
Each element is a regular expression."
- :version "23.0" ;; No Gnus
+ :version "23.1" ;; No Gnus
:type '(repeat regexp)
:group 'gnus-article-various)
Currently, `pbm' is used for X-Face images and `png' is used for Face
images in Emacs. Only the `:face' property is effective on the `xface'
image type in XEmacs if it is built with the libcompface library."
- :version "23.0" ;; No Gnus
+ :version "23.1" ;; No Gnus
:group 'gnus-article-headers
:type '(repeat (cons :format "%v" (symbol :tag "Image type") plist)))
When 0, point will be placed on the same part as before. When
positive (negative), move point forward (backwards) this many
parts. When nil, redisplay article."
- :version "23.0" ;; No Gnus
+ :version "23.1" ;; No Gnus
:group 'gnus-article-mime
:type '(choice (const nil :tag "Redisplay article.")
(const 1 :tag "Next part.")
If it is t, all long headers are unfolded.
This variable has no effect if `gnus-treat-unfold-headers' is nil."
- :version "23.0" ;; No Gnus
+ :version "23.1" ;; No Gnus
:group 'gnus-article-treat
:type '(choice (const nil)
(const :tag "all" t)
;;; Macros for dealing with the article buffer.
(defmacro gnus-with-article-headers (&rest forms)
- `(save-excursion
- (set-buffer gnus-article-buffer)
+ `(with-current-buffer gnus-article-buffer
(save-restriction
(let ((inhibit-read-only t)
(inhibit-point-motion-hooks t)
(put 'gnus-with-article-headers 'edebug-form-spec '(body))
(defmacro gnus-with-article-buffer (&rest forms)
- `(save-excursion
- (set-buffer gnus-article-buffer)
+ `(with-current-buffer gnus-article-buffer
(let ((inhibit-read-only t))
,@forms)))
"Value of `truncate-lines' in Gnus Article buffer.
Valid values are nil, t, `head', `first', `last', an integer or a
predicate. See Info node `(gnus)Customizing Articles'."
- :version "23.0" ;; No Gnus
+ :version "23.1" ;; No Gnus
:group 'gnus-article
;; :link '(custom-manual "(gnus)Customizing Articles")
:type 'boolean)
on each file, if it is `ask' ask once when exiting from the
summary buffer."
:group 'gnus-article
- :version "23.0" ;; No Gnus
+ :version "23.1" ;; No Gnus
:type '(choice (const :tag "Don't delete" nil)
(const :tag "Don't ask" t)
(const :tag "Ask" ask)
(or (symbol-value (get gnus-default-article-saver :headers))
gnus-saved-headers gnus-visible-headers))
(gnus-article-buffer save-buffer))
- (save-excursion
- (set-buffer save-buffer)
+ (with-current-buffer save-buffer
(article-hide-headers 1 t))))
(save-window-excursion
(if (not gnus-default-article-saver)
`(lambda (&optional interactive &rest args)
,(documentation afunc t)
(interactive (list t))
- (save-excursion
- (set-buffer gnus-article-buffer)
+ (with-current-buffer gnus-article-buffer
(if interactive
(call-interactively ',afunc)
(apply ',afunc args))))))))
(gnus-set-global-variables)))
(gnus-article-setup-highlight-words)
;; Init original article buffer.
- (save-excursion
- (set-buffer (gnus-get-buffer-create gnus-original-article-buffer))
+ (with-current-buffer (gnus-get-buffer-create gnus-original-article-buffer)
(mm-enable-multibyte)
(setq major-mode 'gnus-original-article-mode)
(make-local-variable 'gnus-original-article))
nil)
(error "Action aborted"))
t)))
- (save-excursion
- (set-buffer name)
+ (with-current-buffer name
(set (make-local-variable 'gnus-article-edit-mode) nil)
(when gnus-article-mime-handles
(mm-destroy-parts gnus-article-mime-handles)
(unless (eq major-mode 'gnus-article-mode)
(gnus-article-mode))
(current-buffer))
- (save-excursion
- (set-buffer (gnus-get-buffer-create name))
+ (with-current-buffer (gnus-get-buffer-create name)
(gnus-article-mode)
(make-local-variable 'gnus-summary-buffer)
(setq gnus-summary-buffer
(when article-window
(set-window-start
article-window
- (save-excursion
- (set-buffer gnus-article-buffer)
+ (with-current-buffer gnus-article-buffer
(goto-char (point-min))
(if (not line)
(point-min)
(if (or (eq result 'pseudo)
(eq result 'nneething))
(progn
- (save-excursion
- (set-buffer summary-buffer)
+ (with-current-buffer summary-buffer
(push article gnus-newsgroup-history)
(setq gnus-last-article gnus-current-article
gnus-current-article 0
(not (eq article gnus-current-article)))
;; Seems like a new article has been selected.
;; `gnus-current-article' must be an article number.
- (save-excursion
- (set-buffer summary-buffer)
+ (with-current-buffer summary-buffer
(push article gnus-newsgroup-history)
(setq gnus-last-article gnus-current-article
gnus-current-article article
If given a numerical ARG, move forward ARG pages."
(interactive "P")
(setq arg (if arg (prefix-numeric-value arg) 0))
- (save-excursion
- (set-buffer gnus-article-buffer)
+ (with-current-buffer gnus-article-buffer
(goto-char (point-min))
(widen)
;; Remove any old next/prev buttons.
(up-to-top
'("n" "Gn" "p" "Gp"))
keys new-sum-point)
- (save-excursion
- (set-buffer gnus-article-current-summary)
+ (with-current-buffer gnus-article-current-summary
(let (gnus-pick-mode)
(setq unread-command-events (nconc unread-command-events
(list (or key last-command-event)))
(gnus-article-check-buffer)
(if (memq (key-binding key t) '(gnus-article-read-summary-keys
gnus-article-read-summary-send-keys))
- (save-excursion
- (set-buffer gnus-article-current-summary)
+ (with-current-buffer gnus-article-current-summary
(setq unread-command-events
(if (featurep 'xemacs)
(append key nil)
(gnus-article-check-buffer)
(if (memq (key-binding key t) '(gnus-article-read-summary-keys
gnus-article-read-summary-send-keys))
- (save-excursion
- (set-buffer gnus-article-current-summary)
+ (with-current-buffer gnus-article-current-summary
(setq unread-command-events
(if (featurep 'xemacs)
(append key nil)
(set (make-local-variable 'gnus-draft-mode) draft)
(describe-bindings prefix))
(let ((item `((lambda (prefix)
- (save-excursion
- (set-buffer ,(current-buffer))
+ (with-current-buffer ,(current-buffer)
(gnus-article-describe-bindings prefix)))
,prefix)))
(with-current-buffer (if (fboundp 'help-buffer)
gnus-summary-buffer
(get-buffer gnus-summary-buffer)
(gnus-buffer-exists-p gnus-summary-buffer))
- (save-excursion
- (set-buffer gnus-summary-buffer)
+ (with-current-buffer gnus-summary-buffer
(let ((header (gnus-summary-article-header article)))
(when (< article 0)
(cond
(gnus-backlog-remove-article
(car gnus-article-current) (cdr gnus-article-current)))
;; Flush original article as well.
- (save-excursion
- (when (get-buffer gnus-original-article-buffer)
- (set-buffer gnus-original-article-buffer)
+ (when (get-buffer gnus-original-article-buffer)
+ (with-current-buffer gnus-original-article-buffer
(setq gnus-original-article nil)))
(when gnus-use-cache
(gnus-cache-update-article
(gnus-parse-news-url url)
(cond
(message-id
- (save-excursion
- (set-buffer gnus-summary-buffer)
+ (with-current-buffer gnus-summary-buffer
(if server
(let ((gnus-refer-article-method
(nconc (list (list 'nntp server))
(error "Can't encrypt the article in group %s"
gnus-newsgroup-name))
(gnus-summary-iterate n
- (save-excursion
- (set-buffer gnus-summary-buffer)
+ (with-current-buffer gnus-summary-buffer
(let ((mail-parse-charset gnus-newsgroup-charset)
(mail-parse-ignored-charsets gnus-newsgroup-ignored-charsets)
(summary-buffer gnus-summary-buffer)
(when gnus-keep-backlog
(gnus-backlog-remove-article
(car gnus-article-current) (cdr gnus-article-current)))
- (save-excursion
- (when (get-buffer gnus-original-article-buffer)
- (set-buffer gnus-original-article-buffer)
+ (when (get-buffer gnus-original-article-buffer)
+ (with-current-buffer gnus-original-article-buffer
(setq gnus-original-article nil)))
(when gnus-use-cache
(gnus-cache-update-article
(run-hooks 'gnus-art-load-hook)
-;;; arch-tag: 2654516f-6279-48f9-a83b-05c1fa450c33
+;; arch-tag: 2654516f-6279-48f9-a83b-05c1fa450c33
;;; gnus-art.el ends here
(defface gnus-bookmark-menu-heading
'((t (:inherit font-lock-type-face)))
"Face used to highlight the heading in Gnus bookmark menu buffers."
- :version "23.0" ;; No Gnus
+ :version "23.1" ;; No Gnus
:group 'gnus-bookmark)
(defconst gnus-bookmark-end-of-version-stamp-marker
"Your preference for a mail composition package.
See `mail-user-agent' for more information."
:group 'mail ;; dired?
- :version "23.0" ;; No Gnus
+ :version "23.1" ;; No Gnus
:type '(radio (function-item :tag "Default Emacs mail"
:format "%t\n"
sendmail-user-agent)
(defcustom gnus-draft-setup-hook nil
"Hook run after setting up a draft buffer."
:group 'gnus-message
- :version "23.0" ;; No Gnus
+ :version "23.1" ;; No Gnus
:type 'hook)
;;; Utility functions
(const :tag "Retro look" gnus-group-tool-bar-retro)
(repeat :tag "User defined list" gmm-tool-bar-item)
(symbol))
- :version "23.0" ;; No Gnus
+ :version "23.1" ;; No Gnus
:initialize 'custom-initialize-default
:set 'gnus-group-tool-bar-update
:group 'gnus-group)
See `gmm-tool-bar-from-list' for the format of the list."
:type '(repeat gmm-tool-bar-item)
- :version "23.0" ;; No Gnus
+ :version "23.1" ;; No Gnus
:initialize 'custom-initialize-default
:set 'gnus-group-tool-bar-update
:group 'gnus-group)
See `gmm-tool-bar-from-list' for the format of the list."
:type '(repeat gmm-tool-bar-item)
- :version "23.0" ;; No Gnus
+ :version "23.1" ;; No Gnus
:initialize 'custom-initialize-default
:set 'gnus-group-tool-bar-update
:group 'gnus-group)
See `gmm-tool-bar-from-list' for the format of the list."
:type 'gmm-tool-bar-zap-list
- :version "23.0" ;; No Gnus
+ :version "23.1" ;; No Gnus
:initialize 'custom-initialize-default
:set 'gnus-group-tool-bar-update
:group 'gnus-group)
It must contain three \"%s\". They correspond to the group, the
minimal and maximal article numbers, respectively."
:group 'gnus-group-foreign
- :version "23.0" ;; No Gnus
+ :version "23.1" ;; No Gnus
:type 'string)
(autoload 'url-insert-file-contents "url-handlers")
parameter, which should return non-nil if a confirmation is needed; or
a regexp, in which case a confirmation is asked for if the group name
matches the regexp."
- :version "23.0" ;; No Gnus (default changed)
+ :version "23.1" ;; No Gnus (default changed)
:group 'gnus-message
:type '(choice (const :tag "No" nil)
(const :tag "Yes" t)
(defcustom gnus-message-highlight-citation
t ;; gnus-treat-highlight-citation ;; gnus-cite dependency
"Enable highlighting of different citation levels in message-mode."
- :version "23.0" ;; No Gnus
+ :version "23.1" ;; No Gnus
:group 'gnus-cite
:group 'gnus-message
:type 'boolean)
"If non-nil, adaptive score files fill are pretty printed."
:group 'gnus-score-files
:group 'gnus-score-adapt
- :version "23.0" ;; No Gnus
+ :version "23.1" ;; No Gnus
:type 'boolean)
(defcustom gnus-score-default-header nil
matches the regexp. If it is t, scoring on headers or body is
inhibited for all groups."
:group 'gnus-score-various
- :version "23.0" ;; No Gnus
+ :version "23.1" ;; No Gnus
:type '(choice (const :tag "All" nil)
(const :tag "None" t)
regexp))
See `gnus-group-goto-unread'."
:link '(custom-manual "(gnus)Group Maneuvering")
:group 'gnus-summary-exit
- :version "23.0" ;; No Gnus
+ :version "23.1" ;; No Gnus
:type 'boolean)
(defcustom gnus-fetch-old-headers nil
If it has any other value or there is no next (unread) article, the
article selected before entering to the ephemeral group will appear."
- :version "23.0" ;; No Gnus
+ :version "23.1" ;; No Gnus
:group 'gnus-summary-maneuvering
:type '(choice :format "%{%t%}:\n %[Value Menu%] %v"
(const next) (const next-unread)
(const :tag "Retro look" gnus-summary-tool-bar-retro)
(repeat :tag "User defined list" gmm-tool-bar-item)
(symbol))
- :version "23.0" ;; No Gnus
+ :version "23.1" ;; No Gnus
:initialize 'custom-initialize-default
:set 'gnus-summary-tool-bar-update
:group 'gnus-summary)
See `gmm-tool-bar-from-list' for the format of the list."
:type '(repeat gmm-tool-bar-item)
- :version "23.0" ;; No Gnus
+ :version "23.1" ;; No Gnus
:initialize 'custom-initialize-default
:set 'gnus-summary-tool-bar-update
:group 'gnus-summary)
See `gmm-tool-bar-from-list' for the format of the list."
:type '(repeat gmm-tool-bar-item)
- :version "23.0" ;; No Gnus
+ :version "23.1" ;; No Gnus
:initialize 'custom-initialize-default
:set 'gnus-summary-tool-bar-update
:group 'gnus-summary)
See `gmm-tool-bar-from-list' for the format of the list."
:type 'gmm-tool-bar-zap-list
- :version "23.0" ;; No Gnus
+ :version "23.1" ;; No Gnus
:initialize 'custom-initialize-default
:set 'gnus-summary-tool-bar-update
:group 'gnus-summary)
\"*Messages*\" buffer (in XEmacs, it is the \" *Message-Log*\" buffer).
If it is neither nil nor `log', add timestamps not only to log messages
but also to the ones displayed in the echo area."
- :version "23.0" ;; No Gnus
+ :version "23.1" ;; No Gnus
:group 'gnus-various
:type '(choice :format "%{%t%}:\n %[Value Menu%] %v"
(const :tag "Logged messages only" log)
value of `gnus-message-archive-method' afterward. If you want the
saved \"archive\" method to be updated whenever you change the value of
`gnus-message-archive-method', set this variable to a non-nil value."
- :version "23.0" ;; No Gnus
+ :version "23.1" ;; No Gnus
:group 'gnus-server
:group 'gnus-message
:type 'boolean)
(defcustom imap-ping-server t
"If non-nil, check if IMAP is open.
See the function `imap-ping-server'."
- :version "23.0" ;; No Gnus
+ :version "23.1" ;; No Gnus
:group 'imap
:type 'boolean)
This variable is a list of mail source specifiers.
See Info node `(gnus)Mail Source Specifiers'."
:group 'mail-source
- :version "23.0" ;; No Gnus
+ :version "23.1" ;; No Gnus
:link '(custom-manual "(gnus)Mail Source Specifiers")
:type `(choice
(const :tag "None" nil)
(defcustom message-kill-buffer-query t
"*Non-nil means that killing a modified message buffer has to be confirmed.
This is used by `message-kill-buffer'."
- :version "23.0" ;; No Gnus
+ :version "23.1" ;; No Gnus
:group 'message-buffers
:type 'boolean)
:tag "Use Mailclient package")
(function :tag "Other"))
:group 'message-sending
- :version "23.0" ;; No Gnus
+ :version "23.1" ;; No Gnus
:initialize 'custom-initialize-default
:link '(custom-manual "(message)Mail Variables")
:group 'message-mail)
(defcustom message-sendmail-extra-arguments nil
"Additional arguments to `sendmail-program'."
;; E.g. '("-a" "account") for msmtp
- :version "23.0" ;; No Gnus
+ :version "23.1" ;; No Gnus
:type '(repeat string)
;; :link '(custom-manual "(message)Mail Variables")
:group 'message-sending)
(const :tag "Include date" "On %a, %b %d %Y, %n wrote:")
string)
:link '(custom-manual "(message)Insertion Variables")
- :version "23.0" ;; No Gnus
+ :version "23.1" ;; No Gnus
:group 'message-insertion)
(defcustom message-yank-prefix "> "
(defcustom message-bogus-address-regexp nil ;; "noreply\\|nospam\\|invalid"
"Regexp of potentially bogus mail addresses."
- :version "23.0" ;; No Gnus
+ :version "23.1" ;; No Gnus
:group 'message-headers
:type 'regexp)
(const :tag "Retro look" message-tool-bar-retro)
(repeat :tag "User defined list" gmm-tool-bar-item)
(symbol))
- :version "23.0" ;; No Gnus
+ :version "23.1" ;; No Gnus
:initialize 'custom-initialize-default
:set 'message-tool-bar-update
:group 'message)
See `gmm-tool-bar-from-list' for details on the format of the list."
:type '(repeat gmm-tool-bar-item)
- :version "23.0" ;; No Gnus
+ :version "23.1" ;; No Gnus
:initialize 'custom-initialize-default
:set 'message-tool-bar-update
:group 'message)
See `gmm-tool-bar-from-list' for details on the format of the list."
:type '(repeat gmm-tool-bar-item)
- :version "23.0" ;; No Gnus
+ :version "23.1" ;; No Gnus
:initialize 'custom-initialize-default
:set 'message-tool-bar-update
:group 'message)
See `gmm-tool-bar-from-list' for the format of the list."
:type 'gmm-tool-bar-zap-list
- :version "23.0" ;; No Gnus
+ :version "23.1" ;; No Gnus
:initialize 'custom-initialize-default
:set 'message-tool-bar-update
:group 'message)
(repeat :inline t
:tag "Function"
function)))
- :version "23.0" ;; No Gnus
+ :version "23.1" ;; No Gnus
:group 'mime-display)
(defcustom mm-uu-tex-groups-regexp "\\.tex\\>"
"*Regexp matching TeX groups."
- :version "23.0"
+ :version "23.1"
:type 'regexp
:group 'gnus-article-mime)
`mm-uu-extract' isn't distinguishable to the face `default'."
:type '(choice (const :tag "Hide" t)
(const :tag "Don't hide" nil))
- :version "23.0" ;; No Gnus
+ :version "23.1" ;; No Gnus
:group 'gnus-article-mime)
(defface mm-uu-extract '(;; Inspired by `gnus-cite-3'
()))
"Face for extracted buffers."
;; See `mm-uu-verbatim-marks-extract'.
- :version "23.0" ;; No Gnus
+ :version "23.1" ;; No Gnus
:group 'gnus-article-mime)
(defun mm-uu-copy-to-buffer (&optional from to properties)
the string \"attachment\" or the string \"inline\". The value t for
SUPERTYPE, SUBTYPE or TYPE matches any of those types. The first
match found will be used."
- :version "23.0" ;; No Gnus
+ :version "23.1" ;; No Gnus
:type (let ((dispositions '(radio :format "DISPOSITION: %v"
:value "attachment"
(const :format "%v " "attachment")
"The default directory where mml will find files.
If not set, `default-directory' will be used."
:type '(choice directory (const :tag "Default" nil))
- :version "23.0" ;; No Gnus
+ :version "23.1" ;; No Gnus
:group 'message)
(defun mml-minibuffer-read-file (prompt)
"Header line matching mailer producing bogus References lines.
See `nnmail-ignore-broken-references'."
:group 'nnmail-prepare
- :version "23.0" ;; No Gnus
+ :version "23.1" ;; No Gnus
:type 'regexp)
(defun nnmail-ignore-broken-references ()
;; Keywords: mail searching
;; Version: 0.5
-;; This file is free software; you can redistribute it and/or modify
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
+;; the Free Software Foundation; either version 3, or (at your option)
;; any later version.
-;; This file is distributed in the hope that it will be useful,
+;; GNU Emacs is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs; see the file COPYING. If not, write to
-;; the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; along with GNU Emacs; see the file COPYING. If not, write to the
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
;; Boston, MA 02110-1301, USA.
;;; Commentary:
;; http://www.emacswiki.org/cgi-bin/wiki/GnusMairix
;;
;; The newest version of nnmairix.el can be found at
-;;
+;;
;; http://www.emacswiki.org/cgi-bin/emacs/nnmairix.el
;; For impatient people, here's the setup in a nutshell:
;; * Support of more back ends (nnmh, nnfolder, nnmbox...)?
;; * Maybe use an active file instead of group parameters?
;; * Use "-a" when updating groups which are not newly created
-
+
;;; Changelog:
;;
;; 02/06/2008 - version 0.5
-;;
+;;
;; * New function: nnmairix-goto-original-article. Uses the
;; registry or the mail file path for determining original group.
-;;
+;;
;; * Deal with empty Xref header
;;
;; * Changed summary mode keybindings since the old ones were
;; 18/11/2007 - version 0.3
;;
;; * Fixed bugs when dealing with nnml and native servers
-;;
+;;
;; * Make variables customizable
;;
;; 10/10/2007 - version 0.2
server will be this prefix plus a random number. You can delete
unused nnmairix groups on the back end using
`nnmairix-purge-old-groups'."
- :version "23.0"
+ :version "23.1"
:type 'string
:group 'nnmairix)
(defcustom nnmairix-mairix-output-buffer "*mairix output*"
"Buffer used for mairix output."
- :version "23.0"
+ :version "23.1"
:type 'string
:group 'nnmairix)
(defcustom nnmairix-customize-query-buffer "*mairix query*"
"Name of the buffer for customizing Mairix queries."
- :version "23.0"
+ :version "23.1"
:type 'string
:group 'nnmairix)
The default is '-F' and '-Q' for making updates faster. You
should call mairix without these options from time to
time (e.g. via cron job)."
- :version "23.0"
+ :version "23.1"
:type '(repeat string)
:group 'nnmairix)
(defcustom nnmairix-mairix-synchronous-update nil
"Set this to t if you want Emacs to wait for mairix updating the database."
- :version "23.0"
+ :version "23.1"
:type 'boolean
:group 'nnmairix)
article numbers which will produce wrong article counts by
Gnus. This option controls whether nnmairix should rename the
files consecutively."
- :version "23.0"
+ :version "23.1"
:type 'boolean
:group 'nnmairix)
which header contents should be inserted into the editable field
when creating a Mairix query based on the current message (can be
nil for disabling this)."
- :version "23.0"
+ :version "23.1"
:type '(repeat (list
(choice :tag "Field"
(const :tag "none" nil)
(lambda () (select-window (get-largest-window)))
"Function for selecting the window for customizing the mairix query.
The default chooses the largest window in the current frame."
- :version "23.0"
+ :version "23.1"
:type 'function
:group 'nnmairix)
;;; === Internal variables
-(defvar nnmairix-group-regexp
+(defconst nnmairix-group-regexp
(format "%s-\\(.*\\)-[0-9]+" nnmairix-group-prefix)
"Regexp for mairix groups on back end.")
-(defvar nnmairix-valid-backends '(nnimap nnml nnmaildir)
- "Back ends (hopefully...) supported by nnmairix.
+(defconst nnmairix-valid-backends '(nnimap nnml nnmaildir)
+ "Backends supported by nnmairix.
Other backends might or might not work.")
(defvar nnmairix-last-server nil
"Current server.")
;;; === Gnus backend functions
-
+
(nnoo-define-basics nnmairix)
(gnus-declare-backend "nnmairix" 'mail 'address)
"request-scan" folder nnmairix-backend-server)
(if fast
t
- (nnmairix-request-group-with-article-number-correction folder qualgroup)))
+ (nnmairix-request-group-with-article-number-correction
+ folder qualgroup)))
((and (= rval 1)
(save-excursion (set-buffer nnmairix-mairix-output-buffer)
(goto-char (point-min))
t)
nil))
-
+
(nnoo-define-skeleton nnmairix)
(gnus-group-set-parameter group 'query query)
(nnmairix-update-and-clear-marks group)))
(error "This is no nnmairix group"))))
-
+
(defun nnmairix-group-toggle-threads-this-group (&optional threads)
"Toggle threads parameter for this group.
(message "Threads deacitavted for group %s" group))
(nnmairix-update-and-clear-marks group))
(error "This is no nnmairix group"))))
-
+
(defun nnmairix-search (query &optional server threads)
"Sends QUERY to nnmairix backend SERVER, using default its search group.
;; registry was not available or did not find article
;; so we search again with mairix in raw mode to get filename
(nnmairix-open-server server)
- (setq rval
- (nnmairix-call-mairix-binary-raw
- (split-string nnmairix-mairix-command)
+ (setq rval
+ (nnmairix-call-mairix-binary-raw
+ (split-string nnmairix-mairix-command)
(list (concat "m:" mid))))
(if (zerop rval)
;; determine original group(s) from filename
allgroups)
(forward-line 1))
(if (> (length allgroups) 1)
- (setq group
- (completing-read
- "Message exists in more than one group. Choose: "
+ (setq group
+ (completing-read
+ "Message exists in more than one group. Choose: "
allgroups nil t))
(setq group (car allgroups))))
- (error "Mairix could not find original article. See buffer %s for details"
+ (error "Mairix could not find original article. See buffer %s for details"
nnmairix-mairix-output-buffer))))
(if group
;; show article in summary buffer
(setq maildirflag (string-match ".+\\..+\\..+" filename))
(when maildirflag
(setq path
- (replace-regexp-in-string
+ (replace-regexp-in-string
".*\\(/cur\\|/new\\|/tmp\\)$" "" path t t 1)))
;; we first check nnml and nnmaildir servers
- (setq
+ (setq
group
(catch 'found
(dolist (cur gnus-opened-servers)
(and maildirflag
(eq (caar cur) 'nnmaildir)))
;; get base path from server
- (if maildirflag
- (setq serverbase (cadr (assoc 'directory (car cur))))
+ (if maildirflag
+ (setq serverbase (cadr (assoc 'directory (car cur))))
(setq serverbase (cadr (assoc 'nnml-directory (car cur))))
(when (not serverbase)
(setq serverbase nnml-directory)))
- (setq serverbase (file-name-as-directory
+ (setq serverbase (file-name-as-directory
(expand-file-name serverbase)))
(when (string-match (concat serverbase "\\(.*\\)") path)
;; looks good - rest of the path should be the group
(setq group (replace-match "/" t t group)))
(dolist (cur gnus-opened-servers)
(when (eq (caar cur) 'nnimap)
- (when (gnus-group-entry
+ (when (gnus-group-entry
(gnus-group-prefixed-name group (car cur)))
- (push
+ (push
(gnus-group-prefixed-name group (car cur))
allgroups))))
(if (> (length allgroups) 1)
- (setq group (completing-read
- "Group %s exists on more than one IMAP server. Choose: "
+ (setq group (completing-read
+ "Group %s exists on more than one IMAP server. Choose: "
allgroups nil t))
(setq group (car allgroups))))
group))
(defun nnmairix-request-group-with-article-number-correction (folder qualgroup)
"Request FOLDER on backend for nnmairix QUALGROUP and article number correction."
(save-excursion
- (nnmairix-call-backend
- "request-group" folder nnmairix-backend-server)
+ (nnmairix-call-backend "request-group" folder nnmairix-backend-server)
(set-buffer nnmairix-mairix-output-buffer)
(goto-char (point-min))
(re-search-forward "^Matched.*messages")
(set-buffer nntp-server-buffer)
(goto-char (point-min))
(nnheader-message 7 "nnmairix: Rewriting headers...")
- (mapcar
- (function
- (lambda (article)
- (when (or (looking-at (number-to-string article))
- (nnheader-find-nov-line article))
- (setq cur (nnheader-parse-nov))
- (when corr
- (setq article (+ (mail-header-number cur) numc))
- (mail-header-set-number cur article))
- (setq xref (mail-header-xref cur))
- (when (and (stringp xref)
- (string-match (format "[ \t]%s:[0-9]+" backendgroup) xref))
- (setq xref (replace-match (format " %s:%d" mairixgroup article) t nil xref))
- (mail-header-set-xref cur xref))
- (set-buffer buf)
- (nnheader-insert-nov cur)
- (set-buffer nntp-server-buffer)
- (when (not (eobp))
- (forward-line 1)))))
+ (mapc
+ (lambda (article)
+ (when (or (looking-at (number-to-string article))
+ (nnheader-find-nov-line article))
+ (setq cur (nnheader-parse-nov))
+ (when corr
+ (setq article (+ (mail-header-number cur) numc))
+ (mail-header-set-number cur article))
+ (setq xref (mail-header-xref cur))
+ (when (and (stringp xref)
+ (string-match (format "[ \t]%s:[0-9]+" backendgroup) xref))
+ (setq xref (replace-match (format " %s:%d" mairixgroup article) t nil xref))
+ (mail-header-set-xref cur xref))
+ (set-buffer buf)
+ (nnheader-insert-nov cur)
+ (set-buffer nntp-server-buffer)
+ (when (not (eobp))
+ (forward-line 1))))
articles)
(nnheader-message 7 "nnmairix: Rewriting headers... done")
(kill-buffer nntp-server-buffer)
(when (gnus-group-jump-to-group group)
(gnus-group-get-new-news-this-group)))
(error "Nnmairix-update-and-clear-marks - Called with non-nnmairix group"))))
-
+
(defun nnmairix-sentinel-mairix-update-finished (proc status)
"Sentinel for mairix update process PROC with STATUS."
(gnus-summary-exit))
(pop-to-buffer gnus-group-buffer)
(gnus-group-jump-to-group group)
- (gnus-summary-read-group group 1 t)
+ (gnus-summary-read-group group 1 t)
(gnus-summary-refer-article mid)
(gnus-summary-limit-to-headers (format "message-id: <%s>" mid))
(gnus-summary-select-article)
(mapcar
(function
(lambda (field)
- (list (caddr field)
+ (list (car (cddr field))
(if (car field)
(nnmairix-replace-illegal-chars
(gnus-fetch-field (car field)))
nil))))
nnmairix-widget-fields-list))))
-
+
(defun nnmairix-widget-search (&optional mvalues)
"Create mairix query interactively using graphical widgets.
(dolist (cur nnmairix-widget-fields-list)
;; See if checkbox is checked
(when (widget-value
- (cadr (assoc (concat "c" (caddr cur)) widgets)))
+ (cadr (assoc (concat "c" (car (cddr cur))) widgets)))
;; create query for the field
(push
(concat
":"
(nnmairix-replace-illegal-chars
(widget-value
- (cadr (assoc (concat "e" (caddr cur)) widgets)))))
+ (cadr (assoc (concat "e" (car (cddr cur))) widgets)))))
query)))
;; Flags
(when (member 'flags nnmairix-widget-other)
(mapc
(function
(lambda (field)
- (setq field (caddr field))
+ (setq field (car (cddr field)))
(setq ret
(nconc
(list
to turn on TLS security after opening the stream). However, if
this is nil, `ssl' is assumed for connexions to port
995 (pop3s)."
- :version "23.0" ;; No Gnus
+ :version "23.1" ;; No Gnus
:group 'pop3
:type '(choice (const :tag "Plain" nil)
(const :tag "SSL/TLS" ssl)
(setq smiley-data-directory (smiley-directory))
(smiley-update-cache))
:initialize 'custom-initialize-default
- :version "23.0" ;; No Gnus
+ :version "23.1" ;; No Gnus
:group 'smiley)
;; For compatibility, honor the variable `smiley-data-directory' if the user
If needed search base, binddn, passwd, etc. for the LDAP host
must be set in `ldap-host-parameters-alist'."
:type '(repeat (string :tag "Host name"))
- :version "23.0" ;; No Gnus
+ :version "23.1" ;; No Gnus
:group 'smime)
(defvar smime-details-buffer "*OpenSSL output*")
This is initialized based on `user-mail-address'."
:type '(choice string
(const :tag "Don't expose address" nil))
- :version "23.0" ;; No Gnus
+ :version "23.1" ;; No Gnus
:group 'spam-report)
(defvar spam-report-user-agent
:type '(choice (const :tag "Always" t)
(const :tag "Never" nil)
(const :tag "Ask" ask))
- :version "23.0" ;; No Gnus
+ :version "23.1" ;; No Gnus
:group 'tls)
(defcustom tls-untrusted
\"openssl s_client\" return in the event of unsuccessful
verification."
:type 'regexp
- :version "23.0" ;; No Gnus
+ :version "23.1" ;; No Gnus
:group 'tls)
(defcustom tls-hostmismatch
warning to this effect. There is no such feature in openssl. Set
this to nil if you want to ignore host name mismatches."
:type 'regexp
- :version "23.0" ;; No Gnus
+ :version "23.1" ;; No Gnus
:group 'tls)
(defcustom tls-certtool-program (executable-find "certtool")