From: Stefan Monnier Date: Mon, 29 Apr 2019 20:32:52 +0000 (-0400) Subject: * lisp/international/mule-util.el: Avoid setq; clarify meaning of -1. X-Git-Tag: emacs-27.0.90~3040 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=071a6927a89bc013d5e026e446d4ee503c59bc7b;p=emacs.git * lisp/international/mule-util.el: Avoid setq; clarify meaning of -1. --- diff --git a/lisp/international/mule-util.el b/lisp/international/mule-util.el index 8ad212796a5..de5e7d83231 100644 --- a/lisp/international/mule-util.el +++ b/lisp/international/mule-util.el @@ -456,7 +456,7 @@ QUALITY can be: (lineno (if (= eol 1) (1- (line-number-at-pos position)) 0)) (type (coding-system-type coding-system)) (base (coding-system-base coding-system)) - byte) + (point-min 1)) ;Clarify what the `1' means. (and (eq type 'utf-8) ;; Any post-read/pre-write conversions mean it's not really UTF-8. (not (null (coding-system-get coding-system :post-read-conversion))) @@ -471,19 +471,17 @@ QUALITY can be: (setq type 'single-byte)) (pcase type ('utf-8 - (setq byte (position-bytes position)) - (when (null byte) - (if (<= position 0) - (setq byte 1) - (setq byte (position-bytes (point-max))))) - (setq byte (1- byte)) - (+ byte + (+ (or (position-bytes position) + (if (<= position 0) + point-min + (position-bytes (point-max)))) ;; Account for BOM, if any. (if (coding-system-get coding-system :bom) 3 0) ;; Account for CR in CRLF pairs. - lineno)) + lineno + (- point-min))) ('single-byte - (+ position -1 lineno)) + (+ position (- point-min) lineno)) ((and 'utf-16 ;; FIXME: For utf-16, we could use the same approach as used for ;; dos EOLs (counting the number of non-BMP chars instead of the @@ -491,14 +489,14 @@ QUALITY can be: (guard (not (eq quality 'exact)))) ;; In approximate mode, assume all characters are within the ;; BMP, i.e. each one takes up 2 bytes. - (+ (* (1- position) 2) + (+ (* (- position point-min) 2) ;; Account for BOM, if any. (if (coding-system-get coding-system :bom) 2 0) ;; Account for CR in CRLF pairs. lineno)) (_ (pcase quality - ('approximate (+ (position-bytes position) -1 lineno)) + ('approximate (+ (position-bytes position) (- point-min) lineno)) ('exact ;; Rather than assume that the file exists and still holds the right ;; data, we reconstruct its relevant portion. @@ -511,7 +509,7 @@ QUALITY can be: (widen) (encode-coding-region (point-min) (min (point-max) position) coding-system tmp-buf))) - (1- (point-max))))))))))) + (buffer-size)))))))))) (provide 'mule-util)