Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
'typeset -F' behaves unexpectedly for "-F 1" and "-F 0"
- X-seq: zsh-workers 35019
- From: David Hughes <dwhughes@xxxxxxxxx>
- To: zsh-workers@xxxxxxx
- Subject: 'typeset -F' behaves unexpectedly for "-F 1" and "-F 0"
- Date: Sun, 03 May 2015 19:21:09 +0000
- Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:from:date:message-id:subject:to:content-type; bh=k/qDlfVnzqwivPwrJhqitWZzKfZ75tF0pfKgc9Yj754=; b=RveP2KlIQ7tHgQk8j0HWMCvdEYpBARLTJkBauygQ6PuYeuwj/tq9QTtkohd1Cjqx1S TdQyeuRaS+9K8adhjG3+ZN2t9nIcF47xVgjk7bqeqzgcKBdka4G3VeEXlTxaQkMfg3QE vZMEk568JQb6T9CFtAPL6yZ4tpIjpcnNPdE7OFAvslEjpEhbEV1EoM13eCINeIr9XsZu JIJwLqcf/xkswyXKltfht/2xpqUs9aSpX5ZtE0EW9tpGlsf0JrhQ0UIl1jvGAEtFYGj0 Udr3RbZzM5jHh1mgbaS8eJt9uQ6FFDYi+TP68M1wBvf5bCUSZvQtSExzNQNAN9Og+TkS gzCA==
- 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
If I run "typeset -F 1 pi=3.14159", I receive a warning of an invalid base,
and the parameter is not initialised. However, the parameter appears to be
created, and thereafter has the expected rounding attribute:
$ typeset -F 1 pi=3.14159
typeset: invalid base (must be 2 to 36 inclusive): 1
$ echo $pi
0.0
$ pi=2.71828
$ echo $pi
2.7
With "-F 0", the warning is also shown, and the parameter is also
configured as a floating point, but when I expand the parameter its
precision is set to the default 10 decimal places:
$ unset pi
$ typeset -F 0 pi=3.14159
typeset: invalid base (must be 2 to 36 inclusive): 0
$ echo $pi
0.0000000000
$ pi=2
$ echo $pi
2.0000000000
The behaviour I expect is that 'pi' should be rounded to one decimal place
with "-F 1", and to the nearest integer with "-F 0". As a fabricated
example:
$ typeset -F 1 pi=3.14159
$ echo $pi
3.1
$ typeset -F 0 e=2.71828
$ echo $e
3
For values of "-F" greater than one, zsh behaves as I expect: no warnings
are issued, and the expanded value is rounded to the specified number of
places:
$ typeset -F 3 pi=3.14159
$ echo $pi
3.142
I have replicated this in zsh 5.0.5, and I do not see any related bug when
searching http://sourceforge.net/p/zsh/bugs/ for "typeset" or "float", so I
guess this issue is still extant in the dev version.
I didn't have enough C skill to understand the relevant parameter code and
structs from bin_typeset() down to typeset_setbase() within an hour, but
please let me know if I can provide more information at a simpler level.
Messages sorted by:
Reverse Date,
Date,
Thread,
Author