(service (match-string 2 string))
(password (substring string (match-end 0)))
plist)
- (push `(:host ,host) plist)
+ (setq plist (cons `(:host ,host) plist))
(unless (equal service "")
- (push `(:service ,(string-to-int service)) plist))
+ (setq plist (cons `(:service ,(string-to-int service)) plist)))
(unless (equal password "")
- (push `(:password ,(substring password 1)) plist))
+ (setq plist (cons `(:password ,(substring password 1)) plist)))
(apply #'nconc plist))))
(defun riece-server-name-to-server (server-name)
(if entry
(unless (listp (cdr entry))
(setcdr entry (riece-server-parse-string (cdr entry))))
- (setq entry (cons server-name (riece-server-parse-string server-name)))
- (push entry riece-server-alist)
- (setq riece-save-variables-are-dirty t))
+ (setq entry (cons server-name (riece-server-parse-string server-name))
+ riece-server-alist (cons entry riece-server-alist)
+ riece-save-variables-are-dirty t))
(cdr entry)))
(defun riece-open-server (server server-name)
(let ((riece-overriding-server-name server-name)
(channels riece-current-channels))
(while channels
- (if (equal (riece-identity-server (car channels))
- server-name)
+ (if (and (car channels)
+ (equal (riece-identity-server (car channels))
+ server-name))
(riece-part-channel (car channels)))
(setq channels (cdr channels)))
(riece-redisplay-buffers))