mastodonpp  0.0.0
xlocale.h
1 //===----------------------------------------------------------------------===//
2 //
3 // The LLVM Compiler Infrastructure
4 //
5 // This file is dual licensed under the MIT and the University of Illinois Open
6 // Source Licenses. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 
11 // Minimal xlocale implementation for Solaris. This implements the subset of
12 // the xlocale APIs that libc++ depends on.
14 #ifndef __XLOCALE_H_INCLUDED
15 #define __XLOCALE_H_INCLUDED
16 
17 #include <stdlib.h>
18 
19 #ifdef __cplusplus
20 extern "C" {
21 #endif
22 
23 
24 int snprintf_l(char *__s, size_t __n, locale_t __l, const char *__format, ...);
25 int asprintf_l(char **__s, locale_t __l, const char *__format, ...);
26 
27 int sscanf_l(const char *__s, locale_t __l, const char *__format, ...);
28 
29 int toupper_l(int __c, locale_t __l);
30 int tolower_l(int __c, locale_t __l);
31 
32 struct lconv *localeconv(void);
33 struct lconv *localeconv_l(locale_t __l);
34 
35 // FIXME: These are quick-and-dirty hacks to make things pretend to work
36 static inline
37 long long strtoll_l(const char *__nptr, char **__endptr,
38  int __base, locale_t __loc) {
39  return strtoll(__nptr, __endptr, __base);
40 }
41 static inline
42 long strtol_l(const char *__nptr, char **__endptr,
43  int __base, locale_t __loc) {
44  return strtol(__nptr, __endptr, __base);
45 }
46 static inline
47 unsigned long long strtoull_l(const char *__nptr, char **__endptr,
48  int __base, locale_t __loc) {
49  return strtoull(__nptr, __endptr, __base);
50 }
51 static inline
52 unsigned long strtoul_l(const char *__nptr, char **__endptr,
53  int __base, locale_t __loc) {
54  return strtoul(__nptr, __endptr, __base);
55 }
56 static inline
57 float strtof_l(const char *__nptr, char **__endptr,
58  locale_t __loc) {
59  return strtof(__nptr, __endptr);
60 }
61 static inline
62 double strtod_l(const char *__nptr, char **__endptr,
63  locale_t __loc) {
64  return strtod(__nptr, __endptr);
65 }
66 static inline
67 long double strtold_l(const char *__nptr, char **__endptr,
68  locale_t __loc) {
69  return strtold(__nptr, __endptr);
70 }
71 
72 
73 #ifdef __cplusplus
74 }
75 #endif
76 
77 #endif
locale_t
Definition: locale_win32.h:32