Exit with invalid command line arguments
Loading blender with an unknown name would interpret it as a blend file. This meant passing `--arg` arguments would end up creating new blend files which could be confusing if you made a typo on a command line argument. Now check the string has a blend file extension, exiting if it doesn't.
This commit is contained in:
@@ -44,6 +44,8 @@
|
||||
#include "BLI_fileops.h"
|
||||
#include "BLI_mempool.h"
|
||||
|
||||
#include "BLO_readfile.h" /* only for BLO_has_bfile_extension */
|
||||
|
||||
#include "BKE_blender_version.h"
|
||||
#include "BKE_context.h"
|
||||
|
||||
@@ -1764,11 +1766,17 @@ static int arg_handle_load_file(int UNUSED(argc), const char **argv, void *data)
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* Just pretend a file was loaded, so the user can press Save and it'll save at the filename from the CLI. */
|
||||
BLI_strncpy(G.main->name, filename, FILE_MAX);
|
||||
G.relbase_valid = true;
|
||||
G.save_over = true;
|
||||
printf("... opened default scene instead; saving will write to %s\n", filename);
|
||||
if (BLO_has_bfile_extension(filename)) {
|
||||
/* Just pretend a file was loaded, so the user can press Save and it'll save at the filename from the CLI. */
|
||||
BLI_strncpy(G.main->name, filename, FILE_MAX);
|
||||
G.relbase_valid = true;
|
||||
G.save_over = true;
|
||||
printf("... opened default scene instead; saving will write to: %s\n", filename);
|
||||
}
|
||||
else {
|
||||
printf("Error: argument has no '.blend' file extension, not using as new file, exiting! %s\n", filename);
|
||||
exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
G.file_loaded = 1;
|
||||
|
||||
Reference in New Issue
Block a user