aboutsummaryrefslogtreecommitdiff
path: root/src/path.c
diff options
context:
space:
mode:
authorJohn Schmidt <john.schmidt.h@gmail.com>2014-03-31 00:39:52 +0200
committerThiago de Arruda <tpadilha84@gmail.com>2014-04-01 08:08:07 -0300
commit2a6df95fb533fd451b9b13ec15ae8c1437e048ca (patch)
tree63bc4591a4be6e9846a04e6c9530216544b668a3 /src/path.c
parente29e9563480946e13252f5aea6a9d137c9483a61 (diff)
downloadrneovim-2a6df95fb533fd451b9b13ec15ae8c1437e048ca.tar.gz
rneovim-2a6df95fb533fd451b9b13ec15ae8c1437e048ca.tar.bz2
rneovim-2a6df95fb533fd451b9b13ec15ae8c1437e048ca.zip
Move same_directory from misc2.c
Diffstat (limited to 'src/path.c')
-rw-r--r--src/path.c21
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;
+}
+