/***************************************************************************** Appends the string to the chat output window. The string should be inserted on its own line, although it will have no newline. *****************************************************************************/ void real_luaconsole_append(const char *astring, const struct text_tag_list *tags) { GtkTextBuffer *buf; GtkTextIter iter; GtkTextMark *mark; ft_offset_t text_start_offset; struct luaconsole_data *pdialog = luaconsole_dialog_get(); fc_assert_ret(pdialog); buf = pdialog->message_buffer; gtk_text_buffer_get_end_iter(buf, &iter); gtk_text_buffer_insert(buf, &iter, "\n", -1); mark = gtk_text_buffer_create_mark(buf, NULL, &iter, TRUE); if (gui_gtk2_show_chat_message_time) { char timebuf[64]; time_t now; struct tm *now_tm; now = time(NULL); now_tm = localtime(&now); strftime(timebuf, sizeof(timebuf), "[%H:%M:%S] ", now_tm); gtk_text_buffer_insert(buf, &iter, timebuf, -1); } text_start_offset = gtk_text_iter_get_offset(&iter); gtk_text_buffer_insert(buf, &iter, astring, -1); text_tag_list_iterate(tags, ptag) { apply_text_tag(ptag, buf, text_start_offset, astring); } text_tag_list_iterate_end;
/************************************************************************** Appends the string to the chat output window. The string should be inserted on its own line, although it will have no newline. **************************************************************************/ void real_output_window_append(const char *astring, const struct text_tag_list *tags, int conn_id) { GtkTextBuffer *buf; GtkTextIter iter; GtkTextMark *mark; ft_offset_t text_start_offset; buf = message_buffer; if (buf == NULL) { log_error("Output when no message buffer: %s", astring); return; } gtk_text_buffer_get_end_iter(buf, &iter); gtk_text_buffer_insert(buf, &iter, "\n", -1); mark = gtk_text_buffer_create_mark(buf, NULL, &iter, TRUE); if (gui_gtk2_show_chat_message_time) { char timebuf[64]; time_t now; struct tm *now_tm; now = time(NULL); now_tm = localtime(&now); strftime(timebuf, sizeof(timebuf), "[%H:%M:%S] ", now_tm); gtk_text_buffer_insert(buf, &iter, timebuf, -1); } text_start_offset = gtk_text_iter_get_offset(&iter); gtk_text_buffer_insert(buf, &iter, astring, -1); text_tag_list_iterate(tags, ptag) { apply_text_tag(ptag, buf, text_start_offset, astring); } text_tag_list_iterate_end;