X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=device%2Finclude%2Fctype.h;h=f30bf8d9559304376ae59bcb18039efd3c22c6bf;hb=3485434ce71270bf894f1a5f30a0ffaa45c9b3a6;hp=4eb9215cf127126511f4b71baf3cdfe9573e8dc3;hpb=b09af35f2f1cde7649d3ac4a6f5d2af6d97895a0;p=fw%2Fsdcc diff --git a/device/include/ctype.h b/device/include/ctype.h index 4eb9215c..f30bf8d9 100644 --- a/device/include/ctype.h +++ b/device/include/ctype.h @@ -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,21 +32,19 @@ #ifndef __SDC51_CTYPE_H #define __SDC51_CTYPE_H 1 -#define isalnum(x) (isalpha(x) || isdigit(x)) -#define isalpha(x) (isupper(x) || islower(c)) +#include #ifdef SDCC_STACK_AUTO -#warning Make sure you recompile _is*.c files as 'reentrant' - -extern char iscntrl (unsigned char ) reentrant ; -extern char isdigit (unsigned char ) reentrant ; -extern char isgraph (unsigned char ) reentrant ; -extern char islower (unsigned char ) reentrant ; -extern char isupper (unsigned char ) reentrant ; -extern char isprint (unsigned char ) reentrant ; -extern char ispunct (unsigned char ) reentrant ; -extern char isspace (unsigned char ) reentrant ; -extern char isxdigit (unsigned char ) reentrant ; + +extern char iscntrl (unsigned char ) _REENTRANT ; +extern char isdigit (unsigned char ) _REENTRANT ; +extern char isgraph (unsigned char ) _REENTRANT ; +extern char islower (unsigned char ) _REENTRANT ; +extern char isupper (unsigned char ) _REENTRANT ; +extern char isprint (unsigned char ) _REENTRANT ; +extern char ispunct (unsigned char ) _REENTRANT ; +extern char isspace (unsigned char ) _REENTRANT ; +extern char isxdigit (unsigned char ) _REENTRANT ; #else @@ -54,6 +59,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