Mercurial > emacs
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)) {