talons

Fork of Claws Mail https://www.claws-mail
Log | Files | Refs | README | LICENSE

commit d7493e38a465649d0e56b3e3c86f3b9085372d61
parent a873d8f791b069ffee24e524477165deda81558e
Author: wwp <wwp@free.fr>
Date:   Fri, 23 May 2014 00:50:29 +0200

Add g_utf8_substring function for compiling with GLIB < 2.30.

Diffstat:
Msrc/common/utils.c | 38++++++++++++++++++++++++++++++++++++++
Msrc/common/utils.h | 12+++++++++++-
2 files changed, 49 insertions(+), 1 deletion(-)

diff --git a/src/common/utils.c b/src/common/utils.c @@ -14,6 +14,10 @@ * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. + * + * The code of the g_utf8_substring function below is owned by + * Matthias Clasen <matthiasc@src.gnome.org>/<mclasen@redhat.com> + * and is got from GLIB 2.30 * */ @@ -5504,3 +5508,37 @@ int cm_canonicalize_filename(const gchar *filename, gchar **canonical_name) { slist_free_strings_full(canonical_parts); return 0; } + +#if !GLIB_CHECK_VERSION(2, 30, 0) +/** + * g_utf8_substring: + * @str: a UTF-8 encoded string + * @start_pos: a character offset within @str + * @end_pos: another character offset within @str + * + * Copies a substring out of a UTF-8 encoded string. + * The substring will contain @end_pos - @start_pos + * characters. + * + * Returns: a newly allocated copy of the requested + * substring. Free with g_free() when no longer needed. + * + * Since: GLIB 2.30 + */ +gchar * +g_utf8_substring (const gchar *str, + glong start_pos, + glong end_pos) +{ + gchar *start, *end, *out; + + start = g_utf8_offset_to_pointer (str, start_pos); + end = g_utf8_offset_to_pointer (start, end_pos - start_pos); + + out = g_malloc (end - start + 1); + memcpy (out, start, end - start); + out[end - start] = 0; + + return out; +} +#endif diff --git a/src/common/utils.h b/src/common/utils.h @@ -14,7 +14,11 @@ * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. - * + * + * The code of the g_utf8_substring function below is owned by + * Matthias Clasen <matthiasc@src.gnome.org>/<mclasen@redhat.com> + * and is got from GLIB 2.30 + * */ #ifndef __UTILS_H__ @@ -599,6 +603,12 @@ void cm_mutex_free(GMutex *mutex); int cm_canonicalize_filename(const gchar *filename, gchar **canonical_name); +#if !GLIB_CHECK_VERSION(2, 30, 0) +gchar *g_utf8_substring (const gchar *p, + glong start_pos, + glong end_pos) G_GNUC_MALLOC; +#endif + #ifdef __cplusplus } #endif