home *** CD-ROM | disk | FTP | other *** search
/ OpenStep 4.2J (Developer) / os42jdev.iso / NextDeveloper / Headers / ansi / string.h < prev    next >
Text File  |  1996-08-12  |  3KB  |  131 lines

  1. /* Copyright (c) 1988, 1992 NeXT Computer, Inc. */
  2.  
  3. #ifndef _ANSI_STRING_H
  4. #define _ANSI_STRING_H
  5.  
  6. #include <standards.h>
  7.  
  8. #ifdef __STRICT_BSD__
  9.  
  10. #import <strings.h>
  11. extern char *strcpyn();
  12. extern char *strcatn();
  13. extern int strcmpn();
  14. extern char *strchr();
  15. extern char *strrchr();
  16. extern char *strpbrk();
  17. extern int strspn();
  18. extern int strcspn();
  19. extern char *strtok();
  20.  
  21. #else /* ! __STRICT_BSD__ */
  22.  
  23. #ifdef __STRICT_ANSI__
  24. #ifndef _SIZE_T
  25. #define _SIZE_T
  26. typedef unsigned long size_t;
  27. #endif /* _SIZE_T */
  28.  
  29. #ifndef NULL
  30. #define NULL ((void *)0)
  31. #endif /* NULL */
  32.  
  33. #endif    /* __STRICT_ANSI__ */
  34.  
  35. #ifdef _NEXT_SOURCE
  36. #import <stddef.h>
  37. #endif
  38.  
  39. #ifdef __STDC__
  40.  
  41. extern void *memcpy(void *s1, const void *s2, size_t n);
  42. extern void *memmove(void *s1, const void *s2, size_t n);
  43. extern char *strcpy(char *s1, const char *s2);
  44. extern char *strncpy(char *s1, const char *s2, size_t n);
  45. extern char *strcat(char *s1, const char *s2);
  46. extern char *strncat(char *s1, const char *s2, size_t n);
  47. extern int memcmp(const void *s1, const void *s2, size_t n);
  48. extern int strcmp(const char *s1, const char *s2);
  49. #ifdef __STRICT_ANSI__
  50. extern int strcoll(char *to, size_t maxsize, const char *from);
  51. #else    /* !__STRICT_ANSI__ */
  52. extern size_t strcoll(char *to, size_t maxsize, const char *from);
  53. #endif    /* !__STRICT_ANSI__ */
  54. extern int strncmp(const char *s1, const char *s2, size_t n);
  55. #ifdef __STRICT_ANSI__
  56. size_t strxfrm(char *s1, const char *s2, size_t n);
  57. #endif  /* __STRICT_ANSI__ */
  58. extern void *memchr(const void *s, int c, size_t n);
  59. extern char *strchr(const char *s, int c);
  60. extern size_t strcspn(const char *s1, const char *s2);
  61. extern char *strpbrk(const char *s1, const char *s2);
  62. extern char *strrchr(const char *s, int c);
  63. extern size_t strspn(const char *s1, const char *s2);
  64. extern char *strstr(const char *s1, const char *s2);
  65. extern char *strtok(char *s1, const char *s2);
  66. extern void *memset(void *s, int c, size_t n);
  67. extern char *strerror(int errnum);
  68. extern size_t strlen(const char *s);
  69.  
  70. #else    /* !__STDC__ */
  71.  
  72. extern void *memcpy();
  73. extern void *memmove();
  74. extern char *strcpy();
  75. extern char *strncpy();
  76. extern char *strcat();
  77. extern char *strncat();
  78. extern int memcmp();
  79. extern int strcmp();
  80. #ifdef __STRICT_ANSI__
  81. extern int strcoll();
  82. #else    /* !__STRICT_ANSI__ */
  83. extern size_t strcoll();
  84. #endif    /* !__STRICT_ANSI__ */
  85. extern int strncmp();
  86. #ifdef __STRICT_ANSI__
  87. size_t strxfrm();
  88. #endif  /* __STRICT_ANSI__ */
  89. extern void *memchr();
  90. extern char *strchr();
  91. extern size_t strcspn();
  92. extern char *strpbrk();
  93. extern char *strrchr();
  94. extern size_t strspn();
  95. extern char *strstr();
  96. extern char *strtok();
  97. extern void *memset();
  98. extern char *strerror();
  99. extern size_t strlen();
  100.  
  101. #endif    /* !__STDC__ */
  102.  
  103. #ifdef _NEXT_SOURCE
  104. extern int strncasecmp(const char *s1, const char *s2, size_t n);
  105. extern int strcasecmp(const char *s1, const char *s2);
  106. #endif /* _NEXT_SOURCE */
  107.  
  108. #ifndef __STRICT_ANSI__
  109. /* added for BSD compatibility */
  110. extern char *index(const char *s, int c);
  111. extern char *rindex(const char *s, int c);
  112.  
  113. #undef bcopy
  114. #define bcopy(from,to,len) ((void)memmove(to,from,len))
  115.  
  116. #undef bcmp
  117. #define bcmp(s1,s2,len) memcmp(s1,s2,len)
  118.  
  119. #undef bzero
  120. #define bzero(b,len) memset(b,0,len)
  121.  
  122. /* obsolete trash, for BSD compatibility */
  123. extern char *strcpyn();
  124. extern char *strcatn();
  125. extern int strcmpn();
  126. #endif    /* !__STRICT_ANSI__ */
  127.  
  128. #endif    /* !__STRICT_BSD__ */
  129.  
  130. #endif    /* _ANSI_STRING_H */
  131.