diff options
author | Kevin Ryde <user42@zip.com.au> | 2003-12-09 21:22:40 +0100 |
---|---|---|
committer | Kevin Ryde <user42@zip.com.au> | 2003-12-09 21:22:40 +0100 |
commit | 825300f88084fbce258914610b9fd35258678716 (patch) | |
tree | 4f02b8256a7c2d740a6da30cb2182310ce525b82 /demos | |
parent | 64c4798a952ce5281b39822eef43203240428c50 (diff) | |
download | gmp-825300f88084fbce258914610b9fd35258678716.tar.gz |
* demos/perl/GMP/Mpf.pm (overload_string): Corrections to $# usage.
Diffstat (limited to 'demos')
-rw-r--r-- | demos/perl/GMP/Mpf.pm | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/demos/perl/GMP/Mpf.pm b/demos/perl/GMP/Mpf.pm index 308457bd5..efa0a0a7b 100644 --- a/demos/perl/GMP/Mpf.pm +++ b/demos/perl/GMP/Mpf.pm @@ -73,15 +73,18 @@ sub import { sub overload_string { my $fmt; - if (! defined $OFMT) { - $fmt = '%.Fg'; - } else { + no warnings; + if (defined ($#)) { + $fmt = $#; + use warnings; # protect against calling sprintf_internal with a bad format - if ($OFMT !~ /^(%%|[^%])*%[-+ .\d]*[eEfgG](%%|[^%])*$/) { - die "GMP::Mpf: invalid \$# format: $OFMT\n"; + if ($fmt !~ /^((%%|[^%])*%[-+ .\d]*)([eEfgG](%%|[^%])*)$/) { + die "GMP::Mpf: invalid \$# format: $#\n"; } - $fmt = $OFMT; - $fmt =~ s/(.)$/F$1/; + $fmt = $1 . 'F' . $3; + } else { + use warnings; + $fmt = '%.Fg'; } GMP::sprintf_internal ($fmt, $_[0]); } |