diff options
author | Jan Edmund Lazo <jan.lazo@mail.utoronto.ca> | 2021-05-09 17:08:21 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-05-09 17:08:21 -0400 |
commit | d2be261e8d1bcf165346255ae701564a5f62bf7d (patch) | |
tree | 470c5fb8f4e57098295e87f0df318f729569dd83 /src/nvim/eval/funcs.c | |
parent | f8173df4d7ecec239629921736340d3f4d1dcfd4 (diff) | |
parent | eef5a627bfc4341fdd6f12ea5932d11b12fbf2c0 (diff) | |
download | rneovim-d2be261e8d1bcf165346255ae701564a5f62bf7d.tar.gz rneovim-d2be261e8d1bcf165346255ae701564a5f62bf7d.tar.bz2 rneovim-d2be261e8d1bcf165346255ae701564a5f62bf7d.zip |
Merge pull request #14403 from seandewar/vim-8.2.1933
vim-patch:8.2.{0174,1933,1935,1946,2286,2287}
Diffstat (limited to 'src/nvim/eval/funcs.c')
-rw-r--r-- | src/nvim/eval/funcs.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/nvim/eval/funcs.c b/src/nvim/eval/funcs.c index 865abcc110..911b3c2c2f 100644 --- a/src/nvim/eval/funcs.c +++ b/src/nvim/eval/funcs.c @@ -9154,6 +9154,7 @@ static void f_sockconnect(typval_T *argvars, typval_T *rettv, FunPtr fptr) /// struct storing information about current sort typedef struct { int item_compare_ic; + bool item_compare_lc; bool item_compare_numeric; bool item_compare_numbers; bool item_compare_float; @@ -9228,10 +9229,10 @@ static int item_compare(const void *s1, const void *s2, bool keep_zero) p2 = ""; } if (!sortinfo->item_compare_numeric) { - if (sortinfo->item_compare_ic) { - res = STRICMP(p1, p2); + if (sortinfo->item_compare_lc) { + res = strcoll(p1, p2); } else { - res = STRCMP(p1, p2); + res = sortinfo->item_compare_ic ? STRICMP(p1, p2): STRCMP(p1, p2); } } else { double n1, n2; @@ -9366,6 +9367,7 @@ static void do_sort_uniq(typval_T *argvars, typval_T *rettv, bool sort) } info.item_compare_ic = false; + info.item_compare_lc = false; info.item_compare_numeric = false; info.item_compare_numbers = false; info.item_compare_float = false; @@ -9410,6 +9412,9 @@ static void do_sort_uniq(typval_T *argvars, typval_T *rettv, bool sort) } else if (strcmp(info.item_compare_func, "i") == 0) { info.item_compare_func = NULL; info.item_compare_ic = true; + } else if (strcmp(info.item_compare_func, "l") == 0) { + info.item_compare_func = NULL; + info.item_compare_lc = true; } } } |