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 A957E2B22D for ; Wed, 17 Jan 2024 05:45:04 +0100 (CET) ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1705466704; b=o0qpPlrv52Mwe0CbDtrQqJn+02zSRhYYq4Zqa13Y1qv1XKHLjlrwwIGUOX+an8tIxwtgCxKkna nD9+P2/4+RxC1naUp5cCHXhnuC4RpqghPjXEUgo4BTZT+hvb4CHQ/AdDmPLiuZdumerjimMWvf ebPwJ81PAMzXtRXBpSfLSBmYTchFFKQsXepLSHup/X6Hfp1MdrtXfLORhGMIRHH8i8BKr8np0l 5LGGRORzMVhnXL/bPxMmN9UgfGJO/M5jF2hzLgq6GpVbVTKAXL3RTem8jrhTF4USHzdFo40jmc 5sR0wLgPJabopakTlkTSJCnQYASySc2zGmZlnwPKFSyGBg==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (mail-ej1-f43.google.com) smtp.remote-ip=209.85.218.43; dkim=pass header.d=brasslantern-com.20230601.gappssmtp.com header.s=20230601 header.a=rsa-sha256; dmarc=none header.from=brasslantern.com; arc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed; d=zsh.org; s=rsa-20210803; t=1705466704; bh=kAnVtnVRi1q2fw/NvAwfh3U0uykUU+p9xwzVMyPy+xI=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:Content-Type:To:Subject:Message-ID:Date:From:MIME-Version: DKIM-Signature:DKIM-Signature; b=paE0ud1RQMZpN3DLmHz8dTl8LFAWhJDaB9ruvCnok/4vrw0ByxNJKXaoTVH0pn971ZJzC1fU4Q Kr6ULzLCyBs8C4FYNW8kzrScL4oblBiMk9L/HkFztl9y9dwDzT6lYtZlJma7Fqk/GGrr1ZezSC S9e0Y+nDDUAVTmvC1IWQotfjNu2jvV/Wo8Sh+Cv51ii1jXEi7O2iQ9rhbMgLYrxLLZSabespxN 24Nemi0XkEUTgsa6hekLc7SGEklx6qpzhRQok+RKKdXuWOn1WQH52/RIKPlhdFLoVwSK44BE4O KagPz1TkU+bDqxJM1BuRU5slifHXws481n5YTN6OLOQ2BQ==; 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: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:In-Reply-To:References; bh=1Z/fZdNIBhtIUJF0BMpc5iTvz4zKKVENG1bJhegXYzc=; b=fyKf1TQCUA9TO9x/gxVLigg/dM qQd9VuKvPvnzay7edC75AnvC7EN3WCbfbz0Xu2b1yyGRcuj+VkGHspOq8srxXHkJEjd093jxSfxIr 2FpsZpNdAdNw4ljacVGM5qCsk+gvljaovEzhRUkXxLKK66aRhX4yqNCFRKm1ykOndDxs0rFmFEm3d nYrodOZs3gUc2TEzYjnZ44kYn5p6miQ6DtDQQQ+0aHY+oO38+T1buOzPYnmIml+NDzY8rgmE0H1hI Z3eNGWEFneuqSsAU4l0ggSOQed6wtkne6tSl8DcoPOESz5AF3f/2l3j7i3hrNuDWuXhlCwhv1vyJI 3uA9Tg9A==; Received: by zero.zsh.org with local id 1rPxnT-000CAT-TG; Wed, 17 Jan 2024 04:45:04 +0000 Authentication-Results: zsh.org; iprev=pass (mail-ej1-f43.google.com) smtp.remote-ip=209.85.218.43; dkim=pass header.d=brasslantern-com.20230601.gappssmtp.com header.s=20230601 header.a=rsa-sha256; dmarc=none header.from=brasslantern.com; arc=none Received: from mail-ej1-f43.google.com ([209.85.218.43]:60596) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_128_GCM_SHA256:128) id 1rPxnA-000Brb-Rc; Wed, 17 Jan 2024 04:44:47 +0000 Received: by mail-ej1-f43.google.com with SMTP id a640c23a62f3a-a2dbc61fe89so325715266b.0 for ; Tue, 16 Jan 2024 20:44:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=brasslantern-com.20230601.gappssmtp.com; s=20230601; t=1705466684; x=1706071484; darn=zsh.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=1Z/fZdNIBhtIUJF0BMpc5iTvz4zKKVENG1bJhegXYzc=; b=wmL1h6OyNSU3orFwVU/rhihPBAR5wJOAxWlTu/jjxcGip/3IGJT2YCUUhh0ReHvwhw m7rXxkdFSKPqcHfd41wWUcMjNGq0b+Mcrok003fofvS+lvCEoyvTbM69l1KrxkGCRoyG YwV7EljnFr3E7Yd3TV7dBlWEidDJ0lNA96AmMoJZzItHOiGxegvkBeEJHC8kAdlyTCDW Xg5yW0O+zvuRkMfvKwPw6EVGcY/B7I6WMWvX0YdFO/f67JQpZ2uFYlzKCtZ6V8dDCQ8B on8iUXlPBqbTARuJq9e7sy0rx0M+pAyGgh/88FR+7x9Ap5/K2DkvfDjj2+bJGVazTI8M eACA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705466684; x=1706071484; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=1Z/fZdNIBhtIUJF0BMpc5iTvz4zKKVENG1bJhegXYzc=; b=nRzv/LKAYYX+ddj0U94IdyvNAJweD/VJkvvkfMC2o1e4dJhJaGoMvZNkx55XFO8d6V 4jBQjlhNsHFBuDeo/sbAlItRYQ8Ec2/OalxnFlyX+OOlj2AbS/n2YRmxroKDQEWrS971 +AuG9Qaf8X6CQWKNtCEDH3ces9Ntd0rMmwBya6opXbaJWF0QIdLEU5LeROCWTUoYB89N q28Pmp7ub+lqOgGym4ofKzm/bez2WUvPiC9F+LGqr4LHWcuCy5Ff6yS2aUxN7MqFxwzt JY1KhJXwL1YlV8Mz7abJKp7TquCBdAM7c56g5JXa58QijwaUdJIrsODQoUimeQqRMLdZ MjJg== X-Gm-Message-State: AOJu0YwIUtRvSw7SBfVmYWgg2Ehf2kait7Xi3QRiloJ/z2LjPlulq5RY RRkL7troUBDZdgJiID9NlTi9uSvio6QEE7znhtXZytwxQBKOoDXPtX7yiF8vdg== X-Google-Smtp-Source: AGHT+IF/l0r29XTgN1o3lL39Y0VA+h2tFCcqTP0+3UvJsZBo72txrc/Kzgf74RMTt/FVUXcbRC31xqb7E6PkwnMaY7A= X-Received: by 2002:a17:906:36db:b0:a27:ef77:dd31 with SMTP id b27-20020a17090636db00b00a27ef77dd31mr4129234ejc.91.1705466684162; Tue, 16 Jan 2024 20:44:44 -0800 (PST) MIME-Version: 1.0 From: Bart Schaefer Date: Tue, 16 Jan 2024 20:44:32 -0800 Message-ID: Subject: Parameter name argument of sysread, read, print -v, what else? To: Zsh hackers list Content-Type: text/plain; charset="UTF-8" X-Seq: 52483 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: In his "slurp" example, Roman wrote: sysread 'content[++i]' Nifty, but raises an issue we've tackled elsewhere, e.g. horse='content[$(eval $trojans)]' sysread $horse This is disallowed in named references by imposing noexec around the subscript expansion. There's an uncommitted patch from Oliver (workers/52293) using a similar technique for a similar concern about [[ -v $var ]] (raised in users/29343). In the nameref and [[ -v ... ]] cases the issue arose because of calling getvalue() and is fixed by switching to fetchvalue(). For sysread etc. the problem is from calling setsparam() which calls assignsparam() ... which calls getvalue(). Similarly for setaparam() + assignaparam(). It would break swaths of stuff to to restrict subscript expansion in every case of setting a parameter, so we can't attack this at the lowest level without altering call signatures of at least some portion of the function chain. Is this just something we acknowledge and perhaps document? Thoughts?