diff options
| author | John Schmidt <john.schmidt.h@gmail.com> | 2014-03-27 18:53:20 +0100 | 
|---|---|---|
| committer | Thiago de Arruda <tpadilha84@gmail.com> | 2014-03-29 13:29:53 -0300 | 
| commit | 44e40b02cf53c95ab248b98df44ec3dd836bb4b5 (patch) | |
| tree | 310e8a4957d70a1ba841e82cdb33d374c75028d6 /src/garray.c | |
| parent | f5154d7451c09b39ea6944795c59f86aaad393e0 (diff) | |
| download | rneovim-44e40b02cf53c95ab248b98df44ec3dd836bb4b5.tar.gz rneovim-44e40b02cf53c95ab248b98df44ec3dd836bb4b5.tar.bz2 rneovim-44e40b02cf53c95ab248b98df44ec3dd836bb4b5.zip | |
Move remove_duplicates to garray.c
Diffstat (limited to 'src/garray.c')
| -rw-r--r-- | src/garray.c | 21 | 
1 files changed, 21 insertions, 0 deletions
| diff --git a/src/garray.c b/src/garray.c index aba4d5649f..8bf2b7477e 100644 --- a/src/garray.c +++ b/src/garray.c @@ -7,6 +7,7 @@  #include "vim.h"  #include "ascii.h"  #include "misc2.h" +#include "path.h"  #include "garray.h"  // #include "globals.h" @@ -86,6 +87,26 @@ int ga_grow(garray_T *gap, int n)    return OK;  } +/// Sort "gap" and remove duplicate entries.  "gap" is expected to contain a +/// list of file names in allocated memory. +/// +/// @param gap +void ga_remove_duplicate_strings(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; +    } +} +  /// For a growing array that contains a list of strings: concatenate all the  /// strings with a separating comma.  /// | 
