Home | History | Annotate | Line # | Download | only in lib
      1 /*	$NetBSD: printfieldhdr.c,v 1.3 2013/10/20 03:09:11 christos Exp $	*/
      2 
      3 /*
      4  * Copyright (C) 2012 by Darren Reed.
      5  *
      6  * See the IPFILTER.LICENCE file for details on licencing.
      7  *
      8  * Id: printfieldhdr.c,v 1.1.1.2 2012/07/22 13:44:40 darrenr 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 
     22 	if (field->w_value == -2) {
     23 		for (w = words; w->w_word != NULL; ) {
     24 			if (w->w_value > 0) {
     25 				printfieldhdr(words, w);
     26 				w++;
     27 				if (w->w_value > 0)
     28 					putchar('\t');
     29 			} else {
     30 				w++;
     31 			}
     32 		}
     33 		return;
     34 	}
     35 
     36 	for (w = words; w->w_word != NULL; w++) {
     37 		if (w->w_value == field->w_value) {
     38 			if (w->w_word == field->w_word) {
     39 				s = strdup(w->w_word);
     40 			} else {
     41 				s = NULL;
     42 			}
     43 
     44 			if ((w->w_word != field->w_word) || (s == NULL)) {
     45 				PRINTF("%s", field->w_word);
     46 			} else {
     47 				for (t = s; *t != '\0'; t++) {
     48 					if (ISALPHA(*t) && ISLOWER(*t))
     49 						*t = TOUPPER(*t);
     50 				}
     51 				PRINTF("%s", s);
     52 				free(s);
     53 			}
     54 		}
     55 	}
     56 }
     57