This file is indexed.

/usr/include/crystalspace-2.0/csgfx/shadervarnameparser.h is in libcrystalspace-dev 2.0+dfsg-1build1.

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
/*
    Copyright (C) 2008 by Frank Richter

    This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Library General Public
    License as published by the Free Software Foundation; either
    version 2 of the License, or (at your option) any later version.

    This library 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
    Library General Public License for more details.

    You should have received a copy of the GNU Library General Public
    License along with this library; if not, write to the Free
    Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/

#ifndef __CS_CSGFX_SHADERVARNAMEPARSER_H__
#define __CS_CSGFX_SHADERVARNAMEPARSER_H__

#include "csutil/array.h"
#include "csutil/csstring.h"

/**\file
 * Helper to extract the actual shader var name and array indices
 * given a shader var identifier containing both.
 */

namespace CS
{
  namespace Graphics
  {
    /**
     * Helper class to extract the actual shader var name and array indices
     * given a shader var identifier containing both.
     */
    class CS_CRYSTALSPACE_EXPORT ShaderVarNameParser
    {
      csString name;
      csArray<size_t, csArrayElementHandler<size_t>,
        CS::Memory::LocalBufferAllocator<size_t, 2,
          CS::Memory::AllocatorMalloc, true> > indices;
      size_t errorPos;
    public:
      /// Set up with a shader var identifier.
      ShaderVarNameParser (const char* identifier);
      
      /**
       * Return the location of a parse error in the identifier
       * (or <tt>(size_t)~0</tt> if none occured)
       */
      size_t GetErrorPosition () const { return errorPos; }
      
      /// Get the name part of the shader var.
      const char* GetShaderVarName () const { return name; }
      
      /// Get how many indices there are.
      size_t GetIndexNum() const { return indices.GetSize(); }
      /// Get the nth index value. Index 0 is leftmost.
      size_t GetIndexValue (size_t index) const { return indices[index]; }
      
      /// Fill some array with the indices
      template<typename ArrayType>
      void FillArrayWithIndices (ArrayType& arr) const
      {
        for (size_t i = 0; i < indices.GetSize(); i++)
          arr.Push (indices[i]);
      }
    };
  } // namespace Graphics
} // namespace CS

#endif // __CS_CSGFX_SHADERVARNAMEPARSER_H__