GNU bug report logs - #18132
Time for a smarter dired-guess-shell-alist-default? (dired-x.el)

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; Severity: wishlist; Reported by: Reuben Thomas <rrt@HIDDEN>; Done: Juri Linkov <juri@HIDDEN>; Maintainer for emacs is bug-gnu-emacs@HIDDEN.
bug marked as fixed in version 30.0.50, send any further explanations to 18132 <at> debbugs.gnu.org and Reuben Thomas <rrt@HIDDEN> Request was from Juri Linkov <juri@HIDDEN> to control <at> debbugs.gnu.org. Full text available.

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


Received: (at 18132) by debbugs.gnu.org; 24 May 2024 17:59:05 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri May 24 13:59:05 2024
Received: from localhost ([127.0.0.1]:38362 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sAZC4-0002Cr-UX
	for submit <at> debbugs.gnu.org; Fri, 24 May 2024 13:59:05 -0400
Received: from relay8-d.mail.gandi.net ([217.70.183.201]:60895)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>)
 id 1sAZBz-0002C8-Ec; Fri, 24 May 2024 13:58:59 -0400
Received: by mail.gandi.net (Postfix) with ESMTPSA id CE1FF1BF203;
 Fri, 24 May 2024 17:58:45 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
In-Reply-To: <86ttin3btn.fsf@HIDDEN> (Eli Zaretskii's message of "Fri, 24 May
 2024 10:31:48 +0300")
Organization: LINKOV.NET
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <86v89lt6mk.fsf@HIDDEN> <83leag7loj.fsf@HIDDEN>
 <86o7f8ijnd.fsf@HIDDEN>
 <SJ0PR10MB5488CC45A78D0F5C8DEB9E86F380A@HIDDEN>
 <86y1eb8bi8.fsf@HIDDEN>
 <SJ0PR10MB5488EE4C9DF2A29900CCC1FAF387A@HIDDEN>
 <861qbz9r54.fsf@HIDDEN> <86fs0ef372.fsf@HIDDEN>
 <83y1e529a2.fsf@HIDDEN> <86sf4db0wf.fsf@HIDDEN>
 <835y1915hl.fsf@HIDDEN> <86r0jvbd26.fsf@HIDDEN>
 <86v836z8h6.fsf@HIDDEN> <86jzjm6mrb.fsf@HIDDEN>
 <86h6epm9qj.fsf@HIDDEN> <867cfl576h.fsf@HIDDEN>
 <86msogjuzv.fsf@HIDDEN> <8634q84cpa.fsf@HIDDEN>
 <86fru7vivr.fsf@HIDDEN> <86ttin3btn.fsf@HIDDEN>
Date: Fri, 24 May 2024 20:56:05 +0300
Message-ID: <86sey7qekq.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain
X-GND-Sasl: juri@HIDDEN
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 18132
Cc: 18132 <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.7 (-)

close 18132 30.0.50
thanks

>> >> >> > What about optionally letting the system facilities present the menu
>> >> >> > of appropriate commands and let the user select from that menu?
>> >> >>
>> >> >> This is already implemented by the context menu in Dired.
>> >> >> I've checked that the contents of this context menu is exactly
>> >> >> the same as on the default OS file manager since both use XDG.
>> >> >
>> >> > Can you tell me how to try that starting from "emacs -Q"?
>> >>
>> >> You can move to e.g. a PDF file in a Dired buffer and click the right button.
>> >
>> > Thanks, I added a w32-shell-execute item to that menu.
>>
>> But w32-shell-execute is supposed to be in 'dired-do-open'
>> that corresponds to "Open" in the context menu.
>
> "Open" corresponds to w32-shell-execute call with 1st argument "open",
> not "openas" (which is what I added).  And AFAICT, dired-do-open does
> exactly that, so we are okay, I think.
>
>> BTW, it would be nice to have a keybinding for 'dired-do-open'.
>> For example, the big "E" (mnemonics "External") is free
>> in 'dired-mode-map'.
>
> Fine by me.

So now pushed 'dired-guess-shell-alist-optional',
the 'E' keybinding and the item in the Dired menu,
and closed.




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

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


Received: (at 18132) by debbugs.gnu.org; 24 May 2024 07:32:18 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri May 24 03:32:18 2024
Received: from localhost ([127.0.0.1]:35509 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sAPPV-0004xt-J5
	for submit <at> debbugs.gnu.org; Fri, 24 May 2024 03:32:18 -0400
Received: from eggs.gnu.org ([209.51.188.92]:55046)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1sAPPQ-0004xn-SY
 for 18132 <at> debbugs.gnu.org; Fri, 24 May 2024 03:32:16 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1sAPPE-0000ys-2z; Fri, 24 May 2024 03:32:00 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=SILU1FoMf4cwwJLS1Jlyo3MSzWcskK1v7BlH2idCdqQ=; b=dzCZiqCnr6az
 UqqnKw6IlEb7beR09KVnm0ylxvclIaXfdtreSqDGUB2bdN5YajQZn6MJ/hzkbBzLDEmnRxfiiEGv/
 hDrSMhxsmLfMlvjO3wRFn01tqWtPWCqxhaqvScf8FyR+17qDJQSDfWlCMdvjPkdBnxo7cOMT5WsD6
 s8/0wHynv30qe+X8NgeZ/AKoZMREQw48+5Zw4DDWCGQI3OKxjKJxRry1iBY1eWqaEqW2aSbgEJOPK
 k+SgAekblxOk5J8aSTlI5qECg+8gzuRCLV7/5Q48HSwtqofoh2DXy4yuFKanWxVMFpDIAcQRjucLJ
 4NzRLPOIQbc+2smCM+otRw==;
Date: Fri, 24 May 2024 10:31:48 +0300
Message-Id: <86ttin3btn.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Juri Linkov <juri@HIDDEN>
In-Reply-To: <86fru7vivr.fsf@HIDDEN> (message from Juri Linkov on
 Fri, 24 May 2024 09:44:52 +0300)
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <86ttp6j8ax.fsf@HIDDEN> <8334wp93ww.fsf@HIDDEN>
 <86v89lt6mk.fsf@HIDDEN> <83leag7loj.fsf@HIDDEN>
 <86o7f8ijnd.fsf@HIDDEN>
 <SJ0PR10MB5488CC45A78D0F5C8DEB9E86F380A@HIDDEN>
 <86y1eb8bi8.fsf@HIDDEN>
 <SJ0PR10MB5488EE4C9DF2A29900CCC1FAF387A@HIDDEN>
 <861qbz9r54.fsf@HIDDEN> <86fs0ef372.fsf@HIDDEN>
 <83y1e529a2.fsf@HIDDEN> <86sf4db0wf.fsf@HIDDEN>
 <835y1915hl.fsf@HIDDEN> <86r0jvbd26.fsf@HIDDEN>
 <86v836z8h6.fsf@HIDDEN> <86jzjm6mrb.fsf@HIDDEN>
 <86h6epm9qj.fsf@HIDDEN> <867cfl576h.fsf@HIDDEN>
 <86msogjuzv.fsf@HIDDEN> <8634q84cpa.fsf@HIDDEN>
 <86fru7vivr.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 18132
Cc: 18132 <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: -3.3 (---)

> From: Juri Linkov <juri@HIDDEN>
> Cc: 18132 <at> debbugs.gnu.org
> Date: Fri, 24 May 2024 09:44:52 +0300
> 
> >> >> > What about optionally letting the system facilities present the menu
> >> >> > of appropriate commands and let the user select from that menu?
> >> >>
> >> >> This is already implemented by the context menu in Dired.
> >> >> I've checked that the contents of this context menu is exactly
> >> >> the same as on the default OS file manager since both use XDG.
> >> >
> >> > Can you tell me how to try that starting from "emacs -Q"?
> >>
> >> You can move to e.g. a PDF file in a Dired buffer and click the right button.
> >
> > Thanks, I added a w32-shell-execute item to that menu.
> 
> But w32-shell-execute is supposed to be in 'dired-do-open'
> that corresponds to "Open" in the context menu.

"Open" corresponds to w32-shell-execute call with 1st argument "open",
not "openas" (which is what I added).  And AFAICT, dired-do-open does
exactly that, so we are okay, I think.

> BTW, it would be nice to have a keybinding for 'dired-do-open'.
> For example, the big "E" (mnemonics "External") is free
> in 'dired-mode-map'.

Fine by me.




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

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


Received: (at 18132) by debbugs.gnu.org; 24 May 2024 06:45:53 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri May 24 02:45:52 2024
Received: from localhost ([127.0.0.1]:35288 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sAOga-0004WS-Ir
	for submit <at> debbugs.gnu.org; Fri, 24 May 2024 02:45:52 -0400
Received: from relay8-d.mail.gandi.net ([217.70.183.201]:49309)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1sAOgY-0004WM-Qh
 for 18132 <at> debbugs.gnu.org; Fri, 24 May 2024 02:45:51 -0400
Received: by mail.gandi.net (Postfix) with ESMTPSA id AF4D91BF207;
 Fri, 24 May 2024 06:45:37 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
In-Reply-To: <8634q84cpa.fsf@HIDDEN> (Eli Zaretskii's message of "Thu, 23 May
 2024 21:15:13 +0300")
Organization: LINKOV.NET
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <86ttp6j8ax.fsf@HIDDEN> <8334wp93ww.fsf@HIDDEN>
 <86v89lt6mk.fsf@HIDDEN> <83leag7loj.fsf@HIDDEN>
 <86o7f8ijnd.fsf@HIDDEN>
 <SJ0PR10MB5488CC45A78D0F5C8DEB9E86F380A@HIDDEN>
 <86y1eb8bi8.fsf@HIDDEN>
 <SJ0PR10MB5488EE4C9DF2A29900CCC1FAF387A@HIDDEN>
 <861qbz9r54.fsf@HIDDEN> <86fs0ef372.fsf@HIDDEN>
 <83y1e529a2.fsf@HIDDEN> <86sf4db0wf.fsf@HIDDEN>
 <835y1915hl.fsf@HIDDEN> <86r0jvbd26.fsf@HIDDEN>
 <86v836z8h6.fsf@HIDDEN> <86jzjm6mrb.fsf@HIDDEN>
 <86h6epm9qj.fsf@HIDDEN> <867cfl576h.fsf@HIDDEN>
 <86msogjuzv.fsf@HIDDEN> <8634q84cpa.fsf@HIDDEN>
Date: Fri, 24 May 2024 09:44:52 +0300
Message-ID: <86fru7vivr.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain
X-GND-Sasl: juri@HIDDEN
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 18132
Cc: 18132 <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.7 (-)

>> >> > What about optionally letting the system facilities present the menu
>> >> > of appropriate commands and let the user select from that menu?
>> >>
>> >> This is already implemented by the context menu in Dired.
>> >> I've checked that the contents of this context menu is exactly
>> >> the same as on the default OS file manager since both use XDG.
>> >
>> > Can you tell me how to try that starting from "emacs -Q"?
>>
>> You can move to e.g. a PDF file in a Dired buffer and click the right button.
>
> Thanks, I added a w32-shell-execute item to that menu.

But w32-shell-execute is supposed to be in 'dired-do-open'
that corresponds to "Open" in the context menu.

BTW, it would be nice to have a keybinding for 'dired-do-open'.
For example, the big "E" (mnemonics "External") is free
in 'dired-mode-map'.




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

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


Received: (at 18132) by debbugs.gnu.org; 23 May 2024 18:18:01 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu May 23 14:18:01 2024
Received: from localhost ([127.0.0.1]:60293 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sAD0q-0005gE-Vi
	for submit <at> debbugs.gnu.org; Thu, 23 May 2024 14:18:01 -0400
Received: from eggs.gnu.org ([209.51.188.92]:35132)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1sAD0o-0005g6-S5
 for 18132 <at> debbugs.gnu.org; Thu, 23 May 2024 14:17:59 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1sACyW-0000Vp-0O; Thu, 23 May 2024 14:15:36 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=AZYrcX4fs9IB2H7zJjgaVSYLbp6klrCsONy8dWDFF+s=; b=ZZCw94NO5/pT
 K9WbX1Sfh3lNfYNrJ7Bg9smNtPOLc1ra+T22aj8AF7m6BDo547rLONdAszFV3piAT3Gj7V9rgNhcA
 vYBmVl909D7hA/7er2rZP53ImnUy/SDZDNZYBDrHK7k1PovOuYmYNEfmYHx+xJb949WpzpCu0Jzmw
 BjcI9oLqunfkT49WkTE1m780SopvijzxUVnDaqaGnyb866L2VnIWXU6a6SDKWZXFT/tg3fdzvR9Sm
 oPONXLk87BN2Y/eK0WGv/zJjPmh4/HawtrVJmaky2KOm8RkgBBIpPDDPVLadLQlVZNorjkl7Stl2B
 okOCx2tN0ZTgVN4Co6Zv7g==;
Date: Thu, 23 May 2024 21:15:13 +0300
Message-Id: <8634q84cpa.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Juri Linkov <juri@HIDDEN>
In-Reply-To: <86msogjuzv.fsf@HIDDEN> (message from Juri Linkov on
 Thu, 23 May 2024 20:31:00 +0300)
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <838r6kby1m.fsf@HIDDEN> <86msuz5cft.fsf@HIDDEN>
 <86ttp6j8ax.fsf@HIDDEN> <8334wp93ww.fsf@HIDDEN>
 <86v89lt6mk.fsf@HIDDEN> <83leag7loj.fsf@HIDDEN>
 <86o7f8ijnd.fsf@HIDDEN>
 <SJ0PR10MB5488CC45A78D0F5C8DEB9E86F380A@HIDDEN>
 <86y1eb8bi8.fsf@HIDDEN>
 <SJ0PR10MB5488EE4C9DF2A29900CCC1FAF387A@HIDDEN>
 <861qbz9r54.fsf@HIDDEN> <86fs0ef372.fsf@HIDDEN>
 <83y1e529a2.fsf@HIDDEN> <86sf4db0wf.fsf@HIDDEN>
 <835y1915hl.fsf@HIDDEN> <86r0jvbd26.fsf@HIDDEN>
 <86v836z8h6.fsf@HIDDEN> <86jzjm6mrb.fsf@HIDDEN>
 <86h6epm9qj.fsf@HIDDEN> <867cfl576h.fsf@HIDDEN>
 <86msogjuzv.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 18132
Cc: 18132 <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: -3.3 (---)

> From: Juri Linkov <juri@HIDDEN>
> Cc: 18132 <at> debbugs.gnu.org
> Date: Thu, 23 May 2024 20:31:00 +0300
> 
> >> > What about optionally letting the system facilities present the menu
> >> > of appropriate commands and let the user select from that menu?
> >>
> >> This is already implemented by the context menu in Dired.
> >> I've checked that the contents of this context menu is exactly
> >> the same as on the default OS file manager since both use XDG.
> >
> > Can you tell me how to try that starting from "emacs -Q"?
> 
> You can move to e.g. a PDF file in a Dired buffer and click the right button.

Thanks, I added a w32-shell-execute item to that menu.




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

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


Received: (at 18132) by debbugs.gnu.org; 23 May 2024 17:35:06 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu May 23 13:35:06 2024
Received: from localhost ([127.0.0.1]:60116 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sACLK-0005Ga-3e
	for submit <at> debbugs.gnu.org; Thu, 23 May 2024 13:35:06 -0400
Received: from relay7-d.mail.gandi.net ([217.70.183.200]:33477)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1sACLF-0005Fn-PP
 for 18132 <at> debbugs.gnu.org; Thu, 23 May 2024 13:35:02 -0400
Received: by mail.gandi.net (Postfix) with ESMTPSA id 1ADED20002;
 Thu, 23 May 2024 17:34:28 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
In-Reply-To: <867cfl576h.fsf@HIDDEN> (Eli Zaretskii's message of "Thu, 23 May
 2024 10:16:54 +0300")
Organization: LINKOV.NET
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <838r6kby1m.fsf@HIDDEN> <86msuz5cft.fsf@HIDDEN>
 <86ttp6j8ax.fsf@HIDDEN> <8334wp93ww.fsf@HIDDEN>
 <86v89lt6mk.fsf@HIDDEN> <83leag7loj.fsf@HIDDEN>
 <86o7f8ijnd.fsf@HIDDEN>
 <SJ0PR10MB5488CC45A78D0F5C8DEB9E86F380A@HIDDEN>
 <86y1eb8bi8.fsf@HIDDEN>
 <SJ0PR10MB5488EE4C9DF2A29900CCC1FAF387A@HIDDEN>
 <861qbz9r54.fsf@HIDDEN> <86fs0ef372.fsf@HIDDEN>
 <83y1e529a2.fsf@HIDDEN> <86sf4db0wf.fsf@HIDDEN>
 <835y1915hl.fsf@HIDDEN> <86r0jvbd26.fsf@HIDDEN>
 <86v836z8h6.fsf@HIDDEN> <86jzjm6mrb.fsf@HIDDEN>
 <86h6epm9qj.fsf@HIDDEN> <867cfl576h.fsf@HIDDEN>
Date: Thu, 23 May 2024 20:31:00 +0300
Message-ID: <86msogjuzv.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain
X-GND-Sasl: juri@HIDDEN
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 18132
Cc: 18132 <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.7 (-)

>> > What about optionally letting the system facilities present the menu
>> > of appropriate commands and let the user select from that menu?
>>
>> This is already implemented by the context menu in Dired.
>> I've checked that the contents of this context menu is exactly
>> the same as on the default OS file manager since both use XDG.
>
> Can you tell me how to try that starting from "emacs -Q"?

You can move to e.g. a PDF file in a Dired buffer and click the right button.




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

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


Received: (at 18132) by debbugs.gnu.org; 23 May 2024 07:17:13 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu May 23 03:17:13 2024
Received: from localhost ([127.0.0.1]:58675 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sA2hM-0007m1-M9
	for submit <at> debbugs.gnu.org; Thu, 23 May 2024 03:17:12 -0400
Received: from eggs.gnu.org ([209.51.188.92]:54162)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1sA2hI-0007lu-Ee
 for 18132 <at> debbugs.gnu.org; Thu, 23 May 2024 03:17:11 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1sA2h6-0006bW-5D; Thu, 23 May 2024 03:16:56 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=94FuRPtSf2QhGOmf26Ta9t83Pt+GbjJSuszq4vLWtf0=; b=kto+HuNtJbZR
 q3IN2y4e+R4AJc9ktMX7JRQmcAt0xclllPOaToWWhXNZwnviScKwIrVBVY5lacI2NWewRLaTJETwh
 GqiuJ0XVl4cQlv/J0C4SMBH/ilASxTWchfV5eJbGRlxkLrWFWqYHECoTH0M3TLUybwvh2j4vcZ8nK
 mbRCNDBe/7BWMBSf1zMe2jl6hQDYPMSZjQYRyJVqkCkJRoVQeaw6MDYb7H46oFcHbAPIiejRWOTHG
 Av8LOIRpwW55RuD9zq2rNEjsFTMVD1PDjvTci7Epa2L38089dmH10B7yK29KDvakrnlswlrCEUevx
 z8X1xIamXVhqzVDyfeGVGg==;
Date: Thu, 23 May 2024 10:16:54 +0300
Message-Id: <867cfl576h.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Juri Linkov <juri@HIDDEN>
In-Reply-To: <86h6epm9qj.fsf@HIDDEN> (message from Juri Linkov on
 Thu, 23 May 2024 09:19:40 +0300)
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <83zfz3dyae.fsf@HIDDEN> <86h6l9zorh.fsf@HIDDEN>
 <838r6kby1m.fsf@HIDDEN> <86msuz5cft.fsf@HIDDEN>
 <86ttp6j8ax.fsf@HIDDEN> <8334wp93ww.fsf@HIDDEN>
 <86v89lt6mk.fsf@HIDDEN> <83leag7loj.fsf@HIDDEN>
 <86o7f8ijnd.fsf@HIDDEN>
 <SJ0PR10MB5488CC45A78D0F5C8DEB9E86F380A@HIDDEN>
 <86y1eb8bi8.fsf@HIDDEN>
 <SJ0PR10MB5488EE4C9DF2A29900CCC1FAF387A@HIDDEN>
 <861qbz9r54.fsf@HIDDEN> <86fs0ef372.fsf@HIDDEN>
 <83y1e529a2.fsf@HIDDEN> <86sf4db0wf.fsf@HIDDEN>
 <835y1915hl.fsf@HIDDEN> <86r0jvbd26.fsf@HIDDEN>
 <86v836z8h6.fsf@HIDDEN> <86jzjm6mrb.fsf@HIDDEN>
 <86h6epm9qj.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 18132
Cc: 18132 <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: -3.3 (---)

> From: Juri Linkov <juri@HIDDEN>
> Cc: 18132 <at> debbugs.gnu.org
> Date: Thu, 23 May 2024 09:19:40 +0300
> 
> > What about optionally letting the system facilities present the menu
> > of appropriate commands and let the user select from that menu?
> 
> This is already implemented by the context menu in Dired.
> I've checked that the contents of this context menu is exactly
> the same as on the default OS file manager since both use XDG.

Can you tell me how to try that starting from "emacs -Q"?

Thanks.




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

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


Received: (at 18132) by debbugs.gnu.org; 23 May 2024 06:31:03 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu May 23 02:31:03 2024
Received: from localhost ([127.0.0.1]:58516 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1sA1yg-0007Hi-Q1
	for submit <at> debbugs.gnu.org; Thu, 23 May 2024 02:31:03 -0400
Received: from relay1-d.mail.gandi.net ([217.70.183.193]:51977)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1sA1yb-0007Gs-PE
 for 18132 <at> debbugs.gnu.org; Thu, 23 May 2024 02:30:58 -0400
Received: by mail.gandi.net (Postfix) with ESMTPSA id ACC5D24000A;
 Thu, 23 May 2024 06:30:24 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
In-Reply-To: <86jzjm6mrb.fsf@HIDDEN> (Eli Zaretskii's message of "Wed, 22 May
 2024 15:42:48 +0300")
Organization: LINKOV.NET
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <83zfz3dyae.fsf@HIDDEN> <86h6l9zorh.fsf@HIDDEN>
 <838r6kby1m.fsf@HIDDEN> <86msuz5cft.fsf@HIDDEN>
 <86ttp6j8ax.fsf@HIDDEN> <8334wp93ww.fsf@HIDDEN>
 <86v89lt6mk.fsf@HIDDEN> <83leag7loj.fsf@HIDDEN>
 <86o7f8ijnd.fsf@HIDDEN>
 <SJ0PR10MB5488CC45A78D0F5C8DEB9E86F380A@HIDDEN>
 <86y1eb8bi8.fsf@HIDDEN>
 <SJ0PR10MB5488EE4C9DF2A29900CCC1FAF387A@HIDDEN>
 <861qbz9r54.fsf@HIDDEN> <86fs0ef372.fsf@HIDDEN>
 <83y1e529a2.fsf@HIDDEN> <86sf4db0wf.fsf@HIDDEN>
 <835y1915hl.fsf@HIDDEN> <86r0jvbd26.fsf@HIDDEN>
 <86v836z8h6.fsf@HIDDEN> <86jzjm6mrb.fsf@HIDDEN>
Date: Thu, 23 May 2024 09:19:40 +0300
Message-ID: <86h6epm9qj.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain
X-GND-Sasl: juri@HIDDEN
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 18132
Cc: 18132 <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.7 (-)

> What about optionally letting the system facilities present the menu
> of appropriate commands and let the user select from that menu?

This is already implemented by the context menu in Dired.
I've checked that the contents of this context menu is exactly
the same as on the default OS file manager since both use XDG.




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

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


Received: (at 18132) by debbugs.gnu.org; 22 May 2024 12:43:09 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed May 22 08:43:09 2024
Received: from localhost ([127.0.0.1]:55737 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s9lJF-0002Iu-5f
	for submit <at> debbugs.gnu.org; Wed, 22 May 2024 08:43:09 -0400
Received: from eggs.gnu.org ([209.51.188.92]:47502)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1s9lJC-0002IY-R3
 for 18132 <at> debbugs.gnu.org; Wed, 22 May 2024 08:43:07 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1s9lIz-0008Cd-TY; Wed, 22 May 2024 08:42:54 -0400
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=MIME-Version:References:Subject:In-Reply-To:To:From:
 Date; bh=Y1nATD+nWx0P7J78mhNYwB6zPrsi5TDBf9GukxYu768=; b=rTFiZCJhW8C87Ec8qy8X
 S3GsXKzzyud1Er8Bcj+ssnVUgwwHXFfVbSx75q3JuDw8+oGJUsD/tjYmlX7JmRxhwdxz3cFb84zl0
 HLv3S11qmCOB/i1L+eRLJ9eBGRLQLYV6tx3l6cUQLDN8FiHGjNVaODc+T06GaGPniAMadpWhcCxIw
 GHSWLYWv2nusvsTuMTo1oVSMIr3PM0djq0FawVq9/PIojwJDLGfWqr5Me2RlOyCQ9VcuQ5Yxk6Zbv
 VRY2qOaVV1ghSXePgWFKt2AzEhm9UzUkeSLKKz8PVgWrsxbXi/p5ZUoDsrXv8pjR0jUHMy0ZGlNlH
 DKF1WKztYlfmcQ==;
Date: Wed, 22 May 2024 15:42:48 +0300
Message-Id: <86jzjm6mrb.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Juri Linkov <juri@HIDDEN>
In-Reply-To: <86v836z8h6.fsf@HIDDEN> (message from Juri Linkov on
 Wed, 22 May 2024 09:16:18 +0300)
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <83leaofebt.fsf@HIDDEN> <86edgfk37h.fsf@HIDDEN>
 <83zfz3dyae.fsf@HIDDEN> <86h6l9zorh.fsf@HIDDEN>
 <838r6kby1m.fsf@HIDDEN> <86msuz5cft.fsf@HIDDEN>
 <86ttp6j8ax.fsf@HIDDEN> <8334wp93ww.fsf@HIDDEN>
 <86v89lt6mk.fsf@HIDDEN> <83leag7loj.fsf@HIDDEN>
 <86o7f8ijnd.fsf@HIDDEN>
 <SJ0PR10MB5488CC45A78D0F5C8DEB9E86F380A@HIDDEN>
 <86y1eb8bi8.fsf@HIDDEN>
 <SJ0PR10MB5488EE4C9DF2A29900CCC1FAF387A@HIDDEN>
 <861qbz9r54.fsf@HIDDEN> <86fs0ef372.fsf@HIDDEN>
 <83y1e529a2.fsf@HIDDEN> <86sf4db0wf.fsf@HIDDEN>
 <835y1915hl.fsf@HIDDEN> <86r0jvbd26.fsf@HIDDEN>
 <86v836z8h6.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Debbugs-Envelope-To: 18132
Cc: 18132 <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>

--=-=-=
Content-Type: text/plain

> From: Juri Linkov <juri@HIDDEN>
> Cc: 18132 <at> debbugs.gnu.org
> Date: Wed, 22 May 2024 09:16:18 +0300
> 
> > I completely agree.  This is what I tried to do,
> > but couldn't find a way to refactor this amalgamation
> > in dired-guess-shell-alist-default.  We need to split it
> > to two parts, so users without XDG will have:
> >
> > 1. better ones from dired-guess-shell-alist-default
> > 2. worse ones from dired-guess-shell-alist-default
> >
> > And users with XDG should be able to have:
> >
> > 1. better ones from dired-guess-shell-alist-default
> > 2. XDG commands
> > 3. worse ones from dired-guess-shell-alist-default
> >
> > Probably I'll move the worse ones to a new variable
> > 'dired-guess-shell-alist-default-2'.
> 
> Ok, here is a new list 'dired-guess-shell-alist-optional'
> that contains rare commands that don't exist on many systems.
> 
> So now the default order of a list of commands to select with M-n
> for M-!, ! in Dired and the Dired context menu with this patch
> is the following:
> 
> 1. commands from dired-guess-shell-alist-user
> 2. commands from dired-guess-shell-alist-default
> 3. commands found by XDG on user's system
> 4. commands found by mailcap on user's system
> 5. rare commands from dired-guess-shell-alist-optional

What about optionally letting the system facilities present the menu
of appropriate commands and let the user select from that menu?  E.g.,
on MS-Windows I can do

  (w32-shell-execute "openas" "d:/foo/bar/baz.pdf")

and get this menu to select from:


--=-=-=
Content-Type: image/png
Content-Disposition: attachment; filename=OpenAs.png
Content-Transfer-Encoding: base64

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
YII=
--=-=-=
Content-Type: text/plain


I'd expect XDG to be able to do something very similar, can it?  If
so, can we offer that as optional behavior?

Thanks.

--=-=-=--




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

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


Received: (at 18132) by debbugs.gnu.org; 22 May 2024 06:17:30 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed May 22 02:17:30 2024
Received: from localhost ([127.0.0.1]:53683 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1s9fI1-0006bi-9z
	for submit <at> debbugs.gnu.org; Wed, 22 May 2024 02:17:29 -0400
Received: from relay1-d.mail.gandi.net ([217.70.183.193]:44701)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1s9fHx-0006bT-PN
 for 18132 <at> debbugs.gnu.org; Wed, 22 May 2024 02:17:28 -0400
Received: by mail.gandi.net (Postfix) with ESMTPSA id 20B2824000A;
 Wed, 22 May 2024 06:17:13 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
In-Reply-To: <86r0jvbd26.fsf@HIDDEN> (Juri Linkov's message of "Sat, 
 09 Dec 2023 19:13:13 +0200")
Organization: LINKOV.NET
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <83leaofebt.fsf@HIDDEN> <86edgfk37h.fsf@HIDDEN>
 <83zfz3dyae.fsf@HIDDEN> <86h6l9zorh.fsf@HIDDEN>
 <838r6kby1m.fsf@HIDDEN> <86msuz5cft.fsf@HIDDEN>
 <86ttp6j8ax.fsf@HIDDEN> <8334wp93ww.fsf@HIDDEN>
 <86v89lt6mk.fsf@HIDDEN> <83leag7loj.fsf@HIDDEN>
 <86o7f8ijnd.fsf@HIDDEN>
 <SJ0PR10MB5488CC45A78D0F5C8DEB9E86F380A@HIDDEN>
 <86y1eb8bi8.fsf@HIDDEN>
 <SJ0PR10MB5488EE4C9DF2A29900CCC1FAF387A@HIDDEN>
 <861qbz9r54.fsf@HIDDEN> <86fs0ef372.fsf@HIDDEN>
 <83y1e529a2.fsf@HIDDEN> <86sf4db0wf.fsf@HIDDEN>
 <835y1915hl.fsf@HIDDEN> <86r0jvbd26.fsf@HIDDEN>
Date: Wed, 22 May 2024 09:16:18 +0300
Message-ID: <86v836z8h6.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-GND-Sasl: juri@HIDDEN
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 18132
Cc: 18132 <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.7 (-)

--=-=-=
Content-Type: text/plain

>>> https://lists.gnu.org/archive/html/bug-gnu-emacs/2021-10/msg01952.html
>>
>> This says two things:
>>
>>   . some commands in the list are less capable then others
>>   . XDG can do the job better
>>
>> To the first point, my response would be: put the better ones first in
>> the list, but leave the worse ones in the list for those users who
>> don't have the better alternatives.
>
> I completely agree.  This is what I tried to do,
> but couldn't find a way to refactor this amalgamation
> in dired-guess-shell-alist-default.  We need to split it
> to two parts, so users without XDG will have:
>
> 1. better ones from dired-guess-shell-alist-default
> 2. worse ones from dired-guess-shell-alist-default
>
> And users with XDG should be able to have:
>
> 1. better ones from dired-guess-shell-alist-default
> 2. XDG commands
> 3. worse ones from dired-guess-shell-alist-default
>
> Probably I'll move the worse ones to a new variable
> 'dired-guess-shell-alist-default-2'.

Ok, here is a new list 'dired-guess-shell-alist-optional'
that contains rare commands that don't exist on many systems.

So now the default order of a list of commands to select with M-n
for M-!, ! in Dired and the Dired context menu with this patch
is the following:

1. commands from dired-guess-shell-alist-user
2. commands from dired-guess-shell-alist-default
3. commands found by XDG on user's system
4. commands found by mailcap on user's system
5. rare commands from dired-guess-shell-alist-optional


--=-=-=
Content-Type: text/x-diff
Content-Disposition: inline; filename=dired-guess-shell-alist-optional.patch

diff --git a/lisp/dired.el b/lisp/dired.el
index 28ec187e666..b7c42318946 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -443,8 +443,9 @@ dired-guess-shell-case-fold-search
 
 (defcustom dired-guess-shell-alist-user nil
   "User-defined alist of rules for suggested commands.
-These rules take precedence over the predefined rules in the variable
-`dired-guess-shell-alist-default' (to which they are prepended).
+These rules take precedence over the predefined rules in the variables
+`dired-guess-shell-alist-default' and `dired-guess-shell-alist-optional'
+\(to which they are prepended).
 
 Each element of this list looks like
 
diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el
index 22c6881ae35..58d5a74f269 100644
--- a/lisp/dired-aux.el
+++ b/lisp/dired-aux.el
@@ -868,8 +868,8 @@ dired-do-shell-command
 the list of file names explicitly with the FILE-LIST argument, which
 can be produced by `dired-get-marked-files', for example.
 
-`dired-guess-shell-alist-default' and
-`dired-guess-shell-alist-user' are consulted when the user is
+`dired-guess-shell-alist-default', `dired-guess-shell-alist-optional'
+and `dired-guess-shell-alist-user' are consulted when the user is
 prompted for the shell command to use interactively.
 
 Also see the `dired-confirm-shell-command' variable."
@@ -1068,8 +1068,8 @@ dired-shell-command
 ;; * `dired-guess-shell-command' calls `dired-guess-default' with list of
 ;;    marked files.
 ;;
-;; * Parse `dired-guess-shell-alist-user' and
-;;   `dired-guess-shell-alist-default' (in that order) for the first REGEXP
+;; * Parse `dired-guess-shell-alist-user', `dired-guess-shell-alist-default',
+;;   `dired-guess-shell-alist-optional' (in that order) for the first REGEXP
 ;;   that matches the first file in the file list.
 ;;
 ;; * If the REGEXP matches all the entries of the file list then evaluate
@@ -1219,28 +1219,10 @@ dired-guess-shell-alist-default
                   " " dired-guess-shell-znew-switches))
    '("\\.pod\\'" "perldoc" "pod2man * | nroff -man")
 
-   '("\\.dvi\\'" "xdvi" "dvips")	; preview and printing
-   '("\\.au\\'" "play")			; play Sun audiofiles
-   '("\\.mpe?g\\'\\|\\.avi\\'" "xine -p")
-   '("\\.ogg\\'" "ogg123")
-   '("\\.mp3\\'" "mpg123")
-   '("\\.wav\\'" "play")
    '("\\.uu\\'" "uudecode")		; for uudecoded files
-   '("\\.hqx\\'" "mcvert")
    '("\\.sh\\'" "sh")			; execute shell scripts
-   '("\\.xbm\\'" "bitmap")		; view X11 bitmaps
-   '("\\.gp\\'" "gnuplot")
-   '("\\.p[bgpn]m\\'" "xloadimage")
-   '("\\.gif\\'" "xloadimage")		; view gif pictures
-   '("\\.tif\\'" "xloadimage")
-   '("\\.png\\'" "display")		; xloadimage 4.1 doesn't grok PNG
-   '("\\.jpe?g\\'" "xloadimage")
-   '("\\.fig\\'" "xfig")		; edit fig pictures
-   '("\\.out\\'" "xgraph")		; for plotting purposes.
    '("\\.tex\\'" "latex" "tex")
    '("\\.texi\\(nfo\\)?\\'" "makeinfo" "texi2dvi")
-   '("\\.pdf\\'" "xpdf")
-   '("\\.doc\\'" "antiword" "strings")
    '("\\.rpm\\'" "rpm -qilp" "rpm -ivh")
    '("\\.dia\\'" "dia")
    '("\\.mgp\\'" "mgp")
@@ -1269,7 +1251,39 @@ dired-guess-shell-alist-default
 
    '("\\.sign?\\'" "gpg --verify"))
   "Default alist used for shell command guessing.
-See `dired-guess-shell-alist-user'.")
+See also `dired-guess-shell-alist-optional' and
+`dired-guess-shell-alist-user'.")
+
+(defvar dired-guess-shell-alist-optional
+  (list
+   '("\\.dvi\\'" "xdvi" "dvips")	; preview and printing
+   '("\\.au\\'" "play")			; play Sun audiofiles
+   '("\\.mpe?g\\'\\|\\.avi\\'" "xine -p")
+   '("\\.ogg\\'" "ogg123")
+   '("\\.mp3\\'" "mpg123")
+   '("\\.wav\\'" "play")
+   '("\\.hqx\\'" "mcvert")
+   '("\\.xbm\\'" "bitmap")		; view X11 bitmaps
+   '("\\.gp\\'" "gnuplot")
+   '("\\.p[bgpn]m\\'" "xloadimage")
+   '("\\.gif\\'" "xloadimage")		; view gif pictures
+   '("\\.tif\\'" "xloadimage")
+   '("\\.png\\'" "display")		; xloadimage 4.1 doesn't grok PNG
+   '("\\.jpe?g\\'" "xloadimage")
+   '("\\.fig\\'" "xfig")		; edit fig pictures
+   '("\\.out\\'" "xgraph")		; for plotting purposes.
+   '("\\.pdf\\'" "xpdf")
+   '("\\.doc\\'" "antiword" "strings"))
+  "Optional alist used for shell command guessing.
+Unlike `dired-guess-shell-alist-default' that contains mostly the
+standard commands that handle the files with corresponding extensions
+such as the `tar' command handling the files with the `.tar' extension,
+this list contains the commands that don't exist on many systems
+where other alternatives are available.  So this needs to be in
+a separate list not to conflict with existing commands provided
+by mailcap and XDG.
+
+See also `dired-guess-shell-alist-user'.")
 
 (defun dired-guess-default (files)
   "Return a shell command, or a list of commands, appropriate for FILES.
@@ -1289,7 +1303,8 @@ dired-guess-default
                                       (string-match-p (car elem) file))
                                     files))
                                  (append dired-guess-shell-alist-user
-                                         dired-guess-shell-alist-default)))
+                                         dired-guess-shell-alist-default
+                                         dired-guess-shell-alist-optional)))
              nil)))))
     (if (length= programs 1)
         (car programs)
@@ -1323,13 +1338,21 @@ dired-guess-shell-command
       (if (equal val "") default val))))
 
 (defcustom shell-command-guess-functions
-  '(shell-command-guess-dired)
+  '(shell-command-guess-dired-optional
+    shell-command-guess-mailcap
+    shell-command-guess-xdg
+    shell-command-guess-dired-default
+    shell-command-guess-dired-user)
   "List of functions that guess shell commands for files.
 Each function receives a list of commands and a list of file names
 and should return the same list of commands with changes
-such as added new commands."
+such as new commands added to the beginning of the list.
+In this case the commands from the last entry
+will be at the top of the resulted list."
   :type '(repeat
-          (choice (function-item shell-command-guess-dired)
+          (choice (function-item shell-command-guess-dired-user)
+                  (function-item shell-command-guess-dired-default)
+                  (function-item shell-command-guess-dired-optional)
                   (function-item shell-command-guess-mailcap)
                   (function-item shell-command-guess-xdg)
                   (function-item shell-command-guess-open)
@@ -1350,9 +1373,29 @@ shell-command-guess
                         nil))
     commands))
 
-(defun shell-command-guess-dired (commands files)
-  "Populate COMMANDS using `dired-guess-default'."
-  (append (ensure-list (dired-guess-default files)) commands))
+(defun shell-command-guess-dired-user (commands files)
+  "Populate COMMANDS using `dired-guess-shell-alist-user'.
+This excludes `dired-guess-shell-alist-default' and
+`dired-guess-shell-alist-optional'."
+  (let ((dired-guess-shell-alist-default nil)
+        (dired-guess-shell-alist-optional nil))
+    (append (ensure-list (dired-guess-default files)) commands)))
+
+(defun shell-command-guess-dired-default (commands files)
+  "Populate COMMANDS using `dired-guess-shell-alist-default'.
+This excludes `dired-guess-shell-alist-user' and
+`dired-guess-shell-alist-optional'."
+  (let ((dired-guess-shell-alist-user nil)
+        (dired-guess-shell-alist-optional nil))
+    (append (ensure-list (dired-guess-default files)) commands)))
+
+(defun shell-command-guess-dired-optional (commands files)
+  "Populate COMMANDS using `dired-guess-shell-alist-optional'.
+This excludes `dired-guess-shell-alist-user' and
+`dired-guess-shell-alist-default'."
+  (let ((dired-guess-shell-alist-user nil)
+        (dired-guess-shell-alist-default nil))
+    (append (ensure-list (dired-guess-default files)) commands)))
 
 (declare-function mailcap-file-default-commands "mailcap" (files))
 

--=-=-=--




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

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


Received: (at 18132) by debbugs.gnu.org; 9 Dec 2023 17:23:19 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Dec 09 12:23:18 2023
Received: from localhost ([127.0.0.1]:48845 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rC12p-0000W4-ER
	for submit <at> debbugs.gnu.org; Sat, 09 Dec 2023 12:23:18 -0500
Received: from relay9-d.mail.gandi.net ([2001:4b98:dc4:8::229]:55485)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1rC12k-0000Vl-55
 for 18132 <at> debbugs.gnu.org; Sat, 09 Dec 2023 12:23:14 -0500
Received: by mail.gandi.net (Postfix) with ESMTPSA id 53C7CFF809;
 Sat,  9 Dec 2023 17:22:47 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
In-Reply-To: <835y1915hl.fsf@HIDDEN> (Eli Zaretskii's message of "Fri, 08 Dec
 2023 10:08:22 +0200")
Organization: LINKOV.NET
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <86y1eoxtrr.fsf@HIDDEN> <83leaofebt.fsf@HIDDEN>
 <86edgfk37h.fsf@HIDDEN> <83zfz3dyae.fsf@HIDDEN>
 <86h6l9zorh.fsf@HIDDEN> <838r6kby1m.fsf@HIDDEN>
 <86msuz5cft.fsf@HIDDEN> <86ttp6j8ax.fsf@HIDDEN>
 <8334wp93ww.fsf@HIDDEN> <86v89lt6mk.fsf@HIDDEN>
 <83leag7loj.fsf@HIDDEN> <86o7f8ijnd.fsf@HIDDEN>
 <SJ0PR10MB5488CC45A78D0F5C8DEB9E86F380A@HIDDEN>
 <86y1eb8bi8.fsf@HIDDEN>
 <SJ0PR10MB5488EE4C9DF2A29900CCC1FAF387A@HIDDEN>
 <861qbz9r54.fsf@HIDDEN> <86fs0ef372.fsf@HIDDEN>
 <83y1e529a2.fsf@HIDDEN> <86sf4db0wf.fsf@HIDDEN>
 <835y1915hl.fsf@HIDDEN>
Date: Sat, 09 Dec 2023 19:13:13 +0200
Message-ID: <86r0jvbd26.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain
X-GND-Sasl: juri@HIDDEN
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 18132
Cc: 18132 <at> debbugs.gnu.org, drew.adams@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.7 (-)

>> https://lists.gnu.org/archive/html/bug-gnu-emacs/2021-10/msg01952.html
>
> This says two things:
>
>   . some commands in the list are less capable then others
>   . XDG can do the job better
>
> To the first point, my response would be: put the better ones first in
> the list, but leave the worse ones in the list for those users who
> don't have the better alternatives.

I completely agree.  This is what I tried to do,
but couldn't find a way to refactor this amalgamation
in dired-guess-shell-alist-default.  We need to split it
to two parts, so users without XDG will have:

1. better ones from dired-guess-shell-alist-default
2. worse ones from dired-guess-shell-alist-default

And users with XDG should be able to have:

1. better ones from dired-guess-shell-alist-default
2. XDG commands
3. worse ones from dired-guess-shell-alist-default

Probably I'll move the worse ones to a new variable
'dired-guess-shell-alist-default-2'.




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

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


Received: (at 18132) by debbugs.gnu.org; 8 Dec 2023 08:08:31 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Dec 08 03:08:31 2023
Received: from localhost ([127.0.0.1]:43729 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rBVuR-00030P-4p
	for submit <at> debbugs.gnu.org; Fri, 08 Dec 2023 03:08:31 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10]:38880)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1rBVuM-0002zr-8j
 for 18132 <at> debbugs.gnu.org; Fri, 08 Dec 2023 03:08:29 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1rBVu3-00046p-CB; Fri, 08 Dec 2023 03:08:07 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=cUPcSt+gzFhII8LLVZs8aBb4Qmkq9mLEKnqFmFUTe00=; b=Yy95b4jLcW9d
 2czeRne9nPtIix+uCoEUyvU9ABRt21032YwaCXGeyMULFAudZDe+uQZP0w1Ax5qZnrw/nY5EjREF+
 zGYSduJvZX29WvMCL7iVLFDQcM0VmQx7Q66fz8YxyI82SkvVtAMIQTRDYQzS2eja8E6qTP4b3D8e7
 nb1O6D7+ds6wU3TcPc8R9hINdk7tNNi0lLYRyT8GaA+6SE0XfP+I5/HXYqkx874FnAqMLTjwl5obh
 MvsxLZRsmIxvbmVWOEdWHJjXDB/POo0793HsBU+BXRQA0a6I7K+L/ORei0/67VM5hspr53rPEbwei
 kxwTUTxc+uZ6riVc3DEaeg==;
Date: Fri, 08 Dec 2023 10:08:22 +0200
Message-Id: <835y1915hl.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Juri Linkov <juri@HIDDEN>
In-Reply-To: <86sf4db0wf.fsf@HIDDEN> (message from Juri Linkov on
 Fri, 08 Dec 2023 09:37:20 +0200)
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <83ilxn3qpo.fsf@HIDDEN> <878ryizwyi.fsf@HIDDEN>
 <86y1eoxtrr.fsf@HIDDEN> <83leaofebt.fsf@HIDDEN>
 <86edgfk37h.fsf@HIDDEN> <83zfz3dyae.fsf@HIDDEN>
 <86h6l9zorh.fsf@HIDDEN> <838r6kby1m.fsf@HIDDEN>
 <86msuz5cft.fsf@HIDDEN> <86ttp6j8ax.fsf@HIDDEN>
 <8334wp93ww.fsf@HIDDEN> <86v89lt6mk.fsf@HIDDEN>
 <83leag7loj.fsf@HIDDEN> <86o7f8ijnd.fsf@HIDDEN>
 <SJ0PR10MB5488CC45A78D0F5C8DEB9E86F380A@HIDDEN>
 <86y1eb8bi8.fsf@HIDDEN>
 <SJ0PR10MB5488EE4C9DF2A29900CCC1FAF387A@HIDDEN>
 <861qbz9r54.fsf@HIDDEN> <86fs0ef372.fsf@HIDDEN>
 <83y1e529a2.fsf@HIDDEN> <86sf4db0wf.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 18132
Cc: 18132 <at> debbugs.gnu.org, drew.adams@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 (---)

> From: Juri Linkov <juri@HIDDEN>
> Cc: drew.adams@HIDDEN,  18132 <at> debbugs.gnu.org
> Date: Fri, 08 Dec 2023 09:37:20 +0200
> 
> > Thanks.  However, to justify such significant changes in this
> > database, we need much more details: we need to know, for each guess
> > you want to disable or delete, when and on what platform(s) is or was
> > it true, when and why and on what platform(s) it stopped being true,
> > and what replacement(s) are available on modern platforms for those
> > commands that are no longer useful guesses.
> 
> Do you really think it's possible to get a list of all popular commands
> available on all platforms?

Maybe not all commands on all platforms, but at least we should
investigate those you are suggesting to remove.  Here's the list of
them:

  dvips
  xdvi
  play
  xine
  ogg123
  mpg123
  bitmap
  xloadimage
  display
  xpdf
  antiword
  strings

At least some of those I recognize: xdvi and dvips are from TeX Live;
xloadimage is probably from X, antiword is still available (I think),
and strings is part of GNU Binutils, so should be on any system that
can build programs.  So I'd like to understand better why we are
removing those.

> > And if the guesses you are removing are supposed to be guessed better
> > by XDG, then we should do that in a way that still supports systems
> > without XDG.
> 
> This is just a random list of arbitrary commands.
> And the problem is that dired doesn't check with 'executable-find'
> if any of them is really installed.

Well, then maybe Dired should indeed use executable-find?
Or maybe it's okay not to check, since (AFAIU) these are just
candidates to be suggested to the user?

> But OK, if you want 100% backward-compatibility,
> I will refactor out this list of obsolete commands
> into a separate variable used by default.
> Then a new value of existing option will allow omitting it.

See above: perhaps we should first discuss the principles that guide
you when you decide that some of these commands are "obsolete".

> Instead of this I'm addressing multiple complains.
> Here is just a few after a very quick search,
> I remember there were much more:
> 
> https://lists.gnu.org/archive/html/bug-gnu-emacs/2008-06/msg00202.html

This one seems to ask about adding a command not in the list.  And it
doesn't complain about xloadimage and display, it says the OP "didn't
like" them.

> https://lists.gnu.org/archive/html/bug-gnu-emacs/2021-10/msg01952.html

This says two things:

  . some commands in the list are less capable then others
  . XDG can do the job better

To the first point, my response would be: put the better ones first in
the list, but leave the worse ones in the list for those users who
don't have the better alternatives.

To the second point, I repeat what I already wrote in my previous
message: we should also support systems without XDG.




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

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


Received: (at 18132) by debbugs.gnu.org; 8 Dec 2023 07:48:24 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Dec 08 02:48:24 2023
Received: from localhost ([127.0.0.1]:43715 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rBVay-0002Bx-CY
	for submit <at> debbugs.gnu.org; Fri, 08 Dec 2023 02:48:24 -0500
Received: from relay7-d.mail.gandi.net ([217.70.183.200]:50793)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1rBVav-0002BM-BE
 for 18132 <at> debbugs.gnu.org; Fri, 08 Dec 2023 02:48:23 -0500
Received: by mail.gandi.net (Postfix) with ESMTPSA id AECD920003;
 Fri,  8 Dec 2023 07:48:00 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
In-Reply-To: <83y1e529a2.fsf@HIDDEN> (Eli Zaretskii's message of "Thu, 07 Dec
 2023 19:48:53 +0200")
Organization: LINKOV.NET
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <83ilxn3qpo.fsf@HIDDEN> <878ryizwyi.fsf@HIDDEN>
 <86y1eoxtrr.fsf@HIDDEN> <83leaofebt.fsf@HIDDEN>
 <86edgfk37h.fsf@HIDDEN> <83zfz3dyae.fsf@HIDDEN>
 <86h6l9zorh.fsf@HIDDEN> <838r6kby1m.fsf@HIDDEN>
 <86msuz5cft.fsf@HIDDEN> <86ttp6j8ax.fsf@HIDDEN>
 <8334wp93ww.fsf@HIDDEN> <86v89lt6mk.fsf@HIDDEN>
 <83leag7loj.fsf@HIDDEN> <86o7f8ijnd.fsf@HIDDEN>
 <SJ0PR10MB5488CC45A78D0F5C8DEB9E86F380A@HIDDEN>
 <86y1eb8bi8.fsf@HIDDEN>
 <SJ0PR10MB5488EE4C9DF2A29900CCC1FAF387A@HIDDEN>
 <861qbz9r54.fsf@HIDDEN> <86fs0ef372.fsf@HIDDEN>
 <83y1e529a2.fsf@HIDDEN>
Date: Fri, 08 Dec 2023 09:37:20 +0200
Message-ID: <86sf4db0wf.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain
X-GND-Sasl: juri@HIDDEN
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 18132
Cc: 18132 <at> debbugs.gnu.org, drew.adams@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.7 (-)

>> -   '("\\.dvi\\'" "xdvi" "dvips")	; preview and printing
>> -   '("\\.au\\'" "play")			; play Sun audiofiles
>> -   '("\\.mpe?g\\'\\|\\.avi\\'" "xine -p")
>> -   '("\\.ogg\\'" "ogg123")
>> -   '("\\.mp3\\'" "mpg123")
>> -   '("\\.wav\\'" "play")
>> -   '("\\.xbm\\'" "bitmap")		; view X11 bitmaps
>> -   '("\\.p[bgpn]m\\'" "xloadimage")
>> -   '("\\.gif\\'" "xloadimage")		; view gif pictures
>> -   '("\\.tif\\'" "xloadimage")
>> -   '("\\.png\\'" "display")		; xloadimage 4.1 doesn't grok PNG
>> -   '("\\.jpe?g\\'" "xloadimage")
>> -   '("\\.pdf\\'" "xpdf")
>
> Thanks.  However, to justify such significant changes in this
> database, we need much more details: we need to know, for each guess
> you want to disable or delete, when and on what platform(s) is or was
> it true, when and why and on what platform(s) it stopped being true,
> and what replacement(s) are available on modern platforms for those
> commands that are no longer useful guesses.

Do you really think it's possible to get a list of all popular commands
available on all platforms?

> And if the guesses you are removing are supposed to be guessed better
> by XDG, then we should do that in a way that still supports systems
> without XDG.

This is just a random list of arbitrary commands.
And the problem is that dired doesn't check with 'executable-find'
if any of them is really installed.

But OK, if you want 100% backward-compatibility,
I will refactor out this list of obsolete commands
into a separate variable used by default.
Then a new value of existing option will allow omitting it.

> We cannot make such changes based only on your personal experience on
> the system which you use, because we don't want to break other users'
> setups.  So we must have these details to make this kind of decisions.

I don't know where you get such an idea that it's based
on my personal experience.  For my use I customized
dired-guess-shell-alist-user long ago.

Instead of this I'm addressing multiple complains.
Here is just a few after a very quick search,
I remember there were much more:

https://lists.gnu.org/archive/html/bug-gnu-emacs/2008-06/msg00202.html
https://lists.gnu.org/archive/html/bug-gnu-emacs/2021-10/msg01952.html




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

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


Received: (at 18132) by debbugs.gnu.org; 7 Dec 2023 17:49:09 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Dec 07 12:49:09 2023
Received: from localhost ([127.0.0.1]:43081 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rBIUn-000264-0G
	for submit <at> debbugs.gnu.org; Thu, 07 Dec 2023 12:49:09 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10]:41946)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1rBIUi-00025V-Iu
 for 18132 <at> debbugs.gnu.org; Thu, 07 Dec 2023 12:49:06 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1rBIUP-00007B-S9; Thu, 07 Dec 2023 12:48:45 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=sEdCZ/S8yWn73sRLFjUwUx8mMWi5YvZuonvniMqu5oI=; b=EfouMWwo27BZ
 E9arJTkcpMaP9iw0qCmuT4zq13Zc3wryw6Z1C3AjGOVksQQr67TP+Dr3S+Td9b7iUmI9r6QgDQp4N
 BdcqXEB0hxg1DB2SMxONYqyM43l+1NjS5o+jWf9Jlh5oM78iMJc1w9XzIhm5pkE3vrZTMH8UXOv4x
 HRw4da/ZG/RdrxaTkuHd+HU66/a0USdAa3ZqTgMbatjwH7vQsUcA0B8sOmzAGfcE4Q4Ks8/+XsRmG
 0mHIH2qOMDfNGX6+hClKrlkgAY1QkepUhWBH8VdcHJHx45SdpBZYYbjt7VmkzgtkLfvB3R4sPuRgI
 mOCx97vEAgK1Hn2L0LDoiw==;
Date: Thu, 07 Dec 2023 19:48:53 +0200
Message-Id: <83y1e529a2.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Juri Linkov <juri@HIDDEN>
In-Reply-To: <86fs0ef372.fsf@HIDDEN> (message from Juri Linkov on
 Thu, 07 Dec 2023 19:33:53 +0200)
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <CADwFkmkZMXdF5bdCBvgPKXz0WAEcMzdrWODF6hZCYEQYetp0GA@HIDDEN>
 <CAOnWdog3bTNSVBEprKoFX8yGEWVxrdh+Vu5kCx6Ew=mgHsWrtQ@HIDDEN>
 <83ilxn3qpo.fsf@HIDDEN> <878ryizwyi.fsf@HIDDEN>
 <86y1eoxtrr.fsf@HIDDEN> <83leaofebt.fsf@HIDDEN>
 <86edgfk37h.fsf@HIDDEN> <83zfz3dyae.fsf@HIDDEN>
 <86h6l9zorh.fsf@HIDDEN> <838r6kby1m.fsf@HIDDEN>
 <86msuz5cft.fsf@HIDDEN> <86ttp6j8ax.fsf@HIDDEN>
 <8334wp93ww.fsf@HIDDEN> <86v89lt6mk.fsf@HIDDEN>
 <83leag7loj.fsf@HIDDEN> <86o7f8ijnd.fsf@HIDDEN>
 <SJ0PR10MB5488CC45A78D0F5C8DEB9E86F380A@HIDDEN>
 <86y1eb8bi8.fsf@HIDDEN>
 <SJ0PR10MB5488EE4C9DF2A29900CCC1FAF387A@HIDDEN>
 <861qbz9r54.fsf@HIDDEN> <86fs0ef372.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 18132
Cc: 18132 <at> debbugs.gnu.org, drew.adams@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 (---)

> From: Juri Linkov <juri@HIDDEN>
> Cc: Eli Zaretskii <eliz@HIDDEN>,  "18132 <at> debbugs.gnu.org"
>  <18132 <at> debbugs.gnu.org>
> Date: Thu, 07 Dec 2023 19:33:53 +0200
> 
> More problems: XDG has much better support for media files
> than dired-guess-shell-alist-default that contains many
> old obsolete and random commands for media files.
> OTOH, dired-guess-shell-alist-default has much better support
> for non-media files than XDG and mailcap.
> 
> So currently there is no way to configure
> shell-command-guess-functions to use only best commands.
> 
> When shell-command-guess-functions is configured to
> '(shell-command-guess-xdg shell-command-guess-dired)
> then images are opened with "xloadimage" that doesn't exist.
> 
> But when shell-command-guess-functions is configured to
> '(shell-command-guess-dired shell-command-guess-xdg)
> then images are opened with the existing program like "display",
> but then patches can't be applied, because XDG provides
> for patch files such useless commands as "more" and "less".
> 
> All this can be fixed by this patch that removes old
> media commands from 'dired-guess-shell-alist-default'.
> Then removed commands will not override media commands
> from shell-command-guess-xdg.
> 
> 
> diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el
> index 0998e76c410..de54968bdbe 100644
> --- a/lisp/dired-aux.el
> +++ b/lisp/dired-aux.el
> @@ -1216,28 +1216,28 @@ dired-guess-shell-alist-default
>                    " " dired-guess-shell-znew-switches))
>     '("\\.pod\\'" "perldoc" "pod2man * | nroff -man")
>  
> -   '("\\.dvi\\'" "xdvi" "dvips")	; preview and printing
> -   '("\\.au\\'" "play")			; play Sun audiofiles
> -   '("\\.mpe?g\\'\\|\\.avi\\'" "xine -p")
> -   '("\\.ogg\\'" "ogg123")
> -   '("\\.mp3\\'" "mpg123")
> -   '("\\.wav\\'" "play")
> +   ;; '("\\.dvi\\'" "xdvi" "dvips")	; preview and printing
> +   ;; '("\\.au\\'" "play")			; play Sun audiofiles
> +   ;; '("\\.mpe?g\\'\\|\\.avi\\'" "xine -p")
> +   ;; '("\\.ogg\\'" "ogg123")
> +   ;; '("\\.mp3\\'" "mpg123")
> +   ;; '("\\.wav\\'" "play")
>     '("\\.uu\\'" "uudecode")		; for uudecoded files
>     '("\\.hqx\\'" "mcvert")
>     '("\\.sh\\'" "sh")			; execute shell scripts
> -   '("\\.xbm\\'" "bitmap")		; view X11 bitmaps
> +   ;; '("\\.xbm\\'" "bitmap")		; view X11 bitmaps
>     '("\\.gp\\'" "gnuplot")
> -   '("\\.p[bgpn]m\\'" "xloadimage")
> -   '("\\.gif\\'" "xloadimage")		; view gif pictures
> -   '("\\.tif\\'" "xloadimage")
> -   '("\\.png\\'" "display")		; xloadimage 4.1 doesn't grok PNG
> -   '("\\.jpe?g\\'" "xloadimage")
> +   ;; '("\\.p[bgpn]m\\'" "xloadimage")
> +   ;; '("\\.gif\\'" "xloadimage")		; view gif pictures
> +   ;; '("\\.tif\\'" "xloadimage")
> +   ;; '("\\.png\\'" "display")		; xloadimage 4.1 doesn't grok PNG
> +   ;; '("\\.jpe?g\\'" "xloadimage")
>     '("\\.fig\\'" "xfig")		; edit fig pictures
>     '("\\.out\\'" "xgraph")		; for plotting purposes.
>     '("\\.tex\\'" "latex" "tex")
>     '("\\.texi\\(nfo\\)?\\'" "makeinfo" "texi2dvi")
> -   '("\\.pdf\\'" "xpdf")
> -   '("\\.doc\\'" "antiword" "strings")
> +   ;; '("\\.pdf\\'" "xpdf")
> +   ;; '("\\.doc\\'" "antiword" "strings")
>     '("\\.rpm\\'" "rpm -qilp" "rpm -ivh")
>     '("\\.dia\\'" "dia")
>     '("\\.mgp\\'" "mgp")

Thanks.  However, to justify such significant changes in this
database, we need much more details: we need to know, for each guess
you want to disable or delete, when and on what platform(s) is or was
it true, when and why and on what platform(s) it stopped being true,
and what replacement(s) are available on modern platforms for those
commands that are no longer useful guesses.

And if the guesses you are removing are supposed to be guessed better
by XDG, then we should do that in a way that still supports systems
without XDG.

We cannot make such changes based only on your personal experience on
the system which you use, because we don't want to break other users'
setups.  So we must have these details to make this kind of decisions.




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

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


Received: (at 18132) by debbugs.gnu.org; 7 Dec 2023 17:34:31 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Dec 07 12:34:31 2023
Received: from localhost ([127.0.0.1]:43055 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rBIGd-0001dd-3K
	for submit <at> debbugs.gnu.org; Thu, 07 Dec 2023 12:34:31 -0500
Received: from relay1-d.mail.gandi.net ([217.70.183.193]:47583)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1rBIGa-0001cz-Sg
 for 18132 <at> debbugs.gnu.org; Thu, 07 Dec 2023 12:34:29 -0500
Received: by mail.gandi.net (Postfix) with ESMTPSA id 55BD0240004;
 Thu,  7 Dec 2023 17:34:08 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
To: Drew Adams <drew.adams@HIDDEN>
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
In-Reply-To: <861qbz9r54.fsf@HIDDEN> (Juri Linkov's message of "Wed, 
 06 Dec 2023 19:28:55 +0200")
Organization: LINKOV.NET
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <CADwFkmkZMXdF5bdCBvgPKXz0WAEcMzdrWODF6hZCYEQYetp0GA@HIDDEN>
 <CAOnWdog3bTNSVBEprKoFX8yGEWVxrdh+Vu5kCx6Ew=mgHsWrtQ@HIDDEN>
 <83ilxn3qpo.fsf@HIDDEN> <878ryizwyi.fsf@HIDDEN>
 <86y1eoxtrr.fsf@HIDDEN> <83leaofebt.fsf@HIDDEN>
 <86edgfk37h.fsf@HIDDEN> <83zfz3dyae.fsf@HIDDEN>
 <86h6l9zorh.fsf@HIDDEN> <838r6kby1m.fsf@HIDDEN>
 <86msuz5cft.fsf@HIDDEN> <86ttp6j8ax.fsf@HIDDEN>
 <8334wp93ww.fsf@HIDDEN> <86v89lt6mk.fsf@HIDDEN>
 <83leag7loj.fsf@HIDDEN> <86o7f8ijnd.fsf@HIDDEN>
 <SJ0PR10MB5488CC45A78D0F5C8DEB9E86F380A@HIDDEN>
 <86y1eb8bi8.fsf@HIDDEN>
 <SJ0PR10MB5488EE4C9DF2A29900CCC1FAF387A@HIDDEN>
 <861qbz9r54.fsf@HIDDEN>
Date: Thu, 07 Dec 2023 19:33:53 +0200
Message-ID: <86fs0ef372.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-GND-Sasl: juri@HIDDEN
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 18132
Cc: Eli Zaretskii <eliz@HIDDEN>,
 "18132 <at> debbugs.gnu.org" <18132 <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.7 (-)

--=-=-=
Content-Type: text/plain

> OK, now pushed.

More problems: XDG has much better support for media files
than dired-guess-shell-alist-default that contains many
old obsolete and random commands for media files.
OTOH, dired-guess-shell-alist-default has much better support
for non-media files than XDG and mailcap.

So currently there is no way to configure
shell-command-guess-functions to use only best commands.

When shell-command-guess-functions is configured to
'(shell-command-guess-xdg shell-command-guess-dired)
then images are opened with "xloadimage" that doesn't exist.

But when shell-command-guess-functions is configured to
'(shell-command-guess-dired shell-command-guess-xdg)
then images are opened with the existing program like "display",
but then patches can't be applied, because XDG provides
for patch files such useless commands as "more" and "less".

All this can be fixed by this patch that removes old
media commands from 'dired-guess-shell-alist-default'.
Then removed commands will not override media commands
from shell-command-guess-xdg.


--=-=-=
Content-Type: text/x-diff
Content-Disposition: inline; filename=dired-guess-shell-alist-default.patch

diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el
index 0998e76c410..de54968bdbe 100644
--- a/lisp/dired-aux.el
+++ b/lisp/dired-aux.el
@@ -1216,28 +1216,28 @@ dired-guess-shell-alist-default
                   " " dired-guess-shell-znew-switches))
    '("\\.pod\\'" "perldoc" "pod2man * | nroff -man")
 
-   '("\\.dvi\\'" "xdvi" "dvips")	; preview and printing
-   '("\\.au\\'" "play")			; play Sun audiofiles
-   '("\\.mpe?g\\'\\|\\.avi\\'" "xine -p")
-   '("\\.ogg\\'" "ogg123")
-   '("\\.mp3\\'" "mpg123")
-   '("\\.wav\\'" "play")
+   ;; '("\\.dvi\\'" "xdvi" "dvips")	; preview and printing
+   ;; '("\\.au\\'" "play")			; play Sun audiofiles
+   ;; '("\\.mpe?g\\'\\|\\.avi\\'" "xine -p")
+   ;; '("\\.ogg\\'" "ogg123")
+   ;; '("\\.mp3\\'" "mpg123")
+   ;; '("\\.wav\\'" "play")
    '("\\.uu\\'" "uudecode")		; for uudecoded files
    '("\\.hqx\\'" "mcvert")
    '("\\.sh\\'" "sh")			; execute shell scripts
-   '("\\.xbm\\'" "bitmap")		; view X11 bitmaps
+   ;; '("\\.xbm\\'" "bitmap")		; view X11 bitmaps
    '("\\.gp\\'" "gnuplot")
-   '("\\.p[bgpn]m\\'" "xloadimage")
-   '("\\.gif\\'" "xloadimage")		; view gif pictures
-   '("\\.tif\\'" "xloadimage")
-   '("\\.png\\'" "display")		; xloadimage 4.1 doesn't grok PNG
-   '("\\.jpe?g\\'" "xloadimage")
+   ;; '("\\.p[bgpn]m\\'" "xloadimage")
+   ;; '("\\.gif\\'" "xloadimage")		; view gif pictures
+   ;; '("\\.tif\\'" "xloadimage")
+   ;; '("\\.png\\'" "display")		; xloadimage 4.1 doesn't grok PNG
+   ;; '("\\.jpe?g\\'" "xloadimage")
    '("\\.fig\\'" "xfig")		; edit fig pictures
    '("\\.out\\'" "xgraph")		; for plotting purposes.
    '("\\.tex\\'" "latex" "tex")
    '("\\.texi\\(nfo\\)?\\'" "makeinfo" "texi2dvi")
-   '("\\.pdf\\'" "xpdf")
-   '("\\.doc\\'" "antiword" "strings")
+   ;; '("\\.pdf\\'" "xpdf")
+   ;; '("\\.doc\\'" "antiword" "strings")
    '("\\.rpm\\'" "rpm -qilp" "rpm -ivh")
    '("\\.dia\\'" "dia")
    '("\\.mgp\\'" "mgp")
@@ -1320,7 +1320,9 @@ dired-guess-shell-command
       (if (equal val "") default val))))
 
 (defcustom shell-command-guess-functions
-  '(shell-command-guess-dired)
+  '(shell-command-guess-mailcap
+    shell-command-guess-xdg
+    shell-command-guess-dired)
   "List of functions that guess shell commands for files.
 Each function receives a list of commands and a list of file names
 and should return the same list of commands with changes

--=-=-=--




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

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


Received: (at 18132) by debbugs.gnu.org; 6 Dec 2023 17:30:12 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Dec 06 12:30:12 2023
Received: from localhost ([127.0.0.1]:40355 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1rAvit-0002Vo-QV
	for submit <at> debbugs.gnu.org; Wed, 06 Dec 2023 12:30:11 -0500
Received: from relay1-d.mail.gandi.net ([2001:4b98:dc4:8::221]:54815)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1rAvis-00022J-Ub
 for 18132 <at> debbugs.gnu.org; Wed, 06 Dec 2023 12:30:11 -0500
Received: by mail.gandi.net (Postfix) with ESMTPSA id 973BF240005;
 Wed,  6 Dec 2023 17:29:50 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
To: Drew Adams <drew.adams@HIDDEN>
Subject: Re: [External] : bug#18132: Time for a smarter
 dired-guess-shell-alist-default? (dired-x.el)
In-Reply-To: <SJ0PR10MB5488EE4C9DF2A29900CCC1FAF387A@HIDDEN>
 (Drew Adams's message of "Sun, 3 Dec 2023 21:16:34 +0000")
Organization: LINKOV.NET
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <CAOnWdohzNADVbQrk-ZQvwWpcr4ewDtr-Hpvs-K5H+-TJfP-LGQ@HIDDEN>
 <CADwFkmkZMXdF5bdCBvgPKXz0WAEcMzdrWODF6hZCYEQYetp0GA@HIDDEN>
 <CAOnWdog3bTNSVBEprKoFX8yGEWVxrdh+Vu5kCx6Ew=mgHsWrtQ@HIDDEN>
 <83ilxn3qpo.fsf@HIDDEN> <878ryizwyi.fsf@HIDDEN>
 <86y1eoxtrr.fsf@HIDDEN> <83leaofebt.fsf@HIDDEN>
 <86edgfk37h.fsf@HIDDEN> <83zfz3dyae.fsf@HIDDEN>
 <86h6l9zorh.fsf@HIDDEN> <838r6kby1m.fsf@HIDDEN>
 <86msuz5cft.fsf@HIDDEN> <86ttp6j8ax.fsf@HIDDEN>
 <8334wp93ww.fsf@HIDDEN> <86v89lt6mk.fsf@HIDDEN>
 <83leag7loj.fsf@HIDDEN> <86o7f8ijnd.fsf@HIDDEN>
 <SJ0PR10MB5488CC45A78D0F5C8DEB9E86F380A@HIDDEN>
 <86y1eb8bi8.fsf@HIDDEN>
 <SJ0PR10MB5488EE4C9DF2A29900CCC1FAF387A@HIDDEN>
Date: Wed, 06 Dec 2023 19:28:55 +0200
Message-ID: <861qbz9r54.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain
X-GND-Sasl: juri@HIDDEN
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 18132
Cc: Eli Zaretskii <eliz@HIDDEN>,
 "18132 <at> debbugs.gnu.org" <18132 <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.7 (-)

> OK.  But why evaluate `system-type' over and
> over and over...  Just evaluate it once.

`system-type' is a variable, so it's not evaluated.

OK, now pushed.




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

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


Received: (at 18132) by debbugs.gnu.org; 3 Dec 2023 21:16:53 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Dec 03 16:16:53 2023
Received: from localhost ([127.0.0.1]:32864 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1r9tpd-0007oS-7F
	for submit <at> debbugs.gnu.org; Sun, 03 Dec 2023 16:16:53 -0500
Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]:46662)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <drew.adams@HIDDEN>) id 1r9tpZ-0007oI-9H
 for 18132 <at> debbugs.gnu.org; Sun, 03 Dec 2023 16:16:51 -0500
Received: from pps.filterd (m0246632.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id
 3B3LCPVH019364; Sun, 3 Dec 2023 21:16:38 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com;
 h=from : to : cc :
 subject : date : message-id : references : in-reply-to : content-type :
 content-transfer-encoding : mime-version; s=corp-2023-11-20;
 bh=zLR1F4hEcnz/PPSPTq+duwqCU9Knh7dEYLPMot2ivVk=;
 b=SpambKPReYyi8UZr95E5UjniM42CLElj2muvqtWf6c1utv5Z4uwuMOW3emgpvm9r0rlj
 o3t73Q4pc9JNsO4jvrnDEcBtTXaogYt+J4ik2fUloEXgTe82y8Kr8fdMgHeLnD0zjCJG
 XJWJKODBCw/osnfpDilNV++0LTQkac9/IA2a2CUYSB70f0XcVfjn7ybnoRvlT6wuaz13
 ZoAGq58+rkl5MiKrfwhAjhKFGJsHFzvfdCdtY1H37AX0Gu9WfC2JiSWCyGigI6YV38vD
 xaFr5/SiF+CRWBsZREXELhAGFLoYqNvZwG5J0Vsy0pilBuoYHP4VGZKLOKaWmjThbMzO Ww== 
Received: from iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com
 (iadpaimrmta02.appoci.oracle.com [147.154.18.20])
 by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3us1crr07k-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Sun, 03 Dec 2023 21:16:38 +0000
Received: from pps.filterd
 (iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1])
 by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.19/8.17.1.19)
 with ESMTP id 3B3KV1RR034399; Sun, 3 Dec 2023 21:16:37 GMT
Received: from nam02-sn1-obe.outbound.protection.outlook.com
 (mail-sn1nam02lp2041.outbound.protection.outlook.com [104.47.57.41])
 by iadpaimrmta02.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id
 3uqu14xa17-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Sun, 03 Dec 2023 21:16:37 +0000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=RkjeoDpWuxMBpyx2mfVuR5rjSfft0z6YxwXcqN/hwvJG/cITedv9xzPrTz/7bHXgSNT8P4cLhVg30iL3F5oapTwbukr7b+KAUl7/LlmXliNnCoo33KC7OqzV35EkfZ/zy/FZzxTIFfOpQvdEJ5JVnjtgyLaBBcuEelo27F6fYyMrCVU+ggkCGcjJaU4vvnPGEPeLe/MPyutfW7Vtg28dlD6LEmCIvEQ9YyEl6DS7oFa9ekMqmS/531yq3CuYlVVMGOiZQ/Gp3grwlHjrgZBGLS7xoqGb+CWmcQyRJktvF/TpesfERvn2SMXzmDNSSR73J2Bv+Y0evGFxVsvS4rlwKQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; 
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=zLR1F4hEcnz/PPSPTq+duwqCU9Knh7dEYLPMot2ivVk=;
 b=mEgEJtXirfmsQU9vO50uDYzZZwX8dO9nyiMCXX3wE4j0MIrjMN8XYpLvMXGQUxDVWbaJNUFSxnzhEiPOFF6XHu1g6shzObyzcDc3GIGxOqR3dTFUo+MtQ0vOzuUY6npZuE3dheSJqeWM9rskz9ASahAmLc+ClsFf4LwWDjx9HCUa7UrUZu3BU5bmRvJUeLisKTsrv754cW/AYX5jnz+JET3/jW6rg1tdLr9mq96SeW+yiuyHrLNI/JncC+TU+IXLg+SF5E6iHRB3CqcAzZzfE4By7Dz3JMEIJlcQa8TRfwHRkNxbfGWQSJg9ugbgBusrGmc3EUrhS59SetHV0jmjMA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=zLR1F4hEcnz/PPSPTq+duwqCU9Knh7dEYLPMot2ivVk=;
 b=tEG3k3AD7fL9k11OTk24TY40lp0BvfxuAjbF5pD26vtK2hayIpGH+ZBVOiwCmmWB3iuLeAxy54IsjLHfJtFtAyh1aPJtj3m+1kXwVS1CDN7seOf/WP5vVwW0gAFGzQ8/6lgxMZs/yXEAJcgMn5xVigL+yukMv1egR8AxcgogYYA=
Received: from SJ0PR10MB5488.namprd10.prod.outlook.com (2603:10b6:a03:37e::19)
 by DS0PR10MB6151.namprd10.prod.outlook.com (2603:10b6:8:c5::20) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.22; Sun, 3 Dec
 2023 21:16:35 +0000
Received: from SJ0PR10MB5488.namprd10.prod.outlook.com
 ([fe80::3b4c:a669:c229:47b4]) by SJ0PR10MB5488.namprd10.prod.outlook.com
 ([fe80::3b4c:a669:c229:47b4%7]) with mapi id 15.20.7046.033; Sun, 3 Dec 2023
 21:16:35 +0000
From: Drew Adams <drew.adams@HIDDEN>
To: Juri Linkov <juri@HIDDEN>
Subject: RE: [External] : bug#18132: Time for a smarter
 dired-guess-shell-alist-default? (dired-x.el)
Thread-Topic: [External] : bug#18132: Time for a smarter
 dired-guess-shell-alist-default? (dired-x.el)
Thread-Index: AQHaJgsFpMzSgusLoECNqoRF60pkDbCYD2Mw
Date: Sun, 3 Dec 2023 21:16:34 +0000
Message-ID: <SJ0PR10MB5488EE4C9DF2A29900CCC1FAF387A@HIDDEN>
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <CAOnWdojTXD0QvKDn8V6x4Unja6qZuZZ3Q1KqqU2yEDLNKRmNig@HIDDEN>
 <CADwFkm=Z+MWgbMnvrGiWo76cMeQ=q1xJHcZ-Uyc9QjThVULhQQ@HIDDEN>
 <CAOnWdohzNADVbQrk-ZQvwWpcr4ewDtr-Hpvs-K5H+-TJfP-LGQ@HIDDEN>
 <CADwFkmkZMXdF5bdCBvgPKXz0WAEcMzdrWODF6hZCYEQYetp0GA@HIDDEN>
 <CAOnWdog3bTNSVBEprKoFX8yGEWVxrdh+Vu5kCx6Ew=mgHsWrtQ@HIDDEN>
 <83ilxn3qpo.fsf@HIDDEN> <878ryizwyi.fsf@HIDDEN>
 <86y1eoxtrr.fsf@HIDDEN> <83leaofebt.fsf@HIDDEN>
 <86edgfk37h.fsf@HIDDEN> <83zfz3dyae.fsf@HIDDEN>
 <86h6l9zorh.fsf@HIDDEN> <838r6kby1m.fsf@HIDDEN>
 <86msuz5cft.fsf@HIDDEN> <86ttp6j8ax.fsf@HIDDEN>
 <8334wp93ww.fsf@HIDDEN> <86v89lt6mk.fsf@HIDDEN>
 <83leag7loj.fsf@HIDDEN> <86o7f8ijnd.fsf@HIDDEN>
 <SJ0PR10MB5488CC45A78D0F5C8DEB9E86F380A@HIDDEN>
 <86y1eb8bi8.fsf@HIDDEN>
In-Reply-To: <86y1eb8bi8.fsf@HIDDEN>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: SJ0PR10MB5488:EE_|DS0PR10MB6151:EE_
x-ms-office365-filtering-correlation-id: a33b88b0-d0ec-4239-ef3b-08dbf4452132
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: eHCHHYI5LtGa/Ls2zjxZ92CwjJHKTMK7mg9lhSsPdjx3fFNCAAzuPsVvVkQgOBOAPzaeldhHBiQbmKDS9/XtvpWmKw1Jn6M4/xsj4eDca7ZEDje0wGhE6a5jzLCUOgw9sRQ1Ar1q/z6WN4ji6/MbuBIlrji2wXqN/wqO69P8hPDwH4kP+L9yOAAJ+IngVIspQ4wUWWEq+vYwvPSk43TgPuaOeqmDWGd8GvuBd3QTLOfCItXY8HncHh8LyHwUOuPtCSNCNjjfP35o/ewMOPhSMkt2CdDnaX0aBBbjja3KDTvv1C4V7nBrTclS31AFfud06tNLBJg11WezseIGbQHCZpi+RxQGcmJp+lDLKXFFiFwWOr6RIV9B+5sd9WbueTXA9wYYwY/gj9cb1VXgo83HD6Co6eYQ4pSFEWei4km4aClJh+ykxWIds6MXDj4WxsR7Ba6d4dqampbc0u4+e/ggtUXh8cwsSe/5kAZd2Buolvw7KCMUHGJvZi0KTYKT0zxKVy71ScuTItBBy3DFc0NifJHg8oekys1YQil42QD1miWkklx6Hit3MCTxmmzAFffkrgcev0zy0zkmdnSMkIDQrxTT4PCpz0zfWtusDL4os+Hh21idB+LOosRH4gEYmclxFrBjV0fBWIGP/X2mi6IaYWmDTIWKNHTPrX0ykJa1qG8=
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;
 IPV:NLI; SFV:NSPM; H:SJ0PR10MB5488.namprd10.prod.outlook.com; PTR:; CAT:NONE;
 SFS:(13230031)(136003)(376002)(366004)(396003)(39860400002)(346002)(230922051799003)(64100799003)(1800799012)(186009)(451199024)(4326008)(52536014)(44832011)(86362001)(33656002)(2906002)(4744005)(8936002)(5660300002)(8676002)(38100700002)(7696005)(316002)(55016003)(478600001)(54906003)(66946007)(66476007)(6506007)(66446008)(64756008)(66556008)(6916009)(76116006)(71200400001)(41300700001)(9686003)(26005)(38070700009)(122000001);
 DIR:OUT; SFP:1101; 
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?5BS7oAljMr/2rFvghXOu1gt7iSu1ZmSjQ/oKPCZQ99jRB6WpcQAcYn0PY8/c?=
 =?us-ascii?Q?THp02phbrDw+mZfDlztnD1QpmF5B69WAV2pKKPNTRvXYl70xwCoaXYnDoo4z?=
 =?us-ascii?Q?GB2uObTYYM02HqFZmEegtCDy3QlDf/bZLM46/3sQW0GOe041D9oVRiGFBdKb?=
 =?us-ascii?Q?1l4dN4PX2D4BudRb0W9YxoCcXDFZbEmO47QuO4VZp6NBxagxXPg8EOyGFUib?=
 =?us-ascii?Q?agr9eqEHUVwUU7VOzF0YpZQO6ex4EFBghsco4bQoReEJ73IvxNunuomGma+E?=
 =?us-ascii?Q?S0fvb1TXajlgBf7G7U3Kh3Haegpc+Mu+JC0Rq72v0AAeRBcSjwWnZJYCxgnL?=
 =?us-ascii?Q?ZtUhwXdm3ew7lGdrzn6SzddepfF6xQUzPh+85TIEtZ8qd0SBnnlYmEpql4sl?=
 =?us-ascii?Q?pixZ8EbSIK1SZ7/99Q3Obj44J3lLSsUQZ9hb/8Il2GtnMxh5wXDji231ITGg?=
 =?us-ascii?Q?ZCmYtHBFuXiJeUfBZMI6eOznGDCwegJxJqXXXevr9Fy7SKuluAXK/RAYqTML?=
 =?us-ascii?Q?UiK7gLlMTQyiCHFL5rIBhJIDehiyTak4/bTFMPzgm0OWR4J5XXUxsaopFAsC?=
 =?us-ascii?Q?cheo8YosOHSce719uHU0r4O46oIVQ9OAH3vlu1adwnXIXbSOH8ImaIirb4hJ?=
 =?us-ascii?Q?JhUP44V4Q81BHn1MOozNdfhaIP6f4sEznwISnoPoQIPPg6rQipeduPIsPMqS?=
 =?us-ascii?Q?slP4+zg7EpjueFH+WEka/QOOlSxGpdSJwgwgYQRx5hc907iE30zvsa2AK2cm?=
 =?us-ascii?Q?jAkdD0tvga5DV385QcxfAW/Ut/FOPSzpJEVXGsrirVEtclfWJNiR0pbf21VR?=
 =?us-ascii?Q?aQSQ3x2+RyyHyUjF0rq0+ZMY/glSLUDg67JGXL8ed1YdGSLbkkvVbCOFw5qi?=
 =?us-ascii?Q?o9hyOqwRs+7JL7Go+Nf85mn67YkgzvO1FBKtdDqG7yJj7ylObi9PUU8WL0/E?=
 =?us-ascii?Q?S/0BI4cmDwkzLf8KRbN4LgQuSC7g0e/ER121Tsz91xRCRwsOlnGxDQNH4xlg?=
 =?us-ascii?Q?ld5ewhLAj0srKi9hsQzezVgGQM064YG4TWtODLNaOQCPRk73NrsCOckdRdFd?=
 =?us-ascii?Q?YR20SWvZC74az95sQvbpsOzK+38Ze5yMnL7WSPJ9lHX1ENWTSHDb+9i+9iT9?=
 =?us-ascii?Q?luz+TfI9b75i6mmKSwoBt1UTJIQBRbY8WxiXRWhMVP2e2qIhwbRFE0ghByJU?=
 =?us-ascii?Q?8hTSwp7Wlv+ufNmMevNoEjov5t1PQtlDFeI5jIgiKAO0DTIZszC1V//Q74BA?=
 =?us-ascii?Q?Rrp+1hZHoZLfZAqIgOi3bzJ8gY1xAfE9auG1tUtbxsI1eLxpd1O5fzq8RXnb?=
 =?us-ascii?Q?YzeFaYCsJKnYyjWw1ZRYGdKu9SppYIftYScKJL/ayQaepJ/Zt4QAiKw5s3a/?=
 =?us-ascii?Q?EOUQQbbf4+M6iWt+Beywx4k+HxRGe7zWn0Jaj0/MuWW0prYHU8dHgqywAPH2?=
 =?us-ascii?Q?wTbFPth5/+YlpRQVQH5Uv7PO/NJ4luhdSlbT+s0B8/fjhxQ49zjI4+OEKqye?=
 =?us-ascii?Q?95Zn3PgObyCcrdxAZw5o2nuMiKIddVOYLIodZBUD7LNpRFDbb+FeNYk5bqdP?=
 =?us-ascii?Q?itd/atQbf2cOYxj92AX5uEXZkWXbfbp+2eggABhZ?=
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 5pLDaQGHBOfW2Pi4x+I6ZCOOF1pYLhb1+S+202Yh+uyk9vCvU1HSED96FRkiERbr/zh5QbbmkH7WX8avuyq6vmNULCaCAz6TQILWvu86F+Q/mHULYvxOJfwAgEklQ9+CL5yzis60jQBJmomFW/BmwdiSF6wJWTAQC9eqIvteepMrnRagGmMus2eeZJ1lCSXka3Cfi+F43J97hc7gxEbcS+heaKe66H6zpn71x0M9fP5Jdgu1Y4tNp34F0PXbes69NDP8qfq4OUxcWkylO/um/rNl20nllxyRDoo0xLwmHh6bMmdrhp4Wsav9rhLIvKfbpz86WSSG+8LJblxNGtF/MnD7tsX09jX6dl7O4GFsnhvHb7Skch8mu3KKqLKiyKou/9u5ewzse2d0bTed3FO7DkzHGwi0KIdJSTKwPE+m0wKjcM0QSFjJb2ySbnuPLXACmJPibzMv4n7FTJVAtw2uTiGLrIu9LSAEntzxITrwBTxaXSnHAj9X+A/qM4nOA3x77/cZhi0o5Hb/NGWORoqaeqhRm17Nan4yVbL3AUJfNqXVTkRTOq/ZuksahfrxSRZM3uYSoagUAqvYOF2Kc0iDVnpLBtalEXyAC+xxsFJhUuI7mtixHWDTnOEEhtaDbdUl1dM7ijJoLZ7Yff0SdCICziqfHv1oYU1qwChnV+cih+RahEnbULRQHwoY1fpNFNhQP7Xg7WXECYl6u4YL8/t4qKiMMDQYdrkxJhd3QCpREXty0Ts7bp/xpz82TQ1uhiiID843W8eFPzFxayY0kUImolWCZiXmMUJz/RYDOwTeBPt1e69bnh+5omGx6ITBu3v1
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: SJ0PR10MB5488.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: a33b88b0-d0ec-4239-ef3b-08dbf4452132
X-MS-Exchange-CrossTenant-originalarrivaltime: 03 Dec 2023 21:16:34.9670 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: P8phTDkHjzrb24ec7oThm5LFm7Has4WM2ZPHIroOvHcvD8v/aUh4VcLVZr7xCsH/AN7J7LkdXRK4uZKiBO3saw==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DS0PR10MB6151
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26
 definitions=2023-12-03_20,2023-11-30_01,2023-05-22_02
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 spamscore=0
 mlxlogscore=671 mlxscore=0
 bulkscore=0 malwarescore=0 phishscore=0 suspectscore=0 adultscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2311060000
 definitions=main-2312030168
X-Proofpoint-ORIG-GUID: GbHDSI-tK-vrzEx8Z5eowGp4kIzFf149
X-Proofpoint-GUID: GbHDSI-tK-vrzEx8Z5eowGp4kIzFf149
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 18132
Cc: Eli Zaretskii <eliz@HIDDEN>,
 "18132 <at> debbugs.gnu.org" <18132 <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.7 (-)

> > 1. It doesn't use the marked files, contrary to the doc.
> > 2. On MS Windows, at least, it doesn't work for files
> >    with embedded space chars.
>=20
> You are absolutely right.  The previous version used wrong assumptions.  =
Please try a better one:

OK.  But why evaluate `system-type' over and
over and over...  Just evaluate it once.





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

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


Received: (at 18132) by debbugs.gnu.org; 3 Dec 2023 17:06:16 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Dec 03 12:06:16 2023
Received: from localhost ([127.0.0.1]:60733 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1r9pv5-0006al-Kk
	for submit <at> debbugs.gnu.org; Sun, 03 Dec 2023 12:06:15 -0500
Received: from relay1-d.mail.gandi.net ([2001:4b98:dc4:8::221]:44811)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1r9pv1-0006aH-HN
 for 18132 <at> debbugs.gnu.org; Sun, 03 Dec 2023 12:06:14 -0500
Received: by mail.gandi.net (Postfix) with ESMTPSA id E5173240004;
 Sun,  3 Dec 2023 17:05:53 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
To: Drew Adams <drew.adams@HIDDEN>
Subject: Re: [External] : bug#18132: Time for a smarter
 dired-guess-shell-alist-default? (dired-x.el)
In-Reply-To: <SJ0PR10MB5488CC45A78D0F5C8DEB9E86F380A@HIDDEN>
 (Drew Adams's message of "Sat, 2 Dec 2023 18:37:24 +0000")
Organization: LINKOV.NET
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <CAOnWdojTXD0QvKDn8V6x4Unja6qZuZZ3Q1KqqU2yEDLNKRmNig@HIDDEN>
 <CADwFkm=Z+MWgbMnvrGiWo76cMeQ=q1xJHcZ-Uyc9QjThVULhQQ@HIDDEN>
 <CAOnWdohzNADVbQrk-ZQvwWpcr4ewDtr-Hpvs-K5H+-TJfP-LGQ@HIDDEN>
 <CADwFkmkZMXdF5bdCBvgPKXz0WAEcMzdrWODF6hZCYEQYetp0GA@HIDDEN>
 <CAOnWdog3bTNSVBEprKoFX8yGEWVxrdh+Vu5kCx6Ew=mgHsWrtQ@HIDDEN>
 <83ilxn3qpo.fsf@HIDDEN> <878ryizwyi.fsf@HIDDEN>
 <86y1eoxtrr.fsf@HIDDEN> <83leaofebt.fsf@HIDDEN>
 <86edgfk37h.fsf@HIDDEN> <83zfz3dyae.fsf@HIDDEN>
 <86h6l9zorh.fsf@HIDDEN> <838r6kby1m.fsf@HIDDEN>
 <86msuz5cft.fsf@HIDDEN> <86ttp6j8ax.fsf@HIDDEN>
 <8334wp93ww.fsf@HIDDEN> <86v89lt6mk.fsf@HIDDEN>
 <83leag7loj.fsf@HIDDEN> <86o7f8ijnd.fsf@HIDDEN>
 <SJ0PR10MB5488CC45A78D0F5C8DEB9E86F380A@HIDDEN>
Date: Sun, 03 Dec 2023 19:04:55 +0200
Message-ID: <86y1eb8bi8.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-GND-Sasl: juri@HIDDEN
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 18132
Cc: Eli Zaretskii <eliz@HIDDEN>,
 "18132 <at> debbugs.gnu.org" <18132 <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.7 (-)

--=-=-=
Content-Type: text/plain

>> Here is this new command 'dired-do-open':
>
> Apologies for taking only a cursory look.
>
> 1. It doesn't use the marked files, contrary to the doc.
> 2. On MS Windows, at least, it doesn't work for files
>    with embedded space chars.

You are absolutely right.  The previous version used wrong assumptions.
Please try a better one:


--=-=-=
Content-Type: text/x-diff
Content-Disposition: inline; filename=dired-do-open-2.patch

diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el
index 1a17ed749e8..23c7a9e0027 100644
--- a/lisp/dired-aux.el
+++ b/lisp/dired-aux.el
@@ -1401,6 +1401,36 @@ shell-command-guess-open
   "Populate COMMANDS by the `open' command."
   (append (ensure-list shell-command-guess-open) commands))
 
+(declare-function w32-shell-execute "w32fns.c")
+
+(defun dired-do-open (&optional arg)
+  "Open the marked files or a file at click/point externally."
+  (interactive "P" dired-mode)
+  (let ((files (if (mouse-event-p last-nonmenu-event)
+                   (save-excursion
+                     (mouse-set-point last-nonmenu-event)
+                     (dired-get-marked-files nil arg))
+                 (dired-get-marked-files nil arg)))
+        (command shell-command-guess-open))
+    (when (and (memq system-type '(windows-nt))
+               (equal command "start"))
+      (setq command "open"))
+    (when command
+      (dolist (file files)
+        (cond
+         ((memq system-type '(gnu/linux))
+          (call-process command nil 0 nil file))
+         ((memq system-type '(ms-dos))
+          (shell-command (concat command " " (shell-quote-argument file))))
+         ((memq system-type '(windows-nt))
+          (w32-shell-execute command (convert-standard-filename file)))
+         ((memq system-type '(cygwin))
+          (call-process command nil nil nil file))
+         ((memq system-type '(darwin))
+          (start-process (concat command " " file) nil command file))
+         (t
+          (error "Open not supported on this system")))))))
+
 
 ;;; Commands that delete or redisplay part of the dired buffer
 
diff --git a/lisp/dired.el b/lisp/dired.el
index 97645c731c8..7f4b96353ee 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -2591,6 +2591,9 @@ dired-mode-operate-menu
     ["Delete Image Tag..." image-dired-delete-tag
      :help "Delete image tag from current or marked files"]))
 
+(declare-function shell-command-guess "dired-aux" (files))
+(defvar shell-command-guess-open)
+
 (defun dired-context-menu (menu click)
   "Populate MENU with Dired mode commands at CLICK."
   (when (mouse-posn-property (event-start click) 'dired-filename)
@@ -2606,6 +2609,9 @@ dired-context-menu
            :help "Edit file at mouse click"]
           ["Find in Other Window" dired-mouse-find-file-other-window
            :help "Edit file at mouse click in other window"]
+          ,@(when shell-command-guess-open
+              '(["Open" dired-do-open
+                 :help "Open externally"]))
           ,@(when commands
               (list (cons "Open With"
                           (append

--=-=-=--




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

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


Received: (at 18132) by debbugs.gnu.org; 2 Dec 2023 18:37:42 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Dec 02 13:37:42 2023
Received: from localhost ([127.0.0.1]:58618 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1r9Us2-0004TG-54
	for submit <at> debbugs.gnu.org; Sat, 02 Dec 2023 13:37:42 -0500
Received: from mx0a-00069f02.pphosted.com ([205.220.165.32]:16806)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <drew.adams@HIDDEN>) id 1r9Urz-0004T7-QC
 for 18132 <at> debbugs.gnu.org; Sat, 02 Dec 2023 13:37:41 -0500
Received: from pps.filterd (m0246627.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id
 3B2IYXGW027905; Sat, 2 Dec 2023 18:37:29 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com;
 h=from : to : cc :
 subject : date : message-id : references : in-reply-to : content-type :
 content-transfer-encoding : mime-version; s=corp-2023-11-20;
 bh=p07Cd7/9e1dx/cIg/rNVpbBxmCxsKIY8vZ5PDO4+vIw=;
 b=MAvnBGFj8iu9YPkOPPssvKynMKPOF1knNnkuN58kqVu+wclpy4roFvL0aMvUTXFWiB3g
 BEtSCPdE64QAKcDZQjRaQ7QGUc06ZIteYyg5lVvebn4T1dG3iF3o4zcED8/JYSzc+iFL
 1unjvUtvgKnItScweYFLDwQ12/mOkE7xTSIlz/WYTpmmvADKhaRl8uFqzjt327yFVbiz
 J3AOUQWw+rtlTvxw1JKZe+P1NHxQQnVGH/sn2Y71TDsh72DMT/IvgbvhV3kYl8ef8gz+
 hM4a6wmoB/N3qd6HCLXJn+ar/gUJUSj1Vy/Z1ZTutU2pgnfBoP4iDAxshCZfHSGbCXjQ 7Q== 
Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com
 (phxpaimrmta03.appoci.oracle.com [138.1.37.129])
 by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3ur9y5801u-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Sat, 02 Dec 2023 18:37:28 +0000
Received: from pps.filterd
 (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1])
 by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19)
 with ESMTP id 3B2H0lbj020704; Sat, 2 Dec 2023 18:37:28 GMT
Received: from nam02-sn1-obe.outbound.protection.outlook.com
 (mail-sn1nam02lp2040.outbound.protection.outlook.com [104.47.57.40])
 by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id
 3uqu140jtv-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Sat, 02 Dec 2023 18:37:28 +0000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=NMsNiYN8ZtkYsYO8XV4YhOMlEkZrMnwr0d6Wo6Okh2Wo4kErQ/r41tdOVW3srgbHRyI6zT2msMonT4V+SP9UTxgnGE9YArjCLAA+o36rVWqdThhG1CUVKW0R0K1jT7t+QC1/6ncShjyyIeXXSesRDDsE7cvZlMXUI4J/H2qHDTT1fpTzU4jaO1QDZ19ZkYR3CZmXv9xbA7xtXwqyjgbwj8AHae7cuTFtpkfqzLKaq39UJxJ4IJnGnZbBRVmhvXPYXLLJhbAGq+2PsXeHKtyEfVMqbq6nBpnu/bC5sPhFhP9SGtTgywvsetJ3yWK6B0zmR4akKOgxeUSHNMv0caxDXg==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; 
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=p07Cd7/9e1dx/cIg/rNVpbBxmCxsKIY8vZ5PDO4+vIw=;
 b=oBejg2Dzaa/kK+9iOFMieib+WdqrJQ7e97csKjzY+dqMvDEMYUM3J+jy1bmiubuGmDzMBKKQq8WEKRtjmBt7TSF7jcGGcZDb+yB43eSwU+yAT4ronvjx7JhP2nzWiS6cKgZ2bF3NRgMm+w2PNfB4fDtGP7VFnpW/PiV/qFGxS9K2H3tPw5EbbExiwT69FeND1Y3p4X9aYjDjh+NveZwMhd0VpIwKKldN3nh5q2VK9Tn8Ap1mHsOJZ5SIDw1OmX/lCk343Avl7WJOW5aKZI5Gp0GNaR3cceU9UwJoXV8GqajHy2St4S/6fDxn4H7Mg6DzQ/ujx1FD2MnkTtSfBaivIQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=p07Cd7/9e1dx/cIg/rNVpbBxmCxsKIY8vZ5PDO4+vIw=;
 b=moFUKjdnl8UxnlopoqaOlh2ROnEQoZeJK2NbxQ/JN0N9YTPo5d/JDO/oMdJ7hW9tNeEP1W5LRuqA+7y/dK4s6gMSmefxsPWL9Gt9DlHXwOdflmC4vjD1CENy+hrDqscUMZLMtCEpgtYxZ9RNXAF3nsh8778AGi8TIySoMH+ACn4=
Received: from SJ0PR10MB5488.namprd10.prod.outlook.com (2603:10b6:a03:37e::19)
 by DM4PR10MB6888.namprd10.prod.outlook.com (2603:10b6:8:100::5) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.29; Sat, 2 Dec
 2023 18:37:26 +0000
Received: from SJ0PR10MB5488.namprd10.prod.outlook.com
 ([fe80::3b4c:a669:c229:47b4]) by SJ0PR10MB5488.namprd10.prod.outlook.com
 ([fe80::3b4c:a669:c229:47b4%7]) with mapi id 15.20.7046.028; Sat, 2 Dec 2023
 18:37:25 +0000
From: Drew Adams <drew.adams@HIDDEN>
To: Juri Linkov <juri@HIDDEN>, Eli Zaretskii <eliz@HIDDEN>
Subject: RE: [External] : bug#18132: Time for a smarter
 dired-guess-shell-alist-default? (dired-x.el)
Thread-Topic: [External] : bug#18132: Time for a smarter
 dired-guess-shell-alist-default? (dired-x.el)
Thread-Index: AQHaJUgC1N6Iaee1Y0++Gk5RPD/QjLCWT63A
Date: Sat, 2 Dec 2023 18:37:24 +0000
Message-ID: <SJ0PR10MB5488CC45A78D0F5C8DEB9E86F380A@HIDDEN>
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <83lf2k5gna.fsf@HIDDEN>
 <CADwFkmmP5tgu8eJCRqdbqwbqezHbjkQxtsotwhPszF9_ECdJzA@HIDDEN>
 <CAOnWdojTXD0QvKDn8V6x4Unja6qZuZZ3Q1KqqU2yEDLNKRmNig@HIDDEN>
 <CADwFkm=Z+MWgbMnvrGiWo76cMeQ=q1xJHcZ-Uyc9QjThVULhQQ@HIDDEN>
 <CAOnWdohzNADVbQrk-ZQvwWpcr4ewDtr-Hpvs-K5H+-TJfP-LGQ@HIDDEN>
 <CADwFkmkZMXdF5bdCBvgPKXz0WAEcMzdrWODF6hZCYEQYetp0GA@HIDDEN>
 <CAOnWdog3bTNSVBEprKoFX8yGEWVxrdh+Vu5kCx6Ew=mgHsWrtQ@HIDDEN>
 <83ilxn3qpo.fsf@HIDDEN> <878ryizwyi.fsf@HIDDEN>
 <86y1eoxtrr.fsf@HIDDEN> <83leaofebt.fsf@HIDDEN>
 <86edgfk37h.fsf@HIDDEN> <83zfz3dyae.fsf@HIDDEN>
 <86h6l9zorh.fsf@HIDDEN> <838r6kby1m.fsf@HIDDEN>
 <86msuz5cft.fsf@HIDDEN> <86ttp6j8ax.fsf@HIDDEN>
 <8334wp93ww.fsf@HIDDEN> <86v89lt6mk.fsf@HIDDEN>
 <83leag7loj.fsf@HIDDEN> <86o7f8ijnd.fsf@HIDDEN>
In-Reply-To: <86o7f8ijnd.fsf@HIDDEN>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: SJ0PR10MB5488:EE_|DM4PR10MB6888:EE_
x-ms-office365-filtering-correlation-id: f7f6c0dc-082f-41a9-3eab-08dbf365ba51
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: VjdjPcbBkzn0skNRB9YKouSZZHJ82SFrdwn/OtMeYLNvTVO3W0nr5hUy3ubmI8WBNmGIgbD7RIloL1jwbdcPR8IaL9vdYh57AQhngS+LOiTxeiJ0s6eM7kzGqSmtSJjC4vXREKkKwgN6vubsbtSdN+mboHbpp58k2LJLISjdQpam5zMaweMOT7kmPtCaECQ1H7B3HuKzfvYPCZWeomIggLcJMMrjCMmQ5UTioXpOHV4xHOMaT0GWKcZMLBxeQajUrLPEIgMP4MYUiHVn/GlDSeQE8CDpOJT5ZNxCP43MgBh3c8E/bmA1/zGgJJyYP3APqazQDLsb3Gjeq5oOHS+25h7jIKqd1wQSuCTZwaq+LihJ+jeDskokvzGPQN5myOeyH8SXa33oq4ip5nSEcMsy3jkel73ct6YQ7jEFL6wqHV0CXZq9dqEeBAkShOzBfQjoKZa/V6FG/f9hVuh9NYnyU/CGP+hj0tO2wHQ3DRzvmn2Ub8y4pijcWKtXaB+xGWh921V5g2W3myYwS3EGiNplRMgXDSY4aGwJIsA1J6+q1qkUx8w9T7zZpLR01BKXqVg5VZ2NA4M1nK6WyIkRfttg13vfc3800sPCz7Yc7vPfkh/MnuO7Rx6XkcXtthyQupor
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;
 IPV:NLI; SFV:NSPM; H:SJ0PR10MB5488.namprd10.prod.outlook.com; PTR:; CAT:NONE;
 SFS:(13230031)(346002)(396003)(376002)(366004)(136003)(39860400002)(230922051799003)(64100799003)(1800799012)(451199024)(186009)(55016003)(122000001)(44832011)(8936002)(8676002)(86362001)(38100700002)(7696005)(6506007)(9686003)(26005)(71200400001)(478600001)(64756008)(316002)(66556008)(66476007)(110136005)(76116006)(66446008)(66946007)(33656002)(558084003)(2906002)(38070700009)(41300700001)(52536014)(4326008)(5660300002);
 DIR:OUT; SFP:1101; 
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?8suPqO7QjfPhbDbFEyXVhEISM3dDG/sEkEEv5FePpx6jnQlG4+AT/ye1Bwd4?=
 =?us-ascii?Q?8WLAWCi8nXt0UdzncflFstNzOvY9bhEwQI4JhjpWZN8S5e6r+M+RI9Ztphaf?=
 =?us-ascii?Q?plbNS/f9KyWSVjrhn0ZbGfDM2sFaspC0esomXJMPWt74ONWhgtSuZo1Wolwd?=
 =?us-ascii?Q?Hr3TpbrziL5TZMaDznzwmouA7jBVwaS5OU1VGzr5uQZ//NOtqTxD3o2mf3UT?=
 =?us-ascii?Q?sJXTUpDH4IjJBdWnEgyUuY+RDxXCc4d7lbHv1hpYht+Y6AqEtUQNRvgbVZRM?=
 =?us-ascii?Q?K3OfCq7Nj4AX91PVU9v8xbJDJW4SXdcROlADcbFD20NAU9pkmg7qQ0ao4+Np?=
 =?us-ascii?Q?cO1aNNqzUB2fBGoliyDR8LZoDj4bqiRjST17I/7RFplu/KktKIlDgtpn4mxI?=
 =?us-ascii?Q?1hd/FAlgnvR+jL2ewGeM4xA9FydJWMqSuFxfvLEyTb7LqwJupuj96tOCEOk1?=
 =?us-ascii?Q?6Qk6gcaouJXeXmdQcFkcjKncI+Dc2hJtm3ZnNwhVUmLRYiW3pqTPcH3+Jutc?=
 =?us-ascii?Q?BC+VHVDn73VEru0QozoQghPEDUjCap0+8BDEJBrMPFj4GYBoS+wFiJtdphEv?=
 =?us-ascii?Q?cY9HfNhiWaHDz/oyuyLgPjio9gdB4hBgUg7Nb7199aCkU9Z5iiPSNzZmaJyL?=
 =?us-ascii?Q?q0h9ARfwYwbCyu2nMwRIbDJ79COzyRznLWFrCfWpQ1jO3NetMLVy7qzFsPnY?=
 =?us-ascii?Q?uPHq4/+2V+LjV9nDN7+7RhdaJauelTtI+GrNkMCI5klGbTjph3TjbL+snAvR?=
 =?us-ascii?Q?J98mFiGfL/FIjHcrb45w7OiaYl25+tivSbJ0yLmJfzbiGzNfoROemDAoEXs8?=
 =?us-ascii?Q?CSwDZjX+HsJX6M99pBAbos3hTcdCuwmUg0xh+8pb0TU1shgYpXboZSXqVnwO?=
 =?us-ascii?Q?ltdoDP8xAXr0tODDT/IvsXPOlwRlAb9wudB2sp6HHixHOjttLK9SIj7gNgsl?=
 =?us-ascii?Q?cBQ1LuCsyncmHoflz5KBcgxLtHwoxNBTKkka+Jy+daac6Gvuk/Mx3v08bXRU?=
 =?us-ascii?Q?XkoFqgDiVnDbKz2imf265T678nRJlDKq7dj/NJIRT2J2GPMyllBXVCVd6JZD?=
 =?us-ascii?Q?s+1sgIKceV7XYL04P9qXI7g1LsdVWONhBNwwx4gDHKaLLWI29W8cLCENIcdH?=
 =?us-ascii?Q?2ZqoH0M5RXPjINmSAoBv9P6YD5BC/AwhhH8/3AnhAudLd1whPekrMsOviMvi?=
 =?us-ascii?Q?hYjaxbDAXOENEG6Y2kbtKm90x1aFOZNBO3tG7syS4qWxRK4bVAuw6f7eiZCY?=
 =?us-ascii?Q?9QozvzgHzt7/G1hPKKNUcaeIJwc3wGubAe0BkcDOzHf1fnG8y0QfiKiWnUdr?=
 =?us-ascii?Q?UcbabRX6bHvF2vNd50PFWHJcGHAzwTREvwSpz6xk4GxItrXuRWXXko97rWrJ?=
 =?us-ascii?Q?xuUJttwx8+La8Js4LgbPhA/Dclh6N8MnJmxBwsfTKCQJcMOPVOQYBsJv3Oh8?=
 =?us-ascii?Q?lIRF1bsM3ZYIK1LF8JUukElUXKGeNkf+WBBYbELcOhIePq53/shYW+KgPPrI?=
 =?us-ascii?Q?daqIhqoQ07bgnBYk070A4vwmQ7CCLk5wfgDf+2y+LPr4JuTdro/+84pVQPZG?=
 =?us-ascii?Q?L2A8OI6F9MM092GgkiuFi8lBtiiDHnAhCwfOqnbm?=
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1
X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: ODjxBoNU39b16+3NQBhaNFeRv2JJ5i+DmRQBTOMrhOUqUoi43Dy7kJHnFDSFwMbryow3USntQT4iatx9+/MqT3TQApLVjBVQWS2Oc2fn4SNkMVwIjMNX/q5S7CLe7B37yntu3J9jUr8JeKS3aEv+fs0ux1ExEn4jjJ7qRk9X/zCLi1UCBet/0Pr7YrmzA5BhowJYid0Dc4xUu77fzYUHWWyUwxvQJ4dOiTFJsCi3OOdnNuym1XCPCL+2cORhD8VhZXrT9hyE0765idOOUHxrrpxRr+xYPyOD/koRSiLNrbg6rc9VHmUwf8c3abILR5I7FsjKY+g0fb+UZOVytM2Pvmwlef/WpXZvYGYSvtWe7lbGkVY8hEFW3ozwTNVQg5iTqtwTDotoWa25I6/rupCPXZVQdQrTYdWmbO4hVM6HvbQq4MfD45IN6zYHmQxpDeTnNnG80UnLQtfamWau6keMtrAfA3sBE9zdYgPxT9Ju0kMNWLQXcMWDzVwBIypre0bNi6iVfm5QrJredKcajDVrABhjpcDiP2v0v2OO/txv7dpfS/OGXCp1rAV7tTJjpjT+bWdHdTESaT/OZiTT3Dvw5VgQBeSTUUgAg+jrv7nIOUgJuzQILumm0HbiI6fzsbqK0xU3iUeawqzlMfLCb7TroYYvxtCQsbwxXOmNFyN1uD8thE1giqQYgqVMkMBRjfVjeJWFUyzxF/38WVnUYX0wFI5piMvG/2AuX9ltfmYI3IJ7P2q2FiuvqQISEiwYNV9hefEEAutieWnHO7RAdrEJy/3X8VeSfY5MiQ63NTcioxp0L9V/tETVLlVMeVyTtZnJ
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: SJ0PR10MB5488.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: f7f6c0dc-082f-41a9-3eab-08dbf365ba51
X-MS-Exchange-CrossTenant-originalarrivaltime: 02 Dec 2023 18:37:24.6110 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: dxBdVXok4VGDUPqMPYbfZvwRgO49jcd/0fUFrDfHljYWxgVrLB+AbbpT4f9bHbcOLYbR7G2ozF3FaoBktM5hgQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR10MB6888
X-Proofpoint-Virus-Version: vendor=baseguard
 engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26
 definitions=2023-12-02_17,2023-11-30_01,2023-05-22_02
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=698
 spamscore=0
 malwarescore=0 phishscore=0 bulkscore=0 adultscore=0 mlxscore=0
 suspectscore=0 classifier=spam adjust=0 reason=mlx scancount=1
 engine=8.12.0-2311060000 definitions=main-2312020138
X-Proofpoint-ORIG-GUID: SXHeGZl_SvlTZstX5g7b8rLaRUyOBVbq
X-Proofpoint-GUID: SXHeGZl_SvlTZstX5g7b8rLaRUyOBVbq
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 18132
Cc: "18132 <at> debbugs.gnu.org" <18132 <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.7 (-)

> Here is this new command 'dired-do-open':

Apologies for taking only a cursory look.

1. It doesn't use the marked files, contrary to the doc.
2. On MS Windows, at least, it doesn't work for files
   with embedded space chars.





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

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


Received: (at 18132) by debbugs.gnu.org; 2 Dec 2023 17:49:44 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Dec 02 12:49:44 2023
Received: from localhost ([127.0.0.1]:58588 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1r9U7b-0000OT-UN
	for submit <at> debbugs.gnu.org; Sat, 02 Dec 2023 12:49:44 -0500
Received: from relay2-d.mail.gandi.net ([2001:4b98:dc4:8::222]:47483)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1r9U7Z-0000O7-Ce
 for 18132 <at> debbugs.gnu.org; Sat, 02 Dec 2023 12:49:42 -0500
Received: by mail.gandi.net (Postfix) with ESMTPSA id 8F39740002;
 Sat,  2 Dec 2023 17:49:24 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
In-Reply-To: <83leag7loj.fsf@HIDDEN> (Eli Zaretskii's message of "Wed, 29 Nov
 2023 15:07:08 +0200")
Organization: LINKOV.NET
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <83lf2k5gna.fsf@HIDDEN>
 <CADwFkmmP5tgu8eJCRqdbqwbqezHbjkQxtsotwhPszF9_ECdJzA@HIDDEN>
 <CAOnWdojTXD0QvKDn8V6x4Unja6qZuZZ3Q1KqqU2yEDLNKRmNig@HIDDEN>
 <CADwFkm=Z+MWgbMnvrGiWo76cMeQ=q1xJHcZ-Uyc9QjThVULhQQ@HIDDEN>
 <CAOnWdohzNADVbQrk-ZQvwWpcr4ewDtr-Hpvs-K5H+-TJfP-LGQ@HIDDEN>
 <CADwFkmkZMXdF5bdCBvgPKXz0WAEcMzdrWODF6hZCYEQYetp0GA@HIDDEN>
 <CAOnWdog3bTNSVBEprKoFX8yGEWVxrdh+Vu5kCx6Ew=mgHsWrtQ@HIDDEN>
 <83ilxn3qpo.fsf@HIDDEN> <878ryizwyi.fsf@HIDDEN>
 <86y1eoxtrr.fsf@HIDDEN> <83leaofebt.fsf@HIDDEN>
 <86edgfk37h.fsf@HIDDEN> <83zfz3dyae.fsf@HIDDEN>
 <86h6l9zorh.fsf@HIDDEN> <838r6kby1m.fsf@HIDDEN>
 <86msuz5cft.fsf@HIDDEN> <86ttp6j8ax.fsf@HIDDEN>
 <8334wp93ww.fsf@HIDDEN> <86v89lt6mk.fsf@HIDDEN>
 <83leag7loj.fsf@HIDDEN>
Date: Sat, 02 Dec 2023 19:44:38 +0200
Message-ID: <86o7f8ijnd.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-GND-Sasl: juri@HIDDEN
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 18132
Cc: 18132 <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.7 (-)

--=-=-=
Content-Type: text/plain

>> Usually context menus on file managers include two items:
>>
>>   "Open" that opens immediately
>>   "Open With" with a list of commands
>>
>> So "start" will be used for "Open With" if someone prefers this.
>> Then a new command 'dired-do-open' bound to the "Open" menu item
>> will hard-code 'w32-shell-execute' call with the "open" command.
>
> SGTM, thanks.

Here is this new command 'dired-do-open':


--=-=-=
Content-Type: text/x-diff
Content-Disposition: inline; filename=dired-do-open.patch

diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el
index 1a17ed749e8..7887cc358aa 100644
--- a/lisp/dired-aux.el
+++ b/lisp/dired-aux.el
@@ -1401,6 +1401,32 @@ shell-command-guess-open
   "Populate COMMANDS by the `open' command."
   (append (ensure-list shell-command-guess-open) commands))
 
+(declare-function w32-shell-execute "w32fns.c")
+
+(defun dired-do-open (&optional arg)
+  "Open the marked files or at click/point externally."
+  (interactive "P" dired-mode)
+  (let ((files (if arg
+                   (dired-get-marked-files nil arg)
+                 (save-excursion
+                   (mouse-set-point last-nonmenu-event)
+                   (list (dired-get-filename nil t)))))
+        (command shell-command-guess-open))
+    (when command
+      (cond
+       ((memq system-type '(gnu/linux))
+        (apply #'call-process command nil 0 nil files))
+       ((memq system-type '(ms-dos))
+        (shell-command (concat command " " (mapconcat #'shell-quote-argument files " "))))
+       ((memq system-type '(windows-nt))
+        (w32-shell-execute (or (and (eq command "start") "open") command) (mapconcat #'convert-standard-filename files " ")))
+       ((memq system-type '(cygwin))
+        (apply #'call-process command nil nil nil files))
+       ((memq system-type '(darwin))
+        (apply #'start-process (concat command " " files) nil command files))
+       (t
+        (error "Open not supported on this system"))))))
+
 
 ;;; Commands that delete or redisplay part of the dired buffer
 
diff --git a/lisp/dired.el b/lisp/dired.el
index 97645c731c8..7f4b96353ee 100644
--- a/lisp/dired.el
+++ b/lisp/dired.el
@@ -2591,6 +2591,9 @@ dired-mode-operate-menu
     ["Delete Image Tag..." image-dired-delete-tag
      :help "Delete image tag from current or marked files"]))
 
+(declare-function shell-command-guess "dired-aux" (files))
+(defvar shell-command-guess-open)
+
 (defun dired-context-menu (menu click)
   "Populate MENU with Dired mode commands at CLICK."
   (when (mouse-posn-property (event-start click) 'dired-filename)
@@ -2606,6 +2609,9 @@ dired-context-menu
            :help "Edit file at mouse click"]
           ["Find in Other Window" dired-mouse-find-file-other-window
            :help "Edit file at mouse click in other window"]
+          ,@(when shell-command-guess-open
+              '(["Open" dired-do-open
+                 :help "Open externally"]))
           ,@(when commands
               (list (cons "Open With"
                           (append

--=-=-=--




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

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


Received: (at 18132) by debbugs.gnu.org; 29 Nov 2023 13:07:34 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Nov 29 08:07:34 2023
Received: from localhost ([127.0.0.1]:49095 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1r8KHt-0003Us-Sh
	for submit <at> debbugs.gnu.org; Wed, 29 Nov 2023 08:07:34 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10]:46370)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1r8KHr-0003UW-1e
 for 18132 <at> debbugs.gnu.org; Wed, 29 Nov 2023 08:07:32 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1r8KHe-0001Nu-35; Wed, 29 Nov 2023 08:07:18 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=Pl7J/Gd/QEOZZ+TtvD6xYI+2RazkfaEiIQvafBz06Sg=; b=RJdI/EKw4SLZ
 sJVgP7XD+KFUWBI+iC8PYbIWExFlwR38/tjJq7ApSRc4FQqi8eAaZGaVmmYHjaZ1p+DqpkJi+3cGp
 G0PjU/NZV6TvAiUi9bSasMh4M+DpzbbVGp1WYNcMjq376UCrW10DL/4IlPRYzAoACfseU1QxzXZy6
 Qu6cEjgHyh8WqphPK9Wsl47qeAguUTkvjxWFIySqNEh3Ci4nDMwpvS6M4uBGYR2QRvH2Na0uijT+l
 5QFC9Z27H0dQPSqla99p2wclvGaVcy2y10mpfYXhcOj0RnFoiQiJ9Yw5O2ACQ+I3riAdmPT6G+t7n
 nvRspNbLQPYXCiwjk3QPEg==;
Date: Wed, 29 Nov 2023 15:07:08 +0200
Message-Id: <83leag7loj.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Juri Linkov <juri@HIDDEN>
In-Reply-To: <86v89lt6mk.fsf@HIDDEN> (message from Juri Linkov on
 Wed, 29 Nov 2023 09:09:07 +0200)
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <CAOnWdogh6UiaRCeuxLCj0p9cMqhCBOUwD1Rfsn1RUcGvLROP7Q@HIDDEN>
 <CADwFkmkgn6Kp8CULr4pe0wj1-gZfm3t183x-bnGLubOwnfaBSw@HIDDEN>
 <83lf2k5gna.fsf@HIDDEN>
 <CADwFkmmP5tgu8eJCRqdbqwbqezHbjkQxtsotwhPszF9_ECdJzA@HIDDEN>
 <CAOnWdojTXD0QvKDn8V6x4Unja6qZuZZ3Q1KqqU2yEDLNKRmNig@HIDDEN>
 <CADwFkm=Z+MWgbMnvrGiWo76cMeQ=q1xJHcZ-Uyc9QjThVULhQQ@HIDDEN>
 <CAOnWdohzNADVbQrk-ZQvwWpcr4ewDtr-Hpvs-K5H+-TJfP-LGQ@HIDDEN>
 <CADwFkmkZMXdF5bdCBvgPKXz0WAEcMzdrWODF6hZCYEQYetp0GA@HIDDEN>
 <CAOnWdog3bTNSVBEprKoFX8yGEWVxrdh+Vu5kCx6Ew=mgHsWrtQ@HIDDEN>
 <83ilxn3qpo.fsf@HIDDEN> <878ryizwyi.fsf@HIDDEN>
 <86y1eoxtrr.fsf@HIDDEN> <83leaofebt.fsf@HIDDEN>
 <86edgfk37h.fsf@HIDDEN> <83zfz3dyae.fsf@HIDDEN>
 <86h6l9zorh.fsf@HIDDEN> <838r6kby1m.fsf@HIDDEN>
 <86msuz5cft.fsf@HIDDEN> <86ttp6j8ax.fsf@HIDDEN>
 <8334wp93ww.fsf@HIDDEN> <86v89lt6mk.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 18132
Cc: 18132 <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: -3.3 (---)

> From: Juri Linkov <juri@HIDDEN>
> Cc: 18132 <at> debbugs.gnu.org
> Date: Wed, 29 Nov 2023 09:09:07 +0200
> 
> >> +   ((eq system-type 'windows-nt)
> >> +    "open")
> >
> > If this is supposed to be a shell command that can be invoked via the
> > likes of call-process and start-process, then this should be "start",
> > not "open" (the latter doesn't exist as an executable command on
> > Windows).
> 
> Ok, will replace with "start", since only strings are used for commands.
> 
> Usually context menus on file managers include two items:
> 
>   "Open" that opens immediately
>   "Open With" with a list of commands
> 
> So "start" will be used for "Open With" if someone prefers this.
> Then a new command 'dired-do-open' bound to the "Open" menu item
> will hard-code 'w32-shell-execute' call with the "open" command.

SGTM, thanks.




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

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


Received: (at 18132) by debbugs.gnu.org; 29 Nov 2023 07:21:08 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Nov 29 02:21:08 2023
Received: from localhost ([127.0.0.1]:48670 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1r8Esd-0005HH-Oz
	for submit <at> debbugs.gnu.org; Wed, 29 Nov 2023 02:21:08 -0500
Received: from relay1-d.mail.gandi.net ([2001:4b98:dc4:8::221]:42633)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1r8EsT-0005GC-JL
 for 18132 <at> debbugs.gnu.org; Wed, 29 Nov 2023 02:20:58 -0500
Received: by mail.gandi.net (Postfix) with ESMTPSA id CCA35240002;
 Wed, 29 Nov 2023 07:20:43 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
In-Reply-To: <8334wp93ww.fsf@HIDDEN> (Eli Zaretskii's message of "Tue, 28 Nov
 2023 19:35:43 +0200")
Organization: LINKOV.NET
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <CAOnWdogh6UiaRCeuxLCj0p9cMqhCBOUwD1Rfsn1RUcGvLROP7Q@HIDDEN>
 <CADwFkmkgn6Kp8CULr4pe0wj1-gZfm3t183x-bnGLubOwnfaBSw@HIDDEN>
 <83lf2k5gna.fsf@HIDDEN>
 <CADwFkmmP5tgu8eJCRqdbqwbqezHbjkQxtsotwhPszF9_ECdJzA@HIDDEN>
 <CAOnWdojTXD0QvKDn8V6x4Unja6qZuZZ3Q1KqqU2yEDLNKRmNig@HIDDEN>
 <CADwFkm=Z+MWgbMnvrGiWo76cMeQ=q1xJHcZ-Uyc9QjThVULhQQ@HIDDEN>
 <CAOnWdohzNADVbQrk-ZQvwWpcr4ewDtr-Hpvs-K5H+-TJfP-LGQ@HIDDEN>
 <CADwFkmkZMXdF5bdCBvgPKXz0WAEcMzdrWODF6hZCYEQYetp0GA@HIDDEN>
 <CAOnWdog3bTNSVBEprKoFX8yGEWVxrdh+Vu5kCx6Ew=mgHsWrtQ@HIDDEN>
 <83ilxn3qpo.fsf@HIDDEN> <878ryizwyi.fsf@HIDDEN>
 <86y1eoxtrr.fsf@HIDDEN> <83leaofebt.fsf@HIDDEN>
 <86edgfk37h.fsf@HIDDEN> <83zfz3dyae.fsf@HIDDEN>
 <86h6l9zorh.fsf@HIDDEN> <838r6kby1m.fsf@HIDDEN>
 <86msuz5cft.fsf@HIDDEN> <86ttp6j8ax.fsf@HIDDEN>
 <8334wp93ww.fsf@HIDDEN>
Date: Wed, 29 Nov 2023 09:09:07 +0200
Message-ID: <86v89lt6mk.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain
X-GND-Sasl: juri@HIDDEN
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 18132
Cc: 18132 <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.7 (-)

>> +   ((eq system-type 'windows-nt)
>> +    "open")
>
> If this is supposed to be a shell command that can be invoked via the
> likes of call-process and start-process, then this should be "start",
> not "open" (the latter doesn't exist as an executable command on
> Windows).

Ok, will replace with "start", since only strings are used for commands.

Usually context menus on file managers include two items:

  "Open" that opens immediately
  "Open With" with a list of commands

So "start" will be used for "Open With" if someone prefers this.
Then a new command 'dired-do-open' bound to the "Open" menu item
will hard-code 'w32-shell-execute' call with the "open" command.




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

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


Received: (at 18132) by debbugs.gnu.org; 28 Nov 2023 17:36:30 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Nov 28 12:36:29 2023
Received: from localhost ([127.0.0.1]:47564 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1r820b-0004rA-5B
	for submit <at> debbugs.gnu.org; Tue, 28 Nov 2023 12:36:29 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10]:57490)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1r820Q-0004qX-N3
 for 18132 <at> debbugs.gnu.org; Tue, 28 Nov 2023 12:36:20 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1r8203-0001Bf-Ul; Tue, 28 Nov 2023 12:36:05 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=0zQ7acP+UhrOWc2BqdnobRCDzGb8dARYp4JVGoQh2ok=; b=SoRowYa+LUiJ
 g+J4wzgkGCjP64aAQMbG8mIZdQfVY0TQuQR1DOrsvNbsmHpZ9o6h1Uo3f7BlCo8WbMewH7I5bvIeU
 BXRaGF4khePb0kGQWOrWVpYzmdfwlaMiqxuZDHpmWvS9bwkGAHXn5fL2mKjVrWS9EaKcZWWtmldrT
 Jjg4vTiqNcddUs/9poj1C3Vtex5HIx8fj8Mv8kX1MZOEu2t0PV05DtFFbTLK0uIpSV+Q5G3AD9uWf
 OBL2tmvH4GNHd2Mr+64HN9fqDXGR7uEV/yy1BFlSXdmh/YTH3FxPwpqWiEGP+44vzzTsIPXdkSvL7
 k3YFH7JguRp2YwGYeY/aSA==;
Date: Tue, 28 Nov 2023 19:35:43 +0200
Message-Id: <8334wp93ww.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Juri Linkov <juri@HIDDEN>
In-Reply-To: <86ttp6j8ax.fsf@HIDDEN> (message from Juri Linkov on
 Tue, 28 Nov 2023 19:05:46 +0200)
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <CAOnWdoiiMd1fqrY=ZAXA4U9ctu0Vcx1BCj7B0U27A9sbJTdpkg@HIDDEN>
 <87silbstsc.fsf@HIDDEN>
 <CAOnWdogh6UiaRCeuxLCj0p9cMqhCBOUwD1Rfsn1RUcGvLROP7Q@HIDDEN>
 <CADwFkmkgn6Kp8CULr4pe0wj1-gZfm3t183x-bnGLubOwnfaBSw@HIDDEN>
 <83lf2k5gna.fsf@HIDDEN>
 <CADwFkmmP5tgu8eJCRqdbqwbqezHbjkQxtsotwhPszF9_ECdJzA@HIDDEN>
 <CAOnWdojTXD0QvKDn8V6x4Unja6qZuZZ3Q1KqqU2yEDLNKRmNig@HIDDEN>
 <CADwFkm=Z+MWgbMnvrGiWo76cMeQ=q1xJHcZ-Uyc9QjThVULhQQ@HIDDEN>
 <CAOnWdohzNADVbQrk-ZQvwWpcr4ewDtr-Hpvs-K5H+-TJfP-LGQ@HIDDEN>
 <CADwFkmkZMXdF5bdCBvgPKXz0WAEcMzdrWODF6hZCYEQYetp0GA@HIDDEN>
 <CAOnWdog3bTNSVBEprKoFX8yGEWVxrdh+Vu5kCx6Ew=mgHsWrtQ@HIDDEN>
 <83ilxn3qpo.fsf@HIDDEN> <878ryizwyi.fsf@HIDDEN>
 <86y1eoxtrr.fsf@HIDDEN> <83leaofebt.fsf@HIDDEN>
 <86edgfk37h.fsf@HIDDEN> <83zfz3dyae.fsf@HIDDEN>
 <86h6l9zorh.fsf@HIDDEN> <838r6kby1m.fsf@HIDDEN>
 <86msuz5cft.fsf@HIDDEN> <86ttp6j8ax.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 18132
Cc: 18132 <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: -3.3 (---)

> From: Juri Linkov <juri@HIDDEN>
> Cc: 18132 <at> debbugs.gnu.org
> Date: Tue, 28 Nov 2023 19:05:46 +0200
> 
> +   ((eq system-type 'windows-nt)
> +    "open")

If this is supposed to be a shell command that can be invoked via the
likes of call-process and start-process, then this should be "start",
not "open" (the latter doesn't exist as an executable command on
Windows).




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

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


Received: (at 18132) by debbugs.gnu.org; 28 Nov 2023 17:27:38 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Nov 28 12:27:38 2023
Received: from localhost ([127.0.0.1]:47556 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1r81s1-0004cn-U9
	for submit <at> debbugs.gnu.org; Tue, 28 Nov 2023 12:27:38 -0500
Received: from relay5-d.mail.gandi.net ([2001:4b98:dc4:8::225]:48055)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1r81s0-0004ca-60
 for 18132 <at> debbugs.gnu.org; Tue, 28 Nov 2023 12:27:36 -0500
Received: by mail.gandi.net (Postfix) with ESMTPSA id AAD8D1C0007;
 Tue, 28 Nov 2023 17:27:22 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
In-Reply-To: <86msuz5cft.fsf@HIDDEN> (Juri Linkov's message of "Mon, 
 27 Nov 2023 19:32:54 +0200")
Organization: LINKOV.NET
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <CAOnWdoiiMd1fqrY=ZAXA4U9ctu0Vcx1BCj7B0U27A9sbJTdpkg@HIDDEN>
 <87silbstsc.fsf@HIDDEN>
 <CAOnWdogh6UiaRCeuxLCj0p9cMqhCBOUwD1Rfsn1RUcGvLROP7Q@HIDDEN>
 <CADwFkmkgn6Kp8CULr4pe0wj1-gZfm3t183x-bnGLubOwnfaBSw@HIDDEN>
 <83lf2k5gna.fsf@HIDDEN>
 <CADwFkmmP5tgu8eJCRqdbqwbqezHbjkQxtsotwhPszF9_ECdJzA@HIDDEN>
 <CAOnWdojTXD0QvKDn8V6x4Unja6qZuZZ3Q1KqqU2yEDLNKRmNig@HIDDEN>
 <CADwFkm=Z+MWgbMnvrGiWo76cMeQ=q1xJHcZ-Uyc9QjThVULhQQ@HIDDEN>
 <CAOnWdohzNADVbQrk-ZQvwWpcr4ewDtr-Hpvs-K5H+-TJfP-LGQ@HIDDEN>
 <CADwFkmkZMXdF5bdCBvgPKXz0WAEcMzdrWODF6hZCYEQYetp0GA@HIDDEN>
 <CAOnWdog3bTNSVBEprKoFX8yGEWVxrdh+Vu5kCx6Ew=mgHsWrtQ@HIDDEN>
 <83ilxn3qpo.fsf@HIDDEN> <878ryizwyi.fsf@HIDDEN>
 <86y1eoxtrr.fsf@HIDDEN> <83leaofebt.fsf@HIDDEN>
 <86edgfk37h.fsf@HIDDEN> <83zfz3dyae.fsf@HIDDEN>
 <86h6l9zorh.fsf@HIDDEN> <838r6kby1m.fsf@HIDDEN>
 <86msuz5cft.fsf@HIDDEN>
Date: Tue, 28 Nov 2023 19:05:46 +0200
Message-ID: <86ttp6j8ax.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-GND-Sasl: juri@HIDDEN
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 18132
Cc: 18132 <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.7 (-)

--=-=-=
Content-Type: text/plain

> So now pushed to master.

Here is a patch that adds an option to use a system-dependent command
to open a file:


--=-=-=
Content-Type: text/x-diff
Content-Disposition: inline; filename=shell-command-guess-open.patch

diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el
index 47e97c96ce1..e945052b571 100644
--- a/lisp/dired-aux.el
+++ b/lisp/dired-aux.el
@@ -1329,6 +1329,7 @@ shell-command-guess-functions
           (choice (function-item shell-command-guess-dired)
                   (function-item shell-command-guess-mailcap)
                   (function-item shell-command-guess-xdg)
+                  (function-item shell-command-guess-open)
                   (function :tag "Custom function")))
   :group 'dired
   :version "30.1")
@@ -1380,6 +1381,29 @@ shell-command-guess-xdg
                   xdg-mime-apps)))
     (append xdg-commands commands)))
 
+(defcustom shell-command-guess-open
+  (cond
+   ((executable-find "xdg-open")
+    "xdg-open")
+   ((executable-find "run-mailcap")
+    "run-mailcap")
+   ((eq system-type 'ms-dos)
+    "start")
+   ((eq system-type 'cygwin)
+    "cygstart")
+   ((eq system-type 'windows-nt)
+    "open")
+   ((eq system-type 'darwin)
+    "open"))
+  "A shell command to open a file externally."
+  :type 'string
+  :group 'dired
+  :version "30.1")
+
+(defun shell-command-guess-open (commands _files)
+  "Populate COMMANDS by the `open' command."
+  (append (ensure-list shell-command-guess-open) commands))
+
 
 ;;; Commands that delete or redisplay part of the dired buffer
 

--=-=-=--




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

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


Received: (at 18132) by debbugs.gnu.org; 27 Nov 2023 17:37:39 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Nov 27 12:37:39 2023
Received: from localhost ([127.0.0.1]:44720 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1r7fYB-0006Ry-0l
	for submit <at> debbugs.gnu.org; Mon, 27 Nov 2023 12:37:39 -0500
Received: from relay8-d.mail.gandi.net ([2001:4b98:dc4:8::228]:58681)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1r7fY9-0006Rj-BU
 for 18132 <at> debbugs.gnu.org; Mon, 27 Nov 2023 12:37:37 -0500
Received: by mail.gandi.net (Postfix) with ESMTPSA id 78C941BF208;
 Mon, 27 Nov 2023 17:37:24 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
In-Reply-To: <838r6kby1m.fsf@HIDDEN> (Eli Zaretskii's message of "Sun, 26 Nov
 2023 12:37:25 +0200")
Organization: LINKOV.NET
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <87bns6dcul.fsf@HIDDEN>
 <CAOnWdoiiMd1fqrY=ZAXA4U9ctu0Vcx1BCj7B0U27A9sbJTdpkg@HIDDEN>
 <87silbstsc.fsf@HIDDEN>
 <CAOnWdogh6UiaRCeuxLCj0p9cMqhCBOUwD1Rfsn1RUcGvLROP7Q@HIDDEN>
 <CADwFkmkgn6Kp8CULr4pe0wj1-gZfm3t183x-bnGLubOwnfaBSw@HIDDEN>
 <83lf2k5gna.fsf@HIDDEN>
 <CADwFkmmP5tgu8eJCRqdbqwbqezHbjkQxtsotwhPszF9_ECdJzA@HIDDEN>
 <CAOnWdojTXD0QvKDn8V6x4Unja6qZuZZ3Q1KqqU2yEDLNKRmNig@HIDDEN>
 <CADwFkm=Z+MWgbMnvrGiWo76cMeQ=q1xJHcZ-Uyc9QjThVULhQQ@HIDDEN>
 <CAOnWdohzNADVbQrk-ZQvwWpcr4ewDtr-Hpvs-K5H+-TJfP-LGQ@HIDDEN>
 <CADwFkmkZMXdF5bdCBvgPKXz0WAEcMzdrWODF6hZCYEQYetp0GA@HIDDEN>
 <CAOnWdog3bTNSVBEprKoFX8yGEWVxrdh+Vu5kCx6Ew=mgHsWrtQ@HIDDEN>
 <83ilxn3qpo.fsf@HIDDEN> <878ryizwyi.fsf@HIDDEN>
 <86y1eoxtrr.fsf@HIDDEN> <83leaofebt.fsf@HIDDEN>
 <86edgfk37h.fsf@HIDDEN> <83zfz3dyae.fsf@HIDDEN>
 <86h6l9zorh.fsf@HIDDEN> <838r6kby1m.fsf@HIDDEN>
Date: Mon, 27 Nov 2023 19:32:54 +0200
Message-ID: <86msuz5cft.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain
X-GND-Sasl: juri@HIDDEN
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 18132
Cc: 18132 <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.7 (-)

>> Ok, I removed mailcap and xdg from defaults:
>
> Thanks.

So now pushed to master.




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

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


Received: (at 18132) by debbugs.gnu.org; 26 Nov 2023 10:37:56 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Nov 26 05:37:56 2023
Received: from localhost ([127.0.0.1]:40753 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1r7CWR-00079b-Tp
	for submit <at> debbugs.gnu.org; Sun, 26 Nov 2023 05:37:56 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10]:38152)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1r7CWP-00079K-PI
 for 18132 <at> debbugs.gnu.org; Sun, 26 Nov 2023 05:37:54 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1r7CWE-0005q4-QF; Sun, 26 Nov 2023 05:37:42 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=2Gr0lQCs7X3AoH72waJ8cN2dUzPP+40ox7fZgK1+Xlg=; b=ZxUunSyYSUpH
 nxjrhuD6fmFo+6K8GMyJiPoBALpPrrkPMvvpyodGvfJMGJpWswkdGKyVny4IjGf1n6GC2VQfIAiii
 pSQIzNxGkghsklquH949Uec9hY5ps88fqVyshBV3+mmgzJruDMDyMw2hX8wxoKxUmDPHN2bQjTZ5N
 l87yLd+Ufurp7J51djyF6ofYYOZaQM3zgmk/es0LHXHtzAlf2BNNeP4NBO5HnuHuNSoBWtOtLB7Yr
 /8jAm/lmG1U5npRal1qfLRhxD5OQ5tX4xFDB9aNx67NDsmBUYw+EabiJOO3tB0MhIVGI5CEAiXL1M
 k2/l0aI1o+p6x3Nc4cPrsw==;
Date: Sun, 26 Nov 2023 12:37:25 +0200
Message-Id: <838r6kby1m.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Juri Linkov <juri@HIDDEN>
In-Reply-To: <86h6l9zorh.fsf@HIDDEN> (message from Juri Linkov on
 Sat, 25 Nov 2023 20:10:40 +0200)
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <87d2cn67zo.fsf@HIDDEN>
 <CAOnWdoivtsBnHPhZWkjxNEqiMxfOwnYiU2eaoQEu4_3bjCx=JQ@HIDDEN>
 <87bns6dcul.fsf@HIDDEN>
 <CAOnWdoiiMd1fqrY=ZAXA4U9ctu0Vcx1BCj7B0U27A9sbJTdpkg@HIDDEN>
 <87silbstsc.fsf@HIDDEN>
 <CAOnWdogh6UiaRCeuxLCj0p9cMqhCBOUwD1Rfsn1RUcGvLROP7Q@HIDDEN>
 <CADwFkmkgn6Kp8CULr4pe0wj1-gZfm3t183x-bnGLubOwnfaBSw@HIDDEN>
 <83lf2k5gna.fsf@HIDDEN>
 <CADwFkmmP5tgu8eJCRqdbqwbqezHbjkQxtsotwhPszF9_ECdJzA@HIDDEN>
 <CAOnWdojTXD0QvKDn8V6x4Unja6qZuZZ3Q1KqqU2yEDLNKRmNig@HIDDEN>
 <CADwFkm=Z+MWgbMnvrGiWo76cMeQ=q1xJHcZ-Uyc9QjThVULhQQ@HIDDEN>
 <CAOnWdohzNADVbQrk-ZQvwWpcr4ewDtr-Hpvs-K5H+-TJfP-LGQ@HIDDEN>
 <CADwFkmkZMXdF5bdCBvgPKXz0WAEcMzdrWODF6hZCYEQYetp0GA@HIDDEN>
 <CAOnWdog3bTNSVBEprKoFX8yGEWVxrdh+Vu5kCx6Ew=mgHsWrtQ@HIDDEN>
 <83ilxn3qpo.fsf@HIDDEN> <878ryizwyi.fsf@HIDDEN>
 <86y1eoxtrr.fsf@HIDDEN> <83leaofebt.fsf@HIDDEN>
 <86edgfk37h.fsf@HIDDEN> <83zfz3dyae.fsf@HIDDEN>
 <86h6l9zorh.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 18132
Cc: 18132 <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: -3.3 (---)

> From: Juri Linkov <juri@HIDDEN>
> Cc: 18132 <at> debbugs.gnu.org
> Date: Sat, 25 Nov 2023 20:10:40 +0200
> 
> Ok, I removed mailcap and xdg from defaults:

Thanks.




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

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


Received: (at 18132) by debbugs.gnu.org; 25 Nov 2023 18:21:47 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Nov 25 13:21:47 2023
Received: from localhost ([127.0.0.1]:40189 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1r6xHm-0002P3-LC
	for submit <at> debbugs.gnu.org; Sat, 25 Nov 2023 13:21:47 -0500
Received: from relay8-d.mail.gandi.net ([2001:4b98:dc4:8::228]:51533)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1r6xHf-0002OP-8g
 for 18132 <at> debbugs.gnu.org; Sat, 25 Nov 2023 13:21:40 -0500
Received: by mail.gandi.net (Postfix) with ESMTPSA id 757631BF206;
 Sat, 25 Nov 2023 18:21:27 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
In-Reply-To: <83zfz3dyae.fsf@HIDDEN> (Eli Zaretskii's message of "Fri, 24 Nov
 2023 16:24:41 +0200")
Organization: LINKOV.NET
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <87d2cn67zo.fsf@HIDDEN>
 <CAOnWdoivtsBnHPhZWkjxNEqiMxfOwnYiU2eaoQEu4_3bjCx=JQ@HIDDEN>
 <87bns6dcul.fsf@HIDDEN>
 <CAOnWdoiiMd1fqrY=ZAXA4U9ctu0Vcx1BCj7B0U27A9sbJTdpkg@HIDDEN>
 <87silbstsc.fsf@HIDDEN>
 <CAOnWdogh6UiaRCeuxLCj0p9cMqhCBOUwD1Rfsn1RUcGvLROP7Q@HIDDEN>
 <CADwFkmkgn6Kp8CULr4pe0wj1-gZfm3t183x-bnGLubOwnfaBSw@HIDDEN>
 <83lf2k5gna.fsf@HIDDEN>
 <CADwFkmmP5tgu8eJCRqdbqwbqezHbjkQxtsotwhPszF9_ECdJzA@HIDDEN>
 <CAOnWdojTXD0QvKDn8V6x4Unja6qZuZZ3Q1KqqU2yEDLNKRmNig@HIDDEN>
 <CADwFkm=Z+MWgbMnvrGiWo76cMeQ=q1xJHcZ-Uyc9QjThVULhQQ@HIDDEN>
 <CAOnWdohzNADVbQrk-ZQvwWpcr4ewDtr-Hpvs-K5H+-TJfP-LGQ@HIDDEN>
 <CADwFkmkZMXdF5bdCBvgPKXz0WAEcMzdrWODF6hZCYEQYetp0GA@HIDDEN>
 <CAOnWdog3bTNSVBEprKoFX8yGEWVxrdh+Vu5kCx6Ew=mgHsWrtQ@HIDDEN>
 <83ilxn3qpo.fsf@HIDDEN> <878ryizwyi.fsf@HIDDEN>
 <86y1eoxtrr.fsf@HIDDEN> <83leaofebt.fsf@HIDDEN>
 <86edgfk37h.fsf@HIDDEN> <83zfz3dyae.fsf@HIDDEN>
Date: Sat, 25 Nov 2023 20:10:40 +0200
Message-ID: <86h6l9zorh.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-GND-Sasl: juri@HIDDEN
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 18132
Cc: 18132 <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.7 (-)

--=-=-=
Content-Type: text/plain

>> >> > Then its possible options for such hook could include:
>> >> >
>> >> > - xdg-open-function
>> >> > - mailcap-function that adds mailcap candidates
>> >> > - dired-x-guess that adds existing dired-guess-shell-alist-default
>> >> > - Windows-specific candidates from w32-shell-execute
>> >> > - etc.
>> >>
>> >> Here is the implementation:
>> >
>> > Thanks, but please don't put this stuff in simple.el.  There's no
>> > reason to have this preloaded in Emacs.
>>
>> I can't find other place to put these 50 lines.  I added to simple.el
>> near read-shell-command because it's used by read-shell-command.
>
> IMO, read-shell-command should not by default call these helpers.

It doesn't call them by default.

> If we cannot find a suitable non-preloaded file to put this stuff (is
> subr-x.el okay, for example?), it's okay to start a new file.

Ok, then let's add this to dired-aux.el since it's used in dired.

>> Also shell-command-guess is used by dired-read-shell-command
>> ('!' and '&' on a file in dired).
>
> Likewise here: users should by default be able to invoke these Dired
> commands without automatically loading those helpers, which come with
> quite tangible ballast.  For Dired, this is perhaps less important,
> since Dired itself is an optional package, but still: I think it's
> wrong to do this by default.

Ok, I removed mailcap and xdg from defaults:


--=-=-=
Content-Type: text/x-diff
Content-Disposition: inline; filename=shell-command-guess.patch

diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el
index 02194e6ff45..0c01b24c2db 100644
--- a/lisp/dired-aux.el
+++ b/lisp/dired-aux.el
@@ -763,22 +763,6 @@ dired-trample-file-versions
 
 ;;; Shell commands
 
-(declare-function mailcap-file-default-commands "mailcap" (files))
-
-(defvar dired-aux-files)
-
-(defun dired-minibuffer-default-add-shell-commands ()
-  "Return a list of all commands associated with current Dired files.
-This function is used to add all related commands retrieved by `mailcap'
-to the end of the list of defaults just after the default value."
-  (interactive)
-  (let ((commands (and (boundp 'dired-aux-files)
-		       (require 'mailcap nil t)
-		       (mailcap-file-default-commands dired-aux-files))))
-    (if (listp minibuffer-default)
-	(append minibuffer-default commands)
-      (cons minibuffer-default commands))))
-
 ;; This is an extra function so that you can redefine it, e.g., to use gmhist.
 (defun dired-read-shell-command (prompt arg files)
   "Read a Dired shell command.
@@ -789,14 +773,9 @@ dired-read-shell-command
 
 Use `dired-guess-shell-command' to offer a smarter default choice
 of shell command."
-  (minibuffer-with-setup-hook
-      (lambda ()
-	(setq-local dired-aux-files files)
-	(setq-local minibuffer-default-add-function
-                    #'dired-minibuffer-default-add-shell-commands))
-    (setq prompt (format prompt (dired-mark-prompt arg files)))
-    (dired-mark-pop-up nil 'shell files
-                       'dired-guess-shell-command prompt files)))
+  (setq prompt (format prompt (dired-mark-prompt arg files)))
+  (dired-mark-pop-up nil 'shell files
+                     'dired-guess-shell-command prompt files))
 
 ;;;###autoload
 (defcustom dired-confirm-shell-command t
@@ -1316,7 +1295,7 @@ dired-guess-default
 ;;;###autoload
 (defun dired-guess-shell-command (prompt files)
   "Ask user with PROMPT for a shell command, guessing a default from FILES."
-  (let ((default (dired-guess-default files))
+  (let ((default (shell-command-guess files))
         default-list val)
     (if (null default)
         ;; Nothing to guess
@@ -1340,6 +1319,64 @@ dired-guess-shell-command
       ;; If we got a return, then return default.
       (if (equal val "") default val))))
 
+(defcustom shell-command-guess-functions
+  '(shell-command-guess-dired)
+  "List of functions that guess shell commands for files.
+Each function receives a list of commands and a list of file names
+and should return the same list of commands with changes
+such as added new commands."
+  :type '(repeat
+          (choice (function-item shell-command-guess-dired)
+                  (function-item shell-command-guess-xdg)
+                  (function-item shell-command-guess-mailcap)
+                  (function :tag "Custom function")))
+  :group 'dired
+  :version "30.1")
+
+;;;###autoload
+(defun shell-command-guess (files)
+  "Return a list of shell commands, appropriate for FILES."
+  (let ((commands nil))
+    (run-hook-wrapped 'shell-command-guess-functions
+                      (lambda (fun)
+                        (setq commands (funcall fun commands files))
+                        nil))
+    commands))
+
+(declare-function mailcap-file-default-commands "mailcap" (files))
+
+(defun shell-command-guess-mailcap (commands files)
+  (require 'mailcap)
+  (append (mailcap-file-default-commands files) commands))
+
+(declare-function dired-get-filename "dired" (&optional localp no-error-if-not-filep))
+(declare-function dired-guess-default "dired-aux" (files))
+
+(defun shell-command-guess-dired (commands files)
+  (require 'dired-aux)
+  (append (ensure-list (dired-guess-default files)) commands))
+
+(declare-function xdg-mime-apps "xdg" (mime))
+(declare-function xdg-desktop-read-file "xdg" (filename &optional group))
+
+(defun shell-command-guess-xdg (commands files)
+  (require 'xdg)
+  (let* ((xdg-mime (when (executable-find "xdg-mime")
+                     (string-trim-right
+                      (shell-command-to-string
+                       (concat "xdg-mime query filetype " (car files))))))
+         (xdg-mime-apps (unless (string-empty-p xdg-mime)
+                          (xdg-mime-apps xdg-mime)))
+         (xdg-commands
+          (mapcar (lambda (desktop)
+                    (setq desktop (xdg-desktop-read-file desktop))
+                    (propertize
+                     (replace-regexp-in-string
+                      " .*" "" (gethash "Exec" desktop))
+                     'name (gethash "Name" desktop)))
+                  xdg-mime-apps)))
+    (append xdg-commands commands)))
+
 
 ;;; Commands that delete or redisplay part of the dired buffer
 
@@ -3856,9 +3893,6 @@ dired-vc-deduce-fileset
         (setq model (vc-checkout-model backend only-files-list))))
     (list backend files only-files-list state model)))
 
-(define-obsolete-function-alias 'minibuffer-default-add-dired-shell-commands
-  #'dired-minibuffer-default-add-shell-commands "29.1")
-
 
 (provide 'dired-aux)
 
diff --git a/lisp/simple.el b/lisp/simple.el
index 02c68912dba..f27c3042d9a 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -4273,7 +4273,6 @@ shell-command-default-error-buffer
 is run interactively.  A value of nil means that output to stderr and
 stdout will be intermixed in the output stream.")
 
-(declare-function mailcap-file-default-commands "mailcap" (files))
 (declare-function dired-get-filename "dired" (&optional localp no-error-if-not-filep))
 
 (defun minibuffer-default-add-shell-commands ()
@@ -4284,8 +4283,7 @@ minibuffer-default-add-shell-commands
   (let* ((filename (if (listp minibuffer-default)
 		       (car minibuffer-default)
 		     minibuffer-default))
-	 (commands (and filename (require 'mailcap nil t)
-			(mailcap-file-default-commands (list filename)))))
+	 (commands (and filename (shell-command-guess (list filename)))))
     (setq commands (mapcar (lambda (command)
 			     (concat command " " filename))
 			   commands))

--=-=-=--




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

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


Received: (at 18132) by debbugs.gnu.org; 24 Nov 2023 14:25:03 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Nov 24 09:25:03 2023
Received: from localhost ([127.0.0.1]:36044 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1r6X78-0005z7-Ir
	for submit <at> debbugs.gnu.org; Fri, 24 Nov 2023 09:25:03 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10]:45792)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1r6X73-0005yb-Ba
 for 18132 <at> debbugs.gnu.org; Fri, 24 Nov 2023 09:25:01 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1r6X6s-0002x9-Ms; Fri, 24 Nov 2023 09:24:46 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=kGax45+vFxEj15jF2fEJw3qtrTI9IIOkerE4Ut+95co=; b=JgJUO6p8F62r
 MfgSmbxw05YDQ3SFSaDLt98ItdoW8X7+aSHuNori+r2aqUsix73/rS6FyyDDUloj95Diobox5ZISK
 GsbFuKu4is73HzZxMOeXSMfgDgUaM9aAVG/KmwXkZTHeLYph5JRymPnpBVoszxNSYFQQJtLHWwCJY
 4Z4Plb5Em4tvvgRO8OoWE/xHav+6IFoLPd5c8kTD+H5SY5/hC1DSt38V34rOCi0h7K90qkDh0rpNI
 F1GBZaydu9tl4WWPSNhnqILdHa+BeLFIYsDXciU5NCdqC0NDqAKr3GRM/OH9OUvnAa52zW8EMEKhT
 DZNQK356o47zDXPNMipCJg==;
Date: Fri, 24 Nov 2023 16:24:41 +0200
Message-Id: <83zfz3dyae.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Juri Linkov <juri@HIDDEN>
In-Reply-To: <86edgfk37h.fsf@HIDDEN> (message from Juri Linkov on
 Fri, 24 Nov 2023 09:51:54 +0200)
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <87d2cn67zo.fsf@HIDDEN>
 <CAOnWdoivtsBnHPhZWkjxNEqiMxfOwnYiU2eaoQEu4_3bjCx=JQ@HIDDEN>
 <87bns6dcul.fsf@HIDDEN>
 <CAOnWdoiiMd1fqrY=ZAXA4U9ctu0Vcx1BCj7B0U27A9sbJTdpkg@HIDDEN>
 <87silbstsc.fsf@HIDDEN>
 <CAOnWdogh6UiaRCeuxLCj0p9cMqhCBOUwD1Rfsn1RUcGvLROP7Q@HIDDEN>
 <CADwFkmkgn6Kp8CULr4pe0wj1-gZfm3t183x-bnGLubOwnfaBSw@HIDDEN>
 <83lf2k5gna.fsf@HIDDEN>
 <CADwFkmmP5tgu8eJCRqdbqwbqezHbjkQxtsotwhPszF9_ECdJzA@HIDDEN>
 <CAOnWdojTXD0QvKDn8V6x4Unja6qZuZZ3Q1KqqU2yEDLNKRmNig@HIDDEN>
 <CADwFkm=Z+MWgbMnvrGiWo76cMeQ=q1xJHcZ-Uyc9QjThVULhQQ@HIDDEN>
 <CAOnWdohzNADVbQrk-ZQvwWpcr4ewDtr-Hpvs-K5H+-TJfP-LGQ@HIDDEN>
 <CADwFkmkZMXdF5bdCBvgPKXz0WAEcMzdrWODF6hZCYEQYetp0GA@HIDDEN>
 <CAOnWdog3bTNSVBEprKoFX8yGEWVxrdh+Vu5kCx6Ew=mgHsWrtQ@HIDDEN>
 <83ilxn3qpo.fsf@HIDDEN> <878ryizwyi.fsf@HIDDEN>
 <86y1eoxtrr.fsf@HIDDEN> <83leaofebt.fsf@HIDDEN>
 <86edgfk37h.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 18132
Cc: 18132 <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: -3.3 (---)

> From: Juri Linkov <juri@HIDDEN>
> Cc: 18132 <at> debbugs.gnu.org
> Date: Fri, 24 Nov 2023 09:51:54 +0200
> 
> >> > Then its possible options for such hook could include:
> >> >
> >> > - xdg-open-function
> >> > - mailcap-function that adds mailcap candidates
> >> > - dired-x-guess that adds existing dired-guess-shell-alist-default
> >> > - Windows-specific candidates from w32-shell-execute
> >> > - etc.
> >>
> >> Here is the implementation:
> >
> > Thanks, but please don't put this stuff in simple.el.  There's no
> > reason to have this preloaded in Emacs.
> 
> I can't find other place to put these 50 lines.  I added to simple.el
> near read-shell-command because it's used by read-shell-command.

IMO, read-shell-command should not by default call these helpers.

If we cannot find a suitable non-preloaded file to put this stuff (is
subr-x.el okay, for example?), it's okay to start a new file.

> > And let's try to implement this in a way that won't load mailcap, xdg,
> > dired, and dired-aux whenever shell-command is invoked.
> 
> It already doesn't load mailcap, xdg, dired, and dired-aux
> when shell-command is invoked.  It loads these files only
> when the user needs to use them and types 'M-n' twice in the
> minibuffer of read-shell-command ('M-!' and 'M-&').

That's immaterial: M-n is an integral part of shell-command (of any
command, really), and thus should not cause such massive loading of
helper stuff, not by default anyway.  Why do we think we can
second-guess what user wants from shell-command guessing? why do we
think the user will want XDG in this picture? or mailcap?  These are
explicit user preferences, and we should leave it to the users to
express their preferences.

> Also shell-command-guess is used by dired-read-shell-command
> ('!' and '&' on a file in dired).

Likewise here: users should by default be able to invoke these Dired
commands without automatically loading those helpers, which come with
quite tangible ballast.  For Dired, this is perhaps less important,
since Dired itself is an optional package, but still: I think it's
wrong to do this by default.




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

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


Received: (at 18132) by debbugs.gnu.org; 24 Nov 2023 08:22:14 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Fri Nov 24 03:22:14 2023
Received: from localhost ([127.0.0.1]:35569 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1r6RS1-0001ou-MI
	for submit <at> debbugs.gnu.org; Fri, 24 Nov 2023 03:22:13 -0500
Received: from relay5-d.mail.gandi.net ([2001:4b98:dc4:8::225]:60477)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1r6RRy-0001oR-7V
 for 18132 <at> debbugs.gnu.org; Fri, 24 Nov 2023 03:22:10 -0500
Received: by mail.gandi.net (Postfix) with ESMTPSA id 9447C1C000F;
 Fri, 24 Nov 2023 08:21:57 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
In-Reply-To: <83leaofebt.fsf@HIDDEN> (Eli Zaretskii's message of "Thu, 23 Nov
 2023 21:40:38 +0200")
Organization: LINKOV.NET
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <87d2cn67zo.fsf@HIDDEN>
 <CAOnWdoivtsBnHPhZWkjxNEqiMxfOwnYiU2eaoQEu4_3bjCx=JQ@HIDDEN>
 <87bns6dcul.fsf@HIDDEN>
 <CAOnWdoiiMd1fqrY=ZAXA4U9ctu0Vcx1BCj7B0U27A9sbJTdpkg@HIDDEN>
 <87silbstsc.fsf@HIDDEN>
 <CAOnWdogh6UiaRCeuxLCj0p9cMqhCBOUwD1Rfsn1RUcGvLROP7Q@HIDDEN>
 <CADwFkmkgn6Kp8CULr4pe0wj1-gZfm3t183x-bnGLubOwnfaBSw@HIDDEN>
 <83lf2k5gna.fsf@HIDDEN>
 <CADwFkmmP5tgu8eJCRqdbqwbqezHbjkQxtsotwhPszF9_ECdJzA@HIDDEN>
 <CAOnWdojTXD0QvKDn8V6x4Unja6qZuZZ3Q1KqqU2yEDLNKRmNig@HIDDEN>
 <CADwFkm=Z+MWgbMnvrGiWo76cMeQ=q1xJHcZ-Uyc9QjThVULhQQ@HIDDEN>
 <CAOnWdohzNADVbQrk-ZQvwWpcr4ewDtr-Hpvs-K5H+-TJfP-LGQ@HIDDEN>
 <CADwFkmkZMXdF5bdCBvgPKXz0WAEcMzdrWODF6hZCYEQYetp0GA@HIDDEN>
 <CAOnWdog3bTNSVBEprKoFX8yGEWVxrdh+Vu5kCx6Ew=mgHsWrtQ@HIDDEN>
 <83ilxn3qpo.fsf@HIDDEN> <878ryizwyi.fsf@HIDDEN>
 <86y1eoxtrr.fsf@HIDDEN> <83leaofebt.fsf@HIDDEN>
Date: Fri, 24 Nov 2023 09:51:54 +0200
Message-ID: <86edgfk37h.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain
X-GND-Sasl: juri@HIDDEN
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 18132
Cc: 18132 <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.7 (-)

>> > Then its possible options for such hook could include:
>> >
>> > - xdg-open-function
>> > - mailcap-function that adds mailcap candidates
>> > - dired-x-guess that adds existing dired-guess-shell-alist-default
>> > - Windows-specific candidates from w32-shell-execute
>> > - etc.
>>
>> Here is the implementation:
>
> Thanks, but please don't put this stuff in simple.el.  There's no
> reason to have this preloaded in Emacs.

I can't find other place to put these 50 lines.  I added to simple.el
near read-shell-command because it's used by read-shell-command.

If you want this could be moved to dired-aux.el and placed
near dired-guess-shell-command.  But would it be quite inappropriate
since shell-command-guess is a more general feature?

> And let's try to implement this in a way that won't load mailcap, xdg,
> dired, and dired-aux whenever shell-command is invoked.

It already doesn't load mailcap, xdg, dired, and dired-aux
when shell-command is invoked.  It loads these files only
when the user needs to use them and types 'M-n' twice in the
minibuffer of read-shell-command ('M-!' and 'M-&').

Also shell-command-guess is used by dired-read-shell-command
('!' and '&' on a file in dired).




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

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


Received: (at 18132) by debbugs.gnu.org; 23 Nov 2023 19:41:02 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Nov 23 14:41:02 2023
Received: from localhost ([127.0.0.1]:35153 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1r6FZN-00019A-Md
	for submit <at> debbugs.gnu.org; Thu, 23 Nov 2023 14:41:01 -0500
Received: from eggs.gnu.org ([2001:470:142:3::10]:50814)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1r6FZL-00018x-PR
 for 18132 <at> debbugs.gnu.org; Thu, 23 Nov 2023 14:41:00 -0500
Received: from fencepost.gnu.org ([2001:470:142:3::e])
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1r6FZ7-0005FW-Iq; Thu, 23 Nov 2023 14:40:49 -0500
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=gnu.org;
 s=fencepost-gnu-org; h=References:Subject:In-Reply-To:To:From:Date:
 mime-version; bh=YRGYXykz7pOYWpMdVne+sTFVKqDVvVli48R67BLlYtU=; b=VqtwRNpXh1lI
 L5EbfZt8V8xqvYm6XJ5uH8flxf8YGffCal3o1fhqlUvkelb7Er2+UjKTk90fIoeMQMowcpiYv4MuY
 ytUkhNhA4ekmPwgkasLc2dLeysV0z+JI75QdiruuZKQyrKa1DpPz9EUDK61pOXCMCNfdB922MMjhd
 SET4pdRXUhbheJdr3yKYvijIryFnIMmUAJMr4pkGFSkquBdCWIBn0hqlu2jaeSQWxEUtzvdxFsBZr
 +pGK0p3kFT1gBoVadAVBk5IOCyMJZA+HtIk0LBCZiHqTTibyDhABqolzbmsdUsW9GrO5kcBxCrLqd
 xFbWqJZO/6CZSCWm7LPqRA==;
Date: Thu, 23 Nov 2023 21:40:38 +0200
Message-Id: <83leaofebt.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Juri Linkov <juri@HIDDEN>
In-Reply-To: <86y1eoxtrr.fsf@HIDDEN> (message from Juri Linkov on
 Thu, 23 Nov 2023 19:49:44 +0200)
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <87d2cn67zo.fsf@HIDDEN>
 <CAOnWdoivtsBnHPhZWkjxNEqiMxfOwnYiU2eaoQEu4_3bjCx=JQ@HIDDEN>
 <87bns6dcul.fsf@HIDDEN>
 <CAOnWdoiiMd1fqrY=ZAXA4U9ctu0Vcx1BCj7B0U27A9sbJTdpkg@HIDDEN>
 <87silbstsc.fsf@HIDDEN>
 <CAOnWdogh6UiaRCeuxLCj0p9cMqhCBOUwD1Rfsn1RUcGvLROP7Q@HIDDEN>
 <CADwFkmkgn6Kp8CULr4pe0wj1-gZfm3t183x-bnGLubOwnfaBSw@HIDDEN>
 <83lf2k5gna.fsf@HIDDEN>
 <CADwFkmmP5tgu8eJCRqdbqwbqezHbjkQxtsotwhPszF9_ECdJzA@HIDDEN>
 <CAOnWdojTXD0QvKDn8V6x4Unja6qZuZZ3Q1KqqU2yEDLNKRmNig@HIDDEN>
 <CADwFkm=Z+MWgbMnvrGiWo76cMeQ=q1xJHcZ-Uyc9QjThVULhQQ@HIDDEN>
 <CAOnWdohzNADVbQrk-ZQvwWpcr4ewDtr-Hpvs-K5H+-TJfP-LGQ@HIDDEN>
 <CADwFkmkZMXdF5bdCBvgPKXz0WAEcMzdrWODF6hZCYEQYetp0GA@HIDDEN>
 <CAOnWdog3bTNSVBEprKoFX8yGEWVxrdh+Vu5kCx6Ew=mgHsWrtQ@HIDDEN>
 <83ilxn3qpo.fsf@HIDDEN> <878ryizwyi.fsf@HIDDEN>
 <86y1eoxtrr.fsf@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 18132
Cc: 18132 <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: -3.3 (---)

> From: Juri Linkov <juri@HIDDEN>
> Date: Thu, 23 Nov 2023 19:49:44 +0200
> 
> > Then its possible options for such hook could include:
> >
> > - xdg-open-function
> > - mailcap-function that adds mailcap candidates
> > - dired-x-guess that adds existing dired-guess-shell-alist-default
> > - Windows-specific candidates from w32-shell-execute
> > - etc.
> 
> Here is the implementation:

Thanks, but please don't put this stuff in simple.el.  There's no
reason to have this preloaded in Emacs.  And let's try to implement
this in a way that won't load mailcap, xdg, dired, and dired-aux
whenever shell-command is invoked.




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

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


Received: (at 18132) by debbugs.gnu.org; 23 Nov 2023 18:04:27 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Thu Nov 23 13:04:27 2023
Received: from localhost ([127.0.0.1]:35069 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1r6E3u-0001gf-MX
	for submit <at> debbugs.gnu.org; Thu, 23 Nov 2023 13:04:27 -0500
Received: from relay1-d.mail.gandi.net ([2001:4b98:dc4:8::221]:59113)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1r6E3s-0001gF-5R
 for 18132 <at> debbugs.gnu.org; Thu, 23 Nov 2023 13:04:24 -0500
Received: by mail.gandi.net (Postfix) with ESMTPSA id 5A4B9240002
 for <18132 <at> debbugs.gnu.org>; Thu, 23 Nov 2023 18:04:10 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
To: 18132 <at> debbugs.gnu.org
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
In-Reply-To: <878ryizwyi.fsf@HIDDEN> (Juri Linkov's message of "Sun, 
 24 Oct 2021 10:56:45 +0300")
Organization: LINKOV.NET
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <87d2cn67zo.fsf@HIDDEN>
 <CAOnWdoivtsBnHPhZWkjxNEqiMxfOwnYiU2eaoQEu4_3bjCx=JQ@HIDDEN>
 <87bns6dcul.fsf@HIDDEN>
 <CAOnWdoiiMd1fqrY=ZAXA4U9ctu0Vcx1BCj7B0U27A9sbJTdpkg@HIDDEN>
 <87silbstsc.fsf@HIDDEN>
 <CAOnWdogh6UiaRCeuxLCj0p9cMqhCBOUwD1Rfsn1RUcGvLROP7Q@HIDDEN>
 <CADwFkmkgn6Kp8CULr4pe0wj1-gZfm3t183x-bnGLubOwnfaBSw@HIDDEN>
 <83lf2k5gna.fsf@HIDDEN>
 <CADwFkmmP5tgu8eJCRqdbqwbqezHbjkQxtsotwhPszF9_ECdJzA@HIDDEN>
 <CAOnWdojTXD0QvKDn8V6x4Unja6qZuZZ3Q1KqqU2yEDLNKRmNig@HIDDEN>
 <CADwFkm=Z+MWgbMnvrGiWo76cMeQ=q1xJHcZ-Uyc9QjThVULhQQ@HIDDEN>
 <CAOnWdohzNADVbQrk-ZQvwWpcr4ewDtr-Hpvs-K5H+-TJfP-LGQ@HIDDEN>
 <CADwFkmkZMXdF5bdCBvgPKXz0WAEcMzdrWODF6hZCYEQYetp0GA@HIDDEN>
 <CAOnWdog3bTNSVBEprKoFX8yGEWVxrdh+Vu5kCx6Ew=mgHsWrtQ@HIDDEN>
 <83ilxn3qpo.fsf@HIDDEN> <878ryizwyi.fsf@HIDDEN>
Date: Thu, 23 Nov 2023 19:49:44 +0200
Message-ID: <86y1eoxtrr.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/30.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-GND-Sasl: juri@HIDDEN
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 18132
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.7 (-)

--=-=-=
Content-Type: text/plain

> To add minimal complexity we could use as an example
> the recent design of context-menu-functions that is a hook.
>
> Then we could create a new customizable hook that can contain
> a list of functions that return the command candidates depending
> on the argument with file names.
>
> Then its possible options for such hook could include:
>
> - xdg-open-function
> - mailcap-function that adds mailcap candidates
> - dired-x-guess that adds existing dired-guess-shell-alist-default
> - Windows-specific candidates from w32-shell-execute
> - etc.

Here is the implementation:


--=-=-=
Content-Type: text/x-diff
Content-Disposition: inline; filename=shell-command-guess.patch

diff --git a/lisp/simple.el b/lisp/simple.el
index 2e2d73e9bf4..25e0c1cca7f 100644
--- a/lisp/simple.el
+++ b/lisp/simple.el
@@ -4273,8 +4273,63 @@ shell-command-default-error-buffer
 is run interactively.  A value of nil means that output to stderr and
 stdout will be intermixed in the output stream.")
 
+(defcustom shell-command-guess-functions
+  '(shell-command-guess-mailcap
+    shell-command-guess-xdg
+    shell-command-guess-dired)
+  "List of functions that guess shell commands for files.
+Each function receives a list of commands and a list of file names
+and should return the same list of commands with changes
+such as added new commands."
+  :type '(repeat
+          (choice (function-item shell-command-guess-dired)
+                  (function-item shell-command-guess-xdg)
+                  (function-item shell-command-guess-mailcap)
+                  (function :tag "Custom function")))
+  :version "30.1")
+
+(defun shell-command-guess (files)
+  "Return a list of shell commands, appropriate for FILES."
+  (let ((commands nil))
+    (run-hook-wrapped 'shell-command-guess-functions
+                      (lambda (fun)
+                        (setq commands (funcall fun commands files))
+                        nil))
+    commands))
+
 (declare-function mailcap-file-default-commands "mailcap" (files))
+
+(defun shell-command-guess-mailcap (commands files)
+  (require 'mailcap)
+  (append (mailcap-file-default-commands files) commands))
+
 (declare-function dired-get-filename "dired" (&optional localp no-error-if-not-filep))
+(declare-function dired-guess-default "dired-aux" (files))
+
+(defun shell-command-guess-dired (commands files)
+  (require 'dired-aux)
+  (append (ensure-list (dired-guess-default files)) commands))
+
+(declare-function xdg-mime-apps "xdg" (mime))
+(declare-function xdg-desktop-read-file "xdg" (filename &optional group))
+
+(defun shell-command-guess-xdg (commands files)
+  (require 'xdg)
+  (let* ((xdg-mime (when (executable-find "xdg-mime")
+                     (string-trim-right
+                      (shell-command-to-string
+                       (concat "xdg-mime query filetype " (car files))))))
+         (xdg-mime-apps (unless (string-empty-p xdg-mime)
+                          (xdg-mime-apps xdg-mime)))
+         (xdg-commands
+          (mapcar (lambda (desktop)
+                    (setq desktop (xdg-desktop-read-file desktop))
+                    (propertize
+                     (replace-regexp-in-string
+                      " .*" "" (gethash "Exec" desktop))
+                     'name (gethash "Name" desktop)))
+                  xdg-mime-apps)))
+    (append xdg-commands commands)))
 
 (defun minibuffer-default-add-shell-commands ()
   "Return a list of all commands associated with the current file.
@@ -4284,8 +4339,7 @@ minibuffer-default-add-shell-commands
   (let* ((filename (if (listp minibuffer-default)
 		       (car minibuffer-default)
 		     minibuffer-default))
-	 (commands (and filename (require 'mailcap nil t)
-			(mailcap-file-default-commands (list filename)))))
+	 (commands (and filename (shell-command-guess (list filename)))))
     (setq commands (mapcar (lambda (command)
 			     (concat command " " filename))
 			   commands))
diff --git a/lisp/dired-aux.el b/lisp/dired-aux.el
index 02194e6ff45..ba6685af7f3 100644
--- a/lisp/dired-aux.el
+++ b/lisp/dired-aux.el
@@ -763,22 +763,6 @@ dired-trample-file-versions
 
 ;;; Shell commands
 
-(declare-function mailcap-file-default-commands "mailcap" (files))
-
-(defvar dired-aux-files)
-
-(defun dired-minibuffer-default-add-shell-commands ()
-  "Return a list of all commands associated with current Dired files.
-This function is used to add all related commands retrieved by `mailcap'
-to the end of the list of defaults just after the default value."
-  (interactive)
-  (let ((commands (and (boundp 'dired-aux-files)
-		       (require 'mailcap nil t)
-		       (mailcap-file-default-commands dired-aux-files))))
-    (if (listp minibuffer-default)
-	(append minibuffer-default commands)
-      (cons minibuffer-default commands))))
-
 ;; This is an extra function so that you can redefine it, e.g., to use gmhist.
 (defun dired-read-shell-command (prompt arg files)
   "Read a Dired shell command.
@@ -789,14 +773,9 @@ dired-read-shell-command
 
 Use `dired-guess-shell-command' to offer a smarter default choice
 of shell command."
-  (minibuffer-with-setup-hook
-      (lambda ()
-	(setq-local dired-aux-files files)
-	(setq-local minibuffer-default-add-function
-                    #'dired-minibuffer-default-add-shell-commands))
-    (setq prompt (format prompt (dired-mark-prompt arg files)))
-    (dired-mark-pop-up nil 'shell files
-                       'dired-guess-shell-command prompt files)))
+  (setq prompt (format prompt (dired-mark-prompt arg files)))
+  (dired-mark-pop-up nil 'shell files
+                     'dired-guess-shell-command prompt files))
 
 ;;;###autoload
 (defcustom dired-confirm-shell-command t
@@ -1316,7 +1295,7 @@ dired-guess-default
 ;;;###autoload
 (defun dired-guess-shell-command (prompt files)
   "Ask user with PROMPT for a shell command, guessing a default from FILES."
-  (let ((default (dired-guess-default files))
+  (let ((default (shell-command-guess files))
         default-list val)
     (if (null default)
         ;; Nothing to guess
@@ -3856,9 +3835,6 @@ dired-vc-deduce-fileset
         (setq model (vc-checkout-model backend only-files-list))))
     (list backend files only-files-list state model)))
 
-(define-obsolete-function-alias 'minibuffer-default-add-dired-shell-commands
-  #'dired-minibuffer-default-add-shell-commands "29.1")
-
 
 (provide 'dired-aux)
 

--=-=-=--




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

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


Received: (at 18132) by debbugs.gnu.org; 24 Oct 2021 19:18:01 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Oct 24 15:18:01 2021
Received: from localhost ([127.0.0.1]:40963 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1mej0K-0008FN-QY
	for submit <at> debbugs.gnu.org; Sun, 24 Oct 2021 15:18:00 -0400
Received: from relay10.mail.gandi.net ([217.70.178.230]:48839)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1mej0G-0008Ej-MH
 for 18132 <at> debbugs.gnu.org; Sun, 24 Oct 2021 15:17:57 -0400
Received: (Authenticated sender: juri@HIDDEN)
 by relay10.mail.gandi.net (Postfix) with ESMTPSA id B6CDB240005;
 Sun, 24 Oct 2021 19:17:49 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
To: Howard Melman <hmelman@HIDDEN>
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
Organization: LINKOV.NET
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <87d2cn67zo.fsf@HIDDEN>
 <CAOnWdoivtsBnHPhZWkjxNEqiMxfOwnYiU2eaoQEu4_3bjCx=JQ@HIDDEN>
 <87bns6dcul.fsf@HIDDEN>
 <CAOnWdoiiMd1fqrY=ZAXA4U9ctu0Vcx1BCj7B0U27A9sbJTdpkg@HIDDEN>
 <87silbstsc.fsf@HIDDEN>
 <CAOnWdogh6UiaRCeuxLCj0p9cMqhCBOUwD1Rfsn1RUcGvLROP7Q@HIDDEN>
 <CADwFkmkgn6Kp8CULr4pe0wj1-gZfm3t183x-bnGLubOwnfaBSw@HIDDEN>
 <83lf2k5gna.fsf@HIDDEN>
 <CADwFkmmP5tgu8eJCRqdbqwbqezHbjkQxtsotwhPszF9_ECdJzA@HIDDEN>
 <CAOnWdojTXD0QvKDn8V6x4Unja6qZuZZ3Q1KqqU2yEDLNKRmNig@HIDDEN>
 <CADwFkm=Z+MWgbMnvrGiWo76cMeQ=q1xJHcZ-Uyc9QjThVULhQQ@HIDDEN>
 <lyv91neia0.fsf@HIDDEN> <87sfwr8utt.fsf@HIDDEN>
 <lyr1cae5ys.fsf@HIDDEN>
Date: Sun, 24 Oct 2021 22:08:43 +0300
In-Reply-To: <lyr1cae5ys.fsf@HIDDEN> (Howard Melman's message of
 "Sun, 24 Oct 2021 12:35:23 -0400")
Message-ID: <871r4ajm2c.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 18132
Cc: 18132 <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.7 (-)

> FWIW, my version is quite different:
>
>   (cond ((memq system-type '(darwin))
>          (call-process-shell-command (concat "open " (shell-quote-argument file))))
>         ((memq system-type '(windows-nt))
>          (w32-shell-execute "open" (convert-standard-filename file)))
>         ((memq system-type '(gnu/linux))
>          (call-process-shell-command (concat "xdg-open " (shell-quote-argument file))))

Indeed, these are good system-dependent default values for the new
hook-like user option.




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

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


Received: (at submit) by debbugs.gnu.org; 24 Oct 2021 16:35:40 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Oct 24 12:35:40 2021
Received: from localhost ([127.0.0.1]:40630 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1megTE-0007wP-4y
	for submit <at> debbugs.gnu.org; Sun, 24 Oct 2021 12:35:40 -0400
Received: from lists.gnu.org ([209.51.188.17]:50434)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <geb-bug-gnu-emacs@HIDDEN>)
 id 1megTC-0007wI-Ti
 for submit <at> debbugs.gnu.org; Sun, 24 Oct 2021 12:35:39 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:49256)
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <geb-bug-gnu-emacs@HIDDEN>)
 id 1megTC-0008JS-Gd
 for bug-gnu-emacs@HIDDEN; Sun, 24 Oct 2021 12:35:38 -0400
Received: from ciao.gmane.io ([116.202.254.214]:53906)
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <geb-bug-gnu-emacs@HIDDEN>)
 id 1megTA-0008Fa-RD
 for bug-gnu-emacs@HIDDEN; Sun, 24 Oct 2021 12:35:38 -0400
Received: from list by ciao.gmane.io with local (Exim 4.92)
 (envelope-from <geb-bug-gnu-emacs@HIDDEN>)
 id 1megT7-0008Nu-6x
 for bug-gnu-emacs@HIDDEN; Sun, 24 Oct 2021 18:35:33 +0200
X-Injected-Via-Gmane: http://gmane.org/
To: bug-gnu-emacs@HIDDEN
From: Howard Melman <hmelman@HIDDEN>
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
Date: Sun, 24 Oct 2021 12:35:23 -0400
Message-ID: <lyr1cae5ys.fsf@HIDDEN>
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <87d2cn67zo.fsf@HIDDEN>
 <CAOnWdoivtsBnHPhZWkjxNEqiMxfOwnYiU2eaoQEu4_3bjCx=JQ@HIDDEN>
 <87bns6dcul.fsf@HIDDEN>
 <CAOnWdoiiMd1fqrY=ZAXA4U9ctu0Vcx1BCj7B0U27A9sbJTdpkg@HIDDEN>
 <87silbstsc.fsf@HIDDEN>
 <CAOnWdogh6UiaRCeuxLCj0p9cMqhCBOUwD1Rfsn1RUcGvLROP7Q@HIDDEN>
 <CADwFkmkgn6Kp8CULr4pe0wj1-gZfm3t183x-bnGLubOwnfaBSw@HIDDEN>
 <83lf2k5gna.fsf@HIDDEN>
 <CADwFkmmP5tgu8eJCRqdbqwbqezHbjkQxtsotwhPszF9_ECdJzA@HIDDEN>
 <CAOnWdojTXD0QvKDn8V6x4Unja6qZuZZ3Q1KqqU2yEDLNKRmNig@HIDDEN>
 <CADwFkm=Z+MWgbMnvrGiWo76cMeQ=q1xJHcZ-Uyc9QjThVULhQQ@HIDDEN>
 <lyv91neia0.fsf@HIDDEN> <87sfwr8utt.fsf@HIDDEN>
Mime-Version: 1.0
Content-Type: text/plain
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (darwin)
Cancel-Lock: sha1:YG78iXAxJrE5mRgaQvZLb9FKqLU=
Received-SPF: pass client-ip=116.202.254.214;
 envelope-from=geb-bug-gnu-emacs@HIDDEN; helo=ciao.gmane.io
X-Spam_score_int: 5
X-Spam_score: 0.5
X-Spam_bar: /
X-Spam_report: (0.5 / 5.0 requ) BAYES_00=-1.9, DKIM_ADSP_CUSTOM_MED=0.001,
 FORGED_GMAIL_RCVD=1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001,
 HEADER_FROM_DIFFERENT_DOMAINS=0.25, NML_ADSP_CUSTOM_MED=0.9,
 SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no
X-Spam_action: no action
X-Spam-Score: 0.1 (/)
X-Debbugs-Envelope-To: submit
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.9 (/)

Juri Linkov <juri@HIDDEN> writes:

>> Such a command emulates what double clicking on an icon does
>> which most of the time is what a user wants (because it's
>> configured it do what their most common app need is).
>
> Such a command is long overdue.  I used the following command
> for a long time, and forgot it's not in dired-x.  I don't suggest
> to use this implementation, but something like this.  

FWIW, my version is quite different:

#+begin_src emacs-lisp
;;; open a file as if double clicking on its icon
(declare-function w32-shell-execute "w32fns.c")
(defun hrm-open-file (file)
  "Open FILE as the system would."
  (interactive "fFile: ")
  (cond ((memq system-type '(darwin))
         (call-process-shell-command (concat "open " (shell-quote-argument file))))
        ((memq system-type '(windows-nt))
         (w32-shell-execute "open" (convert-standard-filename file)))
        ((memq system-type '(gnu/linux))
         (call-process-shell-command (concat "xdg-open " (shell-quote-argument file))))
        (t
         (error "Open not supported on this system"))))

(defun dired-do-open (&optional arg)
  "Open the marked (or next ARG) files as the system would."
  (interactive "P")
  (mapc #'hrm-open-file (dired-get-marked-files nil arg)))
#+end_src

-- 

Howard





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

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


Received: (at 18132) by debbugs.gnu.org; 24 Oct 2021 07:57:54 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Oct 24 03:57:54 2021
Received: from localhost ([127.0.0.1]:37856 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1meYOA-00040j-Fp
	for submit <at> debbugs.gnu.org; Sun, 24 Oct 2021 03:57:54 -0400
Received: from relay9-d.mail.gandi.net ([217.70.183.199]:34615)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1meYO7-00040I-7o
 for 18132 <at> debbugs.gnu.org; Sun, 24 Oct 2021 03:57:51 -0400
Received: (Authenticated sender: juri@HIDDEN)
 by relay9-d.mail.gandi.net (Postfix) with ESMTPSA id 587F8FF802;
 Sun, 24 Oct 2021 07:57:43 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
To: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
Organization: LINKOV.NET
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <87d2cn67zo.fsf@HIDDEN>
 <CAOnWdoivtsBnHPhZWkjxNEqiMxfOwnYiU2eaoQEu4_3bjCx=JQ@HIDDEN>
 <87bns6dcul.fsf@HIDDEN>
 <CAOnWdoiiMd1fqrY=ZAXA4U9ctu0Vcx1BCj7B0U27A9sbJTdpkg@HIDDEN>
 <87silbstsc.fsf@HIDDEN>
 <CAOnWdogh6UiaRCeuxLCj0p9cMqhCBOUwD1Rfsn1RUcGvLROP7Q@HIDDEN>
 <CADwFkmkgn6Kp8CULr4pe0wj1-gZfm3t183x-bnGLubOwnfaBSw@HIDDEN>
 <83lf2k5gna.fsf@HIDDEN>
 <CADwFkmmP5tgu8eJCRqdbqwbqezHbjkQxtsotwhPszF9_ECdJzA@HIDDEN>
 <CAOnWdojTXD0QvKDn8V6x4Unja6qZuZZ3Q1KqqU2yEDLNKRmNig@HIDDEN>
 <CADwFkm=Z+MWgbMnvrGiWo76cMeQ=q1xJHcZ-Uyc9QjThVULhQQ@HIDDEN>
 <CAOnWdohzNADVbQrk-ZQvwWpcr4ewDtr-Hpvs-K5H+-TJfP-LGQ@HIDDEN>
 <CADwFkmkZMXdF5bdCBvgPKXz0WAEcMzdrWODF6hZCYEQYetp0GA@HIDDEN>
 <CAOnWdog3bTNSVBEprKoFX8yGEWVxrdh+Vu5kCx6Ew=mgHsWrtQ@HIDDEN>
 <83ilxn3qpo.fsf@HIDDEN>
Date: Sun, 24 Oct 2021 10:56:45 +0300
In-Reply-To: <83ilxn3qpo.fsf@HIDDEN> (Eli Zaretskii's message of "Sun, 24 Oct
 2021 09:02:43 +0300")
Message-ID: <878ryizwyi.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 18132
Cc: 18132 <at> debbugs.gnu.org, stefan@HIDDEN, Reuben Thomas <rrt@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.7 (-)

>>  I also want to be able to override xdg-open with customizations inside
>>  Emacs.
>>
>> This just adds complexity to the system.
>
> Yes, but the added complexity should be small, and I think we cannot
> do without that: tools like xdg-open will never be able to satisfy all
> the needs of Emacs users, because Emacs is not just a file manager
> capable of starting applications.

To add minimal complexity we could use as an example
the recent design of context-menu-functions that is a hook.

Then we could create a new customizable hook that can contain
a list of functions that return the command candidates depending
on the argument with file names.

Then its possible options for such hook could include:

- xdg-open-function
- mailcap-function that adds mailcap candidates
- dired-x-guess that adds existing dired-guess-shell-alist-default
- Windows-specific candidates from w32-shell-execute
- etc.




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

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


Received: (at 18132) by debbugs.gnu.org; 24 Oct 2021 06:03:01 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Oct 24 02:03:01 2021
Received: from localhost ([127.0.0.1]:37714 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1meWay-0000j9-Qd
	for submit <at> debbugs.gnu.org; Sun, 24 Oct 2021 02:03:00 -0400
Received: from eggs.gnu.org ([209.51.188.92]:55950)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1meWax-0000iw-1l
 for 18132 <at> debbugs.gnu.org; Sun, 24 Oct 2021 02:02:59 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e]:52150)
 by eggs.gnu.org with esmtp (Exim 4.90_1)
 (envelope-from <eliz@HIDDEN>)
 id 1meWar-000485-64; Sun, 24 Oct 2021 02:02:53 -0400
Received: from [87.69.77.57] (port=2701 helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1meWaq-0008Pz-Oc; Sun, 24 Oct 2021 02:02:53 -0400
Date: Sun, 24 Oct 2021 09:02:43 +0300
Message-Id: <83ilxn3qpo.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Reuben Thomas <rrt@HIDDEN>
In-Reply-To: <CAOnWdog3bTNSVBEprKoFX8yGEWVxrdh+Vu5kCx6Ew=mgHsWrtQ@HIDDEN>
 (message from Reuben Thomas on Sat, 23 Oct 2021 21:53:17 +0100)
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <87d2cn67zo.fsf@HIDDEN>
 <CAOnWdoivtsBnHPhZWkjxNEqiMxfOwnYiU2eaoQEu4_3bjCx=JQ@HIDDEN>
 <87bns6dcul.fsf@HIDDEN>
 <CAOnWdoiiMd1fqrY=ZAXA4U9ctu0Vcx1BCj7B0U27A9sbJTdpkg@HIDDEN>
 <87silbstsc.fsf@HIDDEN>
 <CAOnWdogh6UiaRCeuxLCj0p9cMqhCBOUwD1Rfsn1RUcGvLROP7Q@HIDDEN>
 <CADwFkmkgn6Kp8CULr4pe0wj1-gZfm3t183x-bnGLubOwnfaBSw@HIDDEN>
 <83lf2k5gna.fsf@HIDDEN>
 <CADwFkmmP5tgu8eJCRqdbqwbqezHbjkQxtsotwhPszF9_ECdJzA@HIDDEN>
 <CAOnWdojTXD0QvKDn8V6x4Unja6qZuZZ3Q1KqqU2yEDLNKRmNig@HIDDEN>
 <CADwFkm=Z+MWgbMnvrGiWo76cMeQ=q1xJHcZ-Uyc9QjThVULhQQ@HIDDEN>
 <CAOnWdohzNADVbQrk-ZQvwWpcr4ewDtr-Hpvs-K5H+-TJfP-LGQ@HIDDEN>
 <CADwFkmkZMXdF5bdCBvgPKXz0WAEcMzdrWODF6hZCYEQYetp0GA@HIDDEN>
 <CAOnWdog3bTNSVBEprKoFX8yGEWVxrdh+Vu5kCx6Ew=mgHsWrtQ@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 18132
Cc: 18132 <at> debbugs.gnu.org, stefan@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 (---)

> From: Reuben Thomas <rrt@HIDDEN>
> Date: Sat, 23 Oct 2021 21:53:17 +0100
> Cc: Eli Zaretskii <eliz@HIDDEN>, 18132 <at> debbugs.gnu.org
> 
>  I also want to be able to override xdg-open with customizations inside
>  Emacs.
> 
> This just adds complexity to the system.

Yes, but the added complexity should be small, and I think we cannot
do without that: tools like xdg-open will never be able to satisfy all
the needs of Emacs users, because Emacs is not just a file manager
capable of starting applications.




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

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


Received: (at 18132) by debbugs.gnu.org; 24 Oct 2021 05:10:27 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sun Oct 24 01:10:27 2021
Received: from localhost ([127.0.0.1]:37686 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1meVm7-0007ae-4o
	for submit <at> debbugs.gnu.org; Sun, 24 Oct 2021 01:10:27 -0400
Received: from mout01.posteo.de ([185.67.36.65]:44157)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <thievol@HIDDEN>) id 1meVm3-0007aJ-Tr
 for 18132 <at> debbugs.gnu.org; Sun, 24 Oct 2021 01:10:26 -0400
Received: from submission (posteo.de [89.146.220.130]) 
 by mout01.posteo.de (Postfix) with ESMTPS id D7997240027
 for <18132 <at> debbugs.gnu.org>; Sun, 24 Oct 2021 07:10:17 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017;
 t=1635052217; bh=IhknKSvstzoVOxH3QyyI+Iwm95ljYwrlHXqnh7kwh7k=;
 h=From:To:Cc:Subject:Autocrypt:Date:From;
 b=Tnsv1rpLvMKrVAG1ovRtXFkW1hQ/3/dChNa4VX5Lo78SR8RvDBPIInFO4ZTF1f1jA
 +KHImpJx5JRVQnFzwWAynlA5uR3qtS7EMIGbp/7ZGRDgzf5qjLE/qJinrR3scEdFhc
 u5jurRppDhAFhH2+MHRWtGJbt9603eqKwCmCG9DCw+yXkQ8rQeHj88K0w6ZNG/RWve
 BybDTeF9M5uJqHeKcpjQWxUjolTyTkUE34d0elIsNpfk7Ce73mkoMWomvN1l1GS4tV
 PkcT1flZESfdVAdCtQdCQlsXScbouwCj3UwkimHFY9lud37X8LKhX8e3xybpKeHF6/
 zbA/lwlrkT75w==
Received: from customer (localhost [127.0.0.1])
 by submission (posteo.de) with ESMTPSA id 4HcR3q6Cxfz9rxB;
 Sun, 24 Oct 2021 07:10:15 +0200 (CEST)
From: Thierry Volpiatto <thievol@HIDDEN>
To: Stefan Kangas <stefan@HIDDEN>
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <87d2cn67zo.fsf@HIDDEN>
 <CAOnWdoivtsBnHPhZWkjxNEqiMxfOwnYiU2eaoQEu4_3bjCx=JQ@HIDDEN>
 <87bns6dcul.fsf@HIDDEN>
 <CAOnWdoiiMd1fqrY=ZAXA4U9ctu0Vcx1BCj7B0U27A9sbJTdpkg@HIDDEN>
 <87silbstsc.fsf@HIDDEN>
 <CAOnWdogh6UiaRCeuxLCj0p9cMqhCBOUwD1Rfsn1RUcGvLROP7Q@HIDDEN>
 <CADwFkmkgn6Kp8CULr4pe0wj1-gZfm3t183x-bnGLubOwnfaBSw@HIDDEN>
 <83lf2k5gna.fsf@HIDDEN>
 <CADwFkmmP5tgu8eJCRqdbqwbqezHbjkQxtsotwhPszF9_ECdJzA@HIDDEN>
 <CAOnWdojTXD0QvKDn8V6x4Unja6qZuZZ3Q1KqqU2yEDLNKRmNig@HIDDEN>
 <CADwFkm=Z+MWgbMnvrGiWo76cMeQ=q1xJHcZ-Uyc9QjThVULhQQ@HIDDEN>
Autocrypt: addr=thievol@HIDDEN; prefer-encrypt=mutual; keydata=
 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
 pd5UIX75/XbtumwE0L+IvMpekoM9zH8pCowu4g==
Date: Sun, 24 Oct 2021 05:10:13 +0000
In-Reply-To: <CADwFkm=Z+MWgbMnvrGiWo76cMeQ=q1xJHcZ-Uyc9QjThVULhQQ@HIDDEN>
 (Stefan Kangas's message of "Sat, 23 Oct 2021 06:56:59 -0700")
Message-ID: <87bl3f6ma2.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 18132
Cc: 18132 <at> debbugs.gnu.org, Reuben Thomas <rrt@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 (---)

Stefan Kangas <stefan@HIDDEN> writes:

> Reuben Thomas <rrt@HIDDEN> writes:
>
>> xdg-open uses the underlying desktop system's MIME infrastructure. For a
>> GNU system, that would most typically be GNOME, and its "gio open" (or on
>> older systems, gvfs-open) command.
>
> I don't see that shooting away blindly to xdg-open is satisfactory; the
> user should be able to a) know which command is being run before running
> it and b) modify it on the fly.  Maybe I want to open PDF:s first with
> one and then another PDF reader to see if it looks the same, just as I
> would be able to from a graphical file manager.
>
> Thus, the most important question to my mind is "how can we get the
> default command for a file in the best way".

Helm is using an alist to store (command . extension), if no command is
found, it uses mailcap to find a default unless the user specify a new
association interactively (prefix arg), user can add arguments to the
command if needed, before or after the filename(s) arguments.
In addition, on GNU/Linux it is possible to detach the process from
Emacs.
See helm-external.el, I am working on it currently.

-- 
Thierry




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

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


Received: (at 18132) by debbugs.gnu.org; 23 Oct 2021 20:53:39 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Oct 23 16:53:39 2021
Received: from localhost ([127.0.0.1]:37461 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1meO1L-0007wn-7l
	for submit <at> debbugs.gnu.org; Sat, 23 Oct 2021 16:53:39 -0400
Received: from mail-pf1-f170.google.com ([209.85.210.170]:38786)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rrt@HIDDEN>) id 1meO1H-0007wY-7b
 for 18132 <at> debbugs.gnu.org; Sat, 23 Oct 2021 16:53:37 -0400
Received: by mail-pf1-f170.google.com with SMTP id k26so6818253pfi.5
 for <18132 <at> debbugs.gnu.org>; Sat, 23 Oct 2021 13:53:35 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sc3d.org; s=google;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=mChTIT2+0PYhPUZEBBHJ3PRd+J4CN2XqpqUDnrPVog4=;
 b=pLcyV+w6v7GGLK62pkMTU6wknZzrrn3KyVlSOmsoa4mhNlZBltInTg//422m/7AMPb
 ojul332lDMYcJqpahlcNOgWAPr5rBRRuZPg8afV6yrbD4yQk6IpX9yoRSnh67iwAe9Qp
 xdqCm/0Z0rBqZUbzQuhSBXxyuW8akVzgRRAbE=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=mChTIT2+0PYhPUZEBBHJ3PRd+J4CN2XqpqUDnrPVog4=;
 b=s8PsOzgcCP1fM0lGf8IPPAmKKanmmZUcLDeaaD18Pj7p49/f41ArXGYka+Z0P9aU2o
 xM9ZnDiUjxuSy5BKIqbr+o4662S7pASh4naRbhtwui8TuPS1eYJ2pdZ+ExW04ZteAlo3
 shAOzaRKbPE2AgvXu7q7YxVBAw/nyErNFk06eLOz9EZ8gthaZxOAY+1x8QuVDRICwSzJ
 pzO7Psb7F0Q0SOQnvnmQPazX/Iyg/ERqfQjpUbZzSmX75QcST+VT0QRy5m4mXxzns2Fb
 IXqAAipVM3/rrF4Ar81+ryAwUWSaGbsX/vn42M2HhW7UFGbvd33U6RwZIGurblljeDjj
 plrg==
X-Gm-Message-State: AOAM533JctNPRO6MelpuJU5Fu9o4P0E93m1p8mofnj3yFS7AS3yBJtjy
 RK0twroC0+8RHaOmo77lxtszP12XuyA+ZLkInKtqcw==
X-Google-Smtp-Source: ABdhPJxZgwybv8M1I8Lm/xIEPu+Z9aOps4WA5qtihrr/PfmjvjUpEdOEe166zd7GbCXHyrNfRCP3H23GGxvSHXyiDLc=
X-Received: by 2002:a63:2b85:: with SMTP id r127mr6199315pgr.215.1635022409025; 
 Sat, 23 Oct 2021 13:53:29 -0700 (PDT)
MIME-Version: 1.0
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <87d2cn67zo.fsf@HIDDEN>
 <CAOnWdoivtsBnHPhZWkjxNEqiMxfOwnYiU2eaoQEu4_3bjCx=JQ@HIDDEN>
 <87bns6dcul.fsf@HIDDEN>
 <CAOnWdoiiMd1fqrY=ZAXA4U9ctu0Vcx1BCj7B0U27A9sbJTdpkg@HIDDEN>
 <87silbstsc.fsf@HIDDEN>
 <CAOnWdogh6UiaRCeuxLCj0p9cMqhCBOUwD1Rfsn1RUcGvLROP7Q@HIDDEN>
 <CADwFkmkgn6Kp8CULr4pe0wj1-gZfm3t183x-bnGLubOwnfaBSw@HIDDEN>
 <83lf2k5gna.fsf@HIDDEN>
 <CADwFkmmP5tgu8eJCRqdbqwbqezHbjkQxtsotwhPszF9_ECdJzA@HIDDEN>
 <CAOnWdojTXD0QvKDn8V6x4Unja6qZuZZ3Q1KqqU2yEDLNKRmNig@HIDDEN>
 <CADwFkm=Z+MWgbMnvrGiWo76cMeQ=q1xJHcZ-Uyc9QjThVULhQQ@HIDDEN>
 <CAOnWdohzNADVbQrk-ZQvwWpcr4ewDtr-Hpvs-K5H+-TJfP-LGQ@HIDDEN>
 <CADwFkmkZMXdF5bdCBvgPKXz0WAEcMzdrWODF6hZCYEQYetp0GA@HIDDEN>
In-Reply-To: <CADwFkmkZMXdF5bdCBvgPKXz0WAEcMzdrWODF6hZCYEQYetp0GA@HIDDEN>
From: Reuben Thomas <rrt@HIDDEN>
Date: Sat, 23 Oct 2021 21:53:17 +0100
Message-ID: <CAOnWdog3bTNSVBEprKoFX8yGEWVxrdh+Vu5kCx6Ew=mgHsWrtQ@HIDDEN>
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
To: Stefan Kangas <stefan@HIDDEN>
Content-Type: multipart/alternative; boundary="000000000000e3e39d05cf0b51a7"
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 18132
Cc: Eli Zaretskii <eliz@HIDDEN>, 18132 <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 (-)

--000000000000e3e39d05cf0b51a7
Content-Type: text/plain; charset="UTF-8"

On Sat, 23 Oct 2021 at 16:45, Stefan Kangas <stefan@HIDDEN> wrote:

>
> What I want is more or less the exact behavior of xdg-open, but I want
> to be able to check the actual command (e.g. "evince", not just
> "xdg-open") before pressing RET.
>

I don't understand why this is useful. If you want a particular command for
every file of a type, configure it; if you want a particular command this
time, specify it.

I also want to be able to override xdg-open with customizations inside
> Emacs.
>

This just adds complexity to the system.

Please bare with me as I'm trying to understand.
>

"bear" ;)

Is your preference still to just run "xdg-open", as you explained in
> your original bug report?


Yes.

Do you agree that if we could get my idea to work, you could have your
> cake and eat it too?


No, because I was hoping we could make the cake smaller.

  IOW, do you disagree with the approach because you
> think it is infeasible to make it work well, or because you don't think
> that the feature sounds useful?  Or do you merely disagree with using
> mailcap to implement it?
>

I agree with Eli that mailcap is not a good match; also it's widely
considered deprecated (for example, GNOME's mechanism doesn't use it), so
its configuration is likely to be out of date.

Mostly, I am afraid that a suggestion which satisfies everyone in terms of
functionality will simply pile on more features to Emacs, in an area which
is already too complicated. I don't see why launching external applications
can't be left to the operating environment, as all environments now have
mature systems for doing this. If someone such as you wants more complex
functionality, that can be served by a third-party package; it doesn't need
to be built in to Emacs.

-- 
https://rrt.sc3d.org

--000000000000e3e39d05cf0b51a7
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail=
_attr">On Sat, 23 Oct 2021 at 16:45, Stefan Kangas &lt;<a href=3D"mailto:st=
efan@HIDDEN">stefan@HIDDEN</a>&gt; wrote:<br></div><blockquote clas=
s=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;pad=
ding-left:1ex"><br>
What I want is more or less the exact behavior of xdg-open, but I want<br>
to be able to check the actual command (e.g. &quot;evince&quot;, not just<b=
r>
&quot;xdg-open&quot;) before pressing RET.<br></blockquote><div><br></div><=
div><div style=3D"font-family:arial,helvetica,sans-serif;font-size:small" c=
lass=3D"gmail_default">I don&#39;t understand why this is useful. If you wa=
nt a particular command for every file of a type, configure it; if you want=
 a particular command this time, specify it.</div><br></div><blockquote cla=
ss=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;pa=
dding-left:1ex">

I also want to be able to override xdg-open with customizations inside<br>
Emacs.<br></blockquote><div><br></div><div><div style=3D"font-family:arial,=
helvetica,sans-serif;font-size:small" class=3D"gmail_default">This just add=
s complexity to the system.</div><br></div><blockquote class=3D"gmail_quote=
" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Please bare with me as I&#39;m trying to understand.<br></blockquote><div><=
br></div><div><div style=3D"font-family:arial,helvetica,sans-serif;font-siz=
e:small" class=3D"gmail_default">&quot;bear&quot; ;)</div><br></div><blockq=
uote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc =
solid;padding-left:1ex">

Is your preference still to just run &quot;xdg-open&quot;, as you explained=
 in<br>
your original bug report?</blockquote><div><br></div><div><div style=3D"fon=
t-family:arial,helvetica,sans-serif;font-size:small" class=3D"gmail_default=
">Yes.</div><br></div><blockquote class=3D"gmail_quote" style=3D"margin:0 0=
 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Do you agree that if we could get my idea to work, you could have your<br>
cake and eat it too?</blockquote><div><br></div><div><div style=3D"font-fam=
ily:arial,helvetica,sans-serif;font-size:small" class=3D"gmail_default">No,=
 because I was hoping we could make the cake smaller.</div><br></div><block=
quote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc=
 solid;padding-left:1ex">=C2=A0 IOW, do you disagree with the approach beca=
use you<br>
think it is infeasible to make it work well, or because you don&#39;t think=
<br>
that the feature sounds useful?=C2=A0 Or do you merely disagree with using<=
br>
mailcap to implement it?<br></blockquote><div><br></div><div><div style=3D"=
font-family:arial,helvetica,sans-serif;font-size:small" class=3D"gmail_defa=
ult">I agree with Eli that mailcap is not a good match; also it&#39;s widel=
y considered deprecated (for example, GNOME&#39;s mechanism doesn&#39;t use=
 it), so its configuration is likely to be out of date.</div><div style=3D"=
font-family:arial,helvetica,sans-serif;font-size:small" class=3D"gmail_defa=
ult"><br></div><div style=3D"font-family:arial,helvetica,sans-serif;font-si=
ze:small" class=3D"gmail_default">Mostly, I am afraid that a suggestion whi=
ch satisfies everyone in terms of functionality will simply pile on more fe=
atures to Emacs, in an area which is already too complicated. I don&#39;t s=
ee why launching external applications can&#39;t be left to the operating e=
nvironment, as all environments now have mature systems for doing this. If =
someone such as you wants more complex functionality, that can be served by=
 a third-party package; it doesn&#39;t need to be built in to Emacs.<br></d=
iv></div><br clear=3D"all"></div>-- <br><div dir=3D"ltr" class=3D"gmail_sig=
nature" data-smartmail=3D"gmail_signature"><div dir=3D"ltr"><div><div dir=
=3D"ltr"><a href=3D"https://rrt.sc3d.org" target=3D"_blank">https://rrt.sc3=
d.org</a></div></div></div></div></div>

--000000000000e3e39d05cf0b51a7--




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

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


Received: (at 18132) by debbugs.gnu.org; 23 Oct 2021 19:22:41 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Oct 23 15:22:41 2021
Received: from localhost ([127.0.0.1]:37329 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1meMbJ-0003Pd-BL
	for submit <at> debbugs.gnu.org; Sat, 23 Oct 2021 15:22:41 -0400
Received: from mx0a-00069f02.pphosted.com ([205.220.165.32]:11374)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <drew.adams@HIDDEN>) id 1meMbG-0003PT-6T
 for 18132 <at> debbugs.gnu.org; Sat, 23 Oct 2021 15:22:39 -0400
Received: from pps.filterd (m0246627.ppops.net [127.0.0.1])
 by mx0b-00069f02.pphosted.com (8.16.1.2/8.16.1.2) with SMTP id 19NJ7kD8018739; 
 Sat, 23 Oct 2021 19:22:37 GMT
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com;
 h=from : to : cc :
 subject : date : message-id : references : in-reply-to : content-type :
 content-transfer-encoding : mime-version; s=corp-2021-07-09;
 bh=cthFcXpppPKCBuIPuk531b5EqFtdilxpTDFT8i+tIlk=;
 b=sRPgDvt/SO1Ms/MJkKK381tFtHb6+5t9NzVq7jNnxjgY89hhxYkU8FdYt+PRrdKo3eR/
 vxLnM8OvSWpd3IxuypNUq7rTACxB7aNmFy2lcyPmldF2UV9GSORxILPImA2bLYaQZQlS
 m49A3swWb4M+YgfpoJsYsrP4R2plQ9lUJiaV/WzPpyuoS0LAR/DrPMh22Jjmg5yDl5lo
 cy57n9W7bXh0JD41YMk99R8JFtOICTpIR4L5tqbA+hF3gBG3O2asn489qYBcgREE6Eui
 bKsDYWTm8rxhBKJczYS4waR3iwnYHPgJFc3ZR87XpQEpBDIHNIcjh6fljGjZWgpHc5fK 5w== 
Received: from aserp3030.oracle.com (aserp3030.oracle.com [141.146.126.71])
 by mx0b-00069f02.pphosted.com with ESMTP id 3bv9019xr4-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Sat, 23 Oct 2021 19:22:36 +0000
Received: from pps.filterd (aserp3030.oracle.com [127.0.0.1])
 by aserp3030.oracle.com (8.16.1.2/8.16.1.2) with SMTP id 19NJH5KV130760;
 Sat, 23 Oct 2021 19:22:35 GMT
Received: from nam11-co1-obe.outbound.protection.outlook.com
 (mail-co1nam11lp2168.outbound.protection.outlook.com [104.47.56.168])
 by aserp3030.oracle.com with ESMTP id 3bv8ebdsyy-1
 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK);
 Sat, 23 Oct 2021 19:22:35 +0000
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=gBKl7Lv9q+8NGRdltqrcYD5erDk9pDNdduizwwdV1VLHbbgJO/mLlwpDUZKwMYK76r//XRtE/oZVYP/4oU6YM5cUj6w/KQ6oQcKR5O+BqWmUS4jG7ylVPOxGKbr8q75VuK1mC0MeYG1+xMQscq9tuqOrKr782MOreQzgtbUApnHmrY0kUnyFohu9pRQ8CM2jUFgAJxPQmo5PggYW1kXZX0hEUEaxEgYKJIVtpYLUbpa9UcTk88f4h4NkNab8KogiqJ56LYBItFH2AP8dWL3qatHCU2NwvuAqMRaw0fbFSVooL9pFE4jWum7NHZzuwPZOsujcvAr04rKf1/68fu/Z1g==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; 
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;
 bh=cthFcXpppPKCBuIPuk531b5EqFtdilxpTDFT8i+tIlk=;
 b=BJalUkrTiGZFMcMpfXeAZ2Ud0xEsuub+sXlIBZJJZJ1f0mxb3xY2CLdVIjs2Cly7ZmiE3nr002VJ0hoB/+8trv4BCuUgTw2aDRr6u3wNi5cLZ0GLVrS4fWKEILeBZYXbUILZTzqJ9MTxjcP++Cgsm/AdaCMtpvt74mD+KuETVxdmgdm3ZQ43Izff7QLkhIpt+zVipucdYVo8ITE/ruOySo9JX19bj8xeCioQCHvfySB1Zlm7fxNi1g/BkO34cJis6dS6pcyseYolAn9bOR590p8tmJ2p/f99cFEpVkon/xGdYYHZcaoj9M9qBanDszPuJSXMndwglsiwgK//1IPA7A==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass
 smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com;
 dkim=pass header.d=oracle.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=cthFcXpppPKCBuIPuk531b5EqFtdilxpTDFT8i+tIlk=;
 b=FhuCSMyR32IuZX4t/mNnYg/pipd/jHdvomWKtGmmw/rYtivIY2s+gm2D5VTR3CGH3tz7fpl56itlu5e8yGahZSkkxTVcfA2vyS+RCvg+mWHBnQz3bMQSzD8rzmdALWIA4kM1cqNo7GMqeW195BAVWY+DF0BQrO5GSUWrexnu4gM=
Received: from SJ0PR10MB5488.namprd10.prod.outlook.com (2603:10b6:a03:37e::19)
 by BYAPR10MB3032.namprd10.prod.outlook.com (2603:10b6:a03:82::15)
 with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4628.18; Sat, 23 Oct
 2021 19:22:33 +0000
Received: from SJ0PR10MB5488.namprd10.prod.outlook.com
 ([fe80::c0bc:7c3a:292f:8a82]) by SJ0PR10MB5488.namprd10.prod.outlook.com
 ([fe80::c0bc:7c3a:292f:8a82%8]) with mapi id 15.20.4628.020; Sat, 23 Oct 2021
 19:22:33 +0000
From: Drew Adams <drew.adams@HIDDEN>
To: Juri Linkov <juri@HIDDEN>, Howard Melman <hmelman@HIDDEN>
Subject: RE: [External] : bug#18132: Time for a smarter
 dired-guess-shell-alist-default? (dired-x.el)
Thread-Topic: [External] : bug#18132: Time for a smarter
 dired-guess-shell-alist-default? (dired-x.el)
Thread-Index: AQHXyD4lOIpRMSpRPEmShgChgQwEK6vg8wUw
Date: Sat, 23 Oct 2021 19:22:33 +0000
Message-ID: <SJ0PR10MB5488E976659A2B15E4F920A1F3819@HIDDEN>
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <87d2cn67zo.fsf@HIDDEN>
 <CAOnWdoivtsBnHPhZWkjxNEqiMxfOwnYiU2eaoQEu4_3bjCx=JQ@HIDDEN>
 <87bns6dcul.fsf@HIDDEN>
 <CAOnWdoiiMd1fqrY=ZAXA4U9ctu0Vcx1BCj7B0U27A9sbJTdpkg@HIDDEN>
 <87silbstsc.fsf@HIDDEN>
 <CAOnWdogh6UiaRCeuxLCj0p9cMqhCBOUwD1Rfsn1RUcGvLROP7Q@HIDDEN>
 <CADwFkmkgn6Kp8CULr4pe0wj1-gZfm3t183x-bnGLubOwnfaBSw@HIDDEN>
 <83lf2k5gna.fsf@HIDDEN>
 <CADwFkmmP5tgu8eJCRqdbqwbqezHbjkQxtsotwhPszF9_ECdJzA@HIDDEN>
 <CAOnWdojTXD0QvKDn8V6x4Unja6qZuZZ3Q1KqqU2yEDLNKRmNig@HIDDEN>
 <CADwFkm=Z+MWgbMnvrGiWo76cMeQ=q1xJHcZ-Uyc9QjThVULhQQ@HIDDEN>
 <lyv91neia0.fsf@HIDDEN> <87sfwr8utt.fsf@HIDDEN>
In-Reply-To: <87sfwr8utt.fsf@HIDDEN>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
authentication-results: linkov.net; dkim=none (message not signed)
 header.d=none;linkov.net; dmarc=none action=none header.from=oracle.com;
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: eafde9a7-019d-4be7-55e9-08d9965a76eb
x-ms-traffictypediagnostic: BYAPR10MB3032:
x-microsoft-antispam-prvs: <BYAPR10MB3032895999B3A3496C76EE82F3819@HIDDEN>
x-ms-oob-tlc-oobclassifiers: OLM:6430;
x-ms-exchange-senderadcheck: 1
x-ms-exchange-antispam-relay: 0
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: xn7cs+RYzxzxnACUxAWa2PaDwuyX0DVfdqcIhg6xVMZUCp8GCnXMgkA6mj7FejxoPe+z7+22DzQUBbpfRM9xdr27sRi4RnQUmnW9wrFgu1rjYyd5gxHnjWz12xxC8gHGxYJQnF53Bp5Y1qPm1Gz8kMxDKveEK03cbCFPrCZQo32TGSIimM/bSpjtGvmra9A0+WgrJlH7tvVq5IgRqRI8xPgktGJDwnEVcJ+AmkVy5ON0fomunT8ftHzGE5126/sferEPWUUPYur/lFAe+AvpQwSGtq47Xb+VUDVDERK+r0uaayGhfsXFMMxLAvhDIFnyzkL5JEGfxru832f6OjR+dGsQwmGp0L4eWihijhc0AMd+Ufk2zEWdWp8Z20gcT/ceFQf63QdZKnc5SSyKa4qqhj+g4IwQ0TyAqb8gtM3stOOHwdJD0BlyVbbkx7wKwikRqKI+gUfdtI3uEPKGgUcc3p36TmM1DKU6qnTJAWSoM+16EAUeTykzuJpnPEGJIUFRFowrdqf8DYsBZX33P01w+lrmCFVczCZ/ZqnMaLnk3QNTj0fkb2qeu+75c85fD7KbmnG+O66HShYxOERltLvVPoIZvlIfvgrFkSwuuB670EdmshaIFZ+xpPZ4fOPg3Ssy3QCCS5atcG0X/3yp3Oz9QYWK3MW0NF6thR093XfqaPOJpNGmHhH3ntn2xGn/r8lTXJ7qGRUKCpI8uKo4rDPraUNc9U9jwVUlf/uEoU4K1r4=
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:;
 IPV:NLI; SFV:NSPM; H:SJ0PR10MB5488.namprd10.prod.outlook.com; PTR:; CAT:NONE;
 SFS:(366004)(5660300002)(4326008)(66446008)(38100700002)(8936002)(316002)(44832011)(33656002)(26005)(186003)(6506007)(52536014)(66574015)(8676002)(7696005)(64756008)(508600001)(122000001)(76116006)(66946007)(66476007)(9686003)(38070700005)(110136005)(2906002)(66556008)(86362001)(71200400001)(55016002)(460985005);
 DIR:OUT; SFP:1101; 
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?utf-8?B?bks2QUM2UFU2YnRCZzdmcTY4dElWcWphQVlreTV0TjZyKy9qbm1FWkQ5Z1E0?=
 =?utf-8?B?WmlVOXRFeHJsSUVNNHJ4RXRXR2pxMDNCLzZ4L2FLL09nam54VEhBUkpreVd1?=
 =?utf-8?B?RmlhbXFPckNRbG1OQ2VhR3pLcHdLc3JmVDIrUzlXYm1CRFBiaGl6M2ZjYkxo?=
 =?utf-8?B?YlVLeDhwclM5N3g2MzNBNldrU3dBT1VzUmprUjRMRlVIUVhxb0x0RU1peEhG?=
 =?utf-8?B?bVdhQjIyb1N4V1FvMmZIL1g5ek5zQjltMWlCdXR5MXp0WVdzcVNFMnpZOTFK?=
 =?utf-8?B?TGswaURxYUdscEpkcGt4SGJIM3NYU3dJZzNiMzhub3N6Z1lkQVc5TlpRRVc0?=
 =?utf-8?B?SUlFenc5d0swSkxKd2FSYy9qWDVRS1NOUzdOZ1lRblhSOHhXZm4xaHNxWVdR?=
 =?utf-8?B?cWZTUTh2Z3loQXQzNFN2bDZEQ092cDBwTUtma1NQaHZndFM4c0xpU3B2TmIw?=
 =?utf-8?B?R2Z2Mkxuamx4aFduT2ZmMm0ySXU5TW5HZ3E1WVgxd1ZIZGxOYWhHYi9UdEw4?=
 =?utf-8?B?eEg0T0pENUNjY2xncVJja05QOHdIOW5oaXdqcUwxNGFsbUIrN3g1eEk4cU9p?=
 =?utf-8?B?eGtreDFFMHBpWTdFbWZuSXNyTlZEdWMvWUV6UGhFS3lPVExVY3hYcW9mQzJh?=
 =?utf-8?B?Rkp3RzNrdnFQa2k4TXBQcW1KeWVuZUxzZC9ZdjNxRVM3cWxld21WNlh4UmNG?=
 =?utf-8?B?bk9SOWVtRmIyS3hqUDJhMDEyS1c3QW85aFBiUEhPby9jSjFFQWxDakxWeUJO?=
 =?utf-8?B?RG9NdHFIMnlkZnQ2alY0OFg5RnNIWGRkMHcrQ2ZaWXNhOWNVRkFpaTZ1bXli?=
 =?utf-8?B?cnRzQTNCSFdNQnJRTkhxbk5pajJoSnJGVXVwY2NweUxzVkpPYWVaYUppSlRB?=
 =?utf-8?B?S0UzdE95aWZOL0F3WlpHVno3dVVOREd1RHdndG41ZEpURUdTN2htbmF5dFpw?=
 =?utf-8?B?Q0lCdkVQd2FkYTU3QWJQSmlvRm9sVmltYnBLM1ZBcmpMbnZZSk5YcU9PSG1F?=
 =?utf-8?B?NVFaSzhyWTBld0ppTmRpQ21Sb2ZJczhJemJSL1Fjeks2c0k2WVExMU9FV1Rt?=
 =?utf-8?B?SHpHZGxwc3oxVEJhSDZ5dXpUNzZ1cy8xUkY5V2tnRkw0aHF0d1FZa0pqb3ND?=
 =?utf-8?B?cExpdmRVS0lyZE4yVi9BN2JjVFJhUEZlVmpOL0FPTjBSaUp6ZzVCUDNvY3BT?=
 =?utf-8?B?cUg3M21PZGtETjQwNnI0dWJ2ZXpwNi9xYmN6cEdIS204SXkwcW44dVF2QXdt?=
 =?utf-8?B?c29SOVRVcStDdWRxM0o3UStNY3ltQm53TlBSbVgraGYwOHVrWTM0MUtmVDNm?=
 =?utf-8?B?YWlBeVViNWwvVmtualIzeVc4Uy95cTN6b3Z3Z3VxVzNzc0F4RXVxN0FWTWM4?=
 =?utf-8?B?MkY2TDU3L1lUZVRsd1dVaVhXakNJY3kzbXpuS1RDNVptaytPZHRIaHJsTnZw?=
 =?utf-8?B?YXRPNWJwSHZha3RncEs5c0xXVmdWeEhCa01SRnBoanlWZkNIdi9uZ3oyTmpK?=
 =?utf-8?B?b3BZc3pEdk5Pc0lwcGdsM1VCcnVHUGhxOWNralMxNkNac2xSNHphV1pUTVRY?=
 =?utf-8?B?UTJWMVpkcGxQUitVd2p1dG1RZUMzK2NmRC9ITUN4Qy8zbHZ0d09rMEhOODNZ?=
 =?utf-8?B?Wnl2TTFSS2U4U2dXWDI0cDJ1SnJCUVpkblY2cUJKQkk1Y0FCcXVuQUpzdW5O?=
 =?utf-8?B?ZkhaOGplbkZlTTEzMFZHRlBmL0U2S0E0Zy92bGRmK29VQ2U1bkNVL1A2MWRR?=
 =?utf-8?B?U3hOSG1UM2NFbURYYmI1cWlUcUE5TUFHRTJKdjE2ZVppeDlQaGdpMEl5cmJV?=
 =?utf-8?B?QStDSEN0Z0pWcFFBcExLQ1dKajJ5RlIwVFZPQ1FNSHdwWUlJamdOR1RQMWND?=
 =?utf-8?B?YjllQUdaWXdxZGFZUTF6ZWI3WkRLNjBHUEg5VmNlNFIwY1lqckJta2xnbVhT?=
 =?utf-8?B?K0gwS1MzcGFRc1FrTFlyRnVlbTI2WEFjRkxNMFVXZHhBemxjZVZKQ1NmandW?=
 =?utf-8?B?M1JJYTNNeit0SzJRcTNnTm44cjVIOHZYdzEyZ3h3WSt5eXNMNjgrTE1OTDRQ?=
 =?utf-8?B?dU5pOVVJdC9hd1Vpb1hUaStJK0JUa3dhdHpGWUR5NTBteHUwMmVnUUtZU0Rs?=
 =?utf-8?B?MG8zTGMveWhlOURMSmNUcU5FL3lnZFVweW90d0lOOTFNWTFDUmNQeXh4TmIw?=
 =?utf-8?B?dlE9PQ==?=
Content-Type: text/plain; charset="utf-8"
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-OriginatorOrg: oracle.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: SJ0PR10MB5488.namprd10.prod.outlook.com
X-MS-Exchange-CrossTenant-Network-Message-Id: eafde9a7-019d-4be7-55e9-08d9965a76eb
X-MS-Exchange-CrossTenant-originalarrivaltime: 23 Oct 2021 19:22:33.4997 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: WWL+2nFC3axOVGcWtNSWxyGf6krqsDtdt6VxoPk3kTM1Zxm8LW6vfKpbuKtrqZ75MJHjynVFfvTBk8h383hktQ==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BYAPR10MB3032
X-Proofpoint-Virus-Version: vendor=nai engine=6300 definitions=10146
 signatures=668683
X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 adultscore=0
 bulkscore=0 mlxscore=0
 phishscore=0 suspectscore=0 malwarescore=0 mlxlogscore=999 spamscore=0
 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2109230001
 definitions=main-2110230124
X-Proofpoint-GUID: vRZ1zq8itkHPfnG9S3E30Na6NovbNPq6
X-Proofpoint-ORIG-GUID: vRZ1zq8itkHPfnG9S3E30Na6NovbNPq6
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 18132
Cc: "18132 <at> debbugs.gnu.org" <18132 <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.7 (-)

PiBTdWNoIGEgY29tbWFuZCBpcyBsb25nIG92ZXJkdWUuICBJIHVzZWQgdGhlIGZvbGxvd2luZyBj
b21tYW5kDQo+IGZvciBhIGxvbmcgdGltZSwgYW5kIGZvcmdvdCBpdCdzIG5vdCBpbiBkaXJlZC14
LiAgSSBkb24ndCBzdWdnZXN0DQo+IHRvIHVzZSB0aGlzIGltcGxlbWVudGF0aW9uLCBidXQgc29t
ZXRoaW5nIGxpa2UgdGhpcy4NCg0KTGlrZXdpc2UuICBUaGVyZSBhcmUgbG90cyBvZiBzaW1pbGFy
IHBvc3NpYmlsaXRpZXMuDQpUaGVzZSBhcmUgd2hhdCBJIHVzZSwgZm9yIE1TIFdpbmRvd3MuICBJ
biBEaXJlZCwgDQpJIGhhdmUgdGhlc2UgYmluZGluZ3MgKHBsdXMgbW91c2UgdmVyc2lvbnMpOg0K
DQogIEMtUkVUICAgIGRpcmVkLXczMmV4cGxvcmUNCiAgTS1SRVQgICAgZGlyZWQtdzMyLWJyb3dz
ZXINCiAgQy1NLVJFVCAgZGlyZWQtbXVsdGlwbGUtdzMyLWJyb3dzZXINCg0KKGRlZnVuIGRpcmVk
LXczMi1icm93c2VyICgpDQogICJSdW4gZGVmYXVsdCBXaW5kb3dzIGFwcGxpY2F0aW9uIGFzc29j
aWF0ZWQgd2l0aCBjdXJyZW50IGxpbmUncyBmaWxlLg0KSWYgZmlsZSBpcyBhIGRpcmVjdG9yeSwg
dGhlbiBgZGlyZWQtZmluZC1maWxlJyBpbnN0ZWFkLg0KSWYgbm8gYXBwbGljYXRpb24gaXMgYXNz
b2NpYXRlZCB3aXRoIGZpbGUsIHRoZW4gYGZpbmQtZmlsZScuIg0KICAoaW50ZXJhY3RpdmUpDQog
IChsZXQgKChmaWxlICAoZGlyZWQtZ2V0LWZpbGVuYW1lIG5pbCB0KSkpDQogICAgKGlmIChmaWxl
LWRpcmVjdG9yeS1wIGZpbGUpDQogICAgICAgIChkaXJlZC1maW5kLWZpbGUpDQogICAgICAodzMy
LWJyb3dzZXIgKHN1YnN0LWNoYXItaW4tc3RyaW5nID8vID9cXCBmaWxlKSkpKSkNCg0KKGRlZnVu
IHczMi1icm93c2VyIChmaWxlKQ0KICAiUnVuIGRlZmF1bHQgV2luZG93cyBhcHBsaWNhdGlvbiBh
c3NvY2lhdGVkIHdpdGggRklMRS4NCklmIG5vIGFzc29jaWF0ZWQgYXBwbGljYXRpb24sIHRoZW4g
YGZpbmQtZmlsZScgRklMRS4iDQogIChpbnRlcmFjdGl2ZSAiZkZpbGU6ICIpDQogIChvciAoY29u
ZGl0aW9uLWNhc2UgbmlsDQogICAgICAgICAgKHczMi1zaGVsbC1leGVjdXRlIG5pbCBmaWxlKSAg
OyBVc2UgV2luZG93cyBmaWxlIGFzc29jaWF0aW9uDQogICAgICAgIChlcnJvciBuaWwpKQ0KICAg
ICAgKGZpbmQtZmlsZSBmaWxlKSkpDQoNCihkZWZ1biBkaXJlZC13MzJleHBsb3JlICgpDQogICJP
cGVuIFdpbmRvd3MgRXhwbG9yZXIgdG8gY3VycmVudCBmaWxlIG9yIGZvbGRlci4iDQogIChpbnRl
cmFjdGl2ZSkNCiAgKHczMmV4cGxvcmUgKGRpcmVkLWdldC1maWxlbmFtZSBuaWwgdCkpKQ0KDQoo
ZGVmdW4gdzMyZXhwbG9yZSAoZmlsZSkNCiAgIk9wZW4gV2luZG93cyBFeHBsb3JlciB0byBGSUxF
IChhIGZpbGUgb3IgYSBmb2xkZXIpLiINCiAgKGludGVyYWN0aXZlICJmRmlsZTogIikNCiAgKGxl
dCAoKHczMmZpbGUgKHN1YnN0LWNoYXItaW4tc3RyaW5nID8vID9cXCAoZXhwYW5kLWZpbGUtbmFt
ZSBmaWxlKSkpKQ0KICAgIChpZiAoZmlsZS1kaXJlY3RvcnktcCB3MzJmaWxlKQ0KICAgICAgICAo
dzMyLXNoZWxsLWV4ZWN1dGUgImV4cGxvcmUiIHczMmZpbGUgIi9lLC9zZWxlY3QsIikNCiAgICAg
ICh3MzItc2hlbGwtZXhlY3V0ZSAib3BlbiIgImV4cGxvcmVyIiAoY29uY2F0ICIvZSwvc2VsZWN0
LCIgdzMyZmlsZSkpKSkpDQoNCihkZWZ1biBkaXJlZC1tdWx0aXBsZS13MzItYnJvd3NlciAoKQ0K
ICAiUnVuIGRlZmF1bHQgV2luZG93cyBhcHBsaWNhdGlvbnMgYXNzb2NpYXRlZCB3aXRoIG1hcmtl
ZCBmaWxlcy4iDQogIChpbnRlcmFjdGl2ZSkNCiAgKGxldCAoKGZpbGVzIChkaXJlZC1nZXQtbWFy
a2VkLWZpbGVzKSkpDQogICAgKHdoaWxlIGZpbGVzDQogICAgICAodzMyLWJyb3dzZXIgKGNhciBm
aWxlcykpDQogICAgICAoc2xlZXAtZm9yIHczMi1icm93c2VyLXdhaXQtdGltZSkNCiAgICAgIChz
ZXRxIGZpbGVzIChjZHIgZmlsZXMpKSkpKQ0KDQooZGVmdW4gZGxnb3Blbi1vcGVuLWZpbGVzICgm
b3B0aW9uYWwgZmxpcCkNCiAgIk9wZW4gZmlsZXMgdXNpbmcgdGhlIFdpbmRvd3Mgc3RhbmRhcmQg
T3BlbiBkaWFsb2cgYm94Lg0KVmFyIGBkbGdvcGVuLWV4ZWN1dGFibGUtcGF0aCcgaXMgcGF0aCBv
ZiBleGVjdXRhYmxlIGBnZXRmaWxlLmV4ZScuDQoNCklmIGB3MzItYnJvd3NlcicgaXMgZGVmaW5l
ZCwgdGhlbiBpdCBpcyB1c2VkIHRvIG9wZW4gdGhlIHNlbGVjdGVkDQpmaWxlcy4gIE90aGVyd2lz
ZSwgc3RhbmRhcmQgRW1hY3MgYGZpbmQtZmlsZScgZnVuY3Rpb25zIGFyZSB1c2VkLg0KDQpJZiBg
dzMyLWJyb3dzZXInIGlzIG5vdCBkZWZpbmVkLCB0aGVuIGBkbGdvcGVuLW90aGVyLXdpbmRvdycN
CmNvbnRyb2xzIGhvdyBzZWxlY3RlZCBmaWxlcyBhcmUgb3BlbmVkOg0KICBub24tbmlsID0+IERp
c3BsYXkgY2hvc2VuIGZpbGUocykgaW4gc2VwYXJhdGUgd2luZG93cy4NCiAgbmlsICAgICA9PiBE
aXNwbGF5IGEgc2luZ2xlIGNob3NlbiBmaWxlIGluIHRoZSBjdXJyZW50IHdpbmRvdzsNCiAgICAg
ICAgICAgICBkb24ndCBkaXNwbGF5IG11bHRpcGxlIGNob3NlbiBmaWxlcy4NCg0KT3B0aW9uYWwg
cHJlZml4IGFyZyBGTElQIG5vbi1uaWwgcmV2ZXJzZXMgdGhlIGVmZmVjdCBvZiB2YXJpYWJsZQ0K
YGRsZ29wZW4tb3RoZXItd2luZG93JywgZm9yIHRoaXMgY2FsbC4iDQogIChpbnRlcmFjdGl2ZSAi
UCIpDQogICh1bmxlc3MgKGVxIHN5c3RlbS10eXBlICd3aW5kb3dzLW50KQ0KICAgIChlcnJvciAi
Q29tbWFuZCBgZGxnb3Blbi1vcGVuLWZpbGVzJyBpcyBmb3IgV2luZG93cyBvbmx5IikpDQogIChs
ZXQgKChidWZmZXIgIiIpDQogICAgICAgIChmaWxlLWZxbiAiIikNCiAgICAgICAgKGxpbmVzLWlu
LXBhZ2UgMCkNCiAgICAgICAgKGRpci1wYXRoICIiKQ0KICAgICAgICAob3RoZXItd2luIChpZiBm
bGlwDQogICAgICAgICAgICAgICAgICAgICAgIChub3QgZGxnb3Blbi1vdGhlci13aW5kb3cpDQog
ICAgICAgICAgICAgICAgICAgICBkbGdvcGVuLW90aGVyLXdpbmRvdykpKQ0KICAgIChzZXRxIGJ1
ZmZlciAoZ2VuZXJhdGUtbmV3LWJ1ZmZlciAiZmlsZXMtdG8tb3BlbiIpKQ0KICAgICh3aGVuIChj
YWxsLXByb2Nlc3MgZGxnb3Blbi1leGVjdXRhYmxlLXBhdGggbmlsIGJ1ZmZlcikNCiAgICAgICh3
aXRoLWN1cnJlbnQtYnVmZmVyIGJ1ZmZlcg0KICAgICAgICAoc2F2ZS1leGN1cnNpb24NCiAgICAg
ICAgICAoZ290by1saW5lIDEpDQogICAgICAgICAgKHNldHEgZGlyLXBhdGggKGdldC1jdXJyZW50
LWxpbmUpKQ0KICAgICAgICAgIDs7IElmIGJ1ZmZlciBlbXB0eSwgdGhlbiB1c2VyIGhhcyBjYW5j
ZWxsZWQgb3IgdGhlIG9wZW4gZmFpbGVkLg0KICAgICAgICAgIDs7IElmIG9ubHkgb25lIGxpbmUg
aW4gYnVmZmVyLCB0aGVuIG9ubHkgb25lIGZpbGUgc2VsZWN0ZWQsIHNvIHVzZSBpdC4NCiAgICAg
ICAgICAod2hlbiAoPiAoYnVmZmVyLXNpemUpIDApDQogICAgICAgICAgICAoaWYgKD0gMSAoc2V0
cSBsaW5lcy1pbi1wYWdlIChjb3VudC1saW5lcyAxIChidWZmZXItc2l6ZSkpKSkNCiAgICAgICAg
ICAgICAgICAoaWYgKGZib3VuZHAgJ3czMi1icm93c2VyKQ0KICAgICAgICAgICAgICAgICAgICAo
dzMyLWJyb3dzZXIgZGlyLXBhdGgpDQogICAgICAgICAgICAgICAgICAoaWYgb3RoZXItd2luDQog
ICAgICAgICAgICAgICAgICAgICAgKGZpbmQtZmlsZS1vdGhlci13aW5kb3cgZGlyLXBhdGgpDQog
ICAgICAgICAgICAgICAgICAgIChmaW5kLWZpbGUgZGlyLXBhdGgpKSkNCiAgICAgICAgICAgICAg
KHdoaWxlICg+IGxpbmVzLWluLXBhZ2UgMSkNCiAgICAgICAgICAgICAgICAoZGVjZiBsaW5lcy1p
bi1wYWdlKQ0KICAgICAgICAgICAgICAgIChmb3J3YXJkLWxpbmUpDQogICAgICAgICAgICAgICAg
KHNldHEgZmlsZS1mcW4gKGNvbmNhdCBkaXItcGF0aCAiLyIgKGdldC1jdXJyZW50LWxpbmUpKSkN
CiAgICAgICAgICAgICAgICAoc2F2ZS1leGN1cnNpb24NCiAgICAgICAgICAgICAgICAgIChpZiAo
ZmJvdW5kcCAndzMyLWJyb3dzZXIpDQogICAgICAgICAgICAgICAgICAgICAgKHczMi1icm93c2Vy
IGZpbGUtZnFuKQ0KICAgICAgICAgICAgICAgICAgICAoaWYgb3RoZXItd2luDQogICAgICAgICAg
ICAgICAgICAgICAgICAoZmluZC1maWxlLW90aGVyLXdpbmRvdyBmaWxlLWZxbikNCiAgICAgICAg
ICAgICAgICAgICAgICAoZmluZC1maWxlLW5vc2VsZWN0IGZpbGUtZnFuKSkpKSkpKSkpKSA7IG5v
IGRpc3BsYXkNCiAgICAoa2lsbC1idWZmZXIgYnVmZmVyKSkpDQoNCg==




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

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


Received: (at 18132) by debbugs.gnu.org; 23 Oct 2021 18:37:04 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Oct 23 14:37:04 2021
Received: from localhost ([127.0.0.1]:37273 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1meLtA-0008UU-9J
	for submit <at> debbugs.gnu.org; Sat, 23 Oct 2021 14:37:04 -0400
Received: from relay9-d.mail.gandi.net ([217.70.183.199]:46147)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <juri@HIDDEN>) id 1meLt3-0008Sv-SV
 for 18132 <at> debbugs.gnu.org; Sat, 23 Oct 2021 14:36:58 -0400
Received: (Authenticated sender: juri@HIDDEN)
 by relay9-d.mail.gandi.net (Postfix) with ESMTPSA id C143FFF804;
 Sat, 23 Oct 2021 18:36:50 +0000 (UTC)
From: Juri Linkov <juri@HIDDEN>
To: Howard Melman <hmelman@HIDDEN>
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
Organization: LINKOV.NET
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <87d2cn67zo.fsf@HIDDEN>
 <CAOnWdoivtsBnHPhZWkjxNEqiMxfOwnYiU2eaoQEu4_3bjCx=JQ@HIDDEN>
 <87bns6dcul.fsf@HIDDEN>
 <CAOnWdoiiMd1fqrY=ZAXA4U9ctu0Vcx1BCj7B0U27A9sbJTdpkg@HIDDEN>
 <87silbstsc.fsf@HIDDEN>
 <CAOnWdogh6UiaRCeuxLCj0p9cMqhCBOUwD1Rfsn1RUcGvLROP7Q@HIDDEN>
 <CADwFkmkgn6Kp8CULr4pe0wj1-gZfm3t183x-bnGLubOwnfaBSw@HIDDEN>
 <83lf2k5gna.fsf@HIDDEN>
 <CADwFkmmP5tgu8eJCRqdbqwbqezHbjkQxtsotwhPszF9_ECdJzA@HIDDEN>
 <CAOnWdojTXD0QvKDn8V6x4Unja6qZuZZ3Q1KqqU2yEDLNKRmNig@HIDDEN>
 <CADwFkm=Z+MWgbMnvrGiWo76cMeQ=q1xJHcZ-Uyc9QjThVULhQQ@HIDDEN>
 <lyv91neia0.fsf@HIDDEN>
Date: Sat, 23 Oct 2021 21:29:38 +0300
In-Reply-To: <lyv91neia0.fsf@HIDDEN> (Howard Melman's message of
 "Sat, 23 Oct 2021 13:57:11 -0400")
Message-ID: <87sfwr8utt.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 18132
Cc: 18132 <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.7 (-)

> Such a command emulates what double clicking on an icon does
> which most of the time is what a user wants (because it's
> configured it do what their most common app need is).

Such a command is long overdue.  I used the following command
for a long time, and forgot it's not in dired-x.  I don't suggest
to use this implementation, but something like this.  Then like
clicking the right mouse button on a file shows a list of
available apps to open the file in, and M-& does practically the same
with the keyboard.  Then like double clicking on an icon,
some key should use the default command to open the file.

#+begin_src emacs-lisp
(define-key dired-mode-map [(control return)] 'my-dired-run-find-file)
(defun my-dired-run-find-file ()
  "View file for dired."
  (interactive)
  (let* ((file (dired-get-filename)))
    (cond
     ((let* ((command
              (and (functionp 'mm-mime-info)
                   (mm-mime-info
                    (mm-extension-to-mime (file-name-extension file))))))
        (if (and command (stringp command))
            ;; always return ‘t’ for ‘cond’
            (or (ignore (async-shell-command (concat (format command file) "&")))
                t))))
     ((string-match "\\.html?$" file)
      (cond
       ((fboundp 'browse-url)
        (browse-url file))))
     ((string-match "\\.elc?$" file)
      (load-file file))
     ((string-match "\\.info?$" file)
      (info file))
     ((let* ((file-list (list (dired-get-filename)))
             (command (dired-guess-default file-list))
             (async-shell-command-display-buffer nil))
        (if (listp command)
            (setq command (car command)))
        (if command
            (async-shell-command
             (dired-shell-stuff-it command file-list nil 0)))))
     (t
      (message "%s" file)))))
#+end_src




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

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


Received: (at submit) by debbugs.gnu.org; 23 Oct 2021 17:57:28 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Oct 23 13:57:28 2021
Received: from localhost ([127.0.0.1]:37141 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1meLGp-0005AP-V3
	for submit <at> debbugs.gnu.org; Sat, 23 Oct 2021 13:57:28 -0400
Received: from lists.gnu.org ([209.51.188.17]:56606)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <geb-bug-gnu-emacs@HIDDEN>)
 id 1meLGn-0005AF-EU
 for submit <at> debbugs.gnu.org; Sat, 23 Oct 2021 13:57:26 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:53322)
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <geb-bug-gnu-emacs@HIDDEN>)
 id 1meLGn-00007g-5r
 for bug-gnu-emacs@HIDDEN; Sat, 23 Oct 2021 13:57:25 -0400
Received: from ciao.gmane.io ([116.202.254.214]:54460)
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <geb-bug-gnu-emacs@HIDDEN>)
 id 1meLGk-00021d-Cw
 for bug-gnu-emacs@HIDDEN; Sat, 23 Oct 2021 13:57:24 -0400
Received: from list by ciao.gmane.io with local (Exim 4.92)
 (envelope-from <geb-bug-gnu-emacs@HIDDEN>)
 id 1meLGh-000533-MO
 for bug-gnu-emacs@HIDDEN; Sat, 23 Oct 2021 19:57:19 +0200
X-Injected-Via-Gmane: http://gmane.org/
To: bug-gnu-emacs@HIDDEN
From: Howard Melman <hmelman@HIDDEN>
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
Date: Sat, 23 Oct 2021 13:57:11 -0400
Message-ID: <lyv91neia0.fsf@HIDDEN>
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <87d2cn67zo.fsf@HIDDEN>
 <CAOnWdoivtsBnHPhZWkjxNEqiMxfOwnYiU2eaoQEu4_3bjCx=JQ@HIDDEN>
 <87bns6dcul.fsf@HIDDEN>
 <CAOnWdoiiMd1fqrY=ZAXA4U9ctu0Vcx1BCj7B0U27A9sbJTdpkg@HIDDEN>
 <87silbstsc.fsf@HIDDEN>
 <CAOnWdogh6UiaRCeuxLCj0p9cMqhCBOUwD1Rfsn1RUcGvLROP7Q@HIDDEN>
 <CADwFkmkgn6Kp8CULr4pe0wj1-gZfm3t183x-bnGLubOwnfaBSw@HIDDEN>
 <83lf2k5gna.fsf@HIDDEN>
 <CADwFkmmP5tgu8eJCRqdbqwbqezHbjkQxtsotwhPszF9_ECdJzA@HIDDEN>
 <CAOnWdojTXD0QvKDn8V6x4Unja6qZuZZ3Q1KqqU2yEDLNKRmNig@HIDDEN>
 <CADwFkm=Z+MWgbMnvrGiWo76cMeQ=q1xJHcZ-Uyc9QjThVULhQQ@HIDDEN>
Mime-Version: 1.0
Content-Type: text/plain
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.2 (darwin)
Cancel-Lock: sha1:9v+mUvFv6qY8pzFxwo0z948/isM=
Received-SPF: pass client-ip=116.202.254.214;
 envelope-from=geb-bug-gnu-emacs@HIDDEN; helo=ciao.gmane.io
X-Spam_score_int: 5
X-Spam_score: 0.5
X-Spam_bar: /
X-Spam_report: (0.5 / 5.0 requ) BAYES_00=-1.9, DKIM_ADSP_CUSTOM_MED=0.001,
 FORGED_GMAIL_RCVD=1, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001,
 HEADER_FROM_DIFFERENT_DOMAINS=0.25, NML_ADSP_CUSTOM_MED=0.9,
 SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no
X-Spam_action: no action
X-Spam-Score: 0.1 (/)
X-Debbugs-Envelope-To: submit
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.9 (/)


>> xdg-open uses the underlying desktop system's MIME infrastructure. For a
>> GNU system, that would most typically be GNOME, and its "gio open" (or on
>> older systems, gvfs-open) command.
>
> I don't see that shooting away blindly to xdg-open is satisfactory; the
> user should be able to a) know which command is being run before running
> it and b) modify it on the fly.  Maybe I want to open PDF:s first with
> one and then another PDF reader to see if it looks the same, just as I
> would be able to from a graphical file manager.

In the spirit of "we need to add stuff here, without taking
anything away" can I suggest just adding a new dired-do-open
command that calls out to xdg-open on gnu/linux or open on
darwin or windows.  Such a command has been written many
times and people add it to their local configs.  I have it
bound on X in dired and use it far more often than I do M-!.

Such a command emulates what double clicking on an icon does
which most of the time is what a user wants (because it's
configured it do what their most common app need is).

Having emacs provide the command means it could be correct
reguarding shell quoting and other small issues that people
might get wrong on their own.

For those that want more control either in picking the
command that is run or seeing it beforehand, they can use
and configure dired-guess-shell-alist-default.

-- 

Howard





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

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


Received: (at 18132) by debbugs.gnu.org; 23 Oct 2021 17:17:07 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Oct 23 13:17:07 2021
Received: from localhost ([127.0.0.1]:37071 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1meKdn-0001uy-0A
	for submit <at> debbugs.gnu.org; Sat, 23 Oct 2021 13:17:07 -0400
Received: from heytings.org ([95.142.160.155]:60038)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <gregory@HIDDEN>) id 1meKdk-0001uo-9M
 for 18132 <at> debbugs.gnu.org; Sat, 23 Oct 2021 13:17:05 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=heytings.org;
 s=20210101; t=1635009422;
 bh=kxv2amKwyu2/uZ4Fppv1VdSBNo/RXlIHIGKYfca8qz4=;
 h=Date:From:To:cc:Subject:In-Reply-To:Message-ID:References:From;
 b=Se/VbpjJdzYMFNYoVNJGrBiUbU6ScHHotaXZhCfu3s0mDDDuU4kK6lMkiUc1lNvzB
 K/BBZ0F1hV5LqZF9NBIf1rOClqU5lYv2i2VuFqTr4N5AK5VTn6yv3wts2skCz8fBfN
 GEkiinLPUoXLmZLIfWk/IOL4spgL8QYdKHErKal1OJvMo/52W5CdHAVLlmP1wSGuUA
 7S2WS6kPu+jYGF0BUMQk/YrAQH5ky2n/v3M6uHZESSeVpPUeWyGZ0k0h/AXPhRtIuV
 0vbiL3lyMtpx3j+rskL8AqubJXcHMahBqJv3vpnrIBYkJwVZzrbCo/JBGZ5gl6bD3I
 5x2bMWGoheLqw==
Date: Sat, 23 Oct 2021 17:17:02 +0000
From: Gregory Heytings <gregory@HIDDEN>
To: Stefan Kangas <stefan@HIDDEN>
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
In-Reply-To: <CADwFkmkZMXdF5bdCBvgPKXz0WAEcMzdrWODF6hZCYEQYetp0GA@HIDDEN>
Message-ID: <2d6e9fbc478a853dcc7f@HIDDEN>
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <87d2cn67zo.fsf@HIDDEN>
 <CAOnWdoivtsBnHPhZWkjxNEqiMxfOwnYiU2eaoQEu4_3bjCx=JQ@HIDDEN>
 <87bns6dcul.fsf@HIDDEN>
 <CAOnWdoiiMd1fqrY=ZAXA4U9ctu0Vcx1BCj7B0U27A9sbJTdpkg@HIDDEN>
 <87silbstsc.fsf@HIDDEN>
 <CAOnWdogh6UiaRCeuxLCj0p9cMqhCBOUwD1Rfsn1RUcGvLROP7Q@HIDDEN>
 <CADwFkmkgn6Kp8CULr4pe0wj1-gZfm3t183x-bnGLubOwnfaBSw@HIDDEN>
 <83lf2k5gna.fsf@HIDDEN>
 <CADwFkmmP5tgu8eJCRqdbqwbqezHbjkQxtsotwhPszF9_ECdJzA@HIDDEN>
 <CAOnWdojTXD0QvKDn8V6x4Unja6qZuZZ3Q1KqqU2yEDLNKRmNig@HIDDEN>
 <CADwFkm=Z+MWgbMnvrGiWo76cMeQ=q1xJHcZ-Uyc9QjThVULhQQ@HIDDEN>
 <CAOnWdohzNADVbQrk-ZQvwWpcr4ewDtr-Hpvs-K5H+-TJfP-LGQ@HIDDEN>
 <CADwFkmkZMXdF5bdCBvgPKXz0WAEcMzdrWODF6hZCYEQYetp0GA@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; format=flowed; charset=us-ascii
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 18132
Cc: bug-gnu-emacs@HIDDEN, 18132 <at> debbugs.gnu.org, Reuben Thomas <rrt@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 (-)


>
> What I want is more or less the exact behavior of xdg-open, but I want 
> to be able to check the actual command (e.g. "evince", not just 
> "xdg-open") before pressing RET.
>

xdg-mime query default $(xdg-mime query filetype FILE)

should return the name of one of the files /usr/share/applications, and 
you can check for the line starting with Exec in that file to see what 
command it launches.




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

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


Received: (at submit) by debbugs.gnu.org; 23 Oct 2021 17:17:11 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Oct 23 13:17:11 2021
Received: from localhost ([127.0.0.1]:37074 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1meKdr-0001vE-6x
	for submit <at> debbugs.gnu.org; Sat, 23 Oct 2021 13:17:11 -0400
Received: from lists.gnu.org ([209.51.188.17]:47844)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <gregory@HIDDEN>) id 1meKdo-0001v6-E2
 for submit <at> debbugs.gnu.org; Sat, 23 Oct 2021 13:17:10 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:48876)
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <gregory@HIDDEN>)
 id 1meKdo-0000Hb-8Q
 for bug-gnu-emacs@HIDDEN; Sat, 23 Oct 2021 13:17:08 -0400
Received: from heytings.org ([95.142.160.155]:35612)
 by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <gregory@HIDDEN>)
 id 1meKdm-0000Ii-6W
 for bug-gnu-emacs@HIDDEN; Sat, 23 Oct 2021 13:17:07 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=heytings.org;
 s=20210101; t=1635009422;
 bh=kxv2amKwyu2/uZ4Fppv1VdSBNo/RXlIHIGKYfca8qz4=;
 h=Date:From:To:cc:Subject:In-Reply-To:Message-ID:References:From;
 b=Se/VbpjJdzYMFNYoVNJGrBiUbU6ScHHotaXZhCfu3s0mDDDuU4kK6lMkiUc1lNvzB
 K/BBZ0F1hV5LqZF9NBIf1rOClqU5lYv2i2VuFqTr4N5AK5VTn6yv3wts2skCz8fBfN
 GEkiinLPUoXLmZLIfWk/IOL4spgL8QYdKHErKal1OJvMo/52W5CdHAVLlmP1wSGuUA
 7S2WS6kPu+jYGF0BUMQk/YrAQH5ky2n/v3M6uHZESSeVpPUeWyGZ0k0h/AXPhRtIuV
 0vbiL3lyMtpx3j+rskL8AqubJXcHMahBqJv3vpnrIBYkJwVZzrbCo/JBGZ5gl6bD3I
 5x2bMWGoheLqw==
Date: Sat, 23 Oct 2021 17:17:02 +0000
From: Gregory Heytings <gregory@HIDDEN>
To: Stefan Kangas <stefan@HIDDEN>
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
In-Reply-To: <CADwFkmkZMXdF5bdCBvgPKXz0WAEcMzdrWODF6hZCYEQYetp0GA@HIDDEN>
Message-ID: <2d6e9fbc478a853dcc7f@HIDDEN>
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <87d2cn67zo.fsf@HIDDEN>
 <CAOnWdoivtsBnHPhZWkjxNEqiMxfOwnYiU2eaoQEu4_3bjCx=JQ@HIDDEN>
 <87bns6dcul.fsf@HIDDEN>
 <CAOnWdoiiMd1fqrY=ZAXA4U9ctu0Vcx1BCj7B0U27A9sbJTdpkg@HIDDEN>
 <87silbstsc.fsf@HIDDEN>
 <CAOnWdogh6UiaRCeuxLCj0p9cMqhCBOUwD1Rfsn1RUcGvLROP7Q@HIDDEN>
 <CADwFkmkgn6Kp8CULr4pe0wj1-gZfm3t183x-bnGLubOwnfaBSw@HIDDEN>
 <83lf2k5gna.fsf@HIDDEN>
 <CADwFkmmP5tgu8eJCRqdbqwbqezHbjkQxtsotwhPszF9_ECdJzA@HIDDEN>
 <CAOnWdojTXD0QvKDn8V6x4Unja6qZuZZ3Q1KqqU2yEDLNKRmNig@HIDDEN>
 <CADwFkm=Z+MWgbMnvrGiWo76cMeQ=q1xJHcZ-Uyc9QjThVULhQQ@HIDDEN>
 <CAOnWdohzNADVbQrk-ZQvwWpcr4ewDtr-Hpvs-K5H+-TJfP-LGQ@HIDDEN>
 <CADwFkmkZMXdF5bdCBvgPKXz0WAEcMzdrWODF6hZCYEQYetp0GA@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; format=flowed; charset=us-ascii
Received-SPF: pass client-ip=95.142.160.155; envelope-from=gregory@HIDDEN;
 helo=heytings.org
X-Spam_score_int: -20
X-Spam_score: -2.1
X-Spam_bar: --
X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1,
 DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_PASS=-0.001,
 SPF_PASS=-0.001 autolearn=ham autolearn_force=no
X-Spam_action: no action
X-Spam-Score: -1.3 (-)
X-Debbugs-Envelope-To: submit
Cc: bug-gnu-emacs@HIDDEN, 18132 <at> debbugs.gnu.org, Reuben Thomas <rrt@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: -2.3 (--)


>
> What I want is more or less the exact behavior of xdg-open, but I want 
> to be able to check the actual command (e.g. "evince", not just 
> "xdg-open") before pressing RET.
>

xdg-mime query default $(xdg-mime query filetype FILE)

should return the name of one of the files /usr/share/applications, and 
you can check for the line starting with Exec in that file to see what 
command it launches.




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

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


Received: (at 18132) by debbugs.gnu.org; 23 Oct 2021 15:45:11 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Oct 23 11:45:11 2021
Received: from localhost ([127.0.0.1]:36977 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1meJCp-0007pO-0d
	for submit <at> debbugs.gnu.org; Sat, 23 Oct 2021 11:45:11 -0400
Received: from mail-pf1-f180.google.com ([209.85.210.180]:43530)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <stefankangas@HIDDEN>) id 1meJCm-0007p1-TZ
 for 18132 <at> debbugs.gnu.org; Sat, 23 Oct 2021 11:45:09 -0400
Received: by mail-pf1-f180.google.com with SMTP id 187so6362136pfc.10
 for <18132 <at> debbugs.gnu.org>; Sat, 23 Oct 2021 08:45:08 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=x-gm-message-state:from:in-reply-to:references:mime-version:date
 :message-id:subject:to:cc;
 bh=mLqvl/Eo/7+rM8vjmeByhkUF6Yp7w6uZdZ34LAHbhjo=;
 b=GSRPYQ0A95NkksSaagoZKs5b7AMAnIJezDYPj6qm31QH+4OFHRjZudERMhcitzfLg3
 cuTCM7kHr5/AoG5QCu5l+JIXQS0cY9D5Jo4gi7Mf/Bja00khznSry7lVEkEaojxHTVIT
 20s+lHXqT3ew7ngZerP6VsDkRiQmsOkBVT35i21mbiDH5QSOm2wLuxD0kUNllkzIYgzT
 T/9iH9dLI0OWNqX6Ah5B+RRHVaAjg6XroEbYoWpaYGKLorPb4JiaE2s2bHfApCRBojat
 TtLCMRf1NAaRbfaVZvBPH+JAzcAuzKGijUk5cZXImBgfiVUuvn9DBoOx+b3PXaBahNmR
 RUag==
X-Gm-Message-State: AOAM532XQPAFC/LLa002/zcHI65L3BqKrHNjwSK+YsElpVN7gkvrARCr
 sBCLBglBiHxIZruIvFsYlxNoMgFYLnCQZWWuzBg=
X-Google-Smtp-Source: ABdhPJwq/Ziz8+mUERNo5TYX7DgtZOo/tGZhJCI9nS72UsVQzVZ2AUEFjyGIQdFXLDsMTcPoxLByRf3ElYzbbbHPLxQ=
X-Received: by 2002:a63:81c2:: with SMTP id t185mr5143344pgd.114.1635003902965; 
 Sat, 23 Oct 2021 08:45:02 -0700 (PDT)
Received: from 753933720722 named unknown by gmailapi.google.com with
 HTTPREST; Sat, 23 Oct 2021 08:45:02 -0700
From: Stefan Kangas <stefan@HIDDEN>
In-Reply-To: <CAOnWdohzNADVbQrk-ZQvwWpcr4ewDtr-Hpvs-K5H+-TJfP-LGQ@HIDDEN>
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <87d2cn67zo.fsf@HIDDEN>
 <CAOnWdoivtsBnHPhZWkjxNEqiMxfOwnYiU2eaoQEu4_3bjCx=JQ@HIDDEN>
 <87bns6dcul.fsf@HIDDEN>
 <CAOnWdoiiMd1fqrY=ZAXA4U9ctu0Vcx1BCj7B0U27A9sbJTdpkg@HIDDEN>
 <87silbstsc.fsf@HIDDEN>
 <CAOnWdogh6UiaRCeuxLCj0p9cMqhCBOUwD1Rfsn1RUcGvLROP7Q@HIDDEN>
 <CADwFkmkgn6Kp8CULr4pe0wj1-gZfm3t183x-bnGLubOwnfaBSw@HIDDEN>
 <83lf2k5gna.fsf@HIDDEN>
 <CADwFkmmP5tgu8eJCRqdbqwbqezHbjkQxtsotwhPszF9_ECdJzA@HIDDEN>
 <CAOnWdojTXD0QvKDn8V6x4Unja6qZuZZ3Q1KqqU2yEDLNKRmNig@HIDDEN>
 <CADwFkm=Z+MWgbMnvrGiWo76cMeQ=q1xJHcZ-Uyc9QjThVULhQQ@HIDDEN>
 <CAOnWdohzNADVbQrk-ZQvwWpcr4ewDtr-Hpvs-K5H+-TJfP-LGQ@HIDDEN>
MIME-Version: 1.0
Date: Sat, 23 Oct 2021 08:45:02 -0700
Message-ID: <CADwFkmkZMXdF5bdCBvgPKXz0WAEcMzdrWODF6hZCYEQYetp0GA@HIDDEN>
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
To: Reuben Thomas <rrt@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: 0.5 (/)
X-Debbugs-Envelope-To: 18132
Cc: Eli Zaretskii <eliz@HIDDEN>, 18132 <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: -0.5 (/)

Reuben Thomas <rrt@HIDDEN> writes:

> On Sat, 23 Oct 2021 at 14:57, Stefan Kangas <stefan@HIDDEN> wrote:
>
>> Maybe I want to open PDF:s first with
>> one and then another PDF reader to see if it looks the same, just as I
>> would be able to from a graphical file manager.
>>
>
> Then you won't be using the default command anyway.

What I want is more or less the exact behavior of xdg-open, but I want
to be able to check the actual command (e.g. "evince", not just
"xdg-open") before pressing RET.

I also want to be able to override xdg-open with customizations inside
Emacs.

> I agree with Eli's reasoning.

Please bare with me as I'm trying to understand.

Is your preference still to just run "xdg-open", as you explained in
your original bug report?  (It was quite some time ago, which is why I'm
asking, in case your position has changed.)

Do you agree that if we could get my idea to work, you could have your
cake and eat it too?  IOW, do you disagree with the approach because you
think it is infeasible to make it work well, or because you don't think
that the feature sounds useful?  Or do you merely disagree with using
mailcap to implement it?

Thanks.




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

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


Received: (at 18132) by debbugs.gnu.org; 23 Oct 2021 14:04:14 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Oct 23 10:04:14 2021
Received: from localhost ([127.0.0.1]:36833 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1meHd8-000346-3Q
	for submit <at> debbugs.gnu.org; Sat, 23 Oct 2021 10:04:14 -0400
Received: from mail-pj1-f47.google.com ([209.85.216.47]:50709)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rrt@HIDDEN>) id 1meHd3-00033p-Fm
 for 18132 <at> debbugs.gnu.org; Sat, 23 Oct 2021 10:04:12 -0400
Received: by mail-pj1-f47.google.com with SMTP id gn3so4923931pjb.0
 for <18132 <at> debbugs.gnu.org>; Sat, 23 Oct 2021 07:04:09 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sc3d.org; s=google;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=qomim8nb2L61S6mo5n+YiU04n4GDihB41m138vMGLkU=;
 b=t17MM4qo5+m7+LjOMIGXu/DVioQtgYVKb1JFabnyzODYzWlF6eKOu7jTGc+0S27HMu
 yrdajRAFH/pq2OXPVhHbwZ0L4fpcz533h/4YJTVaxwfe6k9w7HV9hOOx8R4mXZD0ZxNt
 BIhqQz0cAJK/76vGBxx5cPYwA9K2VTtJ5580Q=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=qomim8nb2L61S6mo5n+YiU04n4GDihB41m138vMGLkU=;
 b=od7TljOwzKFuD6hh0QGY9vLfGePsgiYtbL58cZq6zY9StJWOA8Mr0zzXp8gvqb/ZiM
 /3NT8/dphgHBhsrZAhtjyzHGfBDbXcgLZLxOAZ/PhlhzFwZv6bIyLWCmt64wFncUbQc4
 P7IigJrYetCxgnFr+HXFS1IRyx4/8xagkGhYl/wQYY0VmZxQtIWZuxj9XxZLNDZkikyi
 6U3VHXVS4ihy583Eq9nKXdTkLUZ2dpsKOasayU5exPYGG2paViUZMUI18Cjx9hv3Ix4o
 1hpnRVSHiyoakdNajqWkjEKyyLR/Fp+JPQGcb/IdYcJwqrpdcyMPo0opL2vQvuvpKhQZ
 o1fw==
X-Gm-Message-State: AOAM531SIaGJIUacGphaMQJGnRAjl1wUwyCcDFLL33cFDFK4YZgCbUVe
 jQAYfIMRN66dWZTfm6GCYdm6RLigdMdRuhh2SBTe0A==
X-Google-Smtp-Source: ABdhPJxNTrF5NW1eFQ7VzmRZetZEXULVln/W0CjujWbTqmJIW07paHgzAP4DvDNdrcdX3Y4PETnp2t4lX5LKeyUT1pw=
X-Received: by 2002:a17:90a:2b8f:: with SMTP id
 u15mr3092358pjd.44.1634997843491; 
 Sat, 23 Oct 2021 07:04:03 -0700 (PDT)
MIME-Version: 1.0
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <87d2cn67zo.fsf@HIDDEN>
 <CAOnWdoivtsBnHPhZWkjxNEqiMxfOwnYiU2eaoQEu4_3bjCx=JQ@HIDDEN>
 <87bns6dcul.fsf@HIDDEN>
 <CAOnWdoiiMd1fqrY=ZAXA4U9ctu0Vcx1BCj7B0U27A9sbJTdpkg@HIDDEN>
 <87silbstsc.fsf@HIDDEN>
 <CAOnWdogh6UiaRCeuxLCj0p9cMqhCBOUwD1Rfsn1RUcGvLROP7Q@HIDDEN>
 <CADwFkmkgn6Kp8CULr4pe0wj1-gZfm3t183x-bnGLubOwnfaBSw@HIDDEN>
 <83lf2k5gna.fsf@HIDDEN>
 <CADwFkmmP5tgu8eJCRqdbqwbqezHbjkQxtsotwhPszF9_ECdJzA@HIDDEN>
 <CAOnWdojTXD0QvKDn8V6x4Unja6qZuZZ3Q1KqqU2yEDLNKRmNig@HIDDEN>
 <CADwFkm=Z+MWgbMnvrGiWo76cMeQ=q1xJHcZ-Uyc9QjThVULhQQ@HIDDEN>
In-Reply-To: <CADwFkm=Z+MWgbMnvrGiWo76cMeQ=q1xJHcZ-Uyc9QjThVULhQQ@HIDDEN>
From: Reuben Thomas <rrt@HIDDEN>
Date: Sat, 23 Oct 2021 15:03:52 +0100
Message-ID: <CAOnWdohzNADVbQrk-ZQvwWpcr4ewDtr-Hpvs-K5H+-TJfP-LGQ@HIDDEN>
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
To: Stefan Kangas <stefan@HIDDEN>
Content-Type: multipart/alternative; boundary="000000000000ab936d05cf059983"
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 18132
Cc: Eli Zaretskii <eliz@HIDDEN>, 18132 <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 (-)

--000000000000ab936d05cf059983
Content-Type: text/plain; charset="UTF-8"

On Sat, 23 Oct 2021 at 14:57, Stefan Kangas <stefan@HIDDEN> wrote:

> Maybe I want to open PDF:s first with
> one and then another PDF reader to see if it looks the same, just as I
> would be able to from a graphical file manager.
>

Then you won't be using the default command anyway.

You say that mailcap is the wrong tool for the job.  (Why?)
>

I agree with Eli's reasoning.

-- 
https://rrt.sc3d.org

--000000000000ab936d05cf059983
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail=
_attr">On Sat, 23 Oct 2021 at 14:57, Stefan Kangas &lt;<a href=3D"mailto:st=
efan@HIDDEN">stefan@HIDDEN</a>&gt; wrote:<br></div><blockquote clas=
s=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid r=
gb(204,204,204);padding-left:1ex">Maybe I want to open PDF:s first with<br>
one and then another PDF reader to see if it looks the same, just as I<br>
would be able to from a graphical file manager.<br></blockquote><div><br></=
div><div><div style=3D"font-family:arial,helvetica,sans-serif;font-size:sma=
ll" class=3D"gmail_default">Then you won&#39;t be using the default command=
 anyway.</div><br></div><blockquote class=3D"gmail_quote" style=3D"margin:0=
px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">

You say that mailcap is the wrong tool for the job.=C2=A0 (Why?)<br></block=
quote><div><br></div><div><div style=3D"font-family:arial,helvetica,sans-se=
rif;font-size:small" class=3D"gmail_default">I agree with Eli&#39;s reasoni=
ng.</div></div></div><br>-- <br><div dir=3D"ltr" class=3D"gmail_signature">=
<div dir=3D"ltr"><div><div dir=3D"ltr"><a href=3D"https://rrt.sc3d.org" tar=
get=3D"_blank">https://rrt.sc3d.org</a></div></div></div></div></div>

--000000000000ab936d05cf059983--




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

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


Received: (at 18132) by debbugs.gnu.org; 23 Oct 2021 13:57:07 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Oct 23 09:57:07 2021
Received: from localhost ([127.0.0.1]:36829 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1meHWF-0002pH-9R
	for submit <at> debbugs.gnu.org; Sat, 23 Oct 2021 09:57:07 -0400
Received: from mail-pj1-f52.google.com ([209.85.216.52]:50945)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <stefankangas@HIDDEN>) id 1meHWD-0002oo-Je
 for 18132 <at> debbugs.gnu.org; Sat, 23 Oct 2021 09:57:06 -0400
Received: by mail-pj1-f52.google.com with SMTP id gn3so4916178pjb.0
 for <18132 <at> debbugs.gnu.org>; Sat, 23 Oct 2021 06:57:05 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=x-gm-message-state:from:in-reply-to:references:mime-version:date
 :message-id:subject:to:cc;
 bh=HD39IURI3dM+/WeLZo9UCdLo6Xsw5ham8TJpH2Sf5xo=;
 b=OcCl7RQbgDEAVPCWEgpsoM23vXm9BXrtkjJkMzMrEmbLyNpqRa32OjNjfymisXMlic
 IQkdRJQztzqfLRAPY2SjrTtqFaLt8ypCMFSwHXTRZjt1tG6P5WTX4v8acfo1xl9o0mLP
 PMKrxsNMoYG6MdNG6OpDqALLK+AjapN1VefLOqaS+lJYD6myaaxCdPB7vq+lH+U3vLM5
 H0H/KqexIsH48qTKL80jjPavsZAP9ScVkEvvv0Ei0umd4zfcATuoL5/0/Tmu/5Q36i+T
 lglS/0HKB/KmFzcpl0u3JUCc1YfHcsjfmJg3g9JpJdVADFtf+EpQ9UfbGeSWghwzR/mN
 7gUg==
X-Gm-Message-State: AOAM533RCuYo/XjfNtk8Lr4A9gKTcw9p2X2rXFFOTsbgxCnN7fxiGobL
 Bkuyj8jjnUI3lw0SCS8eAp0c5dBOBUq9zzXO2pc=
X-Google-Smtp-Source: ABdhPJz2I6fqTQrgnHlk3e3IfDna0m+jqQbr8A+LnONkm+h86Uyarq28Q3UcrZUx8p7DlOo2YoKjpxdI+LEdKfDC8tw=
X-Received: by 2002:a17:902:e750:b0:140:2693:b2e8 with SMTP id
 p16-20020a170902e75000b001402693b2e8mr5813838plf.22.1634997419731; Sat, 23
 Oct 2021 06:56:59 -0700 (PDT)
Received: from 753933720722 named unknown by gmailapi.google.com with
 HTTPREST; Sat, 23 Oct 2021 06:56:59 -0700
From: Stefan Kangas <stefan@HIDDEN>
In-Reply-To: <CAOnWdojTXD0QvKDn8V6x4Unja6qZuZZ3Q1KqqU2yEDLNKRmNig@HIDDEN>
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <87d2cn67zo.fsf@HIDDEN>
 <CAOnWdoivtsBnHPhZWkjxNEqiMxfOwnYiU2eaoQEu4_3bjCx=JQ@HIDDEN>
 <87bns6dcul.fsf@HIDDEN>
 <CAOnWdoiiMd1fqrY=ZAXA4U9ctu0Vcx1BCj7B0U27A9sbJTdpkg@HIDDEN>
 <87silbstsc.fsf@HIDDEN>
 <CAOnWdogh6UiaRCeuxLCj0p9cMqhCBOUwD1Rfsn1RUcGvLROP7Q@HIDDEN>
 <CADwFkmkgn6Kp8CULr4pe0wj1-gZfm3t183x-bnGLubOwnfaBSw@HIDDEN>
 <83lf2k5gna.fsf@HIDDEN>
 <CADwFkmmP5tgu8eJCRqdbqwbqezHbjkQxtsotwhPszF9_ECdJzA@HIDDEN>
 <CAOnWdojTXD0QvKDn8V6x4Unja6qZuZZ3Q1KqqU2yEDLNKRmNig@HIDDEN>
MIME-Version: 1.0
Date: Sat, 23 Oct 2021 06:56:59 -0700
Message-ID: <CADwFkm=Z+MWgbMnvrGiWo76cMeQ=q1xJHcZ-Uyc9QjThVULhQQ@HIDDEN>
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
To: Reuben Thomas <rrt@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: 0.5 (/)
X-Debbugs-Envelope-To: 18132
Cc: Eli Zaretskii <eliz@HIDDEN>, 18132 <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: -0.5 (/)

Reuben Thomas <rrt@HIDDEN> writes:

> xdg-open uses the underlying desktop system's MIME infrastructure. For a
> GNU system, that would most typically be GNOME, and its "gio open" (or on
> older systems, gvfs-open) command.

I don't see that shooting away blindly to xdg-open is satisfactory; the
user should be able to a) know which command is being run before running
it and b) modify it on the fly.  Maybe I want to open PDF:s first with
one and then another PDF reader to see if it looks the same, just as I
would be able to from a graphical file manager.

Thus, the most important question to my mind is "how can we get the
default command for a file in the best way".

I think ideally we should get this from the system, optionally with
overrides and/or fallbacks from Emacs or the user.  I don't particularly
care if it comes from mailcap, from /usr/share/applications, but we
should preferably pick the "best" one.

Eli says that portability is a concern with mailcap, which is true but
also not something we can't work around.

You say that mailcap is the wrong tool for the job.  (Why?)

I claim that the `xdg-open' script does not seem to solve the problem.

Then I ask: what is the correct tool for the job of finding the command
to run?

Maybe we need try several different things?  I see that `xdg-open' tries
all kinds of different things ("gio open", "gvfs open", "open_generic",
etc.).  But our needs are different: we want the command as a string, we
don't just want to run it.

PS. For the sake of simplicity, I would suggest that we could first
    figure out what to do on GNU/Linux and then we'll see if we can get
    that solution to work elsewhere or if we need to get other things in
    place.




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

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


Received: (at 18132) by debbugs.gnu.org; 23 Oct 2021 13:20:36 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Oct 23 09:20:36 2021
Received: from localhost ([127.0.0.1]:34700 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1meGwu-0001Lz-8G
	for submit <at> debbugs.gnu.org; Sat, 23 Oct 2021 09:20:36 -0400
Received: from eggs.gnu.org ([209.51.188.92]:35016)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1meGws-0001Lm-KA
 for 18132 <at> debbugs.gnu.org; Sat, 23 Oct 2021 09:20:34 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e]:32860)
 by eggs.gnu.org with esmtp (Exim 4.90_1)
 (envelope-from <eliz@HIDDEN>)
 id 1meGwn-0008Ha-44; Sat, 23 Oct 2021 09:20:29 -0400
Received: from [87.69.77.57] (port=4352 helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1meGwm-0001Ti-N4; Sat, 23 Oct 2021 09:20:29 -0400
Date: Sat, 23 Oct 2021 16:20:16 +0300
Message-Id: <834k976fov.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Reuben Thomas <rrt@HIDDEN>
In-Reply-To: <CAOnWdoiexqZFZdKfVH=POFgYVhG4FkoutF_O7eBjd32NxH4jEA@HIDDEN>
 (message from Reuben Thomas on Sat, 23 Oct 2021 14:06:27 +0100)
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <87d2cn67zo.fsf@HIDDEN>
 <CAOnWdoivtsBnHPhZWkjxNEqiMxfOwnYiU2eaoQEu4_3bjCx=JQ@HIDDEN>
 <87bns6dcul.fsf@HIDDEN>
 <CAOnWdoiiMd1fqrY=ZAXA4U9ctu0Vcx1BCj7B0U27A9sbJTdpkg@HIDDEN>
 <87silbstsc.fsf@HIDDEN>
 <CAOnWdogh6UiaRCeuxLCj0p9cMqhCBOUwD1Rfsn1RUcGvLROP7Q@HIDDEN>
 <CADwFkmkgn6Kp8CULr4pe0wj1-gZfm3t183x-bnGLubOwnfaBSw@HIDDEN>
 <83lf2k5gna.fsf@HIDDEN>
 <CADwFkmmP5tgu8eJCRqdbqwbqezHbjkQxtsotwhPszF9_ECdJzA@HIDDEN>
 <83h7d85ec3.fsf@HIDDEN>
 <CADwFkmmBAT7XchCZxPfesNf0CCYqEDzTocgsaWYoC5FsoOon9g@HIDDEN>
 <CAOnWdoiexqZFZdKfVH=POFgYVhG4FkoutF_O7eBjd32NxH4jEA@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 18132
Cc: 18132 <at> debbugs.gnu.org, stefan@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 (---)

> From: Reuben Thomas <rrt@HIDDEN>
> Date: Sat, 23 Oct 2021 14:06:27 +0100
> Cc: Eli Zaretskii <eliz@HIDDEN>, 18132 <at> debbugs.gnu.org
> 
> I agree with Eli that mailcap is not the right tool for the job.

(Then why are we still talking about 'file'?)

> file's MIME-type support is easy to fix for types that don't (yet) have a MIME type supplied; file is actively
> maintained and frequently released.

Not sure it will help.  Example:

  $ file --mime-type -k -b lisp/international/uni-bidi.el
  application/octet-stream

Looks like there are some fundamental problems in 'file' that make it
not ideal for this purpose, to say the least.  Which, to me, just
reiterates what I already said up-thread: we should allow users to
override what the system-level tools provide, because they will never
be 100% satisfactory for our needs.




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

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


Received: (at 18132) by debbugs.gnu.org; 23 Oct 2021 13:06:46 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Oct 23 09:06:46 2021
Received: from localhost ([127.0.0.1]:34683 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1meGjV-0000zL-W3
	for submit <at> debbugs.gnu.org; Sat, 23 Oct 2021 09:06:46 -0400
Received: from mail-pl1-f177.google.com ([209.85.214.177]:46679)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rrt@HIDDEN>) id 1meGjT-0000z7-Vr
 for 18132 <at> debbugs.gnu.org; Sat, 23 Oct 2021 09:06:45 -0400
Received: by mail-pl1-f177.google.com with SMTP id c4so768507plg.13
 for <18132 <at> debbugs.gnu.org>; Sat, 23 Oct 2021 06:06:44 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sc3d.org; s=google;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=NU0U2NCMz49bYJHNzpipYNA8j/RYtqDPO2w9H0gbQuM=;
 b=VIo+u/57MTVRnB+tX2GIOBWSQ+hFPOcuud9kL17+GdbuDy34TrmMnOpHNm01t8Veno
 4BzZR8Tx03H6Rt4BdEQCVkgnuq/75QanTiBie7xfE99zv+aVVQ0ktyYZ8sq2K0S4p4RL
 gcEb4RD4w3iBqeZT9RnJQnwirxyyBbKJXtdXA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=NU0U2NCMz49bYJHNzpipYNA8j/RYtqDPO2w9H0gbQuM=;
 b=IhDWlVBIomojTbDNM6ugqjkosGvouNybc3Q+bOiPDL4WqeTV+FbzPBLje4vxyIKRjr
 b7n0KqW2b4JI/7nvU2V9AceYPjUOo8rYn4NBpU+cEbdGXHMeyr0FqH9ruatGWDD+UURl
 5KlluZEyrXd1p4CV/m8gruSnJ0TE/OxNO3wMudDVgc+yFBxLDCKtf72ObmevQfWmayWA
 i5V1de7BiB3mK31LXDGleQsusReDQCgEORvsHRkMMIyUVYjLqmf3zIkltF+eXlYT9dA1
 CpPC8RUorqlXcXkE6KYxV2I7PvZTnrRkt8hKTgWCw5/Lgd7SlhaSpkagLDN55uAHkF99
 EUhw==
X-Gm-Message-State: AOAM533y0o8LG2vCwib4Ag4skiD6RUYjJNk0TnFAtLfGc8ARMWdGAwp+
 fu/FGSzZGNYhxrMkJy7iZCU4BLQIQ1XFawB9hu2aV/zd9a0=
X-Google-Smtp-Source: ABdhPJwML52ZN18gtDUdPVh/5SR01buV5xeKI+JBqv5/aLPO9Yxz0KQdi7a9RP9cXtMoD+XcqKg7u3JRbaX70lKQEi8=
X-Received: by 2002:a17:902:bd94:b0:13f:f96c:aa22 with SMTP id
 q20-20020a170902bd9400b0013ff96caa22mr5610119pls.43.1634994398284; Sat, 23
 Oct 2021 06:06:38 -0700 (PDT)
MIME-Version: 1.0
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <87d2cn67zo.fsf@HIDDEN>
 <CAOnWdoivtsBnHPhZWkjxNEqiMxfOwnYiU2eaoQEu4_3bjCx=JQ@HIDDEN>
 <87bns6dcul.fsf@HIDDEN>
 <CAOnWdoiiMd1fqrY=ZAXA4U9ctu0Vcx1BCj7B0U27A9sbJTdpkg@HIDDEN>
 <87silbstsc.fsf@HIDDEN>
 <CAOnWdogh6UiaRCeuxLCj0p9cMqhCBOUwD1Rfsn1RUcGvLROP7Q@HIDDEN>
 <CADwFkmkgn6Kp8CULr4pe0wj1-gZfm3t183x-bnGLubOwnfaBSw@HIDDEN>
 <83lf2k5gna.fsf@HIDDEN>
 <CADwFkmmP5tgu8eJCRqdbqwbqezHbjkQxtsotwhPszF9_ECdJzA@HIDDEN>
 <83h7d85ec3.fsf@HIDDEN>
 <CADwFkmmBAT7XchCZxPfesNf0CCYqEDzTocgsaWYoC5FsoOon9g@HIDDEN>
In-Reply-To: <CADwFkmmBAT7XchCZxPfesNf0CCYqEDzTocgsaWYoC5FsoOon9g@HIDDEN>
From: Reuben Thomas <rrt@HIDDEN>
Date: Sat, 23 Oct 2021 14:06:27 +0100
Message-ID: <CAOnWdoiexqZFZdKfVH=POFgYVhG4FkoutF_O7eBjd32NxH4jEA@HIDDEN>
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
To: Stefan Kangas <stefan@HIDDEN>
Content-Type: multipart/alternative; boundary="00000000000051e0ec05cf04cc4d"
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 18132
Cc: Eli Zaretskii <eliz@HIDDEN>, 18132 <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 (-)

--00000000000051e0ec05cf04cc4d
Content-Type: text/plain; charset="UTF-8"

On Sat, 23 Oct 2021 at 10:48, Stefan Kangas <stefan@HIDDEN> wrote:

> Eli Zaretskii <eliz@HIDDEN> writes:
>
> > More generally, I'm not sure mailcap is the right tool for the job:
> > its main purpose is to view attachments to email messages, where we
> > generally have metadata (MIME etc.) which is not necessarily available
> > for arbitrary disk files.
>
> Isn't that just "file --mime-type -b"?  file is a BSD command AFAICT so
> it should presumably be available almost everywhere.
>
> I also see in the man page than a certain Reuben Thomas has been
> involved in its development so maybe he has something to add here.  :-)
>

I agree with Eli that mailcap is not the right tool for the job.

file's MIME-type support is easy to fix for types that don't (yet) have a
MIME type supplied; file is actively maintained and frequently released.
Note that xdg-open won't use file on a system that has its own MIME-type
handling, such as GNOME.

-- 
https://rrt.sc3d.org

--00000000000051e0ec05cf04cc4d
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail=
_attr">On Sat, 23 Oct 2021 at 10:48, Stefan Kangas &lt;<a href=3D"mailto:st=
efan@HIDDEN">stefan@HIDDEN</a>&gt; wrote:<br></div><blockquote clas=
s=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid r=
gb(204,204,204);padding-left:1ex">Eli Zaretskii &lt;<a href=3D"mailto:eliz@=
gnu.org" target=3D"_blank">eliz@HIDDEN</a>&gt; writes:<br>
<br>
&gt; More generally, I&#39;m not sure mailcap is the right tool for the job=
:<br>
&gt; its main purpose is to view attachments to email messages, where we<br=
>
&gt; generally have metadata (MIME etc.) which is not necessarily available=
<br>
&gt; for arbitrary disk files.<br>
<br>
Isn&#39;t that just &quot;file --mime-type -b&quot;?=C2=A0 file is a BSD co=
mmand AFAICT so<br>
it should presumably be available almost everywhere.<br>
<br>
I also see in the man page than a certain Reuben Thomas has been<br>
involved in its development so maybe he has something to add here.=C2=A0 :-=
)<br>
</blockquote></div><br clear=3D"all"><div><div style=3D"font-family:arial,h=
elvetica,sans-serif;font-size:small" class=3D"gmail_default">I agree with E=
li that mailcap is not the right tool for the job.</div><div style=3D"font-=
family:arial,helvetica,sans-serif;font-size:small" class=3D"gmail_default">=
<br></div><div style=3D"font-family:arial,helvetica,sans-serif;font-size:sm=
all" class=3D"gmail_default">file&#39;s MIME-type support is easy to fix fo=
r types that don&#39;t (yet) have a MIME type supplied; file is actively ma=
intained and frequently released. Note that xdg-open won&#39;t use file on =
a system that has its own MIME-type handling, such as GNOME.<br></div></div=
><div><br></div>-- <br><div dir=3D"ltr" class=3D"gmail_signature"><div dir=
=3D"ltr"><div><div dir=3D"ltr"><a href=3D"https://rrt.sc3d.org" target=3D"_=
blank">https://rrt.sc3d.org</a></div></div></div></div></div>

--00000000000051e0ec05cf04cc4d--




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

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


Received: (at 18132) by debbugs.gnu.org; 23 Oct 2021 13:02:00 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Oct 23 09:02:00 2021
Received: from localhost ([127.0.0.1]:34660 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1meGeu-0000rF-F8
	for submit <at> debbugs.gnu.org; Sat, 23 Oct 2021 09:02:00 -0400
Received: from mail-pl1-f174.google.com ([209.85.214.174]:44712)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <rrt@HIDDEN>) id 1meGeq-0000qx-3K
 for 18132 <at> debbugs.gnu.org; Sat, 23 Oct 2021 09:01:58 -0400
Received: by mail-pl1-f174.google.com with SMTP id t11so4639963plq.11
 for <18132 <at> debbugs.gnu.org>; Sat, 23 Oct 2021 06:01:56 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sc3d.org; s=google;
 h=mime-version:references:in-reply-to:from:date:message-id:subject:to
 :cc; bh=GntigtZRpeffG1TRnCZGJGxpWZzr0xkoArolpz1Th68=;
 b=ZqdtqydKQXIqGk1tCjX6A1JZNuffTifmAm1F3HVBAYsRDPIwqwc/Hq7/UT83U9CxG+
 enfPBe/lF8+dnVmo4WaStXcsdqQuiSnMaUCe8F3W2WraZzsSPeThSADMo39SKiVN26i/
 BI0uJj4NDyFntvAHH+Kl7whgWhRNGPbY4r8fs=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=x-gm-message-state:mime-version:references:in-reply-to:from:date
 :message-id:subject:to:cc;
 bh=GntigtZRpeffG1TRnCZGJGxpWZzr0xkoArolpz1Th68=;
 b=q4Ez5IWgfXkqjZpnL3hVoqrSGPdPDDpR4X+o7w3e+wnrfZxsHKCCMtvhhllBMhzJHy
 reTwWrjSpUyPugx4NDhPB0gd1fJ36VY/26JkY59lsI4eAf2dCRkCIuSDfbibwjx9BgwR
 GLBeB9S8/fS/t0bs4xhWdICmuluUYu1RXVmPXeZsyq2akNosTe/4+oEVu5lz71Ij02oX
 VBjDOQn6TvwT090SxwohAFLt6M2rAPVtlIiCRWUwzpve4+GcwK/FuJrAq6VMQ5DYOwYX
 q+OS8VKAJnnftkIwQQ8XyLWWjWaVSbWsO3rFTxvTxEB531BU2RRjRQHh0uErV71XCTxw
 hUgw==
X-Gm-Message-State: AOAM530QEjWtY6Nv4KNnliGlgvSJkdbuFK53HRbdoqHUmM5rSlHk0bIu
 ZBVvxK0UDi5XwDu2bfc6a3KmBEm+mIURVqNOnhB4Sw==
X-Google-Smtp-Source: ABdhPJwXqniFCY9dWC5KKktDO8txyly467Bj/7PC71Bq1G9Ln/kRoG40bNxtcHkHn3KvXwHd2K97skVzuj9+GTq5SiA=
X-Received: by 2002:a17:902:d718:b0:13d:e2ec:1741 with SMTP id
 w24-20020a170902d71800b0013de2ec1741mr5806908ply.38.1634994110176; Sat, 23
 Oct 2021 06:01:50 -0700 (PDT)
MIME-Version: 1.0
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <87d2cn67zo.fsf@HIDDEN>
 <CAOnWdoivtsBnHPhZWkjxNEqiMxfOwnYiU2eaoQEu4_3bjCx=JQ@HIDDEN>
 <87bns6dcul.fsf@HIDDEN>
 <CAOnWdoiiMd1fqrY=ZAXA4U9ctu0Vcx1BCj7B0U27A9sbJTdpkg@HIDDEN>
 <87silbstsc.fsf@HIDDEN>
 <CAOnWdogh6UiaRCeuxLCj0p9cMqhCBOUwD1Rfsn1RUcGvLROP7Q@HIDDEN>
 <CADwFkmkgn6Kp8CULr4pe0wj1-gZfm3t183x-bnGLubOwnfaBSw@HIDDEN>
 <83lf2k5gna.fsf@HIDDEN>
 <CADwFkmmP5tgu8eJCRqdbqwbqezHbjkQxtsotwhPszF9_ECdJzA@HIDDEN>
In-Reply-To: <CADwFkmmP5tgu8eJCRqdbqwbqezHbjkQxtsotwhPszF9_ECdJzA@HIDDEN>
From: Reuben Thomas <rrt@HIDDEN>
Date: Sat, 23 Oct 2021 14:01:39 +0100
Message-ID: <CAOnWdojTXD0QvKDn8V6x4Unja6qZuZZ3Q1KqqU2yEDLNKRmNig@HIDDEN>
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
To: Stefan Kangas <stefan@HIDDEN>
Content-Type: multipart/alternative; boundary="00000000000025b4e105cf04bb1e"
X-Spam-Score: -0.0 (/)
X-Debbugs-Envelope-To: 18132
Cc: Eli Zaretskii <eliz@HIDDEN>, 18132 <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 (-)

--00000000000025b4e105cf04bb1e
Content-Type: text/plain; charset="UTF-8"

On Sat, 23 Oct 2021 at 09:16, Stefan Kangas <stefan@HIDDEN> wrote:

>
> That sounds like exactly the right thing to do.  So we need to add stuff
> here, without taking anything away.
>

That would be a shame: there are too many things in Emacs that just get
more complicated over time. I'm dubious about the utility of
system-independent configuration here too.

Looking even more closely at this, I guess `xdg-open' could be used as
> some final fallback, but it doesn't seem to add anything that isn't
> already available from mailcap?


xdg-open uses the underlying desktop system's MIME infrastructure. For a
GNU system, that would most typically be GNOME, and its "gio open" (or on
older systems, gvfs-open) command.

-- 
https://rrt.sc3d.org

--00000000000025b4e105cf04bb1e
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail=
_attr"><span class=3D"gmail_default" style=3D"font-family:arial,helvetica,s=
ans-serif;font-size:small"></span>On Sat, 23 Oct 2021 at 09:16, Stefan Kang=
as &lt;<a href=3D"mailto:stefan@HIDDEN">stefan@HIDDEN</a>&gt; wrote=
:<br></div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.=
8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><br>
That sounds like exactly the right thing to do.=C2=A0 So we need to add stu=
ff<br>
here, without taking anything away.<br></blockquote><div><br></div><div><di=
v style=3D"font-family:arial,helvetica,sans-serif;font-size:small" class=3D=
"gmail_default">That would be a shame: there are too many things in Emacs t=
hat just get more complicated over time. I&#39;m dubious about the utility =
of system-independent configuration here too.<br></div><br></div><blockquot=
e class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;border-left:1px s=
olid rgb(204,204,204);padding-left:1ex">

Looking even more closely at this, I guess `xdg-open&#39; could be used as<=
br>
some final fallback, but it doesn&#39;t seem to add anything that isn&#39;t=
<br>
already available from mailcap?</blockquote><div><br></div><div><div style=
=3D"font-family:arial,helvetica,sans-serif;font-size:small" class=3D"gmail_=
default">xdg-open uses the underlying desktop system&#39;s MIME infrastruct=
ure. For a GNU system, that would most typically be GNOME, and its &quot;gi=
o open&quot; (or on older systems, gvfs-open) command.</div><br></div>-- <b=
r></div><div dir=3D"ltr" class=3D"gmail_signature"><div dir=3D"ltr"><div><d=
iv dir=3D"ltr"><a href=3D"https://rrt.sc3d.org" target=3D"_blank">https://r=
rt.sc3d.org</a></div></div></div></div></div>

--00000000000025b4e105cf04bb1e--




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

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


Received: (at 18132) by debbugs.gnu.org; 23 Oct 2021 11:48:25 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Oct 23 07:48:25 2021
Received: from localhost ([127.0.0.1]:34525 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1meFVh-0007LA-29
	for submit <at> debbugs.gnu.org; Sat, 23 Oct 2021 07:48:25 -0400
Received: from eggs.gnu.org ([209.51.188.92]:49198)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1meFVf-0007Kw-OT
 for 18132 <at> debbugs.gnu.org; Sat, 23 Oct 2021 07:48:24 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e]:58482)
 by eggs.gnu.org with esmtp (Exim 4.90_1)
 (envelope-from <eliz@HIDDEN>)
 id 1meFVZ-0002YH-P9; Sat, 23 Oct 2021 07:48:17 -0400
Received: from [87.69.77.57] (port=2406 helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1meFVZ-0003es-Ak; Sat, 23 Oct 2021 07:48:17 -0400
Date: Sat, 23 Oct 2021 14:48:06 +0300
Message-Id: <83a6j055e1.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Stefan Kangas <stefan@HIDDEN>
In-Reply-To: <CADwFkmmBAT7XchCZxPfesNf0CCYqEDzTocgsaWYoC5FsoOon9g@HIDDEN>
 (message from Stefan Kangas on Sat, 23 Oct 2021 02:48:19 -0700)
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <87d2cn67zo.fsf@HIDDEN>
 <CAOnWdoivtsBnHPhZWkjxNEqiMxfOwnYiU2eaoQEu4_3bjCx=JQ@HIDDEN>
 <87bns6dcul.fsf@HIDDEN>
 <CAOnWdoiiMd1fqrY=ZAXA4U9ctu0Vcx1BCj7B0U27A9sbJTdpkg@HIDDEN>
 <87silbstsc.fsf@HIDDEN>
 <CAOnWdogh6UiaRCeuxLCj0p9cMqhCBOUwD1Rfsn1RUcGvLROP7Q@HIDDEN>
 <CADwFkmkgn6Kp8CULr4pe0wj1-gZfm3t183x-bnGLubOwnfaBSw@HIDDEN>
 <83lf2k5gna.fsf@HIDDEN>
 <CADwFkmmP5tgu8eJCRqdbqwbqezHbjkQxtsotwhPszF9_ECdJzA@HIDDEN>
 <83h7d85ec3.fsf@HIDDEN>
 <CADwFkmmBAT7XchCZxPfesNf0CCYqEDzTocgsaWYoC5FsoOon9g@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 18132
Cc: 18132 <at> debbugs.gnu.org, rrt@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 (---)

> From: Stefan Kangas <stefan@HIDDEN>
> Date: Sat, 23 Oct 2021 02:48:19 -0700
> Cc: rrt@HIDDEN, 18132 <at> debbugs.gnu.org
> 
> Eli Zaretskii <eliz@HIDDEN> writes:
> 
> > More generally, I'm not sure mailcap is the right tool for the job:
> > its main purpose is to view attachments to email messages, where we
> > generally have metadata (MIME etc.) which is not necessarily available
> > for arbitrary disk files.
> 
> Isn't that just "file --mime-type -b"?  file is a BSD command AFAICT so
> it should presumably be available almost everywhere.

It isn't available on Windows, for starters.  (I do have it, but I
ported it myself.)

And what about files that have no MIME type defined for them?  Or
where 'file's output is not really useful, like this:

  $ file --mime-type -b elisp.info
  application/octet-stream




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

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


Received: (at 18132) by debbugs.gnu.org; 23 Oct 2021 09:48:28 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Oct 23 05:48:28 2021
Received: from localhost ([127.0.0.1]:34411 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1meDdc-0003vw-4I
	for submit <at> debbugs.gnu.org; Sat, 23 Oct 2021 05:48:28 -0400
Received: from mail-pj1-f51.google.com ([209.85.216.51]:51934)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <stefankangas@HIDDEN>) id 1meDdZ-0003vi-MK
 for 18132 <at> debbugs.gnu.org; Sat, 23 Oct 2021 05:48:26 -0400
Received: by mail-pj1-f51.google.com with SMTP id u12so553987pjy.1
 for <18132 <at> debbugs.gnu.org>; Sat, 23 Oct 2021 02:48:25 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=x-gm-message-state:from:in-reply-to:references:mime-version:date
 :message-id:subject:to:cc;
 bh=mZjfyGRcUlW61sLXlL+w9mG9sWkZiHnMshVx297+h9A=;
 b=UDY/pd1XmI3I74vWigm6d+FlPVKSmQWFQm4PwHnff1l+MF/e5CFGiTZsaDMXPSfG9x
 yZJjbkylKnbwTffJliKkaEW+7Lf0MzPYt8EP4C1iUX6TDMRFSmvHaAlzYeE+KuJj28Tk
 jw+JqVvsaRivCs3A1g5955utEdy7bs1AzsD/wR+kTxUdFq+0JOFLZVEq7UxsTSdCQPkw
 ORTY0qRt+gG/XGCDNNjU5SX7Dy3ne7A6TnSZ6EnkV1PYl9Fp5XYGq7HtVdoaMWSnAwzS
 eyonG31llHqEeUhhU1cv9Wy0JRHcYVlvia9hdPahtU2UtEcmiwMb0vZYkX76HuzPVWzp
 ASMw==
X-Gm-Message-State: AOAM531mDaTFxbJVZMMp24gkiuXMdjnZLD2E4WI83na6gS6JUcLQIEG3
 Sv29L57leZNim94NpBSsRlUSxJldOVrgEdFSXxQ=
X-Google-Smtp-Source: ABdhPJwE2hJ2bZ6/gI1yiZGtfLb5jDP+1fnoSM0u+oK7QO+ypZXmlRJVxK7kviW6H/bchp2Ww5ieUQ0jB2S4oxrPnQo=
X-Received: by 2002:a17:90a:245:: with SMTP id
 t5mr5732378pje.133.1634982500037; 
 Sat, 23 Oct 2021 02:48:20 -0700 (PDT)
Received: from 753933720722 named unknown by gmailapi.google.com with
 HTTPREST; Sat, 23 Oct 2021 02:48:19 -0700
From: Stefan Kangas <stefan@HIDDEN>
In-Reply-To: <83h7d85ec3.fsf@HIDDEN>
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <87d2cn67zo.fsf@HIDDEN>
 <CAOnWdoivtsBnHPhZWkjxNEqiMxfOwnYiU2eaoQEu4_3bjCx=JQ@HIDDEN>
 <87bns6dcul.fsf@HIDDEN>
 <CAOnWdoiiMd1fqrY=ZAXA4U9ctu0Vcx1BCj7B0U27A9sbJTdpkg@HIDDEN>
 <87silbstsc.fsf@HIDDEN>
 <CAOnWdogh6UiaRCeuxLCj0p9cMqhCBOUwD1Rfsn1RUcGvLROP7Q@HIDDEN>
 <CADwFkmkgn6Kp8CULr4pe0wj1-gZfm3t183x-bnGLubOwnfaBSw@HIDDEN>
 <83lf2k5gna.fsf@HIDDEN>
 <CADwFkmmP5tgu8eJCRqdbqwbqezHbjkQxtsotwhPszF9_ECdJzA@HIDDEN>
 <83h7d85ec3.fsf@HIDDEN>
MIME-Version: 1.0
Date: Sat, 23 Oct 2021 02:48:19 -0700
Message-ID: <CADwFkmmBAT7XchCZxPfesNf0CCYqEDzTocgsaWYoC5FsoOon9g@HIDDEN>
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
To: Eli Zaretskii <eliz@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: 0.5 (/)
X-Debbugs-Envelope-To: 18132
Cc: 18132 <at> debbugs.gnu.org, rrt@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.5 (/)

Eli Zaretskii <eliz@HIDDEN> writes:

> More generally, I'm not sure mailcap is the right tool for the job:
> its main purpose is to view attachments to email messages, where we
> generally have metadata (MIME etc.) which is not necessarily available
> for arbitrary disk files.

Isn't that just "file --mime-type -b"?  file is a BSD command AFAICT so
it should presumably be available almost everywhere.

I also see in the man page than a certain Reuben Thomas has been
involved in its development so maybe he has something to add here.  :-)




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

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


Received: (at 18132) by debbugs.gnu.org; 23 Oct 2021 08:35:19 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Oct 23 04:35:19 2021
Received: from localhost ([127.0.0.1]:34322 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1meCUo-0008N1-Id
	for submit <at> debbugs.gnu.org; Sat, 23 Oct 2021 04:35:19 -0400
Received: from eggs.gnu.org ([209.51.188.92]:52824)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1meCUl-0008Ml-TT
 for 18132 <at> debbugs.gnu.org; Sat, 23 Oct 2021 04:35:16 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e]:55150)
 by eggs.gnu.org with esmtp (Exim 4.90_1)
 (envelope-from <eliz@HIDDEN>)
 id 1meCUf-0000fk-TU; Sat, 23 Oct 2021 04:35:09 -0400
Received: from [87.69.77.57] (port=2203 helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1meCUc-0004cA-M5; Sat, 23 Oct 2021 04:35:09 -0400
Date: Sat, 23 Oct 2021 11:34:52 +0300
Message-Id: <83h7d85ec3.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Stefan Kangas <stefan@HIDDEN>
In-Reply-To: <CADwFkmmP5tgu8eJCRqdbqwbqezHbjkQxtsotwhPszF9_ECdJzA@HIDDEN>
 (message from Stefan Kangas on Sat, 23 Oct 2021 01:16:48 -0700)
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <87d2cn67zo.fsf@HIDDEN>
 <CAOnWdoivtsBnHPhZWkjxNEqiMxfOwnYiU2eaoQEu4_3bjCx=JQ@HIDDEN>
 <87bns6dcul.fsf@HIDDEN>
 <CAOnWdoiiMd1fqrY=ZAXA4U9ctu0Vcx1BCj7B0U27A9sbJTdpkg@HIDDEN>
 <87silbstsc.fsf@HIDDEN>
 <CAOnWdogh6UiaRCeuxLCj0p9cMqhCBOUwD1Rfsn1RUcGvLROP7Q@HIDDEN>
 <CADwFkmkgn6Kp8CULr4pe0wj1-gZfm3t183x-bnGLubOwnfaBSw@HIDDEN>
 <83lf2k5gna.fsf@HIDDEN>
 <CADwFkmmP5tgu8eJCRqdbqwbqezHbjkQxtsotwhPszF9_ECdJzA@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 18132
Cc: 18132 <at> debbugs.gnu.org, rrt@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 (---)

> From: Stefan Kangas <stefan@HIDDEN>
> Date: Sat, 23 Oct 2021 01:16:48 -0700
> Cc: rrt@HIDDEN, 18132 <at> debbugs.gnu.org
> 
> Eli Zaretskii <eliz@HIDDEN> writes:
> 
> > It's not only that.  Emacs's ability to run programs given a file can
> > extend and surpass those of the underlying OS, and the ability of
> > Emacs users to configure and customize that in a unified
> > system-independent manner are either better or simply not available at
> > all in the OS-level tools which offer similar functionality.
> >
> > So I think it would be nice to extend dired-guess-shell-* so that it
> > could delegate to the OS-level capabilities like xdg-open or
> > w32-shell-execute, but we should preserve the abilities to override or
> > extend that with Emacs-level associations between files and programs.
> 
> That sounds like exactly the right thing to do.  So we need to add stuff
> here, without taking anything away.

Yes, that's the idea.

> However, I will add that while we maintain our current capabilities for
> customization, we might want to consider removing or updating some
> entries from `dired-guess-shell-alist-default'.  For example, we
> currently recommend xpdf for PDF:s, which, sure, is presumably available
> "everywhere", but also is pretty lacking in features and just plain
> clunky compared to something like evince.
> 
> To make matters even worse,
> 
>     emacs -Q --eval "(progn (require 'dired-x) (dired \"~\"))"
> 
> happily offers up xpdf as the default command for PDF:s even though I
> don't even have xpdf installed!  So perhaps it's not that ubiquitous
> these days... you have to specifically install it to even have it.

I think that's a separate issue: how to deal with a failure to invoke
the program which we guessed would be appropriate for the file in
question.  I could argue that we should try invoking the program
anyway, because failure to invoke it could mean the user should
install some component, and that is useful information for the user.

> Looking even more closely at this, I guess `xdg-open' could be used as
> some final fallback, but it doesn't seem to add anything that isn't
> already available from mailcap?  And we already have
> `mailcap-file-default-commands', so why not just provide a default based
> on that?

Because that's not portable enough?

> On my machine, I get the very reasonable:
> 
>     (mailcap-file-default-commands '("foo.pdf"))
>     => ("evince" "xdg-open")

Here, the above returns something much less useful:

  ("pdftotext ? -" "gv -safer")

None of that would have helped me to view a PDF file.

So if we want to use mailcap for this, we'd need to extend that, and
make it smarter, in particular on non-GNU/Linux platforms.

More generally, I'm not sure mailcap is the right tool for the job:
its main purpose is to view attachments to email messages, where we
generally have metadata (MIME etc.) which is not necessarily available
for arbitrary disk files.




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

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


Received: (at 18132) by debbugs.gnu.org; 23 Oct 2021 08:16:57 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Oct 23 04:16:57 2021
Received: from localhost ([127.0.0.1]:34300 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1meCD3-0007tn-CK
	for submit <at> debbugs.gnu.org; Sat, 23 Oct 2021 04:16:57 -0400
Received: from mail-pf1-f181.google.com ([209.85.210.181]:38655)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <stefankangas@HIDDEN>) id 1meCD1-0007tZ-GV
 for 18132 <at> debbugs.gnu.org; Sat, 23 Oct 2021 04:16:56 -0400
Received: by mail-pf1-f181.google.com with SMTP id k26so5730608pfi.5
 for <18132 <at> debbugs.gnu.org>; Sat, 23 Oct 2021 01:16:55 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=x-gm-message-state:from:in-reply-to:references:mime-version:date
 :message-id:subject:to:cc;
 bh=ovjPY4SOWG8lwVvQtFig6GhdGVmHDiEqB/j2uZaGWDE=;
 b=5A0dbq0Rc00aYqXUVNEWs9i/JEHyA8Usu9iiBb83Ay/TU9waqCulX9+Xp6xnzVtUHl
 NzJlxJvuNzWhU/QTjGqzhuJhsLFEU2XSXy+QwJzUn/wcGrq27ltpGHaCiydZaBp22O/K
 esUnC1eDP2oBG+6f1aOu39tefnf91gWEiairQ/Dtlc7V2dEY8WCag61wsB5msC3NnM5g
 4iacLXoRlkCYlqONPAp94rS2GGFv8GSg/EuwdXPudxc+LEk8ux3RoMuCIxKaTmUuKV3S
 9iIsiXm83ClKVItyg7jts22EW5TkT1SHsxqw3OlwERo7/xSgjUOp3kS5RnLK5PZQnRJS
 QrZw==
X-Gm-Message-State: AOAM533jWnwwgxuL+LW5Gm25zf4dui6lmC2URU4fIboOaQoUCopVSXXw
 Gz6pBIbFyZ5vLTcU0BXMfpGkAJ6e35FqhA0v7Jc=
X-Google-Smtp-Source: ABdhPJzpK79qu7vx4WQm4CpERNz1JSl+uig8VUkLKQnVI9udOOcz1IYC0amL+lA1IKs2mkkAVs5PLXXH+yxhfjI3Elg=
X-Received: by 2002:aa7:978b:0:b0:44c:abf1:a8b8 with SMTP id
 o11-20020aa7978b000000b0044cabf1a8b8mr5091264pfp.35.1634977009641; Sat, 23
 Oct 2021 01:16:49 -0700 (PDT)
Received: from 753933720722 named unknown by gmailapi.google.com with
 HTTPREST; Sat, 23 Oct 2021 01:16:48 -0700
From: Stefan Kangas <stefan@HIDDEN>
In-Reply-To: <83lf2k5gna.fsf@HIDDEN>
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <87d2cn67zo.fsf@HIDDEN>
 <CAOnWdoivtsBnHPhZWkjxNEqiMxfOwnYiU2eaoQEu4_3bjCx=JQ@HIDDEN>
 <87bns6dcul.fsf@HIDDEN>
 <CAOnWdoiiMd1fqrY=ZAXA4U9ctu0Vcx1BCj7B0U27A9sbJTdpkg@HIDDEN>
 <87silbstsc.fsf@HIDDEN>
 <CAOnWdogh6UiaRCeuxLCj0p9cMqhCBOUwD1Rfsn1RUcGvLROP7Q@HIDDEN>
 <CADwFkmkgn6Kp8CULr4pe0wj1-gZfm3t183x-bnGLubOwnfaBSw@HIDDEN>
 <83lf2k5gna.fsf@HIDDEN>
MIME-Version: 1.0
Date: Sat, 23 Oct 2021 01:16:48 -0700
Message-ID: <CADwFkmmP5tgu8eJCRqdbqwbqezHbjkQxtsotwhPszF9_ECdJzA@HIDDEN>
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
To: Eli Zaretskii <eliz@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: 0.5 (/)
X-Debbugs-Envelope-To: 18132
Cc: 18132 <at> debbugs.gnu.org, rrt@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.5 (/)

Eli Zaretskii <eliz@HIDDEN> writes:

> It's not only that.  Emacs's ability to run programs given a file can
> extend and surpass those of the underlying OS, and the ability of
> Emacs users to configure and customize that in a unified
> system-independent manner are either better or simply not available at
> all in the OS-level tools which offer similar functionality.
>
> So I think it would be nice to extend dired-guess-shell-* so that it
> could delegate to the OS-level capabilities like xdg-open or
> w32-shell-execute, but we should preserve the abilities to override or
> extend that with Emacs-level associations between files and programs.

That sounds like exactly the right thing to do.  So we need to add stuff
here, without taking anything away.

However, I will add that while we maintain our current capabilities for
customization, we might want to consider removing or updating some
entries from `dired-guess-shell-alist-default'.  For example, we
currently recommend xpdf for PDF:s, which, sure, is presumably available
"everywhere", but also is pretty lacking in features and just plain
clunky compared to something like evince.

To make matters even worse,

    emacs -Q --eval "(progn (require 'dired-x) (dired \"~\"))"

happily offers up xpdf as the default command for PDF:s even though I
don't even have xpdf installed!  So perhaps it's not that ubiquitous
these days... you have to specifically install it to even have it.

Looking even more closely at this, I guess `xdg-open' could be used as
some final fallback, but it doesn't seem to add anything that isn't
already available from mailcap?  And we already have
`mailcap-file-default-commands', so why not just provide a default based
on that?

On my machine, I get the very reasonable:

    (mailcap-file-default-commands '("foo.pdf"))
    => ("evince" "xdg-open")

So why not just move the guessing stuff over to dired.el, re-base it on
mailcap, and minimize the list in `dired-guess-shell-alist-default' to
something more reasonable.  Perhaps that list could be just nil by
default if we have the usual mailcap stuff?




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

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


Received: (at 18132) by debbugs.gnu.org; 23 Oct 2021 07:45:28 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Oct 23 03:45:28 2021
Received: from localhost ([127.0.0.1]:34270 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1meBiZ-0004w1-V9
	for submit <at> debbugs.gnu.org; Sat, 23 Oct 2021 03:45:28 -0400
Received: from eggs.gnu.org ([209.51.188.92]:46660)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <eliz@HIDDEN>) id 1meBiV-0004vm-Q7
 for 18132 <at> debbugs.gnu.org; Sat, 23 Oct 2021 03:45:26 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e]:53768)
 by eggs.gnu.org with esmtp (Exim 4.90_1)
 (envelope-from <eliz@HIDDEN>)
 id 1meBiO-00031y-V7; Sat, 23 Oct 2021 03:45:16 -0400
Received: from [87.69.77.57] (port=2893 helo=home-c4e4a596f7)
 by fencepost.gnu.org with esmtpsa (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <eliz@HIDDEN>)
 id 1meBiI-0006os-Lz; Sat, 23 Oct 2021 03:45:15 -0400
Date: Sat, 23 Oct 2021 10:44:57 +0300
Message-Id: <83lf2k5gna.fsf@HIDDEN>
From: Eli Zaretskii <eliz@HIDDEN>
To: Stefan Kangas <stefan@HIDDEN>
In-Reply-To: <CADwFkmkgn6Kp8CULr4pe0wj1-gZfm3t183x-bnGLubOwnfaBSw@HIDDEN>
 (message from Stefan Kangas on Fri, 22 Oct 2021 22:25:09 -0700)
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <87d2cn67zo.fsf@HIDDEN>
 <CAOnWdoivtsBnHPhZWkjxNEqiMxfOwnYiU2eaoQEu4_3bjCx=JQ@HIDDEN>
 <87bns6dcul.fsf@HIDDEN>
 <CAOnWdoiiMd1fqrY=ZAXA4U9ctu0Vcx1BCj7B0U27A9sbJTdpkg@HIDDEN>
 <87silbstsc.fsf@HIDDEN>
 <CAOnWdogh6UiaRCeuxLCj0p9cMqhCBOUwD1Rfsn1RUcGvLROP7Q@HIDDEN>
 <CADwFkmkgn6Kp8CULr4pe0wj1-gZfm3t183x-bnGLubOwnfaBSw@HIDDEN>
X-Spam-Score: -2.3 (--)
X-Debbugs-Envelope-To: 18132
Cc: 18132 <at> debbugs.gnu.org, rrt@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 (---)

> From: Stefan Kangas <stefan@HIDDEN>
> Date: Fri, 22 Oct 2021 22:25:09 -0700
> Cc: 18132 <at> debbugs.gnu.org
> 
> Reuben Thomas <rrt@HIDDEN> writes:
> 
> > 1. Do other maintainers agree that it is sensible to remove Emacs's
> > duplicated mechanism for guessing which command to run on a given
> > filetype, and instead use a system mechanism (according to the
> > underlying system)?
> 
> I agree, but I will add that it would be very nice if we don't lose the
> capability of seeing which command will be run on a file when typing &
> (dired-do-async-shell-command) on a file in Dired.  It sucks when the
> default only says "xdg-open", as you don't know what program that will
> open or if it is indeed the one you want.

It's not only that.  Emacs's ability to run programs given a file can
extend and surpass those of the underlying OS, and the ability of
Emacs users to configure and customize that in a unified
system-independent manner are either better or simply not available at
all in the OS-level tools which offer similar functionality.

So I think it would be nice to extend dired-guess-shell-* so that it
could delegate to the OS-level capabilities like xdg-open or
w32-shell-execute, but we should preserve the abilities to override or
extend that with Emacs-level associations between files and programs.

> > 2. I assume that for reasons of backward compatibility it would not be
> > acceptable immediately to remove dired-guess-shell-*, hence my
> > suggestion to implement step 1 in the first instance by supplying a
> > new default value for dired-guess-shell-alist-default. If later this
> > variable could be deprecated and replaced with a simple function, so
> > much the better.
> 
> Right, we can't just remove it outright.

I'm not sure I understand what exactly is proposed here as "step 1",
but it sounds like it's the same as my "extend dired-guess-shell-*"
proposal above?  Then I agree, of course, I just think that we don't
need to do anything else, and in particular we should never remove the
ability of Emacs users to augment/extend/override those system-level
facilities.




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

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


Received: (at 18132) by debbugs.gnu.org; 23 Oct 2021 05:25:17 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Sat Oct 23 01:25:17 2021
Received: from localhost ([127.0.0.1]:34151 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1me9Wv-0001D9-9C
	for submit <at> debbugs.gnu.org; Sat, 23 Oct 2021 01:25:17 -0400
Received: from mail-pj1-f50.google.com ([209.85.216.50]:43644)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <stefankangas@HIDDEN>) id 1me9Wt-0001Cq-4l
 for 18132 <at> debbugs.gnu.org; Sat, 23 Oct 2021 01:25:16 -0400
Received: by mail-pj1-f50.google.com with SMTP id
 k2-20020a17090ac50200b001a218b956aaso248075pjt.2
 for <18132 <at> debbugs.gnu.org>; Fri, 22 Oct 2021 22:25:15 -0700 (PDT)
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=x-gm-message-state:from:in-reply-to:references:user-agent
 :mime-version:date:message-id:subject:to:cc;
 bh=F4muWsel3OfhOKsXUG1ea0mxsLpEkqnRfbZeqZ+QQ84=;
 b=PJ70XAOUV3ndSeY50IJN13SuGFbV9mpxO6W9sRhT3SoAYrtaoQT6qyFwV5PRoZgMZa
 vAcYyLDfU9NN/0PYCDaz8ATaLItkRXG7J7tZcDQ3cmE+z2ueIxH86hdT1huzng9KcaLx
 LDeeaGLZ3JMNAkTEQyRhSpV5smbGVxC7WHwmJxMl/D4PNuOnPyI/hhEnWPkFPS/c/mef
 xkTkRiYCYl1OYF3moy52VNXf01cs4D+QmQ27G5pcF+ddktekDRAWx1WvvjkGFVm6wmQ3
 thIxanG43F6VCuMqnMWAZaoWlPpySwF76wBDwe+Do/NORAz5lHh/EMpXiiczWMt0Qqs1
 WhlA==
X-Gm-Message-State: AOAM530tAX8LVPE3wqSLUK9+D93+N+l5XOu6QvOD2hpZGaklbRUJkzBJ
 x4bF2tBwEb0XFR3CST4x5hXp4ShHCABRea6zyLo=
X-Google-Smtp-Source: ABdhPJzX7XaJ9bgj8nZnhN4af96yCxWTXdsQ9CGP4GUJ64g8q+r/Ax4n4WSSl+9/LXXjih1ai5aiaM4mckIq0WjBMYI=
X-Received: by 2002:a17:90b:3b86:: with SMTP id
 pc6mr2271380pjb.143.1634966709519; 
 Fri, 22 Oct 2021 22:25:09 -0700 (PDT)
Received: from 753933720722 named unknown by gmailapi.google.com with
 HTTPREST; Fri, 22 Oct 2021 22:25:09 -0700
From: Stefan Kangas <stefan@HIDDEN>
In-Reply-To: <CAOnWdogh6UiaRCeuxLCj0p9cMqhCBOUwD1Rfsn1RUcGvLROP7Q@HIDDEN>
 (Reuben Thomas's message of "Tue, 5 Aug 2014 10:41:48 +0100")
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <87d2cn67zo.fsf@HIDDEN>
 <CAOnWdoivtsBnHPhZWkjxNEqiMxfOwnYiU2eaoQEu4_3bjCx=JQ@HIDDEN>
 <87bns6dcul.fsf@HIDDEN>
 <CAOnWdoiiMd1fqrY=ZAXA4U9ctu0Vcx1BCj7B0U27A9sbJTdpkg@HIDDEN>
 <87silbstsc.fsf@HIDDEN>
 <CAOnWdogh6UiaRCeuxLCj0p9cMqhCBOUwD1Rfsn1RUcGvLROP7Q@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (gnu/linux)
MIME-Version: 1.0
Date: Fri, 22 Oct 2021 22:25:09 -0700
Message-ID: <CADwFkmkgn6Kp8CULr4pe0wj1-gZfm3t183x-bnGLubOwnfaBSw@HIDDEN>
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
To: Reuben Thomas <rrt@HIDDEN>
Content-Type: text/plain; charset="UTF-8"
X-Spam-Score: 0.5 (/)
X-Debbugs-Envelope-To: 18132
Cc: Juri Linkov <juri@HIDDEN>, 18132 <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: -0.5 (/)

Reuben Thomas <rrt@HIDDEN> writes:

> Unfortunately, we seem to have strayed from my question, "can I
> replace dired-guess-shell-* with a function that calls a suitable
> file-type dispatcher (xdg-open, open, w32-shell-execute &c.)" to a
> discussion of mailcap support, which is related, but perhaps better
> dealt with separately (given that I'm talking about removing, not
> adding, functionality from Emacs).
>
> I was really trying to address two concerns:
>
> 1. Do other maintainers agree that it is sensible to remove Emacs's
> duplicated mechanism for guessing which command to run on a given
> filetype, and instead use a system mechanism (according to the
> underlying system)?

I agree, but I will add that it would be very nice if we don't lose the
capability of seeing which command will be run on a file when typing &
(dired-do-async-shell-command) on a file in Dired.  It sucks when the
default only says "xdg-open", as you don't know what program that will
open or if it is indeed the one you want.

Does xdg-open have the capability to just print what it would run
without actually executing it?  I can't see such a flag on Debian
stable/bookworm.  If that is missing, should we perhaps add a feature
request for it?

https://www.freedesktop.org/wiki/Software/xdg-utils/

But in that case, we would need to check for that capability first,
somehow...

> 2. I assume that for reasons of backward compatibility it would not be
> acceptable immediately to remove dired-guess-shell-*, hence my
> suggestion to implement step 1 in the first instance by supplying a
> new default value for dired-guess-shell-alist-default. If later this
> variable could be deprecated and replaced with a simple function, so
> much the better.

Right, we can't just remove it outright.




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

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


Received: (at 18132) by debbugs.gnu.org; 5 Aug 2014 09:41:59 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Aug 05 05:41:59 2014
Received: from localhost ([127.0.0.1]:58274 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.80)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1XEbFm-0002Hz-87
	for submit <at> debbugs.gnu.org; Tue, 05 Aug 2014 05:41:58 -0400
Received: from mail-la0-f51.google.com ([209.85.215.51]:45224)
 by debbugs.gnu.org with esmtp (Exim 4.80)
 (envelope-from <rrt@HIDDEN>) id 1XEbFi-0002Hk-Tc
 for 18132 <at> debbugs.gnu.org; Tue, 05 Aug 2014 05:41:56 -0400
Received: by mail-la0-f51.google.com with SMTP id pn19so512270lab.10
 for <18132 <at> debbugs.gnu.org>; Tue, 05 Aug 2014 02:41:48 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sc3d.org; s=google;
 h=mime-version:in-reply-to:references:date:message-id:subject:from:to
 :cc:content-type;
 bh=qRrfbmmIIAk1KjwkN7HtxrnC+XK24zhyATZypO3CIjI=;
 b=tCgvBLdKCl8lKVrEQWkqqK252QDwOkuv8piSSg5Ulo9EeHR3PS6stb1JHWj+J5c9p1
 0EDypAiRh4M8s7Qy89VUa/Jq2+JzyHDmVBjIJEg2Evevjl1WLI/QaIfa1IXxgFI6XO5K
 /Tgib7c+IwQzGoFCHjXl7ij8FDt6ll7RC8g9U=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:mime-version:in-reply-to:references:date
 :message-id:subject:from:to:cc:content-type;
 bh=qRrfbmmIIAk1KjwkN7HtxrnC+XK24zhyATZypO3CIjI=;
 b=PWAum/IQb85Y/ykJfPk/g2gbmCR2ID4b+IuL2fzL6VcB/KCl5eprN1tpfcmJ5UQrY9
 fWyptgwv/NY9lgYa8UZJ8m8OtessFtsjSQZQedMbAGCnkYqbseyJXsp38NLpeVKmTi0v
 KSW7RTYuJ54KwBsP7wuYvOWp5TLPKG5k271fjOpIN96WUqF1A8AHHz6GbT8c2H+CVunK
 BEVaUCr2ucFKeCoYswXlscIW2rX3s8kXeasTTVaIdvXmIFLJDffdPf0tsj9xynZfb0c+
 RXRd+JFsymhOZIA80x15ZhKyp2qukTtrcGqvbuayCH7rWCCGccUIJP01DXMKNNGfbawS
 d2yA==
X-Gm-Message-State: ALoCoQmD4UNAlS1abtvFgxgaPg27NhvXHx7DAINrFwA3E+QC2eb1Uc1o685NNZLJ2ti4GzwMQxLR
MIME-Version: 1.0
X-Received: by 10.112.138.195 with SMTP id qs3mr2556857lbb.49.1407231708695;
 Tue, 05 Aug 2014 02:41:48 -0700 (PDT)
Received: by 10.152.246.10 with HTTP; Tue, 5 Aug 2014 02:41:48 -0700 (PDT)
In-Reply-To: <87silbstsc.fsf@HIDDEN>
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <87d2cn67zo.fsf@HIDDEN>
 <CAOnWdoivtsBnHPhZWkjxNEqiMxfOwnYiU2eaoQEu4_3bjCx=JQ@HIDDEN>
 <87bns6dcul.fsf@HIDDEN>
 <CAOnWdoiiMd1fqrY=ZAXA4U9ctu0Vcx1BCj7B0U27A9sbJTdpkg@HIDDEN>
 <87silbstsc.fsf@HIDDEN>
Date: Tue, 5 Aug 2014 10:41:48 +0100
Message-ID: <CAOnWdogh6UiaRCeuxLCj0p9cMqhCBOUwD1Rfsn1RUcGvLROP7Q@HIDDEN>
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
From: Reuben Thomas <rrt@HIDDEN>
To: Juri Linkov <juri@HIDDEN>
Content-Type: multipart/alternative; boundary=089e011609d01d39ed04ffdeaab9
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 18132
Cc: 18132 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <http://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: <http://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 (/)

--089e011609d01d39ed04ffdeaab9
Content-Type: text/plain; charset=UTF-8

On 5 August 2014 00:45, Juri Linkov <juri@HIDDEN> wrote:

> > I'm sorry if I've missed something, but I don't see what this has to do
> > with run-mailcap.
>
> run-mailcap always runs the first alternative, but with
> `mailcap-file-default-commands' you can select a command
> to run using several M-n.
>
> ...

>
> Instead of customization, a more useful UI would be to remember
> the most frequently used commands, and provide them at the top
> of the completions in the minibuffer.
>

Unfortunately, we seem to have strayed from my question, "can I replace
dired-guess-shell-* with a function that calls a suitable file-type
dispatcher (xdg-open, open, w32-shell-execute &c.)" to a discussion of
mailcap support, which is related, but perhaps better dealt with separately
(given that I'm talking about removing, not adding, functionality from
Emacs).

I was really trying to address two concerns:

1. Do other maintainers agree that it is sensible to remove Emacs's
duplicated mechanism for guessing which command to run on a given filetype,
and instead use a system mechanism (according to the underlying system)?

2. I assume that for reasons of backward compatibility it would not be
acceptable immediately to remove dired-guess-shell-*, hence my suggestion
to implement step 1 in the first instance by supplying a new default value
for dired-guess-shell-alist-default. If later this variable could be
deprecated and replaced with a simple function, so much the better.

-- 
http://rrt.sc3d.org

--089e011609d01d39ed04ffdeaab9
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_extra"><div class=3D"gmail_quote">On 5=
 August 2014 00:45, Juri Linkov <span dir=3D"ltr">&lt;<a href=3D"mailto:jur=
i@HIDDEN" target=3D"_blank">juri@HIDDEN</a>&gt;</span> wrote:<br><blo=
ckquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #c=
cc solid;padding-left:1ex">
<div class=3D"">&gt; I&#39;m sorry if I&#39;ve missed something, but I don&=
#39;t see what this has to do<br>
&gt; with run-mailcap.<br>
<br>
</div>run-mailcap always runs the first alternative, but with<br>
`mailcap-file-default-commands&#39; you can select a command<br>
to run using several M-n.<br>
<div class=3D""><br></div></blockquote><div>... <br></div><blockquote class=
=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #ccc solid;padd=
ing-left:1ex"><div class=3D"">
<br>
</div>Instead of customization, a more useful UI would be to remember<br>
the most frequently used commands, and provide them at the top<br>
of the completions in the minibuffer.<br>
</blockquote><div><br></div><div>Unfortunately, we seem to have strayed fro=
m my question, &quot;can I replace dired-guess-shell-* with a function that=
 calls a suitable file-type dispatcher (xdg-open, open, w32-shell-execute &=
amp;c.)&quot; to a discussion of mailcap support, which is related, but per=
haps better dealt with separately (given that I&#39;m talking about removin=
g, not adding, functionality from Emacs).<br>
<br></div><div>I was really trying to address two concerns:<br><br></div><d=
iv>1. Do other maintainers agree that it is sensible to remove Emacs&#39;s =
duplicated mechanism for guessing which command to run on a given filetype,=
 and instead use a system mechanism (according to the underlying system)?<b=
r>
<br></div><div>2. I assume that for reasons of backward compatibility it wo=
uld not be acceptable immediately to remove dired-guess-shell-*, hence my s=
uggestion to implement step 1 in the first instance by supplying a new defa=
ult value for dired-guess-shell-alist-default. If later this variable could=
 be deprecated and replaced with a simple function, so much the better.<br>
</div></div><br>-- <br><a href=3D"http://rrt.sc3d.org">http://rrt.sc3d.org<=
/a>
</div></div>

--089e011609d01d39ed04ffdeaab9--




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

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


Received: (at 18132) by debbugs.gnu.org; 5 Aug 2014 00:10:45 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Aug 04 20:10:45 2014
Received: from localhost ([127.0.0.1]:58010 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.80)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1XESKy-0003JD-Ch
	for submit <at> debbugs.gnu.org; Mon, 04 Aug 2014 20:10:44 -0400
Received: from alc-vshost7.dreamhost.com ([69.163.216.107]:58440
 helo=ps18281.dreamhostps.com)
 by debbugs.gnu.org with esmtp (Exim 4.80)
 (envelope-from <juri@HIDDEN>) id 1XESKv-0003Iy-Eu
 for 18132 <at> debbugs.gnu.org; Mon, 04 Aug 2014 20:10:42 -0400
Received: from localhost.jurta.org (ps18281.dreamhostps.com [69.163.222.226])
 by ps18281.dreamhostps.com (Postfix) with ESMTP id 0C5453094551C1;
 Mon,  4 Aug 2014 17:10:39 -0700 (PDT)
From: Juri Linkov <juri@HIDDEN>
To: Reuben Thomas <rrt@HIDDEN>
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
Organization: JURTA
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <87d2cn67zo.fsf@HIDDEN>
 <CAOnWdoivtsBnHPhZWkjxNEqiMxfOwnYiU2eaoQEu4_3bjCx=JQ@HIDDEN>
 <87bns6dcul.fsf@HIDDEN>
 <CAOnWdoiiMd1fqrY=ZAXA4U9ctu0Vcx1BCj7B0U27A9sbJTdpkg@HIDDEN>
Date: Tue, 05 Aug 2014 02:45:55 +0300
In-Reply-To: <CAOnWdoiiMd1fqrY=ZAXA4U9ctu0Vcx1BCj7B0U27A9sbJTdpkg@HIDDEN>
 (Reuben Thomas's message of "Wed, 30 Jul 2014 17:44:13 +0100")
Message-ID: <87silbstsc.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: 2.4 (++)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has
 identified this incoming email as possible spam.  The original message
 has been attached to this so you can view it (if it isn't spam) or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 Content preview:  > I'm sorry if I've missed something, but I don't see what
 this has to do > with run-mailcap. run-mailcap always runs the first
 alternative, 
 but with `mailcap-file-default-commands' you can select a command to run
 using several M-n. [...] 
 Content analysis details:   (2.4 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 0.7 RCVD_IN_XBL            RBL: Received via a relay in Spamhaus XBL
 [69.163.216.107 listed in zen.spamhaus.org]
 1.6 RCVD_IN_BRBL_LASTEXT   RBL: RCVD_IN_BRBL_LASTEXT
 [69.163.216.107 listed in bb.barracudacentral.org]
X-Debbugs-Envelope-To: 18132
Cc: 18132 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <http://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: <http://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: 2.4 (++)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has
 identified this incoming email as possible spam.  The original message
 has been attached to this so you can view it (if it isn't spam) or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 
 Content preview:  > I'm sorry if I've missed something, but I don't see what
    this has to do > with run-mailcap. run-mailcap always runs the first alternative,
    but with `mailcap-file-default-commands' you can select a command to run
   using several M-n. [...] 
 
 Content analysis details:   (2.4 points, 10.0 required)
 
  pts rule name              description
 ---- ---------------------- --------------------------------------------------
  0.7 RCVD_IN_XBL            RBL: Received via a relay in Spamhaus XBL
                             [69.163.216.107 listed in zen.spamhaus.org]
  1.6 RCVD_IN_BRBL_LASTEXT   RBL: RCVD_IN_BRBL_LASTEXT
                             [69.163.216.107 listed in bb.barracudacentral.org]

> I'm sorry if I've missed something, but I don't see what this has to do
> with run-mailcap.

run-mailcap always runs the first alternative, but with
`mailcap-file-default-commands' you can select a command
to run using several M-n.

> It would be good to discourage customization of
> dired-guess-shell-alist-{default,user}, and steer users towards the
> non-program-specific mechanisms. It would also be good eventually not to
> have to maintain the list, or indeed the dired-guess-shell mechanism at all.

Instead of customization, a more useful UI would be to remember
the most frequently used commands, and provide them at the top
of the completions in the minibuffer.

> As for your mention of "the first M-n", as far as I can discover, the first
> time I press M-n, the default command, which was already mentioned in the
> prompt, is simply inserted at point, as if I had typed it. So is "the first
> suggestion that the user will get after the first M-n" actually the same
> thing as "the default suggestion"? (I hope so!)

Yes, this is so when the prompt displays the default value.




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

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


Received: (at 18132) by debbugs.gnu.org; 30 Jul 2014 16:44:23 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jul 30 12:44:23 2014
Received: from localhost ([127.0.0.1]:52043 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.80)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1XCWzH-0006fX-5I
	for submit <at> debbugs.gnu.org; Wed, 30 Jul 2014 12:44:23 -0400
Received: from mail-la0-f47.google.com ([209.85.215.47]:65259)
 by debbugs.gnu.org with esmtp (Exim 4.80)
 (envelope-from <rrt@HIDDEN>) id 1XCWzD-0006fJ-ND
 for 18132 <at> debbugs.gnu.org; Wed, 30 Jul 2014 12:44:21 -0400
Received: by mail-la0-f47.google.com with SMTP id mc6so1137708lab.34
 for <18132 <at> debbugs.gnu.org>; Wed, 30 Jul 2014 09:44:13 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sc3d.org; s=google;
 h=mime-version:in-reply-to:references:date:message-id:subject:from:to
 :cc:content-type;
 bh=2GfkD9Dr9auYjN10lIRGnJLUKQRJpjQ9254uaWm/Qo8=;
 b=MPuFP/JbWeXBNMjTE9LMeRduVRpliubOIknxxRANuaqbv/ZmtwRC8ERSq1p2iKEtdB
 44lf98qruLeDEvvqODUIJuW8XfDYzGKap6qj8fsWR11QW72hlHTIFDYZZSexBN0G6bB1
 2evQfLTEji4xVKhcu1LXtCMHWFBaBDiDnmxa0=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:mime-version:in-reply-to:references:date
 :message-id:subject:from:to:cc:content-type;
 bh=2GfkD9Dr9auYjN10lIRGnJLUKQRJpjQ9254uaWm/Qo8=;
 b=FhN7GrFRFoXegnBFkSrM3Jmh7nitXTJTnNe0JuyW0w1CrqCObePSQDEdvUZkYMQNvD
 xY9CBKz0UHuyB8kzREAfUPTn88AUelT5XCgTaZFDZh++l6Hl4YBt/MRsKWjIiYKNqUEN
 TKb04rnXj3sbErM+1fG/iq0GRdSPDrC5nCpwMB88RkOUIjK3KKljleT0X3w2Gwl6ZtHY
 brfU7UK8X4NhxD8kgAriynNScpa1DyxtlZ4eZr3atRTJ7GiRy/C8NGNrPE47nRw/TJkj
 qJFYODXgLJ7FV9hNbe12bC+TiaOhUydkv+yWhhqPZPXaf611Hw21sdH5sUaAf2xt5sMw
 tdRg==
X-Gm-Message-State: ALoCoQnYzNBXnJApIdnyT34PtAzc9IJkBCOHlpOEFB6eWiUpqAfZgTt/0wNL52ziGWP4obZYK5ux
MIME-Version: 1.0
X-Received: by 10.152.202.197 with SMTP id kk5mr6059276lac.19.1406738653536;
 Wed, 30 Jul 2014 09:44:13 -0700 (PDT)
Received: by 10.152.163.4 with HTTP; Wed, 30 Jul 2014 09:44:13 -0700 (PDT)
In-Reply-To: <87bns6dcul.fsf@HIDDEN>
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <87d2cn67zo.fsf@HIDDEN>
 <CAOnWdoivtsBnHPhZWkjxNEqiMxfOwnYiU2eaoQEu4_3bjCx=JQ@HIDDEN>
 <87bns6dcul.fsf@HIDDEN>
Date: Wed, 30 Jul 2014 17:44:13 +0100
Message-ID: <CAOnWdoiiMd1fqrY=ZAXA4U9ctu0Vcx1BCj7B0U27A9sbJTdpkg@HIDDEN>
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
From: Reuben Thomas <rrt@HIDDEN>
To: Juri Linkov <juri@HIDDEN>
Content-Type: multipart/alternative; boundary=001a1135f8dcbc811604ff6bdd85
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 18132
Cc: 18132 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <http://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: <http://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 (/)

--001a1135f8dcbc811604ff6bdd85
Content-Type: text/plain; charset=UTF-8

On 30 July 2014 17:32, Juri Linkov <juri@HIDDEN> wrote:

> >> run-mailcap is fully supported by shell-command and async-shell-command
> where
> >> the list of available commands can be accessed using M-n in its
> minibuffer.
> >
> > I can't see any mention of run-mailcap in the Emacs source; do you mean
> > simply that it's possible to add it to the list of commands used?
>
> grep -nH mailcap *.el
> ./dired-aux.el:558:(declare-function mailcap-file-default-commands
> "mailcap" (files))
> ./dired-aux.el:562:This function is used to add all related commands
> retrieved by `mailcap'
> ./dired-aux.el:565:  (let ((commands (and (boundp 'files) (require
> 'mailcap nil t)
> ./dired-aux.el:566:                    (mailcap-file-default-commands
> files))))
> ./simple.el:2743:(declare-function mailcap-file-default-commands "mailcap"
> (files))
> ./simple.el:2748:This function is used to add all related commands
> retrieved by `mailcap'
> ./simple.el:2754:        (commands (and filename (require 'mailcap nil t)
> ./simple.el:2755:                       (mailcap-file-default-commands
> (list filename)))))
>

I'm sorry if I've missed something, but I don't see what this has to do
with run-mailcap.


> We could leave the original list intact, and add xdg-open/w32-shell-execute
> to the top of the list, so it would be the first suggestion that the user
> will get after the first M-n.
>

It would be good to discourage customization of
dired-guess-shell-alist-{default,user}, and steer users towards the
non-program-specific mechanisms. It would also be good eventually not to
have to maintain the list, or indeed the dired-guess-shell mechanism at all.

As for your mention of "the first M-n", as far as I can discover, the first
time I press M-n, the default command, which was already mentioned in the
prompt, is simply inserted at point, as if I had typed it. So is "the first
suggestion that the user will get after the first M-n" actually the same
thing as "the default suggestion"? (I hope so!)


> There is a good example how to check its availability in
> `browse-url-can-use-xdg-open' that could be moved
> to a more general file like simple.el.
>

Thanks for the pointer.

-- 
http://rrt.sc3d.org

--001a1135f8dcbc811604ff6bdd85
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_extra"><div class=3D"gmail_quote">On 3=
0 July 2014 17:32, Juri Linkov <span dir=3D"ltr">&lt;<a href=3D"mailto:juri=
@jurta.org" target=3D"_blank">juri@HIDDEN</a>&gt;</span> wrote:<br><bloc=
kquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #cc=
c solid;padding-left:1ex">
<div class=3D"">&gt;&gt; run-mailcap is fully supported by shell-command an=
d async-shell-command where<br>
&gt;&gt; the list of available commands can be accessed using M-n in its mi=
nibuffer.<br>
&gt;<br>
&gt; I can&#39;t see any mention of run-mailcap in the Emacs source; do you=
 mean<br>
&gt; simply that it&#39;s possible to add it to the list of commands used?<=
br>
<br>
</div>grep -nH mailcap *.el<br>
./dired-aux.el:558:(declare-function mailcap-file-default-commands &quot;ma=
ilcap&quot; (files))<br>
./dired-aux.el:562:This function is used to add all related commands retrie=
ved by `mailcap&#39;<br>
./dired-aux.el:565: =C2=A0(let ((commands (and (boundp &#39;files) (require=
 &#39;mailcap nil t)<br>
./dired-aux.el:566: =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=
 =C2=A0 =C2=A0(mailcap-file-default-commands files))))<br>
./simple.el:2743:(declare-function mailcap-file-default-commands &quot;mail=
cap&quot; (files))<br>
./simple.el:2748:This function is used to add all related commands retrieve=
d by `mailcap&#39;<br>
./simple.el:2754: =C2=A0 =C2=A0 =C2=A0 =C2=A0(commands (and filename (requi=
re &#39;mailcap nil t)<br>
./simple.el:2755: =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =
=C2=A0 =C2=A0 =C2=A0 (mailcap-file-default-commands (list filename)))))<br>=
</blockquote><div><br></div><div>I&#39;m sorry if I&#39;ve missed something=
, but I don&#39;t see what this has to do with run-mailcap.<br>
</div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0 =
0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">We could leave the or=
iginal list intact, and add xdg-open/w32-shell-execute<br>
to the top of the list, so it would be the first suggestion that the user<b=
r>
will get after the first M-n.<br></blockquote><div><br></div><div>It would =
be good to discourage customization of dired-guess-shell-alist-{default,use=
r}, and steer users towards the non-program-specific mechanisms. It would a=
lso be good eventually not to have to maintain the list, or indeed the dire=
d-guess-shell mechanism at all.<br>
<br></div><div>As for your mention of &quot;the first M-n&quot;, as far as =
I can discover, the first time I press M-n, the default command, which was =
already mentioned in the prompt, is simply inserted at point, as if I had t=
yped it. So is &quot;the first suggestion that the user will get after the =
first M-n&quot; actually the same thing as &quot;the default suggestion&quo=
t;? (I hope so!)<br>
</div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0 =
0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

There is a good example how to check its availability in<br>
`browse-url-can-use-xdg-open&#39; that could be moved<br>
to a more general file like simple.el.<br>
</blockquote></div><br></div><div class=3D"gmail_extra">Thanks for the poin=
ter.<br clear=3D"all"></div><div class=3D"gmail_extra"><br>-- <br><a href=
=3D"http://rrt.sc3d.org">http://rrt.sc3d.org</a>
</div></div>

--001a1135f8dcbc811604ff6bdd85--




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

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


Received: (at 18132) by debbugs.gnu.org; 30 Jul 2014 16:37:07 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jul 30 12:37:07 2014
Received: from localhost ([127.0.0.1]:52028 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.80)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1XCWsE-0006To-Cc
	for submit <at> debbugs.gnu.org; Wed, 30 Jul 2014 12:37:06 -0400
Received: from alc-vshost7.dreamhost.com ([69.163.216.107]:51491
 helo=ps18281.dreamhostps.com)
 by debbugs.gnu.org with esmtp (Exim 4.80)
 (envelope-from <juri@HIDDEN>) id 1XCWsB-0006SY-Aw
 for 18132 <at> debbugs.gnu.org; Wed, 30 Jul 2014 12:37:04 -0400
Received: from localhost.jurta.org (ps18281.dreamhostps.com [69.163.222.226])
 by ps18281.dreamhostps.com (Postfix) with ESMTP id 589F93725F96A3;
 Wed, 30 Jul 2014 09:37:01 -0700 (PDT)
From: Juri Linkov <juri@HIDDEN>
To: Reuben Thomas <rrt@HIDDEN>
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
Organization: JURTA
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <87d2cn67zo.fsf@HIDDEN>
 <CAOnWdoivtsBnHPhZWkjxNEqiMxfOwnYiU2eaoQEu4_3bjCx=JQ@HIDDEN>
Date: Wed, 30 Jul 2014 19:32:58 +0300
In-Reply-To: <CAOnWdoivtsBnHPhZWkjxNEqiMxfOwnYiU2eaoQEu4_3bjCx=JQ@HIDDEN>
 (Reuben Thomas's message of "Wed, 30 Jul 2014 10:12:40 +0100")
Message-ID: <87bns6dcul.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: 2.4 (++)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has
 identified this incoming email as possible spam.  The original message
 has been attached to this so you can view it (if it isn't spam) or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 Content preview: >> run-mailcap is fully supported by shell-command and
 async-shell-command
 where >> the list of available commands can be accessed using M-n in its
 minibuffer. > > I can't see any mention of run-mailcap in the Emacs source;
 do you mean > simply that it's possible to add it to the list of commands
 used? [...] 
 Content analysis details:   (2.4 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 1.6 RCVD_IN_BRBL_LASTEXT   RBL: RCVD_IN_BRBL_LASTEXT
 [69.163.216.107 listed in bb.barracudacentral.org]
 0.7 RCVD_IN_XBL            RBL: Received via a relay in Spamhaus XBL
 [69.163.216.107 listed in zen.spamhaus.org]
X-Debbugs-Envelope-To: 18132
Cc: 18132 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <http://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: <http://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: 2.4 (++)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has
 identified this incoming email as possible spam.  The original message
 has been attached to this so you can view it (if it isn't spam) or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 
 Content preview:  >> run-mailcap is fully supported by shell-command and async-shell-command
    where >> the list of available commands can be accessed using M-n in its
   minibuffer. > > I can't see any mention of run-mailcap in the Emacs source;
    do you mean > simply that it's possible to add it to the list of commands
    used? [...] 
 
 Content analysis details:   (2.4 points, 10.0 required)
 
  pts rule name              description
 ---- ---------------------- --------------------------------------------------
  0.7 RCVD_IN_XBL            RBL: Received via a relay in Spamhaus XBL
                             [69.163.216.107 listed in zen.spamhaus.org]
  1.6 RCVD_IN_BRBL_LASTEXT   RBL: RCVD_IN_BRBL_LASTEXT
                             [69.163.216.107 listed in bb.barracudacentral.org]

>> run-mailcap is fully supported by shell-command and async-shell-command where
>> the list of available commands can be accessed using M-n in its minibuffer.
>
> I can't see any mention of run-mailcap in the Emacs source; do you mean
> simply that it's possible to add it to the list of commands used?

grep -nH mailcap *.el
./dired-aux.el:558:(declare-function mailcap-file-default-commands "mailcap" (files))
./dired-aux.el:562:This function is used to add all related commands retrieved by `mailcap'
./dired-aux.el:565:  (let ((commands (and (boundp 'files) (require 'mailcap nil t)
./dired-aux.el:566:		       (mailcap-file-default-commands files))))
./simple.el:2743:(declare-function mailcap-file-default-commands "mailcap" (files))
./simple.el:2748:This function is used to add all related commands retrieved by `mailcap'
./simple.el:2754:	 (commands (and filename (require 'mailcap nil t)
./simple.el:2755:			(mailcap-file-default-commands (list filename)))))

> My original point is that they're not currently used; instead there is a
> custom list that has to be configured separately by the user from either of
> these.

We could leave the original list intact, and add xdg-open/w32-shell-execute
to the top of the list, so it would be the first suggestion that the user
will get after the first M-n.

There is a good example how to check its availability in
`browse-url-can-use-xdg-open' that could be moved
to a more general file like simple.el.




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

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


Received: (at 18132) by debbugs.gnu.org; 30 Jul 2014 09:12:50 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Wed Jul 30 05:12:49 2014
Received: from localhost ([127.0.0.1]:42551 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.80)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1XCPwH-0007WX-7C
	for submit <at> debbugs.gnu.org; Wed, 30 Jul 2014 05:12:49 -0400
Received: from mail-lb0-f171.google.com ([209.85.217.171]:33698)
 by debbugs.gnu.org with esmtp (Exim 4.80)
 (envelope-from <rrt@HIDDEN>) id 1XCPwF-0007WJ-15
 for 18132 <at> debbugs.gnu.org; Wed, 30 Jul 2014 05:12:48 -0400
Received: by mail-lb0-f171.google.com with SMTP id l4so659065lbv.30
 for <18132 <at> debbugs.gnu.org>; Wed, 30 Jul 2014 02:12:41 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sc3d.org; s=google;
 h=mime-version:in-reply-to:references:date:message-id:subject:from:to
 :cc:content-type;
 bh=OU+VvUr9qT/K6fkF/7DKP9pFXTlcpGxtVsyCK8JuChQ=;
 b=23lIJoJKN6kqa6o2jGm2vNFbYls0dYksV0mfuZ+5HH8SOvjAvXMUIamKmQJ+xSnCXO
 kdMKeXhwM7JqpJ6lE495f6qI8POWmBSoagQC/jIF0DEXHz2Ei8yV4SXMpQYjniewmIDG
 I5CPvzcTNqtQK/gx1/0aJfWZbiAU5ql1bSknY=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:mime-version:in-reply-to:references:date
 :message-id:subject:from:to:cc:content-type;
 bh=OU+VvUr9qT/K6fkF/7DKP9pFXTlcpGxtVsyCK8JuChQ=;
 b=XmDMkFzuGsfSgkiXeBsQvvUo4/2PblESSytjRzEumeBpJeYHzj7KGqRAr6PlTbCUKH
 +3ZDbQUEZ0qkKG6cTMAlwhfKskxhAA5vqoh65aqHuYImcRelQ6nu4LhsTs9XoZ7+Zkj9
 9AcGtsTKyz4SB3v8azULTkeTUrKKqHq31NPwKjsjES00W2Eu21QjSzliiZgkwW4gYMjn
 GXmMU9bgI4kqs/YhyKlR51pzHziTUEsrN6bxI0+uwncBiQNG1+HkvHqNiKg2mXLumIO/
 v4q6uSIFR1inxPLqej0N/90Ufzz0IZ3U+03CF8q64z9kUs5hCypV1rbmbM56Qd+dtmCQ
 piig==
X-Gm-Message-State: ALoCoQlHSFz4gI5Ff96a4puQaZwHJyEbo8al/RbTpoT0yPwKgKmWVR1T8ugKSBDm+WMq1F+mfNQu
MIME-Version: 1.0
X-Received: by 10.152.43.34 with SMTP id t2mr3013626lal.28.1406711560710; Wed,
 30 Jul 2014 02:12:40 -0700 (PDT)
Received: by 10.152.163.4 with HTTP; Wed, 30 Jul 2014 02:12:40 -0700 (PDT)
In-Reply-To: <87d2cn67zo.fsf@HIDDEN>
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 <87d2cn67zo.fsf@HIDDEN>
Date: Wed, 30 Jul 2014 10:12:40 +0100
Message-ID: <CAOnWdoivtsBnHPhZWkjxNEqiMxfOwnYiU2eaoQEu4_3bjCx=JQ@HIDDEN>
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
From: Reuben Thomas <rrt@HIDDEN>
To: Juri Linkov <juri@HIDDEN>
Content-Type: multipart/alternative; boundary=001a11c35704e0bead04ff658ef6
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 18132
Cc: 18132 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <http://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: <http://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 (/)

--001a11c35704e0bead04ff658ef6
Content-Type: text/plain; charset=UTF-8

On 30 July 2014 00:49, Juri Linkov <juri@HIDDEN> wrote:

> > These days, there are mature programs for launching an arbitrary file
> with
> > an appropriate viewer: run-mailcap (which is mature to the point of
> > obsolescence) and
>
> run-mailcap is fully supported by shell-command and async-shell-command
> where
> the list of available commands can be accessed using M-n in its minibuffer.
>

I can't see any mention of run-mailcap in the Emacs source; do you mean
simply that it's possible to add it to the list of commands used?


> > xdg-open on GNU systems; open on Mac OS X; start on MS Windows).
>
> xdg-open is a single command that is too easy to add to the top of this
> list.
>

Did you mean "easy too"?

So, yes, both of these commands can be added.

My original point is that they're not currently used; instead there is a
custom list that has to be configured separately by the user from either of
these.

Hence, I suggest using these commands (and similarly "open" on Mac OS, and,
as per Eli's suggestion, w32-shell-execute on Windows) instead of the
current contents of dired-guess-shell-alist-default.

Since each of these commands tackles all file types, it would seem simplest
to add a new function shell-execute, modelled on w32-shell-execute, and
have dired-read-shell-command use that instead of
dired-guess-shell-command, which could then become an option that
shell-execute can be configured to use, for those who are used to it.

-- 
http://rrt.sc3d.org

--001a11c35704e0bead04ff658ef6
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div class=3D"gmail_extra"><div class=3D"gmail_quote">On 3=
0 July 2014 00:49, Juri Linkov <span dir=3D"ltr">&lt;<a href=3D"mailto:juri=
@jurta.org" target=3D"_blank">juri@HIDDEN</a>&gt;</span> wrote:<br><bloc=
kquote class=3D"gmail_quote" style=3D"margin:0 0 0 .8ex;border-left:1px #cc=
c solid;padding-left:1ex">
&gt; These days, there are mature programs for launching an arbitrary file =
with<br>
&gt; an appropriate viewer: run-mailcap (which is mature to the point of<br=
>
&gt; obsolescence) and<br>
<br>
run-mailcap is fully supported by shell-command and async-shell-command whe=
re<br>
the list of available commands can be accessed using M-n in its minibuffer.=
<br></blockquote><div><br></div><div>I can&#39;t see any mention of run-mai=
lcap in the Emacs source; do you mean simply that it&#39;s possible to add =
it to the list of commands used?<br>
</div><div>=C2=A0</div><blockquote class=3D"gmail_quote" style=3D"margin:0 =
0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

&gt; xdg-open on GNU systems; open on Mac OS X; start on MS Windows).<br>
<br>
xdg-open is a single command that is too easy to add to the top of this lis=
t.<br>
</blockquote></div><br></div><div class=3D"gmail_extra">Did you mean &quot;=
easy too&quot;?<br><br></div><div class=3D"gmail_extra">So, yes, both of th=
ese commands can be added.<br><br>My original point is that they&#39;re not=
 currently used; instead there is a custom list that has to be configured s=
eparately by the user from either of these.<br>
<br>Hence, I suggest using these commands (and similarly &quot;open&quot; o=
n Mac OS, and, as per Eli&#39;s suggestion, w32-shell-execute on Windows) i=
nstead of the current contents of dired-guess-shell-alist-default.<br><br>
</div><div class=3D"gmail_extra">Since each of these commands tackles all f=
ile types, it would seem simplest to add a new function shell-execute, mode=
lled on w32-shell-execute, and have dired-read-shell-command use that inste=
ad of dired-guess-shell-command, which could then become an option that she=
ll-execute can be configured to use, for those who are used to it.<br>
</div><div class=3D"gmail_extra"><br>-- <br><a href=3D"http://rrt.sc3d.org"=
>http://rrt.sc3d.org</a>
</div></div>

--001a11c35704e0bead04ff658ef6--




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

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


Received: (at 18132) by debbugs.gnu.org; 30 Jul 2014 03:56:04 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jul 29 23:56:04 2014
Received: from localhost ([127.0.0.1]:42456 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.80)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1XCKzk-0007Df-2k
	for submit <at> debbugs.gnu.org; Tue, 29 Jul 2014 23:56:04 -0400
Received: from mtaout21.012.net.il ([80.179.55.169]:37324)
 by debbugs.gnu.org with esmtp (Exim 4.80)
 (envelope-from <eliz@HIDDEN>) id 1XCKzg-0007D9-Pq
 for 18132 <at> debbugs.gnu.org; Tue, 29 Jul 2014 23:56:02 -0400
Received: from conversion-daemon.a-mtaout21.012.net.il by
 a-mtaout21.012.net.il (HyperSendmail v2007.08) id
 <0N9I00700A5CMZ00@HIDDEN> for 18132 <at> debbugs.gnu.org;
 Wed, 30 Jul 2014 06:55:53 +0300 (IDT)
Received: from HOME-C4E4A596F7 ([87.69.4.28]) by a-mtaout21.012.net.il
 (HyperSendmail v2007.08) with ESMTPA id
 <0N9I007WZAX5KJ70@HIDDEN>;
 Wed, 30 Jul 2014 06:55:53 +0300 (IDT)
Date: Wed, 30 Jul 2014 06:56:12 +0300
From: Eli Zaretskii <eliz@HIDDEN>
Subject: Re: bug#18132: Time for a smarter
 dired-guess-shell-alist-default?	(dired-x.el)
In-reply-to: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
X-012-Sender: halo1@HIDDEN
To: Reuben Thomas <rrt@HIDDEN>
Message-id: <83bns7ts83.fsf@HIDDEN>
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
X-Spam-Score: 1.0 (+)
X-Debbugs-Envelope-To: 18132
Cc: 18132 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.15
Precedence: list
Reply-To: Eli Zaretskii <eliz@HIDDEN>
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <http://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: <http://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 (+)

> Date: Mon, 28 Jul 2014 19:26:07 +0100
> From: Reuben Thomas <rrt@HIDDEN>
> 
> These days, there are mature programs for launching an arbitrary file with
> an appropriate viewer: run-mailcap (which is mature to the point of
> obsolescence) and xdg-open on GNU systems; open on Mac OS X; start on MS
> Windows).

It would be a bad idea to use 'start' on Windows: it has too many
quirks regarding quoting of its command line.  Instead, just invoke
the existing primitive w32-shell-execute with the 'open' verb.  As a
nice side effect, this will support Unicode file names, something that
is currently impossible when you invoke an external command.




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

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


Received: (at 18132) by debbugs.gnu.org; 29 Jul 2014 23:52:04 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Tue Jul 29 19:52:04 2014
Received: from localhost ([127.0.0.1]:42362 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.80)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1XCHBc-0007Sv-3A
	for submit <at> debbugs.gnu.org; Tue, 29 Jul 2014 19:52:04 -0400
Received: from alc-vshost7.dreamhost.com ([69.163.216.107]:34169
 helo=ps18281.dreamhostps.com)
 by debbugs.gnu.org with esmtp (Exim 4.80)
 (envelope-from <juri@HIDDEN>) id 1XCHBZ-0007SU-OX
 for 18132 <at> debbugs.gnu.org; Tue, 29 Jul 2014 19:52:02 -0400
Received: from localhost.jurta.org (ps18281.dreamhostps.com [69.163.222.226])
 by ps18281.dreamhostps.com (Postfix) with ESMTP id 5EE3D37E8E88E5;
 Tue, 29 Jul 2014 16:52:00 -0700 (PDT)
From: Juri Linkov <juri@HIDDEN>
To: Reuben Thomas <rrt@HIDDEN>
Subject: Re: bug#18132: Time for a smarter dired-guess-shell-alist-default?
 (dired-x.el)
Organization: JURTA
References: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
Date: Wed, 30 Jul 2014 02:49:31 +0300
In-Reply-To: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
 (Reuben Thomas's message of "Mon, 28 Jul 2014 19:26:07 +0100")
Message-ID: <87d2cn67zo.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (x86_64-pc-linux-gnu)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: 2.4 (++)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org",
 has
 identified this incoming email as possible spam.  The original message
 has been attached to this so you can view it (if it isn't spam) or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 Content preview:  > These days,
 there are mature programs for launching an arbitrary
 file with > an appropriate viewer: run-mailcap (which is mature to the point
 of > obsolescence) and run-mailcap is fully supported by shell-command and
 async-shell-command where the list of available commands can be accessed
 using M-n in its minibuffer. [...] 
 Content analysis details:   (2.4 points, 10.0 required)
 pts rule name              description
 ---- ---------------------- --------------------------------------------------
 0.7 RCVD_IN_XBL            RBL: Received via a relay in Spamhaus XBL
 [69.163.216.107 listed in zen.spamhaus.org]
 1.6 RCVD_IN_BRBL_LASTEXT   RBL: RCVD_IN_BRBL_LASTEXT
 [69.163.216.107 listed in bb.barracudacentral.org]
X-Debbugs-Envelope-To: 18132
Cc: 18132 <at> debbugs.gnu.org
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <http://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: <http://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: 2.4 (++)
X-Spam-Report: Spam detection software, running on the system "debbugs.gnu.org", has
 identified this incoming email as possible spam.  The original message
 has been attached to this so you can view it (if it isn't spam) or label
 similar future email.  If you have any questions, see
 the administrator of that system for details.
 
 Content preview:  > These days, there are mature programs for launching an arbitrary
    file with > an appropriate viewer: run-mailcap (which is mature to the point
    of > obsolescence) and run-mailcap is fully supported by shell-command and
    async-shell-command where the list of available commands can be accessed
   using M-n in its minibuffer. [...] 
 
 Content analysis details:   (2.4 points, 10.0 required)
 
  pts rule name              description
 ---- ---------------------- --------------------------------------------------
  0.7 RCVD_IN_XBL            RBL: Received via a relay in Spamhaus XBL
                             [69.163.216.107 listed in zen.spamhaus.org]
  1.6 RCVD_IN_BRBL_LASTEXT   RBL: RCVD_IN_BRBL_LASTEXT
                             [69.163.216.107 listed in bb.barracudacentral.org]

> These days, there are mature programs for launching an arbitrary file with
> an appropriate viewer: run-mailcap (which is mature to the point of
> obsolescence) and

run-mailcap is fully supported by shell-command and async-shell-command where
the list of available commands can be accessed using M-n in its minibuffer.

> xdg-open on GNU systems; open on Mac OS X; start on MS Windows).

xdg-open is a single command that is too easy to add to the top of this list.




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

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


Received: (at 18132) by debbugs.gnu.org; 28 Jul 2014 18:44:49 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Jul 28 14:44:49 2014
Received: from localhost ([127.0.0.1]:41248 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.80)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1XBpuf-0002ak-Fq
	for submit <at> debbugs.gnu.org; Mon, 28 Jul 2014 14:44:49 -0400
Received: from mail-la0-f53.google.com ([209.85.215.53]:55048)
 by debbugs.gnu.org with esmtp (Exim 4.80)
 (envelope-from <rrt@HIDDEN>) id 1XBpua-0002aR-Fz
 for 18132 <at> debbugs.gnu.org; Mon, 28 Jul 2014 14:44:44 -0400
Received: by mail-la0-f53.google.com with SMTP id gl10so5858837lab.12
 for <18132 <at> debbugs.gnu.org>; Mon, 28 Jul 2014 11:44:34 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sc3d.org; s=google;
 h=mime-version:date:message-id:subject:from:to:content-type;
 bh=cIE3GgVKRT97YQrdOkMa5QlqF6OuqVLWEzXEiYzf1k4=;
 b=pgIG0JsNgwbhmBFvFYryGefN0EdadhkSL0Wcw7ub6YCbwW6two3fkZMRtjilnyC7zx
 W8H8Pn71FKIf9oPEajjxw3bNNcgbSDTwgi7ZuVTfby3uheKY6lWtPmG2MREjbuo8ivCk
 aeDwA6/0Xj5oDynGa96kvF9EoA7LPgLkWjWfQ=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:mime-version:date:message-id:subject:from:to
 :content-type;
 bh=cIE3GgVKRT97YQrdOkMa5QlqF6OuqVLWEzXEiYzf1k4=;
 b=TcACwngUNEBmLfA1f8+YHK+dZhFR/0/Yd80E8gMwWZG9OBUqElNT7A6KoAO5Ic8cZy
 KFShO9KoWQgLJHK9TP0nmTPCXoBrFBTVapZ6OM4CQuYptf+SVMvaWOlGKvAT1TewEcsq
 q6vjNWn6b4zx80ik81J9JprM3ZKe7sLrNJmCIIugc9zZhNR1jJ2WEOuMlnIVwlzJbzH2
 E3KsMkJYsm8aiRUBmkayGnEsAoTM4uhFLZ36EYuAFmGrIzoKsnrEuQpV/9JHvMooLFga
 x1qzq5mQbu9ldmbHaRMR2ThuJ8xAZqjAQNkiRgoOxe0ZjL+pIiIKI69UW0nAWIeIC9mt
 Eizw==
X-Gm-Message-State: ALoCoQkSyeqMc19IayU+03sttQIfS0BpGhPqOmXiQY9RnI6eoswW4kj8UJ0a5lwzmn5KZGNdG5eJ
MIME-Version: 1.0
X-Received: by 10.152.87.229 with SMTP id bb5mr11663848lab.75.1406573074092;
 Mon, 28 Jul 2014 11:44:34 -0700 (PDT)
Received: by 10.152.163.4 with HTTP; Mon, 28 Jul 2014 11:44:34 -0700 (PDT)
Date: Mon, 28 Jul 2014 19:44:34 +0100
Message-ID: <CAOnWdoiVB8YqOX_X=XNgKfbeP86X_VGZPA+Hkp=ehMYbizmmAQ@HIDDEN>
Subject: Sample code
From: Reuben Thomas <rrt@HIDDEN>
To: 18132 <at> debbugs.gnu.org
Content-Type: multipart/alternative; boundary=001a11c34e066eaf8804ff45504c
X-Spam-Score: -0.7 (/)
X-Debbugs-Envelope-To: 18132
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <http://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: <http://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 (/)

--001a11c34e066eaf8804ff45504c
Content-Type: text/plain; charset=UTF-8

Xah Lee has already written some code to do this:

http://ergoemacs.org/emacs/emacs_dired_open_file_in_ext_apps.html

-- 
http://rrt.sc3d.org

--001a11c34e066eaf8804ff45504c
Content-Type: text/html; charset=UTF-8

<div dir="ltr">Xah Lee has already written some code to do this:<br><br><a href="http://ergoemacs.org/emacs/emacs_dired_open_file_in_ext_apps.html">http://ergoemacs.org/emacs/emacs_dired_open_file_in_ext_apps.html</a><br clear="all">
<br>-- <br><a href="http://rrt.sc3d.org">http://rrt.sc3d.org</a>
</div>

--001a11c34e066eaf8804ff45504c--




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

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


Received: (at submit) by debbugs.gnu.org; 28 Jul 2014 18:26:36 +0000
From debbugs-submit-bounces <at> debbugs.gnu.org Mon Jul 28 14:26:36 2014
Received: from localhost ([127.0.0.1]:41229 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.80)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1XBpd2-000272-9l
	for submit <at> debbugs.gnu.org; Mon, 28 Jul 2014 14:26:36 -0400
Received: from eggs.gnu.org ([208.118.235.92]:44233)
 by debbugs.gnu.org with esmtp (Exim 4.80)
 (envelope-from <rrt@HIDDEN>) id 1XBpcv-00026Z-9P
 for submit <at> debbugs.gnu.org; Mon, 28 Jul 2014 14:26:29 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <rrt@HIDDEN>) id 1XBpcp-0004JA-1E
 for submit <at> debbugs.gnu.org; Mon, 28 Jul 2014 14:26:19 -0400
X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on eggs.gnu.org
X-Spam-Level: 
X-Spam-Status: No, score=0.0 required=5.0 tests=BAYES_20,HTML_MESSAGE,
 T_DKIM_INVALID autolearn=disabled version=3.3.2
Received: from lists.gnu.org ([2001:4830:134:3::11]:38155)
 by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <rrt@HIDDEN>)
 id 1XBpco-0004J6-Ue
 for submit <at> debbugs.gnu.org; Mon, 28 Jul 2014 14:26:18 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:45948)
 by lists.gnu.org with esmtp (Exim 4.71)
 (envelope-from <rrt@HIDDEN>) id 1XBpcn-0000kU-Ph
 for bug-gnu-emacs@HIDDEN; Mon, 28 Jul 2014 14:26:18 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <rrt@HIDDEN>) id 1XBpcm-0004Ie-N8
 for bug-gnu-emacs@HIDDEN; Mon, 28 Jul 2014 14:26:17 -0400
Received: from fencepost.gnu.org ([2001:4830:134:3::e]:51028)
 by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <rrt@HIDDEN>)
 id 1XBpcm-0004IZ-KX
 for bug-gnu-emacs@HIDDEN; Mon, 28 Jul 2014 14:26:16 -0400
Received: from eggs.gnu.org ([2001:4830:134:3::10]:41869)
 by fencepost.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
 (Exim 4.71) (envelope-from <rrt@HIDDEN>) id 1XBpcm-0005eE-9F
 for bug-emacs@HIDDEN; Mon, 28 Jul 2014 14:26:16 -0400
Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71)
 (envelope-from <rrt@HIDDEN>) id 1XBpcj-0004I4-AJ
 for bug-emacs@HIDDEN; Mon, 28 Jul 2014 14:26:16 -0400
Received: from mail-lb0-x229.google.com ([2a00:1450:4010:c04::229]:53156)
 by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from <rrt@HIDDEN>)
 id 1XBpcj-0004Hd-0B
 for bug-emacs@HIDDEN; Mon, 28 Jul 2014 14:26:13 -0400
Received: by mail-lb0-f169.google.com with SMTP id s7so6201007lbd.28
 for <bug-emacs@HIDDEN>; Mon, 28 Jul 2014 11:26:07 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sc3d.org; s=google;
 h=mime-version:date:message-id:subject:from:to:content-type;
 bh=pFlc8bUlVfys9JrsbsW+wqKOHSqyHagMu83xxwDJ72k=;
 b=QpG0CVOK9ZUYY/yiMcD4mYmtfaBbSo/LazT0z5GGj0aK4809NHRtcGW+L08QS/f6Bi
 3TuYGVUJ9hVS6p6yrB1tBpyb2Svi2eCTHoWSQd2nISc5esUv2CWp1vbVQdQ8mujL8rp4
 NPQO7gYWWBEtPnUk+hF/PUm+wbkFFtc4twxhA=
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20130820;
 h=x-gm-message-state:mime-version:date:message-id:subject:from:to
 :content-type;
 bh=pFlc8bUlVfys9JrsbsW+wqKOHSqyHagMu83xxwDJ72k=;
 b=OfjoOtkSN3QFLZAXMYk0hYaC2Cj1i6jt6ijQMMvF+H/Sq4WjQEMiJYDGgm61rhKthP
 NnAf3HdxEFcXW7Q9GjBdv+xU8voG7yVGA62wTA18kwkUBL6VbhxrZO9EbkknV866TDGO
 p/UjyGAavDAHnrwq8FxLhuuhYfDaAa3iWtI8a1ctmHLDvVUigYajxMtK3tD8mW01GhpM
 cFepkdivGpHgUeqOn8FZXmbxqrqTqT5CIFIcY55OIee6pR8RRukWkLtfSrGK3KMqyYaN
 +eLz7zRkY2mn9mS5ZgUAd7CDCHEo19WBkXDRaB4iaynXWhfwFqUUE+6NaPB9HCidlpUk
 ogjQ==
X-Gm-Message-State: ALoCoQlsMtng9Y6+T/FIdkAwjVy8x5qnFhtrLk/HpbjcFj/VTd2/MBM758QZg7xRT4GU1SdSVeLe
MIME-Version: 1.0
X-Received: by 10.112.2.167 with SMTP id 7mr4778614lbv.103.1406571967777; Mon,
 28 Jul 2014 11:26:07 -0700 (PDT)
Received: by 10.152.163.4 with HTTP; Mon, 28 Jul 2014 11:26:07 -0700 (PDT)
Date: Mon, 28 Jul 2014 19:26:07 +0100
Message-ID: <CAOnWdohO7eOa9Pj5mAPv9f2+699F1XSYFhT_E_u3iMzuuujDew@HIDDEN>
Subject: Time for a smarter dired-guess-shell-alist-default? (dired-x.el)
From: Reuben Thomas <rrt@HIDDEN>
To: bug-emacs <bug-emacs@HIDDEN>
Content-Type: multipart/alternative; boundary=14dae94ee0197dab3e04ff450e14
X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address
 (bad octet value).
X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address
 (bad octet value).
X-detected-operating-system: by eggs.gnu.org: Error: Malformed IPv6 address
 (bad octet value).
X-Received-From: 2001:4830:134:3::11
X-Spam-Score: -4.1 (----)
X-Debbugs-Envelope-To: submit
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.15
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <http://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <http://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: <http://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: -4.1 (----)

--14dae94ee0197dab3e04ff450e14
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

These days, there are mature programs for launching an arbitrary file with
an appropriate viewer: run-mailcap (which is mature to the point of
obsolescence) and xdg-open on GNU systems; open on Mac OS X; start on MS
Windows).

xdg-open already works reasonably well:
http://lists.gnu.org/archive/html/help-gnu-emacs/2012-01/msg00143.html

(I have a fix for the "multiple files" problem, which I'll be sending to
xdg-utils upstream when I can.)

Hence it would seem sensible to have a new default for
dired-guess-shell-alist-default, which matches any file and returns the
appropriate command for the OS, probably doing some testing to see which
commands are available on a GNU system ("xdg-open", "gvfs-open", "see"=E2=
=80=A6).

The user then only needs to understand and configure one command-launching
system, and the coverage of different filetypes is much more comprehensive
in most such systems than in dired-x.el.

An advantage to Emacs is that this system could then be used elsewhere. For
example, org-mode already has a similar, separate system, org-file-apps,
which might benefit from building on dired-x, and only retaining its own
configuration where it's desirable to open a file "internally" to org-mode.

--=20
http://rrt.sc3d.org

--14dae94ee0197dab3e04ff450e14
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>These days, there are mature programs for launching a=
n arbitrary file with an appropriate viewer: run-mailcap (which is mature t=
o the point of obsolescence) and xdg-open on GNU systems; open on Mac OS X;=
 start on MS Windows).<br>
<br></div>xdg-open already works reasonably well: <a href=3D"http://lists.g=
nu.org/archive/html/help-gnu-emacs/2012-01/msg00143.html">http://lists.gnu.=
org/archive/html/help-gnu-emacs/2012-01/msg00143.html</a><br clear=3D"all">
<div><div><div><div><div><br></div><div>(I have a fix for the &quot;multipl=
e files&quot; problem, which I&#39;ll be sending to xdg-utils upstream when=
 I can.)<br><br></div><div>Hence it would seem sensible to have a new defau=
lt for dired-guess-shell-alist-default, which matches any file and returns =
the appropriate command for the OS, probably doing some testing to see whic=
h commands are available on a GNU system (&quot;xdg-open&quot;, &quot;gvfs-=
open&quot;, &quot;see&quot;=E2=80=A6).<br>
<br></div><div>The user then only needs to understand and configure one com=
mand-launching system, and the coverage of different filetypes is much more=
 comprehensive in most such systems than in dired-x.el.<br><br></div><div>
An advantage to Emacs is that this system could then be used elsewhere. For=
 example, org-mode already has a similar, separate system, org-file-apps, w=
hich might benefit from building on dired-x, and only retaining its own con=
figuration where it&#39;s desirable to open a file &quot;internally&quot; t=
o org-mode.<br>
</div><div><br>-- <br><a href=3D"http://rrt.sc3d.org">http://rrt.sc3d.org</=
a>
</div></div></div></div></div></div>

--14dae94ee0197dab3e04ff450e14--




Acknowledgement sent to Reuben Thomas <rrt@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#18132; 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: Fri, 24 May 2024 18:15:01 UTC

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