1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-28 07:45:00 +00:00

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.
This commit is contained in:
Stefan Monnier 2009-11-28 21:32:06 +00:00
parent 9d542758cf
commit 21f49db9e9
2 changed files with 23 additions and 17 deletions

View File

@ -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).

View File

@ -247,8 +247,8 @@ to use for finding the schema."
(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 @@ The schema is set like `rng-auto-set-schema'."
(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 @@ The schema is set like `rng-auto-set-schema'."
(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 schema is set like `rng-auto-set-schema'."
;; 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 @@ The schema is set like `rng-auto-set-schema'."
(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 @@ Return t if there is work to do, nil otherwise."
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)