This file is indexed.

/usr/include/kdevplatform/vcs/vcsdiff.h is in kdevelop-dev 4:5.2.1-1ubuntu4.

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
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
/* This file is part of KDevelop
 *
 * Copyright 2007 Andreas Pakulat <apaku@gmx.de>
 * Copyright 2007 Matthew Woehlke <mw_triad@users.sourceforge.net>
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
 * 02110-1301, USA.
 */

#ifndef KDEVPLATFORM_VCSDIFF_H
#define KDEVPLATFORM_VCSDIFF_H

//Needed first as it provides a hash-function for QHash
#include "vcslocation.h"

#include <QHash>

#include "vcsexport.h"

class QString;
class QByteArray;

namespace KDevelop
{

class KDEVPLATFORMVCS_EXPORT VcsDiff
{
public:
    /**
     * Specify the type of difference the diff() method should create. Note that a
     * request for DiffUnified may not be honored, e.g. if the items being diffed are
     * binary rather than text.
     */
    enum Type
    {
        DiffRaw         /**< Request complete copies of both items. */,
        DiffUnified     /**< Request copy of first item with diff. */,
        DiffDontCare    /**< Don't care; plugin will return whichever is easiest. */
    };

    enum Content
    {
        Binary          /**< Binary diff, using the full content of both files.*/,
        Text            /**< Textual diff.*/
    };

    VcsDiff();
    virtual ~VcsDiff();
    VcsDiff( const VcsDiff& );

    /**
     * @returns the type of diff, i.e. raw or unified
     */
    Type type() const;

    /**
     * @returns the content type, i.e. binary or text
     */
    Content contentType() const;

    /**
     * @returns the binary content of the first file of the difference or
     * an empty QByteArray if this is a textual diff
     */
    QHash<KDevelop::VcsLocation, QByteArray> leftBinaries() const;

    /**
     * @returns the binary content of the second file of the difference or
     * an empty QByteArray if this is a textual diff
     */
    QHash<KDevelop::VcsLocation, QByteArray> rightBinaries() const;

    /**
     * @returns the textual content of the first file of the difference or
     * an empty QString if this is a binary diff
     */
    QHash<KDevelop::VcsLocation, QString> leftTexts() const;

    /**
     * @returns the textual content of the second file of the difference or
     * an empty QString if this is a unified or binary diff
     */
    QHash<KDevelop::VcsLocation, QString> rightTexts() const;

    /**
     * @returns the difference between the first and the second file in
     * unified diff format or an empty QString if this is a binary diff
     * or a textual diff using raw format
     */
    QString diff() const;
    
    /** @returns the base directory of the diff. */
    QUrl baseDiff() const;

	/**
	 * Depth - number of directories to left-strip from paths in the patch - see "patch -p"
     * Defaults to 0
	 */
    uint depth() const;

    /** Sets the base directory of the diff to the @p url */
    void setBaseDiff(const QUrl& url) const;
    /** Sets the depth of the diff to @p depth */
    void setDepth(const uint depth) const;

    void setDiff( const QString& );
    void addLeftBinary( const KDevelop::VcsLocation&, const QByteArray& );
    void removeLeftBinary( const KDevelop::VcsLocation& );
    void addRightBinary( const KDevelop::VcsLocation&, const QByteArray& );
    void removeRightBinary( const KDevelop::VcsLocation& );

    void addLeftText( const KDevelop::VcsLocation&, const QString& );
    void removeLeftText( const KDevelop::VcsLocation& );
    void addRightText( const KDevelop::VcsLocation&, const QString& );
    void removeRightText( const KDevelop::VcsLocation& );

    void setType( Type );
    void setContentType( Content );
    VcsDiff& operator=( const VcsDiff& rhs);
    
    /** @returns whether there are not changes on the diff */
    bool isEmpty() const;
    
private:
    const QScopedPointer<class VcsDiffPrivate> d;
};

}

Q_DECLARE_METATYPE( KDevelop::VcsDiff )

#endif