void write_file()
{
unsigned char *input,*c_input,*output;
unsigned long *l_input;
unsigned long input_size=25,outlen,cw;//text_len,text_alloc,line_number,page_start,page_pos,page_max
unsigned long i,j,inum=0;
FILE *f;
input_size+=text_len+1;
for(i=0;i<=255;i++)
{
cw=(out_file.images[i].w)>>3;
if((out_file.images[i].w)&7)cw++;
if(out_file.images[i].img!=NULL)
{input_size+=cw*out_file.images[i].h+4+1;inum++;}
}
input=malloc(input_size);
output=malloc(input_size);
c_input=input;
l_input=(long*)input;
*l_input++=text_len;
*l_input++=text_alloc;
*l_input++=line_number;
*l_input++=page_start;
*l_input++=page_pos;
*l_input++=page_max;
c_input=(char*)l_input;
for(i=0;i<=(unsigned long)text_len;i++)
*c_input++=*(text_str+i);
*c_input++=inum;
for(i=0;i<=255;i++)
{
if(out_file.images[i].img!=NULL)
{
cw=(out_file.images[i].w)>>3;
if((out_file.images[i].w)&7)cw++;
*c_input++=i;
*c_input++=(out_file.images[i].w>>8)&0xFF;
*c_input++=(out_file.images[i].w)&0xFF;
*c_input++=(out_file.images[i].h>>8)&0xFF;
*c_input++=(out_file.images[i].h)&0xFF;
for(j=0;j<=cw*out_file.images[i].h;j++)
{
*c_input++=*(out_file.images[i].img+j);
}
}
}
outlen=rle_encode(output,input,input_size);
printf("nvive tarzan::0")
printf("nHeapAvail says:%lu",HeapAvail());
f=fopen("roger","wb")
printf("vive tarzan::1")
fputc((outlen>>24)&0xFF000000,f);
fputc((outlen>>16)&0xFF0000,f);
fputc((outlen>>8)&0xFF00,f);
fputc(outlen&0xFF,f);
fputc((input_size>>24)&0xFF000000,f);
fputc((input_size>>16)&0xFF0000,f);
fputc((input_size>>8)&0xFF00,f);
fputc(input_size&0xFF,f);
printf("vive tarzan::1")
c_input=output;
printf("vive tarzan::3")
for(i=0;i<=outlen;i++)
fputc(*c_input++,f);
printf("vive tarzan::4")
fputc(0,f);
fputc('z',f);
fputc('e',f);
fputc('s',f);
fputc('t',f);
fputc(0,f);
fputc(OTH_TAG,f);
fclose(f);
printf("nFUCK")
free(output);
}
il me met
vivetarzan::0
HeapAvailsays:110k
mais bloque au niveau de l'ouerture du fichier
???????



