Mercurial > emacs
changeset 106307:cbe5e21da2e4
Try and remove assumptions about point-min==1.
* nxml/rng-valid.el (rng-validate-mode): Don't hardcode point-min==1.
(rng-compute-mode-line-string): Show the validation percentage in
terms of the narrowed text, not the widened text.
(rng-do-some-validation): Don't catch internal errors when debugging.
(rng-first-error): Simplify.
(rng-after-change-function): Remove work around. AFAIK the bug has
been fixed a while ago.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Sat, 28 Nov 2009 21:32:06 +0000 |
parents | 6e2494c3a2ff |
children | f276530df5ef |
files | lisp/ChangeLog lisp/nxml/rng-valid.el |
diffstat | 2 files changed, 23 insertions(+), 17 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Sat Nov 28 21:11:25 2009 +0000 +++ b/lisp/ChangeLog Sat Nov 28 21:32:06 2009 +0000 @@ -1,5 +1,14 @@ 2009-11-28 Stefan Monnier <monnier@iro.umontreal.ca> + Try and remove assumptions about point-min==1. + * nxml/rng-valid.el (rng-validate-mode): Don't hardcode point-min==1. + (rng-compute-mode-line-string): Show the validation percentage in + terms of the narrowed text, not the widened text. + (rng-do-some-validation): Don't catch internal errors when debugging. + (rng-first-error): Simplify. + (rng-after-change-function): Remove work around. AFAIK the bug has + been fixed a while ago. + * image-mode.el (image-minor-mode): Exit more gracefully when the image cannot be displayed (e.g. when doing C-x C-f some-new-file.svg RET).
--- a/lisp/nxml/rng-valid.el Sat Nov 28 21:11:25 2009 +0000 +++ b/lisp/nxml/rng-valid.el Sat Nov 28 21:32:06 2009 +0000 @@ -247,8 +247,8 @@ (nxml-with-unmodifying-text-property-changes (rng-clear-cached-state (point-min) (point-max))) ;; 1+ to clear empty overlays at (point-max) - (rng-clear-overlays (point-min) (1+ (point-max)))) - (setq rng-validate-up-to-date-end 1) + (rng-clear-overlays (point-min) (1+ (point-max))) + (setq rng-validate-up-to-date-end (point-min))) (rng-clear-conditional-region) (setq rng-error-count 0) ;; do this here to avoid infinite loop if we set the schema @@ -304,10 +304,6 @@ (or rng-validate-mode (rng-validate-mode))) (defun rng-after-change-function (start end pre-change-len) - ;; Work around bug in insert-file-contents. - (when (> end (1+ (buffer-size))) - (setq start 1) - (setq end (1+ (buffer-size)))) (setq rng-message-overlay-inhibit-point nil) (nxml-with-unmodifying-text-property-changes (rng-clear-cached-state start end)) @@ -335,11 +331,13 @@ (setq rng-validate-up-to-date-end start)) ;; Must make rng-validate-up-to-date-end < point-max ;; (unless the buffer is empty). - ;; otherwise validate-prepare will say there's nothing to do. - ;; Don't use (point-max) because we may be narrowed. - (if (> rng-validate-up-to-date-end (buffer-size)) - (setq rng-validate-up-to-date-end - (max 1 (1- rng-validate-up-to-date-end)))) + ;; otherwise rng-validate-prepare will say there's nothing to do. + (when (>= rng-validate-up-to-date-end (point-max)) + (setq rng-validate-up-to-date-end + (if (< (point-min) (point-max)) + (1- (point-max)) + ;; Only widen if really necessary. + (save-restriction (widen) (max (point-min) (1- (point-max))))))) ;; Arrange to revalidate (rng-activate-timers) ;; Need to do this after activating the timer @@ -354,8 +352,9 @@ ;; the end. (floor (if (eq (buffer-size) 0) 0.0 - (/ (* (- rng-validate-up-to-date-end 1) 100.0) - (buffer-size))))) + (/ (* (- rng-validate-up-to-date-end (point-min)) + 100.0) + (- (point-max) (point-min)))))) "%%")) ((> rng-error-count 0) (concat " " @@ -476,7 +475,7 @@ (save-restriction (widen) (nxml-with-invisible-motion - (condition-case err + (condition-case-no-debug err (and (rng-validate-prepare) (let ((rng-dt-namespace-context-getter '(nxml-ns-get-context))) (nxml-with-unmodifying-text-property-changes @@ -809,9 +808,7 @@ Turn on `rng-validate-mode' if it is not already on." (interactive) (or rng-validate-mode (rng-validate-mode)) - (when (and (eq rng-validate-up-to-date-end 1) - (< rng-validate-up-to-date-end (point-max))) - (rng-do-some-validation)) + (rng-do-some-validation) (let ((err (rng-find-next-error-overlay (1- (point-min))))) (if err (rng-goto-error-overlay err)