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