Fossil

Changes On Branch tcl-argv0-only
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Changes In Branch tcl-argv0-only Excluding Merge-Ins

This is equivalent to a diff from e25f55dd4d to b82eacd569

2012-08-21
14:25
Tcl only uses argv0 so it is enough to transfer only that one argument. check-in: 7f96a71599 user: drh tags: trunk
14:15
Merge the mingw-w64 compiler warning fixes into trunk. check-in: d89b99e383 user: drh tags: trunk
13:29
Tcl only uses argv0, so it's enough to transfer this argument only Closed-Leaf check-in: b82eacd569 user: jan.nijtmans tags: tcl-argv0-only
13:26
Those two files tell eclipse that it can be checked out as a project, and that the LF eol-convention should be used. check-in: 6c945311bc user: jan.nijtmans tags: eclipse-project
11:05
Fix error messages associated with the "scrub" command. check-in: e25f55dd4d user: drh tags: trunk
2012-08-20
19:01
Expand the "diffFlags" variable to 64-bits in order to accommodate new options to the various "diff" commands. check-in: 2b1767500e user: drh tags: trunk

Changes to src/main.c.

84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#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 {
  int argc;
  char **argv;
  Tcl_Interp *interp;
};
#endif

/*
** All global variables are in this structure.
*/







<
|







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
417
418
419
420
421
422
423
424
425
int main(int argc, char **argv){
  const char *zCmdName = "unknown";
  int idx;
  int rc;
  int i;

#ifdef FOSSIL_ENABLE_TCL
  g.tcl.argc = argc;
  g.tcl.argv = argv;
  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;







<
|







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
98
99
100
101
102
103
104
105
106
}

/*
** 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 {
  int argc;
  char **argv;
  Tcl_Interp *interp;
};

/*
** Syntax:
**
**   tclEval arg ?arg ...?







<
|







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
346
347
348
349
350
351
352
353
  return rc;
}

/*
** Array of Tcl integration commands.  Used when adding or removing the Tcl
** integration commands from TH1.
*/
static struct _Command {
  const char *zName;
  Th_CommandProc xProc;
  void *pContext;
} aCommand[] = {
  {"tclEval",   tclEval_command,   0},
  {"tclExpr",   tclExpr_command,   0},
  {"tclInvoke", tclInvoke_command, 0},







|







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
394
395
396
397
398
399
400
401
402
    Th_ErrorMessage(interp,
        "Invalid Tcl context", (const char *)"", 0);
    return TH_ERROR;
  }
  if ( tclContext->interp ){
    return TH_OK;
  }
  if ( tclContext->argc>0 && tclContext->argv ) {
    Tcl_FindExecutable(tclContext->argv[0]);
  }
  tclInterp = tclContext->interp = Tcl_CreateInterp();
  if( !tclInterp || Tcl_InterpDeleted(tclInterp) ){
    Th_ErrorMessage(interp,
        "Could not create Tcl interpreter", (const char *)"", 0);
    return TH_ERROR;
  }







|
|







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;
  }