mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2024-12-25 23:16:14 +01:00
956f00ed96
Fri Jan 5 11:25:42 2001 Owen Taylor <otaylor@redhat.com> * configure.in (PACKAGE): move $enable_debug down below checks for GCC to avoid setting CFLAGS prematurely, change checks to avoid adding -g twice. * gutf8.c (g_ucs4_to_utf8): Support len < 0 to mean 0 termination. * gutf8.c (g_utf8_to_ucs4): Terminate result with 0. * tests/mainloop-test.c (main): Fix uses of g_main_loop_destroy(). * tests/unicode-encoding.c tests/Makefile.am tests/utf8.txt: Tests for unicode-conversion code. * gconvert.c (g_convert, g_convert_with_fallback): work around a couple of GNU libc bugs. * gconvert.[ch] (g_{locale,filename}_{to,from}_utf8): Standardize arguments to match g_convert(). Document. * gunicode.[ch]: - Implement conversion functions to and from UTF-16 - Standardize unicode conversion functions on prototype like g_convert. - Add a lot of error checking to unicode conversion functions. * gunicode.[ch] (g_utf8_to_ucs4_fast): Add fast, non-checking variant of g_utf8_to_ucs4. * gutf8.c (g_utf8_validate): - add g_return_if_fail (str != NULL). - add checks for overlong strings, non-valid Unicode characters (>= 110000) and single surrogates.
107 lines
3.2 KiB
C
107 lines
3.2 KiB
C
/* GLIB - Library of useful routines for C programming
|
|
* Copyright (C) 1995-1997 Peter Mattis, Spencer Kimball and Josh MacDonald
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, write to the
|
|
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
|
|
* Boston, MA 02111-1307, USA.
|
|
*/
|
|
|
|
/*
|
|
* Modified by the GLib Team and others 1997-2000. See the AUTHORS
|
|
* file for a list of people on the GLib Team. See the ChangeLog
|
|
* files for a list of changes. These files are distributed with
|
|
* GLib at ftp://ftp.gtk.org/pub/gtk/.
|
|
*/
|
|
|
|
#ifndef __G_CONVERT_H__
|
|
#define __G_CONVERT_H__
|
|
|
|
#include <stddef.h> /* For size_t */
|
|
#include <gerror.h>
|
|
|
|
G_BEGIN_DECLS
|
|
|
|
typedef enum
|
|
{
|
|
G_CONVERT_ERROR_NO_CONVERSION,
|
|
G_CONVERT_ERROR_ILLEGAL_SEQUENCE,
|
|
G_CONVERT_ERROR_FAILED,
|
|
G_CONVERT_ERROR_PARTIAL_INPUT
|
|
} GConvertError;
|
|
|
|
#define G_CONVERT_ERROR g_convert_error_quark()
|
|
GQuark g_convert_error_quark();
|
|
|
|
/* Thin wrappers around iconv
|
|
*/
|
|
typedef struct _GIConv *GIConv;
|
|
|
|
GIConv g_iconv_open (const gchar *to_codeset,
|
|
const gchar *from_codeset);
|
|
size_t g_iconv (GIConv converter,
|
|
gchar **inbuf,
|
|
size_t *inbytes_left,
|
|
gchar **outbuf,
|
|
size_t *outbytes_left);
|
|
gint g_iconv_close (GIConv converter);
|
|
|
|
|
|
gchar* g_convert (const gchar *str,
|
|
gint len,
|
|
const gchar *to_codeset,
|
|
const gchar *from_codeset,
|
|
gint *bytes_read,
|
|
gint *bytes_written,
|
|
GError **error);
|
|
gchar* g_convert_with_fallback (const gchar *str,
|
|
gint len,
|
|
const gchar *to_codeset,
|
|
const gchar *from_codeset,
|
|
gchar *fallback,
|
|
gint *bytes_read,
|
|
gint *bytes_written,
|
|
GError **error);
|
|
|
|
|
|
/* Convert between libc's idea of strings and UTF-8.
|
|
*/
|
|
gchar* g_locale_to_utf8 (const gchar *opsysstring,
|
|
gint len,
|
|
gint *bytes_read,
|
|
gint *bytes_written,
|
|
GError **error);
|
|
gchar* g_locale_from_utf8 (const gchar *utf8string,
|
|
gint len,
|
|
gint *bytes_read,
|
|
gint *bytes_written,
|
|
GError **error);
|
|
|
|
/* Convert between the operating system (or C runtime)
|
|
* representation of file names and UTF-8.
|
|
*/
|
|
gchar* g_filename_to_utf8 (const gchar *opsysstring,
|
|
gint len,
|
|
gint *bytes_read,
|
|
gint *bytes_written,
|
|
GError **error);
|
|
gchar* g_filename_from_utf8 (const gchar *utf8string,
|
|
gint len,
|
|
gint *bytes_read,
|
|
gint *bytes_written,
|
|
GError **error);
|
|
|
|
G_END_DECLS
|
|
|
|
#endif /* __G_CONVERT_H__ */
|