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 (MSWIN) 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(MSWIN) 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