SF.net SVN: geany: [920] trunk

eht16 at users.sourceforge.net eht16 at xxxxx
Mon Oct 23 20:32:47 UTC 2006


Revision: 920
          http://svn.sourceforge.net/geany/?rev=920&view=rev
Author:   eht16
Date:     2006-10-23 13:32:37 -0700 (Mon, 23 Oct 2006)

Log Message:
-----------
Added new encoding "None" to open files without any character conversions (fixes #1580456).

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

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2006-10-23 00:05:42 UTC (rev 919)
+++ trunk/ChangeLog	2006-10-23 20:32:37 UTC (rev 920)
@@ -1,3 +1,10 @@
+2006-10-23  Enrico Tröger  <enrico.troeger at uvena.de>
+
+ * src/encodings.c, src/encodings.h, src/document.c, src/callbacks.c,
+   src/dialogs.c: Added new encoding "None" to open files without any
+                  character conversions (fixes #1580456).
+
+
 2006-10-22  Enrico Tröger  <enrico.troeger at uvena.de>
 
  * src/geany.h, src/keyfile.c, src/main.c:

Modified: trunk/src/callbacks.c
===================================================================
--- trunk/src/callbacks.c	2006-10-23 00:05:42 UTC (rev 919)
+++ trunk/src/callbacks.c	2006-10-23 20:32:37 UTC (rev 920)
@@ -758,8 +758,6 @@
 		if (filetype_idx >= 0 && filetype_idx < GEANY_FILETYPES_ALL) ft = filetypes[filetype_idx];
 		if (encoding_idx >= 0 && encoding_idx < GEANY_ENCODINGS_MAX)
 			charset = encodings[encoding_idx].charset;
-		else if (encoding_idx == GEANY_ENCODINGS_MAX)
-			charset = "none";
 
 		filelist = gtk_file_chooser_get_filenames(GTK_FILE_CHOOSER(app->open_filesel));
 		flist = filelist;

Modified: trunk/src/dialogs.c
===================================================================
--- trunk/src/dialogs.c	2006-10-23 00:05:42 UTC (rev 919)
+++ trunk/src/dialogs.c	2006-10-23 20:32:37 UTC (rev 920)
@@ -120,9 +120,9 @@
 			gtk_combo_box_append_text(GTK_COMBO_BOX(encoding_combo), encoding_string);
 			g_free(encoding_string);
 		}
-		gtk_combo_box_append_text(GTK_COMBO_BOX(encoding_combo), _("Do not any conversion"));
+		//gtk_combo_box_append_text(GTK_COMBO_BOX(encoding_combo), _("Do not any conversion"));
 		gtk_combo_box_append_text(GTK_COMBO_BOX(encoding_combo), _("Detect from file"));
-		gtk_combo_box_set_active(GTK_COMBO_BOX(encoding_combo), GEANY_ENCODINGS_MAX + 1);
+		gtk_combo_box_set_active(GTK_COMBO_BOX(encoding_combo), GEANY_ENCODINGS_MAX);
 
 		g_signal_connect((gpointer) app->open_filesel, "selection-changed",
 					G_CALLBACK(on_file_open_selection_changed), NULL);

Modified: trunk/src/document.c
===================================================================
--- trunk/src/document.c	2006-10-23 00:05:42 UTC (rev 919)
+++ trunk/src/document.c	2006-10-23 20:32:37 UTC (rev 920)
@@ -240,7 +240,7 @@
 
 /* creates a new tab in the notebook and does all related stuff
  * finally it returns the index of the created document */
-gint document_create_new_sci(const gchar *filename)
+static gint document_create_new_sci(const gchar *filename)
 {
 	ScintillaObject	*sci;
 	PangoFontDescription *pfd;
@@ -617,11 +617,10 @@
 	if (forced_enc != NULL)
 	{
 		// the encoding should be ignored(requested by user), so open the file "as it is"
-		if (utils_strcmp(forced_enc, "none"))
+		if (utils_strcmp(forced_enc, encodings[GEANY_ENCODING_NONE].charset))
 		{
-			/// TODO enc = NULL breaks several tests, e.g. encodings_select_radio_item. Will be fixed soon.
 			bom = FALSE;
-			enc = NULL;
+			enc = g_strdup(encodings[GEANY_ENCODING_NONE].charset);
 		}
 		else if (! handle_forced_encoding(&data, &size, forced_enc, &enc, &bom))
 		{
@@ -744,8 +743,9 @@
 	gint bytes_written, len;
 	gchar *locale_filename = NULL;
 
-	if (idx == -1) return FALSE;
-	if (! force && ! doc_list[idx].changed) return FALSE;
+	if (! DOC_IDX_VALID(idx)) return FALSE;
+	// the changed flag should exclude the readonly flag, but check it anyway for safety
+	if (! force && (! doc_list[idx].changed || doc_list[idx].readonly)) return FALSE;
 
 	if (doc_list[idx].file_name == NULL)
 	{
@@ -779,8 +779,9 @@
 		sci_get_text(doc_list[idx].sci, len, data);
 	}
 
-	// save in original encoding, skip when it is already UTF-8
-	if (doc_list[idx].encoding != NULL && ! utils_strcmp(doc_list[idx].encoding, "UTF-8"))
+	// save in original encoding, skip when it is already UTF-8 or has the encoding "None"
+	if (doc_list[idx].encoding != NULL && ! utils_strcmp(doc_list[idx].encoding, "UTF-8") &&
+		! utils_strcmp(doc_list[idx].encoding, encodings[GEANY_ENCODING_NONE].charset))
 	{
 		GError *conv_error = NULL;
 		gchar* conv_file_contents = NULL;

Modified: trunk/src/document.h
===================================================================
--- trunk/src/document.h	2006-10-23 00:05:42 UTC (rev 919)
+++ trunk/src/document.h	2006-10-23 20:32:37 UTC (rev 920)
@@ -105,11 +105,6 @@
 void document_apply_update_prefs(ScintillaObject *sci);
 
 
-/* creates a new tab in the notebook and does all related stuff
- * finally it returns the index of the created document */
-gint document_create_new_sci(const gchar*);
-
-
 /* removes the given notebook tab and clears the related entry in the document list */
 gboolean document_remove(guint page_num);
 

Modified: trunk/src/encodings.c
===================================================================
--- trunk/src/encodings.c	2006-10-23 00:05:42 UTC (rev 919)
+++ trunk/src/encodings.c	2006-10-23 20:32:37 UTC (rev 920)
@@ -114,6 +114,8 @@
 	fill(11, EASTASIAN, GEANY_ENCODING_ISO_2022_KR, "ISO-2022-KR", _("Korean"));
 	fill(12, EASTASIAN, GEANY_ENCODING_JOHAB, "JOHAB", _("Korean"));
 	fill(13, EASTASIAN, GEANY_ENCODING_UHC, "UHC", _("Korean"));
+
+	fill(0, NONE, GEANY_ENCODING_NONE, "None", _("Without encoding"));
 }
 
 
@@ -253,7 +255,7 @@
 				case ASIAN: submenu = menu_asian; group_size = 9; break;
 				case MIDDLEEASTERN: submenu = menu_middleeast; group_size = 7; break;
 				case UNICODE: submenu = menu_utf8; group_size = 8; break;
-				default: submenu = menu[k]; group_size = 0;
+				default: submenu = menu[k]; group_size = 1;
 			}
 
 			while (order < group_size)	// the biggest group has 13 elements

Modified: trunk/src/encodings.h
===================================================================
--- trunk/src/encodings.h	2006-10-23 00:05:42 UTC (rev 919)
+++ trunk/src/encodings.h	2006-10-23 20:32:37 UTC (rev 920)
@@ -145,6 +145,8 @@
 	GEANY_ENCODING_WINDOWS_1256,
 	GEANY_ENCODING_WINDOWS_1257,
 	GEANY_ENCODING_WINDOWS_1258,
+	
+	GEANY_ENCODING_NONE,
 
 	GEANY_ENCODINGS_MAX
 } GeanyEncodingIndex;


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