diff options
| author | Gnus developers | 2011-03-30 14:59:42 +0000 |
|---|---|---|
| committer | Katsumi Yamaoka | 2011-03-30 14:59:42 +0000 |
| commit | a5954fa5c84101c99857ea65196ef9050138119f (patch) | |
| tree | 269698f118526c4bdcd123d379cc31ab03a111b4 /lisp | |
| parent | 888adce96c1a551c975718bd8ad540525b1f408c (diff) | |
| download | emacs-a5954fa5c84101c99857ea65196ef9050138119f.tar.gz emacs-a5954fa5c84101c99857ea65196ef9050138119f.zip | |
Merge Gnus' changes.
gnus.texi (Listing Groups): Document gnus-group-list-ticked.
gssapi.el (open-gssapi-stream): Remove the last mentions of the IMAP stuff.
gnus-score.el (gnus-score-string): Fix calling convention of `gnus-simplify-buffer-fuzzy' after last patches.
gnus-sum.el (gnus-update-marks): Don't send any marks updates to the server for articles we didn't get any headers for. This is a sanity check.
nnimap.el (nnimap-open-connection-1): Is the login responds with a new CAPABILITY, use it.
gnus-agent.el (gnus-agent-fetch-headers): Don't message if we're not downloading anything.
gnus.el (gnus-splash-svg-color-symbols): Removed superfluous `and'.
gnus.el (gnus-group-startup-message): Prefer svg file and replace colors.
(gnus-splash-svg-color-symbols): New function.
gnus-sum.el (gnus-simplify-buffer-fuzzy): Take the regexp explicitly instead of using the global gnus-simplify-subject-fuzzy-regexp.
(gnus-simplify-subject-fuzzy): Use the local gnus-simplify-subject-fuzzy-regex instead of the global one. This makes using this variable in group parameters work.
gnus-registry.el (gnus-registry-unfollowed-groups): Add "archive:sent" to the unfollowed group regex (for the recent Gnus archive:sent-YYYY-MM-DD groups).
(gnus-registry-split-fancy-with-parent): Bail out early in sender tracking if there are more than `gnus-registry-max-track-groups' matches.
message.el (message--yank-original-internal): New function to do the insertion cleanly inside eval in `message-yank-original'.
(message-yank-original): Use it.
Diffstat (limited to 'lisp')
| -rw-r--r-- | lisp/gnus/ChangeLog | 53 | ||||
| -rw-r--r-- | lisp/gnus/gnus-agent.el | 7 | ||||
| -rw-r--r-- | lisp/gnus/gnus-registry.el | 40 | ||||
| -rw-r--r-- | lisp/gnus/gnus-score.el | 2 | ||||
| -rw-r--r-- | lisp/gnus/gnus-sum.el | 49 | ||||
| -rw-r--r-- | lisp/gnus/gnus.el | 25 | ||||
| -rw-r--r-- | lisp/gnus/gssapi.el | 14 | ||||
| -rw-r--r-- | lisp/gnus/message.el | 33 | ||||
| -rw-r--r-- | lisp/gnus/nnimap.el | 15 |
9 files changed, 165 insertions, 73 deletions
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index f6b7db61d96..51169f7b9df 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog | |||
| @@ -15,6 +15,59 @@ | |||
| 15 | nntp-open-plain-stream value. | 15 | nntp-open-plain-stream value. |
| 16 | (nntp-open-connection): Recognize that value. | 16 | (nntp-open-connection): Recognize that value. |
| 17 | 17 | ||
| 18 | 2011-03-29 Lars Magne Ingebrigtsen <larsi@gnus.org> | ||
| 19 | |||
| 20 | * gssapi.el (open-gssapi-stream): Remove the last mentions of the IMAP | ||
| 21 | stuff. | ||
| 22 | |||
| 23 | * gnus-score.el (gnus-score-string): Fix calling convention of | ||
| 24 | `gnus-simplify-buffer-fuzzy' after last patches. | ||
| 25 | |||
| 26 | * gnus-sum.el (gnus-update-marks): Don't send any marks updates to the | ||
| 27 | server for articles we didn't get any headers for. This is a sanity | ||
| 28 | check. | ||
| 29 | |||
| 30 | 2011-03-29 Michael Welsh Duggan <md5i@md5i.com> | ||
| 31 | |||
| 32 | * nnimap.el (nnimap-open-connection-1): Is the login responds with a | ||
| 33 | new CAPABILITY, use it. | ||
| 34 | |||
| 35 | 2011-03-29 Lars Magne Ingebrigtsen <larsi@gnus.org> | ||
| 36 | |||
| 37 | * gnus-agent.el (gnus-agent-fetch-headers): Don't message if we're not | ||
| 38 | downloading anything. | ||
| 39 | |||
| 40 | * gnus.el (gnus-splash-svg-color-symbols): Removed superfluous `and'. | ||
| 41 | |||
| 42 | 2011-03-29 Adam Sjøgren <asjo@koldfront.dk> | ||
| 43 | |||
| 44 | * gnus.el (gnus-group-startup-message): Prefer svg file and replace | ||
| 45 | colors. | ||
| 46 | (gnus-splash-svg-color-symbols): New function. | ||
| 47 | |||
| 48 | 2011-03-29 Lars Magne Ingebrigtsen <larsi@gnus.org> | ||
| 49 | |||
| 50 | * gnus-sum.el (gnus-simplify-buffer-fuzzy): Take the regexp explicitly | ||
| 51 | instead of using the global gnus-simplify-subject-fuzzy-regexp. | ||
| 52 | (gnus-simplify-subject-fuzzy): Use the local | ||
| 53 | gnus-simplify-subject-fuzzy-regex instead of the global one. This | ||
| 54 | makes using this variable in group parameters work. | ||
| 55 | |||
| 56 | 2011-03-29 Teodor Zlatanov <tzz@lifelogs.com> | ||
| 57 | |||
| 58 | * gnus-registry.el (gnus-registry-unfollowed-groups): Add | ||
| 59 | "archive:sent" to the unfollowed group regex (for the recent Gnus | ||
| 60 | archive:sent-YYYY-MM-DD groups). | ||
| 61 | (gnus-registry-split-fancy-with-parent): Bail out early in sender | ||
| 62 | tracking if there are more than `gnus-registry-max-track-groups' | ||
| 63 | matches. | ||
| 64 | |||
| 65 | 2011-03-29 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 66 | |||
| 67 | * message.el (message--yank-original-internal): New function to do the | ||
| 68 | insertion cleanly inside eval in `message-yank-original'. | ||
| 69 | (message-yank-original): Use it. | ||
| 70 | |||
| 18 | 2011-03-29 Julien Danjou <julien@danjou.info> | 71 | 2011-03-29 Julien Danjou <julien@danjou.info> |
| 19 | 72 | ||
| 20 | * mm-view.el (mm-display-inline-fontify): Use `set-normal-mode' with | 73 | * mm-view.el (mm-display-inline-fontify): Use `set-normal-mode' with |
diff --git a/lisp/gnus/gnus-agent.el b/lisp/gnus/gnus-agent.el index 989488c0995..52fbe9da11f 100644 --- a/lisp/gnus/gnus-agent.el +++ b/lisp/gnus/gnus-agent.el | |||
| @@ -1925,9 +1925,10 @@ article numbers will be returned." | |||
| 1925 | (setq articles (gnus-list-range-intersection | 1925 | (setq articles (gnus-list-range-intersection |
| 1926 | articles (list (cons low high))))))) | 1926 | articles (list (cons low high))))))) |
| 1927 | 1927 | ||
| 1928 | (gnus-message | 1928 | (when articles |
| 1929 | 10 "gnus-agent-fetch-headers: undownloaded articles are '%s'" | 1929 | (gnus-message |
| 1930 | (gnus-compress-sequence articles t)) | 1930 | 10 "gnus-agent-fetch-headers: undownloaded articles are '%s'" |
| 1931 | (gnus-compress-sequence articles t))) | ||
| 1931 | 1932 | ||
| 1932 | (with-current-buffer nntp-server-buffer | 1933 | (with-current-buffer nntp-server-buffer |
| 1933 | (if articles | 1934 | (if articles |
diff --git a/lisp/gnus/gnus-registry.el b/lisp/gnus/gnus-registry.el index cef173ce1ec..db3cc06e9aa 100644 --- a/lisp/gnus/gnus-registry.el +++ b/lisp/gnus/gnus-registry.el | |||
| @@ -124,7 +124,7 @@ display." | |||
| 124 | :type 'symbol) | 124 | :type 'symbol) |
| 125 | 125 | ||
| 126 | (defcustom gnus-registry-unfollowed-groups | 126 | (defcustom gnus-registry-unfollowed-groups |
| 127 | '("delayed$" "drafts$" "queue$" "INBOX$" "^nnmairix:") | 127 | '("delayed$" "drafts$" "queue$" "INBOX$" "^nnmairix:" "archive") |
| 128 | "List of groups that gnus-registry-split-fancy-with-parent won't return. | 128 | "List of groups that gnus-registry-split-fancy-with-parent won't return. |
| 129 | The group names are matched, they don't have to be fully | 129 | The group names are matched, they don't have to be fully |
| 130 | qualified. This parameter tells the Registry 'never split a | 130 | qualified. This parameter tells the Registry 'never split a |
| @@ -541,24 +541,26 @@ See the Info node `(gnus)Fancy Mail Splitting' for more details." | |||
| 541 | user-mail-address))) | 541 | user-mail-address))) |
| 542 | (maphash | 542 | (maphash |
| 543 | (lambda (key value) | 543 | (lambda (key value) |
| 544 | (let ((this-sender (cdr | 544 | ;; don't use more than gnus-registry-max-track-groups |
| 545 | (gnus-registry-fetch-extra key 'sender))) | 545 | (when (< (length found-full) gnus-registry-max-track-groups) |
| 546 | matches) | 546 | (let ((this-sender |
| 547 | (when (and this-sender | 547 | (cdr (gnus-registry-fetch-extra key 'sender))) |
| 548 | (equal sender this-sender)) | 548 | matches) |
| 549 | (let ((groups (gnus-registry-fetch-groups | 549 | (when (and this-sender |
| 550 | key | 550 | (equal sender this-sender)) |
| 551 | gnus-registry-max-track-groups))) | 551 | (let ((groups (gnus-registry-fetch-groups |
| 552 | (dolist (group groups) | 552 | key |
| 553 | (when (and group (gnus-registry-follow-group-p group)) | 553 | gnus-registry-max-track-groups))) |
| 554 | (push group found-full) | 554 | (dolist (group groups) |
| 555 | (setq found (append (list group) (delete group found)))))) | 555 | (when (and group (gnus-registry-follow-group-p group)) |
| 556 | (push key matches) | 556 | (push group found-full) |
| 557 | (gnus-message | 557 | (setq found (append (list group) (delete group found)))))) |
| 558 | ;; raise level of messaging if gnus-registry-track-extra | 558 | (push key matches) |
| 559 | (if gnus-registry-track-extra 7 9) | 559 | (gnus-message |
| 560 | "%s (extra tracking) traced sender %s to groups %s (keys %s)" | 560 | ;; raise level of messaging if gnus-registry-track-extra |
| 561 | log-agent sender found matches)))) | 561 | (if gnus-registry-track-extra 7 9) |
| 562 | "%s (extra tracking) traced sender %s to groups %s (keys %s)" | ||
| 563 | log-agent sender found matches))))) | ||
| 562 | gnus-registry-hashtb) | 564 | gnus-registry-hashtb) |
| 563 | ;; filter the found groups and return them | 565 | ;; filter the found groups and return them |
| 564 | ;; the found groups are NOT the full groups | 566 | ;; the found groups are NOT the full groups |
diff --git a/lisp/gnus/gnus-score.el b/lisp/gnus/gnus-score.el index e376b7a7b6e..9bbfbfb057e 100644 --- a/lisp/gnus/gnus-score.el +++ b/lisp/gnus/gnus-score.el | |||
| @@ -2151,7 +2151,7 @@ score in `gnus-newsgroup-scored' by SCORE." | |||
| 2151 | ;; Find fuzzy matches. | 2151 | ;; Find fuzzy matches. |
| 2152 | (when fuzzies | 2152 | (when fuzzies |
| 2153 | ;; Simplify the entire buffer for easy matching. | 2153 | ;; Simplify the entire buffer for easy matching. |
| 2154 | (gnus-simplify-buffer-fuzzy) | 2154 | (gnus-simplify-buffer-fuzzy gnus-simplify-subject-fuzzy-regexp) |
| 2155 | (while (setq kill (cadaar fuzzies)) | 2155 | (while (setq kill (cadaar fuzzies)) |
| 2156 | (let* ((match (nth 0 kill)) | 2156 | (let* ((match (nth 0 kill)) |
| 2157 | (type (nth 3 kill)) | 2157 | (type (nth 3 kill)) |
diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el index 9b22bbe39da..91dc6fb9595 100644 --- a/lisp/gnus/gnus-sum.el +++ b/lisp/gnus/gnus-sum.el | |||
| @@ -1734,7 +1734,7 @@ If RE-ONLY is non-nil, strip leading `Re:'s only." | |||
| 1734 | (while (re-search-forward regexp nil t) | 1734 | (while (re-search-forward regexp nil t) |
| 1735 | (replace-match (or newtext "")))) | 1735 | (replace-match (or newtext "")))) |
| 1736 | 1736 | ||
| 1737 | (defun gnus-simplify-buffer-fuzzy () | 1737 | (defun gnus-simplify-buffer-fuzzy (regexp) |
| 1738 | "Simplify string in the buffer fuzzily. | 1738 | "Simplify string in the buffer fuzzily. |
| 1739 | The string in the accessible portion of the current buffer is simplified. | 1739 | The string in the accessible portion of the current buffer is simplified. |
| 1740 | It is assumed to be a single-line subject. | 1740 | It is assumed to be a single-line subject. |
| @@ -1748,11 +1748,10 @@ matter is removed. Additional things can be deleted by setting | |||
| 1748 | (while (not (eq modified-tick (buffer-modified-tick))) | 1748 | (while (not (eq modified-tick (buffer-modified-tick))) |
| 1749 | (setq modified-tick (buffer-modified-tick)) | 1749 | (setq modified-tick (buffer-modified-tick)) |
| 1750 | (cond | 1750 | (cond |
| 1751 | ((listp gnus-simplify-subject-fuzzy-regexp) | 1751 | ((listp regexp) |
| 1752 | (mapc 'gnus-simplify-buffer-fuzzy-step | 1752 | (mapc 'gnus-simplify-buffer-fuzzy-step regexp)) |
| 1753 | gnus-simplify-subject-fuzzy-regexp)) | 1753 | (regexp |
| 1754 | (gnus-simplify-subject-fuzzy-regexp | 1754 | (gnus-simplify-buffer-fuzzy-step regexp))) |
| 1755 | (gnus-simplify-buffer-fuzzy-step gnus-simplify-subject-fuzzy-regexp))) | ||
| 1756 | (gnus-simplify-buffer-fuzzy-step "^ *\\[[-+?*!][-+?*!]\\] *") | 1755 | (gnus-simplify-buffer-fuzzy-step "^ *\\[[-+?*!][-+?*!]\\] *") |
| 1757 | (gnus-simplify-buffer-fuzzy-step | 1756 | (gnus-simplify-buffer-fuzzy-step |
| 1758 | "^ *\\(re\\|fw\\|fwd\\)[[{(^0-9]*[])}]?[:;] *") | 1757 | "^ *\\(re\\|fw\\|fwd\\)[[{(^0-9]*[])}]?[:;] *") |
| @@ -1767,15 +1766,16 @@ matter is removed. Additional things can be deleted by setting | |||
| 1767 | "Simplify a subject string fuzzily. | 1766 | "Simplify a subject string fuzzily. |
| 1768 | See `gnus-simplify-buffer-fuzzy' for details." | 1767 | See `gnus-simplify-buffer-fuzzy' for details." |
| 1769 | (save-excursion | 1768 | (save-excursion |
| 1770 | (gnus-set-work-buffer) | 1769 | (let ((regexp gnus-simplify-subject-fuzzy-regexp)) |
| 1771 | (let ((case-fold-search t)) | 1770 | (gnus-set-work-buffer) |
| 1772 | ;; Remove uninteresting prefixes. | 1771 | (let ((case-fold-search t)) |
| 1773 | (when (and gnus-simplify-ignored-prefixes | 1772 | ;; Remove uninteresting prefixes. |
| 1774 | (string-match gnus-simplify-ignored-prefixes subject)) | 1773 | (when (and gnus-simplify-ignored-prefixes |
| 1775 | (setq subject (substring subject (match-end 0)))) | 1774 | (string-match gnus-simplify-ignored-prefixes subject)) |
| 1776 | (insert subject) | 1775 | (setq subject (substring subject (match-end 0)))) |
| 1777 | (inline (gnus-simplify-buffer-fuzzy)) | 1776 | (insert subject) |
| 1778 | (buffer-string)))) | 1777 | (inline (gnus-simplify-buffer-fuzzy regexp)) |
| 1778 | (buffer-string))))) | ||
| 1779 | 1779 | ||
| 1780 | (defsubst gnus-simplify-subject-fully (subject) | 1780 | (defsubst gnus-simplify-subject-fully (subject) |
| 1781 | "Simplify a subject string according to `gnus-summary-gather-subject-limit'." | 1781 | "Simplify a subject string according to `gnus-summary-gather-subject-limit'." |
| @@ -6068,14 +6068,23 @@ If SELECT-ARTICLES, only select those articles from GROUP." | |||
| 6068 | 'request-set-mark gnus-newsgroup-name) | 6068 | 'request-set-mark gnus-newsgroup-name) |
| 6069 | (not (gnus-article-unpropagatable-p (cdr type)))) | 6069 | (not (gnus-article-unpropagatable-p (cdr type)))) |
| 6070 | (let* ((old (cdr (assq (cdr type) (gnus-info-marks info)))) | 6070 | (let* ((old (cdr (assq (cdr type) (gnus-info-marks info)))) |
| 6071 | (del (gnus-remove-from-range (gnus-copy-sequence old) list)) | 6071 | ;; Don't do anything about marks for articles we |
| 6072 | (add (gnus-remove-from-range | 6072 | ;; didn't actually get any headers for. |
| 6073 | (gnus-copy-sequence list) old))) | 6073 | (existing (gnus-compress-sequence gnus-newsgroup-articles)) |
| 6074 | (del | ||
| 6075 | (gnus-sorted-range-intersection | ||
| 6076 | existing | ||
| 6077 | (gnus-remove-from-range (gnus-copy-sequence old) list))) | ||
| 6078 | (add | ||
| 6079 | (gnus-sorted-range-intersection | ||
| 6080 | existing | ||
| 6081 | (gnus-remove-from-range | ||
| 6082 | (gnus-copy-sequence list) old)))) | ||
| 6074 | (when add | 6083 | (when add |
| 6075 | (push (list add 'add (list (cdr type))) delta-marks)) | 6084 | (push (list add 'add (list (cdr type))) delta-marks)) |
| 6076 | (when del | 6085 | (when del |
| 6077 | ;; Don't delete marks from outside the active range. This | 6086 | ;; Don't delete marks from outside the active range. |
| 6078 | ;; shouldn't happen, but is a sanity check. | 6087 | ;; This shouldn't happen, but is a sanity check. |
| 6079 | (setq del (gnus-sorted-range-intersection | 6088 | (setq del (gnus-sorted-range-intersection |
| 6080 | (gnus-active gnus-newsgroup-name) del)) | 6089 | (gnus-active gnus-newsgroup-name) del)) |
| 6081 | (push (list del 'del (list (cdr type))) delta-marks)))) | 6090 | (push (list del 'del (list (cdr type))) delta-marks)))) |
diff --git a/lisp/gnus/gnus.el b/lisp/gnus/gnus.el index 57d085a0380..d4ecd89db92 100644 --- a/lisp/gnus/gnus.el +++ b/lisp/gnus/gnus.el | |||
| @@ -1043,12 +1043,15 @@ be set in `.emacs' instead." | |||
| 1043 | ((boundp 'image-load-path) | 1043 | ((boundp 'image-load-path) |
| 1044 | (symbol-value 'image-load-path)) | 1044 | (symbol-value 'image-load-path)) |
| 1045 | (t load-path))) | 1045 | (t load-path))) |
| 1046 | (image (find-image | 1046 | (image (gnus-splash-svg-color-symbols (find-image |
| 1047 | `((:type xpm :file "gnus.xpm" | 1047 | `((:type svg :file "gnus.svg" |
| 1048 | :color-symbols | ||
| 1049 | (("#bf9900" . ,(car gnus-logo-colors)) | ||
| 1050 | ("#ffcc00" . ,(cadr gnus-logo-colors)))) | ||
| 1051 | (:type xpm :file "gnus.xpm" | ||
| 1048 | :color-symbols | 1052 | :color-symbols |
| 1049 | (("thing" . ,(car gnus-logo-colors)) | 1053 | (("thing" . ,(car gnus-logo-colors)) |
| 1050 | ("shadow" . ,(cadr gnus-logo-colors)))) | 1054 | ("shadow" . ,(cadr gnus-logo-colors)))) |
| 1051 | (:type svg :file "gnus.svg") | ||
| 1052 | (:type png :file "gnus.png") | 1055 | (:type png :file "gnus.png") |
| 1053 | (:type pbm :file "gnus.pbm" | 1056 | (:type pbm :file "gnus.pbm" |
| 1054 | ;; Account for the pbm's background. | 1057 | ;; Account for the pbm's background. |
| @@ -1057,7 +1060,7 @@ be set in `.emacs' instead." | |||
| 1057 | (:type xbm :file "gnus.xbm" | 1060 | (:type xbm :file "gnus.xbm" |
| 1058 | ;; Account for the xbm's background. | 1061 | ;; Account for the xbm's background. |
| 1059 | :background ,(face-foreground 'gnus-splash) | 1062 | :background ,(face-foreground 'gnus-splash) |
| 1060 | :foreground ,(face-background 'default)))))) | 1063 | :foreground ,(face-background 'default))))))) |
| 1061 | (when image | 1064 | (when image |
| 1062 | (let ((size (image-size image))) | 1065 | (let ((size (image-size image))) |
| 1063 | (insert-char ?\n (max 0 (round (- (window-height) | 1066 | (insert-char ?\n (max 0 (round (- (window-height) |
| @@ -1103,6 +1106,20 @@ be set in `.emacs' instead." | |||
| 1103 | (setq mode-line-buffer-identification (concat " " gnus-version)) | 1106 | (setq mode-line-buffer-identification (concat " " gnus-version)) |
| 1104 | (set-buffer-modified-p t))) | 1107 | (set-buffer-modified-p t))) |
| 1105 | 1108 | ||
| 1109 | (defun gnus-splash-svg-color-symbols (list) | ||
| 1110 | "Do color-symbol search-and-replace in svg file" | ||
| 1111 | (let ((type (plist-get (cdr list) :type)) | ||
| 1112 | (file (plist-get (cdr list) :file)) | ||
| 1113 | (color-symbols (plist-get (cdr list) :color-symbols))) | ||
| 1114 | (if (string= type "svg") | ||
| 1115 | (let ((data (with-temp-buffer (insert-file file) (buffer-string)))) | ||
| 1116 | (mapc (lambda (rule) | ||
| 1117 | (setq data (replace-regexp-in-string | ||
| 1118 | (concat "fill:" (car rule)) | ||
| 1119 | (concat "fill:" (cdr rule)) data))) color-symbols) | ||
| 1120 | (cons (car list) (list :type type :data data))) | ||
| 1121 | list))) | ||
| 1122 | |||
| 1106 | (eval-when (load) | 1123 | (eval-when (load) |
| 1107 | (let ((command (format "%s" this-command))) | 1124 | (let ((command (format "%s" this-command))) |
| 1108 | (when (string-match "gnus" command) | 1125 | (when (string-match "gnus" command) |
diff --git a/lisp/gnus/gssapi.el b/lisp/gnus/gssapi.el index 3765fb84ee8..e96c23b14ac 100644 --- a/lisp/gnus/gssapi.el +++ b/lisp/gnus/gssapi.el | |||
| @@ -33,14 +33,14 @@ | |||
| 33 | "--authentication-id %l") | 33 | "--authentication-id %l") |
| 34 | "imtest -m gssapi -u %l -p %p %s") | 34 | "imtest -m gssapi -u %l -p %p %s") |
| 35 | "List of strings containing commands for GSSAPI (krb5) authentication. | 35 | "List of strings containing commands for GSSAPI (krb5) authentication. |
| 36 | %s is replaced with server hostname, %p with port to connect to, and | 36 | %s is replaced with server hostname, %p with port to connect to, |
| 37 | %l with the value of `imap-default-user'. The program should accept | 37 | and %l with the user name. The program should accept commands on |
| 38 | IMAP commands on stdin and return responses to stdout. Each entry in | 38 | stdin and return responses to stdout. Each entry in the list is |
| 39 | the list is tried until a successful connection is made." | 39 | tried until a successful connection is made." |
| 40 | :group 'network | 40 | :group 'network |
| 41 | :type '(repeat string)) | 41 | :type '(repeat string)) |
| 42 | 42 | ||
| 43 | (defun open-gssapi-stream (name buffer server port) | 43 | (defun open-gssapi-stream (name buffer server port user) |
| 44 | (let ((cmds gssapi-program) | 44 | (let ((cmds gssapi-program) |
| 45 | cmd done) | 45 | cmd done) |
| 46 | (with-current-buffer buffer | 46 | (with-current-buffer buffer |
| @@ -57,7 +57,7 @@ the list is tried until a successful connection is made." | |||
| 57 | (format-spec-make | 57 | (format-spec-make |
| 58 | ?s server | 58 | ?s server |
| 59 | ?p (number-to-string port) | 59 | ?p (number-to-string port) |
| 60 | ?l imap-default-user)))) | 60 | ?l user)))) |
| 61 | response) | 61 | response) |
| 62 | (when process | 62 | (when process |
| 63 | (while (and (memq (process-status process) '(open run)) | 63 | (while (and (memq (process-status process) '(open run)) |
| @@ -92,7 +92,7 @@ the list is tried until a successful connection is made." | |||
| 92 | (accept-process-output process 1) | 92 | (accept-process-output process 1) |
| 93 | (sit-for 1)) | 93 | (sit-for 1)) |
| 94 | (erase-buffer) | 94 | (erase-buffer) |
| 95 | (message "GSSAPI IMAP connection: %s" (or response "failed")) | 95 | (message "GSSAPI connection: %s" (or response "failed")) |
| 96 | (if (and response (let ((case-fold-search nil)) | 96 | (if (and response (let ((case-fold-search nil)) |
| 97 | (not (string-match "failed" response)))) | 97 | (not (string-match "failed" response)))) |
| 98 | (setq done process) | 98 | (setq done process) |
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el index bb9215aca7c..6d9fd712c33 100644 --- a/lisp/gnus/message.el +++ b/lisp/gnus/message.el | |||
| @@ -3712,22 +3712,9 @@ To use this automatically, you may add this function to | |||
| 3712 | (while (re-search-forward citexp nil t) | 3712 | (while (re-search-forward citexp nil t) |
| 3713 | (replace-match (if remove "" "\n")))))) | 3713 | (replace-match (if remove "" "\n")))))) |
| 3714 | 3714 | ||
| 3715 | (defun message-yank-original (&optional arg) | 3715 | (defun message--yank-original-internal (arg) |
| 3716 | "Insert the message being replied to, if any. | ||
| 3717 | Puts point before the text and mark after. | ||
| 3718 | Normally indents each nonblank line ARG spaces (default 3). However, | ||
| 3719 | if `message-yank-prefix' is non-nil, insert that prefix on each line. | ||
| 3720 | |||
| 3721 | This function uses `message-cite-function' to do the actual citing. | ||
| 3722 | |||
| 3723 | Just \\[universal-argument] as argument means don't indent, insert no | ||
| 3724 | prefix, and don't delete any headers." | ||
| 3725 | (interactive "P") | ||
| 3726 | (let ((modified (buffer-modified-p)) | 3716 | (let ((modified (buffer-modified-p)) |
| 3727 | body-text) | 3717 | body-text) |
| 3728 | ;; eval the let forms contained in message-cite-style | ||
| 3729 | (eval | ||
| 3730 | `(let ,message-cite-style | ||
| 3731 | (when (and message-reply-buffer | 3718 | (when (and message-reply-buffer |
| 3732 | message-cite-function) | 3719 | message-cite-function) |
| 3733 | (when (equal message-cite-reply-position 'above) | 3720 | (when (equal message-cite-reply-position 'above) |
| @@ -3767,7 +3754,23 @@ prefix, and don't delete any headers." | |||
| 3767 | ;; Add a `message-setup-very-last-hook' here? | 3754 | ;; Add a `message-setup-very-last-hook' here? |
| 3768 | ;; Add `gnus-article-highlight-citation' here? | 3755 | ;; Add `gnus-article-highlight-citation' here? |
| 3769 | (unless modified | 3756 | (unless modified |
| 3770 | (setq message-checksum (message-checksum)))))))) | 3757 | (setq message-checksum (message-checksum)))))) |
| 3758 | |||
| 3759 | (defun message-yank-original (&optional arg) | ||
| 3760 | "Insert the message being replied to, if any. | ||
| 3761 | Puts point before the text and mark after. | ||
| 3762 | Normally indents each nonblank line ARG spaces (default 3). However, | ||
| 3763 | if `message-yank-prefix' is non-nil, insert that prefix on each line. | ||
| 3764 | |||
| 3765 | This function uses `message-cite-function' to do the actual citing. | ||
| 3766 | |||
| 3767 | Just \\[universal-argument] as argument means don't indent, insert no | ||
| 3768 | prefix, and don't delete any headers." | ||
| 3769 | (interactive "P") | ||
| 3770 | ;; eval the let forms contained in message-cite-style | ||
| 3771 | (eval | ||
| 3772 | `(let ,message-cite-style | ||
| 3773 | (message--yank-original-internal ',arg)))) | ||
| 3771 | 3774 | ||
| 3772 | (defun message-yank-buffer (buffer) | 3775 | (defun message-yank-buffer (buffer) |
| 3773 | "Insert BUFFER into the current buffer and quote it." | 3776 | "Insert BUFFER into the current buffer and quote it." |
diff --git a/lisp/gnus/nnimap.el b/lisp/gnus/nnimap.el index ccb082d6c71..fa09c7ff165 100644 --- a/lisp/gnus/nnimap.el +++ b/lisp/gnus/nnimap.el | |||
| @@ -410,11 +410,18 @@ textual parts.") | |||
| 410 | (setq login-result | 410 | (setq login-result |
| 411 | (nnimap-login (car credentials) (cadr credentials)))) | 411 | (nnimap-login (car credentials) (cadr credentials)))) |
| 412 | (if (car login-result) | 412 | (if (car login-result) |
| 413 | ;; save the credentials if a save function exists | 413 | (progn |
| 414 | ;; Save the credentials if a save function exists | ||
| 414 | ;; (such a function will only be passed if a new | 415 | ;; (such a function will only be passed if a new |
| 415 | ;; token was created) | 416 | ;; token was created). |
| 416 | (when (functionp (nth 2 credentials)) | 417 | (when (functionp (nth 2 credentials)) |
| 417 | (funcall (nth 2 credentials))) | 418 | (funcall (nth 2 credentials))) |
| 419 | ;; See if CAPABILITY is set as part of login | ||
| 420 | ;; response. | ||
| 421 | (dolist (response (cddr login-result)) | ||
| 422 | (when (string= "CAPABILITY" (upcase (car response))) | ||
| 423 | (setf (nnimap-capabilities nnimap-object) | ||
| 424 | (mapcar #'upcase (cdr response)))))) | ||
| 418 | ;; If the login failed, then forget the credentials | 425 | ;; If the login failed, then forget the credentials |
| 419 | ;; that are now possibly cached. | 426 | ;; that are now possibly cached. |
| 420 | (dolist (host (list (nnoo-current-server 'nnimap) | 427 | (dolist (host (list (nnoo-current-server 'nnimap) |