コード例 #1
0
ファイル: output_line.c プロジェクト: ImoStocky/nf-tools
int output_start_line(output_t *output) {
	int i,j;
	char buf[LNF_INFO_BUFSIZE];
	field_ent_t *fe;
	format_ent_t fmte;

	for (i = 0; i < output->numfields; i++) {

		fe = &output->fields[i];	/* get field entry for better manipulation */

		/* set output formating function and formating callback */
		for (j = 0; j < sizeof(formats) / sizeof(format_ent_t); j++) {
			/* default for all */
			if ( formats[j].type == 0 ) {
				memcpy(&fmte, &formats[j], sizeof(format_ent_t));
			}

			/* default for type */
			if ( formats[j].type == lnf_fld_type(fe->field) && formats[j].field == 0) {
				memcpy(&fmte, &formats[j], sizeof(format_ent_t));
			}

			/* particular type and field */
			if ( formats[j].type == lnf_fld_type(fe->field) && formats[j].field == fe->field) {
				memcpy(&fmte, &formats[j], sizeof(format_ent_t));
			}
		}

		strncpy(fe->format, fmte.format, MAX_STR);
		fe->format_func = fmte.format_func;

		/* print header */
		lnf_fld_info(fe->field, LNF_FLD_INFO_NAME, &buf, LNF_INFO_BUFSIZE);
		strncpy(fe->name, buf, MAX_STR);
		printf(output->fields[i].format, &buf);

	}

	printf("\n");

	return 1;
}
コード例 #2
0
ファイル: libnf.c プロジェクト: Lukas955/nf-tools
/* TAG for check_items_map.pl: lnf_rec_fget */
int lnf_rec_fget(lnf_rec_t *rec, int field, void * p) {

	if (lnf_fld_type(field) == LNF_NONE) {

		return LNF_ERR_UNKFLD;

	}

	return __lnf_rec_fget(rec, field, p);

}