From 26262f87770d3a1a68b09a70152d75c2e2ae186f Mon Sep 17 00:00:00 2001 From: Bram Moolenaar Date: Wed, 4 Sep 2019 20:59:15 +0200 Subject: 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. --- src/scriptfile.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'src/scriptfile.c') diff --git a/src/scriptfile.c b/src/scriptfile.c index ca4abab1a..d46b1e0b7 100644 --- a/src/scriptfile.c +++ b/src/scriptfile.c @@ -605,6 +605,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': -- cgit v1.2.1