aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard M. Stallman1995-11-18 17:44:30 +0000
committerRichard M. Stallman1995-11-18 17:44:30 +0000
commitb2b9d5753db2f8819136abcb4512957b58a5f8cb (patch)
treee409bf206fd6e06c9af4a82390554c9a190b01c1
parente4b62d7c109baabff4351208334be2f7890a69c2 (diff)
downloademacs-b2b9d5753db2f8819136abcb4512957b58a5f8cb.tar.gz
emacs-b2b9d5753db2f8819136abcb4512957b58a5f8cb.zip
(nntp-open-server): Accept a second optional parameter
for just changing virtual server. Doc fix. (nntp-possibly-change-server): Use it. (nntp-close-server): Ditto.
-rw-r--r--lisp/nntp.el50
1 files changed, 29 insertions, 21 deletions
diff --git a/lisp/nntp.el b/lisp/nntp.el
index 3498a33be58..beacf5d610d 100644
--- a/lisp/nntp.el
+++ b/lisp/nntp.el
@@ -334,7 +334,10 @@ instead call function `nntp-status-message' to get status message.")
334 'active) 334 'active)
335 'group)))) 335 'group))))
336 336
337(defun nntp-open-server (server &optional defs) 337(defun nntp-open-server (server &optional defs connectionless)
338 "Open the virtual server SERVER.
339If CONNECTIONLESS is non-nil, don't attempt to connect to any physical
340servers."
338 (nnheader-init-server-buffer) 341 (nnheader-init-server-buffer)
339 (if (nntp-server-opened server) 342 (if (nntp-server-opened server)
340 t 343 t
@@ -356,16 +359,20 @@ instead call function `nntp-status-message' to get status message.")
356 (setq nntp-server-alist (delq state nntp-server-alist))) 359 (setq nntp-server-alist (delq state nntp-server-alist)))
357 (nnheader-set-init-variables nntp-server-variables defs))) 360 (nnheader-set-init-variables nntp-server-variables defs)))
358 (setq nntp-current-server server) 361 (setq nntp-current-server server)
359 (or (nntp-server-opened server) 362 ;; We have now changed to the proper virtual server. We then
360 (progn 363 ;; check that the physical server is opened.
361 (if (member nntp-address nntp-timeout-servers) 364 (if (or (nntp-server-opened server)
362 nil 365 connectionless)
363 (run-hooks 'nntp-prepare-server-hook) 366 ()
364 (nntp-open-server-semi-internal nntp-address nntp-port-number)))))) 367 (if (member nntp-address nntp-timeout-servers)
368 nil
369 ;; We open a connection to the physical nntp server.
370 (run-hooks 'nntp-prepare-server-hook)
371 (nntp-open-server-semi-internal nntp-address nntp-port-number)))))
365 372
366(defun nntp-close-server (&optional server) 373(defun nntp-close-server (&optional server)
367 "Close connection to SERVER." 374 "Close connection to SERVER."
368 (nntp-possibly-change-server nil server) 375 (nntp-possibly-change-server nil server t)
369 (unwind-protect 376 (unwind-protect
370 (progn 377 (progn
371 ;; Un-set default sentinel function before closing connection. 378 ;; Un-set default sentinel function before closing connection.
@@ -525,10 +532,10 @@ instead call function `nntp-status-message' to get status message.")
525 532
526(defun nntp-request-group-description (group &optional server) 533(defun nntp-request-group-description (group &optional server)
527 "Get description of GROUP." 534 "Get description of GROUP."
528 (if (nntp-possibly-change-server nil server) 535 (nntp-possibly-change-server nil server)
529 (prog1 536 (prog1
530 (nntp-send-command "^.*\r?\n" "XGTITLE" group) 537 (nntp-send-command "^.*\r?\n" "XGTITLE" group)
531 (nntp-decode-text)))) 538 (nntp-decode-text)))
532 539
533(defun nntp-close-group (group &optional server) 540(defun nntp-close-group (group &optional server)
534 (setq nntp-current-group nil) 541 (setq nntp-current-group nil)
@@ -1190,15 +1197,16 @@ defining this function as macro."
1190 (setq list (cdr list))) 1197 (setq list (cdr list)))
1191 (car list)) 1198 (car list))
1192 1199
1193(defun nntp-possibly-change-server (newsgroup server) 1200(defun nntp-possibly-change-server (newsgroup server &optional connectionless)
1194 ;; We see whether it is necessary to change the newsgroup. 1201 "Check whether the virtual server needs changing."
1195 (and newsgroup 1202 (if (and server
1196 (progn 1203 (not (nntp-server-opened server)))
1197 (not (equal newsgroup nntp-current-group)) 1204 ;; This virtual server isn't open, so we (re)open it here.
1198 (nntp-request-group newsgroup server))) 1205 (nntp-open-server server nil t))
1199 (and server 1206 (if (and newsgroup
1200 (or (nntp-server-opened server) 1207 (not (equal newsgroup nntp-current-group)))
1201 (nntp-open-server server)))) 1208 ;; Set the proper current group.
1209 (nntp-request-group newsgroup server)))
1202 1210
1203(defun nntp-try-list-active (group) 1211(defun nntp-try-list-active (group)
1204 (nntp-list-active-group group) 1212 (nntp-list-active-group group)