]> code.delx.au - gnu-emacs/blobdiff - lisp/gnus/html2text.el
(nnheader-init-server-buffer): Use with-current-buffer.
[gnu-emacs] / lisp / gnus / html2text.el
index 0ecd1a370785ef9fa2507ffa4700c2974b961e25..cb4d7dde5bb7c3a93d5d62abe513fe3509c4f91d 100644 (file)
@@ -1,6 +1,6 @@
 ;;; html2text.el --- a simple html to plain text converter
 
-;; Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+;; Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
 
 ;; Author: Joakim Hove <hove@phys.ntnu.no>
 
@@ -8,7 +8,7 @@
 
 ;; GNU Emacs is free software; you can redistribute it and/or modify
 ;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation; either version 2, or (at your option)
+;; the Free Software Foundation; either version 3, or (at your option)
 ;; any later version.
 
 ;; GNU Emacs is distributed in the hope that it will be useful,
 (defvar html2text-format-single-element-list '(("hr" . html2text-clean-hr)))
 
 (defvar html2text-replace-list
-  '(("&nbsp;" . " ") ("&gt;" . ">") ("&lt;" . "<") ("&quot;" . "\"")
-    ("&amp;" . "&") ("&apos;" . "'"))
+  '(("&acute;" . "`")
+    ("&amp;" . "&")
+    ("&apos;" . "'")
+    ("&brvbar;" . "|")
+    ("&cent;" . "c")
+    ("&circ;" . "^")
+    ("&copy;" . "(C)")
+    ("&curren;" . "(#)")
+    ("&deg;" . "degree")
+    ("&divide;" . "/")
+    ("&euro;" . "e")
+    ("&frac12;" . "1/2")
+    ("&gt;" . ">")
+    ("&iquest;" . "?")
+    ("&laquo;" . "<<")
+    ("&ldquo" . "\"")
+    ("&lsaquo;" . "(")
+    ("&lsquo;" . "`")
+    ("&lt;" . "<")
+    ("&mdash;" . "--")
+    ("&nbsp;" . " ")
+    ("&ndash;" . "-")
+    ("&permil;" . "%%")
+    ("&plusmn;" . "+-")
+    ("&pound;" . "£")
+    ("&quot;" . "\"")
+    ("&raquo;" . ">>")
+    ("&rdquo" . "\"")
+    ("&reg;" . "(R)")
+    ("&rsaquo;" . ")")
+    ("&rsquo;" . "'")
+    ("&sect;" . "§")
+    ("&sup1;" . "^1")
+    ("&sup2;" . "^2")
+    ("&sup3;" . "^3")
+    ("&tilde;" . "~"))
   "The map of entity to text.
 
 This is an alist were each element is a dotted pair consisting of an
@@ -229,12 +263,12 @@ formatting, and then moved afterward.")
   (goto-char p1)
   (let ((item-nr 0)
        (items   0))
-    (while (re-search-forward "<li>" p2 t)
+    (while (search-forward "<li>" p2 t)
       (setq items (1+ items)))
     (goto-char p1)
     (while (< item-nr items)
       (setq item-nr (1+ item-nr))
-      (re-search-forward "<li>" (point-max) t)
+      (search-forward "<li>" (point-max) t)
       (cond
        ((string= list-type "ul") (insert " o "))
        ((string= list-type "ol") (insert (format " %s: " item-nr)))
@@ -244,7 +278,7 @@ formatting, and then moved afterward.")
   (goto-char p1)
   (let ((items   0)
        (item-nr 0))
-    (while (re-search-forward "<dt>" p2 t)
+    (while (search-forward "<dt>" p2 t)
       (setq items (1+ items)))
     (goto-char p1)
     (while (< item-nr items)
@@ -342,8 +376,7 @@ formatting, and then moved afterward.")
 
 (defun html2text-fix-paragraph (p1 p2)
   (goto-char p1)
-  (let ((has-br-line)
-       (refill-start)
+  (let ((refill-start)
        (refill-stop))
     (when (re-search-forward "<br>$" p2 t)
       (goto-char p1)
@@ -352,7 +385,7 @@ formatting, and then moved afterward.")
        (setq refill-start (point))
        (goto-char p2)
        (re-search-backward ".+[^<][^b][^r][^>]$" refill-start t)
-       (next-line 1)
+       (forward-line 1)
        (end-of-line)
        ;; refill-stop should ideally be adjusted to
        ;; accomodate the "<br>" strings which are removed