Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCampbell Barton <ideasman42@gmail.com>2017-10-19 15:57:03 +0300
committerCampbell Barton <ideasman42@gmail.com>2017-10-19 16:10:40 +0300
commit9ee8319cd589bd7605f45293b17a682c4daf5ec0 (patch)
treea6d5f955d9afc50a16b77bba4d4d3b3622fb5763 /source/creator
parent1cddab18ded9489f2f29b0655698f2e2e4e2076a (diff)
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.
Diffstat (limited to 'source/creator')
-rw-r--r--source/creator/creator_args.c18
1 files changed, 13 insertions, 5 deletions
diff --git a/source/creator/creator_args.c b/source/creator/creator_args.c
index 21d03cc8265..322b93f4f42 100644
--- a/source/creator/creator_args.c
+++ b/source/creator/creator_args.c
@@ -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;