Commit 7410c270 authored by Gnus developers's avatar Gnus developers Committed by Katsumi Yamaoka
Browse files

Merge changes made in Gnus trunk.

nnir.el (nnir-run-imap): Return article list in UID order.
gnus-start.el (gnus-auto-subscribed-groups): Add nnimap to the list of automatically subscribed groups.
 (gnus-auto-subscribed-categories): New variable.
 (gnus-matches-options-n): Use it.
 (gnus-default-subscribed-newsgroups): Remove unused variable.
 (gnus-start-draft-setup): Message a bit less.
gnus-agent.el (gnus-agentize): Don't create the queue group automatically on startup.  It'll be created later, if needed.
gnus-start.el (gnus-1): Clarify comment.
 (gnus-matches-options-n): Fix typo in last change.
 (gnus-1): Don't create the nndrafts group twice.
 (gnus-setup-news): There's no need to read the active file here, since that's done again later on a per-backend basis.
 (gnus-start-draft-setup): Make sure that the new group is started out empty.
netrc.el (netrc-point-at-eol): Remove the unused netrc-point-at-old and netrc-bound-and-true-p bindings.
 (netrc-parse): Cache the netrc contents.
parent bc557672
2010-12-13 Lars Magne Ingebrigtsen <larsi@gnus.org>
* gnus.texi (Filtering New Groups): Mention
gnus-auto-subscribed-categories.
(The First Time): Removed, since default-subscribed-newsgroups has been
removed.
2010-12-13 Glenn Morris <rgm@gnu.org>
* cl.texi (For Clauses): Small fixes for frames and windows.
......
......@@ -428,7 +428,6 @@ Other related manuals
Starting Gnus
 
* Finding the News:: Choosing a method for getting news.
* The First Time:: What does Gnus do the first time you start it?
* The Server is Down:: How can I read my mail then?
* Slave Gnusae:: You can have more than one Gnus active at a time.
* Fetching a Group:: Starting Gnus just to read a group.
......@@ -959,7 +958,6 @@ terminology section (@pxref{Terminology}).
 
@menu
* Finding the News:: Choosing a method for getting news.
* The First Time:: What does Gnus do the first time you start it?
* The Server is Down:: How can I read my mail then?
* Slave Gnusae:: You can have more than one Gnus active at a time.
* New Groups:: What is Gnus supposed to do with new groups?
......@@ -1052,31 +1050,6 @@ several Gnus installations, but may slow down things a bit when fetching
new articles. @xref{NNTP marks}, for more information.
 
 
@node The First Time
@section The First Time
@cindex first time usage
If no startup files exist (@pxref{Startup Files}), Gnus will try to
determine what groups should be subscribed by default.
@vindex gnus-default-subscribed-newsgroups
If the variable @code{gnus-default-subscribed-newsgroups} is set, Gnus
will subscribe you to just those groups in that list, leaving the rest
killed. Your system administrator should have set this variable to
something useful.
Since she hasn't, Gnus will just subscribe you to a few arbitrarily
picked groups (i.e., @samp{*.newusers}). (@dfn{Arbitrary} is defined
here as @dfn{whatever Lars thinks you should read}.)
You'll also be subscribed to the Gnus documentation group, which should
help you with most common problems.
If @code{gnus-default-subscribed-newsgroups} is @code{t}, Gnus will just
use the normal functions for handling new groups, and not do anything
special.
@node The Server is Down
@section The Server is Down
@cindex server errors
......@@ -1321,11 +1294,18 @@ but I thought it would be nice to have two of these. This variable is
more meant for setting some ground rules, while the other variable is
used more for user fiddling. By default this variable makes all new
groups that come from mail back ends (@code{nnml}, @code{nnbabyl},
@code{nnfolder}, @code{nnmbox}, @code{nnmh}, and @code{nnmaildir})
subscribed. If you don't like that, just set this variable to
@code{nil}.
New groups that match this regexp are subscribed using
@code{nnfolder}, @code{nnmbox}, @code{nnmh}, @code{nnimap}, and
@code{nnmaildir}) subscribed. If you don't like that, just set this
variable to @code{nil}.
@vindex gnus-auto-subscribed-categories
As if that wasn't enough, @code{gnus-auto-subscribed-categories} also
allows you to specify that new groups should be subcribed based on the
category their select methods belong to. The default is @samp{(mail
post-mail)}, meaning that all new groups from mail-like backends
should be subscribed automatically.
New groups that match these variables are subscribed using
@code{gnus-subscribe-options-newsgroup-method}.
 
 
......@@ -2,6 +2,12 @@
 
* net/gnutls.el (gnutls-negotiate): Fix setting of default trustfiles.
 
2010-12-13 Lars Magne Ingebrigtsen <larsi@gnus.org>
* net/netrc.el (netrc-point-at-eol): Remove the unused
netrc-point-at-old and netrc-bound-and-true-p bindings.
(netrc-parse): Cache the netrc contents.
2010-12-13 Eli Zaretskii <eliz@gnu.org>
 
* subr.el (posn-col-row): Evaluate header-line-format in the
......
2010-12-13 Lars Magne Ingebrigtsen <larsi@gnus.org>
* gnus-start.el (gnus-matches-options-n): Fix typo in last change.
(gnus-1): Don't create the nndrafts group twice.
(gnus-setup-news): There's no need to read the active file here, since
that's done again later on a per-backend basis.
(gnus-start-draft-setup): Make sure that the new group is started out
empty.
* gnus-agent.el (gnus-agentize): Don't create the queue group
automatically on startup. It'll be created later, if needed.
* gnus-start.el (gnus-auto-subscribed-groups): Add nnimap to the list
of automatically subscribed groups.
(gnus-auto-subscribed-categories): New variable.
(gnus-matches-options-n): Use it.
(gnus-default-subscribed-newsgroups): Remove unused variable.
(gnus-start-draft-setup): Message a bit less.
2010-12-13 Andrew Cohen <cohen@andy.bu.edu>
* nnir.el (nnir-run-imap): Return article list in order of increasing
UID.
2010-12-13 Lars Magne Ingebrigtsen <larsi@gnus.org>
 
* gnus-sum.el (gnus-summary-enter-digest-group): Mention
......
......@@ -685,7 +685,6 @@ This will modify the `gnus-setup-news-hook', and
minor mode in all Gnus buffers."
(interactive)
(gnus-open-agent)
(add-hook 'gnus-setup-news-hook 'gnus-agent-queue-setup)
(unless gnus-agent-send-mail-function
(setq gnus-agent-send-mail-function
(or message-send-mail-real-function
......
......@@ -86,14 +86,6 @@ If a file with the `.el' or `.elc' suffixes exists, it will be read instead."
:group 'gnus-start
:type '(choice file (const nil)))
(defcustom gnus-default-subscribed-newsgroups nil
"List of newsgroups to subscribe, when a user runs Gnus the first time.
The value should be a list of strings.
If it is t, Gnus will not do anything special the first time it is
started; it'll just use the normal newsgroups subscription methods."
:group 'gnus-start
:type '(choice (repeat string) (const :tag "Nothing special" t)))
(defcustom gnus-use-dribble-file t
"*Non-nil means that Gnus will use a dribble file to store user updates.
If Emacs should crash without saving the .newsrc files, complete
......@@ -341,8 +333,17 @@ hierarchy in its entirety."
:group 'gnus-group-new
:type 'boolean)
(defcustom gnus-auto-subscribed-categories '(mail post-mail)
"*New groups from methods of these categories will be subscribed automatically.
Note that this variable only deals with new groups. It has no
effect whatsoever on old groups. The default is to automatically
subscribe all groups from mail-like backends."
:version "24.1"
:group 'gnus-group-new
:type '(repeat symbol))
(defcustom gnus-auto-subscribed-groups
"^nnml\\|^nnfolder\\|^nnmbox\\|^nnmh\\|^nnbabyl\\|^nnmaildir"
"^nnml\\|^nnfolder\\|^nnmbox\\|^nnmh\\|^nnbabyl\\|^nnmaildir\\|^nnimap"
"*All new groups that match this regexp will be subscribed automatically.
Note that this variable only deals with new groups. It has no effect
whatsoever on old groups.
......@@ -784,10 +785,9 @@ prompt the user for the name of an NNTP server to use."
(gnus-start-news-server (and arg (not level))))))
(if (and (not dont-connect)
(not did-connect))
;; Couldn't connect to the server, so bail out.
(gnus-group-quit)
(gnus-run-hooks 'gnus-startup-hook)
;; NNTP server is successfully open.
;; Find the current startup file name.
(setq gnus-current-startup-file
(gnus-make-newsrc-file gnus-startup-file))
......@@ -797,11 +797,10 @@ prompt the user for the name of an NNTP server to use."
(gnus-dribble-read-file))
;; Do the actual startup.
(if gnus-agent
(gnus-request-create-group "queue" '(nndraft "")))
(gnus-request-create-group "drafts" '(nndraft ""))
(gnus-setup-news nil level dont-connect)
(gnus-run-hooks 'gnus-setup-news-hook)
(when gnus-agent
(gnus-request-create-group "queue" '(nndraft "")))
(gnus-start-draft-setup)
;; Generate the group buffer.
(gnus-group-list-groups level)
......@@ -816,10 +815,10 @@ prompt the user for the name of an NNTP server to use."
(gnus-request-create-group "drafts" '(nndraft ""))
(unless (gnus-group-entry "nndraft:drafts")
(let ((gnus-level-default-subscribed 1))
(gnus-subscribe-group "nndraft:drafts" nil '(nndraft ""))))
(gnus-subscribe-group "nndraft:drafts" nil '(nndraft "")))
(setcar (gnus-group-entry "nndraft:drafts") 0))
(unless (equal (gnus-group-get-parameter "nndraft:drafts" 'gnus-dummy t)
'((gnus-draft-mode)))
(gnus-message 3 "Setting up drafts group")
(gnus-group-set-parameter
"nndraft:drafts" 'gnus-dummy '((gnus-draft-mode)))))
......@@ -996,27 +995,8 @@ If LEVEL is non-nil, the news will be set up at level LEVEL."
(when (or (null gnus-read-active-file)
(eq gnus-read-active-file 'some))
(gnus-update-active-hashtb-from-killed))
;; Validate agent covered methods now that gnus-server-alist has
;; been initialized.
;; NOTE: This is here for one purpose only. By validating the
;; agentized server's, it converts the old 5.10.3, and earlier,
;; format to the current format. That enables the agent code
;; within gnus-read-active-file to function correctly.
(if gnus-agent
(gnus-agent-read-servers-validate))
;; Read the active file and create `gnus-active-hashtb'.
;; If `gnus-read-active-file' is nil, then we just create an empty
;; hash table. The partial filling out of the hash table will be
;; done in `gnus-get-unread-articles'.
(and gnus-read-active-file
(not level)
(gnus-read-active-file nil dont-connect))
(unless gnus-active-hashtb
(setq gnus-active-hashtb (gnus-make-hashtable 4096)))
;; Initialize the cache.
(when gnus-use-cache
(gnus-cache-open))
......@@ -1158,6 +1138,12 @@ for new groups, and subscribe the new groups as zombies."
((and gnus-options-subscribe
(string-match gnus-options-subscribe group))
'subscribe)
((let ((do-subscribe nil))
(dolist (category gnus-auto-subscribed-categories)
(when (gnus-member-of-valid category group)
(setq do-subscribe t)))
do-subscribe)
'subscribe)
((and gnus-auto-subscribed-groups
(string-match gnus-auto-subscribed-groups group))
'subscribe)
......
......@@ -804,7 +804,7 @@ details on the language and supported extensions"
(message "Searching %s... %d matches" group arts)))
(message "Searching %s...done" group))
(quit nil))
artlist))
(nreverse artlist)))
groups)))))
(defun nnir-imap-make-query (criteria qstring)
......
......@@ -34,18 +34,6 @@
;;; .netrc and .authinfo rc parsing
;;;
(defalias 'netrc-point-at-eol
(if (fboundp 'point-at-eol)
'point-at-eol
'line-end-position))
(eval-when-compile
;; This is unnecessary in the compiled version as it is a macro.
(if (fboundp 'bound-and-true-p)
(defalias 'netrc-bound-and-true-p 'bound-and-true-p)
(defmacro netrc-bound-and-true-p (var)
"Return the value of symbol VAR if it is bound, else nil."
`(and (boundp (quote ,var)) ,var))))
(defgroup netrc nil
"Netrc configuration."
:group 'comm)
......@@ -58,12 +46,15 @@
(defvar netrc-services-file "/etc/services"
"The name of the services file.")
(defvar netrc-cache nil)
(defun netrc-parse (&optional file)
(interactive "fFile to Parse: ")
"Parse FILE and return a list of all entries in the file."
(unless file
(setq file netrc-file))
(if (listp file)
;; We got already parsed contents; just return it.
file
(when (file-exists-p file)
(with-temp-buffer
......@@ -71,7 +62,16 @@
"password" "account" "macdef" "force"
"port"))
alist elem result pair)
(insert-file-contents file)
(if (and netrc-cache
(equal (car netrc-cache) (nth 5 (file-attributes file))))
;; Store the contents of the file heavily encrypted in memory.
(insert (base64-decode-string (rot13-string (cdr netrc-cache))))
(insert-file-contents file)
(when (string-match "\\.gpg\\'" file)
(setq netrc-cache (cons (nth 5 (file-attributes file))
(rot13-string
(base64-encode-string
(buffer-string)))))))
(goto-char (point-min))
;; Go through the file, line by line.
(while (not (eobp))
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment