/* Distributed under the OSI-approved BSD 3-Clause License. See accompanying file Copyright.txt or https://cmake.org/licensing#kwsys for details. */ #include "kwsysPrivate.h" #include KWSYS_HEADER(String.h) /* Work-around CMake dependency scanning limitation. This must duplicate the above list of headers. */ #if 0 # include "String.h.in" #endif #include #include #include #ifdef _WIN32 static int isprint_posix(int c) { return isprint(c) && c != '\t'; } # define isprint isprint_posix #endif #define MAKE_testString_(isXXXXX) \ static int testString_##isXXXXX(void) \ { \ int i = 0; \ for (; i < 128; ++i) { \ if (!!isXXXXX(i) != !!kwsysString_##isXXXXX((char)i)) { \ printf(#isXXXXX "(%d) failed: %d\n", i, \ kwsysString_##isXXXXX((char)i)); \ return 1; \ } \ } \ for (; i < 256; ++i) { \ if (kwsysString_##isXXXXX((char)i)) { \ printf(#isXXXXX "(%d) failed: %d\n", i, \ kwsysString_##isXXXXX((char)i)); \ return 1; \ } \ } \ return 0; \ } \ static int testString_##isXXXXX(void) MAKE_testString_(isalnum); MAKE_testString_(isalpha); MAKE_testString_(isascii); MAKE_testString_(isblank); MAKE_testString_(iscntrl); MAKE_testString_(isdigit); MAKE_testString_(isgraph); MAKE_testString_(islower); MAKE_testString_(isprint); MAKE_testString_(ispunct); MAKE_testString_(isspace); MAKE_testString_(isupper); MAKE_testString_(isxdigit); static int testString_tolower(void) { int i = 0; int j; for (; i < 'A'; ++i) { if ((j = kwsysString_tolower((char)i)) != i) { printf("tolower(%d) failed: %d\n", i, j); return 1; } } for (; i <= 'Z'; ++i) { if ((j = kwsysString_tolower((char)i)) != i + 32) { printf("tolower(%d) failed: %d\n", i, j); return 1; } } for (; i < 256; ++i) { if ((j = kwsysString_tolower((char)i)) != i) { printf("tolower(%d) failed: %d\n", i, j); return 1; } } return 0; } static int testString_toupper(void) { int i = 0; int j; for (; i < 'a'; ++i) { if ((j = kwsysString_toupper((char)i)) != i) { printf("toupper(%d) failed: %d\n", i, j); return 1; } } for (; i <= 'z'; ++i) { if ((j = kwsysString_toupper((char)i)) != i - 32) { printf("toupper(%d) failed: %d\n", i, j); return 1; } } for (; i < 256; ++i) { if ((j = kwsysString_toupper((char)i)) != i) { printf("toupper(%d) failed: %d\n", i, j); return 1; } } return 0; } int testString(int argc, char* argv[]) { int result = 0; (void)argc; (void)argv; setlocale(LC_CTYPE, ""); result |= testString_isalnum(); result |= testString_isalpha(); result |= testString_isascii(); result |= testString_isblank(); result |= testString_iscntrl(); result |= testString_isdigit(); result |= testString_isgraph(); result |= testString_islower(); result |= testString_isprint(); result |= testString_ispunct(); result |= testString_isspace(); result |= testString_isupper(); result |= testString_isxdigit(); result |= testString_tolower(); result |= testString_toupper(); return result; }