This file is indexed.

/usr/include/GNUstep/Foundation/NSPathUtilities.h is in libgnustep-base-dev 1.24.0-1ubuntu3.

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
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
/** Interface to file path utilities for GNUStep
   Copyright (C) 1996 Free Software Foundation, Inc.

   Written by:  Andrew Kachites McCallum <mccallum@gnu.ai.mit.edu>
   Created: May 1996
   
   This file is part of the GNUstep Base Library.

   This library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser 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 Lesser General Public
   License along with this library; if not, write to the Free
   Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
   Boston, MA 02111 USA.
 
   AutogsdocSource:	NSPathUtilities.m
   */ 

#ifndef __NSPathUtilities_h_GNUSTEP_BASE_INCLUDE
#define __NSPathUtilities_h_GNUSTEP_BASE_INCLUDE
#import	<GNUstepBase/GSVersionMacros.h>
#import	<Foundation/NSObjCRuntime.h>

#if	defined(__cplusplus)
extern "C" {
#endif

@class	NSDictionary;
@class	NSMutableDictionary;
@class	NSString;

#if OS_API_VERSION(GS_API_NONE, GS_API_NONE)

/**
 * This extension permits a change of username from that specified in the
 * LOGNAME environment variable.  Using it will almost certainly cause
 * trouble if the process does not posses the file access privileges of the
 * new name.  This is provided primarily for use by processes that run as
 * system-manager and need to act as particular users.  It uses the
 * [NSUserDefaults +resetUserDefaults] extension to reset the defaults system
 * to use the defaults belonging to the new user.
 */
GS_EXPORT void
GSSetUserName(NSString *aName);

/**
 * Returns a mutable copy of the system-wide configuration used to
 * determine paths to locate files etc.<br />
 * If the newConfig argument is non-nil it is used to set the config
 * overriding any other version.  You should not change the config
 * after the user defaults system has been initialised as the new
 * config will not be picked up by the defaults system.<br />
 * <br />
 * A typical sequence of operation might be to<br />
 * Call the function with a nil argument to obtain the configuration
 * information currently in use (usually obtained from the main GNUstep
 * configuration file).<br />
 * Modify the dictionary contents.<br />
 * Call the function again passing back in the modified config.<br />
 * <br />
 * If you call this function with a non-nil argument before the system
 * configuration file has been read, you will prevent the file from
 * being read.  However, you must take care doing this that creation
 * of the config dictionary you are going to pass in to the function
 * does not have any side-effects which would cause the config file
 * to be read earlier.<br />
 * If you want to prevent the user specific config file from being
 * read, you must set the GNUSTEP_USER_CONFIG_FILE value in the
 * dictionary to be an empty string.
 */
GS_EXPORT NSMutableDictionary*
GNUstepConfig(NSDictionary *newConfig);

/**
 * Returns the location of the defaults database for the specified user.
 * This uses the same information you get from GNUstepConfig() and
 * GNUstepUserConfig() and builds the path to the defaults database
 * fromm it.
 */
GS_EXPORT NSString*
GSDefaultsRootForUser(NSString *userName);

/**
 * The config dictionary passed to this function should be a
 * system-wide config as provided by GNUstepConfig() ... and
 * this function merges in user specific configuration file
 * information if such a file exists and is owned by the user.<br />
 * NB. If the GNUSTEP_USER_CONFIG_FILE value in the system-wide
 * config is an empty string, no user-specifc config will be
 * read.
 */
GS_EXPORT void
GNUstepUserConfig(NSMutableDictionary *config, NSString *userName);

#endif
GS_EXPORT NSString *NSUserName(void);
GS_EXPORT NSString *NSHomeDirectory(void);
GS_EXPORT NSString *NSHomeDirectoryForUser(NSString *loginName);

#if OS_API_VERSION(GS_API_MACOSX, GS_API_LATEST)
enum
{
  NSApplicationDirectory = 1,		/** Applications */
  NSDemoApplicationDirectory,		/** Demos */
  NSDeveloperApplicationDirectory,	/** Developer/Applications */
  NSAdminApplicationDirectory,		/** Administration */
  NSLibraryDirectory,			/** Library */
  NSDeveloperDirectory,			/** Developer */
  NSUserDirectory,			/** user home directories */
  NSDocumentationDirectory,		/** Documentation */
#if OS_API_VERSION(100200, GS_API_LATEST)
  NSDocumentDirectory,			/** Documents */
#endif
#if OS_API_VERSION(100300, GS_API_LATEST)
  NSCoreServicesDirectory,		/** CoreServices */
#endif
#if OS_API_VERSION(100400, GS_API_LATEST)
  NSDesktopDirectory = 12,		/** location of users desktop */
  NSCachesDirectory = 13,		/** location of users cache files */
  NSApplicationSupportDirectory = 14,	/** location of app support files */
#endif
#if OS_API_VERSION(100500, GS_API_LATEST)
  NSDownloadsDirectory = 15,	        /** location of downloaded files */
#endif

  NSAllApplicationsDirectory = 100,	/** all app directories */
  NSAllLibrariesDirectory = 101,	/** all library resources */

#define  GSApplicationSupportDirectory NSApplicationSupportDirectory
/*  GNUstep Directory Identifiers
 *  Start at 1000, we hope Apple will never overlap.
 */
  GSLibrariesDirectory = 1000,		/** libraries (binary code) */
  GSToolsDirectory,			/** non-gui programs */
  GSFontsDirectory,			/** font storage */
  GSFrameworksDirectory, 		/** frameworks */
  GSWebApplicationsDirectory,		/** web applications (GSWeb or SOPE) */
  GSAdminToolsDirectory	        	/** admin non-gui programs */
};
/**
 * Enumeration of possible requested directory type specifiers for
 * NSSearchPathForDirectoriesInDomains() function.  On a traditional
 * GNUstep filesystem layout these correspond to the subdirectories
 * that may be found in the various domains, such as "Library"
 * and "Applications".  In a different filesystem layout these
 * directories might be located anywhere on disk.
 <example>
{
  NSApplicationDirectory,
  NSDemoApplicationDirectory,
  NSDeveloperApplicationDirectory,
  NSAdminApplicationDirectory,
  NSLibraryDirectory,
  NSDeveloperDirectory,
  NSUserDirectory,
  NSDocumentationDirectory,
  NSDocumentDirectory,
  NSCoreServiceDirectory,
  NSDesktopDirectory,
  NSCachesDirectory,
  NSApplicationSupportDirectory
  NSAllApplicationsDirectory,
  NSAllLibrariesDirectory,
  GSLibrariesDirectory,
  GSToolsDirectory,
  GSAdminToolsDirectory,
  GSFontsDirectory,
  GSFrameworksDirectory,
  GSWebApplicationsDirectory
}
 </example>
 */
typedef NSUInteger NSSearchPathDirectory;

enum
{
  NSUserDomainMask = 1,		/** The user's personal items */
  NSLocalDomainMask = 2,	/** Local for all users on the machine */
  NSNetworkDomainMask = 4,	/** Public for all users on network */
  NSSystemDomainMask = 8,	/** Standard GNUstep items */
  NSAllDomainsMask = 0x0ffff,	/** all domains */
};
/**
 * Mask type for NSSearchPathForDirectoriesInDomains() function.  A bitwise OR
 * of one or more of <code>NSUserDomainMask, NSLocalDomainMask,
 * NSNetworkDomainMask, NSSystemDomainMask, NSAllDomainsMask</code>.
 */
typedef NSUInteger NSSearchPathDomainMask;

/**
 * Returns an array of search paths to look at for resources.<br/ >
 * The paths are returned in domain order:
 * USER, LOCAL, NETWORK then SYSTEM.<br />
 * The presence of a path in this list does <em>not</em> mean that the
 * path actually exists in the filesystem.<br />
 * If you are wanting to locate an existing resource, you should normally
 * call this function with NSAllDomainsMask, but if you wish to find the
 * path in which you should create a new file, you would generally
 * specify a particular domain, and then create the path in the file
 * system if it does not already exist.
 */
GS_EXPORT NSArray *NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory directoryKey, NSSearchPathDomainMask domainMask, BOOL expandTilde);

/**
 * Returns the full username of the current user.
 * If unable to determine this, returns the standard user name.
 */
GS_EXPORT NSString *NSFullUserName(void);

/**
 * Returns the standard paths in which applications are stored and
 * should be searched for.  Calls NSSearchPathForDirectoriesInDomains()<br/ >
 * Refer to the GNUstep File System Hierarchy documentation for more info.
 */
GS_EXPORT NSArray *NSStandardApplicationPaths(void);

/**
 * Returns the standard paths in which resources are stored and
 * should be searched for.  Calls NSSearchPathForDirectoriesInDomains()<br/ >
 * Refer to the GNUstep File System Hierarchy documentation for more info.
 */
GS_EXPORT NSArray *NSStandardLibraryPaths(void);

/**
 * Returns the name of a directory in which temporary files can be stored.
 * Under GNUstep this is a location which is not readable by other users.
 * <br />
 * If a suitable directory can't be found or created, this function raises an
 * NSGenericException.
 */
GS_EXPORT NSString *NSTemporaryDirectory(void);

/**
 * Returns the location of the <em>root</em> directory of the file
 * hierarchy. This lets you build paths in a system independent manner
 * (for instance the root on unix is '/' but on windows it is 'C:\')
 * by appending path components to the root.<br />
 * Don't assume that /System, /Network etc exist in this path (generally
 * they don't)! Use other path utility functions such as
 * NSSearchPathForDirectoriesInDomains() to find standard locations
 * for libraries, applications etc.<br />
 * Refer to the GNUstep File System Hierarchy documentation for more info.
 */
GS_EXPORT NSString *NSOpenStepRootDirectory(void);
#endif /* GS_API_MACOSX */

#if	defined(__cplusplus)
}
#endif

#endif /* __NSPathUtilities_h_GNUSTEP_BASE_INCLUDE */