Merge changes made in Gnus trunk.

nnir.el (nnir-request-expire-articles): Only allow article deletion.
message.el (message-bogus-recipient-p): Set address to "" if nil.
gnus-gravatar.el (gnus-gravatar-transform-address): Fix error when email address is nil.
proto-stream.el (proto-stream-open-network-only): New function to have a way to specify non-STARTTLS upgrade connections.
This commit is contained in:
Gnus developers 2010-12-11 01:27:14 +00:00 committed by Katsumi Yamaoka
parent 2b7f50d877
commit 3b84b00502
7 changed files with 66 additions and 32 deletions

View file

@ -14445,6 +14445,9 @@ remote system. If both Emacs and the server supports it, the
connection will be upgraded to an encrypted @acronym{STARTTLS}
connection automatically.
@item network-only
The same as the above, but don't do automatic @acronym{STARTTLS} upgrades.
@findex nntp-open-tls-stream
@item nntp-open-tls-stream
Opens a connection to a server over a @dfn{secure} channel. To use

View file

@ -1,3 +1,21 @@
2010-12-10 Lars Magne Ingebrigtsen <larsi@gnus.org>
* proto-stream.el (proto-stream-open-network-only): New function to
have a way to specify non-STARTTLS upgrade connections.
2010-12-10 Julien Danjou <julien@danjou.info>
* gnus-gravatar.el (gnus-gravatar-transform-address): Fix error when
email address is nil.
* message.el (message-bogus-recipient-p): Set address to "" if nil.
2010-12-10 Andrew Cohen <cohen@andy.bu.edu>
* nnir.el (nnir-request-expire-articles): Ignore expiry except for
deletion.
(nnir-run-imap): Only need to parse list once.
2010-12-09 Lars Magne Ingebrigtsen <larsi@gnus.org>
* shr.el (shr-tag-script): Ignore <script>.

View file

@ -65,7 +65,7 @@ If nil, default to `gravatar-size'."
(when (or force
(not (and gnus-gravatar-too-ugly
(or (string-match gnus-gravatar-too-ugly
(cadr address))
(or (cadr address) ""))
(and name
(string-match gnus-gravatar-too-ugly
name))))))

View file

@ -4261,9 +4261,10 @@ matching entry in `message-bogus-addresses'."
;; FIXME: How about "foo@subdomain", when the MTA adds ".domain.tld"?
(let (found)
(mapc (lambda (address)
(setq address (cadr address))
(setq address (or (cadr address) ""))
(when
(or (not
(or (string= "" address)
(not
(or
(not (string-match "@" address))
(string-match
@ -4277,7 +4278,7 @@ matching entry in `message-bogus-addresses'."
"\\|")
message-bogus-addresses)))
(string-match re address))))
(push address found)))
(push address found)))
;;
(mail-extract-address-components recipients t))
found))

View file

@ -688,23 +688,25 @@ Add an entry here when adding a new search engine.")
(gnus-group-real-name to-newsgroup)))))
(deffoo nnir-request-expire-articles (articles group &optional server force)
(let ((articles-by-group (nnir-categorize
articles nnir-article-group nnir-article-ids))
not-deleted)
(while (not (null articles-by-group))
(let* ((group-articles (pop articles-by-group))
(artgroup (car group-articles))
(articleids (cadr group-articles))
(artlist (sort (mapcar 'cdr articleids) '<)))
(unless (gnus-check-backend-function 'request-expire-articles
artgroup)
(error "The group %s does not support article deletion" artgroup))
(unless (gnus-check-server (gnus-find-method-for-group artgroup))
(error "Couldn't open server for group %s" artgroup))
(push (gnus-request-expire-articles
artlist artgroup force)
not-deleted)))
(sort (delq nil not-deleted) '<)))
(if force
(let ((articles-by-group (nnir-categorize
articles nnir-article-group nnir-article-ids))
not-deleted)
(while (not (null articles-by-group))
(let* ((group-articles (pop articles-by-group))
(artgroup (car group-articles))
(articleids (cadr group-articles))
(artlist (sort (mapcar 'cdr articleids) '<)))
(unless (gnus-check-backend-function 'request-expire-articles
artgroup)
(error "The group %s does not support article deletion" artgroup))
(unless (gnus-check-server (gnus-find-method-for-group artgroup))
(error "Couldn't open server for group %s" artgroup))
(push (gnus-request-expire-articles
artlist artgroup force)
not-deleted)))
(sort (delq nil not-deleted) '<))
articles))
(deffoo nnir-warp-to-article ()
(let* ((cur (if (> (gnus-summary-article-number) 0)
@ -792,12 +794,13 @@ details on the language and supported extensions"
(nnir-imap-make-query
criteria qstring)))))
(mapc
(lambda (artnum) (push (vector group artnum 100) artlist)
(setq arts (1+ arts)))
(and (car result)
(delete 0 (mapcar #'string-to-number
(cdr (assoc "SEARCH"
(cdr result)))))))
(lambda (artnum)
(let ((artn (string-to-number artnum)))
(when (> artn 0)
(push (vector group artn 100)
artlist)
(setq arts (1+ arts)))))
(and (car result) (cdr (assoc "SEARCH" (cdr result)))))
(message "Searching %s... %d matches" group arts)))
(message "Searching %s...done" group))
(quit nil))
@ -1581,8 +1584,10 @@ server is of form 'backend:name'."
(or nnir-summary-line-format gnus-summary-line-format))
(remove-hook 'gnus-summary-article-delete-hook 'gnus-registry-action t)
(remove-hook 'gnus-summary-article-move-hook 'gnus-registry-action t)
(remove-hook 'gnus-summary-article-expire-hook 'gnus-registry-action t)
(add-hook 'gnus-summary-article-delete-hook 'nnir-registry-action t t)
(add-hook 'gnus-summary-article-move-hook 'nnir-registry-action t t)))
(add-hook 'gnus-summary-article-move-hook 'nnir-registry-action t t)
(add-hook 'gnus-summary-article-expire-hook 'nnir-registry-action t t)))

View file

@ -87,6 +87,8 @@ host.
Direct connections:
- `nntp-open-network-stream' (the default),
- `network-only' (the same as the above, but don't do automatic
STARTTLS upgrades).
- `nntp-open-ssl-stream',
- `nntp-open-tls-stream',
- `nntp-open-netcat-stream'.
@ -1267,6 +1269,7 @@ password contained in '~/.nntp-authinfo'."
(let ((coding-system-for-read nntp-coding-system-for-read)
(coding-system-for-write nntp-coding-system-for-write)
(map '((nntp-open-network-stream network)
(network-only network-only)
(nntp-open-ssl-stream tls)
(nntp-open-tls-stream tls))))
(if (assoc nntp-open-connection-function map)

View file

@ -75,10 +75,11 @@ is a string representing the capabilities of the server (if any).
The PARAMETERS is a keyword list that can have the following
values:
:type -- either `network', `tls', `shell' or `starttls'. If
omitted, the default is `network'. `network' will be
opportunistically upgraded to STARTTLS if both the server and
Emacs supports it.
:type -- either `network', `network-only, `tls', `shell' or
`starttls'. If omitted, the default is `network'. `network'
will be opportunistically upgraded to STARTTLS if both the server
and Emacs supports it. If you don't want STARTTLS upgrades, use
`network-only'.
:end-of-command -- a regexp saying what the end of a command is.
This defaults to \"\\n\".
@ -109,6 +110,9 @@ command to switch on STARTTLS otherwise."
stream)
greeting capabilities))))
(defun proto-stream-open-network-only (name buffer host service parameters)
(open-network-stream name buffer host service))
(defun proto-stream-open-network (name buffer host service parameters)
(let* ((start (with-current-buffer buffer (point)))
(stream (open-network-stream name buffer host service))