diff --git a/src/branches.cpp b/src/branches.cpp index d1f781b6..41e916b1 100644 --- a/src/branches.cpp +++ b/src/branches.cpp @@ -81,9 +81,8 @@ namespace l u64 offset; offset = s_.find_first_not_of("+<>-="); - if (offset == std::string::npos) { + if(offset == std::string::npos) return; - } if(offset > 1) offset = 2; diff --git a/src/config.cpp b/src/config.cpp index 30057c6e..091bdd0e 100644 --- a/src/config.cpp +++ b/src/config.cpp @@ -557,6 +557,9 @@ Config::Err::to_string() const case ELOOP: s = "too many levels of config"; break; + case ENOENT: + s = "no value set"; + break; default: s = strerror(err); break; diff --git a/src/option_parser.cpp b/src/option_parser.cpp index 4d9459d2..30d46d86 100644 --- a/src/option_parser.cpp +++ b/src/option_parser.cpp @@ -196,7 +196,10 @@ _option_processor(void *data_, } else { - cfg.branches.from_string("+>" + prev_nonopt); + int rv; + rv = cfg.branches.from_string("+>" + prev_nonopt); + if(rv < 0) + cfg.errs.push_back({-rv,prev_nonopt}); prev_nonopt = arg_; } } @@ -315,15 +318,22 @@ namespace options if(!prev_nonopt.empty()) { if(cfg.mountpoint.empty()) - cfg.mountpoint = prev_nonopt; + { + cfg.mountpoint = prev_nonopt; + } else - cfg.branches.from_string("+>" + prev_nonopt); + { + int rv; + rv = cfg.branches.from_string("+>" + prev_nonopt); + if(rv < 0) + cfg.errs.push_back({-rv,prev_nonopt}); + } } if(cfg.branches->empty()) - cfg.errs.push_back({EINVAL,"branches not set"}); + cfg.errs.push_back({ENOENT,"branches not set"}); if(cfg.mountpoint.empty()) - cfg.errs.push_back({EINVAL,"mountpoint not set"}); + cfg.errs.push_back({ENOENT,"mountpoint not set"}); if(!cfg.errs.empty()) return;