#ifndef	_PATHUTIL_H_
#define _PATHUTIL_H_

/* functions for path and file name management */
extern char *parentname(char *s);
extern char *basename(char *s);
extern char *absolutePath(char *s);
extern char *pwd(void);
extern char *fullPath(char *parent, char *name);

/* functions for maintaining a path list */
extern void setPath(char *s);
extern void addPath(char *s);
extern char **getPath(char *env);

/* functions to resolve file names */
extern void resetPath(unsigned long levelLimit);
extern char *findPath(char *app, char *program);
extern char *referencePath(char *dir, char *file);


/* functions for the recursive enumeration of directory contents */
extern int directoryApply(char *name, void *info, 
	int (*perform)(char *parent, char *file, struct stat *b, void *info), 
		char recurse, char depthFirst, char preDescent);
extern int directoryStat(char *parent, char *s, struct stat *b);
extern int directoryUnlink(char *name, void *info, 
	int (*approve)(char *parent, char *file, struct stat *b, void *info), 
		char recurse, char depthFirst, char remove);

/* miscellaneous functions */
extern char *newDatedFilename(char *directory);
extern char *filenameToRegex(char *s);


#endif

