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