Source code pulled from OpenBSD for OpenNTPD. The place to contribute to this code is via the OpenBSD CVS tree.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

182 lines
6.7 KiB

  1. /* $OpenBSD: wchar.h,v 1.10 2009/01/13 18:18:31 kettenis Exp $ */
  2. /* $NetBSD: wchar.h,v 1.16 2003/03/07 07:11:35 tshiozak Exp $ */
  3. /*-
  4. * Copyright (c)1999 Citrus Project,
  5. * All rights reserved.
  6. *
  7. * Redistribution and use in source and binary forms, with or without
  8. * modification, are permitted provided that the following conditions
  9. * are met:
  10. * 1. Redistributions of source code must retain the above copyright
  11. * notice, this list of conditions and the following disclaimer.
  12. * 2. Redistributions in binary form must reproduce the above copyright
  13. * notice, this list of conditions and the following disclaimer in the
  14. * documentation and/or other materials provided with the distribution.
  15. *
  16. * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
  17. * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  18. * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  19. * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
  20. * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  21. * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  22. * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  23. * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  24. * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  25. * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  26. * SUCH DAMAGE.
  27. */
  28. /*-
  29. * Copyright (c) 1999, 2000 The NetBSD Foundation, Inc.
  30. * All rights reserved.
  31. *
  32. * This code is derived from software contributed to The NetBSD Foundation
  33. * by Julian Coleman.
  34. *
  35. * Redistribution and use in source and binary forms, with or without
  36. * modification, are permitted provided that the following conditions
  37. * are met:
  38. * 1. Redistributions of source code must retain the above copyright
  39. * notice, this list of conditions and the following disclaimer.
  40. * 2. Redistributions in binary form must reproduce the above copyright
  41. * notice, this list of conditions and the following disclaimer in the
  42. * documentation and/or other materials provided with the distribution.
  43. *
  44. * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
  45. * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
  46. * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
  47. * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
  48. * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  49. * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  50. * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  51. * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  52. * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  53. * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  54. * POSSIBILITY OF SUCH DAMAGE.
  55. */
  56. #ifndef _WCHAR_H_
  57. #define _WCHAR_H_
  58. #include <sys/cdefs.h>
  59. #include <sys/_types.h>
  60. #ifndef NULL
  61. #ifdef __GNUG__
  62. #define NULL __null
  63. #else
  64. #define NULL 0L
  65. #endif
  66. #endif
  67. #include <stdio.h> /* for FILE* */
  68. #if !defined(_WCHAR_T_DEFINED_) && !defined(__cplusplus)
  69. #define _WCHAR_T_DEFINED_
  70. typedef __wchar_t wchar_t;
  71. #endif
  72. #ifndef _MBSTATE_T_DEFINED_
  73. #define _MBSTATE_T_DEFINED_
  74. typedef __mbstate_t mbstate_t;
  75. #endif
  76. #ifndef _WINT_T_DEFINED_
  77. #define _WINT_T_DEFINED_
  78. typedef __wint_t wint_t;
  79. #endif
  80. #ifndef _SIZE_T_DEFINED_
  81. #define _SIZE_T_DEFINED_
  82. typedef __size_t size_t;
  83. #endif
  84. #ifndef WEOF
  85. #define WEOF ((wint_t)-1)
  86. #endif
  87. __BEGIN_DECLS
  88. wint_t btowc(int);
  89. size_t mbrlen(const char * __restrict, size_t, mbstate_t * __restrict);
  90. size_t mbrtowc(wchar_t * __restrict, const char * __restrict, size_t,
  91. mbstate_t * __restrict);
  92. int mbsinit(const mbstate_t *);
  93. size_t mbsrtowcs(wchar_t * __restrict, const char ** __restrict, size_t,
  94. mbstate_t * __restrict);
  95. size_t wcrtomb(char * __restrict, wchar_t, mbstate_t * __restrict);
  96. wchar_t *wcscat(wchar_t * __restrict, const wchar_t * __restrict);
  97. wchar_t *wcschr(const wchar_t *, wchar_t);
  98. int wcscmp(const wchar_t *, const wchar_t *);
  99. int wcscoll(const wchar_t *, const wchar_t *);
  100. wchar_t *wcscpy(wchar_t * __restrict, const wchar_t * __restrict);
  101. size_t wcscspn(const wchar_t *, const wchar_t *);
  102. size_t wcslen(const wchar_t *);
  103. wchar_t *wcsncat(wchar_t * __restrict, const wchar_t * __restrict,
  104. size_t);
  105. int wcsncmp(const wchar_t *, const wchar_t *, size_t);
  106. wchar_t *wcsncpy(wchar_t * __restrict , const wchar_t * __restrict,
  107. size_t);
  108. wchar_t *wcspbrk(const wchar_t *, const wchar_t *);
  109. wchar_t *wcsrchr(const wchar_t *, wchar_t);
  110. size_t wcsrtombs(char * __restrict, const wchar_t ** __restrict, size_t,
  111. mbstate_t * __restrict);
  112. size_t wcsspn(const wchar_t *, const wchar_t *);
  113. wchar_t *wcsstr(const wchar_t *, const wchar_t *);
  114. wchar_t *wcstok(wchar_t * __restrict, const wchar_t * __restrict,
  115. wchar_t ** __restrict);
  116. size_t wcsxfrm(wchar_t *, const wchar_t *, size_t);
  117. wchar_t *wcswcs(const wchar_t *, const wchar_t *);
  118. wchar_t *wmemchr(const wchar_t *, wchar_t, size_t);
  119. int wmemcmp(const wchar_t *, const wchar_t *, size_t);
  120. wchar_t *wmemcpy(wchar_t * __restrict, const wchar_t * __restrict,
  121. size_t);
  122. wchar_t *wmemmove(wchar_t *, const wchar_t *, size_t);
  123. wchar_t *wmemset(wchar_t *, wchar_t, size_t);
  124. size_t wcslcat(wchar_t *, const wchar_t *, size_t);
  125. size_t wcslcpy(wchar_t *, const wchar_t *, size_t);
  126. int wcswidth(const wchar_t *, size_t);
  127. int wctob(wint_t);
  128. int wcscoll(const wchar_t *, const wchar_t *);
  129. int wcwidth(wchar_t);
  130. double wcstod(const wchar_t * __restrict, wchar_t ** __restrict);
  131. long int wcstol(const wchar_t * __restrict, wchar_t ** __restrict, int base);
  132. unsigned long int wcstoul(const wchar_t * __restrict, wchar_t ** __restrict,
  133. int base);
  134. #if __ISO_C_VISIBLE >= 1999
  135. float wcstof(const wchar_t * __restrict, wchar_t ** __restrict);
  136. long double wcstold(const wchar_t * __restrict, wchar_t ** __restrict);
  137. #endif
  138. #if (defined(__GNUC__) && __GNUC__ >= 2 && !defined(__STRICT_ANSI__)) || \
  139. __ISO_C_VISIBLE >= 1999
  140. /* LONGLONG */
  141. long long int wcstoll(const wchar_t * __restrict,
  142. wchar_t ** __restrict, int base);
  143. /* LONGLONG */
  144. unsigned long long int wcstoull(const wchar_t * __restrict,
  145. wchar_t ** __restrict, int base);
  146. #endif
  147. wint_t ungetwc(wint_t, FILE *);
  148. wint_t fgetwc(FILE *);
  149. wchar_t *fgetws(wchar_t * __restrict, int, FILE * __restrict);
  150. wint_t getwc(FILE *);
  151. wint_t getwchar(void);
  152. wint_t fputwc(wchar_t, FILE *);
  153. int fputws(const wchar_t * __restrict, FILE * __restrict);
  154. wint_t putwc(wchar_t, FILE *);
  155. wint_t putwchar(wchar_t);
  156. int fwide(FILE *, int);
  157. #define getwc(f) fgetwc(f)
  158. #define getwchar() getwc(stdin)
  159. #define putwc(wc, f) fputwc((wc), (f))
  160. #define putwchar(wc) putwc((wc), stdout)
  161. __END_DECLS
  162. #endif /* !_WCHAR_H_ */