[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

Re: about htmlize.el



>>>>> meadow-users-jp の No. 2812
>>>>> Message-Id: <20001124.112601.01436918.shirai@xxxxxxxxxxxxxxxxxxx> で、
>>>>> "白井" == Hideyuki SHIRAI (白井秀行) <shirai@xxxxxxxxxxxxxxxxxxx>さま曰く...

白井> どう考えても気持ち悪いので、こんな風にしてみました。この方が速い
白井> と思うし。

[...]

;; ごめんなさい、ついつい。 ^^;;;

(defvar htmlize-character-alist
  '((?& . "&amp;")
    (?< . "&lt;")
    (?> . "&gt;")
    (?\" . "&quot;")))

(defvar htmlize-character-regexp
  (concat "["
	  (mapconcat
	   (lambda (X)
	     (char-to-string (car X)))
	   htmlize-character-alist
	   "")
	  "]"))

(defun htmlize-protect-string (string)
  ;; Checking whether STRING contains dangerous stuff removes a lot of
  ;; unnecessary consing.
  (with-temp-buffer
    (insert string)
    (goto-char (point-min))
    (while (re-search-forward htmlize-character-regexp nil t)
      (insert (prog1
		  (cdr (assq (char-before) htmlize-character-alist))
		(delete-char -1))))
    (buffer-substring-no-properties (point-min) (point-max))))

-- 
鈴木圭一 / keiichi@xxxxxxxxx
PGP finger print (DH/DSS)
0B32 B37E 6DE9 3BC1 68A4  4089 7AAF 2B03 ECBD 614B