X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Tools%2FDiskTool%2Fsrc%2Fhelpers.c;h=f9e3bc4a27810672a56228e61262eb99836c64b5;hb=375362e388e5bc180ee867cb7dde21a9430c14cf;hp=ddfe0f06515049aa0cc2029e5f4c71d6a97266f4;hpb=9d050efae63542b0d69377eec02367e178b88731;p=tpg%2Facess2.git diff --git a/Tools/DiskTool/src/helpers.c b/Tools/DiskTool/src/helpers.c index ddfe0f06..f9e3bc4a 100644 --- a/Tools/DiskTool/src/helpers.c +++ b/Tools/DiskTool/src/helpers.c @@ -19,8 +19,24 @@ size_t DiskTool_int_TranslatePath(char *Buffer, const char *Path) { int len; const char *colon = strchr(Path, ':'); - - if( colon ) + + if( Path[0] == '#' ) + { + len = strlen(Path+1); + if(Buffer) { + strcpy(Buffer, Path+1); + } + } + else if( Path[0] == ':' ) + { + len = strlen("/Devices/LVM/"); + len += strlen(Path+1); + if(Buffer) { + strcpy(Buffer, "/Devices/LVM/"); + strcat(Buffer, Path+1); + } + } + else if( colon ) { const char *pos; for(pos = Path; pos < colon; pos ++) @@ -36,23 +52,23 @@ size_t DiskTool_int_TranslatePath(char *Buffer, const char *Path) strncat(Buffer+strlen("/Mount/"), Path, colon - Path); strcat(Buffer, colon + 1); } - return len; } + else + { + native_path: + if( !gsWorkingDirectory[0] ) { + getcwd(gsWorkingDirectory, 1024); + } -native_path: - - if( !gsWorkingDirectory[0] ) { - getcwd(gsWorkingDirectory, 1024); - } - - len = strlen("/Native"); - len += strlen( gsWorkingDirectory ) + 1; - len += strlen(Path); - if( Buffer ) { - strcpy(Buffer, "/Native"); - strcat(Buffer, gsWorkingDirectory); - strcat(Buffer, "/"); - strcat(Buffer, Path); + len = strlen("/Native"); + len += strlen( gsWorkingDirectory ) + 1; + len += strlen(Path); + if( Buffer ) { + strcpy(Buffer, "/Native"); + strcat(Buffer, gsWorkingDirectory); + strcat(Buffer, "/"); + strcat(Buffer, Path); + } } return len; }