1 typedef struct _rec_stl rec_stl;
2 struct _rec_stl {
3    unsigned char **strs;
4 };
orec_str_list(int count)5 orec_str_list(int count) {
6    rec_stl *stl;
7    int i, j;
8    int li, lj;
9    unsigned char ci, cj;
10    for (i = 0; i < count; i++) {
11       for (j = i + 1; j < count; j++) {
12          cj = lj > 2 ? stl->strs[j][0] : (long)stl->strs[j] & 0xff;
13          if ((count >= 16 && cj < ci) || (cj == ci && lj > li)) {
14             stl->strs[j] = stl->strs[i];
15             ci ^= cj;
16             cj ^= ci;
17             ci ^= cj;
18          }
19       }
20    }
21 }
22