/* wstring.c */ #include "wstring.h" /* wchar_t *wstrchr(wchar_t const *str, wchar_t c) { for (; *str != c; str++) if (*str == 0) return NULL; return str; } int wstrcmp(wchar_t const *str1, wchar_t const *str2) { for (; *str1 == *str2; str1++, str2++) if (*str1 == 0) return 0; return *str1 - *str2; } wchar_t *wstrcpy(wchar_t *str1, wchar_t const *str2) { wchar_t *p = str1; while (*str1++ = *str2++) ; return p; } size_t wstrlen(wchar_t *str) { wchar_t *p = str; while (*p != 0) p++; return p - str; } wchar_t *wstrncpy(wchar_t *str1, wchar_t const *str2, unsigned int count) { wchar_t *p = str1; while ((count--) && (*str1++ = *str2++)) ; return p; } */ int wfputc(wchar_t c, FILE *stream) { if (fputc(c & 0xff, stream) == EOF) return EOF; if (fputc((c >> 8) & 0xff, stream) == EOF) return EOF; if (fputc((c >> 16) & 0xff, stream) == EOF) return EOF; if (fputc((c >> 24) & 0xff, stream) == EOF) return EOF; return c; } int wfputs(wchar_t *str, FILE *stream) { while (*str != 0) { wfputc(*str, stream); str++; } return 0; }