# HG changeset patch # User Richard M. Stallman # Date 1130615140 0 # Node ID 364aad458607e239fe4a114868860ec142e51c63 # Parent 69a4a0370a0b12798d218f18adfde77f7f63d528 (jit-lock-function, jit-lock-stealth-fontify) (jit-lock-deferred-fontify, jit-lock-context-fontify) (jit-lock-after-change): Test memory-full. diff -r 69a4a0370a0b -r 364aad458607 lisp/jit-lock.el --- a/lisp/jit-lock.el Sat Oct 29 19:44:25 2005 +0000 +++ b/lisp/jit-lock.el Sat Oct 29 19:45:40 2005 +0000 @@ -299,7 +299,7 @@ "Fontify current buffer starting at position START. This function is added to `fontification-functions' when `jit-lock-mode' is active." - (when (and jit-lock-mode (not (memory-full-p))) + (when (and jit-lock-mode (not memory-full)) (if (null jit-lock-defer-time) ;; No deferral. (jit-lock-fontify-now start (+ start jit-lock-chunk-size)) @@ -427,6 +427,7 @@ `jit-lock-stealth-time' seconds." ;; I used to check `inhibit-read-only' here, but I can't remember why. -stef (unless (or executing-kbd-macro + memory-full (window-minibuffer-p (selected-window))) (let ((buffers (buffer-list)) (outer-buffer (current-buffer)) @@ -490,7 +491,7 @@ (defun jit-lock-deferred-fontify () "Fontify what was deferred." - (when jit-lock-defer-buffers + (when (and jit-lock-defer-buffers (not memory-full)) ;; Mark the deferred regions back to `fontified = nil' (dolist (buffer jit-lock-defer-buffers) (when (buffer-live-p buffer) @@ -517,33 +518,34 @@ (defun jit-lock-context-fontify () "Refresh fontification to take new context into account." - (dolist (buffer (buffer-list)) - (with-current-buffer buffer - (when jit-lock-context-unfontify-pos - ;; (message "Jit-Context %s" (buffer-name)) - (save-restriction - (widen) - (when (and (>= jit-lock-context-unfontify-pos (point-min)) - (< jit-lock-context-unfontify-pos (point-max))) - ;; If we're in text that matches a complex multi-line - ;; font-lock pattern, make sure the whole text will be - ;; redisplayed eventually. - ;; Despite its name, we treat jit-lock-defer-multiline here - ;; rather than in jit-lock-defer since it has to do with multiple - ;; lines, i.e. with context. - (when (get-text-property jit-lock-context-unfontify-pos - 'jit-lock-defer-multiline) - (setq jit-lock-context-unfontify-pos - (or (previous-single-property-change - jit-lock-context-unfontify-pos - 'jit-lock-defer-multiline) - (point-min)))) - (with-buffer-prepared-for-jit-lock - ;; Force contextual refontification. - (remove-text-properties - jit-lock-context-unfontify-pos (point-max) - '(fontified nil jit-lock-defer-multiline nil))) - (setq jit-lock-context-unfontify-pos (point-max)))))))) + (unless memory-full + (dolist (buffer (buffer-list)) + (with-current-buffer buffer + (when jit-lock-context-unfontify-pos + ;; (message "Jit-Context %s" (buffer-name)) + (save-restriction + (widen) + (when (and (>= jit-lock-context-unfontify-pos (point-min)) + (< jit-lock-context-unfontify-pos (point-max))) + ;; If we're in text that matches a complex multi-line + ;; font-lock pattern, make sure the whole text will be + ;; redisplayed eventually. + ;; Despite its name, we treat jit-lock-defer-multiline here + ;; rather than in jit-lock-defer since it has to do with multiple + ;; lines, i.e. with context. + (when (get-text-property jit-lock-context-unfontify-pos + 'jit-lock-defer-multiline) + (setq jit-lock-context-unfontify-pos + (or (previous-single-property-change + jit-lock-context-unfontify-pos + 'jit-lock-defer-multiline) + (point-min)))) + (with-buffer-prepared-for-jit-lock + ;; Force contextual refontification. + (remove-text-properties + jit-lock-context-unfontify-pos (point-max) + '(fontified nil jit-lock-defer-multiline nil))) + (setq jit-lock-context-unfontify-pos (point-max))))))))) (defun jit-lock-after-change (start end old-len) "Mark the rest of the buffer as not fontified after a change. @@ -553,7 +555,7 @@ This function ensures that lines following the change will be refontified in case the syntax of those lines has changed. Refontification will take place when text is fontified stealthily." - (when (and jit-lock-mode (not (memory-full-p))) + (when (and jit-lock-mode (not memory-full)) (save-excursion (with-buffer-prepared-for-jit-lock ;; It's important that the `fontified' property be set from the