diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2018-04-02 16:40:17 +0300 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2018-04-02 16:40:17 +0300 |
commit | 34021ae7b7b8662b41fe6feeced4cf619cb31c21 (patch) | |
tree | 6eb8b08d2d742d9e479012d542481d3b9a98e3b2 /node.c | |
parent | 2f996c14cd0175edf4fedf8335e40c4dd46e67f7 (diff) | |
parent | e3863843f1f37bf854a4f5a8cf2985448933a42f (diff) | |
download | egawk-34021ae7b7b8662b41fe6feeced4cf619cb31c21.tar.gz egawk-34021ae7b7b8662b41fe6feeced4cf619cb31c21.tar.bz2 egawk-34021ae7b7b8662b41fe6feeced4cf619cb31c21.zip |
Merge branch 'gawk-4.2-stable'
Diffstat (limited to 'node.c')
-rw-r--r-- | node.c | 20 |
1 files changed, 18 insertions, 2 deletions
@@ -306,8 +306,24 @@ r_dupnode(NODE *n) } #endif - getnode(r); - *r = *n; +#ifdef HAVE_MPFR + if ((n->flags & MPZN) != 0) { + r = mpg_integer(); + mpz_set(r->mpg_i, n->mpg_i); + r->flags = n->flags; + } else if ((n->flags & MPFN) != 0) { + r = mpg_float(); + int tval = mpfr_set(r->mpg_numbr, n->mpg_numbr, ROUND_MODE); + IEEE_FMT(r->mpg_numbr, tval); + r->flags = n->flags; + } else { +#endif + getnode(r); + *r = *n; +#ifdef HAVE_MPFR + } +#endif + r->flags |= MALLOC; r->valref = 1; /* |