#include
stdio.h
#define LF 10
#define CR 13
void getword(
char 
word,
char 
line,
char stop) {
int x = 0,y;
for(x=0;((line[x]) && (line[x]

stop));x++)
word[x] = line[x];
word[x] = '

0';
if(line[x]) ++x;
y=0;
while(line[y++] = line[x++]);
}
char 
makeword(
char 
line,
char stop) {
int x = 0,y;
char 
word = (
char 
) malloc(
sizeof(
char)

(strlen(line) + 1));
for(x=0;((line[x]) && (line[x]

stop));x++)
word[x] = line[x];
word[x] = '

0';
if(line[x]) ++x;
y=0;
while(line[y++] = line[x++]);
return word;
}
char 
fmakeword(FILE

f,
char stop,
int 
cl) {
int wsize;
char 
word;
int ll;
wsize = 102400;
ll=0;
word = (
char 
) malloc(
sizeof(
char)

(wsize + 1));
while(1) {
word[ll] = (
char)fgetc(f);
if(ll==wsize) {
word[ll+1] = '

0';
wsize+=102400;
word = (
char 
)realloc(word,
sizeof(
char)

(wsize+1));
}
-(

cl);
if((word[ll] == stop)

(feof(f))

(!(

cl))) {
if(word[ll]

stop) ll++;
word[ll] = '

0';
return word;
}
++ll;
}
}
char x2c(
char 
what) {
register char digit;
digit = (what[0]

'A' ? ((what[0] & 0xdf) - 'A')+10 : (what[0] - '0'));
digit

16;
digit += (what[1]

'A' ? ((what[1] & 0xdf) - 'A')+10 : (what[1] - '0'));
return(digit);
}
void unescape_url(
char 
url) {
register int x,y;
for(x=0,y=0;url[y];++x,++y) {
if((url[x] = url[y]) == '%') {
url[x] = x2c(&url[y+1]);
y+=2;
}
}
url[x] = '

0';
}
void plustospace(
char 
str) {
register int x;
for(x=0;str[x];x++)
if(str[x] == '

') str[x] = ' ';
}
int rind(
char 
s,
char c) {
register int x;
for(x=strlen(s) - 1;x

-1; x-)
if(s[x] == c)
return x;
return -1;
}
int getline(
char 
s,
int n, FILE

f) {
register int i=0;
while(1) {
s[i] = (
char)fgetc(f);
if(s[i] == CR)
s[i] = fgetc(f);
if((s[i] == 0x4)

(s[i] == LF)

(i == (n-1))) {
s[i] = '

0';
return (feof(f) ? 1 : 0);
}
++i;
}
}
void send_fd(FILE

f, FILE

fd)
{
int num_chars=0;
char c;
while (1) {
c = fgetc(f);
if(feof(f))
return;
fputc(c,fd);
}
}