commit 45c2bb2adcedfc10b42f888605518be6ba4beda2 from: Lukas Henkel date: Mon Oct 17 18:52:15 2022 UTC Add function to escape/unescape xml 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) ("" . xref-go-back) ("" . 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)