[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [59625] trunk/blender/source/blender: default blend file name setting (untitled.blend) length check wasn' t correct, move to generic function BLI_ensure_filename().
Campbell Barton
ideasman42 at gmail.com
Thu Aug 29 07:34:59 CEST 2013
Revision: 59625
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=59625
Author: campbellbarton
Date: 2013-08-29 05:34:58 +0000 (Thu, 29 Aug 2013)
Log Message:
-----------
default blend file name setting (untitled.blend) length check wasn't correct, move to generic function BLI_ensure_filename().
Modified Paths:
--------------
trunk/blender/source/blender/blenlib/BLI_path_util.h
trunk/blender/source/blender/blenlib/intern/path_util.c
trunk/blender/source/blender/windowmanager/intern/wm_operators.c
Modified: trunk/blender/source/blender/blenlib/BLI_path_util.h
===================================================================
--- trunk/blender/source/blender/blenlib/BLI_path_util.h 2013-08-29 04:31:55 UTC (rev 59624)
+++ trunk/blender/source/blender/blenlib/BLI_path_util.h 2013-08-29 05:34:58 UTC (rev 59625)
@@ -122,6 +122,7 @@
bool BLI_testextensie_glob(const char *str, const char *ext_fnmatch);
bool BLI_replace_extension(char *path, size_t maxlen, const char *ext);
bool BLI_ensure_extension(char *path, size_t maxlen, const char *ext);
+bool BLI_ensure_filename(char *filepath, size_t maxlen, const char *filename);
void BLI_uniquename(struct ListBase *list, void *vlink, const char *defname, char delim, short name_offs, short len);
bool BLI_uniquename_cb(bool (*unique_check)(void *arg, const char *name),
void *arg, const char * defname, char delim, char *name, short name_len);
Modified: trunk/blender/source/blender/blenlib/intern/path_util.c
===================================================================
--- trunk/blender/source/blender/blenlib/intern/path_util.c 2013-08-29 04:31:55 UTC (rev 59624)
+++ trunk/blender/source/blender/blenlib/intern/path_util.c 2013-08-29 05:34:58 UTC (rev 59625)
@@ -1641,6 +1641,16 @@
return true;
}
+bool BLI_ensure_filename(char *filepath, size_t maxlen, const char *filename)
+{
+ char *c = (char *)BLI_last_slash(filepath);
+ if (!c || ((c - filepath) < maxlen - (strlen(filename) + 1))) {
+ strcpy(c ? &c[1] : filepath, filename);
+ return true;
+ }
+ return false;
+}
+
/* Converts "/foo/bar.txt" to "/foo/" and "bar.txt"
* - wont change 'string'
* - wont create any directories
Modified: trunk/blender/source/blender/windowmanager/intern/wm_operators.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm_operators.c 2013-08-29 04:31:55 UTC (rev 59624)
+++ trunk/blender/source/blender/windowmanager/intern/wm_operators.c 2013-08-29 05:34:58 UTC (rev 59625)
@@ -2419,15 +2419,10 @@
/* *************** save file as **************** */
-static void untitled(char *filepath)
+static void wm_filepath_default(char *filepath)
{
- if (G.save_over == 0 && strlen(filepath) < FILE_MAX - 16) {
- char *c = (char *)BLI_last_slash(filepath);
-
- if (c)
- strcpy(&c[1], "untitled.blend");
- else
- strcpy(filepath, "untitled.blend");
+ if (G.save_over == false) {
+ BLI_ensure_filename(filepath, FILE_MAX, "untitled.blend");
}
}
@@ -2455,7 +2450,7 @@
else
BLI_strncpy(name, G.main->name, FILE_MAX);
- untitled(name);
+ wm_filepath_default(name);
RNA_string_set(op->ptr, "filepath", name);
WM_event_add_fileselect(C, op);
@@ -2471,11 +2466,12 @@
save_set_compress(op);
- if (RNA_struct_property_is_set(op->ptr, "filepath"))
+ if (RNA_struct_property_is_set(op->ptr, "filepath")) {
RNA_string_get(op->ptr, "filepath", path);
+ }
else {
BLI_strncpy(path, G.main->name, FILE_MAX);
- untitled(path);
+ wm_filepath_default(path);
}
fileflags = G.fileflags & ~G_FILE_USERPREFS;
@@ -2566,7 +2562,7 @@
else
BLI_strncpy(name, G.main->name, FILE_MAX);
- untitled(name);
+ wm_filepath_default(name);
RNA_string_set(op->ptr, "filepath", name);
More information about the Bf-blender-cvs
mailing list