SF.net SVN: geany-plugins:[2159] trunk/geany-plugins/tableconvert

frlan at users.sourceforge.net frlan at xxxxx
Sat Aug 20 15:05:19 UTC 2011


Revision: 2159
          http://geany-plugins.svn.sourceforge.net/geany-plugins/?rev=2159&view=rev
Author:   frlan
Date:     2011-08-20 15:05:19 +0000 (Sat, 20 Aug 2011)

Log Message:
-----------
Tableconvert: Added a function to convert to SQL e.g. for preparing an INSERT-statement.

Modified Paths:
--------------
    trunk/geany-plugins/tableconvert/ChangeLog
    trunk/geany-plugins/tableconvert/README
    trunk/geany-plugins/tableconvert/src/tableconvert.c

Modified: trunk/geany-plugins/tableconvert/ChangeLog
===================================================================
--- trunk/geany-plugins/tableconvert/ChangeLog	2011-08-16 09:28:51 UTC (rev 2158)
+++ trunk/geany-plugins/tableconvert/ChangeLog	2011-08-20 15:05:19 UTC (rev 2159)
@@ -1,3 +1,14 @@
+2011-08-19  Frank Lanitz  <frlan at frank.uvena.de>
+
+ * Added a function to convert to SQL e.g. for preparing an
+   INSERT-statement.
+
+
+2011-08-15  Frank Lanitz  <frlan at frank.uvena.de>
+
+ * Move filetype specific functions into seperate functions.
+
+
 2011-03-19  Frank Lanitz  <frlan at frank.uvena.de>
 
  * Make plugin function available via tools menu.

Modified: trunk/geany-plugins/tableconvert/README
===================================================================
--- trunk/geany-plugins/tableconvert/README	2011-08-16 09:28:51 UTC (rev 2158)
+++ trunk/geany-plugins/tableconvert/README	2011-08-20 15:05:19 UTC (rev 2159)
@@ -31,7 +31,10 @@
 push your keybinding. All line endings will be taken as end of a row
 and therefor transformed to fitting row endings.
 
-Currently the plugin is supporting HTML and LaTeX.
+Currently the plugin is supporting
+* HTML
+* LaTeX
+* SQL
 
 
 HTML
@@ -56,6 +59,26 @@
 some weird output you didn't expect -- just don't try it if you have
 heart issues or working on an important document :)
 
+SQL
+^^^
+
+At SQL line endings will be replaced with with closing braces )
+followed by a komma if is not the last line.
+
+Tabulators will be repace with ', ', so in the end, a tabulator
+seperated liste as e.g.
+
+foo	baa
+baa foo
+
+will be transformed to
+
+(
+	('foo', 'baa'),
+	('baa', 'foo')
+)
+
+
 Development
 -----------
 

Modified: trunk/geany-plugins/tableconvert/src/tableconvert.c
===================================================================
--- trunk/geany-plugins/tableconvert/src/tableconvert.c	2011-08-16 09:28:51 UTC (rev 2158)
+++ trunk/geany-plugins/tableconvert/src/tableconvert.c	2011-08-20 15:05:19 UTC (rev 2159)
@@ -141,6 +141,48 @@
 	return replacement_str;
 }
 
+static GString* convert_to_table_sql(gchar** rows)
+{
+	guint i;
+	guint j;
+	GString *replacement_str = NULL;
+
+	/* Adding start */
+	replacement_str = g_string_new("(\n");
+
+	/* Iteration onto rows and building up lines for replacement */
+	for (i = 0; rows[i] != NULL ; i++)
+	{
+		gchar **columns = NULL;
+
+		g_string_append(replacement_str, "\t('");
+		columns = g_strsplit_set(rows[i], "\t", -1);
+
+		for (j = 0; columns[j] != NULL; j++)
+		{
+			if (j > 0)
+			{
+				g_string_append(replacement_str, "','");
+			}
+			g_string_append(replacement_str, columns[j]);
+		}
+
+		if (rows[i+1] != NULL)
+		{
+			g_string_append(replacement_str, "'),\n");
+		}
+		else
+		{
+			g_string_append(replacement_str, "')\n");
+		}
+
+		g_free(columns);
+	}
+	/* Adding the end of table */
+	g_string_append(replacement_str, ")\n");
+	return replacement_str;
+}
+
 void convert_to_table(gboolean header)
 {
 	GeanyDocument *doc = NULL;
@@ -182,6 +224,11 @@
 					replacement_str = convert_to_table_latex(rows, header);
 					break;
 				}
+				case GEANY_FILETYPES_SQL:
+				{
+					replacement_str = convert_to_table_sql(rows);
+					break;
+				}
 				default:
 				{
 					replacement_str = NULL;


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