support for adding and deleting macros

doskey macroname=command
doskey macroname=

svn path=/trunk/; revision=32096
This commit is contained in:
Christoph von Wittich 2008-02-02 21:32:11 +00:00
parent 2b87bc4cd1
commit f536a06a34

View file

@ -2,6 +2,17 @@
#include <stdio.h>
#include <tchar.h>
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]);
}