From debbugs-submit-bounces@debbugs.gnu.org Thu Apr 26 07:11:24 2012 Received: (at submit) by debbugs.gnu.org; 26 Apr 2012 11:11:24 +0000 Received: from localhost ([127.0.0.1]:53655 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SNMbb-0003M3-Qk for submit@debbugs.gnu.org; Thu, 26 Apr 2012 07:11:24 -0400 Received: from eggs.gnu.org ([208.118.235.92]:56933) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SNMbX-0003Lp-Nu for submit@debbugs.gnu.org; Thu, 26 Apr 2012 07:11:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SNMaQ-0008Id-1C for submit@debbugs.gnu.org; Thu, 26 Apr 2012 07:10:16 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-6.9 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_HI, T_RP_MATCHES_RCVD autolearn=unavailable version=3.3.2 Received: from lists.gnu.org ([208.118.235.17]:51605) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SNMaP-0008IY-U3 for submit@debbugs.gnu.org; Thu, 26 Apr 2012 07:10:09 -0400 Received: from eggs.gnu.org ([208.118.235.92]:58920) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SNMaJ-0000VY-A4 for bug-gnu-emacs@gnu.org; Thu, 26 Apr 2012 07:10:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SNMaC-00087W-4w for bug-gnu-emacs@gnu.org; Thu, 26 Apr 2012 07:10:02 -0400 Received: from mtaout22.012.net.il ([80.179.55.172]:62967) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SNMaB-00086v-Nv for bug-gnu-emacs@gnu.org; Thu, 26 Apr 2012 07:09:56 -0400 Received: from conversion-daemon.a-mtaout22.012.net.il by a-mtaout22.012.net.il (HyperSendmail v2007.08) id <0M3300C002L5IV00@a-mtaout22.012.net.il> for bug-gnu-emacs@gnu.org; Thu, 26 Apr 2012 14:09:38 +0300 (IDT) Received: from HOME-C4E4A596F7 ([84.229.249.186]) by a-mtaout22.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0M3300CZI301IH20@a-mtaout22.012.net.il> for bug-gnu-emacs@gnu.org; Thu, 26 Apr 2012 14:09:38 +0300 (IDT) Date: Thu, 26 Apr 2012 14:09:39 +0300 From: Eli Zaretskii Subject: 24.0.95; TAB-completion in shell-command produces d:\/foo on MS-Windows X-012-Sender: halo1@inter.net.il To: bug-gnu-emacs@gnu.org Message-id: <83obqeiwb0.fsf@gnu.org> X-detected-operating-system: by eggs.gnu.org: Solaris 10 (beta) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 208.118.235.17 X-Spam-Score: -6.9 (------) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -6.9 (------) emacs -Q M-! cd d:\gnu TAB (A directory 'd:/gnu' exists on my disk.) After pressing the TAB key, the minibuffer displays this: cd d:\/gnu/ whereas the expected result is cd d:/gnu/ This is a regression from Emacs 23.4, where I do get "d:/gnu/". In GNU Emacs 24.0.95.1 (i386-mingw-nt5.1.2600) of 2012-04-26 on HOME-C4E4A596F7 Windowing system distributor `Microsoft Corp.', version 5.1.2600 Configured using: `configure --with-gcc (3.4)' Important settings: value of $LC_ALL: nil value of $LC_COLLATE: nil value of $LC_CTYPE: nil value of $LC_MESSAGES: nil value of $LC_MONETARY: nil value of $LC_NUMERIC: nil value of $LC_TIME: nil value of $LANG: ENU value of $XMODIFIERS: nil locale-coding-system: cp1255 default enable-multibyte-characters: t Major mode: Mail Minor modes in effect: shell-dirtrack-mode: t diff-auto-refine-mode: t flyspell-mode: t desktop-save-mode: t show-paren-mode: t display-time-mode: t tooltip-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 temp-buffer-resize-mode: t line-number-mode: t abbrev-mode: t Recent input: o r SPC E m a c s SPC 2 4 . 2 . SPC SPC T h e SPC d i f f s SPC a r e SPC b v e l o w , SPC i f SPC y o u SPC w a n t SPC t o SPC d o n ' t C-y C-x C-x SPC w a i t . C-u M-! c d d : \ SPC d : \ g n \ g n u \ e m a c s b z r \ e m a c s \ t r u n k SPC & & S-SPC b z r SPC d i f f SPC - c - 1 - SPC o n SPC t h e SPC t r u n k ( ) M-q C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-c C-s d C-x C-s M-x r e p o r t C-g M-! c d SPC d : \ g n u C-SPC M-w C-g M-x r e p o r t - e m Recent messages: Mark set [2 times] Sending... Added to d:/usr/eli/rmail/SENT.MAIL Sending email Sending email done Sending...done No following nondeleted message Saving file d:/usr/eli/rmail/INBOX... Wrote d:/usr/eli/rmail/INBOX [2 times] Quit Quit Load-path shadows: None found. Features: (shadow emacsbug pcmpl-unix shell add-log rmailout network-stream starttls tls smtpmail auth-source eieio assoc gnus-util password-cache dabbrev multi-isearch quail help-mode view mailalias sendmail dired-x dired tcl nxml-uchnm rng-xsd xsd-regexp rng-cmpct rng-nxml rng-valid rng-loc rng-uri rng-parse nxml-parse rng-match rng-dt rng-util rng-pttrn nxml-ns nxml-mode nxml-outln nxml-rap nxml-util nxml-glyph nxml-enc xmltok sgml-mode face-remap org-wl org-w3m org-vm org-rmail org-mhe org-mew org-irc org-jsinfo org-infojs org-html org-exp ob-exp org-exp-blocks find-func org-agenda org-info org-gnus org-docview org-bibtex bibtex org-bbdb org byte-opt warnings bytecomp byte-compile cconv macroexp advice help-fns advice-preload ob-emacs-lisp ob-tangle ob-ref ob-lob ob-table org-footnote org-src ob-comint ob-keys ob ob-eval org-pcomplete pcomplete org-list org-faces org-compat org-entities org-macs cal-menu calendar cal-loaddefs noutline outline arc-mode archive-mode diff-mode conf-mode newcomment sh-script executable generic jka-compr make-mode texinfo ld-script flyspell parse-time vc-cvs autorevert gud easy-mmode comint ansi-color ring info cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs regexp-opt vc-bzr rmailsum qp rmailmm message format-spec rfc822 mml mml-sec mm-decode mm-bodies mm-encode mailabbrev gmm-utils mailheader mail-parse rfc2231 rmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils desktop server filecache mairix cus-edit easymenu cus-start cus-load wid-edit saveplace midnight ispell generic-x paren battery time time-date tooltip ediff-hook vc-hooks lisp-float-type mwheel dos-w32 disp-table ls-lisp w32-win w32-vars tool-bar dnd fontset image fringe lisp-mode register page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer loaddefs button faces cus-face files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote make-network-process multi-tty emacs) From debbugs-submit-bounces@debbugs.gnu.org Fri May 04 03:14:09 2012 Received: (at 11348) by debbugs.gnu.org; 4 May 2012 07:14:09 +0000 Received: from localhost ([127.0.0.1]:35589 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SQCiP-0006VS-3i for submit@debbugs.gnu.org; Fri, 04 May 2012 03:14:09 -0400 Received: from mtaout22.012.net.il ([80.179.55.172]:60393) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SQCiL-0006Uo-7L for 11348@debbugs.gnu.org; Fri, 04 May 2012 03:14:06 -0400 Received: from conversion-daemon.a-mtaout22.012.net.il by a-mtaout22.012.net.il (HyperSendmail v2007.08) id <0M3H00000L2PQ500@a-mtaout22.012.net.il> for 11348@debbugs.gnu.org; Fri, 04 May 2012 10:12:15 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.210.75]) by a-mtaout22.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0M3H00M00LCFWPK0@a-mtaout22.012.net.il> for 11348@debbugs.gnu.org; Fri, 04 May 2012 10:12:15 +0300 (IDT) Date: Fri, 04 May 2012 10:10:13 +0300 From: Eli Zaretskii Subject: Re: bug#11348: 24.0.95; TAB-completion in shell-command produces d:\/foo on MS-Windows In-reply-to: <83obqeiwb0.fsf@gnu.org> To: 11348@debbugs.gnu.org Message-id: <83bom4776y.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-transfer-encoding: QUOTED-PRINTABLE X-012-Sender: halo1@inter.net.il References: <83obqeiwb0.fsf@gnu.org> X-Spam-Score: -1.2 (-) X-Debbugs-Envelope-To: 11348 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.2 (-) Ping! I think this is a serious bug that should be fixed before Emacs 24.1 is released. If Someone=E2=84=A2 tells me where in the completion code to look for= the possible cause(s), I could try debugging this myself. > emacs -Q > M-! cd d:\gnu TAB >=20 > (A directory 'd:/gnu' exists on my disk.) >=20 > After pressing the TAB key, the minibuffer displays this: >=20 > cd d:\/gnu/ >=20 > whereas the expected result is >=20 > cd d:/gnu/ >=20 > This is a regression from Emacs 23.4, where I do get "d:/gnu/". >=20 >=20 > In GNU Emacs 24.0.95.1 (i386-mingw-nt5.1.2600) > of 2012-04-26 on HOME-C4E4A596F7 > Windowing system distributor `Microsoft Corp.', version 5.1.2600 > Configured using: > `configure --with-gcc (3.4)' From debbugs-submit-bounces@debbugs.gnu.org Fri May 04 10:31:40 2012 Received: (at 11348) by debbugs.gnu.org; 4 May 2012 14:31:40 +0000 Received: from localhost ([127.0.0.1]:36158 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SQJXn-0002EV-Kr for submit@debbugs.gnu.org; Fri, 04 May 2012 10:31:40 -0400 Received: from fencepost.gnu.org ([208.118.235.10]:51386 ident=Debian-exim) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SQJXk-0002EJ-VX for 11348@debbugs.gnu.org; Fri, 04 May 2012 10:31:38 -0400 Received: from bb219-74-179-11.singnet.com.sg ([219.74.179.11]:36196 helo=ulysses) by fencepost.gnu.org with esmtpsa (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1SQJW3-0006Vq-Ek; Fri, 04 May 2012 10:29:52 -0400 From: Chong Yidong To: Eli Zaretskii Subject: Re: bug#11348: 24.0.95; TAB-completion in shell-command produces d:\/foo on MS-Windows References: <83obqeiwb0.fsf@gnu.org> <83bom4776y.fsf@gnu.org> Date: Fri, 04 May 2012 22:29:41 +0800 In-Reply-To: <83bom4776y.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 04 May 2012 10:10:13 +0300") Message-ID: <87sjfgxbmy.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.96 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Spam-Score: -6.9 (------) X-Debbugs-Envelope-To: 11348 Cc: 11348@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -6.9 (------) Eli Zaretskii writes: > If Someone=E2=84=A2 tells me where in the completion code to look for the > possible cause(s), I could try debugging this myself. The black magic occurs in `comint--complete-file-name-data' in comint.el. You could first try to evaluate (completion-file-name-table "d:\gnu" nil t) and see if that does something funny. Hopefully Stefan chimes in soon; personally, I find the completion code almost impossible to debug. From debbugs-submit-bounces@debbugs.gnu.org Fri May 04 10:57:30 2012 Received: (at 11348) by debbugs.gnu.org; 4 May 2012 14:57:30 +0000 Received: from localhost ([127.0.0.1]:36192 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SQJwn-0002rA-QC for submit@debbugs.gnu.org; Fri, 04 May 2012 10:57:29 -0400 Received: from mtaout23.012.net.il ([80.179.55.175]:44302) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SQJwl-0002qu-BK for 11348@debbugs.gnu.org; Fri, 04 May 2012 10:57:28 -0400 Received: from conversion-daemon.a-mtaout23.012.net.il by a-mtaout23.012.net.il (HyperSendmail v2007.08) id <0M3I003006ONB900@a-mtaout23.012.net.il> for 11348@debbugs.gnu.org; Fri, 04 May 2012 17:55:29 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.210.75]) by a-mtaout23.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0M3I003K46SH8H40@a-mtaout23.012.net.il>; Fri, 04 May 2012 17:55:29 +0300 (IDT) Date: Fri, 04 May 2012 17:54:50 +0300 From: Eli Zaretskii Subject: Re: bug#11348: 24.0.95; TAB-completion in shell-command produces d:\/foo on MS-Windows In-reply-to: <87sjfgxbmy.fsf@gnu.org> X-012-Sender: halo1@inter.net.il To: Chong Yidong Message-id: <83wr4s5745.fsf@gnu.org> References: <83obqeiwb0.fsf@gnu.org> <83bom4776y.fsf@gnu.org> <87sjfgxbmy.fsf@gnu.org> X-Spam-Score: -1.2 (-) X-Debbugs-Envelope-To: 11348 Cc: 11348@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.2 (-) > From: Chong Yidong > Cc: 11348@debbugs.gnu.org > Date: Fri, 04 May 2012 22:29:41 +0800 > > The black magic occurs in `comint--complete-file-name-data' in > comint.el. You could first try to evaluate > > (completion-file-name-table "d:\gnu" nil t) > > and see if that does something funny. Thanks, I will take a look. > personally, I find the completion code almost impossible to debug. Then I'm in good company ;-) Perhaps Stefan could at some point add some documentation about the internals, that would allow mere mortals such as myself debug the completion code. From debbugs-submit-bounces@debbugs.gnu.org Fri May 04 11:05:29 2012 Received: (at 11348) by debbugs.gnu.org; 4 May 2012 15:05:29 +0000 Received: from localhost ([127.0.0.1]:36204 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SQK4X-00033l-9c for submit@debbugs.gnu.org; Fri, 04 May 2012 11:05:29 -0400 Received: from mtaout22.012.net.il ([80.179.55.172]:40121) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SQK4V-00033W-0X for 11348@debbugs.gnu.org; Fri, 04 May 2012 11:05:28 -0400 Received: from conversion-daemon.a-mtaout22.012.net.il by a-mtaout22.012.net.il (HyperSendmail v2007.08) id <0M3I0040074KAZ00@a-mtaout22.012.net.il> for 11348@debbugs.gnu.org; Fri, 04 May 2012 18:02:49 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.210.75]) by a-mtaout22.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0M3I0045I74O5930@a-mtaout22.012.net.il>; Fri, 04 May 2012 18:02:49 +0300 (IDT) Date: Fri, 04 May 2012 18:02:09 +0300 From: Eli Zaretskii Subject: Re: bug#11348: 24.0.95; TAB-completion in shell-command produces d:\/foo on MS-Windows In-reply-to: <87sjfgxbmy.fsf@gnu.org> To: Chong Yidong Message-id: <83vckc56ry.fsf@gnu.org> MIME-version: 1.0 Content-type: text/plain; charset=utf-8 Content-transfer-encoding: QUOTED-PRINTABLE X-012-Sender: halo1@inter.net.il References: <83obqeiwb0.fsf@gnu.org> <83bom4776y.fsf@gnu.org> <87sjfgxbmy.fsf@gnu.org> X-Spam-Score: -1.2 (-) X-Debbugs-Envelope-To: 11348 Cc: 11348@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.2 (-) > From: Chong Yidong > Cc: 11348@debbugs.gnu.org > Date: Fri, 04 May 2012 22:29:41 +0800 >=20 > Eli Zaretskii writes: >=20 > > If Someone=E2=84=A2 tells me where in the completion code to look= for the > > possible cause(s), I could try debugging this myself. >=20 > The black magic occurs in `comint--complete-file-name-data' in > comint.el. That function doesn't get called when I use the recipe to reproduce the problem. At least instrumenting it with Edebug doesn't activate Edebug inside that function. > You could first try to evaluate >=20 > (completion-file-name-table "d:\gnu" nil t) >=20 > and see if that does something funny. It produces "gnu/", which looks correct to me. From debbugs-submit-bounces@debbugs.gnu.org Fri May 04 11:09:09 2012 Received: (at 11348) by debbugs.gnu.org; 4 May 2012 15:09:09 +0000 Received: from localhost ([127.0.0.1]:36208 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SQK85-00038r-3Z for submit@debbugs.gnu.org; Fri, 04 May 2012 11:09:09 -0400 Received: from acsinet15.oracle.com ([141.146.126.227]:28384) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SQK82-00038N-Q7 for 11348@debbugs.gnu.org; Fri, 04 May 2012 11:09:07 -0400 Received: from ucsinet21.oracle.com (ucsinet21.oracle.com [156.151.31.93]) by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with ESMTP id q44F7EWd031347 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Fri, 4 May 2012 15:07:15 GMT Received: from acsmt358.oracle.com (acsmt358.oracle.com [141.146.40.158]) by ucsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id q44F7DtJ029649 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Fri, 4 May 2012 15:07:13 GMT Received: from abhmt110.oracle.com (abhmt110.oracle.com [141.146.116.62]) by acsmt358.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id q44F7CKF014315; Fri, 4 May 2012 10:07:12 -0500 Received: from dradamslap1 (/10.159.172.28) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Fri, 04 May 2012 08:07:12 -0700 From: "Drew Adams" To: "'Eli Zaretskii'" , "'Chong Yidong'" References: <83obqeiwb0.fsf@gnu.org> <83bom4776y.fsf@gnu.org><87sjfgxbmy.fsf@gnu.org> <83wr4s5745.fsf@gnu.org> Subject: RE: bug#11348: 24.0.95; TAB-completion in shell-command produces d:\/foo on MS-Windows Date: Fri, 4 May 2012 08:07:08 -0700 Message-ID: <89F702C20D3A49E799364CAE4B47E119@us.oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook 11 In-Reply-To: <83wr4s5745.fsf@gnu.org> Thread-Index: Ac0qBhQoTnfVJGYdQwKHpoD5xZTI1QAAV86Q X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6157 X-Source-IP: ucsinet21.oracle.com [156.151.31.93] X-Spam-Score: -6.9 (------) X-Debbugs-Envelope-To: 11348 Cc: 11348@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -6.9 (------) > > personally, I find the completion code almost impossible to debug. > > Then I'm in good company ;-) > > Perhaps Stefan could at some point add some documentation about the > internals, that would allow mere mortals such as myself debug the > completion code. +1 - mere and mortal Drew From debbugs-submit-bounces@debbugs.gnu.org Fri May 04 11:38:47 2012 Received: (at 11348) by debbugs.gnu.org; 4 May 2012 15:38:47 +0000 Received: from localhost ([127.0.0.1]:36238 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SQKal-0003p6-K8 for submit@debbugs.gnu.org; Fri, 04 May 2012 11:38:47 -0400 Received: from fencepost.gnu.org ([208.118.235.10]:52460 ident=Debian-exim) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SQKai-0003oy-K0 for 11348@debbugs.gnu.org; Fri, 04 May 2012 11:38:45 -0400 Received: from bb219-74-179-11.singnet.com.sg ([219.74.179.11]:36272 helo=ulysses) by fencepost.gnu.org with esmtpsa (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1SQKZ0-0007BO-JB; Fri, 04 May 2012 11:36:59 -0400 From: Chong Yidong To: Eli Zaretskii Subject: Re: bug#11348: 24.0.95; TAB-completion in shell-command produces d:\/foo on MS-Windows References: <83obqeiwb0.fsf@gnu.org> <83bom4776y.fsf@gnu.org> <87sjfgxbmy.fsf@gnu.org> <83wr4s5745.fsf@gnu.org> Date: Fri, 04 May 2012 23:36:51 +0800 In-Reply-To: <83wr4s5745.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 04 May 2012 17:54:50 +0300") Message-ID: <87obq4x8j0.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.96 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -6.9 (------) X-Debbugs-Envelope-To: 11348 Cc: 11348@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -6.9 (------) Eli Zaretskii writes: >> The black magic occurs in `comint--complete-file-name-data' in >> comint.el. You could first try to evaluate >> >> (completion-file-name-table "d:\gnu" nil t) >> >> and see if that does something funny. > > Thanks, I will take a look. FWIW, here is my impression. Emacs 23.4 has the following code in `comint-dynamic-complete-as-filename': (let ((file (concat (file-name-as-directory directory) completion))) ;; Insert completion. Note that the completion string ;; may have a different case than what's in the prompt, ;; if read-file-name-completion-ignore-case is non-nil, (delete-region filename-beg filename-end) (if filedir (insert (comint-quote-filename filedir))) If I'm not mistaken, this is the part that turns d:\gnu into d:/gnu. Emacs 24 uses the completion-at-point mechanism. The equivalent code responsible for replacing the quoted prefix is (IIUC) the `prefixes' stuff in comint--complete-file-name-data, around comint.el:3178. That's probably where the bug lies. From debbugs-submit-bounces@debbugs.gnu.org Fri May 04 11:48:28 2012 Received: (at 11348) by debbugs.gnu.org; 4 May 2012 15:48:28 +0000 Received: from localhost ([127.0.0.1]:36245 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SQKk7-00042y-HQ for submit@debbugs.gnu.org; Fri, 04 May 2012 11:48:28 -0400 Received: from fencepost.gnu.org ([208.118.235.10]:52638 ident=Debian-exim) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SQKk6-00042s-0R for 11348@debbugs.gnu.org; Fri, 04 May 2012 11:48:26 -0400 Received: from bb219-74-179-11.singnet.com.sg ([219.74.179.11]:36288 helo=ulysses) by fencepost.gnu.org with esmtpsa (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1SQKiO-0001tk-9y; Fri, 04 May 2012 11:46:40 -0400 From: Chong Yidong To: Eli Zaretskii Subject: Re: bug#11348: 24.0.95; TAB-completion in shell-command produces d:\/foo on MS-Windows References: <83obqeiwb0.fsf@gnu.org> <83bom4776y.fsf@gnu.org> <87sjfgxbmy.fsf@gnu.org> <83vckc56ry.fsf@gnu.org> Date: Fri, 04 May 2012 23:46:31 +0800 In-Reply-To: <83vckc56ry.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 04 May 2012 18:02:09 +0300") Message-ID: <87bom40x0o.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.96 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -6.9 (------) X-Debbugs-Envelope-To: 11348 Cc: 11348@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -6.9 (------) Eli Zaretskii writes: >> The black magic occurs in `comint--complete-file-name-data' in >> comint.el. > > That function doesn't get called when I use the recipe to reproduce > the problem. At least instrumenting it with Edebug doesn't activate > Edebug inside that function. Whoops. Then maybe the problem is in pcomplete-completions-at-point, which is even more alien territory for me. As an experiment, could you try removing pcomplete-completions-at-point from shell-dynamic-complete-functions and see if there is anything different? (pcomplete-completions-at-point was added to shell-d-c-f in Emacs 24.) From debbugs-submit-bounces@debbugs.gnu.org Fri May 04 13:04:50 2012 Received: (at 11348) by debbugs.gnu.org; 4 May 2012 17:04:50 +0000 Received: from localhost ([127.0.0.1]:36271 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SQLw1-0005nY-Ah for submit@debbugs.gnu.org; Fri, 04 May 2012 13:04:50 -0400 Received: from mtaout22.012.net.il ([80.179.55.172]:42030) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SQLvx-0005nJ-SZ for 11348@debbugs.gnu.org; Fri, 04 May 2012 13:04:47 -0400 Received: from conversion-daemon.a-mtaout22.012.net.il by a-mtaout22.012.net.il (HyperSendmail v2007.08) id <0M3I00500C1I0I00@a-mtaout22.012.net.il> for 11348@debbugs.gnu.org; Fri, 04 May 2012 20:02:54 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.210.75]) by a-mtaout22.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0M3I004QVCOTYI30@a-mtaout22.012.net.il>; Fri, 04 May 2012 20:02:54 +0300 (IDT) Date: Fri, 04 May 2012 20:01:55 +0300 From: Eli Zaretskii Subject: Re: bug#11348: 24.0.95; TAB-completion in shell-command produces d:\/foo on MS-Windows In-reply-to: <87bom40x0o.fsf@gnu.org> X-012-Sender: halo1@inter.net.il To: Chong Yidong Message-id: <83pqaj6fss.fsf@gnu.org> References: <83obqeiwb0.fsf@gnu.org> <83bom4776y.fsf@gnu.org> <87sjfgxbmy.fsf@gnu.org> <83vckc56ry.fsf@gnu.org> <87bom40x0o.fsf@gnu.org> X-Spam-Score: -1.2 (-) X-Debbugs-Envelope-To: 11348 Cc: 11348@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.2 (-) > From: Chong Yidong > Cc: 11348@debbugs.gnu.org > Date: Fri, 04 May 2012 23:46:31 +0800 > > Eli Zaretskii writes: > > >> The black magic occurs in `comint--complete-file-name-data' in > >> comint.el. > > > > That function doesn't get called when I use the recipe to reproduce > > the problem. At least instrumenting it with Edebug doesn't activate > > Edebug inside that function. > > Whoops. Then maybe the problem is in pcomplete-completions-at-point, I see in pcomplete-completions-at-point that typing "M-! cd d:\gnu TAB" causes pcomplete-stub on entry to pcomplete-completions-at-point to get the value "d:gnu", whereas if I type "M-! cd d:/gnu TAB", the value of pcomplete-stub is "d:/gnu". Sounds like whoever computes pcomplete-stub is the culprit: they treat the backslash as an escape character (or so it seems). > As an experiment, could you try removing > pcomplete-completions-at-point from shell-dynamic-complete-functions > and see if there is anything different? This works better, it produces "cd d:\gnu/ ", which is ugly, but correct. From debbugs-submit-bounces@debbugs.gnu.org Fri May 04 14:01:37 2012 Received: (at 11348) by debbugs.gnu.org; 4 May 2012 18:01:37 +0000 Received: from localhost ([127.0.0.1]:36306 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SQMoz-00076J-HN for submit@debbugs.gnu.org; Fri, 04 May 2012 14:01:37 -0400 Received: from ironport-out.teksavvy.com ([206.248.143.162]:58062) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SQMox-000766-EZ for 11348@debbugs.gnu.org; Fri, 04 May 2012 14:01:35 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AjEKACxOgk9MCqD5/2dsb2JhbABDtheCDAOBDIEIggkBAQQBViMFCws0EhQYDSSIHAW2MothhHkEpEWBXYMD X-IronPort-AV: E=Sophos;i="4.75,391,1330923600"; d="scan'208";a="178370241" Received: from 76-10-160-249.dsl.teksavvy.com (HELO ceviche.home) ([76.10.160.249]) by ironport2-out.teksavvy.com with ESMTP/TLS/ADH-AES256-SHA; 04 May 2012 13:59:44 -0400 Received: by ceviche.home (Postfix, from userid 20848) id EFED666109; Fri, 4 May 2012 13:59:43 -0400 (EDT) From: Stefan Monnier To: Eli Zaretskii Subject: Re: bug#11348: 24.0.95; TAB-completion in shell-command produces d:\/foo on MS-Windows Message-ID: References: <83obqeiwb0.fsf@gnu.org> Date: Fri, 04 May 2012 13:59:43 -0400 In-Reply-To: <83obqeiwb0.fsf@gnu.org> (Eli Zaretskii's message of "Thu, 26 Apr 2012 14:09:39 +0300") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.1.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -1.9 (-) X-Debbugs-Envelope-To: 11348 Cc: 11348@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.9 (-) > M-! cd d:\gnu TAB > (A directory 'd:/gnu' exists on my disk.) > After pressing the TAB key, the minibuffer displays this: > cd d:\/gnu/ Duh, I somehow assumed it was on the trunk (seeing how it was reported soon after I modified code on the trunk in this area). IIUC from the rest of the thread, the problem is in the pcomplete code (it affects `cd' but not `toto'). That's bad because the pcomplete code is even trickier than the rest. This said, based on your description, the problem may simply come from shell.el's setting of pcomplete-arg-quote-list which tells pcomplete that \ is an escape char. I.e. does the patch below fix the problem? > This works better, it produces "cd d:\gnu/ ", which is ugly, but > correct. Which part is ugly? The \, the /, or the use of a mix of them? > Perhaps Stefan could at some point add some documentation about the > internals, that would allow mere mortals such as myself debug the > completion code. I'd love to, but I'm much too deeply in it to know what needs more documentation, so fire away your questions and I'll reply with comments&docstrings. Stefan === modified file 'lisp/shell.el' --- lisp/shell.el 2012-02-28 08:17:21 +0000 +++ lisp/shell.el 2012-05-04 17:57:59 +0000 @@ -429,7 +429,7 @@ (set (make-local-variable 'pcomplete-parse-arguments-function) #'shell-parse-pcomplete-arguments) (set (make-local-variable 'pcomplete-arg-quote-list) - (append "\\ \t\n\r\"'`$|&;(){}[]<>#" nil)) + shell-delimiter-argument-list) (set (make-local-variable 'pcomplete-termination-string) (cond ((not comint-completion-addsuffix) "") ((stringp comint-completion-addsuffix) From debbugs-submit-bounces@debbugs.gnu.org Fri May 04 14:19:07 2012 Received: (at 11348) by debbugs.gnu.org; 4 May 2012 18:19:07 +0000 Received: from localhost ([127.0.0.1]:36336 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SQN5v-0008J3-Cl for submit@debbugs.gnu.org; Fri, 04 May 2012 14:19:07 -0400 Received: from mtaout22.012.net.il ([80.179.55.172]:61648) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SQN5t-0008IY-9b for 11348@debbugs.gnu.org; Fri, 04 May 2012 14:19:06 -0400 Received: from conversion-daemon.a-mtaout22.012.net.il by a-mtaout22.012.net.il (HyperSendmail v2007.08) id <0M3I00500G0GL900@a-mtaout22.012.net.il> for 11348@debbugs.gnu.org; Fri, 04 May 2012 21:16:14 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.210.75]) by a-mtaout22.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0M3I0044GG31RTJ0@a-mtaout22.012.net.il>; Fri, 04 May 2012 21:16:14 +0300 (IDT) Date: Fri, 04 May 2012 21:15:05 +0300 From: Eli Zaretskii Subject: Re: bug#11348: 24.0.95; TAB-completion in shell-command produces d:\/foo on MS-Windows In-reply-to: X-012-Sender: halo1@inter.net.il To: Stefan Monnier Message-id: <83mx5n6ceu.fsf@gnu.org> References: <83obqeiwb0.fsf@gnu.org> X-Spam-Score: -1.2 (-) X-Debbugs-Envelope-To: 11348 Cc: 11348@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.2 (-) > From: Stefan Monnier > Cc: 11348@debbugs.gnu.org > Date: Fri, 04 May 2012 13:59:43 -0400 > > This said, based on your description, the problem may simply come from > shell.el's setting of pcomplete-arg-quote-list which tells pcomplete > that \ is an escape char. > > I.e. does the patch below fix the problem? No, I still get "d:\/gnu/". > > This works better, it produces "cd d:\gnu/ ", which is ugly, but > > correct. > > Which part is ugly? The \, the /, or the use of a mix of them? The mix. > > Perhaps Stefan could at some point add some documentation about the > > internals, that would allow mere mortals such as myself debug the > > completion code. > > I'd love to, but I'm much too deeply in it to know what needs more > documentation, so fire away your questions and I'll reply with > comments&docstrings. A useful beginning would be some overview of the design and description of the control and data flow in several popular use-cases. From debbugs-submit-bounces@debbugs.gnu.org Fri May 04 19:34:37 2012 Received: (at 11348) by debbugs.gnu.org; 4 May 2012 23:34:37 +0000 Received: from localhost ([127.0.0.1]:36488 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SQS1E-0007y6-WE for submit@debbugs.gnu.org; Fri, 04 May 2012 19:34:37 -0400 Received: from ironport-out.teksavvy.com ([206.248.143.162]:8526) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SQS1C-0007xv-PA for 11348@debbugs.gnu.org; Fri, 04 May 2012 19:34:35 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AjEKACxOgk9MCqD5/2dsb2JhbABDtheCDAOBDIEIggkBAQQBViMFCws0EhQYDSSIHAW2MothhHkEpEWBXYMD X-IronPort-AV: E=Sophos;i="4.75,391,1330923600"; d="scan'208";a="178418008" Received: from 76-10-160-249.dsl.teksavvy.com (HELO ceviche.home) ([76.10.160.249]) by ironport2-out.teksavvy.com with ESMTP/TLS/ADH-AES256-SHA; 04 May 2012 19:32:42 -0400 Received: by ceviche.home (Postfix, from userid 20848) id ED81C66109; Fri, 4 May 2012 19:32:41 -0400 (EDT) From: Stefan Monnier To: Eli Zaretskii Subject: Re: bug#11348: 24.0.95; TAB-completion in shell-command produces d:\/foo on MS-Windows Message-ID: References: <83obqeiwb0.fsf@gnu.org> <83mx5n6ceu.fsf@gnu.org> Date: Fri, 04 May 2012 19:32:41 -0400 In-Reply-To: <83mx5n6ceu.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 04 May 2012 21:15:05 +0300") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.1.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -1.9 (-) X-Debbugs-Envelope-To: 11348 Cc: 11348@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.9 (-) >> This said, based on your description, the problem may simply come from >> shell.el's setting of pcomplete-arg-quote-list which tells pcomplete >> that \ is an escape char. >> I.e. does the patch below fix the problem? > No, I still get "d:\/gnu/". >> > This works better, it produces "cd d:\gnu/ ", which is ugly, but >> > correct. >> Which part is ugly? The \, the /, or the use of a mix of them? > The mix. >> > Perhaps Stefan could at some point add some documentation about the >> > internals, that would allow mere mortals such as myself debug the >> > completion code. >> I'd love to, but I'm much too deeply in it to know what needs more >> documentation, so fire away your questions and I'll reply with >> comments&docstrings. > A useful beginning would be some overview of the design and AFAIK that's in the lispref, but clearly that's not sufficient for you, so please be more specific. > description of the control and data flow in several popular use-cases. Not sure what that could look like. Would the following be helpful? For completion--file-name-table, after hitting TAB, here's the general way it is supposed to work (seen from the completion-table): - the `metadata' method is called, so the caller can know which completion styles should be used, as well as whether escaping/quoting should take place. - because file-names in the minibuffer are quoted (the unquoting replaces $$ with $ and expands envvars), which is evidenced by the fact that the completion-table is defined with completion-table-with-quoting, the text to be completed is unquoted and the (quoting)completion table is replaced by the "plain" completion table (the details of how this is done is internal to completion-table-with-quoting). - the completion goes on in the simpler unquoted world of file names (using the completion-file-name-table). - each completion style is attempted in sequence, and can use the `try-completion' method for simple prefix-based completion, as well as `all-completions' and `completion-boundaries' methods for more complex styles (the `completion-boundaries' method indicates which part of the completed string is *not* included in `all-completions'; in the case of file-name the part that's not included is the directory part). The returned completion is accompanied with some information about where point should go. - once a style returns a valid completion, that completion is re-quoted (because of the use of completion-table-with-quoting) and the corresponding position of point in the quoted string is computed. Stefan From debbugs-submit-bounces@debbugs.gnu.org Fri May 04 20:24:33 2012 Received: (at 11348) by debbugs.gnu.org; 5 May 2012 00:24:33 +0000 Received: from localhost ([127.0.0.1]:36534 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SQSnZ-0000el-69 for submit@debbugs.gnu.org; Fri, 04 May 2012 20:24:33 -0400 Received: from acsinet15.oracle.com ([141.146.126.227]:17982) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SQSnW-0000eX-TP for 11348@debbugs.gnu.org; Fri, 04 May 2012 20:24:31 -0400 Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94]) by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with ESMTP id q450MZHK015703 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Sat, 5 May 2012 00:22:36 GMT Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157]) by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id q450MYTq003204 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sat, 5 May 2012 00:22:35 GMT Received: from abhmt107.oracle.com (abhmt107.oracle.com [141.146.116.59]) by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id q450MYEB001537; Fri, 4 May 2012 19:22:34 -0500 Received: from dradamslap1 (/10.159.172.28) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Fri, 04 May 2012 17:22:33 -0700 From: "Drew Adams" To: "'Stefan Monnier'" , "'Eli Zaretskii'" References: <83obqeiwb0.fsf@gnu.org> <83mx5n6ceu.fsf@gnu.org> Subject: RE: bug#11348: 24.0.95; TAB-completion in shell-command produces d:\/foo on MS-Windows Date: Fri, 4 May 2012 17:22:28 -0700 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook 11 In-Reply-To: Thread-Index: Ac0qTk2FAvSdy644SzGLvDmv08irYwABjrEg X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6157 X-Source-IP: ucsinet22.oracle.com [156.151.31.94] X-Spam-Score: -6.9 (------) X-Debbugs-Envelope-To: 11348 Cc: 11348@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -6.9 (------) > > description of the control and data flow in several popular > > use-cases. > > Not sure what that could look like. Would the following be helpful? > > For completion--file-name-table... ... Yes, this kind of thing is helpful. I think, at least for what you just wrote, that simply adding it to the source file would be a good way to communicate it. Some other info might be more directed to users of the functions concerned, and so could be added to the Elisp manual. But for purposes of understanding the code it should be sufficient to comment the file with similar text to what you wrote. From debbugs-submit-bounces@debbugs.gnu.org Sat May 05 00:22:13 2012 Received: (at 11348) by debbugs.gnu.org; 5 May 2012 04:22:13 +0000 Received: from localhost ([127.0.0.1]:36665 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SQWVZ-00063r-67 for submit@debbugs.gnu.org; Sat, 05 May 2012 00:22:13 -0400 Received: from ironport-out.teksavvy.com ([206.248.143.162]:7868) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SQWVX-00063Z-AM for 11348@debbugs.gnu.org; Sat, 05 May 2012 00:22:11 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApYIACxOgk9MCqD5/2dsb2JhbABDuCMDgQyBCIIJAQEEAVYjEAs0EhQYDSQTiAkFtjKLYYR5BKRFgV2DAw X-IronPort-AV: E=Sophos;i="4.75,391,1330923600"; d="scan'208";a="178436639" Received: from 76-10-160-249.dsl.teksavvy.com (HELO ceviche.home) ([76.10.160.249]) by ironport2-out.teksavvy.com with ESMTP/TLS/ADH-AES256-SHA; 05 May 2012 00:20:17 -0400 Received: by ceviche.home (Postfix, from userid 20848) id 51CD166109; Sat, 5 May 2012 00:20:17 -0400 (EDT) From: Stefan Monnier To: Eli Zaretskii Subject: Re: bug#11348: 24.0.95; TAB-completion in shell-command produces d:\/foo on MS-Windows Message-ID: References: <83obqeiwb0.fsf@gnu.org> <83mx5n6ceu.fsf@gnu.org> Date: Sat, 05 May 2012 00:20:17 -0400 In-Reply-To: <83mx5n6ceu.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 04 May 2012 21:15:05 +0300") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.1.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -1.9 (-) X-Debbugs-Envelope-To: 11348 Cc: 11348@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.9 (-) >> This said, based on your description, the problem may simply come from >> shell.el's setting of pcomplete-arg-quote-list which tells pcomplete >> that \ is an escape char. >> I.e. does the patch below fix the problem? > No, I still get "d:\/gnu/". I installed the patch below, which seems to fix this specific problem (according to my testing under Wine ;-) >> Which part is ugly? The \, the /, or the use of a mix of them? > The mix. Yes, I think I agree. I'll have to think about it some more. Stefan === modified file 'lisp/ChangeLog' --- lisp/ChangeLog 2012-05-04 10:26:36 +0000 +++ lisp/ChangeLog 2012-05-05 04:16:59 +0000 @@ -1,3 +1,10 @@ +2012-05-05 Stefan Monnier + + * shell.el (shell-completion-vars): Set pcomplete-arg-quote-list like + shell-delimiter-argument-list. + (shell-parse-pcomplete-arguments): + Obey pcomplete-arg-quote-list (bug#11348). + 2012-05-04 Chong Yidong * select.el (xselect--encode-string): Always use utf-8 for TEXT on === modified file 'lisp/shell.el' --- lisp/shell.el 2012-02-28 08:17:21 +0000 +++ lisp/shell.el 2012-05-05 04:13:57 +0000 @@ -393,8 +393,11 @@ (goto-char (match-end 0)) (cond ((match-beginning 3) ;Backslash escape. - (push (if (= (match-beginning 3) (match-end 3)) - "\\" (match-string 3)) + (push (cond + ((null pcomplete-arg-quote-list) + (goto-char (match-beginning 3)) "\\") + ((= (match-beginning 3) (match-end 3)) "\\") + (t (match-string 3))) arg)) ((match-beginning 2) ;Double quote. (push (replace-regexp-in-string @@ -429,7 +432,7 @@ (set (make-local-variable 'pcomplete-parse-arguments-function) #'shell-parse-pcomplete-arguments) (set (make-local-variable 'pcomplete-arg-quote-list) - (append "\\ \t\n\r\"'`$|&;(){}[]<>#" nil)) + shell-delimiter-argument-list) (set (make-local-variable 'pcomplete-termination-string) (cond ((not comint-completion-addsuffix) "") ((stringp comint-completion-addsuffix) From debbugs-submit-bounces@debbugs.gnu.org Sat May 05 02:37:05 2012 Received: (at 11348) by debbugs.gnu.org; 5 May 2012 06:37:05 +0000 Received: from localhost ([127.0.0.1]:36710 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SQYc4-0000iD-FK for submit@debbugs.gnu.org; Sat, 05 May 2012 02:37:04 -0400 Received: from mtaout22.012.net.il ([80.179.55.172]:34934) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SQYc1-0000hi-Tz for 11348@debbugs.gnu.org; Sat, 05 May 2012 02:37:03 -0400 Received: from conversion-daemon.a-mtaout22.012.net.il by a-mtaout22.012.net.il (HyperSendmail v2007.08) id <0M3J00A00E62GE00@a-mtaout22.012.net.il> for 11348@debbugs.gnu.org; Sat, 05 May 2012 09:35:07 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.210.75]) by a-mtaout22.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0M3J00A5KEAHGM10@a-mtaout22.012.net.il>; Sat, 05 May 2012 09:35:06 +0300 (IDT) Date: Sat, 05 May 2012 09:33:04 +0300 From: Eli Zaretskii Subject: Re: bug#11348: 24.0.95; TAB-completion in shell-command produces d:\/foo on MS-Windows In-reply-to: X-012-Sender: halo1@inter.net.il To: Stefan Monnier Message-id: <83fwbf5e8v.fsf@gnu.org> References: <83obqeiwb0.fsf@gnu.org> <83mx5n6ceu.fsf@gnu.org> X-Spam-Score: -1.2 (-) X-Debbugs-Envelope-To: 11348 Cc: 11348@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.2 (-) > From: Stefan Monnier > Cc: 11348@debbugs.gnu.org > Date: Sat, 05 May 2012 00:20:17 -0400 > > >> This said, based on your description, the problem may simply come from > >> shell.el's setting of pcomplete-arg-quote-list which tells pcomplete > >> that \ is an escape char. > >> I.e. does the patch below fix the problem? > > No, I still get "d:\/gnu/". > > I installed the patch below, which seems to fix this specific problem > (according to my testing under Wine ;-) I'm not sure why it worked for you, because it still doesn't for me. Are you applying the changes to the emacs-24 branch? Because that's what I do, this bug being against Emacs 24.0.96 and a regression from Emacs 23.4. According to my debugging inside shell-parse-pcomplete-arguments, what happens there is that this fragment (while (looking-at (eval-when-compile (concat "\\(?:[^\s\t\n\\\"']+" "\\|'\\([^']*\\)'?" "\\|\"\\(\\(?:[^\"\\]\\|\\\\.\\)*\\)\"?" "\\|\\\\\\(\\(?:.\\|\n\\)?\\)\\)"))) decides that \g is an escape sequence. (Btw, what's the purpose of using eval-when-compile here?) Therefore, the value of args at the end of the loop is ("nu" "g" "d:") After this line: (push (mapconcat #'identity (nreverse arg) "") args))) it becomes ("d:" "g" "nu") and the result of the function is therefore (("cd" "d:gnu") 16 19) By contrast, if I type "M-! cd d:/gnu TAB", the results are, correspondingly, ("d:/gnu") and (("cd" "d:/gnu") 16 19) IOW, the problem is that shell-parse-pcomplete-arguments removes the backslash in "d:\gnu", because the last alternative in the above regexp treats backslashes as escape characters, which on MS-DOS and MS-Windows is true (for shell commands) only when the backslash precedes a quote character ("). Thanks. From debbugs-submit-bounces@debbugs.gnu.org Sat May 05 08:51:47 2012 Received: (at 11348) by debbugs.gnu.org; 5 May 2012 12:51:47 +0000 Received: from localhost ([127.0.0.1]:36844 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SQeSh-0001a7-0F for submit@debbugs.gnu.org; Sat, 05 May 2012 08:51:47 -0400 Received: from mtaout21.012.net.il ([80.179.55.169]:55077) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SQeSd-0001Zs-4f for 11348@debbugs.gnu.org; Sat, 05 May 2012 08:51:45 -0400 Received: from conversion-daemon.a-mtaout21.012.net.il by a-mtaout21.012.net.il (HyperSendmail v2007.08) id <0M3J00A00VF9JE00@a-mtaout21.012.net.il> for 11348@debbugs.gnu.org; Sat, 05 May 2012 15:49:46 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.210.75]) by a-mtaout21.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0M3J00A1HVMYGA70@a-mtaout21.012.net.il>; Sat, 05 May 2012 15:49:46 +0300 (IDT) Date: Sat, 05 May 2012 15:47:45 +0300 From: Eli Zaretskii Subject: Re: bug#11348: 24.0.95; TAB-completion in shell-command produces d:\/foo on MS-Windows In-reply-to: X-012-Sender: halo1@inter.net.il To: Stefan Monnier Message-id: <83zk9m4wwe.fsf@gnu.org> References: <83obqeiwb0.fsf@gnu.org> <83mx5n6ceu.fsf@gnu.org> X-Spam-Score: -1.2 (-) X-Debbugs-Envelope-To: 11348 Cc: 11348@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.2 (-) > From: Stefan Monnier > Cc: 11348@debbugs.gnu.org > Date: Fri, 04 May 2012 19:32:41 -0400 > > >> > Perhaps Stefan could at some point add some documentation about the > >> > internals, that would allow mere mortals such as myself debug the > >> > completion code. > >> I'd love to, but I'm much too deeply in it to know what needs more > >> documentation, so fire away your questions and I'll reply with > >> comments&docstrings. > > A useful beginning would be some overview of the design and > > AFAIK that's in the lispref Where exactly? The only place I found is the "Completion" section and what's under it. If this is what you meant, then this part of the manual documents how to _use_ the APIs; it does not describe the design and the internals. And neither should it, IMO: the lipsref manual is meant for Lisp programmers, not for Emacs maintainers. If any place in that manual is suitable for the kind of information I'm looking for, it's the "Internals" appendix. Commentary in the code is an even better place. As for lispref, some parts of what's written need to be clarified. For example, in "Programmed Completion": `(boundaries . SUFFIX)' This specifies a `completion-boundaries' operation. The function should return `(boundaries START . END)', where START is the position of the beginning boundary in the specified string, and END is the position of the end boundary in SUFFIX. This should at least include a cross-reference to where completion-boundaries are described; without that, it's not even clear what "boundaries" are being referenced here and what exactly is SUFFIX. `metadata' This specifies a request for information about the state of the current completion. The function should return an alist, as described below. The alist may contain any number of elements. Does the last sentence mean that not all of the elements "described below" should always be returned? If so, when to return which ones? `category' The value should be a symbol describing what kind of text the completion function is trying to complete. If the symbol matches one of the keys in `completion-category-overrides', the usual completion behavior is overridden. *Note Completion Variables::. A list of available categories is missing here. Also, this begs the question "what will the caller do with the category?", so you should at least say something about that. `annotation-function' The value should be a function for "annotating" completions. The function should take one argument, STRING, which is a possible completion. It should return a string, which is displayed after the completion STRING in the `*Completions*' buffer. This is not clear at all. What are "annotations" in this context, and what are the possible uses by the caller of the annotations returned by the function? The reference to *Completions* buffer is no more than a hint, and falls short of clarifying the issue (I couldn't figure out what is "displayed after the completion STRING"). Also, are there any standard functions that can be reused for this? if so, name them. `cycle-sort-function' The value should be a function for sorting completions, when `completion-cycle-threshold' is non-`nil' and the user is cycling through completion alternatives. *Note Completion Options: (emacs)Completion Options. Its argument list and return value are the same as for `display-sort-function'. Again, if there are standard cycling functions available, name them. > > description of the control and data flow in several popular use-cases. > > Not sure what that could look like. Would the following be helpful? Yes, very. A list of completion predicates used for completing on the most popular objects (files, buffers, shell commands, etc.) would also be extremely useful. > For completion--file-name-table, after hitting TAB, here's the > general way it is supposed to work (seen from the completion-table): ^^^^^^^^^^^^^^^^ What is that "completion-table" you refer to here? > - the `metadata' method is called, so the caller can know which > completion styles should be used, as well as whether escaping/quoting > should take place. How does the caller know about escaping/quoting from metadata? Thanks. From debbugs-submit-bounces@debbugs.gnu.org Mon May 07 04:03:29 2012 Received: (at 11348) by debbugs.gnu.org; 7 May 2012 08:03:30 +0000 Received: from localhost ([127.0.0.1]:39118 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SRIun-0001VI-8N for submit@debbugs.gnu.org; Mon, 07 May 2012 04:03:29 -0400 Received: from fencepost.gnu.org ([208.118.235.10]:46682 ident=Debian-exim) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SRIuj-0001VA-Ua for 11348@debbugs.gnu.org; Mon, 07 May 2012 04:03:27 -0400 Received: from [155.69.19.224] (port=53313 helo=ulysses) by fencepost.gnu.org with esmtpsa (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1SRIsm-00007a-Q5; Mon, 07 May 2012 04:01:25 -0400 From: Chong Yidong To: Eli Zaretskii Subject: Re: bug#11348: 24.0.95; TAB-completion in shell-command produces d:\/foo on MS-Windows References: <83obqeiwb0.fsf@gnu.org> <83mx5n6ceu.fsf@gnu.org> <83fwbf5e8v.fsf@gnu.org> Date: Mon, 07 May 2012 16:01:15 +0800 In-Reply-To: <83fwbf5e8v.fsf@gnu.org> (Eli Zaretskii's message of "Sat, 05 May 2012 09:33:04 +0300") Message-ID: <87k40ov2r8.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.96 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -6.9 (------) X-Debbugs-Envelope-To: 11348 Cc: Stefan Monnier , 11348@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -6.9 (------) Eli Zaretskii writes: >> I installed the patch below, which seems to fix this specific problem >> (according to my testing under Wine ;-) > > I'm not sure why it worked for you, because it still doesn't for me. I also still see the bug, running under Wine. > IOW, the problem is that shell-parse-pcomplete-arguments removes the > backslash in "d:\gnu", because the last alternative in the above > regexp treats backslashes as escape characters, which on MS-DOS and > MS-Windows is true (for shell commands) only when the backslash > precedes a quote character ("). How about something like the following? (Works for me on Wine with your test case, but I don't know if it breaks quoting.) === modified file 'lisp/shell.el' *** lisp/shell.el 2012-05-05 04:18:49 +0000 --- lisp/shell.el 2012-05-07 07:59:33 +0000 *************** *** 397,402 **** --- 397,408 ---- ((null pcomplete-arg-quote-list) (goto-char (match-beginning 3)) "\\") ((= (match-beginning 3) (match-end 3)) "\\") + ;; On Windows, the backslash is an escape + ;; character only if it precedes a quote char. + ((and (memq system-type + '(ms-dos windows-nt darwin cygwin)) + (not (equal (match-string 3) "\""))) + (concat "/" (match-string 3))) (t (match-string 3))) arg)) ((match-beginning 2) ;Double quote. From debbugs-submit-bounces@debbugs.gnu.org Mon May 07 11:29:20 2012 Received: (at 11348) by debbugs.gnu.org; 7 May 2012 15:29:21 +0000 Received: from localhost ([127.0.0.1]:39660 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SRPsG-00041a-C1 for submit@debbugs.gnu.org; Mon, 07 May 2012 11:29:20 -0400 Received: from chene.dit.umontreal.ca ([132.204.246.20]:42766) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SRPsE-00041T-6N for 11348@debbugs.gnu.org; Mon, 07 May 2012 11:29:19 -0400 Received: from fmsmemgm.homelinux.net (lechon.iro.umontreal.ca [132.204.27.242]) by chene.dit.umontreal.ca (8.14.1/8.14.1) with ESMTP id q47FRFlI023106; Mon, 7 May 2012 11:27:15 -0400 Received: by fmsmemgm.homelinux.net (Postfix, from userid 20848) id 85F81AEC0E; Mon, 7 May 2012 11:27:15 -0400 (EDT) From: Stefan Monnier To: Eli Zaretskii Subject: Re: bug#11348: 24.0.95; TAB-completion in shell-command produces d:\/foo on MS-Windows Message-ID: References: <83obqeiwb0.fsf@gnu.org> <83mx5n6ceu.fsf@gnu.org> <83fwbf5e8v.fsf@gnu.org> Date: Mon, 07 May 2012 11:27:15 -0400 In-Reply-To: <83fwbf5e8v.fsf@gnu.org> (Eli Zaretskii's message of "Sat, 05 May 2012 09:33:04 +0300") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.1.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: 1 Rules triggered RV4215=0 X-NAI-Spam-Version: 2.2.0.9309 : core <4215> : streams <753688> : uri <1108552> X-Spam-Score: -3.5 (---) X-Debbugs-Envelope-To: 11348 Cc: 11348@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -3.5 (---) > I'm not sure why it worked for you, because it still doesn't for me. > Are you applying the changes to the emacs-24 branch? Because that's > what I do, this bug being against Emacs 24.0.96 and a regression from > Emacs 23.4. Yes, I tried it with the 24.0.96 pretest. Hmm... > According to my debugging inside shell-parse-pcomplete-arguments, what > happens there is that this fragment > (while (looking-at > (eval-when-compile > (concat > "\\(?:[^\s\t\n\\\"']+" > "\\|'\\([^']*\\)'?" > "\\|\"\\(\\(?:[^\"\\]\\|\\\\.\\)*\\)\"?" > "\\|\\\\\\(\\(?:.\\|\n\\)?\\)\\)"))) > decides that \g is an escape sequence. No, it does match "\g" but then the new code: (push (cond ((null pcomplete-arg-quote-list) (goto-char (match-beginning 3)) "\\") ((= (match-beginning 3) (match-end 3)) "\\") (t (match-string 3))) arg)) sees that pcomplete-arg-quote-list is nil, pushes "\\" and moves backward 1 char (to right before the "g") so you end up with ("gnu" "\\" "d:"). Can you check to see why this is not happening? > (Btw, what's the purpose of using eval-when-compile here?) To avoid calling `concat' at run-time (especially within the loop). In older Emacsen, `concat' was marked as pure so the byte-compiler would evaluate it at compile-time, but someone complained that it's not strictly correct because he wanted that (concat ) is not `eq' to (concat ). I actually think this change was a mistake and would rather mark `concat' as pure again. Stefan From debbugs-submit-bounces@debbugs.gnu.org Mon May 07 11:47:05 2012 Received: (at 11348) by debbugs.gnu.org; 7 May 2012 15:47:05 +0000 Received: from localhost ([127.0.0.1]:39668 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SRQ9R-0004QZ-6X for submit@debbugs.gnu.org; Mon, 07 May 2012 11:47:05 -0400 Received: from rcsinet15.oracle.com ([148.87.113.117]:50985) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SRQ9P-0004Q7-1G for 11348@debbugs.gnu.org; Mon, 07 May 2012 11:47:03 -0400 Received: from acsinet22.oracle.com (acsinet22.oracle.com [141.146.126.238]) by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with ESMTP id q47Fitmu030184 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Mon, 7 May 2012 15:44:55 GMT Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156]) by acsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id q47Fisst025149 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Mon, 7 May 2012 15:44:54 GMT Received: from abhmt112.oracle.com (abhmt112.oracle.com [141.146.116.64]) by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id q47Fisrx023315; Mon, 7 May 2012 10:44:54 -0500 Received: from dradamslap1 (/130.35.178.194) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Mon, 07 May 2012 08:44:53 -0700 From: "Drew Adams" To: "'Stefan Monnier'" , "'Eli Zaretskii'" References: <83obqeiwb0.fsf@gnu.org> <83mx5n6ceu.fsf@gnu.org> <83fwbf5e8v.fsf@gnu.org> Subject: RE: bug#11348: 24.0.95; TAB-completion in shell-command produces d:\/foo on MS-Windows Date: Mon, 7 May 2012 08:44:53 -0700 Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Mailer: Microsoft Office Outlook 11 In-Reply-To: X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6157 Thread-Index: Ac0sZgVA3lxxwanzTtqlxFCrY0FqhAAAdwqQ X-Source-IP: acsinet22.oracle.com [141.146.126.238] X-Spam-Score: -6.9 (------) X-Debbugs-Envelope-To: 11348 Cc: 11348@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -6.9 (------) > > (Btw, what's the purpose of using eval-when-compile here?) > > To avoid calling `concat' at run-time (especially within the loop). > In older Emacsen, `concat' was marked as pure so the > byte-compiler would evaluate it at compile-time, but someone > complained that it's not strictly correct because he wanted that > (concat ) is not `eq' to (concat ). I actually think > this change was a mistake and would rather mark `concat' as pure again. That sounds like the kind of explanation that would help readers as a comment in the code. If someone as attentive as Eli has to ask this then it might not hurt to inform readers generally. (Ignore my suggestion if inappropriate - I'm not following the thread etc.) From debbugs-submit-bounces@debbugs.gnu.org Mon May 07 12:13:55 2012 Received: (at 11348) by debbugs.gnu.org; 7 May 2012 16:13:55 +0000 Received: from localhost ([127.0.0.1]:39691 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SRQZO-000527-On for submit@debbugs.gnu.org; Mon, 07 May 2012 12:13:55 -0400 Received: from fencepost.gnu.org ([208.118.235.10]:55544 ident=Debian-exim) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SRQZM-000520-T6 for 11348@debbugs.gnu.org; Mon, 07 May 2012 12:13:53 -0400 Received: from cm162.gamma80.maxonline.com.sg ([202.156.80.162]:51916 helo=ulysses) by fencepost.gnu.org with esmtpsa (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1SRQXN-00038r-Ok; Mon, 07 May 2012 12:11:50 -0400 From: Chong Yidong To: Stefan Monnier Subject: Re: bug#11348: 24.0.95; TAB-completion in shell-command produces d:\/foo on MS-Windows References: <83obqeiwb0.fsf@gnu.org> <83mx5n6ceu.fsf@gnu.org> <83fwbf5e8v.fsf@gnu.org> Date: Tue, 08 May 2012 00:11:40 +0800 In-Reply-To: (Stefan Monnier's message of "Mon, 07 May 2012 11:27:15 -0400") Message-ID: <87ipg8km2r.fsf@gnu.org> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.0.96 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -6.9 (------) X-Debbugs-Envelope-To: 11348 Cc: Eli Zaretskii , 11348@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -6.9 (------) Stefan Monnier writes: > No, it does match "\g" but then the new code: > > (push (cond > ((null pcomplete-arg-quote-list) > (goto-char (match-beginning 3)) "\\") > ((= (match-beginning 3) (match-end 3)) "\\") > (t (match-string 3))) > arg)) > > sees that pcomplete-arg-quote-list is nil, pushes "\\" and moves > backward 1 char (to right before the "g") so you end up with > ("gnu" "\\" "d:"). > > Can you check to see why this is not happening? ?? Why should pcomplete-arg-quote-list be nil? In that same change, you set it to shell-delimiter-argument-list, which is a non-empty list. From debbugs-submit-bounces@debbugs.gnu.org Mon May 07 13:44:18 2012 Received: (at 11348) by debbugs.gnu.org; 7 May 2012 17:44:18 +0000 Received: from localhost ([127.0.0.1]:39793 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SRRyr-0007Db-NJ for submit@debbugs.gnu.org; Mon, 07 May 2012 13:44:17 -0400 Received: from mtaout22.012.net.il ([80.179.55.172]:62552) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SRRyp-0007DM-7t for 11348@debbugs.gnu.org; Mon, 07 May 2012 13:44:16 -0400 Received: from conversion-daemon.a-mtaout22.012.net.il by a-mtaout22.012.net.il (HyperSendmail v2007.08) id <0M3N00M00YECK900@a-mtaout22.012.net.il> for 11348@debbugs.gnu.org; Mon, 07 May 2012 20:42:07 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.210.75]) by a-mtaout22.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0M3N00K8LYI6IA31@a-mtaout22.012.net.il>; Mon, 07 May 2012 20:42:07 +0300 (IDT) Date: Mon, 07 May 2012 20:40:12 +0300 From: Eli Zaretskii Subject: Re: bug#11348: 24.0.95; TAB-completion in shell-command produces d:\/foo on MS-Windows In-reply-to: <87k40ov2r8.fsf@gnu.org> X-012-Sender: halo1@inter.net.il To: Chong Yidong Message-id: <83d36f3n5v.fsf@gnu.org> References: <83obqeiwb0.fsf@gnu.org> <83mx5n6ceu.fsf@gnu.org> <83fwbf5e8v.fsf@gnu.org> <87k40ov2r8.fsf@gnu.org> X-Spam-Score: -1.2 (-) X-Debbugs-Envelope-To: 11348 Cc: monnier@iro.umontreal.ca, 11348@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.2 (-) > From: Chong Yidong > Cc: Stefan Monnier , 11348@debbugs.gnu.org > Date: Mon, 07 May 2012 16:01:15 +0800 > > Eli Zaretskii writes: > > >> I installed the patch below, which seems to fix this specific problem > >> (according to my testing under Wine ;-) > > > > I'm not sure why it worked for you, because it still doesn't for me. > > I also still see the bug, running under Wine. > > > IOW, the problem is that shell-parse-pcomplete-arguments removes the > > backslash in "d:\gnu", because the last alternative in the above > > regexp treats backslashes as escape characters, which on MS-DOS and > > MS-Windows is true (for shell commands) only when the backslash > > precedes a quote character ("). > > How about something like the following? (Works for me on Wine with your > test case, but I don't know if it breaks quoting.) > > > === modified file 'lisp/shell.el' > *** lisp/shell.el 2012-05-05 04:18:49 +0000 > --- lisp/shell.el 2012-05-07 07:59:33 +0000 > *************** > *** 397,402 **** > --- 397,408 ---- > ((null pcomplete-arg-quote-list) > (goto-char (match-beginning 3)) "\\") > ((= (match-beginning 3) (match-end 3)) "\\") > + ;; On Windows, the backslash is an escape > + ;; character only if it precedes a quote char. > + ((and (memq system-type > + '(ms-dos windows-nt darwin cygwin)) > + (not (equal (match-string 3) "\""))) > + (concat "/" (match-string 3))) > (t (match-string 3))) > arg)) > ((match-beginning 2) ;Double quote. > This fixes the recipe in the original bug report (I get d:\gnu/), but again fails in this variant: M-! cd "d:\gnu TAB It produces "d:\/gnu/ (with the leading quote) instead of "d:\gnu/ If I type M-! cd "d:/gnu TAB I get "d:/gnu/, as expected. Thanks. From debbugs-submit-bounces@debbugs.gnu.org Mon May 07 20:29:49 2012 Received: (at 11348) by debbugs.gnu.org; 8 May 2012 00:29:49 +0000 Received: from localhost ([127.0.0.1]:40183 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SRYJI-0002AA-Sh for submit@debbugs.gnu.org; Mon, 07 May 2012 20:29:49 -0400 Received: from ironport-out.teksavvy.com ([206.248.143.162]:2512) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SRYJH-00029r-0I for 11348@debbugs.gnu.org; Mon, 07 May 2012 20:29:47 -0400 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AjEKACxOgk9FxLCA/2dsb2JhbABDtheCDAOBDIEIggkBAQQBViMQCw4mEhQYDSSIHAW2MothhHkEpEWBXYMD X-IronPort-AV: E=Sophos;i="4.75,391,1330923600"; d="scan'208";a="178864655" Received: from 69-196-176-128.dsl.teksavvy.com (HELO pastel.home) ([69.196.176.128]) by ironport2-out.teksavvy.com with ESMTP/TLS/ADH-AES256-SHA; 07 May 2012 20:27:37 -0400 Received: by pastel.home (Postfix, from userid 20848) id 02AC5596D6; Mon, 7 May 2012 20:27:36 -0400 (EDT) From: Stefan Monnier To: Chong Yidong Subject: Re: bug#11348: 24.0.95; TAB-completion in shell-command produces d:\/foo on MS-Windows Message-ID: References: <83obqeiwb0.fsf@gnu.org> <83mx5n6ceu.fsf@gnu.org> <83fwbf5e8v.fsf@gnu.org> <87ipg8km2r.fsf@gnu.org> Date: Mon, 07 May 2012 20:27:36 -0400 In-Reply-To: <87ipg8km2r.fsf@gnu.org> (Chong Yidong's message of "Tue, 08 May 2012 00:11:40 +0800") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.1.50 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -1.9 (-) X-Debbugs-Envelope-To: 11348 Cc: Eli Zaretskii , 11348@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.9 (-) >> No, it does match "\g" but then the new code: >> >> (push (cond >> ((null pcomplete-arg-quote-list) >> (goto-char (match-beginning 3)) "\\") >> ((= (match-beginning 3) (match-end 3)) "\\") >> (t (match-string 3))) >> arg)) >> >> sees that pcomplete-arg-quote-list is nil, pushes "\\" and moves >> backward 1 char (to right before the "g") so you end up with >> ("gnu" "\\" "d:"). >> >> Can you check to see why this is not happening? > ?? Why should pcomplete-arg-quote-list be nil? In that same change, you > set it to shell-delimiter-argument-list, which is a non-empty list. Duh! I see I committed the wrong version. I've just installed the patch below which should hopefully fix this one for good this time. Stefan === modified file 'lisp/shell.el' --- lisp/shell.el 2012-05-05 04:18:49 +0000 +++ lisp/shell.el 2012-05-08 00:24:43 +0000 @@ -432,7 +432,7 @@ (set (make-local-variable 'pcomplete-parse-arguments-function) #'shell-parse-pcomplete-arguments) (set (make-local-variable 'pcomplete-arg-quote-list) - shell-delimiter-argument-list) + comint-file-name-quote-list) (set (make-local-variable 'pcomplete-termination-string) (cond ((not comint-completion-addsuffix) "") ((stringp comint-completion-addsuffix) From debbugs-submit-bounces@debbugs.gnu.org Tue May 08 15:00:18 2012 Received: (at 11348) by debbugs.gnu.org; 8 May 2012 19:00:18 +0000 Received: from localhost ([127.0.0.1]:41564 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SRpdx-0006Rt-Pm for submit@debbugs.gnu.org; Tue, 08 May 2012 15:00:18 -0400 Received: from mtaout21.012.net.il ([80.179.55.169]:37244) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SRpdv-0006Rg-BX for 11348@debbugs.gnu.org; Tue, 08 May 2012 15:00:16 -0400 Received: from conversion-daemon.a-mtaout21.012.net.il by a-mtaout21.012.net.il (HyperSendmail v2007.08) id <0M3P00900WMYYE00@a-mtaout21.012.net.il> for 11348@debbugs.gnu.org; Tue, 08 May 2012 21:57:55 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.210.75]) by a-mtaout21.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0M3P009JVWOHLJC0@a-mtaout21.012.net.il>; Tue, 08 May 2012 21:57:54 +0300 (IDT) Date: Tue, 08 May 2012 21:56:02 +0300 From: Eli Zaretskii Subject: Re: bug#11348: 24.0.95; TAB-completion in shell-command produces d:\/foo on MS-Windows In-reply-to: X-012-Sender: halo1@inter.net.il To: Stefan Monnier Message-id: <83mx5i1ozh.fsf@gnu.org> References: <83obqeiwb0.fsf@gnu.org> <83mx5n6ceu.fsf@gnu.org> <83fwbf5e8v.fsf@gnu.org> <87ipg8km2r.fsf@gnu.org> X-Spam-Score: -1.2 (-) X-Debbugs-Envelope-To: 11348 Cc: cyd@gnu.org, 11348@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.2 (-) > From: Stefan Monnier > Cc: Eli Zaretskii , 11348@debbugs.gnu.org > Date: Mon, 07 May 2012 20:27:36 -0400 > > >> No, it does match "\g" but then the new code: > >> > >> (push (cond > >> ((null pcomplete-arg-quote-list) > >> (goto-char (match-beginning 3)) "\\") > >> ((= (match-beginning 3) (match-end 3)) "\\") > >> (t (match-string 3))) > >> arg)) > >> > >> sees that pcomplete-arg-quote-list is nil, pushes "\\" and moves > >> backward 1 char (to right before the "g") so you end up with > >> ("gnu" "\\" "d:"). > >> > >> Can you check to see why this is not happening? > > > ?? Why should pcomplete-arg-quote-list be nil? In that same change, you > > set it to shell-delimiter-argument-list, which is a non-empty list. > > Duh! I see I committed the wrong version. I've just installed the patch > below which should hopefully fix this one for good this time. Thanks. This fixes the original recipe. But the following minor variation (which works correctly in Emacs 23.3) still misfires: M-! cd "d:\gnu TAB I get "d:\/gnu/ after I press TAB above. From debbugs-submit-bounces@debbugs.gnu.org Wed May 09 13:24:50 2012 Received: (at 11348) by debbugs.gnu.org; 9 May 2012 17:24:50 +0000 Received: from localhost ([127.0.0.1]:43450 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SSAd7-0003Bi-M6 for submit@debbugs.gnu.org; Wed, 09 May 2012 13:24:50 -0400 Received: from chene.dit.umontreal.ca ([132.204.246.20]:37749) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SSAd4-0003BY-FP for 11348@debbugs.gnu.org; Wed, 09 May 2012 13:24:47 -0400 Received: from fmsmemgm.homelinux.net (lechon.iro.umontreal.ca [132.204.27.242]) by chene.dit.umontreal.ca (8.14.1/8.14.1) with ESMTP id q49HMUVi031242; Wed, 9 May 2012 13:22:30 -0400 Received: by fmsmemgm.homelinux.net (Postfix, from userid 20848) id 212ADAE17A; Wed, 9 May 2012 13:22:30 -0400 (EDT) From: Stefan Monnier To: Eli Zaretskii Subject: Re: bug#11348: 24.0.95; TAB-completion in shell-command produces d:\/foo on MS-Windows Message-ID: References: <83obqeiwb0.fsf@gnu.org> <83mx5n6ceu.fsf@gnu.org> <83fwbf5e8v.fsf@gnu.org> <87ipg8km2r.fsf@gnu.org> <83mx5i1ozh.fsf@gnu.org> Date: Wed, 09 May 2012 13:22:30 -0400 In-Reply-To: <83mx5i1ozh.fsf@gnu.org> (Eli Zaretskii's message of "Tue, 08 May 2012 21:56:02 +0300") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.1.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: 1 Rules triggered RV4217=0 X-NAI-Spam-Version: 2.2.0.9309 : core <4217> : streams <754363> : uri <1109433> X-Spam-Score: -3.5 (---) X-Debbugs-Envelope-To: 11348 Cc: cyd@gnu.org, 11348@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -3.5 (---) > Thanks. This fixes the original recipe. But the following minor > variation (which works correctly in Emacs 23.3) still misfires: > M-! cd "d:\gnu TAB > I get "d:\/gnu/ after I press TAB above. The patch below (which I just installed) might fix it. Stefan === modified file 'lisp/shell.el' --- lisp/shell.el 2012-05-08 00:27:13 +0000 +++ lisp/shell.el 2012-05-09 17:18:21 +0000 @@ -400,8 +400,9 @@ (t (match-string 3))) arg)) ((match-beginning 2) ;Double quote. - (push (replace-regexp-in-string - "\\\\\\(.\\)" "\\1" (match-string 2)) + (push (if (null pcomplete-arg-quote-list) (match-string 2) + (replace-regexp-in-string + "\\\\\\(.\\)" "\\1" (match-string 2))) arg)) ((match-beginning 1) ;Single quote. (push (match-string 1) arg)) From debbugs-submit-bounces@debbugs.gnu.org Wed May 09 14:13:11 2012 Received: (at 11348) by debbugs.gnu.org; 9 May 2012 18:13:11 +0000 Received: from localhost ([127.0.0.1]:43515 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SSBNv-0004TR-CO for submit@debbugs.gnu.org; Wed, 09 May 2012 14:13:11 -0400 Received: from mtaout22.012.net.il ([80.179.55.172]:34422) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SSBNs-0004T9-Mq for 11348@debbugs.gnu.org; Wed, 09 May 2012 14:13:09 -0400 Received: from conversion-daemon.a-mtaout22.012.net.il by a-mtaout22.012.net.il (HyperSendmail v2007.08) id <0M3R00C00P328U00@a-mtaout22.012.net.il> for 11348@debbugs.gnu.org; Wed, 09 May 2012 21:09:31 +0300 (IDT) Received: from HOME-C4E4A596F7 ([87.69.210.75]) by a-mtaout22.012.net.il (HyperSendmail v2007.08) with ESMTPA id <0M3R00BW2P3VYD40@a-mtaout22.012.net.il>; Wed, 09 May 2012 21:09:31 +0300 (IDT) Date: Wed, 09 May 2012 21:07:42 +0300 From: Eli Zaretskii Subject: Re: bug#11348: 24.0.95; TAB-completion in shell-command produces d:\/foo on MS-Windows In-reply-to: X-012-Sender: halo1@inter.net.il To: Stefan Monnier Message-id: <8339791b4h.fsf@gnu.org> References: <83obqeiwb0.fsf@gnu.org> <83mx5n6ceu.fsf@gnu.org> <83fwbf5e8v.fsf@gnu.org> <87ipg8km2r.fsf@gnu.org> <83mx5i1ozh.fsf@gnu.org> X-Spam-Score: -1.2 (-) X-Debbugs-Envelope-To: 11348 Cc: cyd@gnu.org, 11348@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list Reply-To: Eli Zaretskii List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -1.2 (-) > From: Stefan Monnier > Cc: cyd@gnu.org, 11348@debbugs.gnu.org > Date: Wed, 09 May 2012 13:22:30 -0400 > > > Thanks. This fixes the original recipe. But the following minor > > variation (which works correctly in Emacs 23.3) still misfires: > > M-! cd "d:\gnu TAB > > I get "d:\/gnu/ after I press TAB above. > > The patch below (which I just installed) might fix it. It does, thank! I think this bug can be closed now. From debbugs-submit-bounces@debbugs.gnu.org Wed May 09 23:46:22 2012 Received: (at control) by debbugs.gnu.org; 10 May 2012 03:46:22 +0000 Received: from localhost ([127.0.0.1]:43956 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SSKKb-0004Ue-TU for submit@debbugs.gnu.org; Wed, 09 May 2012 23:46:22 -0400 Received: from fencepost.gnu.org ([208.118.235.10]:44548 ident=Debian-exim) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1SSKKZ-0004UW-ND for control@debbugs.gnu.org; Wed, 09 May 2012 23:46:20 -0400 Received: from rgm by fencepost.gnu.org with local (Exim 4.71) (envelope-from ) id 1SSKIN-00064t-M2 for control@debbugs.gnu.org; Wed, 09 May 2012 23:44:03 -0400 Date: Wed, 09 May 2012 23:44:03 -0400 Message-Id: Subject: control message for bug 11348 To: X-Mailer: mail (GNU Mailutils 2.1) From: Glenn Morris X-Spam-Score: -6.9 (------) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -6.9 (------) close 11348 24.0.97 From unknown Mon Aug 18 19:26:12 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Thu, 07 Jun 2012 11:24:03 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator