X-Git-Url: http://cgit.sxemacs.org/?a=blobdiff_plain;f=lisp%2Fnntp.el;h=ec9a66614b48e1238e0b55d4326be6f0ed730efe;hb=79d3c1458832eea2b70e7412137aa8124fda7543;hp=be5d1e6ff4cb5cdab7115204eeac8fded53ead16;hpb=992509a3574f9add376cc480db9bb5656285bd5b;p=gnus diff --git a/lisp/nntp.el b/lisp/nntp.el index be5d1e6ff..ec9a66614 100644 --- a/lisp/nntp.el +++ b/lisp/nntp.el @@ -1,7 +1,7 @@ ;;; nntp.el --- nntp access for Gnus -;; Copyright (C) 1987-1990, 1992-1998, 2000-2012 -;; Free Software Foundation, Inc. +;; Copyright (C) 1987-1990, 1992-1998, 2000-2015 Free Software +;; Foundation, Inc. ;; Author: Lars Magne Ingebrigtsen ;; Keywords: news @@ -25,9 +25,7 @@ ;;; Code: -;; For Emacs <22.2 and XEmacs. (eval-and-compile - (unless (fboundp 'declare-function) (defmacro declare-function (&rest r))) ;; In Emacs 24, `open-protocol-stream' is an autoloaded alias for ;; `make-network-stream'. (unless (fboundp 'open-protocol-stream) @@ -74,7 +72,7 @@ For instance, if you want Gnus to beep every time you connect to innd, you could say something like: \(setq nntp-server-action-alist - '((\"innd\" (ding)))) + \\='((\"innd\" (ding)))) You probably don't want to do that, though.") @@ -177,7 +175,7 @@ This variable is used by the various nntp-open-via-* methods.") "*Whether both telnet client and server support the ENVIRON option. If non-nil, there will be no prompt for a login name.") -(defvoo nntp-via-shell-prompt "bash\\|\$ *\r?$\\|> *\r?" +(defvoo nntp-via-shell-prompt "bash\\|[$>] *\r?$" "*Regular expression to match the shell prompt on an intermediate host. This variable is used by the `nntp-open-via-telnet-and-telnet' method.") @@ -293,7 +291,7 @@ update their active files often, this can help.") (defvar nntp-async-process-list nil) (defvar nntp-authinfo-rejected nil -"A custom error condition used to report 'Authentication Rejected' errors. +"A custom error condition used to report `Authentication Rejected' errors. Condition handlers that match just this condition ensure that the nntp backend doesn't catch this error.") (put 'nntp-authinfo-rejected 'error-conditions '(error nntp-authinfo-rejected)) @@ -730,7 +728,7 @@ command whose response triggered the error." (> number nntp-large-newsgroup) (zerop (% received 20)) (nnheader-message 6 "NNTP: Receiving headers... %d%%" - (/ (* received 100) number))) + (floor (* received 100.0) number))) (nntp-accept-response)))) (and (numberp nntp-large-newsgroup) (> number nntp-large-newsgroup) @@ -967,7 +965,7 @@ command whose response triggered the error." (> number nntp-large-newsgroup) (zerop (% received 20)) (nnheader-message 6 "NNTP: Receiving articles... %d%%" - (/ (* received 100) number))) + (floor (* received 100.0) number))) (nntp-accept-response)))) (and (numberp nntp-large-newsgroup) (> number nntp-large-newsgroup) @@ -1221,14 +1219,17 @@ If SEND-IF-FORCE, only send authinfo to the server if the nntp-authinfo-user user)) (unless (member user '(nil "")) (nntp-send-command "^3.*\r?\n" "AUTHINFO USER" user) - (when t ;???Should check if AUTHINFO succeeded - (nntp-send-command - "^2.*\r?\n" "AUTHINFO PASS" - (or passwd - nntp-authinfo-password - (setq nntp-authinfo-password - (read-passwd (format "NNTP (%s@%s) password: " - user nntp-address)))))))))) + (let ((result + (nntp-send-command + "^2.*\r?\n" "AUTHINFO PASS" + (or passwd + nntp-authinfo-password + (setq nntp-authinfo-password + (read-passwd (format "NNTP (%s@%s) password: " + user nntp-address))))))) + (if (not result) + (signal 'nntp-authinfo-rejected "Password rejected") + result)))))) ;;; Internal functions. @@ -1282,7 +1283,7 @@ If SEND-IF-FORCE, only send authinfo to the server if the "nntpd" pbuffer nntp-address nntp-port-number :type (cadr (assoc nntp-open-connection-function map)) :end-of-command "^\\([2345]\\|[.]\\).*\n" - :capability-command "CAPABILITIES\r\n" + :capability-command "HELP\r\n" :success "^3" :starttls-function (lambda (capabilities) @@ -1763,7 +1764,7 @@ If SEND-IF-FORCE, only send authinfo to the server if the (defvoo nntp-open-telnet-envuser nil "*If non-nil, telnet session (client and server both) will support the ENVIRON option and not prompt for login name.") -(defvoo nntp-telnet-shell-prompt "bash\\|\$ *\r?$\\|> *\r?" +(defvoo nntp-telnet-shell-prompt "bash\\|[$>] *\r?$" "*Regular expression to match the shell prompt on the remote machine.") (defvoo nntp-rlogin-program "rsh"