- kill (child_pid, WTERMSIG (wait_status));
- exit_status = TAREXIT_FAILURE;
+ if (prog)
+ {
+ WARNOPT (WARN_DECOMPRESS_PROGRAM,
+ (0, errno, _("cannot run %s"), prog));
+ WARNOPT (WARN_DECOMPRESS_PROGRAM,
+ (0, 0, _("trying %s"), p));
+ }
+ if (wordsplit (p, &ws, wsflags))
+ FATAL_ERROR ((0, 0, _("cannot split string '%s': %s"),
+ p, wordsplit_strerror (&ws)));
+ wsflags |= WRDSF_REUSE;
+ memmove(ws.ws_wordv, ws.ws_wordv + ws.ws_offs,
+ sizeof(ws.ws_wordv[0])*ws.ws_wordc);
+ ws.ws_wordv[ws.ws_wordc] = (char *) "-d";
+ prog = p;
+ execvp (ws.ws_wordv[0], ws.ws_wordv);
+ ws.ws_wordv[ws.ws_wordc] = NULL;