From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-3.3 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DKIM_VALID_EF,HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 Received: from zero.zsh.org (zero.zsh.org [IPv6:2a02:898:31:0:48:4558:7a:7368]) by inbox.vuxu.org (Postfix) with ESMTP id E2CD72A3D8 for ; Mon, 15 Jan 2024 00:30:10 +0100 (CET) ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1705275010; b=MqR7nPBDuosU8ZDg+dUEgRhqz9rkjryxVbsGd3uCHRkefmca8sKbEmduxo2WWWqwsJI1rALOha x55EH1xUzBmPcgHf+AkMu4ucrchNj7by3jniSXATunBjrPiqfnHoG9Ps4oqjw4OCCnUIII5K1E x/V5JfdGkdXwT04LZhxHr5jXNkkm6+w8vHJHGaKV3m3jd1JE4W1URUikSPAQsm0f2rnrEqZ/m/ eFcmnDOZuo3lkzwaFqrOCZM8gRW20eGOJ1Itaq/CfMCVPzFecoeFjppb1Mjv9xsdM1Fg1MjorM qLcpf2sPO7+Zam0DLgzdKorntFx0suoLZcHrtL2C4ymynw==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (mailout-l3b-97.contactoffice.com) smtp.remote-ip=212.3.242.97; dkim=pass header.d=rmz.io header.i=me@rmz.io header.s=20200308-xcrr header.a=rsa-sha256; dmarc=pass header.from=rmz.io; arc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20210803; t=1705275010; bh=mWWTyuXIlAE3LQZlT0T2BYMe98ebu72TBjJdBQeezNs=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:In-Reply-To:Content-Type:MIME-Version:References:Message-ID: Subject:To:From:Date:DKIM-Signature:DKIM-Signature; b=lMMib+NtnapTJgpPCezHb0zYreSJ8bsLdQ7+cv+c0Ntvip4xwRLz82qLmKM32F/qEjRD5Lh2v7 4VQjrilzrt6wiOWdQ+5NjdwSxCOOpfDlg4yFXtTUvNzbSIAaKYeexUSJ2cJTq4fUdbcePT3syI jn3ecxVYry08Wpy4aZ+EAxE9ISM9+2OoH7I/Z5BdQgwpoTi0Fc/wGJFTk5lP/40pdlKpIGDvZ6 MTbWPSAngslrIvimx9T3m2pKk1QTCzaegCOXQcNPJvGX5f9znKS9TOu5q49yOzWkeJtx2B4wby DUvZfrfwZmV7X4NjPgAGy+RVW9NToJbymQCWSDkmlUCUVQ==; 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:In-Reply-To:Content-Type:MIME-Version :References:Message-ID:Subject:To:From:Date:Reply-To:Cc: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=oxc5NYunHYHdU8ohaGXMOYxqyrVDqsRU1roNMG9UiuE=; b=LlSC6n/bD2FPEiwDybvmhwgq6S qAhSVskdMtS5xy7kWY1S3a2FL+DaEecNRp6WFU3kIWBNZknMYM8Wr+4cTvdRNOiKA6A/EvYseGHDz vH0+ixqGi45SwjljACkidjcrGhM5hD4TWx3HPvPl9SwfRiqacSUxKhiUXUjuo2kA+52AFOki6Byil aiaeAmVrKCjnt2LgtFJBc3X0wDUE3xgHQbuugIctdLWEaiWjIC1pIBot+Pj9HPYjP7mDVjaGvhT3M iSOQ8i0DLdnMK+wtRqgFYIqa+siR453PxBll0FM3aoEeROx/ItQdvuV3Wq0/monPgYsoGiCYYDnRa EVuzgY7w==; Received: by zero.zsh.org with local id 1rP9vd-000N69-21; Sun, 14 Jan 2024 23:30:09 +0000 Authentication-Results: zsh.org; iprev=pass (mailout-l3b-97.contactoffice.com) smtp.remote-ip=212.3.242.97; dkim=pass header.d=rmz.io header.i=me@rmz.io header.s=20200308-xcrr header.a=rsa-sha256; dmarc=pass header.from=rmz.io; arc=none Received: from mailout-l3b-97.contactoffice.com ([212.3.242.97]:57996) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_256_GCM_SHA384:256) id 1rP9u9-000MF9-OD; Sun, 14 Jan 2024 23:28:38 +0000 Received: from smtpauth2.co-bxl (smtpauth2.co-bxl [10.2.0.24]) by mailout-l3b-97.contactoffice.com (Postfix) with ESMTP id D25B04D7; Mon, 15 Jan 2024 00:28:36 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; t=1705274916; s=20200308-xcrr; d=rmz.io; i=me@rmz.io; h=Date:From:To:Subject:Message-ID:References:MIME-Version:Content-Type:In-Reply-To; l=2643; bh=oxc5NYunHYHdU8ohaGXMOYxqyrVDqsRU1roNMG9UiuE=; b=3EU5+G+YJ4KBLfu5Z6tLy4RN3f56+zPR4GuHVnRgiYKimEESP4LrDcrSurztKkXz natiSiS2JmK61mmGpn4fpHvijuR4ETyU3+YfQzvPHIobfqCsw9SA+QnSLGgz+7abqHp AnwP0TyQs3KPBbvBN08EtGRrzDd09mx5HDGFeedl8WBOtHxtbA71w6e35sKmseieJdd nO7WDOkoTU9D8f5TngxyvcPFtRrXC4y3CrCU6kuGXXQ/CLDCo51CswVZXCTDCq011Rc GosgCSacb/ajC9pXqxpI9Rvy1wJQKtwDPV7jyt7rVUcsDrknNQIwlY7FqT6LxVF+R/y QcMDRK/eIA== Received: by smtp.mailfence.com with ESMTPSA ; Mon, 15 Jan 2024 00:28:34 +0100 (CET) Date: Sun, 14 Jan 2024 23:28:33 +0000 From: "Sam B." To: zsh-users@zsh.org Subject: Re: Disable most shell expansion to function or script Message-ID: <7jlvvie4lgnkreygh5z45cfglg4kotgy4fwf6ovgrkwg7imstg@hjxjrtstu5ov> Mail-Followup-To: zsh-users@zsh.org X-Clacks-Overhead: GNU Terry Pratchett References: MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="gl4qlcvmxdk3t2ye" Content-Disposition: inline In-Reply-To: X-ContactOffice-Account: com:225813835 X-Seq: 29478 Archived-At: X-Loop: zsh-users@zsh.org Errors-To: zsh-users-owner@zsh.org Precedence: list Precedence: bulk Sender: zsh-users-request@zsh.org X-no-archive: yes List-Id: List-Help: , List-Subscribe: , List-Unsubscribe: , List-Post: List-Owner: List-Archive: --gl4qlcvmxdk3t2ye Content-Type: text/plain; charset=utf-8; format=flowed Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Jan 05, 2024 at 17:53, Sam B. wrote: > I'll have a read through `url-quote-magic` too, which seems to do=20 > something similar. I quite liked the behaviour of `url-quote-magic` to simply type any of=20 the "special" chars and have them automatically quoted. So I've modified=20 `url-quote-magic` to escape chars only when the first word matches=20 `task` or any alias to it. There's probably a few improvements possible, but here's a first pass of=20 my solution. zstyle -m ':task-quote-magic:\*' task-seps '*' || zstyle -e ':task-quote-magic:*' task-seps 'reply=3D("#{}&<>''${histcha= rs[1]}")' zstyle -m ':task-quote-magic' task-cmds '*' || zstyle -e ':task-quote-magic' task-cmds \ 'zmodload -i zsh/parameter; reply=3D( task ${(k)galiases[(R)(* |)task *]:-} ${(k)aliases[(R)(* |)task *]:-} )' function task-quote-magic { setopt localoptions noksharrays extendedglob local qkey=3D"${(q)KEYS}" local -a reply match mbegin mend # is key different than quoted key if [[ "$KEYS" !=3D "$qkey" ]] then local lbuf=3D"$LBUFFER$qkey" if [[ "${(Q)LBUFFER}$KEYS" =3D=3D "${(Q)lbuf}" ]] then local -a words words=3D("${(@Q)${(z)lbuf}}") local taskseps taskcmds zstyle -s ":task-quote-magic" task-cmds taskcmds '|' if [[ "$words[1]" =3D=3D (#b)${~taskcmds} ]] then zstyle -s ":task-quote-magic:$match[1]" task-seps taskseps= '' fi [[ "$taskseps" =3D=3D *"$KEYS"* ]] && LBUFFER=3D"$LBUFFER\\" fi fi zle .self-insert } zle -N self-insert task-quote-magic --gl4qlcvmxdk3t2ye Content-Type: application/pgp-signature; name="signature.asc" -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEO8iRpJat6BxHTtT0gmAAVevIWpMFAmWkbiEACgkQgmAAVevI WpMY3g//ewqbmFlHVXKGDbGUmkkQjAcf5oNCbvfqvHu0cuiIz+x1nRQQp76pU72U PCepjHcFc4EiuB9Ytcod1DvENreY3815jvATsmTKo/WmvZ5jJvq7GdXHdJxnKXzS jKmO7rKARHb9NPwKgtF29wEdcQkslWC3sFowdMK3bEJP5i2ifIg6P3Rdqc4wpDY6 +CcMY/ijV42e/MNcpbPqCvgn+pGYqacPSmpRns9diPrslDwTF6TeKReg5jebRCjN j5kjIKfp3r9330Oa/OVz2P0Jk9QxXOzjsL85dZpyZXbzkr+e6/CgPm5eRBrPsKO4 gnoLnMqbRjTR3G1GCbY05AHjvsVdZAq8v8RCOt/Yegr6odS26iRxL8g3DLwvLR22 sZ9WhX1pK3+J6XbdZaTKXwuRWOkZLf8XqUqvT9RGrwCdi6cLbdTJZJFaYSWRGh6O YjdJ+p/IVNjnlto845Qw9JgZAwK9z4GtkhVE+oLUHosv4Sl/rMFv0O9wPn2f+3IQ x8+wte+W/ELj/EjDsDldPoaIBEycPaylt0TJ6C0lM/xe2NQvbGdAJzKfHwRvo4jN rA+fFV+B3uHJV8m3BB8Gfl7FsuDv16V3rDdbkW33ZHRZ1xtXBfcrd0C6L5eHzZvg LKdB0iLJ1I028jTwLcAgsg8fLL7N39zuMz99/SoVfE6uBTRKdVc= =LtrB -----END PGP SIGNATURE----- --gl4qlcvmxdk3t2ye--