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);
static void BuildCommandLine(const char *executable, size_t argc,
const char **argv, Tcl_DString *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,
|
|
|
|
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 *restrict fullName);
static void BuildCommandLine(const char *executable, size_t argc,
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
|
*----------------------------------------------------------------------
*/
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
* application. */
{
int applType, i, found;
Tcl_Size nameLen;
HANDLE hFile;
WCHAR *rest;
char *ext;
|
|
|
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 *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
|
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 *linePtr) /* 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
|
>
|
|
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)
/* 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
|