(www-char-display-feature-default): Use `www-char-feature' instead of
authorMORIOKA Tomohiko <tomo@kanji.zinbun.kyoto-u.ac.jp>
Thu, 18 Mar 2010 12:15:10 +0000 (21:15 +0900)
committerMORIOKA Tomohiko <tomo@kanji.zinbun.kyoto-u.ac.jp>
Thu, 18 Mar 2010 12:15:10 +0000 (21:15 +0900)
`char-feature'.
(www-char-display-feature-as-ucs): Likewise.
(www-display-char-desc): Ignore `$rev=latest' domain features.

cwiki-view.el

index c30519d..ae8bb22 100644 (file)
@@ -8,7 +8,7 @@
 (defun www-char-display-feature-default (char feature-name &optional value
                                              lang uri-char)
   (unless value
-    (setq value (char-feature char feature-name)))
+    (setq value (www-char-feature char feature-name)))
   (unless uri-char
     (setq uri-char (char-to-string char)))
   (www-html-display-paragraph
@@ -25,7 +25,7 @@
 
 (defun www-char-display-feature-as-ucs (char feature-name &optional value)
   (unless value
-    (setq value (char-feature char feature-name)))
+    (setq value (www-char-feature char feature-name)))
   (www-html-display-paragraph
    (format "= [[U+%s|http://www.unicode.org/cgi-bin/GetUnihanData.pl?codepoint=%s]] (%d)"
           (www-format-value-as-HEX value)
@@ -35,7 +35,8 @@
 (defun www-display-char-desc (uri-char &optional lang level)
   (unless level
     (setq level 1))
-  (let ((char (www-uri-decode-char uri-char)))
+  (let ((char (www-uri-decode-char uri-char))
+       feature-name logical-feature displayed-features)
     (when (characterp char)
       (when (= (length uri-char) 1)
        (setq uri-char (www-uri-encode-char char)))
       (dolist (cell (sort (char-attribute-alist char)
                          (lambda (a b)
                            (char-attribute-name< (car a)(car b)))))
-       (princ
-        (if (= level 1)
-            "<p>\n"
-          "<li>\n"))
-       (princ
-        (www-format-eval-list
-         (or (char-feature-property (car cell) 'format)
-             '((name) " : " (value)))
-         char (car cell) lang uri-char))
-       (princ
-        (format " <a href=\"%s?char=%s&feature=%s\"
+       (setq feature-name (symbol-name (car cell)))
+       (setq logical-feature
+             (if (string-match "[@/]\\$rev=latest$" feature-name)
+                 (intern (substring feature-name 0 (match-beginning 0)))
+               (car cell)))
+       (unless (memq logical-feature displayed-features)
+         (push logical-feature displayed-features)
+         (princ
+          (if (= level 1)
+              "<p>\n"
+            "<li>\n"))
+         (princ
+          (www-format-eval-list
+           (or (char-feature-property logical-feature ; (car cell)
+                                      'format)
+               '((name) " : " (value)))
+           char
+           logical-feature ; (car cell)
+           lang uri-char))
+         (princ
+          (format " <a href=\"%s?char=%s&feature=%s\"
 ><input type=\"submit\" value=\"note\" /></a>"
-                chise-wiki-edit-url
-                (www-format-encode-string uri-char)
-                (www-format-encode-string
-                 (www-uri-encode-feature-name
-                  (intern (format "%s*note" (car cell)))))))
-       (princ
-        (if (= level 1)
-            "</p>\n"
-          "<li>\n"))
-       )
+                  chise-wiki-edit-url
+                  (www-format-encode-string uri-char)
+                  (www-format-encode-string
+                   (www-uri-encode-feature-name
+                    (intern (format "%s*note"
+                                    logical-feature ; (car cell)
+                                    ))))))
+         (princ
+          (if (= level 1)
+              "</p>\n"
+            "<li>\n"))
+         ))
       (princ
        (if (= level 1)
           "<p>\n"