Skip to content

Instantly share code, notes, and snippets.

@sunnyone
Created October 31, 2011 15:41
Show Gist options
  • Select an option

  • Save sunnyone/1327783 to your computer and use it in GitHub Desktop.

Select an option

Save sunnyone/1327783 to your computer and use it in GitHub Desktop.
irc_message.c irc_message_to_string
gchar *
irc_message_to_string(IRCMessage *msg)
{
GString *string;
gchar *str;
gint i, num;
g_return_val_if_fail(msg != NULL, NULL);
g_return_val_if_fail(IS_IRC_MESSAGE(msg), NULL);
g_return_val_if_fail(msg->command != NULL, NULL);
g_return_val_if_fail(msg->parameter != NULL, NULL);
num = irc_message_count_parameters(msg);
string = g_string_new(msg->command);
if(num > 0) {
for(i = 0; i < num - 1; i++) {
g_string_append_c(string, ' ');
g_string_append(string, msg->parameter[i]);
}
// only if the last parameter has <SPACE>(' ') or empty (""), add ':' (for madoka)
if (strlen(msg->parameter[i]) > 0 && strchr(msg->parameter[i], ' ') == NULL) {
g_string_append_printf(string, " %s", msg->parameter[i]);
} else {
g_string_append_printf(string, " :%s", msg->parameter[i]);
}
}
str = string->str;
g_string_free(string, FALSE);
return str;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment