pr24883.c   [plain text]


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;
         }
      }
   }
}