home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / C / SASC6574.LZX / include / string.h < prev    next >
Encoding:
C/C++ Source or Header  |  1997-04-04  |  5.7 KB  |  222 lines

  1. /* Copyright (c) 1992-1993 SAS Institute, Inc., Cary, NC USA */
  2. /* All Rights Reserved */
  3.  
  4. #ifndef _STRING_H
  5. #define _STRING_H 1
  6.  
  7. #ifndef _COMMSIZE_H
  8. #include <sys/commsize.h>
  9. #endif
  10.  
  11. #ifndef _COMMNULL_H
  12. #include <sys/commnull.h>
  13. #endif
  14.  
  15. /***
  16. *
  17. *     ANSI copying functions
  18. *
  19. ***/
  20.  
  21. extern void *memcpy(void *, const void *, size_t);
  22. extern void *memmove(void *, const void *, size_t);
  23. extern char *strcpy(char *, const char *);
  24. extern char *strncpy(char *, const char *, size_t);
  25.  
  26.  
  27. /***
  28. *
  29. *     ANSI concatenation functions
  30. *
  31. ***/
  32.  
  33. extern char *strcat(char *, const char *);
  34. extern char *strncat(char *, const char *, size_t);
  35.  
  36.  
  37. /***
  38. *
  39. *     ANSI comparison functions
  40. *
  41. ***/
  42.  
  43. extern int memcmp(const void *, const void *, size_t);
  44. extern int strcmp(const char *, const char *);
  45. extern int strcoll(const char *, const char *);
  46. extern int strncmp(const char *, const char *, size_t);
  47. extern size_t strxfrm(char *, const char *, size_t);
  48.  
  49.  
  50. /***
  51. *
  52. *     ANSI search functions
  53. *
  54. ***/
  55.  
  56. extern void *memchr(const void *, int, size_t);
  57. extern char *strchr(const char *, int);
  58. extern size_t strcspn(const char *, const char *);
  59. extern char *strpbrk(const char *, const char *);
  60. extern char *strrchr(const char *, int);
  61. extern size_t strspn(const char *, const char *);
  62. extern char *strstr(const char *, const char *);
  63. extern char *strtok(char *, const char *);
  64.  
  65.  
  66. /***
  67. *
  68. *     ANSI miscellaneous functions
  69. *
  70. ***/
  71.  
  72. extern void *memset(void *, int, size_t);
  73. extern char *strerror(int);
  74. extern size_t strlen(const char *);
  75.  
  76. #ifndef _STRICT_ANSI
  77.  
  78. /***
  79. *
  80. *     SAS string and memory functions.
  81. *
  82. ***/
  83.  
  84. extern int stcarg(const char *, const char *);
  85. extern int stccpy(char *, const char *, int);
  86. extern int stcgfe(char *, const char *);
  87. extern int stcgfn(char *, const char *);
  88. extern int stcis(const char *, const char *);
  89. extern int stcisn(const char *, const char *);
  90. extern int __stcd_i(const char *, int *);
  91. extern int __stcd_l(const char *, long *);
  92. extern int stch_i(const char *, int *);
  93. extern int stch_l(const char *, long *);
  94. extern int stci_d(char *, int);
  95. extern int stci_h(char *, int);
  96. extern int stci_o(char *, int);
  97. extern int stcl_d(char *, long);
  98. extern int __stcl_h(char *, long);
  99. extern int __stcl_o(char *, long);
  100. extern int stco_i(const char *, int *);
  101. extern int stco_l(const char *, long *);
  102. extern int stcpm(const char *, const char *, char **);
  103. extern int stcpma(const char *, const char *);
  104. extern int stcsma(const char *, const char *);
  105. extern int astcsma(const char *, const char *);
  106. extern int stcu_d(char *, unsigned);
  107. extern int __stcul_d(char *, unsigned long);
  108.  
  109. #define stclen(a) strlen(a)
  110.  
  111. extern char *stpblk(const char *);
  112. extern char *stpbrk(const char *, const char *);
  113. extern char *stpchr(const char *, int);
  114. extern char *stpcpy(char *, const char *);
  115. extern char *__stpcpy(char *, const char *);
  116. extern char *stpdate(char *, int, const char *);
  117. extern char *stpsym(const char *, char *, int);
  118. extern char *stptime(char *, int, const char *);
  119. extern char *stptok(const char *, char *, int, const char *);
  120.  
  121. extern int strbpl(char **, int, const char *);
  122. extern int stricmp(const char *, const char *);
  123. extern char *strdup(const char *);
  124. extern void strins(char *, const char *);
  125. extern int strmid(const char *, char *, int, int);
  126. extern char *__strlwr(char *);
  127. extern void strmfe(char *, const char *, const char *);
  128. extern void strmfn(char *, const char *, const char *, const char *, 
  129.                    const char *);
  130. extern void strmfp(char *, const char *, const char *);
  131. extern int strnicmp(const char *, const char *, size_t);
  132. extern char *strnset(char *, int, int);
  133.  
  134. extern char *stpchrn(const char *, int);
  135. extern char *strrev(char *);
  136. extern char *strset(char *, int);
  137. extern void strsfn(const char *, char *, char *, char *, char *);
  138. extern char *__strupr(char *);
  139. extern int stspfp(char *, int *);
  140. extern void strsrt(char *[], int);
  141.  
  142. extern int stcgfp(char *, const char *);
  143.  
  144. #define strcmpi stricmp        /* For Microsoft compatibility */
  145. #define strlwr  __strlwr
  146. #define strupr  __strupr
  147. #define stcd_i __stcd_i
  148. #define stcd_l __stcd_l
  149. #define stcl_h __stcl_h
  150. #define stcl_o __stcl_o
  151. #define stcul_d __stcul_d
  152. #define stpcpy __stpcpy
  153.  
  154. extern void *memccpy(void *, const void *, int, unsigned);
  155. extern void movmem(const void *, void *, unsigned);
  156. extern void repmem(void *, const void *, size_t, size_t);
  157. extern void setmem(void *, unsigned, int);
  158. extern void __swmem(void *, void *, unsigned);
  159. #define swmem  __swmem
  160.  
  161. /* for BSD compatibility */
  162. #ifndef __cplusplus
  163. #define index(a,b) strchr(a,b)
  164. #endif
  165. #define rindex(a,b) strrchr(a,b)
  166. #define bcopy(a,b,c) memmove(b,a,c)
  167. #define bcmp(a,b,c) memcmp(a,b,c)
  168. #define bzero(a,b) memset(a,0,b)
  169.  
  170. #endif /* _STRICT_ANSI */
  171.  
  172. /**
  173. *
  174. * Builtin function definitions
  175. *
  176. **/
  177.  
  178. extern size_t  __builtin_strlen(const char *);
  179. extern int     __builtin_strcmp(const char *, const char *);
  180. extern char   *__builtin_strcpy(char *, const char *);
  181.  
  182. extern void   *__builtin_memset(void *, int, size_t);
  183. extern int     __builtin_memcmp(const void *, const void *, size_t);
  184. extern void   *__builtin_memcpy(void *, const void *, size_t);
  185.  
  186. extern int __builtin_max(int, int);
  187. extern int __builtin_min(int, int);
  188. extern int __builtin_abs(int);
  189.  
  190. #ifdef USE_BUILTIN_MATH
  191. /* if you want the builtin versions of abs(), max(), and min() */
  192. /* define USE_BUITLIN_MATH, and #include this file BEFORE math.h */
  193.  
  194. #ifndef __cplusplus 
  195.  
  196. #ifndef max
  197. #define max(a,b) __builtin_max(a,b)
  198. #endif
  199.  
  200. #ifndef min
  201. #define min(a,b) __builtin_min(a,b)
  202. #endif
  203.  
  204. #ifndef abs
  205. #define abs(a) __builtin_abs(a)
  206. #endif 
  207.  
  208. #endif
  209.  
  210. #endif
  211.  
  212. #define strlen(a)   __builtin_strlen(a)
  213. #define strcmp(a,b) __builtin_strcmp(a,b)
  214. #define strcpy(a,b) __builtin_strcpy(a,b)
  215.  
  216. #define memset(a,b,c) __builtin_memset(a,b,c)
  217. #define memcmp(a,b,c) __builtin_memcmp(a,b,c)
  218. #define memcpy(a,b,c) __builtin_memcpy(a,b,c)
  219.  
  220.  
  221. #endif
  222.