1*324bb76bSAndroid Build Coastguard Worker /***************************************************************************** 2*324bb76bSAndroid Build Coastguard Worker 3*324bb76bSAndroid Build Coastguard Worker gif_err.c - handle error reporting for the GIF library. 4*324bb76bSAndroid Build Coastguard Worker 5*324bb76bSAndroid Build Coastguard Worker SPDX-License-Identifier: MIT 6*324bb76bSAndroid Build Coastguard Worker 7*324bb76bSAndroid Build Coastguard Worker ****************************************************************************/ 8*324bb76bSAndroid Build Coastguard Worker 9*324bb76bSAndroid Build Coastguard Worker #include <stdio.h> 10*324bb76bSAndroid Build Coastguard Worker 11*324bb76bSAndroid Build Coastguard Worker #include "gif_lib.h" 12*324bb76bSAndroid Build Coastguard Worker #include "gif_lib_private.h" 13*324bb76bSAndroid Build Coastguard Worker 14*324bb76bSAndroid Build Coastguard Worker /***************************************************************************** 15*324bb76bSAndroid Build Coastguard Worker Return a string description of the last GIF error 16*324bb76bSAndroid Build Coastguard Worker *****************************************************************************/ GifErrorString(int ErrorCode)17*324bb76bSAndroid Build Coastguard Workerconst char *GifErrorString(int ErrorCode) { 18*324bb76bSAndroid Build Coastguard Worker const char *Err; 19*324bb76bSAndroid Build Coastguard Worker 20*324bb76bSAndroid Build Coastguard Worker switch (ErrorCode) { 21*324bb76bSAndroid Build Coastguard Worker case E_GIF_ERR_OPEN_FAILED: 22*324bb76bSAndroid Build Coastguard Worker Err = "Failed to open given file"; 23*324bb76bSAndroid Build Coastguard Worker break; 24*324bb76bSAndroid Build Coastguard Worker case E_GIF_ERR_WRITE_FAILED: 25*324bb76bSAndroid Build Coastguard Worker Err = "Failed to write to given file"; 26*324bb76bSAndroid Build Coastguard Worker break; 27*324bb76bSAndroid Build Coastguard Worker case E_GIF_ERR_HAS_SCRN_DSCR: 28*324bb76bSAndroid Build Coastguard Worker Err = "Screen descriptor has already been set"; 29*324bb76bSAndroid Build Coastguard Worker break; 30*324bb76bSAndroid Build Coastguard Worker case E_GIF_ERR_HAS_IMAG_DSCR: 31*324bb76bSAndroid Build Coastguard Worker Err = "Image descriptor is still active"; 32*324bb76bSAndroid Build Coastguard Worker break; 33*324bb76bSAndroid Build Coastguard Worker case E_GIF_ERR_NO_COLOR_MAP: 34*324bb76bSAndroid Build Coastguard Worker Err = "Neither global nor local color map"; 35*324bb76bSAndroid Build Coastguard Worker break; 36*324bb76bSAndroid Build Coastguard Worker case E_GIF_ERR_DATA_TOO_BIG: 37*324bb76bSAndroid Build Coastguard Worker Err = "Number of pixels bigger than width * height"; 38*324bb76bSAndroid Build Coastguard Worker break; 39*324bb76bSAndroid Build Coastguard Worker case E_GIF_ERR_NOT_ENOUGH_MEM: 40*324bb76bSAndroid Build Coastguard Worker Err = "Failed to allocate required memory"; 41*324bb76bSAndroid Build Coastguard Worker break; 42*324bb76bSAndroid Build Coastguard Worker case E_GIF_ERR_DISK_IS_FULL: 43*324bb76bSAndroid Build Coastguard Worker Err = "Write failed (disk full?)"; 44*324bb76bSAndroid Build Coastguard Worker break; 45*324bb76bSAndroid Build Coastguard Worker case E_GIF_ERR_CLOSE_FAILED: 46*324bb76bSAndroid Build Coastguard Worker Err = "Failed to close given file"; 47*324bb76bSAndroid Build Coastguard Worker break; 48*324bb76bSAndroid Build Coastguard Worker case E_GIF_ERR_NOT_WRITEABLE: 49*324bb76bSAndroid Build Coastguard Worker Err = "Given file was not opened for write"; 50*324bb76bSAndroid Build Coastguard Worker break; 51*324bb76bSAndroid Build Coastguard Worker case D_GIF_ERR_OPEN_FAILED: 52*324bb76bSAndroid Build Coastguard Worker Err = "Failed to open given file"; 53*324bb76bSAndroid Build Coastguard Worker break; 54*324bb76bSAndroid Build Coastguard Worker case D_GIF_ERR_READ_FAILED: 55*324bb76bSAndroid Build Coastguard Worker Err = "Failed to read from given file"; 56*324bb76bSAndroid Build Coastguard Worker break; 57*324bb76bSAndroid Build Coastguard Worker case D_GIF_ERR_NOT_GIF_FILE: 58*324bb76bSAndroid Build Coastguard Worker Err = "Data is not in GIF format"; 59*324bb76bSAndroid Build Coastguard Worker break; 60*324bb76bSAndroid Build Coastguard Worker case D_GIF_ERR_NO_SCRN_DSCR: 61*324bb76bSAndroid Build Coastguard Worker Err = "No screen descriptor detected"; 62*324bb76bSAndroid Build Coastguard Worker break; 63*324bb76bSAndroid Build Coastguard Worker case D_GIF_ERR_NO_IMAG_DSCR: 64*324bb76bSAndroid Build Coastguard Worker Err = "No Image Descriptor detected"; 65*324bb76bSAndroid Build Coastguard Worker break; 66*324bb76bSAndroid Build Coastguard Worker case D_GIF_ERR_NO_COLOR_MAP: 67*324bb76bSAndroid Build Coastguard Worker Err = "Neither global nor local color map"; 68*324bb76bSAndroid Build Coastguard Worker break; 69*324bb76bSAndroid Build Coastguard Worker case D_GIF_ERR_WRONG_RECORD: 70*324bb76bSAndroid Build Coastguard Worker Err = "Wrong record type detected"; 71*324bb76bSAndroid Build Coastguard Worker break; 72*324bb76bSAndroid Build Coastguard Worker case D_GIF_ERR_DATA_TOO_BIG: 73*324bb76bSAndroid Build Coastguard Worker Err = "Number of pixels bigger than width * height"; 74*324bb76bSAndroid Build Coastguard Worker break; 75*324bb76bSAndroid Build Coastguard Worker case D_GIF_ERR_NOT_ENOUGH_MEM: 76*324bb76bSAndroid Build Coastguard Worker Err = "Failed to allocate required memory"; 77*324bb76bSAndroid Build Coastguard Worker break; 78*324bb76bSAndroid Build Coastguard Worker case D_GIF_ERR_CLOSE_FAILED: 79*324bb76bSAndroid Build Coastguard Worker Err = "Failed to close given file"; 80*324bb76bSAndroid Build Coastguard Worker break; 81*324bb76bSAndroid Build Coastguard Worker case D_GIF_ERR_NOT_READABLE: 82*324bb76bSAndroid Build Coastguard Worker Err = "Given file was not opened for read"; 83*324bb76bSAndroid Build Coastguard Worker break; 84*324bb76bSAndroid Build Coastguard Worker case D_GIF_ERR_IMAGE_DEFECT: 85*324bb76bSAndroid Build Coastguard Worker Err = "Image is defective, decoding aborted"; 86*324bb76bSAndroid Build Coastguard Worker break; 87*324bb76bSAndroid Build Coastguard Worker case D_GIF_ERR_EOF_TOO_SOON: 88*324bb76bSAndroid Build Coastguard Worker Err = "Image EOF detected before image complete"; 89*324bb76bSAndroid Build Coastguard Worker break; 90*324bb76bSAndroid Build Coastguard Worker default: 91*324bb76bSAndroid Build Coastguard Worker Err = NULL; 92*324bb76bSAndroid Build Coastguard Worker break; 93*324bb76bSAndroid Build Coastguard Worker } 94*324bb76bSAndroid Build Coastguard Worker return Err; 95*324bb76bSAndroid Build Coastguard Worker } 96*324bb76bSAndroid Build Coastguard Worker 97*324bb76bSAndroid Build Coastguard Worker /* end */ 98