From 407d5abd231eeedb9bfdc5e81b9ef7030bb05325 Mon Sep 17 00:00:00 2001 From: Quentin Hibon Date: Sun, 27 May 2018 10:05:56 +0200 Subject: Add option to specify the configuration file used The configuration file (~/.calcurse/conf by default) can now be specified with -C or --conf. Workaround for GitHub issue #86. Signed-off-by: Lukas Fleischer --- src/args.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'src/args.c') diff --git a/src/args.c b/src/args.c index 175c6b4..f920b8f 100644 --- a/src/args.c +++ b/src/args.c @@ -83,7 +83,7 @@ enum { static void usage(void) { printf("%s\n", _("usage: calcurse [--daemon|-F|-G|-g|-i|-Q|--status|-x[]]\n" - " [-c] [-D] [-h] [-q] [--read-only] [-v]\n" + " [-c] [-C] [-h] [-q] [--read-only] [-v]\n" " [--filter-*] [--format-*]")); } @@ -120,6 +120,7 @@ static void help_arg(void) putchar('\n'); printf("%s\n", _("Miscellaneous:")); printf("%s\n", _(" -c, --calendar Specify the calendar data file to use")); + printf("%s\n", _(" -C, --conf Specify the configuration file to use")); printf("%s\n", _(" --daemon Run notification daemon in the background")); printf("%s\n", _(" -D, --directory Specify the data directory to use")); printf("%s\n", _(" -g, --gc Run the garbage collector and exit")); @@ -404,17 +405,19 @@ int parse_args(int argc, char **argv) int xfmt = IO_EXPORT_ICAL; int dump_imported = 0, export_uid = 0; /* Data file locations */ - const char *cfile = NULL, *datadir = NULL, *ifile = NULL; + const char *datadir = NULL; + const char *cfile = NULL, *ifile = NULL, *conffile = NULL; int non_interactive = 1; int ch; regex_t reg; - static const char *optstr = "FgGhvnNax::t::d:c:r::s::S:D:i:l:qQ"; + static const char *optstr = "FgGhvnNax::t::C:d:c:r::s::S:D:i:l:qQ"; struct option longopts[] = { {"appointment", no_argument, NULL, 'a'}, {"calendar", required_argument, NULL, 'c'}, + {"conf", required_argument, NULL, 'C'}, {"day", required_argument, NULL, 'd'}, {"directory", required_argument, NULL, 'D'}, {"filter", no_argument, NULL, 'F'}, @@ -475,6 +478,9 @@ int parse_args(int argc, char **argv) case 'c': cfile = optarg; break; + case 'C': + conffile = optarg; + break; case 'd': if (is_all_digit(optarg) || (*optarg == '-' && is_all_digit(optarg + 1))) { @@ -720,7 +726,7 @@ int parse_args(int argc, char **argv) else if (range < 0) from = date_sec_change(to, 0, range); - io_init(cfile, datadir); + io_init(cfile, datadir, conffile); io_check_dir(path_dir); io_check_dir(path_notes); -- cgit v1.2.3-54-g00ecf