--- bash-2.05b/shell.c	2002-07-01 17:27:11.000000000 +0200
+++ hush-bash-2.05b/shell.c	2004-10-05 23:12:51.000000000 +0200
@@ -197,6 +197,9 @@
 int dump_translatable_strings;	/* Dump strings in $"...", don't execute. */
 int dump_po_strings;		/* Dump strings in $"..." in po format */
 int wordexp_only = 0;		/* Do word expansion only */
+#ifdef HUSH
+int do_translate = 0;           /* Do not work as a translator */
+#endif /* HUSH */
 
 /* Some long-winded argument names.  These are obviously new. */
 #define Int 1
@@ -221,6 +224,9 @@
 #if defined (RESTRICTED_SHELL)
   { "restricted", Int, &restricted, (char **)0x0 },
 #endif
+#ifdef HUSH
+  { "translate", Int, &do_translate, (char **)0x0 },
+#endif /* HUSH */
   { "verbose", Int, &echo_input_at_read, (char **)0x0 },
   { "version", Int, &do_version, (char **)0x0 },
   { "wordexp", Int, &wordexp_only, (char **)0x0 },
@@ -466,15 +472,25 @@
 	no arguments remaining or the -s flag given
 	standard input is a terminal
 	standard output is a terminal
+
      Refer to Posix.2, the description of the `sh' utility. */
 
+  /* Of course, if the shell is functioning as a Hurd translator, 
+     it cannot be interactive. So we add the -T command on the 
+     following expression */
+
   if (forced_interactive ||		/* -i flag */
       (!local_pending_command &&	/* No -c command and ... */
        wordexp_only == 0 &&		/* No --wordexp and ... */
        ((arg_index == argc) ||		/*   no remaining args or... */
 	read_from_stdin) &&		/*   -s flag with args, and */
        isatty (fileno (stdin)) &&	/* Input is a terminal and */
-       isatty (fileno (stdout))))	/* output is a terminal. */
+       isatty (fileno (stdout)) && 	/* output is a terminal. */
+#ifdef HUSH
+       !do_translate                    /* It is a translator */
+#endif /* HUSH */
+       ))
+
     init_interactive ();
   else
     init_noninteractive ();
@@ -507,6 +523,7 @@
   if (shopt_alist)
     run_shopt_alist ();
 
+
   /* From here on in, the shell must be a normal functioning shell.
      Variables from the environment are expected to be set, etc. */
   shell_initialize ();
@@ -766,6 +783,12 @@
 	{
 	  switch (arg_character)
 	    {
+#ifdef HUSH
+	    case 'T':
+	      do_translate = 1;
+	      break;
+#endif /* HUSH */
+
 	    case 'c':
 	      want_pending_command = 1;
 	      break;
