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:
authorStefan Gartner <stefang@aon.at>2003-05-12 22:12:25 +0400
committerStefan Gartner <stefang@aon.at>2003-05-12 22:12:25 +0400
commiteca049b177e08a0b8a182cc373e2ae225f7f8a11 (patch)
treecabf6402c17f3555afa40d4e56b1bddabd295d70
parent936f7541c47298c326f34548d4142005d5a478e1 (diff)
store locales, .Blanguage, and .bfont.ttf inside of Resources folder of
application bundle on OS X
-rw-r--r--source/blender/ftfont/intern/FTF_TTFont.cpp51
-rw-r--r--source/blender/src/language.c35
-rw-r--r--source/darwin/Makefile7
3 files changed, 52 insertions, 41 deletions
diff --git a/source/blender/ftfont/intern/FTF_TTFont.cpp b/source/blender/ftfont/intern/FTF_TTFont.cpp
index 819d5e8ef66..d930ed3d654 100644
--- a/source/blender/ftfont/intern/FTF_TTFont.cpp
+++ b/source/blender/ftfont/intern/FTF_TTFont.cpp
@@ -41,14 +41,13 @@
#include "libintl.h"
#include "BLI_blenlib.h"
-#ifdef __APPLE__
-#include <libgen.h>
-#endif
-
#include "../FTF_Settings.h"
#include "FTF_TTFont.h"
+#include "BKE_utildefines.h"
+#include "BLI_blenlib.h"
+
#define DOMAIN_NAME "blender"
#define SYSTEM_ENCODING_DEFAULT "UTF-8"
@@ -57,8 +56,6 @@
#define FTF_MAX_STR_SIZE 256
-extern char bprogname[];
-
int utf8towchar(wchar_t *w, char *c)
{
int len=0;
@@ -104,7 +101,7 @@ int utf8towchar(wchar_t *w, char *c)
FTF_TTFont::FTF_TTFont(void)
{
#ifdef __APPLE__
- char tmp[1024];
+ char *bundlepath;
#endif
font=NULL;
@@ -117,33 +114,26 @@ FTF_TTFont::FTF_TTFont(void)
#define LOCALEDIR "/usr/share/locale"
#endif
- BLI_make_file_string("/", messagepath, BLI_gethome(), ".blender/locale");
-printf("1. %s\n", messagepath);
- if (BLI_exist(messagepath) == NULL) { // locale not in home dir
-
- strcpy(messagepath, ".blender/locale");
-printf("2. %s\n", messagepath);
- if(BLI_exist(messagepath) == NULL) { // locale not in current dir
-
- strcpy(messagepath, LOCALEDIR);
-printf("3. %s\n", messagepath);
- if(BLI_exist(messagepath) == NULL) { // locale not in LOCALEDIR
-
+ strcpy(messagepath, ".blender/locale");
+ if (BLI_exist(messagepath) == NULL) { // locale not in current dir
+ BLI_make_file_string("/", messagepath, BLI_gethome(), ".blender/locale");
+
+ if(BLI_exist(messagepath) == NULL) { // locale not in home dir
#ifdef __APPLE__
- /* message catalogs are stored inside the application bundle */
- strcpy(tmp, dirname(bprogname));
- strcat(tmp, "/../Resources/message");
- realpath(tmp, messagepath);
-printf("4. %s\n", messagepath);
- if(BLI_exist(messagepath) == NULL) { // locale not in bundle dir
+ /* message catalogs are stored inside the application bundle */
+ bundlepath = BLI_getbundle();
+ strcpy(messagepath, bundlepath);
+ strcat(messagepath, "/Contents/Resources/locale");
+ if(BLI_exist(messagepath) == NULL) { // locale not in bundle (now that's odd..)
#endif
-
+ strcpy(messagepath, LOCALEDIR);
+
+ if(BLI_exist(messagepath) == NULL) { // locale not in LOCALEDIR
strcpy(messagepath, "message"); // old compatibility as last
-printf("5. %s\n", messagepath);
}
#ifdef __APPLE__
- } // heh
+ }
#endif
}
}
@@ -193,12 +183,9 @@ void FTF_TTFont::SetLanguage(char* str)
gettext_putenv(envstr);
#else
putenv(envstr);
- setlocale(LC_ALL, str);
#endif
#else
- char *locreturn;
-
- locreturn = setlocale(LC_ALL, str);
+ char *locreturn = setlocale(LC_ALL, str);
if (locreturn == NULL) {
printf("could not change language to %s\n", str);
}
diff --git a/source/blender/src/language.c b/source/blender/src/language.c
index bb1ca0b8705..416b87f8a28 100644
--- a/source/blender/src/language.c
+++ b/source/blender/src/language.c
@@ -128,7 +128,7 @@ void lang_setlanguage(void) {
LANGMenuEntry *lme;
lme = find_language(U.language);
- if(lme) FTF_SetLanguage(lme->code);
+ if(lme) FTF_SetLanguage(lme->code);
else FTF_SetLanguage("en_US");
}
@@ -154,11 +154,14 @@ void set_interface_font(char *str) {
void start_interface_font(void) {
char tstr[FILE_MAXDIR+FILE_MAXFILE];
int result = 0;
-
+#ifdef __APPLE__
+ char *bundlepath;
+#endif
+
/* hack to find out if we have saved language/font settings.
if not, set defaults and try .bfont.tff --phase */
- if(U.fontsize != 0) { // we have saved user settings
+ if(U.fontsize != 0) { // we have saved user settings
// try load the font from the font dir
BLI_make_file_string("/", tstr, U.fontdir, U.fontname);
result = FTF_SetFont(tstr, U.fontsize);
@@ -170,9 +173,20 @@ void start_interface_font(void) {
U.language= 0;
U.fontsize= 11;
U.encoding= 0;
+
+#ifdef __APPLE__
+ bundlepath = BLI_getbundle();
+ strcpy(tstr, bundlepath);
+ strcat(tstr, "/Contents/Resources/");
+ strcat(tstr, ".bfont.ttf");
+ result = FTF_SetFont(tstr, U.fontsize);
+
+ sprintf(U.fontname, ".blender/.bfont.ttf\0");
+#else
sprintf(U.fontname, ".blender/.bfont.ttf\0");
result = FTF_SetFont(U.fontname, U.fontsize);
+#endif
}
if(result) {
@@ -250,15 +264,22 @@ void puplang_insert_entry(char *line)
int read_languagefile(void) {
char name[FILE_MAXDIR+FILE_MAXFILE];
LinkNode *l, *lines;
-
+
/* .Blanguages */
-
BLI_make_file_string("/", name, BLI_gethome(), ".Blanguages");
+
lines= BLI_read_file_as_lines(name);
if(lines == NULL) {
- /* If not found in home, try .blender dir */
- strcpy(name, ".blender\\.Blanguages");
+ /* If not found in home, try current dir
+ * (Resources folder of app bundle on OS X) */
+#ifdef __APPLE__
+ char *bundlePath = BLI_getbundle();
+ strcpy(name, bundlePath);
+ strcat(name, "/Contents/Resources/.Blanguages");
+#else
+ strcpy(name, ".blender/.Blanguages");
+#endif
lines= BLI_read_file_as_lines(name);
if(lines == NULL) {
diff --git a/source/darwin/Makefile b/source/darwin/Makefile
index 9ffc42d6beb..13ce607509a 100644
--- a/source/darwin/Makefile
+++ b/source/darwin/Makefile
@@ -1,5 +1,5 @@
#
-# $Id: Makefile,v 1.5 2003/02/09 18:32:55 sgefant Exp $
+# $Id: Makefile,v 1.6 2003/05/09 20:20:40 sgefant Exp $
#
# ***** BEGIN GPL/BL DUAL LICENSE BLOCK *****
#
@@ -46,7 +46,10 @@ all::
@chmod +x $(DIR)/bin/$(APPLICATION).app/Contents/MacOS/$(APPLICATION)
ifeq ($(APPLICATION), blender)
@echo "---> copying message files"
- @cp -R ../../bin/message $(DIR)/bin/$(APPLICATION).app/Contents/Resources
+ @cp -R ../../bin/.blender/locale $(DIR)/bin/$(APPLICATION).app/Contents/Resources
+ @echo "---> copying .Blanguages and .bfont.ttf"
+ @cp ../../bin/.blender/.Blanguages $(DIR)/bin/$(APPLICATION).app/Contents/Resources
+ @cp ../../bin/.blender/.bfont.ttf $(DIR)/bin/$(APPLICATION).app/Contents/Resources
endif
@echo "---> removing CVS directories and Mac hidden files from distribution"
@find $(DIR)/bin/$(APPLICATION).app -name CVS -prune -exec rm -rf {} \;