home *** CD-ROM | disk | FTP | other *** search
/ Liren Large Software Subsidy 7 / 07.iso / c / c221 / 5.ddi / MWHC.005 / T1 < prev    next >
Encoding:
Text File  |  1992-07-15  |  4.4 KB  |  144 lines

  1. /*
  2.  *   string.h -- ANSI 
  3.  *
  4.  *   Functions, types, and macros for manipulating strings and
  5.  *   arbitrary areas of memory.
  6.  *
  7.  *           Copyright (c) 1990, MetaWare Incorporated
  8.  */
  9.  
  10. #ifndef _STRING_H
  11. #define _STRING_H
  12.  
  13. #ifndef _SIZE_T_DEFINED
  14. #define _SIZE_T_DEFINED
  15. typedef unsigned int size_t;
  16. #endif
  17. #define _MAXSTRING (sizeof(int) == 2 ? 65535 : 4294967295)
  18. #ifndef NULL
  19. #define NULL      ((void *)0)
  20. #endif
  21.  
  22. extern void *memchr(const void *__s, int __c, size_t __n);
  23.  
  24. #undef memcmp
  25. extern int memcmp(const void *__s1, const void *__s2, size_t __n);
  26. #ifdef __HIGHC__  
  27. #define memcmp(s1, s2, n) (_compare(s1, s2, n))
  28. #endif
  29.  
  30. extern void *memcpy(void *__s1, const void *__s2, size_t __n);
  31. extern void *memmove(void *__s1, const void *__s2, size_t __n);
  32. extern void *memset(void *__s, int __c, size_t __n);
  33.  
  34. #ifdef __HIGHC__
  35. extern void * memccpy(void *, void *, int, unsigned int);
  36. extern int memicmp(void *, void *, unsigned int);
  37. extern void movedata(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int);
  38. #endif
  39.  
  40. #undef strcat
  41. extern char *strcat(char *__s1, const char *__s2);
  42. #if 0   
  43. /* USE THIS MACRO FOR SPEED 
  44.  * only if you don't mind multiple evaluation of the arguments. 
  45. */
  46. #define strcat(s1, s2) \
  47.   (_move(s2, ((char *)s1)+_find_char(s1, _MAXSTRING, 0), _find_char(s2,_MAXSTRING,0)+1), s1)
  48. #endif
  49.  
  50. extern char *strchr(const char *__s, int __c);
  51.  
  52. #undef strcmp
  53. extern int strcmp(const char *__s1, const char *__s2);
  54. #define strcmp(s1, s2) (strncmp(s1,s2,_MAXSTRING))
  55. #ifdef __HIGHC__
  56. extern int strcmpi(const char *s1, const char *s2);
  57. extern int stricmp(const char *s1, const char *s2);
  58. extern char *strdup(const char *s1);
  59. extern char *strlwr(char *s1);
  60. extern char *strupr(char *s1);
  61. #endif
  62.  
  63. #undef strcpy
  64. extern char *strcpy(char *__s1, const char *__s2);
  65. #if 0   
  66. /* USE THIS MACRO FOR SPEED 
  67.  * only if you don't mind multiple evaluation of the arguments. 
  68. */
  69. #define strcpy(s1, s2) (_move(s2, s1, _find_char(s2, _MAXSTRING, 0)+1), s1)
  70. #endif
  71.  
  72. extern size_t strcspn(const char *__s1, const char *__s2);
  73.  
  74. extern size_t strlen(const char *__s);
  75.  
  76. extern char *strncat(char *__s1, const char *__s2, size_t __n);
  77.  
  78. extern int strncmp(const char *__s1, const char *__s2, size_t __n);
  79.  
  80. #ifdef __HIGHC__
  81. extern int strnicmp(const char *__s1, const char *__s2, size_t __n);
  82. #endif
  83.  
  84. extern char *strncpy(char *__s1, const char *__s2, size_t __n);
  85.  
  86. #ifdef __HIGHC__
  87. extern char *strnset(char *__s, int __character, size_t __kount);
  88. #endif
  89.  
  90. extern char *strpbrk(const char *__s1, const char *__s2);
  91.  
  92. extern char *strrchr(const char *__s, int __c);
  93.  
  94. #ifdef __HIGHC__
  95. extern char *strrev(char *__s);
  96.  
  97. extern char *strset(char *__s, int __c);
  98. #endif
  99.  
  100. extern size_t strspn(const char *__s1, const char *__s2);
  101.  
  102. extern char * strstr(const char *__s1, const char *__s2);
  103.  
  104. extern char *strtok(char *__s1, const char *__s2);
  105.  
  106. #undef _rmemcpy
  107. extern void *_rmemcpy(void *__dest, const void *__source, size_t __n);
  108. #ifdef __HIGHC__
  109. #define _rmemcpy(dest, source, size) (_move_right(source, dest, size), dest)
  110. #endif
  111.  
  112. #undef _rstrcpy
  113. extern char *_rstrcpy(char *__dest, const char *__source);
  114. #ifdef __HIGHC__
  115. #define _rstrcpy(dest, source) \
  116.    (_move_right(source, dest, _find_char(source, _MAXSTRING, 0)+1), dest)
  117. #endif
  118.  
  119. extern char *_rstrncpy(char *__dest, const char *__source, size_t __n);
  120.  
  121. extern char *_strcats(size_t __n, char *__s1, char *__s2, ...);
  122. extern char *_strncat(char *__s1, const char *__s2, size_t __n);
  123.  
  124. extern char * _strerror(char *);
  125. extern char * strerror(int __errnum);
  126. extern size_t strxfrm(char *__s1, const char *__s2, size_t __n);
  127. extern int strcoll(const char *__s1, const char *__s2);
  128.  
  129. extern void * _memccpy(void *, void *, int, unsigned int);
  130. extern int _memicmp(void *, void *, unsigned int);
  131. extern void _movedata(unsigned int, unsigned int, unsigned int, unsigned int, unsigned int);
  132. extern int _strcmpi(const char *s1, const char *s2);
  133. extern int _stricmp(const char *s1, const char *s2);
  134. extern char *_strdup(const char *s1);
  135. extern char *_strlwr(char *s1);
  136. extern char *_strupr(char *s1);
  137. extern int _strnicmp(const char *__s1, const char *__s2, size_t __n);
  138. extern char *_strnset(char *__s, int __character, size_t __kount);
  139. extern char *_strrev(char *__s);
  140. extern char *_strset(char *__s, int __c);
  141.  
  142. extern int _compare(void *, void *, unsigned int);  /* 15-Jul-92 (MJM) */
  143. #endif /* _STRING_H */
  144.