testmb.c 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int
  4. main (int argc, char *argv[])
  5. {
  6. wchar_t w[10];
  7. char c[10];
  8. int i;
  9. int lose = 0;
  10. i = mbstowcs (w, "bar", 4);
  11. if (!(i == 3 && w[1] == 'a'))
  12. {
  13. puts ("mbstowcs FAILED!");
  14. lose = 1;
  15. }
  16. mbstowcs (w, "blah", 5);
  17. i = wcstombs (c, w, 10);
  18. if (i != 4)
  19. {
  20. puts ("wcstombs FAILED!");
  21. lose = 1;
  22. }
  23. if (mblen ("foobar", 7) != 1)
  24. {
  25. puts ("mblen 1 FAILED!");
  26. lose = 1;
  27. }
  28. if (mblen ("", 1) != 0)
  29. {
  30. puts ("mblen 2 FAILED!");
  31. lose = 1;
  32. }
  33. {
  34. int r;
  35. char c = 'x';
  36. wchar_t wc;
  37. char mbc[MB_CUR_MAX];
  38. if ((r = mbtowc (&wc, &c, MB_CUR_MAX)) <= 0)
  39. {
  40. printf ("conversion to wide failed, result: %d\n", r);
  41. lose = 1;
  42. }
  43. else
  44. {
  45. printf ("wide value: 0x%04lx\n", (unsigned long) wc);
  46. mbc[0] = '\0';
  47. if ((r = wctomb (mbc, wc)) <= 0)
  48. {
  49. printf ("conversion to multibyte failed, result: %d\n", r);
  50. lose = 1;
  51. }
  52. }
  53. }
  54. puts (lose ? "Test FAILED!" : "Test succeeded.");
  55. return lose;
  56. }