--- bash-2.05b/command.h	2002-03-12 21:28:36.000000000 +0100
+++ hush-bash-2.05b/command.h	2004-10-05 23:12:53.000000000 +0200
@@ -64,6 +64,9 @@
 /* Command Types: */
 enum command_type { cm_for, cm_case, cm_while, cm_if, cm_simple, cm_select,
 		    cm_connection, cm_function_def, cm_until, cm_group,
+#ifdef HUSH
+                    cm_on, cm_translate,
+#endif /* HUSH */
 		    cm_arith, cm_cond, cm_arith_for, cm_subshell };
 
 /* Possible values for the `flags' field of a WORD_DESC. */
@@ -147,11 +150,18 @@
 /* What a command looks like. */
 typedef struct command {
   enum command_type type;	/* FOR CASE WHILE IF CONNECTION or SIMPLE. */
+#ifdef HUSH
+                                /* or ON or TRANSLATE */
+#endif /* HUSH */
   int flags;			/* Flags controlling execution environment. */
   int line;			/* line number the command starts on */
   REDIRECT *redirects;		/* Special redirects for FOR CASE, etc. */
   union {
     struct for_com *For;
+#ifdef HUSH
+    struct on_com *On;
+    struct translate_com *Translate;
+#endif /* HUSH */
     struct case_com *Case;
     struct while_com *While;
     struct if_com *If;
@@ -192,6 +202,22 @@
   COMMAND *action;		/* Thing to execute if a pattern matches. */
 } PATTERN_LIST;
 
+#ifdef HUSH
+/* The On command */
+typedef struct on_com {
+  int flags;
+  WORD_DESC *operation;         /* The operation performed on the translator */
+  WORD_DESC *iovarname;         /* The IO var name to use */
+  COMMAND *action;              /* The callback to execute on OPERATION */
+} ON_COM;
+
+/* The TRANSLATE command */
+typedef struct translate_com {
+  int flags;
+  WORD_LIST *modifiers;
+} TRANSLATE_COM;
+#endif /* HUSH */
+
 /* The CASE command. */
 typedef struct case_com {
   int flags;			/* See description of CMD flags. */
