diff options
author | john haque <j.eh@mchsi.com> | 2012-02-19 08:44:00 -0600 |
---|---|---|
committer | john haque <j.eh@mchsi.com> | 2012-02-19 08:44:00 -0600 |
commit | cb17a712ea65f6510e0000374cce4efbf4ffb902 (patch) | |
tree | 3b82a95607edb6adba2bbd49934851c6547d7703 /awkgram.c | |
parent | 0221eb79f43f4ef5c8d74759679a501607936d19 (diff) | |
download | egawk-cb17a712ea65f6510e0000374cce4efbf4ffb902.tar.gz egawk-cb17a712ea65f6510e0000374cce4efbf4ffb902.tar.bz2 egawk-cb17a712ea65f6510e0000374cce4efbf4ffb902.zip |
Finish builtins for MPFR.
Diffstat (limited to 'awkgram.c')
-rw-r--r-- | awkgram.c | 20 |
1 files changed, 14 insertions, 6 deletions
@@ -6578,21 +6578,29 @@ parms_shadow(INSTRUCTION *pc, int *shadow) void valinfo(NODE *n, Func_print print_func, FILE *fp) { - /* FIXME -- MPFR */ - if (n == Nnull_string) print_func(fp, "uninitialized scalar\n"); else if (n->flags & STRING) { pp_string_fp(print_func, fp, n->stptr, n->stlen, '"', FALSE); print_func(fp, "\n"); - } else if (n->flags & NUMBER) + } else if (n->flags & NUMBER) { +#ifdef HAVE_MPFR + if (n->flags & MPFN) + print_func(fp, "%s\n", mpfr_fmt("%.17R*g", RND_MODE, n->mpfr_numbr)); + else +#endif print_func(fp, "%.17g\n", n->numbr); - else if (n->flags & STRCUR) { + } else if (n->flags & STRCUR) { pp_string_fp(print_func, fp, n->stptr, n->stlen, '"', FALSE); print_func(fp, "\n"); - } else if (n->flags & NUMCUR) + } else if (n->flags & NUMCUR) { +#ifdef HAVE_MPFR + if (n->flags & MPFN) + print_func(fp, "%s\n", mpfr_fmt("%.17R*g", RND_MODE, n->mpfr_numbr)); + else +#endif print_func(fp, "%.17g\n", n->numbr); - else + } else print_func(fp, "?? flags %s\n", flags2str(n->flags)); } |