bug-gnu-emacs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#30908: woman2-roff-buffer fails to restore set-text-properties, etc.


From: Ivan Shmakov
Subject: bug#30908: woman2-roff-buffer fails to restore set-text-properties, etc. on error
Date: Thu, 22 Mar 2018 18:12:49 +0000
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux)

Package: emacs
Version: 25.1.1
Tags: patch

        The woman2-roff-buffer function uses unwind-protect to restore
        the canonically-space-region, insert-and-inherit and
        set-text-properties functions it temporarily overrides.

        Unfortunately, the first thing (conditionally) called in the
        ‘unwind’ branch is the woman2-format-paragraphs function, which
        may result in error, thus precluding said restoration, leading to:

set-text-properties is an alias for ‘ignore’.

(set-text-properties &rest IGNORE)

Do nothing and return nil.
This function accepts any number of arguments, but ignores them.

        Please thus consider the patch MIMEd.

-- 
FSF associate member #7257  np. Sacred Armor of Antiriad — Traxer
--- woman.el.~1~        2017-11-05 15:00:52.696647297 +0000
+++ woman.el    2018-03-22 17:47:44.014986089 +0000
@@ -3710,13 +3710,14 @@ defun woman2-roff-buffer ()
               (set-marker to (woman-find-next-control-line)))
              ;; Call the appropriate function:
              (funcall fn to)))
-      (if (not (eobp))                 ; This should not happen, but ...
-         (woman2-format-paragraphs (copy-marker (point-max) t)
-                                    woman-left-margin))
-      (fset 'canonically-space-region canonically-space-region)
-      (fset 'set-text-properties set-text-properties)
-      (fset 'insert-and-inherit insert-and-inherit)
-      (set-marker to nil))))
+      (unwind-protect
+          (if (not (eobp))             ; This should not happen, but ...
+              (woman2-format-paragraphs (copy-marker (point-max) t)
+                                        woman-left-margin))
+        (fset 'canonically-space-region canonically-space-region)
+        (fset 'set-text-properties set-text-properties)
+        (fset 'insert-and-inherit insert-and-inherit)
+        (set-marker to nil)))))
 
 (defun woman-find-next-control-line (&optional pat)
   "Find and return start of next control line.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]