Revision: 2162 http://geany.svn.sourceforge.net/geany/?rev=2162&view=rev Author: eht16 Date: 2008-01-11 07:02:42 -0800 (Fri, 11 Jan 2008)
Log Message: ----------- Fix crash while reading Scintilla styles. Append "_export" to the exported file name when the exported file has the same extension as the source file.
Modified Paths: -------------- trunk/ChangeLog trunk/plugins/export.c
Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2008-01-11 14:23:29 UTC (rev 2161) +++ trunk/ChangeLog 2008-01-11 15:02:42 UTC (rev 2162) @@ -5,6 +5,10 @@ Fix crash while reading Scintilla styles. Add GTK's progress dialog when printing large documents which also provides the ability to cancel a print operation. + * plugins/export.c: + Fix crash while reading Scintilla styles. + Append "_export" to the exported file name when the exported file has + the same extension as the source file.
2008-01-10 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
Modified: trunk/plugins/export.c =================================================================== --- trunk/plugins/export.c 2008-01-11 14:23:29 UTC (rev 2161) +++ trunk/plugins/export.c 2008-01-11 15:02:42 UTC (rev 2162) @@ -25,6 +25,7 @@ /* Export plugin. */
#include <ctype.h> +#include <math.h>
#include "geany.h" #include "support.h" @@ -210,9 +211,17 @@ { gchar *base_name = g_path_get_basename(doc_list[idx].file_name); gchar *short_name = utils->remove_ext_from_filename(base_name); - gchar *file_name = g_strconcat(short_name, extension, NULL); - gchar *locale_filename = utils->get_locale_from_utf8(doc_list[idx].file_name); - gchar *locale_dirname = g_path_get_dirname(locale_filename); + gchar *file_name; + gchar *locale_filename; + gchar *locale_dirname; + gchar *suffix = ""; + + if (g_str_has_suffix(doc_list[idx].file_name, extension)) + suffix = "_export"; + + file_name = g_strconcat(short_name, suffix, extension, NULL); + locale_filename = utils->get_locale_from_utf8(doc_list[idx].file_name); + locale_dirname = g_path_get_dirname(locale_filename); // set the current name to base_name.html which probably doesn't exist yet so // gtk_file_chooser_set_filename() can't be used and we need // gtk_file_chooser_set_current_folder() additionally @@ -346,9 +355,10 @@ GString *body; GString *cmds; GString *latex; + gint style_max = pow(2, scintilla->send_message(doc_list[idx].sci, SCI_GETSTYLEBITS, 0, 0));
// first read all styles from Scintilla - for (i = 0; i <= STYLE_MAX; i++) + for (i = 0; i < style_max; i++) { styles[i][FORE] = scintilla->send_message(doc_list[idx].sci, SCI_STYLEGETFORE, i, 0); styles[i][BACK] = scintilla->send_message(doc_list[idx].sci, SCI_STYLEGETBACK, i, 0); @@ -552,9 +562,10 @@ GString *body; GString *css; GString *html; + gint style_max = pow(2, scintilla->send_message(doc_list[idx].sci, SCI_GETSTYLEBITS, 0, 0));
// first read all styles from Scintilla - for (i = 0; i <= STYLE_MAX; i++) + for (i = 0; i < style_max; i++) { styles[i][FORE] = ROTATE_RGB(scintilla->send_message(doc_list[idx].sci, SCI_STYLEGETFORE, i, 0)); styles[i][BACK] = ROTATE_RGB(scintilla->send_message(doc_list[idx].sci, SCI_STYLEGETBACK, i, 0));
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.