From fdcdc8fd46547a7cd77010db6b57f9cc9f4f51d1 Mon Sep 17 00:00:00 2001 From: Michael R Sweet Date: Tue, 11 Dec 2001 16:03:13 +0000 Subject: Multiple fixes from Sebastien. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@1833 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- src/Fl_XBM_Image.cxx | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) (limited to 'src/Fl_XBM_Image.cxx') diff --git a/src/Fl_XBM_Image.cxx b/src/Fl_XBM_Image.cxx index 9eedcad2f..56393e053 100644 --- a/src/Fl_XBM_Image.cxx +++ b/src/Fl_XBM_Image.cxx @@ -1,5 +1,5 @@ // -// "$Id: Fl_XBM_Image.cxx,v 1.1.2.1 2001/11/24 18:07:57 easysw Exp $" +// "$Id: Fl_XBM_Image.cxx,v 1.1.2.2 2001/12/11 16:03:12 easysw Exp $" // // Fl_XBM_Image routines. // @@ -24,6 +24,7 @@ // // Contents: // +// Fl_XBM_Image::Fl_XBM_Image() - Load an XBM file. // // @@ -37,6 +38,10 @@ #include #include +// +// 'Fl_XBM_Image::Fl_XBM_Image()' - Load an XBM file. +// + Fl_XBM_Image::Fl_XBM_Image(const char *name) : Fl_Bitmap((const char *)0,0,0) { FILE *f; uchar *data; @@ -49,7 +54,10 @@ Fl_XBM_Image::Fl_XBM_Image(const char *name) : Fl_Bitmap((const char *)0,0,0) { int i; for (i = 0; i<2; i++) { for (;;) { - if (!fgets(buffer,1024,f)) return; + if (!fgets(buffer,1024,f)) { + fclose(f); + return; + } int r = sscanf(buffer,"#define %s %d",junk,&wh[i]); if (r >= 2) break; } @@ -57,7 +65,10 @@ Fl_XBM_Image::Fl_XBM_Image(const char *name) : Fl_Bitmap((const char *)0,0,0) { // skip to data array: for (;;) { - if (!fgets(buffer,1024,f)) return; + if (!fgets(buffer,1024,f)) { + fclose(f); + return; + } if (!strncmp(buffer,"static ",7)) break; } @@ -70,7 +81,10 @@ Fl_XBM_Image::Fl_XBM_Image(const char *name) : Fl_Bitmap((const char *)0,0,0) { // read the data: for (i = 0, data = (uchar *)array; i < n;) { - if (!fgets(buffer,1024,f)) return; + if (!fgets(buffer,1024,f)) { + fclose(f); + return; + } const char *a = buffer; while (*a && i