# HG changeset patch # User Yoshiki Yazawa # Date 1255855120 -32400 # Node ID b41f1bf69cba1b0534d3b6ee3af71e7a4d4c5c32 # Parent 2b79bad516e624d21771548d85ef0b56ff551942 - twitter still requires preceding white space on a hash tag in almost all case. - include zenkaku-space in UTF-8 encoding to the preceding white space. it deviates from twitter specification but convenient to Asian users. diff -r 2b79bad516e6 -r b41f1bf69cba main.c --- a/main.c Sun Oct 18 16:55:57 2009 +0900 +++ b/main.c Sun Oct 18 17:38:40 2009 +0900 @@ -242,9 +242,12 @@ g_free(match2); } else if(which == TAG_TWITTER && service == twitter_service) { - gchar *match = g_match_info_fetch(match_info, 1); /* search tag */ - g_snprintf(sub, SUBST_BUF_SIZE, TAG_FORMAT_TWITTER, match, match); - g_free(match); + gchar *match1 = g_match_info_fetch(match_info, 1); /* white space */ + gchar *match2 = g_match_info_fetch(match_info, 2); /* search tag */ + g_snprintf(sub, SUBST_BUF_SIZE, TAG_FORMAT_TWITTER, + match1 ? match1 : "", match2, match2); + g_free(match1); + g_free(match2); } else if(which == TAG_IDENTICA && service == identica_service) { gchar *match = g_match_info_fetch(match_info, 1); diff -r 2b79bad516e6 -r b41f1bf69cba pidgin-twitter.h --- a/pidgin-twitter.h Sun Oct 18 16:55:57 2009 +0900 +++ b/pidgin-twitter.h Sun Oct 18 17:38:40 2009 +0900 @@ -169,7 +169,7 @@ #define SENDER_FORMAT_FFEED "%s%s: " #define CHANNEL_FORMAT_WASSR "%s%s " #define CHANNEL_FORMAT_IDENTICA "%s%s " -#define TAG_FORMAT_TWITTER "#%s" +#define TAG_FORMAT_TWITTER "%s#%s" #define TAG_FORMAT_IDENTICA "#%s" #define GROUP_FORMAT_IDENTICA "!%s" #define LINK_FORMAT_TWITTER " R F RT" @@ -186,7 +186,7 @@ #define P_PSEUDO "^\\s*(?:[\"#$%&'()*+,\\-./:;<=>?\\[\\\\\\]_`{|}~]|[^\\s\\x21-\\x7E])*([dDfFgGlLmMnNtTwW]{1})(?:\\Z|\\s+|[^\\x21-\\x7E]+\\Z)" #define P_USER "^.*?(?:)?([-A-Za-z0-9_]+)(?:)?:" #define P_CHANNEL "^(.*?(?:)?[-A-Za-z0-9_]+(?:)?: \\r?\\n?#)([A-Za-z0-9_]+) " -#define P_TAG_TWITTER "#([^-A-Za-z0-9_]*[-A-Za-z0-9_]+[^\\s[:punct:]]*)" +#define P_TAG_TWITTER "(^|\\s+|\xe3\x80\x80)#([^-A-Za-z0-9_]*[-A-Za-z0-9_]+[^\\s[:punct:]]*)" #define P_TAG_IDENTICA "#([-A-Za-z0-9_]+)" #define P_GROUP_IDENTICA "!([-A-Za-z0-9_]+)" #define P_IMAGE_TWITTER "(https?://.+?)"