/* Prototypes for Diff */
#ifndef __DIFF_PROTOS
#define __DIFF_PROTOS
#define register
#define bcmp(a,b,c) memcmp(a,b,c)
#define bcopy(a,b,c) memmove(b,a,c)
#define bzero(a,b) memset(a,0,b)
#define rindex(a,b) strrchr(a,b)
extern char *concat (char *, char *, char *);
extern char change_letter (int, int);
extern int diff_2_files (struct file_data [], int);
extern int diff_dirs (struct file_data [], int (*) (char *, char *, char *, char *, int), int);
extern int excluded_filename (const char *);
extern int line_cmp (const char *, int, const char *, int);
extern int read_files (struct file_data []);
extern int sip (struct file_data *, int);
extern int translate_line_number (struct file_data *, int);
extern struct change *find_change (struct change *);
extern struct change *find_reverse_change (struct change *);
extern VOID *xmalloc (unsigned);
extern VOID *xrealloc (VOID *, unsigned);
extern void analyze_hunk (struct change *, int *, int *, int *, int *, int *, int *);
extern void begin_output (void);
extern void error (char *, char *, char *);
extern void fatal (char *);
extern void finish_output (void);
extern void message (char *, char *, char *);
extern void output_1_line (const char *text, const char *limit, const char *flag_format, const char *line_flag);
extern void perror_with_name (char *);
extern void pfatal_with_name (char *);
extern void print_1_line (const char *, const char * const *);
extern void print_context_header (struct file_data *, int);
extern void print_context_script (struct change *, int);
extern void print_ed_script (struct change *);
extern void print_ifdef_script (struct change *);
extern void print_message_queue (void);
extern void print_normal_script (struct change *);
extern void print_number_range (char, struct file_data *, int, int);
extern void print_rcs_script (struct change *);
extern void print_script (struct change *, struct change * (struct change *), void (struct change *));
extern void print_sdiff_script (struct change *);
extern void pr_forward_ed_script (struct change *);
extern void setup_output (char *, char *, int);
extern void slurp (struct file_data *);
extern void translate_range (struct file_data *, int, int, int *, int *);
#endif
