8990 /opt/onbld/gk is useless
[unleashed.git] / usr / src / tools / cscope-fast / global.h
blobda99f16ad03fdb6fe078393d5d2a7eee10f24812
1 /*
2 * CDDL HEADER START
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License (the "License").
6 * You may not use this file except in compliance with the License.
8 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
9 * or http://www.opensolaris.org/os/licensing.
10 * See the License for the specific language governing permissions
11 * and limitations under the License.
13 * When distributing Covered Code, include this CDDL HEADER in each
14 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
15 * If applicable, add the following below this CDDL HEADER, with the
16 * fields enclosed by brackets "[]" replaced with your own identifying
17 * information: Portions Copyright [yyyy] [name of copyright owner]
19 * CDDL HEADER END
23 * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
26 /* Copyright (c) 1988 AT&T */
27 /* All Rights Reserved */
30 * cscope - interactive C symbol cross-reference
32 * global type, data, and function definitions
35 #include <ctype.h> /* isalpha, isdigit, etc. */
36 #include <signal.h> /* SIGINT and SIGQUIT */
37 #include <stdio.h> /* standard I/O package */
38 #include <sys/types.h>
39 #include "constants.h" /* misc. constants */
40 #include "invlib.h" /* inverted index library */
41 #include "library.h" /* library function return values */
42 #include "mouse.h" /* mouse interface */
43 #define SIGTYPE void
45 typedef enum { /* boolean data type */
46 NO,
47 YES
48 } BOOL;
50 typedef enum { /* findinit return code */
51 NOERROR,
52 NOTSYMBOL,
53 REGCMPERROR
54 } FINDINIT;
56 typedef struct history { /* command history */
57 int field;
58 char *text;
59 struct history *previous;
60 struct history *next;
61 } HISTORY;
63 typedef enum { /* keyword type */
64 DECL, /* type declaration */
65 FLOW, /* control flow (do, if, for, while, switch, etc.) */
66 MISC /* misc.: sizeof or table placeholder for compression */
67 } KEYWORD;
69 /* digraph data for text compression */
70 extern char dichar1[]; /* 16 most frequent first chars */
71 extern char dichar2[]; /* 8 most frequent second chars */
72 /* using the above as first chars */
73 extern char dicode1[]; /* digraph first character code */
74 extern char dicode2[]; /* digraph second character code */
76 /* main.c global data */
77 extern char *editor, *home, *shell; /* environment variables */
78 extern BOOL compress; /* compress the characters in the crossref */
79 extern int cscopedepth; /* cscope invocation nesting depth */
80 extern char currentdir[]; /* current directory */
81 extern BOOL dbtruncated; /* database symbols are truncated to 8 chars */
82 extern char **dbvpdirs; /* directories (including current) in */
83 /* database view path */
84 extern int dbvpndirs; /* number of directories in database */
85 /* view path */
86 extern int dispcomponents; /* file path components to display */
87 extern BOOL editallprompt; /* prompt between editing files */
88 extern int fileargc; /* file argument count */
89 extern char **fileargv; /* file argument values */
90 extern int fileversion; /* cross-reference file version */
91 extern BOOL incurses; /* in curses */
92 extern INVCONTROL invcontrol; /* inverted file control structure */
93 extern BOOL invertedindex; /* the database has an inverted index */
94 extern BOOL isuptodate; /* consider the crossref up-to-date */
95 extern BOOL linemode; /* use line oriented user interface */
96 extern char *namefile; /* file of file names */
97 extern char *newreffile; /* new cross-reference file name */
98 extern FILE *newrefs; /* new cross-reference */
99 extern BOOL noacttimeout; /* no activity timeout occurred */
100 extern BOOL ogs; /* display OGS book and subsystem names */
101 extern FILE *postings; /* new inverted index postings */
102 extern char *prependpath; /* prepend path to file names */
103 extern BOOL returnrequired; /* RETURN required after selection number */
104 extern int symrefs; /* cross-reference file */
105 extern char temp1[]; /* temporary file name */
106 extern char temp2[]; /* temporary file name */
107 extern long totalterms; /* total inverted index terms */
108 extern BOOL truncatesyms; /* truncate symbols to 8 characters */
110 /* command.c global data */
111 extern BOOL caseless; /* ignore letter case when searching */
112 extern BOOL *change; /* change this line */
113 extern BOOL changing; /* changing text */
114 extern char newpat[]; /* new pattern */
115 extern char pattern[]; /* symbol or text pattern */
117 /* crossref.c global data */
118 extern long dboffset; /* new database offset */
119 extern BOOL errorsfound; /* prompt before clearing error messages */
120 extern long fileindex; /* source file name index */
121 extern long lineoffset; /* source line database offset */
122 extern long npostings; /* number of postings */
123 extern int symbols; /* number of symbols */
125 /* dir.c global data */
126 extern char **incdirs; /* #include directories */
127 extern char **srcdirs; /* source directories */
128 extern char **srcfiles; /* source files */
129 extern int nincdirs; /* number of #include directories */
130 extern int nsrcdirs; /* number of source directories */
131 extern int nsrcfiles; /* number of source files */
132 extern int msrcfiles; /* maximum number of source files */
134 /* display.c global data */
135 extern int *displine; /* screen line of displayed reference */
136 extern int disprefs; /* displayed references */
137 extern int field; /* input field */
138 extern unsigned fldcolumn; /* input field column */
139 extern int mdisprefs; /* maximum displayed references */
140 extern int selectlen; /* selection number field length */
141 extern int nextline; /* next line to be shown */
142 extern int topline; /* top line of page */
143 extern int bottomline; /* bottom line of page */
144 extern int totallines; /* total reference lines */
145 extern FILE *refsfound; /* references found file */
146 extern FILE *nonglobalrefs; /* non-global references file */
148 /* exec.c global data */
149 extern pid_t childpid; /* child's process ID */
151 /* find.c global data */
152 extern char block[]; /* cross-reference file block */
153 extern int blocklen; /* length of disk block read */
154 extern char blockmark; /* mark character to be searched for */
155 extern long blocknumber; /* block number */
156 extern char *blockp; /* pointer to current character in block */
157 extern char lastfilepath[]; /* last file that full path was computed for */
159 /* lookup.c global data */
160 extern struct keystruct {
161 char *text;
162 char delim;
163 KEYWORD type;
164 struct keystruct *next;
165 } keyword[];
167 /* scanner.l global data */
168 extern int first; /* buffer index for first char of symbol */
169 extern int last; /* buffer index for last char of symbol */
170 extern int lineno; /* symbol line number */
171 extern FILE *yyin; /* input file descriptor */
172 extern int yyleng; /* input line length */
173 extern int yylineno; /* input line number */
174 #if hpux
175 extern unsigned char yytext[]; /* input line text */
176 #else
177 extern char yytext[]; /* input line text */
178 #endif
180 /* vpinit.c global data */
181 extern char *argv0; /* command name */
183 /* cscope functions called from more than one function or between files */
184 /* cgrep.c */
185 void egrepcaseless(int i);
186 char *egrepinit(char *expression);
187 int egrep(char *f, FILE *o, char *fo);
189 /* command.c */
190 BOOL command(int commandc);
191 void clearprompt(void);
192 BOOL readrefs(char *filename);
193 BOOL changestring(void);
194 void mark(int i);
196 /* crossref.c */
197 void crossref(char *srcfile);
198 void savesymbol(int token);
199 void putfilename(char *srcfile);
200 void putposting(char *term, int type);
201 void putstring(char *s);
202 void warning(char *text);
204 /* dir.c */
205 void sourcedir(char *dirlist);
206 void includedir(char *dirlist);
207 void makefilelist(void);
208 void incfile(char *file, int type);
209 BOOL infilelist(char *file);
210 void addsrcfile(char *path);
211 void freefilelist(void);
213 /* display.c */
214 void dispinit(void);
215 void display(void);
216 void setfield(void);
217 void atfield(void);
218 void jumpback(int sig);
219 BOOL search(void);
220 BOOL writerefsfound(void);
221 void countrefs(void);
222 void myperror(char *text);
223 void putmsg(char *msg);
224 void clearmsg2(void);
225 void putmsg2(char *msg);
226 void seekline(int line);
227 void ogsnames(char *file, char **subsystem, char **book);
228 char *pathcomponents(char *path, int components);
229 void strtoupper(char *s);
231 /* edit.c */
232 void editref(int i);
233 void editall(void);
234 void edit(char *file, char *linenum);
236 /* find.c */
237 void findsymbol(void);
238 void finddef(void);
239 void findallfcns(void);
240 void findcalledby(void);
241 void findcalling(void);
242 void findassignments(void);
243 char *findgreppat(void);
244 char *findegreppat(char *egreppat);
245 void findfile(void);
246 void findinclude(void);
247 FINDINIT findinit(void);
248 void findcleanup(void);
249 void initprogress(void);
250 void progress(char *format, long n1, long n2);
251 BOOL match(void);
252 BOOL matchrest(void);
253 void getstring(char *s);
254 char *scanpast(int c);
255 char *readblock(void);
256 long dbseek(long offset);
258 /* help.c */
259 void help(void);
261 /* history.c */
262 void addcmd(int f, char *s);
263 void resetcmd(void);
264 HISTORY *currentcmd(void);
265 HISTORY *prevcmd(void);
266 HISTORY *nextcmd(void);
268 /* input.c */
269 void catchint(int sig);
270 int ungetch(int c);
271 int mygetch(void);
272 int getaline(char s[], size_t size, int firstchar, BOOL iscaseless);
273 void askforchar(void);
274 void askforreturn(void);
275 void shellpath(char *out, int limit, char *in);
277 /* lookup.c */
278 void initsymtab(void);
279 struct keystruct *lookup(char *ident);
280 int hash(char *s);
282 /* main.c */
283 void rebuild(void);
284 void entercurses(void);
285 void exitcurses(void);
286 void myexit(int sig) __NORETURN;
287 void cannotopen(char *file);
288 void cannotwrite(char *file);
290 /* menu.c */
291 void initmenu(void);
293 extern void initscanner(char *srcfile);
294 extern int yylex(void);
295 extern int execute(char *, ...);