[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[tyndur-devel] [PATCH] libc: Vorzeichen beachten in atol
! atol beachted jetzt auch das gespeicherte Vorzeichen
Signed-off-by: Andreas Freimuth <m.nemo@xxxxxxx>
---
src/lib/string.c | 20 ++++++++++++--------
1 files changed, 12 insertions(+), 8 deletions(-)
diff --git a/src/lib/string.c b/src/lib/string.c
index d6d662f..4b4c9dd 100644
--- a/src/lib/string.c
+++ b/src/lib/string.c
@@ -28,6 +28,7 @@
#include <lost/config.h>
#include <string.h>
#include <stdlib.h>
+#include <stdbool.h>
#include <ctype.h>
#include <errno.h>
@@ -165,12 +166,12 @@ long atol(const char *str)
if (!*str) {
return 0;
}
- int positive = 1;
+ bool positive = true;
long result = 0;
int length = 0;
//Vorzeichen
if (*str == '-') {
- positive = 0;
+ positive = false;
str++;
} else if (*str == '+') {
str++;
@@ -184,17 +185,20 @@ long atol(const char *str)
//Ziffer hinzufügen
result = result * 10 + c - '0';
} else {
- if (!length) {
- return 0;
- }
- return result;
- }
+ break;
+ }
str++;
}
-
+
if (!length) {
return 0;
}
+
+ // Vorzeichen anwenden
+ if (!positive) {
+ result = -result;
+ }
+
return result;
}
--
1.7.4.2