wchar.h 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  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 <stdarg.h>
  9. #include <stddef.h>
  10. #include <sys/cdefs.h>
  11. __BEGIN_DECLS
  12. #ifndef WEOF
  13. # define WEOF (0xffffffffu)
  14. #endif
  15. typedef __WINT_TYPE__ wint_t;
  16. typedef unsigned long int wctype_t;
  17. // A zero-initialized mbstate_t struct must be a valid initial state.
  18. typedef struct {
  19. unsigned char bytes[4];
  20. unsigned int stored_bytes;
  21. } mbstate_t;
  22. struct tm;
  23. size_t wcslen(const wchar_t*);
  24. wchar_t* wcscpy(wchar_t*, const wchar_t*);
  25. wchar_t* wcsdup(const wchar_t*);
  26. wchar_t* wcsncpy(wchar_t*, const wchar_t*, size_t);
  27. __attribute__((warn_unused_result)) size_t wcslcpy(wchar_t*, const wchar_t*, size_t);
  28. int wcscmp(const wchar_t*, const wchar_t*);
  29. int wcsncmp(const wchar_t*, const wchar_t*, size_t);
  30. wchar_t* wcschr(const wchar_t*, int);
  31. wchar_t* wcsrchr(const wchar_t*, wchar_t);
  32. wchar_t* wcscat(wchar_t*, const wchar_t*);
  33. wchar_t* wcsncat(wchar_t*, const wchar_t*, size_t);
  34. wchar_t* wcstok(wchar_t*, const wchar_t*, wchar_t**);
  35. long wcstol(const wchar_t*, wchar_t**, int);
  36. long long wcstoll(const wchar_t*, wchar_t**, int);
  37. wint_t btowc(int c);
  38. size_t mbrtowc(wchar_t*, const char*, size_t, mbstate_t*);
  39. size_t mbrlen(const char*, size_t, mbstate_t*);
  40. size_t wcrtomb(char*, wchar_t, mbstate_t*);
  41. int wcscoll(const wchar_t*, const wchar_t*);
  42. size_t wcsxfrm(wchar_t*, const wchar_t*, size_t);
  43. int wctob(wint_t);
  44. int mbsinit(const mbstate_t*);
  45. wchar_t* wcspbrk(const wchar_t*, const wchar_t*);
  46. wchar_t* wcsstr(const wchar_t*, const wchar_t*);
  47. wchar_t* wmemchr(const wchar_t*, wchar_t, size_t);
  48. wchar_t* wmemcpy(wchar_t*, const wchar_t*, size_t);
  49. wchar_t* wmemset(wchar_t*, wchar_t, size_t);
  50. wchar_t* wmemmove(wchar_t*, const wchar_t*, size_t);
  51. unsigned long wcstoul(const wchar_t*, wchar_t**, int);
  52. unsigned long long wcstoull(const wchar_t*, wchar_t**, int);
  53. float wcstof(const wchar_t*, wchar_t**);
  54. double wcstod(const wchar_t*, wchar_t**);
  55. long double wcstold(const wchar_t*, wchar_t**);
  56. int swprintf(wchar_t*, size_t, const wchar_t*, ...);
  57. int wcwidth(wchar_t);
  58. size_t wcsrtombs(char*, const wchar_t**, size_t, mbstate_t*);
  59. size_t mbsrtowcs(wchar_t*, const char**, size_t, mbstate_t*);
  60. int wmemcmp(const wchar_t*, const wchar_t*, size_t);
  61. size_t wcsnrtombs(char*, const wchar_t**, size_t, size_t, mbstate_t*);
  62. size_t mbsnrtowcs(wchar_t*, const char**, size_t, size_t, mbstate_t*);
  63. size_t wcscspn(const wchar_t* wcs, const wchar_t* reject);
  64. size_t wcsspn(const wchar_t* wcs, const wchar_t* accept);
  65. wint_t fgetwc(FILE* stream);
  66. wint_t getwc(FILE* stream);
  67. wint_t getwchar(void);
  68. wint_t fputwc(wchar_t wc, FILE* stream);
  69. wint_t putwc(wchar_t wc, FILE* stream);
  70. wint_t putwchar(wchar_t wc);
  71. int fwide(FILE* stream, int mode);
  72. __END_DECLS