CONSTANT: EMULTIHOP 90
CONSTANT: ENOLINK 91
CONSTANT: EPROTO 92
+
+CONSTANT: LC_ALL 0
+CONSTANT: LC_COLLATE 1
+CONSTANT: LC_CTYPE 2
+CONSTANT: LC_MONETARY 3
+CONSTANT: LC_NUMERIC 4
+CONSTANT: LC_TIME 5
+CONSTANT: LC_MESSAGES 6
DESTRUCTOR: free
+FUNCTION: c-string setlocale ( int category, c-string locale )
+
! For libc.linux, libc.windows, libc.macosx...
<< "libc." os name>> append require >>
[
1024 [ malloc &free ] keep strerror_r
] with-destructors ;
+
+CONSTANT: LC_CTYPE 0
+CONSTANT: LC_NUMERIC 1
+CONSTANT: LC_TIME 2
+CONSTANT: LC_COLLATE 3
+CONSTANT: LC_MONETARY 4
+CONSTANT: LC_MESSAGES 5
+CONSTANT: LC_ALL 6
+CONSTANT: LC_PAPER 7
+CONSTANT: LC_NAME 8
+CONSTANT: LC_ADDRESS 9
+CONSTANT: LC_TELEPHONE 10
+CONSTANT: LC_MEASUREMENT 11
+CONSTANT: LC_IDENTIFICATION 12
1024 [ malloc &free ] keep [ strerror_r ] keepd nip
alien>native-string
] with-destructors ;
+
+CONSTANT: LC_ALL 0
+CONSTANT: LC_COLLATE 1
+CONSTANT: LC_CTYPE 2
+CONSTANT: LC_MONETARY 3
+CONSTANT: LC_NUMERIC 4
+CONSTANT: LC_TIME 5
+CONSTANT: LC_MESSAGES 6
[ strerror_s drop ] keepdd
utf8 alien>string
] with-destructors ;
+
+! These are uncertain:
+CONSTANT: LC_ALL 0
+CONSTANT: LC_COLLATE 1
+CONSTANT: LC_CTYPE 2
+CONSTANT: LC_MONETARY 3
+CONSTANT: LC_NUMERIC 4
+CONSTANT: LC_TIME 5