From 4f1da7f5ad53f573458e259b4c733765632eae10 Mon Sep 17 00:00:00 2001 From: "John Hodge (sonata)" Date: Mon, 13 May 2013 15:09:24 +0800 Subject: [PATCH] Tools/DiskTook - Fixed absolute path support --- Tools/DiskTool/actions.c | 2 +- Tools/DiskTool/helpers.c | 9 ++++++--- Tools/nativelib/threads.c | 6 ++++-- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/Tools/DiskTool/actions.c b/Tools/DiskTool/actions.c index 5cda5885..448cb34c 100644 --- a/Tools/DiskTool/actions.c +++ b/Tools/DiskTool/actions.c @@ -15,7 +15,7 @@ extern int NativeFS_Install(char **Arguments); extern int LVM_Cleanup(void); // === PROTOTYPES === -void DiskTool_Initialise(void) __attribute__((constructor(101))); +void DiskTool_Initialise(void) __attribute__((constructor(102))); void DiskTool_Cleanup(void); int DiskTool_int_TranslateOpen(const char *File, int Mode); int DiskTool_LVM_Read(void *Handle, Uint64 Block, size_t BlockCount, void *Dest); diff --git a/Tools/DiskTool/helpers.c b/Tools/DiskTool/helpers.c index f9e3bc4a..f2aa26d9 100644 --- a/Tools/DiskTool/helpers.c +++ b/Tools/DiskTool/helpers.c @@ -61,12 +61,15 @@ size_t DiskTool_int_TranslatePath(char *Buffer, const char *Path) } len = strlen("/Native"); - len += strlen( gsWorkingDirectory ) + 1; + if( Path[0] != '/' ) + len += strlen( gsWorkingDirectory ) + 1; len += strlen(Path); if( Buffer ) { strcpy(Buffer, "/Native"); - strcat(Buffer, gsWorkingDirectory); - strcat(Buffer, "/"); + if( Path[0] != '/' ) { + strcat(Buffer, gsWorkingDirectory); + strcat(Buffer, "/"); + } strcat(Buffer, Path); } } diff --git a/Tools/nativelib/threads.c b/Tools/nativelib/threads.c index aec7076e..9a4bfdfb 100644 --- a/Tools/nativelib/threads.c +++ b/Tools/nativelib/threads.c @@ -22,8 +22,10 @@ tShortSpinlock glThreadListLock; // === CODE === void Threads_int_Init(void) { - lpThreads_This = Threads_int_CreateTCB(NULL); - Threads_SetName("ThreadZero"); + if( !lpThreads_This ) { + lpThreads_This = Threads_int_CreateTCB(NULL); + Threads_SetName("ThreadZero"); + } } tThread *Proc_GetCurThread(void) -- 2.20.1