aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.depend9
-rw-r--r--libq/libq.c2
-rw-r--r--libq/virtuals.c20
-rw-r--r--libq/xchdir.c16
-rw-r--r--main.c12
-rw-r--r--qcheck.c13
-rw-r--r--qdepends.c22
-rw-r--r--qfile.c26
-rw-r--r--qglsa.c10
-rw-r--r--qgrep.c13
-rw-r--r--qlist.c13
-rw-r--r--qmerge.c35
-rw-r--r--qpkg.c7
-rw-r--r--qsize.c13
-rw-r--r--qxpak.c7
15 files changed, 105 insertions, 113 deletions
diff --git a/.depend b/.depend
index 4a04c8f..c38377c 100644
--- a/.depend
+++ b/.depend
@@ -1,7 +1,8 @@
main.o: main.c main.h libq/libq.c libq/busybox.h libq/i18n.h libq/libq.h \
libq/colors.c libq/xmalloc.c libq/xstrdup.c libq/xasprintf.c \
libq/hash_fd.c libq/md5_sha1_sum.c libq/human_readable.c libq/rmspace.c \
- libq/which.c libq/compat.c libq/atom_explode.c libq/atom_compare.c \
- libq/vdb_get_next_dir.c libq/virtuals.c applets.h include_applets.h q.c \
- qcheck.c qdepends.c qfile.c qlist.c qlop.c qsearch.c qsize.c qtbz2.c \
- quse.c qxpak.c qpkg.c qgrep.c qatom.c qmerge.c qcache.c qglsa.c
+ libq/which.c libq/compat.c libq/xchdir.c libq/atom_explode.c \
+ libq/atom_compare.c libq/vdb_get_next_dir.c libq/virtuals.c applets.h \
+ include_applets.h q.c qcheck.c qdepends.c qfile.c qlist.c qlop.c \
+ qsearch.c qsize.c qtbz2.c quse.c qxpak.c qpkg.c qgrep.c qatom.c qmerge.c \
+ qcache.c qglsa.c
diff --git a/libq/libq.c b/libq/libq.c
index 0b6d06c..fd7c8b2 100644
--- a/libq/libq.c
+++ b/libq/libq.c
@@ -20,6 +20,8 @@
#include "which.c"
#include "compat.c"
+#include "xchdir.c"
+
/* custom libs */
#include "atom_explode.c"
#include "atom_compare.c"
diff --git a/libq/virtuals.c b/libq/virtuals.c
index 82ea9c4..0fc3d9e 100644
--- a/libq/virtuals.c
+++ b/libq/virtuals.c
@@ -1,12 +1,12 @@
/*
* Copyright 2005-2007 Gentoo Foundation
* Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/libq/virtuals.c,v 1.19 2007/05/24 14:47:19 solar Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/libq/virtuals.c,v 1.20 2010/01/13 18:17:26 vapier Exp $
*
* Copyright 2005-2007 Ned Ludd - <solar@gentoo.org>
* Copyright 2005-2007 Mike Frysinger - <vapier@gentoo.org>
*
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/libq/virtuals.c,v 1.19 2007/05/24 14:47:19 solar Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/libq/virtuals.c,v 1.20 2010/01/13 18:17:26 vapier Exp $
*/
#include <stdio.h>
@@ -155,7 +155,7 @@ queue *resolve_vdb_virtuals(char *vdb)
char buf[BUFSIZE];
depend_atom *atom;
- chdir("/");
+ xchdir("/");
/* now try to run through vdb and locate matches for user inputs */
if ((dir = opendir(vdb)) == NULL)
@@ -252,11 +252,11 @@ static queue *resolve_virtuals()
virtuals = resolve_local_profile_virtuals();
virtuals = resolve_vdb_virtuals(portvdb);
- if ((chdir("/etc/")) == (-1))
+ if (chdir("/etc/") == -1)
return virtuals;
- if ((readlink("make.profile", buf, sizeof(buf))) != (-1)) {
- chdir(buf);
+ if (readlink("make.profile", buf, sizeof(buf)) != -1) {
+ xchdir(buf);
getcwd(buf, sizeof(buf));
if (access(buf, R_OK) != 0)
return virtuals;
@@ -280,16 +280,16 @@ static queue *resolve_virtuals()
if (*buf == '#') continue;
if (isspace(*buf)) continue;
fclose(fp);
- if ((chdir(buf)) == (-1)) {
+ if (chdir(buf) == -1) {
fclose(fp);
- chdir(savecwd);
- return virtuals;
+ goto done;
}
goto vstart;
}
fclose(fp);
}
}
- chdir(savecwd);
+ done:
+ xchdir(savecwd);
return virtuals;
}
diff --git a/libq/xchdir.c b/libq/xchdir.c
new file mode 100644
index 0000000..ec694ab
--- /dev/null
+++ b/libq/xchdir.c
@@ -0,0 +1,16 @@
+/*
+ * utility funcs
+ *
+ * Copyright 2005-2010 Gentoo Foundation
+ * Distributed under the terms of the GNU General Public License v2
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/libq/xchdir.c,v 1.1 2010/01/13 18:17:26 vapier Exp $
+ */
+
+#include <unistd.h>
+
+void xchdir(const char *path);
+void xchdir(const char *path)
+{
+ if (chdir(path))
+ errp("chdir(%s) failed", path);
+}
diff --git a/main.c b/main.c
index 1b45f1f..9290221 100644
--- a/main.c
+++ b/main.c
@@ -1,7 +1,7 @@
/*
* Copyright 2005-2008 Gentoo Foundation
* Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.166 2010/01/13 06:12:38 solar Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/main.c,v 1.167 2010/01/13 18:17:23 vapier Exp $
*
* Copyright 2005-2008 Ned Ludd - <solar@gentoo.org>
* Copyright 2005-2008 Mike Frysinger - <vapier@gentoo.org>
@@ -758,7 +758,7 @@ ret:
void reinitialize_ebuild_flat(void)
{
- if ((chdir(portdir)) != 0) {
+ if (chdir(portdir) != 0) {
warnp("chdir to PORTDIR '%s' failed", portdir);
return;
}
@@ -933,7 +933,7 @@ queue *get_vdb_atoms(int fullcpv)
getcwd(savecwd, sizeof(savecwd));
- assert(chdir(savecwd) == 0);
+ xchdir(savecwd);
if (chdir(portroot) != 0)
goto fuckit;
@@ -952,7 +952,7 @@ queue *get_vdb_atoms(int fullcpv)
if (chdir(cat[j]->d_name) != 0)
continue;
if ((dfd = scandir(".", &pf, filter_hidden, alphasort)) < 0) {
- chdir("..");
+ xchdir("..");
continue;
}
for (i = 0; i < dfd; i++) {
@@ -983,7 +983,7 @@ queue *get_vdb_atoms(int fullcpv)
atom_implode(atom);
cpf = add_set(buf, slot, cpf);
}
- chdir("..");
+ xchdir("..");
while (dfd--) free(pf[dfd]);
free(pf);
}
@@ -993,7 +993,7 @@ queue *get_vdb_atoms(int fullcpv)
free(cat);
fuckit:
- assert(chdir(savecwd) == 0);
+ xchdir(savecwd);
return cpf;
}
diff --git a/qcheck.c b/qcheck.c
index 5ede3db..94444a5 100644
--- a/qcheck.c
+++ b/qcheck.c
@@ -1,7 +1,7 @@
/*
* Copyright 2005-2007 Gentoo Foundation
* Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/qcheck.c,v 1.41 2010/01/13 18:07:14 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/qcheck.c,v 1.42 2010/01/13 18:17:23 vapier Exp $
*
* Copyright 2005-2007 Ned Ludd - <solar@gentoo.org>
* Copyright 2005-2007 Mike Frysinger - <vapier@gentoo.org>
@@ -30,7 +30,7 @@ static const char *qcheck_opts_help[] = {
"Only print pkgs containing bad files excluding /etc.",
COMMON_OPTS_HELP
};
-static const char qcheck_rcsid[] = "$Id: qcheck.c,v 1.41 2010/01/13 18:07:14 vapier Exp $";
+static const char qcheck_rcsid[] = "$Id: qcheck.c,v 1.42 2010/01/13 18:17:23 vapier Exp $";
#define qcheck_usage(ret) usage(ret, QCHECK_FLAGS, qcheck_long_opts, qcheck_opts_help, lookup_applet_idx("qcheck"))
short bad_only = 0;
@@ -69,10 +69,9 @@ int qcheck_main(int argc, char **argv)
if ((argc == optind) && !search_all)
qcheck_usage(EXIT_FAILURE);
- if (chdir(portroot))
- errp("could not chdir(%s) for ROOT", portroot);
-
- if (chdir(portvdb) != 0 || (dir = opendir(".")) == NULL)
+ xchdir(portroot);
+ xchdir(portvdb);
+ if ((dir = opendir(".")) == NULL)
return EXIT_FAILURE;
/* open /var/db/pkg */
@@ -300,7 +299,7 @@ int qcheck_main(int argc, char **argv)
qcprintf("\n");
}
closedir(dirp);
- chdir("..");
+ xchdir("..");
}
return EXIT_SUCCESS;
diff --git a/qdepends.c b/qdepends.c
index 570cb16..7bb7f17 100644
--- a/qdepends.c
+++ b/qdepends.c
@@ -1,7 +1,7 @@
/*
* Copyright 2005-2007 Gentoo Foundation
* Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/qdepends.c,v 1.48 2009/08/29 19:43:14 solar Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/qdepends.c,v 1.49 2010/01/13 18:17:23 vapier Exp $
*
* Copyright 2005-2007 Ned Ludd - <solar@gentoo.org>
* Copyright 2005-2007 Mike Frysinger - <vapier@gentoo.org>
@@ -30,7 +30,7 @@ static const char *qdepends_opts_help[] = {
"Show all DEPEND info",
COMMON_OPTS_HELP
};
-static const char qdepends_rcsid[] = "$Id: qdepends.c,v 1.48 2009/08/29 19:43:14 solar Exp $";
+static const char qdepends_rcsid[] = "$Id: qdepends.c,v 1.49 2010/01/13 18:17:23 vapier Exp $";
#define qdepends_usage(ret) usage(ret, QDEPENDS_FLAGS, qdepends_long_opts, qdepends_opts_help, lookup_applet_idx("qdepends"))
static char qdep_name_only = 0;
@@ -355,10 +355,9 @@ int qdepends_main_vdb(const char *depend_file, int argc, char **argv)
dep_node *dep_tree;
struct stat st;
- if (chdir(portroot))
- errp("could not chdir(%s) for ROOT", portroot);
-
- if (chdir(portvdb) != 0 || (dir = opendir(".")) == NULL)
+ xchdir(portroot);
+ xchdir(portvdb);
+ if ((dir = opendir(".")) == NULL)
return EXIT_FAILURE;
/* open /var/db/pkg */
@@ -451,7 +450,7 @@ int qdepends_main_vdb(const char *depend_file, int argc, char **argv)
dep_burn_tree(dep_tree);
}
closedir(dirp);
- chdir("..");
+ xchdir("..");
}
return EXIT_SUCCESS;
@@ -467,10 +466,9 @@ int qdepends_vdb_deep(const char *depend_file, const char *query)
char depend[16384], use[8192];
dep_node *dep_tree;
- if (chdir(portroot))
- errp("could not chdir(%s) for ROOT", portroot);
-
- if (chdir(portvdb) != 0 || (dir = opendir(".")) == NULL)
+ xchdir(portroot);
+ xchdir(portvdb);
+ if ((dir = opendir(".")) == NULL)
return EXIT_FAILURE;
/* open /var/db/pkg */
@@ -539,7 +537,7 @@ int qdepends_vdb_deep(const char *depend_file, const char *query)
dep_burn_tree(dep_tree);
}
closedir(dirp);
- chdir("..");
+ xchdir("..");
}
return EXIT_SUCCESS;
diff --git a/qfile.c b/qfile.c
index c8eba11..7d9d5f5 100644
--- a/qfile.c
+++ b/qfile.c
@@ -1,7 +1,7 @@
/*
* Copyright 2005-2007 Gentoo Foundation
* Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/qfile.c,v 1.46 2009/10/18 17:28:30 solar Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/qfile.c,v 1.47 2010/01/13 18:17:23 vapier Exp $
*
* Copyright 2005-2007 Ned Ludd - <solar@gentoo.org>
* Copyright 2005-2007 Mike Frysinger - <vapier@gentoo.org>
@@ -34,7 +34,7 @@ static const char *qfile_opts_help[] = {
"Display installed packages with slots",
COMMON_OPTS_HELP
};
-static char qfile_rcsid[] = "$Id: qfile.c,v 1.46 2009/10/18 17:28:30 solar Exp $";
+static char qfile_rcsid[] = "$Id: qfile.c,v 1.47 2010/01/13 18:17:23 vapier Exp $";
#define qfile_usage(ret) usage(ret, QFILE_FLAGS, qfile_long_opts, qfile_opts_help, lookup_applet_idx("qfile"))
#define qfile_is_prefix(path, prefix, prefix_length) \
@@ -78,7 +78,8 @@ void qfile(char *path, const char *root, qfile_args_t *args)
char *bn_firstchars = args->bn_firstchars;
short *non_orphans = args->non_orphans;
- if (chdir(path) != 0 || (dir = opendir(".")) == NULL)
+ xchdir(path);
+ if ((dir = opendir(".")) == NULL)
return;
while ((dentry = readdir(dir))) {
@@ -558,15 +559,8 @@ int qfile_main(int argc, char **argv)
if ((args_file == NULL) && (max_args != QFILE_DEFAULT_MAX_ARGS))
warn("--max-args is only used when reading arguments from a file (with -f)");
- if (chdir(portroot)) {
- warnp("could not chdir(%s) for ROOT", portroot);
- goto exit;
- }
-
- if (chdir(portvdb) != 0) {
- warnp("could not chdir(ROOT/%s) for installed packages database", portvdb);
- goto exit;
- }
+ xchdir(portroot);
+ xchdir(portvdb);
/* Get a copy of $ROOT, with no trailing slash
* (this one is just for qfile(...) output)
@@ -615,10 +609,10 @@ int qfile_main(int argc, char **argv)
if (nb_of_queries < 0)
goto exit;
- if (chdir(portroot)
- || chdir(portvdb) != 0
- || (dir = opendir(".")) == NULL) {
- warnp("could not chdir(ROOT/%s) for installed packages database", portvdb);
+ xchdir(portroot);
+ xchdir(portvdb);
+ if ((dir = opendir(".")) == NULL) {
+ warnp("could not read(ROOT/%s) for installed packages database", portvdb);
goto exit;
}
diff --git a/qglsa.c b/qglsa.c
index 31878c2..70a0b91 100644
--- a/qglsa.c
+++ b/qglsa.c
@@ -1,7 +1,7 @@
/*
* Copyright 2005-2007 Gentoo Foundation
* Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/qglsa.c,v 1.10 2007/11/24 08:53:35 solar Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/qglsa.c,v 1.11 2010/01/13 18:17:23 vapier Exp $
*
* Copyright 2005-2007 Ned Ludd - <solar@gentoo.org>
* Copyright 2005-2007 Mike Frysinger - <vapier@gentoo.org>
@@ -30,7 +30,7 @@ static const char *qglsa_opts_help[] = {
"Mark specified GLSAs as fixed",
COMMON_OPTS_HELP
};
-static const char qglsa_rcsid[] = "$Id: qglsa.c,v 1.10 2007/11/24 08:53:35 solar Exp $";
+static const char qglsa_rcsid[] = "$Id: qglsa.c,v 1.11 2010/01/13 18:17:23 vapier Exp $";
#define qglsa_usage(ret) usage(ret, QGLSA_FLAGS, qglsa_long_opts, qglsa_opts_help, lookup_applet_idx("qglsa"))
static char *qglsa_load_list(void);
@@ -200,10 +200,8 @@ int qglsa_main(int argc, char **argv)
}
glsa_fixed_list = qglsa_load_list();
- if (chdir(portdir) != 0)
- errp("could not chdir to portdir %s", portdir);
- if (chdir("./metadata/glsa") != 0)
- errp("could not chdir to glsa dir");
+ xchdir(portdir);
+ xchdir("./metadata/glsa");
switch (action) {
/*case GLSA_FIX:*/
diff --git a/qgrep.c b/qgrep.c
index f02fb7c..1031578 100644
--- a/qgrep.c
+++ b/qgrep.c
@@ -1,7 +1,7 @@
/*
* Copyright 2005-2007 Gentoo Foundation
* Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/qgrep.c,v 1.25 2007/05/24 14:47:18 solar Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/qgrep.c,v 1.26 2010/01/13 18:17:23 vapier Exp $
*
* Copyright 2005-2007 Ned Ludd - <solar@gentoo.org>
* Copyright 2005-2007 Mike Frysinger - <vapier@gentoo.org>
@@ -47,7 +47,7 @@ static const char *qgrep_opts_help[] = {
"Print <arg> lines of trailing context",
COMMON_OPTS_HELP
};
-static const char qgrep_rcsid[] = "$Id: qgrep.c,v 1.25 2007/05/24 14:47:18 solar Exp $";
+static const char qgrep_rcsid[] = "$Id: qgrep.c,v 1.26 2010/01/13 18:17:23 vapier Exp $";
#define qgrep_usage(ret) usage(ret, QGREP_FLAGS, qgrep_long_opts, qgrep_opts_help, lookup_applet_idx("qgrep"))
char qgrep_name_match(const char*, const int, depend_atom**);
@@ -388,15 +388,12 @@ int qgrep_main(int argc, char **argv)
if ((fp = fopen(CACHE_EBUILD_FILE, "r")) == NULL)
return 1;
} else if (do_eclass) {
- if ((chdir(portdir)) != 0)
- errp("chdir to PORTDIR '%s' failed", portdir);
+ xchdir(portdir);
if ((eclass_dir = opendir("eclass")) == NULL)
errp("opendir(\"%s/eclass\") failed", portdir);
} else { /* if (do_install) */
- if (chdir(portroot) != 0)
- errp("could not chdir(%s) for ROOT", portroot);
- if (chdir(portvdb) != 0)
- errp("could not chdir(%s/%s) for ROOT/VDB", portroot, portvdb);
+ xchdir(portroot);
+ xchdir(portvdb);
if ((vdb_dir = opendir(".")) == NULL)
errp("could not opendir(%s/%s) for ROOT/VDB", portroot, portvdb);
}
diff --git a/qlist.c b/qlist.c
index 64f5be1..204cf56 100644
--- a/qlist.c
+++ b/qlist.c
@@ -1,7 +1,7 @@
/*
* Copyright 2005-2007 Gentoo Foundation
* Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/qlist.c,v 1.53 2010/01/13 18:07:14 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/qlist.c,v 1.54 2010/01/13 18:17:23 vapier Exp $
*
* Copyright 2005-2007 Ned Ludd - <solar@gentoo.org>
* Copyright 2005-2007 Mike Frysinger - <vapier@gentoo.org>
@@ -39,7 +39,7 @@ static const char *qlist_opts_help[] = {
/* "query filename for pkgname", */
COMMON_OPTS_HELP
};
-static const char qlist_rcsid[] = "$Id: qlist.c,v 1.53 2010/01/13 18:07:14 vapier Exp $";
+static const char qlist_rcsid[] = "$Id: qlist.c,v 1.54 2010/01/13 18:17:23 vapier Exp $";
#define qlist_usage(ret) usage(ret, QLIST_FLAGS, qlist_long_opts, qlist_opts_help, lookup_applet_idx("qlist"))
extern char *grab_vdb_item(const char *, const char *, const char *);
@@ -176,11 +176,8 @@ int qlist_main(int argc, char **argv)
if ((argc == optind) && (!just_pkgname))
qlist_usage(EXIT_FAILURE);
- if (chdir(portroot))
- errp("could not chdir(%s) for ROOT", portroot);
-
- if (chdir(portvdb) != 0)
- return EXIT_FAILURE;
+ xchdir(portroot);
+ xchdir(portvdb);
if ((dfd = scandir(".", &cat, filter_hidden, alphasort)) < 0)
return EXIT_FAILURE;
@@ -314,7 +311,7 @@ int qlist_main(int argc, char **argv)
}
while (a--) free(de[a]);
free(de);
- chdir("..");
+ xchdir("..");
}
if (dups_only) {
diff --git a/qmerge.c b/qmerge.c
index c52ae53..c3cbcfc 100644
--- a/qmerge.c
+++ b/qmerge.c
@@ -1,7 +1,7 @@
/*
* Copyright 2005-2007 Gentoo Foundation
* Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/qmerge.c,v 1.87 2010/01/13 18:07:14 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/qmerge.c,v 1.88 2010/01/13 18:17:23 vapier Exp $
*
* Copyright 2005-2007 Ned Ludd - <solar@gentoo.org>
* Copyright 2005-2007 Mike Frysinger - <vapier@gentoo.org>
@@ -55,7 +55,7 @@ static const char *qmerge_opts_help[] = {
COMMON_OPTS_HELP
};
-static const char qmerge_rcsid[] = "$Id: qmerge.c,v 1.87 2010/01/13 18:07:14 vapier Exp $";
+static const char qmerge_rcsid[] = "$Id: qmerge.c,v 1.88 2010/01/13 18:17:23 vapier Exp $";
#define qmerge_usage(ret) usage(ret, QMERGE_FLAGS, qmerge_long_opts, qmerge_opts_help, lookup_applet_idx("qmerge"))
char search_pkgs = 0;
@@ -223,10 +223,8 @@ void qmerge_initialize(const char *Packages)
mkdir(port_tmpdir, 0755);
}
- if (chdir(port_tmpdir) != 0)
- errfp("!!! chdir(PORTAGE_TMPDIR %s)", port_tmpdir);
- if (chdir("portage") != 0)
- errfp("!!! chdir(%s/portage)", port_tmpdir);
+ xchdir(port_tmpdir);
+ xchdir("portage");
if (force_download && force_download != 2)
unlink(Packages);
@@ -527,13 +525,11 @@ void pkg_merge(int level, depend_atom *atom, struct pkg_t *pkg)
if (pretend)
return;
- if (chdir(port_tmpdir) != 0)
- errfp("!!! chdir(port_tmpdir %s)", port_tmpdir);
+ xchdir(port_tmpdir);
mkdir(pkg->PF, 0755);
/* mkdir(pkg->PF, 0710); */
- if (chdir(pkg->PF) != 0)
- errfp("!!! chdir(PF %s)", pkg->PF);
+ xchdir(pkg->PF);
system(BUSYBOX " rm -rf ./*"); /* this line does funny things to nano's highlighting. */
@@ -605,7 +601,7 @@ void pkg_merge(int level, depend_atom *atom, struct pkg_t *pkg)
freeargv(ARGC, ARGV);
ARGC = 0; ARGV = NULL;
}
- assert(chdir("image") == 0);
+ xchdir("image");
if (stat("./", &st) == (-1))
err("Cant stat pwd");
@@ -740,8 +736,7 @@ void pkg_merge(int level, depend_atom *atom, struct pkg_t *pkg)
if (tmp[0] != '/') errf("sym does not start with /");
getcwd(pwd, sizeof(pwd));
- if (chdir(dirname(tmp)) != 0) /* tmp gets eatten up now by the dirname call */
- errfp("chdir to symbolic dirname %s", tmp);
+ xchdir(dirname(tmp)); /* tmp gets eatten up now by the dirname call */
if (lstat(path, &lst) != (-1))
unlink_q(dest);
/* if (path[0] != '/')
@@ -750,7 +745,7 @@ void pkg_merge(int level, depend_atom *atom, struct pkg_t *pkg)
if ((symlink(path, dest)) != 0)
if (errno != EEXIST)
warnp("symlink failed %s -> %s", path, &buf[1]);
- chdir(pwd);
+ xchdir(pwd);
}
/* Save the line to the contents file */
if (*line) fprintf(contents, "%s\n", line);
@@ -765,10 +760,8 @@ void pkg_merge(int level, depend_atom *atom, struct pkg_t *pkg)
fclose(contents);
pclose(fp);
- if (chdir(port_tmpdir) != 0)
- errfp("!!! chdir(%s)", port_tmpdir);
- if (chdir(pkg->PF) != 0)
- errfp("!!! chdir(%s)", pkg->PF);
+ xchdir(port_tmpdir);
+ xchdir(pkg->PF);
snprintf(buf, sizeof(buf), "%s/var/db/pkg/%s/", portroot, pkg->CATEGORY);
if (access(buf, R_OK|W_OK|X_OK) != 0)
@@ -799,7 +792,7 @@ void pkg_merge(int level, depend_atom *atom, struct pkg_t *pkg)
snprintf(buf, sizeof(buf), BUSYBOX " %s.tar.bz2", pkg->PF);
unlink_q(buf);
- chdir(port_tmpdir);
+ xchdir(port_tmpdir);
snprintf(buf, sizeof(buf), "rm -rf %s", pkg->PF);
system(buf);
@@ -1097,14 +1090,14 @@ void pkg_fetch(int level, depend_atom *atom, struct pkg_t *pkg)
return;
}
getcwd(savecwd, sizeof(savecwd));
- assert(chdir(pkgdir) == 0);
+ xchdir(pkgdir);
if (chdir("All/") == 0) {
snprintf(buf, sizeof(buf), "%s.tbz2", pkg->PF);
snprintf(str, sizeof(str), "../%s/%s.tbz2", atom->CATEGORY, pkg->PF);
unlink(buf);
symlink(str, buf);
}
- chdir(savecwd);
+ xchdir(savecwd);
snprintf(buf, sizeof(buf), "%s/%s/%s.tbz2", pkgdir, atom->CATEGORY, pkg->PF);
if ((pkg_verify_checksums(buf, pkg, atom, qmerge_strict, 1)) == 0) {
diff --git a/qpkg.c b/qpkg.c
index 86408a8..ceb8879 100644
--- a/qpkg.c
+++ b/qpkg.c
@@ -1,7 +1,7 @@
/*
* Copyright 2005-2007 Gentoo Foundation
* Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/qpkg.c,v 1.27 2009/08/23 06:06:49 solar Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/qpkg.c,v 1.28 2010/01/13 18:17:23 vapier Exp $
*
* Copyright 2005-2007 Ned Ludd - <solar@gentoo.org>
* Copyright 2005-2007 Mike Frysinger - <vapier@gentoo.org>
@@ -24,7 +24,7 @@ static const char *qpkg_opts_help[] = {
"alternate package directory",
COMMON_OPTS_HELP
};
-static const char qpkg_rcsid[] = "$Id: qpkg.c,v 1.27 2009/08/23 06:06:49 solar Exp $";
+static const char qpkg_rcsid[] = "$Id: qpkg.c,v 1.28 2010/01/13 18:17:23 vapier Exp $";
#define qpkg_usage(ret) usage(ret, QPKG_FLAGS, qpkg_long_opts, qpkg_opts_help, lookup_applet_idx("qpkg"))
extern char pretend;
@@ -316,8 +316,7 @@ int qpkg_main(int argc, char **argv)
if (argc == optind)
qpkg_usage(EXIT_FAILURE);
- if (chdir(portroot))
- errp("could not chdir(%s) for ROOT", portroot);
+ xchdir(portroot);
/* setup temp dirs */
i = 0;
diff --git a/qsize.c b/qsize.c
index ccb6556..c8b90df 100644
--- a/qsize.c
+++ b/qsize.c
@@ -1,7 +1,7 @@
/*
* Copyright 2005-2007 Gentoo Foundation
* Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/qsize.c,v 1.32 2009/09/26 21:02:01 grobian Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/qsize.c,v 1.33 2010/01/13 18:17:23 vapier Exp $
*
* Copyright 2005-2007 Ned Ludd - <solar@gentoo.org>
* Copyright 2005-2007 Mike Frysinger - <vapier@gentoo.org>
@@ -32,7 +32,7 @@ static const char *qsize_opts_help[] = {
"Ignore regexp string",
COMMON_OPTS_HELP
};
-static const char qsize_rcsid[] = "$Id: qsize.c,v 1.32 2009/09/26 21:02:01 grobian Exp $";
+static const char qsize_rcsid[] = "$Id: qsize.c,v 1.33 2010/01/13 18:17:23 vapier Exp $";
#define qsize_usage(ret) usage(ret, QSIZE_FLAGS, qsize_long_opts, qsize_opts_help, lookup_applet_idx("qsize"))
int qsize_main(int argc, char **argv)
@@ -70,10 +70,9 @@ int qsize_main(int argc, char **argv)
if ((argc == optind) && !search_all)
qsize_usage(EXIT_FAILURE);
- if (chdir(portroot))
- errp("could not chdir(%s) for ROOT", portroot);
-
- if (chdir(portvdb) != 0 || (dir = opendir(".")) == NULL)
+ xchdir(portroot);
+ xchdir(portvdb);
+ if ((dir = opendir(".")) == NULL)
return EXIT_FAILURE;
num_all_bytes = num_all_files = num_all_nonfiles = num_all_ignored = 0;
@@ -161,7 +160,7 @@ int qsize_main(int argc, char **argv)
}
}
closedir(dirp);
- chdir("..");
+ xchdir("..");
}
if (summary) {
diff --git a/qxpak.c b/qxpak.c
index 6095acb..5d186bd 100644
--- a/qxpak.c
+++ b/qxpak.c
@@ -1,7 +1,7 @@
/*
* Copyright 2005-2007 Gentoo Foundation
* Distributed under the terms of the GNU General Public License v2
- * $Header: /var/cvsroot/gentoo-projects/portage-utils/qxpak.c,v 1.18 2010/01/13 17:49:34 vapier Exp $
+ * $Header: /var/cvsroot/gentoo-projects/portage-utils/qxpak.c,v 1.19 2010/01/13 18:17:23 vapier Exp $
*
* Copyright 2005-2007 Ned Ludd - <solar@gentoo.org>
* Copyright 2005-2007 Mike Frysinger - <vapier@gentoo.org>
@@ -46,7 +46,7 @@ static const char *qxpak_opts_help[] = {
"Write files to stdout",
COMMON_OPTS_HELP
};
-static const char qxpak_rcsid[] = "$Id: qxpak.c,v 1.18 2010/01/13 17:49:34 vapier Exp $";
+static const char qxpak_rcsid[] = "$Id: qxpak.c,v 1.19 2010/01/13 18:17:23 vapier Exp $";
#define qxpak_usage(ret) usage(ret, QXPAK_FLAGS, qxpak_long_opts, qxpak_opts_help, lookup_applet_idx("qxpak"))
typedef struct {
@@ -128,8 +128,7 @@ _xpak_archive *_xpak_open(const char *file)
/* clean up before returning */
if (xpak_chdir)
- if (chdir(xpak_chdir) != 0)
- err("Could not chdir to '%s'", xpak_chdir);
+ xchdir(xpak_chdir);
return &ret;