Mercurial > vim
view src/if_cscope.h @ 18945:c62d63d2b9f0 v8.2.0033
patch 8.2.0033: crash when make_extmatch() runs out of memory
Commit: https://github.com/vim/vim/commit/7c77b3496710f1be3232cfdc7f6812347fbd914a
Author: Bram Moolenaar <Bram@vim.org>
Date: Sun Dec 22 19:40:40 2019 +0100
patch 8.2.0033: crash when make_extmatch() runs out of memory
Problem: Crash when make_extmatch() runs out of memory.
Solution: Check for NULL. (Dominique Pelle, closs https://github.com/vim/vim/issues/5392)
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 22 Dec 2019 19:45:03 +0100 |
parents | 6e3dc2d630c2 |
children |
line wrap: on
line source
/* vi:set ts=8 sts=4 sw=4 noet: * * 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 (MSWIN) # ifndef WIN32_LEAN_AND_MEAN # define WIN32_LEAN_AND_MEAN # endif # include <windows.h> #endif #define CSCOPE_SUCCESS 0 #define CSCOPE_FAILURE -1 #define CSCOPE_DBFILE "cscope.out" #define CSCOPE_PROMPT ">> " /* * See ":help cscope-find" for the possible queries. */ typedef struct { char * name; int (*func)(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(MSWIN) 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