From cab465a6d7a7d158c99b04ddc81650b468d82227 Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 12 Jun 2013 21:25:23 +0200 Subject: updated for version 7.3.1180 Problem: When current directory changes, path from cscope may no longer be valid. (AS Budden) Solution: Always store the absolute path. (Christian Brabandt) --- src/if_cscope.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'src/if_cscope.c') diff --git a/src/if_cscope.c b/src/if_cscope.c index c82448e081..605131156e 100644 --- a/src/if_cscope.c +++ b/src/if_cscope.c @@ -539,12 +539,27 @@ cs_add_common(arg1, arg2, flags) char *fname2 = NULL; char *ppath = NULL; int i; +#ifdef FEAT_MODIFY_FNAME + int len; + int usedlen = 0; + char_u *fbuf = NULL; +#endif /* get the filename (arg1), expand it, and try to stat it */ if ((fname = (char *)alloc(MAXPATHL + 1)) == NULL) goto add_err; expand_env((char_u *)arg1, (char_u *)fname, MAXPATHL); +#ifdef FEAT_MODIFY_FNAME + len = (int)STRLEN(fname); + fbuf = (char_u *)fname; + (void)modify_fname((char_u *)":p", &usedlen, + (char_u **)&fname, &fbuf, &len); + if (fname == NULL) + goto add_err; + fname = (char *)vim_strnsave((char_u *)fname, len); + vim_free(fbuf); +#endif ret = stat(fname, &statbuf); if (ret < 0) { -- cgit v1.2.3