/*
 *                **** PRODLIST ****
 *
 * This file contains definitions for prodlist structures
 * and their supporting routines
 *
 */

#ifndef PRODLIST_H
#define PRODLIST_H

typedef struct { /* product info list */
  int nitems;			/* number of items */
  int maxitems;			/* max. number of items */
  int delta;			/* amount to increase when full */
  char **item;			/* actual item names */
  char **desc;			/* description (for display) */
} ProdList;

typedef struct { /* alphabetic info list */
  int nitems;			/* number of items */
  int maxitems;			/* max. items */
  int delta;			/* amount to increase when full */
  char **item;			/* actual items */
} ProdAlphaList;

typedef struct { /* product info numerical list */
  int nitems;			/* number of items in list */
  int maxitems;			/* max. items */
  int delta;			/* amount to increase when full */
  long *item;		/* items in list */
} ProdNumList;

typedef struct { /* product info unsigned numerical list */
  int nitems;			/* number of items in list */
  int maxitems;			/* max. items */
  int delta;			/* amount to increase when full */
  unsigned long *item;		/* items in list */
} ProdUNumList;

typedef struct { /* product info alpha/num list */
  int nitems;			/* number of items */
  int maxitems;			/* maximum number of items */
  int delta;			/* amount to increase when full */
  long *num;			/* list of numbers */
  char **alpha;			/* list of strings */
} ProdANumList;

typedef struct { /* generic pointer info list */
  int nitems;			/* number of items */
  int maxitems;			/* max. items */
  int delta;			/* amount to increase when full */
  void **item;			/* actual items */
} ProdPtrList;

typedef struct { /* generic pointer w/ alpha key list */
  int nitems;			/* number of items */
  int maxitems;			/* max. items */
  int delta;			/* amount to increase when full */
  char **key;			/* key for entry */
  void **item;			/* actual entry */
} ProdAPtrList;

#include "prodlist.pro"

#endif
