void print_child_argv(const char *prefix, char **cmd)
{
+ int cnt = 0;
rprintf(FCLIENT, "%s ", prefix);
for (; *cmd; cmd++) {
/* Look for characters that ought to be quoted. This
} else {
rprintf(FCLIENT, "%s ", *cmd);
}
+ cnt++;
}
- rprintf(FCLIENT, "\n");
+ rprintf(FCLIENT, " (%d args)\n", cnt);
}
NORETURN void out_of_memory(const char *str)
errno = ENAMETOOLONG;
return 0;
}
- curr_dir[curr_dir_len] = '/';
- memcpy(curr_dir + curr_dir_len + 1, dir, len + 1);
+ if (!(curr_dir_len && curr_dir[curr_dir_len-1] == '/'))
+ curr_dir[curr_dir_len++] = '/';
+ memcpy(curr_dir + curr_dir_len, dir, len + 1);
if (!set_path_only && chdir(curr_dir)) {
curr_dir[curr_dir_len] = '\0';