2 * PATH.C - path internal command.
7 * 17 Jul 1998 (John P Price)
8 * Separated commands into individual files.
10 * 27-Jul-1998 (John P Price <linux-guru@gcfl.net>)
11 * added config.h include
13 * 09-Dec-1998 (Eric Kohl)
14 * Added help text ("/?").
16 * 18-Jan-1999 (Eric Kohl)
19 * 18-Jan-1999 (Eric Kohl)
22 * 24-Jan-1999 (Eric Kohl)
23 * Fixed Win32 environment handling.
25 * 30-Apr-2005 (Magnus Olsen) <magnus@greatlord.com>)
26 * Remove all hardcode string to En.rc
30 #ifdef INCLUDE_CMD_PATH
32 /* size of environment variable buffer */
33 #define ENV_BUFFER_SIZE 1024
36 INT
cmd_path (LPTSTR param
)
39 if (!_tcsncmp (param
, _T("/?"), 2))
41 ConOutResPaging(TRUE
,STRING_PATH_HELP1
);
47 /* if param is empty, display the PATH environment variable */
48 if (!param
|| !*param
)
53 pszBuffer
= (LPTSTR
)cmd_alloc (ENV_BUFFER_SIZE
* sizeof(TCHAR
));
54 dwBuffer
= GetEnvironmentVariable (_T("PATH"), pszBuffer
, ENV_BUFFER_SIZE
);
57 ConOutResPrintf(STRING_VOL_HELP2
, _T("PATH"));
60 else if (dwBuffer
> ENV_BUFFER_SIZE
)
62 pszBuffer
= (LPTSTR
)cmd_realloc (pszBuffer
, dwBuffer
* sizeof (TCHAR
));
63 GetEnvironmentVariable (_T("PATH"), pszBuffer
, ENV_BUFFER_SIZE
);
66 ConOutPrintf (_T("PATH=%s\n"), pszBuffer
);
72 /* skip leading '=' */
73 if (*param
== _T('='))
76 /* set PATH environment variable */
77 if (!SetEnvironmentVariable (_T("PATH"), param
))