diff options
| author | gingerBill <gingerBill@users.noreply.github.com> | 2018-10-17 15:29:56 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-10-17 15:29:56 +0100 |
| commit | efc3a9e69dd072b678a78535d7b5a5f71e474024 (patch) | |
| tree | 18d222737f9eacc6916eddde231ee04cbc4e6ecf /src | |
| parent | 307c58d9086ddfa2db9b18bfb8bb76f11b8dbc8c (diff) | |
| parent | ae02e9c34aa08b642fd6ca5465f988f8f1d98c60 (diff) | |
Merge pull request #274 from hazeycode/fix/245
Use name of source file as output_name
Diffstat (limited to 'src')
| -rw-r--r-- | src/ir.cpp | 4 | ||||
| -rw-r--r-- | 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--) { |