#include <libraries/dos.h>
#include <exec/memory.h>
#include <functions.h>

#ifdef TEST
#include <stdio.h>
#endif

#ifndef NULL
#define NULL 0L
#endif


/*------------------------------------------------------------------*/
/*	chdir(path): make path the current directory. Return Ok/Not */
/*------------------------------------------------------------------*/

int chdir( path )
char *path;
{
	register struct Lock *lock;
	struct Lock *oldLock;
#ifdef TEST
	fprintf( stderr, "Changing to directory \"%s\"\n\n", path );
#endif	

	if ( *path == '\0' )
	   return 0;
	lock = Lock( path, ACCESS_READ );
	if ( lock == 0L )
	   return (int)IoErr();
	oldLock = CurrentDir( lock );
	if ( oldLock )
	   UnLock( oldLock );
	return 0;
}


#ifdef TEST
main()
{
	char command[108];
	FILE *f;

	gets( command );
	fprintf( stderr, "%d\n", chdir( command ));

	if (f = fopen("abc", "r"))
	  {
	   fprintf( stderr, "Opened Ok!\n");
	   fclose( f );
	  }
	else
	   fprintf( stderr, "Can't open abc\n");

	exit( 0 );
}

#endif


