Fixed.
[riece] / lisp / riece-identity.el
index 89e0e21..09c45bf 100644 (file)
@@ -67,7 +67,7 @@ RFC2812, 2.2 \"Character codes\" says:
   "Canonicalize identity PREFIX."
   (let ((i 0)
        c)
-    (setq prefix (copy-sequence prefix))
+    (setq prefix (downcase prefix))
     (while (< i (length prefix))
       (if (setq c (cdr (assq (aref prefix i)
                             riece-identity-prefix-case-pair-alist)))
@@ -138,7 +138,13 @@ will be added."
                   (riece-identity-server identity)))))
     (if riece-abbrev-identity-string-function
        (setq string (funcall riece-abbrev-identity-string-function string)))
-    (put-text-property 0 (length string) 'riece-identity identity string)
+    (riece-put-text-property-nonsticky 0 (length string)
+                                      'riece-identity identity
+                                      string)
+    (if prefix-only
+       (riece-put-text-property-nonsticky 0 (length string)
+                                          'riece-format-identity-prefix-only t
+                                          string))
     string))
 
 (defun riece-parse-identity (string)
@@ -156,7 +162,8 @@ The string will be expanded by
 
 (defun riece-completing-read-identity (prompt channels
                                              &optional predicate require-match
-                                             initial history default)
+                                             initial history default
+                                             no-server)
   "Read an identity object in the minibuffer, with completion.
 PROMPT is a string to prompt with; normally it ends in a colon and a space.
 CHANNELS is a list of identity objects.
@@ -165,16 +172,16 @@ The rest of arguments are the same as `completing-read'."
          (completing-read
           prompt
           (mapcar (lambda (channel)
-                    (list (riece-format-identity channel)))
+                    (list (riece-format-identity channel no-server)))
                   (delq nil (copy-sequence (or channels
                                                riece-current-channels))))
           predicate require-match initial history default))
         (identity
          (riece-parse-identity string)))
-    (unless (string-match (concat "^\\(" riece-channel-regexp "\\|"
-                                 riece-user-regexp "\\)")
-                         (riece-identity-prefix identity))
-      (error "Invalid channel name!"))
+;;;    (unless (string-match (concat "^\\(" riece-channel-regexp "\\|"
+;;;                              riece-user-regexp "\\)")
+;;;                      (riece-identity-prefix identity))
+;;;      (error "Invalid channel name!"))
     identity))
 
 (provide 'riece-identity)