@@ -286,8 +286,15 @@ sqConnectToFile(SQFile *sqFile, void *file, sqInt writeFlag)
286286 return 1 ;
287287}
288288
289-
290-
289+ void
290+ sqFileStdioHandlesIntoFile_WithHandle_IsWritable (SQFile file , HANDLE handle , int isWritable ) {
291+ file .sessionID = thisSession ;
292+ file .file = handle ;
293+ file .writable = isWritable ;
294+ file .lastOp = 0 ; /* unused on win32 */
295+ file .isStdioStream = isFileHandleATTY (handle );
296+ AddHandleToTable (win32Files , handle );
297+ }
291298
292299/*
293300 * Fill-in files with handles for stdin, stdout and seterr as available and
@@ -297,32 +304,15 @@ sqConnectToFile(SQFile *sqFile, void *file, sqInt writeFlag)
297304sqInt
298305sqFileStdioHandlesInto (SQFile files [3 ])
299306{
300- DWORD mode ;
301-
302- files [0 ].sessionID = thisSession ;
303- files [0 ].file = GetStdHandle (STD_INPUT_HANDLE );
304- files [0 ].writable = false;
305- files [0 ].lastOp = 0 ; /* unused on win32 */
306- files [0 ].isStdioStream = isFileHandleATTY (STD_INPUT_HANDLE );
307- AddHandleToTable (win32Files , files [0 ].file );
308-
309- files [1 ].sessionID = thisSession ;
310- files [1 ].file = GetStdHandle (STD_OUTPUT_HANDLE );
311- files [1 ].writable = true;
312- files [1 ].lastOp = 0 ; /* unused on win32 */
313- files [1 ].isStdioStream = isFileHandleATTY (STD_OUTPUT_HANDLE );
314- AddHandleToTable (win32Files , files [1 ].file );
315-
316- files [2 ].sessionID = thisSession ;
317- files [2 ].file = GetStdHandle (STD_ERROR_HANDLE );
318- files [2 ].writable = true;
319- files [2 ].lastOp = 0 ; /* unused on win32 */
320- files [2 ].isStdioStream = isFileHandleATTY (STD_ERROR_HANDLE );
321- AddHandleToTable (win32Files , files [2 ].file );
307+ sqFileStdioHandlesIntoFile_WithHandle_IsWritable (files [0 ], GetStdHandle (STD_INPUT_HANDLE ), false);
308+ sqFileStdioHandlesIntoFile_WithHandle_IsWritable (files [1 ], GetStdHandle (STD_OUTPUT_HANDLE ), true);
309+ sqFileStdioHandlesIntoFile_WithHandle_IsWritable (files [2 ], GetStdHandle (STD_ERROR_HANDLE ), true);
322310
323311 return 7 ;
324312}
325313
314+
315+
326316/*
327317 * Allow to test if the standard input/output files are from a console or not
328318 * 1 if stdio is redirected to a console pipe, else 0 (and in this case, a file should be created)
0 commit comments