Mercurial > emacs
comparison lisp/nntp.el @ 13588:c50d9d86eda9
(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.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Sat, 18 Nov 1995 17:44:30 +0000 |
parents | 178d730efae2 |
children | 9b68e9a5cae1 |
comparison
equal
deleted
inserted
replaced
13587:a0c1c62e2c4a | 13588:c50d9d86eda9 |
---|---|
332 (delete-region (match-beginning 0) | 332 (delete-region (match-beginning 0) |
333 (progn (forward-line 1) (point)))) | 333 (progn (forward-line 1) (point)))) |
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 |
341 (if (or (stringp (car defs)) | 344 (if (or (stringp (car defs)) |
342 (numberp (car defs))) | 345 (numberp (car defs))) |
354 (progn | 357 (progn |
355 (nnheader-restore-variables (nth 1 state)) | 358 (nnheader-restore-variables (nth 1 state)) |
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. |
372 (and nntp-server-process | 379 (and nntp-server-process |
373 (eq 'nntp-default-sentinel | 380 (eq 'nntp-default-sentinel |
523 (defun nntp-list-active-group (group &optional server) | 530 (defun nntp-list-active-group (group &optional server) |
524 (nntp-send-command "^.*\r?\n" "LIST ACTIVE" group)) | 531 (nntp-send-command "^.*\r?\n" "LIST ACTIVE" group)) |
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) |
535 t) | 542 t) |
536 | 543 |
1188 "Return last element of LIST." | 1195 "Return last element of LIST." |
1189 (while (cdr list) | 1196 (while (cdr list) |
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) |
1205 (save-excursion | 1213 (save-excursion |
1206 (set-buffer nntp-server-buffer) | 1214 (set-buffer nntp-server-buffer) |