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.3 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 31481 invoked from network); 8 Dec 2022 10:11:11 -0000 Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368) by inbox.vuxu.org with ESMTPUTF8; 8 Dec 2022 10:11:11 -0000 ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1670494271; b=lo9zjR/Xvtqa6/Fi/71O2SgAf5a0oyWnBWwiRzVXR2gkanoJBxBXdQvf9bUlgqoOBpg4RSjA/C 2QVvyEyU70zIrX4Tp8m53Nlk66TiDVaXh2mHaOaXxqRfV08nrXxxnZgzAD1zQleATq0Ku5anFq 6PCrzgb25STyQliXGcnfWGA5hbpiBywc/PTgBoaD0QcqmhkbQ7Y3mPBb+lG6QEXvK8yn8W7oTG 7izCJXDCgmEOv0s8CBBP8i1nhLcpYw7JJfkeiypCQK3FoGsDXss/wb+4Sary47IzOdbhXxPect QNcBgpTiVcTxwGUQBAdCXx6wKklYNJAEn5bR25vk62kPAw==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (relay1-d.mail.gandi.net) smtp.remote-ip=217.70.183.193; dmarc=none header.from=chazelas.org; arc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20210803; t=1670494271; bh=OqC7q1pralR8SYCulhUNoQRJfKwzI24aWgHOE26RJDo=; 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; b=nqi31J/fj+aThhKueF2wwP4m3fBSuNMsR88NuIyj0ciyU5ZIsmxKrqLdM7FFFnnJoJO1lJcNWV FHkVM6tQGbqO0cyKM1OSi4lf6687JRaNd3Ch1xiYBOxCKhrc8GuUx37Ku/7mmoxOKwOZ4ZJkPy gS0+nfScZpMeF83UuIzuhqkmq42/GuFoedpQ7EiCngdKc8j12iDvkq6FHweTShbMVBHoJggZUp S72IozCTJ2WW6gNCRz5ht9vopETGTvHkmbEkXwPlZsH/XttvqtovRlgMdMgmzvqbXIdt4Qwgk6 FfEWQdgIMmlyJePfqElwm4Zq75GGuIry7PCZRXyYBXbo/g==; 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=NJAQ6bvzhFZEtBa/qWOAm326K406lox1dE59+kcwu88=; b=i6S1ejhtN5cSaFj4JOVFDFggSb CqZbq8RFxZfaXH+EAbi+wCfVA6EMJGtLW844xYPvNosajAmKhu1xW98ld9lQcPFC17pjpRdGQojee a0XbkwTKhE9keUm0QRpS/T36N9F/vHvN3xzYAOAG0RiGmEbJ+ur4wLt7XhfRZeHBE7zZBKC7tt9A3 wJM9lJ3d2yqmSo5++SHue2qPGIFRf8LnMwDCYSHuP8G00IC1NhLSdF7eLNZNfs3eGg5phLYd1WIIi gKX5s3RMArocKvYw92V9U7quYzyN82fnpxk7zJlrwoKcS005OKP+J64e8fV62r8yBFPKxRAqMCFTD 5AvgY1Hg==; Received: by zero.zsh.org with local id 1p3Dry-000Ad4-IG; Thu, 08 Dec 2022 10:11:10 +0000 Authentication-Results: zsh.org; iprev=pass (relay1-d.mail.gandi.net) smtp.remote-ip=217.70.183.193; dmarc=none header.from=chazelas.org; arc=none Received: from relay1-d.mail.gandi.net ([217.70.183.193]:40441) by zero.zsh.org with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256) id 1p3Drl-000AJq-KY; Thu, 08 Dec 2022 10:10:57 +0000 Received: (Authenticated sender: stephane@chazelas.org) by mail.gandi.net (Postfix) with ESMTPSA id 188A3240010; Thu, 8 Dec 2022 10:10:55 +0000 (UTC) Date: Thu, 8 Dec 2022 10:10:54 +0000 From: Stephane Chazelas To: Roman Perepelitsa , Bart Schaefer , Millian Poquet , zsh-workers@zsh.org Subject: Re: Get cursor position (Was: [bug report] prompt can erase messages written on the terminal by background processes) Message-ID: <20221208101054.blcqkahcmb3mtdgq@chazelas.org> Mail-Followup-To: Roman Perepelitsa , Bart Schaefer , Millian Poquet , zsh-workers@zsh.org References: <9e3026aa-39a1-dd50-4d29-a64724d4eaaf@irit.fr> <20221208082103.zg44mrv77jrizsaj@chazelas.org> <20221208100215.k2qcqdqgjlzwbdh7@chazelas.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20221208100215.k2qcqdqgjlzwbdh7@chazelas.org> X-Seq: 51136 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: 2022-12-08 10:02:15 +0000, Stephane Chazelas: [...] > (bash does by exploiting some bug (calling unset -v in a > severate function peels one layer of scoping instead of > unsetting in the current scope)). [...] Not sure how "separate" became "severate" there. Sometimes it feels like my fingers have a life of their own... Sorry. unlocal in bash (or yash) can be written: unlocal() { unset -v "$@"; } (that's one of the main reasons POSIX couldn't specify "local" btw). It's worse in mksh where unset is always unlocal. $ bash -c 'unlocal() { unset -v "$@"; }; f() { local a=1; g; echo "f: $a"; }; g() { local a=2; unlocal a; echo "g: $a"; a=3; }; a=0; f' g: 1 f: 3 $ yash -c 'unlocal() { unset -v "$@"; }; f() { local a=1; g; echo "f: $a"; }; g() { local a=2; unlocal a; echo "g: $a"; a=3; }; a=0; f' g: 1 f: 3 $ zsh -c 'unlocal() { unset -v "$@"; }; f() { local a=1; g; echo "f: $a"; }; g() { local a=2; unlocal a; echo "g: $a"; a=3; }; a=0; f' g: f: 1 $ dash -c 'unlocal() { unset -v "$@"; }; f() { local a=1; g; echo "f: $a"; }; g() { local a=2; unlocal a; echo "g: $a"; a=3; }; a=0; f' g: f: 1 $ bosh -c 'unlocal() { unset -v "$@"; }; f() { local a=1; g; echo "f: $a"; }; g() { local a=2; unlocal a; echo "g: $a"; a=3; }; a=0; f' g: f: 1 -- Stephane