Commit Diff


commit - dcb9557ef8108694a0176593e52540b346a7d10f
commit + 45c2bb2adcedfc10b42f888605518be6ba4beda2
blob - be9da97b579a3709cad09a3b6f8aa3fe8cc4d44d
blob + 75a43cc52f48704cfb8cb19bffa459f73fdfc4a9
--- init.el
+++ init.el
@@ -146,6 +146,8 @@
   ("C-c i i s" . lh/insert-random-sha1)
   ("C-c i i u" . uuidgen)
   ("C-c i r f" . lh/insert-number-from-register-format)
+
+  ("C-c e x" . lh/xml-escape-region)
   
   ("<mouse-8>" . xref-go-back)
   ("<mouse-9>" . xref-go-forward)))
blob - /dev/null
blob + b6c717a73b33c743dee627dccea9d28883065f96 (mode 644)
--- /dev/null
+++ lisp/lh-xml.el
@@ -0,0 +1,19 @@
+;; -*- lexical-binding: t; -*-
+(require 'xml)
+
+(defun lh/xml-escape-region (beg end ARG)
+  (interactive "r\nP")
+  (when (not (region-active-p))
+    (setq beg (point-min))
+    (setq end (point-max)))
+  (let* ((text (buffer-substring-no-properties beg end))
+         (escaped (if ARG
+                      (with-temp-buffer
+                        (save-excursion
+                          (insert text))
+                        (xml-parse-string))
+                    (xml-escape-string text))))
+    (delete-region beg end)
+    (insert escaped)))
+
+(provide 'lh-xml)