# HG changeset patch # User Luke Schierer # Date 1192818432 0 # Node ID 3a9709bfde65e98a6e925633d001e7407c84a166 # Parent 233c423d40d3253bc7d4da32e2f8a2fed05ea999 applied changes from 4d50bf3b08569aa2108a9f5da47fb1548d0c7dd9 through 525a410c03e7e16535f3fe683f9651283109265d applied changes from 525a410c03e7e16535f3fe683f9651283109265d through d4b316d73ebaf93803ca2642e78b8821c3b5d5c7 diff -r 233c423d40d3 -r 3a9709bfde65 libpurple/plugins/log_reader.c --- a/libpurple/plugins/log_reader.c Fri Oct 19 18:24:58 2007 +0000 +++ b/libpurple/plugins/log_reader.c Fri Oct 19 18:27:12 2007 +0000 @@ -1939,13 +1939,11 @@ g_return_val_if_fail(data->path != NULL, g_strdup("")); g_return_val_if_fail(data->length > 0, g_strdup("")); - error = NULL; - - contents = g_malloc(data->length + 2); - file = g_fopen(data->path, "rb"); g_return_val_if_fail(file != NULL, g_strdup("")); - + + contents = g_malloc(data->length + 2); + fseek(file, data->offset, SEEK_SET); fread(contents, data->length, 1, file); fclose(file); @@ -2026,7 +2024,7 @@ g_string_append(formatted, " "); if (is_in_message) { - if (buddy_name != NULL && buddy->alias) { + if (buddy_name != NULL && buddy != NULL && buddy->alias) { g_string_append_printf(formatted, "" "%s: ", buddy->alias); @@ -2056,7 +2054,9 @@ g_string_append(formatted, line); g_string_append(formatted, "
"); } - line = ++c; + + if (c) + line = ++c; } } g_free(contents); diff -r 233c423d40d3 -r 3a9709bfde65 libpurple/plugins/ssl/ssl-gnutls.c --- a/libpurple/plugins/ssl/ssl-gnutls.c Fri Oct 19 18:24:58 2007 +0000 +++ b/libpurple/plugins/ssl/ssl-gnutls.c Fri Oct 19 18:27:12 2007 +0000 @@ -884,7 +884,7 @@ gnutls_x509_crt crt_dat; /* GnuTLS time functions return this on error */ const time_t errval = (time_t) (-1); - + gboolean success = TRUE; g_return_val_if_fail(crt, FALSE); g_return_val_if_fail(crt->scheme == &x509_gnutls, FALSE); @@ -893,16 +893,16 @@ if (activation) { *activation = gnutls_x509_crt_get_activation_time(crt_dat); + if (*activation == errval) + success = FALSE; } if (expiration) { *expiration = gnutls_x509_crt_get_expiration_time(crt_dat); + if (*expiration == errval) + success = FALSE; } - if (*activation == errval || *expiration == errval) { - return FALSE; - } - - return TRUE; + return success; } /* X.509 certificate operations provided by this plugin */ diff -r 233c423d40d3 -r 3a9709bfde65 libpurple/protocols/bonjour/parser.c --- a/libpurple/protocols/bonjour/parser.c Fri Oct 19 18:24:58 2007 +0000 +++ b/libpurple/protocols/bonjour/parser.c Fri Oct 19 18:27:12 2007 +0000 @@ -64,7 +64,7 @@ char *attrib_ns = NULL; if (attributes[i+2]) { - attrib_ns = g_strdup((char*)attributes[i+2]);; + attrib_ns = g_strdup((char*)attributes[i+2]); } memcpy(attrib, attributes[i+3], attrib_len); diff -r 233c423d40d3 -r 3a9709bfde65 libpurple/protocols/jabber/parser.c --- a/libpurple/protocols/jabber/parser.c Fri Oct 19 18:24:58 2007 +0000 +++ b/libpurple/protocols/jabber/parser.c Fri Oct 19 18:27:12 2007 +0000 @@ -80,7 +80,7 @@ char *attrib_ns = NULL; if (attributes[i+2]) { - attrib_ns = g_strdup((char*)attributes[i+2]);; + attrib_ns = g_strdup((char*)attributes[i+2]); } memcpy(attrib, attributes[i+3], attrib_len); diff -r 233c423d40d3 -r 3a9709bfde65 libpurple/xmlnode.c --- a/libpurple/xmlnode.c Fri Oct 19 18:24:58 2007 +0000 +++ b/libpurple/xmlnode.c Fri Oct 19 18:27:12 2007 +0000 @@ -146,6 +146,19 @@ } } +/* Compare two nullable xmlns strings. + * They are considered equal if they're both NULL or the strings are equal + */ +static gboolean _xmlnode_compare_xmlns(const char *xmlns1, const char *xmlns2) { + gboolean equal = FALSE; + + if (xmlns1 == NULL && xmlns2 == NULL) + equal = TRUE; + else if (xmlns1 != NULL && xmlns2 != NULL && !strcmp(xmlns1, xmlns2)) + equal = TRUE; + + return equal; +} void xmlnode_remove_attrib_with_namespace(xmlnode *node, const char *attr, const char *xmlns) @@ -159,7 +172,7 @@ { if(attr_node->type == XMLNODE_TYPE_ATTRIB && !strcmp(attr_node->name, attr) && - !strcmp(attr_node->xmlns, xmlns)) + _xmlnode_compare_xmlns(xmlns, attr_node->xmlns)) { if(node->child == attr_node) { node->child = attr_node->next; @@ -238,7 +251,8 @@ for(x = node->child; x; x = x->next) { if(x->type == XMLNODE_TYPE_ATTRIB && - !strcmp(attr, x->name) && !strcmp(x->xmlns, xmlns)) { + !strcmp(attr, x->name) && + _xmlnode_compare_xmlns(xmlns, x->xmlns)) { return x->data; } } @@ -326,6 +340,7 @@ child_name = names[1]; for(x = parent->child; x; x = x->next) { + /* XXX: Is it correct to ignore the namespace for the match if none was specified? */ const char *xmlns = NULL; if(ns) xmlns = xmlnode_get_namespace(x); @@ -673,6 +688,7 @@ g_return_val_if_fail(node->type == XMLNODE_TYPE_TAG, NULL); for(sibling = node->next; sibling; sibling = sibling->next) { + /* XXX: Is it correct to ignore the namespace for the match if none was specified? */ const char *xmlns = NULL; if(ns) xmlns = xmlnode_get_namespace(sibling);