void strupper(char *s) { while (*s) { #if UNUSED_CODE #if !defined(KANJI_WIN95_COMPATIBILITY) if (lp_client_code_page() == KANJI_CODEPAGE) { if (is_shift_jis(*s)) { if (is_sj_lower(s[0], s[1])) s[1] = sj_toupper2(s[1]); s += 2; } else if (is_kana(*s)) { s++; } else { if (islower((int)(unsigned char)*s)) *s = toupper((int)(unsigned char)*s); s++; } } else #endif /* KANJI_WIN95_COMPATIBILITY */ #endif /* UNUSED_CODE */ { if (islower((int)(unsigned char)*s)) *s = toupper((int)(unsigned char)*s); s++; } } }
/**************************************************************************** does a string have any lowercase chars in it? ****************************************************************************/ BOOL strhaslower (const char *s) { while (*s) { #if !defined(KANJI_WIN95_COMPATIBILITY) /* * For completeness we should put in equivalent code for code pages * 949 (Korean hangul) and 950 (Big5 Traditional Chinese) here - but * doubt anyone wants Samba to behave differently from Win95 and WinNT * here. They both treat full width ascii characters as case senstive * filenames (ie. they don't do the work we do here). * JRA. */ if (lp_client_code_page () == KANJI_CODEPAGE) { /* Win95 treats full width ascii characters as case sensitive. */ if (is_shift_jis (*s)) { if (is_sj_upper (s[0], s[1])) return (True); if (is_sj_lower (s[0], s[1])) return (True); s += 2; } else if (is_kana (*s)) { s++; } else { if (islower (*s)) return (True); s++; } } else #endif /* KANJI_WIN95_COMPATIBILITY */ { size_t skip = skip_multibyte_char (*s); if (skip != 0) s += skip; else { if (islower (*s)) return (True); s++; } } } return (False); }