zsh-workers
 help / color / mirror / code / Atom feed
From: Bart Schaefer <schaefer@brasslantern.com>
To: Sebastian Gniazdowski <sgniazdowski@gmail.com>
Cc: "zsh-workers@zsh.org" <zsh-workers@zsh.org>
Subject: Re: Inconsistencies in "-quoting and @-splitting, could someone elaborate?
Date: Sun, 28 Oct 2018 14:12:49 -0700	[thread overview]
Message-ID: <CAH+w=7ZH7tkqcSu6gPd6yOXosa2bGg2n6YtLU2x7rtU2gqsn6w@mail.gmail.com> (raw)
In-Reply-To: <CAKc7PVAReJOH_T24hZ3qEMpyZGaXat3Ak7muYg9vJEC6HZKhag@mail.gmail.com>

On Sun, Oct 28, 2018 at 4:54 AM Sebastian Gniazdowski
<sgniazdowski@gmail.com> wrote:
>
> @ is refered to as "@  -- double-quoted splitting of scalars" in
> completion.

Well, that's incorrect, Oliver should not have put it that way.  @ has
nothing to do with splitting of scalars; it would more correctly say
"prevent double-quoted joining of arrays".  (In general you should
assume the manual is correct when it conflicts with a completion
description, because the latter are often radically abbreviated for
short lines.)

> I understand it as: for quoted expression, regenerate
> array-form by doing splitting.

No, it regenerates nothing.  It just preserves the array form that
already existed.  If there was no array form in the first place, it
has no effect.

> So one can obtain always-array behavior with @.

Also wrong, which is why the (A) flag was extended to mean "treat
single-element arrays as arrays instead of as scalars".  The
description in _brace_parameter has not yet been updated for this
(another example of why you should believe the manual rather than the
completion descriptions).

> % array=( "foo" )
> % print "${#${(@)array}}"
> 1
>
> Despite array is single element, @ splits it into array type.

Again, no.  See my previous message.  ${${array}} is special because
$array is a parameter name.  ${${(s: :)scalar}} remains scalar if
there is no space to split on.  If you want the result of (s::) to
always be an array, use (As::).

  parent reply	other threads:[~2018-10-28 21:13 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-27 10:33 Sebastian Gniazdowski
2018-10-28  0:34 ` dana
2018-10-28  4:54   ` Bart Schaefer
2018-10-28 11:54   ` Sebastian Gniazdowski
2018-10-28 15:41     ` Sebastian Gniazdowski
2018-10-28 15:45       ` Sebastian Gniazdowski
2018-10-28 21:20       ` Bart Schaefer
2018-10-28 21:12     ` Bart Schaefer [this message]
2018-10-29  9:10       ` Sebastian Gniazdowski
2018-10-29 15:24         ` Bart Schaefer
2018-11-05 19:03           ` Sebastian Gniazdowski
2018-11-05 23:20             ` Bart Schaefer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAH+w=7ZH7tkqcSu6gPd6yOXosa2bGg2n6YtLU2x7rtU2gqsn6w@mail.gmail.com' \
    --to=schaefer@brasslantern.com \
    --cc=sgniazdowski@gmail.com \
    --cc=zsh-workers@zsh.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).