From a1fd37d792e06e273e9ed8413116d2bb6b99c713 Mon Sep 17 00:00:00 2001 From: Etienne Brateau <etienne.brateau@ensiie.fr> Date: Tue, 29 Jan 2019 22:45:30 +0100 Subject: [PATCH] Move some functions to utils and change length variables types into size_t --- include/utils.h | 5 +++ src/log.c | 87 ----------------------------------------------- src/utils.c | 90 ++++++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 94 insertions(+), 88 deletions(-) diff --git a/include/utils.h b/include/utils.h index 78d4993..090c254 100644 --- a/include/utils.h +++ b/include/utils.h @@ -7,5 +7,10 @@ void getword(char *buf, char *wrd); void sortshints(short *x, short *y); char *realstr(char *Result, double r, short p); char *realunit(char *Result, double r, short p, char *u, int mu); +long getint(char *s, long def); +void pgetint(char *buf, long *i, long def); +double getreal(char *s, double def); +void pgetreal(char *buf, double *r, double def); +void getbool(char *buf, int *b); #endif diff --git a/src/log.c b/src/log.c index a09d2aa..0caeb20 100644 --- a/src/log.c +++ b/src/log.c @@ -460,93 +460,6 @@ void strwordx(char *buf, char *wrd) strcpy_overlap(buf, buf + i); } -long getint(char *s, long def) -{ - char w[10]; - long i, j, sign; - int valid; - long FORLIM; - - getword(s, w); - if (*w == '-') - { - strcpy_overlap(w, w + 1); - sign = -1; - } - else - { - sign = 1; - } - j = 0; - valid = true; - FORLIM = strlen(w); - for (i = 0; i < FORLIM; i++) - { - if (w[i] < '0' || w[i] > '9') - valid = false; - else - j = j * 10 + w[i] - 48; - } - - if (*w != '\0' && valid) - return (j * sign); - else - return def; -} - - -static void pgetint(char *buf, long *i, long def) -{ - *i = getint(buf, def); -} - - -static double getreal(char *s, double def) -{ - char w[81]; - double r; - - getword(s, w); - r = def; - TRY(try1); - readreal(w, &r); - RECOVER(try1); - if (P_escapecode == -20) - _Escape(P_escapecode); - r = def; - ENDTRY(try1); - return r; -} - -static void pgetreal(char *buf, double *r, double def) -{ - *r = getreal(buf, def); -} - - -static void getbool(char *buf, int *b) -{ - char w[17]; - - getword(buf, w); - if (!strcmp(w, "ON") || !strcmp(w, "YES") || !strcmp(w, "Y") || - !strcmp(w, "RABBITS")) - { /*avoid*/ - *b = true; - return; - } - if (!strcmp(w, "OFF") || !strcmp(w, "NO") || !strcmp(w, "N")) - { - *b = false; - return; - } - - if (!strcmp(w, "?")) - tempverbose = true; - else if (*w == '\0') - *b = !*b; -} - static void unprobe() { gg.probenode = NULL; diff --git a/src/utils.c b/src/utils.c index e8bb20a..9bb67c7 100644 --- a/src/utils.c +++ b/src/utils.c @@ -119,7 +119,7 @@ void sortshints(short *x, short *y) /// Convert a real number to a string. char *realstr(char *Result, double r, short p) { - long i, j; + size_t i, j; char s[81]; s[80] = '\0'; @@ -237,3 +237,91 @@ char *realunit(char *Result, double r, short p, char *u, int mu) return Result; } +long getint(char *s, long def) +{ + char w[10]; + size_t i; + long j, sign; + int valid; + size_t FORLIM; + + getword(s, w); + if (*w == '-') + { + strcpy_overlap(w, w + 1); + sign = -1; + } + else + { + sign = 1; + } + j = 0; + valid = true; + FORLIM = strlen(w); + for (i = 0; i < FORLIM; i++) + { + if (w[i] < '0' || w[i] > '9') + valid = false; + else + j = j * 10 + w[i] - 48; + } + + if (*w != '\0' && valid) + return (j * sign); + else + return def; +} + + +void pgetint(char *buf, long *i, long def) +{ + *i = getint(buf, def); +} + + +double getreal(char *s, double def) +{ + char w[81]; + double r; + + getword(s, w); + r = def; + TRY(try1); + readreal(w, &r); + RECOVER(try1); + if (P_escapecode == -20) + _Escape(P_escapecode); + r = def; + ENDTRY(try1); + return r; +} + +void pgetreal(char *buf, double *r, double def) +{ + *r = getreal(buf, def); +} + + +void getbool(char *buf, int *b) +{ + char w[17]; + + getword(buf, w); + if (!strcmp(w, "ON") || !strcmp(w, "YES") || !strcmp(w, "Y") || + !strcmp(w, "RABBITS")) + { /*avoid*/ + *b = true; + return; + } + if (!strcmp(w, "OFF") || !strcmp(w, "NO") || !strcmp(w, "N")) + { + *b = false; + return; + } + + if (!strcmp(w, "?")) + tempverbose = true; + else if (*w == '\0') + *b = !*b; +} + -- GitLab