- Fixed the ::execute function used by Hooks and CmdCalendar to run commands,
  by following the convention:

    "The first argument, by convention, should point to the file name associated
     with the file being executed."
     (man execvp)
This commit is contained in:
Paul Beckingham 2015-02-07 14:08:58 -05:00
parent 876820ee1a
commit 528e72062b
2 changed files with 4 additions and 4 deletions

View file

@ -343,7 +343,6 @@ int CmdCalendar::execute (std::string& output)
executable = executable.substr (0, cal) + PACKAGE;
std::vector <std::string> args;
args.push_back (executable);
args.push_back ("rc:" + context.rc_file._data);
args.push_back ("rc.due:0");
args.push_back ("rc.verbose:label,affected,blank");

View file

@ -303,11 +303,12 @@ int execute (
if (dup2 (pout[1], STDOUT_FILENO) == -1)
throw std::string (std::strerror (errno));
char** argv = new char* [args.size () + 1];
char** argv = new char* [args.size () + 2];
argv[0] = (char*) executable.c_str ();
for (unsigned int i = 0; i < args.size (); ++i)
argv[i] = (char*) args[i].c_str ();
argv[i+1] = (char*) args[i].c_str ();
argv[args.size ()] = NULL;
argv[args.size () + 1] = NULL;
_exit (execvp (executable.c_str (), argv));
}