Commits

Ronald Oussoren  committed eebec14

Fix for issue #3387767 on SF.net

Without this patch the NSLog(u"\xf1") fails with a UnicodEncodeError
due to a bug in the code that parses the printf format string to detect
which arguments should be pushed on the C stack.

  • Participants
  • Parent commits 1059289

Comments (0)

Files changed (2)

File pyobjc-core/Modules/objc/libffi_support.m

 		Py_INCREF(encoded);
 
 	} else if (PyUnicode_Check(py_format)) {
-		encoded = PyUnicode_AsEncodedString(py_format, NULL, NULL);
+		encoded = PyUnicode_AsEncodedString(py_format, "utf-8", NULL);
 		if (encoded == NULL) {
 			return -1;
 		}

File pyobjc-core/PyObjCTest/test_metadata_function.py

         v = makeArrayWithFormat_("hello %s", b"world")
         self.assertEqual(list(v), [ "hello %s", "hello world"])
 
+        v = makeArrayWithFormat_(u"\xf1")
+        self.assertEqual(list(v), [ u"\xf1", u"\xf1"])
+
+
     def test_cformat(self):
 
         v = makeArrayWithCFormat_(b"%3d", 10)