From bd3329ebf3ba68fc87db7fb3b075c323b6669f5d Mon Sep 17 00:00:00 2001 From: Tj Holowaychuk Date: Wed, 24 Nov 2010 11:17:06 -0800 Subject: [PATCH] Image::loadJPEG() return status based on errno --- src/Image.cc | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/Image.cc b/src/Image.cc index b377f6b..d493a67 100644 --- a/src/Image.cc +++ b/src/Image.cc @@ -10,6 +10,7 @@ #include #include #include +#include Persistent Image::constructor; @@ -303,7 +304,14 @@ cairo_status_t Image::loadJPEG() { // File stream FILE *stream = fopen(filename, "r"); - if (!stream) return CAIRO_STATUS_READ_ERROR; + + if (!stream) { + switch (errno) { + case ENOMEM: return CAIRO_STATUS_NO_MEMORY; + case ENOENT: return CAIRO_STATUS_FILE_NOT_FOUND; + default: return CAIRO_STATUS_READ_ERROR; + } + } // JPEG setup struct jpeg_decompress_struct info;