Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: PATCH: += parameter assignments
- X-seq: zsh-workers 16412
- From: "Bart Schaefer" <schaefer@xxxxxxxxxxxxxxxx>
- To: Oliver Kiddle <okiddle@xxxxxxxxxxx>
- Subject: Re: PATCH: += parameter assignments
- Date: Mon, 7 Jan 2002 17:38:16 +0000
- Cc: zsh-workers@xxxxxxxxxx
- In-reply-to: <3C1DE505.AFA6AB06@xxxxxxxxxxx>
- Mailing-list: contact zsh-workers-help@xxxxxxxxxx; run by ezmlm
- References: <000001c186f3$f4b82bd0$21c9ca95@xxxxxxxxxxxxxx> <3C1DE505.AFA6AB06@xxxxxxxxxxx>
On Dec 17, 12:28pm, Oliver Kiddle wrote:
} Subject: Re: PATCH: += parameter assignments
}
} Borsenkow Andrej wrote:
} >
} > > One possible extension beyond what ksh does would be to also add a -=
} > > assignment. It could be made to prepend to string and array values
}
} > I would prefer += and =+ but that probably breaks ksh93 compatibility.
}
} This issue wouldn't be ksh93 compatibility so much as backward
} compatibility with old zsh scripts or any other scripts.
Sorry not to have followed up on this one sooner, but it came along as I
was getting ready for winter holidays and I didn't have time.
I'm not entirely happy with the addition of the a+=val syntax because it
conflicts (conceptually, not mechanically) with the += operator that is
already present in the math syntax. Consider that the following:
integer i=4
typeset s=4
i+=5
s+=5
((i+=5))
((s+=5))
print $i $s
yields
14 50
However, what I consider to be worse is that:
s=four
((s+=5))
s+=5
print $s
yields
55
Interpreting strings as integers in math context makes some sort of sense,
but doing both that, and also overloading += depending on the parameter
type, is going too far. I think the suggested change for -= would be even
more confusing.
And the following can't be anything but a bug:
s=4four
((s+=5))
s+=5
print $s
yeilds
zsh: bad math expression: operator expected at `four'
65
(Previously
s=4four
((s+=5))
print $s
gave
zsh: bad math expression: operator expected at `four'
4four
but now it somehow reassigns s as 6.)
--
Bart Schaefer Brass Lantern Enterprises
http://www.well.com/user/barts http://www.brasslantern.com
Zsh: http://www.zsh.org | PHPerl Project: http://phperl.sourceforge.net
Messages sorted by:
Reverse Date,
Date,
Thread,
Author