Add my-* prefix to html-charref-* functions. Add support for < /
> / & to un-escape function.
--- a/.emacs-my Sat Jan 23 21:08:36 2016 +0200
+++ b/.emacs-my Thu Jan 28 22:55:06 2016 +0200
@@ -2885,7 +2885,7 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
(message "html")
-(defun html-charref-escape-region (start end)
+(defun my-html-charref-escape-region (start end)
(interactive "r")
(save-excursion
(save-restriction
@@ -2898,43 +2898,52 @@
(replace-string ">" ">")
)))
-(defun html-charref-from-char (char)
+(defun my-html-charref-from-char (char)
(format "&#%d;" char)
)
-(defun html-charref-from-string (string)
+(defun my-html-charref-from-string (string)
(let ((res ""))
(mapc
- (lambda (char) (setq res (concat res (html-charref-from-char char))))
+ (lambda (char) (setq res (concat res (my-html-charref-from-char char))))
string)
res
) )
-(defun html-charref-escape-region2 (begin end &optional prefix)
+(defun my-html-charref-escape-region2 (begin end &optional prefix)
(interactive "r\nP")
(if prefix
(save-excursion
(goto-char begin)
- (insert (html-charref-from-string (delete-and-extract-region begin end))))
- (html-charref-from-string (buffer-substring begin end))
+ (insert (my-html-charref-from-string (delete-and-extract-region begin end))))
+ (my-html-charref-from-string (buffer-substring begin end))
))
-(defun html-charref-to-string (html)
- (let ((res "") (pos 0))
- (while (string-match "&#\\([[:digit:]]+\\);" html pos)
- (setq res (concat res (string (string-to-int (substring html (match-beginning 1) (match-end 1)) 10))))
- (setq pos (match-end 0))
- )
- res
- ) )
-
-(defun html-charref-unescape-region (begin end &optional prefix)
+(defun my-html-charref-to-string (html)
+ (let (str)
+ (with-temp-buffer
+ (insert html)
+ (goto-char (point-min))
+ (while (search-forward-regexp "&\\(?:#\\([[:digit:]]+\\)\\|\\(lt\\|gt\\|amp\\)\\);" nil t)
+ (setq str (or (match-string 1) (match-string 2)))
+ (cond
+ ((equal str "lt")
+ (replace-match "<" t t))
+ ((equal str "gt")
+ (replace-match ">" t t))
+ ((equal str "amp")
+ (replace-match "&" t t))
+ ((> (string-to-number str) 0)
+ (replace-match (string (string-to-number str 10)) t t))))
+ (buffer-string))))
+
+(defun my-html-charref-unescape-region (begin end &optional prefix)
(interactive "r\nP")
(if prefix
(save-excursion
(goto-char begin)
- (insert (html-charref-to-string (delete-and-extract-region begin end))))
- (html-charref-to-string (buffer-substring begin end))
+ (insert (my-html-charref-to-string (delete-and-extract-region begin end))))
+ (my-html-charref-to-string (buffer-substring begin end))
))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;