diff options
author | Owen Taylor <otaylor@redhat.com> | 2000-09-14 21:19:11 +0000 |
---|---|---|
committer | Owen Taylor <otaylor@src.gnome.org> | 2000-09-14 21:19:11 +0000 |
commit | 2a9abf57ce235519ed59176b5ddc1070fb92b98a (patch) | |
tree | 84dbfaa5ff15ca6757360aa2c9430b4e10dfd0e8 /gtk/gtktexttypes.c | |
parent | 5fea69440e1f38e60aac0ea84af96b71e837487a (diff) | |
download | gtk+-2a9abf57ce235519ed59176b5ddc1070fb92b98a.tar.gz |
Remove g_convert (moved to glib) and now useless utf_to_latin1()
Thu Sep 14 12:21:12 2000 Owen Taylor <otaylor@redhat.com>
* gtk/gtktexttypes.[ch]: Remove g_convert (moved to
glib) and now useless utf_to_latin1() latin1_to_utf()
Diffstat (limited to 'gtk/gtktexttypes.c')
-rw-r--r-- | gtk/gtktexttypes.c | 169 |
1 files changed, 0 insertions, 169 deletions
diff --git a/gtk/gtktexttypes.c b/gtk/gtktexttypes.c index 0a05e0dac2..866344ab46 100644 --- a/gtk/gtktexttypes.c +++ b/gtk/gtktexttypes.c @@ -60,172 +60,3 @@ gtk_text_byte_begins_utf8_char(const gchar *byte) return inline_byte_begins_utf8_char(byte); } -guint -gtk_text_utf_to_latin1_char(const gchar *p, guchar *l1_ch) -{ - guint charlen; - gunichar ch; - - g_assert(inline_byte_begins_utf8_char(p)); - - charlen = g_utf8_next_char (p) - p; - ch = g_utf8_get_char (p); - - g_assert(ch != '\0'); - - if (ch > 0xff) - *l1_ch = '?'; - else - *l1_ch = ch; - - return charlen; -} - -gchar* -gtk_text_utf_to_latin1(const gchar *p, gint len) -{ - GString *str; - guint i; - gchar *retval; - - str = g_string_new(""); - - i = 0; - while (i < len) - { - guchar ch; - guint charlen; - - charlen = gtk_text_utf_to_latin1_char(p+i, &ch); - - g_string_append_c(str, ch); - - i += charlen; - } - - retval = str->str; - g_string_free(str, FALSE); - - return retval; -} - -gchar* -gtk_text_latin1_to_utf (const gchar *latin1, gint len) -{ - gint i; - GString *retval; - gchar *str; - - retval = g_string_new(""); - - i = 0; - while (i < len) - { - gchar utf[7]; - gint count; - - count = g_unichar_to_utf8 ((guchar)latin1[i], utf); - - utf[count] = '\0'; - - g_string_append(retval, utf); - - ++i; - } - - str = retval->str; - g_string_free(retval, FALSE); - return str; -} - - - -#include <iconv.h> -#include <errno.h> -#include <string.h> - -gchar* -g_convert (const gchar *str, - gint len, - const gchar *to_codeset, - const gchar *from_codeset, - gint *bytes_converted) -{ - gchar *dest; - gchar *outp; - const gchar *p; - size_t inbytes_remaining; - size_t outbytes_remaining; - size_t err; - iconv_t cd; - size_t outbuf_size; - - g_return_val_if_fail (str != NULL, NULL); - g_return_val_if_fail (to_codeset != NULL, NULL); - g_return_val_if_fail (from_codeset != NULL, NULL); - - cd = iconv_open (to_codeset, from_codeset); - - if (cd == (iconv_t) -1) - { - /* Something went wrong. */ - if (errno == EINVAL) - g_warning ("Conversion from character set `%s' to `%s' is not supported", - from_codeset, to_codeset); - else - g_warning ("Failed to convert character set `%s' to `%s': %s", - from_codeset, to_codeset, strerror (errno)); - - if (bytes_converted) - *bytes_converted = 0; - - return NULL; - } - - if (len < 0) - len = strlen (str); - - p = str; - inbytes_remaining = len; - outbuf_size = len + 1; /* + 1 for nul in case len == 1 */ - outbytes_remaining = outbuf_size - 1; /* -1 for nul */ - outp = dest = g_malloc (outbuf_size); - - again: - - err = iconv (cd, &p, &inbytes_remaining, &outp, &outbytes_remaining); - - if (err == (size_t) -1) - { - if (errno == E2BIG) - { - size_t used = outp - dest; - outbuf_size *= 2; - dest = g_realloc (dest, outbuf_size); - - outp = dest + used; - outbytes_remaining = outbuf_size - used - 1; /* -1 for nul */ - - goto again; - } - else - g_warning ("iconv() failed: %s", strerror (errno)); - } - - *outp = '\0'; - - if (iconv_close (cd) != 0) - g_warning ("Failed to close iconv() conversion descriptor: %s", - strerror (errno)); - - if (bytes_converted) - *bytes_converted = p - str; - - if (p == str) - { - g_free (dest); - return NULL; - } - else - return dest; -} |