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@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@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.