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