Move vspace to option in isc command, adding custom addresses as positional arguments #6

Merged
Lephenixnoir merged 6 commits from Dr-Carlos/fxos:isc into master 2022-04-20 10:17:17 +02:00
1 changed files with 21 additions and 2 deletions
Showing only changes of commit 771b12eab8 - Show all commits

View File

@ -151,8 +151,21 @@ static struct _isc_args parse_isc(Session &session, Parser &parser)
parser.accept_options();
VirtualSpace *space = session.current_space;
if(!args.vspace_name.empty()) {
space = session.get_space(args.vspace_name);
if(!space) {
std::string msg
= format("virtual space '%s' does not exist", args.vspace_name);
if(parser.completing())
throw Parser::CompletionRequest("_error", msg);
else
FxOS_log(ERR, "%s", msg);
}
}
while(!parser.at_end())
args.addresses.push_back(parser.expr(session.current_space));
args.addresses.push_back(parser.expr(space));
parser.end();
return args;
@ -173,6 +186,11 @@ void _isc(Session &session, std::string vspace_name, bool sort,
std::vector<uint32_t> addresses)
{
VirtualSpace *space = session.current_space;
if(!space) {
FxOS_log(ERR, "no virtual space selected");
return;
}
if(!vspace_name.empty())
space = session.get_space(vspace_name);
@ -185,7 +203,8 @@ void _isc(Session &session, std::string vspace_name, bool sort,
if(!os) {
if(!vspace_name.empty())
FxOS_log(ERR, "OS analysis on '%s' failed", vspace_name);
FxOS_log(ERR, "OS analysis failed");
else
FxOS_log(ERR, "OS analysis failed");
return;
}