gif_err.c revision c2eacaec90baee57fdbbdbad935d161638894ee7
1/*****************************************************************************
2 *   "Gif-Lib" - Yet another gif library.
3 *
4 * Written by:  Gershon Elber            IBM PC Ver 0.1,    Jun. 1989
5 *****************************************************************************
6 * Handle error reporting for the GIF library.
7 *****************************************************************************
8 * History:
9 * 17 Jun 89 - Version 1.0 by Gershon Elber.
10 ****************************************************************************/
11
12#ifdef HAVE_CONFIG_H
13#include <config.h>
14#endif
15
16#include <stdio.h>
17#include "gif_lib.h"
18
19int _GifError = 0;
20
21/*****************************************************************************
22 * Return the last GIF error (0 if none) and reset the error.
23 ****************************************************************************/
24int
25GifLastError(void) {
26    int i = _GifError;
27
28    _GifError = 0;
29
30    return i;
31}
32#ifndef _GBA_NO_FILEIO
33
34/*****************************************************************************
35 * Print the last GIF error to stderr.
36 ****************************************************************************/
37void
38PrintGifError(void) {
39    char *Err;
40
41    switch (_GifError) {
42      case E_GIF_ERR_OPEN_FAILED:
43        Err = "Failed to open given file";
44        break;
45      case E_GIF_ERR_WRITE_FAILED:
46        Err = "Failed to Write to given file";
47        break;
48      case E_GIF_ERR_HAS_SCRN_DSCR:
49        Err = "Screen Descriptor already been set";
50        break;
51      case E_GIF_ERR_HAS_IMAG_DSCR:
52        Err = "Image Descriptor is still active";
53        break;
54      case E_GIF_ERR_NO_COLOR_MAP:
55        Err = "Neither Global Nor Local color map";
56        break;
57      case E_GIF_ERR_DATA_TOO_BIG:
58        Err = "#Pixels bigger than Width * Height";
59        break;
60      case E_GIF_ERR_NOT_ENOUGH_MEM:
61        Err = "Fail to allocate required memory";
62        break;
63      case E_GIF_ERR_DISK_IS_FULL:
64        Err = "Write failed (disk full?)";
65        break;
66      case E_GIF_ERR_CLOSE_FAILED:
67        Err = "Failed to close given file";
68        break;
69      case E_GIF_ERR_NOT_WRITEABLE:
70        Err = "Given file was not opened for write";
71        break;
72      case D_GIF_ERR_OPEN_FAILED:
73        Err = "Failed to open given file";
74        break;
75      case D_GIF_ERR_READ_FAILED:
76        Err = "Failed to Read from given file";
77        break;
78      case D_GIF_ERR_NOT_GIF_FILE:
79        Err = "Given file is NOT GIF file";
80        break;
81      case D_GIF_ERR_NO_SCRN_DSCR:
82        Err = "No Screen Descriptor detected";
83        break;
84      case D_GIF_ERR_NO_IMAG_DSCR:
85        Err = "No Image Descriptor detected";
86        break;
87      case D_GIF_ERR_NO_COLOR_MAP:
88        Err = "Neither Global Nor Local color map";
89        break;
90      case D_GIF_ERR_WRONG_RECORD:
91        Err = "Wrong record type detected";
92        break;
93      case D_GIF_ERR_DATA_TOO_BIG:
94        Err = "#Pixels bigger than Width * Height";
95        break;
96      case D_GIF_ERR_NOT_ENOUGH_MEM:
97        Err = "Fail to allocate required memory";
98        break;
99      case D_GIF_ERR_CLOSE_FAILED:
100        Err = "Failed to close given file";
101        break;
102      case D_GIF_ERR_NOT_READABLE:
103        Err = "Given file was not opened for read";
104        break;
105      case D_GIF_ERR_IMAGE_DEFECT:
106        Err = "Image is defective, decoding aborted";
107        break;
108      case D_GIF_ERR_EOF_TOO_SOON:
109        Err = "Image EOF detected, before image complete";
110        break;
111      default:
112        Err = NULL;
113        break;
114    }
115    if (Err != NULL)
116        fprintf(stderr, "\nGIF-LIB error: %s.\n", Err);
117    else
118        fprintf(stderr, "\nGIF-LIB undefined error %d.\n", _GifError);
119}
120#endif /* _GBA_NO_FILEIO */
121