summaryrefslogtreecommitdiffstats
path: root/printf.c
diff options
context:
space:
mode:
Diffstat (limited to 'printf.c')
-rw-r--r--printf.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/printf.c b/printf.c
index 50a9dcf..33753e3 100644
--- a/printf.c
+++ b/printf.c
@@ -443,7 +443,7 @@ static int append_literal(struct bfs_printf_directive ***tail, struct bfs_printf
return 0;
}
-struct bfs_printf *parse_bfs_printf(const char *format, const struct cmdline *cmdline) {
+struct bfs_printf *parse_bfs_printf(const char *format, struct cmdline *cmdline) {
CFILE *cerr = cmdline->cerr;
struct bfs_printf *command = malloc(sizeof(*command));
@@ -598,8 +598,11 @@ struct bfs_printf *parse_bfs_printf(const char *format, const struct cmdline *cm
break;
case 'F':
if (!cmdline->mtab) {
- cfprintf(cerr, "%{er}error: '%s': Couldn't parse the mount table.%{rs}\n", format);
- goto directive_error;
+ cmdline->mtab = parse_bfs_mtab();
+ if (!cmdline->mtab) {
+ cfprintf(cmdline->cerr, "%{er}error: Couldn't parse the mount table: %s.%{rs}\n\n", strerror(errno));
+ goto directive_error;
+ }
}
directive->fn = bfs_printf_F;
directive->mtab = cmdline->mtab;