From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.4 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FROM,HTML_MESSAGE,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 24224 invoked from network); 30 Nov 2023 01:29:19 -0000 Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368) by inbox.vuxu.org with ESMTPUTF8; 30 Nov 2023 01:29:19 -0000 ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1701307760; b=jIo1Rh4X3CxVhiAS0KSNSy5CzVQKeeRTQPsv4rjogWQG+Nd2DBFMrlCw6GoUx2L4q/C2BdwteZ wBBqPGE4hEIOBFg4DG2puX1+iyf2/sYS+ctnREfVsFacuucyjezUGOSO33cAAd2qlFtZ6bojpA RytSzazJnZfkiG6JpUALDyUZZPSQXxjHSbUwzvxjm0+r3D9Dw5UiNc20aUe9CQ+Q5cVlMUdvcj osJ8h9sL26YR1yDvm4b72i8F/10TSHkQrysOzs5f7sTmwNZqQoQ82fzuTdGvD/mOct1sPn6DT3 eajsTQKFNKMBuPL32J9qlPWa9eQgtj2V9z0PHQ+PiqmcbQ==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (sonic319-21.consmr.mail.ne1.yahoo.com) smtp.remote-ip=66.163.188.83; dkim=pass header.d=yahoo.com header.s=s2048 header.a=rsa-sha256; dmarc=pass header.from=yahoo.com; arc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20210803; t=1701307760; bh=m9+NgOwxaTpOO4XdkFftWAreX4A3WMYyRdEvjedLXCE=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:Content-Type:MIME-Version:Subject:References:In-Reply-To: Message-ID:Cc:To:From:Date:DKIM-Signature:DKIM-Signature; b=j43IMs/RQOC5m0MDlS7Zjb8oXKDRZiepXik35kGUuyZDFbuB2NXflZLOALa8fNoVwNjTa+2iy4 Wyw/nctSUhDJ2WVt9kch9dygDaV2EI6qcriwPWLKl1dmVKlyC49SvTND4R32QUrcAvK/sG/Vv2 1aZYdECcfzRS3Mni6D7ygMtjlvAjA1Eubd6H9JECsjlq/oirnFmM2s/yL4BgcSTuPYFePidkgz p5Mv3djDp+QR9gIPGuU0paY/nHUT6qe5RzSdaR50hY3RFlaQsU0xURx9qd4FZxTAevh+hShDxo ajYNLxXFjbSVQNhclmSeg7j0BxK964zwo/tN3Hbc7LI7WA==; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=zsh.org; s=rsa-20210803; h=List-Archive:List-Owner:List-Post:List-Unsubscribe: List-Subscribe:List-Help:List-Id:Sender:Content-Type:MIME-Version:Subject: References:In-Reply-To:Message-ID:Cc:To:From:Date:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=C+xBO91mjTpCC+WMoO74CZjGti5Xr6y0hOV5lDTizlc=; b=n6motNQdFHsOg7UOg1LcgKQKWV n4x/gmEI/QlulzCBdn1SOInARrs96wv4lZ3CTNWjK+x32ikSS3YaewZ4KYvtjd6fZivSG0x1gEUdl UjKzSXfvvrBS4SDwh4vPn7WM7lMGIqxd8YVBQxrVDs6m7PVCp0M5J+H+lmfm8JWoeu7Cx+WUA/EKa /c0T0aRrv8Gazbo0votCy94CpUKq6JOlizEDpmycJIoKurNZxnum4cpvpqkcsjwYzsEioUc5tXBFq gTfC/innhsNWgPSsRlcIBD+1OYRYhCPQi+NG/13NtUC5Z6QDFSxvay4zpuUv1aWa/a/y00xbAoRKT BjfXKrvg==; Received: by zero.zsh.org with local id 1r8Vri-000P8U-Id; Thu, 30 Nov 2023 01:29:18 +0000 Authentication-Results: zsh.org; iprev=pass (sonic319-21.consmr.mail.ne1.yahoo.com) smtp.remote-ip=66.163.188.83; dkim=pass header.d=yahoo.com header.s=s2048 header.a=rsa-sha256; dmarc=pass header.from=yahoo.com; arc=none Received: from sonic319-21.consmr.mail.ne1.yahoo.com ([66.163.188.83]:43816) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_128_GCM_SHA256:128) id 1r8Vr7-000Oph-8z; Thu, 30 Nov 2023 01:28:42 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1701307719; bh=C+xBO91mjTpCC+WMoO74CZjGti5Xr6y0hOV5lDTizlc=; h=Date:From:To:Cc:In-Reply-To:References:Subject:From:Subject:Reply-To; b=S+WlvsCMGYMxL49fgbdSpVbHe+Hr+ylyWA0hqRzS0sMntuJ49H1JXZHkVUXzBIqef70jcXovhVl+39mRB7G0/RdSDKVvVehNnTFgRR9MmvAmtd6qPx7Qlj/Qo2UVaBCMS6vB8eGwpf0SXfweqktlOYn6A9LRpXJq/V4GK+4T//l+AvmLxz3vykqOj0kHLQMOtmGPUWGsb5rnkK42uIh09Y5AJWVFmsCNnYpMa1/lGQ+bGukv/HNRmV+YkpKvqHfvqfK2MBGSbkwdWJSnl21DyVegqqzEJq+1CsyXidFKqxDxrA2aL7p0v/rqakUx8x3ccFsKMKw6i8gsBLYon/Av6g== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1701307719; bh=auiOZpX9E/CEOiM6f/RY3VA6iWIpWuEryZPFeowa/4K=; h=X-Sonic-MF:Date:From:To:Subject:From:Subject; b=NNfJPArrAsr74SoecrlAaDBJjxGVWAiJHziTSyuKIztpzL1TilRsvN6j3JWnAaoYNNrI9dbJvi83ECAjVWnqHsgqa0YZymagl6TI3zpjwzCnqyI3fmjc2MPQzUbztP3tVTORB0HRTETRxWZn9H+piNSOOG7uNjdMIZEeWgjRmxDJZ3f48r1Bng9LA3pcgsOLgVEmvpUXsteONEytdSSu5jSWp8yz7j+47ZNdG01thepdsvSj+K0vhp4eIxBLOXpSHU5YfQUuPuZag0XA2503J1vhuPHZFcDr4w0XrQ0hjJfckkS+Rst9uAWZdMQ+9z3XuHlutfAw3iijwk786Fzedw== X-YMail-OSG: ZM8DMiYVM1lC8eZc5TNwUnLGUm4dK73Hdf2QEC2XcR5S6I93ov8yZVmk.pwSaFD Reh8KvCZgwfKVU779QnyXK3VZwGSMbVJGxfVIdXQ5O6JuZVAZEBq7s4l6GQJ7fKmArO3ujYbfxtw v6jb_y.2Rnk7dfdmQ_dJfc87oUK3UZoxhVdV6cHClrQcBPRBGAflHGXX_oT8WwuXWJZrRrwcmsQG TUXl5M.15Smap2Nk4DyQUMO.TOH3CbS05xNt_0xnw9eWEMmCICnHffEGbegxNAvoCcnNJkwJIu0D WxdCcu1mXOCrIM6UF9E547GrEdElzSOmQaTGbcrZBmesUCojsVOr1X3grrUaUDzmGpE_Ue2h_Xco To2b2lWNwDEzuP9AMZXphoXMKN5yd987yUugko1wTcC0rU_fDvkM.CjuB5SncVGTaK2dsZ8I1LaS CGYyUiVBWRbNOv7slCtYKzp0SkoBKgJC8sMTgipZaK5DEqPVru5png4BH_vYc43.NEv3zsuD9Brv NCvxvcVl7KXE59abBy6VmiaWnksVBXZJjtL6_B_1FMzW6efKHd0goRwpXF4AHU6cIxN4HPqoAbyR 9X_4Ai5_qpqggUXUAmDjwN9Ofbq8zVgJEEfKxq8cPwTI7DDcM_4a0vMR_8Al_pYJi9ondDGQBDNq wVlSthhVCNXVbQXybmaEYyY64Y1qOwdRY.C_9ILPY96EeOBeqYjWaHPI8hoWop6kL7h0ZJSx0Kjo U8GQigdaa2LPVXflZKB6C8l03NOtxxtxyubUz267v7WzMNVWxo_ztlhLz4jyTEhyeyN7WL7looJw vvtb499CLQIxp1K3eYD0z1jQm06dTpukJjfINk2uEBRUufc40.69_pprvr1Pcrl64tXUwo.qzaKS tt4fxDr6WSlr4uwsXx3LWt5WvRu7cGElt8Kl6TF2AF.Zb8nbzBtYEEcE_T5HbbB_oK7BGei_xJ6l 2Vf.a.pd1DLHUoe6cfzuvdmGCCG3nDmp1qfmPT37APESVSi_C_hQrcK8XL7g1xkT4HMzXlgLgs.D mQWxu_jBxurjNE5uHG_1.ESV4oLBcO8Knc4pe4oRKkdJ7tNUdh6sDU2qVdVuCc6CwEdCv6f.WI2c XUGt_cbO5QPZrX90Yx3GQ72GZ7tERCzDGmxq72tiB0cYBfcqqP23v_rGcqKlglD9TrsG1OpHAgro PyJcHHW8L9DTEt3b1k3e144r8o7KVpZ7jCrGnSUX6Fh4_2dLn9aOpA39TbncUGwjAJv6CFPTz0HE c5i9FjdGcePEPS.vmMj5yynPtfzfLAvv1DdVpipjC1UZIJuxjIsm6fZUQPJKGLSoUq5PghgttLWk h5.Aujm3RsqYPsvRbQjICfOcyEh6Ex1YaLTLZAUd45_oX6zPMbRaYLWzT7uOuxB8vbYxDmCW4cei wowJgzRUAb1lleXReblRUhehEdeM4.mUWr0_bp57ewns_vQOifBhHYvATAbFadPXN8LLVDHUAR9l BATEEFyqpvOEjEWV5Im8PjS5EpRK5B8SPgZ1OpmRgZ9MYl.l5gebMP2C2cfCSSUyjEirxkFYDyig 24KV66Cy2TalB5f3dvVgUME9wShgnfAChqWHBcL_hmcntEiealUU.8JZz8_Po.FS4nHVmtwbxlL1 TC1gozQDhDRPuCZvTFaL5l3r39xKuY6KQ_Sr2nV8AG.a48_VTmkGFUaSEyjXA7OlrMe9qqHsVZes RwyZcP5IghqoIE5XDei.03MxTA7lRBJ_YFn3CE7N13sqGGHNe9MSTrwsSqobktwoNiI21vmxrYh2 Pu0LM7qNqvypt.aMKnhobpklVUu8AdxJo89FbFcvN4xgq1zvGupWck213XfY3Fob1N4YA9PsyP5x D3iRpeyxfnPaWQ9kWlLniOqXJGKQ1R.K_y_lNkxk6Xcr7fkhl7v18t5EUJemRmEA8S.iIj8XRAl3 bkgwfxzZtkKL1H.K2ILoFXYJgLkmuupU4lU3us2sknuPLkU.c3HJB_WDAsk4iFqGXAg4YLtstX_g mvGP_ajgGqYJBXAsRa43ITCaSS..oy7RvXzhiRxhqve2xNk2fyqYbzoWdlfrHDrwmLV6IqtXsyT5 xMQnzlw5GW.s9kt.WjTyppTbOT.07gSGvir30Iezh2NLp9SE7ZMZfAuioV_h63mUfq1S4JXJu1JB _XNs0pdaI1Dzdz7TkUovC1rSIEK0oEsEvrL8nuMcnTfPJASyr6hSWttDxw2hUOZIO_6Maqw-- X-Sonic-MF: X-Sonic-ID: 7570ada6-a283-44e0-9f90-667ad2ef78a8 Received: from sonic.gate.mail.ne1.yahoo.com by sonic319.consmr.mail.ne1.yahoo.com with HTTP; Thu, 30 Nov 2023 01:28:39 +0000 Date: Thu, 30 Nov 2023 01:28:38 +0000 (UTC) From: German Riano To: Bart Schaefer Cc: Mikael Magnusson , "zsh-workers@zsh.org" Message-ID: <403965551.9922046.1701307718781@mail.yahoo.com> In-Reply-To: References: <207461559.9336309.1701221332233.ref@mail.yahoo.com> <207461559.9336309.1701221332233@mail.yahoo.com> <1085378061.9900970.1701303310889@mail.yahoo.com> Subject: Re: PATCH: Improve quote handling in _ant completion MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_9922045_1048926552.1701307718780" X-Mailer: WebService/1.1.21896 YMailNorrin X-Seq: 52342 Archived-At: X-Loop: zsh-workers@zsh.org Errors-To: zsh-workers-owner@zsh.org Precedence: list Precedence: bulk Sender: zsh-workers-request@zsh.org X-no-archive: yes List-Id: List-Help: , List-Subscribe: , List-Unsubscribe: , List-Post: List-Owner: List-Archive: ------=_Part_9922045_1048926552.1701307718780 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Sorry, I mean '-r', not '-q'.=C2=A0 In other words, this seems to work: 'pr= int -rn "'$ln' ". But (qq) looks better =20 On Wednesday, November 29, 2023 at 04:52:48 PM PST, Bart Schaefer wrote: =20 =20 On Wed, Nov 29, 2023 at 4:15=E2=80=AFPM German Riano wr= ote: > > Even just using 'print -qn' works. Er, what? % print -qn foo print: bad option: -q Do you mean "printf %q ..." ? > Questions: > 1. Is "${(qq):-$ln} equivalent to "${(qq)ln} ? Yes.=C2=A0 I left it with the ":-" because in the other case there's a trailing space inside the right brace (ultimately, inside the right single-quote) and I thought one might be needed here as well. > 2. Does the read command needs '-r' ? I don't think so, the backslashes will already have been removed by "eval" ... but perhaps if there's actually a literal backslash in the target name, yes. > 3. Does using eval creates the risk of arbitrary execution of code? It does as written before any of these patches, because a target name could embed matched pairs of single quotes and $(...) in such a way that the eval would run the substitution. I think fixing the inner-single-quoting via (qq) removes that possibility, but it would still be better not to need the eval. =20 ------=_Part_9922045_1048926552.1701307718780 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Sorry, I mean '-r', not '-q'.  In oth= er words, this seems to work: 'print -rn "'$ln' ". But (qq) looks better



=20
=20
On Wednesday, November 29, 2023 at 04:52:48 PM PST, Bar= t Schaefer <schaefer@brasslantern.com> wrote:


On Wed, Nov 29, 2023 at 4:15=E2=80=AF= PM German Riano <griano@yahoo.com> wrote:
>
> Even just using 'print -qn' works.

Er, what?

% print -qn foo
print: bad option: -q

Do you mean "printf %q ..." ?

> Questions:
> 1. Is "${(qq):-$ln} eq= uivalent to "${(qq)ln} ?

Yes.  I = left it with the ":-" because in the other case there's a
trailing space inside the right brace (ultimately, inside the right
single-quote) and I thought one might be needed here as well.
> 2. Does the read command needs '-r= ' ?

I don't think so, the backslashes = will already have been removed by
"eval" ... but perhaps = if there's actually a literal backslash in the
target nam= e, yes.


> 3. Does using eval creates the = risk of arbitrary execution of code?


It does as written before any of these patches, because a target name<= br clear=3D"none">could embed matched pairs of single quotes and $(...) in = such a way
that the eval would run the substitution.

I think fixing the inner-single-quoting vi= a (qq) removes that
possibility, but it would still be be= tter not to need the eval.

------=_Part_9922045_1048926552.1701307718780--