- if(!plen || !strncmp(pattern, i->text, plen)) {
- if(!j)
- item = i;
- else
- j->right = i;
- i->left = j;
- i->right = NULL;
- j = i;
- nitem++;
- }
- for(i = allitems; i; i=i->next)
- if(plen && strncmp(pattern, i->text, plen)
- && strstr(i->text, pattern)) {
- if(!j)
- item = i;
- else
- j->right = i;
- i->left = j;
- i->right = NULL;
- j = i;
- nitem++;
- }
- for(i = allitems; i; i=i->next)
- if(plen && strncmp(pattern, i->text, plen)
- && !strstr(i->text, pattern)
- && strido(i->text,pattern)) {
- if(!j)
- item = i;
- else
- j->right = i;
- i->left = j;
- i->right = NULL;
- j = i;
- nitem++;
- }
+ i->matched = False;
+
+ for(i = allitems; i; i = i->next)
+ if(!i->matched && !strncasecmp(pattern, i->text, plen))
+ j = appenditem(i,j);
+
+ for (i = allitems; i; i = i->next)
+ if(!i->matched && strcasestr(i->text, pattern))
+ j = appenditem(i, j);
+
+ if(idomatch)
+ for (i = allitems; i; i = i->next)
+ if(!i->matched && strcaseido(i->text, pattern))
+ j = appenditem(i, j);
+