/*******************************************************************************
License:
This software was developed at the National Institute of Standards and
Technology (NIST) by employees of the Federal Government in the course
of their official duties. Pursuant to title 17 Section 105 of the
United States Code, this software is not subject to copyright protection
and is in the public domain. NIST assumes no responsibility whatsoever for
its use by other parties, and makes no guarantees, expressed or implied,
about its quality, reliability, or any other characteristic.
This software has been determined to be outside the scope of the EAR
(see Part 734.3 of the EAR for exact details) as it has been created solely
by employees of the U.S. Government; it is freely distributed with no
licensing requirements; and it is considered public domain. Therefore,
it is permissible to distribute this software as a free download from the
internet.
Disclaimer:
This software was developed to promote biometric standards and biometric
technology testing for the Federal Government in accordance with the USA
PATRIOT Act and the Enhanced Border Security and Visa Entry Reform Act.
Specific hardware and software products identified in this software were used
in order to perform the software development. In no case does such
identification imply recommendation or endorsement by the National Institute
of Standards and Technology, nor does it imply that the products and equipment
identified are necessarily the best available for the purpose.
*******************************************************************************/
/******************************************************************************
PACKAGE: ANSI/NIST 2007 Standard Reference Implementation
FILE: HISTOGEN.H
AUTHORS: Bruce Bandini
DATE: 05/18/2010
*******************************************************************************/
#ifndef _HISTOGEN_H
#define _HISTOGEN_H
#define str_eq(s1,s2) (!strcmp ((s1),(s2)))
/* If filemask = *, then getopt adds files in current dir to non-options list.
For a correctly formed command line, argc is always <= 4. */
#define MAX_ARGC 4
#define NUM_OPTIONS 4
#define CMD_LEN 512
#define FILESYS_PATH_LEN 256
#define READ_LINE_BUFFER 256
#define MAX_FIELD_NUM_CHARS 12
#define MAX_FIELD_NUMS 30
#define ALLOC_BLOCK_SIZE 10
#define HISTOGEN_LOG_FNAME "histogen.log"
typedef struct histo HISTO;
struct histo {
char field_num[12];
int count;
HISTO *next;
};
HISTO *histo_head;
enum {
INCLUDE_INVALID_FILES=5,
INCLUDE_FIELD_SEPARATORS,
INCLUDE_NEWLINE_CHARS,
INCLUDE_SPACE_CHARS
};
enum {
FALSE=0,
TRUE=1
};
/******************************************************************************/
/* histogen.c */
extern int process_file(const char *);
extern int initialize_linked_list();
extern int output_linked_list(FILE *);
#endif /* !_HISTOGEN_H */