Diff
Not logged in

Differences From Artifact [844ec750ff]:

To Artifact [671fcaadbc]:


117
118
119
120
121
122
123

124
125
126
127
128
129
130
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131







+







** All global variables are in this structure.
*/
struct Global {
  int argc; char **argv;  /* Command-line arguments to the program */
  char *nameOfExe;        /* Full path of executable. */
  const char *zErrlog;    /* Log errors to this file, if not NULL */
  int isConst;            /* True if the output is unchanging */
  const char *zVfsName;   /* The VFS to use for database connections */
  sqlite3 *db;            /* The connection to the databases */
  sqlite3 *dbConfig;      /* Separate connection for global_config table */
  int useAttach;          /* True if global_config is attached to repository */
  const char *zConfigDbName;/* Path of the config database. NULL if not open */
  sqlite3_int64 now;      /* Seconds since 1970 */
  int repositoryOpen;     /* True if the main repository database is open */
  char *zRepositoryName;  /* Name of the repository database */
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
548
549
550
551
552
553
554

555
556
557
558
559
560
561







-







#if defined(_WIN32)
int _CRT_glob = 0x0001; /* See MinGW bug #2062 */
#endif
int main(int argc, char **argv)
#endif
{
  const char *zCmdName = "unknown";
  const char *zVfsName;
  int idx;
  int rc;
  sqlite3_config(SQLITE_CONFIG_SINGLETHREAD);
  sqlite3_config(SQLITE_CONFIG_LOG, fossil_sqlite_log, 0);
  memset(&g, 0, sizeof(g));
  g.now = time(0);
  g.httpHeader = empty_blob;
575
576
577
578
579
580
581
582
583
584



585
586
587
588
589



590

591
592


593
594
595
596

597
598
599
600
601
602
603
575
576
577
578
579
580
581



582
583
584

585



586
587
588
589
590


591
592
593
594
595

596
597
598
599
600
601
602
603







-
-
-
+
+
+
-

-
-
-
+
+
+

+
-
-
+
+



-
+







  expand_args_option(argc, argv);
#ifdef FOSSIL_ENABLE_TCL
  memset(&g.tcl, 0, sizeof(TclContext));
  g.tcl.argc = g.argc;
  g.tcl.argv = copy_args(g.argc, g.argv); /* save full arguments */
#endif
  g.mainTimerId = fossil_timer_start();
  zVfsName = find_option("vfs",0,1);
  if( zVfsName==0 ){
    zVfsName = fossil_getenv("FOSSIL_VFS");
  g.zVfsName = find_option("vfs",0,1);
  if( g.zVfsName==0 ){
    g.zVfsName = fossil_getenv("FOSSIL_VFS");
  }
#if defined(_WIN32) || defined(__CYGWIN__)
  if( zVfsName==0 && sqlite3_libversion_number()>=3008001 ){
    zVfsName = "win32-longpath";
  }
    if( g.zVfsName==0 && sqlite3_libversion_number()>=3008001 ){
      g.zVfsName = "win32-longpath";
    }
#endif
  }
  if( zVfsName ){
    sqlite3_vfs *pVfs = sqlite3_vfs_find(zVfsName);
  if( g.zVfsName ){
    sqlite3_vfs *pVfs = sqlite3_vfs_find(g.zVfsName);
    if( pVfs ){
      sqlite3_vfs_register(pVfs, 1);
    }else{
      fossil_fatal("no such VFS: \"%s\"", zVfsName);
      fossil_fatal("no such VFS: \"%s\"", g.zVfsName);
    }
  }
  if( fossil_getenv("GATEWAY_INTERFACE")!=0 && !find_option("nocgi", 0, 0)){
    zCmdName = "cgi";
    g.isHTTP = 1;
  }else if( g.argc<2 ){
    fossil_print(