int xtext_get_stamp_str(time_t tim, char **ret) { if (strlen(prefs.stamp_format) == 0) { strncpy(prefs.stamp_format, "[%H:%M:%S] ", 11); prefs.stamp_format[11] = '\0'; } return get_stamp_str(prefs.stamp_format, tim, ret); }
static int timecat (char *buf) { char stampbuf[64]; get_stamp_str (time (0), stampbuf, sizeof (stampbuf)); strcat (buf, stampbuf); return strlen (stampbuf); }
static void log_write (session *sess, char *text, time_t ts) { char *temp; char *stamp; char *file; int len; if (sess->text_logging == SET_DEFAULT) { if (!prefs.hex_irc_logging) return; } else { if (sess->text_logging != SET_ON) return; } if (sess->logfd == -1) log_open (sess); /* change to a different log file? */ file = log_create_pathname (sess->server->servername, sess->channel, server_get_network (sess->server, FALSE)); if (file) { if (g_access (file, F_OK) != 0) { close (sess->logfd); sess->logfd = log_open_file (sess->server->servername, sess->channel, server_get_network (sess->server, FALSE)); } g_free (file); } if (prefs.hex_stamp_log) { if (!ts) ts = time(0); len = get_stamp_str (prefs.hex_stamp_log_format, ts, &stamp); if (len) { write (sess->logfd, stamp, len); g_free (stamp); } } temp = strip_color (text, -1, STRIP_ALL); len = strlen (temp); write (sess->logfd, temp, len); /* lots of scripts/plugins print without a \n at the end */ if (temp[len - 1] != '\n') write (sess->logfd, "\n", 1); /* emulate what xtext would display */ g_free (temp); }
static int timecat (char *buf, time_t stamp) { char stampbuf[64]; /* set the stamp to the current time if not provided */ if (!stamp) stamp = time (0); get_stamp_str (stamp, stampbuf, sizeof (stampbuf)); strcat (buf, stampbuf); return strlen (stampbuf); }
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); }
/* this is only used in xtext.c for indented timestamping */ int xtext_get_stamp_str (time_t tim, char **ret) { return get_stamp_str (prefs.stamp_format, tim, ret); }