Index: BUILD.txt
==================================================================
--- BUILD.txt
+++ BUILD.txt
@@ -5,11 +5,18 @@
    make
 
 On a windows box, use one of the Makefiles in the win/ subdirectory,
 according to your compiler and environment.  For example:
 
-   make -f win/Makefile.w32
+   make -f win/Makefile.mingw
+
+Note:
+Some of the Makefiles require that you build in the src directory,
+rather than the toplevel directory. These include: Makefile.msc,
+Makefile.dmc and Makefile.PellesCGMake.
+
+Fossil requires the zlib library as its only external dependency.
 
 If you have trouble, or you want to do something fancy, just look at
 top level makefile. There are 6 configuration options that are all well
 commented. Instead of editing the Makefile, consider copying the Makefile
 to an alternative name such as "GNUMakefile", "BSDMakefile", or "makefile"
@@ -26,11 +33,11 @@
 
     SRCDIR=../src
 
   3. type: "make"
 
-This will now keep all generates files seperate from the maintained
+This will now keep all generates files separate from the maintained
 source code.
 
 --------------------------------------------------------------------------
 
 Here are some notes on what is happening behind the scenes:
@@ -41,15 +48,15 @@
   Do not edit src/main.mk directly.  Update src/makemake.tcl and
   then rerun it.
 
 * The *.h header files are automatically generated using a program
   called "makeheaders".  Source code to the makeheaders program is
-  found in src/makeheaders.c.  Documentation is found in 
+  found in src/makeheaders.c.  Documentation is found in
   src/makeheaders.html.
 
 * Most *.c source files are preprocessed using a program called
   "translate".  The sources to translate are found in src/translate.c.
   A header comment in src/translate.c explains in detail what it does.
 
 * The src/mkindex.c program generates some C code that implements
   static lookup tables.  See the header comment in the source code
   for details on what it does.

Index: src/allrepo.c
==================================================================
--- src/allrepo.c
+++ src/allrepo.c
@@ -54,10 +54,13 @@
 ** Usage: %fossil all (list|ls|pull|push|rebuild|sync)
 **
 ** The ~/.fossil file records the location of all repositories for a
 ** user.  This command performs certain operations on all repositories
 ** that can be useful before or after a period of disconnected operation.
+**
+** The rebuild subcommand is especially useful if the repositories were built
+** with an older version of fossil.
 **
 ** On Win32 systems, the file is named "_fossil" and is located in
 ** %LOCALAPPDATA%, %APPDATA% or %HOMEPATH%.
 **
 ** Available operations are:
@@ -77,10 +80,15 @@
 **
 ** Respositories are automatically added to the set of known repositories
 ** when one of the following commands against the repository: clone, info,
 ** pull, push, or sync.  Even previously ignored repositories are added back
 ** to the list of repositories by these commands.
+**
+**
+** SUMMARY:     fossil all subcommand|subcommand repository1 ?repository2 ...?
+** Subcommands: list, ls, pull push, rebuild or sync
+** Or:          ignore repository1 ...
 */
 void all_cmd(void){
   int n;
   Stmt q;
   const char *zCmd;
@@ -88,11 +96,11 @@
   char *zFossil;
   char *zQFilename;
   int nMissing;
   int stopOnError = find_option("dontstop",0,0)==0;
   int rc;
-  
+
   if( g.argc<3 ){
     usage("list|ls|pull|push|rebuild|sync");
   }
   n = strlen(g.argv[2]);
   db_open_config(1);
@@ -150,11 +158,11 @@
     if( stopOnError && rc ){
       nMissing = 0;
       break;
     }
   }
-  
+
   /* If any repositories whose names appear in the ~/.fossil file could not
   ** be found, remove those names from the ~/.fossil file.
   */
   if( nMissing ){
     db_begin_transaction();

Index: src/bisect.c
==================================================================
--- src/bisect.c
+++ src/bisect.c
@@ -91,11 +91,13 @@
 /*
 ** COMMAND: bisect
 **
 ** Usage: %fossil bisect SUBCOMMAND ...
 **
-** Run various subcommands useful for searching for bugs.
+** Run various subcommands useful for searching for bugs. It does so
+** by marking versions as "good" and "bad" and allowing you to "interpolate"
+** as it were between these two versions.
 **
 **   fossil bisect bad ?VERSION?
 **
 **     Identify version VERSION as non-working.  If VERSION is omitted,
 **     the current checkout is marked as non-working.
@@ -121,10 +123,15 @@
 **     and allows a bisect session to start over from the beginning.
 **
 **   fossil bisect vlist
 **
 **     List the versions in between "bad" and "good".
+**
+** SUMMARY:     fossil bisect subcommand ...
+** Subcommands: bad, good ?VERSION?
+** Or:          next, reset, vlist
+** Or:          options ?NAME? ?VALUE?
 */
 void bisect_cmd(void){
   int n;
   const char *zCmd;
   db_must_be_within_tree();

Index: src/branch.c
==================================================================
--- src/branch.c
+++ src/branch.c
@@ -40,23 +40,23 @@
   Manifest *pParent;     /* Parsed parent manifest */
   Blob mcksum;           /* Self-checksum on the manifest */
   const char *zDateOvrd; /* Override date string */
   const char *zUserOvrd; /* Override user name */
   int isPrivate = 0;     /* True if the branch should be private */
- 
+
   noSign = find_option("nosign","",0)!=0;
   zColor = find_option("bgcolor","c",1);
   isPrivate = find_option("private",0,0)!=0;
   zDateOvrd = find_option("date-override",0,1);
   zUserOvrd = find_option("user-override",0,1);
   verify_all_options();
   if( g.argc<5 ){
     usage("new BRANCH-NAME CHECK-IN ?-bgcolor COLOR?");
   }
-  db_find_and_open_repository(0, 0);  
+  db_find_and_open_repository(0, 0);
   noSign = db_get_int("omitsign", 0)|noSign;
-  
+
   /* fossil branch new name */
   zBranch = g.argv[3];
   if( zBranch==0 || zBranch[0]==0 ){
     fossil_panic("branch name cannot be empty");
   }
@@ -132,11 +132,11 @@
   while( db_step(&q)==SQLITE_ROW ){
     const char *zTag = db_column_text(&q, 0);
     blob_appendf(&branch, "T -%F *\n", zTag);
   }
   db_finalize(&q);
-  
+
   blob_appendf(&branch, "U %F\n", zUserOvrd ? zUserOvrd : g.zLogin);
   md5sum_blob(&branch, &mcksum);
   blob_appendf(&branch, "Z %b\n", &mcksum);
   if( !noSign && clearsign(&branch, &branch) ){
     Blob ans;
@@ -172,11 +172,11 @@
   }
 
 
   /* Commit */
   db_end_transaction(0);
-  
+
   /* Do an autosync push, if requested */
   autosync(AUTOSYNC_PUSH);
 }
 
 /*
@@ -196,10 +196,15 @@
 **    %fossil branch list
 **    %fossil branch ls
 **
 **        List all branches
 **
+**
+** SUMMARY:     fossil branch subcommand ...
+** Subcommands: new branchname basis ?-R|-repository file? ?--bgcolor color?
+**                  ?--private?
+** Or:          list, ls
 */
 void branch_cmd(void){
   int n;
   const char *zCmd = "list";
   db_find_and_open_repository(0, 0);
@@ -336,11 +341,11 @@
 ** to the end of the line.
 */
 static void brtimeline_extra(int rid){
   Stmt q;
   if( !g.okHistory ) return;
-  db_prepare(&q, 
+  db_prepare(&q,
     "SELECT substr(tagname,5) FROM tagxref, tag"
     " WHERE tagxref.rid=%d"
     "   AND tagxref.tagid=tag.tagid"
     "   AND tagxref.tagtype>0"
     "   AND tag.tagname GLOB 'sym-*'",

Index: src/checkin.c
==================================================================
--- src/checkin.c
+++ src/checkin.c
@@ -37,11 +37,11 @@
   int missingIsFatal     /* MISSING and NOT_A_FILE are fatal errors */
 ){
   Stmt q;
   int nPrefix = strlen(zPrefix);
   int nErr = 0;
-  db_prepare(&q, 
+  db_prepare(&q,
     "SELECT pathname, deleted, chnged, rid, coalesce(origname!=pathname,0)"
     "  FROM vfile "
     " WHERE file_is_selected(id)"
     "   AND (chnged OR deleted OR rid=0 OR pathname!=origname) ORDER BY 1"
   );
@@ -107,10 +107,13 @@
 **
 ** Options:
 **
 **    --sha1sum         Verify file status using SHA1 hashing rather
 **                      than relying on file mtimes.
+**
+**
+** SUMMARY: fossil changes ?--sha1sum?
 */
 void changes_cmd(void){
   Blob report;
   int vid;
   int useSha1sum = find_option("sha1sum", 0, 0)!=0;
@@ -131,10 +134,13 @@
 **
 ** Options:
 **
 **    --sha1sum         Verify file status using SHA1 hashing rather
 **                      than relying on file mtimes.
+**
+**
+** SUMMARY: fossil status ?--sha1sum?
 */
 void status_cmd(void){
   int vid;
   db_must_be_within_tree();
        /* 012345678901234 */
@@ -153,10 +159,13 @@
 **
 ** Usage: %fossil ls [-l]
 **
 ** Show the names of all files in the current checkout.  The -l provides
 ** extra information about each file.
+**
+**
+** SUMMARY: fossil ls ?-l?
 */
 void ls_cmd(void){
   int vid;
   Stmt q;
   int isBrief;
@@ -203,19 +212,23 @@
 
 /*
 ** COMMAND: extras
 ** Usage: %fossil extras ?--dotfiles? ?--ignore GLOBPATTERN?
 **
-** Print a list of all files in the source tree that are not part of
+** Print a list of all files in the source tree that are NOT part of
 ** the current checkout.  See also the "clean" command.
 **
 ** Files and subdirectories whose names begin with "." are normally
 ** ignored but can be included by adding the --dotfiles option.
 **
 ** The GLOBPATTERN is a comma-separated list of GLOB expressions for
 ** files that are ignored.  The GLOBPATTERN specified by the "ignore-glob"
-** is used if the --ignore option is omitted.
+** setting is used if the --ignore option is omitted. (See the settings
+** command for more information.)
+**
+**
+** SUMMARY: fossil extras ?-dotfiles? ?--ignore globpattern?
 */
 void extra_cmd(void){
   Blob path;
   Blob repo;
   Stmt q;
@@ -234,11 +247,11 @@
     zIgnoreFlag = db_get("ignore-glob", 0);
   }
   pIgnore = glob_create(zIgnoreFlag);
   vfile_scan(&path, blob_size(&path), allFlag, pIgnore);
   glob_free(pIgnore);
-  db_prepare(&q, 
+  db_prepare(&q,
       "SELECT x FROM sfile"
       " WHERE x NOT IN (%s)"
       " ORDER BY 1",
       fossil_all_reserved_names()
   );
@@ -255,23 +268,29 @@
 ** COMMAND: clean
 ** Usage: %fossil clean ?--force? ?--dotfiles? ?--ignore GLOBPATTERN?
 **
 ** Delete all "extra" files in the source tree.  "Extra" files are
 ** files that are not officially part of the checkout.  See also
-** the "extra" command. This operation cannot be undone. 
+** the "extras" command.
+**
+** TAKE CARE: This operation cannot be undone!
 **
 ** You will be prompted before removing each file. If you are
 ** sure you wish to remove all "extra" files you can specify the
-** optional --force flag and no prompts will be issued.
+** --force flag and no prompts will be issued.
 **
 ** Files and subdirectories whose names begin with "." are
 ** normally ignored.  They are included if the "--dotfiles" option
 ** is used.
 **
 ** The GLOBPATTERN is a comma-separated list of GLOB expressions for
 ** files that are ignored.  The GLOBPATTERN specified by the "ignore-glob"
-** is used if the --ignore option is omitted.
+** setting is used if the --ignore option is omitted. (See the settings
+** command for more information.)
+**
+**
+** SUMMARY: fossil clean ?--force? ?--dotfiles? ?--ignore globpattern?
 */
 void clean_cmd(void){
   int allFlag;
   int dotfilesFlag;
   const char *zIgnoreFlag;
@@ -291,11 +310,11 @@
   n = strlen(g.zLocalRoot);
   blob_init(&path, g.zLocalRoot, n-1);
   pIgnore = glob_create(zIgnoreFlag);
   vfile_scan(&path, blob_size(&path), dotfilesFlag, pIgnore);
   glob_free(pIgnore);
-  db_prepare(&q, 
+  db_prepare(&q,
       "SELECT %Q || x FROM sfile"
       " WHERE x NOT IN (%s)"
       " ORDER BY 1",
       g.zLocalRoot, fossil_all_reserved_names()
   );
@@ -497,11 +516,11 @@
 #endif
 }
 
 /*
 ** zDate should be a valid date string.  Convert this string into the
-** format YYYY-MM-DDTHH:MM:SS.  If the string is not a valid date, 
+** format YYYY-MM-DDTHH:MM:SS.  If the string is not a valid date,
 ** print a fatal error and quit.
 */
 char *date_in_standard_format(const char *zInputDate){
   char *zDate;
   zDate = db_text(0, "SELECT strftime('%%Y-%%m-%%dT%%H:%%M:%%f',%Q)",
@@ -579,11 +598,11 @@
     const char *zPerm;
     int cmp;
 #if !defined(_WIN32)
     /* For unix, extract the "executable" permission bit directly from
     ** the filesystem.  On windows, the "executable" bit is retained
-    ** unchanged from the original. 
+    ** unchanged from the original.
     */
     blob_resize(&filename, nBasename);
     blob_append(&filename, zName, -1);
     isexe = file_isexe(blob_str(&filename));
 #endif
@@ -671,11 +690,11 @@
     while( db_step(&q)==SQLITE_ROW ){
       const char *zTag = db_column_text(&q, 0);
       blob_appendf(pOut, "T -%F *\n", zTag);
     }
     db_finalize(&q);
-  }  
+  }
   blob_appendf(pOut, "U %F\n", zUserOvrd ? zUserOvrd : g.zLogin);
   md5sum_blob(pOut, &mcksum);
   blob_appendf(pOut, "Z %b\n", &mcksum);
   if( pnFBcard ) *pnFBcard = nFBcard;
 }
@@ -739,11 +758,11 @@
 **
 ** Usage: %fossil commit ?OPTIONS? ?FILE...?
 **
 ** Create a new version containing all of the changes in the current
 ** checkout.  You will be prompted to enter a check-in comment unless
-** the comment has been specified on the command-line using "-m" or a 
+** the comment has been specified on the command-line using "-m" or a
 ** file containing the comment using -M.  The editor defined in the
 ** "editor" fossil option (see %fossil help set) will be used, or from
 ** the "VISUAL" or "EDITOR" environment variables (in that order) if
 ** no editor is set.
 **
@@ -761,12 +780,22 @@
 ** The --private option creates a private check-in that is never synced.
 ** Children of private check-ins are automatically private.
 **
 ** the --tag option applies the symbolic tag name to the check-in.
 **
-** Options:
+** Notes:
+** - If you commit without the --branch option, the last branch (or the
+**   trunk) will be used.
+** - If you do not specify a commit message or an empty message, the commit
+**   will be aborted.
+** - fossil prefers text files in the UNIX format (line-endings only "LF").
+**   If it encounters text files in the Windows format (CRLF), it will
+**   warn about that.
+**   (File that are considered binary are stored as-is)
 **
+** SUMMARY: fossil commit ?OPTIONS? ?FILE...?
+** Options:
 **    --comment|-m COMMENT-TEXT
 **    --message-file|-M COMMENT-FILE
 **    --branch NEW-BRANCH-NAME
 **    --bgcolor COLOR
 **    --nosign
@@ -773,11 +802,11 @@
 **    --force|-f
 **    --private
 **    --baseline
 **    --delta
 **    --tag TAG-NAME
-**    
+**
 */
 void commit_cmd(void){
   int hasChanges;        /* True if unsaved changes exist */
   int vid;               /* blob-id of parent version */
   int nrid;              /* blob-id of a modified file */
@@ -805,11 +834,11 @@
   Blob muuid;            /* Manifest uuid */
   Blob cksum1, cksum2;   /* Before and after commit checksums */
   Blob cksum1b;          /* Checksum recorded in the manifest */
   int szD;               /* Size of the delta manifest */
   int szB;               /* Size of the baseline manifest */
- 
+
   url_proxy_options();
   noSign = find_option("nosign",0,0)!=0;
   forceDelta = find_option("delta",0,0)!=0;
   forceBaseline = find_option("baseline",0,0)!=0;
   if( forceDelta && forceBaseline ){
@@ -899,11 +928,11 @@
   ** Check that the user exists.
   */
   if( !db_exists("SELECT 1 FROM user WHERE login=%Q", g.zLogin) ){
     fossil_fatal("no such user: %s", g.zLogin);
   }
-  
+
   hasChanges = unsaved_changes();
   db_begin_transaction();
   db_record_repository_filename(0);
   if( hasChanges==0 && !isAMerge && !forceFlag ){
     fossil_fatal("nothing has changed");
@@ -914,11 +943,11 @@
   */
   if( g.aCommitFile ){
     Blob unmodified;
     memset(&unmodified, 0, sizeof(Blob));
     blob_init(&unmodified, 0, 0);
-    db_blob(&unmodified, 
+    db_blob(&unmodified,
       "SELECT pathname FROM vfile"
       " WHERE chnged = 0 AND origname IS NULL AND file_is_selected(id)"
     );
     if( strlen(blob_str(&unmodified)) ){
       fossil_fatal("file %s has not changed", blob_str(&unmodified));
@@ -932,11 +961,11 @@
   if( zBranch==0 && forceFlag==0 && g.markPrivate==0 && !is_a_leaf(vid) ){
     fossil_fatal("would fork.  \"update\" first or use -f or --force.");
   }
 
   /*
-  ** Do not allow a commit against a closed leaf 
+  ** Do not allow a commit against a closed leaf
   */
   if( db_exists("SELECT 1 FROM tagxref"
                 " WHERE tagid=%d AND rid=%d AND tagtype>0",
                 TAG_CLOSED, vid) ){
     fossil_fatal("cannot commit against a closed leaf");
@@ -965,11 +994,11 @@
     db_multi_exec("REPLACE INTO vvar VALUES('ci-comment',%B)", &comment);
     db_end_transaction(0);
     db_begin_transaction();
   }
 
-  /* Step 1: Insert records for all modified files into the blob 
+  /* Step 1: Insert records for all modified files into the blob
   ** table. If there were arguments passed to this command, only
   ** the identified fils are inserted (if they have been modified).
   */
   db_prepare(&q,
     "SELECT id, %Q || pathname, mrid, %s FROM vfile "
@@ -1067,11 +1096,11 @@
       fossil_exit(1);
     }
   }
 
   /* If the --test option is specified, output the manifest file
-  ** and rollback the transaction.  
+  ** and rollback the transaction.
   */
   if( testRun ){
     blob_write_to_file(&manifest, "");
   }
 
@@ -1099,11 +1128,11 @@
     blob_write_to_file(&muuid, zManifestFile);
     free(zManifestFile);
     blob_reset(&muuid);
   }
 
-  
+
   /* Update the vfile and vmerge tables */
   db_multi_exec(
     "DELETE FROM vfile WHERE (vid!=%d OR deleted) AND file_is_selected(id);"
     "DELETE FROM vmerge WHERE file_is_selected(id) OR id=0;"
     "UPDATE vfile SET vid=%d;"
@@ -1123,11 +1152,11 @@
       vfile_compare_repository_to_disk(nvid);
       fossil_fatal("working checkout does not match what would have ended "
                    "up in the repository:  %b versus %b",
                    &cksum1, &cksum2);
     }
-  
+
     /* Verify that the manifest checksum matches the expected checksum */
     vfile_aggregate_checksum_manifest(nvid, &cksum2, &cksum1b);
     if( blob_compare(&cksum1, &cksum1b) ){
       fossil_fatal("manifest checksum self-test failed: "
                    "%b versus %b", &cksum1, &cksum1b);
@@ -1135,11 +1164,11 @@
     if( blob_compare(&cksum1, &cksum2) ){
       fossil_fatal(
          "working checkout does not match manifest after commit: "
          "%b versus %b", &cksum1, &cksum2);
     }
-  
+
     /* Verify that the commit did not modify any disk images. */
     vfile_aggregate_checksum_disk(nvid, &cksum2);
     if( blob_compare(&cksum1, &cksum2) ){
       fossil_fatal("working checkout before and after commit does not match");
     }
@@ -1155,11 +1184,11 @@
     exit(1);
   }
   db_end_transaction(0);
 
   if( !g.markPrivate ){
-    autosync(AUTOSYNC_PUSH);  
+    autosync(AUTOSYNC_PUSH);
   }
   if( count_nonbranch_children(vid)>1 ){
     fossil_print("**** warning: a fork has occurred *****\n");
   }
 }

Index: src/checkout.c
==================================================================
--- src/checkout.c
+++ src/checkout.c
@@ -166,11 +166,11 @@
       zManFile = mprintf("%smanifest.uuid", g.zLocalRoot);
       file_delete(zManFile);
       free(zManFile);
     }
   }
-    
+
 }
 
 /*
 ** COMMAND: checkout
 ** COMMAND: co
@@ -185,20 +185,23 @@
 **
 ** The --latest flag can be used in place of VERSION to checkout the
 ** latest version in the repository.
 **
 ** See also the "update" command.
+**
+** SUMMARY: fossil checkout VERSION ?-f|--force? ?--keep?
+** Note: VERSION can also be --latest
 */
 void checkout_cmd(void){
   int forceFlag;                 /* Force checkout even if edits exist */
   int keepFlag;                  /* Do not change any files on disk */
   int latestFlag;                /* Checkout the latest version */
   char *zVers;                   /* Version to checkout */
   int promptFlag;                /* True to prompt before overwriting */
   int vid, prior;
   Blob cksum1, cksum1b, cksum2;
-  
+
   db_must_be_within_tree();
   db_begin_transaction();
   forceFlag = find_option("force","f",0)!=0;
   keepFlag = find_option("keep",0,0)!=0;
   latestFlag = find_option("latest",0,0)!=0;
@@ -280,12 +283,14 @@
 ** COMMAND: close
 **
 ** Usage: %fossil close ?-f|--force?
 **
 ** The opposite of "open".  Close the current database connection.
-** Require a -f or --force flag if there are unsaved changed in the
+** Require a -f or --force flag if there are unsaved changes in the
 ** current check-out.
+**
+** SUMMARY: fossil close ?-f|--force?
 */
 void close_cmd(void){
   int forceFlag = find_option("force","f",0)!=0;
   db_must_be_within_tree();
   if( !forceFlag && unsaved_changes()==1 ){

Index: src/clone.c
==================================================================
--- src/clone.c
+++ src/clone.c
@@ -27,20 +27,20 @@
 ** COMMAND: clone
 **
 ** Usage: %fossil clone ?OPTIONS? URL FILENAME
 **
 ** Make a clone of a repository specified by URL in the local
-** file named FILENAME.  
+** file named FILENAME.
 **
 ** By default, your current login name is used to create the default
 ** admin user. This can be overridden using the -A|--admin-user
 ** parameter.
 **
+** SUMMARY: fossil clone ?OPTIONS? URL FILENAME
 ** Options:
-**
 **    --admin-user|-A USERNAME    Make USERNAME the administrator
-**    --private                   Also clone private branches 
+**    --private                   Also clone private branches
 **
 */
 void clone_cmd(void){
   char *zPassword;
   const char *zDefaultUser;   /* Optional name of the default user */

Index: src/configure.c
==================================================================
--- src/configure.c
+++ src/configure.c
@@ -61,11 +61,11 @@
 };
 
 
 /*
 ** The following is a list of settings that we are willing to
-** transfer.  
+** transfer.
 **
 ** Setting names that begin with an alphabetic characters refer to
 ** single entries in the CONFIG table.  Setting names that begin with
 ** "@" are for special processing.
 */
@@ -175,28 +175,28 @@
 void configure_render_special_name(const char *zName, Blob *pOut){
   Stmt q;
   if( fossil_strcmp(zName, "@shun")==0 ){
     db_prepare(&q, "SELECT uuid FROM shun");
     while( db_step(&q)==SQLITE_ROW ){
-      blob_appendf(pOut, "INSERT OR IGNORE INTO shun VALUES('%s');\n", 
+      blob_appendf(pOut, "INSERT OR IGNORE INTO shun VALUES('%s');\n",
         db_column_text(&q, 0)
       );
     }
     db_finalize(&q);
   }else if( fossil_strcmp(zName, "@reportfmt")==0 ){
     db_prepare(&q, "SELECT title, cols, sqlcode FROM reportfmt");
     while( db_step(&q)==SQLITE_ROW ){
       blob_appendf(pOut, "INSERT INTO _xfer_reportfmt(title,cols,sqlcode)"
-                         " VALUES(%Q,%Q,%Q);\n", 
+                         " VALUES(%Q,%Q,%Q);\n",
         db_column_text(&q, 0),
         db_column_text(&q, 1),
         db_column_text(&q, 2)
       );
     }
     db_finalize(&q);
   }else if( fossil_strcmp(zName, "@user")==0 ){
-    db_prepare(&q, 
+    db_prepare(&q,
         "SELECT login, CASE WHEN length(pw)==40 THEN pw END,"
         "       cap, info, quote(photo) FROM user");
     while( db_step(&q)==SQLITE_ROW ){
       blob_appendf(pOut, "INSERT INTO _xfer_user(login,pw,cap,info,photo)"
                          " VALUES(%Q,%Q,%Q,%Q,%s);\n",
@@ -290,11 +290,11 @@
     @    SELECT rn,owner,title,cols,sqlcode FROM reportfmt;
     @ INSERT INTO _xfer_user
     @    SELECT uid,login,pw,cap,cookie,ipaddr,cexpire,info,photo FROM user;
   ;
   db_multi_exec(zSQL1);
-  
+
   /* When the replace flag is set, add triggers that run the first time
   ** that new data is seen.  The triggers run only once and delete all the
   ** existing data.
   */
   if( replaceFlag ){
@@ -771,10 +771,26 @@
 **
 **    %fossil configuration sync AREA ?URL?
 **
 **         Synchronize configuration changes in the local repository with
 **         the remote repository at URL.  
+**
+**
+** SUMMARY: fossil configure METHOD ... ?-R|--repository REPOSITORY?
+** Where:   METHOD = export, import, merge, pull, push or reset
+**
+**          For methods export, pull, push and reset:
+**
+**              fossil configure METHOD AREA ?FILENAME|URL? ?-R|--repository REPOSITORY?
+**
+**          AREA = all email project shun skin ticket user
+**
+**          FILENAME used with methods export, URL used with the others
+**
+**          For methods import and merge
+**
+**              fossil configure METHOD FILENAME -R|--repository REPOSITORY?
 */
 void configuration_cmd(void){
   int n;
   const char *zMethod;
   if( g.argc<3 ){
@@ -799,11 +815,11 @@
     }else{
       iStart = 0;
     }
     export_config(mask, g.argv[3], iStart, g.argv[4]);
   }else
-  if( strncmp(zMethod, "import", n)==0 
+  if( strncmp(zMethod, "import", n)==0
        || strncmp(zMethod, "merge", n)==0 ){
     Blob in;
     int groupMask;
     if( g.argc!=4 ) usage(mprintf("%s FILENAME",zMethod));
     blob_read_from_file(&in, g.argv[3]);
@@ -862,11 +878,11 @@
   if( strncmp(zMethod, "reset", n)==0 ){
     int mask, i;
     char *zBackup;
     if( g.argc!=4 ) usage("reset AREA");
     mask = configure_name_to_mask(g.argv[3], 1);
-    zBackup = db_text(0, 
+    zBackup = db_text(0,
        "SELECT strftime('config-backup-%%Y%%m%%d%%H%%M%%f','now')");
     db_begin_transaction();
     export_config(mask, g.argv[3], 0, zBackup);
     for(i=0; i<count(aConfig); i++){
       const char *zName = aConfig[i].zName;

Index: src/content.c
==================================================================
--- src/content.c
+++ src/content.c
@@ -115,11 +115,11 @@
   contentCache.n = 0;
   contentCache.szTotal = 0;
 }
 
 /*
-** Return the srcid associated with rid.  Or return 0 if rid is 
+** Return the srcid associated with rid.  Or return 0 if rid is
 ** original content and not a delta.
 */
 static int findSrcid(int rid){
   static Stmt q;
   int srcid;
@@ -155,11 +155,11 @@
 ** a phantom.
 */
 int content_is_available(int rid){
   int srcid;
   int depth = 0;  /* Limit to recursion depth */
-  while( depth++ < 10000000 ){  
+  while( depth++ < 10000000 ){
     if( bag_find(&contentCache.missing, rid) ){
       return 0;
     }
     if( bag_find(&contentCache.available, rid) ){
       return 1;
@@ -307,17 +307,24 @@
 /*
 ** COMMAND: artifact
 **
 ** Usage: %fossil artifact ARTIFACT-ID ?OUTPUT-FILENAME? ?OPTIONS?
 **
-** Extract an artifact by its SHA1 hash and write the results on
-** standard output, or if the optional 4th argument is given, in
-** the named output file.
+** Extract an artifact (file) by its artifact ID (the SHA1 hash) and write
+** the results on standard output, or if the optional 4th argument
+** is given, in the named output file.
+**
+** You can find the artifact ID in the Files section of the repository's
+** web interface (see the server/ui commands).
 **
 ** Options:
 **
 **    -R|--repository FILE       Extract artifacts from repository FILE
+**
+**
+** SUMMARY: fossil artifact ARTIFACT-ID ?OUTPUT-FILENAME? ?OPTIONS?
+** Options: -R|--repository
 */
 void artifact_cmd(void){
   int rid;
   Blob content;
   const char *zFile;
@@ -410,11 +417,11 @@
 
     /* Recursively dephantomize all artifacts that are derived by
     ** delta from artifact rid and which have not already been
     ** cross-linked.  */
     nChildUsed = 0;
-    db_prepare(&q, 
+    db_prepare(&q,
        "SELECT rid FROM delta"
        " WHERE srcid=%d"
        "   AND NOT EXISTS(SELECT 1 FROM mlink WHERE mid=delta.rid)",
        rid
     );
@@ -449,11 +456,11 @@
 /*
 ** Write content into the database.  Return the record ID.  If the
 ** content is already in the database, just return the record ID.
 **
 ** If srcId is specified, then pBlob is delta content from
-** the srcId record.  srcId might be a phantom.  
+** the srcId record.  srcId might be a phantom.
 **
 ** pBlob is normally uncompressed text.  But if nBlob>0 then the
 ** pBlob value has already been compressed and nBlob is its uncompressed
 ** size.  If nBlob>0 then zUuid must be valid.
 **
@@ -480,11 +487,11 @@
   Stmt s1;
   Blob cmpr;
   Blob hash;
   int markAsUnclustered = 0;
   int isDephantomize = 0;
-  
+
   assert( g.repositoryOpen );
   assert( pBlob!=0 );
   assert( srcId==0 || zUuid!=0 );
   if( zUuid==0 ){
     assert( pBlob!=0 );
@@ -575,18 +582,18 @@
   ** really a delta.  Record this fact in the delta table.
   */
   if( srcId ){
     db_multi_exec("REPLACE INTO delta(rid,srcid) VALUES(%d,%d)", rid, srcId);
   }
-  if( !isDephantomize && bag_find(&contentCache.missing, rid) && 
+  if( !isDephantomize && bag_find(&contentCache.missing, rid) &&
       (srcId==0 || content_is_available(srcId)) ){
     content_mark_available(rid);
   }
   if( isDephantomize ){
     after_dephantomize(rid, 0);
   }
-  
+
   /* Add the element to the unclustered table if has never been
   ** previously seen.
   */
   if( markAsUnclustered ){
     db_multi_exec("INSERT OR IGNORE INTO unclustered VALUES(%d)", rid);
@@ -623,11 +630,11 @@
 ** Create a new phantom with the given UUID and return its artifact ID.
 */
 int content_new(const char *zUuid, int isPrivate){
   int rid;
   static Stmt s1, s2, s3;
-  
+
   assert( g.repositoryOpen );
   db_begin_transaction();
   if( uuid_is_shunned(zUuid) ){
     db_end_transaction(0);
     return 0;
@@ -719,15 +726,15 @@
     "SELECT 1 FROM private WHERE rid=:rid"
   );
   db_bind_int(&s1, ":rid", rid);
   rc = db_step(&s1);
   db_reset(&s1);
-  return rc==SQLITE_ROW;  
+  return rc==SQLITE_ROW;
 }
 
 /*
-** Make sure an artifact is public.  
+** Make sure an artifact is public.
 */
 void content_make_public(int rid){
   static Stmt s1;
   db_static_prepare(&s1,
     "DELETE FROM private WHERE rid=:rid"
@@ -750,11 +757,11 @@
 **
 ** If srcid is a delta that depends on rid, then srcid is
 ** converted to undeltaed text.
 **
 ** If either rid or srcid contain less than 50 bytes, or if the
-** resulting delta does not achieve a compression of at least 25% 
+** resulting delta does not achieve a compression of at least 25%
 ** the rid is left untouched.
 **
 ** Return 1 if a delta is made and 0 if no delta occurs.
 */
 int content_deltify(int rid, int srcid, int force){

Index: src/db.c
==================================================================
--- src/db.c
+++ src/db.c
@@ -36,10 +36,15 @@
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <unistd.h>
 #include <time.h>
 #include "db.h"
+
+#if defined(_WIN32) || defined(WIN32)
+# include <io.h>
+#define access(f,m) _access((f),(m))
+#endif
 
 #if INTERFACE
 /*
 ** An single SQL statement is represented as an instance of the following
 ** structure.
@@ -56,11 +61,11 @@
 ** Call this routine when a database error occurs.
 */
 static void db_err(const char *zFormat, ...){
   va_list ap;
   char *z;
-  static const char zRebuildMsg[] = 
+  static const char zRebuildMsg[] =
       "If you have recently updated your fossil executable, you might\n"
       "need to run \"fossil all rebuild\" to bring the repository\n"
       "schemas up to date.\n";
   va_start(ap, zFormat);
   z = vmprintf(zFormat, ap);
@@ -642,11 +647,11 @@
        zVfs
   );
   if( rc!=SQLITE_OK ){
     db_err(sqlite3_errmsg(db));
   }
-  sqlite3_busy_timeout(db, 5000); 
+  sqlite3_busy_timeout(db, 5000);
   sqlite3_wal_autocheckpoint(db, 1);  /* Set to checkpoint frequently */
   sqlite3_create_function(db, "now", 0, SQLITE_ANY, 0, db_now_function, 0, 0);
   return db;
 }
 
@@ -751,11 +756,11 @@
   db_open_config(0);
   db_open_repository(0);
 
   /* If the "isexe" column is missing from the vfile table, then
   ** add it now.   This code added on 2010-03-06.  After all users have
-  ** upgraded, this code can be safely deleted. 
+  ** upgraded, this code can be safely deleted.
   */
   rc = sqlite3_prepare(g.db, "SELECT isexe FROM vfile", -1, &pStmt, 0);
   nPrepare++;
   sqlite3_finalize(pStmt);
   if( rc==SQLITE_ERROR ){
@@ -763,11 +768,11 @@
   }
 
 #if 0
   /* If the "mtime" column is missing from the vfile table, then
   ** add it now.   This code added on 2008-12-06.  After all users have
-  ** upgraded, this code can be safely deleted. 
+  ** upgraded, this code can be safely deleted.
   */
   rc = sqlite3_prepare(g.db, "SELECT mtime FROM vfile", -1, &pStmt, 0);
   sqlite3_finalize(pStmt);
   if( rc==SQLITE_ERROR ){
     sqlite3_exec(g.db, "ALTER TABLE vfile ADD COLUMN mtime INTEGER", 0, 0, 0);
@@ -775,11 +780,11 @@
 #endif
 
 #if 0
   /* If the "origname" column is missing from the vfile table, then
   ** add it now.   This code added on 2008-11-09.  After all users have
-  ** upgraded, this code can be safely deleted. 
+  ** upgraded, this code can be safely deleted.
   */
   rc = sqlite3_prepare(g.db, "SELECT origname FROM vfile", -1, &pStmt, 0);
   sqlite3_finalize(pStmt);
   if( rc==SQLITE_ERROR ){
     sqlite3_exec(g.db, "ALTER TABLE vfile ADD COLUMN origname TEXT", 0, 0, 0);
@@ -792,11 +797,11 @@
 /*
 ** Locate the root directory of the local repository tree.  The root
 ** directory is found by searching for a file named "_FOSSIL_" or ".fos"
 ** that contains a valid repository database.
 **
-** If no valid _FOSSIL_ or .fos file is found, we move up one level and 
+** If no valid _FOSSIL_ or .fos file is found, we move up one level and
 ** try again. Once the file is found, the g.zLocalRoot variable is set
 ** to the root of the repository tree and this routine returns 1.  If
 ** no database is found, then this routine return 0.
 **
 ** This routine always opens the user database regardless of whether or
@@ -805,11 +810,11 @@
 */
 int db_open_local(void){
   int i, n;
   char zPwd[2000];
   static const char *aDbName[] = { "/_FOSSIL_", "/.fos" };
-  
+
   if( g.localOpen) return 1;
   file_getcwd(zPwd, sizeof(zPwd)-20);
   n = strlen(zPwd);
   while( n>0 ){
     if( file_access(zPwd, W_OK) ) break;
@@ -1166,10 +1171,14 @@
 ** Options:
 **
 **    --admin-user|-A USERNAME
 **    --date-override DATETIME
 **
+**
+** SUMMARY: fossil new ?OPTIONS? FILENAME
+** Options: --admin-user|-A, --date-override
+**
 */
 void create_repository_cmd(void){
   char *zPassword;
   const char *zDate;          /* Date of the initial check-in */
   const char *zDefaultUser;   /* Optional name of the default user */
@@ -1187,11 +1196,11 @@
   db_initial_setup(zDate, zDefaultUser, 1);
   db_end_transaction(0);
   fossil_print("project-id: %s\n", db_get("project-code", 0));
   fossil_print("server-id:  %s\n", db_get("server-code", 0));
   zPassword = db_text(0, "SELECT pw FROM user WHERE login=%Q", g.zLogin);
-  fossil_print("admin-user: %s (initial password is \"%s\")\n", 
+  fossil_print("admin-user: %s (initial password is \"%s\")\n",
                g.zLogin, zPassword);
 }
 
 /*
 ** SQL functions for debugging.
@@ -1231,11 +1240,11 @@
   }
 }
 
 /*
 ** Implement the cgi() SQL function.  cgi() takes a an argument which is
-** a name of CGI query parameter. The value of that parameter is returned, 
+** a name of CGI query parameter. The value of that parameter is returned,
 ** if available. optional second argument will be returned if the first
 ** doesn't exist as a CGI parameter.
 */
 static void db_sql_cgi(sqlite3_context *context, int argc, sqlite3_value **argv){
   const char* zP;
@@ -1541,11 +1550,18 @@
 ** for the repository is created with its root at the working directory.
 ** If VERSION is specified then that version is checked out.  Otherwise
 ** the latest version is checked out.  No files other than "manifest"
 ** and "manifest.uuid" are modified if the --keep option is present.
 **
+** You can find the version IDs via the web interface
+** (see the server/ui commands).
+**
 ** See also the "close" command.
+**
+**
+** SUMMARY: fossil open FILENAME ?VERSION? ?OPTIONS?
+** Options: --keep, --nested
 */
 void cmd_open(void){
   Blob path;
   int vid;
   int keepFlag;
@@ -1671,24 +1687,25 @@
 
 /*
 ** COMMAND: settings
 ** COMMAND: unset
 **
-** %fossil settings ?PROPERTY? ?VALUE? ?-global?
+** %fossil settings ?PROPERTY? ?VALUE? ?--global?
 ** %fossil unset PROPERTY ?-global?
 **
 ** The "settings" command with no arguments lists all properties and their
 ** values.  With just a property name it shows the value of that property.
 ** With a value argument it changes the property for the current repository.
 **
-** The "unset" command clears a property setting.
+** The "unset" command clears a property setting (restoring fossil's default).
 **
 **
 **    auto-captcha     If enabled, the Login page provides a button to
 **                     fill in the captcha password.  Default: on
 **
 **    auto-shun        If enabled, automatically pull the shunning list
+**                     (for removing unwanted files and Wiki pages)
 **                     from a server to which the client autosyncs.
 **                     Default: on
 **
 **    autosync         If enabled, automatically pull prior to commit
 **                     or update and automatically push after commit or
@@ -1717,10 +1734,11 @@
 **
 **    dont-push        Prevent this repository from pushing from client to
 **                     server.  Useful when setting up a private branch.
 **
 **    editor           Text editor command used for check-in comments.
+**                     (The default depends on the platform)
 **
 **    gdiff-command    External command to run when performing a graphical
 **                     diff. If undefined, text diff will be used.
 **
 **    gmerge-command   A graphical merge conflict resolver command operating
@@ -1779,10 +1797,21 @@
 **
 **    web-browser      A shell command used to launch your preferred
 **                     web browser when given a URL as an argument.
 **                     Defaults to "start" on windows, "open" on Mac,
 **                     and "firefox" on Unix.
+**
+** SUMMARY: fossil settings ?PROPERTY? ?VALUE? ?OPTIONS?
+**          fossil unset PROPERTY ?OPTIONS?
+** Options: --global
+** Where:   PROPERTY = auto-captcha, auto-shun, autosync, binary-glob,
+**                     clearsign, crnl-glob, default-perms, diff-command,
+**                     dont-push, editor, gdiff-command, gmerge-command,
+**                     http-port, https-login, ignore-glob, localauth,
+**                     main-branch, manifest, max-upload, mtime-changes,
+**                     pgp-command, proxy, repo-cksum, self-register,
+**                     ssh-command, web-browser
 */
 void setting_cmd(void){
   int i;
   int globalFlag = find_option("global","g",0)!=0;
   int unsetFlag = g.argv[1][0]=='u';
@@ -1864,11 +1893,11 @@
 ** Print the approximate span of time from now to TIMESTAMP.
 */
 void test_timespan_cmd(void){
   double rDiff;
   if( g.argc!=3 ) usage("TIMESTAMP");
-  sqlite3_open(":memory:", &g.db);  
+  sqlite3_open(":memory:", &g.db);
   rDiff = db_double(0.0, "SELECT julianday('now') - julianday(%Q)", g.argv[2]);
   fossil_print("Time differences: %s\n", db_timespan_name(rDiff));
   sqlite3_close(g.db);
   g.db = 0;
 }

Index: src/descendants.c
==================================================================
--- src/descendants.c
+++ src/descendants.c
@@ -71,11 +71,11 @@
     bag_init(&pending);
     bag_insert(&pending, iBase);
 
     /* This query returns all non-branch-merge children of check-in :rid.
     **
-    ** If a a child is a merge of a fork within the same branch, it is 
+    ** If a a child is a merge of a fork within the same branch, it is
     ** returned.  Only merge children in different branches are excluded.
     */
     db_prepare(&q1,
       "SELECT cid FROM plink"
       " WHERE pid=:rid"
@@ -84,25 +84,25 @@
                         "   WHERE tagid=%d AND rid=plink.pid), 'trunk')"
                  "=coalesce((SELECT value FROM tagxref"
                         "   WHERE tagid=%d AND rid=plink.cid), 'trunk'))",
       TAG_BRANCH, TAG_BRANCH
     );
-  
+
     /* This query returns a single row if check-in :rid is the first
     ** check-in of a new branch.
     */
-    db_prepare(&isBr, 
+    db_prepare(&isBr,
        "SELECT 1 FROM tagxref"
        " WHERE rid=:rid AND tagid=%d AND tagtype=2"
        "   AND srcid>0",
        TAG_BRANCH
     );
-  
+
     /* This statement inserts check-in :rid into the LEAVES table.
     */
     db_prepare(&ins, "INSERT OR IGNORE INTO leaves VALUES(:rid)");
-  
+
     while( bag_count(&pending) ){
       int rid = bag_first(&pending);
       int cnt = 0;
       bag_remove(&pending, rid);
       db_bind_int(&q1, ":rid", rid);
@@ -233,10 +233,13 @@
 **
 ** Usage: %fossil descendants ?BASELINE-ID?
 **
 ** Find all leaf descendants of the baseline specified or if the argument
 ** is omitted, of the baseline currently checked out.
+**
+**
+** SUMMARY: fossil descendants ?BASELINE-ID?
 */
 void descendants_cmd(void){
   Stmt q;
   int base;
 
@@ -259,18 +262,22 @@
 }
 
 /*
 ** COMMAND:  leaves
 **
-** Usage: %fossil leaves ?--all? ?--closed?
+** Usage: %fossil leaves ?--all? ?--closed? ?--recompute?
 **
 ** Find leaves of all branches.  By default show only open leaves.
 ** The --all flag causes all leaves (closed and open) to be shown.
 ** The --closed flag shows only closed leaves.
 **
 ** The --recompute flag causes the content of the "leaf" table in the
 ** repository database to be recomputed.
+**
+**
+** SUMMARY: fossil leaves ?OPTIONS?
+** Options: --all, --closed, --recompute
 */
 void leaves_cmd(void){
   Stmt q;
   Blob sql;
   int showAll = find_option("all", 0, 0)!=0;

Index: src/diff.c
==================================================================
--- src/diff.c
+++ src/diff.c
@@ -62,11 +62,11 @@
   int nTo;           /* Number of lines in aTo[] */
 };
 
 /*
 ** Return an array of DLine objects containing a pointer to the
-** start of each line and a hash of that line.  The lower 
+** start of each line and a hash of that line.  The lower
 ** bits of the hash store the length of each line.
 **
 ** Trailing whitespace is removed from each line.  2010-08-20:  Not any
 ** more.  If trailing whitespace is ignored, the "patch" command gets
 ** confused by the diff output.  Ticket [a9f7b23c2e376af5b0e5b]
@@ -171,11 +171,11 @@
     }
     if( nCopy==0 && nDel==0 ){
       p->aEdit[p->nEdit-1] += nIns;
       return;
     }
-  }  
+  }
   if( p->nEdit+3>p->nEditAlloc ){
     expandEdit(p, p->nEdit*2 + 15);
     if( p->aEdit==0 ) return;
   }
   p->aEdit[p->nEdit++] = nCopy;
@@ -188,11 +188,11 @@
 ** Given a diff context in which the aEdit[] array has been filled
 ** in, compute a context diff into pOut.
 */
 static void contextDiff(DContext *p, Blob *pOut, int nContext){
   DLine *A;     /* Left side of the diff */
-  DLine *B;     /* Right side of the diff */  
+  DLine *B;     /* Right side of the diff */
   int a = 0;    /* Index of next line in A[] */
   int b = 0;    /* Index of next line in B[] */
   int *R;       /* Array of COPY/DELETE/INSERT triples */
   int r;        /* Index into R[] */
   int nr;       /* Number of COPY/DELETE/INSERT triples to process */
@@ -341,11 +341,11 @@
 ** input range.
 **
 ** Ideally, the common sequence should be the longest possible common
 ** sequence.  However, an exact computation of LCS is O(N*N) which is
 ** way too slow for larger files.  So this routine uses an O(N)
-** heuristic approximation based on hashing that usually works about 
+** heuristic approximation based on hashing that usually works about
 ** as well.  But if the O(N) algorithm doesn't get a good solution
 ** and N is not too large, we fall back to an exact solution by
 ** calling optimalLCS().
 */
 static void longestCommonSequence(
@@ -372,11 +372,11 @@
   iEYb = iEYp = iS2;
   mid = (iE1 + iS1)/2;
   for(i=iS1; i<iE1; i++){
     int limit = 0;
     j = p->aTo[p->aFrom[i].h % p->nTo].iHash;
-    while( j>0 
+    while( j>0
       && (j-1<iS2 || j>=iE2 || !same_dline(&p->aFrom[i], &p->aTo[j-1]))
     ){
       if( limit++ > 10 ){
         j = 0;
         break;
@@ -425,11 +425,11 @@
     *piSX = iSXb;
     *piSY = iSYb;
     *piEX = iEXb;
     *piEY = iEYb;
   }
-  /* printf("LCS(%d..%d/%d..%d) = %d..%d/%d..%d\n", 
+  /* printf("LCS(%d..%d/%d..%d) = %d..%d/%d..%d\n",
      iS1, iE1, iS2, iE2, *piSX, *piEX, *piSY, *piEY);  */
 }
 
 /*
 ** Do a single step in the difference.  Compute a sequence of
@@ -525,11 +525,11 @@
 
 /*
 ** Generate a report of the differences between files pA and pB.
 ** If pOut is not NULL then a unified diff is appended there.  It
 ** is assumed that pOut has already been initialized.  If pOut is
-** NULL, then a pointer to an array of integers is returned.  
+** NULL, then a pointer to an array of integers is returned.
 ** The integers come in triples.  For each triple,
 ** the elements are the number of lines copied, the number of
 ** lines deleted, and the number of lines inserted.  The vector
 ** is terminated by a triple of all zeros.
 **
@@ -543,11 +543,11 @@
   Blob *pOut,      /* Write unified diff here if not NULL */
   int nContext,    /* Amount of context to unified diff */
   int ignoreEolWs  /* Ignore whitespace at the end of lines */
 ){
   DContext c;
- 
+
   /* Prepare the input files */
   memset(&c, 0, sizeof(c));
   c.aFrom = break_into_lines(blob_str(pA_Blob), blob_size(pA_Blob),
                              &c.nFrom, ignoreEolWs);
   c.aTo = break_into_lines(blob_str(pB_Blob), blob_size(pB_Blob),
@@ -710,11 +710,11 @@
   p->c.aEdit = 0;
   p->c.nEdit = 0;
   p->c.nEditAlloc = 0;
 
   /* Clear out the from file */
-  free(p->c.aFrom);    
+  free(p->c.aFrom);
   blob_zero(pParent);
 
   /* Return no errors */
   return 0;
 }
@@ -781,11 +781,11 @@
   }
   db_multi_exec("CREATE TEMP TABLE ok(rid INTEGER PRIMARY KEY)");
   compute_ancestors(mid, 1000000000);
   annotation_start(p, &toAnnotate);
 
-  db_prepare(&q, 
+  db_prepare(&q,
     "SELECT mlink.fid,"
     "       (SELECT uuid FROM blob WHERE rid=mlink.%s),"
     "       date(event.mtime), "
     "       coalesce(event.euser,event.user) "
     "  FROM mlink, event"
@@ -803,11 +803,11 @@
     const char *zUuid = db_column_text(&q, 1);
     const char *zDate = db_column_text(&q, 2);
     const char *zUser = db_column_text(&q, 3);
     if( webLabel ){
       zLabel = mprintf(
-          "<a href='%s/info/%s' target='infowindow'>%.10s</a> %s %9.9s", 
+          "<a href='%s/info/%s' target='infowindow'>%.10s</a> %s %9.9s",
           g.zTop, zUuid, zUuid, zDate, zUser
       );
     }else{
       zLabel = mprintf("%.10s %s %9.9s", zUuid, zDate, zUser);
     }
@@ -879,10 +879,14 @@
 **
 ** Options:
 **   --limit N       Only look backwards in time by N versions
 **   --log           List all versions analyzed
 **   --filevers      Show file version numbers rather than check-in versions
+**
+**
+** SUMMARY: fossil annotate FILENAME ?options?
+** Options: --limit N, --log, --filevers
 */
 void annotate_cmd(void){
   int fnid;         /* Filename ID */
   int fid;          /* File instance ID */
   int mid;          /* Manifest where file was checked in */
@@ -926,9 +930,9 @@
       printf("version %3d: %s\n", i+1, ann.azVers[i]);
     }
     printf("---------------------------------------------------\n");
   }
   for(i=0; i<ann.nOrig; i++){
-    fossil_print("%s: %.*s\n", 
+    fossil_print("%s: %.*s\n",
                  ann.aOrig[i].zSrc, ann.aOrig[i].n, ann.aOrig[i].z);
   }
 }

Index: src/diffcmd.c
==================================================================
--- src/diffcmd.c
+++ src/diffcmd.c
@@ -412,15 +412,15 @@
 **
 ** Usage: %fossil diff|gdiff ?options? ?FILE?
 **
 ** Show the difference between the current version of FILE (as it
 ** exists on disk) and that same file as it was checked out.  Or
-** if the FILE argument is omitted, show the unsaved changed currently
+** if the FILE argument is omitted, show the unsaved changes currently
 ** in the working check-out.
 **
 ** If the "--from VERSION" or "-r VERSION" option is used it specifies
-** the source check-in for the diff operation.  If not specified, the 
+** the source check-in for the diff operation.  If not specified, the
 ** source check-in is the base check-in for the current check-out.
 **
 ** If the "--to VERSION" option appears, it specifies the check-in from
 ** which the second version of the file or files is taken.  If there is
 ** no "--to" option then the (possibly edited) files in the current check-out
@@ -431,10 +431,16 @@
 ** the "setting" command.  If no external diff program is configured, then
 ** the "-i" option is a no-op.  The "-i" option converts "gdiff" into "diff".
 **
 ** The "-N" or "--new-file" option causes the complete text of added or
 ** deleted files to be displayed.
+**
+**
+** SUMMARY: fossil diff ?options? ?FILE?
+**          fossil gdiff ?options? ?FILE?
+** Options: -i, --from VERSION, --to VERSION, -N|--new-file
+**
 */
 void diff_cmd(void){
   int isGDiff;               /* True for gdiff.  False for normal diff */
   int isInternDiff;          /* True for internal diff */
   int hasNFlag;              /* True if -N or --new-file flag is used */

Index: src/export.c
==================================================================
--- src/export.c
+++ src/export.c
@@ -86,19 +86,22 @@
 **
 ** Usage: %fossil export --git ?REPOSITORY?
 **
 ** Write an export of all check-ins to standard output.  The export is
 ** written in the git-fast-export file format assuming the --git option is
-** provided.  The git-fast-export format is currently the only VCS 
+** provided.  The git-fast-export format is currently the only VCS
 ** interchange format supported, though other formats may be added in
 ** the future.
 **
-** Run this command within a checkout.  Or use the -R or --repository
-** option to specify a Fossil repository to be exported.
+** Run this command within a checkout or specify the name of the
+** Fossil repository to be exported.
 **
-** Only check-ins are exported using --git.  Git does not support tickets 
+** Only check-ins are exported using --git.  Git does not support tickets
 ** or wiki or events or attachments, so none of those are exported.
+**
+**
+** SUMMARY: fossil export --git ?REPOSITORY?
 */
 void export_cmd(void){
   Stmt q;
   int i;
   int firstCkin;       /* Integer offset to check-in marks */
@@ -110,11 +113,11 @@
   db_find_and_open_repository(0, 2);
   verify_all_options();
   if( g.argc!=2 && g.argc!=3 ){ usage("--git ?REPOSITORY?"); }
 
   /* Step 1:  Generate "blob" records for every artifact that is part
-  ** of a check-in 
+  ** of a check-in
   */
   fossil_binary_mode(stdout);
   db_prepare(&q, "SELECT DISTINCT fid FROM mlink WHERE fid>0");
   while( db_step(&q)==SQLITE_ROW ){
     int rid = db_column_int(&q, 0);

ADDED   win/Makefile.mingw_static
Index: win/Makefile.mingw_static
==================================================================
--- win/Makefile.mingw_static
+++ win/Makefile.mingw_static
@@ -0,0 +1,973 @@
+#!/usr/bin/make
+#
+# This is a makefile for us on windows using mingw.
+#
+#### The toplevel directory of the source tree.  Fossil can be built
+#    in a directory that is separate from the source tree.  Just change
+#    the following to point from the build directory to the src/ folder.
+#
+SRCDIR = src
+
+#### The directory into which object code files should be written.
+#
+#
+OBJDIR = wbld
+
+#### C Compiler and options for use in building executables that
+#    will run on the platform that is doing the build.  This is used
+#    to compile code-generator programs as part of the build process.
+#    See TCC below for the C compiler for building the finished binary.
+#
+BCC = gcc
+
+#### Enable HTTPS support via OpenSSL (links to libssl and libcrypto)
+#
+# FOSSIL_ENABLE_SSL=1
+
+#### The directory in which the zlib compression library is installed.
+#
+#
+ZLIBDIR = /programs/gnuwin32
+
+#### C Compile and options for use in building executables that 
+#    will run on the target platform.  This is usually the same
+#    as BCC, unless you are cross-compiling.  This C compiler builds
+#    the finished binary for fossil.  The BCC compiler above is used
+#    for building intermediate code-generator tools.
+#
+TCC = gcc -Os -Wall -DFOSSIL_I18N=0 -Wl,-Bstatic -L$(ZLIBDIR)/lib -I$(ZLIBDIR)/include
+
+# With HTTPS support
+ifdef FOSSIL_ENABLE_SSL
+TCC += -static -DFOSSIL_ENABLE_SSL=1
+endif
+
+#### Extra arguments for linking the finished binary.  Fossil needs
+#    to link against the Z-Lib compression library.  There are no
+#    other dependencies.  We sometimes add the -static option here
+#    so that we can build a static executable that will run in a
+#    chroot jail.
+#
+#LIB = -lz -lws2_32
+# OpenSSL:
+ifdef FOSSIL_ENABLE_SSL
+LIB += -lssl -lcrypto -lgdi32
+endif
+LIB += -lmingwex -lz -lws2_32
+
+#### Tcl shell for use in running the fossil testsuite.  This is only
+#    used for testing.  If you do not run
+#
+TCLSH = tclsh
+
+#### Nullsoft installer makensis location
+#
+MAKENSIS = "c:\Program Files\NSIS\makensis.exe"
+
+#### Include a configuration file that can override any one of these settings.
+#
+-include config.w32
+
+# STOP HERE
+# You should not need to change anything below this line
+#--------------------------------------------------------
+XTCC = $(TCC) $(CFLAGS) -I. -I$(SRCDIR)
+
+SRC = \
+  $(SRCDIR)/add.c \
+  $(SRCDIR)/allrepo.c \
+  $(SRCDIR)/attach.c \
+  $(SRCDIR)/bag.c \
+  $(SRCDIR)/bisect.c \
+  $(SRCDIR)/blob.c \
+  $(SRCDIR)/branch.c \
+  $(SRCDIR)/browse.c \
+  $(SRCDIR)/captcha.c \
+  $(SRCDIR)/cgi.c \
+  $(SRCDIR)/checkin.c \
+  $(SRCDIR)/checkout.c \
+  $(SRCDIR)/clearsign.c \
+  $(SRCDIR)/clone.c \
+  $(SRCDIR)/comformat.c \
+  $(SRCDIR)/configure.c \
+  $(SRCDIR)/content.c \
+  $(SRCDIR)/db.c \
+  $(SRCDIR)/delta.c \
+  $(SRCDIR)/deltacmd.c \
+  $(SRCDIR)/descendants.c \
+  $(SRCDIR)/diff.c \
+  $(SRCDIR)/diffcmd.c \
+  $(SRCDIR)/doc.c \
+  $(SRCDIR)/encode.c \
+  $(SRCDIR)/event.c \
+  $(SRCDIR)/export.c \
+  $(SRCDIR)/file.c \
+  $(SRCDIR)/finfo.c \
+  $(SRCDIR)/graph.c \
+  $(SRCDIR)/gzip.c \
+  $(SRCDIR)/http.c \
+  $(SRCDIR)/http_socket.c \
+  $(SRCDIR)/http_ssl.c \
+  $(SRCDIR)/http_transport.c \
+  $(SRCDIR)/import.c \
+  $(SRCDIR)/info.c \
+  $(SRCDIR)/leaf.c \
+  $(SRCDIR)/login.c \
+  $(SRCDIR)/main.c \
+  $(SRCDIR)/manifest.c \
+  $(SRCDIR)/md5.c \
+  $(SRCDIR)/merge.c \
+  $(SRCDIR)/merge3.c \
+  $(SRCDIR)/name.c \
+  $(SRCDIR)/path.c \
+  $(SRCDIR)/pivot.c \
+  $(SRCDIR)/popen.c \
+  $(SRCDIR)/pqueue.c \
+  $(SRCDIR)/printf.c \
+  $(SRCDIR)/rebuild.c \
+  $(SRCDIR)/report.c \
+  $(SRCDIR)/rss.c \
+  $(SRCDIR)/schema.c \
+  $(SRCDIR)/search.c \
+  $(SRCDIR)/setup.c \
+  $(SRCDIR)/sha1.c \
+  $(SRCDIR)/shun.c \
+  $(SRCDIR)/skins.c \
+  $(SRCDIR)/sqlcmd.c \
+  $(SRCDIR)/stash.c \
+  $(SRCDIR)/stat.c \
+  $(SRCDIR)/style.c \
+  $(SRCDIR)/sync.c \
+  $(SRCDIR)/tag.c \
+  $(SRCDIR)/tar.c \
+  $(SRCDIR)/th_main.c \
+  $(SRCDIR)/timeline.c \
+  $(SRCDIR)/tkt.c \
+  $(SRCDIR)/tktsetup.c \
+  $(SRCDIR)/undo.c \
+  $(SRCDIR)/update.c \
+  $(SRCDIR)/url.c \
+  $(SRCDIR)/user.c \
+  $(SRCDIR)/verify.c \
+  $(SRCDIR)/vfile.c \
+  $(SRCDIR)/wiki.c \
+  $(SRCDIR)/wikiformat.c \
+  $(SRCDIR)/winhttp.c \
+  $(SRCDIR)/xfer.c \
+  $(SRCDIR)/zip.c
+
+TRANS_SRC = \
+  $(OBJDIR)/add_.c \
+  $(OBJDIR)/allrepo_.c \
+  $(OBJDIR)/attach_.c \
+  $(OBJDIR)/bag_.c \
+  $(OBJDIR)/bisect_.c \
+  $(OBJDIR)/blob_.c \
+  $(OBJDIR)/branch_.c \
+  $(OBJDIR)/browse_.c \
+  $(OBJDIR)/captcha_.c \
+  $(OBJDIR)/cgi_.c \
+  $(OBJDIR)/checkin_.c \
+  $(OBJDIR)/checkout_.c \
+  $(OBJDIR)/clearsign_.c \
+  $(OBJDIR)/clone_.c \
+  $(OBJDIR)/comformat_.c \
+  $(OBJDIR)/configure_.c \
+  $(OBJDIR)/content_.c \
+  $(OBJDIR)/db_.c \
+  $(OBJDIR)/delta_.c \
+  $(OBJDIR)/deltacmd_.c \
+  $(OBJDIR)/descendants_.c \
+  $(OBJDIR)/diff_.c \
+  $(OBJDIR)/diffcmd_.c \
+  $(OBJDIR)/doc_.c \
+  $(OBJDIR)/encode_.c \
+  $(OBJDIR)/event_.c \
+  $(OBJDIR)/export_.c \
+  $(OBJDIR)/file_.c \
+  $(OBJDIR)/finfo_.c \
+  $(OBJDIR)/graph_.c \
+  $(OBJDIR)/gzip_.c \
+  $(OBJDIR)/http_.c \
+  $(OBJDIR)/http_socket_.c \
+  $(OBJDIR)/http_ssl_.c \
+  $(OBJDIR)/http_transport_.c \
+  $(OBJDIR)/import_.c \
+  $(OBJDIR)/info_.c \
+  $(OBJDIR)/leaf_.c \
+  $(OBJDIR)/login_.c \
+  $(OBJDIR)/main_.c \
+  $(OBJDIR)/manifest_.c \
+  $(OBJDIR)/md5_.c \
+  $(OBJDIR)/merge_.c \
+  $(OBJDIR)/merge3_.c \
+  $(OBJDIR)/name_.c \
+  $(OBJDIR)/path_.c \
+  $(OBJDIR)/pivot_.c \
+  $(OBJDIR)/popen_.c \
+  $(OBJDIR)/pqueue_.c \
+  $(OBJDIR)/printf_.c \
+  $(OBJDIR)/rebuild_.c \
+  $(OBJDIR)/report_.c \
+  $(OBJDIR)/rss_.c \
+  $(OBJDIR)/schema_.c \
+  $(OBJDIR)/search_.c \
+  $(OBJDIR)/setup_.c \
+  $(OBJDIR)/sha1_.c \
+  $(OBJDIR)/shun_.c \
+  $(OBJDIR)/skins_.c \
+  $(OBJDIR)/sqlcmd_.c \
+  $(OBJDIR)/stash_.c \
+  $(OBJDIR)/stat_.c \
+  $(OBJDIR)/style_.c \
+  $(OBJDIR)/sync_.c \
+  $(OBJDIR)/tag_.c \
+  $(OBJDIR)/tar_.c \
+  $(OBJDIR)/th_main_.c \
+  $(OBJDIR)/timeline_.c \
+  $(OBJDIR)/tkt_.c \
+  $(OBJDIR)/tktsetup_.c \
+  $(OBJDIR)/undo_.c \
+  $(OBJDIR)/update_.c \
+  $(OBJDIR)/url_.c \
+  $(OBJDIR)/user_.c \
+  $(OBJDIR)/verify_.c \
+  $(OBJDIR)/vfile_.c \
+  $(OBJDIR)/wiki_.c \
+  $(OBJDIR)/wikiformat_.c \
+  $(OBJDIR)/winhttp_.c \
+  $(OBJDIR)/xfer_.c \
+  $(OBJDIR)/zip_.c
+
+OBJ = \
+ $(OBJDIR)/add.o \
+ $(OBJDIR)/allrepo.o \
+ $(OBJDIR)/attach.o \
+ $(OBJDIR)/bag.o \
+ $(OBJDIR)/bisect.o \
+ $(OBJDIR)/blob.o \
+ $(OBJDIR)/branch.o \
+ $(OBJDIR)/browse.o \
+ $(OBJDIR)/captcha.o \
+ $(OBJDIR)/cgi.o \
+ $(OBJDIR)/checkin.o \
+ $(OBJDIR)/checkout.o \
+ $(OBJDIR)/clearsign.o \
+ $(OBJDIR)/clone.o \
+ $(OBJDIR)/comformat.o \
+ $(OBJDIR)/configure.o \
+ $(OBJDIR)/content.o \
+ $(OBJDIR)/db.o \
+ $(OBJDIR)/delta.o \
+ $(OBJDIR)/deltacmd.o \
+ $(OBJDIR)/descendants.o \
+ $(OBJDIR)/diff.o \
+ $(OBJDIR)/diffcmd.o \
+ $(OBJDIR)/doc.o \
+ $(OBJDIR)/encode.o \
+ $(OBJDIR)/event.o \
+ $(OBJDIR)/export.o \
+ $(OBJDIR)/file.o \
+ $(OBJDIR)/finfo.o \
+ $(OBJDIR)/graph.o \
+ $(OBJDIR)/gzip.o \
+ $(OBJDIR)/http.o \
+ $(OBJDIR)/http_socket.o \
+ $(OBJDIR)/http_ssl.o \
+ $(OBJDIR)/http_transport.o \
+ $(OBJDIR)/import.o \
+ $(OBJDIR)/info.o \
+ $(OBJDIR)/leaf.o \
+ $(OBJDIR)/login.o \
+ $(OBJDIR)/main.o \
+ $(OBJDIR)/manifest.o \
+ $(OBJDIR)/md5.o \
+ $(OBJDIR)/merge.o \
+ $(OBJDIR)/merge3.o \
+ $(OBJDIR)/name.o \
+ $(OBJDIR)/path.o \
+ $(OBJDIR)/pivot.o \
+ $(OBJDIR)/popen.o \
+ $(OBJDIR)/pqueue.o \
+ $(OBJDIR)/printf.o \
+ $(OBJDIR)/rebuild.o \
+ $(OBJDIR)/report.o \
+ $(OBJDIR)/rss.o \
+ $(OBJDIR)/schema.o \
+ $(OBJDIR)/search.o \
+ $(OBJDIR)/setup.o \
+ $(OBJDIR)/sha1.o \
+ $(OBJDIR)/shun.o \
+ $(OBJDIR)/skins.o \
+ $(OBJDIR)/sqlcmd.o \
+ $(OBJDIR)/stash.o \
+ $(OBJDIR)/stat.o \
+ $(OBJDIR)/style.o \
+ $(OBJDIR)/sync.o \
+ $(OBJDIR)/tag.o \
+ $(OBJDIR)/tar.o \
+ $(OBJDIR)/th_main.o \
+ $(OBJDIR)/timeline.o \
+ $(OBJDIR)/tkt.o \
+ $(OBJDIR)/tktsetup.o \
+ $(OBJDIR)/undo.o \
+ $(OBJDIR)/update.o \
+ $(OBJDIR)/url.o \
+ $(OBJDIR)/user.o \
+ $(OBJDIR)/verify.o \
+ $(OBJDIR)/vfile.o \
+ $(OBJDIR)/wiki.o \
+ $(OBJDIR)/wikiformat.o \
+ $(OBJDIR)/winhttp.o \
+ $(OBJDIR)/xfer.o \
+ $(OBJDIR)/zip.o
+
+APPNAME = fossil.exe
+TRANSLATE   = $(subst /,\\,$(OBJDIR)/translate.exe)
+MAKEHEADERS = $(subst /,\\,$(OBJDIR)/makeheaders.exe)
+MKINDEX     = $(subst /,\\,$(OBJDIR)/mkindex.exe)
+VERSION     = $(subst /,\\,$(OBJDIR)/version.exe)
+
+
+all:	$(OBJDIR) $(APPNAME)
+
+$(OBJDIR)/icon.o:	$(SRCDIR)/../win/icon.rc
+	cp $(SRCDIR)/../win/icon.rc $(OBJDIR)
+	windres $(OBJDIR)/icon.rc -o $(OBJDIR)/icon.o
+
+install:	$(APPNAME)
+	mv $(APPNAME) $(INSTALLDIR)
+
+$(OBJDIR):
+	mkdir $(OBJDIR)
+
+$(OBJDIR)/translate:	$(SRCDIR)/translate.c
+	$(BCC) -o $(OBJDIR)/translate $(SRCDIR)/translate.c
+
+$(OBJDIR)/makeheaders:	$(SRCDIR)/makeheaders.c
+	$(BCC) -o $(OBJDIR)/makeheaders $(SRCDIR)/makeheaders.c
+
+$(OBJDIR)/mkindex:	$(SRCDIR)/mkindex.c
+	$(BCC) -o $(OBJDIR)/mkindex $(SRCDIR)/mkindex.c
+
+$(VERSION): $(SRCDIR)/../win/version.c
+	$(BCC) -o $(OBJDIR)/version $(SRCDIR)/../win/version.c
+
+# WARNING. DANGER. Running the testsuite modifies the repository the
+# build is done from, i.e. the checkout belongs to. Do not sync/push
+# the repository after running the tests.
+test:	$(APPNAME)
+	$(TCLSH) test/tester.tcl $(APPNAME)
+
+$(OBJDIR)/VERSION.h:	$(SRCDIR)/../manifest.uuid $(SRCDIR)/../manifest $(VERSION)
+	$(VERSION) $(SRCDIR)/../manifest.uuid $(SRCDIR)/../manifest >$(OBJDIR)/VERSION.h
+
+EXTRAOBJ =  $(OBJDIR)/sqlite3.o  $(OBJDIR)/shell.o  $(OBJDIR)/th.o  $(OBJDIR)/th_lang.o
+
+$(APPNAME):	$(OBJDIR)/headers $(OBJ) $(EXTRAOBJ) $(OBJDIR)/icon.o
+	$(TCC) -o $(APPNAME) $(OBJ) $(EXTRAOBJ) $(LIB) $(OBJDIR)/icon.o
+
+# This rule prevents make from using its default rules to try build
+# an executable named "manifest" out of the file named "manifest.c"
+#
+$(SRCDIR)/../manifest:	
+	# noop
+
+# Requires msys to be installed in addition to the mingw, for the "rm"
+# command.  "del" will not work here because it is not a separate command
+# but a MSDOS-shell builtin.
+#
+clean:	
+	rm -rf $(OBJDIR) $(APPNAME)
+
+setup: $(OBJDIR) $(APPNAME)
+	$(MAKENSIS) ./fossil.nsi
+
+
+$(OBJDIR)/page_index.h: $(TRANS_SRC) $(OBJDIR)/mkindex
+	$(MKINDEX) $(TRANS_SRC) >$@
+$(OBJDIR)/headers:	$(OBJDIR)/page_index.h $(OBJDIR)/makeheaders $(OBJDIR)/VERSION.h
+	$(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)/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)/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)/zip_.c:$(OBJDIR)/zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h $(OBJDIR)/VERSION.h
+	echo Done >$(OBJDIR)/headers
+
+$(OBJDIR)/headers: Makefile
+Makefile:
+$(OBJDIR)/add_.c:	$(SRCDIR)/add.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/add.c >$(OBJDIR)/add_.c
+
+$(OBJDIR)/add.o:	$(OBJDIR)/add_.c $(OBJDIR)/add.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/add.o -c $(OBJDIR)/add_.c
+
+add.h:	$(OBJDIR)/headers
+$(OBJDIR)/allrepo_.c:	$(SRCDIR)/allrepo.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/allrepo.c >$(OBJDIR)/allrepo_.c
+
+$(OBJDIR)/allrepo.o:	$(OBJDIR)/allrepo_.c $(OBJDIR)/allrepo.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/allrepo.o -c $(OBJDIR)/allrepo_.c
+
+allrepo.h:	$(OBJDIR)/headers
+$(OBJDIR)/attach_.c:	$(SRCDIR)/attach.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/attach.c >$(OBJDIR)/attach_.c
+
+$(OBJDIR)/attach.o:	$(OBJDIR)/attach_.c $(OBJDIR)/attach.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/attach.o -c $(OBJDIR)/attach_.c
+
+attach.h:	$(OBJDIR)/headers
+$(OBJDIR)/bag_.c:	$(SRCDIR)/bag.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/bag.c >$(OBJDIR)/bag_.c
+
+$(OBJDIR)/bag.o:	$(OBJDIR)/bag_.c $(OBJDIR)/bag.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/bag.o -c $(OBJDIR)/bag_.c
+
+bag.h:	$(OBJDIR)/headers
+$(OBJDIR)/bisect_.c:	$(SRCDIR)/bisect.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/bisect.c >$(OBJDIR)/bisect_.c
+
+$(OBJDIR)/bisect.o:	$(OBJDIR)/bisect_.c $(OBJDIR)/bisect.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/bisect.o -c $(OBJDIR)/bisect_.c
+
+bisect.h:	$(OBJDIR)/headers
+$(OBJDIR)/blob_.c:	$(SRCDIR)/blob.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/blob.c >$(OBJDIR)/blob_.c
+
+$(OBJDIR)/blob.o:	$(OBJDIR)/blob_.c $(OBJDIR)/blob.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/blob.o -c $(OBJDIR)/blob_.c
+
+blob.h:	$(OBJDIR)/headers
+$(OBJDIR)/branch_.c:	$(SRCDIR)/branch.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/branch.c >$(OBJDIR)/branch_.c
+
+$(OBJDIR)/branch.o:	$(OBJDIR)/branch_.c $(OBJDIR)/branch.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/branch.o -c $(OBJDIR)/branch_.c
+
+branch.h:	$(OBJDIR)/headers
+$(OBJDIR)/browse_.c:	$(SRCDIR)/browse.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/browse.c >$(OBJDIR)/browse_.c
+
+$(OBJDIR)/browse.o:	$(OBJDIR)/browse_.c $(OBJDIR)/browse.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/browse.o -c $(OBJDIR)/browse_.c
+
+browse.h:	$(OBJDIR)/headers
+$(OBJDIR)/captcha_.c:	$(SRCDIR)/captcha.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/captcha.c >$(OBJDIR)/captcha_.c
+
+$(OBJDIR)/captcha.o:	$(OBJDIR)/captcha_.c $(OBJDIR)/captcha.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/captcha.o -c $(OBJDIR)/captcha_.c
+
+captcha.h:	$(OBJDIR)/headers
+$(OBJDIR)/cgi_.c:	$(SRCDIR)/cgi.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/cgi.c >$(OBJDIR)/cgi_.c
+
+$(OBJDIR)/cgi.o:	$(OBJDIR)/cgi_.c $(OBJDIR)/cgi.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/cgi.o -c $(OBJDIR)/cgi_.c
+
+cgi.h:	$(OBJDIR)/headers
+$(OBJDIR)/checkin_.c:	$(SRCDIR)/checkin.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/checkin.c >$(OBJDIR)/checkin_.c
+
+$(OBJDIR)/checkin.o:	$(OBJDIR)/checkin_.c $(OBJDIR)/checkin.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/checkin.o -c $(OBJDIR)/checkin_.c
+
+checkin.h:	$(OBJDIR)/headers
+$(OBJDIR)/checkout_.c:	$(SRCDIR)/checkout.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/checkout.c >$(OBJDIR)/checkout_.c
+
+$(OBJDIR)/checkout.o:	$(OBJDIR)/checkout_.c $(OBJDIR)/checkout.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/checkout.o -c $(OBJDIR)/checkout_.c
+
+checkout.h:	$(OBJDIR)/headers
+$(OBJDIR)/clearsign_.c:	$(SRCDIR)/clearsign.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/clearsign.c >$(OBJDIR)/clearsign_.c
+
+$(OBJDIR)/clearsign.o:	$(OBJDIR)/clearsign_.c $(OBJDIR)/clearsign.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/clearsign.o -c $(OBJDIR)/clearsign_.c
+
+clearsign.h:	$(OBJDIR)/headers
+$(OBJDIR)/clone_.c:	$(SRCDIR)/clone.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/clone.c >$(OBJDIR)/clone_.c
+
+$(OBJDIR)/clone.o:	$(OBJDIR)/clone_.c $(OBJDIR)/clone.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/clone.o -c $(OBJDIR)/clone_.c
+
+clone.h:	$(OBJDIR)/headers
+$(OBJDIR)/comformat_.c:	$(SRCDIR)/comformat.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/comformat.c >$(OBJDIR)/comformat_.c
+
+$(OBJDIR)/comformat.o:	$(OBJDIR)/comformat_.c $(OBJDIR)/comformat.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/comformat.o -c $(OBJDIR)/comformat_.c
+
+comformat.h:	$(OBJDIR)/headers
+$(OBJDIR)/configure_.c:	$(SRCDIR)/configure.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/configure.c >$(OBJDIR)/configure_.c
+
+$(OBJDIR)/configure.o:	$(OBJDIR)/configure_.c $(OBJDIR)/configure.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/configure.o -c $(OBJDIR)/configure_.c
+
+configure.h:	$(OBJDIR)/headers
+$(OBJDIR)/content_.c:	$(SRCDIR)/content.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/content.c >$(OBJDIR)/content_.c
+
+$(OBJDIR)/content.o:	$(OBJDIR)/content_.c $(OBJDIR)/content.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/content.o -c $(OBJDIR)/content_.c
+
+content.h:	$(OBJDIR)/headers
+$(OBJDIR)/db_.c:	$(SRCDIR)/db.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/db.c >$(OBJDIR)/db_.c
+
+$(OBJDIR)/db.o:	$(OBJDIR)/db_.c $(OBJDIR)/db.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/db.o -c $(OBJDIR)/db_.c
+
+db.h:	$(OBJDIR)/headers
+$(OBJDIR)/delta_.c:	$(SRCDIR)/delta.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/delta.c >$(OBJDIR)/delta_.c
+
+$(OBJDIR)/delta.o:	$(OBJDIR)/delta_.c $(OBJDIR)/delta.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/delta.o -c $(OBJDIR)/delta_.c
+
+delta.h:	$(OBJDIR)/headers
+$(OBJDIR)/deltacmd_.c:	$(SRCDIR)/deltacmd.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/deltacmd.c >$(OBJDIR)/deltacmd_.c
+
+$(OBJDIR)/deltacmd.o:	$(OBJDIR)/deltacmd_.c $(OBJDIR)/deltacmd.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/deltacmd.o -c $(OBJDIR)/deltacmd_.c
+
+deltacmd.h:	$(OBJDIR)/headers
+$(OBJDIR)/descendants_.c:	$(SRCDIR)/descendants.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/descendants.c >$(OBJDIR)/descendants_.c
+
+$(OBJDIR)/descendants.o:	$(OBJDIR)/descendants_.c $(OBJDIR)/descendants.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/descendants.o -c $(OBJDIR)/descendants_.c
+
+descendants.h:	$(OBJDIR)/headers
+$(OBJDIR)/diff_.c:	$(SRCDIR)/diff.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/diff.c >$(OBJDIR)/diff_.c
+
+$(OBJDIR)/diff.o:	$(OBJDIR)/diff_.c $(OBJDIR)/diff.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/diff.o -c $(OBJDIR)/diff_.c
+
+diff.h:	$(OBJDIR)/headers
+$(OBJDIR)/diffcmd_.c:	$(SRCDIR)/diffcmd.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/diffcmd.c >$(OBJDIR)/diffcmd_.c
+
+$(OBJDIR)/diffcmd.o:	$(OBJDIR)/diffcmd_.c $(OBJDIR)/diffcmd.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/diffcmd.o -c $(OBJDIR)/diffcmd_.c
+
+diffcmd.h:	$(OBJDIR)/headers
+$(OBJDIR)/doc_.c:	$(SRCDIR)/doc.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/doc.c >$(OBJDIR)/doc_.c
+
+$(OBJDIR)/doc.o:	$(OBJDIR)/doc_.c $(OBJDIR)/doc.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/doc.o -c $(OBJDIR)/doc_.c
+
+doc.h:	$(OBJDIR)/headers
+$(OBJDIR)/encode_.c:	$(SRCDIR)/encode.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/encode.c >$(OBJDIR)/encode_.c
+
+$(OBJDIR)/encode.o:	$(OBJDIR)/encode_.c $(OBJDIR)/encode.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/encode.o -c $(OBJDIR)/encode_.c
+
+encode.h:	$(OBJDIR)/headers
+$(OBJDIR)/event_.c:	$(SRCDIR)/event.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/event.c >$(OBJDIR)/event_.c
+
+$(OBJDIR)/event.o:	$(OBJDIR)/event_.c $(OBJDIR)/event.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/event.o -c $(OBJDIR)/event_.c
+
+event.h:	$(OBJDIR)/headers
+$(OBJDIR)/export_.c:	$(SRCDIR)/export.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/export.c >$(OBJDIR)/export_.c
+
+$(OBJDIR)/export.o:	$(OBJDIR)/export_.c $(OBJDIR)/export.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/export.o -c $(OBJDIR)/export_.c
+
+export.h:	$(OBJDIR)/headers
+$(OBJDIR)/file_.c:	$(SRCDIR)/file.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/file.c >$(OBJDIR)/file_.c
+
+$(OBJDIR)/file.o:	$(OBJDIR)/file_.c $(OBJDIR)/file.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/file.o -c $(OBJDIR)/file_.c
+
+file.h:	$(OBJDIR)/headers
+$(OBJDIR)/finfo_.c:	$(SRCDIR)/finfo.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/finfo.c >$(OBJDIR)/finfo_.c
+
+$(OBJDIR)/finfo.o:	$(OBJDIR)/finfo_.c $(OBJDIR)/finfo.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/finfo.o -c $(OBJDIR)/finfo_.c
+
+finfo.h:	$(OBJDIR)/headers
+$(OBJDIR)/graph_.c:	$(SRCDIR)/graph.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/graph.c >$(OBJDIR)/graph_.c
+
+$(OBJDIR)/graph.o:	$(OBJDIR)/graph_.c $(OBJDIR)/graph.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/graph.o -c $(OBJDIR)/graph_.c
+
+graph.h:	$(OBJDIR)/headers
+$(OBJDIR)/gzip_.c:	$(SRCDIR)/gzip.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/gzip.c >$(OBJDIR)/gzip_.c
+
+$(OBJDIR)/gzip.o:	$(OBJDIR)/gzip_.c $(OBJDIR)/gzip.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/gzip.o -c $(OBJDIR)/gzip_.c
+
+gzip.h:	$(OBJDIR)/headers
+$(OBJDIR)/http_.c:	$(SRCDIR)/http.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/http.c >$(OBJDIR)/http_.c
+
+$(OBJDIR)/http.o:	$(OBJDIR)/http_.c $(OBJDIR)/http.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/http.o -c $(OBJDIR)/http_.c
+
+http.h:	$(OBJDIR)/headers
+$(OBJDIR)/http_socket_.c:	$(SRCDIR)/http_socket.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/http_socket.c >$(OBJDIR)/http_socket_.c
+
+$(OBJDIR)/http_socket.o:	$(OBJDIR)/http_socket_.c $(OBJDIR)/http_socket.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/http_socket.o -c $(OBJDIR)/http_socket_.c
+
+http_socket.h:	$(OBJDIR)/headers
+$(OBJDIR)/http_ssl_.c:	$(SRCDIR)/http_ssl.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/http_ssl.c >$(OBJDIR)/http_ssl_.c
+
+$(OBJDIR)/http_ssl.o:	$(OBJDIR)/http_ssl_.c $(OBJDIR)/http_ssl.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/http_ssl.o -c $(OBJDIR)/http_ssl_.c
+
+http_ssl.h:	$(OBJDIR)/headers
+$(OBJDIR)/http_transport_.c:	$(SRCDIR)/http_transport.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/http_transport.c >$(OBJDIR)/http_transport_.c
+
+$(OBJDIR)/http_transport.o:	$(OBJDIR)/http_transport_.c $(OBJDIR)/http_transport.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/http_transport.o -c $(OBJDIR)/http_transport_.c
+
+http_transport.h:	$(OBJDIR)/headers
+$(OBJDIR)/import_.c:	$(SRCDIR)/import.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/import.c >$(OBJDIR)/import_.c
+
+$(OBJDIR)/import.o:	$(OBJDIR)/import_.c $(OBJDIR)/import.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/import.o -c $(OBJDIR)/import_.c
+
+import.h:	$(OBJDIR)/headers
+$(OBJDIR)/info_.c:	$(SRCDIR)/info.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/info.c >$(OBJDIR)/info_.c
+
+$(OBJDIR)/info.o:	$(OBJDIR)/info_.c $(OBJDIR)/info.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/info.o -c $(OBJDIR)/info_.c
+
+info.h:	$(OBJDIR)/headers
+$(OBJDIR)/leaf_.c:	$(SRCDIR)/leaf.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/leaf.c >$(OBJDIR)/leaf_.c
+
+$(OBJDIR)/leaf.o:	$(OBJDIR)/leaf_.c $(OBJDIR)/leaf.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/leaf.o -c $(OBJDIR)/leaf_.c
+
+leaf.h:	$(OBJDIR)/headers
+$(OBJDIR)/login_.c:	$(SRCDIR)/login.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/login.c >$(OBJDIR)/login_.c
+
+$(OBJDIR)/login.o:	$(OBJDIR)/login_.c $(OBJDIR)/login.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/login.o -c $(OBJDIR)/login_.c
+
+login.h:	$(OBJDIR)/headers
+$(OBJDIR)/main_.c:	$(SRCDIR)/main.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/main.c >$(OBJDIR)/main_.c
+
+$(OBJDIR)/main.o:	$(OBJDIR)/main_.c $(OBJDIR)/main.h $(OBJDIR)/page_index.h $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/main.o -c $(OBJDIR)/main_.c
+
+main.h:	$(OBJDIR)/headers
+$(OBJDIR)/manifest_.c:	$(SRCDIR)/manifest.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/manifest.c >$(OBJDIR)/manifest_.c
+
+$(OBJDIR)/manifest.o:	$(OBJDIR)/manifest_.c $(OBJDIR)/manifest.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/manifest.o -c $(OBJDIR)/manifest_.c
+
+manifest.h:	$(OBJDIR)/headers
+$(OBJDIR)/md5_.c:	$(SRCDIR)/md5.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/md5.c >$(OBJDIR)/md5_.c
+
+$(OBJDIR)/md5.o:	$(OBJDIR)/md5_.c $(OBJDIR)/md5.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/md5.o -c $(OBJDIR)/md5_.c
+
+md5.h:	$(OBJDIR)/headers
+$(OBJDIR)/merge_.c:	$(SRCDIR)/merge.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/merge.c >$(OBJDIR)/merge_.c
+
+$(OBJDIR)/merge.o:	$(OBJDIR)/merge_.c $(OBJDIR)/merge.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/merge.o -c $(OBJDIR)/merge_.c
+
+merge.h:	$(OBJDIR)/headers
+$(OBJDIR)/merge3_.c:	$(SRCDIR)/merge3.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/merge3.c >$(OBJDIR)/merge3_.c
+
+$(OBJDIR)/merge3.o:	$(OBJDIR)/merge3_.c $(OBJDIR)/merge3.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/merge3.o -c $(OBJDIR)/merge3_.c
+
+merge3.h:	$(OBJDIR)/headers
+$(OBJDIR)/name_.c:	$(SRCDIR)/name.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/name.c >$(OBJDIR)/name_.c
+
+$(OBJDIR)/name.o:	$(OBJDIR)/name_.c $(OBJDIR)/name.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/name.o -c $(OBJDIR)/name_.c
+
+name.h:	$(OBJDIR)/headers
+$(OBJDIR)/path_.c:	$(SRCDIR)/path.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/path.c >$(OBJDIR)/path_.c
+
+$(OBJDIR)/path.o:	$(OBJDIR)/path_.c $(OBJDIR)/path.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/path.o -c $(OBJDIR)/path_.c
+
+path.h:	$(OBJDIR)/headers
+$(OBJDIR)/pivot_.c:	$(SRCDIR)/pivot.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/pivot.c >$(OBJDIR)/pivot_.c
+
+$(OBJDIR)/pivot.o:	$(OBJDIR)/pivot_.c $(OBJDIR)/pivot.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/pivot.o -c $(OBJDIR)/pivot_.c
+
+pivot.h:	$(OBJDIR)/headers
+$(OBJDIR)/popen_.c:	$(SRCDIR)/popen.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/popen.c >$(OBJDIR)/popen_.c
+
+$(OBJDIR)/popen.o:	$(OBJDIR)/popen_.c $(OBJDIR)/popen.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/popen.o -c $(OBJDIR)/popen_.c
+
+popen.h:	$(OBJDIR)/headers
+$(OBJDIR)/pqueue_.c:	$(SRCDIR)/pqueue.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/pqueue.c >$(OBJDIR)/pqueue_.c
+
+$(OBJDIR)/pqueue.o:	$(OBJDIR)/pqueue_.c $(OBJDIR)/pqueue.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/pqueue.o -c $(OBJDIR)/pqueue_.c
+
+pqueue.h:	$(OBJDIR)/headers
+$(OBJDIR)/printf_.c:	$(SRCDIR)/printf.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/printf.c >$(OBJDIR)/printf_.c
+
+$(OBJDIR)/printf.o:	$(OBJDIR)/printf_.c $(OBJDIR)/printf.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/printf.o -c $(OBJDIR)/printf_.c
+
+printf.h:	$(OBJDIR)/headers
+$(OBJDIR)/rebuild_.c:	$(SRCDIR)/rebuild.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/rebuild.c >$(OBJDIR)/rebuild_.c
+
+$(OBJDIR)/rebuild.o:	$(OBJDIR)/rebuild_.c $(OBJDIR)/rebuild.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/rebuild.o -c $(OBJDIR)/rebuild_.c
+
+rebuild.h:	$(OBJDIR)/headers
+$(OBJDIR)/report_.c:	$(SRCDIR)/report.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/report.c >$(OBJDIR)/report_.c
+
+$(OBJDIR)/report.o:	$(OBJDIR)/report_.c $(OBJDIR)/report.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/report.o -c $(OBJDIR)/report_.c
+
+report.h:	$(OBJDIR)/headers
+$(OBJDIR)/rss_.c:	$(SRCDIR)/rss.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/rss.c >$(OBJDIR)/rss_.c
+
+$(OBJDIR)/rss.o:	$(OBJDIR)/rss_.c $(OBJDIR)/rss.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/rss.o -c $(OBJDIR)/rss_.c
+
+rss.h:	$(OBJDIR)/headers
+$(OBJDIR)/schema_.c:	$(SRCDIR)/schema.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/schema.c >$(OBJDIR)/schema_.c
+
+$(OBJDIR)/schema.o:	$(OBJDIR)/schema_.c $(OBJDIR)/schema.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/schema.o -c $(OBJDIR)/schema_.c
+
+schema.h:	$(OBJDIR)/headers
+$(OBJDIR)/search_.c:	$(SRCDIR)/search.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/search.c >$(OBJDIR)/search_.c
+
+$(OBJDIR)/search.o:	$(OBJDIR)/search_.c $(OBJDIR)/search.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/search.o -c $(OBJDIR)/search_.c
+
+search.h:	$(OBJDIR)/headers
+$(OBJDIR)/setup_.c:	$(SRCDIR)/setup.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/setup.c >$(OBJDIR)/setup_.c
+
+$(OBJDIR)/setup.o:	$(OBJDIR)/setup_.c $(OBJDIR)/setup.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/setup.o -c $(OBJDIR)/setup_.c
+
+setup.h:	$(OBJDIR)/headers
+$(OBJDIR)/sha1_.c:	$(SRCDIR)/sha1.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/sha1.c >$(OBJDIR)/sha1_.c
+
+$(OBJDIR)/sha1.o:	$(OBJDIR)/sha1_.c $(OBJDIR)/sha1.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/sha1.o -c $(OBJDIR)/sha1_.c
+
+sha1.h:	$(OBJDIR)/headers
+$(OBJDIR)/shun_.c:	$(SRCDIR)/shun.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/shun.c >$(OBJDIR)/shun_.c
+
+$(OBJDIR)/shun.o:	$(OBJDIR)/shun_.c $(OBJDIR)/shun.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/shun.o -c $(OBJDIR)/shun_.c
+
+shun.h:	$(OBJDIR)/headers
+$(OBJDIR)/skins_.c:	$(SRCDIR)/skins.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/skins.c >$(OBJDIR)/skins_.c
+
+$(OBJDIR)/skins.o:	$(OBJDIR)/skins_.c $(OBJDIR)/skins.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/skins.o -c $(OBJDIR)/skins_.c
+
+skins.h:	$(OBJDIR)/headers
+$(OBJDIR)/sqlcmd_.c:	$(SRCDIR)/sqlcmd.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/sqlcmd.c >$(OBJDIR)/sqlcmd_.c
+
+$(OBJDIR)/sqlcmd.o:	$(OBJDIR)/sqlcmd_.c $(OBJDIR)/sqlcmd.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/sqlcmd.o -c $(OBJDIR)/sqlcmd_.c
+
+sqlcmd.h:	$(OBJDIR)/headers
+$(OBJDIR)/stash_.c:	$(SRCDIR)/stash.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/stash.c >$(OBJDIR)/stash_.c
+
+$(OBJDIR)/stash.o:	$(OBJDIR)/stash_.c $(OBJDIR)/stash.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/stash.o -c $(OBJDIR)/stash_.c
+
+stash.h:	$(OBJDIR)/headers
+$(OBJDIR)/stat_.c:	$(SRCDIR)/stat.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/stat.c >$(OBJDIR)/stat_.c
+
+$(OBJDIR)/stat.o:	$(OBJDIR)/stat_.c $(OBJDIR)/stat.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/stat.o -c $(OBJDIR)/stat_.c
+
+stat.h:	$(OBJDIR)/headers
+$(OBJDIR)/style_.c:	$(SRCDIR)/style.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/style.c >$(OBJDIR)/style_.c
+
+$(OBJDIR)/style.o:	$(OBJDIR)/style_.c $(OBJDIR)/style.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/style.o -c $(OBJDIR)/style_.c
+
+style.h:	$(OBJDIR)/headers
+$(OBJDIR)/sync_.c:	$(SRCDIR)/sync.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/sync.c >$(OBJDIR)/sync_.c
+
+$(OBJDIR)/sync.o:	$(OBJDIR)/sync_.c $(OBJDIR)/sync.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/sync.o -c $(OBJDIR)/sync_.c
+
+sync.h:	$(OBJDIR)/headers
+$(OBJDIR)/tag_.c:	$(SRCDIR)/tag.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/tag.c >$(OBJDIR)/tag_.c
+
+$(OBJDIR)/tag.o:	$(OBJDIR)/tag_.c $(OBJDIR)/tag.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/tag.o -c $(OBJDIR)/tag_.c
+
+tag.h:	$(OBJDIR)/headers
+$(OBJDIR)/tar_.c:	$(SRCDIR)/tar.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/tar.c >$(OBJDIR)/tar_.c
+
+$(OBJDIR)/tar.o:	$(OBJDIR)/tar_.c $(OBJDIR)/tar.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/tar.o -c $(OBJDIR)/tar_.c
+
+tar.h:	$(OBJDIR)/headers
+$(OBJDIR)/th_main_.c:	$(SRCDIR)/th_main.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/th_main.c >$(OBJDIR)/th_main_.c
+
+$(OBJDIR)/th_main.o:	$(OBJDIR)/th_main_.c $(OBJDIR)/th_main.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/th_main.o -c $(OBJDIR)/th_main_.c
+
+th_main.h:	$(OBJDIR)/headers
+$(OBJDIR)/timeline_.c:	$(SRCDIR)/timeline.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/timeline.c >$(OBJDIR)/timeline_.c
+
+$(OBJDIR)/timeline.o:	$(OBJDIR)/timeline_.c $(OBJDIR)/timeline.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/timeline.o -c $(OBJDIR)/timeline_.c
+
+timeline.h:	$(OBJDIR)/headers
+$(OBJDIR)/tkt_.c:	$(SRCDIR)/tkt.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/tkt.c >$(OBJDIR)/tkt_.c
+
+$(OBJDIR)/tkt.o:	$(OBJDIR)/tkt_.c $(OBJDIR)/tkt.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/tkt.o -c $(OBJDIR)/tkt_.c
+
+tkt.h:	$(OBJDIR)/headers
+$(OBJDIR)/tktsetup_.c:	$(SRCDIR)/tktsetup.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/tktsetup.c >$(OBJDIR)/tktsetup_.c
+
+$(OBJDIR)/tktsetup.o:	$(OBJDIR)/tktsetup_.c $(OBJDIR)/tktsetup.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/tktsetup.o -c $(OBJDIR)/tktsetup_.c
+
+tktsetup.h:	$(OBJDIR)/headers
+$(OBJDIR)/undo_.c:	$(SRCDIR)/undo.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/undo.c >$(OBJDIR)/undo_.c
+
+$(OBJDIR)/undo.o:	$(OBJDIR)/undo_.c $(OBJDIR)/undo.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/undo.o -c $(OBJDIR)/undo_.c
+
+undo.h:	$(OBJDIR)/headers
+$(OBJDIR)/update_.c:	$(SRCDIR)/update.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/update.c >$(OBJDIR)/update_.c
+
+$(OBJDIR)/update.o:	$(OBJDIR)/update_.c $(OBJDIR)/update.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/update.o -c $(OBJDIR)/update_.c
+
+update.h:	$(OBJDIR)/headers
+$(OBJDIR)/url_.c:	$(SRCDIR)/url.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/url.c >$(OBJDIR)/url_.c
+
+$(OBJDIR)/url.o:	$(OBJDIR)/url_.c $(OBJDIR)/url.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/url.o -c $(OBJDIR)/url_.c
+
+url.h:	$(OBJDIR)/headers
+$(OBJDIR)/user_.c:	$(SRCDIR)/user.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/user.c >$(OBJDIR)/user_.c
+
+$(OBJDIR)/user.o:	$(OBJDIR)/user_.c $(OBJDIR)/user.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/user.o -c $(OBJDIR)/user_.c
+
+user.h:	$(OBJDIR)/headers
+$(OBJDIR)/verify_.c:	$(SRCDIR)/verify.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/verify.c >$(OBJDIR)/verify_.c
+
+$(OBJDIR)/verify.o:	$(OBJDIR)/verify_.c $(OBJDIR)/verify.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/verify.o -c $(OBJDIR)/verify_.c
+
+verify.h:	$(OBJDIR)/headers
+$(OBJDIR)/vfile_.c:	$(SRCDIR)/vfile.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/vfile.c >$(OBJDIR)/vfile_.c
+
+$(OBJDIR)/vfile.o:	$(OBJDIR)/vfile_.c $(OBJDIR)/vfile.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/vfile.o -c $(OBJDIR)/vfile_.c
+
+vfile.h:	$(OBJDIR)/headers
+$(OBJDIR)/wiki_.c:	$(SRCDIR)/wiki.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/wiki.c >$(OBJDIR)/wiki_.c
+
+$(OBJDIR)/wiki.o:	$(OBJDIR)/wiki_.c $(OBJDIR)/wiki.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/wiki.o -c $(OBJDIR)/wiki_.c
+
+wiki.h:	$(OBJDIR)/headers
+$(OBJDIR)/wikiformat_.c:	$(SRCDIR)/wikiformat.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/wikiformat.c >$(OBJDIR)/wikiformat_.c
+
+$(OBJDIR)/wikiformat.o:	$(OBJDIR)/wikiformat_.c $(OBJDIR)/wikiformat.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/wikiformat.o -c $(OBJDIR)/wikiformat_.c
+
+wikiformat.h:	$(OBJDIR)/headers
+$(OBJDIR)/winhttp_.c:	$(SRCDIR)/winhttp.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/winhttp.c >$(OBJDIR)/winhttp_.c
+
+$(OBJDIR)/winhttp.o:	$(OBJDIR)/winhttp_.c $(OBJDIR)/winhttp.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/winhttp.o -c $(OBJDIR)/winhttp_.c
+
+winhttp.h:	$(OBJDIR)/headers
+$(OBJDIR)/xfer_.c:	$(SRCDIR)/xfer.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/xfer.c >$(OBJDIR)/xfer_.c
+
+$(OBJDIR)/xfer.o:	$(OBJDIR)/xfer_.c $(OBJDIR)/xfer.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/xfer.o -c $(OBJDIR)/xfer_.c
+
+xfer.h:	$(OBJDIR)/headers
+$(OBJDIR)/zip_.c:	$(SRCDIR)/zip.c $(OBJDIR)/translate
+	$(TRANSLATE) $(SRCDIR)/zip.c >$(OBJDIR)/zip_.c
+
+$(OBJDIR)/zip.o:	$(OBJDIR)/zip_.c $(OBJDIR)/zip.h  $(SRCDIR)/config.h
+	$(XTCC) -o $(OBJDIR)/zip.o -c $(OBJDIR)/zip_.c
+
+zip.h:	$(OBJDIR)/headers
+$(OBJDIR)/sqlite3.o:	$(SRCDIR)/sqlite3.c
+	$(XTCC) -DSQLITE_OMIT_LOAD_EXTENSION=1 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_STAT2 -Dlocaltime=fossil_localtime -DSQLITE_ENABLE_LOCKING_STYLE=0 -c $(SRCDIR)/sqlite3.c -o $(OBJDIR)/sqlite3.o
+
+$(OBJDIR)/shell.o:	$(SRCDIR)/shell.c
+	$(XTCC) -Dmain=sqlite3_shell -DSQLITE_OMIT_LOAD_EXTENSION=1 -c $(SRCDIR)/shell.c -o $(OBJDIR)/shell.o
+
+$(OBJDIR)/th.o:	$(SRCDIR)/th.c
+	$(XTCC) -I$(SRCDIR) -c $(SRCDIR)/th.c -o $(OBJDIR)/th.o
+
+$(OBJDIR)/th_lang.o:	$(SRCDIR)/th_lang.c
+	$(XTCC) -I$(SRCDIR) -c $(SRCDIR)/th_lang.c -o $(OBJDIR)/th_lang.o
+