* Re: Fontification error
@ 2017-03-19 15:19 Aaron Jensen
2017-03-19 17:05 ` Kyle Meyer
0 siblings, 1 reply; 13+ messages in thread
From: Aaron Jensen @ 2017-03-19 15:19 UTC (permalink / raw)
To: emacs-orgmode
This is in reply to the Fontification error Thomas S. Dye reported on
Feb 13 2017:
http://lists.gnu.org/archive/html/emacs-orgmode/2017-02/msg00280.html
I was able to bisect this error to the following commit:
f2a5104e45b6f44a08960ae49ba20c124a8fa9d8 is the first bad commit
commit f2a5104e45b6f44a08960ae49ba20c124a8fa9d8
Author: Noam Postavsky <npostavs@gmail.com>
Date: Sat Jan 7 16:05:19 2017 -0500
Backport commit ae8264c5cc from Emacs
* 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:
#+begin_src emacs-lisp
()
#+end_src
This is the stack trace if I remove the condition-case that leads to
the fontification error warning:
Debugger entered--Lisp error: (args-out-of-range 6 23)
put-text-property(23 6 fontified nil)
jit-lock-after-change(23 24 1)
put-text-property(23 24 face nil #<buffer test.org>)
(let ((new-prop (get-text-property pos prop))) (put-text-property (+
start (1- pos)) (1- (+ start next)) prop new-prop org-buffer))
(let ((prop (car --dolist-tail--))) (let ((new-prop
(get-text-property pos prop))) (put-text-property (+ start (1- pos))
(1- (+ start next)) prop new-prop org-buffer)) (setq --dolist-tail--
(cdr --dolist-tail--)))
(while --dolist-tail-- (let ((prop (car --dolist-tail--))) (let
((new-prop (get-text-property pos prop))) (put-text-property (+ start
(1- pos)) (1- (+ start next)) prop new-prop org-buffer)) (setq
--dolist-tail-- (cdr --dolist-tail--))))
(let ((--dolist-tail-- (cons (quote face)
font-lock-extra-managed-props))) (while --dolist-tail-- (let ((prop
(car --dolist-tail--))) (let ((new-prop (get-text-property pos prop)))
(put-text-property (+ start (1- pos)) (1- (+ start next)) prop
new-prop org-buffer)) (setq --dolist-tail-- (cdr --dolist-tail--)))))
(while (setq next (next-property-change pos)) (let ((--dolist-tail--
(cons (quote face) font-lock-extra-managed-props))) (while
--dolist-tail-- (let ((prop (car --dolist-tail--))) (let ((new-prop
(get-text-property pos prop))) (put-text-property (+ start (1- pos))
(1- (+ start next)) prop new-prop org-buffer)) (setq --dolist-tail--
(cdr --dolist-tail--))))) (setq pos next))
(let ((pos (point-min)) next) (while (setq next
(next-property-change pos)) (let ((--dolist-tail-- (cons (quote face)
font-lock-extra-managed-props))) (while --dolist-tail-- (let ((prop
(car --dolist-tail--))) (let ((new-prop ...)) (put-text-property (+
start ...) (1- ...) prop new-prop org-buffer)) (setq --dolist-tail--
(cdr --dolist-tail--))))) (setq pos next)))
(let ((inhibit-modification-hooks nil)) (erase-buffer) (insert
string " ") (if (eq major-mode lang-mode) nil (funcall lang-mode))
(org-font-lock-ensure) (let ((pos (point-min)) next) (while (setq next
(next-property-change pos)) (let ((--dolist-tail-- (cons (quote face)
font-lock-extra-managed-props))) (while --dolist-tail-- (let ((prop
...)) (let (...) (put-text-property ... ... prop new-prop org-buffer))
(setq --dolist-tail-- (cdr --dolist-tail--))))) (setq pos next))))
(save-current-buffer (set-buffer (get-buffer-create (format "
*org-src-fontification:%s*" lang-mode))) (let
((inhibit-modification-hooks nil)) (erase-buffer) (insert string " ")
(if (eq major-mode lang-mode) nil (funcall lang-mode))
(org-font-lock-ensure) (let ((pos (point-min)) next) (while (setq next
(next-property-change pos)) (let ((--dolist-tail-- (cons ...
font-lock-extra-managed-props))) (while --dolist-tail-- (let (...)
(let ... ...) (setq --dolist-tail-- ...)))) (setq pos next)))))
(let ((string (buffer-substring-no-properties start end)) (modified
(buffer-modified-p)) (org-buffer (current-buffer)))
(remove-text-properties start end (quote (face nil)))
(save-current-buffer (set-buffer (get-buffer-create (format "
*org-src-fontification:%s*" lang-mode))) (let
((inhibit-modification-hooks nil)) (erase-buffer) (insert string " ")
(if (eq major-mode lang-mode) nil (funcall lang-mode))
(org-font-lock-ensure) (let ((pos (point-min)) next) (while (setq next
(next-property-change pos)) (let ((--dolist-tail-- ...)) (while
--dolist-tail-- (let ... ... ...))) (setq pos next))))) (let
((src-face (nth 1 (assoc-string lang org-src-block-faces t)))) (if (or
(facep src-face) (listp src-face)) (progn
(font-lock-append-text-property start end (quote face) src-face)))
(font-lock-append-text-property start end (quote face) (quote
org-block))) (add-text-properties start end (quote
(font-lock-fontified t fontified t font-lock-multiline t)))
(set-buffer-modified-p modified))
(progn (let ((string (buffer-substring-no-properties start end))
(modified (buffer-modified-p)) (org-buffer (current-buffer)))
(remove-text-properties start end (quote (face nil)))
(save-current-buffer (set-buffer (get-buffer-create (format "
*org-src-fontification:%s*" lang-mode))) (let
((inhibit-modification-hooks nil)) (erase-buffer) (insert string " ")
(if (eq major-mode lang-mode) nil (funcall lang-mode))
(org-font-lock-ensure) (let ((pos (point-min)) next) (while (setq next
(next-property-change pos)) (let (...) (while --dolist-tail-- ...))
(setq pos next))))) (let ((src-face (nth 1 (assoc-string lang
org-src-block-faces t)))) (if (or (facep src-face) (listp src-face))
(progn (font-lock-append-text-property start end (quote face)
src-face))) (font-lock-append-text-property start end (quote face)
(quote org-block))) (add-text-properties start end (quote
(font-lock-fontified t fontified t font-lock-multiline t)))
(set-buffer-modified-p modified)))
(if (fboundp lang-mode) (progn (let ((string
(buffer-substring-no-properties start end)) (modified
(buffer-modified-p)) (org-buffer (current-buffer)))
(remove-text-properties start end (quote (face nil)))
(save-current-buffer (set-buffer (get-buffer-create (format "
*org-src-fontification:%s*" lang-mode))) (let
((inhibit-modification-hooks nil)) (erase-buffer) (insert string " ")
(if (eq major-mode lang-mode) nil (funcall lang-mode))
(org-font-lock-ensure) (let ((pos ...) next) (while (setq next ...)
(let ... ...) (setq pos next))))) (let ((src-face (nth 1 (assoc-string
lang org-src-block-faces t)))) (if (or (facep src-face) (listp
src-face)) (progn (font-lock-append-text-property start end (quote
face) src-face))) (font-lock-append-text-property start end (quote
face) (quote org-block))) (add-text-properties start end (quote
(font-lock-fontified t fontified t font-lock-multiline t)))
(set-buffer-modified-p modified))))
(let ((lang-mode (org-src--get-lang-mode lang))) (if (fboundp
lang-mode) (progn (let ((string (buffer-substring-no-properties start
end)) (modified (buffer-modified-p)) (org-buffer (current-buffer)))
(remove-text-properties start end (quote (face nil)))
(save-current-buffer (set-buffer (get-buffer-create (format "
*org-src-fontification:%s*" lang-mode))) (let
((inhibit-modification-hooks nil)) (erase-buffer) (insert string " ")
(if (eq major-mode lang-mode) nil (funcall lang-mode))
(org-font-lock-ensure) (let (... next) (while ... ... ...)))) (let
((src-face (nth 1 ...))) (if (or (facep src-face) (listp src-face))
(progn (font-lock-append-text-property start end ... src-face)))
(font-lock-append-text-property start end (quote face) (quote
org-block))) (add-text-properties start end (quote
(font-lock-fontified t fontified t font-lock-multiline t)))
(set-buffer-modified-p modified)))))
org-src-font-lock-fontify-block("emacs-lisp" 23 27)
(cond ((and lang (not (string= lang "")) org-src-fontify-natively)
(org-src-font-lock-fontify-block lang block-start block-end)
(add-text-properties beg1 block-end (quote (src-block t)))) (quoting
(add-text-properties beg1 (min (point-max) (1+ end1)) (list (quote
face) (list :inherit (let ((face-name ...)) (append (and ... ...)
(quote ...))))))) ((not org-fontify-quote-and-verse-blocks)) ((string=
block-type "quote") (add-text-properties beg1 (min (point-max) (1+
end1)) (quote (face org-quote)))) ((string= block-type "verse")
(add-text-properties beg1 (min (point-max) (1+ end1)) (quote (face
org-verse)))))
(progn (setq end (min (point-max) (match-end 0)) end1 (min
(point-max) (1- (match-beginning 0)))) (setq block-end
(match-beginning 0)) (if quoting (progn
(org-remove-flyspell-overlays-in beg1 end1) (remove-text-properties
beg end (quote (display t invisible t intangible t)))))
(add-text-properties beg end (quote (font-lock-fontified t
font-lock-multiline t))) (add-text-properties beg beg1 (quote (face
org-meta-line))) (org-remove-flyspell-overlays-in beg beg1)
(add-text-properties end1 (min (point-max) (1+ end)) (quote (face
org-meta-line))) (org-remove-flyspell-overlays-in end1 end) (cond
((and lang (not (string= lang "")) org-src-fontify-natively)
(org-src-font-lock-fontify-block lang block-start block-end)
(add-text-properties beg1 block-end (quote (src-block t)))) (quoting
(add-text-properties beg1 (min (point-max) (1+ end1)) (list (quote
face) (list :inherit (let (...) (append ... ...)))))) ((not
org-fontify-quote-and-verse-blocks)) ((string= block-type "quote")
(add-text-properties beg1 (min (point-max) (1+ end1)) (quote (face
org-quote)))) ((string= block-type "verse") (add-text-properties beg1
(min (point-max) (1+ end1)) (quote (face org-verse)))))
(add-text-properties beg beg1 (quote (face org-block-begin-line)))
(add-text-properties (min (point-max) (1+ end)) (min (point-max) (1+
end1)) (quote (face org-block-end-line))) t)
(if (re-search-forward (concat "^[ ]*#\\+end" (match-string 4)
"\\>.*") nil t) (progn (setq end (min (point-max) (match-end 0)) end1
(min (point-max) (1- (match-beginning 0)))) (setq block-end
(match-beginning 0)) (if quoting (progn
(org-remove-flyspell-overlays-in beg1 end1) (remove-text-properties
beg end (quote (display t invisible t intangible t)))))
(add-text-properties beg end (quote (font-lock-fontified t
font-lock-multiline t))) (add-text-properties beg beg1 (quote (face
org-meta-line))) (org-remove-flyspell-overlays-in beg beg1)
(add-text-properties end1 (min (point-max) (1+ end)) (quote (face
org-meta-line))) (org-remove-flyspell-overlays-in end1 end) (cond
((and lang (not (string= lang "")) org-src-fontify-natively)
(org-src-font-lock-fontify-block lang block-start block-end)
(add-text-properties beg1 block-end (quote (src-block t)))) (quoting
(add-text-properties beg1 (min (point-max) (1+ end1)) (list (quote
face) (list :inherit (let ... ...))))) ((not
org-fontify-quote-and-verse-blocks)) ((string= block-type "quote")
(add-text-properties beg1 (min (point-max) (1+ end1)) (quote (face
org-quote)))) ((string= block-type "verse") (add-text-properties beg1
(min (point-max) (1+ end1)) (quote (face org-verse)))))
(add-text-properties beg beg1 (quote (face org-block-begin-line)))
(add-text-properties (min (point-max) (1+ end)) (min (point-max) (1+
end1)) (quote (face org-block-end-line))) t))
(cond ((and (match-end 4) (equal dc3 "+begin")) (setq block-type
(downcase (match-string 5)) quoting (member block-type
org-protecting-blocks)) (if (re-search-forward (concat "^[ ]*#\\+end"
(match-string 4) "\\>.*") nil t) (progn (setq end (min (point-max)
(match-end 0)) end1 (min (point-max) (1- (match-beginning 0)))) (setq
block-end (match-beginning 0)) (if quoting (progn
(org-remove-flyspell-overlays-in beg1 end1) (remove-text-properties
beg end (quote ...)))) (add-text-properties beg end (quote
(font-lock-fontified t font-lock-multiline t))) (add-text-properties
beg beg1 (quote (face org-meta-line)))
(org-remove-flyspell-overlays-in beg beg1) (add-text-properties end1
(min (point-max) (1+ end)) (quote (face org-meta-line)))
(org-remove-flyspell-overlays-in end1 end) (cond ((and lang (not ...)
org-src-fontify-natively) (org-src-font-lock-fontify-block lang
block-start block-end) (add-text-properties beg1 block-end (quote
...))) (quoting (add-text-properties beg1 (min ... ...) (list ...
...))) ((not org-fontify-quote-and-verse-blocks)) ((string= block-type
"quote") (add-text-properties beg1 (min ... ...) (quote ...)))
((string= block-type "verse") (add-text-properties beg1 (min ... ...)
(quote ...)))) (add-text-properties beg beg1 (quote (face
org-block-begin-line))) (add-text-properties (min (point-max) (1+
end)) (min (point-max) (1+ end1)) (quote (face org-block-end-line)))
t))) ((member dc1 (quote ("+title:" "+author:" "+email:" "+date:")))
(org-remove-flyspell-overlays-in (match-beginning 0) (if (equal
"+title:" dc1) (match-end 2) (match-end 0))) (add-text-properties beg
(match-end 3) (if (member (intern (substring dc1 1 -1))
org-hidden-keywords) (quote (font-lock-fontified t invisible t))
(quote (font-lock-fontified t face org-document-info-keyword))))
(add-text-properties (match-beginning 6) (min (point-max) (1+
(match-end 6))) (if (string-equal dc1 "+title:") (quote
(font-lock-fontified t face org-document-title)) (quote
(font-lock-fontified t face org-document-info))))) ((string-prefix-p
"+caption" dc1) (org-remove-flyspell-overlays-in (match-end 2)
(match-end 0)) (remove-text-properties (match-beginning 0) (match-end
0) (quote (display t invisible t intangible t))) (save-excursion
(beginning-of-line) (looking-at "\\([
]*#\\+caption\\(?:\\[.*\\]\\)?:\\)[ ]*")) (add-text-properties
(line-beginning-position) (match-end 1) (quote (font-lock-fontified t
face org-meta-line))) (add-text-properties (match-end 0)
(line-end-position) (quote (font-lock-fontified t face org-block))) t)
((member dc3 (quote (" " ""))) (org-remove-flyspell-overlays-in beg
(match-end 0)) (add-text-properties beg (match-end 0) (quote
(font-lock-fontified t face font-lock-comment-face)))) (t
(org-remove-flyspell-overlays-in (match-beginning 0) (match-end 0))
(remove-text-properties (match-beginning 0) (match-end 0) (quote
(display t invisible t intangible t))) (add-text-properties beg
(match-end 0) (quote (font-lock-fontified t face org-meta-line))) t))
(let ((beg (match-beginning 0)) (block-start (match-end 0))
(block-end nil) (lang (match-string 7)) (beg1 (line-beginning-position
2)) (dc1 (downcase (match-string 2))) (dc3 (downcase (match-string
3))) end end1 quoting block-type) (cond ((and (match-end 4) (equal dc3
"+begin")) (setq block-type (downcase (match-string 5)) quoting
(member block-type org-protecting-blocks)) (if (re-search-forward
(concat "^[ ]*#\\+end" (match-string 4) "\\>.*") nil t) (progn (setq
end (min (point-max) (match-end 0)) end1 (min (point-max) (1- ...)))
(setq block-end (match-beginning 0)) (if quoting (progn
(org-remove-flyspell-overlays-in beg1 end1) (remove-text-properties
beg end ...))) (add-text-properties beg end (quote
(font-lock-fontified t font-lock-multiline t))) (add-text-properties
beg beg1 (quote (face org-meta-line)))
(org-remove-flyspell-overlays-in beg beg1) (add-text-properties end1
(min (point-max) (1+ end)) (quote (face org-meta-line)))
(org-remove-flyspell-overlays-in end1 end) (cond ((and lang ...
org-src-fontify-natively) (org-src-font-lock-fontify-block lang
block-start block-end) (add-text-properties beg1 block-end ...))
(quoting (add-text-properties beg1 ... ...)) ((not
org-fontify-quote-and-verse-blocks)) ((string= block-type "quote")
(add-text-properties beg1 ... ...)) ((string= block-type "verse")
(add-text-properties beg1 ... ...))) (add-text-properties beg beg1
(quote (face org-block-begin-line))) (add-text-properties (min
(point-max) (1+ end)) (min (point-max) (1+ end1)) (quote (face
org-block-end-line))) t))) ((member dc1 (quote ("+title:" "+author:"
"+email:" "+date:"))) (org-remove-flyspell-overlays-in
(match-beginning 0) (if (equal "+title:" dc1) (match-end 2) (match-end
0))) (add-text-properties beg (match-end 3) (if (member (intern
(substring dc1 1 -1)) org-hidden-keywords) (quote (font-lock-fontified
t invisible t)) (quote (font-lock-fontified t face
org-document-info-keyword)))) (add-text-properties (match-beginning 6)
(min (point-max) (1+ (match-end 6))) (if (string-equal dc1 "+title:")
(quote (font-lock-fontified t face org-document-title)) (quote
(font-lock-fontified t face org-document-info))))) ((string-prefix-p
"+caption" dc1) (org-remove-flyspell-overlays-in (match-end 2)
(match-end 0)) (remove-text-properties (match-beginning 0) (match-end
0) (quote (display t invisible t intangible t))) (save-excursion
(beginning-of-line) (looking-at "\\([
]*#\\+caption\\(?:\\[.*\\]\\)?:\\)[ ]*")) (add-text-properties
(line-beginning-position) (match-end 1) (quote (font-lock-fontified t
face org-meta-line))) (add-text-properties (match-end 0)
(line-end-position) (quote (font-lock-fontified t face org-block))) t)
((member dc3 (quote (" " ""))) (org-remove-flyspell-overlays-in beg
(match-end 0)) (add-text-properties beg (match-end 0) (quote
(font-lock-fontified t face font-lock-comment-face)))) (t
(org-remove-flyspell-overlays-in (match-beginning 0) (match-end 0))
(remove-text-properties (match-beginning 0) (match-end 0) (quote
(display t invisible t intangible t))) (add-text-properties beg
(match-end 0) (quote (font-lock-fontified t face org-meta-line))) t)))
(progn (let ((beg (match-beginning 0)) (block-start (match-end 0))
(block-end nil) (lang (match-string 7)) (beg1 (line-beginning-position
2)) (dc1 (downcase (match-string 2))) (dc3 (downcase (match-string
3))) end end1 quoting block-type) (cond ((and (match-end 4) (equal dc3
"+begin")) (setq block-type (downcase (match-string 5)) quoting
(member block-type org-protecting-blocks)) (if (re-search-forward
(concat "^[ ]*#\\+end" (match-string 4) "\\>.*") nil t) (progn (setq
end (min ... ...) end1 (min ... ...)) (setq block-end (match-beginning
0)) (if quoting (progn ... ...)) (add-text-properties beg end (quote
...)) (add-text-properties beg beg1 (quote ...))
(org-remove-flyspell-overlays-in beg beg1) (add-text-properties end1
(min ... ...) (quote ...)) (org-remove-flyspell-overlays-in end1 end)
(cond (... ... ...) (quoting ...) (...) (... ...) (... ...))
(add-text-properties beg beg1 (quote ...)) (add-text-properties (min
... ...) (min ... ...) (quote ...)) t))) ((member dc1 (quote
("+title:" "+author:" "+email:" "+date:")))
(org-remove-flyspell-overlays-in (match-beginning 0) (if (equal
"+title:" dc1) (match-end 2) (match-end 0))) (add-text-properties beg
(match-end 3) (if (member (intern ...) org-hidden-keywords) (quote
(font-lock-fontified t invisible t)) (quote (font-lock-fontified t
face org-document-info-keyword)))) (add-text-properties
(match-beginning 6) (min (point-max) (1+ (match-end 6))) (if
(string-equal dc1 "+title:") (quote (font-lock-fontified t face
org-document-title)) (quote (font-lock-fontified t face
org-document-info))))) ((string-prefix-p "+caption" dc1)
(org-remove-flyspell-overlays-in (match-end 2) (match-end 0))
(remove-text-properties (match-beginning 0) (match-end 0) (quote
(display t invisible t intangible t))) (save-excursion
(beginning-of-line) (looking-at "\\([
]*#\\+caption\\(?:\\[.*\\]\\)?:\\)[ ]*")) (add-text-properties
(line-beginning-position) (match-end 1) (quote (font-lock-fontified t
face org-meta-line))) (add-text-properties (match-end 0)
(line-end-position) (quote (font-lock-fontified t face org-block))) t)
((member dc3 (quote (" " ""))) (org-remove-flyspell-overlays-in beg
(match-end 0)) (add-text-properties beg (match-end 0) (quote
(font-lock-fontified t face font-lock-comment-face)))) (t
(org-remove-flyspell-overlays-in (match-beginning 0) (match-end 0))
(remove-text-properties (match-beginning 0) (match-end 0) (quote
(display t invisible t intangible t))) (add-text-properties beg
(match-end 0) (quote (font-lock-fontified t face org-meta-line)))
t))))
(if (re-search-forward "^\\([ ]*#\\(\\(\\+[a-zA-Z]+:?\\|
\\|$\\)\\(_\\([a-zA-Z]+\\)\\)?\\)[ ]*\\(\\([^ \n]*\\)[
]*\\(.*\\)\\)\\)" limit t) (progn (let ((beg (match-beginning 0))
(block-start (match-end 0)) (block-end nil) (lang (match-string 7))
(beg1 (line-beginning-position 2)) (dc1 (downcase (match-string 2)))
(dc3 (downcase (match-string 3))) end end1 quoting block-type) (cond
((and (match-end 4) (equal dc3 "+begin")) (setq block-type (downcase
(match-string 5)) quoting (member block-type org-protecting-blocks))
(if (re-search-forward (concat "^[ ]*#\\+end" ... "\\>.*") nil t)
(progn (setq end ... end1 ...) (setq block-end ...) (if quoting ...)
(add-text-properties beg end ...) (add-text-properties beg beg1 ...)
(org-remove-flyspell-overlays-in beg beg1) (add-text-properties end1
... ...) (org-remove-flyspell-overlays-in end1 end) (cond ... ... ...
... ...) (add-text-properties beg beg1 ...) (add-text-properties ...
... ...) t))) ((member dc1 (quote ("+title:" "+author:" "+email:"
"+date:"))) (org-remove-flyspell-overlays-in (match-beginning 0) (if
(equal "+title:" dc1) (match-end 2) (match-end 0)))
(add-text-properties beg (match-end 3) (if (member ...
org-hidden-keywords) (quote ...) (quote ...))) (add-text-properties
(match-beginning 6) (min (point-max) (1+ ...)) (if (string-equal dc1
"+title:") (quote ...) (quote ...)))) ((string-prefix-p "+caption"
dc1) (org-remove-flyspell-overlays-in (match-end 2) (match-end 0))
(remove-text-properties (match-beginning 0) (match-end 0) (quote
(display t invisible t intangible t))) (save-excursion
(beginning-of-line) (looking-at "\\([
]*#\\+caption\\(?:\\[.*\\]\\)?:\\)[ ]*")) (add-text-properties
(line-beginning-position) (match-end 1) (quote (font-lock-fontified t
face org-meta-line))) (add-text-properties (match-end 0)
(line-end-position) (quote (font-lock-fontified t face org-block))) t)
((member dc3 (quote (" " ""))) (org-remove-flyspell-overlays-in beg
(match-end 0)) (add-text-properties beg (match-end 0) (quote
(font-lock-fontified t face font-lock-comment-face)))) (t
(org-remove-flyspell-overlays-in (match-beginning 0) (match-end 0))
(remove-text-properties (match-beginning 0) (match-end 0) (quote
(display t invisible t intangible t))) (add-text-properties beg
(match-end 0) (quote (font-lock-fontified t face org-meta-line)))
t)))))
(let ((case-fold-search t)) (if (re-search-forward "^\\([
]*#\\(\\(\\+[a-zA-Z]+:?\\| \\|$\\)\\(_\\([a-zA-Z]+\\)\\)?\\)[
]*\\(\\([^ \n]*\\)[ ]*\\(.*\\)\\)\\)" limit t) (progn (let ((beg
(match-beginning 0)) (block-start (match-end 0)) (block-end nil) (lang
(match-string 7)) (beg1 (line-beginning-position 2)) (dc1 (downcase
(match-string 2))) (dc3 (downcase (match-string 3))) end end1 quoting
block-type) (cond ((and (match-end 4) (equal dc3 "+begin")) (setq
block-type (downcase ...) quoting (member block-type
org-protecting-blocks)) (if (re-search-forward ... nil t) (progn ...
... ... ... ... ... ... ... ... ... ... t))) ((member dc1 (quote ...))
(org-remove-flyspell-overlays-in (match-beginning 0) (if ... ... ...))
(add-text-properties beg (match-end 3) (if ... ... ...))
(add-text-properties (match-beginning 6) (min ... ...) (if ... ...
...))) ((string-prefix-p "+caption" dc1)
(org-remove-flyspell-overlays-in (match-end 2) (match-end 0))
(remove-text-properties (match-beginning 0) (match-end 0) (quote ...))
(save-excursion (beginning-of-line) (looking-at "\\([
]*#\\+caption\\(?:\\[.*\\]\\)?:\\)[ ]*")) (add-text-properties
(line-beginning-position) (match-end 1) (quote ...))
(add-text-properties (match-end 0) (line-end-position) (quote ...)) t)
((member dc3 (quote ...)) (org-remove-flyspell-overlays-in beg
(match-end 0)) (add-text-properties beg (match-end 0) (quote ...))) (t
(org-remove-flyspell-overlays-in (match-beginning 0) (match-end 0))
(remove-text-properties (match-beginning 0) (match-end 0) (quote ...))
(add-text-properties beg (match-end 0) (quote ...)) t))))))
org-fontify-meta-lines-and-blocks-1(37)
org-fontify-meta-lines-and-blocks(37)
font-lock-fontify-keywords-region(1 37 nil)
font-lock-default-fontify-region(1 37 nil)
font-lock-fontify-region(1 37 nil)
font-lock-default-fontify-buffer()
font-lock-fontify-buffer()
org-bullets-mode()
run-hooks(change-major-mode-after-body-hook text-mode-hook
outline-mode-hook org-mode-hook)
apply(run-hooks (change-major-mode-after-body-hook text-mode-hook
outline-mode-hook org-mode-hook))
run-mode-hooks(org-mode-hook)
org-mode()
set-auto-mode-0(org-mode nil)
set-auto-mode()
normal-mode(t)
after-find-file(nil t)
find-file-noselect-1(#<buffer test.org> "~/Dropbox
(Personal)/Notes/test.org" nil nil "~/Dropbox
(Personal)/Notes/test.org" (213415716 16777220))
find-file-noselect("/Users/aaronjensen/Dropbox
(Personal)/Notes/test.org" nil nil nil)
find-file("/Users/aaronjensen/Dropbox (Personal)/Notes/test.org")
find-file-existing("/Users/aaronjensen/Dropbox (Personal)/Notes/test.org")
(lambda (&rest ignore) (find-file-existing
"/Users/aaronjensen/Dropbox (Personal)/Notes/test.org"))((push-button
:args nil :value "~/Dropbox (Personal)/Notes/test.org" :action (lambda
(&rest ignore) (find-file-existing "/Users/aaronjensen/Dropbox
(Personal)/Notes/test.org")) :mouse-face highlight :follow-link "
" :button-prefix "" :button-suffix "" :format "%[%t%]" :button-overlay
#<overlay from 1115 to 1150 in *spacemacs*> :from #<marker (moves
after insertion) at 1115 in *spacemacs*> :to #<marker at 1150 in
*spacemacs*>) nil)
widget-apply((push-button :args nil :value "~/Dropbox
(Personal)/Notes/test.org" :action (lambda (&rest ignore)
(find-file-existing "/Users/aaronjensen/Dropbox
(Personal)/Notes/test.org")) :mouse-face highlight :follow-link "
" :button-prefix "" :button-suffix "" :format "%[%t%]" :button-overlay
#<overlay from 1115 to 1150 in *spacemacs*> :from #<marker (moves
after insertion) at 1115 in *spacemacs*> :to #<marker at 1150 in
*spacemacs*>) :action nil)
widget-apply-action((push-button :args nil :value "~/Dropbox
(Personal)/Notes/test.org" :action (lambda (&rest ignore)
(find-file-existing "/Users/aaronjensen/Dropbox
(Personal)/Notes/test.org")) :mouse-face highlight :follow-link "
" :button-prefix "" :button-suffix "" :format "%[%t%]" :button-overlay
#<overlay from 1115 to 1150 in *spacemacs*> :from #<marker (moves
after insertion) at 1115 in *spacemacs*> :to #<marker at 1150 in
*spacemacs*>) nil)
widget-button-press(1142)
funcall-interactively(widget-button-press 1142)
call-interactively(widget-button-press nil nil)
command-execute(widget-button-press)
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Fontification error
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
0 siblings, 2 replies; 13+ messages in thread
From: Kyle Meyer @ 2017-03-19 17:05 UTC (permalink / raw)
To: Aaron Jensen, emacs-orgmode; +Cc: Noam Postavsky
Aaron Jensen <aaronjensen@gmail.com> writes:
> This is in reply to the Fontification error Thomas S. Dye reported on
> Feb 13 2017:
>
> http://lists.gnu.org/archive/html/emacs-orgmode/2017-02/msg00280.html
>
> I was able to bisect this error to the following commit:
>
> f2a5104e45b6f44a08960ae49ba20c124a8fa9d8 is the first bad commit
> commit f2a5104e45b6f44a08960ae49ba20c124a8fa9d8
> Author: Noam Postavsky <npostavs@gmail.com>
> Date: Sat Jan 7 16:05:19 2017 -0500
>
> Backport commit ae8264c5cc from Emacs
>
> * 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.]
I backported this commit to the Org repo, but I don't have any good
guesses at what's leading to the error below. It's unfortunate that
only spacemacs users seem to be able to reproduce this. Are there
spacemacs users on the list who aren't running into this?
> #+begin_src emacs-lisp
> ()
> #+end_src
>
> This is the stack trace if I remove the condition-case that leads to
> the fontification error warning:
>
> Debugger entered--Lisp error: (args-out-of-range 6 23)
> put-text-property(23 6 fontified nil)
> jit-lock-after-change(23 24 1)
> put-text-property(23 24 face nil #<buffer test.org>)
> (let ((new-prop (get-text-property pos prop))) (put-text-property (+
> start (1- pos)) (1- (+ start next)) prop new-prop org-buffer))
> (let ((prop (car --dolist-tail--))) (let ((new-prop
> (get-text-property pos prop))) (put-text-property (+ start (1- pos))
> (1- (+ start next)) prop new-prop org-buffer)) (setq --dolist-tail--
> (cdr --dolist-tail--)))
> (while --dolist-tail-- (let ((prop (car --dolist-tail--))) (let
> ((new-prop (get-text-property pos prop))) (put-text-property (+ start
> (1- pos)) (1- (+ start next)) prop new-prop org-buffer)) (setq
> --dolist-tail-- (cdr --dolist-tail--))))
> (let ((--dolist-tail-- (cons (quote face)
> font-lock-extra-managed-props))) (while --dolist-tail-- (let ((prop
> (car --dolist-tail--))) (let ((new-prop (get-text-property pos prop)))
> (put-text-property (+ start (1- pos)) (1- (+ start next)) prop
> new-prop org-buffer)) (setq --dolist-tail-- (cdr --dolist-tail--)))))
> (while (setq next (next-property-change pos)) (let ((--dolist-tail--
> (cons (quote face) font-lock-extra-managed-props))) (while
> --dolist-tail-- (let ((prop (car --dolist-tail--))) (let ((new-prop
> (get-text-property pos prop))) (put-text-property (+ start (1- pos))
> (1- (+ start next)) prop new-prop org-buffer)) (setq --dolist-tail--
> (cdr --dolist-tail--))))) (setq pos next))
> (let ((pos (point-min)) next) (while (setq next
> (next-property-change pos)) (let ((--dolist-tail-- (cons (quote face)
> font-lock-extra-managed-props))) (while --dolist-tail-- (let ((prop
> (car --dolist-tail--))) (let ((new-prop ...)) (put-text-property (+
> start ...) (1- ...) prop new-prop org-buffer)) (setq --dolist-tail--
> (cdr --dolist-tail--))))) (setq pos next)))
> (let ((inhibit-modification-hooks nil)) (erase-buffer) (insert
> string " ") (if (eq major-mode lang-mode) nil (funcall lang-mode))
> (org-font-lock-ensure) (let ((pos (point-min)) next) (while (setq next
> (next-property-change pos)) (let ((--dolist-tail-- (cons (quote face)
> font-lock-extra-managed-props))) (while --dolist-tail-- (let ((prop
> ...)) (let (...) (put-text-property ... ... prop new-prop org-buffer))
> (setq --dolist-tail-- (cdr --dolist-tail--))))) (setq pos next))))
> (save-current-buffer (set-buffer (get-buffer-create (format "
> *org-src-fontification:%s*" lang-mode))) (let
> ((inhibit-modification-hooks nil)) (erase-buffer) (insert string " ")
> (if (eq major-mode lang-mode) nil (funcall lang-mode))
> (org-font-lock-ensure) (let ((pos (point-min)) next) (while (setq next
> (next-property-change pos)) (let ((--dolist-tail-- (cons ...
> font-lock-extra-managed-props))) (while --dolist-tail-- (let (...)
> (let ... ...) (setq --dolist-tail-- ...)))) (setq pos next)))))
> (let ((string (buffer-substring-no-properties start end)) (modified
> (buffer-modified-p)) (org-buffer (current-buffer)))
> (remove-text-properties start end (quote (face nil)))
> (save-current-buffer (set-buffer (get-buffer-create (format "
> *org-src-fontification:%s*" lang-mode))) (let
> ((inhibit-modification-hooks nil)) (erase-buffer) (insert string " ")
> (if (eq major-mode lang-mode) nil (funcall lang-mode))
> (org-font-lock-ensure) (let ((pos (point-min)) next) (while (setq next
> (next-property-change pos)) (let ((--dolist-tail-- ...)) (while
> --dolist-tail-- (let ... ... ...))) (setq pos next))))) (let
> ((src-face (nth 1 (assoc-string lang org-src-block-faces t)))) (if (or
> (facep src-face) (listp src-face)) (progn
> (font-lock-append-text-property start end (quote face) src-face)))
> (font-lock-append-text-property start end (quote face) (quote
> org-block))) (add-text-properties start end (quote
> (font-lock-fontified t fontified t font-lock-multiline t)))
> (set-buffer-modified-p modified))
> (progn (let ((string (buffer-substring-no-properties start end))
> (modified (buffer-modified-p)) (org-buffer (current-buffer)))
> (remove-text-properties start end (quote (face nil)))
> (save-current-buffer (set-buffer (get-buffer-create (format "
> *org-src-fontification:%s*" lang-mode))) (let
> ((inhibit-modification-hooks nil)) (erase-buffer) (insert string " ")
> (if (eq major-mode lang-mode) nil (funcall lang-mode))
> (org-font-lock-ensure) (let ((pos (point-min)) next) (while (setq next
> (next-property-change pos)) (let (...) (while --dolist-tail-- ...))
> (setq pos next))))) (let ((src-face (nth 1 (assoc-string lang
> org-src-block-faces t)))) (if (or (facep src-face) (listp src-face))
> (progn (font-lock-append-text-property start end (quote face)
> src-face))) (font-lock-append-text-property start end (quote face)
> (quote org-block))) (add-text-properties start end (quote
> (font-lock-fontified t fontified t font-lock-multiline t)))
> (set-buffer-modified-p modified)))
> (if (fboundp lang-mode) (progn (let ((string
> (buffer-substring-no-properties start end)) (modified
> (buffer-modified-p)) (org-buffer (current-buffer)))
> (remove-text-properties start end (quote (face nil)))
> (save-current-buffer (set-buffer (get-buffer-create (format "
> *org-src-fontification:%s*" lang-mode))) (let
> ((inhibit-modification-hooks nil)) (erase-buffer) (insert string " ")
> (if (eq major-mode lang-mode) nil (funcall lang-mode))
> (org-font-lock-ensure) (let ((pos ...) next) (while (setq next ...)
> (let ... ...) (setq pos next))))) (let ((src-face (nth 1 (assoc-string
> lang org-src-block-faces t)))) (if (or (facep src-face) (listp
> src-face)) (progn (font-lock-append-text-property start end (quote
> face) src-face))) (font-lock-append-text-property start end (quote
> face) (quote org-block))) (add-text-properties start end (quote
> (font-lock-fontified t fontified t font-lock-multiline t)))
> (set-buffer-modified-p modified))))
> (let ((lang-mode (org-src--get-lang-mode lang))) (if (fboundp
> lang-mode) (progn (let ((string (buffer-substring-no-properties start
> end)) (modified (buffer-modified-p)) (org-buffer (current-buffer)))
> (remove-text-properties start end (quote (face nil)))
> (save-current-buffer (set-buffer (get-buffer-create (format "
> *org-src-fontification:%s*" lang-mode))) (let
> ((inhibit-modification-hooks nil)) (erase-buffer) (insert string " ")
> (if (eq major-mode lang-mode) nil (funcall lang-mode))
> (org-font-lock-ensure) (let (... next) (while ... ... ...)))) (let
> ((src-face (nth 1 ...))) (if (or (facep src-face) (listp src-face))
> (progn (font-lock-append-text-property start end ... src-face)))
> (font-lock-append-text-property start end (quote face) (quote
> org-block))) (add-text-properties start end (quote
> (font-lock-fontified t fontified t font-lock-multiline t)))
> (set-buffer-modified-p modified)))))
> org-src-font-lock-fontify-block("emacs-lisp" 23 27)
> (cond ((and lang (not (string= lang "")) org-src-fontify-natively)
> (org-src-font-lock-fontify-block lang block-start block-end)
> (add-text-properties beg1 block-end (quote (src-block t)))) (quoting
> (add-text-properties beg1 (min (point-max) (1+ end1)) (list (quote
> face) (list :inherit (let ((face-name ...)) (append (and ... ...)
> (quote ...))))))) ((not org-fontify-quote-and-verse-blocks)) ((string=
> block-type "quote") (add-text-properties beg1 (min (point-max) (1+
> end1)) (quote (face org-quote)))) ((string= block-type "verse")
> (add-text-properties beg1 (min (point-max) (1+ end1)) (quote (face
> org-verse)))))
> (progn (setq end (min (point-max) (match-end 0)) end1 (min
> (point-max) (1- (match-beginning 0)))) (setq block-end
> (match-beginning 0)) (if quoting (progn
> (org-remove-flyspell-overlays-in beg1 end1) (remove-text-properties
> beg end (quote (display t invisible t intangible t)))))
> (add-text-properties beg end (quote (font-lock-fontified t
> font-lock-multiline t))) (add-text-properties beg beg1 (quote (face
> org-meta-line))) (org-remove-flyspell-overlays-in beg beg1)
> (add-text-properties end1 (min (point-max) (1+ end)) (quote (face
> org-meta-line))) (org-remove-flyspell-overlays-in end1 end) (cond
> ((and lang (not (string= lang "")) org-src-fontify-natively)
> (org-src-font-lock-fontify-block lang block-start block-end)
> (add-text-properties beg1 block-end (quote (src-block t)))) (quoting
> (add-text-properties beg1 (min (point-max) (1+ end1)) (list (quote
> face) (list :inherit (let (...) (append ... ...)))))) ((not
> org-fontify-quote-and-verse-blocks)) ((string= block-type "quote")
> (add-text-properties beg1 (min (point-max) (1+ end1)) (quote (face
> org-quote)))) ((string= block-type "verse") (add-text-properties beg1
> (min (point-max) (1+ end1)) (quote (face org-verse)))))
> (add-text-properties beg beg1 (quote (face org-block-begin-line)))
> (add-text-properties (min (point-max) (1+ end)) (min (point-max) (1+
> end1)) (quote (face org-block-end-line))) t)
> (if (re-search-forward (concat "^[ ]*#\\+end" (match-string 4)
> "\\>.*") nil t) (progn (setq end (min (point-max) (match-end 0)) end1
> (min (point-max) (1- (match-beginning 0)))) (setq block-end
> (match-beginning 0)) (if quoting (progn
> (org-remove-flyspell-overlays-in beg1 end1) (remove-text-properties
> beg end (quote (display t invisible t intangible t)))))
> (add-text-properties beg end (quote (font-lock-fontified t
> font-lock-multiline t))) (add-text-properties beg beg1 (quote (face
> org-meta-line))) (org-remove-flyspell-overlays-in beg beg1)
> (add-text-properties end1 (min (point-max) (1+ end)) (quote (face
> org-meta-line))) (org-remove-flyspell-overlays-in end1 end) (cond
> ((and lang (not (string= lang "")) org-src-fontify-natively)
> (org-src-font-lock-fontify-block lang block-start block-end)
> (add-text-properties beg1 block-end (quote (src-block t)))) (quoting
> (add-text-properties beg1 (min (point-max) (1+ end1)) (list (quote
> face) (list :inherit (let ... ...))))) ((not
> org-fontify-quote-and-verse-blocks)) ((string= block-type "quote")
> (add-text-properties beg1 (min (point-max) (1+ end1)) (quote (face
> org-quote)))) ((string= block-type "verse") (add-text-properties beg1
> (min (point-max) (1+ end1)) (quote (face org-verse)))))
> (add-text-properties beg beg1 (quote (face org-block-begin-line)))
> (add-text-properties (min (point-max) (1+ end)) (min (point-max) (1+
> end1)) (quote (face org-block-end-line))) t))
> (cond ((and (match-end 4) (equal dc3 "+begin")) (setq block-type
> (downcase (match-string 5)) quoting (member block-type
> org-protecting-blocks)) (if (re-search-forward (concat "^[ ]*#\\+end"
> (match-string 4) "\\>.*") nil t) (progn (setq end (min (point-max)
> (match-end 0)) end1 (min (point-max) (1- (match-beginning 0)))) (setq
> block-end (match-beginning 0)) (if quoting (progn
> (org-remove-flyspell-overlays-in beg1 end1) (remove-text-properties
> beg end (quote ...)))) (add-text-properties beg end (quote
> (font-lock-fontified t font-lock-multiline t))) (add-text-properties
> beg beg1 (quote (face org-meta-line)))
> (org-remove-flyspell-overlays-in beg beg1) (add-text-properties end1
> (min (point-max) (1+ end)) (quote (face org-meta-line)))
> (org-remove-flyspell-overlays-in end1 end) (cond ((and lang (not ...)
> org-src-fontify-natively) (org-src-font-lock-fontify-block lang
> block-start block-end) (add-text-properties beg1 block-end (quote
> ...))) (quoting (add-text-properties beg1 (min ... ...) (list ...
> ...))) ((not org-fontify-quote-and-verse-blocks)) ((string= block-type
> "quote") (add-text-properties beg1 (min ... ...) (quote ...)))
> ((string= block-type "verse") (add-text-properties beg1 (min ... ...)
> (quote ...)))) (add-text-properties beg beg1 (quote (face
> org-block-begin-line))) (add-text-properties (min (point-max) (1+
> end)) (min (point-max) (1+ end1)) (quote (face org-block-end-line)))
> t))) ((member dc1 (quote ("+title:" "+author:" "+email:" "+date:")))
> (org-remove-flyspell-overlays-in (match-beginning 0) (if (equal
> "+title:" dc1) (match-end 2) (match-end 0))) (add-text-properties beg
> (match-end 3) (if (member (intern (substring dc1 1 -1))
> org-hidden-keywords) (quote (font-lock-fontified t invisible t))
> (quote (font-lock-fontified t face org-document-info-keyword))))
> (add-text-properties (match-beginning 6) (min (point-max) (1+
> (match-end 6))) (if (string-equal dc1 "+title:") (quote
> (font-lock-fontified t face org-document-title)) (quote
> (font-lock-fontified t face org-document-info))))) ((string-prefix-p
> "+caption" dc1) (org-remove-flyspell-overlays-in (match-end 2)
> (match-end 0)) (remove-text-properties (match-beginning 0) (match-end
> 0) (quote (display t invisible t intangible t))) (save-excursion
> (beginning-of-line) (looking-at "\\([
> ]*#\\+caption\\(?:\\[.*\\]\\)?:\\)[ ]*")) (add-text-properties
> (line-beginning-position) (match-end 1) (quote (font-lock-fontified t
> face org-meta-line))) (add-text-properties (match-end 0)
> (line-end-position) (quote (font-lock-fontified t face org-block))) t)
> ((member dc3 (quote (" " ""))) (org-remove-flyspell-overlays-in beg
> (match-end 0)) (add-text-properties beg (match-end 0) (quote
> (font-lock-fontified t face font-lock-comment-face)))) (t
> (org-remove-flyspell-overlays-in (match-beginning 0) (match-end 0))
> (remove-text-properties (match-beginning 0) (match-end 0) (quote
> (display t invisible t intangible t))) (add-text-properties beg
> (match-end 0) (quote (font-lock-fontified t face org-meta-line))) t))
> (let ((beg (match-beginning 0)) (block-start (match-end 0))
> (block-end nil) (lang (match-string 7)) (beg1 (line-beginning-position
> 2)) (dc1 (downcase (match-string 2))) (dc3 (downcase (match-string
> 3))) end end1 quoting block-type) (cond ((and (match-end 4) (equal dc3
> "+begin")) (setq block-type (downcase (match-string 5)) quoting
> (member block-type org-protecting-blocks)) (if (re-search-forward
> (concat "^[ ]*#\\+end" (match-string 4) "\\>.*") nil t) (progn (setq
> end (min (point-max) (match-end 0)) end1 (min (point-max) (1- ...)))
> (setq block-end (match-beginning 0)) (if quoting (progn
> (org-remove-flyspell-overlays-in beg1 end1) (remove-text-properties
> beg end ...))) (add-text-properties beg end (quote
> (font-lock-fontified t font-lock-multiline t))) (add-text-properties
> beg beg1 (quote (face org-meta-line)))
> (org-remove-flyspell-overlays-in beg beg1) (add-text-properties end1
> (min (point-max) (1+ end)) (quote (face org-meta-line)))
> (org-remove-flyspell-overlays-in end1 end) (cond ((and lang ...
> org-src-fontify-natively) (org-src-font-lock-fontify-block lang
> block-start block-end) (add-text-properties beg1 block-end ...))
> (quoting (add-text-properties beg1 ... ...)) ((not
> org-fontify-quote-and-verse-blocks)) ((string= block-type "quote")
> (add-text-properties beg1 ... ...)) ((string= block-type "verse")
> (add-text-properties beg1 ... ...))) (add-text-properties beg beg1
> (quote (face org-block-begin-line))) (add-text-properties (min
> (point-max) (1+ end)) (min (point-max) (1+ end1)) (quote (face
> org-block-end-line))) t))) ((member dc1 (quote ("+title:" "+author:"
> "+email:" "+date:"))) (org-remove-flyspell-overlays-in
> (match-beginning 0) (if (equal "+title:" dc1) (match-end 2) (match-end
> 0))) (add-text-properties beg (match-end 3) (if (member (intern
> (substring dc1 1 -1)) org-hidden-keywords) (quote (font-lock-fontified
> t invisible t)) (quote (font-lock-fontified t face
> org-document-info-keyword)))) (add-text-properties (match-beginning 6)
> (min (point-max) (1+ (match-end 6))) (if (string-equal dc1 "+title:")
> (quote (font-lock-fontified t face org-document-title)) (quote
> (font-lock-fontified t face org-document-info))))) ((string-prefix-p
> "+caption" dc1) (org-remove-flyspell-overlays-in (match-end 2)
> (match-end 0)) (remove-text-properties (match-beginning 0) (match-end
> 0) (quote (display t invisible t intangible t))) (save-excursion
> (beginning-of-line) (looking-at "\\([
> ]*#\\+caption\\(?:\\[.*\\]\\)?:\\)[ ]*")) (add-text-properties
> (line-beginning-position) (match-end 1) (quote (font-lock-fontified t
> face org-meta-line))) (add-text-properties (match-end 0)
> (line-end-position) (quote (font-lock-fontified t face org-block))) t)
> ((member dc3 (quote (" " ""))) (org-remove-flyspell-overlays-in beg
> (match-end 0)) (add-text-properties beg (match-end 0) (quote
> (font-lock-fontified t face font-lock-comment-face)))) (t
> (org-remove-flyspell-overlays-in (match-beginning 0) (match-end 0))
> (remove-text-properties (match-beginning 0) (match-end 0) (quote
> (display t invisible t intangible t))) (add-text-properties beg
> (match-end 0) (quote (font-lock-fontified t face org-meta-line))) t)))
> (progn (let ((beg (match-beginning 0)) (block-start (match-end 0))
> (block-end nil) (lang (match-string 7)) (beg1 (line-beginning-position
> 2)) (dc1 (downcase (match-string 2))) (dc3 (downcase (match-string
> 3))) end end1 quoting block-type) (cond ((and (match-end 4) (equal dc3
> "+begin")) (setq block-type (downcase (match-string 5)) quoting
> (member block-type org-protecting-blocks)) (if (re-search-forward
> (concat "^[ ]*#\\+end" (match-string 4) "\\>.*") nil t) (progn (setq
> end (min ... ...) end1 (min ... ...)) (setq block-end (match-beginning
> 0)) (if quoting (progn ... ...)) (add-text-properties beg end (quote
> ...)) (add-text-properties beg beg1 (quote ...))
> (org-remove-flyspell-overlays-in beg beg1) (add-text-properties end1
> (min ... ...) (quote ...)) (org-remove-flyspell-overlays-in end1 end)
> (cond (... ... ...) (quoting ...) (...) (... ...) (... ...))
> (add-text-properties beg beg1 (quote ...)) (add-text-properties (min
> ... ...) (min ... ...) (quote ...)) t))) ((member dc1 (quote
> ("+title:" "+author:" "+email:" "+date:")))
> (org-remove-flyspell-overlays-in (match-beginning 0) (if (equal
> "+title:" dc1) (match-end 2) (match-end 0))) (add-text-properties beg
> (match-end 3) (if (member (intern ...) org-hidden-keywords) (quote
> (font-lock-fontified t invisible t)) (quote (font-lock-fontified t
> face org-document-info-keyword)))) (add-text-properties
> (match-beginning 6) (min (point-max) (1+ (match-end 6))) (if
> (string-equal dc1 "+title:") (quote (font-lock-fontified t face
> org-document-title)) (quote (font-lock-fontified t face
> org-document-info))))) ((string-prefix-p "+caption" dc1)
> (org-remove-flyspell-overlays-in (match-end 2) (match-end 0))
> (remove-text-properties (match-beginning 0) (match-end 0) (quote
> (display t invisible t intangible t))) (save-excursion
> (beginning-of-line) (looking-at "\\([
> ]*#\\+caption\\(?:\\[.*\\]\\)?:\\)[ ]*")) (add-text-properties
> (line-beginning-position) (match-end 1) (quote (font-lock-fontified t
> face org-meta-line))) (add-text-properties (match-end 0)
> (line-end-position) (quote (font-lock-fontified t face org-block))) t)
> ((member dc3 (quote (" " ""))) (org-remove-flyspell-overlays-in beg
> (match-end 0)) (add-text-properties beg (match-end 0) (quote
> (font-lock-fontified t face font-lock-comment-face)))) (t
> (org-remove-flyspell-overlays-in (match-beginning 0) (match-end 0))
> (remove-text-properties (match-beginning 0) (match-end 0) (quote
> (display t invisible t intangible t))) (add-text-properties beg
> (match-end 0) (quote (font-lock-fontified t face org-meta-line)))
> t))))
> (if (re-search-forward "^\\([ ]*#\\(\\(\\+[a-zA-Z]+:?\\|
> \\|$\\)\\(_\\([a-zA-Z]+\\)\\)?\\)[ ]*\\(\\([^ \n]*\\)[
> ]*\\(.*\\)\\)\\)" limit t) (progn (let ((beg (match-beginning 0))
> (block-start (match-end 0)) (block-end nil) (lang (match-string 7))
> (beg1 (line-beginning-position 2)) (dc1 (downcase (match-string 2)))
> (dc3 (downcase (match-string 3))) end end1 quoting block-type) (cond
> ((and (match-end 4) (equal dc3 "+begin")) (setq block-type (downcase
> (match-string 5)) quoting (member block-type org-protecting-blocks))
> (if (re-search-forward (concat "^[ ]*#\\+end" ... "\\>.*") nil t)
> (progn (setq end ... end1 ...) (setq block-end ...) (if quoting ...)
> (add-text-properties beg end ...) (add-text-properties beg beg1 ...)
> (org-remove-flyspell-overlays-in beg beg1) (add-text-properties end1
> ... ...) (org-remove-flyspell-overlays-in end1 end) (cond ... ... ...
> ... ...) (add-text-properties beg beg1 ...) (add-text-properties ...
> ... ...) t))) ((member dc1 (quote ("+title:" "+author:" "+email:"
> "+date:"))) (org-remove-flyspell-overlays-in (match-beginning 0) (if
> (equal "+title:" dc1) (match-end 2) (match-end 0)))
> (add-text-properties beg (match-end 3) (if (member ...
> org-hidden-keywords) (quote ...) (quote ...))) (add-text-properties
> (match-beginning 6) (min (point-max) (1+ ...)) (if (string-equal dc1
> "+title:") (quote ...) (quote ...)))) ((string-prefix-p "+caption"
> dc1) (org-remove-flyspell-overlays-in (match-end 2) (match-end 0))
> (remove-text-properties (match-beginning 0) (match-end 0) (quote
> (display t invisible t intangible t))) (save-excursion
> (beginning-of-line) (looking-at "\\([
> ]*#\\+caption\\(?:\\[.*\\]\\)?:\\)[ ]*")) (add-text-properties
> (line-beginning-position) (match-end 1) (quote (font-lock-fontified t
> face org-meta-line))) (add-text-properties (match-end 0)
> (line-end-position) (quote (font-lock-fontified t face org-block))) t)
> ((member dc3 (quote (" " ""))) (org-remove-flyspell-overlays-in beg
> (match-end 0)) (add-text-properties beg (match-end 0) (quote
> (font-lock-fontified t face font-lock-comment-face)))) (t
> (org-remove-flyspell-overlays-in (match-beginning 0) (match-end 0))
> (remove-text-properties (match-beginning 0) (match-end 0) (quote
> (display t invisible t intangible t))) (add-text-properties beg
> (match-end 0) (quote (font-lock-fontified t face org-meta-line)))
> t)))))
> (let ((case-fold-search t)) (if (re-search-forward "^\\([
> ]*#\\(\\(\\+[a-zA-Z]+:?\\| \\|$\\)\\(_\\([a-zA-Z]+\\)\\)?\\)[
> ]*\\(\\([^ \n]*\\)[ ]*\\(.*\\)\\)\\)" limit t) (progn (let ((beg
> (match-beginning 0)) (block-start (match-end 0)) (block-end nil) (lang
> (match-string 7)) (beg1 (line-beginning-position 2)) (dc1 (downcase
> (match-string 2))) (dc3 (downcase (match-string 3))) end end1 quoting
> block-type) (cond ((and (match-end 4) (equal dc3 "+begin")) (setq
> block-type (downcase ...) quoting (member block-type
> org-protecting-blocks)) (if (re-search-forward ... nil t) (progn ...
> ... ... ... ... ... ... ... ... ... ... t))) ((member dc1 (quote ...))
> (org-remove-flyspell-overlays-in (match-beginning 0) (if ... ... ...))
> (add-text-properties beg (match-end 3) (if ... ... ...))
> (add-text-properties (match-beginning 6) (min ... ...) (if ... ...
> ...))) ((string-prefix-p "+caption" dc1)
> (org-remove-flyspell-overlays-in (match-end 2) (match-end 0))
> (remove-text-properties (match-beginning 0) (match-end 0) (quote ...))
> (save-excursion (beginning-of-line) (looking-at "\\([
> ]*#\\+caption\\(?:\\[.*\\]\\)?:\\)[ ]*")) (add-text-properties
> (line-beginning-position) (match-end 1) (quote ...))
> (add-text-properties (match-end 0) (line-end-position) (quote ...)) t)
> ((member dc3 (quote ...)) (org-remove-flyspell-overlays-in beg
> (match-end 0)) (add-text-properties beg (match-end 0) (quote ...))) (t
> (org-remove-flyspell-overlays-in (match-beginning 0) (match-end 0))
> (remove-text-properties (match-beginning 0) (match-end 0) (quote ...))
> (add-text-properties beg (match-end 0) (quote ...)) t))))))
> org-fontify-meta-lines-and-blocks-1(37)
> org-fontify-meta-lines-and-blocks(37)
> font-lock-fontify-keywords-region(1 37 nil)
> font-lock-default-fontify-region(1 37 nil)
> font-lock-fontify-region(1 37 nil)
> font-lock-default-fontify-buffer()
> font-lock-fontify-buffer()
> org-bullets-mode()
> run-hooks(change-major-mode-after-body-hook text-mode-hook
> outline-mode-hook org-mode-hook)
> apply(run-hooks (change-major-mode-after-body-hook text-mode-hook
> outline-mode-hook org-mode-hook))
> run-mode-hooks(org-mode-hook)
> org-mode()
> set-auto-mode-0(org-mode nil)
> set-auto-mode()
> normal-mode(t)
> after-find-file(nil t)
> find-file-noselect-1(#<buffer test.org> "~/Dropbox
> (Personal)/Notes/test.org" nil nil "~/Dropbox
> (Personal)/Notes/test.org" (213415716 16777220))
> find-file-noselect("/Users/aaronjensen/Dropbox
> (Personal)/Notes/test.org" nil nil nil)
> find-file("/Users/aaronjensen/Dropbox (Personal)/Notes/test.org")
> find-file-existing("/Users/aaronjensen/Dropbox (Personal)/Notes/test.org")
> (lambda (&rest ignore) (find-file-existing
> "/Users/aaronjensen/Dropbox (Personal)/Notes/test.org"))((push-button
> :args nil :value "~/Dropbox (Personal)/Notes/test.org" :action (lambda
> (&rest ignore) (find-file-existing "/Users/aaronjensen/Dropbox
> (Personal)/Notes/test.org")) :mouse-face highlight :follow-link "
> " :button-prefix "" :button-suffix "" :format "%[%t%]" :button-overlay
> #<overlay from 1115 to 1150 in *spacemacs*> :from #<marker (moves
> after insertion) at 1115 in *spacemacs*> :to #<marker at 1150 in
> *spacemacs*>) nil)
> widget-apply((push-button :args nil :value "~/Dropbox
> (Personal)/Notes/test.org" :action (lambda (&rest ignore)
> (find-file-existing "/Users/aaronjensen/Dropbox
> (Personal)/Notes/test.org")) :mouse-face highlight :follow-link "
> " :button-prefix "" :button-suffix "" :format "%[%t%]" :button-overlay
> #<overlay from 1115 to 1150 in *spacemacs*> :from #<marker (moves
> after insertion) at 1115 in *spacemacs*> :to #<marker at 1150 in
> *spacemacs*>) :action nil)
> widget-apply-action((push-button :args nil :value "~/Dropbox
> (Personal)/Notes/test.org" :action (lambda (&rest ignore)
> (find-file-existing "/Users/aaronjensen/Dropbox
> (Personal)/Notes/test.org")) :mouse-face highlight :follow-link "
> " :button-prefix "" :button-suffix "" :format "%[%t%]" :button-overlay
> #<overlay from 1115 to 1150 in *spacemacs*> :from #<marker (moves
> after insertion) at 1115 in *spacemacs*> :to #<marker at 1150 in
> *spacemacs*>) nil)
> widget-button-press(1142)
> funcall-interactively(widget-button-press 1142)
> call-interactively(widget-button-press nil nil)
> command-execute(widget-button-press)
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Fontification error
2017-03-19 17:05 ` Kyle Meyer
@ 2017-03-19 17:12 ` Sébastien Le Maguer
2017-03-19 18:04 ` Noam Postavsky
1 sibling, 0 replies; 13+ messages in thread
From: Sébastien Le Maguer @ 2017-03-19 17:12 UTC (permalink / raw)
To: Kyle Meyer; +Cc: emacs-orgmode, Noam Postavsky, Aaron Jensen
Hello,
I actually have this problem without using spacemacs. However, I didn't have time to debug that yet (that's a shame :().
Kind regards,
Sébastien
On Sun, Mar 19 2017 (18:05), Kyle Meyer <kyle@kyleam.com> wrote:
> Aaron Jensen <aaronjensen@gmail.com> writes:
>
>> This is in reply to the Fontification error Thomas S. Dye reported on
>> Feb 13 2017:
>>
>> http://lists.gnu.org/archive/html/emacs-orgmode/2017-02/msg00280.html
>>
>> I was able to bisect this error to the following commit:
>>
>> f2a5104e45b6f44a08960ae49ba20c124a8fa9d8 is the first bad commit
>> commit f2a5104e45b6f44a08960ae49ba20c124a8fa9d8
>> Author: Noam Postavsky <npostavs@gmail.com>
>> Date: Sat Jan 7 16:05:19 2017 -0500
>>
>> Backport commit ae8264c5cc from Emacs
>>
>> * 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.]
>
> I backported this commit to the Org repo, but I don't have any good
> guesses at what's leading to the error below. It's unfortunate that
> only spacemacs users seem to be able to reproduce this. Are there
> spacemacs users on the list who aren't running into this?
>
>> #+begin_src emacs-lisp
>> ()
>> #+end_src
>>
>> This is the stack trace if I remove the condition-case that leads to
>> the fontification error warning:
>>
>> Debugger entered--Lisp error: (args-out-of-range 6 23)
>> put-text-property(23 6 fontified nil)
>> jit-lock-after-change(23 24 1)
>> put-text-property(23 24 face nil #<buffer test.org>)
>> (let ((new-prop (get-text-property pos prop))) (put-text-property (+
>> start (1- pos)) (1- (+ start next)) prop new-prop org-buffer))
>> (let ((prop (car --dolist-tail--))) (let ((new-prop
>> (get-text-property pos prop))) (put-text-property (+ start (1- pos))
>> (1- (+ start next)) prop new-prop org-buffer)) (setq --dolist-tail--
>> (cdr --dolist-tail--)))
>> (while --dolist-tail-- (let ((prop (car --dolist-tail--))) (let
>> ((new-prop (get-text-property pos prop))) (put-text-property (+ start
>> (1- pos)) (1- (+ start next)) prop new-prop org-buffer)) (setq
>> --dolist-tail-- (cdr --dolist-tail--))))
>> (let ((--dolist-tail-- (cons (quote face)
>> font-lock-extra-managed-props))) (while --dolist-tail-- (let ((prop
>> (car --dolist-tail--))) (let ((new-prop (get-text-property pos prop)))
>> (put-text-property (+ start (1- pos)) (1- (+ start next)) prop
>> new-prop org-buffer)) (setq --dolist-tail-- (cdr --dolist-tail--)))))
>> (while (setq next (next-property-change pos)) (let ((--dolist-tail--
>> (cons (quote face) font-lock-extra-managed-props))) (while
>> --dolist-tail-- (let ((prop (car --dolist-tail--))) (let ((new-prop
>> (get-text-property pos prop))) (put-text-property (+ start (1- pos))
>> (1- (+ start next)) prop new-prop org-buffer)) (setq --dolist-tail--
>> (cdr --dolist-tail--))))) (setq pos next))
>> (let ((pos (point-min)) next) (while (setq next
>> (next-property-change pos)) (let ((--dolist-tail-- (cons (quote face)
>> font-lock-extra-managed-props))) (while --dolist-tail-- (let ((prop
>> (car --dolist-tail--))) (let ((new-prop ...)) (put-text-property (+
>> start ...) (1- ...) prop new-prop org-buffer)) (setq --dolist-tail--
>> (cdr --dolist-tail--))))) (setq pos next)))
>> (let ((inhibit-modification-hooks nil)) (erase-buffer) (insert
>> string " ") (if (eq major-mode lang-mode) nil (funcall lang-mode))
>> (org-font-lock-ensure) (let ((pos (point-min)) next) (while (setq next
>> (next-property-change pos)) (let ((--dolist-tail-- (cons (quote face)
>> font-lock-extra-managed-props))) (while --dolist-tail-- (let ((prop
>> ...)) (let (...) (put-text-property ... ... prop new-prop org-buffer))
>> (setq --dolist-tail-- (cdr --dolist-tail--))))) (setq pos next))))
>> (save-current-buffer (set-buffer (get-buffer-create (format "
>> *org-src-fontification:%s*" lang-mode))) (let
>> ((inhibit-modification-hooks nil)) (erase-buffer) (insert string " ")
>> (if (eq major-mode lang-mode) nil (funcall lang-mode))
>> (org-font-lock-ensure) (let ((pos (point-min)) next) (while (setq next
>> (next-property-change pos)) (let ((--dolist-tail-- (cons ...
>> font-lock-extra-managed-props))) (while --dolist-tail-- (let (...)
>> (let ... ...) (setq --dolist-tail-- ...)))) (setq pos next)))))
>> (let ((string (buffer-substring-no-properties start end)) (modified
>> (buffer-modified-p)) (org-buffer (current-buffer)))
>> (remove-text-properties start end (quote (face nil)))
>> (save-current-buffer (set-buffer (get-buffer-create (format "
>> *org-src-fontification:%s*" lang-mode))) (let
>> ((inhibit-modification-hooks nil)) (erase-buffer) (insert string " ")
>> (if (eq major-mode lang-mode) nil (funcall lang-mode))
>> (org-font-lock-ensure) (let ((pos (point-min)) next) (while (setq next
>> (next-property-change pos)) (let ((--dolist-tail-- ...)) (while
>> --dolist-tail-- (let ... ... ...))) (setq pos next))))) (let
>> ((src-face (nth 1 (assoc-string lang org-src-block-faces t)))) (if (or
>> (facep src-face) (listp src-face)) (progn
>> (font-lock-append-text-property start end (quote face) src-face)))
>> (font-lock-append-text-property start end (quote face) (quote
>> org-block))) (add-text-properties start end (quote
>> (font-lock-fontified t fontified t font-lock-multiline t)))
>> (set-buffer-modified-p modified))
>> (progn (let ((string (buffer-substring-no-properties start end))
>> (modified (buffer-modified-p)) (org-buffer (current-buffer)))
>> (remove-text-properties start end (quote (face nil)))
>> (save-current-buffer (set-buffer (get-buffer-create (format "
>> *org-src-fontification:%s*" lang-mode))) (let
>> ((inhibit-modification-hooks nil)) (erase-buffer) (insert string " ")
>> (if (eq major-mode lang-mode) nil (funcall lang-mode))
>> (org-font-lock-ensure) (let ((pos (point-min)) next) (while (setq next
>> (next-property-change pos)) (let (...) (while --dolist-tail-- ...))
>> (setq pos next))))) (let ((src-face (nth 1 (assoc-string lang
>> org-src-block-faces t)))) (if (or (facep src-face) (listp src-face))
>> (progn (font-lock-append-text-property start end (quote face)
>> src-face))) (font-lock-append-text-property start end (quote face)
>> (quote org-block))) (add-text-properties start end (quote
>> (font-lock-fontified t fontified t font-lock-multiline t)))
>> (set-buffer-modified-p modified)))
>> (if (fboundp lang-mode) (progn (let ((string
>> (buffer-substring-no-properties start end)) (modified
>> (buffer-modified-p)) (org-buffer (current-buffer)))
>> (remove-text-properties start end (quote (face nil)))
>> (save-current-buffer (set-buffer (get-buffer-create (format "
>> *org-src-fontification:%s*" lang-mode))) (let
>> ((inhibit-modification-hooks nil)) (erase-buffer) (insert string " ")
>> (if (eq major-mode lang-mode) nil (funcall lang-mode))
>> (org-font-lock-ensure) (let ((pos ...) next) (while (setq next ...)
>> (let ... ...) (setq pos next))))) (let ((src-face (nth 1 (assoc-string
>> lang org-src-block-faces t)))) (if (or (facep src-face) (listp
>> src-face)) (progn (font-lock-append-text-property start end (quote
>> face) src-face))) (font-lock-append-text-property start end (quote
>> face) (quote org-block))) (add-text-properties start end (quote
>> (font-lock-fontified t fontified t font-lock-multiline t)))
>> (set-buffer-modified-p modified))))
>> (let ((lang-mode (org-src--get-lang-mode lang))) (if (fboundp
>> lang-mode) (progn (let ((string (buffer-substring-no-properties start
>> end)) (modified (buffer-modified-p)) (org-buffer (current-buffer)))
>> (remove-text-properties start end (quote (face nil)))
>> (save-current-buffer (set-buffer (get-buffer-create (format "
>> *org-src-fontification:%s*" lang-mode))) (let
>> ((inhibit-modification-hooks nil)) (erase-buffer) (insert string " ")
>> (if (eq major-mode lang-mode) nil (funcall lang-mode))
>> (org-font-lock-ensure) (let (... next) (while ... ... ...)))) (let
>> ((src-face (nth 1 ...))) (if (or (facep src-face) (listp src-face))
>> (progn (font-lock-append-text-property start end ... src-face)))
>> (font-lock-append-text-property start end (quote face) (quote
>> org-block))) (add-text-properties start end (quote
>> (font-lock-fontified t fontified t font-lock-multiline t)))
>> (set-buffer-modified-p modified)))))
>> org-src-font-lock-fontify-block("emacs-lisp" 23 27)
>> (cond ((and lang (not (string= lang "")) org-src-fontify-natively)
>> (org-src-font-lock-fontify-block lang block-start block-end)
>> (add-text-properties beg1 block-end (quote (src-block t)))) (quoting
>> (add-text-properties beg1 (min (point-max) (1+ end1)) (list (quote
>> face) (list :inherit (let ((face-name ...)) (append (and ... ...)
>> (quote ...))))))) ((not org-fontify-quote-and-verse-blocks)) ((string=
>> block-type "quote") (add-text-properties beg1 (min (point-max) (1+
>> end1)) (quote (face org-quote)))) ((string= block-type "verse")
>> (add-text-properties beg1 (min (point-max) (1+ end1)) (quote (face
>> org-verse)))))
>> (progn (setq end (min (point-max) (match-end 0)) end1 (min
>> (point-max) (1- (match-beginning 0)))) (setq block-end
>> (match-beginning 0)) (if quoting (progn
>> (org-remove-flyspell-overlays-in beg1 end1) (remove-text-properties
>> beg end (quote (display t invisible t intangible t)))))
>> (add-text-properties beg end (quote (font-lock-fontified t
>> font-lock-multiline t))) (add-text-properties beg beg1 (quote (face
>> org-meta-line))) (org-remove-flyspell-overlays-in beg beg1)
>> (add-text-properties end1 (min (point-max) (1+ end)) (quote (face
>> org-meta-line))) (org-remove-flyspell-overlays-in end1 end) (cond
>> ((and lang (not (string= lang "")) org-src-fontify-natively)
>> (org-src-font-lock-fontify-block lang block-start block-end)
>> (add-text-properties beg1 block-end (quote (src-block t)))) (quoting
>> (add-text-properties beg1 (min (point-max) (1+ end1)) (list (quote
>> face) (list :inherit (let (...) (append ... ...)))))) ((not
>> org-fontify-quote-and-verse-blocks)) ((string= block-type "quote")
>> (add-text-properties beg1 (min (point-max) (1+ end1)) (quote (face
>> org-quote)))) ((string= block-type "verse") (add-text-properties beg1
>> (min (point-max) (1+ end1)) (quote (face org-verse)))))
>> (add-text-properties beg beg1 (quote (face org-block-begin-line)))
>> (add-text-properties (min (point-max) (1+ end)) (min (point-max) (1+
>> end1)) (quote (face org-block-end-line))) t)
>> (if (re-search-forward (concat "^[ ]*#\\+end" (match-string 4)
>> "\\>.*") nil t) (progn (setq end (min (point-max) (match-end 0)) end1
>> (min (point-max) (1- (match-beginning 0)))) (setq block-end
>> (match-beginning 0)) (if quoting (progn
>> (org-remove-flyspell-overlays-in beg1 end1) (remove-text-properties
>> beg end (quote (display t invisible t intangible t)))))
>> (add-text-properties beg end (quote (font-lock-fontified t
>> font-lock-multiline t))) (add-text-properties beg beg1 (quote (face
>> org-meta-line))) (org-remove-flyspell-overlays-in beg beg1)
>> (add-text-properties end1 (min (point-max) (1+ end)) (quote (face
>> org-meta-line))) (org-remove-flyspell-overlays-in end1 end) (cond
>> ((and lang (not (string= lang "")) org-src-fontify-natively)
>> (org-src-font-lock-fontify-block lang block-start block-end)
>> (add-text-properties beg1 block-end (quote (src-block t)))) (quoting
>> (add-text-properties beg1 (min (point-max) (1+ end1)) (list (quote
>> face) (list :inherit (let ... ...))))) ((not
>> org-fontify-quote-and-verse-blocks)) ((string= block-type "quote")
>> (add-text-properties beg1 (min (point-max) (1+ end1)) (quote (face
>> org-quote)))) ((string= block-type "verse") (add-text-properties beg1
>> (min (point-max) (1+ end1)) (quote (face org-verse)))))
>> (add-text-properties beg beg1 (quote (face org-block-begin-line)))
>> (add-text-properties (min (point-max) (1+ end)) (min (point-max) (1+
>> end1)) (quote (face org-block-end-line))) t))
>> (cond ((and (match-end 4) (equal dc3 "+begin")) (setq block-type
>> (downcase (match-string 5)) quoting (member block-type
>> org-protecting-blocks)) (if (re-search-forward (concat "^[ ]*#\\+end"
>> (match-string 4) "\\>.*") nil t) (progn (setq end (min (point-max)
>> (match-end 0)) end1 (min (point-max) (1- (match-beginning 0)))) (setq
>> block-end (match-beginning 0)) (if quoting (progn
>> (org-remove-flyspell-overlays-in beg1 end1) (remove-text-properties
>> beg end (quote ...)))) (add-text-properties beg end (quote
>> (font-lock-fontified t font-lock-multiline t))) (add-text-properties
>> beg beg1 (quote (face org-meta-line)))
>> (org-remove-flyspell-overlays-in beg beg1) (add-text-properties end1
>> (min (point-max) (1+ end)) (quote (face org-meta-line)))
>> (org-remove-flyspell-overlays-in end1 end) (cond ((and lang (not ...)
>> org-src-fontify-natively) (org-src-font-lock-fontify-block lang
>> block-start block-end) (add-text-properties beg1 block-end (quote
>> ...))) (quoting (add-text-properties beg1 (min ... ...) (list ...
>> ...))) ((not org-fontify-quote-and-verse-blocks)) ((string= block-type
>> "quote") (add-text-properties beg1 (min ... ...) (quote ...)))
>> ((string= block-type "verse") (add-text-properties beg1 (min ... ...)
>> (quote ...)))) (add-text-properties beg beg1 (quote (face
>> org-block-begin-line))) (add-text-properties (min (point-max) (1+
>> end)) (min (point-max) (1+ end1)) (quote (face org-block-end-line)))
>> t))) ((member dc1 (quote ("+title:" "+author:" "+email:" "+date:")))
>> (org-remove-flyspell-overlays-in (match-beginning 0) (if (equal
>> "+title:" dc1) (match-end 2) (match-end 0))) (add-text-properties beg
>> (match-end 3) (if (member (intern (substring dc1 1 -1))
>> org-hidden-keywords) (quote (font-lock-fontified t invisible t))
>> (quote (font-lock-fontified t face org-document-info-keyword))))
>> (add-text-properties (match-beginning 6) (min (point-max) (1+
>> (match-end 6))) (if (string-equal dc1 "+title:") (quote
>> (font-lock-fontified t face org-document-title)) (quote
>> (font-lock-fontified t face org-document-info))))) ((string-prefix-p
>> "+caption" dc1) (org-remove-flyspell-overlays-in (match-end 2)
>> (match-end 0)) (remove-text-properties (match-beginning 0) (match-end
>> 0) (quote (display t invisible t intangible t))) (save-excursion
>> (beginning-of-line) (looking-at "\\([
>> ]*#\\+caption\\(?:\\[.*\\]\\)?:\\)[ ]*")) (add-text-properties
>> (line-beginning-position) (match-end 1) (quote (font-lock-fontified t
>> face org-meta-line))) (add-text-properties (match-end 0)
>> (line-end-position) (quote (font-lock-fontified t face org-block))) t)
>> ((member dc3 (quote (" " ""))) (org-remove-flyspell-overlays-in beg
>> (match-end 0)) (add-text-properties beg (match-end 0) (quote
>> (font-lock-fontified t face font-lock-comment-face)))) (t
>> (org-remove-flyspell-overlays-in (match-beginning 0) (match-end 0))
>> (remove-text-properties (match-beginning 0) (match-end 0) (quote
>> (display t invisible t intangible t))) (add-text-properties beg
>> (match-end 0) (quote (font-lock-fontified t face org-meta-line))) t))
>> (let ((beg (match-beginning 0)) (block-start (match-end 0))
>> (block-end nil) (lang (match-string 7)) (beg1 (line-beginning-position
>> 2)) (dc1 (downcase (match-string 2))) (dc3 (downcase (match-string
>> 3))) end end1 quoting block-type) (cond ((and (match-end 4) (equal dc3
>> "+begin")) (setq block-type (downcase (match-string 5)) quoting
>> (member block-type org-protecting-blocks)) (if (re-search-forward
>> (concat "^[ ]*#\\+end" (match-string 4) "\\>.*") nil t) (progn (setq
>> end (min (point-max) (match-end 0)) end1 (min (point-max) (1- ...)))
>> (setq block-end (match-beginning 0)) (if quoting (progn
>> (org-remove-flyspell-overlays-in beg1 end1) (remove-text-properties
>> beg end ...))) (add-text-properties beg end (quote
>> (font-lock-fontified t font-lock-multiline t))) (add-text-properties
>> beg beg1 (quote (face org-meta-line)))
>> (org-remove-flyspell-overlays-in beg beg1) (add-text-properties end1
>> (min (point-max) (1+ end)) (quote (face org-meta-line)))
>> (org-remove-flyspell-overlays-in end1 end) (cond ((and lang ...
>> org-src-fontify-natively) (org-src-font-lock-fontify-block lang
>> block-start block-end) (add-text-properties beg1 block-end ...))
>> (quoting (add-text-properties beg1 ... ...)) ((not
>> org-fontify-quote-and-verse-blocks)) ((string= block-type "quote")
>> (add-text-properties beg1 ... ...)) ((string= block-type "verse")
>> (add-text-properties beg1 ... ...))) (add-text-properties beg beg1
>> (quote (face org-block-begin-line))) (add-text-properties (min
>> (point-max) (1+ end)) (min (point-max) (1+ end1)) (quote (face
>> org-block-end-line))) t))) ((member dc1 (quote ("+title:" "+author:"
>> "+email:" "+date:"))) (org-remove-flyspell-overlays-in
>> (match-beginning 0) (if (equal "+title:" dc1) (match-end 2) (match-end
>> 0))) (add-text-properties beg (match-end 3) (if (member (intern
>> (substring dc1 1 -1)) org-hidden-keywords) (quote (font-lock-fontified
>> t invisible t)) (quote (font-lock-fontified t face
>> org-document-info-keyword)))) (add-text-properties (match-beginning 6)
>> (min (point-max) (1+ (match-end 6))) (if (string-equal dc1 "+title:")
>> (quote (font-lock-fontified t face org-document-title)) (quote
>> (font-lock-fontified t face org-document-info))))) ((string-prefix-p
>> "+caption" dc1) (org-remove-flyspell-overlays-in (match-end 2)
>> (match-end 0)) (remove-text-properties (match-beginning 0) (match-end
>> 0) (quote (display t invisible t intangible t))) (save-excursion
>> (beginning-of-line) (looking-at "\\([
>> ]*#\\+caption\\(?:\\[.*\\]\\)?:\\)[ ]*")) (add-text-properties
>> (line-beginning-position) (match-end 1) (quote (font-lock-fontified t
>> face org-meta-line))) (add-text-properties (match-end 0)
>> (line-end-position) (quote (font-lock-fontified t face org-block))) t)
>> ((member dc3 (quote (" " ""))) (org-remove-flyspell-overlays-in beg
>> (match-end 0)) (add-text-properties beg (match-end 0) (quote
>> (font-lock-fontified t face font-lock-comment-face)))) (t
>> (org-remove-flyspell-overlays-in (match-beginning 0) (match-end 0))
>> (remove-text-properties (match-beginning 0) (match-end 0) (quote
>> (display t invisible t intangible t))) (add-text-properties beg
>> (match-end 0) (quote (font-lock-fontified t face org-meta-line))) t)))
>> (progn (let ((beg (match-beginning 0)) (block-start (match-end 0))
>> (block-end nil) (lang (match-string 7)) (beg1 (line-beginning-position
>> 2)) (dc1 (downcase (match-string 2))) (dc3 (downcase (match-string
>> 3))) end end1 quoting block-type) (cond ((and (match-end 4) (equal dc3
>> "+begin")) (setq block-type (downcase (match-string 5)) quoting
>> (member block-type org-protecting-blocks)) (if (re-search-forward
>> (concat "^[ ]*#\\+end" (match-string 4) "\\>.*") nil t) (progn (setq
>> end (min ... ...) end1 (min ... ...)) (setq block-end (match-beginning
>> 0)) (if quoting (progn ... ...)) (add-text-properties beg end (quote
>> ...)) (add-text-properties beg beg1 (quote ...))
>> (org-remove-flyspell-overlays-in beg beg1) (add-text-properties end1
>> (min ... ...) (quote ...)) (org-remove-flyspell-overlays-in end1 end)
>> (cond (... ... ...) (quoting ...) (...) (... ...) (... ...))
>> (add-text-properties beg beg1 (quote ...)) (add-text-properties (min
>> ... ...) (min ... ...) (quote ...)) t))) ((member dc1 (quote
>> ("+title:" "+author:" "+email:" "+date:")))
>> (org-remove-flyspell-overlays-in (match-beginning 0) (if (equal
>> "+title:" dc1) (match-end 2) (match-end 0))) (add-text-properties beg
>> (match-end 3) (if (member (intern ...) org-hidden-keywords) (quote
>> (font-lock-fontified t invisible t)) (quote (font-lock-fontified t
>> face org-document-info-keyword)))) (add-text-properties
>> (match-beginning 6) (min (point-max) (1+ (match-end 6))) (if
>> (string-equal dc1 "+title:") (quote (font-lock-fontified t face
>> org-document-title)) (quote (font-lock-fontified t face
>> org-document-info))))) ((string-prefix-p "+caption" dc1)
>> (org-remove-flyspell-overlays-in (match-end 2) (match-end 0))
>> (remove-text-properties (match-beginning 0) (match-end 0) (quote
>> (display t invisible t intangible t))) (save-excursion
>> (beginning-of-line) (looking-at "\\([
>> ]*#\\+caption\\(?:\\[.*\\]\\)?:\\)[ ]*")) (add-text-properties
>> (line-beginning-position) (match-end 1) (quote (font-lock-fontified t
>> face org-meta-line))) (add-text-properties (match-end 0)
>> (line-end-position) (quote (font-lock-fontified t face org-block))) t)
>> ((member dc3 (quote (" " ""))) (org-remove-flyspell-overlays-in beg
>> (match-end 0)) (add-text-properties beg (match-end 0) (quote
>> (font-lock-fontified t face font-lock-comment-face)))) (t
>> (org-remove-flyspell-overlays-in (match-beginning 0) (match-end 0))
>> (remove-text-properties (match-beginning 0) (match-end 0) (quote
>> (display t invisible t intangible t))) (add-text-properties beg
>> (match-end 0) (quote (font-lock-fontified t face org-meta-line)))
>> t))))
>> (if (re-search-forward "^\\([ ]*#\\(\\(\\+[a-zA-Z]+:?\\|
>> \\|$\\)\\(_\\([a-zA-Z]+\\)\\)?\\)[ ]*\\(\\([^ \n]*\\)[
>> ]*\\(.*\\)\\)\\)" limit t) (progn (let ((beg (match-beginning 0))
>> (block-start (match-end 0)) (block-end nil) (lang (match-string 7))
>> (beg1 (line-beginning-position 2)) (dc1 (downcase (match-string 2)))
>> (dc3 (downcase (match-string 3))) end end1 quoting block-type) (cond
>> ((and (match-end 4) (equal dc3 "+begin")) (setq block-type (downcase
>> (match-string 5)) quoting (member block-type org-protecting-blocks))
>> (if (re-search-forward (concat "^[ ]*#\\+end" ... "\\>.*") nil t)
>> (progn (setq end ... end1 ...) (setq block-end ...) (if quoting ...)
>> (add-text-properties beg end ...) (add-text-properties beg beg1 ...)
>> (org-remove-flyspell-overlays-in beg beg1) (add-text-properties end1
>> ... ...) (org-remove-flyspell-overlays-in end1 end) (cond ... ... ...
>> ... ...) (add-text-properties beg beg1 ...) (add-text-properties ...
>> ... ...) t))) ((member dc1 (quote ("+title:" "+author:" "+email:"
>> "+date:"))) (org-remove-flyspell-overlays-in (match-beginning 0) (if
>> (equal "+title:" dc1) (match-end 2) (match-end 0)))
>> (add-text-properties beg (match-end 3) (if (member ...
>> org-hidden-keywords) (quote ...) (quote ...))) (add-text-properties
>> (match-beginning 6) (min (point-max) (1+ ...)) (if (string-equal dc1
>> "+title:") (quote ...) (quote ...)))) ((string-prefix-p "+caption"
>> dc1) (org-remove-flyspell-overlays-in (match-end 2) (match-end 0))
>> (remove-text-properties (match-beginning 0) (match-end 0) (quote
>> (display t invisible t intangible t))) (save-excursion
>> (beginning-of-line) (looking-at "\\([
>> ]*#\\+caption\\(?:\\[.*\\]\\)?:\\)[ ]*")) (add-text-properties
>> (line-beginning-position) (match-end 1) (quote (font-lock-fontified t
>> face org-meta-line))) (add-text-properties (match-end 0)
>> (line-end-position) (quote (font-lock-fontified t face org-block))) t)
>> ((member dc3 (quote (" " ""))) (org-remove-flyspell-overlays-in beg
>> (match-end 0)) (add-text-properties beg (match-end 0) (quote
>> (font-lock-fontified t face font-lock-comment-face)))) (t
>> (org-remove-flyspell-overlays-in (match-beginning 0) (match-end 0))
>> (remove-text-properties (match-beginning 0) (match-end 0) (quote
>> (display t invisible t intangible t))) (add-text-properties beg
>> (match-end 0) (quote (font-lock-fontified t face org-meta-line)))
>> t)))))
>> (let ((case-fold-search t)) (if (re-search-forward "^\\([
>> ]*#\\(\\(\\+[a-zA-Z]+:?\\| \\|$\\)\\(_\\([a-zA-Z]+\\)\\)?\\)[
>> ]*\\(\\([^ \n]*\\)[ ]*\\(.*\\)\\)\\)" limit t) (progn (let ((beg
>> (match-beginning 0)) (block-start (match-end 0)) (block-end nil) (lang
>> (match-string 7)) (beg1 (line-beginning-position 2)) (dc1 (downcase
>> (match-string 2))) (dc3 (downcase (match-string 3))) end end1 quoting
>> block-type) (cond ((and (match-end 4) (equal dc3 "+begin")) (setq
>> block-type (downcase ...) quoting (member block-type
>> org-protecting-blocks)) (if (re-search-forward ... nil t) (progn ...
>> ... ... ... ... ... ... ... ... ... ... t))) ((member dc1 (quote ...))
>> (org-remove-flyspell-overlays-in (match-beginning 0) (if ... ... ...))
>> (add-text-properties beg (match-end 3) (if ... ... ...))
>> (add-text-properties (match-beginning 6) (min ... ...) (if ... ...
>> ...))) ((string-prefix-p "+caption" dc1)
>> (org-remove-flyspell-overlays-in (match-end 2) (match-end 0))
>> (remove-text-properties (match-beginning 0) (match-end 0) (quote ...))
>> (save-excursion (beginning-of-line) (looking-at "\\([
>> ]*#\\+caption\\(?:\\[.*\\]\\)?:\\)[ ]*")) (add-text-properties
>> (line-beginning-position) (match-end 1) (quote ...))
>> (add-text-properties (match-end 0) (line-end-position) (quote ...)) t)
>> ((member dc3 (quote ...)) (org-remove-flyspell-overlays-in beg
>> (match-end 0)) (add-text-properties beg (match-end 0) (quote ...))) (t
>> (org-remove-flyspell-overlays-in (match-beginning 0) (match-end 0))
>> (remove-text-properties (match-beginning 0) (match-end 0) (quote ...))
>> (add-text-properties beg (match-end 0) (quote ...)) t))))))
>> org-fontify-meta-lines-and-blocks-1(37)
>> org-fontify-meta-lines-and-blocks(37)
>> font-lock-fontify-keywords-region(1 37 nil)
>> font-lock-default-fontify-region(1 37 nil)
>> font-lock-fontify-region(1 37 nil)
>> font-lock-default-fontify-buffer()
>> font-lock-fontify-buffer()
>> org-bullets-mode()
>> run-hooks(change-major-mode-after-body-hook text-mode-hook
>> outline-mode-hook org-mode-hook)
>> apply(run-hooks (change-major-mode-after-body-hook text-mode-hook
>> outline-mode-hook org-mode-hook))
>> run-mode-hooks(org-mode-hook)
>> org-mode()
>> set-auto-mode-0(org-mode nil)
>> set-auto-mode()
>> normal-mode(t)
>> after-find-file(nil t)
>> find-file-noselect-1(#<buffer test.org> "~/Dropbox
>> (Personal)/Notes/test.org" nil nil "~/Dropbox
>> (Personal)/Notes/test.org" (213415716 16777220))
>> find-file-noselect("/Users/aaronjensen/Dropbox
>> (Personal)/Notes/test.org" nil nil nil)
>> find-file("/Users/aaronjensen/Dropbox (Personal)/Notes/test.org")
>> find-file-existing("/Users/aaronjensen/Dropbox (Personal)/Notes/test.org")
>> (lambda (&rest ignore) (find-file-existing
>> "/Users/aaronjensen/Dropbox (Personal)/Notes/test.org"))((push-button
>> :args nil :value "~/Dropbox (Personal)/Notes/test.org" :action (lambda
>> (&rest ignore) (find-file-existing "/Users/aaronjensen/Dropbox
>> (Personal)/Notes/test.org")) :mouse-face highlight :follow-link "
>> " :button-prefix "" :button-suffix "" :format "%[%t%]" :button-overlay
>> #<overlay from 1115 to 1150 in *spacemacs*> :from #<marker (moves
>> after insertion) at 1115 in *spacemacs*> :to #<marker at 1150 in
>> *spacemacs*>) nil)
>> widget-apply((push-button :args nil :value "~/Dropbox
>> (Personal)/Notes/test.org" :action (lambda (&rest ignore)
>> (find-file-existing "/Users/aaronjensen/Dropbox
>> (Personal)/Notes/test.org")) :mouse-face highlight :follow-link "
>> " :button-prefix "" :button-suffix "" :format "%[%t%]" :button-overlay
>> #<overlay from 1115 to 1150 in *spacemacs*> :from #<marker (moves
>> after insertion) at 1115 in *spacemacs*> :to #<marker at 1150 in
>> *spacemacs*>) :action nil)
>> widget-apply-action((push-button :args nil :value "~/Dropbox
>> (Personal)/Notes/test.org" :action (lambda (&rest ignore)
>> (find-file-existing "/Users/aaronjensen/Dropbox
>> (Personal)/Notes/test.org")) :mouse-face highlight :follow-link "
>> " :button-prefix "" :button-suffix "" :format "%[%t%]" :button-overlay
>> #<overlay from 1115 to 1150 in *spacemacs*> :from #<marker (moves
>> after insertion) at 1115 in *spacemacs*> :to #<marker at 1150 in
>> *spacemacs*>) nil)
>> widget-button-press(1142)
>> funcall-interactively(widget-button-press 1142)
>> call-interactively(widget-button-press nil nil)
>> command-execute(widget-button-press)
--
Dr. Sébastien Le Maguer
Postdoctorate researcher
Saarland University
Campus C7.4 - room 2.03
D-66123 Saarbrücken
Germany
phone : +49-681-302-70030
Mail: slemaguer@coli.uni-saarland.de
website : http://www.coli.uni-saarland.de/~slemaguer/
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Fontification error
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
1 sibling, 1 reply; 13+ messages in thread
From: Noam Postavsky @ 2017-03-19 18:04 UTC (permalink / raw)
To: Kyle Meyer; +Cc: emacs-orgmode, Aaron Jensen
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
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Fontification error
2017-03-19 18:04 ` Noam Postavsky
@ 2017-03-19 19:50 ` Aaron Jensen
2017-03-19 22:58 ` Nicolas Goaziou
0 siblings, 1 reply; 13+ messages in thread
From: Aaron Jensen @ 2017-03-19 19:50 UTC (permalink / raw)
To: Noam Postavsky; +Cc: Kyle Meyer, emacs-orgmode
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
^ permalink raw reply related [flat|nested] 13+ messages in thread
* Re: Fontification error
2017-03-19 19:50 ` Aaron Jensen
@ 2017-03-19 22:58 ` Nicolas Goaziou
2017-03-20 1:03 ` Aaron Jensen
0 siblings, 1 reply; 13+ messages in thread
From: Nicolas Goaziou @ 2017-03-19 22:58 UTC (permalink / raw)
To: Aaron Jensen; +Cc: Kyle Meyer, emacs-orgmode, Noam Postavsky
Hello,
Aaron Jensen <aaronjensen@gmail.com> writes:
> 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.
Applied. Thank you.
I added TINYCHANGE at the end of the commit message since I don't know
whether you signed FSF papers or not.
Regards,
--
Nicolas Goaziou
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Fontification error
2017-03-19 22:58 ` Nicolas Goaziou
@ 2017-03-20 1:03 ` Aaron Jensen
2017-05-06 16:53 ` Thomas S. Dye
0 siblings, 1 reply; 13+ messages in thread
From: Aaron Jensen @ 2017-03-20 1:03 UTC (permalink / raw)
To: Nicolas Goaziou; +Cc: Kyle Meyer, emacs-orgmode, Noam Postavsky
On Sun, Mar 19, 2017 at 3:58 PM, Nicolas Goaziou <mail@nicolasgoaziou.fr> wrote:
> Hello,
>
> Applied. Thank you.
>
> I added TINYCHANGE at the end of the commit message since I don't know
> whether you signed FSF papers or not.
Thank you! I have not yet.
Aaron
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Fontification error
2017-03-20 1:03 ` Aaron Jensen
@ 2017-05-06 16:53 ` Thomas S. Dye
0 siblings, 0 replies; 13+ messages in thread
From: Thomas S. Dye @ 2017-05-06 16:53 UTC (permalink / raw)
To: Aaron Jensen; +Cc: emacs-orgmode, Noam Postavsky, Nicolas Goaziou
Aloha all,
Aaron Jensen writes:
> On Sun, Mar 19, 2017 at 3:58 PM, Nicolas Goaziou <mail@nicolasgoaziou.fr> wrote:
>> Hello,
>>
>> Applied. Thank you.
>>
>> I added TINYCHANGE at the end of the commit message since I don't know
>> whether you signed FSF papers or not.
>
> Thank you! I have not yet.
>
> Aaron
Many thanks for this fix, which appeared recently in the Elpa
org-plus-contrib package. (setq org-src-fontify-natively t) works just
fine here.
All the best,
Tom
--
Thomas S. Dye
http://www.tsdye.com
^ permalink raw reply [flat|nested] 13+ messages in thread
* Fontification error
@ 2017-02-13 16:58 Thomas S. Dye
2017-02-13 17:21 ` Nicolas Goaziou
0 siblings, 1 reply; 13+ messages in thread
From: Thomas S. Dye @ 2017-02-13 16:58 UTC (permalink / raw)
To: emacs-orgmode@gnu.org
Aloha all,
I get fontification error messages when loading Org mode files since
upgrading this morning.
org-mode fontification error in #<buffer saa-2017.org> at 685
Org mode version 9.0.5 (9.0.5-elpaplus @
/Users/dk/.emacs.d/elpa/org-plus-contrib-20170210/)
Let me know if you have questions.
All the best,
Tom
--
Thomas S. Dye
http://www.tsdye.com
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Fontification error
2017-02-13 16:58 Thomas S. Dye
@ 2017-02-13 17:21 ` Nicolas Goaziou
2017-02-16 18:56 ` Sébastien Le Maguer
0 siblings, 1 reply; 13+ messages in thread
From: Nicolas Goaziou @ 2017-02-13 17:21 UTC (permalink / raw)
To: Thomas S. Dye; +Cc: emacs-orgmode@gnu.org
Hello,
"Thomas S. Dye" <tsd@tsdye.com> writes:
> I get fontification error messages when loading Org mode files since
> upgrading this morning.
>
> org-mode fontification error in #<buffer saa-2017.org> at 685
>
> Org mode version 9.0.5 (9.0.5-elpaplus @
> /Users/dk/.emacs.d/elpa/org-plus-contrib-20170210/)
>
> Let me know if you have questions.
I cannot reproduce it. Could you provide an ECM?
Regards,
--
Nicolas Goaziou
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Fontification error
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
0 siblings, 2 replies; 13+ messages in thread
From: Sébastien Le Maguer @ 2017-02-16 18:56 UTC (permalink / raw)
To: Nicolas Goaziou; +Cc: emacs-orgmode@gnu.org
Hello,
I do have the same problem but I think it might be more a theme issues than an org-mode one. I try to find a minimal example but @Thomas, are you using a specific theme ?
Kind regards,
Sébastien
On Mon, Feb 13 2017 (18:21), Nicolas Goaziou <mail@nicolasgoaziou.fr> wrote:
> Hello,
>
> "Thomas S. Dye" <tsd@tsdye.com> writes:
>
>> I get fontification error messages when loading Org mode files since
>> upgrading this morning.
>>
>> org-mode fontification error in #<buffer saa-2017.org> at 685
>>
>> Org mode version 9.0.5 (9.0.5-elpaplus @
>> /Users/dk/.emacs.d/elpa/org-plus-contrib-20170210/)
>>
>> Let me know if you have questions.
>
> I cannot reproduce it. Could you provide an ECM?
>
> Regards,
--
Dr. Sébastien Le Maguer
Postdoctorate researcher
Saarland University
Campus C7.4 - room 2.03
D-66123 Saarbrücken
Germany
phone : +49-681-302-70030
Mail: slemaguer@coli.uni-saarland.de
website : http://www.coli.uni-saarland.de/~slemaguer/
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Fontification error
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
1 sibling, 0 replies; 13+ messages in thread
From: Thomas S. Dye @ 2017-02-16 21:31 UTC (permalink / raw)
To: Sébastien Le Maguer; +Cc: emacs-orgmode@gnu.org, Nicolas Goaziou
Aloha Sébastien,
Sébastien Le Maguer writes:
> Hello,
>
> I do have the same problem but I think it might be more a theme issues than an org-mode one. I try to find a minimal example but @Thomas, are you using a specific theme ?
>
> Kind regards,
> Sébastien
> On Mon, Feb 13 2017 (18:21), Nicolas Goaziou <mail@nicolasgoaziou.fr> wrote:
>
>> Hello,
>>
>> "Thomas S. Dye" <tsd@tsdye.com> writes:
>>
>>> I get fontification error messages when loading Org mode files since
>>> upgrading this morning.
>>>
>>> org-mode fontification error in #<buffer saa-2017.org> at 685
>>>
>>> Org mode version 9.0.5 (9.0.5-elpaplus @
>>> /Users/dk/.emacs.d/elpa/org-plus-contrib-20170210/)
>>>
>>> Let me know if you have questions.
>>
>> I cannot reproduce it. Could you provide an ECM?
>>
>> Regards,
The problem here has to do with org-src-fontify-natively. If I set that
nil, then the fontification errors go away.
There is no problem with emacs -Q, so I'm guessing another package is
causing the problem. I don't have an ECM yet. I'm using spacemacs,
which loads many packages, so tracking down the problem is likely to be
difficult.
All the best,
Tom
--
Thomas S. Dye
http://www.tsdye.com
^ permalink raw reply [flat|nested] 13+ messages in thread
* Re: Fontification error
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
1 sibling, 0 replies; 13+ messages in thread
From: Thomas S. Dye @ 2017-02-17 4:04 UTC (permalink / raw)
To: Sébastien Le Maguer; +Cc: emacs-orgmode@gnu.org, Nicolas Goaziou
Aloha Sébastien,
Sébastien Le Maguer writes:
> Hello,
>
> I do have the same problem but I think it might be more a theme issues than an org-mode one. I try to find a minimal example but @Thomas, are you using a specific theme ?
I forgot to answer your question. I have reproduced the problem with
alect-themes and zenburn-theme, so I don't think it is triggered by a
specific theme.
All the best,
Tom
--
Thomas S. Dye
http://www.tsdye.com
^ permalink raw reply [flat|nested] 13+ messages in thread
end of thread, other threads:[~2017-05-06 16:54 UTC | newest]
Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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
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
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).