[geany/geany-plugins] 7fd5de: bugfixes

Enrico git-noreply at xxxxx
Wed May 2 23:15:49 UTC 2012


Branch:      refs/heads/master
Author:      Enrico <enrico.trt at gmail.com>
Committer:   Enrico <enrico.trt at gmail.com>
Date:        Wed, 02 May 2012 23:15:49
Commit:      7fd5de3c640d97049d2c76c125bfe849d2adf796
             https://github.com/geany/geany-plugins/commit/7fd5de3c640d97049d2c76c125bfe849d2adf796

Log Message:
-----------
bugfixes


Modified Paths:
--------------
    geniuspaste/TODO
    geniuspaste/src/geniuspaste.c

Modified: geniuspaste/TODO
3 files changed, 2 insertions(+), 1 deletions(-)
===================================================================
@@ -1,4 +1,5 @@
 TODO
 ----
 
-    * Make the geany's pastebin the default pastebin
+    [!] Implement saving/loading of the settings
+    [-] Make the geany's pastebin the default pastebin


Modified: geniuspaste/src/geniuspaste.c
67 files changed, 51 insertions(+), 16 deletions(-)
===================================================================
@@ -42,6 +42,9 @@
 #define DPASTE_DE 			3
 #define SPRUNGE_US 			4
 
+#define DEFAULT_TYPE_CODEPAD langs_supported_codepad[8];
+#define DEFAULT_TYPE_DPASTE langs_supported_dpaste[15];
+
 GeanyPlugin *geany_plugin;
 GeanyData *geany_data;
 GeanyFunctions *geany_functions;
@@ -49,11 +52,11 @@
 static GtkWidget *main_menu_item = NULL;
 
 static const gchar *websites[] = {
-"http://codepad.org",
-"http://pastebin.com/api_public.php",
-"http://pastebin.geany.org/api/",
-"http://dpaste.de/api/",
-"http://sprunge.us/",
+	"http://codepad.org",
+	"http://pastebin.com/api_public.php",
+	"http://pastebin.geany.org/api/",
+	"http://dpaste.de/api/",
+	"http://sprunge.us/",
 };
 
 static struct {
@@ -90,7 +93,7 @@ static void paste(const gchar * website)
     GeanyDocument *doc = document_get_current();
 
     if(doc == NULL) {
-         dialogs_show_msgbox(GTK_MESSAGE_ERROR, "There are no opened documents. Open one and retry.\n");
+		dialogs_show_msgbox(GTK_MESSAGE_ERROR, "There are no opened documents. Open one and retry.\n");
         return;
     }
 
@@ -108,7 +111,19 @@ static void paste(const gchar * website)
     gchar *temp_body;
     gchar **tokens_array;
 
+	const gchar *langs_supported_codepad[] = { "C", "C++", "D", "Haskell",
+		"Lua", "OCaml", "PHP", "Perl", "Plain Text",
+		"Python", "Ruby", "Scheme", "Tcl"
+	};
+	
+	const gchar *langs_supported_dpaste[] = { "Bash", "C", "CSS", "Diff",
+		"Django/Jinja", "HTML", "IRC logs", "JavaScript", "PHP", 
+		"Python console session", "Python Traceback", "Python",
+		"Python3", "Restructured Text", "SQL", "Text only" 
+	};
+    
     gint occ_position;
+    gint i;
     guint status;
     gsize f_lenght;
     gboolean result;
@@ -120,6 +135,13 @@ static void paste(const gchar * website)
 		
 		case CODEPAD_ORG:
 			
+			for (i = 0; i < G_N_ELEMENTS(langs_supported_codepad); i++) {
+			    if (g_strcmp0(f_type, langs_supported_codepad[i]) == 0)
+				    break;
+			    else
+				    f_type = DEFAULT_TYPE_CODEPAD;
+		    }
+		    
 		    result = g_file_get_contents(f_path, &f_content, &f_lenght, &error);
 		    if(result == FALSE) {
 				dialogs_show_msgbox(GTK_MESSAGE_ERROR, "Unable to the the content of the file");
@@ -145,12 +167,19 @@ static void paste(const gchar * website)
 			msg = soup_message_new("POST", website);
 			formdata = soup_form_encode("paste_code", f_content, "paste_format",
 				f_type, "paste_name", f_title, NULL);
+				
 		break;
 	
 	
 		case DPASTE_DE:
 			
-			printf("%s\n", f_type);
+			for (i = 0; i < G_N_ELEMENTS(langs_supported_dpaste); i++) {
+				if (g_strcmp0(f_type, langs_supported_dpaste[i]) == 0)
+					break;
+				else
+					f_type = DEFAULT_TYPE_DPASTE;
+			}
+			
 			result = g_file_get_contents(f_path, &f_content, &f_lenght, &error);
 			if(result == FALSE) {
 				dialogs_show_msgbox(GTK_MESSAGE_ERROR, "Unable to the the content of the file");
@@ -202,10 +231,9 @@ static void paste(const gchar * website)
 		SOUP_MEMORY_COPY, formdata, strlen(formdata));
    
     status = soup_session_send_message(session, msg);
-
+	p_url = g_strdup(msg->response_body->data);
+	
     if(status == SOUP_STATUS_OK) {
-
-	    p_url = g_strdup(msg->response_body->data);
 	
 	    /*  
 	     * codepad.org doesn't return only the url of the new snippet pasted
@@ -221,11 +249,19 @@ static void paste(const gchar * website)
 	        */
 
 			p_url = g_strdup(tokens_array[5]);
-			p_url[indexof(tokens_array[5], '\"')] = '\0';
 			
-	        g_free(temp_body);
+			g_free(temp_body);
 	        g_strfreev(tokens_array);
-	
+	        
+			occ_position = indexof(tokens_array[5], '\"');
+	        if(occ_position != -1) {
+				p_url[occ_position] = '\0';
+			} else {
+				dialogs_show_msgbox(GTK_MESSAGE_ERROR, "Unable to paste the code on codepad.org\n"
+					"Retry or select another pastebin.");
+				return;
+			}
+			
 	    } else if(website_selected == DPASTE_DE) {
 	        p_url = g_strndup(p_url + 1, strlen(p_url) - 2);
 	
@@ -247,7 +283,6 @@ static void paste(const gchar * website)
 	
 	    if (check_button_is_checked) {
 			utils_open_browser(p_url);
-			g_free(p_url);
 	    } else {
 		    dialogs_show_msgbox(GTK_MESSAGE_INFO, "%s", p_url);
 	    }
@@ -257,8 +292,8 @@ static void paste(const gchar * website)
             "Error code: %d\n", status);
     }
     
-    g_free(f_content);
-        
+	g_free(f_content);
+	g_free(p_url);
 }
 
 static void item_activate(GtkMenuItem * menuitem, gpointer gdata)


@@ Diff output truncated at 100000 characters. @@


--------------
This E-Mail was brought to you by github_commit_mail.py (Source: TBD).



More information about the Plugins-Commits mailing list