[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