SF.net SVN: geany: [931] trunk

eht16 at users.sourceforge.net eht16 at xxxxx
Wed Oct 25 14:48:17 UTC 2006


Revision: 931
          http://svn.sourceforge.net/geany/?rev=931&view=rev
Author:   eht16
Date:     2006-10-25 07:48:07 -0700 (Wed, 25 Oct 2006)

Log Message:
-----------
Moved utils_convert_to_utf8() and utils_convert_to_utf8_from_charset() to encodings.c.

Modified Paths:
--------------
    trunk/ChangeLog
    trunk/src/document.c
    trunk/src/encodings.c
    trunk/src/encodings.h
    trunk/src/utils.c
    trunk/src/utils.h

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2006-10-25 14:38:48 UTC (rev 930)
+++ trunk/ChangeLog	2006-10-25 14:48:07 UTC (rev 931)
@@ -6,6 +6,9 @@
    dialogs_show_error() to dialogs_show_msgbox().
  * src/document.c: Added warning message when opening files that cannot
                    be handled correctly and set them to read-only mode.
+ * src/document.c, src/encodings.c, src/encodings.h, src/utils.c,
+   src/utils.h: Moved utils_convert_to_utf8() and
+                utils_convert_to_utf8_from_charset() to encodings.c.
 
 
 2006-10-24  Enrico Tröger  <enrico.troeger at uvena.de>

Modified: trunk/src/document.c
===================================================================
--- trunk/src/document.c	2006-10-25 14:38:48 UTC (rev 930)
+++ trunk/src/document.c	2006-10-25 14:48:07 UTC (rev 931)
@@ -462,7 +462,8 @@
 	}
 	else
 	{
-		gchar *converted_text = utils_convert_to_utf8_from_charset(*data, *size, forced_enc, FALSE);
+		gchar *converted_text = encodings_convert_to_utf8_from_charset(
+													*data, *size, forced_enc, FALSE);
 		if (converted_text == NULL)
 		{
 			return FALSE;
@@ -494,7 +495,8 @@
 			*bom = TRUE;
 			if ((*enc)[4] != '8') // the BOM indicated something else than UTF-8
 			{
-				gchar *converted_text = utils_convert_to_utf8_from_charset(*data, *size, *enc, FALSE);
+				gchar *converted_text = encodings_convert_to_utf8_from_charset(
+															*data, *size, *enc, FALSE);
 				if (converted_text == NULL)
 				{
 					g_free(*enc);
@@ -518,7 +520,7 @@
 			}
 			else
 			{
-				gchar *converted_text = utils_convert_to_utf8(*data, *size, enc);
+				gchar *converted_text = encodings_convert_to_utf8(*data, *size, enc);
 
 				if (converted_text == NULL)
 				{

Modified: trunk/src/encodings.c
===================================================================
--- trunk/src/encodings.c	2006-10-25 14:38:48 UTC (rev 930)
+++ trunk/src/encodings.c	2006-10-25 14:48:07 UTC (rev 931)
@@ -286,3 +286,94 @@
 		}
 	}
 }
+
+
+/* Converts a string from the given charset to UTF-8.
+ * If fast is set, no further checks are performed. */
+gchar *encodings_convert_to_utf8_from_charset(const gchar *buffer, gsize size,
+											const gchar *charset, gboolean fast)
+{
+	gchar *utf8_content = NULL;
+	GError *conv_error = NULL;
+	gchar* converted_contents = NULL;
+	gsize bytes_written;
+
+	g_return_val_if_fail(buffer != NULL, NULL);
+	g_return_val_if_fail(charset != NULL, NULL);
+
+	converted_contents = g_convert(buffer, size, "UTF-8", charset, NULL,
+								   &bytes_written, &conv_error);
+
+	if (fast)
+	{
+		utf8_content = converted_contents;
+		if (conv_error != NULL) g_error_free(conv_error);
+	}
+	else if (conv_error != NULL || ! g_utf8_validate(converted_contents, bytes_written, NULL))
+	{
+		if (conv_error != NULL)
+		{
+			geany_debug("Couldn't convert from %s to UTF-8 (%s).", charset, conv_error->message);
+			g_error_free(conv_error);
+			conv_error = NULL;
+		}
+		else
+			geany_debug("Couldn't convert from %s to UTF-8.", charset);
+
+		utf8_content = NULL;
+		if (converted_contents != NULL) g_free(converted_contents);
+	}
+	else
+	{
+		geany_debug("Converted from %s to UTF-8.", charset);
+		utf8_content = converted_contents;
+	}
+
+	return utf8_content;
+}
+
+
+gchar *encodings_convert_to_utf8(const gchar *buffer, gsize size, gchar **used_encoding)
+{
+	gchar *locale_charset = NULL;
+	gchar *utf8_content;
+	gchar *charset;
+	gboolean check_current = FALSE;
+	guint i;
+
+	// current locale is not UTF-8, we have to check this charset
+	check_current = ! g_get_charset((const gchar**)&locale_charset);
+
+	for (i = 0; i < GEANY_ENCODINGS_MAX; i++)
+	{
+		if (i == encodings[GEANY_ENCODING_NONE].idx) continue;
+		
+		if (check_current)
+		{
+			check_current = FALSE;
+			charset = locale_charset;
+			i = -1;
+		}
+		else
+			charset = encodings[i].charset;
+
+		geany_debug("Trying to convert %d bytes of data from %s into UTF-8.", size, charset);
+		utf8_content = encodings_convert_to_utf8_from_charset(buffer, size, charset, FALSE);
+
+		if (utf8_content != NULL)
+		{
+			if (used_encoding != NULL)
+			{
+				if (*used_encoding != NULL)
+				{
+					g_free(*used_encoding);
+					geany_debug("%s:%d", __FILE__, __LINE__);
+				}
+				*used_encoding = g_strdup(charset);
+			}
+			return utf8_content;
+		}
+	}
+
+	return NULL;
+}

Modified: trunk/src/encodings.h
===================================================================
--- trunk/src/encodings.h	2006-10-25 14:38:48 UTC (rev 930)
+++ trunk/src/encodings.h	2006-10-25 14:48:07 UTC (rev 931)
@@ -67,7 +67,14 @@
 
 void encodings_init(void);
 
+gchar *encodings_convert_to_utf8(const gchar *buffer, gsize size, gchar **used_encoding);
 
+/* Converts a string from the given charset to UTF-8.
+ * If fast is set, no further checks are performed. */
+gchar *encodings_convert_to_utf8_from_charset(const gchar *buffer, gsize size,
+											  const gchar *charset, gboolean fast);
+
+
 /*
  * The original versions of the following tables are taken from profterm
  *

Modified: trunk/src/utils.c
===================================================================
--- trunk/src/utils.c	2006-10-25 14:38:48 UTC (rev 930)
+++ trunk/src/utils.c	2006-10-25 14:48:07 UTC (rev 931)
@@ -226,8 +226,8 @@
 
 			if (tag->type & tag_types)
 			{
-				if (! doc_is_utf8) utf8_name = utils_convert_to_utf8_from_charset(tag->name, -1,
-															doc_list[idx].encoding, TRUE);
+				if (! doc_is_utf8) utf8_name = encodings_convert_to_utf8_from_charset(tag->name,
+															-1, doc_list[idx].encoding, TRUE);
 				else utf8_name = tag->name;
 				if ((tag->atts.entry.scope != NULL) && isalpha(tag->atts.entry.scope[0]))
 				{
@@ -347,95 +347,6 @@
 }
 
 
-/* Converts a string from the given charset to UTF-8.
- * If fast is set, no further checks are performed. */
-gchar *utils_convert_to_utf8_from_charset(const gchar *buffer, gsize size, const gchar *charset,
-										  gboolean fast)
-{
-	gchar *utf8_content = NULL;
-	GError *conv_error = NULL;
-	gchar* converted_contents = NULL;
-	gsize bytes_written;
-
-	g_return_val_if_fail(buffer != NULL, NULL);
-	g_return_val_if_fail(charset != NULL, NULL);
-
-	converted_contents = g_convert(buffer, size, "UTF-8", charset, NULL,
-								   &bytes_written, &conv_error);
-
-	if (fast)
-	{
-		utf8_content = converted_contents;
-		if (conv_error != NULL) g_error_free(conv_error);
-	}
-	else if (conv_error != NULL || ! g_utf8_validate(converted_contents, bytes_written, NULL))
-	{
-		if (conv_error != NULL)
-		{
-			geany_debug("Couldn't convert from %s to UTF-8 (%s).", charset, conv_error->message);
-			g_error_free(conv_error);
-			conv_error = NULL;
-		}
-		else
-			geany_debug("Couldn't convert from %s to UTF-8.", charset);
-
-		utf8_content = NULL;
-		if (converted_contents != NULL) g_free(converted_contents);
-	}
-	else
-	{
-		geany_debug("Converted from %s to UTF-8.", charset);
-		utf8_content = converted_contents;
-	}
-
-	return utf8_content;
-}
-
-
-gchar *utils_convert_to_utf8(const gchar *buffer, gsize size, gchar **used_encoding)
-{
-	gchar *locale_charset = NULL;
-	gchar *utf8_content;
-	gchar *charset;
-	gboolean check_current = FALSE;
-	guint i;
-
-	// current locale is not UTF-8, we have to check this charset
-	check_current = ! g_get_charset((const gchar**)&locale_charset);
-
-	for (i = 0; i < GEANY_ENCODINGS_MAX; i++)
-	{
-		if (check_current)
-		{
-			check_current = FALSE;
-			charset = locale_charset;
-			i = -1;
-		}
-		else
-			charset = encodings[i].charset;
-
-		geany_debug("Trying to convert %d bytes of data from %s into UTF-8.", size, charset);
-		utf8_content = utils_convert_to_utf8_from_charset(buffer, size, charset, FALSE);
-
-		if (utf8_content != NULL)
-		{
-			if (used_encoding != NULL)
-			{
-				if (*used_encoding != NULL)
-				{
-					g_free(*used_encoding);
-					geany_debug("%s:%d", __FILE__, __LINE__);
-				}
-				*used_encoding = g_strdup(charset);
-			}
-			return utf8_content;
-		}
-	}
-
-	return NULL;
-}
-
-
 /**
  * (stolen from anjuta and modified)
  * Search backward through size bytes looking for a '<', then return the tag if any

Modified: trunk/src/utils.h
===================================================================
--- trunk/src/utils.h	2006-10-25 14:38:48 UTC (rev 930)
+++ trunk/src/utils.h	2006-10-25 14:48:07 UTC (rev 931)
@@ -44,13 +44,6 @@
 
 gint utils_write_file(const gchar *filename, const gchar *text);
 
-gchar *utils_convert_to_utf8(const gchar *buffer, gsize size, gchar **used_encoding);
-
-/* Converts a string from the given charset to UTF-8.
- * If fast is set, no further checks are performed. */
-gchar *utils_convert_to_utf8_from_charset(const gchar *buffer, gsize size, const gchar *charset,
-										  gboolean fast);
-
 /**
  * (stolen from anjuta and modified)
  * Search backward through size bytes looking for a '<', then return the tag if any


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.



More information about the Commits mailing list