|
|
1.1 root 1: #ifdef MAIN
2: #define EXTERN
3: #else
4: #define EXTERN extern
5: #endif
6:
7: #include "io.h"
8: #include <setjmp.h>
9:
10: EXTERN int ifd;
11:
12: EXTERN long lnum;
13: EXTERN long nbytes;
14: EXTERN long noverflow;
15: EXTERN int bflag;
16: EXTERN int cflag;
17: EXTERN int hflag;
18: EXTERN int iflag;
19: EXTERN int lflag;
20: EXTERN int Lflag;
21: EXTERN int nflag;
22: EXTERN int oneflag;
23: EXTERN int sflag;
24: EXTERN int vflag;
25: EXTERN int xflag;
26: EXTERN long nmatch;
27: EXTERN char *progname;
28: EXTERN char *curfile;
29: EXTERN int prname;
30: EXTERN int offsetunit;
31: EXTERN jmp_buf env;
32: EXTERN int longlinewarned;
33:
34: extern char *optarg;
35: extern int optind;
36: extern int getopt(int, char**, char*);
37: extern void *memcpy(void*, const void*, int);
38: #ifndef MEMMOVE
39: #define memmove(to, from, n) memcpy(to, from, n)
40: #else
41: extern void *memmove(void*, const void*, int);
42: #endif
43: extern void *memchr(void*, int, int);
44: extern char *memset(void*, int, int);
45: extern int memcmp(void*, void*, int);
46: extern int strlen(char *);
47: extern int strcmp(char *, char *);
48: extern char *strchr(char *, int);
49: extern char *strrchr(char *, int);
50: extern void *calloc(int, int);
51: extern void free(void*);
52: extern void *malloc(int);
53: extern void *realloc(void*, int);
54: extern int open(char *, int, ...);
55: extern int read(int, char*, unsigned);
56: extern int close(int);
57: extern int tolower(int);
58: extern void abort(void);
59: extern void perror(char*);
60: extern void exit(int);
61:
62: typedef void (*SUCCFN)(char*,char*);
63: extern void count(char *, char *); /* updates lnum,nbytes */
64: extern void count_m(char *, char *); /* updates lnum,nbytes */
65: extern int cwxrd(char**,char**);
66: extern int cwxmatch(char**,char**);
67: extern int bmxmatch(char**,char**); /* variants for -x for cw/bm */
68: extern void dogre(Parsetype, char*, char*, unsigned char*, PROCFN*, void**, RDFN*, MATCHFN*);
69: extern void dofgrep(char*, char*, unsigned char*, PROCFN*, void**, RDFN*, MATCHFN*);
70: extern re_re *egprep(enum Parsetype, unsigned char*, unsigned char*, unsigned char*, int);
71: extern int greprd(char**, char**);
72: extern int grepmatch(char**, char**); /* normal arguments to *find */
73: extern void inc(char*, char*);
74: extern void inc_m(char*, char*); /* increments nmatch */
75: extern void null(char*, char*); /* does nothing */
76: extern void oneshot(char*, char*); /* increments nmatch, does the longjmp */
77: extern void pr(char*, char*);
78: extern void pr_m(char*, char*);
79: extern int re_lit(re_re*, unsigned char**, unsigned char**);
80:
81: EXTERN SUCCFN succfn, failfn, succ2fn;
82: EXTERN re_re *globre; /* the current re */
83:
84: #define MAXLINE 65536
85:
86: #ifdef c_plusplus
87: #define UNUSED
88: #define UNUSED2
89: #else
90: #ifdef __cplusplus
91: #define UNUSED
92: #define UNUSED2
93: #else
94: #define UNUSED unused
95: #define UNUSED2 unused2
96: #endif
97: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.