SF.net SVN: geany-plugins:[558] trunk/geanylipsum
frlan at users.sourceforge.net
frlan at xxxxx
Tue Mar 24 22:31:38 UTC 2009
Revision: 558
http://geany-plugins.svn.sourceforge.net/geany-plugins/?rev=558&view=rev
Author: frlan
Date: 2009-03-24 22:31:37 +0000 (Tue, 24 Mar 2009)
Log Message:
-----------
GeanyLipsum: Applied a patch by Enrico to improve code and fix some memory leaks
Modified Paths:
--------------
trunk/geanylipsum/ChangeLog
trunk/geanylipsum/src/geanylipsum.c
Modified: trunk/geanylipsum/ChangeLog
===================================================================
--- trunk/geanylipsum/ChangeLog 2009-03-22 22:20:21 UTC (rev 557)
+++ trunk/geanylipsum/ChangeLog 2009-03-24 22:31:37 UTC (rev 558)
@@ -1,3 +1,9 @@
+2009-03-24 Frank Lanitz <frank(at)frank(dot)uvena(dot)de>
+
+ * Applied a patch by Enrico to improve code and fix some memory
+ leaks
+
+
2009-01-23 Frank Lanitz <frank(at)frank(dot)uvena(dot)de>
* Update to plugin API v128
Modified: trunk/geanylipsum/src/geanylipsum.c
===================================================================
--- trunk/geanylipsum/src/geanylipsum.c 2009-03-22 22:20:21 UTC (rev 557)
+++ trunk/geanylipsum/src/geanylipsum.c 2009-03-24 22:31:37 UTC (rev 558)
@@ -35,16 +35,7 @@
# include <locale.h>
#endif
-#define LOREMIPSUM "\
-Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy\
-eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam\
-voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet \
-clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet."
-enum {
- PLAIN_LIPSUM = 0,
-};
-
GeanyPlugin *geany_plugin;
GeanyData *geany_data;
GeanyFunctions *geany_functions;
@@ -53,8 +44,12 @@
PLUGIN_SET_INFO(_("Lipsum"), _("Creating dummy text with Geany"), VERSION, "Frank Lanitz <frank at frank.uvena.de>");
static GtkWidget *main_menu_item = NULL;
-static gchar *config_file = NULL;
static gchar *lipsum = NULL;
+static const gchar *default_loremipsum = "\
+Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy\
+eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam\
+voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet \
+clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.";
/* Doing some basic keybinding stuff */
@@ -68,13 +63,9 @@
-void
-insert_string(gchar *string)
+static void
+insert_string(GeanyDocument *doc, const gchar *string)
{
- GeanyDocument *doc = NULL;
-
- doc = document_get_current();
-
if (doc != NULL)
{
gint pos = sci_get_current_position(doc->editor->sci);
@@ -83,7 +74,7 @@
}
-void
+static void
lipsum_activated(G_GNUC_UNUSED GtkMenuItem *menuitem, G_GNUC_UNUSED gpointer gdata)
{
GeanyDocument *doc = NULL;
@@ -120,14 +111,20 @@
missing = value - (x * tmp);
}
+ sci_start_undo_action(doc->editor->sci);
+
/* Insert lipsum snippet as often as needed ... */
for (i = 0; i < x; i++)
- insert_string(lipsum);
+ insert_string(doc, lipsum);
/* .. and insert a little more if needed */
if (missing > 0)
- insert_string(g_strndup(lipsum, missing));
-
+ {
+ gchar *missing_text = g_strndup(lipsum, missing);
+ insert_string(doc, missing_text);
+ g_free(missing_text);
+ }
+ sci_end_undo_action(doc->editor->sci);
}
}
@@ -146,6 +143,8 @@
GtkWidget *menu_lipsum = NULL;
GKeyFile *config = g_key_file_new();
GtkTooltips *tooltips = NULL;
+ gchar *config_file = NULL;
+
tooltips = gtk_tooltips_new();
main_locale_init(LOCALEDIR, GETTEXT_PACKAGE);
@@ -156,14 +155,10 @@
/* Initialising options from config file if there is any*/
g_key_file_load_from_file(config, config_file, G_KEY_FILE_NONE, NULL);
- lipsum = g_key_file_get_string(config, "snippets", "lipsumtext", NULL);
+ lipsum = utils_get_setting_string(config, "snippets", "lipsumtext", default_loremipsum);
- /* Setting default value */
- if (lipsum == NULL)
- {
- lipsum = g_strdup(LOREMIPSUM);
- }
g_key_file_free(config);
+ g_free(config_file);
/* Building menu entry */
menu_lipsum = gtk_image_menu_item_new_with_mnemonic(_("_Lipsum"));
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Plugins-Commits
mailing list