From e4ba6dbc3f1e76890b22773807ea37fe8fa2b1bc Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 10 Apr 2024 22:34:10 +0200 Subject: Adding upstream version 4.2.2. Signed-off-by: Daniel Baumann --- wsutil/cfutils.c | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 wsutil/cfutils.c (limited to 'wsutil/cfutils.c') diff --git a/wsutil/cfutils.c b/wsutil/cfutils.c new file mode 100644 index 0000000..5693411 --- /dev/null +++ b/wsutil/cfutils.c @@ -0,0 +1,51 @@ +/* cfutils.c + * Routines to work around deficiencies in Core Foundation, such as the + * lack of a routine to convert a CFString to a C string of arbitrary + * size. + * + * Wireshark - Network traffic analyzer + * By Gerald Combs + * Copyright 2001 Gerald Combs + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + +#include "config.h" + +#include +#include +#include + +/* + * Convert a CFString to a UTF-8-encoded C string; the resulting string + * is allocated with g_malloc(). Returns NULL if the conversion fails. + */ +char * +CFString_to_C_string(CFStringRef cfstring) +{ + CFIndex string_len; + char *string; + + string_len = CFStringGetMaximumSizeForEncoding(CFStringGetLength(cfstring), + kCFStringEncodingUTF8); + string = (char *)g_malloc(string_len + 1); + if (!CFStringGetCString(cfstring, string, string_len + 1, + kCFStringEncodingUTF8)) { + g_free(string); + return NULL; + } + return string; +} + +/* + * Editor modelines - https://www.wireshark.org/tools/modelines.html + * + * Local variables: + * c-basic-offset: 8 + * tab-width: 8 + * indent-tabs-mode: t + * End: + * + * vi: set shiftwidth=8 tabstop=8 noexpandtab: + * :indentSize=8:tabSize=8:noTabs=false: + */ -- cgit v1.2.3