xref: /vim-8.2.3635/src/if_cscope.h (revision ba3ff539)
1 /* vi:set ts=8 sts=4 sw=4 noet:
2  *
3  * CSCOPE support for Vim added by Andy Kahn <[email protected]>
4  * Ported to Win32 by Sergey Khorev <[email protected]>
5  *
6  * The basic idea/structure of cscope for Vim was borrowed from Nvi.
7  * There might be a few lines of code that look similar to what Nvi
8  * has.  If this is a problem and requires inclusion of the annoying
9  * BSD license, then sue me; I'm not worth much anyway.
10  */
11 
12 #if defined(FEAT_CSCOPE) || defined(PROTO)
13 
14 #if defined (WIN32)
15 # ifndef WIN32_LEAN_AND_MEAN
16 #  define WIN32_LEAN_AND_MEAN
17 # endif
18 # include <windows.h>
19 #endif
20 
21 #define CSCOPE_SUCCESS		0
22 #define CSCOPE_FAILURE		-1
23 
24 #define	CSCOPE_DBFILE		"cscope.out"
25 #define	CSCOPE_PROMPT		">> "
26 
27 /*
28  * See ":help cscope-find" for the possible queries.
29  */
30 
31 typedef struct {
32     char *  name;
33     int     (*func)(exarg_T *eap);
34     char *  help;
35     char *  usage;
36     int	    cansplit;		/* if supports splitting window */
37 } cscmd_T;
38 
39 typedef struct csi {
40     char *	    fname;	/* cscope db name */
41     char *	    ppath;	/* path to prepend (the -P option) */
42     char *	    flags;	/* additional cscope flags/options (e.g, -p2) */
43 #if defined(UNIX)
44     pid_t	    pid;	/* PID of the connected cscope process. */
45     dev_t	    st_dev;	/* ID of dev containing cscope db */
46     ino_t	    st_ino;	/* inode number of cscope db */
47 #else
48 # if defined(WIN32)
49     DWORD	    pid;	/* PID of the connected cscope process. */
50     HANDLE	    hProc;	/* cscope process handle */
51     DWORD	    nVolume;	/* Volume serial number, instead of st_dev */
52     DWORD	    nIndexHigh;	/* st_ino has no meaning in the Windows */
53     DWORD	    nIndexLow;
54 # endif
55 #endif
56 
57     FILE *	    fr_fp;	/* from cscope: FILE. */
58     FILE *	    to_fp;	/* to cscope: FILE. */
59 } csinfo_T;
60 
61 typedef enum { Add, Find, Help, Kill, Reset, Show } csid_e;
62 
63 typedef enum {
64     Store,
65     Get,
66     Free,
67     Print
68 } mcmd_e;
69 
70 
71 #endif	/* FEAT_CSCOPE */
72 
73 /* the end */
74