]> git.eshelyaron.com Git - emacs.git/commitdiff
Add new command 'enriched-toggle-markup'
authorLars Ingebrigtsen <larsi@gnus.org>
Thu, 19 May 2022 23:17:02 +0000 (01:17 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Thu, 19 May 2022 23:17:02 +0000 (01:17 +0200)
* lisp/textmodes/enriched.el (enriched-toggle-markup): New command
(bug#33855).

etc/NEWS
lisp/textmodes/enriched.el

index c3bc1f0f58b64f846b03cad9cd38d03d12178d39..6185c6ff6ab9efb6de305e9a9dce8ea964241edd 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -816,6 +816,13 @@ so automatically.
 \f
 * Changes in Specialized Modes and Packages in Emacs 29.1
 
+** Enriched Mode
+
+---
+*** New command 'enriched-toggle-markup'.
+This allows you to see the markup in 'enriched-mode' buffers (e.g.,
+the HELLO file).
+
 ** Shell Script Mode
 
 ---
@@ -2190,6 +2197,7 @@ platforms.
 This command lets you examine all data in the current selection and
 the clipboard, and insert it into the buffer.
 
++++
 ** New user option 'yank-transform-functions'.
 This function allows the user to alter the string to be inserted.
 
index 50ff668a9ffcd309a49952c9ea3e6292a10d8695..935be06812fda084b802e9837d4a3ee5734167d7 100644 (file)
@@ -539,6 +539,30 @@ the range of text to assign text property SYMBOL with value VALUE."
         (list start end 'display prop)
       (list start end 'display (list 'disable-eval prop)))))
 
+(defvar enriched--markup-shown)
+(defun enriched-toggle-markup ()
+  "Toggle whether to see markup in the current buffer."
+  (interactive)
+  (save-excursion
+    (save-restriction
+      (widen)
+      (with-silent-modifications
+        (if (bound-and-true-p enriched--markup-shown)
+            (progn
+              (setq-local enriched--markup-shown nil)
+              ;; Remove any faces, because they will be decoded, too.
+              (goto-char (point-min))
+              (let (match)
+                (while (setq match (text-property-search-forward 'face))
+                  (put-text-property (prop-match-beginning match)
+                                     (prop-match-end match)
+                                     'face nil)))
+              (enriched-decode (point-min) (point-max))
+              (enriched-mode 1))
+          (setq-local enriched--markup-shown t)
+          (enriched-encode (point-min) (point-max) (current-buffer))
+          (enriched-mode -1))))))
+
 (provide 'enriched)
 
 ;;; enriched.el ends here