From 20f97f06ce54c31e32cf58cfd1b7cae3617c1661 Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Fri, 23 Aug 2019 12:24:23 +0200 Subject: Get rid of var_extension char array --- libbuild2/bash/target.cxx | 4 ++-- libbuild2/context.cxx | 2 -- libbuild2/context.hxx | 3 --- libbuild2/scope.cxx | 4 ++-- libbuild2/target.hxx | 8 ++++---- libbuild2/target.txx | 11 +++++------ 6 files changed, 13 insertions(+), 19 deletions(-) (limited to 'libbuild2') diff --git a/libbuild2/bash/target.cxx b/libbuild2/bash/target.cxx index 7313316..386842b 100644 --- a/libbuild2/bash/target.cxx +++ b/libbuild2/bash/target.cxx @@ -20,8 +20,8 @@ namespace build2 &file::static_type, &target_factory, nullptr, /* fixed_extension */ - &target_extension_var, - &target_pattern_var, + &target_extension_var, + &target_pattern_var, nullptr, &file_search, false diff --git a/libbuild2/context.cxx b/libbuild2/context.cxx index 1e744c4..b1b45eb 100644 --- a/libbuild2/context.cxx +++ b/libbuild2/context.cxx @@ -861,6 +861,4 @@ namespace build2 vector_view&, bool, const location&); - - const char var_extension[10] = "extension"; } diff --git a/libbuild2/context.hxx b/libbuild2/context.hxx index a947ca3..59c70e3 100644 --- a/libbuild2/context.hxx +++ b/libbuild2/context.hxx @@ -525,9 +525,6 @@ namespace build2 vector_view&, bool lifted, const location&); - - //@@ CTX TMP - LIBBUILD2_SYMEXPORT extern const char var_extension[10]; // "extension" } #include diff --git a/libbuild2/scope.cxx b/libbuild2/scope.cxx index ab81333..298c1b0 100644 --- a/libbuild2/scope.cxx +++ b/libbuild2/scope.cxx @@ -801,12 +801,12 @@ namespace build2 // dt->default_extension = ext && dt->fixed_extension == nullptr - ? &target_extension_var + ? &target_extension_var : nullptr; dt->pattern = dt->fixed_extension != nullptr ? nullptr /*&target_pattern_fix*/ : - dt->default_extension != nullptr ? &target_pattern_var : + dt->default_extension != nullptr ? &target_pattern_var : nullptr; // There is actually a difference between "fixed fixed" (like man1{}) and diff --git a/libbuild2/target.hxx b/libbuild2/target.hxx index f1c9d5f..b0d46e9 100644 --- a/libbuild2/target.hxx +++ b/libbuild2/target.hxx @@ -1806,14 +1806,14 @@ namespace build2 string&, optional&, const location&, bool); - // Get the extension from the variable or use the default if none set. If - // the default is NULL, then return NULL. + // Get the extension from the `extension` variable or use the default if + // none set. If the default is NULL, then return NULL. // - template + template optional target_extension_var (const target_key&, const scope&, const char*, bool); - template + template bool target_pattern_var (const target_type&, const scope&, string&, optional&, const location&, diff --git a/libbuild2/target.txx b/libbuild2/target.txx index 8b17383..17c38c8 100644 --- a/libbuild2/target.txx +++ b/libbuild2/target.txx @@ -90,12 +90,11 @@ namespace build2 target_extension_var_impl (const target_type& tt, const string& tn, const scope& s, - const char* var, const char* def) { // Include target type/pattern-specific variables. // - if (auto l = s.find (s.ctx.var_pool[var], tt, tn)) + if (auto l = s.find (*s.ctx.var_extension, tt, tn)) { // Help the user here and strip leading '.' from the extension. // @@ -106,17 +105,17 @@ namespace build2 return def != nullptr ? optional (def) : nullopt; } - template + template optional target_extension_var (const target_key& tk, const scope& s, const char*, bool) { - return target_extension_var_impl (*tk.type, *tk.name, s, var, def); + return target_extension_var_impl (*tk.type, *tk.name, s, def); } - template + template bool target_pattern_var (const target_type& tt, const scope& s, @@ -144,7 +143,7 @@ namespace build2 // Use empty name as a target since we only want target type/pattern- // specific variables that match any target ('*' but not '*.txt'). // - if ((e = target_extension_var_impl (tt, string (), s, var, def))) + if ((e = target_extension_var_impl (tt, string (), s, def))) return true; } } -- cgit v1.1