mirror of
https://github.com/reactos/reactos.git
synced 2024-06-27 16:31:30 +00:00
![Jeffrey Morlan](/assets/img/avatar_default.png)
- a hack in cmd_mkdir that was already obsolete a decade ago - to distinguish "echo" from "echo.", but that is the wrong way to implement this anyway. There's nothing particularly special about the period, "echo" is just one of those commands that is lenient about where its parameters begin, and when it echos a line, the first character (usually a space, but in the case of "echo." a period) is skipped. svn path=/trunk/; revision=35647
89 lines
1.7 KiB
C
89 lines
1.7 KiB
C
/*
|
|
* PATH.C - path internal command.
|
|
*
|
|
*
|
|
* History:
|
|
*
|
|
* 17 Jul 1998 (John P Price)
|
|
* Separated commands into individual files.
|
|
*
|
|
* 27-Jul-1998 (John P Price <linux-guru@gcfl.net>)
|
|
* added config.h include
|
|
*
|
|
* 09-Dec-1998 (Eric Kohl)
|
|
* Added help text ("/?").
|
|
*
|
|
* 18-Jan-1999 (Eric Kohl)
|
|
* Unicode ready!
|
|
*
|
|
* 18-Jan-1999 (Eric Kohl)
|
|
* Redirection safe!
|
|
*
|
|
* 24-Jan-1999 (Eric Kohl)
|
|
* Fixed Win32 environment handling.
|
|
*
|
|
* 30-Apr-2005 (Magnus Olsen) <magnus@greatlord.com>)
|
|
* Remove all hardcode string to En.rc
|
|
*/
|
|
#include <precomp.h>
|
|
|
|
#ifdef INCLUDE_CMD_PATH
|
|
|
|
/* size of environment variable buffer */
|
|
#define ENV_BUFFER_SIZE 1024
|
|
|
|
|
|
INT cmd_path (LPTSTR param)
|
|
{
|
|
|
|
if (!_tcsncmp (param, _T("/?"), 2))
|
|
{
|
|
ConOutResPaging(TRUE,STRING_PATH_HELP1);
|
|
return 0;
|
|
}
|
|
|
|
nErrorLevel = 0;
|
|
|
|
/* if param is empty, display the PATH environment variable */
|
|
if (!param || !*param)
|
|
{
|
|
DWORD dwBuffer;
|
|
LPTSTR pszBuffer;
|
|
|
|
pszBuffer = (LPTSTR)cmd_alloc (ENV_BUFFER_SIZE * sizeof(TCHAR));
|
|
dwBuffer = GetEnvironmentVariable (_T("PATH"), pszBuffer, ENV_BUFFER_SIZE);
|
|
if (dwBuffer == 0)
|
|
{
|
|
ConOutResPrintf(STRING_VOL_HELP2, _T("PATH"));
|
|
return 0;
|
|
}
|
|
else if (dwBuffer > ENV_BUFFER_SIZE)
|
|
{
|
|
pszBuffer = (LPTSTR)cmd_realloc (pszBuffer, dwBuffer * sizeof (TCHAR));
|
|
GetEnvironmentVariable (_T("PATH"), pszBuffer, ENV_BUFFER_SIZE);
|
|
}
|
|
|
|
ConOutPrintf (_T("PATH=%s\n"), pszBuffer);
|
|
cmd_free (pszBuffer);
|
|
|
|
return 0;
|
|
}
|
|
|
|
/* skip leading '=' */
|
|
if (*param == _T('='))
|
|
param++;
|
|
|
|
/* set PATH environment variable */
|
|
if (!SetEnvironmentVariable (_T("PATH"), param))
|
|
{
|
|
nErrorLevel = 1;
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
#endif
|
|
|
|
/* EOF */
|