Diff
Not logged in

Differences From Artifact [32d01ffdfe]:

To Artifact [0b7f22930e]:


167
168
169
170
171
172
173
174

175
176

177
178
179
180
181
182
183
167
168
169
170
171
172
173

174
175

176
177
178
179
180
181
182
183







-
+

-
+







} PipeEvent;

/*
 * Declarations for functions used only in this file.
 */

static int		ApplicationType(Tcl_Interp *interp,
			    const char *fileName, char *fullName);
			    const char *fileName, char *restrict fullName);
static void		BuildCommandLine(const char *executable, size_t argc,
			    const char **argv, Tcl_DString *linePtr);
			    const char **argv, Tcl_DString *restrict linePtr);
static BOOL		HasConsole(void);
static int		PipeBlockModeProc(void *instanceData, int mode);
static void		PipeCheckProc(void *clientData, int flags);
static int		PipeClose2Proc(void *instanceData,
			    Tcl_Interp *interp, int flags);
static int		PipeEventProc(Tcl_Event *evPtr, int flags);
static int		PipeGetHandleProc(void *instanceData,
1258
1259
1260
1261
1262
1263
1264
1265

1266
1267
1268
1269
1270
1271
1272
1258
1259
1260
1261
1262
1263
1264

1265
1266
1267
1268
1269
1270
1271
1272







-
+







 *----------------------------------------------------------------------
 */

static int
ApplicationType(
    Tcl_Interp *interp,		/* Interp, for error message. */
    const char *originalName,	/* Name of the application to find. */
    char fullName[])		/* Filled with complete path to
    char *restrict fullName)	/* Filled with complete path to
				 * application. */
{
    int applType, i, found;
    Tcl_Size nameLen;
    HANDLE hFile;
    WCHAR *rest;
    char *ext;
1554
1555
1556
1557
1558
1559
1560

1561

1562
1563
1564
1565
1566
1567
1568
1554
1555
1556
1557
1558
1559
1560
1561

1562
1563
1564
1565
1566
1567
1568
1569







+
-
+








static void
BuildCommandLine(
    const char *executable,	/* Full path of executable (including
				 * extension). Replacement for argv[0]. */
    size_t argc,		/* Number of arguments. */
    const char **argv,		/* Argument strings in UTF. */
    Tcl_DString *restrict linePtr)
    Tcl_DString *linePtr)	/* Initialized Tcl_DString that receives the
				/* Initialized Tcl_DString that receives the
				 * command line (WCHAR). */
{
    const char *arg, *start, *special, *bspos;
    int quote = 0;
    size_t i;
    Tcl_DString ds;
#ifdef TCL_WIN_PIPE_FULLESC