Refactor, remove kakoune function and move it inside main.

This commit is contained in:
Maxime Coste 2014-08-14 23:57:13 +01:00
parent ceb10665d1
commit eff32aa1a1

View File

@ -440,8 +440,32 @@ int run_pipe(StringView session)
return 0; return 0;
} }
int kakoune(const ParametersParser& parser) int main(int argc, char* argv[])
{ {
setlocale(LC_ALL, "");
signal(SIGSEGV, signal_handler);
signal(SIGFPE, signal_handler);
signal(SIGQUIT, signal_handler);
signal(SIGTERM, signal_handler);
std::vector<String> params;
for (size_t i = 1; i < argc; ++i)
params.push_back(argv[i]);
const ParameterDesc param_desc{
SwitchMap{ { "c", { true, "connect to given session" } },
{ "e", { true, "execute argument on initialisation" } },
{ "n", { false, "do not source kakrc files on startup" } },
{ "s", { true, "set session name" } },
{ "d", { false, "run as a headless session (requires -s)" } },
{ "p", { true, "just send stdin as commands to the given session" } },
{ "f", { true, "act as a filter, executing given keys on given files" } } }
};
try
{
ParametersParser parser(params, param_desc);
if (parser.has_option("p")) if (parser.has_option("p"))
{ {
for (auto opt : { "c", "n", "s", "d", "e" }) for (auto opt : { "c", "n", "s", "d", "e" })
@ -494,39 +518,13 @@ int kakoune(const ParametersParser& parser)
files); files);
} }
} }
int main(int argc, char* argv[])
{
setlocale(LC_ALL, "");
signal(SIGSEGV, signal_handler);
signal(SIGFPE, signal_handler);
signal(SIGQUIT, signal_handler);
signal(SIGTERM, signal_handler);
std::vector<String> params;
for (size_t i = 1; i < argc; ++i)
params.push_back(argv[i]);
const ParameterDesc param_desc{
SwitchMap{ { "c", { true, "connect to given session" } },
{ "e", { true, "execute argument on initialisation" } },
{ "n", { false, "do not source kakrc files on startup" } },
{ "s", { true, "set session name" } },
{ "d", { false, "run as a headless session (requires -s)" } },
{ "p", { true, "just send stdin as commands to the given session" } },
{ "f", { true, "act as a filter, executing given keys on given files" } } }
};
try
{
kakoune(ParametersParser(params, param_desc));
}
catch (Kakoune::parameter_error& error) catch (Kakoune::parameter_error& error)
{ {
printf("Error: %s\n" printf("Error: %s\n"
"Valid switches:\n" "Valid switches:\n"
"%s", "%s",
error.what(), generate_switches_doc(param_desc.switches).c_str()); error.what(),
generate_switches_doc(param_desc.switches).c_str());
return -1; return -1;
} }
catch (Kakoune::exception& error) catch (Kakoune::exception& error)