From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 4537 invoked by alias); 2 Nov 2015 22:10:44 -0000 Mailing-List: contact zsh-users-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Users List List-Post: List-Help: X-Seq: 20882 Received: (qmail 11535 invoked from network); 2 Nov 2015 22:10:43 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,T_DKIM_INVALID autolearn=ham autolearn_force=no version=3.4.0 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=brasslantern_com.20150623.gappssmtp.com; s=20150623; h=from:message-id:date:in-reply-to:comments:references:to:subject :mime-version:content-type; bh=7iT+1Qfu5zMdd8CNQmjyhb6WTGBVIvxZkbnxMXOUNtM=; b=r/hpmBgdU332OWeAzimR4xmhUjShehB1Ik7K1h0Sbc8d16jAvUzZeT7lDHa6/hU6q3 IUYjAASz57tePjtgcfzBR4MyEglGZeLy+7onK0F/IT/DONYEmd3MK0Hig1SqQgPkbQr0 nY0wjoCCksWbCsGae9cJGWxl22W8ygRSPEHkS8lOZLC6oga3Up1qdUWDHDdwjzrj6wZ8 5fa8nF3l2yykNSp8lDy7ptU15YyS8J9tkUerWDxaPDkP7Qk+uzyGD9zUvrZJR5/SSbMk 2aR1bAcFjY1tZk8XtubyjoJU1J16GS+pM49wudqwcTyNl7SH/7kY3ZuD2bzoD3CPKVca BeqQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:message-id:date:in-reply-to:comments :references:to:subject:mime-version:content-type; bh=7iT+1Qfu5zMdd8CNQmjyhb6WTGBVIvxZkbnxMXOUNtM=; b=Vk4b9uk8kP+4yFFh4jrafmvQZLe8fqhnGG6nOBgTdXIXdxUcMaG6VhyYPeW45vE2Jx 0cNxo1M76aIMCdRezIyjuE6f47y8ypAaNlpGvYPdFC+rZaiQioTxVWez6s/ajvQnJqAh PYtaneIhZS3s3fSDCRBTTf9XsW3xKgKBpc1XHSNthL/j+1/xQp/wEtYUqHhItnosECbe BhscJV0CU4CGpzJGr7gCGq74x7EI2+pWeHVn57esFA3fPZ/ANUSRjOrrCJ70J3zehd1b 4M5PtKvUPZuiRYjZX8jCLWnk+bjeAmPYeD0zdE27+ipaxpH8ABGD0Pe71d59RXppVeiP Itqg== X-Gm-Message-State: ALoCoQkhipxFXTs1vOxW6p6OQ0W1sy5t0z/xIApMo6PwXjy2lhw+jiRy6ReeQ57Hv/iJPc1hxYuN X-Received: by 10.202.189.65 with SMTP id n62mr8261759oif.87.1446502239165; Mon, 02 Nov 2015 14:10:39 -0800 (PST) From: Bart Schaefer Message-Id: <151102141036.ZM17876@torch.brasslantern.com> Date: Mon, 2 Nov 2015 14:10:36 -0800 In-Reply-To: <280101446493068@web5o.yandex.ru> Comments: In reply to ZyX "Re: easy calling of associative array?" (Nov 2, 10:37pm) References: <56369C7B.2030604@eastlink.ca> <1237641446422150@web6m.yandex.ru> <5636B333.8060300@eastlink.ca> <151101190842.ZM16752@torch.brasslantern.com> <5636D99F.2030807@eastlink.ca> <151101225100.ZM16882@torch.brasslantern.com> <563784B5.3040901@eastlink.ca> <151102082808.ZM17640@torch.brasslantern.com> <5637AC27.8010007@eastlink.ca> <280101446493068@web5o.yandex.ru> X-Mailer: OpenZMail Classic (0.9.2 24April2005) To: "zsh-users@zsh.org" Subject: Re: easy calling of associative array? MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii These should be robust for Zyx's failure cases (and throw errors in some other strange cases where they should). In older zsh where the (b) flag is not present, (q) will work in MOST cases. echo_v () { [[ -n $1 ]] && (( ${(P)+1} )) && print -R "${(P)${:-${1}[${(b)2}]}}" } get_v () { [[ -n $1 && $3 != *=* ]] && (( ${(P)+1} )) && typeset -g "${3:-REPLY}=${(P)${:-${1}[${(b)2}]}}" } set_v () { [[ -n $1 ]] && (( ${(P)+1} )) && typeset -g "${1}[${(b)2}]=$3" } test_v () { [[ -n $1 ]] && (( ${(P)+1} )) && [[ ${(P)${:-${1}[${(b)2}]}} = $3 ]] }