void fe_add_rawlog (server *serv, char *text, int len, int outbound) { char **split_text; char *new_text; size_t i; if (!serv->gui->rawlog_window) return; split_text = g_strsplit (text, "\r\n", 0); for (i = 0; i < g_strv_length (split_text); i++) { if (split_text[i][0] == 0) break; if (outbound) new_text = g_strconcat ("\0034<<\017 ", split_text[i], NULL); else new_text = g_strconcat ("\0033>>\017 ", split_text[i], NULL); gtk_xtext_append (GTK_XTEXT (serv->gui->rawlog_textlist)->buffer, new_text, strlen (new_text), 0); g_free (new_text); } g_strfreev (split_text); }
static void PrintTextLine (xtext_buffer *xtbuf, unsigned char *text, int len, int indent, time_t timet) { unsigned char *tab, *new_text; int leftlen; if (len == 0) len = 1; if (!indent) { if (prefs.timestamp) { int stamp_size; char *stamp; if (timet == 0) timet = time (0); stamp_size = get_stamp_str (prefs.stamp_format, timet, &stamp); new_text = malloc (len + stamp_size + 1); memcpy (new_text, stamp, stamp_size); g_free (stamp); memcpy (new_text + stamp_size, text, len); gtk_xtext_append (xtbuf, new_text, len + stamp_size); free (new_text); } else gtk_xtext_append (xtbuf, text, len); return; } tab = strchr (text, '\t'); if (tab && tab < (text + len)) { leftlen = tab - text; gtk_xtext_append_indent (xtbuf, text, leftlen, tab + 1, len - (leftlen + 1), timet); } else gtk_xtext_append_indent (xtbuf, 0, 0, text, len, timet); }
void fe_add_rawlog (server *serv, char *text, int len, int outbound) { char *new_text; if (!serv->gui->rawlog_window) return; new_text = malloc (len + 7); len = sprintf (new_text, "\0033>>\017 %s", text); if (outbound) { new_text[1] = '4'; new_text[2] = '<'; new_text[3] = '<'; } gtk_xtext_append (GTK_XTEXT (serv->gui->rawlog_textlist)->buffer, new_text, len); free (new_text); }