--- bash-2.05b/print_cmd.c	2002-03-12 20:39:30.000000000 +0100
+++ hush-bash-2.05b/print_cmd.c	2004-10-05 23:12:52.000000000 +0200
@@ -75,6 +75,10 @@
 static void print_redirection __P((REDIRECT *));
 
 static void print_for_command __P((FOR_COM *));
+#ifdef HUSH
+static void print_on_command __P((ON_COM *));
+static void print_translate_command __P((TRANSLATE_COM *));
+#endif /* HUSH */
 #if defined (ARITH_FOR_COMMAND)
 static void print_arith_for_command __P((ARITH_FOR_COM *));
 #endif
@@ -163,6 +167,14 @@
 
       switch (command->type)
 	{
+#ifdef HUSH
+	case cm_on:
+	  print_on_command (command->value.On);
+	  break;
+	case cm_translate:
+	  print_translate_command (command->value.Translate);
+	  break;
+#endif /* HUSH */
 	case cm_for:
 	  print_for_command (command->value.For);
 	  break;
@@ -386,6 +398,27 @@
   _print_word_list (list, separator, cprintf);
 }
 
+#ifdef HUSH
+static void
+print_on_command (ON_COM *on_command)
+{
+  cprintf ("on %s", on_command->operation->word);
+  cprintf (";");
+  newline("do\n");
+  indentation = indentation + indentation_amount;
+  make_command_string_internal (on_command->action);
+  semicolon();
+  indentation = indentation - indentation_amount;
+  newline("done");
+}
+
+static void
+print_translate_command (TRANSLATE_COM *translate_command)
+{
+  cprintf("translate");
+}
+#endif /* HUSH */
+
 static void
 print_for_command (for_command)
      FOR_COM *for_command;

