diff --git a/src/engine/pathnt.c b/src/engine/pathnt.c index fcffe24df..bde5cd0b8 100644 --- a/src/engine/pathnt.c +++ b/src/engine/pathnt.c @@ -345,7 +345,8 @@ static int translate_path_cyg2win( string * path ) if ( result ) { - string_copy( path, result ); + string_truncate( path, 0 ); + string_append( path, result ); translated = 1; } diff --git a/src/engine/pathvms.c b/src/engine/pathvms.c index 01f3f90d9..5882d40af 100644 --- a/src/engine/pathvms.c +++ b/src/engine/pathvms.c @@ -174,15 +174,25 @@ static int translate_path_posix2vms( string * path ) && stat(as_file->value, &statbuf ) > 0 && ( statbuf.st_mode & S_IFREG ) ) { - string_copy( path, as_file->value ); + string_truncate( path, 0 ); + string_append( path, as_file->value ); } else { - string_copy( path, as_dir->value ); + string_truncate( path, 0 ); + string_append( path, as_dir->value ); } } - else if ( file_count ) { string_copy( path, as_file->value ); } - else if ( dir_count ) { string_copy( path, as_dir->value ); } + else if ( file_count ) + { + string_truncate( path, 0 ); + string_append( path, as_file->value ); + } + else if ( dir_count ) + { + string_truncate( path, 0 ); + string_append( path, as_dir->value ); + } else { /* error: unable to translate path to native format */