aboutsummaryrefslogtreecommitdiffstats
path: root/msg.c
diff options
context:
space:
mode:
authorjohn haque <j.eh@mchsi.com>2012-03-19 04:30:00 -0500
committerjohn haque <j.eh@mchsi.com>2012-03-19 04:30:00 -0500
commit40645cb3cb155eb59dd745af4ae0e06e729c8eb1 (patch)
tree1c24a9a6cb2ac9acc985b3f4667c7139c10c4525 /msg.c
parentb5431a4825e325c61f4043e4d25e47d7891c228c (diff)
downloadegawk-40645cb3cb155eb59dd745af4ae0e06e729c8eb1.tar.gz
egawk-40645cb3cb155eb59dd745af4ae0e06e729c8eb1.tar.bz2
egawk-40645cb3cb155eb59dd745af4ae0e06e729c8eb1.zip
Add arbitrary-precision arithmetic on integers.
Diffstat (limited to 'msg.c')
-rw-r--r--msg.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/msg.c b/msg.c
index e651c8c1..78818187 100644
--- a/msg.c
+++ b/msg.c
@@ -64,15 +64,16 @@ err(const char *s, const char *emsg, va_list argp)
}
#ifdef HAVE_MPFR
- if (FNR_node && (FNR_node->var_value->flags & MPFN) != 0) {
- mpg_update_var(FNR_node);
- mpfr_get_z(mpzval, FNR_node->var_value->mpg_numbr, MPFR_RNDZ);
- if (mpz_sgn(mpzval) > 0) {
+ if (FNR_node && is_mpg_number(FNR_node->var_value)) {
+ NODE *val;
+ val = mpg_update_var(FNR_node);
+ assert((val->flags & MPZN) != 0);
+ if (mpz_sgn(val->mpg_i) > 0) {
file = FILENAME_node->var_value->stptr;
(void) putc('(', stderr);
if (file)
(void) fprintf(stderr, "FILENAME=%s ", file);
- (void) mpfr_fprintf(stderr, "FNR=%Zd) ", mpzval);
+ (void) mpfr_fprintf(stderr, "FNR=%Zd) ", val->mpg_i);
}
} else
#endif