The data contained in this repository can be downloaded to your computer using one of several clients.
Please see the documentation of your version control software client for more information.
Please select the desired protocol below to get the URL.
This URL has Read-Only access.
main_repo / cfutils.c @ master
History | View | Annotate | Download (1.65 KB)
1 | 2925fdc2 | Mr. Scottbert | /* cfutils.c
|
---|---|---|---|
2 | * Routines to work around deficiencies in Core Foundation, such as the
|
||
3 | * lack of a routine to convert a CFString to a C string of arbitrary
|
||
4 | * size.
|
||
5 | *
|
||
6 | * $Id$
|
||
7 | *
|
||
8 | * Wireshark - Network traffic analyzer
|
||
9 | * By Gerald Combs <gerald@wireshark.org>
|
||
10 | * Copyright 2001 Gerald Combs
|
||
11 | *
|
||
12 | * This program is free software; you can redistribute it and/or
|
||
13 | * modify it under the terms of the GNU General Public License
|
||
14 | * as published by the Free Software Foundation; either version 2
|
||
15 | * of the License, or (at your option) any later version.
|
||
16 | *
|
||
17 | * This program is distributed in the hope that it will be useful,
|
||
18 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
19 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
20 | * GNU General Public License for more details.
|
||
21 | *
|
||
22 | * You should have received a copy of the GNU General Public License
|
||
23 | * along with this program; if not, write to the Free Software
|
||
24 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
||
25 | */
|
||
26 | |||
27 | #include "config.h" |
||
28 | |||
29 | #ifdef HAVE_OS_X_FRAMEWORKS
|
||
30 | #include <glib.h> |
||
31 | #include <CoreFoundation/CoreFoundation.h> |
||
32 | #include "cfutils.h" |
||
33 | |||
34 | /*
|
||
35 | * Convert a CFString to a UTF-8-encoded C string; the resulting string
|
||
36 | * is allocated with g_malloc(). Returns NULL if the conversion fails.
|
||
37 | */
|
||
38 | char *
|
||
39 | CFString_to_C_string(CFStringRef cfstring) |
||
40 | { |
||
41 | CFIndex string_len; |
||
42 | char *string;
|
||
43 | |||
44 | string_len = CFStringGetMaximumSizeForEncoding(CFStringGetLength(cfstring), |
||
45 | kCFStringEncodingUTF8); |
||
46 | string = (char *)g_malloc(string_len + 1); |
||
47 | if (!CFStringGetCString(cfstring, string, string_len + 1, |
||
48 | kCFStringEncodingUTF8)) { |
||
49 | g_free(string); |
||
50 | return NULL; |
||
51 | } |
||
52 | return string;
|
||
53 | } |
||
54 | #endif
|
||
55 |