fork for IVI
[profile/ivi/vim.git] / src / if_cscope.h
1 /* vi:set ts=8 sts=4 sw=4:
2  *
3  * CSCOPE support for Vim added by Andy Kahn <kahn@zk3.dec.com>
4  * Ported to Win32 by Sergey Khorev <sergey.khorev@gmail.com>
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(UNIX)
15 # include <sys/types.h>         /* pid_t */
16 # include <sys/stat.h>          /* dev_t, ino_t */
17 #else
18 # if defined (WIN32)
19 #  ifndef WIN32_LEAN_AND_MEAN
20 #   define WIN32_LEAN_AND_MEAN
21 #  endif
22 #  include <windows.h>
23 # endif
24 #endif
25
26 #define CSCOPE_SUCCESS          0
27 #define CSCOPE_FAILURE          -1
28
29 #define CSCOPE_DBFILE           "cscope.out"
30 #define CSCOPE_PROMPT           ">> "
31
32 /*
33  * s 0name      Find this C symbol
34  * g 1name      Find this definition
35  * d 2name      Find functions called by this function
36  * c 3name      Find functions calling this function
37  * t 4string    find text string (cscope 12.9)
38  * t 4name      Find assignments to (cscope 13.3)
39  *   5pattern   change pattern -- NOT USED
40  * e 6pattern   Find this egrep pattern
41  * f 7name      Find this file
42  * i 8name      Find files #including this file
43  */
44
45 typedef struct {
46     char *  name;
47     int     (*func) __ARGS((exarg_T *eap));
48     char *  help;
49     char *  usage;
50     int     cansplit;           /* if supports splitting window */
51 } cscmd_T;
52
53 typedef struct csi {
54     char *          fname;      /* cscope db name */
55     char *          ppath;      /* path to prepend (the -P option) */
56     char *          flags;      /* additional cscope flags/options (e.g, -p2) */
57 #if defined(UNIX)
58     pid_t           pid;        /* PID of the connected cscope process. */
59     dev_t           st_dev;     /* ID of dev containing cscope db */
60     ino_t           st_ino;     /* inode number of cscope db */
61 #else
62 # if defined(WIN32)
63     DWORD           pid;        /* PID of the connected cscope process. */
64     HANDLE          hProc;      /* cscope process handle */
65     DWORD           nVolume;    /* Volume serial number, instead of st_dev */
66     DWORD           nIndexHigh; /* st_ino has no meaning in the Windows */
67     DWORD           nIndexLow;
68 # endif
69 #endif
70
71     FILE *          fr_fp;      /* from cscope: FILE. */
72     FILE *          to_fp;      /* to cscope: FILE. */
73 } csinfo_T;
74
75 typedef enum { Add, Find, Help, Kill, Reset, Show } csid_e;
76
77 typedef enum {
78     Store,
79     Get,
80     Free,
81     Print
82 } mcmd_e;
83
84
85 #endif  /* FEAT_CSCOPE */
86
87 /* the end */