Commit 2f35c79c00c5fd27dce83198c33827497c2eb16c

Francois Perrad 2017-10-18T11:39:14

refactor with FGETS

diff --git a/demo/demo.c b/demo/demo.c
index 64d98b4..a95c768 100644
--- a/demo/demo.c
+++ b/demo/demo.c
@@ -98,6 +98,12 @@ static void _panic(int l)
 }
 #endif
 
+#define FGETS(str, size, stream) \
+   { \
+      char *ret = fgets(str, size, stream); \
+      if (!ret) { _panic(__LINE__); } \
+   }
+
 mp_int a, b, c, d, e, f;
 
 static void _cleanup(void)
@@ -139,7 +145,6 @@ int main(void)
 #if LTM_DEMO_TEST_VS_MTEST
    unsigned long expt_n, add_n, sub_n, mul_n, div_n, sqr_n, mul2d_n, div2d_n,
             gcd_n, lcm_n, inv_n, div2_n, mul2_n, add_d_n, sub_d_n;
-   char *ret;
 #else
    unsigned long s, t;
    unsigned long long q, r;
@@ -701,29 +706,17 @@ printf("compare no compare!\n"); return EXIT_FAILURE;
       printf("%4lu/%4lu/%4lu/%4lu/%4lu/%4lu/%4lu/%4lu/%4lu/%4lu/%4lu/%4lu/%4lu/%4lu/%4lu ",
              add_n, sub_n, mul_n, div_n, sqr_n, mul2d_n, div2d_n, gcd_n, lcm_n,
              expt_n, inv_n, div2_n, mul2_n, add_d_n, sub_d_n);
-      ret=fgets(cmd, 4095, stdin);
-      if (!ret) {
-         _panic(__LINE__);
-      }
+      FGETS(cmd, 4095, stdin);
       cmd[strlen(cmd) - 1] = 0;
       printf("%-6s ]\r", cmd);
       fflush(stdout);
       if (!strcmp(cmd, "mul2d")) {
          ++mul2d_n;
-         ret=fgets(buf, 4095, stdin);
-         if (!ret) {
-            _panic(__LINE__);
-         }
+         FGETS(buf, 4095, stdin);
          mp_read_radix(&a, buf, 64);
-         ret=fgets(buf, 4095, stdin);
-         if (!ret) {
-            _panic(__LINE__);
-         }
+         FGETS(buf, 4095, stdin);
          sscanf(buf, "%d", &rr);
-         ret=fgets(buf, 4095, stdin);
-         if (!ret) {
-            _panic(__LINE__);
-         }
+         FGETS(buf, 4095, stdin);
          mp_read_radix(&b, buf, 64);
 
          mp_mul_2d(&a, rr, &a);
@@ -736,20 +729,11 @@ printf("compare no compare!\n"); return EXIT_FAILURE;
          }
       } else if (!strcmp(cmd, "div2d")) {
          ++div2d_n;
-         ret=fgets(buf, 4095, stdin);
-         if (!ret) {
-            _panic(__LINE__);
-         }
+         FGETS(buf, 4095, stdin);
          mp_read_radix(&a, buf, 64);
-         ret=fgets(buf, 4095, stdin);
-         if (!ret) {
-            _panic(__LINE__);
-         }
+         FGETS(buf, 4095, stdin);
          sscanf(buf, "%d", &rr);
-         ret=fgets(buf, 4095, stdin);
-         if (!ret) {
-            _panic(__LINE__);
-         }
+         FGETS(buf, 4095, stdin);
          mp_read_radix(&b, buf, 64);
 
          mp_div_2d(&a, rr, &a, &e);
@@ -765,20 +749,11 @@ printf("compare no compare!\n"); return EXIT_FAILURE;
          }
       } else if (!strcmp(cmd, "add")) {
          ++add_n;
-         ret=fgets(buf, 4095, stdin);
-         if (!ret) {
-            _panic(__LINE__);
-         }
+         FGETS(buf, 4095, stdin);
          mp_read_radix(&a, buf, 64);
-         ret=fgets(buf, 4095, stdin);
-         if (!ret) {
-            _panic(__LINE__);
-         }
+         FGETS(buf, 4095, stdin);
          mp_read_radix(&b, buf, 64);
-         ret=fgets(buf, 4095, stdin);
-         if (!ret) {
-            _panic(__LINE__);
-         }
+         FGETS(buf, 4095, stdin);
          mp_read_radix(&c, buf, 64);
          mp_copy(&a, &d);
          mp_add(&d, &b, &d);
@@ -818,20 +793,11 @@ printf("compare no compare!\n"); return EXIT_FAILURE;
 
       } else if (!strcmp(cmd, "sub")) {
          ++sub_n;
-         ret=fgets(buf, 4095, stdin);
-         if (!ret) {
-            _panic(__LINE__);
-         }
+         FGETS(buf, 4095, stdin);
          mp_read_radix(&a, buf, 64);
-         ret=fgets(buf, 4095, stdin);
-         if (!ret) {
-            _panic(__LINE__);
-         }
+         FGETS(buf, 4095, stdin);
          mp_read_radix(&b, buf, 64);
-         ret=fgets(buf, 4095, stdin);
-         if (!ret) {
-            _panic(__LINE__);
-         }
+         FGETS(buf, 4095, stdin);
          mp_read_radix(&c, buf, 64);
          mp_copy(&a, &d);
          mp_sub(&d, &b, &d);
@@ -845,20 +811,11 @@ printf("compare no compare!\n"); return EXIT_FAILURE;
          }
       } else if (!strcmp(cmd, "mul")) {
          ++mul_n;
-         ret=fgets(buf, 4095, stdin);
-         if (!ret) {
-            _panic(__LINE__);
-         }
+         FGETS(buf, 4095, stdin);
          mp_read_radix(&a, buf, 64);
-         ret=fgets(buf, 4095, stdin);
-         if (!ret) {
-            _panic(__LINE__);
-         }
+         FGETS(buf, 4095, stdin);
          mp_read_radix(&b, buf, 64);
-         ret=fgets(buf, 4095, stdin);
-         if (!ret) {
-            _panic(__LINE__);
-         }
+         FGETS(buf, 4095, stdin);
          mp_read_radix(&c, buf, 64);
          mp_copy(&a, &d);
          mp_mul(&d, &b, &d);
@@ -872,25 +829,13 @@ printf("compare no compare!\n"); return EXIT_FAILURE;
          }
       } else if (!strcmp(cmd, "div")) {
          ++div_n;
-         ret=fgets(buf, 4095, stdin);
-         if (!ret) {
-            _panic(__LINE__);
-         }
+         FGETS(buf, 4095, stdin);
          mp_read_radix(&a, buf, 64);
-         ret=fgets(buf, 4095, stdin);
-         if (!ret) {
-            _panic(__LINE__);
-         }
+         FGETS(buf, 4095, stdin);
          mp_read_radix(&b, buf, 64);
-         ret=fgets(buf, 4095, stdin);
-         if (!ret) {
-            _panic(__LINE__);
-         }
+         FGETS(buf, 4095, stdin);
          mp_read_radix(&c, buf, 64);
-         ret=fgets(buf, 4095, stdin);
-         if (!ret) {
-            _panic(__LINE__);
-         }
+         FGETS(buf, 4095, stdin);
          mp_read_radix(&d, buf, 64);
 
          mp_div(&a, &b, &e, &f);
@@ -908,15 +853,9 @@ printf("compare no compare!\n"); return EXIT_FAILURE;
 
       } else if (!strcmp(cmd, "sqr")) {
          ++sqr_n;
-         ret=fgets(buf, 4095, stdin);
-         if (!ret) {
-            _panic(__LINE__);
-         }
+         FGETS(buf, 4095, stdin);
          mp_read_radix(&a, buf, 64);
-         ret=fgets(buf, 4095, stdin);
-         if (!ret) {
-            _panic(__LINE__);
-         }
+         FGETS(buf, 4095, stdin);
          mp_read_radix(&b, buf, 64);
          mp_copy(&a, &c);
          mp_sqr(&c, &c);
@@ -929,20 +868,11 @@ printf("compare no compare!\n"); return EXIT_FAILURE;
          }
       } else if (!strcmp(cmd, "gcd")) {
          ++gcd_n;
-         ret=fgets(buf, 4095, stdin);
-         if (!ret) {
-            _panic(__LINE__);
-         }
+         FGETS(buf, 4095, stdin);
          mp_read_radix(&a, buf, 64);
-         ret=fgets(buf, 4095, stdin);
-         if (!ret) {
-            _panic(__LINE__);
-         }
+         FGETS(buf, 4095, stdin);
          mp_read_radix(&b, buf, 64);
-         ret=fgets(buf, 4095, stdin);
-         if (!ret) {
-            _panic(__LINE__);
-         }
+         FGETS(buf, 4095, stdin);
          mp_read_radix(&c, buf, 64);
          mp_copy(&a, &d);
          mp_gcd(&d, &b, &d);
@@ -957,20 +887,11 @@ printf("compare no compare!\n"); return EXIT_FAILURE;
          }
       } else if (!strcmp(cmd, "lcm")) {
          ++lcm_n;
-         ret=fgets(buf, 4095, stdin);
-         if (!ret) {
-            _panic(__LINE__);
-         }
+         FGETS(buf, 4095, stdin);
          mp_read_radix(&a, buf, 64);
-         ret=fgets(buf, 4095, stdin);
-         if (!ret) {
-            _panic(__LINE__);
-         }
+         FGETS(buf, 4095, stdin);
          mp_read_radix(&b, buf, 64);
-         ret=fgets(buf, 4095, stdin);
-         if (!ret) {
-            _panic(__LINE__);
-         }
+         FGETS(buf, 4095, stdin);
          mp_read_radix(&c, buf, 64);
          mp_copy(&a, &d);
          mp_lcm(&d, &b, &d);
@@ -985,25 +906,13 @@ printf("compare no compare!\n"); return EXIT_FAILURE;
          }
       } else if (!strcmp(cmd, "expt")) {
          ++expt_n;
-         ret=fgets(buf, 4095, stdin);
-         if (!ret) {
-            _panic(__LINE__);
-         }
+         FGETS(buf, 4095, stdin);
          mp_read_radix(&a, buf, 64);
-         ret=fgets(buf, 4095, stdin);
-         if (!ret) {
-            _panic(__LINE__);
-         }
+         FGETS(buf, 4095, stdin);
          mp_read_radix(&b, buf, 64);
-         ret=fgets(buf, 4095, stdin);
-         if (!ret) {
-            _panic(__LINE__);
-         }
+         FGETS(buf, 4095, stdin);
          mp_read_radix(&c, buf, 64);
-         ret=fgets(buf, 4095, stdin);
-         if (!ret) {
-            _panic(__LINE__);
-         }
+         FGETS(buf, 4095, stdin);
          mp_read_radix(&d, buf, 64);
          mp_copy(&a, &e);
          mp_exptmod(&e, &b, &c, &e);
@@ -1018,20 +927,11 @@ printf("compare no compare!\n"); return EXIT_FAILURE;
          }
       } else if (!strcmp(cmd, "invmod")) {
          ++inv_n;
-         ret=fgets(buf, 4095, stdin);
-         if (!ret) {
-            _panic(__LINE__);
-         }
+         FGETS(buf, 4095, stdin);
          mp_read_radix(&a, buf, 64);
-         ret=fgets(buf, 4095, stdin);
-         if (!ret) {
-            _panic(__LINE__);
-         }
+         FGETS(buf, 4095, stdin);
          mp_read_radix(&b, buf, 64);
-         ret=fgets(buf, 4095, stdin);
-         if (!ret) {
-            _panic(__LINE__);
-         }
+         FGETS(buf, 4095, stdin);
          mp_read_radix(&c, buf, 64);
          mp_invmod(&a, &b, &d);
          mp_mulmod(&d, &a, &b, &e);
@@ -1049,15 +949,9 @@ printf("compare no compare!\n"); return EXIT_FAILURE;
 
       } else if (!strcmp(cmd, "div2")) {
          ++div2_n;
-         ret=fgets(buf, 4095, stdin);
-         if (!ret) {
-            _panic(__LINE__);
-         }
+         FGETS(buf, 4095, stdin);
          mp_read_radix(&a, buf, 64);
-         ret=fgets(buf, 4095, stdin);
-         if (!ret) {
-            _panic(__LINE__);
-         }
+         FGETS(buf, 4095, stdin);
          mp_read_radix(&b, buf, 64);
          mp_div_2(&a, &c);
          if (mp_cmp(&c, &b) != MP_EQ) {
@@ -1069,15 +963,9 @@ printf("compare no compare!\n"); return EXIT_FAILURE;
          }
       } else if (!strcmp(cmd, "mul2")) {
          ++mul2_n;
-         ret=fgets(buf, 4095, stdin);
-         if (!ret) {
-            _panic(__LINE__);
-         }
+         FGETS(buf, 4095, stdin);
          mp_read_radix(&a, buf, 64);
-         ret=fgets(buf, 4095, stdin);
-         if (!ret) {
-            _panic(__LINE__);
-         }
+         FGETS(buf, 4095, stdin);
          mp_read_radix(&b, buf, 64);
          mp_mul_2(&a, &c);
          if (mp_cmp(&c, &b) != MP_EQ) {
@@ -1089,20 +977,11 @@ printf("compare no compare!\n"); return EXIT_FAILURE;
          }
       } else if (!strcmp(cmd, "add_d")) {
          ++add_d_n;
-         ret=fgets(buf, 4095, stdin);
-         if (!ret) {
-            _panic(__LINE__);
-         }
+         FGETS(buf, 4095, stdin);
          mp_read_radix(&a, buf, 64);
-         ret=fgets(buf, 4095, stdin);
-         if (!ret) {
-            _panic(__LINE__);
-         }
+         FGETS(buf, 4095, stdin);
          sscanf(buf, "%d", &ix);
-         ret=fgets(buf, 4095, stdin);
-         if (!ret) {
-            _panic(__LINE__);
-         }
+         FGETS(buf, 4095, stdin);
          mp_read_radix(&b, buf, 64);
          mp_add_d(&a, ix, &c);
          if (mp_cmp(&b, &c) != MP_EQ) {
@@ -1115,20 +994,11 @@ printf("compare no compare!\n"); return EXIT_FAILURE;
          }
       } else if (!strcmp(cmd, "sub_d")) {
          ++sub_d_n;
-         ret=fgets(buf, 4095, stdin);
-         if (!ret) {
-            _panic(__LINE__);
-         }
+         FGETS(buf, 4095, stdin);
          mp_read_radix(&a, buf, 64);
-         ret=fgets(buf, 4095, stdin);
-         if (!ret) {
-            _panic(__LINE__);
-         }
+         FGETS(buf, 4095, stdin);
          sscanf(buf, "%d", &ix);
-         ret=fgets(buf, 4095, stdin);
-         if (!ret) {
-            _panic(__LINE__);
-         }
+         FGETS(buf, 4095, stdin);
          mp_read_radix(&b, buf, 64);
          mp_sub_d(&a, ix, &c);
          if (mp_cmp(&b, &c) != MP_EQ) {