diff options
Diffstat (limited to 'src/path.c')
-rw-r--r-- | src/path.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/path.c b/src/path.c index 078c26467a..bfd21b426c 100644 --- a/src/path.c +++ b/src/path.c @@ -1673,3 +1673,24 @@ int after_pathsep(char_u *b, char_u *p) && (!has_mbyte || (*mb_head_off)(b, p - 1) == 0); } +/* + * Return TRUE if file names "f1" and "f2" are in the same directory. + * "f1" may be a short name, "f2" must be a full path. + */ +int same_directory(char_u *f1, char_u *f2) +{ + char_u ffname[MAXPATHL]; + char_u *t1; + char_u *t2; + + /* safety check */ + if (f1 == NULL || f2 == NULL) + return FALSE; + + (void)vim_FullName(f1, ffname, MAXPATHL, FALSE); + t1 = gettail_sep(ffname); + t2 = gettail_sep(f2); + return t1 - ffname == t2 - f2 + && pathcmp((char *)ffname, (char *)f2, (int)(t1 - ffname)) == 0; +} + |