diff src/scriptfile.c @ 17978:8f4cc259ed7a v8.1.1985

patch 8.1.1985: code for dealing with paths is spread out Commit: https://github.com/vim/vim/commit/26262f87770d3a1a68b09a70152d75c2e2ae186f Author: Bram Moolenaar <Bram@vim.org> Date: Wed Sep 4 20:59:15 2019 +0200 patch 8.1.1985: code for dealing with paths is spread out Problem: Code for dealing with paths is spread out. Solution: Move path related functions from misc1.c to filepath.c. Remove NO_EXPANDPATH.
author Bram Moolenaar <Bram@vim.org>
date Wed, 04 Sep 2019 21:00:04 +0200
parents 4d63d47d87ef
children a6d218f99ff7
line wrap: on
line diff
--- a/src/scriptfile.c
+++ b/src/scriptfile.c
@@ -606,6 +606,28 @@ ex_packadd(exarg_T *eap)
 #endif
 
 /*
+ * Sort "gap" and remove duplicate entries.  "gap" is expected to contain a
+ * list of file names in allocated memory.
+ */
+    void
+remove_duplicates(garray_T *gap)
+{
+    int	    i;
+    int	    j;
+    char_u  **fnames = (char_u **)gap->ga_data;
+
+    sort_strings(fnames, gap->ga_len);
+    for (i = gap->ga_len - 1; i > 0; --i)
+	if (fnamecmp(fnames[i - 1], fnames[i]) == 0)
+	{
+	    vim_free(fnames[i]);
+	    for (j = i + 1; j < gap->ga_len; ++j)
+		fnames[j - 1] = fnames[j];
+	    --gap->ga_len;
+	}
+}
+
+/*
  * Expand color scheme, compiler or filetype names.
  * Search from 'runtimepath':
  *   'runtimepath'/{dirnames}/{pat}.vim