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, HTML_MESSAGE,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 16273 invoked from network); 3 Aug 2021 20:42:32 -0000 Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368) by inbox.vuxu.org with ESMTPUTF8; 3 Aug 2021 20:42:32 -0000 ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20200801; t=1628023352; b=XLX7a4zvjTa7IkHF9SCcHYi4r/ZYHs5FEMc3zR+k+q0G/rfWaw91nhS40/Of84o2UjhcD9eShU MUEC5NQK2Qs6jTw11CWPchU4qBCzpRZ5s/QCeKXcai20F1yGBu6ed0rhBzIT4xVkbJWDrytnEr cOSf0slPUClcPT/phAWqWnF3c2JWMPwqX+UcbjRsf01wPUXR/3YS51Vyebp/MoTksuanPapTi8 zJ31INsZQt2KhFR/deNxQpEvl/5ayc0UWwpMN4ZcuBcon59o2Udn4O4dlBmZ9/yYerQH7CgKJq A/e7JukwXtkabBZ+/8sWvqMoiweZ09z1iIf6ug6HKsHJFg==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (mail-ed1-f48.google.com) smtp.remote-ip=209.85.208.48; dmarc=none header.from=alumni.princeton.edu; arc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20200801; t=1628023352; bh=OL2eS0ckNxhEg9UYZYvo+m3kdDnRF79zfIFGE4JVR40=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:Content-Type:Cc:To:Subject:Message-ID:Date:From:In-Reply-To: References:MIME-Version:DKIM-Signature; b=o7j1OYRvYQ0dzz/G3SrY6AOies2Lf3bK58bpB+AuMG3dOwjDstaXNg4/iHmW+L5ASoO+xzcqRX QEH5abvVcRJkOdjEImzekjcBQFZXMXVJl9Lj+D4nAKsusK4IGn4h/8nESYvPHll0H9nFv44nCZ Mbnn/iaaEtEfp/xDd3h7qdCJeCEatDI1L9d9fJIqUszJDeSzLnGN7Q3SmLhlqL8Ib0aonrewDC 3hNb8xSp36vPpYPny8CUzhjHnFsxhBWmEphD4Pw349xvvaQlnYZ2dQpFX5aZc6CraiNPmYmOzw 5efWKmp8mv7C8s3WctWSZm20ZOK1cJXy6KW9cJKxw4UHuQ==; DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=zsh.org; s=rsa-20200801; h=List-Archive:List-Owner:List-Post:List-Unsubscribe: List-Subscribe:List-Help:List-Id:Sender:Content-Type:Cc:To:Subject:Message-ID :Date:From:In-Reply-To:References:MIME-Version:Reply-To: Content-Transfer-Encoding:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=20szO5Ge2qncmaZtb1Z0me8utJEymXA7zL/MBG2LttQ=; b=pxYC692gEVWtT8TJkP1/CjvdO8 eV9gtCuV7HNlnePQycviHhGmjFpyf2yQOG8pDnIz8e0YV9hdZWeSkoQenrTKx9slg4BuXSpVsq2uV 8OWR1Pks7RGoGzFyihXxbVKnomRLwuLD6j4Kpj5KqtW7MWrHXnVIOJhUYnO3HBjn2HFIjZMyg5ogs BU8NAfuc5NmHOzQ6+0AsciqepF0y37CScvWPZNe0etTyf4BjIGM2dnXATusLLJ42MB+YKuNVU13E3 TpuidvUFi4ZJSlhYFBtTa5g0fgkiAi1fmmsLQP9/DFYNSgiYhZTF/qqPNP7ReUavdDzG7/+GdMARp S50gF3iQ==; Received: from authenticated user by zero.zsh.org with local id 1mB1FA-000KtH-8F; Tue, 03 Aug 2021 20:42:32 +0000 Authentication-Results: zsh.org; iprev=pass (mail-ed1-f48.google.com) smtp.remote-ip=209.85.208.48; dmarc=none header.from=alumni.princeton.edu; arc=none Received: from mail-ed1-f48.google.com ([209.85.208.48]:33779) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_128_GCM_SHA256:128) id 1mB1EX-000K8m-B0; Tue, 03 Aug 2021 20:41:54 +0000 Received: by mail-ed1-f48.google.com with SMTP id ec13so806906edb.0 for ; Tue, 03 Aug 2021 13:41:53 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=20szO5Ge2qncmaZtb1Z0me8utJEymXA7zL/MBG2LttQ=; b=Bk8XvWRE4HmGCS5KnS9mUI2M1pF+iXuelKWlRAGkIWFWNYbtLkS+tDGcwzV0zkbMki +48amMfHjl+0DybsyhQxZ3n+olXEB04QUYIbT3czSvo4skUbDEZSBhIYMiPJmu+aQXXR 2ctQeF+bVKT5AxWHZZ++EjbF5XekJgdDxJp3BiE/9nuWnXDqgqh/pYS+UdH3hew/ntuQ n6BD2H0opmeLTvsz9iiuGCYNyqEte09gdtQ3rVfseFrXFF9pE2r6G6RDbS59btyQbBpo 1W+TzC2tjnKFsit/lh59NbI1cdzsos2gPJ6ChTxVaI95uU3XJ+MhljL2DCvML3z1lvzy VImg== X-Gm-Message-State: AOAM532n9vuSI9jnvYngrw14qGpJa+daLDt6NhoA07Rikoc+z9p+YzSI BEL8U2RIY0c/KolwhEQ0tvkinQvyCyGMWN2FyqI= X-Google-Smtp-Source: ABdhPJzTu+qNdQ8sOBxTagjKS3UnbbMwfw5p64ZROUzBACUDB4nDtgwXplJtmvk7Wu/AIYPjuzT0RoqtZkAug03MuWY= X-Received: by 2002:a05:6402:31ba:: with SMTP id dj26mr28119204edb.252.1628023313049; Tue, 03 Aug 2021 13:41:53 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Vin Shelton Date: Tue, 3 Aug 2021 16:41:16 -0400 Message-ID: Subject: Re: limit scope of variable To: Ray Andrews Cc: Zsh Users Content-Type: multipart/alternative; boundary="00000000000042aacd05c8adb78f" X-Seq: 26846 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: --00000000000042aacd05c8adb78f Content-Type: text/plain; charset="UTF-8" I think you can prefix the called function with IFS=$OLDIFS. I.e.: IFS=$OLDIFS Rays_function E.g.: function a { ; echo $a ; } : ~ Tue 3 16:37; a=foo : ~ Tue 3 16:37; a foo : ~ Tue 3 16:37; a=bar a bar : ~ Tue 3 16:37; a foo On Tue, Aug 3, 2021 at 4:15 PM Ray Andrews wrote: > I have a function that requires this: > > local IFS=$'\n' > > ... but the function calls other functions in which I need to protect > $IFS from that change. Can I limit the scope? As it is I'm laboring it > with this: > > In the calling function: > > local OLDIFS="$IFS" > local IFS=$'\n' > > In the called function: > > IFS=$OLDIFS > > code ... > code ... > > IFS=$'\n' > return > > ... there's got to be a more streamlined way. > > > --00000000000042aacd05c8adb78f Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
I think you can prefix the called function w= ith IFS=3D$OLDIFS.=C2=A0 I.e.:

IFS=3D$OLDIFS Rays_function

E.g.:

function a {
; echo $a
; }
: ~ = Tue 3 16:37; a=3Dfoo
: ~ Tue 3 16:37; a
foo
: ~ Tue 3 16:37; a=3Db= ar a
bar
: ~ Tue 3 16:37; a
foo



On Tue, Aug 3, 2021 at 4:15 PM Ray Andrews <rayandrews@eastlink.ca> wrote:
I have a function that = requires this:

=C2=A0=C2=A0=C2=A0=C2=A0 local IFS=3D$'\n'

... but the function calls other functions in which I need to protect
$IFS from that change.=C2=A0 Can I limit the scope?=C2=A0 As it is I'm = laboring it
with this:

In the calling function:

=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 local OLDIFS=3D"$IFS"
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 local IFS=3D$'\n'

In the called function:

=C2=A0=C2=A0=C2=A0=C2=A0 IFS=3D$OLDIFS

=C2=A0=C2=A0=C2=A0=C2=A0 code ...
=C2=A0=C2=A0=C2=A0=C2=A0 code ...

=C2=A0=C2=A0=C2=A0=C2=A0 IFS=3D$'\n'
=C2=A0=C2=A0=C2=A0=C2=A0 return

... there's got to be a more streamlined way.


--00000000000042aacd05c8adb78f--