static LPCSTR UpperCaseFirstLettersOnly(LPCSTR psTest) { static char sTemp[MAX_LINE_BYTES]; Q_strncpyz(sTemp, psTest, sizeof(sTemp)); if (!cgi_Language_IsAsian()) { Q_strlwr(sTemp); char *p = sTemp; while (*p) { while (*p && CountsAsWhiteSpaceForCaps(*p)) p++;//(isspace(*p) || *p == '-' || *p == '.')) p++; // also copes with hyphenated names (awkward gits) if (*p) { *p = toupper(*p); while (*p && !CountsAsWhiteSpaceForCaps(*p)) p++; // cope with hyphenated names and initials (awkward gits) } } } // now restore any weird stuff... // char *p = strstr(sTemp," Mc"); // eg "Mcfarrell" should be "McFarrell" if (p && isalpha(p[3])) { p[3] = toupper(p[3]); } p = strstr(sTemp," O'"); // eg "O'flaherty" should be "O'Flaherty" if (p && isalpha(p[3])) { p[3] = toupper(p[3]); } p = strstr(sTemp,"Lucasarts"); if (p) { p[5] = 'A'; // capitalise the 'A' in LucasArts (jeez...) } return sTemp; }
static LPCSTR UpperCaseFirstLettersOnly(LPCSTR psTest) { static char sTemp[MAX_LINE_BYTES]; Q_strncpyz(sTemp, psTest, sizeof(sTemp)); // if (!cgi_Language_IsAsian()) // we don't have asian credits, so this is ok to do now { strlwr(sTemp); char *p = sTemp; while (*p) { while (*p && CountsAsWhiteSpaceForCaps(*p)) p++; if (*p) { *p = toupper(*p); while (*p && !CountsAsWhiteSpaceForCaps(*p)) p++; } } } // now restore any weird stuff... // char *p = strstr(sTemp," Mc"); // eg "Mcfarrell" should be "McFarrell" if (p && isalpha(p[3])) { p[3] = toupper(p[3]); } p = strstr(sTemp," O'"); // eg "O'flaherty" should be "O'Flaherty" (this is probably done automatically now, but wtf. if (p && isalpha(p[3])) { p[3] = toupper(p[3]); } p = strstr(sTemp,"Lucasarts"); if (p) { p[5] = 'A'; // capitalise the 'A' in LucasArts (jeez...) } return sTemp; }