netbsd/external/bsd/ipf/dist/lib/printfieldhdr.c
2014-01-15 10:53:42 +01:00

57 lines
1.0 KiB
C

/* $NetBSD: printfieldhdr.c,v 1.3 2013/10/20 03:09:11 christos Exp $ */
/*
* Copyright (C) 2012 by Darren Reed.
*
* See the IPFILTER.LICENCE file for details on licencing.
*
* Id: printfieldhdr.c,v 1.1.1.2 2012/07/22 13:44:40 darrenr Exp $
*/
#include "ipf.h"
#include <ctype.h>
void
printfieldhdr(words, field)
wordtab_t *words, *field;
{
wordtab_t *w;
char *s, *t;
if (field->w_value == -2) {
for (w = words; w->w_word != NULL; ) {
if (w->w_value > 0) {
printfieldhdr(words, w);
w++;
if (w->w_value > 0)
putchar('\t');
} else {
w++;
}
}
return;
}
for (w = words; w->w_word != NULL; w++) {
if (w->w_value == field->w_value) {
if (w->w_word == field->w_word) {
s = strdup(w->w_word);
} else {
s = NULL;
}
if ((w->w_word != field->w_word) || (s == NULL)) {
PRINTF("%s", field->w_word);
} else {
for (t = s; *t != '\0'; t++) {
if (ISALPHA(*t) && ISLOWER(*t))
*t = TOUPPER(*t);
}
PRINTF("%s", s);
free(s);
}
}
}
}