+static gchar*
+format_time (time_t t)
+{
+ static const guint RESULT_SIZE = 32;
+
+ time_t now;
+ struct tm now_tm, t_tm;
+ const gchar *format = "%Y.%m.%d %T";
+ gchar *result = g_malloc0 (RESULT_SIZE);
+
+ now = time (NULL);
+ localtime_r (&now, &now_tm);
+ localtime_r (&t, &t_tm);
+
+ if ((now_tm.tm_year == t_tm.tm_year) &&
+ (now_tm.tm_mon == t_tm.tm_mon) &&
+ (now_tm.tm_mday == t_tm.tm_mday))
+ format = "%T";
+
+ strftime (result, RESULT_SIZE, format, &t_tm);
+
+ return result;
+}
+