gawk-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[gawk-diffs] [SCM] gawk branch, num-handler, updated. 9565731d6ee1a41844


From: John Haque
Subject: [gawk-diffs] [SCM] gawk branch, num-handler, updated. 9565731d6ee1a418444676846e860881cab78441
Date: Mon, 31 Dec 2012 10:52:53 +0000

This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gawk".

The branch, num-handler has been updated
       via  9565731d6ee1a418444676846e860881cab78441 (commit)
      from  c5a43d6d92022ff834f28563085fa9bcf0f38d85 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://git.sv.gnu.org/cgit/gawk.git/commit/?id=9565731d6ee1a418444676846e860881cab78441

commit 9565731d6ee1a418444676846e860881cab78441
Author: John Haque <address@hidden>
Date:   Mon Dec 31 04:49:29 2012 -0600

    Initialize MNR, MFNR and set MALLOC flag for mpfr numbers.

diff --git a/io.c b/io.c
index 666bfde..0aa4aec 100644
--- a/io.c
+++ b/io.c
@@ -382,6 +382,7 @@ nextfile(IOBUF **curfile, bool skipping)
                        return 0;
        }
 
+       (void) force_number(ARGC_node->var_value);      /* make no assumptions! 
*/
        argc = get_number_si(ARGC_node->var_value);
        
        for (; i < argc; i++) {
diff --git a/mpfr.c b/mpfr.c
index 83b37a1..4d4de53 100644
--- a/mpfr.c
+++ b/mpfr.c
@@ -150,7 +150,6 @@ mpfp_tofloat(const NODE *t, mpfr_ptr pf)
 }
 
 
-
 numbr_handler_t mpfp_hndlr = {
        mpfp_init,
        mpfp_version_string,
@@ -214,6 +213,8 @@ mpfp_init(bltin_t **numbr_bltins)
        ROUND_MODE = mpfp_get_rounding_mode(rndmode[0]); 
        mpfr_set_default_rounding_mode(ROUND_MODE);
 
+       mpz_init(MNR);
+       mpz_init(MFNR);
        do_ieee_fmt = false;
 
        mpfr_init2(_mp1, PRECISION_MIN);
@@ -261,7 +262,7 @@ mpfp_version_string()
 static unsigned long
 mpfp_toulong(const NODE *n)
 {
-       return (n->flags & MPFN) ? mpfr_get_ui(n->qnumbr, ROUND_MODE) : 
mpz_get_ui(n->qnumbr);
+       return (n->flags & MPFN) != 0 ? mpfr_get_ui(n->qnumbr, ROUND_MODE) : 
mpz_get_ui(n->qnumbr);
 }
 
 /* mpfp_tolong --- conversion to long */
@@ -269,7 +270,7 @@ mpfp_toulong(const NODE *n)
 static long
 mpfp_tolong(const NODE *n)
 {
-       return (n->flags & MPFN) ? mpfr_get_si(n->qnumbr, ROUND_MODE) : 
mpz_get_si(n->qnumbr);
+       return (n->flags & MPFN) != 0 ? mpfr_get_si(n->qnumbr, ROUND_MODE) : 
mpz_get_si(n->qnumbr);
 }
 
 /* mpfp_todouble --- conversion to AWKNUM */
@@ -277,7 +278,7 @@ mpfp_tolong(const NODE *n)
 static AWKNUM
 mpfp_todouble(const NODE *n)
 {
-       return (n->flags & MPFN) ? mpfr_get_d(n->qnumbr, ROUND_MODE) : 
mpz_get_d(n->qnumbr);
+       return (n->flags & MPFN) != 0 ? mpfr_get_d(n->qnumbr, ROUND_MODE) : 
mpz_get_d(n->qnumbr);
 }
 
 /* mpfp_touintmax_t --- conversion to uintmax_t */
@@ -285,7 +286,7 @@ mpfp_todouble(const NODE *n)
 static uintmax_t
 mpfp_touintmax_t(const NODE *n)
 {
-       return (n->flags & MPFN) ? mpfr_get_uj(n->qnumbr, ROUND_MODE) \
+       return (n->flags & MPFN) != 0 ? mpfr_get_uj(n->qnumbr, ROUND_MODE) \
                        : (uintmax_t) mpz_get_d(n->qnumbr);
 }
 
@@ -294,7 +295,7 @@ mpfp_touintmax_t(const NODE *n)
 static int
 mpfp_sgn(const NODE *n)
 {
-       return (n->flags & MPFN) ? mpfr_sgn(MPFR_T(n->qnumbr)) \
+       return (n->flags & MPFN) != 0 ? mpfr_sgn(MPFR_T(n->qnumbr)) \
                : mpz_sgn(MPZ_T(n->qnumbr));
 }
 
@@ -328,7 +329,7 @@ mpfp_make_node(unsigned int type)
        }
        
        r->valref = 1;
-       r->flags |= (NUMBER|NUMCUR);
+       r->flags |= (MALLOC|NUMBER|NUMCUR);
        r->stptr = NULL;
        r->stlen = 0;
 #if MBS_SUPPORT
@@ -867,6 +868,7 @@ mpfp_set_var(const NODE *var)
                        NR = mpz_fdiv_q_ui(MNR, r, LONG_MAX);   /* MNR is 
quotient */
                else
                        FNR = mpz_fdiv_q_ui(MFNR, r, LONG_MAX);
+
                if (r != val->qnumbr)
                        mpz_clear(mpz_val);
        }
diff --git a/msg.c b/msg.c
index d61fea0..dd83759 100644
--- a/msg.c
+++ b/msg.c
@@ -90,13 +90,11 @@ err(bool isfatal, const char *s, const char *emsg, va_list 
argp)
 
 
 /*
- * N.B: format is awk printf format, NOT C format or any other special format
- * supported. MUST NOT throw warning in format tree. "%ld" is BAD, "%d" is Ok!
+ * fmt_number --- format a number node for use in error messages.
+ *     N.B: format is awk printf format. MUST NOT throw warning in format
+ *     tree. "%ld" is BAD, "%d" is Ok!
  */
 
-
-/* N.B: FORMAT must pass fmt_ok() used to check CONVFMT/OFMT specifier */
-
 const char *
 fmt_number(const char *format, const NODE *n)
 {
@@ -104,7 +102,7 @@ fmt_number(const char *format, const NODE *n)
        static char *num_str;
        extern bool fmt_ok(const char *p);
 
-       assert(fmt_ok(format) == true);
+       /* FIXME: %d etc -- assert(fmt_ok(format) == true); */
        assert((n->flags & (NUMBER|NUMCUR)) != 0);
 
        /* copy number so not to change state of the original including flags */

-----------------------------------------------------------------------

Summary of changes:
 io.c   |    1 +
 mpfr.c |   16 +++++++++-------
 msg.c  |   10 ++++------
 3 files changed, 14 insertions(+), 13 deletions(-)


hooks/post-receive
-- 
gawk



reply via email to

[Prev in Thread] Current Thread [Next in Thread]