From ae02e9c34aa08b642fd6ca5465f988f8f1d98c60 Mon Sep 17 00:00:00 2001 From: Chris Heyes Date: Tue, 16 Oct 2018 23:56:19 +0100 Subject: [PATCH] Use name of source file as output_name --- src/ir.cpp | 4 ++-- src/string.cpp | 10 ++++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/ir.cpp b/src/ir.cpp index 7ceda6c10..29cc9247c 100644 --- a/src/ir.cpp +++ b/src/ir.cpp @@ -7788,8 +7788,8 @@ bool ir_gen_init(irGen *s, Checker *c) { String init_fullpath = c->parser->init_fullpath; if (build_context.out_filepath.len == 0) { - // s->output_name = filename_from_path(init_fullpath); - s->output_name = str_lit("main"); + s->output_name = remove_directory_from_path(init_fullpath); + s->output_name = remove_extension_from_path(s->output_name); s->output_base = s->output_name; } else { s->output_name = build_context.out_filepath; diff --git a/src/string.cpp b/src/string.cpp index 80a7180a2..7ceeb78a1 100644 --- a/src/string.cpp +++ b/src/string.cpp @@ -276,6 +276,15 @@ String filename_from_path(String s) { return make_string(nullptr, 0); } +String remove_extension_from_path(String const &s) { + for (isize i = s.len-1; i >= 0; i--) { + if (s[i] == '.') { + return substring(s, 0, i); + } + } + return s; +} + String remove_directory_from_path(String const &s) { isize len = 0; for (isize i = s.len-1; i >= 0; i--) { @@ -287,6 +296,7 @@ String remove_directory_from_path(String const &s) { } return substring(s, s.len-len, s.len); } + String directory_from_path(String const &s) { isize i = s.len-1; for (; i >= 0; i--) {