svn commit: r226697 - head/usr.sbin/pkg_install/info
Ed Maste
emaste at FreeBSD.org
Mon Oct 24 18:29:50 UTC 2011
Author: emaste
Date: Mon Oct 24 18:29:50 2011
New Revision: 226697
URL: http://svn.freebsd.org/changeset/base/226697
Log:
Avoid printing // for packages that install to /
I have some packages that install to / (for whatever reason). Right now we
print entries of the form //path/to/file when listing files (pkg_info -L,
pkg_info -g etc.) This change avoids printing the redundant / .
Modified:
head/usr.sbin/pkg_install/info/show.c
Modified: head/usr.sbin/pkg_install/info/show.c
==============================================================================
--- head/usr.sbin/pkg_install/info/show.c Mon Oct 24 17:09:22 2011 (r226696)
+++ head/usr.sbin/pkg_install/info/show.c Mon Oct 24 18:29:50 2011 (r226697)
@@ -207,6 +207,14 @@ show_plist(const char *title, Package *p
}
}
+const char *
+elide_root(const char *dir)
+{
+ if (strcmp(dir, "/") == 0)
+ return "";
+ return dir;
+}
+
/* Show all files in the packing list (except ignored ones) */
void
show_files(const char *title, Package *plist)
@@ -223,7 +231,7 @@ show_files(const char *title, Package *p
switch(p->type) {
case PLIST_FILE:
if (!ign)
- printf("%s/%s\n", dir, p->name);
+ printf("%s/%s\n", elide_root(dir), p->name);
ign = FALSE;
break;
@@ -270,7 +278,7 @@ show_size(const char *title, Package *pl
switch (p->type) {
case PLIST_FILE:
if (!ign) {
- snprintf(tmp, FILENAME_MAX, "%s/%s", dir, p->name);
+ snprintf(tmp, FILENAME_MAX, "%s/%s", elide_root(dir), p->name);
if (!lstat(tmp, &sb)) {
size += sb.st_size;
if (Verbose)
@@ -328,7 +336,7 @@ show_cksum(const char *title, Package *p
else
dir = p->name;
} else if (p->type == PLIST_FILE) {
- snprintf(tmp, FILENAME_MAX, "%s/%s", dir, p->name);
+ snprintf(tmp, FILENAME_MAX, "%s/%s", elide_root(dir), p->name);
if (!fexists(tmp))
warnx("%s doesn't exist", tmp);
else if (p->next && p->next->type == PLIST_COMMENT &&
More information about the svn-src-all
mailing list