#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);
 }
}