X-Loop: help-debbugs@HIDDEN Subject: bug#70198: M-x shell: deal with environment variables present when tab expanding Resent-From: Dan Jacobson <jidanni@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Thu, 04 Apr 2024 13:52:02 +0000 Resent-Message-ID: <handler.70198.B.171223869331397 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: report 70198 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 70198 <at> debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@HIDDEN Received: via spool by submit <at> debbugs.gnu.org id=B.171223869331397 (code B ref -1); Thu, 04 Apr 2024 13:52:02 +0000 Received: (at submit) by debbugs.gnu.org; 4 Apr 2024 13:51:33 +0000 Received: from localhost ([127.0.0.1]:60910 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1rsNV5-0008A6-Gl for submit <at> debbugs.gnu.org; Thu, 04 Apr 2024 09:51:32 -0400 Received: from lists.gnu.org ([2001:470:142::17]:51850) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <jidanni@HIDDEN>) id 1rsNUz-00089W-UO for submit <at> debbugs.gnu.org; Thu, 04 Apr 2024 09:51:30 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <jidanni@HIDDEN>) id 1rsNUn-0008Jm-Cg for bug-gnu-emacs@HIDDEN; Thu, 04 Apr 2024 09:51:14 -0400 Received: from cyan.elm.relay.mailchannels.net ([23.83.212.47]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from <jidanni@HIDDEN>) id 1rsNUk-0002QT-Eg for bug-gnu-emacs@HIDDEN; Thu, 04 Apr 2024 09:51:13 -0400 X-Sender-Id: dreamhost|x-authsender|jidanni@HIDDEN Received: from relay.mailchannels.net (localhost [127.0.0.1]) by relay.mailchannels.net (Postfix) with ESMTP id 1F276901A8E for <bug-gnu-emacs@HIDDEN>; Thu, 4 Apr 2024 13:51:05 +0000 (UTC) Received: from pdx1-sub0-mail-a316.dreamhost.com (unknown [127.0.0.6]) (Authenticated sender: dreamhost) by relay.mailchannels.net (Postfix) with ESMTPA id E68F3902609 for <bug-gnu-emacs@HIDDEN>; Thu, 4 Apr 2024 13:51:04 +0000 (UTC) ARC-Seal: i=1; s=arc-2022; d=mailchannels.net; t=1712238664; a=rsa-sha256; cv=none; b=yPsospQX3x5bW15vsshAtHbjoo0e3FMor473JompG44AlUI0ZXGS7b8kV70uRu8LfJNXsO LilE0Kn9T+aVSO1XLInbauQU06srVbEi3wsc4QSmHYpP3ZYv+94SB8jRos296OoN9cU2FB 4K4wnTFCKvtZWVVydHvdacLGbx2yTNpeZF6k2tEYgOhS4WP8Ej1ILlbhyNVZ1AFbQ5NFs3 Dz6lZiS5J1h8fMCIoftbfGh3QHblBBaRD246X1mnevZoZuROJDmVB2K7RZGK4AEpsdUMOK 1XOQK/ebaWHL+Byw5MeT/cMmlcEUoziT9dmAFtz4mAzSQ0q7TB27nBYKJr/KBQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=mailchannels.net; s=arc-2022; t=1712238664; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: dkim-signature; bh=om54/l9cDLQesgMKDnB2SFtClcaozQm4M7t8MCZh/yc=; b=R5dqS+mCLqO2scc11DjFwZbVr4q9LK39DNGI8mfnqa6SUaFtQGdSiMP4JSVsOJ4BgYLs4l LSvDCo7GYf/qVHMCB06YVbv/RcG22SwEtY+cSFgOP4r3DeG5g3YuZ0nTr+2bDB4oVovm/d qJXhjYyZEzRXBgLv9KWXvaJp5sPEZcVEGYBqkB/aIX9S7XxYEd3pf1syd6O9Tosuov8+xC /MiRC9l4kGUR3SPk2jDC7Q/JADMSZ2O2gQ8jG6wI+LCaED45J3FAQEYTGgZTtEW+6G+GrW 5WIISkQL1wxWyTiMSj9FDY0yNccwskUnouti9FwxaNnyo39FRkzDOSzAZyh2nw== ARC-Authentication-Results: i=1; rspamd-86f86f958-whfbb; auth=pass smtp.auth=dreamhost smtp.mailfrom=jidanni@HIDDEN X-Sender-Id: dreamhost|x-authsender|jidanni@HIDDEN X-MC-Relay: Neutral X-MailChannels-SenderId: dreamhost|x-authsender|jidanni@HIDDEN X-MailChannels-Auth-Id: dreamhost X-Tank-Well-Made: 4c440a6f53a5f5e6_1712238664984_1783576204 X-MC-Loop-Signature: 1712238664984:1363627617 X-MC-Ingress-Time: 1712238664984 Received: from pdx1-sub0-mail-a316.dreamhost.com (pop.dreamhost.com [64.90.62.162]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384) by 100.102.225.137 (trex/6.9.2); Thu, 04 Apr 2024 13:51:04 +0000 Received: from jidanni.org (1-165-201-185.dynamic-ip.hinet.net [1.165.201.185]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) (Authenticated sender: jidanni@HIDDEN) by pdx1-sub0-mail-a316.dreamhost.com (Postfix) with ESMTPSA id 4V9NLc5ZjKz9w for <bug-gnu-emacs@HIDDEN>; Thu, 4 Apr 2024 06:51:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jidanni.org; s=dreamhost; t=1712238664; bh=om54/l9cDLQesgMKDnB2SFtClcaozQm4M7t8MCZh/yc=; h=Date:From:To:Subject:Content-Type; b=rmwn25JLaG4swSujLa4qxnOe7qJ1qmvXfpcoZgREpC1rqjXV2tfcWLCsDPCA+3fui aGSkeM2SpmJiaQgon0cllmyggz+6kogUsaUuZkdAQey1aQmBysUrfznWR1bHn0nrY3 ryUUocU00IO4Bc2pmjumA5py/SL0Q6jWoO6eMXvKYK5iQRISYdBLKEo6I1Qbhu39lE wKMIB/G1PbI2EyBTh9M5meC5H1ovjWXtmeYN2ztFqz6EW8jk6u16d3d9bmyLxlifG0 FWjdB+wj3ZjO4fFo19ceus80KTxn0BaitaytkEmymx48fqLxvHKw1z2SzWtgAOEIvC E4Im7Y5/I9Dwg== Date: Thu, 4 Apr 2024 21:51:01 +0800 From: Dan Jacobson <jidanni@HIDDEN> Message-ID: <Zg6wRQ1kVfgwALNU@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Received-SPF: pass client-ip=23.83.212.47; envelope-from=jidanni@HIDDEN; helo=cyan.elm.relay.mailchannels.net 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, RCVD_IN_DNSWL_NONE=-0.0001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: 0.9 (/) 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.1 (/) In M-x shell $ dat<TAB> expands to date. Alas, unlike bash readline, $ LC_ALL=C dat<TAB> doesn't yet. emacs-version "29.3"
Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) Content-Type: text/plain; charset=utf-8 X-Loop: help-debbugs@HIDDEN From: help-debbugs@HIDDEN (GNU bug Tracking System) To: Dan Jacobson <jidanni@HIDDEN> Subject: bug#70198: Acknowledgement (M-x shell: deal with environment variables present when tab expanding) Message-ID: <handler.70198.B.171223869331397.ack <at> debbugs.gnu.org> References: <Zg6wRQ1kVfgwALNU@HIDDEN> X-Gnu-PR-Message: ack 70198 X-Gnu-PR-Package: emacs Reply-To: 70198 <at> debbugs.gnu.org Date: Thu, 04 Apr 2024 13:52:03 +0000 Thank you for filing a new bug report with debbugs.gnu.org. This is an automatically generated reply to let you know your message has been received. Your message is being forwarded to the package maintainers and other interested parties for their attention; they will reply in due course. Your message has been sent to the package maintainer(s): bug-gnu-emacs@HIDDEN If you wish to submit further information on this problem, please send it to 70198 <at> debbugs.gnu.org. Please do not send mail to help-debbugs@HIDDEN unless you wish to report a problem with the Bug-tracking system. --=20 70198: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D70198 GNU Bug Tracking System Contact help-debbugs@HIDDEN with problems
X-Loop: help-debbugs@HIDDEN Subject: bug#70198: M-x shell: deal with environment variables present when tab expanding Resent-From: Federico Tedin <federicotedin@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Wed, 10 Jul 2024 16:51:02 +0000 Resent-Message-ID: <handler.70198.B70198.17206302199963 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 70198 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Dan Jacobson <jidanni@HIDDEN> Cc: 70198 <at> debbugs.gnu.org Received: via spool by 70198-submit <at> debbugs.gnu.org id=B70198.17206302199963 (code B ref 70198); Wed, 10 Jul 2024 16:51:02 +0000 Received: (at 70198) by debbugs.gnu.org; 10 Jul 2024 16:50:19 +0000 Received: from localhost ([127.0.0.1]:57024 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1sRaWH-0002ab-5r for submit <at> debbugs.gnu.org; Wed, 10 Jul 2024 12:50:19 -0400 Received: from mout.gmx.net ([212.227.17.21]:59111) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <federicotedin@HIDDEN>) id 1sRa5l-0007Up-GA for 70198 <at> debbugs.gnu.org; Wed, 10 Jul 2024 12:22:57 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.de; s=s31663417; t=1720628557; x=1721233357; i=federicotedin@HIDDEN; bh=lLWDZpeg8ypaxrRiFdb35Y/TfHzFOYmFUj6pvsuiGPk=; h=X-UI-Sender-Class:From:To:Cc:Subject:In-Reply-To:References:Date: Message-ID:MIME-Version:Content-Type:cc:content-transfer-encoding: content-type:date:from:message-id:mime-version:reply-to:subject: to; b=bWishouhf+kBahB67OlorGkj0z2IIuZEd1hAah6Ubg7RWqPXIxtBhXn9WIPj7V71 IpTLPnayq6x3k4Tm6WryI/+IyZqnsc26TPYEiOqn5+mSDu7Y/bjBFjdqMYO4KRXI1 /Q3RrTW4WrN2LV+wMkAnnrA5YHBJ94C+JNSvn9xvkuPbSpH9O0cuuYIuzcXQH2crs CDe6vEkOe+ZJlb/YmC+tCAwDmGgAwpB9eLEgrWYkg6vcf09e6A8olkCferr1fU7Gi urlFO4QvMqwN8+KIsu0ccl2c+KI1fF3bjkLLvbKRF++R/JEUNHnzvy6Q9ZcMqI3kI N2Wtj6igq4JPICesVQ== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from seele ([62.214.67.158]) by mail.gmx.net (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1MCbIx-1sa4Y21chf-001So5; Wed, 10 Jul 2024 18:22:37 +0200 From: Federico Tedin <federicotedin@HIDDEN> In-Reply-To: <Zg6wRQ1kVfgwALNU@HIDDEN> (Dan Jacobson's message of "Thu, 4 Apr 2024 21:51:01 +0800") References: <Zg6wRQ1kVfgwALNU@HIDDEN> Date: Wed, 10 Jul 2024 18:22:35 +0200 Message-ID: <87plrlz06s.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-Provags-ID: V03:K1:k7kEHa//Rh1bDiqMc3YS1/2xYpdn1fl6bLp1+MgUJaQzTrCET/i LvEZ8Mhxk6MPNpC/uCu7uSfmg4fDWVaDr6UWFSar2gfrbXX8iOzpnOcFKxeZBthvaZGjVUf WZySkNZ2h29RQzqIoIuec+IwJ/zxGbrRpRNPik+1KiIvn7qh0tuX4sZo8F0Qf4oAl48umw8 n6E9al7bqPIYO0J0KZBtQ== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:r9oIaRksZW0=;nSdfjgYRlmjJdK2sJYkW4fXjx0v Bk/VHnos6sD+lOhEo8R9utw3xj3P9hHVBpuD3pnKD65RQpQvNIi3LBtGd5yfCz76U2VK7TLD3 X1aWeRT2l0neKmhDRL9LYmOtIf+6u99DNrDEgQljLJU0xOucWQRThlgdoTyg9HZkDO/LlAh3W XoxrVdFI/XEyWZMj6K9XuEYSbfsCYx+7C/d6X5t/NRb6IyFC/EFqdgECqubV2yrGP3FqSgk2u jpGWkUGMc/Q6r9TqGGjuNB4hmw/HIYYWF1w3a6t9ECbwR6Z3EvbRZKsLSCVqLzEQCkyU16FQ+ Lxtgr+Q/OdBTFjnHDl2l67wx3OFpabFvIPNOKLPJ/yqb69/Nphu45HdP8m55/Rrw6JKQPvNwa MC/B8qfnfWt292TjgefRW3I0Mt+JQI8L5N3gJ9gT2OBOKpW8VgtEB0PD74cfWLs7LSTTLOy96 IkW4S1SVxUWI2Iykm++Rg/0LS3AFTaeeDTec1fZKYgWMUqw1z53ya5OHhGfQLFD+MRof3dCNV 0LrIDXznKb0m34TqXu9YzEAvD0Y6zh20a72Kr33onX03ggOAcehIh6e/EC4JJEm1MgPbdUhjH eD8gxZSojsLq3CkBct/F6WhMGoYQP5f5bY62KKIQi95CIy7LQyM70O4w1iiYeiaGsjYX5jXHn lTnxJSQK9yUc3m6x7jFNOGlkMyVa4bsj+xX59nekTV+BRUEovZ5qQnO3rGSLoIMFtT0wy8Ig/ XJ7EiWtMh9fF5shfs67U5SGfd1R53El9hlYvPMAoUGHYJgAjUo+ed+OPsZmdbXxt9gdi5mS9y 9a5Sg2FHiiT9H5y2R5w6AQZw== X-Spam-Score: 0.3 (/) X-Mailman-Approved-At: Wed, 10 Jul 2024 12:50:15 -0400 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 Dan Jacobson <jidanni@HIDDEN> writes: > In M-x shell > $ dat<TAB> > expands to date. > Alas, unlike bash readline, > $ LC_ALL=C dat<TAB> > doesn't yet. > > emacs-version "29.3" I took a crack at fixing this, I'm attaching a patch. It's been some time since my last contribution, but I've kept the copyright assignment updated (should be under federicotedin@HIDDEN). There's a chance the formatting for the patch may be a bit off too but I tried to re-read the guide at CONTRIBUTE. I've also found something interesting with the `shell-dynamic-complete-command' function. I do not see it being called, referred to, or assigned to a key anywhere in the Emacs code, but the manual mentions it as if it being were actively used: > Some implementation details of the shell command completion may also be found > in the lisp documentation of the @code{shell-dynamic-complete-command} > function. Maybe the manual is outdated? - Fede --=-=-= Content-Type: text/x-diff Content-Disposition: attachment; filename=0001-Fix-tab-expanding-not-working-in-shell-mode-bug-7019.patch Content-Description: patch Content-Transfer-Encoding: quoted-printable =46rom 9250d0c78fbc1c23469c125279604bbb8c965626 Mon Sep 17 00:00:00 2001 From: Federico Tedin <federicotedin@HIDDEN> Date: Mon, 8 Jul 2024 14:47:33 +0200 Subject: [PATCH] Fix tab expanding not working in shell-mode (bug#70198) In shell-mode, fix tab expanding when environment variables are present before the command. * lisp/shell.el (shell-command-completion): Fix indentation and call use `shell--skip-environment-variables'. (shell--skip-environment-variables): New function. * test/lisp/shell-tests.el (shell-skip-environment-variables): Test new function. =2D-- lisp/shell.el | 22 +++++++++++++++++----- test/lisp/shell-tests.el | 17 +++++++++++++++++ 2 files changed, 34 insertions(+), 5 deletions(-) diff --git a/lisp/shell.el b/lisp/shell.el index e1936ff1119..fff7bdd4d71 100644 =2D-- a/lisp/shell.el +++ b/lisp/shell.el @@ -1385,12 +1385,24 @@ shell-dynamic-complete-command (defun shell-command-completion () "Return the completion data for the command at point, if any." - (let ((filename (comint-match-partial-filename))) + (let ((filename (comint-match-partial-filename)) + (pt (point))) (if (and filename - (save-match-data (not (string-match "[~/]" filename))) - (eq (match-beginning 0) - (save-excursion (shell-backward-command 1) (point)))) - (shell--command-completion-data)))) + (save-match-data (not (string-match "[~/]" filename))) + (eq (match-beginning 0) + (save-excursion + ;; Go back to beginning of command + (shell-backward-command 1) + ;; Skip any potential environment variables + (shell--skip-environment-variables pt) + (point)))) + (shell--command-completion-data)))) + +(defun shell--skip-environment-variables (pt) + "Move forward up to PT through any present environment variables." + (while (re-search-forward "=3D" pt t) + (skip-syntax-forward "^ " pt) + (skip-syntax-forward " " pt))) (defun shell--command-completion-data () "Return the completion data for the command at point." diff --git a/test/lisp/shell-tests.el b/test/lisp/shell-tests.el index 9bdf6b1c0eb..f07166d5995 100644 =2D-- a/test/lisp/shell-tests.el +++ b/test/lisp/shell-tests.el @@ -95,4 +95,21 @@ shell-directory-tracker-cd (should (not (equal start-dir list-buffers-directory))) (should (string-prefix-p list-buffers-directory start-dir))))) +(ert-deftest shell-skip-environment-variables () + (with-temp-buffer + (shell-mode) + (insert "FOO=3DBAR BAZ=3D QUUX=3Dabc=3Ddef whoami") + (let ((pt (point))) + (shell-backward-command 1) + (shell--skip-environment-variables pt)) + (should (looking-at-p "whoami")) + + (shell-backward-command 1) + (delete-line) + (insert "echo") + (let ((pt (point))) + (shell-backward-command 1) + (shell--skip-environment-variables pt)) + (should (looking-at-p "echo")))) + ;;; shell-tests.el ends here =2D- 2.43.0 --=-=-=--
X-Loop: help-debbugs@HIDDEN Subject: bug#70198: M-x shell: deal with environment variables present when tab expanding Resent-From: Eli Zaretskii <eliz@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Wed, 10 Jul 2024 17:46:01 +0000 Resent-Message-ID: <handler.70198.B70198.172063353215949 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 70198 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Federico Tedin <federicotedin@HIDDEN> Cc: 70198 <at> debbugs.gnu.org, jidanni@HIDDEN Received: via spool by 70198-submit <at> debbugs.gnu.org id=B70198.172063353215949 (code B ref 70198); Wed, 10 Jul 2024 17:46:01 +0000 Received: (at 70198) by debbugs.gnu.org; 10 Jul 2024 17:45:32 +0000 Received: from localhost ([127.0.0.1]:57103 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1sRbNj-00049A-W4 for submit <at> debbugs.gnu.org; Wed, 10 Jul 2024 13:45:32 -0400 Received: from eggs.gnu.org ([209.51.188.92]:52906) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1sRbNi-00048v-AG for 70198 <at> debbugs.gnu.org; Wed, 10 Jul 2024 13:45:30 -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 1sRbNU-0000OW-Ij; Wed, 10 Jul 2024 13:45:16 -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=kf6n919g6zMksOZdUofD35yceDxF4d3T2STn+gdgG8o=; b=U+ExlYwyDkUy 9jmi32+6c3KBglxyHZA/W0/o2OvIfwqBS9Kj8sra7gEEEFyBKDRKho9U9RNujukz4MySppvDo6mkP yKCY5j+6V30rvZ/K4tYzHgRxRSAIV4q1VI0IyCnid65QF7Snh0JdDe59wOKEHRXAEYbnLsMo7pu7M FA6V+D0cU+LK5XaKdJyoeE0MIs+n9QqB+arsLpcquPNEwQHDkse2jqRVFEgZCAq1EdbUEQ9UdaJ6z AQ3cS4oCuRfy2JQ6xGDK2/P23NhbqMjE2hESBJC18pV3N6wxOgLfk3JMef33tnaqTaY22+pihBAkz 8LN0K8eFbQcwlf+tc+6VCQ==; Date: Wed, 10 Jul 2024 20:45:11 +0300 Message-Id: <86wmltm994.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> In-Reply-To: <87plrlz06s.fsf@HIDDEN> (bug-gnu-emacs@HIDDEN) References: <Zg6wRQ1kVfgwALNU@HIDDEN> <87plrlz06s.fsf@HIDDEN> X-Spam-Score: -2.3 (--) 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 (---) > Cc: 70198 <at> debbugs.gnu.org > Date: Wed, 10 Jul 2024 18:22:35 +0200 > From: Federico Tedin via "Bug reports for GNU Emacs, > the Swiss army knife of text editors" <bug-gnu-emacs@HIDDEN> > > + (save-match-data (not (string-match "[~/]" filename))) > + (eq (match-beginning 0) > + (save-excursion > + ;; Go back to beginning of command > + (shell-backward-command 1) > + ;; Skip any potential environment variables > + (shell--skip-environment-variables pt) > + (point)))) > + (shell--command-completion-data)))) > + > +(defun shell--skip-environment-variables (pt) > + "Move forward up to PT through any present environment variables." > + (while (re-search-forward "=" pt t) > + (skip-syntax-forward "^ " pt) > + (skip-syntax-forward " " pt))) What happens if the command itself has embedded '='? What happens if the '=' character is quoted? I think a better idea might be first to try to find what is "the word at point", and then complete only that word. WDYT?
X-Loop: help-debbugs@HIDDEN Subject: bug#70198: M-x shell: deal with environment variables present when tab expanding Resent-From: Federico Tedin <federicotedin@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Wed, 10 Jul 2024 18:23:01 +0000 Resent-Message-ID: <handler.70198.B70198.172063574619714 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 70198 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Eli Zaretskii <eliz@HIDDEN> Cc: 70198 <at> debbugs.gnu.org, jidanni@HIDDEN Received: via spool by 70198-submit <at> debbugs.gnu.org id=B70198.172063574619714 (code B ref 70198); Wed, 10 Jul 2024 18:23:01 +0000 Received: (at 70198) by debbugs.gnu.org; 10 Jul 2024 18:22:26 +0000 Received: from localhost ([127.0.0.1]:57134 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1sRbxR-00057q-Bw for submit <at> debbugs.gnu.org; Wed, 10 Jul 2024 14:22:26 -0400 Received: from mout.gmx.net ([212.227.15.19]:43347) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <federicotedin@HIDDEN>) id 1sRbmt-0004px-P6 for 70198 <at> debbugs.gnu.org; Wed, 10 Jul 2024 14:11:32 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.de; s=s31663417; t=1720635069; x=1721239869; i=federicotedin@HIDDEN; bh=g2/62kiOWgWJASzlESLZDsj72S7/EFpLd0toWXLFDOk=; h=X-UI-Sender-Class:From:To:Cc:Subject:In-Reply-To:References:Date: Message-ID:MIME-Version:Content-Type:cc:content-transfer-encoding: content-type:date:from:message-id:mime-version:reply-to:subject: to; b=RlY/MSOeU98xVG5F2wjtsOEw+AV/FbUeju4hWHfj4tkN9a58LjGQVlmVcwjoTfSp QSyWzRN8cDF6SrbFK2BcfH2bhB3t0z3eWXQpZuSe86I40OGo3lqsPvlHeOAF+3A1H Nl3Lh6S0/JSMHmeyQ7Q5FDvLlFEz++TphXZLEgOEf+BkW9W1/Q4J5+RTBb3c0++WU YYfxEQE+rclQvJhrH1cU9Y1/UYUUi/GBWTfvysGGTgDCP5Ljtw1/UUQjIcOTdUMXM n6Ix1/iY9Bs6I+YZ0mcG/wddEOhoxgUYLz9PXQOmNdS9pY5YiWuhWLgzRHx8YBhZT 1FvoM2vt5CK/c6F9kg== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from seele ([91.66.5.21]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MSKuA-1splQb1A1A-00KFrm; Wed, 10 Jul 2024 20:11:09 +0200 From: Federico Tedin <federicotedin@HIDDEN> In-Reply-To: <86wmltm994.fsf@HIDDEN> (Eli Zaretskii's message of "Wed, 10 Jul 2024 20:45:11 +0300") References: <Zg6wRQ1kVfgwALNU@HIDDEN> <87plrlz06s.fsf@HIDDEN> <86wmltm994.fsf@HIDDEN> Date: Wed, 10 Jul 2024 20:11:07 +0200 Message-ID: <87frshyv5w.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Provags-ID: V03:K1:cD/zB1a1+jeZUArw1mZoPjod2nEv3vjAmebardgTZ+DtX93WXMV rEgdOZEUZ6Qamh4MRsIislsa/89x8dDGq/aOX1yilx2jAxDA82aa0g1Uumg41wfxBw8riwW CKwlq+ELSNVXhZShkJbkvqCesdYbPIT37VdLS6P7FYRuvw2Xb0ZixaykiblZ5AJjZIsgqLS RzUyMh0R/ND69tMvsAAlw== X-Spam-Flag: NO UI-OutboundReport: notjunk:1;M01:P0:dRlHfoiRXls=;/xfx4c0zOAaBcy4HvvJI70YnXqZ xw/zaB5uhpD5lYDFIcInK5dqQE1kuuAPsYtID7rhkNhI4H2tt/ctXRypqIUVrc5bPmepGHTRb Jndyn7+bzKXtteBDpTH1dWA/Ye1xPN2wk+j/KpaiEWptnmSil7z43Bj6wir2/t32m8eJYzD7/ EWR0DU/EvVw6ARyx9w4QcB3tMtB6Z7zR+s4Go1PRgZSNlZR1TxW7/I+/4lTvLfbg3/7ZCRWVq Na+wpgEma3KeqevNaCOqktccXhLA+SL0gzimK7ZogkMUW2Ph6C3+UpS5dhUw9PZ6aC+Ixko4s gR4Y651ygGXvGde0/BI66YH8GV6BOBC/Rqa0ZMwGeb/JEP5n327KO8KhhmNp4RRwXHfhI6p0+ Eyy2MjuH2512gyKv0s8tcIoQt73t9QpeLt//2GdYjjNPIxU6bXhMiDrPBxSX7I7gL6C2Qw+tP vTChr72zs1vLc4fIDB33OEVPAtZ26WTXAqBIWUOoUTi97QHzHjc1CE+2ePjGfzGBQHPuv9VlC Hl5XLIowiJ1RShe9QQPXt91aaxo54hnAhiu6IDgzPnT2UjaTjf46IxglSQ0+kjo6R5D+0pH5r AZ0enRjg10r219OIG1NtX2MbZHImgZ35hugisac2++xn+NFvt4DY7taLZmcXCipIl+pbl3CF+ PQy7rIa0D/SBU0Dt4jR1YZOg8liXuUVzJ1gVV3T3tukjrtoViqGtxqGQhEgvzh+ZBljRD7iZb qzOSDX1HjqZmIKum6a5+wQ8EfLT5oJaWevYZAGOj4h5ya7ue9wNIrKACoOfBZ/b3Eyt3GYLxK tiseFf9Dx8u23uNFGTYwDMSw== X-Spam-Score: -0.7 (/) X-Mailman-Approved-At: Wed, 10 Jul 2024 14:22:23 -0400 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 (-) Eli Zaretskii <eliz@HIDDEN> writes: > What happens if the command itself has embedded '='? Ah good point, I incorrectly assumed that after `comint-match-partial-filename' was called, the point would be at the beginning of the command rather than at the end. That being said if we used (match-beginning 0) as PT then it would address this particular scenario (when calling `shell--skip-environment-variables' I mean). > What happens if the '=' character is quoted? What would be an example of this? (in the context of writing shell commands). > I think a better idea might be first to try to find what is "the word > at point", and then complete only that word. WDYT? Yep, however I do think we still need to walk back some words in order to ensure that we are not autocompleting an argument; for example $ echo whoam[TAB] should not autocomplete to "whoami", I'm assuming. So for the actual walking backwards we need to maybe: - modify shell-backward-command so that it leaves the point at the beginning of the command, but after any env vars - or, move backwards using `shell-command-regexp' until the last thing that does not look like FOO=BAR or FOO= is found. All of this just to ensure that the word at point is an actual command and not an argument to a command. Maybe this approach itself could be re-evaluated though !
X-Loop: help-debbugs@HIDDEN Subject: bug#70198: M-x shell: deal with environment variables present when tab expanding Resent-From: Eli Zaretskii <eliz@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Wed, 10 Jul 2024 18:36:02 +0000 Resent-Message-ID: <handler.70198.B70198.172063651321041 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 70198 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Federico Tedin <federicotedin@HIDDEN> Cc: 70198 <at> debbugs.gnu.org, jidanni@HIDDEN Received: via spool by 70198-submit <at> debbugs.gnu.org id=B70198.172063651321041 (code B ref 70198); Wed, 10 Jul 2024 18:36:02 +0000 Received: (at 70198) by debbugs.gnu.org; 10 Jul 2024 18:35:13 +0000 Received: from localhost ([127.0.0.1]:57145 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1sRc9o-0005TJ-Jq for submit <at> debbugs.gnu.org; Wed, 10 Jul 2024 14:35:12 -0400 Received: from eggs.gnu.org ([209.51.188.92]:55726) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <eliz@HIDDEN>) id 1sRc9l-0005T1-Pa for 70198 <at> debbugs.gnu.org; Wed, 10 Jul 2024 14:35: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 1sRc9W-0000mz-SJ; Wed, 10 Jul 2024 14:34:54 -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=MEd6pvI0rZ9eD28MIkbPEZBYDqgvi3BoE49Y8loR6ZQ=; b=YAhzz6Kw2wbH AuNiqRGUbRxNBozw80q0I2QNljZEdYtms77Yq8RB+p74WUw6pKSpfFEli7ke1MYbFOmg1/UAjpGS0 X7vSiC0SGBJ0dx+Tg9iMJDLBxgHAabP769CYCrOhcgS6eFu1XwSY1BR4DFyDHki2BnXbmfekHUDcY crxYbe+nRbz90LcukV6XQoRMNV5at6Ms/zKIQe0VK9402Nd7DJmC3lqFd+aPlOjCpJ6TSFxpU/CxW RQQW4hvVBqKhQj5t//uPCT1+SrwFrYLL2Hw9b7XVfQrbrweU4/1d5G70IgbnfXlxrCoGPOWAapAHK jr6//SNSVQDKeXg2MhwYmw==; Date: Wed, 10 Jul 2024 21:34:51 +0300 Message-Id: <86ttgxm6yc.fsf@HIDDEN> From: Eli Zaretskii <eliz@HIDDEN> In-Reply-To: <87frshyv5w.fsf@HIDDEN> (message from Federico Tedin on Wed, 10 Jul 2024 20:11:07 +0200) References: <Zg6wRQ1kVfgwALNU@HIDDEN> <87plrlz06s.fsf@HIDDEN> <86wmltm994.fsf@HIDDEN> <87frshyv5w.fsf@HIDDEN> X-Spam-Score: -2.3 (--) 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: Federico Tedin <federicotedin@HIDDEN> > Cc: jidanni@HIDDEN, 70198 <at> debbugs.gnu.org > Date: Wed, 10 Jul 2024 20:11:07 +0200 > > Eli Zaretskii <eliz@HIDDEN> writes: > > > What happens if the '=' character is quoted? > > What would be an example of this? (in the context of writing shell > commands). Something like $ FOO='foo=bar' date > > I think a better idea might be first to try to find what is "the word > > at point", and then complete only that word. WDYT? > > Yep, however I do think we still need to walk back some words in order > to ensure that we are not autocompleting an argument; for example > > $ echo whoam[TAB] > > should not autocomplete to "whoami", I'm assuming. It should, just not command completion. > So for the actual walking backwards we need to maybe: > - modify shell-backward-command so that it leaves the point at the > beginning of the command, but after any env vars > - or, move backwards using `shell-command-regexp' until the last thing > that does not look like FOO=BAR or FOO= is found. > > All of this just to ensure that the word at point is an actual command > and not an argument to a command. Maybe this approach itself could be > re-evaluated though ! If we want to detect FOO=BAR, we need to use syntax classes, and I'm not sure regexps are the best instrument for that.
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.