@@ -344,126 +344,10 @@
344 344 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
free(g.zErrMsg);
345 345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(g.db){
346 346 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_close(0);
347 347 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
348 348 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
349 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
350 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #if defined(_WIN32) && !defined(__MINGW32__)
351 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
352 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Parse the command-line arguments passed to windows. We do this
353 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** ourselves to work around bugs in the command-line parsing of MinGW.
354 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** It is possible (in theory) to only use this routine when compiling
355 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** with MinGW and to use built-in command-line parsing for MSVC and
356 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** MinGW-64. However, the code is here, it is efficient, and works, and
357 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** by using it in all cases we do a better job of testing it. If you suspect
358 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** a bug in this code, test your theory by invoking "fossil test-echo".
359 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
360 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** This routine is copied from TCL with some reformatting.
361 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** The original comment text follows:
362 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
363 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Parse the Windows command line string into argc/argv. Done here
364 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** because we don't trust the builtin argument parser in crt0. Windows
365 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** applications are responsible for breaking their command line into
366 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** arguments.
367 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
368 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** 2N backslashes + quote -> N backslashes + begin quoted string
369 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** 2N + 1 backslashes + quote -> literal
370 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** N backslashes + non-quote -> literal
371 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** quote + quote in a quoted string -> single quote
372 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** quote + quote not in quoted string -> empty string
373 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** quote -> begin quoted string
374 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
375 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Results:
376 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Fills argcPtr with the number of arguments and argvPtr with the array
377 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** of arguments.
378 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
379 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define wchar_isspace(X) ((X)==' ' || (X)=='\t')
380 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- static void parse_windows_command_line(
381 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int *argcPtr, /* Filled with number of argument strings. */
382 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- void *argvPtr /* Filled with argument strings (malloc'd). */
383 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ){
384 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- WCHAR *cmdLine, *p, *arg, *argSpace;
385 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- WCHAR **argv;
386 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int argc, size, inquote, copy, slashes;
387 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
388 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- cmdLine = GetCommandLineW();
389 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
390 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /*
391 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Precompute an overly pessimistic guess at the number of arguments in
392 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** the command line by counting non-space spans.
393 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- */
394 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- size = 2;
395 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- for(p=cmdLine; *p!='\0'; p++){
396 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( wchar_isspace(*p) ){
397 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- size++;
398 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- while( wchar_isspace(*p) ){
399 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- p++;
400 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
401 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( *p=='\0' ){
402 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
403 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
404 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- argSpace = fossil_malloc(size * sizeof(char*)
408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- + (wcslen(cmdLine) * sizeof(WCHAR)) + sizeof(WCHAR));
409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- argv = (WCHAR**)argSpace;
410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- argSpace += size*(sizeof(char*)/sizeof(WCHAR));
411 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- size--;
412 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
413 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- p = cmdLine;
414 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- for(argc=0; argc<size; argc++){
415 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- argv[argc] = arg = argSpace;
416 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- while( wchar_isspace(*p) ){
417 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- p++;
418 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
419 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if (*p == '\0') {
420 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
421 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
422 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- inquote = 0;
423 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- slashes = 0;
424 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- while(1){
425 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- copy = 1;
426 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- while( *p=='\\' ){
427 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- slashes++;
428 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- p++;
429 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
430 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( *p=='"' ){
431 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( (slashes&1)==0 ){
432 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- copy = 0;
433 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( inquote && p[1]=='"' ){
434 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- p++;
435 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- copy = 1;
436 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
437 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- inquote = !inquote;
438 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
439 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
440 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- slashes >>= 1;
441 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
442 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- while( slashes ){
443 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- *arg = '\\';
444 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- arg++;
445 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- slashes--;
446 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
447 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( *p=='\0' || (!inquote && wchar_isspace(*p)) ){
448 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- break;
449 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
450 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( copy!=0 ){
451 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- *arg = *p;
452 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- arg++;
453 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
454 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- p++;
455 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
456 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- *arg = '\0';
457 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- argSpace = arg + 1;
458 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
459 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- argv[argc] = NULL;
460 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- *argcPtr = argc;
461 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- *((WCHAR ***)argvPtr) = argv;
462 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
463 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #endif /* defined(_WIN32) && !defined(__MINGW32__) */
464 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
465 349 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
466 350 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
467 351 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Convert all arguments from mbcs (or unicode) to UTF-8. Then
468 352 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** search g.argv for arguments "--args FILENAME". If found, then
469 353 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** (1) remove the two arguments from g.argv
@@ -482,24 +366,25 @@
482 366 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int n; /* Number of bytes in one line */
483 367 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *z; /* General use string pointer */
484 368 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char **newArgv; /* New expanded g.argv under construction */
485 369 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char const * zFileName; /* input file name */
486 370 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
FILE * zInFile; /* input FILE */
487 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #if defined(_WIN32) && !defined(__MINGW32__)
371 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #if defined(_WIN32)
488 372 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
WCHAR buf[MAX_PATH];
489 373 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
490 374 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
491 375 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
g.argc = argc;
492 376 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
g.argv = argv;
493 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #if defined(_WIN32) && !defined(__MINGW32__)
494 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- parse_windows_command_line(&g.argc, &g.argv);
377 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sqlite3_initialize();
378 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #if defined(_WIN32) && defined(BROKEN_MINGW_CMDLINE)
379 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(i=0; i<g.argc; i++) g.argv[i] = fossil_mbcs_to_utf8(g.argv[i]);
380 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #else
381 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(i=0; i<g.argc; i++) g.argv[i] = fossil_filename_to_utf8(g.argv[i]);
382 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
383 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #if defined(_WIN32)
495 384 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
GetModuleFileNameW(NULL, buf, MAX_PATH);
496 385 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
g.nameOfExe = fossil_filename_to_utf8(buf);
497 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- for(i=0; i<g.argc; i++) g.argv[i] = fossil_filename_to_utf8(g.argv[i]);
498 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #elif defined(__APPLE__)
499 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- for(i=0; i<g.argc; i++) g.argv[i] = fossil_filename_to_utf8(g.argv[i]);
500 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- g.nameOfExe = g.argv[0];
501 386 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#else
502 387 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
g.nameOfExe = g.argv[0];
503 388 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
504 389 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=1; i<g.argc-1; i++){
505 390 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
z = g.argv[i];
@@ -569,15 +454,21 @@
569 454 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zNewArgv[i] = fossil_strdup(argv[i]);
570 455 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
571 456 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return zNewArgv;
572 457 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
573 458 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
459 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
574 460 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
575 461 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
576 462 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** This procedure runs first.
577 463 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
464 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #if defined(_WIN32) && !defined(BROKEN_MINGW_CMDLINE)
465 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int _dowildcard = -1; /* This turns on command-line globbing in MinGW-w64 */
466 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int wmain(int argc, wchar_t **argv)
467 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #else
578 468 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int main(int argc, char **argv)
469 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #endif
579 470 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{
580 471 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zCmdName = "unknown";
581 472 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int idx;
582 473 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rc;
583 474 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
584 475 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!