# HG changeset patch # User Yoshiki Yazawa # Date 1223358682 -32400 # Node ID e3a24c98772dc70e77397ebbb458849876211cf9 # Parent 2e431c7062f257671a81daae0c4e3f31c00d8e36 added a new feature that strips excessive consecutive new line characters. diff -r 2e431c7062f2 -r e3a24c98772d pidgin-twitter.c --- a/pidgin-twitter.c Mon Sep 29 22:51:25 2008 +0900 +++ b/pidgin-twitter.c Tue Oct 07 14:51:22 2008 +0900 @@ -24,7 +24,7 @@ /***********/ /* globals */ /***********/ -#define NUM_REGPS 11 +#define NUM_REGPS 12 #define NUM_SERVICES 3 /* twitter, wassr, identica. */ static GRegex *regp[NUM_REGPS]; static gboolean suppress_oops = FALSE; @@ -962,6 +962,9 @@ g_free(match); g_free(link); } + else if(which == EXCESS_LF) { + g_snprintf(sub, SUBST_BUF_SIZE, "%s", "\n\n"); + } g_string_append(result, sub); twitter_debug("sub = %s\n", sub); @@ -970,16 +973,14 @@ } static void -translate(gchar **str, gint which, gint service) +translate(gchar **str, gint regp_id, gint service) { gchar *newstr; eval_data *data = g_new0(eval_data, 1); - gint regp_id; - - data->which = which; + + data->which = regp_id; data->service = service; - regp_id = which; /* for future use --yaz */ newstr = g_regex_replace_eval(regp[regp_id], /* compiled regex */ *str, /* subject string */ -1, /* length of the subject string */ @@ -991,7 +992,7 @@ g_free(data); data = NULL; - twitter_debug("which = %d *str = %s newstr = %s\n", which, *str, newstr); + twitter_debug("which = %d *str = %s newstr = %s\n", regp_id, *str, newstr); g_free(*str); *str = newstr; @@ -1110,6 +1111,10 @@ escape(buffer); } + if(purple_prefs_get_bool(OPT_STRIP_EXCESS_LF)) { + translate(buffer, EXCESS_LF, service); + } + return FALSE; } @@ -2611,6 +2616,7 @@ regp[IMAGE_IDENTICA] = g_regex_new(P_IMAGE_IDENTICA, 0, 0, NULL); regp[TAG_IDENTICA] = g_regex_new(P_TAG_IDENTICA, 0, 0, NULL); regp[SIZE_128_WASSR] = g_regex_new(P_SIZE_128_WASSR, 0, 0, NULL); + regp[EXCESS_LF] = g_regex_new(P_EXCESS_LF, 0, 0, NULL); for(i = twitter_service; i < NUM_SERVICES; i++) { icon_hash[i] = g_hash_table_new_full(g_str_hash, g_str_equal, @@ -3185,6 +3191,13 @@ g_signal_connect(e, "toggled", G_CALLBACK(bool_toggled_cb), &e); + e = GTK_WIDGET(gtk_builder_get_object (builder, "utility_strip_excess_lf")); + g_object_set_data(G_OBJECT(e), "pref", OPT_STRIP_EXCESS_LF); + gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(e), + purple_prefs_get_bool(OPT_STRIP_EXCESS_LF)); + g_signal_connect(e, "toggled", + G_CALLBACK(bool_toggled_cb), &e); + e = GTK_WIDGET(gtk_builder_get_object (builder, "utility_notify")); g_object_set_data(G_OBJECT(e), "pref", OPT_PREVENT_NOTIFICATION); gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(e), @@ -3256,6 +3269,7 @@ purple_prefs_add_bool(OPT_TRANSLATE_SENDER, TRUE); purple_prefs_add_bool(OPT_TRANSLATE_CHANNEL, TRUE); purple_prefs_add_bool(OPT_ESCAPE_PSEUDO, TRUE); + purple_prefs_add_bool(OPT_STRIP_EXCESS_LF, TRUE); purple_prefs_add_bool(OPT_PLAYSOUND_RECIPIENT, TRUE); purple_prefs_add_bool(OPT_PLAYSOUND_SENDER, TRUE); diff -r 2e431c7062f2 -r e3a24c98772d pidgin-twitter.h --- a/pidgin-twitter.h Mon Sep 29 22:51:25 2008 +0900 +++ b/pidgin-twitter.h Tue Oct 07 14:51:22 2008 +0900 @@ -36,7 +36,8 @@ IMAGE_WASSR, IMAGE_IDENTICA, TAG_IDENTICA, - SIZE_128_WASSR + SIZE_128_WASSR, + EXCESS_LF }; /* service id */ @@ -124,6 +125,7 @@ #define OPT_FILTER_TWITTER OPT_PIDGINTWITTER "/filter_twitter" #define OPT_FILTER_WASSR OPT_PIDGINTWITTER "/filter_wassr" #define OPT_FILTER_IDENTICA OPT_PIDGINTWITTER "/filter_identica" +#define OPT_STRIP_EXCESS_LF OPT_PIDGINTWITTER "/strip_excess_lf" #ifdef _WIN32 #define OPT_PIDGIN_BLINK_IM PIDGIN_PREFS_ROOT "/win32/blink_im" @@ -153,9 +155,10 @@ #define P_CHANNEL "^(.*?(?:)?[-A-Za-z0-9_]+(?:)?: \\r?\\n?#)([A-Za-z0-9_]+) " #define P_IMAGE_TWITTER "" #define P_IMAGE_WASSR "
" +#define P_SIZE_128_WASSR "\\.128\\." #define P_IMAGE_IDENTICA "\"[A-Za-z0-0_]+\"/" #define P_TAG_IDENTICA "#([-A-Za-z0-9_]+)" -#define P_SIZE_128_WASSR "\\.128\\." +#define P_EXCESS_LF "([\\r|\\n]{3,})" /* twitter API specific macros */ #define TWITTER_BASE_URL "http://twitter.com" diff -r 2e431c7062f2 -r e3a24c98772d prefs.ui --- a/prefs.ui Mon Sep 29 22:51:25 2008 +0900 +++ b/prefs.ui Tue Oct 07 14:51:22 2008 +0900 @@ -760,17 +760,46 @@ - + True - 40 + + + + + + 2 + 3 + + + + + + + True - + + + + + 1 + 2 + + + + + + True + 20 + + True - Icon size + pixel + 3 + 4 @@ -797,46 +826,17 @@ - + True - 20 + 40 - + True - pixel + Icon size - 3 - 4 - - - - - - - True - - - - - - 1 - 2 - - - - - - True - - - - - - 2 - 3 @@ -927,24 +927,72 @@ - + True - 20 - + + + + + 1 + 2 + + + + + + True + 40 + + True - days + Update every - 5 - 6 + + True + 4 + + + True + True + 1 + True + True + + + + + 2 + 3 + + + + + + + True + + + True + times or + + + + + 3 + 4 + + + + True 4 @@ -967,71 +1015,23 @@ - + True + 20 - + True - times or - - - - - 3 - 4 - - - - - - True - 4 - - - True - True - 1 - True - True + days - 2 - 3 + 5 + 6 - - - True - 40 - - - True - Update every - - - - - - - - - - - True - - - - - - 1 - 2 - - - False @@ -1430,6 +1430,24 @@ + + True + 20 + + + True + True + Strip excessive LF characters in a message + 0 + True + + + + + 5 + + + True 20 @@ -1444,7 +1462,7 @@ - 5 + 6 @@ -1463,7 +1481,7 @@ - 6 + 7 @@ -1482,7 +1500,7 @@ - 7 + 8