From 4e8df678d2163ed6badfd46c72bb70bae8e99e69 Mon Sep 17 00:00:00 2001 From: Peter Ward Date: Fri, 1 Feb 2008 14:15:41 +0000 Subject: [PATCH] - Make dp0 give the directory the batch was run from instead of the current directory. svn path=/trunk/; revision=32074 --- reactos/base/shell/cmd/batch.c | 3 +++ reactos/base/shell/cmd/batch.h | 1 + reactos/base/shell/cmd/cmd.c | 5 +---- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/reactos/base/shell/cmd/batch.c b/reactos/base/shell/cmd/batch.c index cf8a5cc2886..113ae914043 100644 --- a/reactos/base/shell/cmd/batch.c +++ b/reactos/base/shell/cmd/batch.c @@ -220,6 +220,7 @@ VOID ExitBatch (LPTSTR msg) BOOL Batch (LPTSTR fullname, LPTSTR firstword, LPTSTR param) { HANDLE hFile; + LPTSTR tmp; SetLastError(0); hFile = CreateFile (fullname, GENERIC_READ, FILE_SHARE_WRITE | FILE_SHARE_READ | FILE_SHARE_DELETE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | @@ -269,6 +270,8 @@ BOOL Batch (LPTSTR fullname, LPTSTR firstword, LPTSTR param) } bc->hBatchFile = hFile; + tmp = _tcsrchr(fullname, '\\'); + _tcsncpy(bc->BatchFilePath, fullname, ((_tcslen(fullname) - _tcslen(tmp)) + 1)); SetFilePointer (bc->hBatchFile, 0, NULL, FILE_BEGIN); bc->bEcho = bEcho; /* Preserve echo across batch calls */ bc->shiftlevel = 0; diff --git a/reactos/base/shell/cmd/batch.h b/reactos/base/shell/cmd/batch.h index ba162dcc7d8..85e8edd7252 100644 --- a/reactos/base/shell/cmd/batch.h +++ b/reactos/base/shell/cmd/batch.h @@ -12,6 +12,7 @@ typedef struct tagBATCHCONTEXT struct tagBATCHCONTEXT *prev; LPWIN32_FIND_DATA ffind; HANDLE hBatchFile; + TCHAR BatchFilePath[MAX_PATH]; LPTSTR forproto; LPTSTR params; LPTSTR raw_params; /* Holds the raw params given by the input */ diff --git a/reactos/base/shell/cmd/cmd.c b/reactos/base/shell/cmd/cmd.c index f326a9dae4e..304e45fe73c 100644 --- a/reactos/base/shell/cmd/cmd.c +++ b/reactos/base/shell/cmd/cmd.c @@ -1300,11 +1300,8 @@ GetParsedEnvVar ( LPCTSTR varName, UINT* varNameLen, BOOL ModeSetA ) if ( varNameLen ) *varNameLen = 4; varName += 2; - if ( !GrowIfNecessary ( MAX_PATH, &ret, &retlen ) ) - return NULL; - GetCurrentDirectory(MAX_PATH, ret); + return bc->BatchFilePath; } - return ret; case _T('0'): case _T('1'): case _T('2'):