diff options
| author | Paul Eggert | 2011-02-15 16:09:42 -0800 |
|---|---|---|
| committer | Paul Eggert | 2011-02-15 16:09:42 -0800 |
| commit | 393790ad8adefad895ad742246e8a4fa7f4d3246 (patch) | |
| tree | f1a901eff7e14ea132ffbe988abb68906f43336b | |
| parent | 9502925a798a3af3d40f67a30f30ced94d814f52 (diff) | |
| parent | ca6ddb88b58e06b872912a8941ce96dad66da54f (diff) | |
| download | emacs-393790ad8adefad895ad742246e8a4fa7f4d3246.tar.gz emacs-393790ad8adefad895ad742246e8a4fa7f4d3246.zip | |
Merge from mainline.
| -rw-r--r-- | doc/misc/ChangeLog | 6 | ||||
| -rw-r--r-- | doc/misc/auth.texi | 4 | ||||
| -rw-r--r-- | lisp/ChangeLog | 4 | ||||
| -rw-r--r-- | lisp/dired-x.el | 101 | ||||
| -rw-r--r-- | lisp/gnus/ChangeLog | 38 | ||||
| -rw-r--r-- | lisp/gnus/auth-source.el | 128 | ||||
| -rw-r--r-- | lisp/gnus/gnus-art.el | 9 | ||||
| -rw-r--r-- | lisp/gnus/gnus-msg.el | 8 | ||||
| -rw-r--r-- | lisp/gnus/gnus-start.el | 9 | ||||
| -rw-r--r-- | lisp/gnus/gnus-sum.el | 36 | ||||
| -rw-r--r-- | lisp/gnus/message.el | 5 | ||||
| -rw-r--r-- | lisp/gnus/nntp.el | 13 |
12 files changed, 198 insertions, 163 deletions
diff --git a/doc/misc/ChangeLog b/doc/misc/ChangeLog index 20463724c79..34096144066 100644 --- a/doc/misc/ChangeLog +++ b/doc/misc/ChangeLog | |||
| @@ -3,6 +3,10 @@ | |||
| 3 | Merge from gnulib. | 3 | Merge from gnulib. |
| 4 | * texinfo.tex: Update to version 2011-02-14.11. | 4 | * texinfo.tex: Update to version 2011-02-14.11. |
| 5 | 5 | ||
| 6 | 2011-02-14 Teodor Zlatanov <tzz@lifelogs.com> | ||
| 7 | |||
| 8 | * auth.texi (Help for users): Login collection is "Login" and not "login". | ||
| 9 | |||
| 6 | 2011-02-13 Michael Albinus <michael.albinus@gmx.de> | 10 | 2011-02-13 Michael Albinus <michael.albinus@gmx.de> |
| 7 | 11 | ||
| 8 | * tramp.texi (History): Remove IMAP support. | 12 | * tramp.texi (History): Remove IMAP support. |
| @@ -21,7 +25,7 @@ | |||
| 21 | 25 | ||
| 22 | * sc.texi (Getting Connected): Remove old index entries. | 26 | * sc.texi (Getting Connected): Remove old index entries. |
| 23 | 27 | ||
| 24 | 2011-02-12 Ulrich Mueller <ulm@gentoo.org> | 28 | 2011-02-12 Ulrich Mueller <ulm@gentoo.org> |
| 25 | 29 | ||
| 26 | * url.texi: Remove duplicate @dircategory (Bug#7942). | 30 | * url.texi: Remove duplicate @dircategory (Bug#7942). |
| 27 | 31 | ||
diff --git a/doc/misc/auth.texi b/doc/misc/auth.texi index 2541dba9873..020c582305c 100644 --- a/doc/misc/auth.texi +++ b/doc/misc/auth.texi | |||
| @@ -161,8 +161,8 @@ and simplest configuration is: | |||
| 161 | (setq auth-sources '((:source "~/.authinfo.gpg"))) | 161 | (setq auth-sources '((:source "~/.authinfo.gpg"))) |
| 162 | ;;; even shorter and the @emph{default}: | 162 | ;;; even shorter and the @emph{default}: |
| 163 | (setq auth-sources '("~/.authinfo.gpg" "~/.authinfo")) | 163 | (setq auth-sources '("~/.authinfo.gpg" "~/.authinfo")) |
| 164 | ;;; use the Secrets API @var{login} collection (@pxref{Secret Service API}) | 164 | ;;; use the Secrets API @var{Login} collection (@pxref{Secret Service API}) |
| 165 | (setq auth-sources '("secrets:login")) | 165 | (setq auth-sources '("secrets:Login")) |
| 166 | @end lisp | 166 | @end lisp |
| 167 | 167 | ||
| 168 | By adding multiple entries to @code{auth-sources} with a particular | 168 | By adding multiple entries to @code{auth-sources} with a particular |
diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 742cbfc9267..a9adce5a3f5 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog | |||
| @@ -1,3 +1,7 @@ | |||
| 1 | 2011-02-15 Glenn Morris <rgm@gnu.org> | ||
| 2 | |||
| 3 | * dired-x.el: Use easymenu for menu items. Fix item capitalization. | ||
| 4 | |||
| 1 | 2011-02-14 Chong Yidong <cyd@stupidchicken.com> | 5 | 2011-02-14 Chong Yidong <cyd@stupidchicken.com> |
| 2 | 6 | ||
| 3 | * vc/vc-git.el (vc-git-root-log-format): New option for | 7 | * vc/vc-git.el (vc-git-root-log-format): New option for |
diff --git a/lisp/dired-x.el b/lisp/dired-x.el index 8011b4d32a4..95381ccdc0c 100644 --- a/lisp/dired-x.el +++ b/lisp/dired-x.el | |||
| @@ -231,69 +231,44 @@ to nil: a pipe using `zcat' or `gunzip -c' will be used." | |||
| 231 | 231 | ||
| 232 | ;;; MENU BINDINGS | 232 | ;;; MENU BINDINGS |
| 233 | 233 | ||
| 234 | (let ((menu-bar (lookup-key dired-mode-map [menu-bar]))) | 234 | (require 'easymenu) |
| 235 | (let ((menu (lookup-key menu-bar [operate]))) | 235 | |
| 236 | (define-key-after | 236 | (let ((menu (lookup-key dired-mode-map [menu-bar]))) |
| 237 | menu | 237 | (easy-menu-add-item menu '("Operate") |
| 238 | [find-files] | 238 | ["Find Files" dired-do-find-marked-files |
| 239 | '(menu-item | 239 | :help "Find current or marked files"] |
| 240 | "Find files" | 240 | "Shell Command...") |
| 241 | dired-do-find-marked-files | 241 | (easy-menu-add-item menu '("Operate") |
| 242 | :help "Find current or marked files") | 242 | ["Relative Symlink to..." dired-do-relsymlink |
| 243 | 'delete) | 243 | :visible (fboundp 'make-symbolic-link) |
| 244 | (define-key-after | 244 | :help "Make relative symbolic links for current or \ |
| 245 | menu | 245 | marked files"] |
| 246 | [relsymlink] | 246 | "Hardlink to...") |
| 247 | '(menu-item | 247 | (easy-menu-add-item menu '("Mark") |
| 248 | "Relative symlink to..." | 248 | ["Flag Extension..." dired-flag-extension |
| 249 | dired-do-relsymlink | 249 | :help "Flag files with a certain extension for deletion"] |
| 250 | :visible (fboundp 'make-symbolic-link) | 250 | "Mark Executables") |
| 251 | :help "Make relative symbolic links for current or marked files") | 251 | (easy-menu-add-item menu '("Mark") |
| 252 | 'symlink)) | 252 | ["Mark Extension..." dired-mark-extension |
| 253 | (let ((menu (lookup-key menu-bar [mark]))) | 253 | :help "Mark files with a certain extension"] |
| 254 | (define-key-after | 254 | "Unmark All") |
| 255 | menu | 255 | (easy-menu-add-item menu '("Mark") |
| 256 | [flag-extension] | 256 | ["Mark Omitted" dired-mark-omitted |
| 257 | '(menu-item | 257 | :help "Mark files matching `dired-omit-files' \ |
| 258 | "Flag extension..." | 258 | and `dired-omit-extensions'"] |
| 259 | dired-flag-extension | 259 | "Unmark All") |
| 260 | :help "Flag files with a certain extension for deletion") | 260 | (easy-menu-add-item menu '("Regexp") |
| 261 | 'garbage-files) | 261 | ["Relative Symlink..." dired-do-relsymlink-regexp |
| 262 | (define-key-after | 262 | :visible (fboundp 'make-symbolic-link) |
| 263 | menu | 263 | :help "Make relative symbolic links for files \ |
| 264 | [mark-extension] | 264 | matching regexp"] |
| 265 | '(menu-item | 265 | "Hardlink...") |
| 266 | "Mark extension..." | 266 | (easy-menu-add-item menu '("Immediate") |
| 267 | dired-mark-extension | 267 | ["Omit Mode" dired-omit-mode |
| 268 | :help "Mark files with a certain extension") | 268 | :style toggle :selected dired-omit-mode |
| 269 | 'symlinks) | 269 | :help "Enable or disable omitting \"uninteresting\" \ |
| 270 | (define-key-after | 270 | files"] |
| 271 | menu | 271 | "Refresh")) |
| 272 | [mark-omitted] | ||
| 273 | '(menu-item | ||
| 274 | "Mark omitted" | ||
| 275 | dired-mark-omitted | ||
| 276 | :help "Mark files matching `dired-omit-files' and `dired-omit-extensions'") | ||
| 277 | 'mark-extension)) | ||
| 278 | (let ((menu (lookup-key menu-bar [regexp]))) | ||
| 279 | (define-key-after | ||
| 280 | menu | ||
| 281 | [relsymlink-regexp] | ||
| 282 | '(menu-item | ||
| 283 | "Relative symlink..." | ||
| 284 | dired-do-relsymlink-regexp | ||
| 285 | :visible (fboundp 'make-symbolic-link) | ||
| 286 | :help "Make relative symbolic links for files matching regexp") | ||
| 287 | 'symlink)) | ||
| 288 | (let ((menu (lookup-key menu-bar [immediate]))) | ||
| 289 | (define-key-after | ||
| 290 | menu | ||
| 291 | [omit-mode] | ||
| 292 | '(menu-item | ||
| 293 | "Omit mode" dired-omit-mode | ||
| 294 | :button (:toggle . dired-omit-mode) | ||
| 295 | :help "Enable or disable omitting \"uninteresting\" files") | ||
| 296 | 'dashes))) | ||
| 297 | 272 | ||
| 298 | ;;; GLOBAL BINDING. | 273 | ;;; GLOBAL BINDING. |
| 299 | (when dired-bind-jump | 274 | (when dired-bind-jump |
diff --git a/lisp/gnus/ChangeLog b/lisp/gnus/ChangeLog index 747f71f835a..91ba9e5a359 100644 --- a/lisp/gnus/ChangeLog +++ b/lisp/gnus/ChangeLog | |||
| @@ -1,11 +1,49 @@ | |||
| 1 | 2011-02-15 Teodor Zlatanov <tzz@lifelogs.com> | ||
| 2 | |||
| 3 | * auth-source.el (auth-source-debug): Enable by default and don't | ||
| 4 | mention the obsolete `auth-source-hide-passwords'. | ||
| 5 | (auth-source-do-warn): New function to debug unconditionally. | ||
| 6 | (auth-source-do-debug): Use it. | ||
| 7 | (auth-source-backend-parse): Use it for invalid `auth-sources' entries | ||
| 8 | and for Secrets API entries when the secrets.el library is not | ||
| 9 | available. | ||
| 10 | |||
| 11 | 2011-02-14 Lars Ingebrigtsen <larsi@gnus.org> | ||
| 12 | |||
| 13 | * gnus-sum.el (gnus-propagate-marks): Default to nil. | ||
| 14 | (gnus-summary-exit): Kill the correct article buffer on exit from a | ||
| 15 | `C-d' group. | ||
| 16 | |||
| 17 | * gnus-start.el (gnus-use-backend-marks): Removed, since it duplicates | ||
| 18 | gnus-propagate-marks. | ||
| 19 | |||
| 20 | * gnus-sum.el (gnus-summary-exit-no-update): Restore the group conf | ||
| 21 | before killing the buffers so that a non-full window conf gets handled | ||
| 22 | correctly. | ||
| 23 | (gnus-summary-exit): Ditto. | ||
| 24 | (gnus-summary-read-group-1): Ditto. | ||
| 25 | |||
| 26 | * nntp.el (nntp-retrieve-group-data-early): Reinstate the two-part | ||
| 27 | async code again so that we can debug it properly. | ||
| 28 | |||
| 29 | * message.el (message-reply): Take an optional switch-buffer parameter | ||
| 30 | so that Gnus window confs are respected better. | ||
| 31 | |||
| 1 | 2011-02-14 Teodor Zlatanov <tzz@lifelogs.com> | 32 | 2011-02-14 Teodor Zlatanov <tzz@lifelogs.com> |
| 2 | 33 | ||
| 3 | * auth-source.el (auth-source-backend-parse-parameters): Don't rely on | 34 | * auth-source.el (auth-source-backend-parse-parameters): Don't rely on |
| 4 | `plist-get' to accept non-list parameters (XEmacs issue). Fix | 35 | `plist-get' to accept non-list parameters (XEmacs issue). Fix |
| 5 | docstring. | 36 | docstring. |
| 37 | (auth-source-secrets-search): Use `delete-dups', `append mapcar', and | ||
| 38 | `butlast' instead of `remove-duplicates', `mapcan', and `subseq'. | ||
| 39 | (auth-sources, auth-source-backend-parse, auth-source-secrets-search): | ||
| 40 | Login collection is "Login" and not "login". | ||
| 6 | 41 | ||
| 7 | 2011-02-14 Lars Ingebrigtsen <larsi@gnus.org> | 42 | 2011-02-14 Lars Ingebrigtsen <larsi@gnus.org> |
| 8 | 43 | ||
| 44 | * gnus-art.el (article-update-date-lapsed): Don't bug out when updating | ||
| 45 | multiple headers. | ||
| 46 | |||
| 9 | * nnimap.el (nnimap-inhibit-logging): New variable. | 47 | * nnimap.el (nnimap-inhibit-logging): New variable. |
| 10 | (nnimap-log-command): Don't log login commands. | 48 | (nnimap-log-command): Don't log login commands. |
| 11 | 49 | ||
diff --git a/lisp/gnus/auth-source.el b/lisp/gnus/auth-source.el index be698ad35d0..a259c5c2f0b 100644 --- a/lisp/gnus/auth-source.el +++ b/lisp/gnus/auth-source.el | |||
| @@ -135,14 +135,15 @@ | |||
| 135 | :version "23.2" ;; No Gnus | 135 | :version "23.2" ;; No Gnus |
| 136 | :type `boolean) | 136 | :type `boolean) |
| 137 | 137 | ||
| 138 | (defcustom auth-source-debug nil | 138 | (defcustom auth-source-debug t |
| 139 | "Whether auth-source should log debug messages. | 139 | "Whether auth-source should log debug messages. |
| 140 | Also see `auth-source-hide-passwords'. | ||
| 141 | 140 | ||
| 142 | If the value is nil, debug messages are not logged. | 141 | If the value is nil, debug messages are not logged. |
| 143 | If the value is t, debug messages are logged with `message'. | 142 | |
| 144 | In that case, your authentication data will be in the | 143 | If the value is t, debug messages are logged with `message'. In |
| 145 | clear (except for passwords, which are always stripped out). | 144 | that case, your authentication data will be in the clear (except |
| 145 | for passwords). | ||
| 146 | |||
| 146 | If the value is a function, debug messages are logged by calling | 147 | If the value is a function, debug messages are logged by calling |
| 147 | that function using the same arguments as `message'." | 148 | that function using the same arguments as `message'." |
| 148 | :group 'auth-source | 149 | :group 'auth-source |
| @@ -173,7 +174,7 @@ can get pretty complex." | |||
| 173 | (choice | 174 | (choice |
| 174 | (string :tag "Just a file") | 175 | (string :tag "Just a file") |
| 175 | (const :tag "Default Secrets API Collection" 'default) | 176 | (const :tag "Default Secrets API Collection" 'default) |
| 176 | (const :tag "Login Secrets API Collection" "secrets:login") | 177 | (const :tag "Login Secrets API Collection" "secrets:Login") |
| 177 | (const :tag "Temp Secrets API Collection" "secrets:session") | 178 | (const :tag "Temp Secrets API Collection" "secrets:session") |
| 178 | (list :tag "Source definition" | 179 | (list :tag "Source definition" |
| 179 | (const :format "" :value :source) | 180 | (const :format "" :value :source) |
| @@ -185,7 +186,7 @@ can get pretty complex." | |||
| 185 | (choice :tag "Collection to use" | 186 | (choice :tag "Collection to use" |
| 186 | (string :tag "Collection name") | 187 | (string :tag "Collection name") |
| 187 | (const :tag "Default" 'default) | 188 | (const :tag "Default" 'default) |
| 188 | (const :tag "Login" "login") | 189 | (const :tag "Login" "Login") |
| 189 | (const | 190 | (const |
| 190 | :tag "Temporary" "session")))) | 191 | :tag "Temporary" "session")))) |
| 191 | (repeat :tag "Extra Parameters" :inline t | 192 | (repeat :tag "Extra Parameters" :inline t |
| @@ -235,36 +236,40 @@ If the value is not a list, symmetric encryption will be used." | |||
| 235 | ;; (auth-source-user-or-password-imap "password" "imap.myhost.com") | 236 | ;; (auth-source-user-or-password-imap "password" "imap.myhost.com") |
| 236 | ;; (auth-source-protocol-defaults 'imap) | 237 | ;; (auth-source-protocol-defaults 'imap) |
| 237 | 238 | ||
| 238 | ;; (let ((auth-source-debug 'debug)) (auth-source-debug "hello")) | 239 | ;; (let ((auth-source-debug 'debug)) (auth-source-do-debug "hello")) |
| 239 | ;; (let ((auth-source-debug t)) (auth-source-debug "hello")) | 240 | ;; (let ((auth-source-debug t)) (auth-source-do-debug "hello")) |
| 240 | ;; (let ((auth-source-debug nil)) (auth-source-debug "hello")) | 241 | ;; (let ((auth-source-debug nil)) (auth-source-do-debug "hello")) |
| 241 | (defun auth-source-do-debug (&rest msg) | 242 | (defun auth-source-do-debug (&rest msg) |
| 242 | ;; set logger to either the function in auth-source-debug or 'message | ||
| 243 | ;; note that it will be 'message if auth-source-debug is nil, so | ||
| 244 | ;; we also check the value | ||
| 245 | (when auth-source-debug | 243 | (when auth-source-debug |
| 246 | (let ((logger (if (functionp auth-source-debug) | 244 | (apply 'auth-source-do-warn msg))) |
| 247 | auth-source-debug | 245 | |
| 248 | 'message))) | 246 | (defun auth-source-do-warn (&rest msg) |
| 249 | (apply logger msg)))) | 247 | (apply |
| 248 | ;; set logger to either the function in auth-source-debug or 'message | ||
| 249 | ;; note that it will be 'message if auth-source-debug is nil | ||
| 250 | (if (functionp auth-source-debug) | ||
| 251 | auth-source-debug | ||
| 252 | 'message) | ||
| 253 | msg)) | ||
| 254 | |||
| 250 | 255 | ||
| 251 | ;; (auth-source-pick nil :host "any" :protocol 'imap :user "joe") | 256 | ;; (auth-source-pick nil :host "any" :protocol 'imap :user "joe") |
| 252 | ;; (auth-source-pick t :host "any" :protocol 'imap :user "joe") | 257 | ;; (auth-source-pick t :host "any" :protocol 'imap :user "joe") |
| 253 | ;; (setq auth-sources '((:source (:secrets default) :host t :protocol t :user "joe") | 258 | ;; (setq auth-sources '((:source (:secrets default) :host t :protocol t :user "joe") |
| 254 | ;; (:source (:secrets "session") :host t :protocol t :user "joe") | 259 | ;; (:source (:secrets "session") :host t :protocol t :user "joe") |
| 255 | ;; (:source (:secrets "login") :host t :protocol t) | 260 | ;; (:source (:secrets "Login") :host t :protocol t) |
| 256 | ;; (:source "~/.authinfo.gpg" :host t :protocol t))) | 261 | ;; (:source "~/.authinfo.gpg" :host t :protocol t))) |
| 257 | 262 | ||
| 258 | ;; (setq auth-sources '((:source (:secrets default) :host t :protocol t :user "joe") | 263 | ;; (setq auth-sources '((:source (:secrets default) :host t :protocol t :user "joe") |
| 259 | ;; (:source (:secrets "session") :host t :protocol t :user "joe") | 264 | ;; (:source (:secrets "session") :host t :protocol t :user "joe") |
| 260 | ;; (:source (:secrets "login") :host t :protocol t) | 265 | ;; (:source (:secrets "Login") :host t :protocol t) |
| 261 | ;; )) | 266 | ;; )) |
| 262 | 267 | ||
| 263 | ;; (setq auth-sources '((:source "~/.authinfo.gpg" :host t :protocol t))) | 268 | ;; (setq auth-sources '((:source "~/.authinfo.gpg" :host t :protocol t))) |
| 264 | 269 | ||
| 265 | ;; (auth-source-backend-parse "myfile.gpg") | 270 | ;; (auth-source-backend-parse "myfile.gpg") |
| 266 | ;; (auth-source-backend-parse 'default) | 271 | ;; (auth-source-backend-parse 'default) |
| 267 | ;; (auth-source-backend-parse "secrets:login") | 272 | ;; (auth-source-backend-parse "secrets:Login") |
| 268 | 273 | ||
| 269 | (defun auth-source-backend-parse (entry) | 274 | (defun auth-source-backend-parse (entry) |
| 270 | "Creates an auth-source-backend from an ENTRY in `auth-sources'." | 275 | "Creates an auth-source-backend from an ENTRY in `auth-sources'." |
| @@ -307,21 +312,28 @@ If the value is not a list, symmetric encryption will be used." | |||
| 307 | "session"))) | 312 | "session"))) |
| 308 | 313 | ||
| 309 | ;; if the source is a symbol, we look for the alias named so, | 314 | ;; if the source is a symbol, we look for the alias named so, |
| 310 | ;; and if that alias is missing, we use "login" | 315 | ;; and if that alias is missing, we use "Login" |
| 311 | (when (symbolp source) | 316 | (when (symbolp source) |
| 312 | (setq source (or (secrets-get-alias (symbol-name source)) | 317 | (setq source (or (secrets-get-alias (symbol-name source)) |
| 313 | "login"))) | 318 | "Login"))) |
| 314 | 319 | ||
| 315 | (auth-source-backend | 320 | (if (featurep 'secrets) |
| 316 | (format "Secrets API (%s)" source) | 321 | (auth-source-backend |
| 317 | :source source | 322 | (format "Secrets API (%s)" source) |
| 318 | :type 'secrets | 323 | :source source |
| 319 | :search-function 'auth-source-secrets-search | 324 | :type 'secrets |
| 320 | :create-function 'auth-source-secrets-create))) | 325 | :search-function 'auth-source-secrets-search |
| 326 | :create-function 'auth-source-secrets-create) | ||
| 327 | (auth-source-do-warn | ||
| 328 | "auth-source-backend-parse: no Secrets API, ignoring spec: %S" entry) | ||
| 329 | (auth-source-backend | ||
| 330 | (format "Ignored Secrets API (%s)" source) | ||
| 331 | :source "" | ||
| 332 | :type 'ignore)))) | ||
| 321 | 333 | ||
| 322 | ;; none of them | 334 | ;; none of them |
| 323 | (t | 335 | (t |
| 324 | (auth-source-do-debug | 336 | (auth-source-do-warn |
| 325 | "auth-source-backend-parse: invalid backend spec: %S" entry) | 337 | "auth-source-backend-parse: invalid backend spec: %S" entry) |
| 326 | (auth-source-backend | 338 | (auth-source-backend |
| 327 | "Empty" | 339 | "Empty" |
| @@ -938,8 +950,8 @@ See `auth-source-search' for details on SPEC." | |||
| 938 | ;;; (let ((auth-sources '(default))) (auth-source-search :max 1 :delete t)) | 950 | ;;; (let ((auth-sources '(default))) (auth-source-search :max 1 :delete t)) |
| 939 | ;;; (let ((auth-sources '(default))) (auth-source-search :max 1)) | 951 | ;;; (let ((auth-sources '(default))) (auth-source-search :max 1)) |
| 940 | ;;; (let ((auth-sources '(default))) (auth-source-search)) | 952 | ;;; (let ((auth-sources '(default))) (auth-source-search)) |
| 941 | ;;; (let ((auth-sources '("secrets:login"))) (auth-source-search :max 1)) | 953 | ;;; (let ((auth-sources '("secrets:Login"))) (auth-source-search :max 1)) |
| 942 | ;;; (let ((auth-sources '("secrets:login"))) (auth-source-search :max 1 :signon_realm "https://git.gnus.org/Git")) | 954 | ;;; (let ((auth-sources '("secrets:Login"))) (auth-source-search :max 1 :signon_realm "https://git.gnus.org/Git")) |
| 943 | 955 | ||
| 944 | (defun* auth-source-secrets-search (&rest | 956 | (defun* auth-source-secrets-search (&rest |
| 945 | spec | 957 | spec |
| @@ -957,23 +969,23 @@ matching, do a wider search and narrow it down yourself. | |||
| 957 | 969 | ||
| 958 | You'll get back all the properties of the token as a plist. | 970 | You'll get back all the properties of the token as a plist. |
| 959 | 971 | ||
| 960 | Here's an example that looks for the first item in the 'login' | 972 | Here's an example that looks for the first item in the 'Login' |
| 961 | Secrets collection: | 973 | Secrets collection: |
| 962 | 974 | ||
| 963 | \(let ((auth-sources '(\"secrets:login\"))) | 975 | \(let ((auth-sources '(\"secrets:Login\"))) |
| 964 | (auth-source-search :max 1) | 976 | (auth-source-search :max 1) |
| 965 | 977 | ||
| 966 | Here's another that looks for the first item in the 'login' | 978 | Here's another that looks for the first item in the 'Login' |
| 967 | Secrets collection whose label contains 'gnus': | 979 | Secrets collection whose label contains 'gnus': |
| 968 | 980 | ||
| 969 | \(let ((auth-sources '(\"secrets:login\"))) | 981 | \(let ((auth-sources '(\"secrets:Login\"))) |
| 970 | (auth-source-search :max 1 :label \"gnus\") | 982 | (auth-source-search :max 1 :label \"gnus\") |
| 971 | 983 | ||
| 972 | And this one looks for the first item in the 'login' Secrets | 984 | And this one looks for the first item in the 'Login' Secrets |
| 973 | collection that's a Google Chrome entry for the git.gnus.org site | 985 | collection that's a Google Chrome entry for the git.gnus.org site |
| 974 | login: | 986 | authentication tokens: |
| 975 | 987 | ||
| 976 | \(let ((auth-sources '(\"secrets:login\"))) | 988 | \(let ((auth-sources '(\"secrets:Login\"))) |
| 977 | (auth-source-search :max 1 :signon_realm \"https://git.gnus.org/Git\")) | 989 | (auth-source-search :max 1 :signon_realm \"https://git.gnus.org/Git\")) |
| 978 | " | 990 | " |
| 979 | 991 | ||
| @@ -993,21 +1005,23 @@ login: | |||
| 993 | collect (nth i spec))) | 1005 | collect (nth i spec))) |
| 994 | ;; build a search spec without the ignored keys | 1006 | ;; build a search spec without the ignored keys |
| 995 | ;; if a search key is nil or t (match anything), we skip it | 1007 | ;; if a search key is nil or t (match anything), we skip it |
| 996 | (search-spec (mapcan (lambda (k) (if (or (null (plist-get spec k)) | 1008 | (search-spec (apply 'append (mapcar |
| 997 | (eq t (plist-get spec k))) | 1009 | (lambda (k) |
| 998 | nil | 1010 | (if (or (null (plist-get spec k)) |
| 999 | (list k (plist-get spec k)))) | 1011 | (eq t (plist-get spec k))) |
| 1000 | search-keys)) | 1012 | nil |
| 1013 | (list k (plist-get spec k)))) | ||
| 1014 | search-keys))) | ||
| 1001 | ;; needed keys (always including host, login, protocol, and secret) | 1015 | ;; needed keys (always including host, login, protocol, and secret) |
| 1002 | (returned-keys (remove-duplicates (append | 1016 | (returned-keys (delete-dups (append |
| 1003 | '(:host :login :protocol :secret) | 1017 | '(:host :login :protocol :secret) |
| 1004 | search-keys))) | 1018 | search-keys))) |
| 1005 | (items (loop for item in (apply 'secrets-search-items coll search-spec) | 1019 | (items (loop for item in (apply 'secrets-search-items coll search-spec) |
| 1006 | unless (and (stringp label) | 1020 | unless (and (stringp label) |
| 1007 | (not (string-match label item))) | 1021 | (not (string-match label item))) |
| 1008 | collect item)) | 1022 | collect item)) |
| 1009 | ;; TODO: respect max in `secrets-search-items', not after the fact | 1023 | ;; TODO: respect max in `secrets-search-items', not after the fact |
| 1010 | (items (subseq items 0 (min (length items) max))) | 1024 | (items (butlast items (- (length items) max))) |
| 1011 | ;; convert the item name to a full plist | 1025 | ;; convert the item name to a full plist |
| 1012 | (items (mapcar (lambda (item) | 1026 | (items (mapcar (lambda (item) |
| 1013 | (append | 1027 | (append |
| @@ -1017,18 +1031,20 @@ login: | |||
| 1017 | (lexical-let ((v (secrets-get-secret coll item))) | 1031 | (lexical-let ((v (secrets-get-secret coll item))) |
| 1018 | (lambda () v))) | 1032 | (lambda () v))) |
| 1019 | ;; rewrite the entry from ((k1 v1) (k2 v2)) to plist | 1033 | ;; rewrite the entry from ((k1 v1) (k2 v2)) to plist |
| 1020 | (mapcan (lambda (entry) | 1034 | (apply 'append |
| 1021 | (list (car entry) (cdr entry))) | 1035 | (mapcar (lambda (entry) |
| 1022 | (secrets-get-attributes coll item)))) | 1036 | (list (car entry) (cdr entry))) |
| 1037 | (secrets-get-attributes coll item))))) | ||
| 1023 | items)) | 1038 | items)) |
| 1024 | ;; ensure each item has each key in `returned-keys' | 1039 | ;; ensure each item has each key in `returned-keys' |
| 1025 | (items (mapcar (lambda (plist) | 1040 | (items (mapcar (lambda (plist) |
| 1026 | (append | 1041 | (append |
| 1027 | (mapcan (lambda (req) | 1042 | (apply 'append |
| 1028 | (if (plist-get plist req) | 1043 | (mapcar (lambda (req) |
| 1029 | nil | 1044 | (if (plist-get plist req) |
| 1030 | (list req nil))) | 1045 | nil |
| 1031 | returned-keys) | 1046 | (list req nil))) |
| 1047 | returned-keys)) | ||
| 1032 | plist)) | 1048 | plist)) |
| 1033 | items))) | 1049 | items))) |
| 1034 | items)) | 1050 | items)) |
diff --git a/lisp/gnus/gnus-art.el b/lisp/gnus/gnus-art.el index 3e1630804f7..82ad4974fd4 100644 --- a/lisp/gnus/gnus-art.el +++ b/lisp/gnus/gnus-art.el | |||
| @@ -3641,10 +3641,11 @@ function and want to see what the date was before converting." | |||
| 3641 | (let ((type (get-text-property (match-beginning 0) | 3641 | (let ((type (get-text-property (match-beginning 0) |
| 3642 | 'gnus-date-type))) | 3642 | 'gnus-date-type))) |
| 3643 | (when (memq type '(lapsed combined-lapsed user-format)) | 3643 | (when (memq type '(lapsed combined-lapsed user-format)) |
| 3644 | (unless (= window-start | 3644 | (when (and window-start |
| 3645 | (save-excursion | 3645 | (not (= window-start |
| 3646 | (forward-line 1) | 3646 | (save-excursion |
| 3647 | (point))) | 3647 | (forward-line 1) |
| 3648 | (point))))) | ||
| 3648 | (setq window-start nil)) | 3649 | (setq window-start nil)) |
| 3649 | (save-excursion | 3650 | (save-excursion |
| 3650 | (article-date-ut type t (match-beginning 0))) | 3651 | (article-date-ut type t (match-beginning 0))) |
diff --git a/lisp/gnus/gnus-msg.el b/lisp/gnus/gnus-msg.el index 08fef2327ad..b199dcc572c 100644 --- a/lisp/gnus/gnus-msg.el +++ b/lisp/gnus/gnus-msg.el | |||
| @@ -1081,14 +1081,14 @@ If VERY-WIDE, make a very wide reply." | |||
| 1081 | (gnus-summary-work-articles 1)))) | 1081 | (gnus-summary-work-articles 1)))) |
| 1082 | ;; Allow user to require confirmation before replying by mail to the | 1082 | ;; Allow user to require confirmation before replying by mail to the |
| 1083 | ;; author of a news article (or mail message). | 1083 | ;; author of a news article (or mail message). |
| 1084 | (when (or | 1084 | (when (or (not (or (gnus-news-group-p gnus-newsgroup-name) |
| 1085 | (not (or (gnus-news-group-p gnus-newsgroup-name) | ||
| 1086 | gnus-confirm-treat-mail-like-news)) | 1085 | gnus-confirm-treat-mail-like-news)) |
| 1087 | (not (cond ((stringp gnus-confirm-mail-reply-to-news) | 1086 | (not (cond ((stringp gnus-confirm-mail-reply-to-news) |
| 1088 | (string-match gnus-confirm-mail-reply-to-news | 1087 | (string-match gnus-confirm-mail-reply-to-news |
| 1089 | gnus-newsgroup-name)) | 1088 | gnus-newsgroup-name)) |
| 1090 | ((functionp gnus-confirm-mail-reply-to-news) | 1089 | ((functionp gnus-confirm-mail-reply-to-news) |
| 1091 | (funcall gnus-confirm-mail-reply-to-news gnus-newsgroup-name)) | 1090 | (funcall gnus-confirm-mail-reply-to-news |
| 1091 | gnus-newsgroup-name)) | ||
| 1092 | (t gnus-confirm-mail-reply-to-news))) | 1092 | (t gnus-confirm-mail-reply-to-news))) |
| 1093 | (if (or wide very-wide) | 1093 | (if (or wide very-wide) |
| 1094 | t ;; Ignore gnus-confirm-mail-reply-to-news for wide and very | 1094 | t ;; Ignore gnus-confirm-mail-reply-to-news for wide and very |
| @@ -1123,7 +1123,7 @@ If VERY-WIDE, make a very wide reply." | |||
| 1123 | (insert headers)) | 1123 | (insert headers)) |
| 1124 | (goto-char (point-max))) | 1124 | (goto-char (point-max))) |
| 1125 | (mml-quote-region (point) (point-max)) | 1125 | (mml-quote-region (point) (point-max)) |
| 1126 | (message-reply nil wide) | 1126 | (message-reply nil wide 'switch-to-buffer) |
| 1127 | (when yank | 1127 | (when yank |
| 1128 | (gnus-inews-yank-articles yank)) | 1128 | (gnus-inews-yank-articles yank)) |
| 1129 | (gnus-summary-handle-replysign))))) | 1129 | (gnus-summary-handle-replysign))))) |
diff --git a/lisp/gnus/gnus-start.el b/lisp/gnus/gnus-start.el index b8a6be8702e..b493a93d40c 100644 --- a/lisp/gnus/gnus-start.el +++ b/lisp/gnus/gnus-start.el | |||
| @@ -380,13 +380,6 @@ disc." | |||
| 380 | :group 'gnus-newsrc | 380 | :group 'gnus-newsrc |
| 381 | :type 'boolean) | 381 | :type 'boolean) |
| 382 | 382 | ||
| 383 | (defcustom gnus-use-backend-marks nil | ||
| 384 | "If non-nil, Gnus will store and retrieve marks from the backends. | ||
| 385 | This means that marks will be stored both in .newsrc.eld and in | ||
| 386 | the backend, and will slow operation down somewhat." | ||
| 387 | :group 'gnus-newsrc | ||
| 388 | :type 'boolean) | ||
| 389 | |||
| 390 | (defcustom gnus-check-bogus-groups-hook nil | 383 | (defcustom gnus-check-bogus-groups-hook nil |
| 391 | "A hook run after removing bogus groups." | 384 | "A hook run after removing bogus groups." |
| 392 | :group 'gnus-start-server | 385 | :group 'gnus-start-server |
| @@ -1509,7 +1502,7 @@ If SCAN, request a scan of that group as well." | |||
| 1509 | (gnus-activate-group (gnus-info-group info) nil t)) | 1502 | (gnus-activate-group (gnus-info-group info) nil t)) |
| 1510 | 1503 | ||
| 1511 | ;; Allow backends to update marks, | 1504 | ;; Allow backends to update marks, |
| 1512 | (when gnus-use-backend-marks | 1505 | (when gnus-propagate-marks |
| 1513 | (let ((method (inline (gnus-find-method-for-group | 1506 | (let ((method (inline (gnus-find-method-for-group |
| 1514 | (gnus-info-group info))))) | 1507 | (gnus-info-group info))))) |
| 1515 | (when (gnus-check-backend-function 'request-marks (car method)) | 1508 | (when (gnus-check-backend-function 'request-marks (car method)) |
diff --git a/lisp/gnus/gnus-sum.el b/lisp/gnus/gnus-sum.el index 8fac5021df3..4dfc79a8883 100644 --- a/lisp/gnus/gnus-sum.el +++ b/lisp/gnus/gnus-sum.el | |||
| @@ -1234,9 +1234,11 @@ For example: ((1 . cn-gb-2312) (2 . big5))." | |||
| 1234 | :type 'boolean | 1234 | :type 'boolean |
| 1235 | :group 'gnus-summary-marks) | 1235 | :group 'gnus-summary-marks) |
| 1236 | 1236 | ||
| 1237 | (defcustom gnus-propagate-marks t | 1237 | (defcustom gnus-propagate-marks nil |
| 1238 | "If non-nil, do not propagate marks to the backends." | 1238 | "If non-nil, Gnus will store and retrieve marks from the backends. |
| 1239 | :version "23.1" ;; No Gnus | 1239 | This means that marks will be stored both in .newsrc.eld and in |
| 1240 | the backend, and will slow operation down somewhat." | ||
| 1241 | :version "24.1" | ||
| 1240 | :type 'boolean | 1242 | :type 'boolean |
| 1241 | :group 'gnus-summary-marks) | 1243 | :group 'gnus-summary-marks) |
| 1242 | 1244 | ||
| @@ -4067,6 +4069,7 @@ If NO-DISPLAY, don't generate a summary buffer." | |||
| 4067 | ;; gnus-summary-prepare-hook since kill processing may not | 4069 | ;; gnus-summary-prepare-hook since kill processing may not |
| 4068 | ;; work with hidden articles. | 4070 | ;; work with hidden articles. |
| 4069 | (gnus-summary-maybe-hide-threads) | 4071 | (gnus-summary-maybe-hide-threads) |
| 4072 | (gnus-configure-windows 'summary) | ||
| 4070 | (when kill-buffer | 4073 | (when kill-buffer |
| 4071 | (gnus-kill-or-deaden-summary kill-buffer)) | 4074 | (gnus-kill-or-deaden-summary kill-buffer)) |
| 4072 | (gnus-summary-auto-select-subject) | 4075 | (gnus-summary-auto-select-subject) |
| @@ -4076,7 +4079,6 @@ If NO-DISPLAY, don't generate a summary buffer." | |||
| 4076 | gnus-newsgroup-unreads | 4079 | gnus-newsgroup-unreads |
| 4077 | gnus-auto-select-first) | 4080 | gnus-auto-select-first) |
| 4078 | (progn | 4081 | (progn |
| 4079 | (gnus-configure-windows 'summary) | ||
| 4080 | (let ((art (gnus-summary-article-number))) | 4082 | (let ((art (gnus-summary-article-number))) |
| 4081 | (unless (and (not gnus-plugged) | 4083 | (unless (and (not gnus-plugged) |
| 4082 | (or (memq art gnus-newsgroup-undownloaded) | 4084 | (or (memq art gnus-newsgroup-undownloaded) |
| @@ -7168,6 +7170,7 @@ If FORCE (the prefix), also save the .newsrc file(s)." | |||
| 7168 | (let* ((group gnus-newsgroup-name) | 7170 | (let* ((group gnus-newsgroup-name) |
| 7169 | (quit-config (gnus-group-quit-config gnus-newsgroup-name)) | 7171 | (quit-config (gnus-group-quit-config gnus-newsgroup-name)) |
| 7170 | (gnus-group-is-exiting-p t) | 7172 | (gnus-group-is-exiting-p t) |
| 7173 | (article-buffer gnus-article-buffer) | ||
| 7171 | (mode major-mode) | 7174 | (mode major-mode) |
| 7172 | (group-point nil) | 7175 | (group-point nil) |
| 7173 | (buf (current-buffer))) | 7176 | (buf (current-buffer))) |
| @@ -7220,16 +7223,6 @@ If FORCE (the prefix), also save the .newsrc file(s)." | |||
| 7220 | (when (eq mode 'gnus-summary-mode) | 7223 | (when (eq mode 'gnus-summary-mode) |
| 7221 | (gnus-kill-buffer buf))) | 7224 | (gnus-kill-buffer buf))) |
| 7222 | 7225 | ||
| 7223 | ;; If we have several article buffers, we kill them at exit. | ||
| 7224 | (unless gnus-single-article-buffer | ||
| 7225 | (when (gnus-buffer-live-p gnus-article-buffer) | ||
| 7226 | (with-current-buffer gnus-article-buffer | ||
| 7227 | ;; Don't kill sticky article buffers | ||
| 7228 | (unless (eq major-mode 'gnus-sticky-article-mode) | ||
| 7229 | (gnus-kill-buffer gnus-article-buffer) | ||
| 7230 | (setq gnus-article-current nil)))) | ||
| 7231 | (gnus-kill-buffer gnus-original-article-buffer)) | ||
| 7232 | |||
| 7233 | (setq gnus-current-select-method gnus-select-method) | 7226 | (setq gnus-current-select-method gnus-select-method) |
| 7234 | (set-buffer gnus-group-buffer) | 7227 | (set-buffer gnus-group-buffer) |
| 7235 | (if quit-config | 7228 | (if quit-config |
| @@ -7241,6 +7234,17 @@ If FORCE (the prefix), also save the .newsrc file(s)." | |||
| 7241 | (if win (set-window-point win (point)))) | 7234 | (if win (set-window-point win (point)))) |
| 7242 | (unless leave-hidden | 7235 | (unless leave-hidden |
| 7243 | (gnus-configure-windows 'group 'force))) | 7236 | (gnus-configure-windows 'group 'force))) |
| 7237 | |||
| 7238 | ;; If we have several article buffers, we kill them at exit. | ||
| 7239 | (unless gnus-single-article-buffer | ||
| 7240 | (when (gnus-buffer-live-p article-buffer) | ||
| 7241 | (with-current-buffer article-buffer | ||
| 7242 | ;; Don't kill sticky article buffers | ||
| 7243 | (unless (eq major-mode 'gnus-sticky-article-mode) | ||
| 7244 | (gnus-kill-buffer article-buffer) | ||
| 7245 | (setq gnus-article-current nil)))) | ||
| 7246 | (gnus-kill-buffer gnus-original-article-buffer)) | ||
| 7247 | |||
| 7244 | ;; Clear the current group name. | 7248 | ;; Clear the current group name. |
| 7245 | (unless quit-config | 7249 | (unless quit-config |
| 7246 | (setq gnus-newsgroup-name nil))))) | 7250 | (setq gnus-newsgroup-name nil))))) |
| @@ -7269,6 +7273,8 @@ If FORCE (the prefix), also save the .newsrc file(s)." | |||
| 7269 | (gnus-kill-buffer gnus-article-buffer) | 7273 | (gnus-kill-buffer gnus-article-buffer) |
| 7270 | (gnus-kill-buffer gnus-original-article-buffer) | 7274 | (gnus-kill-buffer gnus-original-article-buffer) |
| 7271 | (setq gnus-article-current nil)) | 7275 | (setq gnus-article-current nil)) |
| 7276 | ;; Return to the group buffer. | ||
| 7277 | (gnus-configure-windows 'group 'force) | ||
| 7272 | (if (not gnus-kill-summary-on-exit) | 7278 | (if (not gnus-kill-summary-on-exit) |
| 7273 | (gnus-deaden-summary) | 7279 | (gnus-deaden-summary) |
| 7274 | (gnus-close-group group) | 7280 | (gnus-close-group group) |
| @@ -7280,8 +7286,6 @@ If FORCE (the prefix), also save the .newsrc file(s)." | |||
| 7280 | (gnus-async-prefetch-remove-group group) | 7286 | (gnus-async-prefetch-remove-group group) |
| 7281 | (when (get-buffer gnus-article-buffer) | 7287 | (when (get-buffer gnus-article-buffer) |
| 7282 | (bury-buffer gnus-article-buffer)) | 7288 | (bury-buffer gnus-article-buffer)) |
| 7283 | ;; Return to the group buffer. | ||
| 7284 | (gnus-configure-windows 'group 'force) | ||
| 7285 | ;; Clear the current group name. | 7289 | ;; Clear the current group name. |
| 7286 | (setq gnus-newsgroup-name nil) | 7290 | (setq gnus-newsgroup-name nil) |
| 7287 | (unless (gnus-ephemeral-group-p group) | 7291 | (unless (gnus-ephemeral-group-p group) |
diff --git a/lisp/gnus/message.el b/lisp/gnus/message.el index 42b61950986..58daf1baf94 100644 --- a/lisp/gnus/message.el +++ b/lisp/gnus/message.el | |||
| @@ -6779,7 +6779,7 @@ Useful functions to put in this list include: | |||
| 6779 | subject) | 6779 | subject) |
| 6780 | 6780 | ||
| 6781 | ;;;###autoload | 6781 | ;;;###autoload |
| 6782 | (defun message-reply (&optional to-address wide) | 6782 | (defun message-reply (&optional to-address wide switch-function) |
| 6783 | "Start editing a reply to the article in the current buffer." | 6783 | "Start editing a reply to the article in the current buffer." |
| 6784 | (interactive) | 6784 | (interactive) |
| 6785 | (require 'gnus-sum) ; for gnus-list-identifiers | 6785 | (require 'gnus-sum) ; for gnus-list-identifiers |
| @@ -6822,7 +6822,8 @@ Useful functions to put in this list include: | |||
| 6822 | (message-pop-to-buffer | 6822 | (message-pop-to-buffer |
| 6823 | (message-buffer-name | 6823 | (message-buffer-name |
| 6824 | (if wide "wide reply" "reply") from | 6824 | (if wide "wide reply" "reply") from |
| 6825 | (if wide to-address nil)))) | 6825 | (if wide to-address nil)) |
| 6826 | switch-function)) | ||
| 6826 | 6827 | ||
| 6827 | (setq message-reply-headers | 6828 | (setq message-reply-headers |
| 6828 | (vector 0 subject from date message-id references 0 0 "")) | 6829 | (vector 0 subject from date message-id references 0 0 "")) |
diff --git a/lisp/gnus/nntp.el b/lisp/gnus/nntp.el index 4b42637978e..0fc38553c29 100644 --- a/lisp/gnus/nntp.el +++ b/lisp/gnus/nntp.el | |||
| @@ -774,7 +774,7 @@ command whose response triggered the error." | |||
| 774 | (nntp-copy-to-buffer nntp-server-buffer (point-min) (point-max)) | 774 | (nntp-copy-to-buffer nntp-server-buffer (point-min) (point-max)) |
| 775 | 'headers))))) | 775 | 'headers))))) |
| 776 | 776 | ||
| 777 | (deffoo nntp-retrieve-group-data-early-disabled (server infos) | 777 | (deffoo nntp-retrieve-group-data-early (server infos) |
| 778 | "Retrieve group info on INFOS." | 778 | "Retrieve group info on INFOS." |
| 779 | (nntp-with-open-group nil server | 779 | (nntp-with-open-group nil server |
| 780 | (when (nntp-find-connection-buffer nntp-server-buffer) | 780 | (when (nntp-find-connection-buffer nntp-server-buffer) |
| @@ -793,7 +793,7 @@ command whose response triggered the error." | |||
| 793 | nil command (gnus-group-real-name (gnus-info-group info))))) | 793 | nil command (gnus-group-real-name (gnus-info-group info))))) |
| 794 | (length infos))))) | 794 | (length infos))))) |
| 795 | 795 | ||
| 796 | (deffoo nntp-finish-retrieve-group-infos-disabled (server infos count) | 796 | (deffoo nntp-finish-retrieve-group-infos (server infos count) |
| 797 | (nntp-with-open-group nil server | 797 | (nntp-with-open-group nil server |
| 798 | (let ((buf (nntp-find-connection-buffer nntp-server-buffer)) | 798 | (let ((buf (nntp-find-connection-buffer nntp-server-buffer)) |
| 799 | (method (gnus-find-method-for-group | 799 | (method (gnus-find-method-for-group |
| @@ -814,10 +814,7 @@ command whose response triggered the error." | |||
| 814 | (< received count))) | 814 | (< received count))) |
| 815 | (nntp-accept-response)) | 815 | (nntp-accept-response)) |
| 816 | ;; We now have all the entries. Remove CRs. | 816 | ;; We now have all the entries. Remove CRs. |
| 817 | (goto-char (point-min)) | 817 | (nnheader-strip-cr) |
| 818 | (while (search-forward "\r" nil t) | ||
| 819 | (replace-match "" t t)) | ||
| 820 | |||
| 821 | (if (not nntp-server-list-active-group) | 818 | (if (not nntp-server-list-active-group) |
| 822 | (progn | 819 | (progn |
| 823 | (nntp-copy-to-buffer nntp-server-buffer | 820 | (nntp-copy-to-buffer nntp-server-buffer |
| @@ -830,7 +827,9 @@ command whose response triggered the error." | |||
| 830 | (delete-region (match-beginning 0) | 827 | (delete-region (match-beginning 0) |
| 831 | (progn (forward-line 1) (point)))) | 828 | (progn (forward-line 1) (point)))) |
| 832 | (nntp-copy-to-buffer nntp-server-buffer (point-min) (point-max)) | 829 | (nntp-copy-to-buffer nntp-server-buffer (point-min) (point-max)) |
| 833 | (gnus-active-to-gnus-format method gnus-active-hashtb nil t))))))) | 830 | (with-current-buffer nntp-server-buffer |
| 831 | (gnus-active-to-gnus-format method gnus-active-hashtb | ||
| 832 | nil t)))))))) | ||
| 834 | 833 | ||
| 835 | (deffoo nntp-retrieve-groups (groups &optional server) | 834 | (deffoo nntp-retrieve-groups (groups &optional server) |
| 836 | "Retrieve group info on GROUPS." | 835 | "Retrieve group info on GROUPS." |