/** * D header file for C99. * * $(C_HEADER_DESCRIPTION pubs.opengroup.org/onlinepubs/009695399/basedefs/_locale.h.html, _locale.h) * * Copyright: Copyright Sean Kelly 2005 - 2009. * License: Distributed under the * $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0). * (See accompanying file LICENSE) * Authors: Sean Kelly * Source: $(DRUNTIMESRC core/stdc/_locale.d) * Standards: ISO/IEC 9899:1999 (E) */ module core.stdc.locale; version (OSX) version = Darwin; else version (iOS) version = Darwin; else version (TVOS) version = Darwin; else version (WatchOS) version = Darwin; extern (C): @trusted: // Only setlocale operates on C strings. nothrow: @nogc: /// struct lconv { char* decimal_point; char* thousands_sep; char* grouping; char* int_curr_symbol; char* currency_symbol; char* mon_decimal_point; char* mon_thousands_sep; char* mon_grouping; char* positive_sign; char* negative_sign; byte int_frac_digits; byte frac_digits; byte p_cs_precedes; byte p_sep_by_space; byte n_cs_precedes; byte n_sep_by_space; byte p_sign_posn; byte n_sign_posn; byte int_p_cs_precedes; byte int_p_sep_by_space; byte int_n_cs_precedes; byte int_n_sep_by_space; byte int_p_sign_posn; byte int_n_sign_posn; } version (CRuntime_Glibc) { /// enum LC_CTYPE = 0; /// enum LC_NUMERIC = 1; /// enum LC_TIME = 2; /// enum LC_COLLATE = 3; /// enum LC_MONETARY = 4; /// enum LC_MESSAGES = 5; /// enum LC_ALL = 6; /// enum LC_PAPER = 7; // non-standard /// enum LC_NAME = 8; // non-standard /// enum LC_ADDRESS = 9; // non-standard /// enum LC_TELEPHONE = 10; // non-standard /// enum LC_MEASUREMENT = 11; // non-standard /// enum LC_IDENTIFICATION = 12; // non-standard } else version (Windows) { /// enum LC_ALL = 0; /// enum LC_COLLATE = 1; /// enum LC_CTYPE = 2; /// enum LC_MONETARY = 3; /// enum LC_NUMERIC = 4; /// enum LC_TIME = 5; } else version (Darwin) { /// enum LC_ALL = 0; /// enum LC_COLLATE = 1; /// enum LC_CTYPE = 2; /// enum LC_MONETARY = 3; /// enum LC_NUMERIC = 4; /// enum LC_TIME = 5; /// enum LC_MESSAGES = 6; } else version (FreeBSD) { /// enum LC_ALL = 0; /// enum LC_COLLATE = 1; /// enum LC_CTYPE = 2; /// enum LC_MONETARY = 3; /// enum LC_NUMERIC = 4; /// enum LC_TIME = 5; /// enum LC_MESSAGES = 6; } else version (NetBSD) { /// enum LC_ALL = 0; /// enum LC_COLLATE = 1; /// enum LC_CTYPE = 2; /// enum LC_MONETARY = 3; /// enum LC_NUMERIC = 4; /// enum LC_TIME = 5; /// enum LC_MESSAGES = 6; } else version (OpenBSD) { /// enum LC_ALL = 0; /// enum LC_COLLATE = 1; /// enum LC_CTYPE = 2; /// enum LC_MONETARY = 3; /// enum LC_NUMERIC = 4; /// enum LC_TIME = 5; /// enum LC_MESSAGES = 6; } else version (DragonFlyBSD) { /// enum LC_ALL = 0; /// enum LC_COLLATE = 1; /// enum LC_CTYPE = 2; /// enum LC_MONETARY = 3; /// enum LC_NUMERIC = 4; /// enum LC_TIME = 5; /// enum LC_MESSAGES = 6; } else version (CRuntime_Bionic) { enum { /// LC_CTYPE = 0, /// LC_NUMERIC = 1, /// LC_TIME = 2, /// LC_COLLATE = 3, /// LC_MONETARY = 4, /// LC_MESSAGES = 5, /// LC_ALL = 6, /// LC_PAPER = 7, /// LC_NAME = 8, /// LC_ADDRESS = 9, /// LC_TELEPHONE = 10, /// LC_MEASUREMENT = 11, /// LC_IDENTIFICATION = 12, } } else version (Solaris) { /// enum LC_CTYPE = 0; /// enum LC_NUMERIC = 1; /// enum LC_TIME = 2; /// enum LC_COLLATE = 3; /// enum LC_MONETARY = 4; /// enum LC_MESSAGES = 5; /// enum LC_ALL = 6; } else version (CRuntime_Musl) { /// enum LC_CTYPE = 0; /// enum LC_NUMERIC = 1; /// enum LC_TIME = 2; /// enum LC_COLLATE = 3; /// enum LC_MONETARY = 4; /// enum LC_MESSAGES = 5; /// enum LC_ALL = 6; } else version (CRuntime_UClibc) { /// enum LC_CTYPE = 0; /// enum LC_NUMERIC = 1; /// enum LC_TIME = 2; /// enum LC_COLLATE = 3; /// enum LC_MONETARY = 4; /// enum LC_MESSAGES = 5; /// enum LC_ALL = 6; /// enum LC_PAPER = 7; /// enum LC_NAME = 8; /// enum LC_ADDRESS = 9; /// enum LC_TELEPHONE = 10; /// enum LC_MEASUREMENT = 11; /// enum LC_IDENTIFICATION = 12; } else { static assert(false, "Unsupported platform"); } /// @system char* setlocale(int category, const scope char* locale); /// lconv* localeconv();