From 5cb4031d8f4101d80e936a9a13839ea1820db938 Mon Sep 17 00:00:00 2001 From: Kenichi Handa Date: Wed, 13 Nov 2002 07:06:07 +0000 Subject: [PATCH] (occur-engine): Set buffer-file-coding-system of OUT-BUF to that of one of BUFFERS if they locally bind that variable. --- lisp/replace.el | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/lisp/replace.el b/lisp/replace.el index 898fee41cd7..18817d39fc0 100644 --- a/lisp/replace.el +++ b/lisp/replace.el @@ -773,7 +773,8 @@ See also `multi-occur'." title-face prefix-face match-face keep-props) (with-current-buffer out-buf (setq buffer-read-only nil) - (let ((globalcount 0)) + (let ((globalcount 0) + (coding nil)) ;; Map over all the buffers (dolist (buf buffers) (when (buffer-live-p buf) @@ -789,6 +790,11 @@ See also `multi-occur'." (headerpt (with-current-buffer out-buf (point)))) (save-excursion (set-buffer buf) + (or coding + ;; Set CODING only if the current buffer locally + ;; binds buffer-file-coding-system. + (not (local-variable-p 'buffer-file-coding-system)) + (setq coding buffer-file-coding-system)) (save-excursion (goto-char (point-min)) ;; begin searching in the buffer (while (not (eobp)) @@ -878,6 +884,11 @@ See also `multi-occur'." `(font-lock-face ,title-face)) `(occur-title ,buf)))) (goto-char (point-min))))))) + (if coding + ;; CODING is buffer-file-coding-system of the first buffer + ;; that locally binds it. Let's use it also for the output + ;; buffer. + (set-buffer-file-coding-system coding)) ;; Return the number of matches globalcount))) -- 2.39.2