emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Aaron Jensen <aaronjensen@gmail.com>
To: Noam Postavsky <npostavs@gmail.com>
Cc: Kyle Meyer <kyle@kyleam.com>, emacs-orgmode@gnu.org
Subject: Re: Fontification error
Date: Sun, 19 Mar 2017 12:50:33 -0700	[thread overview]
Message-ID: <CAHyO48wEtKBLwq2YHDoeniWPv0E540RCi9dHrF-6sng9fFJDZw@mail.gmail.com> (raw)
In-Reply-To: <CAM-tV--Zzsa_tZkUj4a=VWMMRj=GA1osreRfck4jD22tmDt+7A@mail.gmail.com>

That appeared to fix it for me! Thanks.

From cdf2c445e46d5691ee82adb1a6ca0bb0ae6bbd1b Mon Sep 17 00:00:00 2001
From: Aaron Jensen <aaronjensen@gmail.com>
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 <npostavs@gmail.com> wrote:
> On Sun, Mar 19, 2017 at 1:05 PM, Kyle Meyer <kyle@kyleam.com> 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	other threads:[~2017-03-19 19:50 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-19 15:19 Fontification error Aaron Jensen
2017-03-19 17:05 ` Kyle Meyer
2017-03-19 17:12   ` Sébastien Le Maguer
2017-03-19 18:04   ` Noam Postavsky
2017-03-19 19:50     ` Aaron Jensen [this message]
2017-03-19 22:58       ` Nicolas Goaziou
2017-03-20  1:03         ` Aaron Jensen
2017-05-06 16:53           ` Thomas S. Dye
  -- strict thread matches above, loose matches on Subject: below --
2017-02-13 16:58 Thomas S. Dye
2017-02-13 17:21 ` Nicolas Goaziou
2017-02-16 18:56   ` Sébastien Le Maguer
2017-02-16 21:31     ` Thomas S. Dye
2017-02-17  4:04     ` Thomas S. Dye

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAHyO48wEtKBLwq2YHDoeniWPv0E540RCi9dHrF-6sng9fFJDZw@mail.gmail.com \
    --to=aaronjensen@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    --cc=kyle@kyleam.com \
    --cc=npostavs@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).