PERFORCE change 47577 for review

Chris Vance cvance at FreeBSD.org
Tue Feb 24 17:37:07 GMT 2004


http://perforce.freebsd.org/chv.cgi?CH=47577

Change 47577 by cvance at cvance_osx_laptop on 2004/02/24 09:36:47

	Integrate the changes that allow you to use -Z without requiring 
	long format.

Affected files ...

.. //depot/projects/trustedbsd/sedarwin/apsl/file_cmds/ls/ls.c#3 edit
.. //depot/projects/trustedbsd/sedarwin/apsl/file_cmds/ls/print.c#3 edit

Differences ...

==== //depot/projects/trustedbsd/sedarwin/apsl/file_cmds/ls/ls.c#3 (text+ko) ====

@@ -246,7 +246,7 @@
 	 * information.
 	 */
 	if (!f_inode && !f_longform && !f_size && !f_type &&
-	    sortkey == BY_NAME)
+	    sortkey == BY_NAME && !f_label)
 		fts_options |= FTS_NOSTAT;
 
 	/*
@@ -309,7 +309,7 @@
 	}
 
 	/* Select a print function. */
-	if (f_singlecol)
+	if (f_singlecol || (f_label && !f_longform))
 		printfcn = printscol;
 	else if (f_columnacross)
 		printfcn = printacol;
@@ -356,7 +356,8 @@
 	 * If not recursing down this tree and don't need stat info, just get
 	 * the names.
 	 */
-	ch_options = !f_recursive && options & FTS_NOSTAT ? FTS_NAMEONLY : 0;
+	ch_options = !f_recursive && !f_label && 
+	    options & FTS_NOSTAT ? FTS_NAMEONLY : 0;
 
 	while ((p = fts_read(ftsp)) != NULL)
 		switch (p->fts_info) {
@@ -439,7 +440,7 @@
 	if (list == NULL)
 		return;
 
-	needstats = f_inode || f_longform || f_size;
+	needstats = f_inode || f_longform || f_size || f_label;
 	flen = 0;
 	maxinode = maxnlink = 0;
 	bcfile = 0;
@@ -492,7 +493,7 @@
 			}
 
 			btotal += sp->st_blocks;
-			if (f_longform) {
+			if (f_longform || f_label) {
 				if (f_numericonly) {
 					(void)snprintf(nuser, sizeof(nuser),
 					    "%u", sp->st_uid);
@@ -645,7 +646,7 @@
 	printfcn(&d);
 	output = 1;
 
-	if (f_longform)
+	if (f_longform || f_label)
 		for (cur = list; cur; cur = cur->fts_link)
 			free(cur->fts_pointer);
 }

==== //depot/projects/trustedbsd/sedarwin/apsl/file_cmds/ls/print.c#3 (text+ko) ====

@@ -64,7 +64,7 @@
 #include "ls.h"
 #include "extern.h"
 
-static int	printaname __P((FTSENT *, int, int));
+static int	printaname __P((FTSENT *, int, int, int));
 static void	printlink __P((FTSENT *));
 static void	printtime __P((time_t));
 static int	printtype __P((u_int));
@@ -82,7 +82,7 @@
 	for (p = dp->list; p; p = p->fts_link) {
 		if (IS_NOPRINT(p))
 			continue;
-		(void)printaname(p, dp->s_inode, dp->s_block);
+		(void)printaname(p, dp->s_label, dp->s_inode, dp->s_block);
 		(void)putchar('\n');
 	}
 }
@@ -201,8 +201,8 @@
 		    (long long)(howmany(dp->btotal, blocksize)));
 	for (row = 0; row < numrows; ++row) {
 		for (base = row, chcnt = col = 0; col < numcols; ++col) {
-			chcnt = printaname(array[base], dp->s_inode,
-			    dp->s_block);
+			chcnt = printaname(array[base], dp->s_label, 
+			    dp->s_inode, dp->s_block);
 			if ((base += numrows) >= num)
 				break;
 			while (chcnt++ < colwidth)
@@ -250,7 +250,7 @@
 			chcnt = col = 0;
 			(void)putchar('\n');
 		}
-		chcnt = printaname(p, dp->s_inode, dp->s_block);
+		chcnt = printaname(p, dp->s_label, dp->s_inode, dp->s_block);
 		while (chcnt++ < colwidth)
 			(void)putchar(' ');
 		col++;
@@ -263,16 +263,21 @@
  * return # of characters printed, no trailing characters.
  */
 static int
-printaname(p, inodefield, sizefield)
+printaname(p, labelfield, inodefield, sizefield)
 	FTSENT *p;
-	int sizefield, inodefield;
+	int labelfield, sizefield, inodefield;
 {
 	struct stat *sp;
 	int chcnt;
+	NAMES *np;
 	char nbuf[MAXPATHLEN + 1], *name;
 
 	sp = p->fts_statp;
 	chcnt = 0;
+        if (f_label) {
+		np = p->fts_pointer;
+		chcnt += printf("%-*s ", (int)labelfield, np->label);
+        }
 	if (f_inode)
 		chcnt += printf("%*u ", inodefield, sp->st_ino);
 	if (f_size)
To Unsubscribe: send mail to majordomo at trustedbsd.org
with "unsubscribe trustedbsd-cvs" in the body of the message



More information about the trustedbsd-cvs mailing list