We had print_command for logging to a file
int execute(char **argv, int fd_out, int fd_err, pid_t *pid);
char *find_executable(const char *name, const char *exclude_name);
void print_command(FILE *fp, char **argv);
+char *string_command(char **argv);
// ----------------------------------------------------------------------------
// lockfile.c
}
fprintf(fp, "\n");
}
+
+char *
+string_command(char **argv)
+{
+ size_t len = 0;
+ for (int i = 0; argv[i]; i++) {
+ len += (i == 0) ? 0 : 1;
+ len += strlen(argv[i]);
+ }
+ len += 1;
+ char *buf = x_calloc(1, len + 1);
+ for (int i = 0; argv[i]; i++) {
+ strcat(buf, (i == 0) ? "" : " ");
+ strcat(buf, argv[i]);
+ }
+ strcat(buf, "\n");
+ return buf;
+}
}
}
+TEST(string_command)
+{
+ char *argv[] = {"foo", "bar", NULL};
+
+ CHECK_STR_EQ_FREE2("foo bar\n", string_command(argv));
+
+}
+
TEST_SUITE_END