commit 258d2dbefba4525032b677ce9d3e706401fa0fcc
parent 8fbfac9193560fbc819d8f14a18c8058208d42c3
Author: Kyle Milz <kyle@0x30.net>
Date: Tue, 2 Aug 2016 21:40:13 -0600
src: handle when argv[0] is not a bare name
Diffstat:
1 file changed, 10 insertions(+), 0 deletions(-)
diff --git a/src/inst_main.cc b/src/inst_main.cc
@@ -26,6 +26,7 @@
#include <cstring> // strcmp
#include <err.h>
#include <fstream> // ifstream, ofstream
+#include <libgen.h> // basename
#include <sstream>
#include <string>
#include <unistd.h> // execvp, fork, getpid, unlink
@@ -80,6 +81,15 @@ CitrunInst::CitrunInst(int argc, char *argv[]) :
<< "-" << utsname.release << " " << utsname.machine
<< ") called as '" << m_args[0] << "'.\n";
+ char *base_name;
+ if ((base_name = basename(argv[0])) == NULL)
+ err(1, "basename");
+
+ if (std::strcmp(base_name, argv[0]) != 0) {
+ m_log << m_pfx << "Changing '" << argv[0] << "' to '" << base_name << "'.\n";
+ m_args[0] = base_name;
+ }
+
setprogname("citrun-inst");
}