Subject: Re: bug#58281: 27.1; windows mangles encoding on command line

From: Daniel Bastos <[email-masked]>
Date: Mon, 7 Nov 2022 16:40:04 -0300

Pong!  I'm so sorry I've delayed this so much.  (It's been in my
inbox, though, so it would not be forgotten.)

On Sun, Nov 6, 2022 at 4:20 AM Eli Zaretskii <[email-masked]> wrote:
>
> Ping!  Did you have a chance to test the changes I installed?
>
> > Cc: [email-masked]
> > Date: Sat, 15 Oct 2022 14:02:16 +0300
> > From: Eli Zaretskii <[email-masked]>
> >
> > > Cc: [email-masked]
> > > Date: Wed, 12 Oct 2022 19:54:27 +0300
> > > From: Eli Zaretskii <[email-masked]>
> > >
> > > > From: Daniel Bastos <[email-masked]>
> > > > Date: Wed, 12 Oct 2022 08:49:32 -0300
> > > > Cc: [email-masked]
> > >
> > > In addition to what I just wrote, please try this: As soon as you
> > > start Emacs, type:
> > >
> > >   M-: (setq default-process-coding-system '(undecided-dos . cp850-dos)) RET
> > >
> > > Then enter Eshell and try the fossil command you tried before.  See if
> > > this solves the problem.

It did not.  I ran emacs -Q, evaluated the code above and tried this:

c:/my/path $ (print default-process-coding-system)
(undecided-dos . cp850-dos)

c:/my/path $ fossil changes
ADDED      hello.txt

c:/my/path $ fossil commit -m 'Naiveté.'
Pull from https://[email-masked]/mer
Round-trips: 1   Artifacts sent: 0  received: 0
Pull done, wire bytes sent: 439  received: 3830  ip: 5.161.138.46
New_Version: 092b3d5d04247d6b0784957dee568958838788585417e5be474ed8d67a15d9b8
Sync with https://[email-masked]/mer
Round-trips: 1   Artifacts sent: 2  received: 0
Sync done, wire bytes sent: 4206  received: 308  ip: 5.161.138.46

c:/my/path $ fossil timeline -n 1
=== 2022-11-07 ===
18:39:38 [092b3d5d04] *CURRENT* Naivet‚. (user: mer tags: trunk)
--- entry limit (1) reached ---

So the accented letter came out as a comma and a period.

> > > I think I found a bug in Eshell that the above workaround should
> > > side-step.
> >
> > I've now installed a change for Emacs 29 that I think should fix your
> > problems.  So if you can try the current master branch of the Emacs
> > Git repository, please do, and see if your problem with Fossil are
> > solved there.

I'm not sure which is "Emacs 29".  I took the master branch

  https://git.savannah.gnu.org/cgit/emacs.git/

right now --- November 7th, 15h EST --- and followed nt/INSTALL.W64 to
compile it using MSYS32 in a MINGW64 shell.  After building the
runemacs.exe, I ran it with the option -Q and I see the version is

  GNU Emacs 29.0.50 (build 1, x86_64-w64-mingw32) of 2022-11-07

I get the following behavior:

c:/my/path $ fossil commit -m 'Naiveté.'
Pull from https://[email-masked]/mer
Round-trips: 1   Artifacts sent: 0  received: 0
Pull done, wire bytes sent: 438  received: 3908  ip: 5.161.138.46
New_Version: e3d8a268759a5e968f132043404eecb4ea5068135fcebd0d35b6b668eb8404a2
Sync with https://[email-masked]/mer
Round-trips: 1   Artifacts sent: 2  received: 0
Sync done, wire bytes sent: 4297  received: 309  ip: 5.161.138.46
c:/my/path $ fossil timeline -n 1
=== 2022-11-07 ===
19:29:10 [e3d8a26875] *CURRENT* NaivetÃ©. (user: mer tags: trunk)
--- entry limit (1) reached ---

As a second try, I'm going to set the variable
default-process-coding-system as you suggested above and try again,
restarting the GNU EMACS first --- just in case. Restarted, ran ESHELL
and...

c:/my/path $ (print default-process-coding-system)
(undecided-dos . undecided-unix)

c:/my/path $ (setq default-process-coding-system '(undecided-dos . cp850-dos))
(undecided-dos . cp850-dos)

c:/my/path $ (print default-process-coding-system)
(undecided-dos . cp850-dos)
c:/my/path $ # it's set

c:/my/path $ fossil commit -m 'Naiveté.'
Pull from https://[email-masked]/mer
Round-trips: 1   Artifacts sent: 0  received: 0
Pull done, wire bytes sent: 440  received: 3984  ip: 5.161.138.46
New_Version: c51f1ff698f2964f2f06b7e4ca1ae672fb12f6e3e0599f616ff24658930185d2
Sync with https://[email-masked]/mer
Round-trips: 1   Artifacts sent: 2  received: 0
Sync done, wire bytes sent: 4341  received: 309  ip: 5.161.138.46

c:/my/path $ fossil timeline -n 1
=== 2022-11-07 ===
19:35:10 [c51f1ff698] *CURRENT* NaivetÃ©. (user: mer tags: trunk)
--- entry limit (1) reached ---

It seems to me we get the same result.  Thank you.  I can test and
retest this.  Just let me know.  It will be easier for me now because
I already have all that it takes to compile the GNU EMACS here.  Thank
you.