Here's a patch to achieve xterm-compatible behaviour (except for (c) which doesn't seem important).
Ben. diff -u gnome-terminal-2.22.3/debian/gnome-terminal.wrapper gnome-terminal-2.22.3/debian/gnome-terminal.wrapper --- gnome-terminal-2.22.3/debian/gnome-terminal.wrapper +++ gnome-terminal-2.22.3/debian/gnome-terminal.wrapper @@ -2,6 +2,27 @@ my $login=0; +sub is_cmd_name +{ + my $arg = shift; + if ($arg =~ /\//) { + return -x $arg; + } else { + for my $dir (split(/:/, $ENV{PATH})) { + return 1 if -x "$dir/$arg"; + } + return 0; + } +} + +sub user_shell +{ + return $ENV{SHELL} if exists($ENV{SHELL}); + my @pw = getpwuid($<); + return $pw[8] if defined($pw[8]); + return '/bin/sh'; +} + while ($opt = shift(@ARGV)) { if ($opt eq '-display') @@ -57,7 +78,11 @@ } elsif ($opt eq '-e') { - push(@args, '-e', @ARGV); + push(@args, '-x'); + if ($#ARGV == 0 && !is_cmd_name($ARGV[0])) { + push(@args, user_shell(), '-c'); + } + push(@args, @ARGV); last; } elsif ($opt eq '-h' || $opt eq '--help') --- END --- -- Ben Hutchings Nothing is ever a complete failure; it can always serve as a bad example.
signature.asc
Description: This is a digitally signed message part