[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [33094] trunk/blender/source/blender: fix for creating movie paths with non utf8 names.

Campbell Barton ideasman42 at gmail.com
Tue Nov 16 09:53:56 CET 2010


Revision: 33094
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=33094
Author:   campbellbarton
Date:     2010-11-16 09:53:55 +0100 (Tue, 16 Nov 2010)

Log Message:
-----------
fix for creating movie paths with non utf8 names.
button test if non utf8 chars are allowed was inverted.

Modified Paths:
--------------
    trunk/blender/source/blender/blenlib/intern/path_util.c
    trunk/blender/source/blender/editors/interface/interface_handlers.c

Modified: trunk/blender/source/blender/blenlib/intern/path_util.c
===================================================================
--- trunk/blender/source/blender/blenlib/intern/path_util.c	2010-11-16 07:37:53 UTC (rev 33093)
+++ trunk/blender/source/blender/blenlib/intern/path_util.c	2010-11-16 08:53:55 UTC (rev 33094)
@@ -615,9 +615,18 @@
 
 	if (stringframe_chars(path, &ch_sta, &ch_end)) { /* warning, ch_end is the last # +1 */
 		char tmp[FILE_MAX], format[64];
+#if 0	// neat but breaks on non ascii strings.
 		sprintf(format, "%%.%ds%%.%dd_%%.%dd%%s", ch_sta, ch_end-ch_sta, ch_end-ch_sta); /* example result: "%.12s%.5d-%.5d%s" */
 		sprintf(tmp, format, path, sta, end, path+ch_end);
 		strcpy(path, tmp);
+#else
+		char *tmp_pt;
+		BLI_snprintf(format, sizeof(format), "%%.%dd-%%.%dd%%s", digits, digits);
+		memcpy(tmp, path, ch_sta * sizeof(char));
+		tmp_pt = &tmp[ch_sta];
+		tmp_pt += BLI_snprintf(tmp_pt, sizeof(tmp)-ch_sta, format, sta, end, &path[ch_end]);
+		memcpy(path, tmp, (int)(tmp_pt - tmp) + 1);
+#endif
 		return 1;
 	}
 	return 0;

Modified: trunk/blender/source/blender/editors/interface/interface_handlers.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_handlers.c	2010-11-16 07:37:53 UTC (rev 33093)
+++ trunk/blender/source/blender/editors/interface/interface_handlers.c	2010-11-16 08:53:55 UTC (rev 33094)
@@ -1589,7 +1589,7 @@
 static void ui_textedit_end(bContext *C, uiBut *but, uiHandleButtonData *data)
 {
 	if(but) {
-		if(ui_is_utf8_but(but)) {
+		if(!ui_is_utf8_but(but)) {
 			int strip= BLI_utf8_invalid_strip(but->editstr, strlen(but->editstr));
 			/* not a file?, strip non utf-8 chars */
 			if(strip) {





More information about the Bf-blender-cvs mailing list