#define NumFigures	40

typedef struct {
    char *danceName;
    char *url;
    enum formation { sf_singleLong, sf_singleCirc,
	sf_dupleProper, sf_dupleImproper, sf_dupleSicilian,
	sf_tripleProper, sf_tripleImproper,
	sf_3face3, sf_3face3Sicilian,
	sf_quadrupleProper, sf_fourFaceFour, sf_fourFaceFourSic, sf_tempest,
	sf_wholeSetLongways, sf_wsCircle, sf_wsSquare, sf_wsOther
    } formation;
    int progression;
    char usesFigures[NumFigures];
    char interactionsOutsideMinor;
    char multiPart;
} DanceCategories;

enum figures {
    figr_cast, figr_USA, figr_figure8, figr_hey,
    figr_rightsLefts, figr_rightLeft4, figr_rightLeftThrough, figr_ladiesChain,
    figr_star, figr_starBack, figr_turnSingle, figr_handTurn,
    figr_swing, figr_waltz, figr_polka, figr_downMiddleBack,
    figr_kiss, figr_promenade3, figr_crossGoBelow, figr_downOutsideBack,
    figr_longLines, sf_mixer,
/* Needs to match figureNames in catfiles.c */
};

typedef struct csvFile {
    char *filename;
    int cnt, max, pos;
    DanceCategories *dances;
} CSVFile;

extern char *formationNames[];
extern char *figureNames[];

extern void cat_SaveCSVFile(char *filename, CSVFile *cf);
extern CSVFile *cat_LoadCSVFile(char *filename);
