1 /* $NetBSD: printfieldhdr.c,v 1.1.1.1 2012/03/23 21:20:09 christos Exp $ */ 2 3 /* 4 * Copyright (C) 2009 by Darren Reed. 5 * 6 * See the IPFILTER.LICENCE file for details on licencing. 7 * 8 * Id: printfieldhdr.c,v 1.5.2.2 2012/01/26 05:44:26 darren_r Exp 9 */ 10 11 #include "ipf.h" 12 #include <ctype.h> 13 14 15 void 16 printfieldhdr(words, field) 17 wordtab_t *words, *field; 18 { 19 wordtab_t *w; 20 char *s, *t; 21 int i; 22 23 if (field->w_value == -2) { 24 for (i = 0, w = words; w->w_word != NULL; ) { 25 if (w->w_value > 0) { 26 printfieldhdr(words, w); 27 w++; 28 if (w->w_value > 0) 29 putchar('\t'); 30 } else { 31 w++; 32 } 33 } 34 return; 35 } 36 37 for (w = words; w->w_word != NULL; w++) { 38 if (w->w_value == field->w_value) { 39 if (w->w_word == field->w_word) { 40 s = strdup(w->w_word); 41 } else { 42 s = NULL; 43 } 44 45 if ((w->w_word != field->w_word) || (s == NULL)) { 46 PRINTF("%s", field->w_word); 47 } else { 48 for (t = s; *t != '\0'; t++) { 49 if (ISALPHA(*t) && ISLOWER(*t)) 50 *t = TOUPPER(*t); 51 } 52 PRINTF("%s", s); 53 free(s); 54 } 55 } 56 } 57 } 58