--- bash-2.05b/execute_cmd.c	2002-03-18 19:24:22.000000000 +0100
+++ hush-bash-2.05b/execute_cmd.c	2004-10-05 23:12:52.000000000 +0200
@@ -128,6 +128,13 @@
 static int builtin_status __P((int));
 
 static int execute_for_command __P((FOR_COM *));
+
+#ifdef HUSH
+static int execute_on_command __P((ON_COM *));
+static int execute_translate_command __P((TRANSLATE_COM *));
+#endif /* HUSH */
+
+
 #if defined (SELECT_COMMAND)
 static int print_index_and_element __P((int, int, WORD_LIST *));
 static void indent __P((int, int));
@@ -691,6 +698,20 @@
 
       break;
 
+#ifdef HUSH
+    case cm_on:
+      if (ignore_return)
+	command->value.On->flags |= CMD_IGNORE_RETURN;
+      exec_result = execute_on_command (command->value.On);
+      break;
+
+    case cm_translate:
+      if (ignore_return)
+	command->value.Translate->flags |= CMD_IGNORE_RETURN;
+      exec_result = execute_translate_command (command->value.Translate);
+      break;
+#endif /* HUSH */
+
     case cm_for:
       if (ignore_return)
 	command->value.For->flags |= CMD_IGNORE_RETURN;
@@ -1513,6 +1534,41 @@
     } \
   while (0)
 
+#ifdef HUSH
+/* Execute a TRANSLATE command. The syntax is:
+ *
+ *   TRANSLATE
+ *
+ */
+
+static int
+execute_translate_command (TRANSLATE_COM *translate_command)
+{
+  int retval;
+  
+  hush_exec_translate (translate_command);
+
+}
+
+
+/* Execute an ON command. The syntax is:
+ *
+ *   ON word_desc ; WITH iovar ; DO command; DONE
+ *
+ */
+static int
+execute_on_command (ON_COM *on_command)
+{
+  int retval;
+
+  return (hush_exec_on (on_command));
+
+}
+#endif /* HUSH */
+
+
+
+
 /* Execute a FOR command.  The syntax is: FOR word_desc IN word_list;
    DO command; DONE */
 static int

