Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: Bug: [ "(" = ")" ] is true
- X-seq: zsh-workers 37363
- From: Stephane Chazelas <stephane.chazelas@xxxxxxxxx>
- To: Martijn Dekker <martijn@xxxxxxxx>
- Subject: Re: Bug: [ "(" = ")" ] is true
- Date: Wed, 9 Dec 2015 15:58:23 +0000
- Cc: zsh-workers@xxxxxxx
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:to:cc:subject:message-id:mail-followup-to:references :mime-version:content-type:content-disposition:in-reply-to :user-agent; bh=MklRUi8XJ06DOzgaFMeBvTyay7pmQSq1nZnWTrc5NPE=; b=pbkM8gWaqCiuMwQotZeRGruQPyaSn023Myk0wTv7InZbrt1hqpx84RQCzzxQMaSyHp md4HD9TUI2Q2/c1hD03s0+zzRfm3GQPdWol6H+nWz7pgaEIIPu2rMqsHqrLSILYIwSr3 Dldfv9mVknCk0pcmTXb5smW4MLK0KxmBzR2VtK3Y9As7PBfTrBbJBXMcqm5VUI/Hg1uK RaRqQYybK1fMJz8c6RjHkIxWb1QlHUJj7dFLip4wJYiP7Y0uI8aDQLK/kw3/a+GAzHBr uTwQyDwUPuAHXJacIRBMHnsX+zqojtZF2R6nnbHfv3rjhWla6LcIjSuhGq/Nrk062xEO KwlA==
- In-reply-to: <56684A0A.8010404@inlv.org>
- List-help: <mailto:zsh-workers-help@zsh.org>
- List-id: Zsh Workers List <zsh-workers.zsh.org>
- List-post: <mailto:zsh-workers@zsh.org>
- Mail-followup-to: Martijn Dekker <martijn@xxxxxxxx>, zsh-workers@xxxxxxx
- Mailing-list: contact zsh-workers-help@xxxxxxx; run by ezmlm
- References: <56684A0A.8010404@inlv.org>
2015-12-09 16:34:34 +0100, Martijn Dekker:
> There is a string comparison bug with `[' and `test'; the result is true
> if the first string starts with '(' and the second string starts with ')'.
>
> $ [ "(" = ")" ] && echo oops || echo ok
> oops
> $ [ ")" = "(" ] && echo oops || echo ok
> ok
> $ [ "((" = "))" ] && echo oops || echo ok
> oops
> $ [ "((" = ")x" ] && echo oops || echo ok
> oops
> $ [ "(x" = ")" ] && echo oops || echo ok
> oops
> $ [ "x(" = ")" ] && echo oops || echo ok
> ok
> $ [ "(" = "x)" ] && echo oops || echo ok
> ok
>
> This appears to be a long-standing bug. I confirmed it in:
>
> zsh 4.3.6
> zsh 5.1.1
> zsh 5.2
>
> I also found that the bug does *not* exist in zsh 4.1.1.
[...]
http://www.zsh.org/mla/users/2007/msg01223.html seems to be to
blame.
If the first argument starts with a "(" and the last one starts in
a ")", they are both removed.
So all operators are affected not just "=" ([ "(file1)" -nt
")file2(" ]...)
--
Stephane
Messages sorted by:
Reverse Date,
Date,
Thread,
Author