diff --git a/src/Context.cpp b/src/Context.cpp index 177b7cc61..fb1cf019d 100644 --- a/src/Context.cpp +++ b/src/Context.cpp @@ -108,6 +108,11 @@ int Context::initialize (int argc, const char** argv) // Scan command line for 'rc:' only. Parser::getOverrides (argc, argv, rc_file._data); + cli.initialize (argc, argv); // task arg0 arg1 ... +/* + std::cout << "# cli._rc=" << cli._rc << "\n"; + rc_file = cli._rc; +*/ // TASKRC environment variable overrides the command line. char* override = getenv ("TASKRC"); @@ -129,16 +134,31 @@ int Context::initialize (int argc, const char** argv) Variant::searchUsingRegex = config.getBoolean ("regex"); parser.initialize (argc, argv); // task arg0 arg1 ... - cli.initialize (argc, argv); // task arg0 arg1 ... // Process 'rc:' command line override. parser.findOverrides (); // rc: rc.: parser.getOverrides (home_dir, rc_file); // <-- +/* + home_dir = rc_file; + std::string::size_type last_slash = rc._data.rfind ("/"); + if (last_slash != std::string::npos) + home_dir = rc_file.parent (); + else + home_dir = "."; + std::cout << "# home_dir=" << home_dir << "\n"; +*/ // The data location, Context::data_dir, is determined from the assumed // location (~/.task), or set by data.location in the config file, or // overridden by rc.data.location on the command line. parser.getDataLocation (data_dir); // <-- rc.data.location= +/* + if (cli._overrides.find ("data.location") != cli._overrides.end ()) + data_dir = cli._overrides["data.location"]; + else + data_dir = config.get ("data.location"); + std::cout << "# data_dir=" << data_dir << "\n"; +*/ override = getenv ("TASKDATA"); if (override)