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-head mailing list