home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / unix / volume26 / mytinfo / part01 / mkcapsort.c < prev    next >
C/C++ Source or Header  |  1992-12-26  |  4KB  |  135 lines

  1. /*
  2.  * mkcapsort.c
  3.  *
  4.  * By Ross Ridge
  5.  * Public Domain
  6.  * 92/06/04 11:38:02
  7.  *
  8.  * mkcapsort
  9.  *
  10.  * make the sorted lists of pointers to strins
  11.  *
  12.  */
  13.  
  14. #define NOTLIB
  15. #include "defs.h"
  16. #include "term.h"
  17.  
  18. #ifdef USE_MYQSORT
  19. #include "qsort.c"
  20. #endif
  21.  
  22. static const char SCCSid[] = "@(#) mytinfo mkcapsort.c 3.3 92/06/04 public domain, By Ross Ridge";
  23.  
  24. char **sboolnames[NUM_OF_BOOLS], **sboolcodes[NUM_OF_BOOLS], **sboolfnames[NUM_OF_BOOLS];
  25. char **snumnames[NUM_OF_NUMS], **snumcodes[NUM_OF_NUMS], **snumfnames[NUM_OF_NUMS];
  26. char **sstrnames[NUM_OF_STRS], **sstrcodes[NUM_OF_STRS], **sstrfnames[NUM_OF_STRS];
  27.  
  28.  
  29. int
  30. main() {
  31.     register int i;
  32.     
  33.     i = NUM_OF_BOOLS;
  34.     while(i) {
  35.         i--;
  36.         sboolnames[i] = &boolnames[i];
  37.         sboolcodes[i] = &boolcodes[i];
  38.         sboolfnames[i] = &boolfnames[i];
  39.     }
  40.     
  41.     i = NUM_OF_NUMS;
  42.     while(i) {
  43.         i--;
  44.         snumnames[i] = &numnames[i];
  45.         snumcodes[i] = &numcodes[i];
  46.         snumfnames[i] = &numfnames[i];
  47.     }
  48.  
  49.     i = NUM_OF_STRS;
  50.     while(i) {
  51.         i--;
  52.         sstrnames[i] = &strnames[i];
  53.         sstrcodes[i] = &strcodes[i];
  54.         sstrfnames[i] = &strfnames[i];
  55.     }
  56.  
  57.     qsort((anyptr) sboolnames, NUM_OF_BOOLS, sizeof(*sboolnames), _compar);
  58.     qsort((anyptr) sboolcodes, NUM_OF_BOOLS, sizeof(*sboolcodes), _compar);
  59.     qsort((anyptr) sboolfnames, NUM_OF_BOOLS, sizeof(*sboolfnames),_compar);
  60.     qsort((anyptr) snumnames, NUM_OF_NUMS, sizeof(*snumnames), _compar);
  61.     qsort((anyptr) snumcodes, NUM_OF_NUMS, sizeof(*snumcodes), _compar);
  62.     qsort((anyptr) snumfnames, NUM_OF_NUMS, sizeof(*snumfnames), _compar);
  63.     qsort((anyptr) sstrnames, NUM_OF_STRS, sizeof(*sstrnames), _compar);
  64.     qsort((anyptr) sstrcodes, NUM_OF_STRS, sizeof(*sstrcodes), _compar);
  65.     qsort((anyptr) sstrfnames, NUM_OF_STRS, sizeof(*sstrfnames), _compar);
  66.  
  67.     printf("/*\n");
  68.     printf(" * capsort.c\n");
  69.     printf(" *\n");
  70.     printf(" * This file was generated automatically.\n");
  71.     printf(" *\n");
  72.     printf(" */\n\n");
  73.  
  74.     puts("extern char *boolnames[], *boolcodes[], *boolfnames[];");
  75.     puts("extern char *numnames[], *numcodes[], *numfnames[];");
  76.     puts("extern char *strnames[], *strcodes[], *strfnames[];");
  77.     putchar('\n');
  78.  
  79.     printf("char **_sboolnames[] = {\n");
  80.     for(i = 0; i < NUM_OF_BOOLS; i++)
  81.         printf("\tboolnames + %d,\n", sboolnames[i] - boolnames);
  82.     printf("    (char **) 0\n");
  83.     printf("};\n\n");
  84.  
  85.     printf("char **_sboolcodes[] = {\n");
  86.     for(i = 0; i < NUM_OF_BOOLS; i++)
  87.         printf("\tboolcodes + %d,\n", sboolcodes[i] - boolcodes);
  88.     printf("    (char **) 0\n");
  89.     printf("};\n\n");
  90.  
  91.     printf("char **_sboolfnames[] = {\n");
  92.     for(i = 0; i < NUM_OF_BOOLS; i++)
  93.         printf("\tboolfnames + %d,\n", sboolfnames[i] - boolfnames);
  94.     printf("    (char **) 0\n");
  95.     printf("};\n\n");
  96.  
  97.     printf("char **_snumnames[] = {\n");
  98.     for(i = 0; i < NUM_OF_NUMS; i++)
  99.         printf("\tnumnames + %d,\n", snumnames[i] - numnames);
  100.     printf("    (char **) 0\n");
  101.     printf("};\n\n");
  102.  
  103.     printf("char **_snumcodes[] = {\n");
  104.     for(i = 0; i < NUM_OF_NUMS; i++)
  105.         printf("\tnumcodes + %d,\n", snumcodes[i] - numcodes);
  106.     printf("    (char **) 0\n");
  107.     printf("};\n\n");
  108.  
  109.     printf("char **_snumfnames[] = {\n");
  110.     for(i = 0; i < NUM_OF_NUMS; i++)
  111.         printf("\tnumfnames + %d,\n", snumfnames[i] - numfnames);
  112.     printf("    (char **) 0\n");
  113.     printf("};\n\n");
  114.  
  115.     printf("char **_sstrnames[] = {\n");
  116.     for(i = 0; i < NUM_OF_STRS; i++)
  117.         printf("\tstrnames + %d,\n", sstrnames[i] - strnames);
  118.     printf("    (char **) 0\n");
  119.     printf("};\n\n");
  120.  
  121.     printf("char **_sstrcodes[] = {\n");
  122.     for(i = 0; i < NUM_OF_STRS; i++) 
  123.         printf("\tstrcodes + %d,\n", sstrcodes[i] - strcodes);
  124.     printf("    (char **) 0\n");
  125.     printf("};\n\n");
  126.  
  127.     printf("char **_sstrfnames[] = {\n");
  128.     for(i = 0; i < NUM_OF_STRS; i++)
  129.         printf("\tstrfnames + %d,\n", sstrfnames[i] - strfnames);
  130.     printf("    (char **) 0\n");
  131.     printf("};\n\n");
  132.  
  133.     return 0;
  134. }
  135.