src/lib/error.c
author Tero Marttila <terom@fixme.fi>
Tue, 29 Dec 2009 16:44:48 +0200
changeset 17 baf3fe7c6354
child 18 f92a24ab046e
permissions -rw-r--r--
add library error codes, and fix image fopen error handling
17
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     1
#include "error.h"
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     2
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     3
const char *error_names[PT_ERR_MAX] = {
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     4
    [PT_SUCCESS]                = "Success",
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     5
    [PT_ERR_MEM]                = "malloc()",
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     6
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     7
    [PT_ERR_PATH]               = "path",
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     8
    [PT_ERR_OPEN_MODE]          = "open_mode",
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
     9
    
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    10
    [PT_ERR_IMG_STAT]           = "stat(.png)",
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    11
    [PT_ERR_IMG_FOPEN]          = "fopen(.png)",
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    12
    
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    13
    [PT_ERR_PNG_CREATE]         = "png_create()",
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    14
    [PT_ERR_PNG]                = "png_*()",
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    15
   
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    16
    [PT_ERR_CACHE_STAT]         = "stat(.cache)",
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    17
    [PT_ERR_CACHE_OPEN_READ]    = "open(.cache)",
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    18
    [PT_ERR_CACHE_OPEN_TMP]     = "open(.tmp)",
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    19
    [PT_ERR_CACHE_SEEK]         = "seek(.cache)",
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    20
    [PT_ERR_CACHE_READ]         = "read(.cache)",
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    21
    [PT_ERR_CACHE_WRITE]        = "write(.cache)",
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    22
    [PT_ERR_CACHE_TRUNC]        = "truncate(.cache)",
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    23
    [PT_ERR_CACHE_MMAP]         = "mmap(.cache)",
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    24
    [PT_ERR_CACHE_RENAME_TMP]   = "rename(.tmp, .cache)",
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    25
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    26
    [PT_ERR_TILE_CLIP]          = "Tile outside of image",
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    27
};
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    28
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    29
const char *pt_strerror (int err)
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    30
{
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    31
    if (err < 0)
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    32
        err = -err;
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    33
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    34
    if (err < PT_SUCCESS || err >= PT_ERR_MAX)
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    35
        return "Unknown error";
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    36
    else
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    37
        return error_names[err];
baf3fe7c6354 add library error codes, and fix image fopen error handling
Tero Marttila <terom@fixme.fi>
parents:
diff changeset
    38
}