[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[tyndur-devel] [PATCH] ctype.h: Fix fuer toupper/tolower
! ctype.h: toupper/tolower muessen Funktionen statt Makros sein, da der
Parameter sonst mehrmals ausgewertet wird. strcasecmp hat im Parameter
ein ++ drin und geht daran kaputt.
---
src/include/ctype.h | 12 ++++++++++--
1 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/src/include/ctype.h b/src/include/ctype.h
index 0ae5657..4ab0b1d 100644
--- a/src/include/ctype.h
+++ b/src/include/ctype.h
@@ -50,7 +50,15 @@
#define ispunct(c) (isprint(c) && (!isspace(c)) && (!isalpha(c)))
#define isgraph(c) (isprint(c) && !isspace(c))
-#define tolower(c) (isupper(c) ? (c) - 'A' + 'a' : (c))
-#define toupper(c) (islower(c) ? (c) - 'a' + 'A' : (c))
+
+static inline int tolower(int c)
+{
+ return isupper(c) ? c + ('a' - 'A') : c;
+}
+
+static inline int toupper(int c)
+{
+ return islower(c) ? c - ('a' - 'A') : c;
+}
#endif /* ndef CTYPE_H */
--
1.6.0.2