emacs-orgmode
[Top][All Lists]
Advanced

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

Re: [O] Fontification error


From: Aaron Jensen
Subject: Re: [O] Fontification error
Date: Sun, 19 Mar 2017 12:50:33 -0700

That appeared to fix it for me! Thanks.

>From cdf2c445e46d5691ee82adb1a6ca0bb0ae6bbd1b Mon Sep 17 00:00:00 2001
From: Aaron Jensen <address@hidden>
Date: Sun, 19 Mar 2017 12:49:18 -0700
Subject: [PATCH] Reduce scope of inhibit-modification-hooks

This fixes a fontification error that some users were having.
---
 lisp/org-src.el | 26 +++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)

diff --git a/lisp/org-src.el b/lisp/org-src.el
index dfc422b..b0f952f 100644
--- a/lisp/org-src.el
+++ b/lisp/org-src.el
@@ -525,19 +525,19 @@ as `org-src-fontify-natively' is non-nil."
          (let ((inhibit-modification-hooks nil))
            (erase-buffer)
            ;; Add string and a final space to ensure property change.
-           (insert string " ")
-           (unless (eq major-mode lang-mode) (funcall lang-mode))
-           (org-font-lock-ensure)
-           (let ((pos (point-min)) next)
-             (while (setq next (next-property-change pos))
-               ;; Handle additional properties from font-lock, so as to
-               ;; preserve, e.g., composition.
-               (dolist (prop (cons 'face font-lock-extra-managed-props))
-                 (let ((new-prop (get-text-property pos prop)))
-                   (put-text-property
-                    (+ start (1- pos)) (1- (+ start next)) prop new-prop
-                    org-buffer)))
-               (setq pos next)))))
+           (insert string " "))
+         (unless (eq major-mode lang-mode) (funcall lang-mode))
+         (org-font-lock-ensure)
+         (let ((pos (point-min)) next)
+           (while (setq next (next-property-change pos))
+             ;; Handle additional properties from font-lock, so as to
+             ;; preserve, e.g., composition.
+             (dolist (prop (cons 'face font-lock-extra-managed-props))
+               (let ((new-prop (get-text-property pos prop)))
+                 (put-text-property
+                  (+ start (1- pos)) (1- (+ start next)) prop new-prop
+                  org-buffer)))
+             (setq pos next))))
        ;; Add Org faces.
        (let ((src-face (nth 1 (assoc-string lang org-src-block-faces t))))
           (when (or (facep src-face) (listp src-face))
--
2.10.0

On Sun, Mar 19, 2017 at 11:04 AM, Noam Postavsky <address@hidden> wrote:
> On Sun, Mar 19, 2017 at 1:05 PM, Kyle Meyer <address@hidden> wrote:
>>>
>>>     * lisp/org-src.el (org-src-font-lock-fontify-block): Let-bind
>>>     `inhibit-modification-hooks' to nil, since this function can be called
>>>     from jit-lock-function which binds that variable to t (Bug#25132).
>>>
>>>     Call modification hooks in org-src fontify buffers
>>>     ae8264c5cccf19d5b25a340a605bf2f07de1577e
>>>     Noam Postavsky
>>>     Sun Jan 29 11:01:32 2017 -0500
>>>
>>> At the moment, the minimum ECM I know of is to install spacemacs and
>>> open an org file containing:
>>
>> [+cc Noam because I'm not sure if he follows this list.]
>
> [Thanks, I don't follow this list indeed]
>
>>
>> I backported this commit to the Org repo, but I don't have any good
>> guesses at what's leading to the error below.
>
> I think the problem is that the let-binding's scope is too big, it's
> applying to a text property change on the original org buffer, which
> seems to cause problems with one of its modifcation hooks due to
> narrowing. Actually, I initially posted the patch with a smaller
> binding, but then enlarged it before I pushed it; I don't remember
> why...
>
> Could someone who can reproduce this problem try shrinking the scope
> of (let ((inhibit-modification-hooks nil))...) to stop after the
> (insert " ") as in [1], and see if that fixes it?
>
> [1]: 
> https://debbugs.gnu.org/cgi/bugreport.cgi?bug=25132;att=3;filename=v1-0001-Call-modification-hooks-in-org-src-fontify-buffer.patch;msg=22



reply via email to

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