From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: Eli Zaretskii Newsgroups: gmane.emacs.bugs Subject: bug#29189: 25.3; Dired does not work with binary filenames Date: Sat, 09 Dec 2017 11:03:57 +0200 Message-ID: <83efo4uvb6.fsf@gnu.org> References: <3CE09384-E9D6-4DB9-853A-11088CF8DF80@gnu.org> <83a7ztp6p7.fsf@gnu.org> <83k1ywoq4z.fsf@gnu.org> <83h8u0on7y.fsf@gnu.org> <83po8ii56w.fsf@gnu.org> <83lgj3fy29.fsf@gnu.org> <831skserz8.fsf@gnu.org> <83o9ns9hz0.fsf@gnu.org> <83k1y63kms.fsf@gnu.org> Reply-To: Eli Zaretskii NNTP-Posting-Host: blaine.gmane.org X-Trace: blaine.gmane.org 1512810310 9072 195.159.176.226 (9 Dec 2017 09:05:10 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Sat, 9 Dec 2017 09:05:10 +0000 (UTC) Cc: vianchielfaura@gmail.com, 29189@debbugs.gnu.org To: handa@gnu.org Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sat Dec 09 10:05:06 2017 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eNb4E-0002Dg-01 for geb-bug-gnu-emacs@m.gmane.org; Sat, 09 Dec 2017 10:05:06 +0100 Original-Received: from localhost ([::1]:40561 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eNb4L-0005TX-E7 for geb-bug-gnu-emacs@m.gmane.org; Sat, 09 Dec 2017 04:05:13 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:52562) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eNb4E-0005Sz-Q0 for bug-gnu-emacs@gnu.org; Sat, 09 Dec 2017 04:05:07 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eNb4B-0004cF-Ko for bug-gnu-emacs@gnu.org; Sat, 09 Dec 2017 04:05:06 -0500 Original-Received: from debbugs.gnu.org ([208.118.235.43]:44427) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1eNb4B-0004c4-Ht for bug-gnu-emacs@gnu.org; Sat, 09 Dec 2017 04:05:03 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1eNb4B-00007x-5y for bug-gnu-emacs@gnu.org; Sat, 09 Dec 2017 04:05:03 -0500 X-Loop: help-debbugs@gnu.org Resent-From: Eli Zaretskii Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sat, 09 Dec 2017 09:05:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 29189 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 29189-submit@debbugs.gnu.org id=B29189.1512810268444 (code B ref 29189); Sat, 09 Dec 2017 09:05:02 +0000 Original-Received: (at 29189) by debbugs.gnu.org; 9 Dec 2017 09:04:28 +0000 Original-Received: from localhost ([127.0.0.1]:53108 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eNb3b-000075-MZ for submit@debbugs.gnu.org; Sat, 09 Dec 2017 04:04:27 -0500 Original-Received: from eggs.gnu.org ([208.118.235.92]:33106) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eNb3Z-00006s-H3 for 29189@debbugs.gnu.org; Sat, 09 Dec 2017 04:04:25 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1eNb3T-00049G-BH for 29189@debbugs.gnu.org; Sat, 09 Dec 2017 04:04:20 -0500 Original-Received: from fencepost.gnu.org ([2001:4830:134:3::e]:58535) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1eNb3P-00047m-Lv; Sat, 09 Dec 2017 04:04:15 -0500 Original-Received: from [176.228.60.248] (port=4257 helo=home-c4e4a596f7) by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from ) id 1eNb3O-0000l3-Vw; Sat, 09 Dec 2017 04:04:15 -0500 In-reply-to: <83k1y63kms.fsf@gnu.org> (message from Eli Zaretskii on Fri, 01 Dec 2017 10:41:47 +0200) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: "bug-gnu-emacs" Xref: news.gmane.org gmane.emacs.bugs:140847 Archived-At: Ping! Ping! Ping! > Date: Fri, 01 Dec 2017 10:41:47 +0200 > From: Eli Zaretskii > Cc: vianchielfaura@gmail.com, 29189@debbugs.gnu.org > > Ping! Ping! I'd _really_ like to fix this for Emacs 26, but I'm > bothered by the potential adverse consequences of making changes in > such a central piece of code. > > Still hoping to get comments from Handa-san. > > > Date: Fri, 24 Nov 2017 10:52:19 +0200 > > From: Eli Zaretskii > > Cc: vianchielfaura@gmail.com, 29189@debbugs.gnu.org > > > > Ping! Kenichi, any comments on this issue or the proposed patch? > > > > > Date: Mon, 20 Nov 2017 20:15:55 +0200 > > > From: Eli Zaretskii > > > Cc: vianchielfaura@gmail.com, 29189@debbugs.gnu.org > > > > > > > From: Andreas Schwab > > > > Cc: Kenichi Handa , vianchielfaura@gmail.com, 29189@debbugs.gnu.org > > > > Date: Mon, 20 Nov 2017 10:48:09 +0100 > > > > > > > > > + /* Copy raw bytes in their 2-byte forms as single characters. */ > > > > > + if (CHAR_BYTE8_HEAD_P (*src) && nbytes > 0) > > > > > + { > > > > > + c = STRING_CHAR_ADVANCE (src); > > > > > > > > CHAR_BYTE8_HEAD_P and STRING_CHAR_ADVANCE are only valid for multibyte > > > > strings. I don't think it makes sense to use them for unibyte strings. > > > > > > Right you are, thanks. Updated patch below. > > > > > > diff --git a/src/coding.c b/src/coding.c > > > index d790ad0..ac55f87 100644 > > > --- a/src/coding.c > > > +++ b/src/coding.c > > > @@ -7423,10 +7423,23 @@ decode_coding (struct coding_system *coding) > > > > > > while (nbytes-- > 0) > > > { > > > - int c = *src++; > > > + int c; > > > > > > - if (c & 0x80) > > > - c = BYTE8_TO_CHAR (c); > > > + /* Copy raw bytes in their 2-byte forms from multibyte > > > + text as single characters. */ > > > + if (coding->src_multibyte > > > + && CHAR_BYTE8_HEAD_P (*src) && nbytes > 0) > > > + { > > > + c = STRING_CHAR_ADVANCE (src); > > > + nbytes--; > > > + } > > > + else > > > + { > > > + c = *src++; > > > + > > > + if (c & 0x80) > > > + c = BYTE8_TO_CHAR (c); > > > + } > > > coding->charbuf[coding->charbuf_used++] = c; > > > } > > > produce_chars (coding, Qnil, 1); > > > > > >