wchar.h 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. /*
  2. * Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org>
  3. *
  4. * SPDX-License-Identifier: BSD-2-Clause
  5. */
  6. #pragma once
  7. #include <bits/FILE.h>
  8. #include <bits/wchar_size.h>
  9. #include <stdarg.h>
  10. #include <stddef.h>
  11. #include <sys/cdefs.h>
  12. __BEGIN_DECLS
  13. #ifndef WEOF
  14. # define WEOF (0xffffffffu)
  15. #endif
  16. typedef __WINT_TYPE__ wint_t;
  17. typedef unsigned long int wctype_t;
  18. // A zero-initialized mbstate_t struct must be a valid initial state.
  19. typedef struct {
  20. unsigned char bytes[4];
  21. unsigned int stored_bytes;
  22. } mbstate_t;
  23. struct tm;
  24. size_t wcslen(wchar_t const*);
  25. wchar_t* wcscpy(wchar_t*, wchar_t const*);
  26. wchar_t* wcsdup(wchar_t const*);
  27. wchar_t* wcsncpy(wchar_t*, wchar_t const*, size_t);
  28. __attribute__((warn_unused_result)) size_t wcslcpy(wchar_t*, wchar_t const*, size_t);
  29. int wcscmp(wchar_t const*, wchar_t const*);
  30. int wcsncmp(wchar_t const*, wchar_t const*, size_t);
  31. wchar_t* wcschr(wchar_t const*, int);
  32. wchar_t* wcsrchr(wchar_t const*, wchar_t);
  33. wchar_t* wcscat(wchar_t*, wchar_t const*);
  34. wchar_t* wcsncat(wchar_t*, wchar_t const*, size_t);
  35. wchar_t* wcstok(wchar_t*, wchar_t const*, wchar_t**);
  36. long wcstol(wchar_t const*, wchar_t**, int);
  37. long long wcstoll(wchar_t const*, wchar_t**, int);
  38. wint_t btowc(int c);
  39. size_t mbrtowc(wchar_t*, char const*, size_t, mbstate_t*);
  40. size_t mbrlen(char const*, size_t, mbstate_t*);
  41. size_t wcrtomb(char*, wchar_t, mbstate_t*);
  42. int wcscoll(wchar_t const*, wchar_t const*);
  43. size_t wcsxfrm(wchar_t*, wchar_t const*, size_t);
  44. int wctob(wint_t);
  45. int mbsinit(mbstate_t const*);
  46. wchar_t* wcspbrk(wchar_t const*, wchar_t const*);
  47. wchar_t* wcsstr(wchar_t const*, wchar_t const*);
  48. wchar_t* wmemchr(wchar_t const*, wchar_t, size_t);
  49. wchar_t* wmemcpy(wchar_t*, wchar_t const*, size_t);
  50. wchar_t* wmemset(wchar_t*, wchar_t, size_t);
  51. wchar_t* wmemmove(wchar_t*, wchar_t const*, size_t);
  52. unsigned long wcstoul(wchar_t const*, wchar_t**, int);
  53. unsigned long long wcstoull(wchar_t const*, wchar_t**, int);
  54. float wcstof(wchar_t const*, wchar_t**);
  55. double wcstod(wchar_t const*, wchar_t**);
  56. long double wcstold(wchar_t const*, wchar_t**);
  57. int wcwidth(wchar_t);
  58. int wcswidth(wchar_t const*, size_t);
  59. size_t wcsrtombs(char*, wchar_t const**, size_t, mbstate_t*);
  60. size_t mbsrtowcs(wchar_t*, char const**, size_t, mbstate_t*);
  61. int wmemcmp(wchar_t const*, wchar_t const*, size_t);
  62. size_t wcsnrtombs(char*, wchar_t const**, size_t, size_t, mbstate_t*);
  63. size_t mbsnrtowcs(wchar_t*, char const**, size_t, size_t, mbstate_t*);
  64. size_t wcscspn(wchar_t const* wcs, wchar_t const* reject);
  65. size_t wcsspn(wchar_t const* wcs, wchar_t const* accept);
  66. wint_t fgetwc(FILE* stream);
  67. wint_t getwc(FILE* stream);
  68. wint_t getwchar(void);
  69. wint_t fputwc(wchar_t wc, FILE* stream);
  70. wint_t putwc(wchar_t wc, FILE* stream);
  71. wint_t putwchar(wchar_t wc);
  72. wchar_t* fgetws(wchar_t* __restrict ws, int n, FILE* __restrict stream);
  73. int fputws(wchar_t const* __restrict ws, FILE* __restrict stream);
  74. wint_t ungetwc(wint_t wc, FILE* stream);
  75. int fwide(FILE* stream, int mode);
  76. int wprintf(wchar_t const* __restrict format, ...);
  77. int fwprintf(FILE* __restrict stream, wchar_t const* __restrict format, ...);
  78. int swprintf(wchar_t* __restrict wcs, size_t maxlen, wchar_t const* __restrict format, ...);
  79. int vwprintf(wchar_t const* __restrict format, va_list args);
  80. int vfwprintf(FILE* __restrict stream, wchar_t const* __restrict format, va_list args);
  81. int vswprintf(wchar_t* __restrict wcs, size_t maxlen, wchar_t const* __restrict format, va_list args);
  82. int fwscanf(FILE* __restrict stream, wchar_t const* __restrict format, ...);
  83. int swscanf(wchar_t const* __restrict ws, wchar_t const* __restrict format, ...);
  84. int wscanf(wchar_t const* __restrict format, ...);
  85. int vfwscanf(FILE* __restrict stream, wchar_t const* __restrict format, va_list arg);
  86. int vswscanf(wchar_t const* __restrict ws, wchar_t const* __restrict format, va_list arg);
  87. int vwscanf(wchar_t const* __restrict format, va_list arg);
  88. size_t wcsftime(wchar_t* __restrict wcs, size_t maxsize, wchar_t const* __restrict format, const struct tm* __restrict timeptr);
  89. __END_DECLS