GNU bug report logs - #34350
27.0.50; ediff-revision broken with SVN backend + non ascii chars both in directory and in filename

Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.

Package: emacs; Reported by: Vincent Belaïche <vincent.belaiche@HIDDEN>; dated Wed, 6 Feb 2019 19:54:02 UTC; Maintainer for emacs is bug-gnu-emacs@HIDDEN.

Message received at 34350 <at> debbugs.gnu.org:


Received: (at 34350) by debbugs.gnu.org; 11 Feb 2019 22:00:13 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Feb 11 17:00:13 2019
Received: from localhost ([127.0.0.1]:44184 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1gtJcb-0006t5-5i
	for submit <at> debbugs.gnu.org; Mon, 11 Feb 2019 17:00:13 -0500
Received: from pruche.dit.umontreal.ca ([132.204.246.22]:57697)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <monnier@HIDDEN>) id 1gtJcY-0006ss-FV
 for 34350 <at> debbugs.gnu.org; Mon, 11 Feb 2019 17:00:11 -0500
Received: from fmsmemgm.homelinux.net (lechon.iro.umontreal.ca
 [132.204.27.242])
 by pruche.dit.umontreal.ca (8.14.7/8.14.1) with ESMTP id x1BM08G6013696;
 Mon, 11 Feb 2019 17:00:08 -0500
Received: by fmsmemgm.homelinux.net (Postfix, from userid 20848)
 id 8FA07AE145; Mon, 11 Feb 2019 17:00:08 -0500 (EST)
From: Stefan Monnier <monnier@HIDDEN>
To: Vincent =?windows-1252?Q?Bela=EFche?= <vincent.belaiche@HIDDEN>
Subject: Re: bug#34350: 27.0.50;
 ediff-revision broken with SVN backend + non ascii chars both in
 directory and in filename
Message-ID: <jwvy36mng47.fsf-monnier+emacsbugs@HIDDEN>
References: <84r2cec99n.fsf@HIDDEN>
Date: Mon, 11 Feb 2019 17:00:08 -0500
In-Reply-To: <84r2cec99n.fsf@HIDDEN> ("Vincent =?windows-1252?Q?Bela=EF?=
 =?windows-1252?Q?che=22's?= message of "Mon,
 11 Feb 2019 22:20:20 +0100")
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable
X-NAI-Spam-Flag: NO
X-NAI-Spam-Threshold: 5
X-NAI-Spam-Score: 0
X-NAI-Spam-Rules: 2 Rules triggered
	EDT_SA_DN_PASS=0, RV6480=0
X-NAI-Spam-Version: 2.3.0.9418 : core <6480> : inlines <7015> : streams
 <1812763> : uri <2794793>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 34350
Cc: Eli Zaretskii <eliz@HIDDEN>, 34350 <at> debbugs.gnu.org,
 Dmitry Gutov <dgutov@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

> 1) svn --non-interactive cat  my_non_ascii_named_file.tex  > temp_file
[...]
> Why not use a temporary file=A0?

It comes with its own drawbacks (some of which I mentioned in another
message in this thread).

> I was wondering whether there was some intention at some point of time
> to use that function in order to recollect in a unified way the output
> of a process into a buffer.

I don't think there is.

> Wouldn't that help with our decoding issues ?

Maybe it would, but I think it'd require some non-trivial changes.


        Stefan




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#34350; Package emacs. Full text available.

Message received at 34350 <at> debbugs.gnu.org:


Received: (at 34350) by debbugs.gnu.org; 11 Feb 2019 21:20:33 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Feb 11 16:20:33 2019
Received: from localhost ([127.0.0.1]:44160 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1gtJ0D-0005ou-1l
	for submit <at> debbugs.gnu.org; Mon, 11 Feb 2019 16:20:33 -0500
Received: from mail-wr1-f45.google.com ([209.85.221.45]:45191)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <vincent.belaiche@HIDDEN>) id 1gtJ0A-0005og-Lq
 for 34350 <at> debbugs.gnu.org; Mon, 11 Feb 2019 16:20:31 -0500
Received: by mail-wr1-f45.google.com with SMTP id w17so334182wrn.12
 for <34350 <at> debbugs.gnu.org>; Mon, 11 Feb 2019 13:20:30 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=from:to:cc:subject:in-reply-to:date:message-id:mime-version
 :content-transfer-encoding;
 bh=tBcOlCjyW2QIKSU3469hH7/m0Jr8+mZacjFexRbOC6U=;
 b=pzjzyCStZNSxuJ8s9X1aSMyxyk56jPfEKA2/kzmGBsP+biiei9PxhYtBzcCduBg2QC
 M84F1NMSIb3VOGVi/oDWeH8+DOuJK1QlZOz4MJ5A/HSqMST1EizhVJXF4qFsgWtgkXXn
 9o/pypQoMJD1UJU8yKjZCRNuedwBcXH+LLGG6wJfd88KFn76phqZPL6ILbomDk5mIskZ
 7c8/SPgwXJPOws/Vza56Zdn/kFt8kYpkrIzrO5Izpw4W+REQ7wgpxAJg4BWj+MZL7hYp
 H1smqbp3p6cZK3DsYNEYPDaM80CHieb5r6TqFmeAAICYVbEK/OBrnSfCikPj/BPj/miT
 i5qQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:from:to:cc:subject:in-reply-to:date:message-id
 :mime-version:content-transfer-encoding;
 bh=tBcOlCjyW2QIKSU3469hH7/m0Jr8+mZacjFexRbOC6U=;
 b=Vy5TpC1I0jSHKaqWEydYTagI3HFLJci4JT61S4Z2IvhDa8sLBIIUnQwCS13bPaxM1B
 0pD0ZvVoWfVeCCSeTBDBwVtgWO04Yi0KPEWUNgQLLczKkKv+xwalYb3xW5ywsR5MCpHF
 cDL3Nz19FlzqJNbivoDLaK0tiqivs9BS2VPon5koprm34W0YGwGrrAwEXiG6oAE7pxXz
 XwywAqbSav0z5c4BLtgQPVzyE16tXzjne0+FQxIacGDkU49fkjeT3lR1/oCmGTM4m+NK
 G8uKTZIcRw5TXtJZQ2ylHLlLvHpAXduXxL4kca5KvcSMlnkXA/DOMAdBrWTEKaBoLhf9
 mlzg==
X-Gm-Message-State: AHQUAuZKU9Zae0eEyrHJ+tFW9S+M1UACOq9tmHEjSXL5T20UKALJpJVQ
 qYQb+Puq6togLkcdxZ8P51M=
X-Google-Smtp-Source: AHgI3Ibct1P+LCIlRojEZNLE8geAAdjJTAnzr+uRIrY7dTWah0i5Zwcft1hwhrKrahztrc1eGuVe1w==
X-Received: by 2002:a5d:5552:: with SMTP id g18mr189762wrw.9.1549920022705;
 Mon, 11 Feb 2019 13:20:22 -0800 (PST)
Received: from AigleRoyal (arennes-656-1-27-51.w86-214.abo.wanadoo.fr.
 [86.214.222.51])
 by smtp.gmail.com with ESMTPSA id u14sm291867wmf.38.2019.02.11.13.20.21
 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256);
 Mon, 11 Feb 2019 13:20:21 -0800 (PST)
From: =?iso-8859-1?Q?Vincent_Bela=EFche?= <vincent.belaiche@HIDDEN>
To: monnier@HIDDEN
Subject: Re: bug#34350: 27.0.50;
 ediff-revision broken with SVN backend + non ascii chars both in
 directory and in filename
In-Reply-To: <jwva7j6rmep.fsf-monnier+emacsbugs@HIDDEN>
Date: Mon, 11 Feb 2019 22:20:20 +0100
Message-ID: <84r2cec99n.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 34350
Cc: Eli Zaretskii <eliz@HIDDEN>, 34350 <at> debbugs.gnu.org,
 Dmitry Gutov <dgutov@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)


Le 08/02/2019 =C3=A0 22:50, Stefan Monnier a =C3=A9crit :
>>> I think intuitively, in terms of encoding for the file's contents
>>> the backends should always return a byte-sequence (i.e. with
>>> no-conversion) and the front-end should then decide how to decode it
>>> (e.g., obeying the -*- coding -*- cookie and such).
>> Why do we need to leave this to the front end?
>
> So that it's not half-implemented differently in every backend.
>
>> It's a waste of cycles to do decoding manually in Lisp,
>
> It'd be better to decode "on the fly" rather than first insert the
> byte stream in a buffer and then decode it.  No doubt.  But I can't
> see how to do that and handle -*-coding-*-, auto-coding-regexp-alist,
> and friends.
>
>> and it also pushes this obscure art to application levels,
>
> The "front-end" is `vc-find-revision`.  All other code should be
> layered on top of that one, so it's done at only one place.  If that
> doesn't work (because vc-find-revision is not flexible enough) then we
> should move this decoding code to a middle-layer between
> vc-find-revision and (vc-call find-revision ...) that all users of
> `find-revision` can then use.
>
>> insist on any encoding, except where the VCS requires it, and it
>
> I don't know of any VCS that enforces any kind of encoding on the
> files it manages.  AFAIK they pretty much all manage files made of
> lines where the lines are made of bytes (with some extra
> accommodations for files not made of lines).  Some try to handle
> line-end conversion to some extent, but that doesn't really affect us
> anyway.
>
>
>         Stefan

Hello,

Just one simple question=C2=A0: why do we need some specific code in
vc-find-revision to be in charge of selecting the coding scheme and
doing the decoding.

My understanding is that, say for svn backend, what you want to do is
to get the same as

1) svn --non-interactive cat  my_non_ascii_named_file.tex  > temp_file

2) visit temp_file


Instead of doing that redirection into a temporary file, =C2=AB=C2=A0svn
--non-interactive cat my_non_ascii_named_file.tex=C2=A0=C2=BB is executed i=
n a
process, and the output is directly inserted into a buffer. Hence the
troubles=E2=80=A6

Why not use a temporary file=C2=A0?

I understand that a temporary file has several drawbacks=C2=A0:

1) it is probably slower, at least for small files,

2) you have to do some clean-up

3) there is a potential security breach to leave tacks on a system file.


Having had a look at find-file lisp code, I noticed that under the hood,
the function insert-file-content is what does the real job of converting
the file bytes to a buffer. Now, looking at the C code of
Finsert_file_contents in fileio.c, I noticed that there is some
provision for not regular files, like pipes.

I was wondering whether there was some intention at some point of time
to use that function in order to recollect in a unified way the output
of a process into a buffer.

Wouldn't that help with our decoding issues ?

  V.







Information forwarded to bug-gnu-emacs@HIDDEN:
bug#34350; Package emacs. Full text available.

Message received at 34350 <at> debbugs.gnu.org:


Received: (at 34350) by debbugs.gnu.org; 10 Feb 2019 19:52:53 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Feb 10 14:52:53 2019
Received: from localhost ([127.0.0.1]:42801 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1gsv9p-0001m8-1D
	for submit <at> debbugs.gnu.org; Sun, 10 Feb 2019 14:52:53 -0500
Received: from mail-wm1-f52.google.com ([209.85.128.52]:37562)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <vincent.belaiche@HIDDEN>) id 1gsv9n-0001lv-3g
 for 34350 <at> debbugs.gnu.org; Sun, 10 Feb 2019 14:52:51 -0500
Received: by mail-wm1-f52.google.com with SMTP id x10so7595453wmg.2
 for <34350 <at> debbugs.gnu.org>; Sun, 10 Feb 2019 11:52:50 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=from:to:cc:subject:in-reply-to:date:message-id:mime-version
 :content-transfer-encoding;
 bh=TfG4q1Vv7LPkeeaJwHJ4WFoeG+hu7Pd5VSdL97mWUCc=;
 b=HxE3bGO9kCxr6T6lPwu530cu+izPcuULFJy05l6t6MuOmimW4DVc8JkbTi+XOZO4FJ
 I7M7F6oCP37AJhX2IKcjhN1akbTdXPOFtEZQRt2enhtr+j2555QPIYSWQrunOaKG6eca
 rQrJmvJ9/lNndKJ3Fx2CqR5q96gedw2xGpHBjWZTP108LrgNGUmkzzXKnkr7y44asMG/
 s/bwBoavJlwzX1pT+Ak/X1Ruh1jbKVazXqRfsBHqsQd/SeYSd85iuuMY0yUOhafR99E1
 2qA1mFLAUIykroEYrx7N+T1238sh3T9XDiH86p9kqKP4E76uCfxXMPb1iRgZTGgFXCeH
 vC3g==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:from:to:cc:subject:in-reply-to:date:message-id
 :mime-version:content-transfer-encoding;
 bh=TfG4q1Vv7LPkeeaJwHJ4WFoeG+hu7Pd5VSdL97mWUCc=;
 b=E3YlmpYiQJZ+LUPG8wA8rCi7V7JnDd3/VdW4dBjByTdZl5R/zeNAEQzmX7NbxjTcU5
 0zH8wN5/6iAe36iwg0MSqD7MXbu2FErgreWgcKQ8liWVLgbmiHtyZGy2DaedTrJajepc
 FRnhtRPve73sqEt7+KDjeRpFajzF4aTwAJamq0Wda8PwT6X8d8cBt8xEyaihu6Ry7gi3
 U9/g/iEd73c+Y5Hn1ZsihFxOcxEJEbiNMvM88kWeAjK78uZh6dErk9WJRAUoe3QANuk1
 JddL7Vi8deg+FguRKAQGGxQoAeVVhtHEc/Ipat+LB/qV2FkWZWlgsixSIDJvdMkrJ87/
 sZwA==
X-Gm-Message-State: AHQUAubu97OdQddlXFtRw9NoxyTkbCmE53PIHZKK2kqZJX6uTRZZdSWn
 u1Ev/BxvigUjYCPNF1dAF2c=
X-Google-Smtp-Source: AHgI3IZ7hvw6Y50uNRvyeSkdDuDrTbZwpRrt+LQ45WmlutvsJP0w2lKwH3UKvLXvT76GUBxnTdoX6Q==
X-Received: by 2002:adf:ec41:: with SMTP id w1mr76138wrn.184.1549828364985;
 Sun, 10 Feb 2019 11:52:44 -0800 (PST)
Received: from AIGLEROYAL (arennes-656-1-27-51.w86-214.abo.wanadoo.fr.
 [86.214.222.51])
 by smtp.gmail.com with ESMTPSA id z3sm11589027wmi.32.2019.02.10.11.52.43
 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256);
 Sun, 10 Feb 2019 11:52:44 -0800 (PST)
From: =?iso-8859-1?Q?Vincent_Bela=EFche?= <vincent.belaiche@HIDDEN>
To: Dmitry Gutov <dgutov@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#34350: 27.0.50;
 ediff-revision broken with SVN backend + non ascii chars both in
 directory and in filename
In-Reply-To: <3ba3acdb-88bf-7fb2-97e0-ff1038df2cde@HIDDEN>
Date: Sun, 10 Feb 2019 20:52:40 +0100
Message-ID: <84sgwvctfb.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 34350
Cc: 34350 <at> debbugs.gnu.org, monnier@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)


Le 09/02/2019 =C3=A0 08:58, Dmitry Gutov a =C3=A9crit :
> On 09.02.2019 00:45, Eli Zaretskii wrote:
>> How is vc-annotate relevant to vc-git-find-revision and the issue at
>> hand?
>
> It's an investigation tool.
>
>> coding-system-for-write affects both I/O from and to a subprocess and
>> the encoding of the command-line arguments we pass to that
>> subprocess.
>
> Aren't there any programs that expect one encoding for their
> arguments, yet output contents in other encodings sometimes?

Yes there are. For instance if you edit a document with LaTeX and use
pdflatex + koi8 for the encoding, then all the compilation error
messages showing the error messages interleaved with pieces of text will
be a byte stream where the pieces of text will correspond to
characteters coded in koi8.

But they are also interleaved with filenames which are also a byte
stream which correspond to characters encoded with some encoding
depending on the filesystem, for instance that will be utf8 for an
MSW-10 machine as it seems that my pdflatex port (MiKTeX) has them in
this format =E2=80=94 for filenames all in ASCII that will just make no
difference because both utf8 & koi8 are supersets of ASCII. Internally,
AFAIK MSW10 uses UTF16, I speculate that my pdflatex port to MSW uses
UTF16 wchar_t to access the files and does some utf8/utf16
encoding/decoding w.r.t to input/output with tex source code/tex log.

Of course users will want to have the log shown with character decoding
using koi8, so that the pieces of text in the log are understandable, so
that will mess-up the non-ASCII filenames, for instance if the filename
is =C2=AB=C2=A0=D0=9C=D0=B0=D0=BA=D1=80=D0=BE=D0=BD=E2=80=94=D0=A3=D0=B7=D1=
=83=D1=80=D0=BF=D0=B0=D1=82=D0=BE=D1=80.tex=C2=A0=C2=BB , it will show out =
like
=C2=AB=C2=A0=D0=BF=C2=B0=D0=BF=E2=95=9F=D0=BF=E2=95=A8=D1=8F=E2=94=80=D0=BF=
=E2=95=AC=D0=BF=E2=95=AB=D0=91=E2=94=80=E2=96=A0=D0=BF=D1=91=D0=BF=E2=95=A5=
=D1=8F=E2=94=90=D1=8F=E2=94=80=D0=BF=C2=A9=D0=BF=E2=95=9F=D1=8F=E2=94=8C=D0=
=BF=E2=95=AC=D1=8F=E2=94=80.tex=C2=A0=C2=BB in the log, and AUCTeX won't
be able to jump at the error line when you do =C2=AB=C2=A0M-g n=C2=A0=C2=BB=
 =E2=80=94 maybe someday
I submit some contribution for AUCTeX to be configurable to decode the
filenames, or maybe by that time I simply use xelatex and everything is
in utf8 :-/


On the other hand the pdflatex command will accept arguments encoded in
whatever the OS requires =E2=80=94 I don't know what my pdflatex port inter=
nally
does, probably it has some =C2=AB=C2=A0int wmain(int ac, wchar_t const* av[=
])=C2=A0=C2=BB
prototype and does some utf16/utf8 encoding of the command line args in
order to get a byte stream.

So, still under MSW, if my pdflatex is launched from a powershell
window, filenames and any arguments are passed to the command as wide
chars with utf16 encoding and pdflatex.

So if the filename is =E2=84=961.tex, and I type from a powershell prompt:

  pdflatex =E2=84=961.tex

that will work fine =E2=80=94 provided that the file exists =E2=80=94 becau=
se, although
the character =C2=AB=C2=A0=E2=84=96=C2=A0=C2=BB does not exist in window125=
2, both powershell and my
pdflatex port use utf16.

Now, if I try the same command from a cmd prompt, funnilly that also
will work =E2=80=94 however a DOS .bat file encoded in utf-8 with the same
command, even if you launch cmd with /U option=E2=80=A6

But if now I try this command from Emacs (with =C2=AB=C2=A0M-x compile=C2=
=A0=C2=BB, or
=C2=AB=C2=A0M-&=C2=A0=C2=BB, or directly by eval of =C2=AB=C2=A0(call-proce=
ss "pdflatex" nil t nil
"=E2=84=961.tex")=C2=A0=C2=BB that will not work either. And that will not =
work either
from a *shell* buffer using cmdproxy.exe. This is probably because Emacs
uses the standard system call =C2=AB=C2=A0system(=E2=80=A6)=C2=A0=C2=BB fun=
ction =E2=80=94 I speculate =E2=80=94 and
the latter accepts windows1252 encoded command line, and not the
microsoft specific _wsystem one.

BTW, I don't know whether _wsystem is ported to MinGW, I would not be
surprised if it is not=C2=A0: for instance =C2=AB=C2=A0int main(int ac, wch=
ar_t
const*av[])=C2=A0=C2=BB prototypes aren't ported to MinGW, they do a linker=
 error,
and one has to resort to GetCommandLineW & CommandLineToArgvW windows
API functions. An alternative is 1) to use the powershell quote syntax
for the command line + utf16 enocoding, 2) to base-64 encode the command
line, and 3) pass the encoded block to powershell with the
-EncodedCommand option through the usual system(=E2=80=A6)  call.


So, to summarise :

1. encoding of filenames, encoding of command line, and encoding of file
   content are 3 different things. So, it is a bit surprising if
   coding-system-for-write affects all of them in the same way.

2. filename encoding may be different on the command line and on the
   input/output streams (e.g. pdflatex called from powershell has utf16
   on the command line, and utf8 in the files for filenames.

3. filename/argument encoding depends on the command (under MSW, some
   commands have =C2=AB=C2=A0int main(int ac, char const*av[])=C2=A0=C2=BB =
under the hood
   and as such they expect arguments to be windows1252 encoded =E2=80=94 in
   Western Europe =E2=80=94 other have =C2=AB=C2=A0int main(int ac, wchar_t=
 const*av[])=C2=A0=C2=BB
   under the hood and as such they expect utf16 encoded arguments. So
   with the first type of command you can have =C2=AB=C2=A0=C5=93=C2=A0=C2=
=BB but not =C2=AB=C2=A0=E2=84=96=C2=A0=C2=BB in
   the arguments, while with the second type you can have both of them.


  V.





Information forwarded to bug-gnu-emacs@HIDDEN:
bug#34350; Package emacs. Full text available.

Message received at 34350 <at> debbugs.gnu.org:


Received: (at 34350) by debbugs.gnu.org; 9 Feb 2019 14:03:14 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Feb 09 09:03:14 2019
Received: from localhost ([127.0.0.1]:40602 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1gsTDu-000272-8s
	for submit <at> debbugs.gnu.org; Sat, 09 Feb 2019 09:03:14 -0500
Received: from pruche.dit.umontreal.ca ([132.204.246.22]:38218)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <monnier@HIDDEN>) id 1gsTDq-00026s-2t
 for 34350 <at> debbugs.gnu.org; Sat, 09 Feb 2019 09:03:12 -0500
Received: from pastel.home (lechon.iro.umontreal.ca [132.204.27.242])
 by pruche.dit.umontreal.ca (8.14.7/8.14.1) with ESMTP id x19E38K4025623;
 Sat, 9 Feb 2019 09:03:08 -0500
Received: by pastel.home (Postfix, from userid 20848)
 id 2ABD96A380; Sat,  9 Feb 2019 09:03:08 -0500 (EST)
From: Stefan Monnier <monnier@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#34350: 27.0.50;
 ediff-revision broken with SVN backend + non ascii chars both in
 directory and in filename
Message-ID: <jwvsgwxxe2h.fsf-monnier+emacsbugs@HIDDEN>
References: <84d0o4zoc9.fsf@HIDDEN> <83va1vr41l.fsf@HIDDEN>
 <jwvpns2tgh3.fsf-monnier+emacsbugs@HIDDEN> <83h8deou6l.fsf@HIDDEN>
 <jwva7j6rmep.fsf-monnier+emacsbugs@HIDDEN> <834l9eors1.fsf@HIDDEN>
 <jwv7ee9uc6o.fsf-monnier+emacsbugs@HIDDEN> <83o97lnxnl.fsf@HIDDEN>
 <jwv4l9dyv8e.fsf-monnier+emacsbugs@HIDDEN> <83d0o1nkmu.fsf@HIDDEN>
Date: Sat, 09 Feb 2019 09:03:08 -0500
In-Reply-To: <83d0o1nkmu.fsf@HIDDEN> (Eli Zaretskii's message of "Sat, 09 Feb
 2019 15:42:33 +0200")
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable
X-NAI-Spam-Flag: NO
X-NAI-Spam-Threshold: 5
X-NAI-Spam-Score: 0
X-NAI-Spam-Rules: 2 Rules triggered
	EDT_SA_DN_PASS=0, RV6479=0
X-NAI-Spam-Version: 2.3.0.9418 : core <6479> : inlines <7014> : streams
 <1812540> : uri <2793488>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 34350
Cc: 34350 <at> debbugs.gnu.org, dgutov@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

>> Why should reading from a pipe be slower than from a file?
> Because we read in small chunks,

I understand that what we currently do, but is it really inevitable?
I know you can't transfer an arbitrarily large text with a single `write`
at one end of a pipe and a single `read` at the other (contrary to what
happens with files), but it should be possible to use chunks large
enough that the efficiency is comparable.

> and need to enlarge the gap each time.

Yes, this used to be a real problems in set-buffer-multibyte (with O(N=B2)
behavior), but nowadays it should be a relatively small constant factor.
Of course, if needed, we could provide some way for the Elisp code to
"preallocate" space to avoid resizing the buffer too many times.

[ Goes on dreaming about a buffer representation made of a tree of
  immutable text-chunks... ]

> OK, so we basically agree.  I will try to remove the cruft from some
> of that, thanks for the feedback.

Right.   Maybe we could improve the backend API, but that's a side
problem: the real pressing problem is just cruft and should not be too
hard to fix.


        Stefan




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#34350; Package emacs. Full text available.

Message received at 34350 <at> debbugs.gnu.org:


Received: (at 34350) by debbugs.gnu.org; 9 Feb 2019 13:43:02 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Feb 09 08:43:02 2019
Received: from localhost ([127.0.0.1]:40585 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1gsSuL-0001dG-HI
	for submit <at> debbugs.gnu.org; Sat, 09 Feb 2019 08:43:02 -0500
Received: from eggs.gnu.org ([209.51.188.92]:58576)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1gsSuI-0001cu-Rs
 for 34350 <at> debbugs.gnu.org; Sat, 09 Feb 2019 08:42:59 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e]:50476)
 by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <eliz@HIDDEN>)
 id 1gsSuD-00025y-Bd; Sat, 09 Feb 2019 08:42:53 -0500
Received: from [176.228.60.248] (port=3649 helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256)
 (Exim 4.82) (envelope-from <eliz@HIDDEN>)
 id 1gsSuC-0004bd-Ms; Sat, 09 Feb 2019 08:42:53 -0500
Date: Sat, 09 Feb 2019 15:42:33 +0200
Message-Id: <83d0o1nkmu.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Stefan Monnier <monnier@HIDDEN>
In-reply-to: <jwv4l9dyv8e.fsf-monnier+emacsbugs@HIDDEN> (message from Stefan
 Monnier on Sat, 09 Feb 2019 08:12:45 -0500)
Subject: Re: bug#34350: 27.0.50;
 ediff-revision broken with SVN backend + non ascii chars both in
 directory and in filename
References: <84d0o4zoc9.fsf@HIDDEN> <83va1vr41l.fsf@HIDDEN>
 <jwvpns2tgh3.fsf-monnier+emacsbugs@HIDDEN> <83h8deou6l.fsf@HIDDEN>
 <jwva7j6rmep.fsf-monnier+emacsbugs@HIDDEN> <834l9eors1.fsf@HIDDEN>
 <jwv7ee9uc6o.fsf-monnier+emacsbugs@HIDDEN> <83o97lnxnl.fsf@HIDDEN>
 <jwv4l9dyv8e.fsf-monnier+emacsbugs@HIDDEN>
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 34350
Cc: 34350 <at> debbugs.gnu.org, dgutov@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

> From: Stefan Monnier <monnier@HIDDEN>
> Cc: dgutov@HIDDEN, 34350 <at> debbugs.gnu.org
> Date: Sat, 09 Feb 2019 08:12:45 -0500
> 
> > Isn't that sub-optimal design, then?  Those back-ends that can produce
> > a file for a given revision (there are at least 3 of them, AFAIK)
> > should be left to their devices; those which cannot and use some kind
> > of 'cat' command instead can be invoked with output redirected to a
> > file.
> 
> FWIW, I find it cleaner to put the result in a buffer than in a file,
> since with files we have to choose a file name, which implies things
> like race conditions, accessrights/security issues, interaction with
> Tramp, and whatnot.

But vc-find-revision eventually does put it in a file, so ...

> Doesn't insert-file-contents do all the decoding dance done in
> find-file (such as auto-coding-regexp-alist, ...)?

It does (and we call find-file-noselect anyway, not
insert-file-contents).

> > Instead, we invoke the VCS with output redirected to a pipe, slowly
> > read that output from the pipe into a buffer,
> 
> Why should reading from a pipe be slower than from a file?

Because we read in small chunks, and need to enlarge the gap each
time.

> The front-end functions (vc-find-revision-* and vc-default-revert)
> should not bind coding-system-for-read/write and should leave that to
> the backend, since it seems the backends need to do this kind of
> coding-system control more finely.
> 
> > If we decide that back-ends produce undecoded buffers, then vc.el
> > shouldn't be bothered with forcing coding-system-for-read/write at
> > all, right?
> 
> Right.
> 
> > In addition, while I could understand binding of
> > coding-system-for-read in the backend's find-revision (assuming we
> > want the resulting buffer remain undecoded), why should the back-end
> > also bind coding-system-for-write?  I see absolutely no reason for
> > that.  E.g., look at this example:
> 
> I don't see a reason either, other than the coder not being sure which
> of read/write influences which of send/receive, maybe.
> 
> >   (defun vc-hg-find-revision (file rev buffer)
> >     (let ((coding-system-for-read 'binary)
> > 	  (coding-system-for-write 'binary))
> >       (if rev
> > 	  (vc-hg-command buffer 0 file "cat" "-r" rev)
> > 	(vc-hg-command buffer 0 file "cat"))))
> >
> > Why on earth does this bind coding-system-for-write, when it doesn't
> > write anything at all, it only reads?
> 
> Plain bug, AFAICT.
> 
> > But vc-git.el, for example, uses both in its find-revision
> > implementation.  It therefore must use more complicated juggling with
> > binding the various coding-system variables.  Once again, this is an
> > argument in favor of leaving the encoding/decoding stuff to the
> > back-end.
> 
> Agreed: it should be the backend's responsibility to control the
> encoding/decoding setup in order for the result in the buffer to be
> undecoded bytes (it'd be nice to be able to do it at only one spot
> instead of doing it "by hand" in each and every backend, but IIUC this
> is not an option).

OK, so we basically agree.  I will try to remove the cruft from some
of that, thanks for the feedback.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#34350; Package emacs. Full text available.

Message received at 34350 <at> debbugs.gnu.org:


Received: (at 34350) by debbugs.gnu.org; 9 Feb 2019 13:12:51 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Feb 09 08:12:51 2019
Received: from localhost ([127.0.0.1]:40568 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1gsSR8-0000tn-Ku
	for submit <at> debbugs.gnu.org; Sat, 09 Feb 2019 08:12:51 -0500
Received: from chene.dit.umontreal.ca ([132.204.246.20]:39249)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <monnier@HIDDEN>) id 1gsSR5-0000td-TE
 for 34350 <at> debbugs.gnu.org; Sat, 09 Feb 2019 08:12:48 -0500
Received: from pastel.home (lechon.iro.umontreal.ca [132.204.27.242])
 by chene.dit.umontreal.ca (8.14.7/8.14.1) with ESMTP id x19DCjCt025031;
 Sat, 9 Feb 2019 08:12:46 -0500
Received: by pastel.home (Postfix, from userid 20848)
 id BC8A86A380; Sat,  9 Feb 2019 08:12:45 -0500 (EST)
From: Stefan Monnier <monnier@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#34350: 27.0.50;
 ediff-revision broken with SVN backend + non ascii chars both in
 directory and in filename
Message-ID: <jwv4l9dyv8e.fsf-monnier+emacsbugs@HIDDEN>
References: <84d0o4zoc9.fsf@HIDDEN> <83va1vr41l.fsf@HIDDEN>
 <jwvpns2tgh3.fsf-monnier+emacsbugs@HIDDEN> <83h8deou6l.fsf@HIDDEN>
 <jwva7j6rmep.fsf-monnier+emacsbugs@HIDDEN> <834l9eors1.fsf@HIDDEN>
 <jwv7ee9uc6o.fsf-monnier+emacsbugs@HIDDEN> <83o97lnxnl.fsf@HIDDEN>
Date: Sat, 09 Feb 2019 08:12:45 -0500
In-Reply-To: <83o97lnxnl.fsf@HIDDEN> (Eli Zaretskii's message of "Sat, 09 Feb
 2019 11:01:18 +0200")
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-NAI-Spam-Flag: NO
X-NAI-Spam-Threshold: 5
X-NAI-Spam-Score: 0
X-NAI-Spam-Rules: 2 Rules triggered
	EDT_SA_DN_PASS=0, RV6479=0
X-NAI-Spam-Version: 2.3.0.9418 : core <6479> : inlines <7014> : streams
 <1812537> : uri <2793469>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 34350
Cc: 34350 <at> debbugs.gnu.org, dgutov@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

>> The `find-revision` backend operation must put the revision's bytes into
>> the provided buffer, indeed similarly to when we visit a file.
>> But the difference is that in 99% of the cases, the bytes don't come
>> from a file but from a process's stdout, so the backed can't directly
>> use the "visit a file" trick.
> Isn't that sub-optimal design, then?  Those back-ends that can produce
> a file for a given revision (there are at least 3 of them, AFAIK)
> should be left to their devices; those which cannot and use some kind
> of 'cat' command instead can be invoked with output redirected to a
> file.

FWIW, I find it cleaner to put the result in a buffer than in a file,
since with files we have to choose a file name, which implies things
like race conditions, accessrights/security issues, interaction with
Tramp, and whatnot.

So I think the API seems clean enough.  Doesn't insert-file-contents do
all the decoding dance done in find-file (such as
auto-coding-regexp-alist, ...)?

> Instead, we invoke the VCS with output redirected to a pipe, slowly
> read that output from the pipe into a buffer,

Why should reading from a pipe be slower than from a file?

> then write the resulting buffer to a file.  Why?

The front-end part may want to do that, but not necessarily.
We did that back in the CVS days because it took a long time to extract
a particular revision, so this was a way to cache the result.

With Git, I find that I basically never want to save the result to
a file.

>> - vc-find-revision-save
>> - vc-find-revision-no-save
>> - vc-default-revert
>> 
>> The last one should indeed call the backend directly (as it currently
>> does) and should be changed not to bind coding-system-for-read/write and
>> instead to assume that the backend deals with bytes.
>> 
>> The other two are begging to be unified to reduce code redundancy and
>> are the ones that need the do the file-like decoding (and they indeed do
>> it).
>
> If vc-find-revision and vc-find-revision-no-save need to enforce
> no-conversion, then why do most of the back-ends do that as well?

The front-end functions (vc-find-revision-* and vc-default-revert)
should not bind coding-system-for-read/write and should leave that to
the backend, since it seems the backends need to do this kind of
coding-system control more finely.

> If we decide that back-ends produce undecoded buffers, then vc.el
> shouldn't be bothered with forcing coding-system-for-read/write at
> all, right?

Right.

> In addition, while I could understand binding of
> coding-system-for-read in the backend's find-revision (assuming we
> want the resulting buffer remain undecoded), why should the back-end
> also bind coding-system-for-write?  I see absolutely no reason for
> that.  E.g., look at this example:

I don't see a reason either, other than the coder not being sure which
of read/write influences which of send/receive, maybe.

>   (defun vc-hg-find-revision (file rev buffer)
>     (let ((coding-system-for-read 'binary)
> 	  (coding-system-for-write 'binary))
>       (if rev
> 	  (vc-hg-command buffer 0 file "cat" "-r" rev)
> 	(vc-hg-command buffer 0 file "cat"))))
>
> Why on earth does this bind coding-system-for-write, when it doesn't
> write anything at all, it only reads?

Plain bug, AFAICT.

> But vc-git.el, for example, uses both in its find-revision
> implementation.  It therefore must use more complicated juggling with
> binding the various coding-system variables.  Once again, this is an
> argument in favor of leaving the encoding/decoding stuff to the
> back-end.

Agreed: it should be the backend's responsibility to control the
encoding/decoding setup in order for the result in the buffer to be
undecoded bytes (it'd be nice to be able to do it at only one spot
instead of doing it "by hand" in each and every backend, but IIUC this
is not an option).


        Stefan




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#34350; Package emacs. Full text available.

Message received at 34350 <at> debbugs.gnu.org:


Received: (at 34350) by debbugs.gnu.org; 9 Feb 2019 09:01:53 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Feb 09 04:01:53 2019
Received: from localhost ([127.0.0.1]:40450 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1gsOWH-0001Ao-2i
	for submit <at> debbugs.gnu.org; Sat, 09 Feb 2019 04:01:53 -0500
Received: from eggs.gnu.org ([209.51.188.92]:49597)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1gsOWF-0001Ab-9D
 for 34350 <at> debbugs.gnu.org; Sat, 09 Feb 2019 04:01:51 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e]:48294)
 by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <eliz@HIDDEN>)
 id 1gsOW6-0003eY-63; Sat, 09 Feb 2019 04:01:44 -0500
Received: from [176.228.60.248] (port=1662 helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256)
 (Exim 4.82) (envelope-from <eliz@HIDDEN>)
 id 1gsOW4-0004yX-70; Sat, 09 Feb 2019 04:01:40 -0500
Date: Sat, 09 Feb 2019 11:01:18 +0200
Message-Id: <83o97lnxnl.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Stefan Monnier <monnier@HIDDEN>
In-reply-to: <jwv7ee9uc6o.fsf-monnier+emacsbugs@HIDDEN> (message from Stefan
 Monnier on Fri, 08 Feb 2019 18:03:49 -0500)
Subject: Re: bug#34350: 27.0.50;
 ediff-revision broken with SVN backend + non ascii chars both in
 directory and in filename
References: <84d0o4zoc9.fsf@HIDDEN> <83va1vr41l.fsf@HIDDEN>
 <jwvpns2tgh3.fsf-monnier+emacsbugs@HIDDEN> <83h8deou6l.fsf@HIDDEN>
 <jwva7j6rmep.fsf-monnier+emacsbugs@HIDDEN> <834l9eors1.fsf@HIDDEN>
 <jwv7ee9uc6o.fsf-monnier+emacsbugs@HIDDEN>
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 34350
Cc: 34350 <at> debbugs.gnu.org, dgutov@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

> From: Stefan Monnier <monnier@HIDDEN>
> Cc: dgutov@HIDDEN, 34350 <at> debbugs.gnu.org
> Date: Fri, 08 Feb 2019 18:03:49 -0500
> 
> >> > It's a waste of cycles to do decoding manually in Lisp,
> >> 
> >> It'd be better to decode "on the fly" rather than first insert the byte
> >> stream in a buffer and then decode it.  No doubt.
> >> But I can't see how to do that and handle -*-coding-*-,
> >> auto-coding-regexp-alist, and friends.
> > What do you mean by "how"?  Just do the normal I/O, and all of those
> > will be taken care of.  Like when we visit a file.  What am I missing?
> 
> The `find-revision` backend operation must put the revision's bytes into
> the provided buffer, indeed similarly to when we visit a file.
> But the difference is that in 99% of the cases, the bytes don't come
> from a file but from a process's stdout, so the backed can't directly
> use the "visit a file" trick.

Isn't that sub-optimal design, then?  Those back-ends that can produce
a file for a given revision (there are at least 3 of them, AFAIK)
should be left to their devices; those which cannot and use some kind
of 'cat' command instead can be invoked with output redirected to a
file.  This should be lightning-fast with most (all?) VCSes.  Instead,
we invoke the VCS with output redirected to a pipe, slowly read that
output from the pipe into a buffer, then write the resulting buffer to
a file.  Why?

> - vc-find-revision-save
> - vc-find-revision-no-save
> - vc-default-revert
> 
> The last one should indeed call the backend directly (as it currently
> does) and should be changed not to bind coding-system-for-read/write and
> instead to assume that the backend deals with bytes.
> 
> The other two are begging to be unified to reduce code redundancy and
> are the ones that need the do the file-like decoding (and they indeed do
> it).

If vc-find-revision and vc-find-revision-no-save need to enforce
no-conversion, then why do most of the back-ends do that as well?  If
we decide that back-ends produce undecoded buffers, then vc.el
shouldn't be bothered with forcing coding-system-for-read/write at
all, right?  This duplication is a large part of the problem here.

In addition, while I could understand binding of
coding-system-for-read in the backend's find-revision (assuming we
want the resulting buffer remain undecoded), why should the back-end
also bind coding-system-for-write?  I see absolutely no reason for
that.  E.g., look at this example:

  (defun vc-hg-find-revision (file rev buffer)
    (let ((coding-system-for-read 'binary)
	  (coding-system-for-write 'binary))
      (if rev
	  (vc-hg-command buffer 0 file "cat" "-r" rev)
	(vc-hg-command buffer 0 file "cat"))))

Why on earth does this bind coding-system-for-write, when it doesn't
write anything at all, it only reads?

> > You forget VCS operations that return stuff other than the complete
> > file's contents, like vc-log or vc-dff or calls that return file names
> > etc.
> 
> Not really forgetting, no.  Instead I was talking specifically about
> things like `find-revision` (i.e. about the content of files).
> For filenames, commit messages and other metadata the situation is quite
> different, indeed.

But vc-git.el, for example, uses both in its find-revision
implementation.  It therefore must use more complicated juggling with
binding the various coding-system variables.  Once again, this is an
argument in favor of leaving the encoding/decoding stuff to the
back-end.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#34350; Package emacs. Full text available.

Message received at 34350 <at> debbugs.gnu.org:


Received: (at 34350) by debbugs.gnu.org; 9 Feb 2019 08:24:23 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Feb 09 03:24:23 2019
Received: from localhost ([127.0.0.1]:40439 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1gsNvz-0000HL-0O
	for submit <at> debbugs.gnu.org; Sat, 09 Feb 2019 03:24:23 -0500
Received: from eggs.gnu.org ([209.51.188.92]:44243)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1gsNvw-0000H8-Cp
 for 34350 <at> debbugs.gnu.org; Sat, 09 Feb 2019 03:24:21 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e]:48008)
 by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <eliz@HIDDEN>)
 id 1gsNvp-0003Bd-MM; Sat, 09 Feb 2019 03:24:13 -0500
Received: from [176.228.60.248] (port=3330 helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256)
 (Exim 4.82) (envelope-from <eliz@HIDDEN>)
 id 1gsNvp-0000xv-1G; Sat, 09 Feb 2019 03:24:13 -0500
Date: Sat, 09 Feb 2019 10:23:52 +0200
Message-Id: <83r2chnzdz.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Dmitry Gutov <dgutov@HIDDEN>
In-reply-to: <3ba3acdb-88bf-7fb2-97e0-ff1038df2cde@HIDDEN> (message from
 Dmitry Gutov on Sat, 9 Feb 2019 10:58:38 +0300)
Subject: Re: bug#34350: 27.0.50; ediff-revision broken with SVN backend + non
 ascii chars both in directory and in filename
References: <84d0o4zoc9.fsf@HIDDEN> <83va1vr41l.fsf@HIDDEN>
 <622e6df3-fb17-cf8a-a166-23fd1549a6c7@HIDDEN> <838syqosyq.fsf@HIDDEN>
 <3ba3acdb-88bf-7fb2-97e0-ff1038df2cde@HIDDEN>
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 34350
Cc: 34350 <at> debbugs.gnu.org, monnier@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

> Cc: 34350 <at> debbugs.gnu.org, monnier@HIDDEN,
>  vincent.belaiche@HIDDEN
> From: Dmitry Gutov <dgutov@HIDDEN>
> Date: Sat, 9 Feb 2019 10:58:38 +0300
> 
> > coding-system-for-write
> > affects both I/O from and to a subprocess and the encoding of the
> > command-line arguments we pass to that subprocess.
> 
> Aren't there any programs that expect one encoding for their arguments, 
> yet output contents in other encodings sometimes?

It happens, yes.  Which is why by default coding-system-for-write is
not bound.  When you bind it while invoking a subprocess, you need to
know what you are doing.  If there's a conflict between the two
encodings, there are a couple of ways to deal with that.

However, in the case in point, my reading of the code indicates that
there's no need to bind coding-system-for-write at all.  It seems we
do that due to some copy/paste habit more than due to a real need.
Let's see if I succeed in convincing you and Stefan.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#34350; Package emacs. Full text available.

Message received at 34350 <at> debbugs.gnu.org:


Received: (at 34350) by debbugs.gnu.org; 9 Feb 2019 07:58:50 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Feb 09 02:58:50 2019
Received: from localhost ([127.0.0.1]:40426 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1gsNXG-00086y-6m
	for submit <at> debbugs.gnu.org; Sat, 09 Feb 2019 02:58:50 -0500
Received: from mail-lj1-f176.google.com ([209.85.208.176]:43865)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <raaahh@HIDDEN>) id 1gsNXE-00086k-34
 for 34350 <at> debbugs.gnu.org; Sat, 09 Feb 2019 02:58:48 -0500
Received: by mail-lj1-f176.google.com with SMTP id q2-v6so4876023lji.10
 for <34350 <at> debbugs.gnu.org>; Fri, 08 Feb 2019 23:58:47 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=sender:subject:to:cc:references:from:message-id:date:user-agent
 :mime-version:in-reply-to:content-language:content-transfer-encoding;
 bh=jN0dMz1+z4acSHio+nDY5wLAAxFL5li27b5efiiPwvk=;
 b=RjcESC8QTRraGz4TOzwBLzX3rSgT6lfsU4NYQFgiJ8UX8JHu9rxG6X3Bg/XWLRnD0g
 mKeHB064FWnP+Baj25RDVTAydCAHnV99H7JT+9S29i9EV/Mt8H8AYVxxY+RWMX/32fVs
 /6CoOousekylswyLjEeEXOP2MjnSWolS/lgGpMUkmUJaf27kcCnMLbruFOIi/1SgflZz
 B418LtpEtKY/bLgMOiCDkVTlY74R9aaM8GWQbTLMJiD1zmjB3tEAI8AKm+Z+MWEjXVac
 ZGYBngtm512vbEtryC2tTBhkoBA+9+vUu5y04O3Eintqvsl1sh9g8LZjZGoj+qhSKcUu
 I/CQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:sender:subject:to:cc:references:from:message-id
 :date:user-agent:mime-version:in-reply-to:content-language
 :content-transfer-encoding;
 bh=jN0dMz1+z4acSHio+nDY5wLAAxFL5li27b5efiiPwvk=;
 b=dh9yKneBOsidbX3HY8kQHH4pnmyeseNbZO5gRTAHHUU3Pc/ZEWNzTAJPjUYGFkkWdg
 reBBWo8uuQitZMtT1E9rLoG+ZupKkOQWJ4Ra8tOqtQ015ltxPgyQi7M6iQ2abVCQDhbA
 Swjs1vYcyavPWWAxg2oSbUWDP02NWR49bELmoRfNrcSyk3F3fDHYqjkafhXhtQ/0WMad
 cOy7eNi2OpdbUhtwVwZinTd+F195GKO9QiQtfndZDwyBX2OtudJlwhjEAVa/hxzv76EE
 /G9nzR0xo7ChR5B351OxmNVNwpaDsIasj43Td6vRJli2zahYx2QQkW1cgLi0DmgYY9/0
 Y4qQ==
X-Gm-Message-State: AHQUAuZV5a7eeiTGRiCZfg5fkrJimZG5tTofbfuDWyft7wF+rpmOkV+D
 ABRUiZtxjr6MuppObU2BZzQ=
X-Google-Smtp-Source: AHgI3IaQHBKbtFEOt1VU4PAXuUbLQS8LJ6FU1ASFMNSgUvQPWoPjBG5JRAFe0NC4oVl9wTPR4aEpOw==
X-Received: by 2002:a2e:b1ca:: with SMTP id
 e10-v6mr2393802lja.16.1549699122006; 
 Fri, 08 Feb 2019 23:58:42 -0800 (PST)
Received: from [192.168.43.247] ([217.118.78.109])
 by smtp.googlemail.com with ESMTPSA id q21-v6sm889809ljc.5.2019.02.08.23.58.39
 (version=TLS1_3 cipher=AEAD-AES128-GCM-SHA256 bits=128/128);
 Fri, 08 Feb 2019 23:58:40 -0800 (PST)
Subject: Re: bug#34350: 27.0.50; ediff-revision broken with SVN backend + non
 ascii chars both in directory and in filename
To: Eli Zaretskii <eliz@HIDDEN>
References: <84d0o4zoc9.fsf@HIDDEN> <83va1vr41l.fsf@HIDDEN>
 <622e6df3-fb17-cf8a-a166-23fd1549a6c7@HIDDEN> <838syqosyq.fsf@HIDDEN>
From: Dmitry Gutov <dgutov@HIDDEN>
Message-ID: <3ba3acdb-88bf-7fb2-97e0-ff1038df2cde@HIDDEN>
Date: Sat, 9 Feb 2019 10:58:38 +0300
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:65.0) Gecko/20100101
 Thunderbird/65.0
MIME-Version: 1.0
In-Reply-To: <838syqosyq.fsf@HIDDEN>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 7bit
X-Spam-Score: 1.6 (+)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 Content preview:  On 09.02.2019 00:45,
 Eli Zaretskii wrote: > How is vc-annotate
 relevant to vc-git-find-revision and the issue at > hand? It's an
 investigation
 tool. > coding-system-for-write > affects both I/O from and to a subprocess
 and the encoding of the > command-line arguments we pass to that subprocess.
 Content analysis details:   (1.6 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -0.0 SPF_PASS               SPF: sender matches SPF record
 0.0 HEADER_FROM_DIFFERENT_DOMAINS From and EnvelopeFrom 2nd level
 mail domains are different
 0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
 provider (raaahh[at]gmail.com)
 1.5 RCVD_IN_SORBS_WEB      RBL: SORBS: sender is an abusable web server
 [217.118.78.109 listed in dnsbl.sorbs.net]
 -0.0 RCVD_IN_DNSWL_NONE     RBL: Sender listed at http://www.dnswl.org/,
 no trust [209.85.208.176 listed in list.dnswl.org]
 0.1 FREEMAIL_FORGED_FROMDOMAIN 2nd level domains in From and
 EnvelopeFrom freemail headers are different
X-Debbugs-Envelope-To: 34350
Cc: 34350 <at> debbugs.gnu.org, monnier@HIDDEN, vincent.belaiche@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 0.6 (/)

On 09.02.2019 00:45, Eli Zaretskii wrote:
> How is vc-annotate relevant to vc-git-find-revision and the issue at
> hand?

It's an investigation tool.

> coding-system-for-write
> affects both I/O from and to a subprocess and the encoding of the
> command-line arguments we pass to that subprocess.

Aren't there any programs that expect one encoding for their arguments, 
yet output contents in other encodings sometimes?




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#34350; Package emacs. Full text available.

Message received at 34350 <at> debbugs.gnu.org:


Received: (at 34350) by debbugs.gnu.org; 8 Feb 2019 23:03:57 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Feb 08 18:03:57 2019
Received: from localhost ([127.0.0.1]:40279 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1gsFBb-0002zM-Tb
	for submit <at> debbugs.gnu.org; Fri, 08 Feb 2019 18:03:57 -0500
Received: from chene.dit.umontreal.ca ([132.204.246.20]:34814)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <monnier@HIDDEN>) id 1gsFBY-0002zA-LY
 for 34350 <at> debbugs.gnu.org; Fri, 08 Feb 2019 18:03:54 -0500
Received: from ceviche.home (lechon.iro.umontreal.ca [132.204.27.242])
 by chene.dit.umontreal.ca (8.14.7/8.14.1) with ESMTP id x18N3nBs002272;
 Fri, 8 Feb 2019 18:03:50 -0500
Received: by ceviche.home (Postfix, from userid 20848)
 id 7C5BD661CF; Fri,  8 Feb 2019 18:03:49 -0500 (EST)
From: Stefan Monnier <monnier@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#34350: 27.0.50;
 ediff-revision broken with SVN backend + non ascii chars both in
 directory and in filename
Message-ID: <jwv7ee9uc6o.fsf-monnier+emacsbugs@HIDDEN>
References: <84d0o4zoc9.fsf@HIDDEN> <83va1vr41l.fsf@HIDDEN>
 <jwvpns2tgh3.fsf-monnier+emacsbugs@HIDDEN> <83h8deou6l.fsf@HIDDEN>
 <jwva7j6rmep.fsf-monnier+emacsbugs@HIDDEN> <834l9eors1.fsf@HIDDEN>
Date: Fri, 08 Feb 2019 18:03:49 -0500
In-Reply-To: <834l9eors1.fsf@HIDDEN> (Eli Zaretskii's message of "Sat, 09 Feb
 2019 00:10:38 +0200")
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-NAI-Spam-Flag: NO
X-NAI-Spam-Threshold: 5
X-NAI-Spam-Score: 0
X-NAI-Spam-Rules: 2 Rules triggered
	EDT_SA_DN_PASS=0, RV6479=0
X-NAI-Spam-Version: 2.3.0.9418 : core <6479> : inlines <7014> : streams
 <1812481> : uri <2793137>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 34350
Cc: 34350 <at> debbugs.gnu.org, dgutov@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

>> >> I think intuitively, in terms of encoding for the file's contents the
>> >> backends should always return a byte-sequence (i.e. with no-conversion)
>> >> and the front-end should then decide how to decode it (e.g., obeying
>> >> the -*- coding -*- cookie and such).
>> > Why do we need to leave this to the front end?
>> 
>> So that it's not half-implemented differently in every backend.
>
> But every back-end has its own peculiar ways to do the job.  E.g., Git
> needs to call "git ls-files" first, and we then need to read the file
> names before calling "git cat".  Other VCSes don't necessarily need
> that.  So different implementations cannot be worked around and no
> higher layers can even know what the lower layers do to set up
> encoding correctly for all of them, at least not in most cases.

Then the front/middle end shouldn't set anything up for the backend, but
the backend still needs to return just undecoded bytes.

>> > It's a waste of cycles to do decoding manually in Lisp,
>> 
>> It'd be better to decode "on the fly" rather than first insert the byte
>> stream in a buffer and then decode it.  No doubt.
>> But I can't see how to do that and handle -*-coding-*-,
>> auto-coding-regexp-alist, and friends.
> What do you mean by "how"?  Just do the normal I/O, and all of those
> will be taken care of.  Like when we visit a file.  What am I missing?

The `find-revision` backend operation must put the revision's bytes into
the provided buffer, indeed similarly to when we visit a file.
But the difference is that in 99% of the cases, the bytes don't come
from a file but from a process's stdout, so the backed can't directly
use the "visit a file" trick.

> So you are saying that no other VC function cal call the backend's
> find-revision method?

That's the idea, yes.

> But we already have 2 more functions that do
> it, and I see no problems with doing that.

Then we need an additional middle layer.

>> All other code should be layered on top of that one, so it's done at
>> only one place.  If that doesn't work (because vc-find-revision is
>> not flexible enough) then we should move this decoding code to a
>> middle-layer between vc-find-revision and (vc-call find-revision
>> ...) that all users of `find-revision` can then use.
>
> I don't think this is possible in general, because different callers
> have different needs wrt to encoding/decoding.

Hmm... looking at the code I see 3 places where we call the
`find-revision` backend:

- vc-find-revision-save
- vc-find-revision-no-save
- vc-default-revert

The last one should indeed call the backend directly (as it currently
does) and should be changed not to bind coding-system-for-read/write and
instead to assume that the backend deals with bytes.

The other two are begging to be unified to reduce code redundancy and
are the ones that need the do the file-like decoding (and they indeed do
it).

> You forget VCS operations that return stuff other than the complete
> file's contents, like vc-log or vc-dff or calls that return file names
> etc.

Not really forgetting, no.  Instead I was talking specifically about
things like `find-revision` (i.e. about the content of files).
For filenames, commit messages and other metadata the situation is quite
different, indeed.


        Stefan




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#34350; Package emacs. Full text available.

Message received at 34350 <at> debbugs.gnu.org:


Received: (at 34350) by debbugs.gnu.org; 8 Feb 2019 22:11:07 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Feb 08 17:11:07 2019
Received: from localhost ([127.0.0.1]:40251 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1gsEMV-0001Vn-Fq
	for submit <at> debbugs.gnu.org; Fri, 08 Feb 2019 17:11:07 -0500
Received: from eggs.gnu.org ([209.51.188.92]:34658)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1gsEMS-0001VI-Uc
 for 34350 <at> debbugs.gnu.org; Fri, 08 Feb 2019 17:11:05 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e]:38643)
 by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <eliz@HIDDEN>)
 id 1gsEMN-0006uV-Cm; Fri, 08 Feb 2019 17:10:59 -0500
Received: from [176.228.60.248] (port=1490 helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256)
 (Exim 4.82) (envelope-from <eliz@HIDDEN>)
 id 1gsEMN-0000lL-0W; Fri, 08 Feb 2019 17:10:59 -0500
Date: Sat, 09 Feb 2019 00:10:38 +0200
Message-Id: <834l9eors1.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Stefan Monnier <monnier@HIDDEN>
In-reply-to: <jwva7j6rmep.fsf-monnier+emacsbugs@HIDDEN> (message from Stefan
 Monnier on Fri, 08 Feb 2019 16:50:58 -0500)
Subject: Re: bug#34350: 27.0.50;
 ediff-revision broken with SVN backend + non ascii chars both in
 directory and in filename
References: <84d0o4zoc9.fsf@HIDDEN> <83va1vr41l.fsf@HIDDEN>
 <jwvpns2tgh3.fsf-monnier+emacsbugs@HIDDEN> <83h8deou6l.fsf@HIDDEN>
 <jwva7j6rmep.fsf-monnier+emacsbugs@HIDDEN>
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 34350
Cc: 34350 <at> debbugs.gnu.org, dgutov@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

> From: Stefan Monnier <monnier@HIDDEN>
> Cc: dgutov@HIDDEN,  34350 <at> debbugs.gnu.org,  vincent.belaiche@HIDDEN
> Date: Fri, 08 Feb 2019 16:50:58 -0500
> 
> >> I think intuitively, in terms of encoding for the file's contents the
> >> backends should always return a byte-sequence (i.e. with no-conversion)
> >> and the front-end should then decide how to decode it (e.g., obeying
> >> the -*- coding -*- cookie and such).
> > Why do we need to leave this to the front end?
> 
> So that it's not half-implemented differently in every backend.

But every back-end has its own peculiar ways to do the job.  E.g., Git
needs to call "git ls-files" first, and we then need to read the file
names before calling "git cat".  Other VCSes don't necessarily need
that.  So different implementations cannot be worked around and no
higher layers can even know what the lower layers do to set up
encoding correctly for all of them, at least not in most cases.

> > It's a waste of cycles to do decoding manually in Lisp,
> 
> It'd be better to decode "on the fly" rather than first insert the byte
> stream in a buffer and then decode it.  No doubt.
> But I can't see how to do that and handle -*-coding-*-,
> auto-coding-regexp-alist, and friends.

What do you mean by "how"?  Just do the normal I/O, and all of those
will be taken care of.  Like when we visit a file.  What am I missing?

> > and it also pushes this obscure art to application levels,
> 
> The "front-end" is `vc-find-revision`.

So you are saying that no other VC function cal call the backend's
find-revision method?  But we already have 2 more functions that do
it, and I see no problems with doing that.

> All other code should be layered on top of that one, so it's done at
> only one place.  If that doesn't work (because vc-find-revision is
> not flexible enough) then we should move this decoding code to a
> middle-layer between vc-find-revision and (vc-call find-revision
> ...) that all users of `find-revision` can then use.

I don't think this is possible in general, because different callers
have different needs wrt to encoding/decoding.

> > insist on any encoding, except where the VCS requires it, and it
> 
> I don't know of any VCS that enforces any kind of encoding on the files
> it manages.  AFAIK they pretty much all manage files made of lines where
> the lines are made of bytes (with some extra accommodations for files
> not made of lines).  Some try to handle line-end conversion to
> some extent, but that doesn't really affect us anyway.

You forget VCS operations that return stuff other than the complete
file's contents, like vc-log or vc-dff or calls that return file names
etc.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#34350; Package emacs. Full text available.

Message received at 34350 <at> debbugs.gnu.org:


Received: (at 34350) by debbugs.gnu.org; 8 Feb 2019 21:51:09 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Feb 08 16:51:08 2019
Received: from localhost ([127.0.0.1]:40228 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1gsE3A-00011i-JG
	for submit <at> debbugs.gnu.org; Fri, 08 Feb 2019 16:51:08 -0500
Received: from alt42.smtp-out.videotron.ca ([23.233.128.29]:4851)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <monnier@HIDDEN>) id 1gsE37-00011D-CO
 for 34350 <at> debbugs.gnu.org; Fri, 08 Feb 2019 16:51:06 -0500
Received: from fmsmemgm.homelinux.net ([23.233.195.134]) by Videotron with SMTP
 id sE30gdLWWTtxcsE31gyN9C; Fri, 08 Feb 2019 16:51:00 -0500
X-Authority-Analysis: v=2.3 cv=QsxwI26d c=1 sm=1 tr=0
 a=xXJ578j8WyTliCxld3/pTA==:117 a=xXJ578j8WyTliCxld3/pTA==:17
 a=CFTnQlWoA9kA:10 a=JP3XMwzWV1vfR0xuWJAA:9
Received: by fmsmemgm.homelinux.net (Postfix, from userid 20848)
 id B1D1CAE80E; Fri,  8 Feb 2019 16:50:58 -0500 (EST)
From: Stefan Monnier <monnier@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#34350: 27.0.50;
 ediff-revision broken with SVN backend + non ascii chars both in
 directory and in filename
Message-ID: <jwva7j6rmep.fsf-monnier+emacsbugs@HIDDEN>
References: <84d0o4zoc9.fsf@HIDDEN> <83va1vr41l.fsf@HIDDEN>
 <jwvpns2tgh3.fsf-monnier+emacsbugs@HIDDEN> <83h8deou6l.fsf@HIDDEN>
Date: Fri, 08 Feb 2019 16:50:58 -0500
In-Reply-To: <83h8deou6l.fsf@HIDDEN> (Eli Zaretskii's message of "Fri, 08 Feb
 2019 23:18:42 +0200")
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-CMAE-Envelope: MS4wfEqJk+if7BAxg99BLz6DNAd9J/VFoKbji4AdDKZPWPPwfOMHIWlc3le4lsUeK2PINvtcfD/9Fe+z8mwyvG45jfQvIlamX9f0Xa367oyY9x+EVFn1bDeY
 h5jspp0jKnbOX8XdgcFeEK6+IvxxjOmwl1WAStrERWHXZ/9BwScDnv1Hmqmq6Z9MzEItuoqXCIgfdGdYohIr1fbwgFRGgdgQGjp5onFczZ5OYvXySulabsPH
 vMg4T56A2IGt25slFxGApYVZZqUcSLU3TIP92vmcLQnQTxj852YZnesl5mq2bKkMbJX8OujGtvA1LLLXRkeGpQ==
X-Spam-Score: 0.3 (/)
X-Debbugs-Envelope-To: 34350
Cc: vincent.belaiche@HIDDEN, 34350 <at> debbugs.gnu.org, dgutov@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.7 (/)

>> I think intuitively, in terms of encoding for the file's contents the
>> backends should always return a byte-sequence (i.e. with no-conversion)
>> and the front-end should then decide how to decode it (e.g., obeying
>> the -*- coding -*- cookie and such).
> Why do we need to leave this to the front end?

So that it's not half-implemented differently in every backend.

> It's a waste of cycles to do decoding manually in Lisp,

It'd be better to decode "on the fly" rather than first insert the byte
stream in a buffer and then decode it.  No doubt.
But I can't see how to do that and handle -*-coding-*-,
auto-coding-regexp-alist, and friends.

> and it also pushes this obscure art to application levels,

The "front-end" is `vc-find-revision`.  All other code should be layered
on top of that one, so it's done at only one place.  If that doesn't
work (because vc-find-revision is not flexible enough) then we should
move this decoding code to a middle-layer between vc-find-revision and
(vc-call find-revision ...) that all users of `find-revision` can then use.

> insist on any encoding, except where the VCS requires it, and it

I don't know of any VCS that enforces any kind of encoding on the files
it manages.  AFAIK they pretty much all manage files made of lines where
the lines are made of bytes (with some extra accommodations for files
not made of lines).  Some try to handle line-end conversion to
some extent, but that doesn't really affect us anyway.


        Stefan




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#34350; Package emacs. Full text available.

Message received at 34350 <at> debbugs.gnu.org:


Received: (at 34350) by debbugs.gnu.org; 8 Feb 2019 21:45:47 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Feb 08 16:45:47 2019
Received: from localhost ([127.0.0.1]:40218 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1gsDxz-00081G-H5
	for submit <at> debbugs.gnu.org; Fri, 08 Feb 2019 16:45:47 -0500
Received: from eggs.gnu.org ([209.51.188.92]:57211)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1gsDxw-0007ta-VW
 for 34350 <at> debbugs.gnu.org; Fri, 08 Feb 2019 16:45:47 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e]:37185)
 by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <eliz@HIDDEN>)
 id 1gsDxd-00080N-0U; Fri, 08 Feb 2019 16:45:29 -0500
Received: from [176.228.60.248] (port=3903 helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256)
 (Exim 4.82) (envelope-from <eliz@HIDDEN>)
 id 1gsDxa-0005MV-3o; Fri, 08 Feb 2019 16:45:24 -0500
Date: Fri, 08 Feb 2019 23:45:01 +0200
Message-Id: <838syqosyq.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Dmitry Gutov <dgutov@HIDDEN>
In-reply-to: <622e6df3-fb17-cf8a-a166-23fd1549a6c7@HIDDEN> (message from
 Dmitry Gutov on Fri, 8 Feb 2019 20:25:35 +0300)
Subject: Re: bug#34350: 27.0.50; ediff-revision broken with SVN backend + non
 ascii chars both in directory and in filename
References: <84d0o4zoc9.fsf@HIDDEN> <83va1vr41l.fsf@HIDDEN>
 <622e6df3-fb17-cf8a-a166-23fd1549a6c7@HIDDEN>
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 34350
Cc: 34350 <at> debbugs.gnu.org, monnier@HIDDEN, vincent.belaiche@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

> Cc: 34350 <at> debbugs.gnu.org, vincent.belaiche@HIDDEN
> From: Dmitry Gutov <dgutov@HIDDEN>
> Date: Fri, 8 Feb 2019 20:25:35 +0300
> 
> On 07.02.2019 18:50, Eli Zaretskii wrote:
> 
> > Any idea why it insists on disabling code-conversions?
> 
> This was well before my time, and the only people I remember messing 
> with these variables anywhere in VC ever since are you (for 
> Windows-related fixes) and Michael. So this might require some digging 
> with vc-annotate.

How is vc-annotate relevant to vc-git-find-revision and the issue at
hand?  The last thing vc-find-revision does is to visit the file
written by the back-end, and it visits it normally, with
find-file-noselect, which decodes the contents as usual.  The problems
I see are with forcing no-conversion in the intermediate operations in
the back-end, where it extracts the specified version to a buffer.

> Also note that this affects two commands: one that returns the file 
> name, and another, its contents. I'm not sure what encoding 'git 
> cat-file blob' outputs in.

We already have in vc-git a variable that holds that encoding (UTF-8
by default).

> > In addition to producing undecoded buffer, these bindings have the
> > adverse effect of forcing Emacs not to encode command-line arguments
> > we pass to the VCS, which is the immediate cause for the current bug.
> 
> The adverse effect sounds like a separate bug.

It's not a bug, it's a documented feature.  coding-system-for-write
affects both I/O from and to a subprocess and the encoding of the
command-line arguments we pass to that subprocess.  That's why we
should be extra-careful when binding coding-system-for-write around
invocations of other programs.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#34350; Package emacs. Full text available.

Message received at 34350 <at> debbugs.gnu.org:


Received: (at 34350) by debbugs.gnu.org; 8 Feb 2019 21:19:13 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Feb 08 16:19:13 2019
Received: from localhost ([127.0.0.1]:40193 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1gsDYH-0006gp-4R
	for submit <at> debbugs.gnu.org; Fri, 08 Feb 2019 16:19:13 -0500
Received: from eggs.gnu.org ([209.51.188.92]:48131)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1gsDYF-0006gd-C2
 for 34350 <at> debbugs.gnu.org; Fri, 08 Feb 2019 16:19:11 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e]:36521)
 by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <eliz@HIDDEN>)
 id 1gsDY6-0002wK-L8; Fri, 08 Feb 2019 16:19:03 -0500
Received: from [176.228.60.248] (port=2291 helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256)
 (Exim 4.82) (envelope-from <eliz@HIDDEN>)
 id 1gsDY6-0001Z6-8O; Fri, 08 Feb 2019 16:19:02 -0500
Date: Fri, 08 Feb 2019 23:18:42 +0200
Message-Id: <83h8deou6l.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Stefan Monnier <monnier@HIDDEN>
In-reply-to: <jwvpns2tgh3.fsf-monnier+emacsbugs@HIDDEN> (message from Stefan
 Monnier on Fri, 08 Feb 2019 11:08:36 -0500)
Subject: Re: bug#34350: 27.0.50;
 ediff-revision broken with SVN backend + non ascii chars both in
 directory and in filename
References: <84d0o4zoc9.fsf@HIDDEN> <83va1vr41l.fsf@HIDDEN>
 <jwvpns2tgh3.fsf-monnier+emacsbugs@HIDDEN>
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 34350
Cc: vincent.belaiche@HIDDEN, 34350 <at> debbugs.gnu.org, dgutov@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

> From: Stefan Monnier <monnier@HIDDEN>
> Cc: Dmitry Gutov <dgutov@HIDDEN>,  34350 <at> debbugs.gnu.org,  vincent.belaiche@HIDDEN
> Date: Fri, 08 Feb 2019 11:08:36 -0500
> 
> I think intuitively, in terms of encoding for the file's contents the
> backends should always return a byte-sequence (i.e. with no-conversion)
> and the front-end should then decide how to decode it (e.g., obeying
> the -*- coding -*- cookie and such).

Why do we need to leave this to the front end?  It's a waste of cycles
to do decoding manually in Lisp, and it also pushes this obscure art
to application levels, where many Lisp programmers won't know how to
DTRT.

IMO, it's the other way around: by default the back-end should not
insist on any encoding, except where the VCS requires it, and it
should always by default decode the stuff it returns.  The front end
should disable code conversions when needed, and the back-end should
honor that.  This will mostly do TRT, because in the vast majority of
cases users do want eventually to have the stuff decoded, the number
of cases where we want the contrary is minuscule.

VC is just a fancy way of visiting files, so it should normally do the
same, i.e. decode.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#34350; Package emacs. Full text available.

Message received at 34350 <at> debbugs.gnu.org:


Received: (at 34350) by debbugs.gnu.org; 8 Feb 2019 17:25:52 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Feb 08 12:25:52 2019
Received: from localhost ([127.0.0.1]:40104 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1gs9uS-0003RF-40
	for submit <at> debbugs.gnu.org; Fri, 08 Feb 2019 12:25:52 -0500
Received: from mail-lf1-f42.google.com ([209.85.167.42]:33683)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <raaahh@HIDDEN>) id 1gs9uM-0003Qt-5z
 for 34350 <at> debbugs.gnu.org; Fri, 08 Feb 2019 12:25:46 -0500
Received: by mail-lf1-f42.google.com with SMTP id q12so3141084lfm.0
 for <34350 <at> debbugs.gnu.org>; Fri, 08 Feb 2019 09:25:46 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=sender:subject:to:cc:references:from:message-id:date:user-agent
 :mime-version:in-reply-to:content-language:content-transfer-encoding;
 bh=uFcKu7a2OoIaBE4s0k0XSJrle8ZHetCvDHUemMDqn/U=;
 b=nbsNWaDEDlY87J5YdNZk0thsj8Ktfofk/PJqinUK8JX9YQPUUbt0cnWmD82ynlAU3S
 1evg+4wP1r4sRu8QMDjCjn90vokd6l9/ZxZWpeKjoBljvK7KPdZGDjtHEuKS9toX85dL
 nESBcPm/fj6EVCURLPJKueRN9XEsHAh9XNnILybFOrc2hgXwZYZc/HULiF82Avr5Esay
 /6Adb5zghgd91RQIaRYfAqDIStjLoxdT3r/I6udBMYp279LiyZM7fyqZlLWogLslN5Yo
 eIlnXv7SfhopFMY2e8gTuSFsDSeR9uarkqMDfCBSbqB6lNpXJoP1y4ZOxYGmrzs/vmzr
 F4dA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:sender:subject:to:cc:references:from:message-id
 :date:user-agent:mime-version:in-reply-to:content-language
 :content-transfer-encoding;
 bh=uFcKu7a2OoIaBE4s0k0XSJrle8ZHetCvDHUemMDqn/U=;
 b=hQzg0t1z6zIbxYTqGUySk3nLzBTCgmHqRIOc9Z6go518ZkYTGAXmRBmsnbwaAEpFKh
 B5p3TbETnv3EP+XbHIAA2krkHm1bM6IFdLmfzsFO5OtHjootBaGWAe8nDDkntQ2w5o6v
 f4jAiuo/Fu/hUp9lNOvFu8kUeBpHymDGj5tEpiZWLG2Zu422e+/NlrAmkLpHG2rz8Acv
 9pNStg2CA5ckdUtUal5eg/gFmL4MZ3t8E18Gyq1FttAzGW0w9VQHpzwfzIR5S8Oxr81U
 pR8bRFmPRiLzsdtYVDdUXxbqFAno/5/OMx4bMg99FPlb+/LIMRavxySb5IFBnNmrfpfE
 rYmQ==
X-Gm-Message-State: AHQUAubuVUalvcn+j+BAbdfe2/+FfbyLD2Lcs9F79rOpzkSv1EEnrYei
 Qjy4orqfLkD2RIopHQevXao=
X-Google-Smtp-Source: AHgI3IakwjT4p1jExPeWyv7FtSqjowJmwi2bfA+hygQT4rivnmbJBtWVW3sL4eHMCl6+NwRwbHcUsA==
X-Received: by 2002:a19:d04d:: with SMTP id h74mr13079274lfg.52.1549646738477; 
 Fri, 08 Feb 2019 09:25:38 -0800 (PST)
Received: from [192.168.43.247] ([217.118.78.123])
 by smtp.googlemail.com with ESMTPSA id r2-v6sm469517lja.78.2019.02.08.09.25.36
 (version=TLS1_3 cipher=AEAD-AES128-GCM-SHA256 bits=128/128);
 Fri, 08 Feb 2019 09:25:37 -0800 (PST)
Subject: Re: bug#34350: 27.0.50; ediff-revision broken with SVN backend + non
 ascii chars both in directory and in filename
To: Eli Zaretskii <eliz@HIDDEN>, Stefan Monnier <monnier@HIDDEN>
References: <84d0o4zoc9.fsf@HIDDEN> <83va1vr41l.fsf@HIDDEN>
From: Dmitry Gutov <dgutov@HIDDEN>
Message-ID: <622e6df3-fb17-cf8a-a166-23fd1549a6c7@HIDDEN>
Date: Fri, 8 Feb 2019 20:25:35 +0300
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:65.0) Gecko/20100101
 Thunderbird/65.0
MIME-Version: 1.0
In-Reply-To: <83va1vr41l.fsf@HIDDEN>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 7bit
X-Spam-Score: 1.6 (+)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has NOT identified this incoming email as spam.  The original
 message has been attached to this so you can view it or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 Content preview:  On 07.02.2019 18:50, Eli Zaretskii wrote: > Any idea why it
 insists on disabling code-conversions? This was well before my time, and
 the only people I remember messing with these variables anywhere in VC ever
 since are you (for Windows-related fixes) and Michael. So this might require
 some digging [...] 
 Content analysis details:   (1.6 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 -0.0 RCVD_IN_DNSWL_NONE     RBL: Sender listed at http://www.dnswl.org/,
 no trust [209.85.167.42 listed in list.dnswl.org]
 -0.0 SPF_PASS               SPF: sender matches SPF record
 1.5 RCVD_IN_SORBS_WEB      RBL: SORBS: sender is an abusable web server
 [217.118.78.123 listed in dnsbl.sorbs.net]
 0.0 HEADER_FROM_DIFFERENT_DOMAINS From and EnvelopeFrom 2nd level
 mail domains are different
 0.0 FREEMAIL_FROM          Sender email is commonly abused enduser mail
 provider (dgutov[at]yandex.ru)
 0.1 FREEMAIL_FORGED_FROMDOMAIN 2nd level domains in From and
 EnvelopeFrom freemail headers are different
X-Debbugs-Envelope-To: 34350
Cc: 34350 <at> debbugs.gnu.org, vincent.belaiche@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: 0.6 (/)

On 07.02.2019 18:50, Eli Zaretskii wrote:

> Any idea why it insists on disabling code-conversions?

This was well before my time, and the only people I remember messing 
with these variables anywhere in VC ever since are you (for 
Windows-related fixes) and Michael. So this might require some digging 
with vc-annotate.

Also note that this affects two commands: one that returns the file 
name, and another, its contents. I'm not sure what encoding 'git 
cat-file blob' outputs in.

> In addition to producing undecoded buffer, these bindings have the
> adverse effect of forcing Emacs not to encode command-line arguments
> we pass to the VCS, which is the immediate cause for the current bug.

The adverse effect sounds like a separate bug.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#34350; Package emacs. Full text available.

Message received at 34350 <at> debbugs.gnu.org:


Received: (at 34350) by debbugs.gnu.org; 8 Feb 2019 16:08:47 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Feb 08 11:08:47 2019
Received: from localhost ([127.0.0.1]:40064 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1gs8ho-0001RT-Oa
	for submit <at> debbugs.gnu.org; Fri, 08 Feb 2019 11:08:47 -0500
Received: from pmta31.teksavvy.com ([76.10.157.38]:4508)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <monnier@HIDDEN>) id 1gs8hl-0001RE-UL
 for 34350 <at> debbugs.gnu.org; Fri, 08 Feb 2019 11:08:43 -0500
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: =?us-ascii?q?A2FuAACPqF1c/1gXWKdjGgEBAQEBAgEBA?=
 =?us-ascii?q?QEHAgEBAQGBZYIEgWqYNIINE5l6DYRsAoMsIjgSAQMBAQEBAQECAgJpKIVMAQQ?=
 =?us-ascii?q?BeQULCw0nBwsUGDGFMQisMhoCihaMQxeBf4Qjij8iApE+hW2LbAmSZIFtiE4mA?=
 =?us-ascii?q?w+HZ4dJlGiBXSKBVjMaCDCDKIIkGhOOKSSPVAEB?=
X-IPAS-Result: =?us-ascii?q?A2FuAACPqF1c/1gXWKdjGgEBAQEBAgEBAQEHAgEBAQGBZYI?=
 =?us-ascii?q?EgWqYNIINE5l6DYRsAoMsIjgSAQMBAQEBAQECAgJpKIVMAQQBeQULCw0nBwsUG?=
 =?us-ascii?q?DGFMQisMhoCihaMQxeBf4Qjij8iApE+hW2LbAmSZIFtiE4mAw+HZ4dJlGiBXSK?=
 =?us-ascii?q?BVjMaCDCDKIIkGhOOKSSPVAEB?=
X-IronPort-AV: E=Sophos;i="5.58,348,1544504400"; d="scan'208";a="69232417"
Received: from unknown (HELO fmsmemgm.homelinux.net) ([167.88.23.88])
 by smtp.teksavvy.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384;
 08 Feb 2019 11:08:36 -0500
Received: by fmsmemgm.homelinux.net (Postfix, from userid 20848)
 id 1013FAEDAA; Fri,  8 Feb 2019 11:08:36 -0500 (EST)
From: Stefan Monnier <monnier@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#34350: 27.0.50;
 ediff-revision broken with SVN backend + non ascii chars both in
 directory and in filename
Message-ID: <jwvpns2tgh3.fsf-monnier+emacsbugs@HIDDEN>
References: <84d0o4zoc9.fsf@HIDDEN> <83va1vr41l.fsf@HIDDEN>
Date: Fri, 08 Feb 2019 11:08:36 -0500
In-Reply-To: <83va1vr41l.fsf@HIDDEN> (Eli Zaretskii's message of "Thu, 07 Feb
 2019 17:50:30 +0200")
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.50 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: 0.3 (/)
X-Debbugs-Envelope-To: 34350
Cc: vincent.belaiche@HIDDEN, 34350 <at> debbugs.gnu.org,
 Dmitry Gutov <dgutov@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.7 (/)

> I think there's a real mess regarding encoding and decoding stuff in
> vc-find-revision and its backend implementations.

I can believe it.

I think intuitively, in terms of encoding for the file's contents the
backends should always return a byte-sequence (i.e. with no-conversion)
and the front-end should then decide how to decode it (e.g., obeying
the -*- coding -*- cookie and such).

But since that holds for all backends, ideally they should be called in
such a way that they automatically return bytes (rather than chars)
without any extra effort (e.g. without manually binding
coding-system-for-read/write).


        Stefan




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#34350; Package emacs. Full text available.

Message received at 34350 <at> debbugs.gnu.org:


Received: (at 34350) by debbugs.gnu.org; 8 Feb 2019 07:03:16 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Feb 08 02:03:16 2019
Received: from localhost ([127.0.0.1]:38827 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1gs0Bv-0002U8-QY
	for submit <at> debbugs.gnu.org; Fri, 08 Feb 2019 02:03:16 -0500
Received: from eggs.gnu.org ([209.51.188.92]:35119)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1gs0Bu-0002Tw-0j
 for 34350 <at> debbugs.gnu.org; Fri, 08 Feb 2019 02:03:14 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e]:40355)
 by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <eliz@HIDDEN>)
 id 1gs0Bl-0005Fl-Ak; Fri, 08 Feb 2019 02:03:06 -0500
Received: from [176.228.60.248] (port=4088 helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256)
 (Exim 4.82) (envelope-from <eliz@HIDDEN>)
 id 1gs0Bh-0002Y4-HR; Fri, 08 Feb 2019 02:03:03 -0500
Date: Fri, 08 Feb 2019 09:02:58 +0200
Message-Id: <83k1iarcd9.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Vincent =?iso-8859-15?Q?Bela=EFche?= <vincent.belaiche@HIDDEN>
In-reply-to: <84a7j7z12n.fsf@HIDDEN> (message from Vincent
 =?iso-8859-15?Q?Bela=EFche?= on Thu, 07 Feb 2019 23:27:28 +0100)
Subject: Re: bug#34350: 27.0.50;
 ediff-revision broken with SVN backend + non ascii chars both in
 directory and in filename
References: <84a7j7z12n.fsf@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=iso-8859-15
Content-Transfer-Encoding: 8bit
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 34350
Cc: 34350 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

> From: Vincent Belache <vincent.belaiche@HIDDEN>
> Cc: Vincent Belache <vincent.belaiche@HIDDEN> 
> Date: Thu, 07 Feb 2019 23:27:28 +0100
> 
> > Is this part relevant?  You didn't really think we refuse to support
> > non-ASCII file names, did you?
> 
> [...]
> 
> No, I did not, that was just a joke, sorry for not being funny.

Oh, that was a joke?  Sorry for not catching it.

> Concerning your patch, it made it work.

Thanks, pushed to the emacs-26 branch.

This only fixes some VC backends, there are others which bind
coding-system-for-write in their backend implementations, which looks
simply wrong to me.  I hope we will be able to fix those as well, but
perhaps not in Emacs 26.2, if the changes I have in mind will be
deemed unsafe.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#34350; Package emacs. Full text available.

Message received at 34350 <at> debbugs.gnu.org:


Received: (at 34350) by debbugs.gnu.org; 7 Feb 2019 22:27:39 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Feb 07 17:27:39 2019
Received: from localhost ([127.0.0.1]:38673 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1grs8x-0004Ss-9H
	for submit <at> debbugs.gnu.org; Thu, 07 Feb 2019 17:27:39 -0500
Received: from mail-wm1-f47.google.com ([209.85.128.47]:33597)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <vincent.belaiche@HIDDEN>) id 1grs8u-0004Sc-Ht
 for 34350 <at> debbugs.gnu.org; Thu, 07 Feb 2019 17:27:37 -0500
Received: by mail-wm1-f47.google.com with SMTP id h22so5428397wmb.0
 for <34350 <at> debbugs.gnu.org>; Thu, 07 Feb 2019 14:27:36 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=from:to:cc:subject:in-reply-to:date:message-id:mime-version
 :content-transfer-encoding;
 bh=bZ68ZJN2Q/X84zBtWtpkC0yAEwz30ug0hOjAyHk6KLU=;
 b=A9L8lrQhuxfiQNVWHJZ3BK8Z+pQJY7wxl6n1Cv9AfAZH/wb/I4GYzc04Qa6lpZGajH
 IbeinzQsn1+jZx3qLU7rgZQW/x3AGNi2EV0F8O61h07aivBX3nYTvaA7SBqyLxDQBDa9
 U0suqed6PAqHzzQtkQDiXGkDD0VIXKX9NofcT3TM//WHR0ZWxpcRro5AaBdKWBwODQuj
 cEkP7Ibs9j0XraPhTSMHEw1FXTdMn90rZfSFUfJ2VT7cu7O1Ly0M0rLJjie8V/Mb4ur/
 5qR8quXpaz0+Qr/wQVItN1oTvlCGjaHOz8Q/AbUZtcVsgTUGylDbuU0tI9c8Q3qJE2gd
 kotA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:from:to:cc:subject:in-reply-to:date:message-id
 :mime-version:content-transfer-encoding;
 bh=bZ68ZJN2Q/X84zBtWtpkC0yAEwz30ug0hOjAyHk6KLU=;
 b=VO5cqKrNtKOBtNNuo4NFHnQDy4CO43sptrwmxmmFNnn8u8y6ixO6sUhfFcLkkP2nOh
 5//RDnb6nLsHRWoYlVQF3vAC0/SUR0sWJUn64ZQSaIW7eVGpLDh0q0pIeMvO1gCryr/7
 3ldJ4FAS/40t3PA1yhyQGldly2b8aewo/wZXDyEUwrMIYQIhVigV54cNdVV1DKA6s8Ov
 7Ezr0KrRuexCUImGvicEIyFAEBwxkKeAiE8EVufWa+WMdQVXJQ8Xg8jN25MxGmlJpw6k
 I3g/Zlav/wS+MFAZ8r5ma05r5QyWajve8g4TXUUjDQv0xsG6fByZBPsenUicruN4nM2r
 gKgg==
X-Gm-Message-State: AHQUAuY4VU/QqN1b3sUBU2uYTa5AQhtNwe5wwsQi0DMCLTfq3sPbO200
 inn+LrfhQm6aBwJnzZ6dWCU=
X-Google-Smtp-Source: AHgI3IZOKw6pzFzKFrqqpWqB2UYYmU10BIS+8f/o36/kJGfxsveNGnYdLPDmorIN2/eiB5ns0CXL3g==
X-Received: by 2002:a1c:2804:: with SMTP id o4mr9565958wmo.150.1549578450678; 
 Thu, 07 Feb 2019 14:27:30 -0800 (PST)
Received: from AigleRoyal (arennes-656-1-27-51.w86-214.abo.wanadoo.fr.
 [86.214.222.51])
 by smtp.gmail.com with ESMTPSA id m14sm205352wrx.59.2019.02.07.14.27.29
 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256);
 Thu, 07 Feb 2019 14:27:29 -0800 (PST)
From: =?iso-8859-1?Q?Vincent_Bela=EFche?= <vincent.belaiche@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>, 34350 <at> debbugs.gnu.org
Subject: Re: bug#34350: 27.0.50;
 ediff-revision broken with SVN backend + non ascii chars both in
 directory and in filename
In-Reply-To: <83wombr4fy.fsf@HIDDEN>
Date: Thu, 07 Feb 2019 23:27:28 +0100
Message-ID: <84a7j7z12n.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=iso-8859-15
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-Debbugs-Envelope-To: 34350
Cc: =?iso-8859-1?Q?Vincent_Bela=EFche?= <vincent.belaiche@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)


Le 07/02/2019 =E0 16:41, Eli Zaretskii a =E9crit :
>> From: Vincent Bela=EFche <vincent.belaiche@HIDDEN>
>> Date: Wed, 06 Feb 2019 20:52:38 +0100
>> Cc: Vincent Bela=EFche <vincent.belaiche@HIDDEN>
>>

[...]

>
>> OK, I know that some Askese people will probably say something like
>> =AB don't use non-ASCII characters in file-names =BB which is IMHO quite=
 a
>> ASCII-centric way of thinking, so just in case, my answer is =AB =CE w=
=EEll
>> =F9se n=F4n-=C0SC=CE=CE =E7h=E6r=E2ct=E8rs n=E9v=BDrthel=E8ss, because =
=CE =E0m mys=E8lf a n=F4n-ASCII
>> p=E8rs=F4n ! =BB ;-)
>
> Is this part relevant?  You didn't really think we refuse to support
> non-ASCII file names, did you?
>

[...]

No, I did not, that was just a joke, sorry for not being funny.

Concerning your patch, it made it work.

  Vincent.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#34350; Package emacs. Full text available.

Message received at 34350 <at> debbugs.gnu.org:


Received: (at 34350) by debbugs.gnu.org; 7 Feb 2019 15:51:01 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Feb 07 10:51:01 2019
Received: from localhost ([127.0.0.1]:38549 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1grlx6-0002x1-PA
	for submit <at> debbugs.gnu.org; Thu, 07 Feb 2019 10:51:01 -0500
Received: from eggs.gnu.org ([209.51.188.92]:41763)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1grlx3-0002wl-8l
 for 34350 <at> debbugs.gnu.org; Thu, 07 Feb 2019 10:50:58 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e]:54114)
 by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <eliz@HIDDEN>)
 id 1grlwj-0003w7-Lo; Thu, 07 Feb 2019 10:50:40 -0500
Received: from [176.228.60.248] (port=3293 helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256)
 (Exim 4.82) (envelope-from <eliz@HIDDEN>)
 id 1grlwj-0005U4-2B; Thu, 07 Feb 2019 10:50:37 -0500
Date: Thu, 07 Feb 2019 17:50:30 +0200
Message-Id: <83va1vr41l.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Stefan Monnier <monnier@HIDDEN>, Dmitry Gutov <dgutov@HIDDEN>
In-reply-to: <84d0o4zoc9.fsf@HIDDEN> (message from Vincent
 =?iso-8859-1?Q?Bela=EFche?= on Wed, 06 Feb 2019 20:52:38 +0100)
Subject: Re: bug#34350: 27.0.50;
 ediff-revision broken with SVN backend + non ascii chars both in
 directory and in filename
References: <84d0o4zoc9.fsf@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 34350
Cc: 34350 <at> debbugs.gnu.org, vincent.belaiche@HIDDEN
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Stefan, Dmitry, can I have your attention please?

I think there's a real mess regarding encoding and decoding stuff in
vc-find-revision and its backend implementations.  For some reason,
several backend implementations bind both coding-system-for-read and
coding-system-for-write to no-conversion when they invoke the VCS to
produce a file at a certain revision.  Here's an example from
vc-git.el:

  (defun vc-git-find-revision (file rev buffer)
    (let* (process-file-side-effects
	   (coding-system-for-read 'binary)
	   (coding-system-for-write 'binary)
	   (fullname
	    (let ((fn (vc-git--run-command-string
		       file "ls-files" "-z" "--full-name" "--")))
	      ;; ls-files does not return anything when looking for a
	      ;; revision of a file that has been renamed or removed.
	      (if (string= fn "")
		  (file-relative-name file (vc-git-root default-directory))
		(substring fn 0 -1)))))
      (vc-git-command
       buffer 0
       nil
       "cat-file" "blob" (concat (if rev rev "HEAD") ":" fullname))))

Any idea why it insists on disabling code-conversions?

More generally, the find-revision method is documented as

  Fetch revision REV of file FILE and put it into BUFFER.

There's nothing here that hints that the resulting buffer will not
look like any visited file, i.e. after decoding.  Am I missing
something?

In addition to producing undecoded buffer, these bindings have the
adverse effect of forcing Emacs not to encode command-line arguments
we pass to the VCS, which is the immediate cause for the current bug.

It is my impression that one of the backends did these bindings for
some reason, and then others simply copy-pasted from it.

I'd like to fix this mess, if possible.

Thanks in advance for any insights.




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#34350; Package emacs. Full text available.

Message received at 34350 <at> debbugs.gnu.org:


Received: (at 34350) by debbugs.gnu.org; 7 Feb 2019 15:42:08 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Feb 07 10:42:08 2019
Received: from localhost ([127.0.0.1]:38545 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1grloU-0002jz-2J
	for submit <at> debbugs.gnu.org; Thu, 07 Feb 2019 10:42:08 -0500
Received: from eggs.gnu.org ([209.51.188.92]:40153)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1grloS-0002jU-42
 for 34350 <at> debbugs.gnu.org; Thu, 07 Feb 2019 10:42:04 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e]:53962)
 by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <eliz@HIDDEN>)
 id 1grloM-0006I5-IG; Thu, 07 Feb 2019 10:41:58 -0500
Received: from [176.228.60.248] (port=2767 helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256)
 (Exim 4.82) (envelope-from <eliz@HIDDEN>)
 id 1grloM-0004nR-2v; Thu, 07 Feb 2019 10:41:58 -0500
Date: Thu, 07 Feb 2019 17:41:53 +0200
Message-Id: <83wombr4fy.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Vincent =?utf-8?Q?Bela=C3=AFche?= <vincent.belaiche@HIDDEN>
In-reply-to: <84d0o4zoc9.fsf@HIDDEN> (message from Vincent =?utf-8?Q?Be?=
 =?utf-8?Q?la=C3=AFche?= on Wed, 06 Feb 2019 20:52:38 +0100)
Subject: Re: bug#34350: 27.0.50;
 ediff-revision broken with SVN backend + non ascii chars both in
 directory and in filename
References: <84d0o4zoc9.fsf@HIDDEN>
MIME-version: 1.0
Content-type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic]
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 34350
Cc: 34350 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

> From: Vincent Belaïche <vincent.belaiche@HIDDEN>
> Date: Wed, 06 Feb 2019 20:52:38 +0100
> Cc: Vincent Belaïche <vincent.belaiche@HIDDEN>
> 
> After some debugging, I realized that the whole thing executes with
> default-directory set to "c:/blah/blah/blah/ê/trunk/" the following
> two commands:
> 
>  (process-file "svn" nil t nil "--non-interactive" "status" "-v" "ê.tex")
> 
> and then:
> 
>  (process-file "svn" nil t nil "--non-interactive" "cat" "ê.tex")
> 
> The first command works quite fine, but the second one fails, and having
> a look info the " *temp*" buffer, I saw that svn angrilly barks with
> some error message like this one:
> 
> --8<----8<----8<----8<----8<-- begin -->8---->8---->8---->8---->8----
> svn: warning: W200005: 'C:\blah\blah\blah\\trunk\ª.tex' is not under version control
> svn: E200009: Could not cat all targets because some targets are not versioned
> svn: E200009: Illegal target for the requested operation
> --8<----8<----8<----8<----8<--  end  -->8---->8---->8---->8---->8----
> 
> looking more carefully at things, and having inspected the C code of
> function call-process, I realized that the variable
> coding-system-for-write has some importance, and tracing this I realized
> that when the first svn command is called the variable
> coding-system-for-write is nil, while when the second svn command is
> called it is 'no-conversion, which makes it fail.

Ouch!  There's a real mess in vc-find-revision and its backend
implementations wrt encoding and decoding.  I will address the general
problem separately, but for now please see if the patch below fixes
the immediate problem with SVN.

> OK, I know that some Askese people will probably say something like
> « don't use non-ASCII characters in file-names » which is IMHO quite a
> ASCII-centric way of thinking, so just in case, my answer is « Î wîll
> ùse nôn-ÀSCÎÎ çhærâctèrs névœrthelèss, because Î àm mysèlf a nôn-ASCII
> pèrsôn ! » ;-)

Is this part relevant?  You didn't really think we refuse to support
non-ASCII file names, did you?

diff --git a/lisp/vc/vc.el b/lisp/vc/vc.el
index 9925196..326284f 100644
--- a/lisp/vc/vc.el
+++ b/lisp/vc/vc.el
@@ -1966,10 +1966,13 @@ vc-find-revision
 	(with-current-buffer filebuf
 	  (let ((failed t))
 	    (unwind-protect
-		(let ((coding-system-for-read 'no-conversion)
-		      (coding-system-for-write 'no-conversion))
+		(let ((coding-system-for-read 'no-conversion))
 		  (with-temp-file filename
 		    (let ((outbuf (current-buffer)))
+                      ;; We will read the backend's output with no
+                      ;; conversions, so we should also save the
+                      ;; temporary file with no encoding conversions.
+                      (setq buffer-file-coding-system 'no-conversion)
 		      ;; Change buffer to get local value of
 		      ;; vc-checkout-switches.
 		      (with-current-buffer filebuf




Information forwarded to bug-gnu-emacs@HIDDEN:
bug#34350; Package emacs. Full text available.

Message received at submit <at> debbugs.gnu.org:


Received: (at submit) by debbugs.gnu.org; 6 Feb 2019 19:53:13 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Feb 06 14:53:13 2019
Received: from localhost ([127.0.0.1]:36178 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1grTFw-0004QC-0i
	for submit <at> debbugs.gnu.org; Wed, 06 Feb 2019 14:53:13 -0500
Received: from eggs.gnu.org ([209.51.188.92]:51335)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <vincent.belaiche@HIDDEN>) id 1grTFt-0004Pv-FX
 for submit <at> debbugs.gnu.org; Wed, 06 Feb 2019 14:53:10 -0500
Received: from lists.gnu.org ([209.51.188.17]:38385)
 by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
 (Exim 4.71) (envelope-from <vincent.belaiche@HIDDEN>)
 id 1grTFo-0006mQ-6N
 for submit <at> debbugs.gnu.org; Wed, 06 Feb 2019 14:53:04 -0500
Received: from eggs.gnu.org ([209.51.188.92]:37477)
 by lists.gnu.org with esmtp (Exim 4.71)
 (envelope-from <vincent.belaiche@HIDDEN>) id 1grTFl-0006KA-E9
 for bug-gnu-emacs@HIDDEN; Wed, 06 Feb 2019 14:53:04 -0500
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org
X-Spam-Level: ***
X-Spam-Status: No, score=3.3 required=5.0 tests=BAYES_50,FREEMAIL_FROM,
 MIME_CHARSET_FARAWAY autolearn=disabled version=3.3.2
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <vincent.belaiche@HIDDEN>) id 1grTFi-0006kf-4H
 for bug-gnu-emacs@HIDDEN; Wed, 06 Feb 2019 14:53:01 -0500
Received: from mail-wm1-x335.google.com ([2a00:1450:4864:20::335]:51286)
 by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16)
 (Exim 4.71) (envelope-from <vincent.belaiche@HIDDEN>)
 id 1grTFh-0006k5-Bs
 for bug-gnu-emacs@HIDDEN; Wed, 06 Feb 2019 14:52:57 -0500
Received: by mail-wm1-x335.google.com with SMTP id b11so3791808wmj.1
 for <bug-gnu-emacs@HIDDEN>; Wed, 06 Feb 2019 11:52:56 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025;
 h=from:to:cc:subject:date:message-id:mime-version;
 bh=sR8Y/LT0D2V7J72cxm3DbJyCaCW8MRdjST5GV1V8jMQ=;
 b=MjF5I9r/6r2g9uaYVKlB1mrZUqrimIetm2ffwNGulo5zMvKFNLlu9IMqXLq0sbXWMN
 pZHjkuQERoi39wLpGIeoedn5EITewfFJnkcLWo0/tQW4rjQVeYny0mJkwJ7FsvN7JRds
 rntqhlD7btpUpGaxLw6I0rnto+dWIe3P9m8b5y6LfnS7sGVB9n9OwFOFQOO+Obylk7P5
 z88VScbjoaqb/nH4GOkeYfpST5AxTFebWgZeCyBaNub0NQDALWGA8HJX5pHRTZSC/z0T
 DuiP1sq4MGR5S5tZj5ha0EDvsFCXa77jpazn0v5sFo2bJB4SAkvc7tEC671jU7591w9r
 1VQA==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20161025;
 h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version;
 bh=sR8Y/LT0D2V7J72cxm3DbJyCaCW8MRdjST5GV1V8jMQ=;
 b=Ko7i2w3LGMrfgy6f123WiuHt5pJyCfSGqQ8myXXuc4rnIRg948AgbOIDFJW/sveTaS
 ai0PRnQC1AY1w/iP8clF24mCeG9fbbp5I3HQwSNxiumX+b4qMl2k2a+9I3oFasqOrKl5
 VSGerCKfFXl/ksf/+r+ATnMRoq0oaI+iG2xywxmo6F8B+GKkZmPT4SgOogxFLLSiB2ND
 kIDKEtwJG4mqM/vlq2CptmGEm9D6PJHHAubZjq0SSbuPbzv5kk5HBP9PZXtor4IOfZMz
 l2gCSk1U/ZloWwlx14jFNghyY2ffr36ZiYbWhR6Yq63ZVT3IVqGEcfqv0bS2HmIvnKBy
 Su0w==
X-Gm-Message-State: AHQUAubuFCpVERR6/nLD0VoiVp+ElwxoKOEP0moDcI+0aVmygg6mwYJ9
 UOvIRwwa9O+BuT4BW25uzgsJw7bV
X-Google-Smtp-Source: AHgI3IadqcuNvuR4+7KJWsOoQ43jNIXcOpmv89PvXE2pdCAdTKlQA1T2pG0vfTxV9ABNRrFJYJDzOw==
X-Received: by 2002:a1c:ed0b:: with SMTP id l11mr3933620wmh.43.1549482775563; 
 Wed, 06 Feb 2019 11:52:55 -0800 (PST)
Received: from AigleRoyal (arennes-656-1-27-51.w86-214.abo.wanadoo.fr.
 [86.214.222.51])
 by smtp.gmail.com with ESMTPSA id x3sm30235661wrd.19.2019.02.06.11.52.53
 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256);
 Wed, 06 Feb 2019 11:52:54 -0800 (PST)
From: =?iso-8859-1?Q?Vincent_Bela=EFche?= <vincent.belaiche@HIDDEN>
To: bug-gnu-emacs@HIDDEN
Subject: 27.0.50;
 ediff-revision broken with SVN backend + non ascii chars both in
 directory and in filename
Date: Wed, 06 Feb 2019 20:52:38 +0100
Message-ID: <84d0o4zoc9.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-detected-operating-system: by eggs.gnu.org: Genre and OS details not
 recognized.
X-Received-From: 2a00:1450:4864:20::335
X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x
X-Spam-Score: 1.0 (+)
X-Debbugs-Envelope-To: submit
Cc: =?iso-8859-1?Q?Vincent_Bela=EFche?= <vincent.belaiche@HIDDEN>
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.0 (/)

--=-=-=
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable


Hello Emacs experts,

I am trying to do some 'M-x ediff-revision' on a file that is under
version control with svn locally to my MSWindows-10 machine, and that
does not work.

The file path is something like

c:/blah/blah/blah/=EA/trunk/=EA.tex

--=-=-=
Content-Type: text/plain; charset=gb2312
Content-Transfer-Encoding: quoted-printable


(well, it is not exactly this exact string, but I presume that makes no
difference for our concern=A1=AD).

--=-=-=
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable


After some debugging, I realized that the whole thing executes with
default-directory set to "c:/blah/blah/blah/=EA/trunk/" the following
two commands:

 (process-file "svn" nil t nil "--non-interactive" "status" "-v" "=EA.tex")

and then:

 (process-file "svn" nil t nil "--non-interactive" "cat" "=EA.tex")

The first command works quite fine, but the second one fails, and having
a look info the " *temp*" buffer, I saw that svn angrilly barks with
some error message like this one:

--=-=-=
Content-Type: text/plain
Content-Transfer-Encoding: 8bit


--8<----8<----8<----8<----8<-- begin -->8---->8---->8---->8---->8----
svn: warning: W200005: 'C:\blah\blah\blah\\trunk\.tex' is not under version control
svn: E200009: Could not cat all targets because some targets are not versioned
svn: E200009: Illegal target for the requested operation
--8<----8<----8<----8<----8<--  end  -->8---->8---->8---->8---->8----

looking more carefully at things, and having inspected the C code of
function call-process, I realized that the variable
coding-system-for-write has some importance, and tracing this I realized
that when the first svn command is called the variable
coding-system-for-write is nil, while when the second svn command is
called it is 'no-conversion, which makes it fail.

--=-=-=
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable


The problem is that in the vc-find-revision function you have somewhere
this setting=A0:

--=-=-=
Content-Type: text/plain; charset=gb2312
Content-Transfer-Encoding: quoted-printable


 (let ( =A1=AD (coding-system-for-write 'no-conversion) =A1=AD) =A1=AD)

here is a backtrace where I marked two lines X and Y.

--=-=-=
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable


--8<----8<----8<----8<----8<-- begin -->8---->8---->8---->8---->8----
Debugger entered--Lisp error: (error "Failed (status 1): svn --non-interact=
ive cat  =EA.tex")
  signal(error ("Failed (status 1): svn --non-interactive cat  =EA.tex"))
  error("Failed (%s): %s" "status 1" "svn --non-interactive cat  =EA.tex")
  (progn (if (eq 32 (aref (buffer-name (current-buffer)) 0)) nil (pop-to-bu=
ffer (current-buffer)) (goto-char (point-min)) (shrink-window-if-larger-tha=
n-buffer)) (error "Failed (%s): %s" (if (integerp status) (format "status %=
d" status) status) full-command))
Y (if (and (not (eq t okstatus)) (or (not (integerp status)) (and okstatus =
(< okstatus status)))) (progn (if (eq 32 (aref (buffer-name (current-buffer=
)) 0)) nil (pop-to-buffer (current-buffer)) (goto-char (point-min)) (shrink=
-window-if-larger-than-buffer)) (error "Failed (%s): %s" (if (integerp stat=
us) (format "status %d" status) status) full-command)))
  (if (eq okstatus 'async) (let ((proc (let ((process-connection-type nil))=
 (apply 'start-file-process command (current-buffer) command squeezed)))) (=
if vc-command-messages (progn (message "Running in background: %s" full-com=
mand))) (set-process-sentinel proc #'ignore) (set-process-filter proc 'vc-p=
rocess-filter) (setq status proc) (if vc-command-messages (progn (vc-exec-a=
fter #'(lambda nil (let ... ...)))))) (if vc-command-messages (progn (messa=
ge "Running in foreground: %s" full-command))) (let ((buffer-undo-list t)) =
(message "CSFW=3D%S" coding-system-for-write) (message "CS=3D%S" (apply 'fi=
nd-operation-coding-system 'call-process "svn" squeezed)) (message "DIR=3D%=
s" default-directory) (message "SQUEEZED=3D%S" squeezed) (setq status (appl=
y 'process-file command nil t nil squeezed))) (if (and (not (eq t okstatus)=
) (or (not (integerp status)) (and okstatus (< okstatus status)))) (progn (=
if (eq 32 (aref (buffer-name (current-buffer)) 0)) nil (pop-to-buffer (curr=
ent-buffer)) (goto-char (point-min)) (shrink-window-if-larger-than-buffer))=
 (error "Failed (%s): %s" (if (integerp status) (format "status %d" status)=
 status) full-command))) (if vc-command-messages (progn (message "Done (sta=
tus=3D%d): %s" status full-command))))
  (let ((process-environment (cons "LC_MESSAGES=3DC" process-environment)) =
(w32-quote-process-args t)) (if (eq okstatus 'async) (let ((proc (let ((pro=
cess-connection-type nil)) (apply 'start-file-process command (current-buff=
er) command squeezed)))) (if vc-command-messages (progn (message "Running i=
n background: %s" full-command))) (set-process-sentinel proc #'ignore) (set=
-process-filter proc 'vc-process-filter) (setq status proc) (if vc-command-=
messages (progn (vc-exec-after #'(lambda nil ...))))) (if vc-command-messag=
es (progn (message "Running in foreground: %s" full-command))) (let ((buffe=
r-undo-list t)) (message "CSFW=3D%S" coding-system-for-write) (message "CS=
=3D%S" (apply 'find-operation-coding-system 'call-process "svn" squeezed)) =
(message "DIR=3D%s" default-directory) (message "SQUEEZED=3D%S" squeezed) (=
setq status (apply 'process-file command nil t nil squeezed))) (if (and (no=
t (eq t okstatus)) (or (not (integerp status)) (and okstatus (< okstatus st=
atus)))) (progn (if (eq 32 (aref (buffer-name ...) 0)) nil (pop-to-buffer (=
current-buffer)) (goto-char (point-min)) (shrink-window-if-larger-than-buff=
er)) (error "Failed (%s): %s" (if (integerp status) (format "status %d" sta=
tus) status) full-command))) (if vc-command-messages (progn (message "Done =
(status=3D%d): %s" status full-command)))))
  (let ((squeezed (remq nil flags)) (inhibit-read-only t) (status 0)) (if f=
iles (progn (setq squeezed (nconc squeezed files)))) (let ((process-environ=
ment (cons "LC_MESSAGES=3DC" process-environment)) (w32-quote-process-args =
t)) (if (eq okstatus 'async) (let ((proc (let (...) (apply ... command ... =
command squeezed)))) (if vc-command-messages (progn (message "Running in ba=
ckground: %s" full-command))) (set-process-sentinel proc #'ignore) (set-pro=
cess-filter proc 'vc-process-filter) (setq status proc) (if vc-command-mess=
ages (progn (vc-exec-after #'...)))) (if vc-command-messages (progn (messag=
e "Running in foreground: %s" full-command))) (let ((buffer-undo-list t)) (=
message "CSFW=3D%S" coding-system-for-write) (message "CS=3D%S" (apply 'fin=
d-operation-coding-system 'call-process "svn" squeezed)) (message "DIR=3D%s=
" default-directory) (message "SQUEEZED=3D%S" squeezed) (setq status (apply=
 'process-file command nil t nil squeezed))) (if (and (not (eq t okstatus))=
 (or (not (integerp status)) (and okstatus (< okstatus status)))) (progn (i=
f (eq 32 (aref ... 0)) nil (pop-to-buffer (current-buffer)) (goto-char (poi=
nt-min)) (shrink-window-if-larger-than-buffer)) (error "Failed (%s): %s" (i=
f (integerp status) (format "status %d" status) status) full-command))) (if=
 vc-command-messages (progn (message "Done (status=3D%d): %s" status full-c=
ommand))))) (vc-exec-after #'(lambda nil (run-hook-with-args 'vc-post-comma=
nd-functions command file-or-list flags))) status)
  (save-current-buffer (if (or (eq buffer t) (and (stringp buffer) (string=
=3D (buffer-name) buffer)) (eq buffer (current-buffer))) nil (vc-setup-buff=
er buffer)) (let ((squeezed (remq nil flags)) (inhibit-read-only t) (status=
 0)) (if files (progn (setq squeezed (nconc squeezed files)))) (let ((proce=
ss-environment (cons "LC_MESSAGES=3DC" process-environment)) (w32-quote-pro=
cess-args t)) (if (eq okstatus 'async) (let ((proc (let ... ...))) (if vc-c=
ommand-messages (progn (message "Running in background: %s" full-command)))=
 (set-process-sentinel proc #'ignore) (set-process-filter proc 'vc-process-=
filter) (setq status proc) (if vc-command-messages (progn (vc-exec-after ..=
.)))) (if vc-command-messages (progn (message "Running in foreground: %s" f=
ull-command))) (let ((buffer-undo-list t)) (message "CSFW=3D%S" coding-syst=
em-for-write) (message "CS=3D%S" (apply 'find-operation-coding-system 'call=
-process "svn" squeezed)) (message "DIR=3D%s" default-directory) (message "=
SQUEEZED=3D%S" squeezed) (setq status (apply 'process-file command nil t ni=
l squeezed))) (if (and (not (eq t okstatus)) (or (not ...) (and okstatus ..=
.))) (progn (if (eq 32 ...) nil (pop-to-buffer ...) (goto-char ...) (shrink=
-window-if-larger-than-buffer)) (error "Failed (%s): %s" (if ... ... status=
) full-command))) (if vc-command-messages (progn (message "Done (status=3D%=
d): %s" status full-command))))) (vc-exec-after #'(lambda nil (run-hook-wit=
h-args 'vc-post-command-functions command file-or-list flags))) status))
  (let* ((files (mapcar #'(lambda (f) (file-relative-name (expand-file-name=
 f))) (if (listp file-or-list) file-or-list (list file-or-list)))) (message=
-truncate-lines t) (full-command (concat (if (string=3D (substring command =
-1) "\n") (substring command 0 -1) command) " " (vc-delistify flags) " " (v=
c-delistify files)))) (save-current-buffer (if (or (eq buffer t) (and (stri=
ngp buffer) (string=3D (buffer-name) buffer)) (eq buffer (current-buffer)))=
 nil (vc-setup-buffer buffer)) (let ((squeezed (remq nil flags)) (inhibit-r=
ead-only t) (status 0)) (if files (progn (setq squeezed (nconc squeezed fil=
es)))) (let ((process-environment (cons "LC_MESSAGES=3DC" process-environme=
nt)) (w32-quote-process-args t)) (if (eq okstatus 'async) (let ((proc ...))=
 (if vc-command-messages (progn ...)) (set-process-sentinel proc #'ignore) =
(set-process-filter proc 'vc-process-filter) (setq status proc) (if vc-comm=
and-messages (progn ...))) (if vc-command-messages (progn (message "Running=
 in foreground: %s" full-command))) (let ((buffer-undo-list t)) (message "C=
SFW=3D%S" coding-system-for-write) (message "CS=3D%S" (apply ... ... "svn" =
squeezed)) (message "DIR=3D%s" default-directory) (message "SQUEEZED=3D%S" =
squeezed) (setq status (apply ... command nil t nil squeezed))) (if (and (n=
ot ...) (or ... ...)) (progn (if ... nil ... ... ...) (error "Failed (%s): =
%s" ... full-command))) (if vc-command-messages (progn (message "Done (stat=
us=3D%d): %s" status full-command))))) (vc-exec-after #'(lambda nil (run-ho=
ok-with-args 'vc-post-command-functions command file-or-list flags))) statu=
s)))
  vc-do-command(#<buffer  *temp file*-256291> 0 "svn" "c:/blah/blah/blah/=
=EA/trunk/=EA.tex" "--non-interactive" "cat" nil)
  apply(vc-do-command #<buffer  *temp file*-256291> 0 "svn" "c:/blah/blah/b=
lah/=EA/trunk/=EA.tex" ("--non-interactive" "cat" nil))
  vc-svn-command(#<buffer  *temp file*-256291> 0 "c:/blah/blah/blah/=EA/tru=
nk/=EA.tex" "cat" nil)
  apply(vc-svn-command #<buffer  *temp file*-256291> 0 "c:/blah/blah/blah/=
=EA/trunk/=EA.tex" "cat" nil nil)
  (let (process-file-side-effects) (apply 'vc-svn-command buffer 0 file "ca=
t" (and rev (not (string=3D rev "")) (concat "-r" rev)) (vc-switches 'SVN '=
checkout)))
  vc-svn-find-revision("c:/blah/blah/blah/=EA/trunk/=EA.tex" nil #<buffer  =
*temp file*-256291>)
  apply(vc-svn-find-revision ("c:/blah/blah/blah/=EA/trunk/=EA.tex" nil #<b=
uffer  *temp file*-256291>))
  vc-call-backend(SVN find-revision "c:/blah/blah/blah/=EA/trunk/=EA.tex" n=
il #<buffer  *temp file*-256291>)
  (if backend (vc-call-backend backend 'find-revision file revision outbuf)=
 (vc-call-backend (vc-backend file) 'find-revision file revision outbuf))
  (save-current-buffer (set-buffer filebuf) (if backend (vc-call-backend ba=
ckend 'find-revision file revision outbuf) (vc-call-backend (vc-backend fil=
e) 'find-revision file revision outbuf)))
  (let ((outbuf (current-buffer))) (save-current-buffer (set-buffer filebuf=
) (if backend (vc-call-backend backend 'find-revision file revision outbuf)=
 (vc-call-backend (vc-backend file) 'find-revision file revision outbuf))))
  (save-current-buffer (set-buffer temp-buffer) (let ((outbuf (current-buff=
er))) (save-current-buffer (set-buffer filebuf) (if backend (vc-call-backen=
d backend 'find-revision file revision outbuf) (vc-call-backend (vc-backend=
 file) 'find-revision file revision outbuf)))))
  (prog1 (save-current-buffer (set-buffer temp-buffer) (let ((outbuf (curre=
nt-buffer))) (save-current-buffer (set-buffer filebuf) (if backend (vc-call=
-backend backend 'find-revision file revision outbuf) (vc-call-backend (vc-=
backend file) 'find-revision file revision outbuf))))) (save-current-buffer=
 (set-buffer temp-buffer) (write-region nil nil temp-file nil 0)))
  (unwind-protect (prog1 (save-current-buffer (set-buffer temp-buffer) (let=
 ((outbuf (current-buffer))) (save-current-buffer (set-buffer filebuf) (if =
backend (vc-call-backend backend 'find-revision file revision outbuf) (vc-c=
all-backend (vc-backend file) 'find-revision file revision outbuf))))) (sav=
e-current-buffer (set-buffer temp-buffer) (write-region nil nil temp-file n=
il 0))) (and (buffer-name temp-buffer) (kill-buffer temp-buffer)))
  (let ((temp-file filename) (temp-buffer (get-buffer-create (generate-new-=
buffer-name " *temp file*")))) (unwind-protect (prog1 (save-current-buffer =
(set-buffer temp-buffer) (let ((outbuf (current-buffer))) (save-current-buf=
fer (set-buffer filebuf) (if backend (vc-call-backend backend ... file revi=
sion outbuf) (vc-call-backend ... ... file revision outbuf))))) (save-curre=
nt-buffer (set-buffer temp-buffer) (write-region nil nil temp-file nil 0)))=
 (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))
X (let ((coding-system-for-read 'no-conversion) (coding-system-for-write 'n=
o-conversion)) (let ((temp-file filename) (temp-buffer (get-buffer-create (=
generate-new-buffer-name " *temp file*")))) (unwind-protect (prog1 (save-cu=
rrent-buffer (set-buffer temp-buffer) (let ((outbuf ...)) (save-current-buf=
fer (set-buffer filebuf) (if backend ... ...)))) (save-current-buffer (set-=
buffer temp-buffer) (write-region nil nil temp-file nil 0))) (and (buffer-n=
ame temp-buffer) (kill-buffer temp-buffer)))) (setq failed nil))
  (unwind-protect (let ((coding-system-for-read 'no-conversion) (coding-sys=
tem-for-write 'no-conversion)) (let ((temp-file filename) (temp-buffer (get=
-buffer-create (generate-new-buffer-name " *temp file*")))) (unwind-protect=
 (prog1 (save-current-buffer (set-buffer temp-buffer) (let (...) (save-curr=
ent-buffer ... ...))) (save-current-buffer (set-buffer temp-buffer) (write-=
region nil nil temp-file nil 0))) (and (buffer-name temp-buffer) (kill-buff=
er temp-buffer)))) (setq failed nil)) (if (and failed (file-exists-p filena=
me)) (progn (delete-file filename))))
  (let ((failed t)) (unwind-protect (let ((coding-system-for-read 'no-conve=
rsion) (coding-system-for-write 'no-conversion)) (let ((temp-file filename)=
 (temp-buffer (get-buffer-create (generate-new-buffer-name " *temp file*"))=
)) (unwind-protect (prog1 (save-current-buffer (set-buffer temp-buffer) (le=
t ... ...)) (save-current-buffer (set-buffer temp-buffer) (write-region nil=
 nil temp-file nil 0))) (and (buffer-name temp-buffer) (kill-buffer temp-bu=
ffer)))) (setq failed nil)) (if (and failed (file-exists-p filename)) (prog=
n (delete-file filename)))))
  (save-current-buffer (set-buffer filebuf) (let ((failed t)) (unwind-prote=
ct (let ((coding-system-for-read 'no-conversion) (coding-system-for-write '=
no-conversion)) (let ((temp-file filename) (temp-buffer (get-buffer-create =
...))) (unwind-protect (prog1 (save-current-buffer ... ...) (save-current-b=
uffer ... ...)) (and (buffer-name temp-buffer) (kill-buffer temp-buffer))))=
 (setq failed nil)) (if (and failed (file-exists-p filename)) (progn (delet=
e-file filename))))) (vc-mode-line file))
  (if (file-exists-p automatic-backup) (rename-file automatic-backup filena=
me nil) (message "Checking out %s..." filename) (save-current-buffer (set-b=
uffer filebuf) (let ((failed t)) (unwind-protect (let ((coding-system-for-r=
ead 'no-conversion) (coding-system-for-write 'no-conversion)) (let ((temp-f=
ile filename) (temp-buffer ...)) (unwind-protect (prog1 ... ...) (and ... .=
..))) (setq failed nil)) (if (and failed (file-exists-p filename)) (progn (=
delete-file filename))))) (vc-mode-line file)) (message "Checking out %s...=
done" filename))
  (if (file-exists-p filename) nil (if (file-exists-p automatic-backup) (re=
name-file automatic-backup filename nil) (message "Checking out %s..." file=
name) (save-current-buffer (set-buffer filebuf) (let ((failed t)) (unwind-p=
rotect (let ((coding-system-for-read ...) (coding-system-for-write ...)) (l=
et (... ...) (unwind-protect ... ...)) (setq failed nil)) (if (and failed (=
file-exists-p filename)) (progn (delete-file filename))))) (vc-mode-line fi=
le)) (message "Checking out %s...done" filename)))
  (let ((automatic-backup (vc-version-backup-file-name file revision)) (fil=
ebuf (or (get-file-buffer file) (current-buffer))) (filename (vc-version-ba=
ckup-file-name file revision 'manual))) (if (file-exists-p filename) nil (i=
f (file-exists-p automatic-backup) (rename-file automatic-backup filename n=
il) (message "Checking out %s..." filename) (save-current-buffer (set-buffe=
r filebuf) (let ((failed t)) (unwind-protect (let (... ...) (let ... ...) (=
setq failed nil)) (if (and failed ...) (progn ...)))) (vc-mode-line file)) =
(message "Checking out %s...done" filename))) (let ((result-buf (find-file-=
noselect filename))) (save-current-buffer (set-buffer result-buf) (set (mak=
e-local-variable 'vc-parent-buffer) filebuf)) result-buf))
  vc-find-revision("c:/blah/blah/blah/=EA/trunk/=EA.tex" nil)

--=-=-=
Content-Type: text/plain; charset=gb2312
Content-Transfer-Encoding: quoted-printable

  =A1=AD =A1=AD =A1=AD =A1=AD
--8<----8<----8<----8<----8<--  end  -->8---->8---->8---->8---->8----

On line X coding-system-for-write is set to 'no-conversion.
line Y is shown here in function vc-do-command, where I also marked a
line as Z:

--8<----8<----8<----8<----8<-- begin -->8---->8---->8---->8---->8----
	    ;; Run synchronously
	    (when vc-command-messages
	      (message "Running in foreground: %s" full-command))
	    (let ((buffer-undo-list t))
Z	      (setq status (apply 'process-file command nil t nil squeezed)))
Y	    (when (and (not (eq t okstatus))
		       (or (not (integerp status))
			   (and okstatus (< okstatus status))))
              (unless (eq ?\s (aref (buffer-name (current-buffer)) 0))
                (pop-to-buffer (current-buffer))
                (goto-char (point-min))
                (shrink-window-if-larger-than-buffer))
--8<----8<----8<----8<----8<--  end  -->8---->8---->8---->8---->8----

Line Z is where the svn command are called, and there a function
process-file is called, this function calls in turn function
call-process. Function call-process encodes the arguments when
necessary, but the setting of coding-system-for-write to 'no-conversion
disturbs that, and OUCH, the command line passed to svn is not properly
encoded, so with some reason svn unhappilly barks.

--=-=-=
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable


OK, I know that some Askese people will probably say something like
=AB=A0don't use non-ASCII characters in file-names=A0=BB which is IMHO quit=
e a
ASCII-centric way of thinking, so just in case, my answer is =AB=A0=CE w=EE=
ll
=F9se n=F4n-=C0SC=CE=CE =E7h=E6r=E2ct=E8rs n=E9v
--=-=-=
Content-Type: text/plain; charset=iso-8859-15
Content-Transfer-Encoding: quoted-printable

=BDrthel
--=-=-=
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: quoted-printable

=E8ss, because =CE =E0m mys=E8lf a n=F4n-ASCII
p=E8rs=F4n=A0!=A0=BB ;-)

  Vincent.


In GNU Emacs 27.0.50 (build 1, x86_64-w64-mingw32)
 of 2018-08-10 built on AIGLEROYAL
Windowing system distributor 'Microsoft Corp.', version 10.0.17134
Recent messages:
Continuing through this frame
Checking out c:/Users/Vincent/Documents/administration/divers/20181212_je_v=
eux_=EAtre_un_homme_euro/trunk/20181212_je_veux_=EAtre_un_homme_euro.tex.~1=
18~...
Running in foreground: svn --non-interactive cat  20181212_je_veux_=EAtre_u=
n_homme_euro.tex
CSFW=3Dno-conversion
CS=3D(windows-1252 . windows-1252)
DIR=3Dc:/Users/Vincent/Documents/administration/divers/20181212_je_veux_=EA=
tre_un_homme_euro/trunk/
SQUEEZED=3D("--non-interactive" "cat" "20181212_je_veux_=EAtre_un_homme_eur=
o.tex")
Entering debugger...
Mark set
Making completion list...

Configured using:
 'configure --prefix=3DC:/Nos_Programmes/GNU/Emacs
 PKG_CONFIG_PATH=3D/mingw64/lib/pkgconfig:/mingw64/share/pkgconfig
 'CFLAGS=3D -Og -g3 -L
 C:/Programmes/installation/emacs-install/libXpm-3.5.8/src' 'CPPFLAGS=3D
 -DFOR_MSW=3D1 -I
 C:/Programmes/installation/emacs-install/libXpm-3.5.8/include -I
 C:/Programmes/installation/emacs-install/libXpm-3.5.8/src -L
 C:/Programmes/installation/emacs-install/libXpm-3.5.8/src'
 PKG_CONFIG=3D/usr/bin/pkg-config.exe'

Configured features:
XPM JPEG TIFF GIF PNG RSVG SOUND NOTIFY ACL GNUTLS LIBXML2 ZLIB
TOOLKIT_SCROLL_BARS THREADS LCMS2

Important settings:
  value of $LC_MESSAGES: C
  value of $LANG: FRA
  locale-coding-system: cp1252

Major mode: Emacs-Lisp

Minor modes in effect:
  diff-auto-refine-mode: t
  shell-dirtrack-mode: t
  TeX-PDF-mode: t
  recentf-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Load-path shadows:
c:/Programmes/installation/cedet-install/cedet-git/lisp/speedbar/loaddefs h=
ides c:/Nos_Programmes/GNU/Emacs/share/emacs/27.0.50/lisp/loaddefs
c:/Programmes/installation/cedet-install/cedet-git/lisp/speedbar/loaddefs h=
ides c:/Programmes/installation/cedet-install/cedet-git/lisp/cedet/loaddefs

Features:
(shadow emacsbug vc-annotate vc-filewise edebug completion find-cmd grep
find-dired pp face-remap ediff-ptch eieio-opt vc-git diff-mode help-fns
radix-tree cl-print debug backtrace ediff-vers ediff-merg ediff-wind
ediff-diff ediff-mult ediff-help ediff-init ediff-util ediff vc-rcs
vc-dir bbdb-com vc reftex-cite reftex-parse texmathp org-rmail org-mhe
org-irc org-info org-gnus nnir gnus-sum gnus-group gnus-undo gnus-start
gnus-cloud nnimap nnmail mail-source utf7 netrc nnoo gnus-spec gnus-int
gnus-range gnus-win gnus nnheader org-docview doc-view jka-compr
image-mode org-bibtex bibtex org-bbdb org-w3m org-element org org-macro
org-footnote org-pcomplete org-list org-faces org-entities org-version
ob-emacs-lisp ob ob-tangle org-src ob-ref ob-lob ob-table ob-keys ob-exp
ob-comint ob-core ob-eval org-compat org-macs org-loaddefs find-func
cal-tex cal-menu calendar cal-loaddefs misearch multi-isearch
vc-dispatcher vc-svn preview prv-emacs reftex-dcr reftex reftex-loaddefs
reftex-vars tex-bar tex-buf toolbar-x noutline outline font-latex latex
latex-flymake flymake-proc flymake warnings tex-ispell tex-style
tex-mode shell pcomplete latexenc log-edit add-log pcvs pcvs-parse
pcvs-info pcvs-defs pcvs-util ewoc calc-undo calccomp calc-vec calc-aent
calc-alg calc-menu parse-time vc-cvs hl-line balance calc-forms
network-stream nsm mailalias smtpmail qp sort bbdb-message sendmail
mail-extr message rmc puny format-spec rfc822 mml mml-sec epa gnus-util
rmail rmail-loaddefs mm-decode mm-bodies mm-encode mail-parse rfc2231
rfc2047 rfc2045 mm-util ietf-drums mail-prsvr mailabbrev mail-utils
gmm-utils mailheader elec-pair edmacro kmacro jdee jdee-wiz jdee-test
jdee-archive memoize jdee-stacktrace jdee-refactor dired-aux dired-x
dired dired-loaddefs jdee-project-file jdee-maven dash jdee-keys
jdee-jdb jdee-java-grammar jdee-which-method jdee-font-lock jdee-issues
jdee-help jdee-gen tempo jdee-find jdee-deps jdee-cygwin jdee-custom
jdee-compile jdee-class jdee-bytecode jdee-bug easy-mmode jdee-dbs
jdee-run jdee-jdk-manager jdee-dbo jdee-widgets jdee-db jdee-open-source
semantic/senator semantic/db-find semantic/db-ref semantic/decorate
pulse jdee-import jdee-complete semantic/idle working fame jdee-parse
jdee-backend jdee-bsh jdee-util arc-mode archive-mode jdee-parse-expr
beanshell thingatpt semantic/sb speedbar sb-image dframe jdee-imenu
semantic/imenu imenu semantic/sort semantic/db-file semantic/adebug
eieio-datadebug data-debug cedet-files semantic/db eieio-base
semantic/java semantic/format ezimage semantic/tag-ls semantic/find
semantic/doc semantic/ctxt semantic/util-modes semantic/util semantic
semantic/tag semantic/lex semantic/fw mode-local jdee-avl-tree avl-tree
generator etags xref project efc eieio-compat jdee-annotations
jdee-abbrev jdee-classpath jdee-files jdee-activator jdee-log executable
cus-edit cus-start cus-load compile comint ansi-color ring cedet cc-mode
cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars
cc-defs browse-url flatland-black-theme calc-misc calc-arith calc-ext
calc calc-loaddefs calc-macs skeleton rx tex-mik tex crm advice
preview-latex auto-loads tex-site bbdb bbdb-site timezone bbdb-loaddefs
template w32utils cl recentf tree-widget wid-edit load-path-to-cedet-svn
time-date mule-util finder-inf package let-alist derived pcase cl-extra
help-mode easymenu url-handlers url-parse auth-source cl-seq eieio
eieio-core cl-macs eieio-loaddefs password-cache json map url-vars seq
byte-opt gv bytecomp byte-compile cconv epg epg-config subr-x
cl-loaddefs cl-lib tooltip eldoc electric uniquify ediff-hook vc-hooks
lisp-float-type mwheel dos-w32 ls-lisp disp-table term/w32-win w32-win
w32-vars term/common-win tool-bar dnd fontset image regexp-opt fringe
tabulated-list replace newcomment text-mode elisp-mode lisp-mode
prog-mode register page menu-bar rfn-eshadow isearch timer select
scroll-bar mouse jit-lock font-lock syntax facemenu font-core
term/tty-colors frame cl-generic cham georgian utf-8-lang misc-lang
vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932
hebrew greek romanian slovak czech european ethiopic indian cyrillic
chinese composite charscript charprop case-table epa-hook jka-cmpr-hook
help simple abbrev obarray minibuffer cl-preloaded nadvice loaddefs
button faces cus-face macroexp files text-properties overlay sha1 md5
base64 format env code-pages mule custom widget hashtable-print-readable
backquote threads w32notify w32 lcms2 multi-tty make-network-process
emacs)

Memory information:
((conses 16 705712 103613)
 (symbols 56 59375 1)
 (miscs 48 1904 2148)
 (strings 32 161627 7850)
 (string-bytes 1 5385398)
 (vectors 16 71779)
 (vector-slots 8 2019402 40514)
 (floats 8 326 902)
 (intervals 56 18236 3220)
 (buffers 992 66))

--=-=-=--




Acknowledgement sent to Vincent Belaïche <vincent.belaiche@HIDDEN>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs@HIDDEN. Full text available.
Report forwarded to bug-gnu-emacs@HIDDEN:
bug#34350; Package emacs. Full text available.
Please note: This is a static page, with minimal formatting, updated once a day.
Click here to see this page with the latest information and nicer formatting.
Last modified: Mon, 25 Nov 2019 12:00:02 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.