[git commit master] lsmod: unicode-aware column formatting

Denys Vlasenko vda.linux at googlemail.com
Mon Oct 26 11:35:30 UTC 2009


commit: http://git.busybox.net/busybox/commit/?id=d31a8793ebedb53b686c9ea01be33d3d564760b9
branch: http://git.busybox.net/busybox/commit/?id=refs/heads/master

Signed-off-by: Tomas Heinrich <heinrich.tomas at gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux at googlemail.com>
---
 modutils/lsmod.c |   18 ++++++++++++++++++
 1 files changed, 18 insertions(+), 0 deletions(-)

diff --git a/modutils/lsmod.c b/modutils/lsmod.c
index 87dd1fc..50a7897 100644
--- a/modutils/lsmod.c
+++ b/modutils/lsmod.c
@@ -9,6 +9,7 @@
  */
 
 #include "libbb.h"
+#include "unicode.h"
 
 #if ENABLE_FEATURE_CHECK_TAINTED_MODULE
 enum {
@@ -46,6 +47,11 @@ int lsmod_main(int argc UNUSED_PARAM, char **argv UNUSED_PARAM)
 #if ENABLE_FEATURE_LSMOD_PRETTY_2_6_OUTPUT
 	char *token[4];
 	parser_t *parser = config_open("/proc/modules");
+#if ENABLE_FEATURE_ASSUME_UNICODE
+	size_t name_len;
+#endif
+	check_unicode_in_env();
+
 	printf("%-24sSize  Used by", "Module");
 	check_tainted();
 
@@ -58,7 +64,13 @@ int lsmod_main(int argc UNUSED_PARAM, char **argv UNUSED_PARAM)
 				token[3][strlen(token[3])-1] = '\0';
 			} else
 				token[3] = (char *) "";
+#if ENABLE_FEATURE_ASSUME_UNICODE
+			name_len = bb_mbstrlen(token[0]);
+			name_len = (name_len > 19) ? 0 : 19 - name_len;
+			printf("%s%*s %8s %2s %s\n", token[0], name_len, "", token[1], token[2], token[3]);
+#else
 			printf("%-19s %8s %2s %s\n", token[0], token[1], token[2], token[3]);
+#endif
 		}
 	} else {
 		while (config_read(parser, token, 4, 4, "# \t", PARSE_NORMAL & ~PARSE_GREEDY)) {
@@ -66,7 +78,13 @@ int lsmod_main(int argc UNUSED_PARAM, char **argv UNUSED_PARAM)
 			// or comma-separated list ended by comma
 			// so trimming the trailing char is just what we need!
 			token[3][strlen(token[3])-1] = '\0';
+#if ENABLE_FEATURE_ASSUME_UNICODE
+			name_len = bb_mbstrlen(token[0]);
+			name_len = (name_len > 19) ? 0 : 19 - name_len;
+			printf("%s%*s %8s %2s %s\n", token[0], name_len, "", token[1], token[2], token[3]);
+#else
 			printf("%-19s %8s %2s %s\n", token[0], token[1], token[2], token[3]);
+#endif
 		}
 	}
 	if (ENABLE_FEATURE_CLEAN_UP)
-- 
1.6.3.3



More information about the busybox-cvs mailing list