char **new_argv;
int new_argc, i;
char temp[128];
-
+ char cwd[128];
dpy = XOpenDisplay (NULL);
if (!dpy)
{
exit (-1);
}
- new_argc = argc + 1;
+ new_argc = argc + 2;
new_argv = (char**)malloc (new_argc * sizeof (char*));
if (!new_argv)
{
snprintf (temp, sizeof(temp), "%d", getpid ());
new_argv[0] = temp;
+ if (getcwd (cwd, sizeof(cwd)))
+ new_argv[1] = cwd;
+
for (i = 0; i < argc; i++)
- new_argv[i+1] = argv[i];
+ new_argv[i+2] = argv[i];
xDbugDBusClientSendMessage (dbus_info, new_argc, new_argv);
snprintf (fd_name, XDBG_PATH_MAX, "%s", path);
else
{
- char cwd[128];
- if (getcwd (cwd, sizeof (cwd)))
- snprintf (fd_name, XDBG_PATH_MAX, "%s/%s", cwd, path);
+ if (pMod->cwd)
+ snprintf (fd_name, XDBG_PATH_MAX, "%s/%s", pMod->cwd, path);
else
snprintf (fd_name, XDBG_PATH_MAX, "%s", path);
}
pMod->evlog_path = strdup (argv[2]);
- XDBG_REPLY ("evlog path: %s\n", pMod->evlog_path);
+ if (pMod->evlog_path[0] == '/')
+ XDBG_REPLY ("evlog path: %s\n", pMod->evlog_path);
+ else
+ XDBG_REPLY ("evlog path: %s/%s\n", pMod->cwd, pMod->evlog_path);
}
static void
char **new_argv;
pid = atoi (argv[0]);
+ pMod->cwd = strdup (argv[1]);
- new_argc = argc - 1;
+ new_argc = argc - 2;
new_argv = (char**)malloc (new_argc * sizeof (char*));
if (!new_argv)
{
}
for (i = 0; i < new_argc; i++)
- new_argv[i] = argv[i+1];
+ new_argv[i] = argv[i+2];
- if (argc < 3)
+ if (argc < 4)
{
_CommandPrintUsage (reply, len, new_argv[0]);
free (new_argv);
snprintf (fd_name, XDBG_PATH_MAX, "%s", path);
else
{
- char cwd[128];
- if (getcwd (cwd, sizeof (cwd)))
- snprintf (fd_name, XDBG_PATH_MAX, "%s/%s", cwd, path);
+ if (pMod->cwd)
+ snprintf (fd_name, XDBG_PATH_MAX, "%s/%s", pMod->cwd, path);
else
snprintf (fd_name, XDBG_PATH_MAX, "%s", path);
}