* riece-layout.el (riece-set-window-points): Check whether the end
[riece] / lisp / riece-log.el
index 8d98e66..8acc9da 100644 (file)
@@ -78,21 +78,20 @@ If integer, flash back only this line numbers. t means all lines."
 
 (defun riece-log-get-directory (identity)
   (let ((channel (riece-identity-prefix identity))
-       (server (riece-identity-server identity)))
-    (let ((map (assoc channel riece-log-directory-map)))
-      (if map
-         (expand-file-name (cdr map) riece-log-directory)
-       (if (string-match (concat riece-channel-regexp
-                                 "\\([^:]+\\)\\(:\\*\\.\\(.*\\)\\)?") channel)
-           (let ((name (match-string 1 channel))
-                 (suffix (match-string 3 channel)))
-             (let ((name (if suffix (concat name "-" suffix) name)))
-               (if server
-                   (expand-file-name
-                    name
-                    (expand-file-name server riece-log-directory))
-                 (expand-file-name name riece-log-directory))))
-         riece-log-directory)))))
+       (server (riece-identity-server identity))
+       (map (assoc (riece-format-identity identity) riece-log-directory-map))
+        name)
+    (cond (map (setq name (cdr map)))
+         ((string-match riece-channel-regexp channel)
+          (let ((suffix (match-string 2 channel)))
+            (setq name (substring channel (match-end 1) (match-beginning 2)))
+            (when (and (stringp suffix)
+                       (string-match "^:\\*\\.\\(.*\\)" suffix))
+              (setq name (concat name "-" (match-string 1 suffix))))))
+         (t (setq name "priv")))
+    (if server
+       (expand-file-name name (expand-file-name server riece-log-directory))
+      (expand-file-name name riece-log-directory))))
 
 (defun riece-log-flashback (identity)
   (when riece-log-flashback