/*  ARC - Archive utility - ARC Header

    Version 2.17, created on 04/22/87 at 13:09:43

Copyright 1989-90 Lawrence J. Jones; All Rights Reserved
(C) COPYRIGHT 1985,86 by System Enhancement Associates; ALL RIGHTS RESERVED

    By:  Thom Henderson

    Description:
         This is the header file for the ARC archive utility.  It defines
         global parameters and the references to the external data.


    Language:
         Computer Innovations Optimizing C86
*/
#include "sysinc.h"

extern int keepbak;             /* true if saving the old archive */
extern int warn;                /* true to print warnings */
extern int note;                /* true to print comments */
extern int bose;                /* true to be verbose */
extern int nocomp;              /* true to suppress compression */
extern int overlay;             /* true to overlay on extract */
extern int kludge;              /* kludge flag */
extern int image;               /* image mode requested */
extern char *arctemp;           /* arc temp file prefix */
extern char *password;          /* encryption password pointer */
extern int nerrs;               /* number of errors encountered */
extern int changing;            /* true if archive being modified */

extern int hdrver;             /* header version */

extern FILE *arc;               /* the old archive */
extern FILE *new;               /* the new archive */
extern char arcname[STRLEN];    /* storage for archive name */
extern char bakname[STRLEN];    /* storage for backup copy name */
extern char newname[STRLEN];    /* storage for new archive name */
extern unsigned short arcdate;  /* archive date stamp */
extern unsigned short arctime;  /* archive time stamp */
extern unsigned short olddate;  /* old archive date stamp */
extern unsigned short oldtime;  /* old archive time stamp */

/* arcadd.c */
extern void addarc PROTO((int, char **, int, int, int));

/* arccode.c */
extern void setcode PROTO((void));
extern int code PROTO((int));

/* arccvt.c */
extern void cvtarc PROTO((int, char **));

/* arcdel.c */
extern void delarc PROTO((int, char **));

/* arcext.c */
extern void extarc PROTO((int, char **, int));

/* arclst.c */
extern void lstarc PROTO((int, char **));

/* arclzw.c */
extern void init_cm PROTO((FILE *));
extern void putc_cm PROTO((int, FILE *));
extern long pred_cm PROTO((FILE *));
extern void decomp PROTO((FILE *, FILE *, int));
extern void init_ucr PROTO((int));
extern int getc_ucr PROTO((FILE *));

/* arcmatch.c */
extern int match PROTO((char *, char *));

/* arcpack.c */
extern void pack PROTO((FILE *, FILE *, struct heads *));
extern int getc_ncr PROTO((FILE *));
extern void putc_pak PROTO((int, FILE *));

/* arcsq.c */
extern void init_sq PROTO((void));
extern void scan_sq PROTO((int));
extern long pred_sq PROTO((void));
extern long file_sq PROTO((FILE *, FILE *));

/* arcsvc.c */
extern void openarc PROTO((int));
extern void closearc PROTO((int));
extern unsigned int addcrc PROTO((unsigned, int));

/* arctst.c */
extern void tstarc PROTO((void));

/* arcunp.c */
extern int unpack PROTO((FILE *, FILE *, struct heads *));
extern void putc_unp PROTO((int, FILE *));
extern void putc_ncr PROTO((int, FILE *));
extern int getc_unp PROTO((FILE *));

/* arcusq.c */
extern void init_usq PROTO((FILE *));
extern int getc_usq PROTO((FILE *));
