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 <ekohl@abo.rhein-zeitung.de>)
14 * Added help text ("/?").
16 * 18-Jan-1999 (Eric Kohl <ekohl@abo.rhein-zeitung.de>)
19 * 18-Jan-1999 (Eric Kohl <ekohl@abo.rhein-zeitung.de>)
22 * 24-Jan-1999 (Eric Kohl <ekohl@abo.rhein-zeitung.de>)
23 * Fixed Win32 environment handling.
25 * 30-Apr-2005 (Magnus Olsen) <magnus@greatlord.com>)
26 * Remove all hardcode string to En.rc
31 #ifdef INCLUDE_CMD_PATH
33 /* size of environment variable buffer */
34 #define ENV_BUFFER_SIZE 1024
37 INT
cmd_path (LPTSTR cmd
, LPTSTR param
)
39 TCHAR szMsg
[RC_STRING_MAX_SIZE
];
41 if (!_tcsncmp (param
, _T("/?"), 2))
43 LoadString(GetModuleHandle(NULL
), STRING_PATH_HELP1
, szMsg
, RC_STRING_MAX_SIZE
);
48 /* if param is empty, display the PATH environment variable */
49 if (!param
|| !*param
)
54 pszBuffer
= (LPTSTR
)malloc (ENV_BUFFER_SIZE
* sizeof(TCHAR
));
55 dwBuffer
= GetEnvironmentVariable (_T("PATH"), pszBuffer
, ENV_BUFFER_SIZE
);
58 LoadString(GetModuleHandle(NULL
), STRING_PATH_ERROR
, szMsg
, RC_STRING_MAX_SIZE
);
62 else if (dwBuffer
> ENV_BUFFER_SIZE
)
64 pszBuffer
= (LPTSTR
)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
))