libbb: introduce and use print_flags().
Mostly by Natanael Copa <natanael.copa AT gmail.com>
function old new delta
print_e2flags - 189 +189
print_flags_separated - 86 +86
static.flag_labels - 60 +60
static.dma_wmode_masks - 32 +32
static.flag_masks - 28 +28
static.arp_labels - 16 +16
static.arp_masks - 12 +12
ls_main 836 843 +7
...
popstring 140 134 -6
arp_show 740 708 -32
print_flags 189 25 -164
ipaddr_list_or_flush 2396 2170 -226
process_dev 5306 4706 -600
------------------------------------------------------------------------------
(add/remove: 10/0 grow/shrink: 5/10 up/down: 458/-1043) Total: -585 bytes
text data bss dec hex filename
810564 624 7060 818248 c7c48 busybox_old
810002 624 7060 817686 c7a16 busybox_unstripped
diff --git a/include/libbb.h b/include/libbb.h
index c4d802f..97aae0b 100644
--- a/include/libbb.h
+++ b/include/libbb.h
@@ -1304,6 +1304,14 @@
/* "sh" */
#define DEFAULT_SHELL_SHORT_NAME (bb_default_login_shell+6)
+typedef struct masks_labels_t {
+ const char *labels;
+ const int masks[];
+} masks_labels_t;
+
+int print_flags_separated(const int *masks, const char *labels,
+ int flags, const char *separator);
+extern int print_flags(const masks_labels_t *ml, int flags);
#if ENABLE_FEATURE_DEVFS
# define CURRENT_VC "/dev/vc/0"