- s1 = s->next;
-
- xfree (s->sort_info->all_entries);
- xfree (s->sort_info->entries);
- xfree (s->sort_info);
-
- if (s->nmem)
- nmem_destroy (s->nmem);
- rset_delete (s->rset);
- xfree (s->name);
- xfree (s);
+ int i = -1;
+ ZebraSet s = *ss;
+ if (num >= 0)
+ {
+ for (i = 0; i<num; i++)
+ if (!strcmp (s->name, names[i]))
+ {
+ if (statuses)
+ statuses[i] = Z_DeleteStatus_success;
+ i = -1;
+ break;
+ }
+ }
+ if (i < 0)
+ {
+ *ss = s->next;
+
+ xfree (s->sort_info->all_entries);
+ xfree (s->sort_info->entries);
+ xfree (s->sort_info);
+
+ if (s->nmem)
+ nmem_destroy (s->nmem);
+ rset_delete (s->rset);
+ xfree (s->name);
+ xfree (s);
+ }
+ else
+ ss = &s->next;