edit: Catch stoi exceptions from line number parsing

This commit is contained in:
Ben Gamari 2017-12-14 19:11:56 -05:00
parent f9bcbddef2
commit 626a94d70e

View file

@ -52,7 +52,12 @@ struct CmdEdit : InstallableCommand
throw Error("cannot parse meta.position attribute '%s'", pos); throw Error("cannot parse meta.position attribute '%s'", pos);
std::string filename(pos, 0, colon); std::string filename(pos, 0, colon);
int lineno = std::stoi(std::string(pos, colon + 1)); int lineno;
try {
lineno = std::stoi(std::string(pos, colon + 1));
} catch (std::invalid_argument e) {
throw Error("cannot parse line number '%s'", pos);
}
auto editor = getEnv("EDITOR", "cat"); auto editor = getEnv("EDITOR", "cat");