summaryrefslogtreecommitdiffstats
path: root/src/clean.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/clean.cc')
-rw-r--r--src/clean.cc26
1 files changed, 13 insertions, 13 deletions
diff --git a/src/clean.cc b/src/clean.cc
index 3e57437..72dee1f 100644
--- a/src/clean.cc
+++ b/src/clean.cc
@@ -189,21 +189,21 @@ int Cleaner::CleanTargets(int target_count, char* targets[]) {
LoadDyndeps();
for (int i = 0; i < target_count; ++i) {
string target_name = targets[i];
- uint64_t slash_bits;
- string err;
- if (!CanonicalizePath(&target_name, &slash_bits, &err)) {
- Error("failed to canonicalize '%s': %s", target_name.c_str(), err.c_str());
+ if (target_name.empty()) {
+ Error("failed to canonicalize '': empty path");
status_ = 1;
+ continue;
+ }
+ uint64_t slash_bits;
+ CanonicalizePath(&target_name, &slash_bits);
+ Node* target = state_->LookupNode(target_name);
+ if (target) {
+ if (IsVerbose())
+ printf("Target %s\n", target_name.c_str());
+ DoCleanTarget(target);
} else {
- Node* target = state_->LookupNode(target_name);
- if (target) {
- if (IsVerbose())
- printf("Target %s\n", target_name.c_str());
- DoCleanTarget(target);
- } else {
- Error("unknown target '%s'", target_name.c_str());
- status_ = 1;
- }
+ Error("unknown target '%s'", target_name.c_str());
+ status_ = 1;
}
}
PrintFooter();