This file is indexed.

/usr/bin/gnome-terminal.wrapper is in gnome-terminal 3.28.1-1ubuntu1.

This file is owned by root:root, with mode 0o755.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
#! /usr/bin/perl -w

my $login=0;

sub exists_in_path {
    my $command = shift;
    my @path = split ':', $ENV{PATH};

    foreach my $dir (@path) {
	if (-x "$dir/$command") {
	    return 1;
	}
    }

    return 0;
}

while ($opt = shift(@ARGV))
{
    if ($opt eq '-display')
    {
	$ENV{'DISPLAY'} = shift(@ARGV);
    }
    elsif ($opt eq '-name')
    {
	$arg = shift(@ARGV);
	push(@args, "--window-with-profile=$arg");
    }
    elsif ($opt eq '-n')
    {
	# Accept but ignore
	print STDERR "$0: to set an icon, please use -name <profile> and set a profile icon\n"
    }
    elsif ($opt eq '-T' || $opt eq '-title')
    {
	push(@args, '-t', shift(@ARGV));
    }
    elsif ($opt eq '-ls')
    {
	$login = 1;
    }
    elsif ($opt eq '+ls')
    {
	$login = 0;
    }
    elsif ($opt eq '-geometry')
    {
	$arg = shift(@ARGV);
	push(@args, "--geometry=$arg");
    }
    elsif ($opt eq '-fn')
    {
	$arg = shift(@ARGV);
	push(@args, "--font=$arg");
    }
    elsif ($opt eq '-fg')
    {
	$arg = shift(@ARGV);
	push(@args, "--foreground=$arg");
    }
    elsif ($opt eq '-bg')
    {
	$arg = shift(@ARGV);
	push(@args, "--background=$arg");
    }
    elsif ($opt eq '-tn')
    {
	$arg = shift(@ARGV);
	push(@args, "--termname=$arg");
    }
    elsif ($opt eq '-e')
    {
	# Debian Policy says we would be free to translate this into:
	# push(@args, '--', @ARGV);
	# but let's be nice to people with local scripts that rely on
	# xterm -e having a special case for a singular argument.
	$arg = shift(@ARGV);
	if (@ARGV)
	{
	    push(@args, '--', $arg, @ARGV);
	    last;
	}
	else
	{
	    # Emulate xterm's special case for a single argument: if it
	    # isn't something we can execute directly, pass it to a shell
	    my $executable;

	    if ($arg =~ m{/})
	    {
		$executable = -x $arg;
	    }
	    else
	    {
		$executable = exists_in_path($arg);
	    }

	    if ($executable)
	    {
		push(@args, '--', $arg);
	    }
	    else
	    {
		# Historically, we used the now-deprecated gnome-terminal -e
		# for this case, which would split the command line up as if
		# by a shell, but didn't support shell constructs like "if"
		# and pipes. But this is easier, and matches what xterm does.
		push(@args, '--', 'sh', '-c', $arg);
	    }
	}
	last;
    }
    elsif ($opt eq '-h' || $opt eq '--help')
    {
	push(@args, '--help');
    }
}
if ($login == 1)
{
    @args = ('--login', @args);
}
exec('gnome-terminal',@args);