summaryrefslogtreecommitdiffstats
path: root/cmd-parse.y
diff options
context:
space:
mode:
authornicm <nicm>2019-06-05 20:00:53 +0000
committernicm <nicm>2019-06-05 20:00:53 +0000
commit8f40796f05f2db0ff8b2c9231054b62b511a7ba0 (patch)
treed5d32dbdcb1960e21e7cd877b71033cbb8ee1dbd /cmd-parse.y
parent09e90c1645a8ecd1e467b13a743bb46d48febd37 (diff)
Add a -v flag to source-file to show the commands and line numbers.
Diffstat (limited to 'cmd-parse.y')
-rw-r--r--cmd-parse.y17
1 files changed, 17 insertions, 0 deletions
diff --git a/cmd-parse.y b/cmd-parse.y
index e27cdcd8..a7c12f62 100644
--- a/cmd-parse.y
+++ b/cmd-parse.y
@@ -76,6 +76,8 @@ static char *cmd_parse_get_error(const char *, u_int, const char *);
static void cmd_parse_free_command(struct cmd_parse_command *);
static struct cmd_parse_commands *cmd_parse_new_commands(void);
static void cmd_parse_free_commands(struct cmd_parse_commands *);
+static void cmd_parse_print_commands(struct cmd_parse_input *, u_int,
+ struct cmd_list *);
%}
@@ -498,6 +500,19 @@ cmd_parse_get_error(const char *file, u_int line, const char *error)
}
static void
+cmd_parse_print_commands(struct cmd_parse_input *pi, u_int line,
+ struct cmd_list *cmdlist)
+{
+ char *s;
+
+ if (pi->item != NULL && (pi->flags & CMD_PARSE_VERBOSE)) {
+ s = cmd_list_print(cmdlist, 0);
+ cmdq_print(pi->item, "%u: %s", line, s);
+ free(s);
+ }
+}
+
+static void
cmd_parse_free_command(struct cmd_parse_command *cmd)
{
free(cmd->name);
@@ -653,6 +668,7 @@ cmd_parse_build_commands(struct cmd_parse_commands *cmds,
if (cmdlist == NULL || cmd->line != line) {
if (cmdlist != NULL) {
+ cmd_parse_print_commands(pi, line, cmdlist);
cmd_list_move(result, cmdlist);
cmd_list_free(cmdlist);
}
@@ -672,6 +688,7 @@ cmd_parse_build_commands(struct cmd_parse_commands *cmds,
cmd_list_append(cmdlist, add);
}
if (cmdlist != NULL) {
+ cmd_parse_print_commands(pi, line, cmdlist);
cmd_list_move(result, cmdlist);
cmd_list_free(cmdlist);
}