comparison src/main.c @ 9:d2cd8c5672fa

Increase filename limit 256 bytes is enough for anybody
author Paper <mrpapersonic@gmail.com>
date Wed, 26 Jan 2022 23:12:41 -0500
parents 9d862edfd3cc
children a4e604789e2e
comparison
equal deleted inserted replaced
8:9d862edfd3cc 9:d2cd8c5672fa
71 int main(int argc, char *argv[]) { 71 int main(int argc, char *argv[]) {
72 int c, option_index = 0; 72 int c, option_index = 0;
73 unsigned char magic[16]; 73 unsigned char magic[16];
74 FILE* outfile; 74 FILE* outfile;
75 struct arguments { 75 struct arguments {
76 char input[128]; 76 char input[256];
77 char output[128]; 77 char output[256];
78 int version; 78 int version;
79 char type[128]; 79 char type[256];
80 } args; 80 } args;
81 strcpy(args.input, " "); 81 strcpy(args.input, " ");
82 strcpy(args.output, " "); 82 strcpy(args.output, " ");
83 args.version = -1; 83 args.version = -1;
84 strcpy(args.type, " "); 84 strcpy(args.type, " ");
145 fflush(stdout); 145 fflush(stdout);
146 scanf("%3s", args.type); 146 scanf("%3s", args.type);
147 } 147 }
148 fflush(stdout); 148 fflush(stdout);
149 if (strcmp(args.output, " ") == 0) { /* string manipulation hell */ 149 if (strcmp(args.output, " ") == 0) { /* string manipulation hell */
150 char temp[128] = {'V'}; 150 char temp[256] = {'V'};
151 char str_version[16] = {}; 151 char str_version[16] = {};
152 sprintf(str_version, "%d", args.version); 152 sprintf(str_version, "%d", args.version);
153 strncat(temp, str_version, 2); 153 strncat(temp, str_version, 2);
154 strncat(temp, "_", 1); 154 strncat(temp, "_", 1);
155 strncat(temp, args.input, 120); 155 strncat(temp, args.input, 248);
156 strcpy(temp, strremove(temp, strrchr(args.input, ('.')))); /* remove file extension */ 156 strcpy(temp, strremove(temp, strrchr(args.input, ('.')))); /* remove file extension */
157 strncat(temp, ".", 1); 157 strncat(temp, ".", 1);
158 strncat(temp, args.type, 3); 158 strncat(temp, args.type, 3);
159 strncpy(args.output, temp, 127); 159 strncpy(args.output, temp, 255);
160 } 160 }
161 if (strcmp(args.type, "veg") == 0) { 161 if (strcmp(args.type, "veg") == 0) {
162 const unsigned char T[] = {0xEF, 0x29, 0xC4, 0x46, 0x4A, 0x90, 0xD2, 0x11, 0x87, 0x22, 0x00, 0xC0, 0x4F, 0x8E, 0xDB, 0x8A}; 162 const unsigned char T[] = {0xEF, 0x29, 0xC4, 0x46, 0x4A, 0x90, 0xD2, 0x11, 0x87, 0x22, 0x00, 0xC0, 0x4F, 0x8E, 0xDB, 0x8A};
163 for (option_index = 0; option_index <= 15; option_index++) { 163 for (option_index = 0; option_index <= 15; option_index++) {
164 magic[option_index] = T[option_index]; 164 magic[option_index] = T[option_index];