do on servers that use strict access control.")
(add-hook 'nntp-server-opened-hook 'nntp-send-mode-reader)
+(defvoo nntp-authinfo-function 'nntp-send-authinfo
+ "Function used to send AUTHINFO to the server.")
+
(defvoo nntp-server-action-alist
'(("nntpd 1\\.5\\.11t"
(remove-hook 'nntp-server-opened-hook 'nntp-send-mode-reader)))
"Retrieve group info on GROUPS."
(nntp-possibly-change-group nil server)
(save-excursion
- (set-buffer nntp-server-buffer)
+ (set-buffer (nntp-find-connection-buffer nntp-server-buffer))
;; The first time this is run, this variable is `try'. So we
;; try.
(when (eq nntp-server-list-active-group 'try)
(while (re-search-forward "^[.2-5]" nil t)
(delete-region (match-beginning 0)
(progn (forward-line 1) (point))))
+ (copy-to-buffer nntp-server-buffer (point-min) (point-max))
'active))))
- (defun nntp-try-list-active (group)
+(defun nntp-try-list-active (group)
(nntp-list-active-group group)
(save-excursion
- (set-buffer nntp-server-buffer)
(goto-char (point-min))
(cond ((looking-at "5[0-9]+")
(setq nntp-server-list-active-group nil))
(when (nntp-send-command-and-decode
"\r?\n\\.\r?\n" "ARTICLE"
(if (numberp article) (int-to-string article) article))
- (when buffer
+ (when (and buffer
+ (not (equal buffer nntp-server-buffer)))
(save-excursion
(set-buffer nntp-server-buffer)
(copy-to-buffer buffer (point-min) (point-max))
(if (and (= beg (point-min))
(memq (char-after beg) '(?4 ?5)))
;; Report back error messages.
- (progn
- (nntp-snarf-error-message)
- (funcall nntp-process-callback nil))
+ (save-excursion
+ (goto-char beg)
+ (if (looking-at "480")
+ (funcall nntp-authinfo-function)
+ (nntp-snarf-error-message)
+ (funcall nntp-process-callback nil)))
(goto-char end)
(when (and (> (point) nntp-process-start-point)
(re-search-backward nntp-process-wait-for
nntp-process-start-point t))
- (when nntp-process-decode
- ;(nntp-decode-text)
- )
(when (buffer-name (get-buffer nntp-process-to-buffer))
(let ((cur (current-buffer))
(start nntp-process-start-point))
(save-excursion
(set-buffer (get-buffer nntp-process-to-buffer))
(goto-char (point-max))
- (insert-buffer-substring cur start))))
+ (let ((b (point)))
+ (insert-buffer-substring cur start)
+ (narrow-to-region b (point-max))
+ (nntp-decode-text)
+ (goto-char (point-min))
+ (gnus-delete-line)
+ (widen)))))
(goto-char end)
- ;(erase-buffer)
(let ((callback nntp-process-callback)
(nntp-inside-change-function t))
(setq nntp-process-callback nil)
(save-excursion
(set-buffer (process-buffer process))
(goto-char (point-min))
- (while (not (looking-at "[2345]"))
+ (while (or (not (memq (following-char) '(?2 ?3 ?4 ?5)))
+ (looking-at "480"))
+ (when (looking-at "480")
+ (erase-buffer)
+ (funcall nntp-authinfo-function))
(nntp-accept-process-output process)
(goto-char (point-min)))
(prog1