Labels working on Linux 64bits, templates saving/reloading properly.
This commit is contained in:
parent
50b0e70eac
commit
0bc140b12c
1 changed files with 30 additions and 13 deletions
|
|
@ -11153,7 +11153,7 @@ static void load_template(char *img_id)
|
||||||
if (template_personal == 0)
|
if (template_personal == 0)
|
||||||
dirname = strdup(DATA_PREFIX "templates");
|
dirname = strdup(DATA_PREFIX "templates");
|
||||||
else
|
else
|
||||||
dirname = get_fname("templates", DIR_DATA);
|
dirname = get_fname("templates", DIR_SAVE);
|
||||||
|
|
||||||
/* Clear them to NULL first: */
|
/* Clear them to NULL first: */
|
||||||
img_starter = NULL;
|
img_starter = NULL;
|
||||||
|
|
@ -20752,7 +20752,7 @@ Bytef *get_chunk_data(FILE * fp, char *fname, png_structp png_ptr,
|
||||||
sscanf((char *) unknown.data, "%s\n%s\n%d\n%d\n", control, softwr, unc_size, &comp);
|
sscanf((char *) unknown.data, "%s\n%s\n%d\n%d\n", control, softwr, unc_size, &comp);
|
||||||
free(control);
|
free(control);
|
||||||
free(softwr);
|
free(softwr);
|
||||||
comp_buff = malloc(comp);
|
comp_buff = malloc(comp * sizeof(Bytef));
|
||||||
|
|
||||||
if (comp_buff == NULL)
|
if (comp_buff == NULL)
|
||||||
{
|
{
|
||||||
|
|
@ -20784,7 +20784,7 @@ Bytef *get_chunk_data(FILE * fp, char *fname, png_structp png_ptr,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
unc_buff = malloc(*unc_size);
|
unc_buff = malloc(*unc_size * sizeof(Bytef));
|
||||||
|
|
||||||
if (unc_buff == NULL)
|
if (unc_buff == NULL)
|
||||||
{
|
{
|
||||||
|
|
@ -20799,9 +20799,27 @@ Bytef *get_chunk_data(FILE * fp, char *fname, png_structp png_ptr,
|
||||||
return (NULL);
|
return (NULL);
|
||||||
}
|
}
|
||||||
|
|
||||||
unc_err = uncompress(unc_buff, (uLongf *) unc_size, comp_buff, comp);
|
/* Seems that uncompress() has problems in 64bits systems, so using inflate() Pere 2012/03/28 */
|
||||||
|
/* unc_err = uncompress(unc_buff, (uLongf *) unc_size, comp_buff, comp); */
|
||||||
|
z_streamp zstp;
|
||||||
|
zstp = malloc(sizeof(z_stream));
|
||||||
|
zstp->next_in = comp_buff;
|
||||||
|
zstp->avail_in = comp;
|
||||||
|
zstp->total_in = comp;
|
||||||
|
|
||||||
if (unc_err != 0)
|
zstp->next_out =unc_buff;
|
||||||
|
zstp->avail_out = *unc_size;
|
||||||
|
zstp->total_out = 0;
|
||||||
|
|
||||||
|
zstp->zalloc = Z_NULL;
|
||||||
|
zstp->zfree = Z_NULL;
|
||||||
|
zstp->opaque = Z_NULL;
|
||||||
|
|
||||||
|
inflateInit(zstp);
|
||||||
|
unc_err = inflate(zstp, Z_FINISH);
|
||||||
|
inflateEnd(zstp);
|
||||||
|
|
||||||
|
if (unc_err != Z_STREAM_END)
|
||||||
{
|
{
|
||||||
printf("\n error %d, unc %d, comp %d\n", unc_err, *unc_size, comp);
|
printf("\n error %d, unc %d, comp %d\n", unc_err, *unc_size, comp);
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
|
|
@ -20822,10 +20840,10 @@ Bytef *get_chunk_data(FILE * fp, char *fname, png_structp png_ptr,
|
||||||
void load_embedded_data(char *fname, SDL_Surface * org_surf)
|
void load_embedded_data(char *fname, SDL_Surface * org_surf)
|
||||||
{
|
{
|
||||||
FILE *fi, *fp;
|
FILE *fi, *fp;
|
||||||
char *control, *softwr;
|
char *control;
|
||||||
Bytef *unc_buff;
|
Bytef *unc_buff;
|
||||||
|
|
||||||
int comp, unc, unc_size;
|
int unc_size;
|
||||||
int u;
|
int u;
|
||||||
int have_background, have_foreground, have_label_delta, have_label_data;
|
int have_background, have_foreground, have_label_delta, have_label_data;
|
||||||
int ldelta, ldata, fgnd, bgnd;
|
int ldelta, ldata, fgnd, bgnd;
|
||||||
|
|
@ -20914,13 +20932,11 @@ void load_embedded_data(char *fname, SDL_Surface * org_surf)
|
||||||
|
|
||||||
/* Put fi position at the right place after the chunk headers */
|
/* Put fi position at the right place after the chunk headers */
|
||||||
control = malloc(50);
|
control = malloc(50);
|
||||||
softwr = malloc(50);
|
fgets(control, 49, fi);
|
||||||
fscanf(fi, "%s\n", control);
|
fgets(control, 49, fi);
|
||||||
fscanf(fi, "%s\n", softwr);
|
fgets(control, 49, fi);
|
||||||
fscanf(fi, "%d\n", &unc);
|
fgets(control, 49, fi);
|
||||||
fscanf(fi, "%d\n", &comp);
|
|
||||||
free(control);
|
free(control);
|
||||||
free(softwr);
|
|
||||||
|
|
||||||
load_starter_id(NULL, fi); // fi will be closed in load_starter_id()
|
load_starter_id(NULL, fi); // fi will be closed in load_starter_id()
|
||||||
if (!starter_modified)
|
if (!starter_modified)
|
||||||
|
|
@ -20988,6 +21004,7 @@ void load_embedded_data(char *fname, SDL_Surface * org_surf)
|
||||||
unc_buff[4 * (j * ww + i) + 2]));
|
unc_buff[4 * (j * ww + i) + 2]));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SDL_UnlockSurface(org_surf);
|
SDL_UnlockSurface(org_surf);
|
||||||
|
|
||||||
free(unc_buff);
|
free(unc_buff);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue