return 0;
}
+gboolean
+g_unichar_isxdigit (gunichar c)
+{
+ return (g_unichar_xdigit_value (c) != -1);
+
+}
+
+gint
+g_unichar_xdigit_value (gunichar c)
+{
+ if (c >= 0x30 && c <= 0x39) /*0-9*/
+ return (c - 0x30);
+ if (c >= 0x41 && c <= 0x46) /*A-F*/
+ return (c - 0x37);
+ if (c >= 0x61 && c <= 0x66) /*a-f*/
+ return (c - 0x57);
+ return -1;
+}
+
gchar *
g_convert (const gchar *str, gssize len,
const gchar *to_codeset, const gchar *from_codeset,
gsize *bytes_read, gsize *bytes_written, GError **error)
{
+ char *result = NULL;
+#ifdef G_OS_WIN32
+#else
iconv_t convertor;
- char *buffer, *result, *output;
+ char *buffer, *output;
const char *strptr = (const char *) str;
- int str_len = len == -1 ? strlen (str) : len;
- int buffer_size;
+ size_t str_len = len == -1 ? strlen (str) : len;
+ size_t buffer_size;
size_t left, out_left;
convertor = iconv_open (to_codeset, from_codeset);
if (res == (size_t) -1){
if (errno == E2BIG){
char *n;
- int extra_space = 8 + left;
- int output_used = output - buffer;
+ size_t extra_space = 8 + left;
+ size_t output_used = output - buffer;
buffer_size += extra_space;
result = buffer;
leave:
iconv_close (convertor);
+#endif
return result;
}
gboolean
g_get_charset (G_CONST_RETURN char **charset)
{
+#ifdef G_OS_WIN32
+#else
if (my_charset == NULL){
my_charset = g_strdup (nl_langinfo (CODESET));
is_utf8 = strcmp (my_charset, "UTF-8") == 0;
if (charset != NULL)
*charset = my_charset;
+#endif
return is_utf8;
}