PERFORCE change 19798 for review

Brian Feldman green at freebsd.org
Mon Oct 21 16:43:36 GMT 2002


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

Change 19798 by green at green_laptop_2 on 2002/10/21 09:42:38

	Correct printing of MAC labels to justify/align properly.

Affected files ...

.. //depot/projects/trustedbsd/mac/bin/ps/extern.h#10 edit
.. //depot/projects/trustedbsd/mac/bin/ps/keyword.c#12 edit
.. //depot/projects/trustedbsd/mac/bin/ps/print.c#14 edit

Differences ...

==== //depot/projects/trustedbsd/mac/bin/ps/extern.h#10 (text+ko) ====

@@ -71,6 +71,7 @@
 void	 rgroupname(KINFO *, VARENT *);
 void	 runame(KINFO *, VARENT *);
 void	 rvar(KINFO *, VARENT *);
+int	 s_label(KINFO *);
 int	 s_rgroupname(KINFO *);
 int	 s_runame(KINFO *);
 int	 s_uname(KINFO *);

==== //depot/projects/trustedbsd/mac/bin/ps/keyword.c#12 (text+ko) ====

@@ -95,7 +95,8 @@
 		0},
 	{"ktrace", "KTRACE", NULL, 0, kvar, NULL, 8, KOFF(ki_traceflag), INT,
 		"x", 0},
-	{"label", "LABEL", NULL, LJUST, label, NULL, 0, 0, CHAR, NULL, 0},
+	{"label", "LABEL", NULL, LJUST|DSIZ, label, s_label, SHRT_MAX, 0, CHAR,
+	    NULL, 0},
 	{"lim", "LIM", NULL, 0, maxrss, NULL, 5, 0, CHAR, NULL, 0},
 	{"login", "LOGIN", NULL, LJUST, logname, NULL, MAXLOGNAME-1, 0, CHAR,
 		NULL, 0},

==== //depot/projects/trustedbsd/mac/bin/ps/print.c#14 (text+ko) ====

@@ -749,9 +749,34 @@
 	mac_free(label);
 
 out:
-	if (string != NULL)
-		(void)printf("%*s", v->width, string);
-	else
-		(void)printf("%*s", v->width, "");
+	if (string != NULL) {
+		(void)printf("%-*s", v->width, string);
+		free(string);
+	} else
+		(void)printf("%-*s", v->width, "");
 	return;
 }
+
+int
+s_label(KINFO *k)
+{
+	char *string = NULL;
+	mac_t label;
+	int error, size = 0;
+
+	if (mac_prepare_process_label(&label) == -1) {
+		perror("mac_prepare_process_label");
+		fprintf(stderr, "returning size %d for pid %d\n", 0,
+		    k->ki_p->ki_pid);
+		return (0);
+	}
+	error = mac_get_pid(k->ki_p->ki_pid, label);
+	if (error == 0 && mac_to_text(label, &string) == 0) {
+		size = strlen(string);
+		free(string);
+		fprintf(stderr, "returning size %d for pid %d\n", size,
+		    k->ki_p->ki_pid);
+	}
+	mac_free(label);
+	return (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