-/* $Id: cmd.c,v 1.29 2002/04/05 12:53:21 ekohl Exp $
+/* $Id: cmd.c,v 1.30 2002/05/07 23:05:33 hbirr Exp $
*
* CMD.C - command-line interface.
*
if (in[0])
{
HANDLE hFile;
+ SECURITY_ATTRIBUTES sa = {sizeof(SECURITY_ATTRIBUTES), NULL, TRUE};
- hFile = CreateFile (in, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING,
+ hFile = CreateFile (in, GENERIC_READ, FILE_SHARE_READ, &sa, OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile == INVALID_HANDLE_VALUE)
{
while (num-- > 1)
{
+ SECURITY_ATTRIBUTES sa = {sizeof(SECURITY_ATTRIBUTES), NULL, TRUE};
+
/* Create unique temporary file name */
GetTempFileName (szTempPath, "CMD", 0, szFileName[1]);
/* Set current stdout to temporary file */
- hFile[1] = CreateFile (szFileName[1], GENERIC_WRITE, 0, NULL,
+ hFile[1] = CreateFile (szFileName[1], GENERIC_WRITE, 0, &sa,
TRUNCATE_EXISTING, FILE_ATTRIBUTE_TEMPORARY, NULL);
SetStdHandle (STD_OUTPUT_HANDLE, hFile[1]);
*szFileName[1] = _T('\0');
/* open new stdin file */
- hFile[0] = CreateFile (szFileName[0], GENERIC_READ, 0, NULL,
+ hFile[0] = CreateFile (szFileName[0], GENERIC_READ, 0, &sa,
OPEN_EXISTING, FILE_ATTRIBUTE_TEMPORARY, NULL);
SetStdHandle (STD_INPUT_HANDLE, hFile[0]);
{
/* Final output to here */
HANDLE hFile;
+ SECURITY_ATTRIBUTES sa = {sizeof(SECURITY_ATTRIBUTES), NULL, TRUE};
- hFile = CreateFile (out, GENERIC_WRITE, FILE_SHARE_READ, NULL,
+ hFile = CreateFile (out, GENERIC_WRITE, FILE_SHARE_READ, &sa,
(nRedirFlags & OUTPUT_APPEND) ? OPEN_ALWAYS : CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile == INVALID_HANDLE_VALUE)
{
/* Final output to here */
HANDLE hFile;
+ SECURITY_ATTRIBUTES sa = {sizeof(SECURITY_ATTRIBUTES), NULL, TRUE};
if (!_tcscmp (err, out))
{
hFile = CreateFile (err,
GENERIC_WRITE,
0,
- NULL,
+ &sa,
(nRedirFlags & ERROR_APPEND) ? OPEN_ALWAYS : CREATE_ALWAYS,
FILE_ATTRIBUTE_NORMAL,
NULL);
SetFileApisToOEM ();
if( GetConsoleScreenBufferInfo( GetStdHandle( STD_OUTPUT_HANDLE ), &Info ) == FALSE )
- printf( "GetConsoleScreenBufferInfo: Error: %ld\n", GetLastError() );
+ fprintf(stderr, "GetConsoleScreenBufferInfo: Error: %ld\n", GetLastError() );
wColor = Info.wAttributes;
wDefColor = wColor;
/* check switches on command-line */