diff options
| author | Richard M. Stallman | 1995-11-18 17:44:30 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 1995-11-18 17:44:30 +0000 |
| commit | b2b9d5753db2f8819136abcb4512957b58a5f8cb (patch) | |
| tree | e409bf206fd6e06c9af4a82390554c9a190b01c1 | |
| parent | e4b62d7c109baabff4351208334be2f7890a69c2 (diff) | |
| download | emacs-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.el | 50 |
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. | ||
| 339 | If CONNECTIONLESS is non-nil, don't attempt to connect to any physical | ||
| 340 | servers." | ||
| 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) |