mirror of
https://github.com/neovim/neovim.git
synced 2025-09-13 06:48:17 +00:00
Move fix_fname from buffer.c
This commit is contained in:

committed by
Thiago de Arruda

parent
7052b85192
commit
2cb026c65c
42
src/buffer.c
42
src/buffer.c
@@ -3620,48 +3620,6 @@ append_arg_number (
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/*
|
||||
* If fname is not a full path, make it a full path.
|
||||
* Returns pointer to allocated memory (NULL for failure).
|
||||
*/
|
||||
char_u *fix_fname(char_u *fname)
|
||||
{
|
||||
/*
|
||||
* Force expanding the path always for Unix, because symbolic links may
|
||||
* mess up the full path name, even though it starts with a '/'.
|
||||
* Also expand when there is ".." in the file name, try to remove it,
|
||||
* because "c:/src/../README" is equal to "c:/README".
|
||||
* Similarly "c:/src//file" is equal to "c:/src/file".
|
||||
* For MS-Windows also expand names like "longna~1" to "longname".
|
||||
*/
|
||||
#ifdef UNIX
|
||||
return FullName_save(fname, TRUE);
|
||||
#else
|
||||
if (!vim_isAbsName(fname)
|
||||
|| strstr((char *)fname, "..") != NULL
|
||||
|| strstr((char *)fname, "//") != NULL
|
||||
# ifdef BACKSLASH_IN_FILENAME
|
||||
|| strstr((char *)fname, "\\\\") != NULL
|
||||
# endif
|
||||
)
|
||||
return FullName_save(fname, FALSE);
|
||||
|
||||
fname = vim_strsave(fname);
|
||||
|
||||
# ifdef USE_FNAME_CASE
|
||||
# ifdef USE_LONG_FNAME
|
||||
if (USE_LONG_FNAME)
|
||||
# endif
|
||||
{
|
||||
if (fname != NULL)
|
||||
fname_case(fname, 0); /* set correct case for file name */
|
||||
}
|
||||
# endif
|
||||
|
||||
return fname;
|
||||
#endif
|
||||
}
|
||||
|
||||
/*
|
||||
* Make "ffname" a full file name, set "sfname" to "ffname" if not NULL.
|
||||
* "ffname" becomes a pointer to allocated memory (or NULL).
|
||||
|
Reference in New Issue
Block a user