// Copyright (c) 2004 David Muse
// See the COPYING file for more information.
#include <rudiments/character.h>
#include <ctype.h>
#include <stdio.h>
#ifdef RUDIMENTS_NAMESPACE
namespace rudiments {
#endif
bool character::isAlphanumeric(int c) {
return isalnum(c)!=0;
}
bool character::isAlphabetical(int c) {
return isalpha(c)!=0;
}
bool character::isControlCharacter(int c) {
return iscntrl(c)!=0;
}
bool character::isDigit(int c) {
return isdigit(c)!=0;
}
bool character::isLowerCase(int c) {
return islower(c)!=0;
}
bool character::isPrintableNonSpace(int c) {
return isgraph(c)!=0;
}
bool character::isPrintable(int c) {
return isprint(c)!=0;
}
bool character::isPunctuation(int c) {
return ispunct(c)!=0;
}
bool character::isUpperCase(int c) {
return isupper(c)!=0;
}
bool character::isHexDigit(int c) {
return isxdigit(c)!=0;
}
bool character::isBlank(int c) {
// don't be tempted to use isblank() here, it's too challenging to get
// it to work on every platform without a bunch of confusing #defines
// before including ctype.h
return (c==' ' || c==' ');
}
bool character::isWhitespace(int c) {
return isspace(c)!=0;
}
bool character::isAscii(int c) {
return isascii(c)!=0;
}
int character::toUpperCase(int c) {
return toupper(c);
}
int character::toLowerCase(int c) {
return tolower(c);
}
int character::toAscii(int c) {
return toascii(c);
}
void character::safePrint(char c) {
if (c=='\r') {
printf("\\r");
} else if (c=='\n') {
printf("\\n");
} else if (c==' ') {
printf("\\t");
} else if (c>=' ' && c<='~') {
printf("%c",c);
} else {
printf("(0x%02x)",(unsigned int)c);
}
}
#ifdef RUDIMENTS_NAMESPACE
}
#endif
syntax highlighted by Code2HTML, v. 0.9.1