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 cmd
, 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
)
52 TCHAR szMsg
[RC_STRING_MAX_SIZE
];
54 pszBuffer
= (LPTSTR
)cmd_alloc (ENV_BUFFER_SIZE
* sizeof(TCHAR
));
55 dwBuffer
= GetEnvironmentVariable (_T("PATH"), pszBuffer
, ENV_BUFFER_SIZE
);
58 LoadString(CMD_ModuleHandle
, STRING_VOL_HELP2
, szMsg
, RC_STRING_MAX_SIZE
);
59 ConOutPrintf(szMsg
, _T("PATH"));
62 else if (dwBuffer
> ENV_BUFFER_SIZE
)
64 pszBuffer
= (LPTSTR
)cmd_realloc (pszBuffer
, dwBuffer
* sizeof (TCHAR
));
65 GetEnvironmentVariable (_T("PATH"), pszBuffer
, ENV_BUFFER_SIZE
);
68 ConOutPrintf (_T("PATH=%s\n"), pszBuffer
);
74 /* skip leading '=' */
75 if (*param
== _T('='))
78 /* set PATH environment variable */
79 if (!SetEnvironmentVariable (_T("PATH"), param
))