Print this page
Fix compile errors, code review feedback, and add basic libc test suite.


  31  * symbol visibilty rules (under strict ANSI or POSIX_C_SOURCE rules.)
  32  * If this is done, the symbols defined here will indeed be exposed to your
  33  * program, but those symbols that are part of the related standards might
  34  * not be.
  35  */
  36 
  37 #include <sys/feature_tests.h>
  38 #include <wchar.h>
  39 #include <locale.h>
  40 #include <stdio.h>
  41 
  42 #ifdef __cplusplus
  43 extern "C" {
  44 #endif
  45 
  46 #ifndef _LOCALE_T
  47 #define _LOCALE_T
  48 typedef struct locale *locale_t;
  49 #endif
  50 
  51 int mbsinit_l(const mbstate_t *, locale_t);
  52 
  53 size_t mbsrtowcs_l(wchar_t *_RESTRICT_KYWD, const char **_RESTRICT_KYWD,
  54     size_t, mbstate_t *_RESTRICT_KYWD, locale_t);
  55 
  56 size_t mbsnrtowcs_l(wchar_t *_RESTRICT_KYWD, const char **_RESTRICT_KYWD,
  57     size_t, size_t, mbstate_t *_RESTRICT_KYWD, locale_t);
  58 
  59 char *strptime_l(const char *_RESTRICT_KYWD, const char *_RESTRICT_KYWD,
  60     struct tm *_RESTRICT_KYWD, locale_t);
  61 
  62 int wcwidth_l(wchar_t, locale_t);
  63 
  64 int wcswidth_l(const wchar_t *, size_t, locale_t);
  65 
  66 int iswspecial_l(wint_t, locale_t);
  67 int iswnumber_l(wint_t, locale_t);
  68 int iswhexnumber_l(wint_t, locale_t);
  69 int iswideogram_l(wint_t, locale_t);
  70 int iswphonogram_l(wint_t, locale_t);
  71 
  72 wint_t btowc_l(int, locale_t);
  73 int wctob_l(wint_t, locale_t);
  74 size_t mbrtowc_l(wchar_t *_RESTRICT_KYWD, const char *_RESTRICT_KYWD, size_t,





  75     mbstate_t *_RESTRICT_KYWD, locale_t);
  76 size_t mbstowcs_l(wchar_t *_RESTRICT_KYWD, const char *_RESTRICT_KYWD, size_t,
  77     locale_t);
  78 int mblen_l(const char *, size_t, locale_t);
  79 size_t mbrlen_l(const char *_RESTRICT_KYWD, size_t, mbstate_t *_RESTRICT_KYWD,
  80     locale_t);
  81 int mbtowc_l(wchar_t *_RESTRICT_KYWD, const char *_RESTRICT_KYWD, size_t,
  82     locale_t);
  83 size_t wcsrtombs_l(char *_RESTRICT_KYWD, const wchar_t **_RESTRICT_KYWD,
  84     size_t len, mbstate_t *_RESTRICT_KYWD, locale_t);
  85 size_t wcrtomb_l(char *_RESTRICT_KYWD, wchar_t, mbstate_t *_RESTRICT_KYWD,
  86     locale_t);
  87 size_t wcstombs_l(char *_RESTRICT_KYWD, const wchar_t *_RESTRICT_KYWD, size_t,
  88     locale_t);
  89 int wctomb_l(char *, wchar_t, locale_t);
  90 
  91 unsigned char __mb_cur_max_l(locale_t);
  92 #ifndef MB_CUR_MAX_L
  93 #define MB_CUR_MAX_L(l) (__mb_cur_max_l(l))
  94 #endif
  95 
  96 
  97 #if defined(_XPG4) && !defined(_FILEDEFED) || __cplusplus >= 199711L
  98 #define _FILEDEFED
  99 typedef __FILE FILE;
 100 #endif
 101 
 102 wint_t fgetwc_l(FILE *, locale_t);
 103 wint_t getwc_l(FILE *, locale_t);
 104 
 105 #ifndef getwchar_l
 106 #define getwchar_l(l)   fgetwc_l(stdin, (l))
 107 #endif
 108 
 109 #ifdef __cplusplus
 110 }
 111 #endif
 112 
 113 #endif /* _XLOCALE_H */


  31  * symbol visibilty rules (under strict ANSI or POSIX_C_SOURCE rules.)
  32  * If this is done, the symbols defined here will indeed be exposed to your
  33  * program, but those symbols that are part of the related standards might
  34  * not be.
  35  */
  36 
  37 #include <sys/feature_tests.h>
  38 #include <wchar.h>
  39 #include <locale.h>
  40 #include <stdio.h>
  41 
  42 #ifdef __cplusplus
  43 extern "C" {
  44 #endif
  45 
  46 #ifndef _LOCALE_T
  47 #define _LOCALE_T
  48 typedef struct locale *locale_t;
  49 #endif
  50 
  51 extern int mbsinit_l(const mbstate_t *, locale_t);
  52 
  53 extern size_t mbsrtowcs_l(wchar_t *_RESTRICT_KYWD, const char **_RESTRICT_KYWD,
  54     size_t, mbstate_t *_RESTRICT_KYWD, locale_t);
  55 
  56 extern size_t mbsnrtowcs_l(wchar_t *_RESTRICT_KYWD, const char **_RESTRICT_KYWD,
  57     size_t, size_t, mbstate_t *_RESTRICT_KYWD, locale_t);
  58 
  59 extern char *strptime_l(const char *_RESTRICT_KYWD, const char *_RESTRICT_KYWD,
  60     struct tm *_RESTRICT_KYWD, locale_t);
  61 
  62 extern int wcwidth_l(wchar_t, locale_t);
  63 
  64 extern int wcswidth_l(const wchar_t *, size_t, locale_t);
  65 
  66 extern int iswspecial_l(wint_t, locale_t);
  67 extern int iswnumber_l(wint_t, locale_t);
  68 extern int iswhexnumber_l(wint_t, locale_t);
  69 extern int iswideogram_l(wint_t, locale_t);
  70 extern int iswphonogram_l(wint_t, locale_t);
  71 
  72 extern wint_t btowc_l(int, locale_t);
  73 extern int wctob_l(wint_t, locale_t);
  74 extern size_t mbrtowc_l(wchar_t *_RESTRICT_KYWD, const char *_RESTRICT_KYWD,
  75     size_t, mbstate_t *_RESTRICT_KYWD, locale_t);
  76 extern size_t mbstowcs_l(wchar_t *_RESTRICT_KYWD, const char *_RESTRICT_KYWD,
  77     size_t, locale_t);
  78 extern int mblen_l(const char *, size_t, locale_t);
  79 extern size_t mbrlen_l(const char *_RESTRICT_KYWD, size_t,
  80     mbstate_t *_RESTRICT_KYWD, locale_t);
  81 extern int mbtowc_l(wchar_t *_RESTRICT_KYWD, const char *_RESTRICT_KYWD, size_t,
  82     locale_t);
  83 extern size_t wcsrtombs_l(char *_RESTRICT_KYWD, const wchar_t **_RESTRICT_KYWD,





  84     size_t len, mbstate_t *_RESTRICT_KYWD, locale_t);
  85 extern size_t wcrtomb_l(char *_RESTRICT_KYWD, wchar_t,
  86     mbstate_t *_RESTRICT_KYWD, locale_t);
  87 extern size_t wcstombs_l(char *_RESTRICT_KYWD, const wchar_t *_RESTRICT_KYWD,
  88     size_t, locale_t);
  89 extern int wctomb_l(char *, wchar_t, locale_t);
  90 
  91 extern unsigned char __mb_cur_max_l(locale_t);
  92 #ifndef MB_CUR_MAX_L
  93 #define MB_CUR_MAX_L(l) (__mb_cur_max_l(l))
  94 #endif
  95 
  96 
  97 #if defined(_XPG4) && !defined(_FILEDEFED) || __cplusplus >= 199711L
  98 #define _FILEDEFED
  99 typedef __FILE FILE;
 100 #endif
 101 
 102 extern wint_t fgetwc_l(FILE *, locale_t);
 103 extern wint_t getwc_l(FILE *, locale_t);
 104 
 105 #ifndef getwchar_l
 106 #define getwchar_l(l)   fgetwc_l(stdin, (l))
 107 #endif
 108 
 109 #ifdef __cplusplus
 110 }
 111 #endif
 112 
 113 #endif /* _XLOCALE_H */