1 /******************************* LICENCE **************************************
2 * Any code in this file may be redistributed or modified under the terms of
3 * the GNU General Public Licence as published by the Free Software
4 * Foundation; version 2 of the licence.
5 ****************************** END LICENCE ***********************************/
6 
7 /******************************************************************************
8 * Author:
9 * Andrew Smith, http://littlesvr.ca/misc/contactandrew.php
10 *
11 * Contributors:
12 *
13 ******************************************************************************/
14 
15 #include <stdio.h>
16 #include <sys/types.h>
17 
18 #include "bkInternal.h"
19 #include "bkError.h"
20 
21 struct MessageStruct
22 {
23     int number;
24     const char* text;
25 };
26 
27 const struct MessageStruct messageStructs[] =
28 {
29     { BKERROR_READ_GENERIC, BKERROR_READ_GENERIC_TEXT },
30     { BKERROR_DIR_NOT_FOUND_ON_IMAGE, BKERROR_DIR_NOT_FOUND_ON_IMAGE_TEXT },
31     { BKERROR_MAX_NAME_LENGTH_EXCEEDED, BKERROR_MAX_NAME_LENGTH_EXCEEDED_TEXT },
32     { BKERROR_STAT_FAILED, BKERROR_STAT_FAILED_TEXT },
33     { BKERROR_TARGET_NOT_A_DIR, BKERROR_TARGET_NOT_A_DIR_TEXT },
34     { BKERROR_OUT_OF_MEMORY, BKERROR_OUT_OF_MEMORY_TEXT },
35     { BKERROR_OPENDIR_FAILED, BKERROR_OPENDIR_FAILED_TEXT },
36     { BKERROR_EXOTIC, BKERROR_EXOTIC_TEXT },
37     { BKERROR_FIXME, BKERROR_FIXME_TEXT },
38     { BKERROR_FILE_NOT_FOUND_ON_IMAGE, BKERROR_FILE_NOT_FOUND_ON_IMAGE_TEXT },
39     { BKERROR_MKDIR_FAILED, BKERROR_MKDIR_FAILED_TEXT },
40     { BKERROR_OPEN_WRITE_FAILED, BKERROR_OPEN_WRITE_FAILED_TEXT },
41     { BKERROR_WRITE_GENERIC, BKERROR_WRITE_GENERIC_TEXT },
42     { BKERROR_MANGLE_TOO_MANY_COL, BKERROR_MANGLE_TOO_MANY_COL_TEXT },
43     { BKERROR_MISFORMED_PATH, BKERROR_MISFORMED_PATH_TEXT },
44     { BKERROR_INVALID_UCS2, BKERROR_INVALID_UCS2_TEXT },
45     { BKERROR_UNKNOWN_FILENAME_TYPE, BKERROR_UNKNOWN_FILENAME_TYPE_TEXT },
46     { BKERROR_RR_FILENAME_MISSING, BKERROR_RR_FILENAME_MISSING_TEXT },
47     { BKERROR_VD_NOT_PRIMARY, BKERROR_VD_NOT_PRIMARY_TEXT },
48     { BKERROR_SANITY, BKERROR_SANITY_TEXT },
49     { BKERROR_OPEN_READ_FAILED, BKERROR_OPEN_READ_FAILED_TEXT },
50     { BKERROR_DIRNAME_NEED_TRAILING_SLASH, BKERROR_DIRNAME_NEED_TRAILING_SLASH_TEXT },
51     { BKERROR_EXTRACT_ROOT, BKERROR_EXTRACT_ROOT_TEXT },
52     { BKERROR_DELETE_ROOT, BKERROR_DELETE_ROOT_TEXT },
53     { BKERROR_DUPLICATE_ADD, BKERROR_DUPLICATE_ADD_TEXT },
54     { BKERROR_DUPLICATE_EXTRACT, BKERROR_DUPLICATE_EXTRACT_TEXT },
55     { BKERROR_NO_SPECIAL_FILES, BKERROR_NO_SPECIAL_FILES_TEXT },
56     { BKERROR_NO_POSIX_PRESENT, BKERROR_NO_POSIX_PRESENT_TEXT },
57     { BKERROR_EXTRACT_ABSENT_BOOT_RECORD, BKERROR_EXTRACT_ABSENT_BOOT_RECORD_TEXT },
58     { BKERROR_EXTRACT_UNKNOWN_BOOT_MEDIA, BKERROR_EXTRACT_UNKNOWN_BOOT_MEDIA_TEXT },
59     { BKERROR_ADD_UNKNOWN_BOOT_MEDIA, BKERROR_ADD_UNKNOWN_BOOT_MEDIA_TEXT },
60     { BKERROR_ADD_BOOT_RECORD_WRONG_SIZE, BKERROR_ADD_BOOT_RECORD_WRONG_SIZE_TEXT },
61     { BKERROR_WRITE_BOOT_FILE_4, BKERROR_WRITE_BOOT_FILE_4_TEXT },
62     { BKERROR_DUPLICATE_CREATE_DIR, BKERROR_DUPLICATE_CREATE_DIR_TEXT },
63     { BKERROR_NAME_INVALID_CHAR, BKERROR_NAME_INVALID_CHAR_TEXT },
64     { BKERROR_BLANK_NAME, BKERROR_BLANK_NAME_TEXT },
65     { BKERROR_ADD_FILE_TOO_BIG, BKERROR_ADD_FILE_TOO_BIG_TEXT },
66     { BKERROR_SAVE_OVERWRITE, BKERROR_SAVE_OVERWRITE_TEXT },
67     { BKERROR_OPER_CANCELED_BY_USER, BKERROR_OPER_CANCELED_BY_USER_TEXT },
68     { BKERROR_WRONG_EXTRACT_FILE, BKERROR_WRONG_EXTRACT_FILE_TEXT },
69     { BKERROR_WRITE_CACHE_OVERFLOWED, BKERROR_WRITE_CACHE_OVERFLOWED_TEXT },
70     { BKERROR_CREATE_SYMLINK_FAILED, BKERROR_CREATE_SYMLINK_FAILED_TEXT },
71     { BKERROR_SYMLINK_TARGET_TOO_LONG, BKERROR_SYMLINK_TARGET_TOO_LONG_TEXT },
72     { BKERROR_HARD_LINK_CALL_PARAMS, BKERROR_HARD_LINK_CALL_PARAMS_TEXT },
73     { BKERROR_NAME_INVALID, BKERROR_NAME_INVALID_TEXT },
74     { BKERROR_RENAME_ROOT, BKERROR_RENAME_ROOT_TEXT },
75     { BKERROR_ITEM_NOT_FOUND_ON_IMAGE, BKERROR_ITEM_NOT_FOUND_ON_IMAGE_TEXT },
76     { BKERROR_DUPLICATE_RENAME, BKERROR_DUPLICATE_RENAME_TEXT },
77     { BKERROR_GET_PERM_BAD_PARAM, BKERROR_GET_PERM_BAD_PARAM_TEXT },
78     { BKERROR_EDITED_EXTRACT_TOO_BIG, BKERROR_EDITED_EXTRACT_TOO_BIG_TEXT },
79     { BKERROR_EDITED_WRITE_TOO_BIG, BKERROR_EDITED_WRITE_TOO_BIG_TEXT },
80 
81     { BKWARNING_OPER_PARTLY_FAILED, BKWARNING_OPER_PARTLY_FAILED_TEXT },
82 
83     { BKERROR_END, BKERROR_END_TEXT }
84 };
85 
bk_get_error_string(int errorId)86 const char* bk_get_error_string(int errorId)
87 {
88     int count;
89 
90     for(count = 0; messageStructs[count].number != BKERROR_END; count++)
91     {
92         if(messageStructs[count].number == errorId)
93             break;
94     }
95 
96     if(messageStructs[count].number == BKERROR_END)
97         printf("unknown error %d used\n", errorId);
98 
99     return messageStructs[count].text;
100 }
101