* mixi.el (mixi-entity-alist): New constant.
authorbg66 <bg66>
Mon, 10 Sep 2007 08:49:37 +0000 (08:49 +0000)
committerbg66 <bg66>
Mon, 10 Sep 2007 08:49:37 +0000 (08:49 +0000)
(mixi-encode-specials-string): New function.
* mixi-atom.el (mixi-make-atom-entry): Use it.

* mixi-atom.el (mixi-atom-self): New constant.
(mixi-make-atom): Use it.

ChangeLog
mixi-atom.el
mixi.el

index 572fab8..804dc68 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2007-09-10  OHASHI Akira  <bg66@koka-in.org>
+
+       * mixi.el (mixi-entity-alist): New constant.
+       (mixi-encode-specials-string): New function.
+       * mixi-atom.el (mixi-make-atom-entry): Use it.
+
+       * mixi-atom.el (mixi-atom-self): New constant.
+       (mixi-make-atom): Use it.
+
 2007-07-25  OHASHI Akira  <bg66@koka-in.org>
 
        * mixi.el (mixi-topic-comment-list-regexp): Fix regexp.
index 3c955e9..4cd250f 100644 (file)
   :type 'string
   :group 'mixi)
 
+(defcustom mixi-atom-self ""
+  "*URI for retrieving Atom Feed Documents representing this Atom feed."
+  :type 'string
+  :group 'mixi)
+
 (defcustom mixi-atom-title "Mixi Feed"
   "*Title for feed."
   :type 'string
@@ -96,7 +101,8 @@ RANGE is the range for getting articles.  If RANGE is nil, get all articles."
          " <id>" (mixi-make-tag-uri object) "</id>\n"
          " <updated>" (mixi-atom-make-date (mixi-object-time object))
          "</updated>\n"
-         " <summary>" (mixi-remove-markup (mixi-make-content object))
+         " <summary>" (mixi-encode-specials-string
+                       (mixi-remove-markup (mixi-make-content object)))
          "</summary>\n"
          "</entry>\n"))
 
@@ -121,6 +127,7 @@ RANGE is the range for getting articles.  If RANGE is nil, get all articles."
   (concat "<?xml version=\"1.0\" encoding=\""
          (symbol-name mixi-atom-coding-system) "\"?>\n"
          "<feed xmlns=\"" mixi-atom-namespace "\">\n"
+         "<link rel=\"self\" href=\"" mixi-atom-self "\"/>\n"
          "\n"
          "<title>" mixi-atom-title "</title>\n"
          "<link href=\"" mixi-url "\"/>\n"
diff --git a/mixi.el b/mixi.el
index 01a4d6a..185a9c8 100644 (file)
--- a/mixi.el
+++ b/mixi.el
@@ -513,6 +513,29 @@ Increase this value when unexpected error frequently occurs."
     (buffer-string)))
 
 ;; stolen (and modified) from w3m.el
+(defconst mixi-entity-alist '(("gt" . ">")
+                             ("lt" . "<")
+                             ("amp" . "&"))
+  "Alist of html character entities and values.")
+
+;; stolen (and modified) from w3m.el
+(defun mixi-encode-specials-string (str)
+  "Encode special characters in the string STR."
+  (let ((pos 0)
+       (buf))
+    (while (string-match "[<>&]" str pos)
+      (setq buf
+           (cons ";"
+                 (cons (car (rassoc (match-string 0 str) mixi-entity-alist))
+                       (cons "&"
+                             (cons (substring str pos (match-beginning 0))
+                                   buf))))
+           pos (match-end 0)))
+    (if buf
+       (apply 'concat (nreverse (cons (substring str pos) buf)))
+      str)))
+
+;; stolen (and modified) from w3m.el
 (defun mixi-url-encode-string (string)
   (apply (function concat)
         (mapcar