# HG changeset patch # User Yoshiki Yazawa # Date 1220693850 -32400 # Node ID c3efae72f72acd9668ba617ee499d54ff40e140e # Parent b168502b73c36597d7ecc6d28369c719c7b9a16b tweaked the recipient pattern to allow mail addresses or some special strings such as "idolm@ster." diff -r b168502b73c3 -r c3efae72f72a pidgin-twitter.c --- a/pidgin-twitter.c Wed Sep 03 18:39:39 2008 +0900 +++ b/pidgin-twitter.c Sat Sep 06 18:37:30 2008 +0900 @@ -893,8 +893,10 @@ twitter_debug("which = %d service = %d\n", which, service); if(which == RECIPIENT) { - gchar *match = g_match_info_fetch(match_info, 1); + gchar *match1 = g_match_info_fetch(match_info, 1); /* preceding \s */ + gchar *match2 = g_match_info_fetch(match_info, 2); /* recipient */ const gchar *format = NULL; + switch(service) { case twitter_service: format = RECIPIENT_FORMAT_TWITTER; @@ -909,8 +911,9 @@ twitter_debug("unknown service\n"); break; } - g_snprintf(sub, SUBST_BUF_SIZE, format, match, match); - g_free(match); + g_snprintf(sub, SUBST_BUF_SIZE, format, match1 ? match1: "", match2, match2); + g_free(match1); + g_free(match2); } else if(which == SENDER) { gchar *match1 = g_match_info_fetch(match_info, 1); /*preceding CR|LF*/ diff -r b168502b73c3 -r c3efae72f72a pidgin-twitter.h --- a/pidgin-twitter.h Wed Sep 03 18:39:39 2008 +0900 +++ b/pidgin-twitter.h Sat Sep 06 18:37:30 2008 +0900 @@ -132,11 +132,11 @@ #endif /* formats and templates */ -#define RECIPIENT_FORMAT_TWITTER "@%s" +#define RECIPIENT_FORMAT_TWITTER "%s@%s" #define SENDER_FORMAT_TWITTER "%s%s: " -#define RECIPIENT_FORMAT_WASSR "@%s" +#define RECIPIENT_FORMAT_WASSR "%s@%s" #define SENDER_FORMAT_WASSR "%s%s: " -#define RECIPIENT_FORMAT_IDENTICA "@%s" +#define RECIPIENT_FORMAT_IDENTICA "%s@%s" #define SENDER_FORMAT_IDENTICA "%s%s: " #define CHANNEL_FORMAT_WASSR "%s%s " #define CHANNEL_FORMAT_IDENTICA "%s%s " @@ -147,7 +147,7 @@ #define EMPTY "" /* patterns */ -#define P_RECIPIENT "@([A-Za-z0-9_]+)" +#define P_RECIPIENT "(^|\\s+)@([A-Za-z0-9_]+)" #define P_SENDER "^(\\r?\\n?)\\s*([A-Za-z0-9_]+)(?:\\s*\\(.+\\))?: " #define P_COMMAND "^(?:\\s*)([dDfFgGlLmMnNtTwW]{1}\\s+[A-Za-z0-9_]+)(?:\\s*\\Z)" #define P_PSEUDO "^\\s*(?:[\"#$%&'()*+,\\-./:;<=>?\\[\\\\\\]_`{|}~]|[^\\s\\x21-\\x7E])*([dDfFgGlLmMnNtTwW]{1})(?:\\Z|\\s+|[^\\x21-\\x7E]+\\Z)"