home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 391.lha / AmigaUser / src / util.c < prev   
C/C++ Source or Header  |  1990-07-06  |  2KB  |  150 lines

  1. #include "include.h"
  2. #include "extern.h"
  3.  
  4. char *
  5. getline(str,fp)
  6. char *str;
  7. FILE *fp;
  8. {
  9.  /* get a line from a file. */
  10.  /* skip over blank lines   */
  11.  char *tmp;
  12.  char *fgets();
  13.  
  14.  do {
  15.    tmp = fgets(str,256,fp);
  16.  }
  17.  while((tmp) && (*tmp != EOF) && (*tmp == '\n'));
  18.  
  19.  if(tmp)
  20.    if(*tmp)
  21.      str[strlen(str)-1] = 0;
  22.  return(tmp);
  23. }
  24.  
  25. liststr(title, str)
  26. char *title, *str;
  27. {
  28.  printf("%s",title);
  29.  printf("%s\n",str);
  30. }
  31.  
  32. prspaces(n)
  33. int n;
  34. {
  35.  for(;n;n--)
  36.    printf(" ");
  37. }
  38.  
  39. searchfor(num)
  40. float num;
  41. {
  42.  int done;
  43.  int entrynum = -1;
  44.  int found = 0;
  45.  register int i;
  46.  
  47.  curr = head;
  48.  printf("Found matches in Entries:");
  49.  while(curr != NULL) {
  50.    done = 0;
  51.    entrynum++;
  52.    for(i = 0;((i < MAXNUMKEYS) && (!done)); i++) {
  53.      if(curr -> keys[i] == 0.0)
  54.        done = 1;
  55.      else
  56.       if(num == curr -> keys[i]) {
  57.         printf("%d ", entrynum);
  58.         found = 1;
  59.     done = 1;
  60.       }
  61.    }
  62.    curr = curr -> next;
  63.  }
  64.  if(!found)
  65.    printf("None.");
  66.  printf("\n");
  67. }
  68.  
  69. listkeys()
  70. {
  71.  key_struct *key;
  72.  char str[256], out[256];
  73.  int area1, area2;
  74.  
  75.  area1 = area2 = 0;
  76.  for(key = keywords;(key -> num != 0.0); key++) {
  77.    pad(str, key -> title, longest);
  78.    sprintf(out,"%2.2f %s   %s\n",key -> num, str, key -> description);
  79.    sscanf(out,"%d",&area2);
  80.    if(area1 == area2)
  81.      printf("   ");
  82.    else
  83.      area1 = area2;
  84.    printf("%s",out);
  85.  }
  86. }
  87.  
  88.  
  89. listint(tmp)
  90. entry *tmp;
  91. {
  92.  key_struct *key;
  93.  register int i;
  94.  int done, len = 0;
  95.  char str[80];
  96.  
  97.  for(key = keywords;(key -> num != 0.0); key++) {
  98.    done = 0;
  99.    for(i = 0;((i < tmp -> numkeys) && (!done)); i++) {
  100.      if(tmp -> keys[i] == 0.0)
  101.        done = 1;
  102.      else
  103.      if(key -> num == tmp -> keys[i]) {
  104.        sprintf(str,"%.2f %-25s  ", key -> num, key -> title);
  105.        len += 25;
  106.        str[25] = 0;
  107.        if(len > 80) {
  108.          printf("\n%s",str);
  109.          len = strlen(str);
  110.        }
  111.        else
  112.          printf("%s",str);
  113.      }
  114.    }
  115.  }
  116.  printf("\n");
  117. }
  118.  
  119. /* ---------------------------------------------------------------------- */
  120. /* returns true if the entire string passed is a number */
  121. isanumber(str)
  122. char *str;
  123. {
  124.  char *c;
  125.  
  126.  c = str;
  127.  while(*c) {
  128.    if(!isdigit(*c)) 
  129.      return(0);
  130.    c++;
  131.  }
  132.  return(1);
  133. }
  134.  
  135. pad(str1, str2, len)
  136. char *str1, *str2;
  137. int len;
  138. {
  139.  register int i;
  140.  
  141.  for(i = 0; (i < strlen(str2)) && (i < len); i++)
  142.    str1[i] = str2[i];
  143.  
  144.  for(;i<len;i++)
  145.    str1[i] = ' ';
  146.  
  147.  str1[i] = 0;
  148. }
  149.  
  150.