changeset 67088:5e6f93897afb

(DECODE_UTF_8): Remove macro. [TARGET_API_MAC_CARBON] (cfstring_to_lisp_nodecode): New function created from cfstring_to_lisp. [TARGET_API_MAC_CARBON] (cfstring_to_lisp): Use it. (xrm_get_preference_database) [TARGET_API_MAC_CARBON]: Likewise.
author YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
date Wed, 23 Nov 2005 07:19:16 +0000
parents 1fd0f45a7a2b
children 3eac7486ff05
files src/mac.c
diffstat 1 files changed, 19 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- a/src/mac.c	Wed Nov 23 07:19:03 2005 +0000
+++ b/src/mac.c	Wed Nov 23 07:19:16 2005 +0000
@@ -265,7 +265,6 @@
 #if TARGET_API_MAC_CARBON
 static Lisp_Object Qstring, Qnumber, Qboolean, Qdate, Qdata;
 static Lisp_Object Qarray, Qdictionary;
-#define DECODE_UTF_8(str) code_convert_string_norecord (str, Qutf_8, 0)
 
 struct cfdict_context
 {
@@ -336,12 +335,11 @@
 }
 
 
-/* From CFString to a lisp string.  Never returns a unibyte string
-   (even if it only contains ASCII characters).
-   This may cause GC during code conversion. */
+/* From CFString to a lisp string.  Returns a unibyte string
+   containing a UTF-8 byte sequence.  */
 
 Lisp_Object
-cfstring_to_lisp (string)
+cfstring_to_lisp_nodecode (string)
      CFStringRef string;
 {
   Lisp_Object result = Qnil;
@@ -362,9 +360,23 @@
 	}
     }
 
+  return result;
+}
+
+
+/* From CFString to a lisp string.  Never returns a unibyte string
+   (even if it only contains ASCII characters).
+   This may cause GC during code conversion. */
+
+Lisp_Object
+cfstring_to_lisp (string)
+     CFStringRef string;
+{
+  Lisp_Object result = cfstring_to_lisp_nodecode (string);
+
   if (!NILP (result))
     {
-      result = DECODE_UTF_8 (result);
+      result = code_convert_string_norecord (result, Qutf_8, 0);
       /* This may be superfluous.  Just to make sure that the result
 	 is a multibyte string.  */
       result = string_to_multibyte (result);
@@ -1141,7 +1153,7 @@
   CFSetGetValues (key_set, (const void **)keys);
   for (index = 0; index < count; index++)
     {
-      res_name = SDATA (cfstring_to_lisp (keys[index]));
+      res_name = SDATA (cfstring_to_lisp_nodecode (keys[index]));
       quarks = parse_resource_name (&res_name);
       if (!(NILP (quarks) || *res_name))
 	{