/* External function definitions for RCS */

extern void InitAdmin (void);
extern void InitCleanup (void);
extern void Lexinit (void);
extern struct lock *addlock (struct hshentry *, char *);
extern int addsymbol (struct hshentry *, char *, int);
extern char *buildrevision(struct hshentry **, struct hshentry *, char *, int);
extern void catchints (void);
extern void catchsig (int);
extern int checkaccesslist (char *);
extern char *checkid (char *, char);
extern int checknum (char *, int);
extern void cksignal (int);
extern int cleanup (void);
extern int cmpnum (char *, char *);
extern int cmpnumfld (char *, char *, int);
extern int compartial (char *, char *, int);
extern void copylines (int, struct hshentry *);
extern void copystring (void);
extern int countnumflds (char *);
extern char *curdir (void);
extern void editstring (struct hshentry *);
extern int expandline (FILE *, FILE *, struct hshentry *, int, int);
extern int expandsym (char *, char *);
extern void fastcopy (FILE *, FILE *);
extern struct hshentry *findlock (char *, int);
extern char *findpairfile (int, char **, char *, char *);
extern void finishedit (struct hshentry *);
extern int frename (const char *, const char *);
extern struct hshentry *genbranch (struct hshentry *, char *, int, char *, 
                                   char *, char *, struct hshentry **);
extern struct hshentry *genrevs (char *, char *, char *, char *, 
                                 struct hshentry **);
extern void getadmin (void);
extern char *getancestor (char *, char *, char *);
extern void getbranchno (char *, char *);
extern char *getcaller (void);
extern int getdelta (void);
extern void getdesc (int);
extern void getfilestat (char *, struct filestat *);
extern char *getfullRCSname (void);
extern char *getid (void);
extern int getkey  (char *);
extern char *getkeyval (char *, enum tokens, int);
extern int getlex (enum tokens);
extern struct hshentry *getnum (void);
extern int getoldkeys (char *);
extern int getprevdate (int);
extern void gettree (void);
extern char *getwd (char *);
extern void ignoreints (void);
extern void incnum (char *, char *);
extern void initeditfiles (void);
extern void keyreplace (enum markers, struct hshentry *, FILE *);
extern void logcommand (char *, struct hshentry *, struct hshentry **, char *);
extern void lookup (void);
extern char *lookupsym (char *);
extern char *mktempfile (char *);
extern void nextlex (void);
extern int pairfilenames (int, char **, int, int);
extern char *partialno (char *, char *, int);
extern void printstring (void);
extern void putadmin (FILE *);
extern void putdelta (struct hshentry *, FILE *);
extern int putdesc (int, int, char *, int);
extern int putdtext (char *, char *, char *, FILE *);
extern void puttree (struct hshentry *, FILE *);
extern int rcsfcmp (char *, char *, struct hshentry *);
extern void readstring (void);
extern void restoreints (void);
extern int rmsema (void);
extern int savestring (char *, int);
extern void scandeltatext (struct hshentry *, enum stringwork);
extern int setfilestat (char *, struct filestat *);
extern void swapeditfiles (int);
extern int trydiraccess (char *);
extern enum markers trymatch (char *, int);
extern int trysema (char *, int);
extern void wildcard_expand (int *, char ***);
extern void xpandstring (struct hshentry *);

#pragma -v1   /* hint to the compiler to check f/s/printf format */
extern void diagnose(char *, ...);
extern void error(char *, ...);
extern void faterror (char *, ...);
extern void fatserror (char *, ...);
extern void serror (char *, ...);
extern void warn (char *, ...);
#pragma -v0   /* back to default */

/* Replacements for stdio functions */
extern void ffclose (FILE *);
extern int fflsbuf (int, FILE *);
extern int fputs (const char *, FILE *);

#pragma -v1   /* hint to the compiler to check f/s/printf format */
extern int fprintf (FILE *, const char *, ...);
#pragma -v0   /* back to default */

