diff --git a/libdispatch/dinfermodel.c b/libdispatch/dinfermodel.c index 882f1771b..218ae6640 100644 --- a/libdispatch/dinfermodel.c +++ b/libdispatch/dinfermodel.c @@ -1187,18 +1187,18 @@ cleancommalist(const char* commalist, int caseinsensitive) static void cleanstringlist(NClist* strs, int caseinsensitive) { - int j; if(nclistlength(strs) == 0) return; /* Remove nulls */ for(size_t i = nclistlength(strs); i-->0;) { if(nclistget(strs,i)==NULL) nclistremove(strs,i); } + if(nclistlength(strs) <= 1) return; /* Remove duplicates*/ for(size_t i=0;ii;j--) { - int match; + /* look ahead for duplicates */ + for(size_t j=nclistlength(strs)-1;j>i;j--) { + int match; const char* candidate = nclistget(strs,j); if(caseinsensitive) match = (strcasecmp(value,candidate) == 0);