summaryrefslogtreecommitdiff
path: root/contrib/dialog
diff options
context:
space:
mode:
authorNathan Whitehorn <nwhitehorn@FreeBSD.org>2011-04-17 17:30:29 +0000
committerNathan Whitehorn <nwhitehorn@FreeBSD.org>2011-04-17 17:30:29 +0000
commitb94209c68b967aac4b9c55edbc400a50aba329f0 (patch)
tree967cee67da93575a4f76c775d1664ec7bc25ce70 /contrib/dialog
parent7a1c0d963366a31363d3705697a083dd8efee077 (diff)
downloadsrc-test-b94209c68b967aac4b9c55edbc400a50aba329f0.tar.gz
src-test-b94209c68b967aac4b9c55edbc400a50aba329f0.zip
Make dialog's --prgbox option actually work.
Notes
Notes: svn path=/head/; revision=220750
Diffstat (limited to 'contrib/dialog')
-rw-r--r--contrib/dialog/prgbox.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/contrib/dialog/prgbox.c b/contrib/dialog/prgbox.c
index fea23936db9a4..8c9f627cc888f 100644
--- a/contrib/dialog/prgbox.c
+++ b/contrib/dialog/prgbox.c
@@ -33,8 +33,7 @@ dlg_popen(const char *command, const char *type)
FILE *result = 0;
int fd[2];
int pid;
- char *blob;
- char **argv;
+ const char *argv[4];
if ((*type == 'r' || *type != 'w') && pipe(fd) == 0) {
switch (pid = fork()) {
@@ -63,11 +62,11 @@ dlg_popen(const char *command, const char *type)
* given command. Also, it needs the command to be parsed into
* tokens.
*/
- if ((blob = malloc(4 + strlen(command))) != 0) {
- sprintf(blob, "-c %s", command);
- argv = dlg_string_to_argv(blob);
- execvp("sh", argv);
- }
+ argv[0] = "sh";
+ argv[1] = "-c";
+ argv[2] = command;
+ argv[3] = NULL;
+ execvp("sh", (char **)argv);
_exit(127);
/* NOTREACHED */
default: /* parent */