Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: extra arguments inserted by glob thinger e:: get sorted afterwards
- X-seq: zsh-workers 27668
- From: Bart Schaefer <schaefer@xxxxxxxxxxxxxxxx>
- To: zsh workers <zsh-workers@xxxxxxx>
- Subject: Re: extra arguments inserted by glob thinger e:: get sorted afterwards
- Date: Fri, 05 Feb 2010 08:50:31 -0800
- In-reply-to: <201002051549.o15Fn9lr024564@xxxxxxxxxxxxxx>
- List-help: <mailto:zsh-workers-help@zsh.org>
- List-id: Zsh Workers List <zsh-workers.zsh.org>
- List-post: <mailto:zsh-workers@zsh.org>
- Mailing-list: contact zsh-workers-help@xxxxxxx; run by ezmlm
- References: <237967ef1002050715o3be2d441rcc8dbeb3e2b00483@xxxxxxxxxxxxxx> <201002051549.o15Fn9lr024564@xxxxxxxxxxxxxx>
On Feb 5, 3:49pm, Peter Stephenson wrote:
}
} Mikael Magnusson wrote:
} > Hi, someone just asked on irc how to give a globbed list of files to a
} > program with a -f inserted before each argument, so I told him
} > *(e:'reply=(-f $REPLY)':), that doesn't work however, as the arguments
} > are resorted afterwards, which seems like the less useful way to do
} > it.
}
} It's the *only* way to do it. The arguments are all assumed to be
} files, which is after all the point of globbing. Either you get them
} sorted as files or you don't get them sorted.
I suppose what Mikael would like is for "-f $REPLY" to be glob-sorted
as a unit, but still word-split at parse time. Breaks if the actual
file name has spaces.
The manual sort of implies that *(e.'reply+="-f $REPLY"'.:x) should be
the way to do this -- glob first, then split the result into words at
whitespace after; the doc says only that :x doesn't work for parameters,
failing to mention that it doesn't work for globbing either. However,
there's an equally good argument that the :x would apply before sorting,
if it worked at all.
Messages sorted by:
Reverse Date,
Date,
Thread,
Author