From f536a06a34a2865e4f96722e9621d153c39682ac Mon Sep 17 00:00:00 2001 From: Christoph von Wittich Date: Sat, 2 Feb 2008 21:32:11 +0000 Subject: [PATCH] support for adding and deleting macros doskey macroname=command doskey macroname= svn path=/trunk/; revision=32096 --- .../applications/cmdutils/doskey/doskey.c | 36 ++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/reactos/base/applications/cmdutils/doskey/doskey.c b/reactos/base/applications/cmdutils/doskey/doskey.c index 5e08395dd8f..eb180f89c3c 100644 --- a/reactos/base/applications/cmdutils/doskey/doskey.c +++ b/reactos/base/applications/cmdutils/doskey/doskey.c @@ -2,6 +2,17 @@ #include #include +static VOID +partstrlwr (LPTSTR str) +{ + LPTSTR c = str; + while (*c && !_istspace (*c) && *c != _T('=')) + { + *c = _totlower (*c); + c++; + } +} + static VOID PrintAlias (VOID) { @@ -34,6 +45,29 @@ PrintAlias (VOID) HeapFree(GetProcessHeap(), 0 , ptr); } +INT SetMacro (LPTSTR param) +{ + LPTSTR ptr; + + /* error if no '=' found */ + if ((ptr = _tcschr (param, _T('='))) == 0) + { + return 1; + } + + /* Split rest into name and substitute */ + *ptr++ = _T('\0'); + + partstrlwr (param); + + if (ptr[0] == _T('\0')) + AddConsoleAlias(param, NULL, _T("cmd.exe")); + else + AddConsoleAlias(param, ptr, _T("cmd.exe")); + + return 0; +} + int main (int argc, char **argv) { @@ -48,7 +82,7 @@ main (int argc, char **argv) } else { - /* FIXME */ + SetMacro(argv[1]); }