[Bf-blender-cvs] [9ee8319cd58] master: Exit with invalid command line arguments

Campbell Barton noreply at git.blender.org
Thu Oct 19 15:07:46 CEST 2017


Commit: 9ee8319cd589bd7605f45293b17a682c4daf5ec0
Author: Campbell Barton
Date:   Thu Oct 19 23:57:03 2017 +1100
Branches: master
https://developer.blender.org/rB9ee8319cd589bd7605f45293b17a682c4daf5ec0

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.

===================================================================

M	source/creator/creator_args.c

===================================================================

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;



More information about the Bf-blender-cvs mailing list