(:nickname riece-nickname)
(:username riece-username)
(:password)
- (:function #'open-network-stream)
+ (:function riece-default-open-connection-function)
(:coding riece-default-coding-system))
"Mapping from keywords to default values.
All keywords that can be used must be listed here."))
(error "Server closed"))))
(put 'riece-with-server-buffer 'lisp-indent-function 1)
+(put 'riece-with-server-buffer 'edebug-form-spec '(form body))
(defun riece-process-send-string (process string)
(with-current-buffer (process-buffer process)
"Type \\[riece-command-open-server] to open server.")))
(riece-process-send-string process string)))
+(eval-when-compile
+ (autoload 'riece-exit "riece"))
(defun riece-open-server (server server-name)
(riece-server-keyword-bind server
(let (selective-display
(message "Logging in to %s..." server-name))
(if riece-reconnect-with-password ;password incorrect or not set.
(unwind-protect
- ;; XEmacs signals an error when the keyboard cannot be grabbed.
- (condition-case nil
- (setq password (riece-read-passwd "Password: "))
- (error))
+ (setq password
+ (condition-case nil
+ (let (inhibit-quit)
+ (if (equal server-name "")
+ (riece-read-passwd "Password: ")
+ (riece-read-passwd (format "Password for %s: "
+ server-name))))
+ (quit
+ (if (equal server-name "")
+ (message "Password: Quit")
+ (message (format "Password for %s: Quit"
+ server-name)))
+ 'quit)))
(setq riece-reconnect-with-password nil)))
- (if password
- (riece-process-send-string process
- (format "PASS %s\r\n" password)))
- (riece-process-send-string process
- (format "USER %s * * :%s\r\n"
- (user-real-login-name)
- (or username
- "No information given")))
- (riece-process-send-string process (format "NICK %s\r\n" nickname))
- (with-current-buffer (process-buffer process)
- (setq riece-last-nickname riece-real-nickname
- riece-nick-accepted 'sent
- riece-coding-system coding))
- (setq riece-server-process-alist
- (cons (cons server-name process)
- riece-server-process-alist)))))
+ (if (eq password 'quit)
+ (delete-process process)
+ (if password
+ (riece-process-send-string process
+ (format "PASS %s\r\n" password)))
+ (riece-process-send-string process
+ (format "USER %s * * :%s\r\n"
+ (user-real-login-name)
+ (or username
+ "No information given")))
+ (riece-process-send-string process (format "NICK %s\r\n" nickname))
+ (with-current-buffer (process-buffer process)
+ (setq riece-last-nickname riece-real-nickname
+ riece-nick-accepted 'sent
+ riece-coding-system coding))
+ (setq riece-server-process-alist
+ (cons (cons server-name process)
+ riece-server-process-alist))))))
(defun riece-reset-process-buffer (process)
(save-excursion
(erase-buffer)))
(defun riece-close-server-process (process)
- (if riece-debug
- (delete-process process)
- (kill-buffer (process-buffer process)))
+ (kill-buffer (process-buffer process))
(setq riece-server-process-alist
(delq (rassq process riece-server-process-alist)
riece-server-process-alist)))
(throw 'found t))
(setq alist (cdr alist)))))))
-(eval-when-compile
- (autoload 'riece-exit "riece"))
(defun riece-quit-server-process (process &optional message)
- (run-at-time riece-quit-timeout nil
- (lambda (process)
- (when (rassq process riece-server-process-alist)
- (riece-close-server-process process)
- ;; If no server process is available, exit.
- (unless riece-server-process-alist
- (riece-exit))))
- process)
+ (if riece-quit-timeout
+ (riece-run-at-time riece-quit-timeout nil
+ (lambda (process)
+ (if (rassq process riece-server-process-alist)
+ (delete-process process)))
+ process))
(riece-process-send-string process
(if message
(format "QUIT :%s\r\n" message)