48 if (progname[0] ==
'/')
50 launch = strdup(progname);
53 die(1,
"allocating program name buffer");
56 else if (strchr(progname,
'/') != NULL)
58 cwd = get_current_dir_name();
64 char *path = getenv(
"PATH");
70 die(1,
"could not get PATH environment variable");
74 for (token = strtok_r(path,
":", &saveptr); token != NULL; token = strtok_r(NULL,
":", &saveptr))
78 if (access(launch, X_OK) == 0)
89 die(1,
"could not locate program \"%s\" to launch \n", progname);
94 char *relative = launch;
96 cwd = get_current_dir_name();