summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/base/cmd/cmd.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/src/base/cmd/cmd.c b/src/base/cmd/cmd.c
index b047cafd..93e658d5 100644
--- a/src/base/cmd/cmd.c
+++ b/src/base/cmd/cmd.c
@@ -1153,6 +1153,7 @@ int CmdCommandScanDir( Abc_Frame_t * pAbc, int argc, char **argv )
{
struct _finddata_t c_file;
char * pDirStr = NULL;
+ char* pDirCur = NULL;
long hFile;
char c;
@@ -1174,8 +1175,15 @@ int CmdCommandScanDir( Abc_Frame_t * pAbc, int argc, char **argv )
goto usage;
}
}
+
+
if ( pDirStr )
{
+ if( (pDirCur = _getcwd( NULL, 0 )) == NULL )
+ {
+ printf( "Cannot read current directory\n" );
+ return 0;
+ }
if ( _chdir(pDirStr) )
{
printf( "Cannot change to directory: %s\n", pDirStr );
@@ -1248,6 +1256,16 @@ int CmdCommandScanDir( Abc_Frame_t * pAbc, int argc, char **argv )
while( _findnext( hFile, &c_file ) == 0 );
_findclose( hFile );
}
+ if ( pDirStr )
+ {
+ if ( _chdir(pDirCur) )
+ {
+ ABC_FREE( pDirCur );
+ printf( "Cannot change to directory: %s\n", pDirCur );
+ return 0;
+ }
+ ABC_FREE( pDirCur );
+ }
return 0;
usage: