/* 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;
}
