From 52a926dd903b85a1784726e1beb0ea830c302b5f Mon Sep 17 00:00:00 2001 From: gingerBill Date: Mon, 12 Jun 2023 14:49:00 +0100 Subject: Deprecate `-disallow-rtti` in favour of `-no-rtti` --- src/main.cpp | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'src/main.cpp') diff --git a/src/main.cpp b/src/main.cpp index 162cd309e..029c9f896 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -675,7 +675,7 @@ enum BuildFlagKind { BuildFlag_StrictStyle, BuildFlag_StrictStyleInitOnly, BuildFlag_ForeignErrorProcedures, - BuildFlag_DisallowRTTI, + BuildFlag_NoRTTI, BuildFlag_DynamicMapCalls, BuildFlag_Compact, @@ -854,7 +854,8 @@ gb_internal bool parse_build_flags(Array args) { add_flag(&build_flags, BuildFlag_StrictStyleInitOnly, str_lit("strict-style-init-only"), BuildFlagParam_None, Command__does_check); add_flag(&build_flags, BuildFlag_ForeignErrorProcedures, str_lit("foreign-error-procedures"), BuildFlagParam_None, Command__does_check); - add_flag(&build_flags, BuildFlag_DisallowRTTI, str_lit("disallow-rtti"), BuildFlagParam_None, Command__does_check); + add_flag(&build_flags, BuildFlag_NoRTTI, str_lit("no-rtti"), BuildFlagParam_None, Command__does_check); + add_flag(&build_flags, BuildFlag_NoRTTI, str_lit("disallow-rtti"), BuildFlagParam_None, Command__does_check); add_flag(&build_flags, BuildFlag_DynamicMapCalls, str_lit("dynamic-map-calls"), BuildFlagParam_None, Command__does_check); @@ -1448,7 +1449,11 @@ gb_internal bool parse_build_flags(Array args) { case BuildFlag_DisallowDo: build_context.disallow_do = true; break; - case BuildFlag_DisallowRTTI: + case BuildFlag_NoRTTI: + if (name == "disallow-rtti") { + gb_printf_err("'-disallow-rtti' has been replaced with '-no-rtti'\n"); + bad_flags = true; + } build_context.disallow_rtti = true; break; case BuildFlag_DynamicMapCalls: -- cgit v1.2.3 From 296674e18b5ce3ba90013fb5d599251c66d8bd18 Mon Sep 17 00:00:00 2001 From: gingerBill Date: Mon, 12 Jun 2023 14:53:05 +0100 Subject: Rename `ODIN_DISALLOW_RTTI` to `ODIN_NO_RTTI`; Remove dead command line flags --- core/reflect/reflect.odin | 2 +- core/runtime/core.odin | 2 +- core/runtime/error_checks.odin | 2 +- core/runtime/print.odin | 4 ++-- src/build_settings.cpp | 6 +++--- src/check_builtin.cpp | 4 ++-- src/checker.cpp | 8 ++++---- src/llvm_backend.cpp | 4 ++-- src/llvm_backend_expr.cpp | 6 +++--- src/llvm_backend_type.cpp | 6 +++--- src/llvm_backend_utility.cpp | 8 ++++---- src/main.cpp | 16 +--------------- 12 files changed, 27 insertions(+), 41 deletions(-) (limited to 'src/main.cpp') diff --git a/core/reflect/reflect.odin b/core/reflect/reflect.odin index f8343ead2..2eb31c21b 100644 --- a/core/reflect/reflect.odin +++ b/core/reflect/reflect.odin @@ -132,7 +132,7 @@ type_info_core :: runtime.type_info_core type_info_base_without_enum :: type_info_core -when !ODIN_DISALLOW_RTTI { +when !ODIN_NO_RTTI { typeid_base :: runtime.typeid_base typeid_core :: runtime.typeid_core typeid_base_without_enum :: typeid_core diff --git a/core/runtime/core.odin b/core/runtime/core.odin index 058ca6161..83504c9ee 100644 --- a/core/runtime/core.odin +++ b/core/runtime/core.odin @@ -566,7 +566,7 @@ __type_info_of :: proc "contextless" (id: typeid) -> ^Type_Info #no_bounds_check return &type_table[n] } -when !ODIN_DISALLOW_RTTI { +when !ODIN_NO_RTTI { typeid_base :: proc "contextless" (id: typeid) -> typeid { ti := type_info_of(id) ti = type_info_base(ti) diff --git a/core/runtime/error_checks.odin b/core/runtime/error_checks.odin index 8539c724d..a667b9065 100644 --- a/core/runtime/error_checks.odin +++ b/core/runtime/error_checks.odin @@ -122,7 +122,7 @@ matrix_bounds_check_error :: proc "contextless" (file: string, line, column: i32 } -when ODIN_DISALLOW_RTTI { +when ODIN_NO_RTTI { type_assertion_check :: proc "contextless" (ok: bool, file: string, line, column: i32) { if ok { return diff --git a/core/runtime/print.odin b/core/runtime/print.odin index 326a29667..732ed9c12 100644 --- a/core/runtime/print.odin +++ b/core/runtime/print.odin @@ -5,7 +5,7 @@ _INTEGER_DIGITS :: "0123456789abcdefghijklmnopqrstuvwxyz" @(private="file") _INTEGER_DIGITS_VAR := _INTEGER_DIGITS -when !ODIN_DISALLOW_RTTI { +when !ODIN_NO_RTTI { print_any_single :: proc "contextless" (arg: any) { x := arg if loc, ok := x.(Source_Code_Location); ok { @@ -234,7 +234,7 @@ print_caller_location :: proc "contextless" (using loc: Source_Code_Location) { } } print_typeid :: proc "contextless" (id: typeid) { - when ODIN_DISALLOW_RTTI { + when ODIN_NO_RTTI { if id == nil { print_string("nil") } else { diff --git a/src/build_settings.cpp b/src/build_settings.cpp index 92e0df38b..866631f9a 100644 --- a/src/build_settings.cpp +++ b/src/build_settings.cpp @@ -309,7 +309,7 @@ struct BuildContext { bool copy_file_contents; - bool disallow_rtti; + bool no_rtti; bool dynamic_map_calls; @@ -1227,8 +1227,8 @@ gb_internal void init_build_context(TargetMetrics *cross_target) { if (bc->metrics.os == TargetOs_freestanding) { bc->no_entry_point = true; } else { - if (bc->disallow_rtti) { - gb_printf_err("-disallow-rtti is only allowed on freestanding targets\n"); + if (bc->no_rtti) { + gb_printf_err("-no-rtti is only allowed on freestanding targets\n"); gb_exit(1); } } diff --git a/src/check_builtin.cpp b/src/check_builtin.cpp index 46ee6b7f9..269a0ec48 100644 --- a/src/check_builtin.cpp +++ b/src/check_builtin.cpp @@ -2063,7 +2063,7 @@ gb_internal bool check_builtin_procedure(CheckerContext *c, Operand *operand, As if (c->scope->flags&ScopeFlag_Global) { compiler_error("'type_info_of' Cannot be declared within the runtime package due to how the internals of the compiler works"); } - if (build_context.disallow_rtti) { + if (build_context.no_rtti) { error(call, "'%.*s' has been disallowed", LIT(builtin_name)); return false; } @@ -2106,7 +2106,7 @@ gb_internal bool check_builtin_procedure(CheckerContext *c, Operand *operand, As if (c->scope->flags&ScopeFlag_Global) { compiler_error("'typeid_of' Cannot be declared within the runtime package due to how the internals of the compiler works"); } - if (build_context.disallow_rtti) { + if (build_context.no_rtti) { error(call, "'%.*s' has been disallowed", LIT(builtin_name)); return false; } diff --git a/src/checker.cpp b/src/checker.cpp index a8227fc2e..354cdadd3 100644 --- a/src/checker.cpp +++ b/src/checker.cpp @@ -32,7 +32,7 @@ gb_internal bool is_operand_uninit(Operand o) { } gb_internal bool check_rtti_type_disallowed(Token const &token, Type *type, char const *format) { - if (build_context.disallow_rtti && type) { + if (build_context.no_rtti && type) { if (is_type_any(type)) { gbString t = type_to_string(type); error(token, format, t); @@ -1054,7 +1054,7 @@ gb_internal void init_universal(void) { add_global_bool_constant("ODIN_TEST", bc->command_kind == Command_test); add_global_bool_constant("ODIN_NO_ENTRY_POINT", bc->no_entry_point); add_global_bool_constant("ODIN_FOREIGN_ERROR_PROCEDURES", bc->ODIN_FOREIGN_ERROR_PROCEDURES); - add_global_bool_constant("ODIN_DISALLOW_RTTI", bc->disallow_rtti); + add_global_bool_constant("ODIN_NO_RTTI", bc->no_rtti); add_global_bool_constant("ODIN_VALGRIND_SUPPORT", bc->ODIN_VALGRIND_SUPPORT); @@ -1742,7 +1742,7 @@ gb_internal void add_implicit_entity(CheckerContext *c, Ast *clause, Entity *e) gb_internal void add_type_info_type_internal(CheckerContext *c, Type *t); gb_internal void add_type_info_type(CheckerContext *c, Type *t) { - if (build_context.disallow_rtti) { + if (build_context.no_rtti) { return; } if (t == nullptr) { @@ -2343,7 +2343,7 @@ gb_internal void generate_minimum_dependency_set(Checker *c, Entity *start) { str_lit("__multi3"), ); - FORCE_ADD_RUNTIME_ENTITIES(!build_context.disallow_rtti, + FORCE_ADD_RUNTIME_ENTITIES(!build_context.no_rtti, // Odin types str_lit("Type_Info"), diff --git a/src/llvm_backend.cpp b/src/llvm_backend.cpp index 4fe8d4a00..525ac8a9d 100644 --- a/src/llvm_backend.cpp +++ b/src/llvm_backend.cpp @@ -1048,7 +1048,7 @@ struct lbGlobalVariable { }; gb_internal lbProcedure *lb_create_startup_type_info(lbModule *m) { - if (build_context.disallow_rtti) { + if (build_context.no_rtti) { return nullptr; } Type *proc_type = alloc_type_proc(nullptr, nullptr, 0, nullptr, 0, false, ProcCC_CDecl); @@ -2170,7 +2170,7 @@ gb_internal bool lb_generate_code(lbGenerator *gen) { TIME_SECTION("LLVM Global Variables"); - if (!build_context.disallow_rtti) { + if (!build_context.no_rtti) { lbModule *m = default_module; { // Add type info data diff --git a/src/llvm_backend_expr.cpp b/src/llvm_backend_expr.cpp index f95e351ce..619b40fda 100644 --- a/src/llvm_backend_expr.cpp +++ b/src/llvm_backend_expr.cpp @@ -2984,7 +2984,7 @@ gb_internal lbValue lb_build_unary_and(lbProcedure *p, Ast *expr) { isize arg_count = 6; - if (build_context.disallow_rtti) { + if (build_context.no_rtti) { arg_count = 4; } @@ -2996,7 +2996,7 @@ gb_internal lbValue lb_build_unary_and(lbProcedure *p, Ast *expr) { args[2] = lb_const_int(p->module, t_i32, pos.line); args[3] = lb_const_int(p->module, t_i32, pos.column); - if (!build_context.disallow_rtti) { + if (!build_context.no_rtti) { args[4] = lb_typeid(p->module, src_type); args[5] = lb_typeid(p->module, dst_type); } @@ -3012,7 +3012,7 @@ gb_internal lbValue lb_build_unary_and(lbProcedure *p, Ast *expr) { } lbValue data_ptr = lb_emit_struct_ev(p, v, 0); if ((p->state_flags & StateFlag_no_type_assert) == 0) { - GB_ASSERT(!build_context.disallow_rtti); + GB_ASSERT(!build_context.no_rtti); lbValue any_id = lb_emit_struct_ev(p, v, 1); diff --git a/src/llvm_backend_type.cpp b/src/llvm_backend_type.cpp index 1e26fd6bd..a54fde748 100644 --- a/src/llvm_backend_type.cpp +++ b/src/llvm_backend_type.cpp @@ -15,7 +15,7 @@ gb_internal isize lb_type_info_index(CheckerInfo *info, Type *type, bool err_on_ } gb_internal lbValue lb_typeid(lbModule *m, Type *type) { - GB_ASSERT(!build_context.disallow_rtti); + GB_ASSERT(!build_context.no_rtti); type = default_type(type); @@ -92,7 +92,7 @@ gb_internal lbValue lb_typeid(lbModule *m, Type *type) { } gb_internal lbValue lb_type_info(lbModule *m, Type *type) { - GB_ASSERT(!build_context.disallow_rtti); + GB_ASSERT(!build_context.no_rtti); type = default_type(type); @@ -141,7 +141,7 @@ gb_internal lbValue lb_type_info_member_tags_offset(lbProcedure *p, isize count) gb_internal void lb_setup_type_info_data(lbProcedure *p) { // NOTE(bill): Setup type_info data - if (build_context.disallow_rtti) { + if (build_context.no_rtti) { return; } diff --git a/src/llvm_backend_utility.cpp b/src/llvm_backend_utility.cpp index 0c26382ed..2ecad1703 100644 --- a/src/llvm_backend_utility.cpp +++ b/src/llvm_backend_utility.cpp @@ -721,7 +721,7 @@ gb_internal lbValue lb_emit_union_cast(lbProcedure *p, lbValue value, Type *type Type *dst_type = tuple->Tuple.variables[0]->type; isize arg_count = 7; - if (build_context.disallow_rtti) { + if (build_context.no_rtti) { arg_count = 4; } @@ -733,7 +733,7 @@ gb_internal lbValue lb_emit_union_cast(lbProcedure *p, lbValue value, Type *type args[2] = lb_const_int(m, t_i32, pos.line); args[3] = lb_const_int(m, t_i32, pos.column); - if (!build_context.disallow_rtti) { + if (!build_context.no_rtti) { args[4] = lb_typeid(m, src_type); args[5] = lb_typeid(m, dst_type); args[6] = lb_emit_conv(p, value_, t_rawptr); @@ -797,7 +797,7 @@ gb_internal lbAddr lb_emit_any_cast_addr(lbProcedure *p, lbValue value, Type *ty lbValue ok = lb_emit_load(p, lb_emit_struct_ep(p, v.addr, 1)); isize arg_count = 7; - if (build_context.disallow_rtti) { + if (build_context.no_rtti) { arg_count = 4; } auto args = array_make(permanent_allocator(), arg_count); @@ -807,7 +807,7 @@ gb_internal lbAddr lb_emit_any_cast_addr(lbProcedure *p, lbValue value, Type *ty args[2] = lb_const_int(m, t_i32, pos.line); args[3] = lb_const_int(m, t_i32, pos.column); - if (!build_context.disallow_rtti) { + if (!build_context.no_rtti) { args[4] = any_typeid; args[5] = dst_typeid; args[6] = lb_emit_struct_ev(p, value, 0); diff --git a/src/main.cpp b/src/main.cpp index 029c9f896..2198b4536 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -655,7 +655,6 @@ enum BuildFlagKind { BuildFlag_ShowDebugMessages, BuildFlag_Vet, BuildFlag_VetExtra, - BuildFlag_UseLLVMApi, BuildFlag_IgnoreUnknownAttributes, BuildFlag_ExtraLinkerFlags, BuildFlag_ExtraAssemblerFlags, @@ -671,7 +670,6 @@ enum BuildFlagKind { BuildFlag_DisallowDo, BuildFlag_DefaultToNilAllocator, - BuildFlag_InsertSemicolon, BuildFlag_StrictStyle, BuildFlag_StrictStyleInitOnly, BuildFlag_ForeignErrorProcedures, @@ -834,7 +832,6 @@ gb_internal bool parse_build_flags(Array args) { add_flag(&build_flags, BuildFlag_ShowDebugMessages, str_lit("show-debug-messages"), BuildFlagParam_None, Command_all); add_flag(&build_flags, BuildFlag_Vet, str_lit("vet"), BuildFlagParam_None, Command__does_check); add_flag(&build_flags, BuildFlag_VetExtra, str_lit("vet-extra"), BuildFlagParam_None, Command__does_check); - add_flag(&build_flags, BuildFlag_UseLLVMApi, str_lit("llvm-api"), BuildFlagParam_None, Command__does_build); add_flag(&build_flags, BuildFlag_IgnoreUnknownAttributes, str_lit("ignore-unknown-attributes"), BuildFlagParam_None, Command__does_check); add_flag(&build_flags, BuildFlag_ExtraLinkerFlags, str_lit("extra-linker-flags"), BuildFlagParam_String, Command__does_build); add_flag(&build_flags, BuildFlag_ExtraAssemblerFlags, str_lit("extra-assembler-flags"), BuildFlagParam_String, Command__does_build); @@ -849,7 +846,6 @@ gb_internal bool parse_build_flags(Array args) { add_flag(&build_flags, BuildFlag_DisallowDo, str_lit("disallow-do"), BuildFlagParam_None, Command__does_check); add_flag(&build_flags, BuildFlag_DefaultToNilAllocator, str_lit("default-to-nil-allocator"), BuildFlagParam_None, Command__does_check); - add_flag(&build_flags, BuildFlag_InsertSemicolon, str_lit("insert-semicolon"), BuildFlagParam_None, Command__does_check); add_flag(&build_flags, BuildFlag_StrictStyle, str_lit("strict-style"), BuildFlagParam_None, Command__does_check); add_flag(&build_flags, BuildFlag_StrictStyleInitOnly, str_lit("strict-style-init-only"), BuildFlagParam_None, Command__does_check); add_flag(&build_flags, BuildFlag_ForeignErrorProcedures, str_lit("foreign-error-procedures"), BuildFlagParam_None, Command__does_check); @@ -1373,11 +1369,6 @@ gb_internal bool parse_build_flags(Array args) { build_context.vet_extra = true; break; } - case BuildFlag_UseLLVMApi: { - gb_printf_err("-llvm-api flag is not required any more\n"); - bad_flags = true; - break; - } case BuildFlag_IgnoreUnknownAttributes: build_context.ignore_unknown_attributes = true; break; @@ -1454,7 +1445,7 @@ gb_internal bool parse_build_flags(Array args) { gb_printf_err("'-disallow-rtti' has been replaced with '-no-rtti'\n"); bad_flags = true; } - build_context.disallow_rtti = true; + build_context.no_rtti = true; break; case BuildFlag_DynamicMapCalls: build_context.dynamic_map_calls = true; @@ -1465,11 +1456,6 @@ gb_internal bool parse_build_flags(Array args) { case BuildFlag_ForeignErrorProcedures: build_context.ODIN_FOREIGN_ERROR_PROCEDURES = true; break; - case BuildFlag_InsertSemicolon: { - gb_printf_err("-insert-semicolon flag is not required any more\n"); - bad_flags = true; - break; - } case BuildFlag_StrictStyle: { if (build_context.strict_style_init_only) { gb_printf_err("-strict-style and -strict-style-init-only cannot be used together\n"); -- cgit v1.2.3 From 23bf7973fa571088cb5080d78d04a798a2cc1e7c Mon Sep 17 00:00:00 2001 From: Laytan Laats Date: Sun, 2 Jul 2023 19:56:30 +0200 Subject: detect unix color support --- src/main.cpp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/main.cpp') diff --git a/src/main.cpp b/src/main.cpp index 2198b4536..d66ec5846 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -2547,6 +2547,10 @@ gb_internal int strip_semicolons(Parser *parser) { return cast(int)failed; } +#if defined(GB_SYSTEM_OSX) || defined(GB_SYSTEM_UNIX) +#include +#endif + gb_internal void init_terminal(void) { build_context.has_ansi_terminal_colours = false; #if defined(GB_SYSTEM_WINDOWS) @@ -2558,6 +2562,18 @@ gb_internal void init_terminal(void) { build_context.has_ansi_terminal_colours = true; } } +#elif defined(GB_SYSTEM_OSX) || defined(GB_SYSTEM_UNIX) + FILE* file = popen("tput colors", "r"); + if (file) { + char buffer[20]; + if (fgets(&buffer[0], 20, file)) { + u64 colors = gb_str_to_u64(buffer, nullptr, 10); + if (colors >= 8) { + build_context.has_ansi_terminal_colours = true; + } + } + pclose(file); + } #endif if (!build_context.has_ansi_terminal_colours) { -- cgit v1.2.3 From f4e87c9720fada536c756110f900c4317fc1c1ce Mon Sep 17 00:00:00 2001 From: Laytan Laats Date: Sun, 2 Jul 2023 20:20:10 +0200 Subject: ignore stderr in tput call --- src/main.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'src/main.cpp') diff --git a/src/main.cpp b/src/main.cpp index d66ec5846..80a6c819c 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -2563,7 +2563,7 @@ gb_internal void init_terminal(void) { } } #elif defined(GB_SYSTEM_OSX) || defined(GB_SYSTEM_UNIX) - FILE* file = popen("tput colors", "r"); + FILE* file = popen("tput colors 2>/dev/null", "r"); if (file) { char buffer[20]; if (fgets(&buffer[0], 20, file)) { -- cgit v1.2.3 From f68a3639b4ce2ba8fe90f6907e162ff0a5bbadc7 Mon Sep 17 00:00:00 2001 From: Laytan Laats Date: Sun, 2 Jul 2023 21:11:19 +0200 Subject: use more common detection method and add FORCE_COLOR and NO_COLOR support --- src/main.cpp | 36 +++++++++++++++++++++--------------- 1 file changed, 21 insertions(+), 15 deletions(-) (limited to 'src/main.cpp') diff --git a/src/main.cpp b/src/main.cpp index 80a6c819c..0bd45b1eb 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -2547,12 +2547,24 @@ gb_internal int strip_semicolons(Parser *parser) { return cast(int)failed; } -#if defined(GB_SYSTEM_OSX) || defined(GB_SYSTEM_UNIX) -#include -#endif - gb_internal void init_terminal(void) { build_context.has_ansi_terminal_colours = false; + + gbAllocator a = heap_allocator(); + + char const *no_color = gb_get_env("NO_COLOR", a); + defer (gb_free(a, cast(void *)no_color)); + if (no_color != nullptr) { + return; + } + + char const *force_color = gb_get_env("FORCE_COLOR", a); + defer (gb_free(a, cast(void *)force_color)); + if (force_color != nullptr) { + build_context.has_ansi_terminal_colours = true; + return; + } + #if defined(GB_SYSTEM_WINDOWS) HANDLE hnd = GetStdHandle(STD_ERROR_HANDLE); DWORD mode = 0; @@ -2563,21 +2575,15 @@ gb_internal void init_terminal(void) { } } #elif defined(GB_SYSTEM_OSX) || defined(GB_SYSTEM_UNIX) - FILE* file = popen("tput colors 2>/dev/null", "r"); - if (file) { - char buffer[20]; - if (fgets(&buffer[0], 20, file)) { - u64 colors = gb_str_to_u64(buffer, nullptr, 10); - if (colors >= 8) { - build_context.has_ansi_terminal_colours = true; - } - } - pclose(file); + char const *term_ = gb_get_env("TERM", a); + defer (gb_free(a, cast(void *)term_)); + String term = make_string_c(term_); + if (!str_eq(term, str_lit("dumb")) && isatty(STDERR_FILENO)) { + build_context.has_ansi_terminal_colours = true; } #endif if (!build_context.has_ansi_terminal_colours) { - gbAllocator a = heap_allocator(); char const *odin_terminal_ = gb_get_env("ODIN_TERMINAL", a); defer (gb_free(a, cast(void *)odin_terminal_)); String odin_terminal = make_string_c(odin_terminal_); -- cgit v1.2.3 From 49058620f090062e1e1a7b3158b22d17fe3e3dfa Mon Sep 17 00:00:00 2001 From: Laytan Laats Date: Sun, 2 Jul 2023 21:25:48 +0200 Subject: fix spacing --- src/main.cpp | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) (limited to 'src/main.cpp') diff --git a/src/main.cpp b/src/main.cpp index 0bd45b1eb..db2702b19 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -2550,20 +2550,20 @@ gb_internal int strip_semicolons(Parser *parser) { gb_internal void init_terminal(void) { build_context.has_ansi_terminal_colours = false; - gbAllocator a = heap_allocator(); + gbAllocator a = heap_allocator(); - char const *no_color = gb_get_env("NO_COLOR", a); - defer (gb_free(a, cast(void *)no_color)); - if (no_color != nullptr) { - return; - } + char const *no_color = gb_get_env("NO_COLOR", a); + defer (gb_free(a, cast(void *)no_color)); + if (no_color != nullptr) { + return; + } - char const *force_color = gb_get_env("FORCE_COLOR", a); - defer (gb_free(a, cast(void *)force_color)); - if (force_color != nullptr) { - build_context.has_ansi_terminal_colours = true; - return; - } + char const *force_color = gb_get_env("FORCE_COLOR", a); + defer (gb_free(a, cast(void *)force_color)); + if (force_color != nullptr) { + build_context.has_ansi_terminal_colours = true; + return; + } #if defined(GB_SYSTEM_WINDOWS) HANDLE hnd = GetStdHandle(STD_ERROR_HANDLE); @@ -2575,12 +2575,12 @@ gb_internal void init_terminal(void) { } } #elif defined(GB_SYSTEM_OSX) || defined(GB_SYSTEM_UNIX) - char const *term_ = gb_get_env("TERM", a); - defer (gb_free(a, cast(void *)term_)); - String term = make_string_c(term_); - if (!str_eq(term, str_lit("dumb")) && isatty(STDERR_FILENO)) { - build_context.has_ansi_terminal_colours = true; - } + char const *term_ = gb_get_env("TERM", a); + defer (gb_free(a, cast(void *)term_)); + String term = make_string_c(term_); + if (!str_eq(term, str_lit("dumb")) && isatty(STDERR_FILENO)) { + build_context.has_ansi_terminal_colours = true; + } #endif if (!build_context.has_ansi_terminal_colours) { -- cgit v1.2.3