int main(int argc, char *argv[])
{
- char src[MAXSTR];
- char dst[MAXSTR];
+ char src[MAXSTR] = "";
+ char dst[MAXSTR] = "";
struct s_file f;
fs_file fin;
if (!fs_init(argv[0]))
{
- fprintf(stderr, "Failure to initialize virtual file system\n");
+ fprintf(stderr, "Failure to initialize virtual file system: %s\n",
+ fs_error());
return 1;
}
if (argc > 3 && strcmp(argv[3], "--debug") == 0)
debug_output = 1;
- fs_add_path (dir_name(input_file));
- fs_set_write_dir(dir_name(input_file));
-
- strncpy(src, base_name(input_file, NULL), MAXSTR);
- strncpy(dst, src, MAXSTR);
+ strncpy(src, argv[1], MAXSTR - 1);
+ strncpy(dst, argv[1], MAXSTR - 1);
if (strcmp(dst + strlen(dst) - 4, ".map") == 0)
strcpy(dst + strlen(dst) - 4, ".sol");
else
strcat(dst, ".sol");
- if ((fin = fs_open(src, "r")))
+ fs_add_path (dir_name(src));
+ fs_set_write_dir(dir_name(dst));
+
+ if ((fin = fs_open(base_name(src, NULL), "r")))
{
if (!fs_add_path_with_archives(argv[2]))
{
node_file(&f);
dump_file(&f, dst);
- sol_stor(&f, dst);
+ sol_stor(&f, base_name(dst, NULL));
fs_close(fin);