updated ctype.h
authorsandeep <sandeep@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Wed, 14 Jun 2000 18:08:30 +0000 (18:08 +0000)
committersandeep <sandeep@4a8a32a2-be11-0410-ad9d-d568d2c75423>
Wed, 14 Jun 2000 18:08:30 +0000 (18:08 +0000)
git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@278 4a8a32a2-be11-0410-ad9d-d568d2c75423

device/include/ctype.h

index 4eb9215cf127126511f4b71baf3cdfe9573e8dc3..a815047991c43798236c1c4bc1254a3818484d6d 100644 (file)
@@ -3,6 +3,13 @@
  
              Written By -  Sandeep Dutta . sandeep.dutta@usa.net (1998)
 
+   Revisions:
+   1.0 - June.1.2000 1.0 - Bela Torok / bela.torok@kssg.ch
+   order: function definitions -> macros
+   corretced macro: isalpha(c)  
+   added macros: _tolower(c), _toupper(c), tolower(c), toupper(c) toascii(c)
+
+
    This program is free software; you can redistribute it and/or modify it
    under the terms of the GNU General Public License as published by the
    Free Software Foundation; either version 2, or (at your option) any
@@ -25,9 +32,6 @@
 #ifndef __SDC51_CTYPE_H
 #define __SDC51_CTYPE_H 1
 
-#define isalnum(x)   (isalpha(x) || isdigit(x))
-#define isalpha(x)   (isupper(x) || islower(c))
-
 #ifdef SDCC_STACK_AUTO
 #warning Make sure you recompile _is*.c files as 'reentrant'
 
@@ -54,6 +58,24 @@ extern char  isspace   (unsigned char )  ;
 extern char  isxdigit  (unsigned char )  ;
 
 #endif
+
+#define isalnum(c)   (isalpha(c) || isdigit(c))
+#define isalpha(c)   (isupper(c) || islower(c))
+
+/* ANSI versions of _tolower & _toupper
+#define _tolower(c)  ((c) - ('a' - 'A'))
+#define _toupper(c)  ((c) + ('a' - 'A'))
+*/
+
+// The _tolower & _toupper functions below can applied to any 
+// alpha characters regardless of the case (upper or lower)
+#define _tolower(c)  ((c) | ('a' - 'A'))
+#define _toupper(c)  ((c) & ~('a' - 'A'))
+
+#define tolower(c)  ((isupper(c)) ? _tolower(c) : (c))
+#define toupper(c)  ((islower(c)) ? _toupper(c) : (c))
+#define toascii(c)  ((c) & 0x7F)
+
 #endif