/*
Copyright (c) 1993 Xerox Corporation.  All rights reserved.
*/
/*
$Id$

$Date$
 *
 * PCR - I/O shared working directory interface
 *
 */

#ifndef	←←PCR←IOWDir←h
#define ←←PCR←IOWDir←h 1

#include <config/PCR←StdTypes.h>
#include <io/PCR←IOLcl.h>


extern /* readonly */ const char * PCR←IOWDir←sharedWD;

extern PCR←ERes
PCR←IOWDir←GetInitial( const char **wdp );


extern const char *
PCR←IOWDir←GetSharedWD(void);

#define PCR←IOWDir←←GetSharedWD() (PCR←IOWDir←sharedWD)
#define PCR←IOWDir←GetSharedWD	PCR←IOWDir←←GetSharedWD


extern PCR←ERes
PCR←IOWDir←SetSharedWD(const char *wd);


extern const char *
PCR←IOWDir←ThreadWD(void);

#define PCR←IOWDir←←ThreadWD()	(PCR←IOLcl←ld->ld←wd)
#define PCR←IOWDir←ThreadWD	PCR←IOWDir←←ThreadWD


extern PCR←ERes
PCR←IOWDir←ChangeToThreadWD(void);

#define PCR←IOWDir←←ChangeToThreadWD()	\
	PCR←IOWDir←SetSharedWD(PCR←IOWDir←←ThreadWD())
#define PCR←IOWDir←ChangeToThreadWD	PCR←IOWDir←←ChangeToThreadWD


extern PCR←Bool
PCR←IOWDir←IsFullPath(const char *path);

#define PCR←IOWDir←←IsFullPath(path) ((path)[0] == '/')
#define PCR←IOWDir←IsFullPath	PCR←IOWDir←←IsFullPath


extern const char *
PCR←IOWDir←FullPathFromPath(const char *path);


extern PCR←ERes
PCR←IOWDir←SetSharedWDForPath(const char * path);

#define PCR←IOWDir←←SetSharedWDForPath(path) \
	( PCR←IOWDir←←IsFullPath(path) ? PCR←ERes←okay \
		: PCR←IOWDir←←ChangeToThreadWD() )
#define PCR←IOWDir←SetSharedWDForPath	PCR←IOWDir←←SetSharedWDForPath


#endif /* ! ←←PCR←IOWDir←h */

/*
$Log$
*/