Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

file 87 lines (74 sloc) 2.393 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
/* vi:set ts=8 sts=4 sw=4:
*
* CSCOPE support for Vim added by Andy Kahn <kahn@zk3.dec.com>
* Ported to Win32 by Sergey Khorev <sergey.khorev@gmail.com>
*
* The basic idea/structure of cscope for Vim was borrowed from Nvi.
* There might be a few lines of code that look similar to what Nvi
* has. If this is a problem and requires inclusion of the annoying
* BSD license, then sue me; I'm not worth much anyway.
*/

#if defined(FEAT_CSCOPE) || defined(PROTO)

#if defined(UNIX)
# include <sys/types.h> /* pid_t */
# include <sys/stat.h> /* dev_t, ino_t */
#else
# if defined (WIN32)
# ifndef WIN32_LEAN_AND_MEAN
# define WIN32_LEAN_AND_MEAN
# endif
# include <windows.h>
# endif
#endif

#define CSCOPE_SUCCESS 0
#define CSCOPE_FAILURE -1

#define CSCOPE_DBFILE "cscope.out"
#define CSCOPE_PROMPT ">> "

/*
* s 0name Find this C symbol
* g 1name Find this definition
* d 2name Find functions called by this function
* c 3name Find functions calling this function
* t 4string find text string (cscope 12.9)
* t 4name Find assignments to (cscope 13.3)
* 5pattern change pattern -- NOT USED
* e 6pattern Find this egrep pattern
* f 7name Find this file
* i 8name Find files #including this file
*/

typedef struct {
    char * name;
    int (*func) __ARGS((exarg_T *eap));
    char * help;
    char * usage;
    int cansplit; /* if supports splitting window */
} cscmd_T;

typedef struct csi {
    char * fname; /* cscope db name */
    char * ppath; /* path to prepend (the -P option) */
    char * flags; /* additional cscope flags/options (e.g, -p2) */
#if defined(UNIX)
    pid_t pid; /* PID of the connected cscope process. */
    dev_t st_dev; /* ID of dev containing cscope db */
    ino_t st_ino; /* inode number of cscope db */
#else
# if defined(WIN32)
    DWORD pid; /* PID of the connected cscope process. */
    HANDLE hProc; /* cscope process handle */
    DWORD nVolume; /* Volume serial number, instead of st_dev */
    DWORD nIndexHigh; /* st_ino has no meaning in the Windows */
    DWORD nIndexLow;
# endif
#endif

    FILE * fr_fp; /* from cscope: FILE. */
    FILE * to_fp; /* to cscope: FILE. */
} csinfo_T;

typedef enum { Add, Find, Help, Kill, Reset, Show } csid_e;

typedef enum {
    Store,
    Get,
    Free,
    Print
} mcmd_e;


#endif /* FEAT_CSCOPE */

/* the end */
Something went wrong with that request. Please try again.