# HG changeset patch # User YAMAMOTO Mitsuharu # Date 1132730356 0 # Node ID 5e6f93897afb1e98ec2bac34ae5b6cd7b65b7b1b # Parent 1fd0f45a7a2b8ea36ec95eea8e2778d6d616c1df (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. diff -r 1fd0f45a7a2b -r 5e6f93897afb src/mac.c --- 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)) {