home *** CD-ROM | disk | FTP | other *** search
/ Frozen Fish 1: Amiga / FrozenFish-Apr94.iso / bbs / alib / d1xx / d109 / uupc.lha / UUpc / Source / LOCAL / chdir.c next >
C/C++ Source or Header  |  1987-10-28  |  1KB  |  62 lines

  1. #include <libraries/dos.h>
  2. #include <exec/memory.h>
  3. #include <functions.h>
  4.  
  5. #ifdef TEST
  6. #include <stdio.h>
  7. #endif
  8.  
  9. #ifndef NULL
  10. #define NULL 0L
  11. #endif
  12.  
  13.  
  14. /*------------------------------------------------------------------*/
  15. /*    chdir(path): make path the current directory. Return Ok/Not */
  16. /*------------------------------------------------------------------*/
  17.  
  18. int chdir( path )
  19. char *path;
  20. {
  21.     register struct Lock *lock;
  22.     struct Lock *oldLock;
  23. #ifdef TEST
  24.     fprintf( stderr, "Changing to directory \"%s\"\n\n", path );
  25. #endif    
  26.  
  27.     if ( *path == '\0' )
  28.        return 0;
  29.     lock = Lock( path, ACCESS_READ );
  30.     if ( lock == 0L )
  31.        return (int)IoErr();
  32.     oldLock = CurrentDir( lock );
  33.     if ( oldLock )
  34.        UnLock( oldLock );
  35.     return 0;
  36. }
  37.  
  38.  
  39. #ifdef TEST
  40. main()
  41. {
  42.     char command[108];
  43.     FILE *f;
  44.  
  45.     gets( command );
  46.     fprintf( stderr, "%d\n", chdir( command ));
  47.  
  48.     if (f = fopen("abc", "r"))
  49.       {
  50.        fprintf( stderr, "Opened Ok!\n");
  51.        fclose( f );
  52.       }
  53.     else
  54.        fprintf( stderr, "Can't open abc\n");
  55.  
  56.     exit( 0 );
  57. }
  58.  
  59. #endif
  60.  
  61.  
  62.