From 3e023a74a7389fdba9620958f4771b183f2ebc7f Mon Sep 17 00:00:00 2001 From: John Mark Bell Date: Sat, 27 Sep 2003 17:05:25 +0000 Subject: [project @ 2003-09-27 17:05:25 by jmb] Fix plugin image loading svn path=/import/netsurf/; revision=323 --- riscos/about.c | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/riscos/about.c b/riscos/about.c index b04ebac23..0ee1bac1f 100644 --- a/riscos/about.c +++ b/riscos/about.c @@ -21,6 +21,7 @@ #include "netsurf/utils/messages.h" #include "netsurf/utils/utils.h" +#include "oslib/fileswitch.h" #include "oslib/osargs.h" #include "oslib/osfile.h" #include "oslib/osfind.h" @@ -110,6 +111,7 @@ void about_create(void) { FILE *fp; char *buf, *val, var[20], *ptype, *pdetails, *fname, *furl, *p, *leafname; int i, nofiles, j, w, h, size, pneeded; + fileswitch_object_type fot; os_error *e; abt = (struct about_page*)xcalloc(1, sizeof(*abt)); @@ -152,24 +154,26 @@ void about_create(void) { /* count files which match .About* */ sprintf(buf, "%s.About*", val); xosfscontrol_count(buf,0,0,0,0,0,0,&nofiles); + xfree(buf); for (j=0; j!=nofiles; j++) { /* get plugin details */ + buf = xcalloc(strlen(val) + 20, sizeof(char)); if (j == 0) { sprintf(buf, "%s.About", val); } else { sprintf(buf, "%s.About%2.2d", val, j); } - e = xosfile_read_stamped_no_path(buf,0,0,0,&size,0,0); + e = xosfile_read_stamped_no_path(buf,&fot,0,0,&size,0,0); /* If only one file, name can be "About" or "About00" */ - if((e && j == 0) || size < 0) { + if(e || (j == 0 && (int)fot != 1)) { sprintf(buf, "%s.About%2.2d", val, j); - e = xosfile_read_stamped_no_path(buf,0,0,0,&size,0,0); + e = xosfile_read_stamped_no_path(buf,&fot,0,0,&size,0,0); } /* ok, no file found. try again */ - if(e || size < 0) { + if(e || (int)fot != 1) { continue; } @@ -182,20 +186,21 @@ void about_create(void) { /* now see if there's an image to display */ sprintf(buf, "%s.%2.2d", val, j); LOG(("buf: %s", buf)); - e = xosfile_read_stamped_no_path(buf,0,0,0,&size,0,0); + e = xosfile_read_stamped_no_path(buf,&fot,0,0,0,0,0); - if(e || size < 0) { + if(e || (int)fot != 1) { sprintf(buf, "%s.%2.2d*", val, j); LOG(("buf: %s", buf)); - e = xosfile_read_stamped_no_path(buf,0,0,0,&size,0,0); + e = xosfile_read_stamped_no_path(buf,&fot,0,0,0,0,0); - if(e || size < 0) { + if(e || (int)fot != 1) { /* Type 1: no image file */ furl = xcalloc(strlen(paboutpl1) + strlen(ptype) + strlen(pdetails) + 10, sizeof(char)); sprintf(furl, paboutpl1, ptype, pdetails); LOG(("furl: %s", furl)); abt->plugd = new_plugin(abt->plugd, furl); xfree(pdetails); + xfree(buf); continue; } else { @@ -206,7 +211,7 @@ void about_create(void) { sprintf(buf, "%s.", val); LOG(("buf: %s", buf)); xosfscontrol_canonicalise_path(var, 0, 0, buf, 0, &pneeded); - fname = xcalloc((10-pneeded), sizeof(char)); + fname = xcalloc((unsigned int)(10-pneeded), sizeof(char)); xosfscontrol_canonicalise_path(var, fname, 0, buf, (10-pneeded), 0); LOG(("fname: %s", fname)); @@ -229,6 +234,7 @@ void about_create(void) { abt->plugd = new_plugin(abt->plugd, furl); xfree(fname); xfree(pdetails); + xfree(buf); continue; } } @@ -246,6 +252,7 @@ void about_create(void) { abt->plugd = new_plugin(abt->plugd, furl); xfree(fname); xfree(pdetails); + xfree(buf); } } if (buf != 0) { -- cgit v1.2.3