SF.net SVN: geany:[5166] branches/Geany-0_19_1

ntrel at users.sourceforge.net ntrel at xxxxx
Mon Aug 16 11:47:50 UTC 2010


Revision: 5166
          http://geany.svn.sourceforge.net/geany/?rev=5166&view=rev
Author:   ntrel
Date:     2010-08-16 11:47:50 +0000 (Mon, 16 Aug 2010)

Log Message:
-----------
r5163 | eht16 | 2010-08-15 14:33:32 +0100 (Sun, 15 Aug 2010) | 1 line

Rewrite the logic to auto detect encodings a bit to make it more readable and fix a slightly wrong detection on Windows (closes #3019573).

Modified Paths:
--------------
    branches/Geany-0_19_1/ChangeLog
    branches/Geany-0_19_1/NEWS
    branches/Geany-0_19_1/src/encodings.c

Modified: branches/Geany-0_19_1/ChangeLog
===================================================================
--- branches/Geany-0_19_1/ChangeLog	2010-08-16 11:22:45 UTC (rev 5165)
+++ branches/Geany-0_19_1/ChangeLog	2010-08-16 11:47:50 UTC (rev 5166)
@@ -2,6 +2,10 @@
 
  * wscript:
    Check for libsocket on OpenSolaris to fix build.
+ * src/encodings.c:
+   Rewrite the logic to auto detect encodings a bit to make it more
+   readable and fix a slightly wrong detection on Windows
+   (closes #3019573).
 
 
 2010-08-13  Nick Treleaven  <nick(dot)treleaven(at)btinternet(dot)com>

Modified: branches/Geany-0_19_1/NEWS
===================================================================
--- branches/Geany-0_19_1/NEWS	2010-08-16 11:22:45 UTC (rev 5165)
+++ branches/Geany-0_19_1/NEWS	2010-08-16 11:47:50 UTC (rev 5166)
@@ -6,6 +6,7 @@
       and switching document tabs).
     * Fix using filetype extension patterns with upper case letters on
       Windows (#3028856).
+    * Fix a slightly wrong encoding detection on Windows (#3019573).
     * Re-enable comment folding.
     * Fix not loading plugins built against a newer API when Geany doesn't
       provide the required version given in PLUGIN_VERSION_CHECK().

Modified: branches/Geany-0_19_1/src/encodings.c
===================================================================
--- branches/Geany-0_19_1/src/encodings.c	2010-08-16 11:22:45 UTC (rev 5165)
+++ branches/Geany-0_19_1/src/encodings.c	2010-08-16 11:47:50 UTC (rev 5166)
@@ -563,34 +563,38 @@
 		if (G_UNLIKELY(i == encodings[GEANY_ENCODING_NONE].idx))
 			continue;
 
-		if (i == -1)
+		if (check_regex)
 		{
-			if (preferred_charset != -1)
-			{
-				charset = encodings[preferred_charset].charset;
-				geany_debug("Using preferred charset: %s", charset);
-			}
-			else
-				continue;
-		}
-		else if (check_regex)
-		{
 			check_regex = FALSE;
 			charset = regex_charset;
+			i = -2; /* keep i below the start value to have it again at -1 on the next loop run */
 		}
 		else if (check_locale)
 		{
 			check_locale = FALSE;
 			charset = locale_charset;
+			i = -2; /* keep i below the start value to have it again at -1 on the next loop run */
 		}
-		else
+		else if (i == -1)
+		{
+			if (preferred_charset >= 0)
+			{
+				charset = encodings[preferred_charset].charset;
+				geany_debug("Using preferred charset: %s", charset);
+			}
+			else
+				continue;
+		}
+		else if (i >= 0)
 			charset = encodings[i].charset;
+		else /* in this case we have i == -2, continue to increase i and go ahead */
+			continue;
 
-
 		if (G_UNLIKELY(charset == NULL))
 			continue;
 
-		geany_debug("Trying to convert %" G_GSIZE_FORMAT " bytes of data from %s into UTF-8.", size, charset);
+		geany_debug("Trying to convert %" G_GSIZE_FORMAT " bytes of data from %s into UTF-8.",
+			size, charset);
 		utf8_content = encodings_convert_to_utf8_from_charset(buffer, size, charset, FALSE);
 
 		if (G_LIKELY(utf8_content != NULL))


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