diff options
Diffstat (limited to 'build/name.cxx')
-rw-r--r-- | build/name.cxx | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/build/name.cxx b/build/name.cxx index 7f300f4..46e2440 100644 --- a/build/name.cxx +++ b/build/name.cxx @@ -19,8 +19,9 @@ namespace build bool hv (!n.value.empty ()); bool hd (false); - // Print the directory before type. - // + if (ht) + os << n.type << '{'; + if (!n.dir.empty ()) { string s (diag_relative_work (n.dir)); @@ -31,24 +32,20 @@ namespace build { os << s; - // Add the directory separator unless it is already there. + // Add the directory separator unless it is already there + // or we have type but no value. The idea is to print foo/ + // or dir{foo}. // - if (s.back () != path::traits::directory_separator) + if (s.back () != path::traits::directory_separator && (hv || !ht)) os << path::traits::directory_separator; hd = true; } } - if (ht) - os << n.type; - - if (ht || (hd && hv)) - os << '{'; - os << n.value; - if (ht || (hd && hv)) + if (ht) os << '}'; if (!ht && !hv && !hd) |