[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [32676] trunk/blender/source/blender: bugfix [#24357] Font folder can be specified but is not opened

Campbell Barton ideasman42 at gmail.com
Sun Oct 24 09:03:11 CEST 2010


Revision: 32676
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=32676
Author:   campbellbarton
Date:     2010-10-24 09:02:19 +0200 (Sun, 24 Oct 2010)

Log Message:
-----------
bugfix [#24357] Font folder can be specified but is not opened
- open operator was incorrectly checking if the font path was set.
- rna ID editable check was also incorrect, checking the ID name rather then the filename.
- use define FO_BUILTIN_NAME rather then "<builtin>".

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/font.c
    trunk/blender/source/blender/blenkernel/intern/packedFile.c
    trunk/blender/source/blender/blenlib/intern/bpath.c
    trunk/blender/source/blender/blenloader/intern/readfile.c
    trunk/blender/source/blender/editors/curve/editfont.c
    trunk/blender/source/blender/editors/interface/interface_draw.c
    trunk/blender/source/blender/makesdna/DNA_vfont_types.h
    trunk/blender/source/blender/makesrna/intern/rna_ID.c

Modified: trunk/blender/source/blender/blenkernel/intern/font.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/font.c	2010-10-24 06:16:44 UTC (rev 32675)
+++ trunk/blender/source/blender/blenkernel/intern/font.c	2010-10-24 07:02:19 UTC (rev 32676)
@@ -305,7 +305,7 @@
 	if (!vfont->data) {
 		PackedFile *pf;
 		
-		if (BLI_streq(vfont->name, "<builtin>")) {
+		if (strcmp(vfont->name, FO_BUILTIN_NAME)==0) {
 			pf= get_builtin_packedfile();
 		} else {
 			if (vfont->packedfile) {
@@ -342,7 +342,7 @@
 			if(!pf) {
 				printf("Font file doesn't exist: %s\n", vfont->name);
 
-				strcpy(vfont->name, "<builtin>");
+				strcpy(vfont->name, FO_BUILTIN_NAME);
 				pf= get_builtin_packedfile();
 			}
 		}
@@ -367,7 +367,7 @@
 	int is_builtin;
 	struct TmpFont *tmpfnt;
 	
-	if (BLI_streq(name, "<builtin>")) {
+	if (strcmp(name, FO_BUILTIN_NAME)==0) {
 		strcpy(filename, name);
 		
 		pf= get_builtin_packedfile();
@@ -403,8 +403,8 @@
 				vfont->packedfile = pf;
 			}
 			
-			// Do not add <builtin> to temporary listbase
-			if(strcmp(filename, "<builtin>"))
+			// Do not add FO_BUILTIN_NAME to temporary listbase
+			if(strcmp(filename, FO_BUILTIN_NAME))
 			{
 				tmpfnt= (struct TmpFont *) MEM_callocN(sizeof(struct TmpFont), "temp_font");
 				tmpfnt->pf= tpf;
@@ -443,10 +443,10 @@
 	VFont *vf;
 	
 	for (vf= G.main->vfont.first; vf; vf= vf->id.next)
-		if (BLI_streq(vf->name, "<builtin>"))
+		if (strcmp(vf->name, FO_BUILTIN_NAME)==0)
 			return vf;
 	
-	return load_vfont("<builtin>");
+	return load_vfont(FO_BUILTIN_NAME);
 }
 
 static VChar *find_vfont_char(VFontData *vfd, intptr_t character)
@@ -781,10 +781,10 @@
 
 		/*
 		 * The character wasn't in the current curve base so load it
-		 * But if the font is <builtin> then do not try loading since
+		 * But if the font is FO_BUILTIN_NAME then do not try loading since
 		 * whole font is in the memory already
 		 */
-		if(che == NULL && strcmp(vfont->name, "<builtin>"))	{
+		if(che == NULL && strcmp(vfont->name, FO_BUILTIN_NAME))	{
 			BLI_vfontchar_from_freetypefont(vfont, ascii);
 		}
 

Modified: trunk/blender/source/blender/blenkernel/intern/packedFile.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/packedFile.c	2010-10-24 06:16:44 UTC (rev 32675)
+++ trunk/blender/source/blender/blenkernel/intern/packedFile.c	2010-10-24 07:02:19 UTC (rev 32676)
@@ -227,7 +227,7 @@
 	}
 
 	for(vf=bmain->vfont.first; vf; vf=vf->id.next)
-		if(vf->packedfile == NULL && vf->id.lib==NULL && strcmp(vf->name, "<builtin>") != 0)
+		if(vf->packedfile == NULL && vf->id.lib==NULL && strcmp(vf->name, FO_BUILTIN_NAME) != 0)
 			vf->packedfile = newPackedFile(reports, vf->name);
 
 	for(sound=bmain->sound.first; sound; sound=sound->id.next)

Modified: trunk/blender/source/blender/blenlib/intern/bpath.c
===================================================================
--- trunk/blender/source/blender/blenlib/intern/bpath.c	2010-10-24 06:16:44 UTC (rev 32675)
+++ trunk/blender/source/blender/blenlib/intern/bpath.c	2010-10-24 07:02:19 UTC (rev 32676)
@@ -171,7 +171,7 @@
 		vf = vf->id.next;
 	
 	while (vf) {
-		if (vf->packedfile==NULL && BLI_streq(vf->name, "<builtin>")==0) {
+		if (vf->packedfile==NULL && strcmp(vf->name, FO_BUILTIN_NAME)!=0) {
 			break;
 		}
 		

Modified: trunk/blender/source/blender/blenloader/intern/readfile.c
===================================================================
--- trunk/blender/source/blender/blenloader/intern/readfile.c	2010-10-24 06:16:44 UTC (rev 32675)
+++ trunk/blender/source/blender/blenloader/intern/readfile.c	2010-10-24 07:02:19 UTC (rev 32676)
@@ -7269,8 +7269,8 @@
 		Object *ob;
 
 		for (vf= main->vfont.first; vf; vf= vf->id.next) {
-			if (BLI_streq(vf->name+strlen(vf->name)-6, ".Bfont")) {
-				strcpy(vf->name, "<builtin>");
+			if (strcmp(vf->name+strlen(vf->name)-6, ".Bfont")==0) {
+				strcpy(vf->name, FO_BUILTIN_NAME);
 			}
 		}
 

Modified: trunk/blender/source/blender/editors/curve/editfont.c
===================================================================
--- trunk/blender/source/blender/editors/curve/editfont.c	2010-10-24 06:16:44 UTC (rev 32675)
+++ trunk/blender/source/blender/editors/curve/editfont.c	2010-10-24 07:02:19 UTC (rev 32676)
@@ -1696,7 +1696,8 @@
 		cu = ob->data;
 		font = cu->vfont;
 	}
-	path = (font && font->name)? font->name: U.fontdir;
+	printf("%s\n", font->name);
+	path = (font && strcmp(font->name, FO_BUILTIN_NAME) != 0)? font->name: U.fontdir;
 	 
 	if(RNA_property_is_set(op->ptr, "filepath"))
 		return open_exec(C, op);
@@ -1737,7 +1738,7 @@
 	if (ob->type != OB_FONT) return 0;
 	
 	cu = ob->data;
-	if (cu && strcmp(cu->vfont->name, "<builtin>")==0) return 0;
+	if (cu && strcmp(cu->vfont->name, FO_BUILTIN_NAME)==0) return 0;
 	return 1;
 }
 
@@ -1755,7 +1756,7 @@
 		return OPERATOR_CANCELLED;
 	}
 	
-	if (strcmp(font->name, "<builtin>")==0) {
+	if (strcmp(font->name, FO_BUILTIN_NAME)==0) {
 		BKE_report(op->reports, RPT_WARNING, "Can't unlink the default builtin font.");
 		return OPERATOR_FINISHED;
 	}

Modified: trunk/blender/source/blender/editors/interface/interface_draw.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_draw.c	2010-10-24 06:16:44 UTC (rev 32675)
+++ trunk/blender/source/blender/editors/interface/interface_draw.c	2010-10-24 07:02:19 UTC (rev 32676)
@@ -517,7 +517,7 @@
 	int charmax = G.charmax;
 	
 	/* <builtin> font in use. There are TTF <builtin> and non-TTF <builtin> fonts */
-	if(!strcmp(G.selfont->name, "<builtin>"))
+	if(!strcmp(G.selfont->name, FO_BUILTIN_NAME))
 	{
 		if(G.ui_international == TRUE)
 		{
@@ -548,8 +548,8 @@
 
 	cs = G.charstart;
 
-	/* Set the font, in case it is not <builtin> font */
-	if(G.selfont && strcmp(G.selfont->name, "<builtin>"))
+	/* Set the font, in case it is not FO_BUILTIN_NAME font */
+	if(G.selfont && strcmp(G.selfont->name, FO_BUILTIN_NAME))
 	{
 		char tmpStr[256];
 
@@ -605,9 +605,9 @@
 			memset(wstr, 0, sizeof(wchar_t)*2);
 			memset(ustr, 0, 16);
 
-			// Set the font to be either unicode or <builtin>				
+			// Set the font to be either unicode or FO_BUILTIN_NAME	
 			wstr[0] = cs;
-			if(strcmp(G.selfont->name, "<builtin>"))
+			if(strcmp(G.selfont->name, FO_BUILTIN_NAME))
 			{
 				wcs2utf8s((char *)ustr, (wchar_t *)wstr);
 			}
@@ -624,7 +624,7 @@
 				}
 			}
 
-			if((G.selfont && strcmp(G.selfont->name, "<builtin>")) || (G.selfont && !strcmp(G.selfont->name, "<builtin>") && G.ui_international == TRUE))
+			if((G.selfont && strcmp(G.selfont->name, FO_BUILTIN_NAME)) || (G.selfont && !strcmp(G.selfont->name, FO_BUILTIN_NAME) && G.ui_international == TRUE))
 			{
 				float wid;
 				float llx, lly, llz, urx, ury, urz;

Modified: trunk/blender/source/blender/makesdna/DNA_vfont_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_vfont_types.h	2010-10-24 06:16:44 UTC (rev 32675)
+++ trunk/blender/source/blender/makesdna/DNA_vfont_types.h	2010-10-24 07:02:19 UTC (rev 32676)
@@ -55,5 +55,6 @@
 #define FO_PAGEDOWN		9
 #define FO_SELCHANGE	10
 
+#define FO_BUILTIN_NAME "<builtin>"
 #endif
 

Modified: trunk/blender/source/blender/makesrna/intern/rna_ID.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_ID.c	2010-10-24 06:16:44 UTC (rev 32675)
+++ trunk/blender/source/blender/makesrna/intern/rna_ID.c	2010-10-24 07:02:19 UTC (rev 32676)
@@ -29,6 +29,7 @@
 #include "RNA_define.h"
 
 #include "DNA_ID.h"
+#include "DNA_vfont_types.h"
 
 #include "WM_types.h"
 
@@ -98,7 +99,8 @@
 	ID *id= (ID*)ptr->data;
 	
 	if (GS(id->name) == ID_VF) {
-		if (strcmp(id->name+2, "<builtin>")==0)
+		VFont *vf= (VFont *)id;
+		if (strcmp(vf->name, FO_BUILTIN_NAME)==0)
 			return 0;
 	}
 	





More information about the Bf-blender-cvs mailing list