home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1997 May / Pcwk0597.iso / sybase / starbuck / h.z / STRING.H < prev    next >
C/C++ Source or Header  |  1996-07-24  |  12KB  |  258 lines

  1. /*
  2.  *  string.h    String functions
  3.  *
  4.  *  Copyright by WATCOM International Corp. 1988-1996.  All rights reserved.
  5.  */
  6. #ifndef _STRING_H_INCLUDED
  7. #define _STRING_H_INCLUDED
  8. #ifdef __cplusplus
  9. extern "C" {
  10. #endif
  11.  
  12. #ifndef _COMDEF_H_INCLUDED
  13.  #include <_comdef.h>
  14. #endif
  15.  
  16. #ifndef _WCHAR_T_DEFINED
  17. #define _WCHAR_T_DEFINED
  18. #define _WCHAR_T_DEFINED_
  19. #ifdef __cplusplus
  20. typedef long char wchar_t;
  21. #else
  22. typedef unsigned short wchar_t;
  23. #endif
  24. #endif
  25.  
  26. #ifndef _WCTYPE_T_DEFINED
  27. #define _WCTYPE_T_DEFINED
  28. #define _WCTYPE_T_DEFINED_
  29. typedef wchar_t wint_t;
  30. typedef wchar_t wctype_t;
  31. #endif
  32.  
  33. #ifndef _SIZE_T_DEFINED
  34. #define _SIZE_T_DEFINED
  35. #define _SIZE_T_DEFINED_
  36. typedef unsigned size_t;
  37. #endif
  38.  
  39. #ifndef NULL
  40.  #if defined(__SMALL__) || defined(__MEDIUM__) || defined(__386__) || defined(__AXP__) || defined(__PPC__)
  41.   #define NULL   0
  42.  #else
  43.   #define NULL   0L
  44.  #endif
  45. #endif
  46.  
  47. #ifndef _NLSCMPERROR
  48.  #include <limits.h>
  49.  #define _NLSCMPERROR INT_MAX
  50. #endif
  51.  
  52. _WCIRTLINK extern void *memchr( const void *__s, int __c, size_t __n );
  53. _WCIRTLINK extern int memcmp( const void *__s1, const void *__s2, size_t __n );
  54. _WCIRTLINK extern void *memcpy( void *__s1, const void *__s2, size_t __n );
  55. _WCRTLINK extern void *memmove( void *__s1, const void *__s2, size_t __n );
  56. #if defined(M_I86)
  57. _WCIRTLINK 
  58. #else
  59. _WCRTLINK 
  60. #endif
  61. extern void *memset( void *__s, int __c, size_t __n );
  62. _WCIRTLINK extern char *strcat( char *__s1, const char *__s2 );
  63. _WCIRTLINK extern char *strchr( const char *__s, int __c );
  64. #if defined(M_I86)
  65. _WCIRTLINK 
  66. #else
  67. _WCRTLINK 
  68. #endif
  69. extern int strcmp( const char *__s1, const char *__s2 );
  70. _WCRTLINK extern int strcoll( const char *__s1, const char *__s2 );
  71. _WCRTLINK extern int _stricoll( const char *__s1, const char *__s2 );
  72. _WCRTLINK extern int _strncoll( const char *__s1, const char *__s2, size_t __n );
  73. _WCRTLINK extern int _strnicoll( const char *__s1, const char *__s2, size_t __n );
  74. _WCRTLINK extern size_t strxfrm( char *__s1, const char *__s2, size_t __n );
  75. _WCIRTLINK extern char *strcpy( char *__s1, const char *__s2 );
  76. _WCRTLINK extern size_t strcspn( const char *__s1, const char *__s2 );
  77. _WCRTLINK extern char *strerror( int __errnum );
  78. _WCIRTLINK extern size_t strlen( const char *__s );
  79. _WCRTLINK extern char *strncat( char *__s1, const char *__s2, size_t __n );
  80. _WCRTLINK extern int strncmp( const char *__s1, const char *__s2, size_t __n );
  81. _WCRTLINK extern char *strncpy( char *__s1, const char *__s2, size_t __n );
  82. _WCRTLINK extern char *strpbrk( const char *__s1, const char *__s2 );
  83. _WCRTLINK extern char *strrchr( const char *__s, int __c );
  84. _WCRTLINK extern size_t strspn( const char *__s1, const char *__s2 );
  85. _WCRTLINK extern char *strspnp( const char *__s1, const char *__s2 );
  86. _WCRTLINK extern char *strstr( const char *__s1, const char *__s2 );
  87. _WCRTLINK extern char *strtok( char *__s1, const char *__s2 );
  88.  
  89. #if !defined(NO_EXT_KEYS) /* extensions enabled */
  90.  
  91. /* WATCOM's Additional Functions (non-ANSI, non-POSIX) */
  92.  
  93. #if !defined(_fmemccpy) || !defined(_INC_WINDOWSX) 
  94. _WCRTLINK extern void _WCFAR *_fmemccpy( void _WCFAR *__s1, const void _WCFAR *__s2, int __c, size_t __n );
  95. #endif
  96. #if !defined(_fmemchr) || !defined(_INC_WINDOWSX)
  97. _WCIRTLINK extern void _WCFAR *_fmemchr( const void _WCFAR *__s, int __c, size_t __n );
  98. #endif
  99. #if !defined(_fmemcpy) || !defined(_INC_WINDOWSX)
  100. _WCIRTLINK extern void _WCFAR *_fmemcpy( void _WCFAR *__s1, const void _WCFAR *__s2, size_t __n );
  101. #endif
  102. #if !defined(_fmemmove) || !defined(_INC_WINDOWSX)
  103. _WCRTLINK extern void _WCFAR *_fmemmove( void _WCFAR *__s1, const void _WCFAR *__s2, size_t __n );
  104. #endif
  105. #if !defined(_fmemset) || !defined(_INC_WINDOWSX)
  106. _WCIRTLINK extern void _WCFAR *_fmemset( void _WCFAR *__s, int __c, size_t __n );
  107. #endif
  108. #if !defined(_fmemcmp) || !defined(_INC_WINDOWSX)
  109. _WCIRTLINK extern int _fmemcmp( const void _WCFAR *__s1, const void _WCFAR *__s2, size_t __n );
  110. #endif
  111. #if !defined(_fmemicmp) || !defined(_INC_WINDOWSX)
  112. _WCRTLINK extern int _fmemicmp( const void _WCFAR *__s1, const void _WCFAR *__s2, size_t __n );
  113. #endif
  114. #if !defined(_fstrcat) || !defined(_INC_WINDOWSX)
  115. _WCIRTLINK extern char _WCFAR *_fstrcat( char _WCFAR *__s1, const char _WCFAR *__s2 );
  116. #endif
  117. #if !defined(_fstrchr) || !defined(_INC_WINDOWSX)
  118. _WCRTLINK extern char _WCFAR *_fstrchr( const char _WCFAR *__s, int __c );
  119. #endif
  120. #if !defined(_fstrcmp) || !defined(_INC_WINDOWSX)
  121. _WCIRTLINK extern int _fstrcmp( const char _WCFAR *__s1, const char _WCFAR *__s2 );
  122. #endif
  123. #if !defined(_fstrcpy) || !defined(_INC_WINDOWSX)
  124. _WCIRTLINK extern char _WCFAR *_fstrcpy( char _WCFAR *__s1, const char _WCFAR *__s2 );
  125. #endif
  126. #if !defined(_fstrcspn) || !defined(_INC_WINDOWSX)
  127. _WCRTLINK extern size_t _fstrcspn( const char _WCFAR *__s1, const char _WCFAR *__s2 );
  128. #endif
  129. #if !defined(_fstrdup) || !defined(_INC_WINDOWSX)
  130. _WCRTLINK extern char _WCFAR *_fstrdup( const char _WCFAR *__string );
  131. #endif
  132. #if !defined(_fstricmp) || !defined(_INC_WINDOWSX)
  133. _WCRTLINK extern int _fstricmp( const char _WCFAR *__s1, const char _WCFAR *__s2 );
  134. #endif
  135. #if !defined(_fstrncat) || !defined(_INC_WINDOWSX)
  136. _WCRTLINK extern char _WCFAR *_fstrncat( char _WCFAR *__s1, const char _WCFAR *__s2, size_t __n );
  137. #endif
  138. #if !defined(_fstrlen) || !defined(_INC_WINDOWSX)
  139. _WCIRTLINK extern size_t _fstrlen( const char _WCFAR *__s );
  140. #endif
  141. #if !defined(_fstrlwr) || !defined(_INC_WINDOWSX)
  142. _WCRTLINK extern char _WCFAR *_fstrlwr( char _WCFAR *__string );
  143. #endif
  144. #if !defined(_fstrncmp) || !defined(_INC_WINDOWSX)
  145. _WCRTLINK extern int _fstrncmp( const char _WCFAR *__s1, const char _WCFAR *__s2, size_t __n );
  146. #endif
  147. #if !defined(_fstrncpy) || !defined(_INC_WINDOWSX)
  148. _WCRTLINK extern char _WCFAR *_fstrncpy( char _WCFAR *__s1, const char _WCFAR *__s2, size_t __n );
  149. #endif
  150. #if !defined(_fstrnicmp) || !defined(_INC_WINDOWSX)
  151. _WCRTLINK extern int _fstrnicmp( const char _WCFAR *__s1, const char _WCFAR *__s2, size_t __n );
  152. #endif
  153. #if !defined(_fstrnset) || !defined(_INC_WINDOWSX)
  154. _WCRTLINK extern char _WCFAR *_fstrnset( char _WCFAR *__string, int __c, size_t __len );
  155. #endif
  156. #if !defined(_fstrpbrk) || !defined(_INC_WINDOWSX)
  157. _WCRTLINK extern char _WCFAR *_fstrpbrk( const char _WCFAR *__s1, const char _WCFAR *__s2 );
  158. #endif
  159. #if !defined(_fstrrchr) || !defined(_INC_WINDOWSX)
  160. _WCRTLINK extern char _WCFAR *_fstrrchr( const char _WCFAR *__s, int __c );
  161. #endif
  162. #if !defined(_fstrrev) || !defined(_INC_WINDOWSX)
  163. _WCRTLINK extern char _WCFAR *_fstrrev( char _WCFAR *__string );
  164. #endif
  165. #if !defined(_fstrset) || !defined(_INC_WINDOWSX)
  166. _WCRTLINK extern char _WCFAR *_fstrset( char _WCFAR *__string, int __c );
  167. #endif
  168. #if !defined(_fstrspn) || !defined(_INC_WINDOWSX)
  169. _WCRTLINK extern size_t _fstrspn( const char _WCFAR *__s1, const char _WCFAR *__s2 );
  170. #endif
  171. #if !defined(_fstrspnp) || !defined(_INC_WINDOWSX)
  172. _WCRTLINK extern char _WCFAR *_fstrspnp( const char _WCFAR *__s1, const char _WCFAR *__s2 );
  173. #endif
  174. #if !defined(_fstrstr) || !defined(_INC_WINDOWSX)
  175. _WCRTLINK extern char _WCFAR *_fstrstr( const char _WCFAR *__s1, const char _WCFAR *__s2 );
  176. #endif
  177. #if !defined(_fstrtok) || !defined(_INC_WINDOWSX)
  178. _WCRTLINK extern char _WCFAR *_fstrtok( char _WCFAR *__s1, const char _WCFAR *__s2 );
  179. #endif
  180. #if !defined(_fstrupr) || !defined(_INC_WINDOWSX)
  181. _WCRTLINK extern char _WCFAR *_fstrupr( char _WCFAR *__string );
  182. #endif
  183. _WCIRTLINK extern void movedata( unsigned __srcseg, unsigned __srcoff, unsigned __tgtseg, unsigned __tgtoff, unsigned __len );
  184. _WCRTLINK extern int bcmp( const void *__s1, const void *__s2, size_t __n );
  185. _WCRTLINK extern void bcopy( const void *__s1, void *__s2, size_t __n );
  186. _WCRTLINK extern void bzero( void *__s, size_t __n );
  187. _WCRTLINK extern void *memccpy( void *__s1, const void *__s2, int __c, size_t __n );
  188. _WCRTLINK extern int memicmp( const void *__s1, const void *__s2, size_t __n );
  189. _WCRTLINK extern int _memicmp( const void *__s1, const void *__s2, size_t __n );
  190. _WCRTLINK extern int strcmpi( const char *__s1, const char *__s2 );
  191. _WCRTLINK extern char *strdup( const char *__string );
  192. _WCRTLINK extern char *_strdup( const char *__string );
  193. _WCRTLINK extern int stricmp( const char *__s1, const char *__s2 );
  194. _WCRTLINK extern int _stricmp( const char *__s1, const char *__s2 );
  195. _WCRTLINK extern char *strlwr( char *__string );
  196. _WCRTLINK extern char *_strlwr( char *__string );
  197. _WCRTLINK extern int strnicmp( const char *__s1, const char *__s2, size_t __n );
  198. _WCRTLINK extern int _strnicmp( const char *__s1, const char *__s2, size_t __n );
  199. _WCRTLINK extern char *strnset( char *__string, int __c, size_t __len );
  200. _WCRTLINK extern char *_strnset( char *__string, int __c, size_t __len );
  201. _WCRTLINK extern char *strrev( char *__string );
  202. _WCRTLINK extern char *_strrev( char *__string );
  203. _WCRTLINK extern char *strset( char *__string, int __c );
  204. _WCRTLINK extern char *_strset( char *__string, int __c );
  205. _WCRTLINK extern char *strupr( char *__string );
  206. _WCRTLINK extern char *_strupr( char *__string );
  207.  
  208. _WCRTLINK extern size_t wcslen( const wchar_t * );
  209. _WCRTLINK extern wchar_t *_wcsnset( wchar_t *, int, size_t );
  210. _WCRTLINK extern size_t wcsspn( const wchar_t *, const wchar_t * );
  211. _WCRTLINK extern wchar_t *_wcsspnp( const wchar_t *__s1, const wchar_t *__s2 );
  212. _WCRTLINK extern size_t wcscspn( const wchar_t *, const wchar_t * );
  213. _WCRTLINK extern wchar_t *wcsncat( wchar_t *, const wchar_t *, size_t );
  214. _WCRTLINK extern int wcsncmp( const wchar_t *, const wchar_t *, size_t );
  215. _WCRTLINK extern wchar_t *wcsncpy( wchar_t *, const wchar_t *, size_t );
  216. _WCRTLINK extern int _wcsnicmp( const wchar_t *, const wchar_t *, size_t );
  217. _WCRTLINK extern wchar_t *wcschr( const wchar_t *, wint_t );
  218. _WCRTLINK extern wchar_t *_wcsdup( const wchar_t * );
  219. _WCRTLINK extern wchar_t *wcscat( wchar_t *, const wchar_t * );
  220. _WCRTLINK extern wchar_t *_wcslwr( wchar_t * );
  221. _WCRTLINK extern wchar_t *_wcsupr( wchar_t * );
  222. _WCRTLINK extern wchar_t *wcscpy( wchar_t *, const wchar_t * );
  223. _WCRTLINK extern int wcscmp( const wchar_t *, const wchar_t * );
  224. _WCRTLINK extern int _wcsicmp( const wchar_t *, const wchar_t * );
  225. _WCRTLINK extern int wcscoll( const wchar_t *__s1, const wchar_t *__s2 );
  226. _WCRTLINK extern int _wcsicoll( const wchar_t *__s1, const wchar_t *__s2 );
  227. _WCRTLINK extern int _wcsncoll( const wchar_t *__s1, const wchar_t *__s2, size_t __n );
  228. _WCRTLINK extern int _wcsnicoll( const wchar_t *__s1, const wchar_t *__s2, size_t __n );
  229. _WCRTLINK extern size_t wcsxfrm( wchar_t *__s1, const wchar_t *__s2, size_t __n );
  230. _WCRTLINK extern wchar_t *wcsstr( const wchar_t *, const wchar_t * );
  231. _WCRTLINK extern wchar_t *wcspbrk( const wchar_t *, const wchar_t * );
  232. _WCRTLINK extern wchar_t *wcstok( wchar_t *, const wchar_t *, wchar_t ** );
  233. _WCRTLINK extern wchar_t *_wcsrev( wchar_t * );
  234. _WCRTLINK extern wchar_t *_wcsset( wchar_t *, wchar_t );
  235. _WCRTLINK extern wchar_t *wcsrchr( const wchar_t *, wint_t );
  236. _WCRTLINK extern int wcscmpi( const wchar_t *, const wchar_t * );
  237. _WCRTLINK extern wchar_t *wcserror( int );
  238.  
  239. _WCRTLINK extern wchar_t *_ustrtok( wchar_t *, const wchar_t * );
  240.  
  241. #endif    /* EXTENSIONS */
  242.  
  243. #ifdef    __INLINE_FUNCTIONS__
  244. #if !defined(NO_EXT_KEYS) /* extensions enabled */
  245.  #pragma intrinsic(movedata,_fmemchr,_fmemcmp,_fmemcpy,_fmemset)
  246.  #pragma intrinsic(_fstrcat,_fstrcmp,_fstrcpy,_fstrlen)
  247. #endif
  248.  #pragma intrinsic(memchr,memcmp,memcpy,strcat,strcpy,strlen,strchr)
  249.  #if defined(M_I86)
  250.   #pragma intrinsic(memset,strcmp)
  251.  #endif
  252. #endif    /* __INLINE_FUNCTIONS__ */
  253.  
  254. #ifdef __cplusplus
  255. };
  256. #endif
  257. #endif
  258.