Mercurial > pidgin.yaz
diff libpurple/util.c @ 28203:da22b6d0151e
Add support for XMPP URIs on Windows. Closes #2326.
author | Paul Aurich <paul@darkrain42.org> |
---|---|
date | Sun, 09 Aug 2009 00:15:14 +0000 |
parents | 577bf7ea0395 |
children | 766f7905314a 9358464cdf6a |
line wrap: on
line diff
--- a/libpurple/util.c Fri Aug 07 17:12:11 2009 +0000 +++ b/libpurple/util.c Sun Aug 09 00:15:14 2009 +0000 @@ -3519,6 +3519,7 @@ void purple_got_protocol_handler_uri(const char *uri) { char proto[11]; + char delimiter; const char *tmp, *param_string; char *cmd; GHashTable *params = NULL; @@ -3534,7 +3535,13 @@ proto[len] = '\0'; tmp++; - purple_debug_info("util", "Processing message '%s' for protocol '%s'.\n", tmp, proto); + + if (g_str_equal(proto, "xmpp")) + delimiter = ';'; + else + delimiter = '&'; + + purple_debug_info("util", "Processing message '%s' for protocol '%s' using delimiter '%c'.\n", tmp, proto, delimiter); if ((param_string = strchr(tmp, '?'))) { const char *keyend = NULL, *pairstart; @@ -3547,7 +3554,7 @@ pairstart = tmp = param_string; while (*tmp || *pairstart) { - if (*tmp == '&' || !(*tmp)) { + if (*tmp == delimiter || !(*tmp)) { /* If there is no explicit value */ if (keyend == NULL) keyend = tmp;