xref: /vim-8.2.3635/src/if_cscope.h (revision cf2d8dee)
1 /* vi:set ts=8 sts=4 sw=4:
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  * s 0name	Find this C symbol
29  * g 1name	Find this definition
30  * d 2name	Find functions called by this function
31  * c 3name	Find functions calling this function
32  * t 4string	find text string (cscope 12.9)
33  * t 4name	Find assignments to (cscope 13.3)
34  *   5pattern	change pattern -- NOT USED
35  * e 6pattern	Find this egrep pattern
36  * f 7name	Find this file
37  * i 8name	Find files #including this file
38  */
39 
40 typedef struct {
41     char *  name;
42     int     (*func)(exarg_T *eap);
43     char *  help;
44     char *  usage;
45     int	    cansplit;		/* if supports splitting window */
46 } cscmd_T;
47 
48 typedef struct csi {
49     char *	    fname;	/* cscope db name */
50     char *	    ppath;	/* path to prepend (the -P option) */
51     char *	    flags;	/* additional cscope flags/options (e.g, -p2) */
52 #if defined(UNIX)
53     pid_t	    pid;	/* PID of the connected cscope process. */
54     dev_t	    st_dev;	/* ID of dev containing cscope db */
55     ino_t	    st_ino;	/* inode number of cscope db */
56 #else
57 # if defined(WIN32)
58     DWORD	    pid;	/* PID of the connected cscope process. */
59     HANDLE	    hProc;	/* cscope process handle */
60     DWORD	    nVolume;	/* Volume serial number, instead of st_dev */
61     DWORD	    nIndexHigh;	/* st_ino has no meaning in the Windows */
62     DWORD	    nIndexLow;
63 # endif
64 #endif
65 
66     FILE *	    fr_fp;	/* from cscope: FILE. */
67     FILE *	    to_fp;	/* to cscope: FILE. */
68 } csinfo_T;
69 
70 typedef enum { Add, Find, Help, Kill, Reset, Show } csid_e;
71 
72 typedef enum {
73     Store,
74     Get,
75     Free,
76     Print
77 } mcmd_e;
78 
79 
80 #endif	/* FEAT_CSCOPE */
81 
82 /* the end */
83