- int count;
- int qcmp();
-
- if (version == SMS_VERSION_1) {
- count = QueryCount1;
- if (squeries1 == (struct query **)0) {
- sq = (struct query **)malloc(count * sizeof (struct query *));
- squeries1 = sq;
- q = Queries1;
- for (i = count; --i >= 0; )
- *sq++ = q++;
- qsort(squeries1, count, sizeof (struct query *), qcmp);
- }
- sq = squeries1;
- } else {
- count = QueryCount2;
- if (squeries2 == (struct query **)0) {
- sq = (struct query **)malloc(count * sizeof (struct query *));
- squeries2 = sq;
- q = Queries2;
- for (i = count; --i >= 0; )
- *sq++ = q++;
- qsort(squeries2, count, sizeof (struct query *), qcmp);
- }
- sq = squeries2;
- }
+ int i;
+
+ squeries = sq = xmalloc(QueryCount * sizeof(struct query *));
+ q = Queries;
+ for (i = 0; i < QueryCount; i++)
+ {
+ if (q->version > cl->version)
+ {
+ q++;
+ continue;
+ }
+ if (i > 0 && strcmp((*sq)->name, q->name))
+ sq++;
+ *sq = q++;
+ }
+ qcount = (sq - squeries) + 1;
+ qsort(squeries, qcount, sizeof(struct query *), qcmp);
+
+ sq = squeries;