| typedef struct _rec_stl rec_stl; | |
| struct _rec_stl { | |
| unsigned char **strs; | |
| }; | |
| orec_str_list(int count) { | |
| rec_stl *stl; | |
| int i, j; | |
| int li, lj; | |
| unsigned char ci, cj; | |
| for (i = 0; i < count; i++) { | |
| for (j = i + 1; j < count; j++) { | |
| cj = lj > 2 ? stl->strs[j][0] : (long)stl->strs[j] & 0xff; | |
| if ((count >= 16 && cj < ci) || (cj == ci && lj > li)) { | |
| stl->strs[j] = stl->strs[i]; | |
| ci ^= cj; | |
| cj ^= ci; | |
| ci ^= cj; | |
| } | |
| } | |
| } | |
| } |