From 4dd244dc006e39b972874549dfe0b8610e031154 Mon Sep 17 00:00:00 2001 From: Magnus Olsen Date: Sun, 20 Apr 2008 06:25:30 +0000 Subject: [PATCH] add back a check for the negative value thx Christoph_vW notes this mistake. svn path=/trunk/; revision=33043 --- reactos/base/shell/cmd/cmd.c | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/reactos/base/shell/cmd/cmd.c b/reactos/base/shell/cmd/cmd.c index c3018992ec7..853e5d15db6 100644 --- a/reactos/base/shell/cmd/cmd.c +++ b/reactos/base/shell/cmd/cmd.c @@ -1164,15 +1164,23 @@ GetEnvVarOrSpecial ( LPCTSTR varName ) if (position) { position += 2; - Token = _tcstok(position, _T(",")); - while ((Token != NULL) && (i < 2)) + if (_tcschr(position, _T(',')) != NULL) { - StringPart[i] = _ttoi(Token); - i++; - Token = _tcstok (NULL, _T(",")); + Token = _tcstok(position, _T(",")); + while ((Token != NULL) && (i < 2)) + { + StringPart[i] = _ttoi(Token); + i++; + Token = _tcstok (NULL, _T(",")); + } + if (i > 0) + { + if (StringPart[1] < 0) + StringPart[1] = _tcslen(ret + StringPart[0]) + StringPart[1]; + _tcsncpy(ReturnValue, ret + StringPart[0], StringPart[1]); + _tcscpy(ret, ReturnValue); + } } - _tcsncpy(ReturnValue, ret + StringPart[0], StringPart[1]); - _tcscpy(ret, ReturnValue); return ret; } else