1/* vi: set sw=4 ts=4: */ 2/* 3 * Print string that matches bit masked flags 4 * 5 * Copyright (C) 2008 Natanael Copa <natanael.copa@gmail.com> 6 * 7 * Licensed under GPLv2 or later, see file LICENSE in this source tree. 8 */ 9#include "libbb.h" 10 11/* returns a set with the flags not printed */ 12int FAST_FUNC print_flags_separated(const int *masks, const char *labels, int flags, const char *separator) 13{ 14 const char *need_separator = NULL; 15 while (*labels) { 16 if (flags & *masks) { 17 printf("%s%s", 18 need_separator ? need_separator : "", 19 labels); 20 need_separator = separator; 21 flags &= ~ *masks; 22 } 23 masks++; 24 labels += strlen(labels) + 1; 25 } 26 return flags; 27} 28 29int FAST_FUNC print_flags(const masks_labels_t *ml, int flags) 30{ 31 return print_flags_separated(ml->masks, ml->labels, flags, NULL); 32} 33