home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / famapi.zip / INCLUDE.ZIP / STRING.H < prev    next >
C/C++ Source or Header  |  1992-12-24  |  9KB  |  192 lines

  1. //
  2. //      **************************************************************
  3. //       JdeBP C++ Library Routines      General Public Licence v1.00
  4. //          Copyright (c) 1991,1992  Jonathan de Boyne Pollard
  5. //      **************************************************************
  6. //
  7. //  STRING ROUTINES (ANSI)
  8. //
  9.  
  10. #if !defined(___STDDEF_H_INCLUDED)
  11. #include <_stddef.h>
  12. #endif
  13.  
  14. #if !defined(__STRING_H_INCLUDED)
  15.  
  16. #define NULL    _NULL
  17.  
  18. #ifndef _SIZE_T_DEFINED
  19. typedef _Size_t size_t;
  20. #define _SIZE_T_DEFINED
  21. #endif
  22.  
  23. extern "C" {
  24.  
  25. void *  _CDECL  memchr      (const void *, int, size_t);
  26. int     _CDECL  memcmp      (const void *, const void *, size_t);
  27. void *  _CDECL  memcpy      (void *, const void *, size_t);
  28. void *  _CDECL  memmove     (void *, const void *, size_t);
  29. void *  _CDECL  memset      (void *, int, size_t);
  30.  
  31. char *  _CDECL  strcat      (char *, const char *);
  32. char *  _CDECL  strchr      (const char *, int);
  33. int     _CDECL  strcmp      (const char *, const char *);
  34. int     _CDECL  strcoll     (const char *, const char *);
  35. char *  _CDECL  strcpy      (char *, const char *);
  36. size_t  _CDECL  strcspn     (const char *, const char *);
  37. char *  _CDECL  strerror    (int);
  38. size_t  _CDECL  strlen      (const char *);
  39. char *  _CDECL  strncat     (char *, const char *, size_t);
  40. int     _CDECL  strncmp     (const char *, const char *, size_t);
  41. char *  _CDECL  strncpy     (char *, const char *, size_t);
  42. char *  _CDECL  strpbrk     (const char *, const char *);
  43. char *  _CDECL  strrchr     (const char *, int);
  44. size_t  _CDECL  strspn      (const char *, const char *);
  45. char *  _CDECL  strstr      (const char *, const char *);
  46. char *  _CDECL  strtok      (char *, const char *);
  47. size_t  _CDECL  strxfrm     (char *, const char *, size_t);
  48.  
  49. /* ************************************************************************ *\
  50.  * These names are not really in the correct namespace for this header.     *
  51.  *                                                                          *
  52.  * The standard ANSI library code may not rely on these names being present *
  53.  * either as macros or as functions, or them performing any set action.     *
  54. \* ************************************************************************ */
  55.  
  56. //
  57. //    FAR versions of some popular string routines
  58. //
  59. void _far *    _CDECL _far    _fmemchr      (const void _far *, int, size_t);
  60. int          _CDECL _far    _fmemcmp      (const void _far *, const void _far *, size_t);
  61. void _far *    _CDECL _far    _fmemcpy      (void _far *, const void _far *, size_t);
  62. void _far *    _CDECL _far    _fmemmove     (void _far *, const void _far *, size_t);
  63. void _far *    _CDECL _far    _fmemset      (void _far *, int, size_t);
  64.  
  65. char _far *    _CDECL _far    _fstrcat      (char _far *, const char _far *);
  66. char _far *    _CDECL _far    _fstrchr      (const char _far *, int);
  67. int            _CDECL _far    _fstrcmp      (const char _far *, const char _far *);
  68. int            _CDECL _far    _fstrcoll     (const char _far *, const char _far *);
  69. char _far *    _CDECL _far    _fstrcpy      (char _far *, const char _far *);
  70. size_t        _CDECL _far    _fstrcspn     (const char _far *, const char _far *);
  71. char _far *    _CDECL _far    _fstrerror    (int);
  72. size_t        _CDECL _far    _fstrlen      (const char _far *);
  73. char _far *    _CDECL _far    _fstrncat     (char _far *, const char _far *, size_t);
  74. int            _CDECL _far    _fstrncmp     (const char _far *, const char _far *, size_t);
  75. char _far *    _CDECL _far    _fstrncpy     (char _far *, const char _far *, size_t);
  76. char _far *    _CDECL _far    _fstrpbrk     (const char _far *, const char _far *);
  77. char _far *    _CDECL _far    _fstrrchr     (const char _far *, int);
  78. size_t        _CDECL _far    _fstrspn      (const char _far *, const char _far *);
  79. char _far *    _CDECL _far    _fstrstr      (const char _far *, const char _far *);
  80. char _far *    _CDECL _far    _fstrtok      (char _far *, const char _far *);
  81. size_t        _CDECL _far    _fstrxfrm     (char _far *, const char _far *, size_t);
  82.  
  83. /* ************************************************************************ *\
  84.  * These names reserved in the namespace for "future use" by this header.   *
  85.  *                                                                          *
  86.  * The standard ANSI library code may not rely on these names being present *
  87.  * either as macros or as functions, or them performing any set action.     *
  88. \* ************************************************************************ */
  89.  
  90. //
  91. // Defined for **IX compatibility
  92. //
  93. void *  _CDECL  memccpy     (void *, const void *, int, unsigned int);
  94. int     _CDECL  memicmp     (const void *, const void *, unsigned int);
  95. void    _CDECL  movedata    (unsigned int, unsigned int, unsigned int, unsigned int, unsigned int);
  96.  
  97. int     _CDECL  strcmpi     (const char *, const char *);
  98. char *  _CDECL  strdup      (const char *);
  99. int     _CDECL  stricmp     (const char *, const char *);
  100. char *  _CDECL  strlwr      (char *);
  101. int     _CDECL  strncmpi    (const char *, const char *, size_t);
  102. int     _CDECL  strnicmp    (const char *, const char *, size_t);
  103. char *  _CDECL  strnset     (char *, int, size_t);
  104. char *  _CDECL  strrev      (char *);
  105. char *  _CDECL  strset      (char *, int);
  106. char *  _CDECL  strupr      (char *);
  107. /*char *    _CDECL  _strerror   (char *); */
  108.  
  109. //
  110. // Additions to **IX string library
  111. //
  112. void *  _CDECL  memrchr     (const void *, int, size_t) ;
  113. int     _CDECL  strblank    (const char *);
  114. char *  _CDECL  strbmatch   (const char *, const char **);
  115. int     _CDECL  strchg      (char *, char, char);
  116. char *  _CDECL  strdel      (char *, const char *);
  117. char *  _CDECL  strdela     (char *, const char *);
  118. char *  _CDECL  strend      (const char *);
  119. int     _CDECL  strichg     (char *, char, char);
  120. char *  _CDECL  stridel     (char *, const char *);
  121. char *  _CDECL  stridela    (char *, const char *);
  122. char *  _CDECL  strins      (char *, const char *, size_t);
  123. int     _CDECL  striocc     (const char *, char);
  124. char *  _CDECL  strischg    (char *, const char *, const char *);
  125. char *  _CDECL  stristr     (const char *, const char *);
  126. char *  _CDECL  strisrep    (char *, const char *, const char *);
  127. char *  _CDECL  strljust    (char *);
  128. char *  _CDECL  strltrim    (char *);
  129. int     _CDECL  strmatch    (const char *, const char *);
  130. char *  _CDECL  strmid      (const char *, size_t, size_t);
  131. char *  _CDECL  strndup     (const char *, size_t);
  132. size_t  _CDECL  strnlen     (const char *, size_t);
  133. int     _CDECL  strocc      (const char *, char);
  134. char *  _CDECL  strrjust    (char *);
  135. char *  _CDECL  strrol      (char *, size_t);
  136. char *  _CDECL  strror      (char *, size_t);
  137. char *  _CDECL  strrtrim    (char *);
  138. char *  _CDECL  strschg     (char *, const char *, const char *);
  139. char *  _CDECL  strsetsz    (char *, size_t);
  140. char *  _CDECL  strshl      (char *, size_t);
  141. char *  _CDECL  strshr      (char *, size_t);
  142. int     _CDECL  strsocc     (const char *, const char *);
  143. char *  _CDECL  strsrep     (char *, const char *, const char *);
  144. char *  _CDECL  struplw     (char *);
  145.  
  146. #if _BSD_SOURCE > 0
  147. char *  _CDECL  index       (const char *, int);
  148. char *  _CDECL  rindex      (const char *, int);
  149. char *  _CDECL  bcopy       (const char *, char *, size_t);
  150. char *  _CDECL  bzero       (char *, size_t);
  151. int     _CDECL  bcmp        (const char *, const char *, size_t);
  152. #endif
  153.  
  154. #if __BORLANDC__
  155. //
  156. // Borland C uses a system whereby __double_underscore_functions__ are
  157. // expanded to inline code by the compiler.
  158. //
  159. void *  _CDECL  __memchr__  (const void *, int, size_t);
  160. int     _CDECL  __memcmp__  (const void *, const void *, size_t);
  161. void *  _CDECL  __memcpy__  (void *, const void *, size_t);
  162. void *  _CDECL  __memset__  (void *, int, size_t);
  163. char *  _CDECL  __stpcpy__  (char *, const char *);
  164. char *  _CDECL  __strcat__  (char *, const char *);
  165. char *  _CDECL  __strchr__  (const char *, int);
  166. int     _CDECL  __strcmp__  (const char *, const char *);
  167. char *  _CDECL  __strcpy__  (char *, const char *);
  168. size_t  _CDECL  __strlen__  (const char *);
  169. char *  _CDECL  __strncat__ (char *, const char *, size_t);
  170. int     _CDECL  __strncmp__ (const char *, const char *, size_t);
  171. char *  _CDECL  __strncpy__ (char *, const char *, size_t);
  172. char *  _CDECL  __strnset__ (char *, int, size_t);
  173. char *  _CDECL  __strrchr__ (const char *, int);
  174. char *  _CDECL  __strset__  (char *, int);
  175. #endif
  176.  
  177. }
  178.  
  179. #define strcmpi(s,d)    stricmp(s,d)
  180. #define strncmpi(s,d,n) strnicmp(s,d,n)
  181.  
  182. #if _BSD_SOURCE > 0
  183. #       define index(s,c)   strchr(s,c)
  184. #       define rindex(s,c)  strrchr(s,c)
  185. #       define bcopy(s,d,c) strncpy(d,s,c)
  186. #       define bzero(s,n)   memset(s,'\000',n)
  187. #       define bcmp(d,s,n)  memcmp(d,s,n)
  188. #endif
  189.  
  190. #define __STRING_H_INCLUDED
  191. #endif
  192.