home *** CD-ROM | disk | FTP | other *** search
/ PC World 2001 May / PCWorld_2001-05_cd.bin / Software / Vyzkuste / devc / _SETUP.5 / Group3 / wchar.h < prev    next >
C/C++ Source or Header  |  1999-11-07  |  4KB  |  166 lines

  1. /*
  2.  * wchar.h
  3.  *
  4.  * Defines of all functions for supporting wide characters. Actually it
  5.  * just includes all those headers, which is not a good thing to do from a
  6.  * processing time point of view, but it does mean that everything will be
  7.  * in sync.
  8.  *
  9.  * This file is part of the Mingw32 package.
  10.  *
  11.  *  THIS SOFTWARE IS NOT COPYRIGHTED
  12.  *
  13.  *  This source code is offered for use in the public domain. You may
  14.  *  use, modify or distribute it freely.
  15.  *
  16.  *  This code is distributed in the hope that it will be useful but
  17.  *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
  18.  *  DISCLAMED. This includes but is not limited to warranties of
  19.  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  20.  *
  21.  * $Revision: 2.1 $
  22.  * $Author: colin $
  23.  * $Date: 1997/11/24 06:19:59 $
  24.  *
  25.  */
  26.  
  27. #ifndef    _WCHAR_H_
  28. #define    _WCHAR_H_
  29.  
  30. #include <ctype.h>
  31. #include <stdio.h>
  32. #include <stdlib.h>
  33. #include <string.h>
  34. #include <time.h>
  35.  
  36. #define __need_size_t
  37. #define __need_wint_t
  38. #define __need_wchar_t
  39. #ifndef RC_INVOKED
  40. #include <stddef.h>
  41. #endif /* Not RC_INVOKED */
  42.  
  43. #define WCHAR_MIN    0
  44. #define WCHAR_MAX    ((wchar_t)-1)
  45.  
  46. #ifndef RC_INVOKED
  47.  
  48. #ifdef __cplusplus 
  49. extern "C" {
  50. #endif
  51.  
  52. #ifndef    __STRICT_ANSI__
  53.  
  54. #ifndef    _FSIZE_T_DEFINED
  55. typedef    unsigned long    _fsize_t;
  56. #define _FSIZE_T_DEFINED
  57. #endif
  58.  
  59. #ifndef _WFINDDATA_T_DEFINED
  60. struct _wfinddata_t {
  61.         unsigned    attrib;
  62.         time_t        time_create;    /* -1 for FAT file systems */
  63.         time_t        time_access;    /* -1 for FAT file systems */
  64.         time_t        time_write;
  65.         _fsize_t    size;
  66.         wchar_t        name[FILENAME_MAX];    /* may include spaces. */
  67. };
  68. #define _WFINDDATA_T_DEFINED
  69. #endif
  70.  
  71. /* Wide character versions. Also defined in io.h. */
  72. /* CHECK: I believe these only exist in MSVCRT, and not in CRTDLL. Also
  73.    applies to other wide character versions? */
  74. int         _waccess(const wchar_t *, int);
  75. int         _wchmod(const wchar_t *, int);
  76. int         _wcreat(const wchar_t *, int);
  77. long         _wfindfirst(wchar_t *, struct _wfinddata_t *);
  78. int         _wfindnext(long, struct _wfinddata_t *);
  79. int         _wunlink(const wchar_t *);
  80. int         _wrename(const wchar_t *, const wchar_t *);
  81. int         _wremove (const wchar_t *);
  82. int         _wopen(const wchar_t *, int, ...);
  83. int         _wsopen(const wchar_t *, int, int, ...);
  84. wchar_t *     _wmktemp(wchar_t *);
  85.  
  86. #ifndef _WDIRECT_DEFINED
  87.  
  88. /* Also in direct.h */
  89.  
  90. int _wchdir(const wchar_t*);
  91. wchar_t* _wgetcwd(wchar_t*, int);
  92. wchar_t* _wgetdcwd(int, wchar_t*, int);
  93. int _wmkdir(const wchar_t*);
  94. int _wrmdir(const wchar_t*);
  95.  
  96. #define _WDIRECT_DEFINED
  97. #endif
  98.  
  99. #ifndef _WSTAT_DEFINED
  100.  
  101. /* also declared in sys/stat.h */
  102.  
  103. int    _wstat(const wchar_t *, struct _stat *);
  104.  
  105. #define _WSTAT_DEFINED
  106. #endif /* _WSTAT_DEFINED */
  107.  
  108. #ifndef _WTIME_DEFINED
  109. #ifdef __MSVCRT__
  110.  
  111. /* wide function prototypes, also declared in time.h */
  112.  
  113. wchar_t *    _wasctime(const struct tm*);
  114. wchar_t *    _wctime(const time_t*);
  115. wchar_t*    _wstrdate(wchar_t*);
  116. wchar_t*    _wstrtime(wchar_t*);
  117.  
  118. #endif /* __MSVCRT__ */
  119.  
  120. size_t        wcsftime(wchar_t*, size_t, const wchar_t*, const struct tm*);
  121.  
  122. #define _WTIME_DEFINED
  123. #endif /* _WTIME_DEFINED */ 
  124.  
  125.  
  126. #ifndef    _NO_OLDNAMES
  127.  
  128. /* Wide character versions. Also declared in wchar.h. */
  129. /* CHECK: Are these in the olnames??? */
  130. int         waccess(const wchar_t *, int);
  131. int         wchmod(const wchar_t *, int);
  132. int         wcreat(const wchar_t *, int);
  133. long         wfindfirst(wchar_t *, struct _wfinddata_t *);
  134. int         wfindnext(long, struct _wfinddata_t *);
  135. int         wunlink(const wchar_t *);
  136. int         wrename(const wchar_t *, const wchar_t *);
  137. int         wremove (const wchar_t *);
  138. int         wopen(const wchar_t *, int, ...);
  139. int         wsopen(const wchar_t *, int, int, ...);
  140. wchar_t *     wmktemp(wchar_t *);
  141.  
  142. #endif /* _NO_OLDNAMES */
  143.  
  144. #endif /* not __STRICT_ANSI__ */
  145.  
  146. typedef int mbstate_t;
  147. typedef wchar_t _Wint_t;
  148.  
  149. wint_t  btowc(int);
  150. size_t  mbrlen(const char *, size_t, mbstate_t *);
  151. size_t  mbrtowc(wchar_t *, const char *, size_t, mbstate_t *);
  152. size_t  mbsrtowcs(wchar_t *, const char **, size_t, mbstate_t *);
  153.  
  154. size_t  wcrtomb(char *, wchar_t, mbstate_t *);
  155. size_t  wcsrtombs(char *, const wchar_t **, size_t, mbstate_t *);
  156. int  wctob(wint_t);
  157.  
  158. #ifdef __cplusplus 
  159. }
  160. #endif
  161.  
  162. #endif /* Not RC_INVOKED */
  163.  
  164. #endif /* not _WCHAR_H_ */
  165.  
  166.