This file is indexed.

/usr/share/perl5/GD/Graph/area.pm is in libgd-graph-perl 1.44-6.

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

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
#==========================================================================
#              Copyright (c) 1995-2000 Martien Verbruggen
#--------------------------------------------------------------------------
#
#   Name:
#       GD::Graph::area.pm
#
# $Id: area.pm,v 1.17 2007/04/26 03:16:09 ben Exp $
#
#==========================================================================

package GD::Graph::area;
 
($GD::Graph::area::VERSION) = '$Revision: 1.17 $' =~ /\s([\d.]+)/;

use strict;

use GD::Graph::axestype;

@GD::Graph::area::ISA = qw( GD::Graph::axestype );

# PRIVATE
sub draw_data_set
{
    my $self = shift;       # object reference
    my $ds   = shift;       # number of the data set

    my @values = $self->{_data}->y_values($ds) or
        return $self->_set_error("Impossible illegal data set: $ds",
            $self->{_data}->error);

    # Select a data colour
    my $dsci = $self->set_clr($self->pick_data_clr($ds));
    my $brci = $self->set_clr($self->pick_border_clr($ds));

    # Create a new polygon
    my $poly = GD::Polygon->new();

    my (@top,@bottom);

    # Add the data points
    for (my $i = 0; $i < @values; $i++)
    {
        my $value = $values[$i];
        next unless defined $value;

        my $bottom = $self->_get_bottom($ds, $i);
        $value = $self->{_data}->get_y_cumulative($ds, $i)
            if $self->{cumulate};

        my ($x, $y) = $self->val_to_pixel($i + 1, $value, $ds);
        push @top, [$x, $y];
        # Need to keep track of this stuff for hotspots, and because
        # it's the only reliable way of closing the polygon, without
        # making odd assumptions.
        push @bottom, [$x, $bottom];

        # Hotspot stuff
        # XXX needs fixing. Not used at the moment.
        next unless defined $self->{_hotspots}->[$ds]->[$i];
        if ($i == 0)
        {
            $self->{_hotspots}->[$ds]->[$i] = ["poly", 
                $x, $y,
                $x , $bottom,
                $x - 1, $bottom,
                $x - 1, $y,
                $x, $y];
        }
        else
        {
            $self->{_hotspots}->[$ds]->[$i] = ["poly", 
                $poly->getPt($i),
                @{$bottom[$i]},
                @{$bottom[$i-1]},
                $poly->getPt($i-1),
                $poly->getPt($i)];
        }
    }

    foreach my $pair (@top, reverse @bottom)
    {
        $poly->addPt( @$pair );
    }

    # Draw a filled and a line polygon
    $self->{graph}->filledPolygon($poly, $dsci)
        if defined $dsci;
    $self->{graph}->polygon($poly, $brci)
        if defined $brci;

    # Draw the accent lines
    if (defined $brci &&
       ($self->{right} - $self->{left})/@values > $self->{accent_treshold})
    {
        for my $i ( 0 .. $#top )
        {
            my ($x, $y) = @{$top[$i]};
            my $bottom = $bottom[$i]->[1];
            $self->{graph}->dashedLine($x, $y, $x, $bottom, $brci);
        }
    }

    return $ds
}

"Just another true value";