Fixed.
[riece] / lisp / riece-400.el
index 5a45b66..014d974 100644 (file)
 (require 'riece-misc)
 
 (eval-when-compile
-  (autoload 'riece-default-handle-numeric-reply "riece-filter"))
+  (autoload 'riece-default-handle-numeric-reply "riece-handle"))
 (defun riece-handle-default-400-message (prefix number name string)
   (riece-default-handle-numeric-reply
    riece-error-prefix prefix number name string))
 
+(defun riece-handle-read-string (prompt)
+  (condition-case nil
+      (let (inhibit-quit)
+       (read-string prompt))
+    (quit
+     (ignore (message "%s" (concat prompt "Quit"))))))
+
 (defun riece-handle-432-message (prefix number name string)
   "ERR_ERRONEUSNICKNAME        \"<nick> :Erroneous nickname\"."
-  (riece-send-string
-   (format "NICK %s\r\n"
-          (read-string
-           (format "Erroneous nickname \"%s\".  Choose a new one: "
-                   (car (riece-split-parameters string)))))))
+  (let ((nickname
+        (riece-handle-read-string
+         (format "Erroneous nickname \"%s\".  Choose a new one: "
+                 (car (riece-split-parameters string))))))
+    (if nickname
+       (riece-send-string (format "NICK %s\r\n" nickname)))))
 
 (defun riece-handle-433-message (prefix number name string)
   "ERR_NICKNAMEINUSE \"<nick> :Nickname is already in use\"."
-  (riece-send-string
-   (format "NICK %s\r\n"
-          (read-string
-           (format "Nickname \"%s\" already in use.  Choose a new one: "
-                   (car (riece-split-parameters string)))))))
+  (let ((nickname
+        (riece-handle-read-string
+         (format "Nickname \"%s\" already in use.  Choose a new one: "
+                 (car (riece-split-parameters string))))))
+    (if nickname
+       (riece-send-string (format "NICK %s\r\n" nickname)))))
 
 (defun riece-handle-464-message (prefix number name string)
   "ERR_PASSWDMISMATCH \":Password incorrect\"."