diff options
author | Mike Frysinger <vapier@gentoo.org> | 2011-12-19 04:58:09 +0000 |
---|---|---|
committer | Mike Frysinger <vapier@gentoo.org> | 2011-12-19 04:58:09 +0000 |
commit | 632106783a1f772e03f235fee32d582bcfd401fb (patch) | |
tree | 5587524379123a2beaec11a7744a4933d2865487 /qmerge.c | |
parent | fix -Wtype-limits warnings ... fwrite() cannot be less than 0 (diff) | |
download | portage-utils-632106783a1f772e03f235fee32d582bcfd401fb.tar.gz portage-utils-632106783a1f772e03f235fee32d582bcfd401fb.tar.bz2 portage-utils-632106783a1f772e03f235fee32d582bcfd401fb.zip |
avoid xstrdup when qmerge fetching when possible
Diffstat (limited to 'qmerge.c')
-rw-r--r-- | qmerge.c | 28 |
1 files changed, 15 insertions, 13 deletions
@@ -1,7 +1,7 @@ /* * Copyright 2005-2010 Gentoo Foundation * Distributed under the terms of the GNU General Public License v2 - * $Header: /var/cvsroot/gentoo-projects/portage-utils/qmerge.c,v 1.114 2011/12/19 04:23:18 vapier Exp $ + * $Header: /var/cvsroot/gentoo-projects/portage-utils/qmerge.c,v 1.115 2011/12/19 04:58:09 vapier Exp $ * * Copyright 2005-2010 Ned Ludd - <solar@gentoo.org> * Copyright 2005-2010 Mike Frysinger - <vapier@gentoo.org> @@ -65,7 +65,7 @@ static const char * const qmerge_opts_help[] = { COMMON_OPTS_HELP }; -static const char qmerge_rcsid[] = "$Id: qmerge.c,v 1.114 2011/12/19 04:23:18 vapier Exp $"; +static const char qmerge_rcsid[] = "$Id: qmerge.c,v 1.115 2011/12/19 04:58:09 vapier Exp $"; #define qmerge_usage(ret) usage(ret, QMERGE_FLAGS, qmerge_long_opts, qmerge_opts_help, lookup_applet_idx("qmerge")) char search_pkgs = 0; @@ -132,27 +132,29 @@ _q_static void fetch(const char *destdir, const char *src) pid_t p; int status; - const char *prog = (force_download || install) ? "wget" : pretend ? "echo" : "wget"; + char prog[] = "wget"; + char argv_c[] = "-c"; + char argv_P[] = "-P"; + char argv_q[] = "-q"; + char *argv_dir = xstrdup(destdir); char *argv[] = { - xstrdup(prog), - xstrdup("-c"), - xstrdup("-P"), - xstrdup(destdir), + prog, + argv_c, + argv_P, + argv_dir, buf, - quiet ? xstrdup("-q") : NULL, + quiet ? argv_q : NULL, NULL, }; + if (!(force_download || install) && pretend) + strcpy(prog, "echo"); snprintf(buf, sizeof(buf), "%s/%s", binhost, src); p = vfork(); if (p == 0) _exit(execvp(prog, argv)); - free(argv[0]); - free(argv[1]); - free(argv[2]); - free(argv[3]); - free(argv[5]); + free(argv_dir); waitpid(p, &status, 0); #if 0 |