summaryrefslogtreecommitdiffstats
path: root/printf.c
diff options
context:
space:
mode:
authorTavian Barnes <tavianator@tavianator.com>2018-07-24 19:30:41 -0400
committerTavian Barnes <tavianator@tavianator.com>2018-07-24 19:34:34 -0400
commitc9280082b774bb8ec8aba7560887d21a661eee0e (patch)
treead2cad2f25f5e0a95f926c64676d718941610cec /printf.c
parent199063ab53cbae3b3be199ff902f9f2d001d1058 (diff)
downloadbfs-c9280082b774bb8ec8aba7560887d21a661eee0e.tar.xz
printf: Support %B, GNU find's undocumented birth time specifier
Diffstat (limited to 'printf.c')
-rw-r--r--printf.c11
1 files changed, 6 insertions, 5 deletions
diff --git a/printf.c b/printf.c
index 0e9110e..d57c570 100644
--- a/printf.c
+++ b/printf.c
@@ -100,7 +100,7 @@ static const struct timespec *get_time_field(const struct bfs_stat *statbuf, enu
}
}
-/** %c, %c, and %t: ctime() */
+/** %a, %c, %t: ctime() */
static int bfs_printf_ctime(FILE *file, const struct bfs_printf_directive *directive, const struct BFTW *ftwbuf) {
// Not using ctime() itself because GNU find adds nanoseconds
static const char *days[] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
@@ -129,7 +129,7 @@ static int bfs_printf_ctime(FILE *file, const struct bfs_printf_directive *direc
return fprintf(file, directive->str, buf);
}
-/** %A, %C, %T: strftime() */
+/** %A, %B/%W, %C, %T: strftime() */
static int bfs_printf_strftime(FILE *file, const struct bfs_printf_directive *directive, const struct BFTW *ftwbuf) {
const struct timespec *ts = get_time_field(ftwbuf->statbuf, directive->stat_field);
if (!ts) {
@@ -735,15 +735,16 @@ struct bfs_printf *parse_bfs_printf(const char *format, struct cmdline *cmdline)
case 'A':
directive->stat_field = BFS_STAT_ATIME;
goto directive_strftime;
+ case 'B':
+ case 'W':
+ directive->stat_field = BFS_STAT_BTIME;
+ goto directive_strftime;
case 'C':
directive->stat_field = BFS_STAT_CTIME;
goto directive_strftime;
case 'T':
directive->stat_field = BFS_STAT_MTIME;
goto directive_strftime;
- case 'W':
- directive->stat_field = BFS_STAT_BTIME;
- goto directive_strftime;
directive_strftime:
directive->fn = bfs_printf_strftime;