[project @ 2003-08-24 23:37:59 by jmb]

Fix bug in plugin_write_parameters_file

svn path=/import/netsurf/; revision=247
This commit is contained in:
John Mark Bell 2003-08-24 23:37:59 +00:00
parent 3c11ffdc9f
commit 5744b00bd2
1 changed files with 132 additions and 83 deletions

View File

@ -48,7 +48,7 @@
/* parameters file creation */ /* parameters file creation */
void plugin_write_parameters_file(struct object_params *params); void plugin_write_parameters_file(struct object_params *params);
byte const *plugin_populate_pdata(int rsize); void plugin_populate_pdata(int rsize, byte *pdata);
/* stream handling */ /* stream handling */
void plugin_create_stream(struct browser_window *bw, void plugin_create_stream(struct browser_window *bw,
@ -546,6 +546,7 @@ void plugin_write_parameters_file(struct object_params *params)
os_fw pfile; os_fw pfile;
int j, rsize = 0; int j, rsize = 0;
char *tstr; char *tstr;
byte pdata[4] = {0, 0, 0, 0};
/* Create the file */ /* Create the file */
xosfile_create_dir("<Wimp$ScrapDir>.WWW", 77); xosfile_create_dir("<Wimp$ScrapDir>.WWW", 77);
@ -570,7 +571,8 @@ void plugin_write_parameters_file(struct object_params *params)
if(params->classid != 0 && params->codetype != 0) { if(params->classid != 0 && params->codetype != 0) {
/* Record Type */ /* Record Type */
xosgbpb_writew(pfile, (plugin_populate_pdata(1)), 4, NULL); plugin_populate_pdata(1, (byte *)&pdata);
xosgbpb_writew(pfile, pdata, 4, NULL);
/* Record size */ /* Record size */
rsize = 0; rsize = 0;
@ -582,42 +584,49 @@ void plugin_write_parameters_file(struct object_params *params)
if((strlen(params->codetype)%4) != 0) if((strlen(params->codetype)%4) != 0)
rsize += (4-(strlen(params->codetype)%4)); rsize += (4-(strlen(params->codetype)%4));
xosgbpb_writew(pfile, (plugin_populate_pdata(rsize)), 4, NULL); plugin_populate_pdata(rsize, (byte *)&pdata);
xosgbpb_writew(pfile, pdata, 4, NULL);
/* name */ /* name */
/* size */ /* size */
rsize = strlen("CLASSID"); rsize = strlen("CLASSID");
xosgbpb_writew(pfile, (plugin_populate_pdata(rsize)), 4, NULL); plugin_populate_pdata(rsize, (byte *)&pdata);
xosgbpb_writew(pfile, pdata, 4, NULL);
/* name */ /* name */
xosgbpb_writew(pfile, (byte const*)"CLASSID", rsize, NULL); xosgbpb_writew(pfile, (byte const*)"CLASSID", rsize, NULL);
/* pad to word boundary */ /* pad to word boundary */
xosgbpb_writew(pfile, (plugin_populate_pdata(0)), plugin_populate_pdata(0, (byte *)&pdata);
xosgbpb_writew(pfile, pdata,
(4 - ((rsize%4) == 0 ? 4 : (rsize%4))), NULL); (4 - ((rsize%4) == 0 ? 4 : (rsize%4))), NULL);
/* value */ /* value */
/* size */ /* size */
rsize = strlen(params->classid); rsize = strlen(params->classid);
xosgbpb_writew(pfile, (plugin_populate_pdata(rsize)), 4, NULL); plugin_populate_pdata(rsize, (byte *)&pdata);
xosgbpb_writew(pfile, pdata, 4, NULL);
/* name */ /* name */
xosgbpb_writew(pfile, (byte const*)params->classid, rsize, NULL); xosgbpb_writew(pfile, (byte const*)params->classid, rsize, NULL);
/* pad to word boundary */ /* pad to word boundary */
xosgbpb_writew(pfile, (plugin_populate_pdata(0)), plugin_populate_pdata(0, (byte *)&pdata);
xosgbpb_writew(pfile, pdata,
(4 - ((rsize%4) == 0 ? 4 : (rsize%4))), NULL); (4 - ((rsize%4) == 0 ? 4 : (rsize%4))), NULL);
/* type */ /* type */
/* size */ /* size */
rsize = strlen(params->codetype); rsize = strlen(params->codetype);
xosgbpb_writew(pfile, (plugin_populate_pdata(rsize)), 4, NULL); plugin_populate_pdata(rsize, (byte *)&pdata);
xosgbpb_writew(pfile, pdata, 4, NULL);
/* name */ /* name */
xosgbpb_writew(pfile, (byte const*)params->codetype, rsize, NULL); xosgbpb_writew(pfile, (byte const*)params->codetype, rsize, NULL);
/* pad to word boundary */ /* pad to word boundary */
xosgbpb_writew(pfile, (plugin_populate_pdata(0)), plugin_populate_pdata(rsize, (byte *)&pdata);
xosgbpb_writew(pfile, pdata,
(4 - ((rsize%4) == 0 ? 4 : (rsize%4))), NULL); (4 - ((rsize%4) == 0 ? 4 : (rsize%4))), NULL);
} }
@ -625,7 +634,8 @@ void plugin_write_parameters_file(struct object_params *params)
else if(params->data !=0 && params->type != 0) { else if(params->data !=0 && params->type != 0) {
/* Record Type */ /* Record Type */
xosgbpb_writew(pfile, (plugin_populate_pdata(1)), 4, NULL); plugin_populate_pdata(1, (byte *)&pdata);
xosgbpb_writew(pfile, pdata, 4, NULL);
/* Record size */ /* Record size */
rsize = 0; rsize = 0;
@ -636,42 +646,50 @@ void plugin_write_parameters_file(struct object_params *params)
rsize += (4 + strlen(params->type)); rsize += (4 + strlen(params->type));
if((strlen(params->type)%4) != 0) if((strlen(params->type)%4) != 0)
rsize += (4-(strlen(params->type)%4)); rsize += (4-(strlen(params->type)%4));
xosgbpb_writew(pfile, (plugin_populate_pdata(rsize)), 4, NULL);
plugin_populate_pdata(rsize, (byte *)&pdata);
xosgbpb_writew(pfile, pdata, 4, NULL);
/* name */ /* name */
/* size */ /* size */
rsize = strlen("DATA"); rsize = strlen("DATA");
xosgbpb_writew(pfile, (plugin_populate_pdata(rsize)), 4, NULL); plugin_populate_pdata(rsize, (byte *)&pdata);
xosgbpb_writew(pfile, pdata, 4, NULL);
/* name */ /* name */
xosgbpb_writew(pfile, (byte const*)"DATA", rsize, NULL); xosgbpb_writew(pfile, (byte const*)"DATA", rsize, NULL);
/* pad to word boundary */ /* pad to word boundary */
xosgbpb_writew(pfile, (plugin_populate_pdata(0)), plugin_populate_pdata(0, (byte *)&pdata);
xosgbpb_writew(pfile, pdata,
(4 - ((rsize%4) == 0 ? 4 : (rsize%4))), NULL); (4 - ((rsize%4) == 0 ? 4 : (rsize%4))), NULL);
/* value */ /* value */
/* size */ /* size */
rsize = strlen(params->data); rsize = strlen(params->data);
xosgbpb_writew(pfile, (plugin_populate_pdata(rsize)), 4, NULL); plugin_populate_pdata(rsize, (byte *)&pdata);
xosgbpb_writew(pfile, pdata, 4, NULL);
/* name */ /* name */
xosgbpb_writew(pfile, (byte const*)params->data, rsize, NULL); xosgbpb_writew(pfile, (byte const*)params->data, rsize, NULL);
/* pad to word boundary */ /* pad to word boundary */
xosgbpb_writew(pfile, (plugin_populate_pdata(0)), plugin_populate_pdata(0, (byte *)&pdata);
xosgbpb_writew(pfile, pdata,
(4 - ((rsize%4) == 0 ? 4 : (rsize%4))), NULL); (4 - ((rsize%4) == 0 ? 4 : (rsize%4))), NULL);
/* type */ /* type */
/* size */ /* size */
rsize = strlen(params->type); rsize = strlen(params->type);
xosgbpb_writew(pfile, (plugin_populate_pdata(rsize)), 4, NULL); plugin_populate_pdata(rsize, (byte *)&pdata);
xosgbpb_writew(pfile, pdata, 4, NULL);
/* name */ /* name */
xosgbpb_writew(pfile, (byte const*)params->type, rsize, NULL); xosgbpb_writew(pfile, (byte const*)params->type, rsize, NULL);
/* pad to word boundary */ /* pad to word boundary */
xosgbpb_writew(pfile, (plugin_populate_pdata(0)), plugin_populate_pdata(0, (byte *)&pdata);
xosgbpb_writew(pfile, pdata,
(4 - ((rsize%4) == 0 ? 4 : (rsize%4))), NULL); (4 - ((rsize%4) == 0 ? 4 : (rsize%4))), NULL);
} }
@ -679,7 +697,8 @@ void plugin_write_parameters_file(struct object_params *params)
if(params->codebase != 0) { if(params->codebase != 0) {
/* Record Type */ /* Record Type */
xosgbpb_writew(pfile, (plugin_populate_pdata(1)), 4, NULL); plugin_populate_pdata(1, (byte *)&pdata);
xosgbpb_writew(pfile, pdata, 4, NULL);
/* Record size */ /* Record size */
rsize = 0; rsize = 0;
@ -688,35 +707,41 @@ void plugin_write_parameters_file(struct object_params *params)
if((strlen(params->codebase)%4) != 0) if((strlen(params->codebase)%4) != 0)
rsize += (4-(strlen(params->codebase)%4)); rsize += (4-(strlen(params->codebase)%4));
rsize += 4; rsize += 4;
xosgbpb_writew(pfile, (plugin_populate_pdata(rsize)), 4, NULL); plugin_populate_pdata(rsize, (byte *)&pdata);
xosgbpb_writew(pfile, pdata, 4, NULL);
/* name */ /* name */
/* size */ /* size */
rsize = strlen("CODEBASE"); rsize = strlen("CODEBASE");
xosgbpb_writew(pfile, (plugin_populate_pdata(rsize)), 4, NULL); plugin_populate_pdata(rsize, (byte *)&pdata);
xosgbpb_writew(pfile, pdata, 4, NULL);
/* name */ /* name */
xosgbpb_writew(pfile, (byte const*)"CODEBASE", rsize, NULL); xosgbpb_writew(pfile, (byte const*)"CODEBASE", rsize, NULL);
/* pad to word boundary */ /* pad to word boundary */
xosgbpb_writew(pfile, (plugin_populate_pdata(0)), plugin_populate_pdata(0, (byte *)&pdata);
xosgbpb_writew(pfile, pdata,
(4 - ((rsize%4) == 0 ? 4 : (rsize%4))), NULL); (4 - ((rsize%4) == 0 ? 4 : (rsize%4))), NULL);
/* value */ /* value */
/* size */ /* size */
rsize = strlen(params->codebase); rsize = strlen(params->codebase);
xosgbpb_writew(pfile, (plugin_populate_pdata(rsize)), 4, NULL); plugin_populate_pdata(rsize, (byte *)&pdata);
xosgbpb_writew(pfile, pdata, 4, NULL);
/* name */ /* name */
xosgbpb_writew(pfile, (byte const*)params->codebase, rsize, NULL); xosgbpb_writew(pfile, (byte const*)params->codebase, rsize, NULL);
/* pad to word boundary */ /* pad to word boundary */
xosgbpb_writew(pfile, (plugin_populate_pdata(0)), plugin_populate_pdata(0, (byte *)&pdata);
xosgbpb_writew(pfile, pdata,
(4 - ((rsize%4) == 0 ? 4 : (rsize%4))), NULL); (4 - ((rsize%4) == 0 ? 4 : (rsize%4))), NULL);
/* type */ /* type */
/* size */ /* size */
xosgbpb_writew(pfile, (plugin_populate_pdata(0)), 4, NULL); plugin_populate_pdata(0, (byte *)&pdata);
xosgbpb_writew(pfile, pdata, 4, NULL);
} }
@ -738,7 +763,8 @@ void plugin_write_parameters_file(struct object_params *params)
rsize = 2; rsize = 2;
if(strcasecmp(params->params->valuetype, "object") == 0) if(strcasecmp(params->params->valuetype, "object") == 0)
rsize = 3; rsize = 3;
xosgbpb_writew(pfile, (plugin_populate_pdata(rsize)), 4, NULL); plugin_populate_pdata(rsize, (byte *)&pdata);
xosgbpb_writew(pfile, pdata, 4, NULL);
/* Record Size */ /* Record Size */
rsize = 0; rsize = 0;
@ -762,20 +788,23 @@ void plugin_write_parameters_file(struct object_params *params)
} else { } else {
rsize += 4; rsize += 4;
} }
xosgbpb_writew(pfile, (plugin_populate_pdata(rsize)), 4, NULL); plugin_populate_pdata(rsize, (byte *)&pdata);
xosgbpb_writew(pfile, pdata, 4, NULL);
/* Record Name */ /* Record Name */
if(params->params->name != 0) { if(params->params->name != 0) {
/* Size */ /* Size */
rsize = strlen(params->params->name); rsize = strlen(params->params->name);
xosgbpb_writew(pfile, (plugin_populate_pdata(rsize)), 4, NULL); plugin_populate_pdata(rsize, (byte *)&pdata);
xosgbpb_writew(pfile, pdata, 4, NULL);
/* Name */ /* Name */
xosgbpb_writew(pfile, (byte const*)params->params->name, rsize, NULL); xosgbpb_writew(pfile, (byte const*)params->params->name, rsize, NULL);
/* Pad to word boundary */ /* Pad to word boundary */
xosgbpb_writew(pfile, (plugin_populate_pdata(0)), (4 - ((rsize%4) == 0 ? 4 : (rsize%4))), NULL); plugin_populate_pdata(0, (byte *)&pdata);
xosgbpb_writew(pfile, pdata, (4 - ((rsize%4) == 0 ? 4 : (rsize%4))), NULL);
} }
/* Record Value */ /* Record Value */
@ -783,13 +812,15 @@ void plugin_write_parameters_file(struct object_params *params)
/* Size */ /* Size */
rsize = strlen(params->params->value); rsize = strlen(params->params->value);
xosgbpb_writew(pfile, (plugin_populate_pdata(rsize)), 4, NULL); plugin_populate_pdata(rsize, (byte *)&pdata);
xosgbpb_writew(pfile, pdata, 4, NULL);
/* Name */ /* Name */
xosgbpb_writew(pfile, (byte const*)params->params->value, rsize, NULL); xosgbpb_writew(pfile, (byte const*)params->params->value, rsize, NULL);
/* Pad to word boundary */ /* Pad to word boundary */
xosgbpb_writew(pfile, (plugin_populate_pdata(0)), (4 - ((rsize%4) == 0 ? 4 : (rsize%4))), NULL); plugin_populate_pdata(0, (byte *)&pdata);
xosgbpb_writew(pfile, pdata, (4 - ((rsize%4) == 0 ? 4 : (rsize%4))), NULL);
} }
/* Record Type */ /* Record Type */
@ -797,15 +828,18 @@ void plugin_write_parameters_file(struct object_params *params)
/* Size */ /* Size */
rsize = strlen(params->params->type); rsize = strlen(params->params->type);
xosgbpb_writew(pfile, (plugin_populate_pdata(rsize)), 4, NULL); plugin_populate_pdata(rsize, (byte *)&pdata);
xosgbpb_writew(pfile, pdata, 4, NULL);
/* Name */ /* Name */
xosgbpb_writew(pfile, (byte const*)params->params->type, rsize, NULL); xosgbpb_writew(pfile, (byte const*)params->params->type, rsize, NULL);
/* Pad to word boundary */ /* Pad to word boundary */
xosgbpb_writew(pfile, (plugin_populate_pdata(0)), (4 - ((rsize%4) == 0 ? 4 : (rsize%4))), NULL); plugin_populate_pdata(0, (byte *)&pdata);
xosgbpb_writew(pfile, pdata, (4 - ((rsize%4) == 0 ? 4 : (rsize%4))), NULL);
} else { } else {
xosgbpb_writew(pfile, (plugin_populate_pdata(0)), 4, NULL); plugin_populate_pdata(0, (byte *)&pdata);
xosgbpb_writew(pfile, pdata, 4, NULL);
} }
temp = params->params; temp = params->params;
@ -826,7 +860,8 @@ void plugin_write_parameters_file(struct object_params *params)
*/ */
for(j=0; j!=5; j++) { for(j=0; j!=5; j++) {
xosgbpb_writew(pfile, (plugin_populate_pdata(4)), 4, NULL); plugin_populate_pdata(4, (byte *)&pdata);
xosgbpb_writew(pfile, pdata, 4, NULL);
switch(j) { switch(j) {
@ -836,23 +871,27 @@ void plugin_write_parameters_file(struct object_params *params)
if((strlen(params->basehref)%4) != 0) if((strlen(params->basehref)%4) != 0)
rsize += (4-(strlen(params->basehref)%4)); rsize += (4-(strlen(params->basehref)%4));
rsize += 4; rsize += 4;
xosgbpb_writew(pfile, (plugin_populate_pdata(rsize)), 4, NULL); plugin_populate_pdata(rsize, (byte *)&pdata);
xosgbpb_writew(pfile, pdata, 4, NULL);
rsize = strlen("BASEHREF"); rsize = strlen("BASEHREF");
xosgbpb_writew(pfile, (plugin_populate_pdata(rsize)), 4, NULL); plugin_populate_pdata(rsize, (byte *)&pdata);
xosgbpb_writew(pfile, pdata, 4, NULL);
xosgbpb_writew(pfile, (byte const*)"BASEHREF", rsize, NULL); xosgbpb_writew(pfile, (byte const*)"BASEHREF", rsize, NULL);
plugin_populate_pdata(0, (byte *)&pdata);
xosgbpb_writew(pfile, (plugin_populate_pdata(0)), (4 - ((rsize%4) == 0 ? 4 : (rsize%4))), NULL); xosgbpb_writew(pfile, pdata, (4 - ((rsize%4) == 0 ? 4 : (rsize%4))), NULL);
rsize = strlen(params->basehref); rsize = strlen(params->basehref);
xosgbpb_writew(pfile, (plugin_populate_pdata(rsize)), 4, NULL); plugin_populate_pdata(rsize, (byte *)&pdata);
xosgbpb_writew(pfile, pdata, 4, NULL);
xosgbpb_writew(pfile, (byte const*)params->basehref, rsize, NULL); xosgbpb_writew(pfile, (byte const*)params->basehref, rsize, NULL);
xosgbpb_writew(pfile, (plugin_populate_pdata(0)), (4 - ((rsize%4) == 0 ? 4 : (rsize%4))), NULL); plugin_populate_pdata(0, (byte *)&pdata);
xosgbpb_writew(pfile, pdata, (4 - ((rsize%4) == 0 ? 4 : (rsize%4))), NULL);
xosgbpb_writew(pfile, (plugin_populate_pdata(0)), 4, NULL); plugin_populate_pdata(0, (byte *)&pdata);
xosgbpb_writew(pfile, pdata, 4, NULL);
break; break;
@ -862,23 +901,26 @@ void plugin_write_parameters_file(struct object_params *params)
if((strlen("NetSurf")%4) != 0) if((strlen("NetSurf")%4) != 0)
rsize += (4-(strlen("NetSurf")%4)); rsize += (4-(strlen("NetSurf")%4));
rsize += 4; rsize += 4;
xosgbpb_writew(pfile, (plugin_populate_pdata(rsize)), 4, NULL); plugin_populate_pdata(rsize, (byte *)&pdata);
xosgbpb_writew(pfile, pdata, 4, NULL);
rsize = strlen("USERAGENT"); rsize = strlen("USERAGENT");
xosgbpb_writew(pfile, (plugin_populate_pdata(rsize)), 4, NULL); plugin_populate_pdata(rsize, (byte *)&pdata);
xosgbpb_writew(pfile, pdata, 4, NULL);
xosgbpb_writew(pfile, (byte const*)"USERAGENT", rsize, NULL); xosgbpb_writew(pfile, (byte const*)"USERAGENT", rsize, NULL);
plugin_populate_pdata(0, (byte *)&pdata);
xosgbpb_writew(pfile, (plugin_populate_pdata(0)), (4 - ((rsize%4) == 0 ? 4 : (rsize%4))), NULL); xosgbpb_writew(pfile, pdata, (4 - ((rsize%4) == 0 ? 4 : (rsize%4))), NULL);
rsize = strlen("NetSurf"); rsize = strlen("NetSurf");
xosgbpb_writew(pfile, (plugin_populate_pdata(rsize)), 4, NULL); plugin_populate_pdata(rsize, (byte *)&pdata);
xosgbpb_writew(pfile, pdata, 4, NULL);
xosgbpb_writew(pfile, (byte const*)"NetSurf", rsize, NULL); xosgbpb_writew(pfile, (byte const*)"NetSurf", rsize, NULL);
plugin_populate_pdata(0, (byte *)&pdata);
xosgbpb_writew(pfile, (plugin_populate_pdata(0)), (4 - ((rsize%4) == 0 ? 4 : (rsize%4))), NULL); xosgbpb_writew(pfile, pdata, (4 - ((rsize%4) == 0 ? 4 : (rsize%4))), NULL);
plugin_populate_pdata(0, (byte *)&pdata);
xosgbpb_writew(pfile, (plugin_populate_pdata(0)), 4, NULL); xosgbpb_writew(pfile, pdata, 4, NULL);
break; break;
case 2: rsize = 0; case 2: rsize = 0;
@ -887,23 +929,26 @@ void plugin_write_parameters_file(struct object_params *params)
if((strlen("0.01")%4) != 0) if((strlen("0.01")%4) != 0)
rsize += (4-(strlen("0.01")%4)); rsize += (4-(strlen("0.01")%4));
rsize += 4; rsize += 4;
xosgbpb_writew(pfile, (plugin_populate_pdata(rsize)), 4, NULL); plugin_populate_pdata(rsize, (byte *)&pdata);
xosgbpb_writew(pfile, pdata, 4, NULL);
rsize = strlen("UAVERSION"); rsize = strlen("UAVERSION");
xosgbpb_writew(pfile, (plugin_populate_pdata(rsize)), 4, NULL); plugin_populate_pdata(rsize, (byte *)&pdata);
xosgbpb_writew(pfile, pdata, 4, NULL);
xosgbpb_writew(pfile, (byte const*)"UAVERSION", rsize, NULL); xosgbpb_writew(pfile, (byte const*)"UAVERSION", rsize, NULL);
plugin_populate_pdata(0, (byte *)&pdata);
xosgbpb_writew(pfile, (plugin_populate_pdata(0)), (4 - ((rsize%4) == 0 ? 4 : (rsize%4))), NULL); xosgbpb_writew(pfile, pdata, (4 - ((rsize%4) == 0 ? 4 : (rsize%4))), NULL);
rsize = strlen("0.01"); rsize = strlen("0.01");
xosgbpb_writew(pfile, (plugin_populate_pdata(rsize)), 4, NULL); plugin_populate_pdata(rsize, (byte *)&pdata);
xosgbpb_writew(pfile, pdata, 4, NULL);
xosgbpb_writew(pfile, (byte const*)"0.01", rsize, NULL); xosgbpb_writew(pfile, (byte const*)"0.01", rsize, NULL);
plugin_populate_pdata(0, (byte *)&pdata);
xosgbpb_writew(pfile, (plugin_populate_pdata(0)), (4 - ((rsize%4) == 0 ? 4 : (rsize%4))), NULL); xosgbpb_writew(pfile, pdata, (4 - ((rsize%4) == 0 ? 4 : (rsize%4))), NULL);
plugin_populate_pdata(0, (byte *)&pdata);
xosgbpb_writew(pfile, (plugin_populate_pdata(0)), 4, NULL); xosgbpb_writew(pfile, pdata, 4, NULL);
break; break;
case 3: rsize = 0; case 3: rsize = 0;
@ -912,23 +957,26 @@ void plugin_write_parameters_file(struct object_params *params)
if((strlen("1.10")%4) != 0) if((strlen("1.10")%4) != 0)
rsize += (4-(strlen("1.10")%4)); rsize += (4-(strlen("1.10")%4));
rsize += 4; rsize += 4;
xosgbpb_writew(pfile, (plugin_populate_pdata(rsize)), 4, NULL); plugin_populate_pdata(rsize, (byte *)&pdata);
xosgbpb_writew(pfile, pdata, 4, NULL);
rsize = strlen("APIVERSION"); rsize = strlen("APIVERSION");
xosgbpb_writew(pfile, (plugin_populate_pdata(rsize)), 4, NULL); plugin_populate_pdata(rsize, (byte *)&pdata);
xosgbpb_writew(pfile, pdata, 4, NULL);
xosgbpb_writew(pfile, (byte const*)"APIVERSION", rsize, NULL); xosgbpb_writew(pfile, (byte const*)"APIVERSION", rsize, NULL);
plugin_populate_pdata(0, (byte *)&pdata);
xosgbpb_writew(pfile, (plugin_populate_pdata(0)), (4 - ((rsize%4) == 0 ? 4 : (rsize%4))), NULL); xosgbpb_writew(pfile, pdata, (4 - ((rsize%4) == 0 ? 4 : (rsize%4))), NULL);
rsize = strlen("1.10"); rsize = strlen("1.10");
xosgbpb_writew(pfile, (plugin_populate_pdata(rsize)), 4, NULL); plugin_populate_pdata(rsize, (byte *)&pdata);
xosgbpb_writew(pfile, pdata, 4, NULL);
xosgbpb_writew(pfile, (byte const*)"1.10", rsize, NULL); xosgbpb_writew(pfile, (byte const*)"1.10", rsize, NULL);
plugin_populate_pdata(0, (byte *)&pdata);
xosgbpb_writew(pfile, (plugin_populate_pdata(0)), (4 - ((rsize%4) == 0 ? 4 : (rsize%4))), NULL); xosgbpb_writew(pfile, pdata, (4 - ((rsize%4) == 0 ? 4 : (rsize%4))), NULL);
plugin_populate_pdata(0, (byte *)&pdata);
xosgbpb_writew(pfile, (plugin_populate_pdata(0)), 4, NULL); xosgbpb_writew(pfile, pdata, 4, NULL);
break; break;
case 4: rsize = 0; case 4: rsize = 0;
rsize += (4 + 7 + 1); rsize += (4 + 7 + 1);
@ -936,30 +984,34 @@ void plugin_write_parameters_file(struct object_params *params)
if((strlen("FFFFFF00")%4) != 0) if((strlen("FFFFFF00")%4) != 0)
rsize += (4-(strlen("FFFFFF00")%4)); rsize += (4-(strlen("FFFFFF00")%4));
rsize += 4; rsize += 4;
xosgbpb_writew(pfile, (plugin_populate_pdata(rsize)), 4, NULL); plugin_populate_pdata(rsize, (byte *)&pdata);
xosgbpb_writew(pfile, pdata, 4, NULL);
rsize = strlen("BGCOLOR"); rsize = strlen("BGCOLOR");
xosgbpb_writew(pfile, (plugin_populate_pdata(rsize)), 4, NULL); plugin_populate_pdata(rsize, (byte *)&pdata);
xosgbpb_writew(pfile, pdata, 4, NULL);
xosgbpb_writew(pfile, (byte const*)"BGCOLOR", rsize, NULL); xosgbpb_writew(pfile, (byte const*)"BGCOLOR", rsize, NULL);
plugin_populate_pdata(0, (byte *)&pdata);
xosgbpb_writew(pfile, (plugin_populate_pdata(0)), (4 - ((rsize%4) == 0 ? 4 : (rsize%4))), NULL); xosgbpb_writew(pfile, pdata, (4 - ((rsize%4) == 0 ? 4 : (rsize%4))), NULL);
rsize = strlen("FFFFFF00"); rsize = strlen("FFFFFF00");
xosgbpb_writew(pfile, (plugin_populate_pdata(rsize)), 4, NULL); plugin_populate_pdata(rsize, (byte *)&pdata);
xosgbpb_writew(pfile, pdata, 4, NULL);
xosgbpb_writew(pfile, (byte const*)"FFFFFF00", rsize, NULL); xosgbpb_writew(pfile, (byte const*)"FFFFFF00", rsize, NULL);
plugin_populate_pdata(0, (byte *)&pdata);
xosgbpb_writew(pfile, (plugin_populate_pdata(0)), (4 - ((rsize%4) == 0 ? 4 : (rsize%4))), NULL); xosgbpb_writew(pfile, pdata, (4 - ((rsize%4) == 0 ? 4 : (rsize%4))), NULL);
plugin_populate_pdata(0, (byte *)&pdata);
xosgbpb_writew(pfile, (plugin_populate_pdata(0)), 4, NULL); xosgbpb_writew(pfile, pdata, 4, NULL);
break; break;
} }
} }
/* Write terminator */ /* Write terminator */
xosgbpb_writew(pfile, (plugin_populate_pdata(0)), 4, NULL); plugin_populate_pdata(0, (byte *)&pdata);
xosgbpb_writew(pfile, pdata, 4, NULL);
xosfind_closew(pfile); xosfind_closew(pfile);
} }
@ -967,16 +1019,13 @@ void plugin_write_parameters_file(struct object_params *params)
* plugin_populate_pdata * plugin_populate_pdata
* helper function for plugin_write_parameters_file * helper function for plugin_write_parameters_file
*/ */
byte const *plugin_populate_pdata(int rsize) { void plugin_populate_pdata(int rsize, byte *pdata) {
byte pdata[4] = {0, 0, 0, 0};
pdata[0] = rsize & 0xff; pdata[0] = rsize & 0xff;
pdata[1] = (rsize >> 0x08) & 0xff; pdata[1] = (rsize >> 0x08) & 0xff;
pdata[2] = (rsize >> 0x10) & 0xff; pdata[2] = (rsize >> 0x10) & 0xff;
pdata[3] = (rsize >> 0x18) & 0xff; pdata[3] = (rsize >> 0x18) & 0xff;
return (byte const*)&pdata;
} }
/*-------------------------------------------------------------------------*/ /*-------------------------------------------------------------------------*/