Merge branch 'obsd-master'

Conflicts:
	format.c
	window.c
This commit is contained in:
Thomas Adam
2014-05-13 21:58:48 +01:00
29 changed files with 747 additions and 486 deletions

30
cmd.c
View File

@ -179,14 +179,14 @@ cmd_unpack_argv(char *buf, size_t len, int argc, char ***argv)
}
char **
cmd_copy_argv(int argc, char *const *argv)
cmd_copy_argv(int argc, char **argv)
{
char **new_argv;
int i;
if (argc == 0)
return (NULL);
new_argv = xcalloc(argc, sizeof *new_argv);
new_argv = xcalloc(argc + 1, sizeof *new_argv);
for (i = 0; i < argc; i++) {
if (argv[i] != NULL)
new_argv[i] = xstrdup(argv[i]);
@ -206,6 +206,32 @@ cmd_free_argv(int argc, char **argv)
free(argv);
}
char *
cmd_stringify_argv(int argc, char **argv)
{
char *buf;
int i;
size_t len;
if (argc == 0)
return (xstrdup(""));
len = 0;
buf = NULL;
for (i = 0; i < argc; i++) {
len += strlen(argv[i]) + 1;
buf = xrealloc(buf, 1, len);
if (i == 0)
*buf = '\0';
else
strlcat(buf, " ", len);
strlcat(buf, argv[i], len);
}
return (buf);
}
struct cmd *
cmd_parse(int argc, char **argv, const char *file, u_int line, char **cause)
{