SF.net SVN: geany:[4654] trunk

eht16 at users.sourceforge.net eht16 at xxxxx
Sun Feb 7 18:37:25 UTC 2010


Revision: 4654
          http://geany.svn.sourceforge.net/geany/?rev=4654&view=rev
Author:   eht16
Date:     2010-02-07 18:37:25 +0000 (Sun, 07 Feb 2010)

Log Message:
-----------
Fix possible endless loop when trying to detect the encoding of non-text files (patch by Alexey Antipov, thanks).

Modified Paths:
--------------
    trunk/ChangeLog
    trunk/src/encodings.c

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2010-02-07 18:24:45 UTC (rev 4653)
+++ trunk/ChangeLog	2010-02-07 18:37:25 UTC (rev 4654)
@@ -5,6 +5,9 @@
    Unref the new files toolbar menu when freeing templates as it
    was done before but unref it *after* the menu has been removed
    from the GeanyMenuButtonAction.
+ * src/encodings.c:
+   Fix possible endless loop when trying to detect the encoding of
+   non-text files (patch by Alexey Antipov, thanks).
 
 
 2010-02-06  Enrico Tröger  <enrico(dot)troeger(at)uvena(dot)de>

Modified: trunk/src/encodings.c
===================================================================
--- trunk/src/encodings.c	2010-02-07 18:24:45 UTC (rev 4653)
+++ trunk/src/encodings.c	2010-02-07 18:37:25 UTC (rev 4654)
@@ -550,13 +550,17 @@
 	/* First check for preferred charset, if specified */
 	preferred_charset = file_prefs.default_open_encoding;
 
-	if (preferred_charset == encodings[GEANY_ENCODING_NONE].idx || preferred_charset < 0 || preferred_charset >= GEANY_ENCODINGS_MAX)
+	if (preferred_charset == encodings[GEANY_ENCODING_NONE].idx ||
+		preferred_charset < 0 ||
+		preferred_charset >= GEANY_ENCODINGS_MAX)
+	{
 		preferred_charset = -1;
+	}
 
 	/* -1 means "Preferred charset" */
 	for (i = -1; i < GEANY_ENCODINGS_MAX; i++)
 	{
-		if (G_UNLIKELY(i == encodings[GEANY_ENCODING_NONE].idx) || G_UNLIKELY(i == -2))
+		if (G_UNLIKELY(i == encodings[GEANY_ENCODING_NONE].idx))
 			continue;
 
 		if (i == -1)
@@ -565,7 +569,6 @@
 			{
 				charset = encodings[preferred_charset].charset;
 				geany_debug("Preferred charset: %s", charset);
-				i = -2;
 			}
 			else
 				continue;
@@ -574,13 +577,11 @@
 		{
 			check_regex = FALSE;
 			charset = regex_charset;
-			i = -2;
 		}
 		else if (check_locale)
 		{
 			check_locale = FALSE;
 			charset = locale_charset;
-			i = -2;
 		}
 		else
 			charset = encodings[i].charset;


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