home *** CD-ROM | disk | FTP | other *** search
- #include "include.h"
- #include "extern.h"
-
- char *
- getline(str,fp)
- char *str;
- FILE *fp;
- {
- /* get a line from a file. */
- /* skip over blank lines */
- char *tmp;
- char *fgets();
-
- do {
- tmp = fgets(str,256,fp);
- }
- while((tmp) && (*tmp != EOF) && (*tmp == '\n'));
-
- if(tmp)
- if(*tmp)
- str[strlen(str)-1] = 0;
- return(tmp);
- }
-
- liststr(title, str)
- char *title, *str;
- {
- printf("%s",title);
- printf("%s\n",str);
- }
-
- prspaces(n)
- int n;
- {
- for(;n;n--)
- printf(" ");
- }
-
- searchfor(num)
- float num;
- {
- int done;
- int entrynum = -1;
- int found = 0;
- register int i;
-
- curr = head;
- printf("Found matches in Entries:");
- while(curr != NULL) {
- done = 0;
- entrynum++;
- for(i = 0;((i < MAXNUMKEYS) && (!done)); i++) {
- if(curr -> keys[i] == 0.0)
- done = 1;
- else
- if(num == curr -> keys[i]) {
- printf("%d ", entrynum);
- found = 1;
- done = 1;
- }
- }
- curr = curr -> next;
- }
- if(!found)
- printf("None.");
- printf("\n");
- }
-
- listkeys()
- {
- key_struct *key;
- char str[256], out[256];
- int area1, area2;
-
- area1 = area2 = 0;
- for(key = keywords;(key -> num != 0.0); key++) {
- pad(str, key -> title, longest);
- sprintf(out,"%2.2f %s %s\n",key -> num, str, key -> description);
- sscanf(out,"%d",&area2);
- if(area1 == area2)
- printf(" ");
- else
- area1 = area2;
- printf("%s",out);
- }
- }
-
-
- listint(tmp)
- entry *tmp;
- {
- key_struct *key;
- register int i;
- int done, len = 0;
- char str[80];
-
- for(key = keywords;(key -> num != 0.0); key++) {
- done = 0;
- for(i = 0;((i < tmp -> numkeys) && (!done)); i++) {
- if(tmp -> keys[i] == 0.0)
- done = 1;
- else
- if(key -> num == tmp -> keys[i]) {
- sprintf(str,"%.2f %-25s ", key -> num, key -> title);
- len += 25;
- str[25] = 0;
- if(len > 80) {
- printf("\n%s",str);
- len = strlen(str);
- }
- else
- printf("%s",str);
- }
- }
- }
- printf("\n");
- }
-
- /* ---------------------------------------------------------------------- */
- /* returns true if the entire string passed is a number */
- isanumber(str)
- char *str;
- {
- char *c;
-
- c = str;
- while(*c) {
- if(!isdigit(*c))
- return(0);
- c++;
- }
- return(1);
- }
-
- pad(str1, str2, len)
- char *str1, *str2;
- int len;
- {
- register int i;
-
- for(i = 0; (i < strlen(str2)) && (i < len); i++)
- str1[i] = str2[i];
-
- for(;i<len;i++)
- str1[i] = ' ';
-
- str1[i] = 0;
- }
-
-