Mercurial > pidgin.yaz
view plugins/crazychat/crazychat.c @ 13834:378bba5011e7
[gaim-migrate @ 16283]
SF Patch #1500688 from Brian Chu (roast)
He already committed this to his soc-2006-file-loggers branch.
Here's the patch description:
In util.c, gaim_markup_html_to_xhtml() doesn't trim
spaces of parsed background colors, parsed font names,
or the end result for styles (which inserted spaces for
the purpose of many span.style attributes).
For example, things like this get written to the log:
<span style='font-size: small; '>
Things like the following this _can_ written to the log
given a tag like this:
<font face=" Comic Sans MS ">
<span style='font-family: Comic Sans MS
; '>
Same for: <body bgcolor=" Red ">
<span style='background: Red ;'>
committer: Tailor Script <tailor@pidgin.im>
author | Richard Laager <rlaager@wiktel.com> |
---|---|
date | Mon, 19 Jun 2006 05:57:11 +0000 |
parents | ed017b9c532d |
children |
line wrap: on
line source
#include <assert.h> #include <stdlib.h> #include <string.h> #include "cc_interface.h" struct cc_session_node { struct cc_session session; struct cc_session_node *next; }; struct cc_session *cc_find_session(struct crazychat *cc, char *handle) { struct cc_session_node *curr; assert(cc); assert(handle); curr = cc->sessions; while (curr) { struct cc_session *session = &curr->session; if (!strncmp(session->name, handle, strlen(session->name))) { return session; } curr = curr->next; } return NULL; } struct cc_session *cc_add_session(struct crazychat *cc, char *handle) { struct cc_session_node *curr; assert(cc); assert(handle); if (!cc->sessions) { cc->sessions = (struct cc_session_node*) malloc(sizeof(*cc->sessions)); memset(cc->sessions, 0, sizeof(*cc->sessions)); cc->sessions->session.cc = cc; cc->sessions->session.name = strdup(handle); return &cc->sessions->session; } else { if (!strncmp(cc->sessions->session.name, handle, strlen(cc->sessions->session.name))) { return &cc->sessions->session; } } curr = cc->sessions; while (curr->next) { struct cc_session *session = &curr->next->session; if (!strncmp(session->name, handle, strlen(session->name))) { return session; } curr = curr->next; } curr->next = (struct cc_session_node*)malloc(sizeof(*curr->next)); memset(curr->next, 0, sizeof(*curr->next)); curr->next->session.cc = cc; curr->next->session.name = strdup(handle); return &curr->next->session; } void cc_remove_session(struct crazychat *cc, struct cc_session *session) { struct cc_session_node *curr, *prev; assert(cc); assert(session); assert(cc->sessions); curr = cc->sessions; prev = NULL; while (curr) { if (&curr->session == session) { if (prev) { prev->next = curr->next; } else { cc->sessions = curr->next; } /* destroy curr */ free(curr); g_source_remove(session->timer_id); free(session->name); free(session); return; } prev = curr; curr = curr->next; } assert(0); }