home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 7 / 07.iso / c / c065 / 1.ddi / CLIB1.ZIP / MULTBYTE.C < prev    next >
Encoding:
C/C++ Source or Header  |  1990-06-07  |  2.1 KB  |  82 lines

  1. /*-----------------------------------------------------------------------*
  2.  * filename - multbyte.c
  3.  *
  4.  * function(s)
  5.  *        mblen    - determines number of bytes in multibyte character
  6.  *        mbtowc   - converts multibyte character to wide character
  7.  *        wctomb   - converts wide character to multibyte character
  8.  *        mbstowcs - converts a multibyte string to a wide character string
  9.  *        wcstombs - converts a wide character string to a multibyte string
  10.  *-----------------------------------------------------------------------*/
  11.  
  12. /*[]------------------------------------------------------------[]*/
  13. /*|                                                              |*/
  14. /*|     Turbo C Run Time Library - Version 3.0                   |*/
  15. /*|                                                              |*/
  16. /*|                                                              |*/
  17. /*|     Copyright (c) 1987,1988,1990 by Borland International    |*/
  18. /*|     All Rights Reserved.                                     |*/
  19. /*|                                                              |*/
  20. /*[]------------------------------------------------------------[]*/
  21.  
  22.  
  23. #include <stdlib.h>
  24.  
  25. #pragma argsused
  26. int mblen(const char *s, size_t n)
  27. {
  28.     if (s == NULL)
  29.         return 0;
  30.     if (*s == 0)
  31.         return 0;
  32.     else
  33.         return 1;
  34. }
  35.  
  36.  
  37. #pragma argsused
  38. int mbtowc(wchar_t *pwc, const char *s, size_t n)
  39. {
  40.     if (s == NULL)
  41.         return 0;
  42.     if (pwc != NULL)
  43.         *pwc = *s;
  44.     if (*s == 0)
  45.         return 0;
  46.     else
  47.         return 1;
  48. }
  49.  
  50.  
  51. int wctomb(char *s, wchar_t wc)
  52. {
  53.     if (s == NULL)
  54.         return 0;
  55.     *s = wc;
  56.     return 1; /* zero if wc == 0 ? */
  57. }
  58.  
  59.  
  60. size_t mbstowcs(wchar_t *pwcs, const char *s, size_t n)
  61. {
  62.     int i;
  63.  
  64.     for (i=0; i<n && *s; i++)
  65.         *pwcs++ = *s++;
  66.     if (i<n)
  67.         *pwcs = 0;
  68.     return i;
  69. }
  70.  
  71.  
  72. size_t wcstombs(char *s, const wchar_t *pwcs, size_t n)
  73. {
  74.     int i;
  75.  
  76.     for (i=0; i<n && *pwcs; i++)
  77.         *s++ = *pwcs++;
  78.     if (i<n)
  79.         *s = 0;
  80.     return i;
  81. }
  82.