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 24638 invoked from network); 30 Aug 2023 19:46:27 -0000 Received: from zero.zsh.org (2a02:898:31:0:48:4558:7a:7368) by inbox.vuxu.org with ESMTPUTF8; 30 Aug 2023 19:46:27 -0000 ARC-Seal: i=1; cv=none; a=rsa-sha256; d=zsh.org; s=rsa-20210803; t=1693424787; b=WnaxKe34ETfZkYnV/KIaGbQFYbCJ+ihAq1QVQkyA2cDPDt2bBbBd/R74JPHqf/+nLIUjLo4dbt JSJkGKlfijau4hPHZvc0Z6MYW1FifvLQuKRf/Q63uvSudJFwki5SyliAuuyji1H8BZs8AEja9v d/+HhZuYClcl0EpS9tF6v8ET2Odgr4Ts7pBwnnRNVp4v37m0+Samj/FWzAPE2Wk+EAi1VAhZaa M1ul7diM/itWOO09Z2vBU8O0tInnTZ2M2h9J4noO0UdehmBdEwYa4ja4yuGWZUtewNvV/JJnvq t3hwRmV6ZWx1+VfNUmTKYQ2+bAcDlDyFfSOKtwDiWtxmqw==; ARC-Authentication-Results: i=1; zsh.org; iprev=pass (mail-wr1-f54.google.com) smtp.remote-ip=209.85.221.54; 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=1693424787; bh=wtXsnmZ52DIxdWNSFsM5C+SZqI9bC7x4NxXXDeTeBVk=; h=List-Archive:List-Owner:List-Post:List-Unsubscribe:List-Subscribe:List-Help: List-Id:Sender:Content-Transfer-Encoding:Content-Type:To:Subject:Message-ID: Date:From:In-Reply-To:References:MIME-Version:DKIM-Signature:DKIM-Signature; b=mrUxSvEbu7mt9OEYs+rqyuQh98g6T3c+2Wj6HDs5C+Vd2imVLErBz8OOm/f2IOZAsuUT4nh2Vp prrC7SaFPzrQOJr6YWRotOHCsdBWlcNNbUyuspJMa5/I9m6O/uOo9qIZqf2v4kOi6Vb20cYbvL S/pYagxgJXkipxzCF2DTYCU00fTkCXMipFO3Rnr2OC97opRuT+soFiu8TMqBNH48Zh6JxXcxZS Aez+C67OVuioY9NeTY2HIaxHpktKKVeUvr6vHiwKtqt4CFdrZuPMr6xNHnFq0Wr3k4HJh8Ft7Y gmvkGkit1qrewgCIUDUQKmf30d3B/UqpXqfCDIfLhnsxQw==; 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-Transfer-Encoding: Content-Type:To:Subject:Message-ID:Date:From:In-Reply-To:References: MIME-Version:Reply-To:Cc:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID; bh=HD8P9PLp5zRqrx46Lji3acZgCecE3IQlv5LZPU+I8KI=; b=XingeUw0WytCuOd0LZb51LXOsc CNvLt/Op9aiT1MZ6+S4VKyI0W9puwoZEQ6fShVRu1C2SHYfHv+1ps1yLamrG1RgVgjFPRnGPiUvnM /RfyvNKGf14DANL80n2FVKKEjZRBjs+64T47dwBXgtppLs9R2xTc8U1FjTXjzom02h9sCgcShja2V vvSAOAeZIXeyFj/wLlY4xLxd1hQZiDxYwqXkxdzdcBEzAJ/xvMz9f6/2Xr3LiQ6ofPgGWhUEUxboZ MtQ+mfykfvGBrQsz11rKd0VKp/oiOTgVo3ZxvU3K2FayeNKx2h0yF+JIDzwC9nQq2pEkFPRYNcVi1 WODGTukw==; Received: by zero.zsh.org with local id 1qbR8y-000OAD-Qa; Wed, 30 Aug 2023 19:46:24 +0000 Authentication-Results: zsh.org; iprev=pass (mail-wr1-f54.google.com) smtp.remote-ip=209.85.221.54; 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-wr1-f54.google.com ([209.85.221.54]:51621) by zero.zsh.org with esmtps (TLS1.3:TLS_AES_128_GCM_SHA256:128) id 1qbR8g-000Nqh-VQ; Wed, 30 Aug 2023 19:46:08 +0000 Received: by mail-wr1-f54.google.com with SMTP id ffacd0b85a97d-31781e15a0cso5304581f8f.3 for ; Wed, 30 Aug 2023 12:46:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=brasslantern-com.20230601.gappssmtp.com; s=20230601; t=1693424766; x=1694029566; darn=zsh.org; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=HD8P9PLp5zRqrx46Lji3acZgCecE3IQlv5LZPU+I8KI=; b=kQuAuxtos379aCxzcTxXnVBzJ7q7bFIFrHp445Tpcoz8Zk6O7cWntFBvrfQ41k5cMy K7zGRJpmbqoF8ORRi8fqO7MCoq8fWD0Xd3D5f/uPw08yDpoJZa/cc8KUtNyaW0QfZTtO PHSEA0Rz4bKOizI06D+0/odRDrbTGMbEkzQwU1NALkhzXnAaLQb2NnTDhlnZzbrgMcdc c7XtzCzPNdCdK7ljqoXCykhEMImw18RWm4H1KwntV7m+bnT+4LH2mLui+2W3uD6GonhX AKLgcECcunsipl+e/3r5KMybeGZR+6AyIfHAOKFEcBKbWAktspyWgSurpRlPgyz9HgOj /64g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1693424766; x=1694029566; h=content-transfer-encoding:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=HD8P9PLp5zRqrx46Lji3acZgCecE3IQlv5LZPU+I8KI=; b=Pwl3C82gmy8TM0iRXQRXKRF7MOOnmlAMAO5r0WQEn91PDpX0TrZiOXUTERJBb/v/ts zwfohwFWotD3lW1cddmBcmVlrGw5pHqxePKH+lPU3QlTL2ZIF6w8AsnQDaDbjQli0tZk LpEghOIPVcmQSn32Zzb3kiiFkExseuzCHAuDWFGXM0CkIXkXIGm8FcQqYz46zE1z1HHt qm5zPF8CQbfv7VbUBnp1jdq7Be6Ei1lY/fCqT6EenRejytpUv6LdKuOXDlAjA4JgDyvX xvt1V8hzBXXx941VF9jtaYxC8R0syaNR9Q6i6+FXLwx+Ky5gQyVDenAyebNxwueqN5Cn Ww8g== X-Gm-Message-State: AOJu0Yx/l1nXnmCk01Q6FiJjmUMCaKJxWnbZn7E+/pzR3RrshSt0Oqgr JLo9XkNKfa71Iexh6lpFU8S54paBNa098yabT222zHeAeqI+T+v685A= X-Google-Smtp-Source: AGHT+IEhCLEQdpyCYt6aI9qbBRT4s1gORkrexckoovsk7N64oJY/rqke5gIpLPcJL/xUV0wIoCaViq7W72xBDKQqV8g= X-Received: by 2002:a5d:6402:0:b0:31a:e6c2:770d with SMTP id z2-20020a5d6402000000b0031ae6c2770dmr2259674wru.36.1693424766108; Wed, 30 Aug 2023 12:46:06 -0700 (PDT) MIME-Version: 1.0 References: <20230830072753.hhveg7teosubwzq7@chazelas.org> In-Reply-To: <20230830072753.hhveg7teosubwzq7@chazelas.org> From: Bart Schaefer Date: Wed, 30 Aug 2023 12:45:54 -0700 Message-ID: Subject: Re: (LC_ALL=C; set -x 128 129; printf "%s\n" ${(#)@} | hexdump -C) To: Zsh hackers list Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Seq: 52110 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: On Wed, Aug 30, 2023 at 12:28=E2=80=AFAM Stephane Chazelas wrote: > > $ zsh -c 'LC_ALL=3DC; set -x 128 129; printf "%s\n" ${(#)@} | hexdump -C' > +zsh:1> printf '"%s\n"' '' > +zsh:1> hexdump -C > 00000000 22 0a 22 |"."| > 00000003 This doesn't happen if you add +o multibyte: +zsh:1> printf '%s\n' $'\M-\C-@' $'\M-\C-A' +zsh:1> hexdump -C 00000000 80 0a 81 0a |....| 00000004 Doc for (#) says: If the MULTIBYTE option is set and the number is greater than 127 (i.e. not an ASCII character) it is treated as a Unicode character. > Does not happen without LC_ALL=3DC or with just "set -x 128" or with valu= es < > 128, or with printf "%s\n" $'\200' $'\201' So $'\200' isn't subject to unicode interpretation where ${(#):-128} is. But this also doesn't happen with 2 separate arguments ${(#):-128} ${(#):-129}, only with ${(#)@}. So something about the implementation of $@ is mucking up the unicode translation, possibly by leaving it thinking it's in the middle of an incomplete byte sequence? It's also different with double quotes around $@: % zsh -fc 'LC_ALL=3DC; set -x 128 130; printf "%s\n" "${(#)@}" | hexdump -C= ' +zsh:1> printf '"%s\n"' '"' +zsh:1> hexdump -C 00000000 22 22 0a 22 |""."| 00000004