OLD | NEW |
1 // -*- C++ -*- | 1 // -*- C++ -*- |
2 //===----------------------------------------------------------------------===// | 2 //===----------------------------------------------------------------------===// |
3 // | 3 // |
4 // The LLVM Compiler Infrastructure | 4 // The LLVM Compiler Infrastructure |
5 // | 5 // |
6 // This file is dual licensed under the MIT and the University of Illinois Open | 6 // This file is dual licensed under the MIT and the University of Illinois Open |
7 // Source Licenses. See LICENSE.TXT for details. | 7 // Source Licenses. See LICENSE.TXT for details. |
8 // | 8 // |
9 //===----------------------------------------------------------------------===// | 9 //===----------------------------------------------------------------------===// |
10 | 10 |
(...skipping 23 matching lines...) Expand all Loading... |
34 // @LOCALMOD-START | 34 // @LOCALMOD-START |
35 #elif defined(_NEWLIB_VERSION) | 35 #elif defined(_NEWLIB_VERSION) |
36 // FIXME: replace all the uses of _NEWLIB_VERSION with __NEWLIB__ preceded by an | 36 // FIXME: replace all the uses of _NEWLIB_VERSION with __NEWLIB__ preceded by an |
37 // include of <sys/cdefs.h> once https://sourceware.org/ml/newlib-cvs/2014-q3/ms
g00038.html | 37 // include of <sys/cdefs.h> once https://sourceware.org/ml/newlib-cvs/2014-q3/ms
g00038.html |
38 // has had a chance to bake for a bit. | 38 // has had a chance to bake for a bit. |
39 #include <support/newlib/xlocale.h> | 39 #include <support/newlib/xlocale.h> |
40 // @LOCALMOD-END | 40 // @LOCALMOD-END |
41 #elif (defined(__GLIBC__) || defined(__APPLE__) || defined(__FreeBSD__) \ | 41 #elif (defined(__GLIBC__) || defined(__APPLE__) || defined(__FreeBSD__) \ |
42 || defined(__EMSCRIPTEN__) || defined(__IBMCPP__)) | 42 || defined(__EMSCRIPTEN__) || defined(__IBMCPP__)) |
43 # include <xlocale.h> | 43 # include <xlocale.h> |
| 44 #elif defined(_LIBCPP_HAS_MUSL_LIBC) |
| 45 # include <support/musl/xlocale.h> |
44 #endif // __GLIBC__ || __APPLE__ || __FreeBSD__ || __sun__ || __EMSCRIPTEN__ ||
__IBMCPP__ | 46 #endif // __GLIBC__ || __APPLE__ || __FreeBSD__ || __sun__ || __EMSCRIPTEN__ ||
__IBMCPP__ |
45 | 47 |
46 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) | 48 #if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) |
47 #pragma GCC system_header | 49 #pragma GCC system_header |
48 #endif | 50 #endif |
49 | 51 |
50 _LIBCPP_BEGIN_NAMESPACE_STD | 52 _LIBCPP_BEGIN_NAMESPACE_STD |
51 | 53 |
52 class _LIBCPP_TYPE_VIS locale; | 54 class _LIBCPP_TYPE_VIS locale; |
53 | 55 |
(...skipping 272 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
326 return _VSTD::use_facet<_VSTD::collate<_CharT> >(*this).compare( | 328 return _VSTD::use_facet<_VSTD::collate<_CharT> >(*this).compare( |
327 __x.data(), __x.data() + __x.size(), | 329 __x.data(), __x.data() + __x.size(), |
328 __y.data(), __y.data() + __y.size()) < 0; | 330 __y.data(), __y.data() + __y.size()) < 0; |
329 } | 331 } |
330 | 332 |
331 // template <class charT> class ctype | 333 // template <class charT> class ctype |
332 | 334 |
333 class _LIBCPP_TYPE_VIS ctype_base | 335 class _LIBCPP_TYPE_VIS ctype_base |
334 { | 336 { |
335 public: | 337 public: |
336 #ifdef __GLIBC__ | 338 #if defined(__GLIBC__) |
337 typedef unsigned short mask; | 339 typedef unsigned short mask; |
338 static const mask space = _ISspace; | 340 static const mask space = _ISspace; |
339 static const mask print = _ISprint; | 341 static const mask print = _ISprint; |
340 static const mask cntrl = _IScntrl; | 342 static const mask cntrl = _IScntrl; |
341 static const mask upper = _ISupper; | 343 static const mask upper = _ISupper; |
342 static const mask lower = _ISlower; | 344 static const mask lower = _ISlower; |
343 static const mask alpha = _ISalpha; | 345 static const mask alpha = _ISalpha; |
344 static const mask digit = _ISdigit; | 346 static const mask digit = _ISdigit; |
345 static const mask punct = _ISpunct; | 347 static const mask punct = _ISpunct; |
346 static const mask xdigit = _ISxdigit; | 348 static const mask xdigit = _ISxdigit; |
347 static const mask blank = _ISblank; | 349 static const mask blank = _ISblank; |
348 #elif defined(_WIN32) | 350 #elif defined(_WIN32) |
349 typedef unsigned short mask; | 351 typedef unsigned short mask; |
350 static const mask space = _SPACE; | 352 static const mask space = _SPACE; |
351 static const mask print = _BLANK|_PUNCT|_ALPHA|_DIGIT; | 353 static const mask print = _BLANK|_PUNCT|_ALPHA|_DIGIT; |
352 static const mask cntrl = _CONTROL; | 354 static const mask cntrl = _CONTROL; |
353 static const mask upper = _UPPER; | 355 static const mask upper = _UPPER; |
354 static const mask lower = _LOWER; | 356 static const mask lower = _LOWER; |
355 static const mask alpha = _ALPHA; | 357 static const mask alpha = _ALPHA; |
356 static const mask digit = _DIGIT; | 358 static const mask digit = _DIGIT; |
357 static const mask punct = _PUNCT; | 359 static const mask punct = _PUNCT; |
358 static const mask xdigit = _HEX; | 360 static const mask xdigit = _HEX; |
359 static const mask blank = _BLANK; | 361 static const mask blank = _BLANK; |
360 #elif defined(__APPLE__) || defined(__FreeBSD__) || defined(__EMSCRIPTEN__) || d
efined(__NetBSD__) || defined(__ANDROID__) | 362 #elif defined(__APPLE__) || defined(__FreeBSD__) || defined(__EMSCRIPTEN__) || d
efined(__NetBSD__) || defined(__ANDROID__) |
361 #ifdef __APPLE__ | 363 #ifdef __APPLE__ |
362 typedef __uint32_t mask; | 364 typedef __uint32_t mask; |
363 #elif defined(__FreeBSD__) | 365 #elif defined(__FreeBSD__) |
364 typedef unsigned long mask; | 366 typedef unsigned long mask; |
365 #elif defined(__EMSCRIPTEN__) || defined(__NetBSD__) | 367 # elif defined(__EMSCRIPTEN__) || defined(__NetBSD__) || defined(_LIBCPP_HAS_MUS
L_LIBC) |
366 typedef unsigned short mask; | 368 typedef unsigned short mask; |
367 #elif defined(__ANDROID__) | 369 #elif defined(__ANDROID__) |
368 typedef unsigned char mask; | 370 typedef unsigned char mask; |
369 #endif | 371 #endif |
370 static const mask space = _CTYPE_S; | 372 static const mask space = _CTYPE_S; |
371 static const mask print = _CTYPE_R; | 373 static const mask print = _CTYPE_R; |
372 static const mask cntrl = _CTYPE_C; | 374 static const mask cntrl = _CTYPE_C; |
373 static const mask upper = _CTYPE_U; | 375 static const mask upper = _CTYPE_U; |
374 static const mask lower = _CTYPE_L; | 376 static const mask lower = _CTYPE_L; |
375 static const mask alpha = _CTYPE_A; | 377 static const mask alpha = _CTYPE_A; |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
407 static const mask cntrl = _C; | 409 static const mask cntrl = _C; |
408 static const mask upper = _U; | 410 static const mask upper = _U; |
409 static const mask lower = _L; | 411 static const mask lower = _L; |
410 static const mask alpha = _U | _L; | 412 static const mask alpha = _U | _L; |
411 static const mask digit = _N; | 413 static const mask digit = _N; |
412 static const mask punct = _P; | 414 static const mask punct = _P; |
413 static const mask xdigit = _X | _N; | 415 static const mask xdigit = _X | _N; |
414 static const mask blank = _B; | 416 static const mask blank = _B; |
415 // @LOCALMOD-END | 417 // @LOCALMOD-END |
416 #else // __GLIBC__ || _WIN32 || __APPLE__ || __FreeBSD__ || __EMSCRIPTEN__ || _
_sun__ | 418 #else // __GLIBC__ || _WIN32 || __APPLE__ || __FreeBSD__ || __EMSCRIPTEN__ || _
_sun__ |
| 419 #if defined(_LIBCPP_HAS_MUSL_LIBC) |
| 420 typedef unsigned short mask; |
| 421 #else |
417 typedef unsigned long mask; | 422 typedef unsigned long mask; |
| 423 #endif |
418 static const mask space = 1<<0; | 424 static const mask space = 1<<0; |
419 static const mask print = 1<<1; | 425 static const mask print = 1<<1; |
420 static const mask cntrl = 1<<2; | 426 static const mask cntrl = 1<<2; |
421 static const mask upper = 1<<3; | 427 static const mask upper = 1<<3; |
422 static const mask lower = 1<<4; | 428 static const mask lower = 1<<4; |
423 static const mask alpha = 1<<5; | 429 static const mask alpha = 1<<5; |
424 static const mask digit = 1<<6; | 430 static const mask digit = 1<<6; |
425 static const mask punct = 1<<7; | 431 static const mask punct = 1<<7; |
426 static const mask xdigit = 1<<8; | 432 static const mask xdigit = 1<<8; |
427 static const mask blank = 1<<9; | 433 static const mask blank = 1<<9; |
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
629 | 635 |
630 static locale::id id; | 636 static locale::id id; |
631 | 637 |
632 #ifdef _CACHED_RUNES | 638 #ifdef _CACHED_RUNES |
633 static const size_t table_size = _CACHED_RUNES; | 639 static const size_t table_size = _CACHED_RUNES; |
634 #else | 640 #else |
635 static const size_t table_size = 256; // FIXME: Don't hardcode this. | 641 static const size_t table_size = 256; // FIXME: Don't hardcode this. |
636 #endif | 642 #endif |
637 _LIBCPP_ALWAYS_INLINE const mask* table() const _NOEXCEPT {return __tab_;} | 643 _LIBCPP_ALWAYS_INLINE const mask* table() const _NOEXCEPT {return __tab_;} |
638 static const mask* classic_table() _NOEXCEPT; | 644 static const mask* classic_table() _NOEXCEPT; |
639 #if defined(__GLIBC__) || defined(__EMSCRIPTEN__) | 645 #if defined(__GLIBC__) || defined(__EMSCRIPTEN__) || defined(_LIBCPP_HAS_MUSL_LI
BC) |
640 static const int* __classic_upper_table() _NOEXCEPT; | 646 static const int* __classic_upper_table() _NOEXCEPT; |
641 static const int* __classic_lower_table() _NOEXCEPT; | 647 static const int* __classic_lower_table() _NOEXCEPT; |
642 #endif | 648 #endif |
643 #if defined(__NetBSD__) | 649 #if defined(__NetBSD__) |
644 static const short* __classic_upper_table() _NOEXCEPT; | 650 static const short* __classic_upper_table() _NOEXCEPT; |
645 static const short* __classic_lower_table() _NOEXCEPT; | 651 static const short* __classic_lower_table() _NOEXCEPT; |
646 #endif | 652 #endif |
647 | 653 |
648 protected: | 654 protected: |
649 ~ctype(); | 655 ~ctype(); |
(...skipping 824 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1474 protected: | 1480 protected: |
1475 ~numpunct_byname(); | 1481 ~numpunct_byname(); |
1476 | 1482 |
1477 private: | 1483 private: |
1478 void __init(const char*); | 1484 void __init(const char*); |
1479 }; | 1485 }; |
1480 | 1486 |
1481 _LIBCPP_END_NAMESPACE_STD | 1487 _LIBCPP_END_NAMESPACE_STD |
1482 | 1488 |
1483 #endif // _LIBCPP___LOCALE | 1489 #endif // _LIBCPP___LOCALE |
OLD | NEW |