From f9b9251f8c506c10bfeafc44101edc5081dbdb47 Mon Sep 17 00:00:00 2001 From: Eli Zaretskii Date: Fri, 21 Nov 2014 12:26:35 +0200 Subject: [PATCH] Use correct encoding to communicate with Git. lisp/vc/vc-git.el (vc-git-command, vc-git--call): Bind coding-system-for-read and coding-system-for-write to vc-git-commits-coding-system. --- lisp/ChangeLog | 6 ++++++ lisp/vc/vc-git.el | 24 ++++++++++++++---------- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index 510cd32e4cf..13bc0ba5db2 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,9 @@ +2014-11-21 Eli Zaretskii + + * vc/vc-git.el (vc-git-command, vc-git--call): Bind + coding-system-for-read and coding-system-for-write to + vc-git-commits-coding-system. + 2014-11-20 Michael Albinus Improve XEmacs compatibility. diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el index 9c8ab3ba393..0ff5ba2c39d 100644 --- a/lisp/vc/vc-git.el +++ b/lisp/vc/vc-git.el @@ -1209,16 +1209,18 @@ This command shares argument histories with \\[rgrep] and \\[grep]." "A wrapper around `vc-do-command' for use in vc-git.el. The difference to vc-do-command is that this function always invokes `vc-git-program'." - (apply 'vc-do-command (or buffer "*vc*") okstatus vc-git-program - ;; http://debbugs.gnu.org/16897 - (unless (and (not (cdr-safe file-or-list)) - (let ((file (or (car-safe file-or-list) - file-or-list))) - (and file - (eq ?/ (aref file (1- (length file)))) - (equal file (vc-git-root file))))) - file-or-list) - (cons "--no-pager" flags))) + (let ((coding-system-for-read vc-git-commits-coding-system) + (coding-system-for-write vc-git-commits-coding-system)) + (apply 'vc-do-command (or buffer "*vc*") okstatus vc-git-program + ;; http://debbugs.gnu.org/16897 + (unless (and (not (cdr-safe file-or-list)) + (let ((file (or (car-safe file-or-list) + file-or-list))) + (and file + (eq ?/ (aref file (1- (length file)))) + (equal file (vc-git-root file))))) + file-or-list) + (cons "--no-pager" flags)))) (defun vc-git--empty-db-p () "Check if the git db is empty (no commit done yet)." @@ -1231,6 +1233,8 @@ The difference to vc-do-command is that this function always invokes ;; directories. We enable `inhibit-null-byte-detection', otherwise ;; Tramp's eol conversion might be confused. (let ((inhibit-null-byte-detection t) + (coding-system-for-read vc-git-commits-coding-system) + (coding-system-for-write vc-git-commits-coding-system) (process-environment (cons "PAGER=" process-environment))) (apply 'process-file vc-git-program nil buffer nil command args))) -- 2.39.5