summaryrefslogtreecommitdiff
path: root/src/Fl_XBM_Image.cxx
diff options
context:
space:
mode:
authorMichael R Sweet <michael.r.sweet@gmail.com>2001-12-11 16:03:13 +0000
committerMichael R Sweet <michael.r.sweet@gmail.com>2001-12-11 16:03:13 +0000
commitfdcdc8fd46547a7cd77010db6b57f9cc9f4f51d1 (patch)
treee7cfd7b774e59fe9b2092ede165e3dd058a20955 /src/Fl_XBM_Image.cxx
parent6905f61c2c00bd2e6777b0ab9d843fbe1a46dcc4 (diff)
Multiple fixes from Sebastien.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@1833 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'src/Fl_XBM_Image.cxx')
-rw-r--r--src/Fl_XBM_Image.cxx24
1 files changed, 19 insertions, 5 deletions
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 <stdlib.h>
#include <string.h>
+//
+// '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<n) {
int t;
@@ -84,5 +98,5 @@ Fl_XBM_Image::Fl_XBM_Image(const char *name) : Fl_Bitmap((const char *)0,0,0) {
//
-// End of "$Id: Fl_XBM_Image.cxx,v 1.1.2.1 2001/11/24 18:07:57 easysw Exp $".
+// End of "$Id: Fl_XBM_Image.cxx,v 1.1.2.2 2001/12/11 16:03:12 easysw Exp $".
//