static int badPath(char_t* path, char_t* badPath, int badLen) { int retval = 0; int len = gstrlen(path); int i = 0; if (len <= badLen +1) { for (i = 0; i < badLen; ++i) { if (badPath[i] != gtolower(path[i])) { return 0; } } /* if we get here, the first 'badLen' characters match. * If 'path' is 1 character larger than 'badPath' and that extra * character is NOT a letter or a number, we have a bad path. */ retval = 1; if (badLen + 1 == len) { /* e.g. path == "aux:" */ if (gisalnum(path[len-1])) { /* the last character is alphanumeric, so we let this path go * through. */ retval = 0; } } } return retval; }
char_t* strlower( char_t* string ) { char_t* s; a_assert( string ); if ( string == NULL ) { return NULL; } s = string; while ( *s ) { if ( gisupper( *s ) ) { *s = ( char_t ) gtolower( *s ); } s++; } *s = '\0'; return string; }
int strcmpci(char_t *s1, char_t *s2) { int rc; a_assert(s1 && s2); if (s1 == NULL || s2 == NULL) { return 0; } if (s1 == s2) { return 0; } do { rc = gtolower(*s1) - gtolower(*s2); if (*s1 == '\0') { break; } s1++; s2++; } while (rc == 0); return rc; }