# HG changeset patch # User Katsumi Yamaoka # Date 1285628867 0 # Node ID 84a76c5e1b1cda4f506b629077b67bdf1b183c79 # Parent ced897c0b9f0781687ef6c45000c5cb288765dab Merge changes made in Gnus trunk. sieve-manage.el (sieve-manage-default-stream): Make default stream customizable. nnimap.el (nnimap-request-accept-article): Send a "." at the end, which may or may not help. nnimap.el (nnimap-open-connection): Have the `network' nnimap connection use STARTTLS opportunistically. gnus-sum.el (gnus-summary-insert-new-articles): Copy the old-high watermark so that nothing alters it while scanning for new messages. nnimap.el (nnimap-request-accept-article): Remove the "." at the end, since some servers don't like it. nnimap.el (nnimap-open-connection): Forget credentials if the server says the password was wrong. nnimap.el (nnimap-parse-line): Protect against invalid data. gnus-art.el, gnus-sum.el, nnimap.el: Allow setting the partial fetch per server instead of globally. message.el (message-cite-prefix-regexp): Revert last edit. nnmairix.el: Make it work with latest changes in nnimap. gnus-sum.el (gnus-summary-move-article): Don't alter gnus-newsgroup-active. gnus-sum.el (gnus-summary-exit): Kill the article buffer later, so that you don't get flashes of other buffers. nnimap.el: Fix up partial nnimap fetching. gnus-sum.el: Rework the `/ N' based on the new gnus-newsgroup-highest variable. diff -r ced897c0b9f0 -r 84a76c5e1b1c lisp/gnus/ChangeLog --- a/lisp/gnus/ChangeLog Mon Sep 27 22:53:35 2010 +0200 +++ b/lisp/gnus/ChangeLog Mon Sep 27 23:07:47 2010 +0000 @@ -1,3 +1,62 @@ +2010-09-27 Lars Magne Ingebrigtsen + + * gnus-sum.el (gnus-summary-read-group-1): Set gnus-newsgroup-highest. + (gnus-summary-insert-new-articles): Use gnus-newsgroup-highest to get + new articles. + + * nnimap.el (nnimap-request-article): Don't partial-fetch single-part + parts. + (nnimap-request-article): Work with the t setting, too. + + * gnus-sum.el (gnus-summary-exit): Kill the article buffer later, so + that you don't get flashes of other buffers. + (gnus-summary-show-complete-article): Intern before setting. + +2010-09-27 David Engster + + * nnmairix.el: (nnmairix-replace-group-and-numbers): Deal with NOV as + well as HEADERS. + (nnmairix-retrieve-headers): Provide new argument for the above. + +2010-09-27 Lars Magne Ingebrigtsen + + * gnus-sum.el (gnus-summary-move-article): Don't alter + gnus-newsgroup-active. This makes `/ N' work after copying to the same + group. + + * nnimap.el (nnimap-update-info): Don't destructively alter active. + + * message.el (message-cite-prefix-regexp): Revert my last edit. + + * gnus-sum.el (gnus-summary-show-complete-article): Bind the server + variable instead of the Gnus variable. + + * nnimap.el (nnimap-find-wanted-parts-1): Use it. + + * gnus-art.el (gnus-fetch-partial-articles): Moved back to nnimap + again. + + * nnimap.el (nnimap-request-accept-article): Remove the "." at the end, + since some servers don't like it. + (nnimap-open-connection): Forget credentials if the server says the + password was wrong. + (nnimap-parse-line): Protect against invalid data. + + * gnus-sum.el (gnus-summary-move-article): Add comment. + (gnus-summary-insert-new-articles): Copy the old-high watermark so that + nothing alters it while scanning for new messages. + + * nnimap.el (nnimap-request-accept-article): Send a "." at the end, + which may or may not help. + (nnimap-open-connection): If we're doing a stream connection, and then + discover we're on a STARTTLS-capable server, then open a STARTTLS + connection instead. + +2010-09-27 Florian Ragwitz (tiny change) + + * sieve-manage.el (sieve-manage-default-stream): Make default stream + customizable. + 2010-09-27 Lars Magne Ingebrigtsen * nnimap.el (utf7): Required. @@ -18,7 +77,7 @@ * gnus-art.el (gnus-mime-delete-part): Fix Lisp type of byte(s). -2010-09-26 Florian Ragwitz +2010-09-26 Florian Ragwitz (tiny change) * gnus-html.el (gnus-html-wash-tags): Decode URL entities to avoid handing broken links to browse-url. diff -r ced897c0b9f0 -r 84a76c5e1b1c lisp/gnus/gnus-art.el --- a/lisp/gnus/gnus-art.el Mon Sep 27 22:53:35 2010 +0200 +++ b/lisp/gnus/gnus-art.el Mon Sep 27 23:07:47 2010 +0000 @@ -257,22 +257,6 @@ (regexp :value ".*")) :group 'gnus-article-signature) -(defcustom gnus-fetch-partial-articles nil - "If non-nil, Gnus will fetch partial articles. -If t, nnimap will fetch only the first part. If a string, it -will fetch all parts that have types that match that string. A -likely value would be \"text/\" to automatically fetch all -textual parts. - -Currently only the nnimap backend actually supports partial -article fetching. If the backend doesn't support it, it has no -effect." - :version "24.1" - :type '(choice (const nil) - (const t) - (regexp)) - :group 'gnus-article) - (defcustom gnus-hidden-properties '(invisible t intangible t) "Property list to use for hiding text." :type 'sexp diff -r ced897c0b9f0 -r 84a76c5e1b1c lisp/gnus/gnus-sum.el --- a/lisp/gnus/gnus-sum.el Mon Sep 27 22:53:35 2010 +0200 +++ b/lisp/gnus/gnus-sum.el Mon Sep 27 23:07:47 2010 +0000 @@ -1431,6 +1431,7 @@ (defvar gnus-newsgroup-last-directory nil) (defvar gnus-newsgroup-auto-expire nil) (defvar gnus-newsgroup-active nil) +(defvar gnus-newsgroup-highest nil) (defvar gnus-newsgroup-data nil) (defvar gnus-newsgroup-data-reverse nil) @@ -1582,6 +1583,7 @@ (gnus-summary-mark-below . global) (gnus-orphan-score . global) gnus-newsgroup-active gnus-scores-exclude-files + gnus-newsgroup-highest gnus-newsgroup-history gnus-newsgroup-ancient gnus-newsgroup-sparse gnus-newsgroup-process-stack (gnus-newsgroup-adaptive . gnus-use-adaptive-scoring) @@ -3957,6 +3959,7 @@ (setq gnus-newsgroup-active (gnus-copy-sequence (gnus-active gnus-newsgroup-name))) + (setq gnus-newsgroup-highest (cdr gnus-newsgroup-active)) ;; You can change the summary buffer in some way with this hook. (gnus-run-hooks 'gnus-select-group-hook) (when (memq 'summary (gnus-update-format-specifications @@ -7090,15 +7093,6 @@ (when gnus-use-scoring (gnus-score-save))) (gnus-run-hooks 'gnus-summary-prepare-exit-hook) - ;; If we have several article buffers, we kill them at exit. - (unless gnus-single-article-buffer - (when (gnus-buffer-live-p gnus-article-buffer) - (with-current-buffer gnus-article-buffer - ;; Don't kill sticky article buffers - (unless (eq major-mode 'gnus-sticky-article-mode) - (gnus-kill-buffer gnus-article-buffer) - (setq gnus-article-current nil)))) - (gnus-kill-buffer gnus-original-article-buffer)) (when gnus-use-cache (gnus-cache-possibly-remove-articles) (gnus-cache-save-buffers)) @@ -7147,6 +7141,17 @@ ;; Return to group mode buffer. (when (eq mode 'gnus-summary-mode) (gnus-kill-buffer buf))) + + ;; If we have several article buffers, we kill them at exit. + (unless gnus-single-article-buffer + (when (gnus-buffer-live-p gnus-article-buffer) + (with-current-buffer gnus-article-buffer + ;; Don't kill sticky article buffers + (unless (eq major-mode 'gnus-sticky-article-mode) + (gnus-kill-buffer gnus-article-buffer) + (setq gnus-article-current nil)))) + (gnus-kill-buffer gnus-original-article-buffer)) + (setq gnus-current-select-method gnus-select-method) (set-buffer gnus-group-buffer) (if quit-config @@ -9360,9 +9365,19 @@ (let ((gnus-keep-backlog nil) (gnus-use-cache nil) (gnus-agent nil) - (gnus-fetch-partial-articles nil)) - (gnus-flush-original-article-buffer) - (gnus-summary-show-article))) + (variable (intern + (format "%s-fetch-partial-articles" + (car (gnus-find-method-for-group + gnus-newsgroup-name))) + obarray)) + old-val) + (unwind-protect + (progn + (setq old-val (symbol-value variable)) + (set variable nil) + (gnus-flush-original-article-buffer) + (gnus-summary-show-article)) + (set variable old-val)))) (defun gnus-summary-show-article (&optional arg) "Force redisplaying of the current article. @@ -9797,8 +9812,9 @@ (not (memq article gnus-newsgroup-unreads))) ;; Mark this article as read in this group. (push (cons to-article gnus-read-mark) gnus-newsgroup-reads) + ;; Increase the active status of this group. (setcdr (gnus-active to-group) to-article) - (setcdr gnus-newsgroup-active to-article)) + (setcdr gnus-newsgroup-active to-article)) (while marks (when (eq (gnus-article-mark-to-type (cdar marks)) 'list) @@ -12624,13 +12640,15 @@ (interactive) (prog1 (let ((old (sort (mapcar 'car gnus-newsgroup-data) '<)) - (old-active gnus-newsgroup-active) + (old-high gnus-newsgroup-highest) (nnmail-fetched-sources (list t)) i new) (setq gnus-newsgroup-active - (gnus-activate-group gnus-newsgroup-name 'scan)) - (setq i (cdr gnus-newsgroup-active)) - (while (> i (cdr old-active)) + (gnus-copy-sequence + (gnus-activate-group gnus-newsgroup-name 'scan))) + (setq i (cdr gnus-newsgroup-active) + gnus-newsgroup-highest i) + (while (> i old-high) (push i new) (decf i)) (if (not new) diff -r ced897c0b9f0 -r 84a76c5e1b1c lisp/gnus/nnimap.el --- a/lisp/gnus/nnimap.el Mon Sep 27 22:53:35 2010 +0200 +++ b/lisp/gnus/nnimap.el Mon Sep 27 23:07:47 2010 +0000 @@ -85,6 +85,13 @@ (defvoo nnimap-current-infos nil) +(defvoo nnimap-fetch-partial-articles nil + "If non-nil, Gnus will fetch partial articles. +If t, nnimap will fetch only the first part. If a string, it +will fetch all parts that have types that match that string. A +likely value would be \"text/\" to automatically fetch all +textual parts.") + (defvar nnimap-process nil) (defvar nnimap-status-string "") @@ -271,91 +278,110 @@ (unless nnimap-keepalive-timer (setq nnimap-keepalive-timer (run-at-time (* 60 15) (* 60 15) 'nnimap-keepalive))) - (with-current-buffer (nnimap-make-process-buffer buffer) - (let* ((coding-system-for-read 'binary) - (coding-system-for-write 'binary) - (port nil) - (ports - (cond - ((eq nnimap-stream 'network) - (open-network-stream - "*nnimap*" (current-buffer) nnimap-address - (setq port - (or nnimap-server-port - (if (netrc-find-service-number "imap") - "imap" - "143")))) - '("143" "imap")) - ((eq nnimap-stream 'shell) - (nnimap-open-shell-stream - "*nnimap*" (current-buffer) nnimap-address - (setq port (or nnimap-server-port "imap"))) - '("imap")) - ((eq nnimap-stream 'starttls) - (starttls-open-stream - "*nnimap*" (current-buffer) nnimap-address - (setq port (or nnimap-server-port "imap"))) - '("imap")) - ((eq nnimap-stream 'ssl) - (open-tls-stream - "*nnimap*" (current-buffer) nnimap-address - (setq port - (or nnimap-server-port - (if (netrc-find-service-number "imaps") - "imaps" - "993")))) - '("143" "993" "imap" "imaps")))) - connection-result login-result credentials) - (setf (nnimap-process nnimap-object) - (get-buffer-process (current-buffer))) - (if (not (and (nnimap-process nnimap-object) - (memq (process-status (nnimap-process nnimap-object)) - '(open run)))) - (nnheader-report 'nnimap "Unable to contact %s:%s via %s" - nnimap-address port nnimap-stream) - (gnus-set-process-query-on-exit-flag (nnimap-process nnimap-object) nil) - (if (not (setq connection-result (nnimap-wait-for-connection))) - (nnheader-report 'nnimap - "%s" (buffer-substring - (point) (line-end-position))) - (setf (nnimap-greeting nnimap-object) - (buffer-substring (line-beginning-position) - (line-end-position))) - (when (eq nnimap-stream 'starttls) - (nnimap-command "STARTTLS") - (starttls-negotiate (nnimap-process nnimap-object))) - (when nnimap-server-port - (push (format "%s" nnimap-server-port) ports)) - (unless (equal connection-result "PREAUTH") - (if (not (setq credentials - (if (eq nnimap-authenticator 'anonymous) - (list "anonymous" - (message-make-address)) - (or - ;; First look for the credentials based - ;; on the virtual server name. - (nnimap-credentials - (nnoo-current-server 'nnimap) ports t) - ;; Then look them up based on the - ;; physical address. - (nnimap-credentials nnimap-address ports))))) - (setq nnimap-object nil) - (setq login-result (nnimap-command "LOGIN %S %S" - (car credentials) - (cadr credentials))) - (unless (car login-result) - (delete-process (nnimap-process nnimap-object)) - (setq nnimap-object nil)))) - (when nnimap-object + (block nil + (with-current-buffer (nnimap-make-process-buffer buffer) + (let* ((coding-system-for-read 'binary) + (coding-system-for-write 'binary) + (port nil) + (ports + (cond + ((eq nnimap-stream 'network) + (open-network-stream + "*nnimap*" (current-buffer) nnimap-address + (setq port + (or nnimap-server-port + (if (netrc-find-service-number "imap") + "imap" + "143")))) + '("143" "imap")) + ((eq nnimap-stream 'shell) + (nnimap-open-shell-stream + "*nnimap*" (current-buffer) nnimap-address + (setq port (or nnimap-server-port "imap"))) + '("imap")) + ((eq nnimap-stream 'starttls) + (starttls-open-stream + "*nnimap*" (current-buffer) nnimap-address + (setq port (or nnimap-server-port "imap"))) + '("imap")) + ((eq nnimap-stream 'ssl) + (open-tls-stream + "*nnimap*" (current-buffer) nnimap-address + (setq port + (or nnimap-server-port + (if (netrc-find-service-number "imaps") + "imaps" + "993")))) + '("143" "993" "imap" "imaps")))) + connection-result login-result credentials) + (setf (nnimap-process nnimap-object) + (get-buffer-process (current-buffer))) + (if (not (and (nnimap-process nnimap-object) + (memq (process-status (nnimap-process nnimap-object)) + '(open run)))) + (nnheader-report 'nnimap "Unable to contact %s:%s via %s" + nnimap-address port nnimap-stream) + (gnus-set-process-query-on-exit-flag (nnimap-process nnimap-object) nil) + (if (not (setq connection-result (nnimap-wait-for-connection))) + (nnheader-report 'nnimap + "%s" (buffer-substring + (point) (line-end-position))) + ;; Store the greeting (for debugging purposes). + (setf (nnimap-greeting nnimap-object) + (buffer-substring (line-beginning-position) + (line-end-position))) + ;; Store the capabilities. (setf (nnimap-capabilities nnimap-object) (mapcar #'upcase - (or (nnimap-find-parameter "CAPABILITY" (cdr login-result)) - (nnimap-find-parameter - "CAPABILITY" (cdr (nnimap-command "CAPABILITY")))))) - (when (member "QRESYNC" (nnimap-capabilities nnimap-object)) - (nnimap-command "ENABLE QRESYNC")) - t)))))) + (nnimap-find-parameter + "CAPABILITY" (cdr (nnimap-command "CAPABILITY"))))) + (when (eq nnimap-stream 'starttls) + (nnimap-command "STARTTLS") + (starttls-negotiate (nnimap-process nnimap-object))) + ;; If this is a STARTTLS-capable server, then sever the + ;; connection and start a STARTTLS connection instead. + (when (and (eq nnimap-stream 'network) + (member "STARTTLS" (nnimap-capabilities nnimap-object))) + (let ((nnimap-stream 'starttls)) + (delete-process (nnimap-process nnimap-object)) + (kill-buffer (current-buffer)) + (return + (nnimap-open-connection buffer)))) + (when nnimap-server-port + (push (format "%s" nnimap-server-port) ports)) + (unless (equal connection-result "PREAUTH") + (if (not (setq credentials + (if (eq nnimap-authenticator 'anonymous) + (list "anonymous" + (message-make-address)) + (or + ;; First look for the credentials based + ;; on the virtual server name. + (nnimap-credentials + (nnoo-current-server 'nnimap) ports t) + ;; Then look them up based on the + ;; physical address. + (nnimap-credentials nnimap-address ports))))) + (setq nnimap-object nil) + (setq login-result (nnimap-command "LOGIN %S %S" + (car credentials) + (cadr credentials))) + (unless (car login-result) + ;; If the login failed, then forget the credentials + ;; that are now possibly cached. + (dolist (host (list (nnoo-current-server 'nnimap) + nnimap-address)) + (dolist (port ports) + (dolist (element '("login" "password")) + (auth-source-forget-user-or-password + element host port)))) + (delete-process (nnimap-process nnimap-object)) + (setq nnimap-object nil)))) + (when nnimap-object + (when (member "QRESYNC" (nnimap-capabilities nnimap-object)) + (nnimap-command "ENABLE QRESYNC")) + t))))))) (defun nnimap-find-parameter (parameter elems) (let (result) @@ -395,14 +421,12 @@ (erase-buffer) (with-current-buffer (nnimap-buffer) (erase-buffer) - (when gnus-fetch-partial-articles - (if (eq gnus-fetch-partial-articles t) - (setq parts '(1)) - (nnimap-command "UID FETCH %d (BODYSTRUCTURE)" article) - (goto-char (point-min)) - (when (re-search-forward "FETCH.*BODYSTRUCTURE" nil t) - (setq structure (ignore-errors (read (current-buffer))) - parts (nnimap-find-wanted-parts structure))))) + (when nnimap-fetch-partial-articles + (nnimap-command "UID FETCH %d (BODYSTRUCTURE)" article) + (goto-char (point-min)) + (when (re-search-forward "FETCH.*BODYSTRUCTURE" nil t) + (setq structure (ignore-errors (read (current-buffer))) + parts (nnimap-find-wanted-parts structure)))) (when (if parts (nnimap-get-partial-article article parts structure) (nnimap-get-whole-article article)) @@ -525,7 +549,9 @@ (number-to-string num) (format "%s.%s" prefix num)))) (setcar (nthcdr 9 sub) id) - (when (string-match gnus-fetch-partial-articles type) + (when (if (eq nnimap-fetch-partial-articles t) + (equal id "1") + (string-match nnimap-fetch-partial-articles type)) (push id parts)))) (incf num))) (nreverse parts))) @@ -941,7 +967,10 @@ (t ;; No articles and no uidnext. nil))) - (setcdr (gnus-active group) (or high (1- uidnext)))) + (gnus-set-active + group + (cons (car (gnus-active group)) + (or high (1- uidnext))))) (when (and (not high) uidnext) (setq high (1- uidnext))) @@ -1193,13 +1222,18 @@ (cond ((eql char ?\[) (split-string (buffer-substring - (1+ (point)) (1- (search-forward "]"))))) + (1+ (point)) + (1- (search-forward "]" (line-end-position) 'move))))) ((eql char ?\() (split-string (buffer-substring - (1+ (point)) (1- (search-forward ")"))))) + (1+ (point)) + (1- (search-forward ")" (line-end-position) 'move))))) ((eql char ?\") (forward-char 1) - (buffer-substring (point) (1- (search-forward "\"")))) + (buffer-substring + (point) + (1- (or (search-forward "\"" (line-end-position) 'move) + (point))))) (t (buffer-substring (point) (if (search-forward " " nil t) (1- (point)) diff -r ced897c0b9f0 -r 84a76c5e1b1c lisp/gnus/nnmairix.el --- a/lisp/gnus/nnmairix.el Mon Sep 27 22:53:35 2010 +0200 +++ b/lisp/gnus/nnmairix.el Mon Sep 27 23:07:47 2010 +0000 @@ -562,9 +562,8 @@ "retrieve-headers" articles folder nnmairix-backend-server fetch-old)) (nnmairix-call-backend "retrieve-headers" articles folder nnmairix-backend-server fetch-old))) - (when (eq rval 'nov) - (nnmairix-replace-group-and-numbers articles folder group numcorr) - rval))) + (nnmairix-replace-group-and-numbers articles folder group numcorr rval) + rval)) (deffoo nnmairix-request-article (article &optional group server to-buffer) (when server (nnmairix-open-server server)) @@ -1413,43 +1412,55 @@ (setq cur lastplusone)) (setq lastplusone (1+ cur))))) -(defun nnmairix-replace-group-and-numbers (articles backendgroup mairixgroup numc) +(defun nnmairix-replace-group-and-numbers (articles backendgroup mairixgroup numc type) "Replace folder names in Xref header and correct article numbers. Do this for all ARTICLES on BACKENDGROUP. Replace using -MAIRIXGROUP. NUMC contains values for article number correction." - (let ((buf (get-buffer-create " *nnmairix buffer*")) - (corr (not (zerop numc))) - (name (buffer-name nntp-server-buffer)) - header cur xref) - (with-current-buffer buf - (erase-buffer) - (set-buffer nntp-server-buffer) - (goto-char (point-min)) - (nnheader-message 7 "nnmairix: Rewriting headers...") - (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) - (set-buffer buf) - (rename-buffer name) - (setq nntp-server-buffer buf)))) +MAIRIXGROUP. NUMC contains values for article number correction. +TYPE is either 'nov or 'headers." + (nnheader-message 7 "nnmairix: Rewriting headers...") + (cond + ((eq type 'nov) + (let ((buf (get-buffer-create " *nnmairix buffer*")) + (corr (not (zerop numc))) + (name (buffer-name nntp-server-buffer)) + header cur xref) + (with-current-buffer buf + (erase-buffer) + (set-buffer nntp-server-buffer) + (goto-char (point-min)) + (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) + (kill-buffer nntp-server-buffer) + (set-buffer buf) + (rename-buffer name) + (setq nntp-server-buffer buf)))) + ((and (eq type 'headers) + (not (zerop numc))) + (with-current-buffer nntp-server-buffer + (save-excursion + (goto-char (point-min)) + (while (re-search-forward "^[23][0-9]+ \\([0-9]+\\)" nil t) + (replace-match (number-to-string + (+ (string-to-number (match-string 1)) numc)) + t t nil 1)))))) + (nnheader-message 7 "nnmairix: Rewriting headers... done")) (defun nnmairix-backend-to-server (server) "Return nnmairix server most probably responsible for back end SERVER. diff -r ced897c0b9f0 -r 84a76c5e1b1c lisp/gnus/sieve-manage.el --- a/lisp/gnus/sieve-manage.el Mon Sep 27 22:53:35 2010 +0200 +++ b/lisp/gnus/sieve-manage.el Mon Sep 27 23:07:47 2010 +0000 @@ -162,6 +162,12 @@ :type 'integer :group 'sieve-manage) +(defcustom sieve-manage-default-stream 'network + "Default stream type to use for `sieve-manage'. +Must be a name of a stream in `sieve-manage-stream-alist'." + :type 'symbol + :group 'sieve-manage) + ;; Internal variables: (defconst sieve-manage-local-variables '(sieve-manage-server @@ -174,7 +180,6 @@ sieve-manage-client-eol sieve-manage-server-eol sieve-manage-capability)) -(defconst sieve-manage-default-stream 'network) (defconst sieve-manage-coding-system-for-read 'binary) (defconst sieve-manage-coding-system-for-write 'binary) (defvar sieve-manage-stream nil)