diff --git a/src/commands/CmdCalendar.cpp b/src/commands/CmdCalendar.cpp index 6b09d7a24..3a00fffd3 100644 --- a/src/commands/CmdCalendar.cpp +++ b/src/commands/CmdCalendar.cpp @@ -343,7 +343,6 @@ int CmdCalendar::execute (std::string& output) executable = executable.substr (0, cal) + PACKAGE; std::vector 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"); diff --git a/src/util.cpp b/src/util.cpp index 5ea94f03e..408db1d05 100644 --- a/src/util.cpp +++ b/src/util.cpp @@ -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)); }