/* HTML.H - INTERFACE TO MODULES TO HELP WITH COMPRESSING HTML FILES. */


/* STRUCTURE HOLDING COMMAND LINE OPTIONS. */

typedef struct
{
  int h_option;			/* 1 for -h, 2 for -H, 0 if none */
  int p_option;			/* 1 for -p, 0 if none */

  char *stats_file;		/* Pointer to name of stats file, 0 if none */

} html_options;


/* STRUCTURE HOLDING INFORMATION RELATING TO CONTEXTS.  This structure
   contains variables that identify the current context, plus a pointer
   to an array of frequency structures for each context.  The ordering
   within this array is such that the different "h" contexts (1, 3, or 4 of
   them, depending on the options) for a single "p" context are together. */

typedef struct
{
  int h_context;		/* 0 if outside directive, 1, 2, 3 if inside */
  int p_context;		/* Previous character, space at beginning */

  int n_freq;			/* Number of frequency structures used */
  frequencies *freq;		/* Pointer to array of frequency structures 
				   that are used in the various contexts */
} html_context;


/* PROCEDURES RELATING TO CONTEXTS. */

int html_arguments (char ***, html_options *);
void html_initial_context (html_options *, html_context *);
void html_next_context (int ch, html_options *, html_context *);
frequencies *html_find_table (html_options *, html_context *);

