diff options
author | Tomas Heinrich <heinrich.tomas@gmail.com> | 2009-10-19 23:58:31 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2009-10-26 12:35:30 +0100 |
commit | d31a8793ebedb53b686c9ea01be33d3d564760b9 (patch) | |
tree | de10dbc47e66c78aeb8e962106c82347d220a805 | |
parent | 0f91b3d0dc85af558306f65666779c9deae5fe4a (diff) | |
download | busybox-w32-d31a8793ebedb53b686c9ea01be33d3d564760b9.tar.gz busybox-w32-d31a8793ebedb53b686c9ea01be33d3d564760b9.tar.bz2 busybox-w32-d31a8793ebedb53b686c9ea01be33d3d564760b9.zip |
lsmod: unicode-aware column formatting
Signed-off-by: Tomas Heinrich <heinrich.tomas@gmail.com>
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-rw-r--r-- | modutils/lsmod.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/modutils/lsmod.c b/modutils/lsmod.c index 87dd1fcba..50a7897ce 100644 --- a/modutils/lsmod.c +++ b/modutils/lsmod.c | |||
@@ -9,6 +9,7 @@ | |||
9 | */ | 9 | */ |
10 | 10 | ||
11 | #include "libbb.h" | 11 | #include "libbb.h" |
12 | #include "unicode.h" | ||
12 | 13 | ||
13 | #if ENABLE_FEATURE_CHECK_TAINTED_MODULE | 14 | #if ENABLE_FEATURE_CHECK_TAINTED_MODULE |
14 | enum { | 15 | enum { |
@@ -46,6 +47,11 @@ int lsmod_main(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) | |||
46 | #if ENABLE_FEATURE_LSMOD_PRETTY_2_6_OUTPUT | 47 | #if ENABLE_FEATURE_LSMOD_PRETTY_2_6_OUTPUT |
47 | char *token[4]; | 48 | char *token[4]; |
48 | parser_t *parser = config_open("/proc/modules"); | 49 | parser_t *parser = config_open("/proc/modules"); |
50 | #if ENABLE_FEATURE_ASSUME_UNICODE | ||
51 | size_t name_len; | ||
52 | #endif | ||
53 | check_unicode_in_env(); | ||
54 | |||
49 | printf("%-24sSize Used by", "Module"); | 55 | printf("%-24sSize Used by", "Module"); |
50 | check_tainted(); | 56 | check_tainted(); |
51 | 57 | ||
@@ -58,7 +64,13 @@ int lsmod_main(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) | |||
58 | token[3][strlen(token[3])-1] = '\0'; | 64 | token[3][strlen(token[3])-1] = '\0'; |
59 | } else | 65 | } else |
60 | token[3] = (char *) ""; | 66 | token[3] = (char *) ""; |
67 | #if ENABLE_FEATURE_ASSUME_UNICODE | ||
68 | name_len = bb_mbstrlen(token[0]); | ||
69 | name_len = (name_len > 19) ? 0 : 19 - name_len; | ||
70 | printf("%s%*s %8s %2s %s\n", token[0], name_len, "", token[1], token[2], token[3]); | ||
71 | #else | ||
61 | printf("%-19s %8s %2s %s\n", token[0], token[1], token[2], token[3]); | 72 | printf("%-19s %8s %2s %s\n", token[0], token[1], token[2], token[3]); |
73 | #endif | ||
62 | } | 74 | } |
63 | } else { | 75 | } else { |
64 | while (config_read(parser, token, 4, 4, "# \t", PARSE_NORMAL & ~PARSE_GREEDY)) { | 76 | 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) | |||
66 | // or comma-separated list ended by comma | 78 | // or comma-separated list ended by comma |
67 | // so trimming the trailing char is just what we need! | 79 | // so trimming the trailing char is just what we need! |
68 | token[3][strlen(token[3])-1] = '\0'; | 80 | token[3][strlen(token[3])-1] = '\0'; |
81 | #if ENABLE_FEATURE_ASSUME_UNICODE | ||
82 | name_len = bb_mbstrlen(token[0]); | ||
83 | name_len = (name_len > 19) ? 0 : 19 - name_len; | ||
84 | printf("%s%*s %8s %2s %s\n", token[0], name_len, "", token[1], token[2], token[3]); | ||
85 | #else | ||
69 | printf("%-19s %8s %2s %s\n", token[0], token[1], token[2], token[3]); | 86 | printf("%-19s %8s %2s %s\n", token[0], token[1], token[2], token[3]); |
87 | #endif | ||
70 | } | 88 | } |
71 | } | 89 | } |
72 | if (ENABLE_FEATURE_CLEAN_UP) | 90 | if (ENABLE_FEATURE_CLEAN_UP) |