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.2 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, 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 3EE052B69C for ; Tue, 12 Mar 2024 21:27:08 +0100 (CET) ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1710275228; b=WvYsX+eyuXP6b0ZfwNaMFq8i74XOQMY5ctzbE32E2OZw2CNYCIl/owlIYlkRd8vnLZds8sZH8i c/fdZ8fzjuk04mUSyHzR0xG7wBk72l36HzNilVcmC1gx6O5be7t09yC7j5MM3M2CbCQ7Lx/MRE bTAxeZtkQot192aJ1OwYEg8Ig+8mDAEHxDUWhBlNQPFc1loxJ1Jo13NO+kUEhFKNXeBpATEpt2 yIuiMx2bW9IItVIMnyjbkOJDjFDJaRWyjaXMRJq6wGP86CZFh03QpploR+B2eY7BZIZydMzu8w olN7VdJEPlbQPQhk13IVUKV+kMnH/PfSmSAxRZErQnX02w==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (relay9-d.mail.gandi.net) smtp.remote-ip=217.70.183.199; 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=1710275228; bh=Dq800mU/uVaP3DRHX/odEiNO6HYsQdlVwqieAhYTh04=; 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:Cc:To:From:Date:DKIM-Signature; b=bz7VR5f3OlzU3yOlKc0+DLUD3OanIPRlimmXaSv2m0HFP82O3K3jMsHGcDj2kUAXpXux0VfIhs Ir2LtwW6H0Dt2R4r459QLdWjUiQbfcmcBe/drJoWDZvgolZUSdBVcmrlS9bxO+FOdg5/8MLZo2 FLKhnOKBvR7JzLDdnfGVTzaYNo1BwvulHhJEsdXkRllkevGFSNgAT7UjUAYc/gMTLSDQBDKgGz JGz+4cDtCsoyM4Den7rIR82H8ZL1fuQqni19vu5gWFWGNGNMBQbOArAAt2pXGmp8VIJja75jSl OsYOHC6Zut3NieZkRf1Eqn4kjExL2mCjkFlv++LIS8uTSA==; 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: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=p7YUWiG2No0uG2Rah8sbOvqm8/ufR5+UgZlUKmdCwqA=; b=h5dRvNQT+H5t6GqDyCGhVRL+KE vv7GbKTQesIVhIdSJ62alp+nmWRFa7DSKuadH+Wmz37ZnUzkZMKwnNkgboz6phGVBt4j1xK3YM5B8 76yT5nQh23wVRD8edPw3Hy5AIn99vlVmerDO07ZXB6+WbIlUZHErgHINCMFhwFEeMJhBAm/g0B4C2 ByRa5CuYRtkylbT5Ig3RFWf2bSmXuvShAavtv+EljFrHKJjC0x0owTgxtr3/1kqlVf7bvTVku2Q9K 08hKUhP0znj+q72rKR3AoxzS3QafsodhJr32R4wlUfZ62TBHgNgUhLYlaLVvYSbVqYGdEh21Nq1oM wNDY6y2A==; Received: by zero.zsh.org with local id 1rk8iK-0005xi-Ju; Tue, 12 Mar 2024 20:27:08 +0000 Authentication-Results: zsh.org; iprev=pass (relay9-d.mail.gandi.net) smtp.remote-ip=217.70.183.199; dmarc=none header.from=chazelas.org; arc=none Received: from relay9-d.mail.gandi.net ([217.70.183.199]:43147) by zero.zsh.org with esmtps (TLS1.2:ECDHE-RSA-AES256-GCM-SHA384:256) id 1rk8i7-0005de-BC; Tue, 12 Mar 2024 20:26:55 +0000 Received: by mail.gandi.net (Postfix) with ESMTPSA id 539F1FF805; Tue, 12 Mar 2024 20:26:54 +0000 (UTC) Date: Tue, 12 Mar 2024 20:26:53 +0000 From: Stephane Chazelas To: Bart Schaefer Cc: Zsh hackers list Subject: Re: "typeset -p" and no_GLOBAL_EXPORT, other misc. Message-ID: <20240312202653.p2bbwbpxcfazzgpj@chazelas.org> Mail-Followup-To: Bart Schaefer , Zsh hackers list References: <20240312084926.d6vbk75ozud7i2jm@chazelas.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-GND-Sasl: stephane@chazelas.org X-Seq: 52733 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: 2024-03-12 11:32:41 -0700, Bart Schaefer: [...] > > In zsh, readonly var, when not emulating other shells is more > > like typeset -r: > > It should in fact be exactly like "typeset -r", and export should be > exactly like "typeset +x". [...] ITYM typeset -x, but I find that export / typeset -x seem to behave like typeset -gx in that they don't make the variable local. ~$ zsh -c 'a() { export a; a=2; echo $a; }; a=1; a; echo $a' 2 2 ~$ zsh -c 'a() { typeset -x a; a=2; echo $a; }; a=1; a; echo $a' 2 2 ~$ zsh -c 'a() { typeset -gx a; a=2; echo $a; }; a=1; a; echo $a' 2 2 $ zsh -c 'a() { export a; a=3; typeset -p a; }; b() { local a=2; a; typeset -p a; }; a=1; b; typeset -p a' export -x a=3 typeset -x a=3 typeset a=1 So in that way, they're different from readonly/typeset -r That export -x seems bogus BTW as export doesn't accept the -x option. To have a local export variable, it seems you need typeset var; typeset -x var or typeset var; export var instead of typeset -x var. $ zsh -c 'a() { typeset a; typeset -x a; a=3; typeset -p a; }; b() { local a=2; a; typeset -p a; }; a=1; b; typeset -p a' typeset -x a=3 typeset a=2 typeset a=1 -- Stephane