summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2011-04-01 14:07:23 -0700
committerKeith Packard <keithp@keithp.com>2011-04-01 14:07:23 -0700
commit01952da35a57ae4da062facb26b3c6d7de29190f (patch)
tree55fe738ea7be35faaadbec93a80bcd41e5513d43 /src
parent359ba0d9fc2c5947e6adc98bebcd061069c61e79 (diff)
altos: Provide for a pre-filter on commands
This allows for external code to see each command line before it is processed and potentially skip it. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'src')
-rw-r--r--src/ao.h8
-rw-r--r--src/ao_cmd.c5
2 files changed, 13 insertions, 0 deletions
diff --git a/src/ao.h b/src/ao.h
index 2d2bbf82..77f3259e 100644
--- a/src/ao.h
+++ b/src/ao.h
@@ -403,6 +403,14 @@ ao_cmd_register(__code struct ao_cmds *cmds);
void
ao_cmd_init(void);
+#if HAS_CMD_FILTER
+/*
+ * Provided by an external module to filter raw command lines
+ */
+uint8_t
+ao_cmd_filter(void);
+#endif
+
/*
* ao_dma.c
*/
diff --git a/src/ao_cmd.c b/src/ao_cmd.c
index 6007773c..50d5b96f 100644
--- a/src/ao_cmd.c
+++ b/src/ao_cmd.c
@@ -275,6 +275,11 @@ ao_cmd(void)
lex_echo = 1;
for (;;) {
readline();
+#if HAS_CMD_FILTER
+ if (ao_cmd_filter())
+ continue;
+ cmd_i = 0;
+#endif
ao_cmd_lex();
ao_cmd_white();
c = ao_cmd_lex_c;