Narrow scope of modification hook renabling in org-src fontification

Modification hooks should be enabled while modifying text in the
org-src temp buffer, but in 2017-01-29 "Call modification hooks in
org-src fontify buffers" the hooks were enabled also for modifications
to the original org buffer.  This causes fontification errors when
combined with certain packages, as reported in
http://lists.gnu.org/archive/html/emacs-orgmode/2017-03/msg00420.html.

* lisp/org/org-src.el (org-src-font-lock-fontify-block): Reduce scope
of inhibit-modification-hooks let-binding.
This commit is contained in:
Noam Postavsky 2017-03-21 09:03:47 -04:00
parent e0e9db4c84
commit d38fd9229c

View file

@ -918,15 +918,15 @@ fontification of code blocks see `org-src-fontify-block' and
;; from `jit-lock-function' (Bug#25132). ;; from `jit-lock-function' (Bug#25132).
(let ((inhibit-modification-hooks nil)) (let ((inhibit-modification-hooks nil))
(delete-region (point-min) (point-max)) (delete-region (point-min) (point-max))
(insert string " ") ;; so there's a final property change (insert string " ")) ;; so there's a final property change
(unless (eq major-mode lang-mode) (funcall lang-mode)) (unless (eq major-mode lang-mode) (funcall lang-mode))
(org-font-lock-ensure) (org-font-lock-ensure)
(setq pos (point-min)) (setq pos (point-min))
(while (setq next (next-single-property-change pos 'face)) (while (setq next (next-single-property-change pos 'face))
(put-text-property (put-text-property
(+ start (1- pos)) (1- (+ start next)) 'face (+ start (1- pos)) (1- (+ start next)) 'face
(get-text-property pos 'face) org-buffer) (get-text-property pos 'face) org-buffer)
(setq pos next)))) (setq pos next)))
(add-text-properties (add-text-properties
start end start end
'(font-lock-fontified t fontified t font-lock-multiline t)) '(font-lock-fontified t fontified t font-lock-multiline t))