|
7 | 7 | #include <string.h> |
8 | 8 | #include <sys/stat.h> |
9 | 9 | #include <unistd.h> |
| 10 | +#include <ctype.h> |
10 | 11 |
|
11 | 12 | #include "romimg.h" |
12 | 13 |
|
@@ -34,13 +35,15 @@ static void DisplayROMImgDetails(const ROMIMG *ROMImg) |
34 | 35 |
|
35 | 36 | static void DisplaySyntaxHelp(void) |
36 | 37 | { |
37 | | - printf(REDBOLD"Syntax error"DEFCOL". Syntax:\n" |
38 | | - "ROMIMG -c <ROM image> <files>\n\tCreate ROM image\n" |
| 38 | + printf("Syntax:\n" |
| 39 | + "ROMIMG -c <ROM image> <files>\n\tCreate ROM image *\n" |
39 | 40 | "ROMIMG -l <ROM image>\n\tList files in ROM image\n" |
40 | | - "ROMIMG -a <ROM image> <file(s)>\n\tAdd file(s) to ROM image\n" |
| 41 | + "ROMIMG -a <ROM image> <file(s)>\n\tAdd file(s) to ROM image *\n" |
41 | 42 | "ROMIMG -d <ROM image> <file(s)>\n\tDelete file(s) from ROM image\n" |
42 | 43 | "ROMIMG -x <ROM image>\n\tExtract all files from ROM image\n" |
43 | | - "ROMIMG -x <ROM image> <file>\n\tExtract file from ROM image\n"); |
| 44 | + "ROMIMG -x <ROM image> <file>\n\tExtract file from ROM image\n" |
| 45 | + "\n note*: write the switch in uppercase to perform filename transformation (eg: 'ioman.irx' > 'IOMAN')\n" |
| 46 | + ); |
44 | 47 | } |
45 | 48 |
|
46 | 49 | static void DisplayAddDeleteOperationResult(int result, const char *InvolvedFile) |
@@ -80,31 +83,30 @@ int main(int argc, char **argv) |
80 | 83 |
|
81 | 84 | if (argc < 2) { |
82 | 85 | DisplaySyntaxHelp(); |
83 | | - DPRINTF("ERROR: LESS THAN TWO ARGS PROVIDED\n"); |
84 | 86 | return EINVAL; |
85 | 87 | } |
86 | 88 |
|
87 | | - if (argc >= 4 && strcmp(argv[1], "-c") == 0) { |
| 89 | + if (argc >= 4 && strcasecmp(argv[1], "-c") == 0) { |
88 | 90 | if ((result = CreateBlankROMImg(argv[2], &ROMImg)) == 0) { |
89 | 91 | for (FilesAffected = 0, i = 0; i < argc - 3; i++) { |
90 | 92 | printf("Adding file '%s'", argv[3 + i]); |
91 | | - if ((result = AddFile(&ROMImg, argv[3 + i])) == 0) |
| 93 | + if ((result = AddFile(&ROMImg, argv[3 + i], isupper(argv[1][1]))) == 0) |
92 | 94 | FilesAffected++; |
93 | 95 | printf(result == 0 ? GRNBOLD" done!"DEFCOL"\n" : REDBOLD" failed!"DEFCOL"\n"); |
94 | 96 | } |
95 | 97 |
|
96 | 98 | if (FilesAffected > 0) { |
97 | | - printf("Writing image..."); |
| 99 | + printf("Writing image... "); |
98 | 100 | printf("%s", (result = WriteROMImg(argv[2], &ROMImg)) == 0 ? GRNBOLD"done!"DEFCOL"\n" : REDBOLD"failed!"DEFCOL"\n"); |
99 | 101 | } |
100 | 102 | UnloadROMImg(&ROMImg); |
101 | 103 | } else |
102 | 104 | ERROR("(Internal fault) Can't create blank image file: %d (%s). Please report.\n", result, strerror(result)); |
103 | | - } else if (argc >= 4 && strcmp(argv[1], "-a") == 0) { |
| 105 | + } else if (argc >= 4 && strcasecmp(argv[1], "-a") == 0) { |
104 | 106 | if ((result = LoadROMImg(&ROMImg, argv[2])) == 0) { |
105 | 107 | for (i = 0, FilesAffected = 0; i < argc - 3; i++) { |
106 | 108 | printf("Adding file '%s'", argv[3 + i]); |
107 | | - if ((result = AddFile(&ROMImg, argv[3 + i])) == 0) |
| 109 | + if ((result = AddFile(&ROMImg, argv[3 + i], isupper(argv[1][1]))) == 0) |
108 | 110 | FilesAffected++; |
109 | 111 | DisplayAddDeleteOperationResult(result, argv[3 + i]); |
110 | 112 | } |
|
0 commit comments