summaryrefslogtreecommitdiff
path: root/lib/numbers.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/numbers.c')
-rw-r--r--lib/numbers.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/lib/numbers.c b/lib/numbers.c
index 8334dd4..9f032b5 100644
--- a/lib/numbers.c
+++ b/lib/numbers.c
@@ -1,11 +1,15 @@
#include "numbers.h"
+/* Cette fonction lit un nombre. Elle va chercher absolument à traduire la chaîne passée en argument en un nombre. Si
+ce nombre n'est pas valide, alors l'int valid est mis à faux. Cette fonction reconnais les nombres en décimaux, les nombres
+en octal préfixés avec 0 et les nombres en hexadécimal préfixés avec 0x. */
+
int char_to_number(char *st, int *valid)
{
int whattype = 0, result = 0;
-
+
*valid = 0;
-
+
if (*st == '0') {
st++;
if (*st == 'x') {
@@ -18,7 +22,7 @@ int char_to_number(char *st, int *valid)
return 0;
}
}
-
+
while (*st) {
switch (whattype) {
case 0:
@@ -52,7 +56,7 @@ int char_to_number(char *st, int *valid)
}
st++;
}
-
+
*valid = 1;
return result;
}