summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVesa Pirila <vesa@pirila.fi>2015-02-08 16:58:30 +0200
committerVesa Pirila <vesa@pirila.fi>2015-02-08 16:58:30 +0200
commitcd5a571fd8aba12b6b8ddbf54e947ac4cc1e516e (patch)
tree81fa09e1cc4ce95e9cc93e76aa02fc168cfc60bf
parent466166010b751efc622af444e00c33a843c98063 (diff)
downloadirssi-cd5a571fd8aba12b6b8ddbf54e947ac4cc1e516e.zip
Added customization possibility for the lastlog date format, lastlog_date
-rw-r--r--docs/help/in/lastlog.in2
-rw-r--r--src/fe-text/lastlog.c22
-rw-r--r--src/fe-text/module-formats.c1
-rw-r--r--src/fe-text/module-formats.h1
4 files changed, 18 insertions, 8 deletions
diff --git a/docs/help/in/lastlog.in b/docs/help/in/lastlog.in
index e6f5886a..25879d31 100644
--- a/docs/help/in/lastlog.in
+++ b/docs/help/in/lastlog.in
@@ -14,7 +14,7 @@
-clear: Removes the previous results from the active window.
-count: Displays how many lines match.
-case: Performs a case-sensitive matching.
- -date: Prepends each row with the message's date (YYYY-MM-DD).
+ -date: Prepends each row with the message's date
-regexp: The given text pattern is a regular expression.
-word: The text must match full words.
-force: Forces to display the lastlog, even if it exceeds 1000 lines.
diff --git a/src/fe-text/lastlog.c b/src/fe-text/lastlog.c
index fe3cf5af..3c700d76 100644
--- a/src/fe-text/lastlog.c
+++ b/src/fe-text/lastlog.c
@@ -74,15 +74,23 @@ int cmd_options_get_level(const char *cmd, GHashTable *optlist)
return retlevel;
}
-static void prepend_date(LINE_REC *rec, GString *line)
+static void prepend_date(WINDOW_REC *window, LINE_REC *rec, GString *line)
{
+ THEME_REC *theme = NULL;
+ TEXT_DEST_REC dest = {0};
+ char *format = NULL, datestamp[20] = {0};
struct tm *tm = localtime(&rec->info.time);
- char timestamp[12];
+ int ret = 0;
- g_snprintf(timestamp, sizeof(timestamp),
- "%04d-%02d-%02d ",
- tm->tm_year+1900, tm->tm_mon, tm->tm_mday);
- g_string_prepend(line, timestamp);
+ theme = window->theme != NULL ? window->theme : current_theme;
+ format_create_dest(&dest, NULL, NULL, MSGLEVEL_LASTLOG, window);
+ format = format_get_text_theme(theme, MODULE_NAME, &dest, TXT_LASTLOG_DATE);
+
+ ret = strftime(datestamp, sizeof(datestamp), format, tm);
+ g_free(format);
+ if (ret <= 0) return;
+
+ g_string_prepend(line, datestamp);
}
static void show_lastlog(const char *searchtext, GHashTable *optlist,
@@ -214,7 +222,7 @@ static void show_lastlog(const char *searchtext, GHashTable *optlist,
}
if (date == TRUE)
- prepend_date(rec, line);
+ prepend_date(window, rec, line);
/* write to file/window */
if (fhandle != NULL) {
diff --git a/src/fe-text/module-formats.c b/src/fe-text/module-formats.c
index 1d905095..899827c2 100644
--- a/src/fe-text/module-formats.c
+++ b/src/fe-text/module-formats.c
@@ -33,6 +33,7 @@ FORMAT_REC gui_text_formats[] =
{ "lastlog_start", "{hilight Lastlog}:", 0 },
{ "lastlog_end", "{hilight End of Lastlog}", 0 },
{ "lastlog_separator", "--", 0 },
+ { "lastlog_date", "%%F ", 0 },
/* ---- */
{ NULL, "Windows", 0 },
diff --git a/src/fe-text/module-formats.h b/src/fe-text/module-formats.h
index 4eebfc3e..3fa8c511 100644
--- a/src/fe-text/module-formats.h
+++ b/src/fe-text/module-formats.h
@@ -10,6 +10,7 @@ enum {
TXT_LASTLOG_START,
TXT_LASTLOG_END,
TXT_LASTLOG_SEPARATOR,
+ TXT_LASTLOG_DATE,
TXT_FILL_2,