modify the python gettext function to pass through the original string when no transl...
authorCampbell Barton <ideasman42@gmail.com>
Tue, 20 Sep 2011 02:25:57 +0000 (02:25 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Tue, 20 Sep 2011 02:25:57 +0000 (02:25 +0000)
source/blender/blenkernel/intern/font.c
source/blender/python/generic/blf_py_api.c

index 0a94b4e3fd1496cadb06dcb06da328a4f165bd17..b5770d6a57ce454e189c1444eb51b1e975b827ec 100644 (file)
@@ -289,8 +289,10 @@ void free_ttfont(void)
        }
        BLI_freelistN(&ttfdata);
 
        }
        BLI_freelistN(&ttfdata);
 
+#ifdef INTERNATIONAL
        if(unifont_ttf)
                MEM_freeN(unifont_ttf);
        if(unifont_ttf)
                MEM_freeN(unifont_ttf);
+#endif
 }
 
 struct TmpFont *vfont_find_tmpfont(VFont *vfont)
 }
 
 struct TmpFont *vfont_find_tmpfont(VFont *vfont)
index 9a4bcf22ed8bd9fad7f7c79d3cbd793d9367502f..4b14ddc303c012bc24306c02f92f2244920d12d5 100644 (file)
@@ -381,20 +381,20 @@ PyDoc_STRVAR(py_blf_gettext_doc,
 "   :return: the localized string.\n"
 "   :rtype: string\n"
 );
 "   :return: the localized string.\n"
 "   :rtype: string\n"
 );
-static PyObject *py_blf_gettext(PyObject *UNUSED(self), PyObject *args)
+static PyObject *py_blf_gettext(PyObject *UNUSED(self), PyObject *value)
 {
 {
-       char* msgid;
-       const char *text;
-
-       if (!PyArg_ParseTuple(args, "s:blf.gettext", &msgid))
-               return NULL;
-
-       if((U.transopts&USER_DOTRANSLATE) && (U.transopts&USER_TR_IFACE))
-               text = BLF_gettext( msgid );
-       else
-               text = msgid;
-
-       return PyUnicode_FromString( text );
+       if ((U.transopts & USER_DOTRANSLATE) && (U.transopts & USER_TR_IFACE)) {
+               const char *msgid= _PyUnicode_AsString(value);
+               if(msgid == NULL) {
+                       PyErr_SetString(PyExc_TypeError, "blf.gettext expects a single string argument");
+                       return NULL;
+               }
+
+               return PyUnicode_FromString(BLF_gettext(msgid));
+       }
+       else {
+               return Py_INCREF(value), value;
+       }
 }
 
 PyDoc_STRVAR(py_blf_fake_gettext_doc,
 }
 
 PyDoc_STRVAR(py_blf_fake_gettext_doc,
@@ -407,15 +407,16 @@ PyDoc_STRVAR(py_blf_fake_gettext_doc,
 "   :return: the source string.\n"
 "   :rtype: string\n"
 );
 "   :return: the source string.\n"
 "   :rtype: string\n"
 );
-static PyObject *py_blf_fake_gettext(PyObject *UNUSED(self), PyObject *args)
+static PyObject *py_blf_fake_gettext(PyObject *UNUSED(self), PyObject *value)
 {
 {
-       const char* msgid;
-       if (!PyArg_ParseTuple(args, "s:blf.fake_gettext", &msgid))
+       if (!PyUnicode_Check(value)) {
+               PyErr_SetString(PyExc_TypeError, "blf.fake_gettext expects a single string argument");
                return NULL;
                return NULL;
+       }
 
 
-       return PyUnicode_FromString( msgid );
+       return Py_INCREF(value), value;
 }
 }
-#endif
+#endif /* INTERNATIONAL */
 
 /*----------------------------MODULE INIT-------------------------*/
 static PyMethodDef BLF_methods[] = {
 
 /*----------------------------MODULE INIT-------------------------*/
 static PyMethodDef BLF_methods[] = {
@@ -433,8 +434,8 @@ static PyMethodDef BLF_methods[] = {
        {"size", (PyCFunction) py_blf_size, METH_VARARGS, py_blf_size_doc},
        {"load", (PyCFunction) py_blf_load, METH_VARARGS, py_blf_load_doc},
 #ifdef INTERNATIONAL
        {"size", (PyCFunction) py_blf_size, METH_VARARGS, py_blf_size_doc},
        {"load", (PyCFunction) py_blf_load, METH_VARARGS, py_blf_load_doc},
 #ifdef INTERNATIONAL
-       {"gettext", (PyCFunction) py_blf_gettext, METH_VARARGS, py_blf_gettext_doc},
-       {"fake_gettext", (PyCFunction) py_blf_fake_gettext, METH_VARARGS, py_blf_fake_gettext_doc},
+       {"gettext", (PyCFunction) py_blf_gettext, METH_O, py_blf_gettext_doc},
+       {"fake_gettext", (PyCFunction) py_blf_fake_gettext, METH_O, py_blf_fake_gettext_doc},
 #endif
        {NULL, NULL, 0, NULL}
 };
 #endif
        {NULL, NULL, 0, NULL}
 };