* riece-layout.el (riece-set-window-points): Move point in
[riece] / lisp / riece-identity.el
index 77e4474..f7a48cb 100644 (file)
@@ -32,7 +32,7 @@
 (defvar riece-expand-identity-string-function nil)
 
 (defvar riece-identity-prefix-case-table
-  (let ((table (copy-case-table (standard-case-table))))
+  (let ((table (riece-copy-case-table (standard-case-table))))
     (riece-set-case-syntax-pair ?\[ ?{ table)
     (riece-set-case-syntax-pair ?\] ?} table)
     (riece-set-case-syntax-pair ?\\ ?| table)
@@ -77,26 +77,29 @@ RFC2812, 2.2 \"Character codes\" says:
       (set-case-table old-table))))
 
 (defun riece-identity-equal-no-server (prefix1 prefix2)
-  "Return t, if IDENT1 and IDENT2 is equal without server."
+  "Return t, if IDENT1 and IDENT2 is equal without server part."
   (equal (riece-identity-canonicalize-prefix prefix1)
         (riece-identity-canonicalize-prefix prefix2)))
 
-(defun riece-identity-member (elt list)
+(defun riece-identity-member (elt list &optional no-server)
   "Return non-nil if an identity ELT is an element of LIST."
   (catch 'found
     (while list
-      (if (and (vectorp (car list))    ;needed because
-                                       ;riece-current-channels
-                                       ;contains nil.
-              (riece-identity-equal (car list) elt))
+      (if (and (car list)      ;needed because riece-current-channels
+                               ;contains nil.
+              (if no-server
+                  (riece-identity-equal-no-server (car list) elt)
+                (riece-identity-equal (car list) elt)))
          (throw 'found list)
        (setq list (cdr list))))))
 
-(defun riece-identity-assoc (elt alist)
+(defun riece-identity-assoc (elt alist &optional no-server)
   "Return non-nil if an identity ELT matches the car of an element of ALIST."
   (catch 'found
     (while alist
-      (if (riece-identity-equal (car (car alist)) elt)
+      (if (if no-server
+             (riece-identity-equal-no-server (car (car alist)) elt)
+           (riece-identity-equal (car (car alist)) elt))
          (throw 'found (car alist))
        (setq alist (cdr alist))))))
 
@@ -131,7 +134,7 @@ will be added."
   (let ((string
         (if (or prefix-only
                 (equal (riece-identity-server identity) ""))
-            (riece-identity-prefix identity)
+            (copy-sequence (riece-identity-prefix identity))
           (concat (riece-identity-prefix identity) " "
                   (riece-identity-server identity)))))
     (if riece-abbrev-identity-string-function