This file is indexed.

/usr/include/BALL/SYSTEM/path.h is in libball1.4-dev 1.4.3~beta1-3.

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
// -*- Mode: C++; tab-width: 2; -*-
// vi: set ts=2:
//
// $Id: path.h,v 1.13.20.1 2007/06/21 19:38:10 oliver Exp $
//
// Author:
//   Oliver Kohlbacher
//

#ifndef BALL_COMMON_PATH_H
#define BALL_COMMON_PATH_H

#ifndef BALL_CONFIG_CONFIG_H
#	include <BALL/CONFIG/config.h>
#endif

#ifndef BALL_COMMON_GLOBAL_H
# include <BALL/COMMON/global.h>
#endif

#ifndef BALL_DATATYPE_STRING_H
# include <BALL/DATATYPE/string.h>
#endif

#include <vector>

using std::vector;

namespace BALL 
{
	/**	Data path management class.
			This class is intended to provide a unique interface to 
			directories where the data files needed by BALL reside.	 \par
			Path is a singleton, so there is only one unique application-wide
			instance of and changes to this will be seen by all classes using
			path.
	\ingroup System		
	*/
	class BALL_EXPORT Path 
	{
		public:
		/**	@name Constructors and Destructors
		*/	
		//@{
		
		/**	Default constructor
		*/
		Path();
		//@}

		/** Return a list of paths to the BALL data directories.
				This directory is set to a default value at compile time
				of the library.
				It may be overridden at runtime by setting the environment
				variable "BALL_DATA" to the desired value. This value
        is then prepended to the list of directories. 
        Directories are separated by linefeeds and returned 
        as a single string. To locate files in these directories,
        \link Path::find find \endlink will search the directories
        in the specified order.\par

				The default path may be accessed using  \link Path::getDefaultDataPath getDefaultDataPath \endlink .
				The path may also be modified at runtime by calling  \link Path::setDataPath setDataPath \endlink .\par

				The path contains a newline ("\n") separated list of paths that are searched 
				in the order of occurence. \par
		*/		
		String getDataPath();

		/**	Modify the data path.
				This method accepts a newline separated list of paths to
				specify data paths.
		*/
		void setDataPath(const String& path);

		/**	Add a single path to the list of paths.
				@param	path the path to be added to the path list
		*/
		void addDataPath(const String& path);

		/**	Returns the default data path compiled into the library.
				This method ignores possible contents of the environment
				variable "BALL\_DATA".
		*/
		String getDefaultDataPath();

		/**	Returns the full path to a file residing in one of the data directories.
				If a file that matches the name is not found, an empty string is returned.
				Directories are searched in the order of occurence in the data path.
				If <b>name</b> contains relative path information but no file matching 
				this path could be found, another search is performed as a second step
				taking in account only the basename of the file. \par
				E.g.: \par
				Specifying <b>data/test.dat</b> will search for data/test.dat in each
				data directory first. If this search doesn't yield a match, find will search 
				for a file named <b>test.dat</b> in each of the directories. \par
				If this behaviour is not desired, try  \link Path::findStrict findStrict \endlink  instead. \par
		*/
		String find(const String& name);

		/**	Returns the full path to a file residing in one of the data directories.
				@see find
		*/
		String findStrict(const String& name);

		/// Reset the path variable to its default state (as it was a the start of the application).
		void reset();

		
		protected:
				
		void buildPathArray_();

		static String path_;
		static bool path_array_valid_;
		static bool environment_checked_;
		static std::vector<String>	path_array_;
		static bool initialized_;
	};
  
} // namespace BALL


#endif // BALL_COMMON_PATH_H