aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorgingerBill <gingerBill@users.noreply.github.com>2018-10-17 15:29:56 +0100
committerGitHub <noreply@github.com>2018-10-17 15:29:56 +0100
commitefc3a9e69dd072b678a78535d7b5a5f71e474024 (patch)
tree18d222737f9eacc6916eddde231ee04cbc4e6ecf /src
parent307c58d9086ddfa2db9b18bfb8bb76f11b8dbc8c (diff)
parentae02e9c34aa08b642fd6ca5465f988f8f1d98c60 (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.cpp4
-rw-r--r--src/string.cpp10
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--) {