Browse Source

added sys_locale

Nicolas Cannasse 8 năm trước cách đây
mục cha
commit
e64bf90593
1 tập tin đã thay đổi với 11 bổ sung0 xóa
  1. 11 0
      src/std/sys.c

+ 11 - 0
src/std/sys.c

@@ -109,6 +109,16 @@ HL_PRIM vbyte *hl_sys_string() {
 #endif
 }
 
+HL_PRIM vbyte *hl_sys_locale() {
+#ifdef HL_WIN
+	wchar_t loc[LOCALE_NAME_MAX_LENGTH];
+	int len = GetSystemDefaultLocaleName(loc,LOCALE_NAME_MAX_LENGTH);
+	return len == 0 ? NULL : hl_copy_bytes((vbyte*)loc,(len+1)*2);
+#else
+	return (vbytes*)setlocale(LC_ALL, NULL);
+#endif
+}
+
 HL_PRIM void hl_sys_print( vbyte *msg ) {
 	uprintf(USTR("%s"),(uchar*)msg);
 }
@@ -543,6 +553,7 @@ HL_PRIM vbyte *hl_sys_hl_file() {
 DEFINE_PRIM(_BYTES, sys_hl_file, _NO_ARG);
 DEFINE_PRIM(_BOOL, sys_utf8_path, _NO_ARG);
 DEFINE_PRIM(_BYTES, sys_string, _NO_ARG);
+DEFINE_PRIM(_BYTES, sys_locale, _NO_ARG);
 DEFINE_PRIM(_VOID, sys_print, _BYTES);
 DEFINE_PRIM(_VOID, sys_exit, _I32);
 DEFINE_PRIM(_F64, sys_time, _NO_ARG);