Skip to content

Commit 3385c79

Browse files
Merge pull request dlang#641 from luismarques/issue_11293
fix issue 11293 (locale enumeration for Windows, OS X, Linux)
2 parents 47b0d93 + 3ef5a0b commit 3385c79

File tree

1 file changed

+49
-12
lines changed

1 file changed

+49
-12
lines changed

src/core/stdc/locale.d

Lines changed: 49 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -46,18 +46,55 @@ struct lconv
4646
byte int_n_sign_posn;
4747
}
4848

49-
enum LC_CTYPE = 0;
50-
enum LC_NUMERIC = 1;
51-
enum LC_TIME = 2;
52-
enum LC_COLLATE = 3;
53-
enum LC_MONETARY = 4;
54-
enum LC_ALL = 6;
55-
enum LC_PAPER = 7; // non-standard
56-
enum LC_NAME = 8; // non-standard
57-
enum LC_ADDRESS = 9; // non-standard
58-
enum LC_TELEPHONE = 10; // non-standard
59-
enum LC_MEASUREMENT = 11; // non-standard
60-
enum LC_IDENTIFICATION = 12; // non-standard
49+
version(linux)
50+
{
51+
enum LC_CTYPE = 0;
52+
enum LC_NUMERIC = 1;
53+
enum LC_TIME = 2;
54+
enum LC_COLLATE = 3;
55+
enum LC_MONETARY = 4;
56+
enum LC_MESSAGES = 5;
57+
enum LC_ALL = 6;
58+
enum LC_PAPER = 7; // non-standard
59+
enum LC_NAME = 8; // non-standard
60+
enum LC_ADDRESS = 9; // non-standard
61+
enum LC_TELEPHONE = 10; // non-standard
62+
enum LC_MEASUREMENT = 11; // non-standard
63+
enum LC_IDENTIFICATION = 12; // non-standard
64+
}
65+
else version(Windows)
66+
{
67+
enum LC_ALL = 0;
68+
enum LC_COLLATE = 1;
69+
enum LC_CTYPE = 2;
70+
enum LC_MONETARY = 3;
71+
enum LC_NUMERIC = 4;
72+
enum LC_TIME = 5;
73+
}
74+
else version(OSX)
75+
{
76+
enum LC_ALL = 0;
77+
enum LC_COLLATE = 1;
78+
enum LC_CTYPE = 2;
79+
enum LC_MONETARY = 3;
80+
enum LC_NUMERIC = 4;
81+
enum LC_TIME = 5;
82+
enum LC_MESSAGES = 6;
83+
}
84+
else version(FreeBSD)
85+
{
86+
enum LC_ALL = 0;
87+
enum LC_COLLATE = 1;
88+
enum LC_CTYPE = 2;
89+
enum LC_MONETARY = 3;
90+
enum LC_NUMERIC = 4;
91+
enum LC_TIME = 5;
92+
enum LC_MESSAGES = 6;
93+
}
94+
else
95+
{
96+
static assert(false);
97+
}
6198

6299
@system char* setlocale(int category, in char* locale);
63100
lconv* localeconv();

0 commit comments

Comments
 (0)