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,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 32642 invoked from network); 8 Dec 2022 10:19:38 -0000 Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368) by inbox.vuxu.org with ESMTPUTF8; 8 Dec 2022 10:19:38 -0000 ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1670494778; b=fW8qIzEJrBdq/6T+XAkTr8X47GXf5KtcyFIzrfarKnU5Qipy79fBMTQl4Z3EXXCKvM6ZXswKRS +IjijAht9QPOkfRCE/etK9dkVtJ23JQsRgFjDiT5qcgi+UrhAMdJYqw64qSKW/fwtN0O8iFOsx syhP2COcZ/AiZNy67KEiI63ZmykbT6bfpP+blwOuJCMzCEzyBxoHugsJBMalkY8rmhihNV6rC6 fLj7XZn1KZifidP/MHqssd9/4Zwni2wMyVWUFS1Rk1dBovRquvaMzv+YRDdmyZMF9mtbNG/FOZ W7sArzOlA+NCdxOYSeRK6fRUbFp8Taz6OsuO2ZLMkosvvQ==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (mail-ej1-f50.google.com) smtp.remote-ip=209.85.218.50; dkim=pass header.d=gmail.com header.s=20210112 header.a=rsa-sha256; dmarc=pass header.from=gmail.com; arc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20210803; t=1670494778; bh=hC/0GvsRAJ1c0y5AUXWCoClZIXl8DUHcRXoZQEB8CRc=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:Content-Type:To:Subject:Message-ID:Date:From:References: In-Reply-To:MIME-Version:DKIM-Signature:DKIM-Signature; b=YPStsl+qfx25CX33+sbdoPJCu+8j95FJF30LFxKpFejin0/yA4DPd38vqNKxQdNYGMI8TzWd1d WF9LO93tuoJ2h7G5z3eABljwQDOZ4JDw7JOV6vHnZH+dk9yiIqN3kUu+4Kle7kXxNGpYwM5EEO Qw9hs5aMmmJL/H3rEAnFwtwU+JxK4wvAr5Yn1txEVymAq4ucqIJfVVNd4THGRVX3OkVM7o6lqC 1fsTlHq1cG1mFYiAqxbgwfVAvuIQuBTQU3Zg5gAXKTYKsP+yd6NGqVQyzbxJwxHc5jCWzpzeyS WQHfiXQU3ehtR9n0sJJnfpAV8rpzKNtRabiACfcmTF0KbA==; 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:To:Subject:Message-ID: Date:From:References:In-Reply-To:MIME-Version:Reply-To:Cc: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=KZesS68ZK2IgAcfe0BGbiYSCmwZrzagHpDgGWzz5IRE=; b=KD0pW/6SDqPxi4MPugGbWhXu0s DjvZBmB7NXZuQDVb8xWZjX6xIUNWFMUM4lOXtQa7gfJOj940X6VqQlo7Jcacx8/mUF2kgDY0wF7w+ bZMIGIrBTkZ4NeU97X7RGFkUrQ6+KgC3AZbtpnckNjzSYZxH6RMGy2CAl/tg8/DQMAfkH+gmOA+2o Zig5y600eVzBob8xSZi4juidMIujVn6WWifegGoNTR/103g/sge8nz8EDbfk06GQHEdJCbGHrRl+i NqjCazULtFg4SETUDI6rCvfWiCIAm4ysHe0QXDj7Jc50TkwtsMe+rQ3zbkzzFfdKyX44VMIUG3jcT ib/MRvlg==; Received: by zero.zsh.org with local id 1p3E0A-000BQ3-FQ; Thu, 08 Dec 2022 10:19:38 +0000 Authentication-Results: zsh.org; iprev=pass (mail-ej1-f50.google.com) smtp.remote-ip=209.85.218.50; dkim=pass header.d=gmail.com header.s=20210112 header.a=rsa-sha256; dmarc=pass header.from=gmail.com; arc=none Received: from mail-ej1-f50.google.com ([209.85.218.50]:33391) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_128_GCM_SHA256:128) id 1p3Dzr-000B76-QS; Thu, 08 Dec 2022 10:19:20 +0000 Received: by mail-ej1-f50.google.com with SMTP id n20so2828674ejh.0 for ; Thu, 08 Dec 2022 02:19:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=to:subject:message-id:date:from:references:in-reply-to:mime-version :from:to:cc:subject:date:message-id:reply-to; bh=KZesS68ZK2IgAcfe0BGbiYSCmwZrzagHpDgGWzz5IRE=; b=nuX6X00YHVy7cYiFCx4wEgDOu6lzwbpwDumigqPVZATzbIOoi1RKIM+OzxS0toMkki 1Sxd9Lfem3LOoHUKvJSa0csQStrbWgF9LRdrgvjMIhV4lsSjoI/Rv1wun66iYNp1BPTu JKo1dq3aFV6zSu/QARtkqetTvBTpJaV3nnFdJz2LdKEvoSrjorzgGUvU4KmEe4rYj4b7 ZrBhGPlnhgNRqaJ5u53DHfB5beIkdHBHO6khp+MWCAptGcdwbpoEoYoOdIcB/espmRGO FoTM4JTIGxr/cYJ1CeITsvymB2aWC2kPr9h94494Sbg2bmlH8HWt/sHEh2PBt4b4rTzf qCxg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=to:subject:message-id:date:from:references:in-reply-to:mime-version :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=KZesS68ZK2IgAcfe0BGbiYSCmwZrzagHpDgGWzz5IRE=; b=aE8oFwOnOGY9yg3gBgaCnm4eHPqbouAI/uF4ec6TmKZP5tc+QysYr0T354jUv1o/wY 3SsA8hCpoWe1T7NPGAr1vuizLFGp5u1w7jI7luSSk2f4PJEJv1TPlcVV1miH6xAielNe vAF8fc/lVySmHCelPsAKFXZlv0mswR6QFwgDsv051yeAb4rVsUElRqLHwY1Gdj8+ZV8w lhKoNymIFgm6Mxy6kNYCjpGA6L4/OOkBrbpZ8Y6U9p2DoqaHWoshmUxQP2M1h0KMT6z+ lfEbPjkemxUdgSmpeXRKN/JtqUaZTgUbMHSMjDYQPOkWMwrt0fDEeOk+4uDEKyw5uFjO cxsg== X-Gm-Message-State: ANoB5pnv0RyzSbQpj4uNsc4C+qL2d59y8EbuFQ+CGmja2mkzAJ7QPi5T 3cJg4yDwk3DD/2dAHxvm48TE2FbTWhWFGp6XwkN1e4IM X-Google-Smtp-Source: AA0mqf69zBEEmC1leN8SrPoGmRVpcDbgFzyF6ZyhgJvy7imXiYBAt9vTDZwCMaSNnwUDB02irsSVUWFovgwi89gHCt0= X-Received: by 2002:a17:906:6859:b0:7c1:ff6:615b with SMTP id a25-20020a170906685900b007c10ff6615bmr7069887ejs.118.1670494757890; Thu, 08 Dec 2022 02:19:17 -0800 (PST) MIME-Version: 1.0 Received: by 2002:a17:907:86ac:b0:7bb:1f4f:7625 with HTTP; Thu, 8 Dec 2022 02:19:17 -0800 (PST) In-Reply-To: <20221208100215.k2qcqdqgjlzwbdh7@chazelas.org> References: <9e3026aa-39a1-dd50-4d29-a64724d4eaaf@irit.fr> <20221208082103.zg44mrv77jrizsaj@chazelas.org> <20221208100215.k2qcqdqgjlzwbdh7@chazelas.org> From: Mikael Magnusson Date: Thu, 8 Dec 2022 11:19:17 +0100 Message-ID: Subject: Re: Get cursor position (Was: [bug report] prompt can erase messages written on the terminal by background processes) To: Roman Perepelitsa , Bart Schaefer , Millian Poquet , zsh-workers@zsh.org Content-Type: text/plain; charset="UTF-8" X-Seq: 51137 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: On 12/8/22, Stephane Chazelas wrote: > 2022-12-08 09:34:41 +0100, Roman Perepelitsa: > [...] >> > curpos() { >> > set -o localoptions -o extendedglob >> > local match answer >> > IFS= read -rsdR -t0.2 answer$'?\e[6n' && >> > [[ $answer = (#b)$'\e['(<->)';'(<->) ]] && >> > eval "${1-x}=\$match[2] ${2-y}=\$match[1]" >> > } >> >> Functions that accept output parameter names as arguments are tricky. >> The following won't work: >> >> # Which line is the cursor on? >> curpos _ answer >> print -r -- "The cursor is on the line number $answer" > [...] > > Yes, I thought of using 3 as the intermediary variable, but > decided against it as we can't do anything about match, > mbegin... anyway. > > typeset -g "${1-x}=$match[2]" "${2-y}=$match[1]" > > Doesn't work either. I guess there's no way to access variables > by the same name in that parent scope or to unlocal a variable? I have a patch for it, but I never sent it because I couldn't think of a usecase. http://comm.it.cx/cgit/zsh-cvs/patch/?id=cf1ba693c9f3ed80ff085bfed74d854796349a0d (I'm not 100% sure all the error checks are correct, and cover all cases, especially wrt bart's private module). -- Mikael Magnusson