Fossil SCM
Merge the TCL argument handling patches into trunk.
Commit
b6a7e52c938fc223d7d97bed2402a9096addb640
Parent
c9bb3200658911d…
5 files changed
+12
-15
+71
-2
+6
+9
+12
-1
+12
-15
| --- src/main.c | ||
| +++ src/main.c | ||
| @@ -411,16 +411,10 @@ | ||
| 411 | 411 | const char *zCmdName = "unknown"; |
| 412 | 412 | int idx; |
| 413 | 413 | int rc; |
| 414 | 414 | int i; |
| 415 | 415 | |
| 416 | -#ifdef FOSSIL_ENABLE_TCL | |
| 417 | - g.tcl.argc = argc; | |
| 418 | - g.tcl.argv = argv; | |
| 419 | - g.tcl.interp = 0; | |
| 420 | -#endif | |
| 421 | - | |
| 422 | 416 | sqlite3_config(SQLITE_CONFIG_LOG, fossil_sqlite_log, 0); |
| 423 | 417 | memset(&g, 0, sizeof(g)); |
| 424 | 418 | g.now = time(0); |
| 425 | 419 | g.argc = argc; |
| 426 | 420 | g.argv = argv; |
| @@ -436,22 +430,25 @@ | ||
| 436 | 430 | g.json.outOpt = cson_output_opt_empty; |
| 437 | 431 | g.json.outOpt.addNewline = 1; |
| 438 | 432 | g.json.outOpt.indentation = 1 /* in CGI/server mode this can be configured */; |
| 439 | 433 | #endif /* FOSSIL_ENABLE_JSON */ |
| 440 | 434 | expand_args_option(); |
| 441 | - argc = g.argc; | |
| 442 | - argv = g.argv; | |
| 443 | - for(i=0; i<argc; i++) g.argv[i] = fossil_mbcs_to_utf8(argv[i]); | |
| 435 | + for(i=0; i<g.argc; i++) g.argv[i] = fossil_mbcs_to_utf8(g.argv[i]); | |
| 436 | +#ifdef FOSSIL_ENABLE_TCL | |
| 437 | + g.tcl.argc = g.argc; | |
| 438 | + g.tcl.argv = g.argv; | |
| 439 | + g.tcl.interp = 0; | |
| 440 | +#endif | |
| 444 | 441 | if( fossil_getenv("GATEWAY_INTERFACE")!=0 && !find_option("nocgi", 0, 0)){ |
| 445 | 442 | zCmdName = "cgi"; |
| 446 | 443 | g.isHTTP = 1; |
| 447 | - }else if( argc<2 ){ | |
| 444 | + }else if( g.argc<2 ){ | |
| 448 | 445 | fossil_print( |
| 449 | 446 | "Usage: %s COMMAND ...\n" |
| 450 | 447 | " or: %s help -- for a list of common commands\n" |
| 451 | 448 | " or: %s help COMMMAND -- for help with the named command\n", |
| 452 | - argv[0], argv[0], argv[0]); | |
| 449 | + g.argv[0], g.argv[0], g.argv[0]); | |
| 453 | 450 | fossil_exit(1); |
| 454 | 451 | }else{ |
| 455 | 452 | const char *zChdir = find_option("chdir",0,1); |
| 456 | 453 | g.isHTTP = 0; |
| 457 | 454 | g.fQuiet = find_option("quiet", 0, 0)!=0; |
| @@ -469,13 +466,13 @@ | ||
| 469 | 466 | if( find_option("help",0,0)!=0 ){ |
| 470 | 467 | /* --help anywhere on the command line is translated into |
| 471 | 468 | ** "fossil help argv[1] argv[2]..." */ |
| 472 | 469 | int i; |
| 473 | 470 | char **zNewArgv = fossil_malloc( sizeof(char*)*(g.argc+2) ); |
| 474 | - for(i=1; i<g.argc; i++) zNewArgv[i+1] = argv[i]; | |
| 471 | + for(i=1; i<g.argc; i++) zNewArgv[i+1] = g.argv[i]; | |
| 475 | 472 | zNewArgv[i+1] = 0; |
| 476 | - zNewArgv[0] = argv[0]; | |
| 473 | + zNewArgv[0] = g.argv[0]; | |
| 477 | 474 | zNewArgv[1] = "help"; |
| 478 | 475 | g.argc++; |
| 479 | 476 | g.argv = zNewArgv; |
| 480 | 477 | } |
| 481 | 478 | zCmdName = g.argv[1]; |
| @@ -482,11 +479,11 @@ | ||
| 482 | 479 | } |
| 483 | 480 | rc = name_search(zCmdName, aCommand, count(aCommand), &idx); |
| 484 | 481 | if( rc==1 ){ |
| 485 | 482 | fossil_fatal("%s: unknown command: %s\n" |
| 486 | 483 | "%s: use \"help\" for more information\n", |
| 487 | - argv[0], zCmdName, argv[0]); | |
| 484 | + g.argv[0], zCmdName, g.argv[0]); | |
| 488 | 485 | }else if( rc==2 ){ |
| 489 | 486 | int i, n; |
| 490 | 487 | Blob couldbe; |
| 491 | 488 | blob_zero(&couldbe); |
| 492 | 489 | n = strlen(zCmdName); |
| @@ -496,11 +493,11 @@ | ||
| 496 | 493 | } |
| 497 | 494 | } |
| 498 | 495 | fossil_print("%s: ambiguous command prefix: %s\n" |
| 499 | 496 | "%s: could be any of:%s\n" |
| 500 | 497 | "%s: use \"help\" for more information\n", |
| 501 | - argv[0], zCmdName, argv[0], blob_str(&couldbe), argv[0]); | |
| 498 | + g.argv[0], zCmdName, g.argv[0], blob_str(&couldbe), g.argv[0]); | |
| 502 | 499 | fossil_exit(1); |
| 503 | 500 | } |
| 504 | 501 | atexit( fossil_atexit ); |
| 505 | 502 | aCommand[idx].xFunc(); |
| 506 | 503 | fossil_exit(0); |
| 507 | 504 |
| --- src/main.c | |
| +++ src/main.c | |
| @@ -411,16 +411,10 @@ | |
| 411 | const char *zCmdName = "unknown"; |
| 412 | int idx; |
| 413 | int rc; |
| 414 | int i; |
| 415 | |
| 416 | #ifdef FOSSIL_ENABLE_TCL |
| 417 | g.tcl.argc = argc; |
| 418 | g.tcl.argv = argv; |
| 419 | g.tcl.interp = 0; |
| 420 | #endif |
| 421 | |
| 422 | sqlite3_config(SQLITE_CONFIG_LOG, fossil_sqlite_log, 0); |
| 423 | memset(&g, 0, sizeof(g)); |
| 424 | g.now = time(0); |
| 425 | g.argc = argc; |
| 426 | g.argv = argv; |
| @@ -436,22 +430,25 @@ | |
| 436 | g.json.outOpt = cson_output_opt_empty; |
| 437 | g.json.outOpt.addNewline = 1; |
| 438 | g.json.outOpt.indentation = 1 /* in CGI/server mode this can be configured */; |
| 439 | #endif /* FOSSIL_ENABLE_JSON */ |
| 440 | expand_args_option(); |
| 441 | argc = g.argc; |
| 442 | argv = g.argv; |
| 443 | for(i=0; i<argc; i++) g.argv[i] = fossil_mbcs_to_utf8(argv[i]); |
| 444 | if( fossil_getenv("GATEWAY_INTERFACE")!=0 && !find_option("nocgi", 0, 0)){ |
| 445 | zCmdName = "cgi"; |
| 446 | g.isHTTP = 1; |
| 447 | }else if( argc<2 ){ |
| 448 | fossil_print( |
| 449 | "Usage: %s COMMAND ...\n" |
| 450 | " or: %s help -- for a list of common commands\n" |
| 451 | " or: %s help COMMMAND -- for help with the named command\n", |
| 452 | argv[0], argv[0], argv[0]); |
| 453 | fossil_exit(1); |
| 454 | }else{ |
| 455 | const char *zChdir = find_option("chdir",0,1); |
| 456 | g.isHTTP = 0; |
| 457 | g.fQuiet = find_option("quiet", 0, 0)!=0; |
| @@ -469,13 +466,13 @@ | |
| 469 | if( find_option("help",0,0)!=0 ){ |
| 470 | /* --help anywhere on the command line is translated into |
| 471 | ** "fossil help argv[1] argv[2]..." */ |
| 472 | int i; |
| 473 | char **zNewArgv = fossil_malloc( sizeof(char*)*(g.argc+2) ); |
| 474 | for(i=1; i<g.argc; i++) zNewArgv[i+1] = argv[i]; |
| 475 | zNewArgv[i+1] = 0; |
| 476 | zNewArgv[0] = argv[0]; |
| 477 | zNewArgv[1] = "help"; |
| 478 | g.argc++; |
| 479 | g.argv = zNewArgv; |
| 480 | } |
| 481 | zCmdName = g.argv[1]; |
| @@ -482,11 +479,11 @@ | |
| 482 | } |
| 483 | rc = name_search(zCmdName, aCommand, count(aCommand), &idx); |
| 484 | if( rc==1 ){ |
| 485 | fossil_fatal("%s: unknown command: %s\n" |
| 486 | "%s: use \"help\" for more information\n", |
| 487 | argv[0], zCmdName, argv[0]); |
| 488 | }else if( rc==2 ){ |
| 489 | int i, n; |
| 490 | Blob couldbe; |
| 491 | blob_zero(&couldbe); |
| 492 | n = strlen(zCmdName); |
| @@ -496,11 +493,11 @@ | |
| 496 | } |
| 497 | } |
| 498 | fossil_print("%s: ambiguous command prefix: %s\n" |
| 499 | "%s: could be any of:%s\n" |
| 500 | "%s: use \"help\" for more information\n", |
| 501 | argv[0], zCmdName, argv[0], blob_str(&couldbe), argv[0]); |
| 502 | fossil_exit(1); |
| 503 | } |
| 504 | atexit( fossil_atexit ); |
| 505 | aCommand[idx].xFunc(); |
| 506 | fossil_exit(0); |
| 507 |
| --- src/main.c | |
| +++ src/main.c | |
| @@ -411,16 +411,10 @@ | |
| 411 | const char *zCmdName = "unknown"; |
| 412 | int idx; |
| 413 | int rc; |
| 414 | int i; |
| 415 | |
| 416 | sqlite3_config(SQLITE_CONFIG_LOG, fossil_sqlite_log, 0); |
| 417 | memset(&g, 0, sizeof(g)); |
| 418 | g.now = time(0); |
| 419 | g.argc = argc; |
| 420 | g.argv = argv; |
| @@ -436,22 +430,25 @@ | |
| 430 | g.json.outOpt = cson_output_opt_empty; |
| 431 | g.json.outOpt.addNewline = 1; |
| 432 | g.json.outOpt.indentation = 1 /* in CGI/server mode this can be configured */; |
| 433 | #endif /* FOSSIL_ENABLE_JSON */ |
| 434 | expand_args_option(); |
| 435 | for(i=0; i<g.argc; i++) g.argv[i] = fossil_mbcs_to_utf8(g.argv[i]); |
| 436 | #ifdef FOSSIL_ENABLE_TCL |
| 437 | g.tcl.argc = g.argc; |
| 438 | g.tcl.argv = g.argv; |
| 439 | g.tcl.interp = 0; |
| 440 | #endif |
| 441 | if( fossil_getenv("GATEWAY_INTERFACE")!=0 && !find_option("nocgi", 0, 0)){ |
| 442 | zCmdName = "cgi"; |
| 443 | g.isHTTP = 1; |
| 444 | }else if( g.argc<2 ){ |
| 445 | fossil_print( |
| 446 | "Usage: %s COMMAND ...\n" |
| 447 | " or: %s help -- for a list of common commands\n" |
| 448 | " or: %s help COMMMAND -- for help with the named command\n", |
| 449 | g.argv[0], g.argv[0], g.argv[0]); |
| 450 | fossil_exit(1); |
| 451 | }else{ |
| 452 | const char *zChdir = find_option("chdir",0,1); |
| 453 | g.isHTTP = 0; |
| 454 | g.fQuiet = find_option("quiet", 0, 0)!=0; |
| @@ -469,13 +466,13 @@ | |
| 466 | if( find_option("help",0,0)!=0 ){ |
| 467 | /* --help anywhere on the command line is translated into |
| 468 | ** "fossil help argv[1] argv[2]..." */ |
| 469 | int i; |
| 470 | char **zNewArgv = fossil_malloc( sizeof(char*)*(g.argc+2) ); |
| 471 | for(i=1; i<g.argc; i++) zNewArgv[i+1] = g.argv[i]; |
| 472 | zNewArgv[i+1] = 0; |
| 473 | zNewArgv[0] = g.argv[0]; |
| 474 | zNewArgv[1] = "help"; |
| 475 | g.argc++; |
| 476 | g.argv = zNewArgv; |
| 477 | } |
| 478 | zCmdName = g.argv[1]; |
| @@ -482,11 +479,11 @@ | |
| 479 | } |
| 480 | rc = name_search(zCmdName, aCommand, count(aCommand), &idx); |
| 481 | if( rc==1 ){ |
| 482 | fossil_fatal("%s: unknown command: %s\n" |
| 483 | "%s: use \"help\" for more information\n", |
| 484 | g.argv[0], zCmdName, g.argv[0]); |
| 485 | }else if( rc==2 ){ |
| 486 | int i, n; |
| 487 | Blob couldbe; |
| 488 | blob_zero(&couldbe); |
| 489 | n = strlen(zCmdName); |
| @@ -496,11 +493,11 @@ | |
| 493 | } |
| 494 | } |
| 495 | fossil_print("%s: ambiguous command prefix: %s\n" |
| 496 | "%s: could be any of:%s\n" |
| 497 | "%s: use \"help\" for more information\n", |
| 498 | g.argv[0], zCmdName, g.argv[0], blob_str(&couldbe), g.argv[0]); |
| 499 | fossil_exit(1); |
| 500 | } |
| 501 | atexit( fossil_atexit ); |
| 502 | aCommand[idx].xFunc(); |
| 503 | fossil_exit(0); |
| 504 |
+71
-2
| --- src/th_tcl.c | ||
| +++ src/th_tcl.c | ||
| @@ -368,10 +368,66 @@ | ||
| 368 | 368 | /* Remove the Tcl integration commands. */ |
| 369 | 369 | for(i=0; i<(sizeof(aCommand)/sizeof(aCommand[0])); i++){ |
| 370 | 370 | Th_RenameCommand(th1Interp, aCommand[i].zName, -1, NULL, 0); |
| 371 | 371 | } |
| 372 | 372 | } |
| 373 | + | |
| 374 | +/* | |
| 375 | +** Sets the "argv0", "argc", and "argv" script variables in the Tcl interpreter | |
| 376 | +** based on the supplied command line arguments. | |
| 377 | + */ | |
| 378 | +static int setTclArguments( | |
| 379 | + Tcl_Interp *pInterp, | |
| 380 | + int argc, | |
| 381 | + char **argv | |
| 382 | +){ | |
| 383 | + Tcl_Obj *objPtr; | |
| 384 | + Tcl_Obj *resultObjPtr; | |
| 385 | + Tcl_Obj *listPtr; | |
| 386 | + int rc = TCL_OK; | |
| 387 | + if( argc<=0 || !argv ){ | |
| 388 | + return TCL_OK; | |
| 389 | + } | |
| 390 | + objPtr = Tcl_NewStringObj(argv[0], -1); | |
| 391 | + Tcl_IncrRefCount(objPtr); | |
| 392 | + resultObjPtr = Tcl_SetVar2Ex(pInterp, "argv0", NULL, objPtr, | |
| 393 | + TCL_GLOBAL_ONLY|TCL_LEAVE_ERR_MSG); | |
| 394 | + Tcl_DecrRefCount(objPtr); | |
| 395 | + if( !resultObjPtr ){ | |
| 396 | + return TCL_ERROR; | |
| 397 | + } | |
| 398 | + objPtr = Tcl_NewIntObj(argc - 1); | |
| 399 | + Tcl_IncrRefCount(objPtr); | |
| 400 | + resultObjPtr = Tcl_SetVar2Ex(pInterp, "argc", NULL, objPtr, | |
| 401 | + TCL_GLOBAL_ONLY|TCL_LEAVE_ERR_MSG); | |
| 402 | + Tcl_DecrRefCount(objPtr); | |
| 403 | + if( !resultObjPtr ){ | |
| 404 | + return TCL_ERROR; | |
| 405 | + } | |
| 406 | + listPtr = Tcl_NewListObj(0, NULL); | |
| 407 | + Tcl_IncrRefCount(listPtr); | |
| 408 | + if( argc>1 ){ | |
| 409 | + while( --argc ){ | |
| 410 | + objPtr = Tcl_NewStringObj(*++argv, -1); | |
| 411 | + Tcl_IncrRefCount(objPtr); | |
| 412 | + rc = Tcl_ListObjAppendElement(pInterp, listPtr, objPtr); | |
| 413 | + Tcl_DecrRefCount(objPtr); | |
| 414 | + if( rc!=TCL_OK ){ | |
| 415 | + break; | |
| 416 | + } | |
| 417 | + } | |
| 418 | + } | |
| 419 | + if( rc==TCL_OK ){ | |
| 420 | + resultObjPtr = Tcl_SetVar2Ex(pInterp, "argv", NULL, listPtr, | |
| 421 | + TCL_GLOBAL_ONLY|TCL_LEAVE_ERR_MSG); | |
| 422 | + if( !resultObjPtr ){ | |
| 423 | + rc = TCL_ERROR; | |
| 424 | + } | |
| 425 | + } | |
| 426 | + Tcl_DecrRefCount(listPtr); | |
| 427 | + return rc; | |
| 428 | +} | |
| 373 | 429 | |
| 374 | 430 | /* |
| 375 | 431 | ** Creates and initializes a Tcl interpreter for use with the specified TH1 |
| 376 | 432 | ** interpreter. Stores the created Tcl interpreter in the Tcl context supplied |
| 377 | 433 | ** by the caller. |
| @@ -379,10 +435,13 @@ | ||
| 379 | 435 | static int createTclInterp( |
| 380 | 436 | Th_Interp *interp, |
| 381 | 437 | void *pContext |
| 382 | 438 | ){ |
| 383 | 439 | struct TclContext *tclContext = (struct TclContext *)pContext; |
| 440 | + int argc; | |
| 441 | + char **argv; | |
| 442 | + char *argv0 = 0; | |
| 384 | 443 | Tcl_Interp *tclInterp; |
| 385 | 444 | |
| 386 | 445 | if ( !tclContext ){ |
| 387 | 446 | Th_ErrorMessage(interp, |
| 388 | 447 | "Invalid Tcl context", (const char *)"", 0); |
| @@ -389,13 +448,16 @@ | ||
| 389 | 448 | return TH_ERROR; |
| 390 | 449 | } |
| 391 | 450 | if ( tclContext->interp ){ |
| 392 | 451 | return TH_OK; |
| 393 | 452 | } |
| 394 | - if ( tclContext->argc>0 && tclContext->argv ) { | |
| 395 | - Tcl_FindExecutable(tclContext->argv[0]); | |
| 453 | + argc = tclContext->argc; | |
| 454 | + argv = tclContext->argv; | |
| 455 | + if( argc>0 && argv ){ | |
| 456 | + argv0 = argv[0]; | |
| 396 | 457 | } |
| 458 | + Tcl_FindExecutable(argv0); | |
| 397 | 459 | tclInterp = tclContext->interp = Tcl_CreateInterp(); |
| 398 | 460 | if( !tclInterp || Tcl_InterpDeleted(tclInterp) ){ |
| 399 | 461 | Th_ErrorMessage(interp, |
| 400 | 462 | "Could not create Tcl interpreter", (const char *)"", 0); |
| 401 | 463 | return TH_ERROR; |
| @@ -404,10 +466,17 @@ | ||
| 404 | 466 | Th_ErrorMessage(interp, |
| 405 | 467 | "Tcl initialization error:", Tcl_GetStringResult(tclInterp), -1); |
| 406 | 468 | Tcl_DeleteInterp(tclInterp); |
| 407 | 469 | tclContext->interp = tclInterp = 0; |
| 408 | 470 | return TH_ERROR; |
| 471 | + } | |
| 472 | + if( setTclArguments(tclInterp, argc, argv)!=TCL_OK ){ | |
| 473 | + Th_ErrorMessage(interp, | |
| 474 | + "Tcl error setting arguments:", Tcl_GetStringResult(tclInterp), -1); | |
| 475 | + Tcl_DeleteInterp(tclInterp); | |
| 476 | + tclContext->interp = tclInterp = 0; | |
| 477 | + return TH_ERROR; | |
| 409 | 478 | } |
| 410 | 479 | /* Add the TH1 integration commands to Tcl. */ |
| 411 | 480 | Tcl_CallWhenDeleted(tclInterp, Th1DeleteProc, interp); |
| 412 | 481 | Tcl_CreateObjCommand(tclInterp, "th1Eval", Th1EvalObjCmd, interp, NULL); |
| 413 | 482 | Tcl_CreateObjCommand(tclInterp, "th1Expr", Th1ExprObjCmd, interp, NULL); |
| 414 | 483 |
| --- src/th_tcl.c | |
| +++ src/th_tcl.c | |
| @@ -368,10 +368,66 @@ | |
| 368 | /* Remove the Tcl integration commands. */ |
| 369 | for(i=0; i<(sizeof(aCommand)/sizeof(aCommand[0])); i++){ |
| 370 | Th_RenameCommand(th1Interp, aCommand[i].zName, -1, NULL, 0); |
| 371 | } |
| 372 | } |
| 373 | |
| 374 | /* |
| 375 | ** Creates and initializes a Tcl interpreter for use with the specified TH1 |
| 376 | ** interpreter. Stores the created Tcl interpreter in the Tcl context supplied |
| 377 | ** by the caller. |
| @@ -379,10 +435,13 @@ | |
| 379 | static int createTclInterp( |
| 380 | Th_Interp *interp, |
| 381 | void *pContext |
| 382 | ){ |
| 383 | struct TclContext *tclContext = (struct TclContext *)pContext; |
| 384 | Tcl_Interp *tclInterp; |
| 385 | |
| 386 | if ( !tclContext ){ |
| 387 | Th_ErrorMessage(interp, |
| 388 | "Invalid Tcl context", (const char *)"", 0); |
| @@ -389,13 +448,16 @@ | |
| 389 | return TH_ERROR; |
| 390 | } |
| 391 | if ( tclContext->interp ){ |
| 392 | return TH_OK; |
| 393 | } |
| 394 | if ( tclContext->argc>0 && tclContext->argv ) { |
| 395 | Tcl_FindExecutable(tclContext->argv[0]); |
| 396 | } |
| 397 | tclInterp = tclContext->interp = Tcl_CreateInterp(); |
| 398 | if( !tclInterp || Tcl_InterpDeleted(tclInterp) ){ |
| 399 | Th_ErrorMessage(interp, |
| 400 | "Could not create Tcl interpreter", (const char *)"", 0); |
| 401 | return TH_ERROR; |
| @@ -404,10 +466,17 @@ | |
| 404 | Th_ErrorMessage(interp, |
| 405 | "Tcl initialization error:", Tcl_GetStringResult(tclInterp), -1); |
| 406 | Tcl_DeleteInterp(tclInterp); |
| 407 | tclContext->interp = tclInterp = 0; |
| 408 | return TH_ERROR; |
| 409 | } |
| 410 | /* Add the TH1 integration commands to Tcl. */ |
| 411 | Tcl_CallWhenDeleted(tclInterp, Th1DeleteProc, interp); |
| 412 | Tcl_CreateObjCommand(tclInterp, "th1Eval", Th1EvalObjCmd, interp, NULL); |
| 413 | Tcl_CreateObjCommand(tclInterp, "th1Expr", Th1ExprObjCmd, interp, NULL); |
| 414 |
| --- src/th_tcl.c | |
| +++ src/th_tcl.c | |
| @@ -368,10 +368,66 @@ | |
| 368 | /* Remove the Tcl integration commands. */ |
| 369 | for(i=0; i<(sizeof(aCommand)/sizeof(aCommand[0])); i++){ |
| 370 | Th_RenameCommand(th1Interp, aCommand[i].zName, -1, NULL, 0); |
| 371 | } |
| 372 | } |
| 373 | |
| 374 | /* |
| 375 | ** Sets the "argv0", "argc", and "argv" script variables in the Tcl interpreter |
| 376 | ** based on the supplied command line arguments. |
| 377 | */ |
| 378 | static int setTclArguments( |
| 379 | Tcl_Interp *pInterp, |
| 380 | int argc, |
| 381 | char **argv |
| 382 | ){ |
| 383 | Tcl_Obj *objPtr; |
| 384 | Tcl_Obj *resultObjPtr; |
| 385 | Tcl_Obj *listPtr; |
| 386 | int rc = TCL_OK; |
| 387 | if( argc<=0 || !argv ){ |
| 388 | return TCL_OK; |
| 389 | } |
| 390 | objPtr = Tcl_NewStringObj(argv[0], -1); |
| 391 | Tcl_IncrRefCount(objPtr); |
| 392 | resultObjPtr = Tcl_SetVar2Ex(pInterp, "argv0", NULL, objPtr, |
| 393 | TCL_GLOBAL_ONLY|TCL_LEAVE_ERR_MSG); |
| 394 | Tcl_DecrRefCount(objPtr); |
| 395 | if( !resultObjPtr ){ |
| 396 | return TCL_ERROR; |
| 397 | } |
| 398 | objPtr = Tcl_NewIntObj(argc - 1); |
| 399 | Tcl_IncrRefCount(objPtr); |
| 400 | resultObjPtr = Tcl_SetVar2Ex(pInterp, "argc", NULL, objPtr, |
| 401 | TCL_GLOBAL_ONLY|TCL_LEAVE_ERR_MSG); |
| 402 | Tcl_DecrRefCount(objPtr); |
| 403 | if( !resultObjPtr ){ |
| 404 | return TCL_ERROR; |
| 405 | } |
| 406 | listPtr = Tcl_NewListObj(0, NULL); |
| 407 | Tcl_IncrRefCount(listPtr); |
| 408 | if( argc>1 ){ |
| 409 | while( --argc ){ |
| 410 | objPtr = Tcl_NewStringObj(*++argv, -1); |
| 411 | Tcl_IncrRefCount(objPtr); |
| 412 | rc = Tcl_ListObjAppendElement(pInterp, listPtr, objPtr); |
| 413 | Tcl_DecrRefCount(objPtr); |
| 414 | if( rc!=TCL_OK ){ |
| 415 | break; |
| 416 | } |
| 417 | } |
| 418 | } |
| 419 | if( rc==TCL_OK ){ |
| 420 | resultObjPtr = Tcl_SetVar2Ex(pInterp, "argv", NULL, listPtr, |
| 421 | TCL_GLOBAL_ONLY|TCL_LEAVE_ERR_MSG); |
| 422 | if( !resultObjPtr ){ |
| 423 | rc = TCL_ERROR; |
| 424 | } |
| 425 | } |
| 426 | Tcl_DecrRefCount(listPtr); |
| 427 | return rc; |
| 428 | } |
| 429 | |
| 430 | /* |
| 431 | ** Creates and initializes a Tcl interpreter for use with the specified TH1 |
| 432 | ** interpreter. Stores the created Tcl interpreter in the Tcl context supplied |
| 433 | ** by the caller. |
| @@ -379,10 +435,13 @@ | |
| 435 | static int createTclInterp( |
| 436 | Th_Interp *interp, |
| 437 | void *pContext |
| 438 | ){ |
| 439 | struct TclContext *tclContext = (struct TclContext *)pContext; |
| 440 | int argc; |
| 441 | char **argv; |
| 442 | char *argv0 = 0; |
| 443 | Tcl_Interp *tclInterp; |
| 444 | |
| 445 | if ( !tclContext ){ |
| 446 | Th_ErrorMessage(interp, |
| 447 | "Invalid Tcl context", (const char *)"", 0); |
| @@ -389,13 +448,16 @@ | |
| 448 | return TH_ERROR; |
| 449 | } |
| 450 | if ( tclContext->interp ){ |
| 451 | return TH_OK; |
| 452 | } |
| 453 | argc = tclContext->argc; |
| 454 | argv = tclContext->argv; |
| 455 | if( argc>0 && argv ){ |
| 456 | argv0 = argv[0]; |
| 457 | } |
| 458 | Tcl_FindExecutable(argv0); |
| 459 | tclInterp = tclContext->interp = Tcl_CreateInterp(); |
| 460 | if( !tclInterp || Tcl_InterpDeleted(tclInterp) ){ |
| 461 | Th_ErrorMessage(interp, |
| 462 | "Could not create Tcl interpreter", (const char *)"", 0); |
| 463 | return TH_ERROR; |
| @@ -404,10 +466,17 @@ | |
| 466 | Th_ErrorMessage(interp, |
| 467 | "Tcl initialization error:", Tcl_GetStringResult(tclInterp), -1); |
| 468 | Tcl_DeleteInterp(tclInterp); |
| 469 | tclContext->interp = tclInterp = 0; |
| 470 | return TH_ERROR; |
| 471 | } |
| 472 | if( setTclArguments(tclInterp, argc, argv)!=TCL_OK ){ |
| 473 | Th_ErrorMessage(interp, |
| 474 | "Tcl error setting arguments:", Tcl_GetStringResult(tclInterp), -1); |
| 475 | Tcl_DeleteInterp(tclInterp); |
| 476 | tclContext->interp = tclInterp = 0; |
| 477 | return TH_ERROR; |
| 478 | } |
| 479 | /* Add the TH1 integration commands to Tcl. */ |
| 480 | Tcl_CallWhenDeleted(tclInterp, Th1DeleteProc, interp); |
| 481 | Tcl_CreateObjCommand(tclInterp, "th1Eval", Th1EvalObjCmd, interp, NULL); |
| 482 | Tcl_CreateObjCommand(tclInterp, "th1Expr", Th1ExprObjCmd, interp, NULL); |
| 483 |
+6
| --- test/th1-tcl.test | ||
| +++ test/th1-tcl.test | ||
| @@ -98,5 +98,11 @@ | ||
| 98 | 98 | test th1-tcl-8 {$RESULT eq {<hr><p class="thmainError">ERROR:\ |
| 99 | 99 | Cannot invoke Tcl command: tailcall</p>} || $RESULT eq {<hr><p\ |
| 100 | 100 | class="thmainError">ERROR: tailcall can only be called from a proc or\ |
| 101 | 101 | lambda</p>}} |
| 102 | 102 | |
| 103 | +############################################################################### | |
| 104 | + | |
| 105 | +fossil test-th-render [file nativename [file join $dir th1-tcl9.txt]] | |
| 106 | + | |
| 107 | +test th1-tcl-9 {[string trim $RESULT] eq [list [file tail $fossilexe] 2 \ | |
| 108 | +[list test-th-render [file nativename [file join $dir th1-tcl9.txt]]]]} | |
| 103 | 109 | |
| 104 | 110 | ADDED test/th1-tcl9.txt |
| --- test/th1-tcl.test | |
| +++ test/th1-tcl.test | |
| @@ -98,5 +98,11 @@ | |
| 98 | test th1-tcl-8 {$RESULT eq {<hr><p class="thmainError">ERROR:\ |
| 99 | Cannot invoke Tcl command: tailcall</p>} || $RESULT eq {<hr><p\ |
| 100 | class="thmainError">ERROR: tailcall can only be called from a proc or\ |
| 101 | lambda</p>}} |
| 102 | |
| 103 | |
| 104 | DDED test/th1-tcl9.txt |
| --- test/th1-tcl.test | |
| +++ test/th1-tcl.test | |
| @@ -98,5 +98,11 @@ | |
| 98 | test th1-tcl-8 {$RESULT eq {<hr><p class="thmainError">ERROR:\ |
| 99 | Cannot invoke Tcl command: tailcall</p>} || $RESULT eq {<hr><p\ |
| 100 | class="thmainError">ERROR: tailcall can only be called from a proc or\ |
| 101 | lambda</p>}} |
| 102 | |
| 103 | ############################################################################### |
| 104 | |
| 105 | fossil test-th-render [file nativename [file join $dir th1-tcl9.txt]] |
| 106 | |
| 107 | test th1-tcl-9 {[string trim $RESULT] eq [list [file tail $fossilexe] 2 \ |
| 108 | [list test-th-render [file nativename [file join $dir th1-tcl9.txt]]]]} |
| 109 | |
| 110 | DDED test/th1-tcl9.txt |
+9
| --- a/test/th1-tcl9.txt | ||
| +++ b/test/th1-tcl9.txt | ||
| @@ -0,0 +1,9 @@ | ||
| 1 | +<th1> | |
| 2 | + # | |
| 3 | + # This is a "TH1 fragment" used to test the Tcl integration features of TH1. | |
| 4 | + # The corresponding test file executes this file using the test-th-render | |
| 5 | + # Fossil command. | |
| 6 | + # | |
| 7 | + set channel stdout; tclInvoke set channel $channel | |
| 8 | + tclEval {puts $channel [list [file tail $argv0] $argc $argv]} | |
| 9 | +</th1> |
| --- a/test/th1-tcl9.txt | |
| +++ b/test/th1-tcl9.txt | |
| @@ -0,0 +1,9 @@ | |
| --- a/test/th1-tcl9.txt | |
| +++ b/test/th1-tcl9.txt | |
| @@ -0,0 +1,9 @@ | |
| 1 | <th1> |
| 2 | # |
| 3 | # This is a "TH1 fragment" used to test the Tcl integration features of TH1. |
| 4 | # The corresponding test file executes this file using the test-th-render |
| 5 | # Fossil command. |
| 6 | # |
| 7 | set channel stdout; tclInvoke set channel $channel |
| 8 | tclEval {puts $channel [list [file tail $argv0] $argc $argv]} |
| 9 | </th1> |
+12
-1
| --- win/Makefile.mingw.mistachkin | ||
| +++ win/Makefile.mingw.mistachkin | ||
| @@ -265,10 +265,11 @@ | ||
| 265 | 265 | $(SRCDIR)/verify.c \ |
| 266 | 266 | $(SRCDIR)/vfile.c \ |
| 267 | 267 | $(SRCDIR)/wiki.c \ |
| 268 | 268 | $(SRCDIR)/wikiformat.c \ |
| 269 | 269 | $(SRCDIR)/winhttp.c \ |
| 270 | + $(SRCDIR)/wysiwyg.c \ | |
| 270 | 271 | $(SRCDIR)/xfer.c \ |
| 271 | 272 | $(SRCDIR)/xfersetup.c \ |
| 272 | 273 | $(SRCDIR)/zip.c |
| 273 | 274 | |
| 274 | 275 | TRANS_SRC = \ |
| @@ -364,10 +365,11 @@ | ||
| 364 | 365 | $(OBJDIR)/verify_.c \ |
| 365 | 366 | $(OBJDIR)/vfile_.c \ |
| 366 | 367 | $(OBJDIR)/wiki_.c \ |
| 367 | 368 | $(OBJDIR)/wikiformat_.c \ |
| 368 | 369 | $(OBJDIR)/winhttp_.c \ |
| 370 | + $(OBJDIR)/wysiwyg_.c \ | |
| 369 | 371 | $(OBJDIR)/xfer_.c \ |
| 370 | 372 | $(OBJDIR)/xfersetup_.c \ |
| 371 | 373 | $(OBJDIR)/zip_.c |
| 372 | 374 | |
| 373 | 375 | OBJ = \ |
| @@ -463,10 +465,11 @@ | ||
| 463 | 465 | $(OBJDIR)/verify.o \ |
| 464 | 466 | $(OBJDIR)/vfile.o \ |
| 465 | 467 | $(OBJDIR)/wiki.o \ |
| 466 | 468 | $(OBJDIR)/wikiformat.o \ |
| 467 | 469 | $(OBJDIR)/winhttp.o \ |
| 470 | + $(OBJDIR)/wysiwyg.o \ | |
| 468 | 471 | $(OBJDIR)/xfer.o \ |
| 469 | 472 | $(OBJDIR)/xfersetup.o \ |
| 470 | 473 | $(OBJDIR)/zip.o |
| 471 | 474 | |
| 472 | 475 | APPNAME = fossil.exe |
| @@ -481,10 +484,11 @@ | ||
| 481 | 484 | $(OBJDIR)/icon.o: $(SRCDIR)/../win/icon.rc |
| 482 | 485 | cp $(SRCDIR)/../win/icon.rc $(OBJDIR) |
| 483 | 486 | windres $(OBJDIR)/icon.rc -o $(OBJDIR)/icon.o |
| 484 | 487 | |
| 485 | 488 | install: $(APPNAME) |
| 489 | + mkdir -p $(INSTALLDIR) | |
| 486 | 490 | mv $(APPNAME) $(INSTALLDIR) |
| 487 | 491 | |
| 488 | 492 | $(OBJDIR): |
| 489 | 493 | mkdir $(OBJDIR) |
| 490 | 494 | |
| @@ -536,11 +540,11 @@ | ||
| 536 | 540 | |
| 537 | 541 | |
| 538 | 542 | $(OBJDIR)/page_index.h: $(TRANS_SRC) $(OBJDIR)/mkindex |
| 539 | 543 | $(MKINDEX) $(TRANS_SRC) >$@ |
| 540 | 544 | $(OBJDIR)/headers: $(OBJDIR)/page_index.h $(OBJDIR)/makeheaders $(OBJDIR)/VERSION.h |
| 541 | - $(MAKEHEADERS) $(OBJDIR)/add_.c:$(OBJDIR)/add.h $(OBJDIR)/allrepo_.c:$(OBJDIR)/allrepo.h $(OBJDIR)/attach_.c:$(OBJDIR)/attach.h $(OBJDIR)/bag_.c:$(OBJDIR)/bag.h $(OBJDIR)/bisect_.c:$(OBJDIR)/bisect.h $(OBJDIR)/blob_.c:$(OBJDIR)/blob.h $(OBJDIR)/branch_.c:$(OBJDIR)/branch.h $(OBJDIR)/browse_.c:$(OBJDIR)/browse.h $(OBJDIR)/captcha_.c:$(OBJDIR)/captcha.h $(OBJDIR)/cgi_.c:$(OBJDIR)/cgi.h $(OBJDIR)/checkin_.c:$(OBJDIR)/checkin.h $(OBJDIR)/checkout_.c:$(OBJDIR)/checkout.h $(OBJDIR)/clearsign_.c:$(OBJDIR)/clearsign.h $(OBJDIR)/clone_.c:$(OBJDIR)/clone.h $(OBJDIR)/comformat_.c:$(OBJDIR)/comformat.h $(OBJDIR)/configure_.c:$(OBJDIR)/configure.h $(OBJDIR)/content_.c:$(OBJDIR)/content.h $(OBJDIR)/db_.c:$(OBJDIR)/db.h $(OBJDIR)/delta_.c:$(OBJDIR)/delta.h $(OBJDIR)/deltacmd_.c:$(OBJDIR)/deltacmd.h $(OBJDIR)/descendants_.c:$(OBJDIR)/descendants.h $(OBJDIR)/diff_.c:$(OBJDIR)/diff.h $(OBJDIR)/diffcmd_.c:$(OBJDIR)/diffcmd.h $(OBJDIR)/doc_.c:$(OBJDIR)/doc.h $(OBJDIR)/encode_.c:$(OBJDIR)/encode.h $(OBJDIR)/event_.c:$(OBJDIR)/event.h $(OBJDIR)/export_.c:$(OBJDIR)/export.h $(OBJDIR)/file_.c:$(OBJDIR)/file.h $(OBJDIR)/finfo_.c:$(OBJDIR)/finfo.h $(OBJDIR)/glob_.c:$(OBJDIR)/glob.h $(OBJDIR)/graph_.c:$(OBJDIR)/graph.h $(OBJDIR)/gzip_.c:$(OBJDIR)/gzip.h $(OBJDIR)/http_.c:$(OBJDIR)/http.h $(OBJDIR)/http_socket_.c:$(OBJDIR)/http_socket.h $(OBJDIR)/http_ssl_.c:$(OBJDIR)/http_ssl.h $(OBJDIR)/http_transport_.c:$(OBJDIR)/http_transport.h $(OBJDIR)/import_.c:$(OBJDIR)/import.h $(OBJDIR)/info_.c:$(OBJDIR)/info.h $(OBJDIR)/json_.c:$(OBJDIR)/json.h $(OBJDIR)/json_artifact_.c:$(OBJDIR)/json_artifact.h $(OBJDIR)/json_branch_.c:$(OBJDIR)/json_branch.h $(OBJDIR)/json_config_.c:$(OBJDIR)/json_config.h $(OBJDIR)/json_diff_.c:$(OBJDIR)/json_diff.h $(OBJDIR)/json_dir_.c:$(OBJDIR)/json_dir.h $(OBJDIR)/json_finfo_.c:$(OBJDIR)/json_finfo.h $(OBJDIR)/json_login_.c:$(OBJDIR)/json_login.h $(OBJDIR)/json_query_.c:$(OBJDIR)/json_query.h $(OBJDIR)/json_report_.c:$(OBJDIR)/json_report.h $(OBJDIR)/json_tag_.c:$(OBJDIR)/json_tag.h $(OBJDIR)/json_timeline_.c:$(OBJDIR)/json_timeline.h $(OBJDIR)/json_user_.c:$(OBJDIR)/json_user.h $(OBJDIR)/json_wiki_.c:$(OBJDIR)/json_wiki.h $(OBJDIR)/leaf_.c:$(OBJDIR)/leaf.h $(OBJDIR)/login_.c:$(OBJDIR)/login.h $(OBJDIR)/main_.c:$(OBJDIR)/main.h $(OBJDIR)/manifest_.c:$(OBJDIR)/manifest.h $(OBJDIR)/md5_.c:$(OBJDIR)/md5.h $(OBJDIR)/merge_.c:$(OBJDIR)/merge.h $(OBJDIR)/merge3_.c:$(OBJDIR)/merge3.h $(OBJDIR)/name_.c:$(OBJDIR)/name.h $(OBJDIR)/path_.c:$(OBJDIR)/path.h $(OBJDIR)/pivot_.c:$(OBJDIR)/pivot.h $(OBJDIR)/popen_.c:$(OBJDIR)/popen.h $(OBJDIR)/pqueue_.c:$(OBJDIR)/pqueue.h $(OBJDIR)/printf_.c:$(OBJDIR)/printf.h $(OBJDIR)/rebuild_.c:$(OBJDIR)/rebuild.h $(OBJDIR)/report_.c:$(OBJDIR)/report.h $(OBJDIR)/rss_.c:$(OBJDIR)/rss.h $(OBJDIR)/schema_.c:$(OBJDIR)/schema.h $(OBJDIR)/search_.c:$(OBJDIR)/search.h $(OBJDIR)/setup_.c:$(OBJDIR)/setup.h $(OBJDIR)/sha1_.c:$(OBJDIR)/sha1.h $(OBJDIR)/shun_.c:$(OBJDIR)/shun.h $(OBJDIR)/skins_.c:$(OBJDIR)/skins.h $(OBJDIR)/sqlcmd_.c:$(OBJDIR)/sqlcmd.h $(OBJDIR)/stash_.c:$(OBJDIR)/stash.h $(OBJDIR)/stat_.c:$(OBJDIR)/stat.h $(OBJDIR)/style_.c:$(OBJDIR)/style.h $(OBJDIR)/sync_.c:$(OBJDIR)/sync.h $(OBJDIR)/tag_.c:$(OBJDIR)/tag.h $(OBJDIR)/tar_.c:$(OBJDIR)/tar.h $(OBJDIR)/th_main_.c:$(OBJDIR)/th_main.h $(OBJDIR)/timeline_.c:$(OBJDIR)/timeline.h $(OBJDIR)/tkt_.c:$(OBJDIR)/tkt.h $(OBJDIR)/tktsetup_.c:$(OBJDIR)/tktsetup.h $(OBJDIR)/undo_.c:$(OBJDIR)/undo.h $(OBJDIR)/update_.c:$(OBJDIR)/update.h $(OBJDIR)/url_.c:$(OBJDIR)/url.h $(OBJDIR)/user_.c:$(OBJDIR)/user.h $(OBJDIR)/verify_.c:$(OBJDIR)/verify.h $(OBJDIR)/vfile_.c:$(OBJDIR)/vfile.h $(OBJDIR)/wiki_.c:$(OBJDIR)/wiki.h $(OBJDIR)/wikiformat_.c:$(OBJDIR)/wikiformat.h $(OBJDIR)/winhttp_.c:$(OBJDIR)/winhttp.h $(OBJDIR)/xfer_.c:$(OBJDIR)/xfer.h $(OBJDIR)/xfersetup_.c:$(OBJDIR)/xfersetup.h $(OBJDIR)/zip_.c:$(OBJDIR)/zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h $(OBJDIR)/VERSION.h | |
| 545 | + $(MAKEHEADERS) $(OBJDIR)/add_.c:$(OBJDIR)/add.h $(OBJDIR)/allrepo_.c:$(OBJDIR)/allrepo.h $(OBJDIR)/attach_.c:$(OBJDIR)/attach.h $(OBJDIR)/bag_.c:$(OBJDIR)/bag.h $(OBJDIR)/bisect_.c:$(OBJDIR)/bisect.h $(OBJDIR)/blob_.c:$(OBJDIR)/blob.h $(OBJDIR)/branch_.c:$(OBJDIR)/branch.h $(OBJDIR)/browse_.c:$(OBJDIR)/browse.h $(OBJDIR)/captcha_.c:$(OBJDIR)/captcha.h $(OBJDIR)/cgi_.c:$(OBJDIR)/cgi.h $(OBJDIR)/checkin_.c:$(OBJDIR)/checkin.h $(OBJDIR)/checkout_.c:$(OBJDIR)/checkout.h $(OBJDIR)/clearsign_.c:$(OBJDIR)/clearsign.h $(OBJDIR)/clone_.c:$(OBJDIR)/clone.h $(OBJDIR)/comformat_.c:$(OBJDIR)/comformat.h $(OBJDIR)/configure_.c:$(OBJDIR)/configure.h $(OBJDIR)/content_.c:$(OBJDIR)/content.h $(OBJDIR)/db_.c:$(OBJDIR)/db.h $(OBJDIR)/delta_.c:$(OBJDIR)/delta.h $(OBJDIR)/deltacmd_.c:$(OBJDIR)/deltacmd.h $(OBJDIR)/descendants_.c:$(OBJDIR)/descendants.h $(OBJDIR)/diff_.c:$(OBJDIR)/diff.h $(OBJDIR)/diffcmd_.c:$(OBJDIR)/diffcmd.h $(OBJDIR)/doc_.c:$(OBJDIR)/doc.h $(OBJDIR)/encode_.c:$(OBJDIR)/encode.h $(OBJDIR)/event_.c:$(OBJDIR)/event.h $(OBJDIR)/export_.c:$(OBJDIR)/export.h $(OBJDIR)/file_.c:$(OBJDIR)/file.h $(OBJDIR)/finfo_.c:$(OBJDIR)/finfo.h $(OBJDIR)/glob_.c:$(OBJDIR)/glob.h $(OBJDIR)/graph_.c:$(OBJDIR)/graph.h $(OBJDIR)/gzip_.c:$(OBJDIR)/gzip.h $(OBJDIR)/http_.c:$(OBJDIR)/http.h $(OBJDIR)/http_socket_.c:$(OBJDIR)/http_socket.h $(OBJDIR)/http_ssl_.c:$(OBJDIR)/http_ssl.h $(OBJDIR)/http_transport_.c:$(OBJDIR)/http_transport.h $(OBJDIR)/import_.c:$(OBJDIR)/import.h $(OBJDIR)/info_.c:$(OBJDIR)/info.h $(OBJDIR)/json_.c:$(OBJDIR)/json.h $(OBJDIR)/json_artifact_.c:$(OBJDIR)/json_artifact.h $(OBJDIR)/json_branch_.c:$(OBJDIR)/json_branch.h $(OBJDIR)/json_config_.c:$(OBJDIR)/json_config.h $(OBJDIR)/json_diff_.c:$(OBJDIR)/json_diff.h $(OBJDIR)/json_dir_.c:$(OBJDIR)/json_dir.h $(OBJDIR)/json_finfo_.c:$(OBJDIR)/json_finfo.h $(OBJDIR)/json_login_.c:$(OBJDIR)/json_login.h $(OBJDIR)/json_query_.c:$(OBJDIR)/json_query.h $(OBJDIR)/json_report_.c:$(OBJDIR)/json_report.h $(OBJDIR)/json_tag_.c:$(OBJDIR)/json_tag.h $(OBJDIR)/json_timeline_.c:$(OBJDIR)/json_timeline.h $(OBJDIR)/json_user_.c:$(OBJDIR)/json_user.h $(OBJDIR)/json_wiki_.c:$(OBJDIR)/json_wiki.h $(OBJDIR)/leaf_.c:$(OBJDIR)/leaf.h $(OBJDIR)/login_.c:$(OBJDIR)/login.h $(OBJDIR)/main_.c:$(OBJDIR)/main.h $(OBJDIR)/manifest_.c:$(OBJDIR)/manifest.h $(OBJDIR)/md5_.c:$(OBJDIR)/md5.h $(OBJDIR)/merge_.c:$(OBJDIR)/merge.h $(OBJDIR)/merge3_.c:$(OBJDIR)/merge3.h $(OBJDIR)/name_.c:$(OBJDIR)/name.h $(OBJDIR)/path_.c:$(OBJDIR)/path.h $(OBJDIR)/pivot_.c:$(OBJDIR)/pivot.h $(OBJDIR)/popen_.c:$(OBJDIR)/popen.h $(OBJDIR)/pqueue_.c:$(OBJDIR)/pqueue.h $(OBJDIR)/printf_.c:$(OBJDIR)/printf.h $(OBJDIR)/rebuild_.c:$(OBJDIR)/rebuild.h $(OBJDIR)/report_.c:$(OBJDIR)/report.h $(OBJDIR)/rss_.c:$(OBJDIR)/rss.h $(OBJDIR)/schema_.c:$(OBJDIR)/schema.h $(OBJDIR)/search_.c:$(OBJDIR)/search.h $(OBJDIR)/setup_.c:$(OBJDIR)/setup.h $(OBJDIR)/sha1_.c:$(OBJDIR)/sha1.h $(OBJDIR)/shun_.c:$(OBJDIR)/shun.h $(OBJDIR)/skins_.c:$(OBJDIR)/skins.h $(OBJDIR)/sqlcmd_.c:$(OBJDIR)/sqlcmd.h $(OBJDIR)/stash_.c:$(OBJDIR)/stash.h $(OBJDIR)/stat_.c:$(OBJDIR)/stat.h $(OBJDIR)/style_.c:$(OBJDIR)/style.h $(OBJDIR)/sync_.c:$(OBJDIR)/sync.h $(OBJDIR)/tag_.c:$(OBJDIR)/tag.h $(OBJDIR)/tar_.c:$(OBJDIR)/tar.h $(OBJDIR)/th_main_.c:$(OBJDIR)/th_main.h $(OBJDIR)/timeline_.c:$(OBJDIR)/timeline.h $(OBJDIR)/tkt_.c:$(OBJDIR)/tkt.h $(OBJDIR)/tktsetup_.c:$(OBJDIR)/tktsetup.h $(OBJDIR)/undo_.c:$(OBJDIR)/undo.h $(OBJDIR)/update_.c:$(OBJDIR)/update.h $(OBJDIR)/url_.c:$(OBJDIR)/url.h $(OBJDIR)/user_.c:$(OBJDIR)/user.h $(OBJDIR)/verify_.c:$(OBJDIR)/verify.h $(OBJDIR)/vfile_.c:$(OBJDIR)/vfile.h $(OBJDIR)/wiki_.c:$(OBJDIR)/wiki.h $(OBJDIR)/wikiformat_.c:$(OBJDIR)/wikiformat.h $(OBJDIR)/winhttp_.c:$(OBJDIR)/winhttp.h $(OBJDIR)/wysiwyg_.c:$(OBJDIR)/wysiwyg.h $(OBJDIR)/xfer_.c:$(OBJDIR)/xfer.h $(OBJDIR)/xfersetup_.c:$(OBJDIR)/xfersetup.h $(OBJDIR)/zip_.c:$(OBJDIR)/zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h $(OBJDIR)/VERSION.h | |
| 542 | 546 | echo Done >$(OBJDIR)/headers |
| 543 | 547 | |
| 544 | 548 | $(OBJDIR)/headers: Makefile |
| 545 | 549 | Makefile: |
| 546 | 550 | $(OBJDIR)/add_.c: $(SRCDIR)/add.c $(OBJDIR)/translate |
| @@ -1199,10 +1203,17 @@ | ||
| 1199 | 1203 | |
| 1200 | 1204 | $(OBJDIR)/winhttp.o: $(OBJDIR)/winhttp_.c $(OBJDIR)/winhttp.h $(SRCDIR)/config.h |
| 1201 | 1205 | $(XTCC) -o $(OBJDIR)/winhttp.o -c $(OBJDIR)/winhttp_.c |
| 1202 | 1206 | |
| 1203 | 1207 | winhttp.h: $(OBJDIR)/headers |
| 1208 | +$(OBJDIR)/wysiwyg_.c: $(SRCDIR)/wysiwyg.c $(OBJDIR)/translate | |
| 1209 | + $(TRANSLATE) $(SRCDIR)/wysiwyg.c >$(OBJDIR)/wysiwyg_.c | |
| 1210 | + | |
| 1211 | +$(OBJDIR)/wysiwyg.o: $(OBJDIR)/wysiwyg_.c $(OBJDIR)/wysiwyg.h $(SRCDIR)/config.h | |
| 1212 | + $(XTCC) -o $(OBJDIR)/wysiwyg.o -c $(OBJDIR)/wysiwyg_.c | |
| 1213 | + | |
| 1214 | +wysiwyg.h: $(OBJDIR)/headers | |
| 1204 | 1215 | $(OBJDIR)/xfer_.c: $(SRCDIR)/xfer.c $(OBJDIR)/translate |
| 1205 | 1216 | $(TRANSLATE) $(SRCDIR)/xfer.c >$(OBJDIR)/xfer_.c |
| 1206 | 1217 | |
| 1207 | 1218 | $(OBJDIR)/xfer.o: $(OBJDIR)/xfer_.c $(OBJDIR)/xfer.h $(SRCDIR)/config.h |
| 1208 | 1219 | $(XTCC) -o $(OBJDIR)/xfer.o -c $(OBJDIR)/xfer_.c |
| 1209 | 1220 |
| --- win/Makefile.mingw.mistachkin | |
| +++ win/Makefile.mingw.mistachkin | |
| @@ -265,10 +265,11 @@ | |
| 265 | $(SRCDIR)/verify.c \ |
| 266 | $(SRCDIR)/vfile.c \ |
| 267 | $(SRCDIR)/wiki.c \ |
| 268 | $(SRCDIR)/wikiformat.c \ |
| 269 | $(SRCDIR)/winhttp.c \ |
| 270 | $(SRCDIR)/xfer.c \ |
| 271 | $(SRCDIR)/xfersetup.c \ |
| 272 | $(SRCDIR)/zip.c |
| 273 | |
| 274 | TRANS_SRC = \ |
| @@ -364,10 +365,11 @@ | |
| 364 | $(OBJDIR)/verify_.c \ |
| 365 | $(OBJDIR)/vfile_.c \ |
| 366 | $(OBJDIR)/wiki_.c \ |
| 367 | $(OBJDIR)/wikiformat_.c \ |
| 368 | $(OBJDIR)/winhttp_.c \ |
| 369 | $(OBJDIR)/xfer_.c \ |
| 370 | $(OBJDIR)/xfersetup_.c \ |
| 371 | $(OBJDIR)/zip_.c |
| 372 | |
| 373 | OBJ = \ |
| @@ -463,10 +465,11 @@ | |
| 463 | $(OBJDIR)/verify.o \ |
| 464 | $(OBJDIR)/vfile.o \ |
| 465 | $(OBJDIR)/wiki.o \ |
| 466 | $(OBJDIR)/wikiformat.o \ |
| 467 | $(OBJDIR)/winhttp.o \ |
| 468 | $(OBJDIR)/xfer.o \ |
| 469 | $(OBJDIR)/xfersetup.o \ |
| 470 | $(OBJDIR)/zip.o |
| 471 | |
| 472 | APPNAME = fossil.exe |
| @@ -481,10 +484,11 @@ | |
| 481 | $(OBJDIR)/icon.o: $(SRCDIR)/../win/icon.rc |
| 482 | cp $(SRCDIR)/../win/icon.rc $(OBJDIR) |
| 483 | windres $(OBJDIR)/icon.rc -o $(OBJDIR)/icon.o |
| 484 | |
| 485 | install: $(APPNAME) |
| 486 | mv $(APPNAME) $(INSTALLDIR) |
| 487 | |
| 488 | $(OBJDIR): |
| 489 | mkdir $(OBJDIR) |
| 490 | |
| @@ -536,11 +540,11 @@ | |
| 536 | |
| 537 | |
| 538 | $(OBJDIR)/page_index.h: $(TRANS_SRC) $(OBJDIR)/mkindex |
| 539 | $(MKINDEX) $(TRANS_SRC) >$@ |
| 540 | $(OBJDIR)/headers: $(OBJDIR)/page_index.h $(OBJDIR)/makeheaders $(OBJDIR)/VERSION.h |
| 541 | $(MAKEHEADERS) $(OBJDIR)/add_.c:$(OBJDIR)/add.h $(OBJDIR)/allrepo_.c:$(OBJDIR)/allrepo.h $(OBJDIR)/attach_.c:$(OBJDIR)/attach.h $(OBJDIR)/bag_.c:$(OBJDIR)/bag.h $(OBJDIR)/bisect_.c:$(OBJDIR)/bisect.h $(OBJDIR)/blob_.c:$(OBJDIR)/blob.h $(OBJDIR)/branch_.c:$(OBJDIR)/branch.h $(OBJDIR)/browse_.c:$(OBJDIR)/browse.h $(OBJDIR)/captcha_.c:$(OBJDIR)/captcha.h $(OBJDIR)/cgi_.c:$(OBJDIR)/cgi.h $(OBJDIR)/checkin_.c:$(OBJDIR)/checkin.h $(OBJDIR)/checkout_.c:$(OBJDIR)/checkout.h $(OBJDIR)/clearsign_.c:$(OBJDIR)/clearsign.h $(OBJDIR)/clone_.c:$(OBJDIR)/clone.h $(OBJDIR)/comformat_.c:$(OBJDIR)/comformat.h $(OBJDIR)/configure_.c:$(OBJDIR)/configure.h $(OBJDIR)/content_.c:$(OBJDIR)/content.h $(OBJDIR)/db_.c:$(OBJDIR)/db.h $(OBJDIR)/delta_.c:$(OBJDIR)/delta.h $(OBJDIR)/deltacmd_.c:$(OBJDIR)/deltacmd.h $(OBJDIR)/descendants_.c:$(OBJDIR)/descendants.h $(OBJDIR)/diff_.c:$(OBJDIR)/diff.h $(OBJDIR)/diffcmd_.c:$(OBJDIR)/diffcmd.h $(OBJDIR)/doc_.c:$(OBJDIR)/doc.h $(OBJDIR)/encode_.c:$(OBJDIR)/encode.h $(OBJDIR)/event_.c:$(OBJDIR)/event.h $(OBJDIR)/export_.c:$(OBJDIR)/export.h $(OBJDIR)/file_.c:$(OBJDIR)/file.h $(OBJDIR)/finfo_.c:$(OBJDIR)/finfo.h $(OBJDIR)/glob_.c:$(OBJDIR)/glob.h $(OBJDIR)/graph_.c:$(OBJDIR)/graph.h $(OBJDIR)/gzip_.c:$(OBJDIR)/gzip.h $(OBJDIR)/http_.c:$(OBJDIR)/http.h $(OBJDIR)/http_socket_.c:$(OBJDIR)/http_socket.h $(OBJDIR)/http_ssl_.c:$(OBJDIR)/http_ssl.h $(OBJDIR)/http_transport_.c:$(OBJDIR)/http_transport.h $(OBJDIR)/import_.c:$(OBJDIR)/import.h $(OBJDIR)/info_.c:$(OBJDIR)/info.h $(OBJDIR)/json_.c:$(OBJDIR)/json.h $(OBJDIR)/json_artifact_.c:$(OBJDIR)/json_artifact.h $(OBJDIR)/json_branch_.c:$(OBJDIR)/json_branch.h $(OBJDIR)/json_config_.c:$(OBJDIR)/json_config.h $(OBJDIR)/json_diff_.c:$(OBJDIR)/json_diff.h $(OBJDIR)/json_dir_.c:$(OBJDIR)/json_dir.h $(OBJDIR)/json_finfo_.c:$(OBJDIR)/json_finfo.h $(OBJDIR)/json_login_.c:$(OBJDIR)/json_login.h $(OBJDIR)/json_query_.c:$(OBJDIR)/json_query.h $(OBJDIR)/json_report_.c:$(OBJDIR)/json_report.h $(OBJDIR)/json_tag_.c:$(OBJDIR)/json_tag.h $(OBJDIR)/json_timeline_.c:$(OBJDIR)/json_timeline.h $(OBJDIR)/json_user_.c:$(OBJDIR)/json_user.h $(OBJDIR)/json_wiki_.c:$(OBJDIR)/json_wiki.h $(OBJDIR)/leaf_.c:$(OBJDIR)/leaf.h $(OBJDIR)/login_.c:$(OBJDIR)/login.h $(OBJDIR)/main_.c:$(OBJDIR)/main.h $(OBJDIR)/manifest_.c:$(OBJDIR)/manifest.h $(OBJDIR)/md5_.c:$(OBJDIR)/md5.h $(OBJDIR)/merge_.c:$(OBJDIR)/merge.h $(OBJDIR)/merge3_.c:$(OBJDIR)/merge3.h $(OBJDIR)/name_.c:$(OBJDIR)/name.h $(OBJDIR)/path_.c:$(OBJDIR)/path.h $(OBJDIR)/pivot_.c:$(OBJDIR)/pivot.h $(OBJDIR)/popen_.c:$(OBJDIR)/popen.h $(OBJDIR)/pqueue_.c:$(OBJDIR)/pqueue.h $(OBJDIR)/printf_.c:$(OBJDIR)/printf.h $(OBJDIR)/rebuild_.c:$(OBJDIR)/rebuild.h $(OBJDIR)/report_.c:$(OBJDIR)/report.h $(OBJDIR)/rss_.c:$(OBJDIR)/rss.h $(OBJDIR)/schema_.c:$(OBJDIR)/schema.h $(OBJDIR)/search_.c:$(OBJDIR)/search.h $(OBJDIR)/setup_.c:$(OBJDIR)/setup.h $(OBJDIR)/sha1_.c:$(OBJDIR)/sha1.h $(OBJDIR)/shun_.c:$(OBJDIR)/shun.h $(OBJDIR)/skins_.c:$(OBJDIR)/skins.h $(OBJDIR)/sqlcmd_.c:$(OBJDIR)/sqlcmd.h $(OBJDIR)/stash_.c:$(OBJDIR)/stash.h $(OBJDIR)/stat_.c:$(OBJDIR)/stat.h $(OBJDIR)/style_.c:$(OBJDIR)/style.h $(OBJDIR)/sync_.c:$(OBJDIR)/sync.h $(OBJDIR)/tag_.c:$(OBJDIR)/tag.h $(OBJDIR)/tar_.c:$(OBJDIR)/tar.h $(OBJDIR)/th_main_.c:$(OBJDIR)/th_main.h $(OBJDIR)/timeline_.c:$(OBJDIR)/timeline.h $(OBJDIR)/tkt_.c:$(OBJDIR)/tkt.h $(OBJDIR)/tktsetup_.c:$(OBJDIR)/tktsetup.h $(OBJDIR)/undo_.c:$(OBJDIR)/undo.h $(OBJDIR)/update_.c:$(OBJDIR)/update.h $(OBJDIR)/url_.c:$(OBJDIR)/url.h $(OBJDIR)/user_.c:$(OBJDIR)/user.h $(OBJDIR)/verify_.c:$(OBJDIR)/verify.h $(OBJDIR)/vfile_.c:$(OBJDIR)/vfile.h $(OBJDIR)/wiki_.c:$(OBJDIR)/wiki.h $(OBJDIR)/wikiformat_.c:$(OBJDIR)/wikiformat.h $(OBJDIR)/winhttp_.c:$(OBJDIR)/winhttp.h $(OBJDIR)/xfer_.c:$(OBJDIR)/xfer.h $(OBJDIR)/xfersetup_.c:$(OBJDIR)/xfersetup.h $(OBJDIR)/zip_.c:$(OBJDIR)/zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h $(OBJDIR)/VERSION.h |
| 542 | echo Done >$(OBJDIR)/headers |
| 543 | |
| 544 | $(OBJDIR)/headers: Makefile |
| 545 | Makefile: |
| 546 | $(OBJDIR)/add_.c: $(SRCDIR)/add.c $(OBJDIR)/translate |
| @@ -1199,10 +1203,17 @@ | |
| 1199 | |
| 1200 | $(OBJDIR)/winhttp.o: $(OBJDIR)/winhttp_.c $(OBJDIR)/winhttp.h $(SRCDIR)/config.h |
| 1201 | $(XTCC) -o $(OBJDIR)/winhttp.o -c $(OBJDIR)/winhttp_.c |
| 1202 | |
| 1203 | winhttp.h: $(OBJDIR)/headers |
| 1204 | $(OBJDIR)/xfer_.c: $(SRCDIR)/xfer.c $(OBJDIR)/translate |
| 1205 | $(TRANSLATE) $(SRCDIR)/xfer.c >$(OBJDIR)/xfer_.c |
| 1206 | |
| 1207 | $(OBJDIR)/xfer.o: $(OBJDIR)/xfer_.c $(OBJDIR)/xfer.h $(SRCDIR)/config.h |
| 1208 | $(XTCC) -o $(OBJDIR)/xfer.o -c $(OBJDIR)/xfer_.c |
| 1209 |
| --- win/Makefile.mingw.mistachkin | |
| +++ win/Makefile.mingw.mistachkin | |
| @@ -265,10 +265,11 @@ | |
| 265 | $(SRCDIR)/verify.c \ |
| 266 | $(SRCDIR)/vfile.c \ |
| 267 | $(SRCDIR)/wiki.c \ |
| 268 | $(SRCDIR)/wikiformat.c \ |
| 269 | $(SRCDIR)/winhttp.c \ |
| 270 | $(SRCDIR)/wysiwyg.c \ |
| 271 | $(SRCDIR)/xfer.c \ |
| 272 | $(SRCDIR)/xfersetup.c \ |
| 273 | $(SRCDIR)/zip.c |
| 274 | |
| 275 | TRANS_SRC = \ |
| @@ -364,10 +365,11 @@ | |
| 365 | $(OBJDIR)/verify_.c \ |
| 366 | $(OBJDIR)/vfile_.c \ |
| 367 | $(OBJDIR)/wiki_.c \ |
| 368 | $(OBJDIR)/wikiformat_.c \ |
| 369 | $(OBJDIR)/winhttp_.c \ |
| 370 | $(OBJDIR)/wysiwyg_.c \ |
| 371 | $(OBJDIR)/xfer_.c \ |
| 372 | $(OBJDIR)/xfersetup_.c \ |
| 373 | $(OBJDIR)/zip_.c |
| 374 | |
| 375 | OBJ = \ |
| @@ -463,10 +465,11 @@ | |
| 465 | $(OBJDIR)/verify.o \ |
| 466 | $(OBJDIR)/vfile.o \ |
| 467 | $(OBJDIR)/wiki.o \ |
| 468 | $(OBJDIR)/wikiformat.o \ |
| 469 | $(OBJDIR)/winhttp.o \ |
| 470 | $(OBJDIR)/wysiwyg.o \ |
| 471 | $(OBJDIR)/xfer.o \ |
| 472 | $(OBJDIR)/xfersetup.o \ |
| 473 | $(OBJDIR)/zip.o |
| 474 | |
| 475 | APPNAME = fossil.exe |
| @@ -481,10 +484,11 @@ | |
| 484 | $(OBJDIR)/icon.o: $(SRCDIR)/../win/icon.rc |
| 485 | cp $(SRCDIR)/../win/icon.rc $(OBJDIR) |
| 486 | windres $(OBJDIR)/icon.rc -o $(OBJDIR)/icon.o |
| 487 | |
| 488 | install: $(APPNAME) |
| 489 | mkdir -p $(INSTALLDIR) |
| 490 | mv $(APPNAME) $(INSTALLDIR) |
| 491 | |
| 492 | $(OBJDIR): |
| 493 | mkdir $(OBJDIR) |
| 494 | |
| @@ -536,11 +540,11 @@ | |
| 540 | |
| 541 | |
| 542 | $(OBJDIR)/page_index.h: $(TRANS_SRC) $(OBJDIR)/mkindex |
| 543 | $(MKINDEX) $(TRANS_SRC) >$@ |
| 544 | $(OBJDIR)/headers: $(OBJDIR)/page_index.h $(OBJDIR)/makeheaders $(OBJDIR)/VERSION.h |
| 545 | $(MAKEHEADERS) $(OBJDIR)/add_.c:$(OBJDIR)/add.h $(OBJDIR)/allrepo_.c:$(OBJDIR)/allrepo.h $(OBJDIR)/attach_.c:$(OBJDIR)/attach.h $(OBJDIR)/bag_.c:$(OBJDIR)/bag.h $(OBJDIR)/bisect_.c:$(OBJDIR)/bisect.h $(OBJDIR)/blob_.c:$(OBJDIR)/blob.h $(OBJDIR)/branch_.c:$(OBJDIR)/branch.h $(OBJDIR)/browse_.c:$(OBJDIR)/browse.h $(OBJDIR)/captcha_.c:$(OBJDIR)/captcha.h $(OBJDIR)/cgi_.c:$(OBJDIR)/cgi.h $(OBJDIR)/checkin_.c:$(OBJDIR)/checkin.h $(OBJDIR)/checkout_.c:$(OBJDIR)/checkout.h $(OBJDIR)/clearsign_.c:$(OBJDIR)/clearsign.h $(OBJDIR)/clone_.c:$(OBJDIR)/clone.h $(OBJDIR)/comformat_.c:$(OBJDIR)/comformat.h $(OBJDIR)/configure_.c:$(OBJDIR)/configure.h $(OBJDIR)/content_.c:$(OBJDIR)/content.h $(OBJDIR)/db_.c:$(OBJDIR)/db.h $(OBJDIR)/delta_.c:$(OBJDIR)/delta.h $(OBJDIR)/deltacmd_.c:$(OBJDIR)/deltacmd.h $(OBJDIR)/descendants_.c:$(OBJDIR)/descendants.h $(OBJDIR)/diff_.c:$(OBJDIR)/diff.h $(OBJDIR)/diffcmd_.c:$(OBJDIR)/diffcmd.h $(OBJDIR)/doc_.c:$(OBJDIR)/doc.h $(OBJDIR)/encode_.c:$(OBJDIR)/encode.h $(OBJDIR)/event_.c:$(OBJDIR)/event.h $(OBJDIR)/export_.c:$(OBJDIR)/export.h $(OBJDIR)/file_.c:$(OBJDIR)/file.h $(OBJDIR)/finfo_.c:$(OBJDIR)/finfo.h $(OBJDIR)/glob_.c:$(OBJDIR)/glob.h $(OBJDIR)/graph_.c:$(OBJDIR)/graph.h $(OBJDIR)/gzip_.c:$(OBJDIR)/gzip.h $(OBJDIR)/http_.c:$(OBJDIR)/http.h $(OBJDIR)/http_socket_.c:$(OBJDIR)/http_socket.h $(OBJDIR)/http_ssl_.c:$(OBJDIR)/http_ssl.h $(OBJDIR)/http_transport_.c:$(OBJDIR)/http_transport.h $(OBJDIR)/import_.c:$(OBJDIR)/import.h $(OBJDIR)/info_.c:$(OBJDIR)/info.h $(OBJDIR)/json_.c:$(OBJDIR)/json.h $(OBJDIR)/json_artifact_.c:$(OBJDIR)/json_artifact.h $(OBJDIR)/json_branch_.c:$(OBJDIR)/json_branch.h $(OBJDIR)/json_config_.c:$(OBJDIR)/json_config.h $(OBJDIR)/json_diff_.c:$(OBJDIR)/json_diff.h $(OBJDIR)/json_dir_.c:$(OBJDIR)/json_dir.h $(OBJDIR)/json_finfo_.c:$(OBJDIR)/json_finfo.h $(OBJDIR)/json_login_.c:$(OBJDIR)/json_login.h $(OBJDIR)/json_query_.c:$(OBJDIR)/json_query.h $(OBJDIR)/json_report_.c:$(OBJDIR)/json_report.h $(OBJDIR)/json_tag_.c:$(OBJDIR)/json_tag.h $(OBJDIR)/json_timeline_.c:$(OBJDIR)/json_timeline.h $(OBJDIR)/json_user_.c:$(OBJDIR)/json_user.h $(OBJDIR)/json_wiki_.c:$(OBJDIR)/json_wiki.h $(OBJDIR)/leaf_.c:$(OBJDIR)/leaf.h $(OBJDIR)/login_.c:$(OBJDIR)/login.h $(OBJDIR)/main_.c:$(OBJDIR)/main.h $(OBJDIR)/manifest_.c:$(OBJDIR)/manifest.h $(OBJDIR)/md5_.c:$(OBJDIR)/md5.h $(OBJDIR)/merge_.c:$(OBJDIR)/merge.h $(OBJDIR)/merge3_.c:$(OBJDIR)/merge3.h $(OBJDIR)/name_.c:$(OBJDIR)/name.h $(OBJDIR)/path_.c:$(OBJDIR)/path.h $(OBJDIR)/pivot_.c:$(OBJDIR)/pivot.h $(OBJDIR)/popen_.c:$(OBJDIR)/popen.h $(OBJDIR)/pqueue_.c:$(OBJDIR)/pqueue.h $(OBJDIR)/printf_.c:$(OBJDIR)/printf.h $(OBJDIR)/rebuild_.c:$(OBJDIR)/rebuild.h $(OBJDIR)/report_.c:$(OBJDIR)/report.h $(OBJDIR)/rss_.c:$(OBJDIR)/rss.h $(OBJDIR)/schema_.c:$(OBJDIR)/schema.h $(OBJDIR)/search_.c:$(OBJDIR)/search.h $(OBJDIR)/setup_.c:$(OBJDIR)/setup.h $(OBJDIR)/sha1_.c:$(OBJDIR)/sha1.h $(OBJDIR)/shun_.c:$(OBJDIR)/shun.h $(OBJDIR)/skins_.c:$(OBJDIR)/skins.h $(OBJDIR)/sqlcmd_.c:$(OBJDIR)/sqlcmd.h $(OBJDIR)/stash_.c:$(OBJDIR)/stash.h $(OBJDIR)/stat_.c:$(OBJDIR)/stat.h $(OBJDIR)/style_.c:$(OBJDIR)/style.h $(OBJDIR)/sync_.c:$(OBJDIR)/sync.h $(OBJDIR)/tag_.c:$(OBJDIR)/tag.h $(OBJDIR)/tar_.c:$(OBJDIR)/tar.h $(OBJDIR)/th_main_.c:$(OBJDIR)/th_main.h $(OBJDIR)/timeline_.c:$(OBJDIR)/timeline.h $(OBJDIR)/tkt_.c:$(OBJDIR)/tkt.h $(OBJDIR)/tktsetup_.c:$(OBJDIR)/tktsetup.h $(OBJDIR)/undo_.c:$(OBJDIR)/undo.h $(OBJDIR)/update_.c:$(OBJDIR)/update.h $(OBJDIR)/url_.c:$(OBJDIR)/url.h $(OBJDIR)/user_.c:$(OBJDIR)/user.h $(OBJDIR)/verify_.c:$(OBJDIR)/verify.h $(OBJDIR)/vfile_.c:$(OBJDIR)/vfile.h $(OBJDIR)/wiki_.c:$(OBJDIR)/wiki.h $(OBJDIR)/wikiformat_.c:$(OBJDIR)/wikiformat.h $(OBJDIR)/winhttp_.c:$(OBJDIR)/winhttp.h $(OBJDIR)/wysiwyg_.c:$(OBJDIR)/wysiwyg.h $(OBJDIR)/xfer_.c:$(OBJDIR)/xfer.h $(OBJDIR)/xfersetup_.c:$(OBJDIR)/xfersetup.h $(OBJDIR)/zip_.c:$(OBJDIR)/zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h $(OBJDIR)/VERSION.h |
| 546 | echo Done >$(OBJDIR)/headers |
| 547 | |
| 548 | $(OBJDIR)/headers: Makefile |
| 549 | Makefile: |
| 550 | $(OBJDIR)/add_.c: $(SRCDIR)/add.c $(OBJDIR)/translate |
| @@ -1199,10 +1203,17 @@ | |
| 1203 | |
| 1204 | $(OBJDIR)/winhttp.o: $(OBJDIR)/winhttp_.c $(OBJDIR)/winhttp.h $(SRCDIR)/config.h |
| 1205 | $(XTCC) -o $(OBJDIR)/winhttp.o -c $(OBJDIR)/winhttp_.c |
| 1206 | |
| 1207 | winhttp.h: $(OBJDIR)/headers |
| 1208 | $(OBJDIR)/wysiwyg_.c: $(SRCDIR)/wysiwyg.c $(OBJDIR)/translate |
| 1209 | $(TRANSLATE) $(SRCDIR)/wysiwyg.c >$(OBJDIR)/wysiwyg_.c |
| 1210 | |
| 1211 | $(OBJDIR)/wysiwyg.o: $(OBJDIR)/wysiwyg_.c $(OBJDIR)/wysiwyg.h $(SRCDIR)/config.h |
| 1212 | $(XTCC) -o $(OBJDIR)/wysiwyg.o -c $(OBJDIR)/wysiwyg_.c |
| 1213 | |
| 1214 | wysiwyg.h: $(OBJDIR)/headers |
| 1215 | $(OBJDIR)/xfer_.c: $(SRCDIR)/xfer.c $(OBJDIR)/translate |
| 1216 | $(TRANSLATE) $(SRCDIR)/xfer.c >$(OBJDIR)/xfer_.c |
| 1217 | |
| 1218 | $(OBJDIR)/xfer.o: $(OBJDIR)/xfer_.c $(OBJDIR)/xfer.h $(SRCDIR)/config.h |
| 1219 | $(XTCC) -o $(OBJDIR)/xfer.o -c $(OBJDIR)/xfer_.c |
| 1220 |