windows: utf-8 stdout was not initialized when we have main()
Initialization moved to init_consts for thatpull/1395/head
parent
f3d6bc9146
commit
68b46bb943
|
@ -365,7 +365,7 @@ void init_consts();')
|
||||||
// if v.build_mode in [.default, .embed_vlib] {
|
// if v.build_mode in [.default, .embed_vlib] {
|
||||||
if v.pref.build_mode == .default_mode || v.pref.build_mode == .embed_vlib {
|
if v.pref.build_mode == .default_mode || v.pref.build_mode == .embed_vlib {
|
||||||
// vlib can't have `init_consts()`
|
// vlib can't have `init_consts()`
|
||||||
cgen.genln('void init_consts() { g_str_buf=malloc(1000); ${cgen.consts_init.join_lines()} }')
|
cgen.genln('void init_consts() { \n#ifdef _WIN32\n _setmode(_fileno(stdout), _O_U8TEXT); \n#endif\n g_str_buf=malloc(1000); ${cgen.consts_init.join_lines()} }')
|
||||||
// _STR function can't be defined in vlib
|
// _STR function can't be defined in vlib
|
||||||
cgen.genln('
|
cgen.genln('
|
||||||
string _STR(const char *fmt, ...) {
|
string _STR(const char *fmt, ...) {
|
||||||
|
@ -408,7 +408,7 @@ string _STR_TMP(const char *fmt, ...) {
|
||||||
// It can be skipped in single file programs
|
// It can be skipped in single file programs
|
||||||
if v.pref.is_script {
|
if v.pref.is_script {
|
||||||
//println('Generating main()...')
|
//println('Generating main()...')
|
||||||
cgen.genln('int main() { \n#ifdef _WIN32\n _setmode(_fileno(stdout), _O_U8TEXT); \n#endif\n init_consts(); $cgen.fn_main; return 0; }')
|
cgen.genln('int main() { init_consts(); $cgen.fn_main; return 0; }')
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
println('panic: function `main` is undeclared in the main module')
|
println('panic: function `main` is undeclared in the main module')
|
||||||
|
@ -417,7 +417,7 @@ string _STR_TMP(const char *fmt, ...) {
|
||||||
}
|
}
|
||||||
// Generate `main` which calls every single test function
|
// Generate `main` which calls every single test function
|
||||||
else if v.pref.is_test {
|
else if v.pref.is_test {
|
||||||
cgen.genln('int main() { \n#ifdef _WIN32\n _setmode(_fileno(stdout), _O_U8TEXT); \n#endif\n init_consts();')
|
cgen.genln('int main() { init_consts();')
|
||||||
for key, f in v.table.fns {
|
for key, f in v.table.fns {
|
||||||
if f.name.starts_with('test_') {
|
if f.name.starts_with('test_') {
|
||||||
cgen.genln('$f.name();')
|
cgen.genln('$f.name();')
|
||||||
|
|
Loading…
Reference in New Issue