Hmm, I usually use

Fl_JPEG_Image* o=new Fl_JPEG_Image(file);
if (o && o->w() && o->h())
{/*loaded successfully*/}
else {/*some error occured*/}

It never failed so far on all the platforms I tested (Win/Linux/Mac).

So I don't really see why to add anything to the library, since it works 
just fine like that, but ...

maybe having an global fl_image_load_error flag would be enough, if at 
all? Something similar to errno but only for FLTK images? Seems simpler 
to implement than Fl::option, or error_callbacks... just a thought, though.

Cheers,

Herman



>       Our docs for the Fl_JPEG_Image constructor says:
>
> There is no error function in this class.
> If the image has loaded correctly,
> w(), h(), and d() should return values greater zero.<--
>
>       ..which seems to imply the following pattern should work:
>
>      const char *filename = "/var/tmp/foo.jpg";         // the file to load
>      Fl_JPEG_Image jpg(filename);                       // load jpeg image 
> into ram
>      if ( jpg.d() == 0 ) {                              // optional error 
> checking
>          fl_alert("%s: %s", filename, strerror(errno)); // post dialog 
> showing problem
>      }
>
>       However, it seems we have a bug: I just did a test with 1.3.x,
>       jpg.d() returned 3 even if the file doesn't exist, which seems to
>       break contract with our docs.
>
>       Changing the test to check jpg.w() does work though.
>       I've made an STR (#2873) for this.
>
>       However, I think even the above can give a misleading error message
>       if e.g. the file exists but is corrupt in some way, causing the above
>       to give a random errno message, instead of indicating the file is 
> corrupt.
>
_______________________________________________
fltk mailing list
fltk@easysw.com
http://lists.easysw.com/mailman/listinfo/fltk

Reply via email to