From: Stefan Monnier Date: Tue, 23 Apr 2013 12:29:14 +0000 (-0400) Subject: * lisp/jit-lock.el: Fix signals in jit-lock-force-redisplay. X-Git-Tag: emacs-24.3.90~173^2^2~42^2~45^2~387^2~2026^2~398 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=117f94cf109728a2e6f1d506041a741481eeedff;p=emacs.git * lisp/jit-lock.el: Fix signals in jit-lock-force-redisplay. Use lexical-binding. (jit-lock-force-redisplay): Use markers, check buffer's continued existence and beware narrowed buffers. (jit-lock-fontify-now): Adjust call accordingly. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index f538764f909..4307577950f 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,11 @@ +2013-04-23 Stefan Monnier + + * jit-lock.el: Fix signals in jit-lock-force-redisplay. + Use lexical-binding. + (jit-lock-force-redisplay): Use markers, check buffer's continued + existence and beware narrowed buffers. + (jit-lock-fontify-now): Adjust call accordingly. + 2013-04-22 Stefan Monnier * minibuffer.el (minibuffer-completion-contents): Fix obsolescence info diff --git a/lisp/jit-lock.el b/lisp/jit-lock.el index d879735c344..9359a65a1b8 100644 --- a/lisp/jit-lock.el +++ b/lisp/jit-lock.el @@ -1,4 +1,4 @@ -;;; jit-lock.el --- just-in-time fontification +;;; jit-lock.el --- just-in-time fontification -*- lexical-binding: t -*- ;; Copyright (C) 1998, 2000-2013 Free Software Foundation, Inc. @@ -412,21 +412,24 @@ Defaults to the whole buffer. END can be out of bounds." ;; eagerly extend the refontified region with ;; jit-lock-after-change-extend-region-functions. (when (< start orig-start) - (run-with-timer 0 nil 'jit-lock-force-redisplay - (current-buffer) start orig-start)) + (run-with-timer 0 nil #'jit-lock-force-redisplay + (copy-marker start) (copy-marker orig-start))) ;; Find the start of the next chunk, if any. (setq start (text-property-any next end 'fontified nil)))))))) -(defun jit-lock-force-redisplay (buf start end) +(defun jit-lock-force-redisplay (start end) "Force the display engine to re-render buffer BUF from START to END." - (with-current-buffer buf - (with-buffer-prepared-for-jit-lock - ;; Don't cause refontification (it's already been done), but just do - ;; some random buffer change, so as to force redisplay. - (put-text-property start end 'fontified t)))) - - + (when (marker-buffer start) + (with-current-buffer (marker-buffer start) + (with-buffer-prepared-for-jit-lock + (when (> end (point-max)) + (setq end (point-max) start (min start end))) + (when (< start (point-min)) + (setq start (point-min) end (max start end))) + ;; Don't cause refontification (it's already been done), but just do + ;; some random buffer change, so as to force redisplay. + (put-text-property start end 'fontified t))))) ;;; Stealth fontification.