From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Kevin Rodgers Newsgroups: gmane.emacs.bugs Subject: cvs-retrieve-revision ignores the working file's coding system Date: Wed, 10 Sep 2003 16:27:14 -0600 Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Message-ID: <3F5FA542.8090103@yahoo.com> NNTP-Posting-Host: deer.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit X-Trace: sea.gmane.org 1063233176 31577 80.91.224.253 (10 Sep 2003 22:32:56 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Wed, 10 Sep 2003 22:32:56 +0000 (UTC) Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Thu Sep 11 00:32:54 2003 Return-path: Original-Received: from monty-python.gnu.org ([199.232.76.173]) by deer.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 19xDWA-0003Mg-00 for ; Thu, 11 Sep 2003 00:32:54 +0200 Original-Received: from localhost ([127.0.0.1] helo=monty-python.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.22) id 19xDVN-0003Df-RU for geb-bug-gnu-emacs@m.gmane.org; Wed, 10 Sep 2003 18:32:05 -0400 Original-Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.22) id 19xDQl-0001Ir-L0 for bug-gnu-emacs@prep.ai.mit.edu; Wed, 10 Sep 2003 18:27:19 -0400 Original-Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.22) id 19xDQi-0001HN-5a for bug-gnu-emacs@prep.ai.mit.edu; Wed, 10 Sep 2003 18:27:16 -0400 Original-Received: from [193.4.58.12] (helo=horus.isnic.is) by monty-python.gnu.org with esmtp (TLSv1:DES-CBC3-SHA:168) (Exim 4.22) id 19xDQg-0001Fc-IM for bug-gnu-emacs@prep.ai.mit.edu; Wed, 10 Sep 2003 18:27:14 -0400 Original-Received: from mail.fu-berlin.de (root@mail.fu-berlin.de [160.45.11.165]) by horus.isnic.is (8.12.9/8.12.9/isnic) with ESMTP id h8AMRA90037816 for ; Wed, 10 Sep 2003 22:27:11 GMT (envelope-from ihs_4664@yahoo.com) Original-Received: by mail.fu-berlin.de (Smail3.2.0.98) from Curry.ZEDAT.FU-Berlin.DE (160.45.10.36) with esmtp id ; Thu, 11 Sep 2003 00:27:09 +0200 (MEST) Original-Received: by Curry.ZEDAT.FU-Berlin.DE (Smail3.2.0.98) from news.fu-berlin.de with bsmtp id ; Thu, 11 Sep 2003 00:27:07 +0200 (MEST) Original-To: gnu-emacs-bug@moderators.isc.org Original-Path: 170.207.51.80!not-for-mail Original-Newsgroups: gnu.emacs.bug Original-Lines: 71 X-Orig-NNTP-Posting-Host: 170.207.51.80 X-Orig-X-Trace: news.uni-berlin.de 1063232827 21842825 170.207.51.80 (16 [82742]) User-Agent: Mozilla/5.0 (X11; U; SunOS i86pc; en-US; rv:0.9.4.1) Gecko/20020406 Netscape6/6.2.2 X-Accept-Language: en-us X-BeenThere: bug-gnu-emacs@gnu.org X-Mailman-Version: 2.1.2 Precedence: list List-Id: Bug reports for GNU Emacs, the Swiss army knife of text editors List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: main.gmane.org gmane.emacs.bugs:5773 X-Report-Spam: http://spam.gmane.org/gmane.emacs.bugs:5773 This bug was originally reported and discussed on gnu.emacs.help; see http://mail.gnu.org/archive/html/help-gnu-emacs/2003-09/msg00163.html vc.el and vc-cvs.el handle it via vc-coding-system-for-diff, but pcvs.el doesn't handle it at all. Here's a patch to use the working file's coding system when retrieving other versions from the repository: *** emacs-21.3/lisp/pcvs.el.orig Sat Sep 22 14:23:16 2001 --- emacs-21.3/lisp/pcvs.el Wed Sep 10 16:16:37 2003 *************** *** 1517,1534 **** (let* ((file (cvs-fileinfo->full-path fileinfo)) (buffile (concat file "." rev))) (or (find-buffer-visiting buffile) ! (with-current-buffer (create-file-buffer buffile) ! (message "Retrieving revision %s..." rev) ! (let ((res (call-process cvs-program nil t nil ! "-q" "update" "-p" "-r" rev file))) ! (when (and res (not (and (equal 0 res)))) ! (error "Something went wrong retrieving revision %s: %s" rev res)) ! (set-buffer-modified-p nil) ! (let ((buffer-file-name (expand-file-name file))) ! (after-find-file)) ! (toggle-read-only 1) ! (message "Retrieving revision %s... Done" rev) ! (current-buffer)))))) (eval-and-compile (autoload 'smerge-ediff "smerge-mode")) --- 1517,1546 ---- (let* ((file (cvs-fileinfo->full-path fileinfo)) (buffile (concat file "." rev))) (or (find-buffer-visiting buffile) ! (let* ((buffer (find-buffer-visiting file)) ! (coding-system (cond ((eq buffer (current-buffer)) ! buffer-file-coding-system) ! (buffer (with-current-buffer buffer ! buffer-file-coding-system)) ! (t (find-operation-coding-system ! 'insert-file-contents ! file))))) ! (when (consp coding-system) ! (setq coding-system (car coding-system))) ! (with-current-buffer (create-file-buffer buffile) ! (message "Retrieving revision %s..." rev) ! (let* ((coding-system-for-read coding-system) ; (or ... 'undecided) ! (res (call-process cvs-program nil t nil ! "-q" "update" "-p" "-r" rev file))) ! (when (and res (not (and (equal 0 res)))) ! (error "Something went wrong retrieving revision %s: %s" ! rev res)) ! (set-buffer-modified-p nil) ! (let ((buffer-file-name (expand-file-name file))) ! (after-find-file)) ! (toggle-read-only 1) ! (message "Retrieving revision %s... Done" rev) ! (current-buffer))))))) (eval-and-compile (autoload 'smerge-ediff "smerge-mode")) -- Kevin Rodgers