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