Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Tcl only uses argv0, so it's enough to transfer this argument only |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | tcl-argv0-only |
Files: | files | file ages | folders |
SHA1: |
b82eacd569c35fbe4a1b908c6827b668 |
User & Date: | jan.nijtmans 2012-08-21 13:29:38.918 |
Context
2012-08-21
| ||
14:25 | Tcl only uses argv0 so it is enough to transfer only that one argument. ... (check-in: 7f96a715 user: drh tags: trunk) | |
13:29 | Tcl only uses argv0, so it's enough to transfer this argument only ... (Closed-Leaf check-in: b82eacd5 user: jan.nijtmans tags: tcl-argv0-only) | |
11:05 | Fix error messages associated with the "scrub" command. ... (check-in: e25f55dd user: drh tags: trunk) | |
Changes
Changes to src/main.c.
︙ | ︙ | |||
84 85 86 87 88 89 90 | #ifdef FOSSIL_ENABLE_TCL /* ** All Tcl related context information is in this structure. This structure ** definition has been copied from and should be kept in sync with the one in ** "th_tcl.c". */ struct TclContext { | < | | 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 | #ifdef FOSSIL_ENABLE_TCL /* ** All Tcl related context information is in this structure. This structure ** definition has been copied from and should be kept in sync with the one in ** "th_tcl.c". */ struct TclContext { char *argv0; Tcl_Interp *interp; }; #endif /* ** All global variables are in this structure. */ |
︙ | ︙ | |||
410 411 412 413 414 415 416 | int main(int argc, char **argv){ const char *zCmdName = "unknown"; int idx; int rc; int i; #ifdef FOSSIL_ENABLE_TCL | < | | 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 | int main(int argc, char **argv){ const char *zCmdName = "unknown"; int idx; int rc; int i; #ifdef FOSSIL_ENABLE_TCL g.tcl.argv0 = argv[0]; g.tcl.interp = 0; #endif sqlite3_config(SQLITE_CONFIG_LOG, fossil_sqlite_log, 0); memset(&g, 0, sizeof(g)); g.now = time(0); g.argc = argc; |
︙ | ︙ |
Changes to src/th_tcl.c.
︙ | ︙ | |||
91 92 93 94 95 96 97 | } /* ** Tcl context information used by TH1. This structure definition has been ** copied from and should be kept in sync with the one in "main.c". */ struct TclContext { | < | | 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 | } /* ** Tcl context information used by TH1. This structure definition has been ** copied from and should be kept in sync with the one in "main.c". */ struct TclContext { char *argv0; Tcl_Interp *interp; }; /* ** Syntax: ** ** tclEval arg ?arg ...? |
︙ | ︙ | |||
339 340 341 342 343 344 345 | return rc; } /* ** Array of Tcl integration commands. Used when adding or removing the Tcl ** integration commands from TH1. */ | | | 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 | return rc; } /* ** Array of Tcl integration commands. Used when adding or removing the Tcl ** integration commands from TH1. */ static const struct _Command { const char *zName; Th_CommandProc xProc; void *pContext; } aCommand[] = { {"tclEval", tclEval_command, 0}, {"tclExpr", tclExpr_command, 0}, {"tclInvoke", tclInvoke_command, 0}, |
︙ | ︙ | |||
387 388 389 390 391 392 393 | Th_ErrorMessage(interp, "Invalid Tcl context", (const char *)"", 0); return TH_ERROR; } if ( tclContext->interp ){ return TH_OK; } | | | | 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 | Th_ErrorMessage(interp, "Invalid Tcl context", (const char *)"", 0); return TH_ERROR; } if ( tclContext->interp ){ return TH_OK; } if ( tclContext->argv0 ){ Tcl_FindExecutable(tclContext->argv0); } tclInterp = tclContext->interp = Tcl_CreateInterp(); if( !tclInterp || Tcl_InterpDeleted(tclInterp) ){ Th_ErrorMessage(interp, "Could not create Tcl interpreter", (const char *)"", 0); return TH_ERROR; } |
︙ | ︙ |