Fossil SCM

Merge the latest trunk enhancements into DBP-workflow branch.

drh 2014-12-01 17:26 UTC DBP-workflow merge
Commit ab188badcd08b8835c21f2b6d463b068387a4a47
--- src/codecheck1.c
+++ src/codecheck1.c
@@ -309,10 +309,11 @@
309309
struct {
310310
const char *zFName; /* Name of the function */
311311
int iFmtArg; /* Index of format argument. Leftmost is 1. */
312312
unsigned fmtFlags; /* Processing flags */
313313
} aFmtFunc[] = {
314
+ { "admin_log", 1, 0 },
314315
{ "blob_append_sql", 2, FMT_NO_S },
315316
{ "blob_appendf", 2, 0 },
316317
{ "cgi_panic", 1, 0 },
317318
{ "cgi_redirectf", 1, 0 },
318319
{ "db_blob", 2, FMT_NO_S },
319320
--- src/codecheck1.c
+++ src/codecheck1.c
@@ -309,10 +309,11 @@
309 struct {
310 const char *zFName; /* Name of the function */
311 int iFmtArg; /* Index of format argument. Leftmost is 1. */
312 unsigned fmtFlags; /* Processing flags */
313 } aFmtFunc[] = {
 
314 { "blob_append_sql", 2, FMT_NO_S },
315 { "blob_appendf", 2, 0 },
316 { "cgi_panic", 1, 0 },
317 { "cgi_redirectf", 1, 0 },
318 { "db_blob", 2, FMT_NO_S },
319
--- src/codecheck1.c
+++ src/codecheck1.c
@@ -309,10 +309,11 @@
309 struct {
310 const char *zFName; /* Name of the function */
311 int iFmtArg; /* Index of format argument. Leftmost is 1. */
312 unsigned fmtFlags; /* Processing flags */
313 } aFmtFunc[] = {
314 { "admin_log", 1, 0 },
315 { "blob_append_sql", 2, FMT_NO_S },
316 { "blob_appendf", 2, 0 },
317 { "cgi_panic", 1, 0 },
318 { "cgi_redirectf", 1, 0 },
319 { "db_blob", 2, FMT_NO_S },
320
+86 -2
--- src/db.c
+++ src/db.c
@@ -749,10 +749,39 @@
749749
if( rc==0 ){
750750
sqlite3_result_int64(context, mtime);
751751
}
752752
}
753753
754
+void db_sym2rid_function(
755
+ sqlite3_context *context,
756
+ int argc,
757
+ sqlite3_value **argv
758
+){
759
+ char const * arg;
760
+ char const * type;
761
+ if(1 != argc && 2 != argc){
762
+ sqlite3_result_error(context, "Expecting one or two arguments", -1);
763
+ return;
764
+ }
765
+ arg = (const char*)sqlite3_value_text(argv[0]);
766
+ if(!arg){
767
+ sqlite3_result_error(context, "Expecting a STRING argument", -1);
768
+ }else{
769
+ int rid;
770
+ type = (2==argc) ? sqlite3_value_text(argv[1]) : 0;
771
+ if(!type) type = "ci";
772
+ rid = symbolic_name_to_rid( arg, type );
773
+ if(rid<0){
774
+ sqlite3_result_error(context, "Symbolic name is ambiguous.", -1);
775
+ }else if(0==rid){
776
+ sqlite3_result_null(context);
777
+ }else{
778
+ sqlite3_result_int64(context, rid);
779
+ }
780
+ }
781
+}
782
+
754783
755784
/*
756785
** Open a database file. Return a pointer to the new database
757786
** connection. An error results in process abort.
758787
*/
@@ -781,13 +810,22 @@
781810
sqlite3_create_function(
782811
db, "is_selected", 1, SQLITE_UTF8, 0, file_is_selected,0,0
783812
);
784813
sqlite3_create_function(
785814
db, "if_selected", 3, SQLITE_UTF8, 0, file_is_selected,0,0
815
+ );
816
+ sqlite3_create_function(
817
+ db, "symbolic_name_to_rid", 1, SQLITE_UTF8, 0, db_sym2rid_function,
818
+ 0, 0
819
+ );
820
+ sqlite3_create_function(
821
+ db, "symbolic_name_to_rid", 2, SQLITE_UTF8, 0, db_sym2rid_function,
822
+ 0, 0
786823
);
787824
if( g.fSqlTrace ) sqlite3_trace(db, db_sql_trace, 0);
788825
re_add_sql_func(db);
826
+ foci_register(db);
789827
sqlite3_exec(db, "PRAGMA foreign_keys=OFF;", 0, 0, 0);
790828
return db;
791829
}
792830
793831
@@ -2248,10 +2286,11 @@
22482286
const char *def; /* Default value */
22492287
};
22502288
#endif /* INTERFACE */
22512289
struct stControlSettings const ctrlSettings[] = {
22522290
{ "access-log", 0, 0, 0, 0, "off" },
2291
+ { "admin-log", 0, 0, 0, 0, "off" },
22532292
{ "allow-symlinks", 0, 0, 1, 0, "off" },
22542293
{ "auto-captcha", "autocaptcha", 0, 0, 0, "on" },
22552294
{ "auto-hyperlink", 0, 0, 0, 0, "on", },
22562295
{ "auto-shun", 0, 0, 0, 0, "on" },
22572296
{ "autosync", 0, 0, 0, 0, "on" },
@@ -2328,10 +2367,13 @@
23282367
** The "unset" command clears a property setting.
23292368
**
23302369
**
23312370
** access-log If enabled, record successful and failed login attempts
23322371
** in the "accesslog" table. Default: off
2372
+**
2373
+** admin-log If enabled, record configuration changes in the
2374
+** "admin_log" table. Default: off
23332375
**
23342376
** allow-symlinks If enabled, don't follow symlinks, and instead treat
23352377
** (versionable) them as symlinks on Unix. Has no effect on Windows
23362378
** (existing links in repository created on Unix become
23372379
** plain-text files with link destination path inside).
@@ -2704,21 +2746,63 @@
27042746
"%s WITHOUT ROWID;\n"
27052747
"INSERT INTO \"%w\" SELECT * FROM \"x_%w\";\n"
27062748
"DROP TABLE \"x_%w\";\n",
27072749
zTName, zTName, blob_sql_text(&newSql), zTName, zTName, zTName
27082750
);
2709
- fossil_print("Converting table %s of %s to WITHOUT ROWID.\n", zTName, g.argv[i]);
2751
+ fossil_print("Converting table %s of %s to WITHOUT ROWID.\n",
2752
+ zTName, g.argv[i]);
27102753
blob_reset(&newSql);
27112754
}
27122755
blob_append_sql(&allSql, "COMMIT;\n");
27132756
db_finalize(&q);
27142757
if( dryRun ){
27152758
fossil_print("SQL that would have been evaluated:\n");
2716
- fossil_print("-------------------------------------------------------------\n");
2759
+ fossil_print("%.78c\n", '-');
27172760
fossil_print("%s", blob_sql_text(&allSql));
27182761
}else{
27192762
db_multi_exec("%s", blob_sql_text(&allSql));
27202763
}
27212764
blob_reset(&allSql);
27222765
db_close(1);
27232766
}
27242767
}
2768
+
2769
+/*
2770
+** Make sure the adminlog table exists. Create it if it does not
2771
+*/
2772
+void create_admin_log_table(void){
2773
+ static int once = 0;
2774
+ if( once ) return;
2775
+ once = 1;
2776
+ db_multi_exec(
2777
+ "CREATE TABLE IF NOT EXISTS \"%w\".admin_log(\n"
2778
+ " id INTEGER PRIMARY KEY,\n"
2779
+ " time INTEGER, -- Seconds since 1970\n"
2780
+ " page TEXT, -- path of page\n"
2781
+ " who TEXT, -- User who made the change\n "
2782
+ " what TEXT -- What changed\n"
2783
+ ")", db_name("repository")
2784
+ );
2785
+}
2786
+
2787
+/*
2788
+** Write a message into the admin_event table, if admin logging is
2789
+** enabled via the admin-log configuration option.
2790
+*/
2791
+void admin_log(const char *zFormat, ...){
2792
+ Blob what = empty_blob;
2793
+ va_list ap;
2794
+ if( !db_get_boolean("admin-log", 0) ){
2795
+ /* Potential leak here (on %z params) but
2796
+ the alternative is to let blob_vappendf()
2797
+ do it below. */
2798
+ return;
2799
+ }
2800
+ create_admin_log_table();
2801
+ va_start(ap,zFormat);
2802
+ blob_vappendf( &what, zFormat, ap );
2803
+ va_end(ap);
2804
+ db_multi_exec("INSERT INTO admin_log(time,page,who,what)"
2805
+ " VALUES(now(), %Q, %Q, %B)",
2806
+ g.zPath, g.zLogin, &what);
2807
+ blob_reset(&what);
2808
+}
27252809
27262810
ADDED src/foci.c
--- src/db.c
+++ src/db.c
@@ -749,10 +749,39 @@
749 if( rc==0 ){
750 sqlite3_result_int64(context, mtime);
751 }
752 }
753
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
754
755 /*
756 ** Open a database file. Return a pointer to the new database
757 ** connection. An error results in process abort.
758 */
@@ -781,13 +810,22 @@
781 sqlite3_create_function(
782 db, "is_selected", 1, SQLITE_UTF8, 0, file_is_selected,0,0
783 );
784 sqlite3_create_function(
785 db, "if_selected", 3, SQLITE_UTF8, 0, file_is_selected,0,0
 
 
 
 
 
 
 
 
786 );
787 if( g.fSqlTrace ) sqlite3_trace(db, db_sql_trace, 0);
788 re_add_sql_func(db);
 
789 sqlite3_exec(db, "PRAGMA foreign_keys=OFF;", 0, 0, 0);
790 return db;
791 }
792
793
@@ -2248,10 +2286,11 @@
2248 const char *def; /* Default value */
2249 };
2250 #endif /* INTERFACE */
2251 struct stControlSettings const ctrlSettings[] = {
2252 { "access-log", 0, 0, 0, 0, "off" },
 
2253 { "allow-symlinks", 0, 0, 1, 0, "off" },
2254 { "auto-captcha", "autocaptcha", 0, 0, 0, "on" },
2255 { "auto-hyperlink", 0, 0, 0, 0, "on", },
2256 { "auto-shun", 0, 0, 0, 0, "on" },
2257 { "autosync", 0, 0, 0, 0, "on" },
@@ -2328,10 +2367,13 @@
2328 ** The "unset" command clears a property setting.
2329 **
2330 **
2331 ** access-log If enabled, record successful and failed login attempts
2332 ** in the "accesslog" table. Default: off
 
 
 
2333 **
2334 ** allow-symlinks If enabled, don't follow symlinks, and instead treat
2335 ** (versionable) them as symlinks on Unix. Has no effect on Windows
2336 ** (existing links in repository created on Unix become
2337 ** plain-text files with link destination path inside).
@@ -2704,21 +2746,63 @@
2704 "%s WITHOUT ROWID;\n"
2705 "INSERT INTO \"%w\" SELECT * FROM \"x_%w\";\n"
2706 "DROP TABLE \"x_%w\";\n",
2707 zTName, zTName, blob_sql_text(&newSql), zTName, zTName, zTName
2708 );
2709 fossil_print("Converting table %s of %s to WITHOUT ROWID.\n", zTName, g.argv[i]);
 
2710 blob_reset(&newSql);
2711 }
2712 blob_append_sql(&allSql, "COMMIT;\n");
2713 db_finalize(&q);
2714 if( dryRun ){
2715 fossil_print("SQL that would have been evaluated:\n");
2716 fossil_print("-------------------------------------------------------------\n");
2717 fossil_print("%s", blob_sql_text(&allSql));
2718 }else{
2719 db_multi_exec("%s", blob_sql_text(&allSql));
2720 }
2721 blob_reset(&allSql);
2722 db_close(1);
2723 }
2724 }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2725
2726 DDED src/foci.c
--- src/db.c
+++ src/db.c
@@ -749,10 +749,39 @@
749 if( rc==0 ){
750 sqlite3_result_int64(context, mtime);
751 }
752 }
753
754 void db_sym2rid_function(
755 sqlite3_context *context,
756 int argc,
757 sqlite3_value **argv
758 ){
759 char const * arg;
760 char const * type;
761 if(1 != argc && 2 != argc){
762 sqlite3_result_error(context, "Expecting one or two arguments", -1);
763 return;
764 }
765 arg = (const char*)sqlite3_value_text(argv[0]);
766 if(!arg){
767 sqlite3_result_error(context, "Expecting a STRING argument", -1);
768 }else{
769 int rid;
770 type = (2==argc) ? sqlite3_value_text(argv[1]) : 0;
771 if(!type) type = "ci";
772 rid = symbolic_name_to_rid( arg, type );
773 if(rid<0){
774 sqlite3_result_error(context, "Symbolic name is ambiguous.", -1);
775 }else if(0==rid){
776 sqlite3_result_null(context);
777 }else{
778 sqlite3_result_int64(context, rid);
779 }
780 }
781 }
782
783
784 /*
785 ** Open a database file. Return a pointer to the new database
786 ** connection. An error results in process abort.
787 */
@@ -781,13 +810,22 @@
810 sqlite3_create_function(
811 db, "is_selected", 1, SQLITE_UTF8, 0, file_is_selected,0,0
812 );
813 sqlite3_create_function(
814 db, "if_selected", 3, SQLITE_UTF8, 0, file_is_selected,0,0
815 );
816 sqlite3_create_function(
817 db, "symbolic_name_to_rid", 1, SQLITE_UTF8, 0, db_sym2rid_function,
818 0, 0
819 );
820 sqlite3_create_function(
821 db, "symbolic_name_to_rid", 2, SQLITE_UTF8, 0, db_sym2rid_function,
822 0, 0
823 );
824 if( g.fSqlTrace ) sqlite3_trace(db, db_sql_trace, 0);
825 re_add_sql_func(db);
826 foci_register(db);
827 sqlite3_exec(db, "PRAGMA foreign_keys=OFF;", 0, 0, 0);
828 return db;
829 }
830
831
@@ -2248,10 +2286,11 @@
2286 const char *def; /* Default value */
2287 };
2288 #endif /* INTERFACE */
2289 struct stControlSettings const ctrlSettings[] = {
2290 { "access-log", 0, 0, 0, 0, "off" },
2291 { "admin-log", 0, 0, 0, 0, "off" },
2292 { "allow-symlinks", 0, 0, 1, 0, "off" },
2293 { "auto-captcha", "autocaptcha", 0, 0, 0, "on" },
2294 { "auto-hyperlink", 0, 0, 0, 0, "on", },
2295 { "auto-shun", 0, 0, 0, 0, "on" },
2296 { "autosync", 0, 0, 0, 0, "on" },
@@ -2328,10 +2367,13 @@
2367 ** The "unset" command clears a property setting.
2368 **
2369 **
2370 ** access-log If enabled, record successful and failed login attempts
2371 ** in the "accesslog" table. Default: off
2372 **
2373 ** admin-log If enabled, record configuration changes in the
2374 ** "admin_log" table. Default: off
2375 **
2376 ** allow-symlinks If enabled, don't follow symlinks, and instead treat
2377 ** (versionable) them as symlinks on Unix. Has no effect on Windows
2378 ** (existing links in repository created on Unix become
2379 ** plain-text files with link destination path inside).
@@ -2704,21 +2746,63 @@
2746 "%s WITHOUT ROWID;\n"
2747 "INSERT INTO \"%w\" SELECT * FROM \"x_%w\";\n"
2748 "DROP TABLE \"x_%w\";\n",
2749 zTName, zTName, blob_sql_text(&newSql), zTName, zTName, zTName
2750 );
2751 fossil_print("Converting table %s of %s to WITHOUT ROWID.\n",
2752 zTName, g.argv[i]);
2753 blob_reset(&newSql);
2754 }
2755 blob_append_sql(&allSql, "COMMIT;\n");
2756 db_finalize(&q);
2757 if( dryRun ){
2758 fossil_print("SQL that would have been evaluated:\n");
2759 fossil_print("%.78c\n", '-');
2760 fossil_print("%s", blob_sql_text(&allSql));
2761 }else{
2762 db_multi_exec("%s", blob_sql_text(&allSql));
2763 }
2764 blob_reset(&allSql);
2765 db_close(1);
2766 }
2767 }
2768
2769 /*
2770 ** Make sure the adminlog table exists. Create it if it does not
2771 */
2772 void create_admin_log_table(void){
2773 static int once = 0;
2774 if( once ) return;
2775 once = 1;
2776 db_multi_exec(
2777 "CREATE TABLE IF NOT EXISTS \"%w\".admin_log(\n"
2778 " id INTEGER PRIMARY KEY,\n"
2779 " time INTEGER, -- Seconds since 1970\n"
2780 " page TEXT, -- path of page\n"
2781 " who TEXT, -- User who made the change\n "
2782 " what TEXT -- What changed\n"
2783 ")", db_name("repository")
2784 );
2785 }
2786
2787 /*
2788 ** Write a message into the admin_event table, if admin logging is
2789 ** enabled via the admin-log configuration option.
2790 */
2791 void admin_log(const char *zFormat, ...){
2792 Blob what = empty_blob;
2793 va_list ap;
2794 if( !db_get_boolean("admin-log", 0) ){
2795 /* Potential leak here (on %z params) but
2796 the alternative is to let blob_vappendf()
2797 do it below. */
2798 return;
2799 }
2800 create_admin_log_table();
2801 va_start(ap,zFormat);
2802 blob_vappendf( &what, zFormat, ap );
2803 va_end(ap);
2804 db_multi_exec("INSERT INTO admin_log(time,page,who,what)"
2805 " VALUES(now(), %Q, %Q, %B)",
2806 g.zPath, g.zLogin, &what);
2807 blob_reset(&what);
2808 }
2809
2810 DDED src/foci.c
+86 -2
--- src/db.c
+++ src/db.c
@@ -749,10 +749,39 @@
749749
if( rc==0 ){
750750
sqlite3_result_int64(context, mtime);
751751
}
752752
}
753753
754
+void db_sym2rid_function(
755
+ sqlite3_context *context,
756
+ int argc,
757
+ sqlite3_value **argv
758
+){
759
+ char const * arg;
760
+ char const * type;
761
+ if(1 != argc && 2 != argc){
762
+ sqlite3_result_error(context, "Expecting one or two arguments", -1);
763
+ return;
764
+ }
765
+ arg = (const char*)sqlite3_value_text(argv[0]);
766
+ if(!arg){
767
+ sqlite3_result_error(context, "Expecting a STRING argument", -1);
768
+ }else{
769
+ int rid;
770
+ type = (2==argc) ? sqlite3_value_text(argv[1]) : 0;
771
+ if(!type) type = "ci";
772
+ rid = symbolic_name_to_rid( arg, type );
773
+ if(rid<0){
774
+ sqlite3_result_error(context, "Symbolic name is ambiguous.", -1);
775
+ }else if(0==rid){
776
+ sqlite3_result_null(context);
777
+ }else{
778
+ sqlite3_result_int64(context, rid);
779
+ }
780
+ }
781
+}
782
+
754783
755784
/*
756785
** Open a database file. Return a pointer to the new database
757786
** connection. An error results in process abort.
758787
*/
@@ -781,13 +810,22 @@
781810
sqlite3_create_function(
782811
db, "is_selected", 1, SQLITE_UTF8, 0, file_is_selected,0,0
783812
);
784813
sqlite3_create_function(
785814
db, "if_selected", 3, SQLITE_UTF8, 0, file_is_selected,0,0
815
+ );
816
+ sqlite3_create_function(
817
+ db, "symbolic_name_to_rid", 1, SQLITE_UTF8, 0, db_sym2rid_function,
818
+ 0, 0
819
+ );
820
+ sqlite3_create_function(
821
+ db, "symbolic_name_to_rid", 2, SQLITE_UTF8, 0, db_sym2rid_function,
822
+ 0, 0
786823
);
787824
if( g.fSqlTrace ) sqlite3_trace(db, db_sql_trace, 0);
788825
re_add_sql_func(db);
826
+ foci_register(db);
789827
sqlite3_exec(db, "PRAGMA foreign_keys=OFF;", 0, 0, 0);
790828
return db;
791829
}
792830
793831
@@ -2248,10 +2286,11 @@
22482286
const char *def; /* Default value */
22492287
};
22502288
#endif /* INTERFACE */
22512289
struct stControlSettings const ctrlSettings[] = {
22522290
{ "access-log", 0, 0, 0, 0, "off" },
2291
+ { "admin-log", 0, 0, 0, 0, "off" },
22532292
{ "allow-symlinks", 0, 0, 1, 0, "off" },
22542293
{ "auto-captcha", "autocaptcha", 0, 0, 0, "on" },
22552294
{ "auto-hyperlink", 0, 0, 0, 0, "on", },
22562295
{ "auto-shun", 0, 0, 0, 0, "on" },
22572296
{ "autosync", 0, 0, 0, 0, "on" },
@@ -2328,10 +2367,13 @@
23282367
** The "unset" command clears a property setting.
23292368
**
23302369
**
23312370
** access-log If enabled, record successful and failed login attempts
23322371
** in the "accesslog" table. Default: off
2372
+**
2373
+** admin-log If enabled, record configuration changes in the
2374
+** "admin_log" table. Default: off
23332375
**
23342376
** allow-symlinks If enabled, don't follow symlinks, and instead treat
23352377
** (versionable) them as symlinks on Unix. Has no effect on Windows
23362378
** (existing links in repository created on Unix become
23372379
** plain-text files with link destination path inside).
@@ -2704,21 +2746,63 @@
27042746
"%s WITHOUT ROWID;\n"
27052747
"INSERT INTO \"%w\" SELECT * FROM \"x_%w\";\n"
27062748
"DROP TABLE \"x_%w\";\n",
27072749
zTName, zTName, blob_sql_text(&newSql), zTName, zTName, zTName
27082750
);
2709
- fossil_print("Converting table %s of %s to WITHOUT ROWID.\n", zTName, g.argv[i]);
2751
+ fossil_print("Converting table %s of %s to WITHOUT ROWID.\n",
2752
+ zTName, g.argv[i]);
27102753
blob_reset(&newSql);
27112754
}
27122755
blob_append_sql(&allSql, "COMMIT;\n");
27132756
db_finalize(&q);
27142757
if( dryRun ){
27152758
fossil_print("SQL that would have been evaluated:\n");
2716
- fossil_print("-------------------------------------------------------------\n");
2759
+ fossil_print("%.78c\n", '-');
27172760
fossil_print("%s", blob_sql_text(&allSql));
27182761
}else{
27192762
db_multi_exec("%s", blob_sql_text(&allSql));
27202763
}
27212764
blob_reset(&allSql);
27222765
db_close(1);
27232766
}
27242767
}
2768
+
2769
+/*
2770
+** Make sure the adminlog table exists. Create it if it does not
2771
+*/
2772
+void create_admin_log_table(void){
2773
+ static int once = 0;
2774
+ if( once ) return;
2775
+ once = 1;
2776
+ db_multi_exec(
2777
+ "CREATE TABLE IF NOT EXISTS \"%w\".admin_log(\n"
2778
+ " id INTEGER PRIMARY KEY,\n"
2779
+ " time INTEGER, -- Seconds since 1970\n"
2780
+ " page TEXT, -- path of page\n"
2781
+ " who TEXT, -- User who made the change\n "
2782
+ " what TEXT -- What changed\n"
2783
+ ")", db_name("repository")
2784
+ );
2785
+}
2786
+
2787
+/*
2788
+** Write a message into the admin_event table, if admin logging is
2789
+** enabled via the admin-log configuration option.
2790
+*/
2791
+void admin_log(const char *zFormat, ...){
2792
+ Blob what = empty_blob;
2793
+ va_list ap;
2794
+ if( !db_get_boolean("admin-log", 0) ){
2795
+ /* Potential leak here (on %z params) but
2796
+ the alternative is to let blob_vappendf()
2797
+ do it below. */
2798
+ return;
2799
+ }
2800
+ create_admin_log_table();
2801
+ va_start(ap,zFormat);
2802
+ blob_vappendf( &what, zFormat, ap );
2803
+ va_end(ap);
2804
+ db_multi_exec("INSERT INTO admin_log(time,page,who,what)"
2805
+ " VALUES(now(), %Q, %Q, %B)",
2806
+ g.zPath, g.zLogin, &what);
2807
+ blob_reset(&what);
2808
+}
27252809
27262810
ADDED src/foci.c
--- src/db.c
+++ src/db.c
@@ -749,10 +749,39 @@
749 if( rc==0 ){
750 sqlite3_result_int64(context, mtime);
751 }
752 }
753
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
754
755 /*
756 ** Open a database file. Return a pointer to the new database
757 ** connection. An error results in process abort.
758 */
@@ -781,13 +810,22 @@
781 sqlite3_create_function(
782 db, "is_selected", 1, SQLITE_UTF8, 0, file_is_selected,0,0
783 );
784 sqlite3_create_function(
785 db, "if_selected", 3, SQLITE_UTF8, 0, file_is_selected,0,0
 
 
 
 
 
 
 
 
786 );
787 if( g.fSqlTrace ) sqlite3_trace(db, db_sql_trace, 0);
788 re_add_sql_func(db);
 
789 sqlite3_exec(db, "PRAGMA foreign_keys=OFF;", 0, 0, 0);
790 return db;
791 }
792
793
@@ -2248,10 +2286,11 @@
2248 const char *def; /* Default value */
2249 };
2250 #endif /* INTERFACE */
2251 struct stControlSettings const ctrlSettings[] = {
2252 { "access-log", 0, 0, 0, 0, "off" },
 
2253 { "allow-symlinks", 0, 0, 1, 0, "off" },
2254 { "auto-captcha", "autocaptcha", 0, 0, 0, "on" },
2255 { "auto-hyperlink", 0, 0, 0, 0, "on", },
2256 { "auto-shun", 0, 0, 0, 0, "on" },
2257 { "autosync", 0, 0, 0, 0, "on" },
@@ -2328,10 +2367,13 @@
2328 ** The "unset" command clears a property setting.
2329 **
2330 **
2331 ** access-log If enabled, record successful and failed login attempts
2332 ** in the "accesslog" table. Default: off
 
 
 
2333 **
2334 ** allow-symlinks If enabled, don't follow symlinks, and instead treat
2335 ** (versionable) them as symlinks on Unix. Has no effect on Windows
2336 ** (existing links in repository created on Unix become
2337 ** plain-text files with link destination path inside).
@@ -2704,21 +2746,63 @@
2704 "%s WITHOUT ROWID;\n"
2705 "INSERT INTO \"%w\" SELECT * FROM \"x_%w\";\n"
2706 "DROP TABLE \"x_%w\";\n",
2707 zTName, zTName, blob_sql_text(&newSql), zTName, zTName, zTName
2708 );
2709 fossil_print("Converting table %s of %s to WITHOUT ROWID.\n", zTName, g.argv[i]);
 
2710 blob_reset(&newSql);
2711 }
2712 blob_append_sql(&allSql, "COMMIT;\n");
2713 db_finalize(&q);
2714 if( dryRun ){
2715 fossil_print("SQL that would have been evaluated:\n");
2716 fossil_print("-------------------------------------------------------------\n");
2717 fossil_print("%s", blob_sql_text(&allSql));
2718 }else{
2719 db_multi_exec("%s", blob_sql_text(&allSql));
2720 }
2721 blob_reset(&allSql);
2722 db_close(1);
2723 }
2724 }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2725
2726 DDED src/foci.c
--- src/db.c
+++ src/db.c
@@ -749,10 +749,39 @@
749 if( rc==0 ){
750 sqlite3_result_int64(context, mtime);
751 }
752 }
753
754 void db_sym2rid_function(
755 sqlite3_context *context,
756 int argc,
757 sqlite3_value **argv
758 ){
759 char const * arg;
760 char const * type;
761 if(1 != argc && 2 != argc){
762 sqlite3_result_error(context, "Expecting one or two arguments", -1);
763 return;
764 }
765 arg = (const char*)sqlite3_value_text(argv[0]);
766 if(!arg){
767 sqlite3_result_error(context, "Expecting a STRING argument", -1);
768 }else{
769 int rid;
770 type = (2==argc) ? sqlite3_value_text(argv[1]) : 0;
771 if(!type) type = "ci";
772 rid = symbolic_name_to_rid( arg, type );
773 if(rid<0){
774 sqlite3_result_error(context, "Symbolic name is ambiguous.", -1);
775 }else if(0==rid){
776 sqlite3_result_null(context);
777 }else{
778 sqlite3_result_int64(context, rid);
779 }
780 }
781 }
782
783
784 /*
785 ** Open a database file. Return a pointer to the new database
786 ** connection. An error results in process abort.
787 */
@@ -781,13 +810,22 @@
810 sqlite3_create_function(
811 db, "is_selected", 1, SQLITE_UTF8, 0, file_is_selected,0,0
812 );
813 sqlite3_create_function(
814 db, "if_selected", 3, SQLITE_UTF8, 0, file_is_selected,0,0
815 );
816 sqlite3_create_function(
817 db, "symbolic_name_to_rid", 1, SQLITE_UTF8, 0, db_sym2rid_function,
818 0, 0
819 );
820 sqlite3_create_function(
821 db, "symbolic_name_to_rid", 2, SQLITE_UTF8, 0, db_sym2rid_function,
822 0, 0
823 );
824 if( g.fSqlTrace ) sqlite3_trace(db, db_sql_trace, 0);
825 re_add_sql_func(db);
826 foci_register(db);
827 sqlite3_exec(db, "PRAGMA foreign_keys=OFF;", 0, 0, 0);
828 return db;
829 }
830
831
@@ -2248,10 +2286,11 @@
2286 const char *def; /* Default value */
2287 };
2288 #endif /* INTERFACE */
2289 struct stControlSettings const ctrlSettings[] = {
2290 { "access-log", 0, 0, 0, 0, "off" },
2291 { "admin-log", 0, 0, 0, 0, "off" },
2292 { "allow-symlinks", 0, 0, 1, 0, "off" },
2293 { "auto-captcha", "autocaptcha", 0, 0, 0, "on" },
2294 { "auto-hyperlink", 0, 0, 0, 0, "on", },
2295 { "auto-shun", 0, 0, 0, 0, "on" },
2296 { "autosync", 0, 0, 0, 0, "on" },
@@ -2328,10 +2367,13 @@
2367 ** The "unset" command clears a property setting.
2368 **
2369 **
2370 ** access-log If enabled, record successful and failed login attempts
2371 ** in the "accesslog" table. Default: off
2372 **
2373 ** admin-log If enabled, record configuration changes in the
2374 ** "admin_log" table. Default: off
2375 **
2376 ** allow-symlinks If enabled, don't follow symlinks, and instead treat
2377 ** (versionable) them as symlinks on Unix. Has no effect on Windows
2378 ** (existing links in repository created on Unix become
2379 ** plain-text files with link destination path inside).
@@ -2704,21 +2746,63 @@
2746 "%s WITHOUT ROWID;\n"
2747 "INSERT INTO \"%w\" SELECT * FROM \"x_%w\";\n"
2748 "DROP TABLE \"x_%w\";\n",
2749 zTName, zTName, blob_sql_text(&newSql), zTName, zTName, zTName
2750 );
2751 fossil_print("Converting table %s of %s to WITHOUT ROWID.\n",
2752 zTName, g.argv[i]);
2753 blob_reset(&newSql);
2754 }
2755 blob_append_sql(&allSql, "COMMIT;\n");
2756 db_finalize(&q);
2757 if( dryRun ){
2758 fossil_print("SQL that would have been evaluated:\n");
2759 fossil_print("%.78c\n", '-');
2760 fossil_print("%s", blob_sql_text(&allSql));
2761 }else{
2762 db_multi_exec("%s", blob_sql_text(&allSql));
2763 }
2764 blob_reset(&allSql);
2765 db_close(1);
2766 }
2767 }
2768
2769 /*
2770 ** Make sure the adminlog table exists. Create it if it does not
2771 */
2772 void create_admin_log_table(void){
2773 static int once = 0;
2774 if( once ) return;
2775 once = 1;
2776 db_multi_exec(
2777 "CREATE TABLE IF NOT EXISTS \"%w\".admin_log(\n"
2778 " id INTEGER PRIMARY KEY,\n"
2779 " time INTEGER, -- Seconds since 1970\n"
2780 " page TEXT, -- path of page\n"
2781 " who TEXT, -- User who made the change\n "
2782 " what TEXT -- What changed\n"
2783 ")", db_name("repository")
2784 );
2785 }
2786
2787 /*
2788 ** Write a message into the admin_event table, if admin logging is
2789 ** enabled via the admin-log configuration option.
2790 */
2791 void admin_log(const char *zFormat, ...){
2792 Blob what = empty_blob;
2793 va_list ap;
2794 if( !db_get_boolean("admin-log", 0) ){
2795 /* Potential leak here (on %z params) but
2796 the alternative is to let blob_vappendf()
2797 do it below. */
2798 return;
2799 }
2800 create_admin_log_table();
2801 va_start(ap,zFormat);
2802 blob_vappendf( &what, zFormat, ap );
2803 va_end(ap);
2804 db_multi_exec("INSERT INTO admin_log(time,page,who,what)"
2805 " VALUES(now(), %Q, %Q, %B)",
2806 g.zPath, g.zLogin, &what);
2807 blob_reset(&what);
2808 }
2809
2810 DDED src/foci.c
+12
--- a/src/foci.c
+++ b/src/foci.c
@@ -0,0 +1,12 @@
1
+//* The function finds the BLOB.RID value
2
+** corresponding to the 'trunk' tag. Then the
3
+** decodes the manifest defined by that BLOB and returns all files described
4
+** by that manifest. / /an SQLite virtual tabCREATE VIRTUAL TABLE temp.focipCur->iFile = 0;
5
+pCuur->pMan, 0); Then the
6
+** decodes//* The function finds ttion finds the BL//* Of CheckI rem
7
+ sqlite3_context *ctx, int iFile;Index of cfileLOB.RID value
8
+** corresponding to the 'trunk' tag. Then the
9
+** decodes the manifest defined by that BLOB and returns all files described
10
+** b//* The funcMan->aFile[pCsr->iFile].Man->aFile[pCsr->iFile].Man->aFile[pCsr->iFile].Man->aFile[pCsr->iFile].Table *pTab = (FociTable *)pVTab;int rc;
11
+
12
+
--- a/src/foci.c
+++ b/src/foci.c
@@ -0,0 +1,12 @@
 
 
 
 
 
 
 
 
 
 
 
 
--- a/src/foci.c
+++ b/src/foci.c
@@ -0,0 +1,12 @@
1 //* The function finds the BLOB.RID value
2 ** corresponding to the 'trunk' tag. Then the
3 ** decodes the manifest defined by that BLOB and returns all files described
4 ** by that manifest. / /an SQLite virtual tabCREATE VIRTUAL TABLE temp.focipCur->iFile = 0;
5 pCuur->pMan, 0); Then the
6 ** decodes//* The function finds ttion finds the BL//* Of CheckI rem
7 sqlite3_context *ctx, int iFile;Index of cfileLOB.RID value
8 ** corresponding to the 'trunk' tag. Then the
9 ** decodes the manifest defined by that BLOB and returns all files described
10 ** b//* The funcMan->aFile[pCsr->iFile].Man->aFile[pCsr->iFile].Man->aFile[pCsr->iFile].Man->aFile[pCsr->iFile].Table *pTab = (FociTable *)pVTab;int rc;
11
12
+12
--- src/main.mk
+++ src/main.mk
@@ -44,10 +44,11 @@
4444
$(SRCDIR)/encode.c \
4545
$(SRCDIR)/event.c \
4646
$(SRCDIR)/export.c \
4747
$(SRCDIR)/file.c \
4848
$(SRCDIR)/finfo.c \
49
+ $(SRCDIR)/foci.c \
4950
$(SRCDIR)/fusefs.c \
5051
$(SRCDIR)/glob.c \
5152
$(SRCDIR)/graph.c \
5253
$(SRCDIR)/gzip.c \
5354
$(SRCDIR)/http.c \
@@ -164,10 +165,11 @@
164165
$(OBJDIR)/encode_.c \
165166
$(OBJDIR)/event_.c \
166167
$(OBJDIR)/export_.c \
167168
$(OBJDIR)/file_.c \
168169
$(OBJDIR)/finfo_.c \
170
+ $(OBJDIR)/foci_.c \
169171
$(OBJDIR)/fusefs_.c \
170172
$(OBJDIR)/glob_.c \
171173
$(OBJDIR)/graph_.c \
172174
$(OBJDIR)/gzip_.c \
173175
$(OBJDIR)/http_.c \
@@ -281,10 +283,11 @@
281283
$(OBJDIR)/encode.o \
282284
$(OBJDIR)/event.o \
283285
$(OBJDIR)/export.o \
284286
$(OBJDIR)/file.o \
285287
$(OBJDIR)/finfo.o \
288
+ $(OBJDIR)/foci.o \
286289
$(OBJDIR)/fusefs.o \
287290
$(OBJDIR)/glob.o \
288291
$(OBJDIR)/graph.o \
289292
$(OBJDIR)/gzip.o \
290293
$(OBJDIR)/http.o \
@@ -507,10 +510,11 @@
507510
$(OBJDIR)/encode_.c:$(OBJDIR)/encode.h \
508511
$(OBJDIR)/event_.c:$(OBJDIR)/event.h \
509512
$(OBJDIR)/export_.c:$(OBJDIR)/export.h \
510513
$(OBJDIR)/file_.c:$(OBJDIR)/file.h \
511514
$(OBJDIR)/finfo_.c:$(OBJDIR)/finfo.h \
515
+ $(OBJDIR)/foci_.c:$(OBJDIR)/foci.h \
512516
$(OBJDIR)/fusefs_.c:$(OBJDIR)/fusefs.h \
513517
$(OBJDIR)/glob_.c:$(OBJDIR)/glob.h \
514518
$(OBJDIR)/graph_.c:$(OBJDIR)/graph.h \
515519
$(OBJDIR)/gzip_.c:$(OBJDIR)/gzip.h \
516520
$(OBJDIR)/http_.c:$(OBJDIR)/http.h \
@@ -852,10 +856,18 @@
852856
853857
$(OBJDIR)/finfo.o: $(OBJDIR)/finfo_.c $(OBJDIR)/finfo.h $(SRCDIR)/config.h
854858
$(XTCC) -o $(OBJDIR)/finfo.o -c $(OBJDIR)/finfo_.c
855859
856860
$(OBJDIR)/finfo.h: $(OBJDIR)/headers
861
+
862
+$(OBJDIR)/foci_.c: $(SRCDIR)/foci.c $(OBJDIR)/translate
863
+ $(OBJDIR)/translate $(SRCDIR)/foci.c >$@
864
+
865
+$(OBJDIR)/foci.o: $(OBJDIR)/foci_.c $(OBJDIR)/foci.h $(SRCDIR)/config.h
866
+ $(XTCC) -o $(OBJDIR)/foci.o -c $(OBJDIR)/foci_.c
867
+
868
+$(OBJDIR)/foci.h: $(OBJDIR)/headers
857869
858870
$(OBJDIR)/fusefs_.c: $(SRCDIR)/fusefs.c $(OBJDIR)/translate
859871
$(OBJDIR)/translate $(SRCDIR)/fusefs.c >$@
860872
861873
$(OBJDIR)/fusefs.o: $(OBJDIR)/fusefs_.c $(OBJDIR)/fusefs.h $(SRCDIR)/config.h
862874
--- src/main.mk
+++ src/main.mk
@@ -44,10 +44,11 @@
44 $(SRCDIR)/encode.c \
45 $(SRCDIR)/event.c \
46 $(SRCDIR)/export.c \
47 $(SRCDIR)/file.c \
48 $(SRCDIR)/finfo.c \
 
49 $(SRCDIR)/fusefs.c \
50 $(SRCDIR)/glob.c \
51 $(SRCDIR)/graph.c \
52 $(SRCDIR)/gzip.c \
53 $(SRCDIR)/http.c \
@@ -164,10 +165,11 @@
164 $(OBJDIR)/encode_.c \
165 $(OBJDIR)/event_.c \
166 $(OBJDIR)/export_.c \
167 $(OBJDIR)/file_.c \
168 $(OBJDIR)/finfo_.c \
 
169 $(OBJDIR)/fusefs_.c \
170 $(OBJDIR)/glob_.c \
171 $(OBJDIR)/graph_.c \
172 $(OBJDIR)/gzip_.c \
173 $(OBJDIR)/http_.c \
@@ -281,10 +283,11 @@
281 $(OBJDIR)/encode.o \
282 $(OBJDIR)/event.o \
283 $(OBJDIR)/export.o \
284 $(OBJDIR)/file.o \
285 $(OBJDIR)/finfo.o \
 
286 $(OBJDIR)/fusefs.o \
287 $(OBJDIR)/glob.o \
288 $(OBJDIR)/graph.o \
289 $(OBJDIR)/gzip.o \
290 $(OBJDIR)/http.o \
@@ -507,10 +510,11 @@
507 $(OBJDIR)/encode_.c:$(OBJDIR)/encode.h \
508 $(OBJDIR)/event_.c:$(OBJDIR)/event.h \
509 $(OBJDIR)/export_.c:$(OBJDIR)/export.h \
510 $(OBJDIR)/file_.c:$(OBJDIR)/file.h \
511 $(OBJDIR)/finfo_.c:$(OBJDIR)/finfo.h \
 
512 $(OBJDIR)/fusefs_.c:$(OBJDIR)/fusefs.h \
513 $(OBJDIR)/glob_.c:$(OBJDIR)/glob.h \
514 $(OBJDIR)/graph_.c:$(OBJDIR)/graph.h \
515 $(OBJDIR)/gzip_.c:$(OBJDIR)/gzip.h \
516 $(OBJDIR)/http_.c:$(OBJDIR)/http.h \
@@ -852,10 +856,18 @@
852
853 $(OBJDIR)/finfo.o: $(OBJDIR)/finfo_.c $(OBJDIR)/finfo.h $(SRCDIR)/config.h
854 $(XTCC) -o $(OBJDIR)/finfo.o -c $(OBJDIR)/finfo_.c
855
856 $(OBJDIR)/finfo.h: $(OBJDIR)/headers
 
 
 
 
 
 
 
 
857
858 $(OBJDIR)/fusefs_.c: $(SRCDIR)/fusefs.c $(OBJDIR)/translate
859 $(OBJDIR)/translate $(SRCDIR)/fusefs.c >$@
860
861 $(OBJDIR)/fusefs.o: $(OBJDIR)/fusefs_.c $(OBJDIR)/fusefs.h $(SRCDIR)/config.h
862
--- src/main.mk
+++ src/main.mk
@@ -44,10 +44,11 @@
44 $(SRCDIR)/encode.c \
45 $(SRCDIR)/event.c \
46 $(SRCDIR)/export.c \
47 $(SRCDIR)/file.c \
48 $(SRCDIR)/finfo.c \
49 $(SRCDIR)/foci.c \
50 $(SRCDIR)/fusefs.c \
51 $(SRCDIR)/glob.c \
52 $(SRCDIR)/graph.c \
53 $(SRCDIR)/gzip.c \
54 $(SRCDIR)/http.c \
@@ -164,10 +165,11 @@
165 $(OBJDIR)/encode_.c \
166 $(OBJDIR)/event_.c \
167 $(OBJDIR)/export_.c \
168 $(OBJDIR)/file_.c \
169 $(OBJDIR)/finfo_.c \
170 $(OBJDIR)/foci_.c \
171 $(OBJDIR)/fusefs_.c \
172 $(OBJDIR)/glob_.c \
173 $(OBJDIR)/graph_.c \
174 $(OBJDIR)/gzip_.c \
175 $(OBJDIR)/http_.c \
@@ -281,10 +283,11 @@
283 $(OBJDIR)/encode.o \
284 $(OBJDIR)/event.o \
285 $(OBJDIR)/export.o \
286 $(OBJDIR)/file.o \
287 $(OBJDIR)/finfo.o \
288 $(OBJDIR)/foci.o \
289 $(OBJDIR)/fusefs.o \
290 $(OBJDIR)/glob.o \
291 $(OBJDIR)/graph.o \
292 $(OBJDIR)/gzip.o \
293 $(OBJDIR)/http.o \
@@ -507,10 +510,11 @@
510 $(OBJDIR)/encode_.c:$(OBJDIR)/encode.h \
511 $(OBJDIR)/event_.c:$(OBJDIR)/event.h \
512 $(OBJDIR)/export_.c:$(OBJDIR)/export.h \
513 $(OBJDIR)/file_.c:$(OBJDIR)/file.h \
514 $(OBJDIR)/finfo_.c:$(OBJDIR)/finfo.h \
515 $(OBJDIR)/foci_.c:$(OBJDIR)/foci.h \
516 $(OBJDIR)/fusefs_.c:$(OBJDIR)/fusefs.h \
517 $(OBJDIR)/glob_.c:$(OBJDIR)/glob.h \
518 $(OBJDIR)/graph_.c:$(OBJDIR)/graph.h \
519 $(OBJDIR)/gzip_.c:$(OBJDIR)/gzip.h \
520 $(OBJDIR)/http_.c:$(OBJDIR)/http.h \
@@ -852,10 +856,18 @@
856
857 $(OBJDIR)/finfo.o: $(OBJDIR)/finfo_.c $(OBJDIR)/finfo.h $(SRCDIR)/config.h
858 $(XTCC) -o $(OBJDIR)/finfo.o -c $(OBJDIR)/finfo_.c
859
860 $(OBJDIR)/finfo.h: $(OBJDIR)/headers
861
862 $(OBJDIR)/foci_.c: $(SRCDIR)/foci.c $(OBJDIR)/translate
863 $(OBJDIR)/translate $(SRCDIR)/foci.c >$@
864
865 $(OBJDIR)/foci.o: $(OBJDIR)/foci_.c $(OBJDIR)/foci.h $(SRCDIR)/config.h
866 $(XTCC) -o $(OBJDIR)/foci.o -c $(OBJDIR)/foci_.c
867
868 $(OBJDIR)/foci.h: $(OBJDIR)/headers
869
870 $(OBJDIR)/fusefs_.c: $(SRCDIR)/fusefs.c $(OBJDIR)/translate
871 $(OBJDIR)/translate $(SRCDIR)/fusefs.c >$@
872
873 $(OBJDIR)/fusefs.o: $(OBJDIR)/fusefs_.c $(OBJDIR)/fusefs.h $(SRCDIR)/config.h
874
+12
--- src/main.mk
+++ src/main.mk
@@ -44,10 +44,11 @@
4444
$(SRCDIR)/encode.c \
4545
$(SRCDIR)/event.c \
4646
$(SRCDIR)/export.c \
4747
$(SRCDIR)/file.c \
4848
$(SRCDIR)/finfo.c \
49
+ $(SRCDIR)/foci.c \
4950
$(SRCDIR)/fusefs.c \
5051
$(SRCDIR)/glob.c \
5152
$(SRCDIR)/graph.c \
5253
$(SRCDIR)/gzip.c \
5354
$(SRCDIR)/http.c \
@@ -164,10 +165,11 @@
164165
$(OBJDIR)/encode_.c \
165166
$(OBJDIR)/event_.c \
166167
$(OBJDIR)/export_.c \
167168
$(OBJDIR)/file_.c \
168169
$(OBJDIR)/finfo_.c \
170
+ $(OBJDIR)/foci_.c \
169171
$(OBJDIR)/fusefs_.c \
170172
$(OBJDIR)/glob_.c \
171173
$(OBJDIR)/graph_.c \
172174
$(OBJDIR)/gzip_.c \
173175
$(OBJDIR)/http_.c \
@@ -281,10 +283,11 @@
281283
$(OBJDIR)/encode.o \
282284
$(OBJDIR)/event.o \
283285
$(OBJDIR)/export.o \
284286
$(OBJDIR)/file.o \
285287
$(OBJDIR)/finfo.o \
288
+ $(OBJDIR)/foci.o \
286289
$(OBJDIR)/fusefs.o \
287290
$(OBJDIR)/glob.o \
288291
$(OBJDIR)/graph.o \
289292
$(OBJDIR)/gzip.o \
290293
$(OBJDIR)/http.o \
@@ -507,10 +510,11 @@
507510
$(OBJDIR)/encode_.c:$(OBJDIR)/encode.h \
508511
$(OBJDIR)/event_.c:$(OBJDIR)/event.h \
509512
$(OBJDIR)/export_.c:$(OBJDIR)/export.h \
510513
$(OBJDIR)/file_.c:$(OBJDIR)/file.h \
511514
$(OBJDIR)/finfo_.c:$(OBJDIR)/finfo.h \
515
+ $(OBJDIR)/foci_.c:$(OBJDIR)/foci.h \
512516
$(OBJDIR)/fusefs_.c:$(OBJDIR)/fusefs.h \
513517
$(OBJDIR)/glob_.c:$(OBJDIR)/glob.h \
514518
$(OBJDIR)/graph_.c:$(OBJDIR)/graph.h \
515519
$(OBJDIR)/gzip_.c:$(OBJDIR)/gzip.h \
516520
$(OBJDIR)/http_.c:$(OBJDIR)/http.h \
@@ -852,10 +856,18 @@
852856
853857
$(OBJDIR)/finfo.o: $(OBJDIR)/finfo_.c $(OBJDIR)/finfo.h $(SRCDIR)/config.h
854858
$(XTCC) -o $(OBJDIR)/finfo.o -c $(OBJDIR)/finfo_.c
855859
856860
$(OBJDIR)/finfo.h: $(OBJDIR)/headers
861
+
862
+$(OBJDIR)/foci_.c: $(SRCDIR)/foci.c $(OBJDIR)/translate
863
+ $(OBJDIR)/translate $(SRCDIR)/foci.c >$@
864
+
865
+$(OBJDIR)/foci.o: $(OBJDIR)/foci_.c $(OBJDIR)/foci.h $(SRCDIR)/config.h
866
+ $(XTCC) -o $(OBJDIR)/foci.o -c $(OBJDIR)/foci_.c
867
+
868
+$(OBJDIR)/foci.h: $(OBJDIR)/headers
857869
858870
$(OBJDIR)/fusefs_.c: $(SRCDIR)/fusefs.c $(OBJDIR)/translate
859871
$(OBJDIR)/translate $(SRCDIR)/fusefs.c >$@
860872
861873
$(OBJDIR)/fusefs.o: $(OBJDIR)/fusefs_.c $(OBJDIR)/fusefs.h $(SRCDIR)/config.h
862874
--- src/main.mk
+++ src/main.mk
@@ -44,10 +44,11 @@
44 $(SRCDIR)/encode.c \
45 $(SRCDIR)/event.c \
46 $(SRCDIR)/export.c \
47 $(SRCDIR)/file.c \
48 $(SRCDIR)/finfo.c \
 
49 $(SRCDIR)/fusefs.c \
50 $(SRCDIR)/glob.c \
51 $(SRCDIR)/graph.c \
52 $(SRCDIR)/gzip.c \
53 $(SRCDIR)/http.c \
@@ -164,10 +165,11 @@
164 $(OBJDIR)/encode_.c \
165 $(OBJDIR)/event_.c \
166 $(OBJDIR)/export_.c \
167 $(OBJDIR)/file_.c \
168 $(OBJDIR)/finfo_.c \
 
169 $(OBJDIR)/fusefs_.c \
170 $(OBJDIR)/glob_.c \
171 $(OBJDIR)/graph_.c \
172 $(OBJDIR)/gzip_.c \
173 $(OBJDIR)/http_.c \
@@ -281,10 +283,11 @@
281 $(OBJDIR)/encode.o \
282 $(OBJDIR)/event.o \
283 $(OBJDIR)/export.o \
284 $(OBJDIR)/file.o \
285 $(OBJDIR)/finfo.o \
 
286 $(OBJDIR)/fusefs.o \
287 $(OBJDIR)/glob.o \
288 $(OBJDIR)/graph.o \
289 $(OBJDIR)/gzip.o \
290 $(OBJDIR)/http.o \
@@ -507,10 +510,11 @@
507 $(OBJDIR)/encode_.c:$(OBJDIR)/encode.h \
508 $(OBJDIR)/event_.c:$(OBJDIR)/event.h \
509 $(OBJDIR)/export_.c:$(OBJDIR)/export.h \
510 $(OBJDIR)/file_.c:$(OBJDIR)/file.h \
511 $(OBJDIR)/finfo_.c:$(OBJDIR)/finfo.h \
 
512 $(OBJDIR)/fusefs_.c:$(OBJDIR)/fusefs.h \
513 $(OBJDIR)/glob_.c:$(OBJDIR)/glob.h \
514 $(OBJDIR)/graph_.c:$(OBJDIR)/graph.h \
515 $(OBJDIR)/gzip_.c:$(OBJDIR)/gzip.h \
516 $(OBJDIR)/http_.c:$(OBJDIR)/http.h \
@@ -852,10 +856,18 @@
852
853 $(OBJDIR)/finfo.o: $(OBJDIR)/finfo_.c $(OBJDIR)/finfo.h $(SRCDIR)/config.h
854 $(XTCC) -o $(OBJDIR)/finfo.o -c $(OBJDIR)/finfo_.c
855
856 $(OBJDIR)/finfo.h: $(OBJDIR)/headers
 
 
 
 
 
 
 
 
857
858 $(OBJDIR)/fusefs_.c: $(SRCDIR)/fusefs.c $(OBJDIR)/translate
859 $(OBJDIR)/translate $(SRCDIR)/fusefs.c >$@
860
861 $(OBJDIR)/fusefs.o: $(OBJDIR)/fusefs_.c $(OBJDIR)/fusefs.h $(SRCDIR)/config.h
862
--- src/main.mk
+++ src/main.mk
@@ -44,10 +44,11 @@
44 $(SRCDIR)/encode.c \
45 $(SRCDIR)/event.c \
46 $(SRCDIR)/export.c \
47 $(SRCDIR)/file.c \
48 $(SRCDIR)/finfo.c \
49 $(SRCDIR)/foci.c \
50 $(SRCDIR)/fusefs.c \
51 $(SRCDIR)/glob.c \
52 $(SRCDIR)/graph.c \
53 $(SRCDIR)/gzip.c \
54 $(SRCDIR)/http.c \
@@ -164,10 +165,11 @@
165 $(OBJDIR)/encode_.c \
166 $(OBJDIR)/event_.c \
167 $(OBJDIR)/export_.c \
168 $(OBJDIR)/file_.c \
169 $(OBJDIR)/finfo_.c \
170 $(OBJDIR)/foci_.c \
171 $(OBJDIR)/fusefs_.c \
172 $(OBJDIR)/glob_.c \
173 $(OBJDIR)/graph_.c \
174 $(OBJDIR)/gzip_.c \
175 $(OBJDIR)/http_.c \
@@ -281,10 +283,11 @@
283 $(OBJDIR)/encode.o \
284 $(OBJDIR)/event.o \
285 $(OBJDIR)/export.o \
286 $(OBJDIR)/file.o \
287 $(OBJDIR)/finfo.o \
288 $(OBJDIR)/foci.o \
289 $(OBJDIR)/fusefs.o \
290 $(OBJDIR)/glob.o \
291 $(OBJDIR)/graph.o \
292 $(OBJDIR)/gzip.o \
293 $(OBJDIR)/http.o \
@@ -507,10 +510,11 @@
510 $(OBJDIR)/encode_.c:$(OBJDIR)/encode.h \
511 $(OBJDIR)/event_.c:$(OBJDIR)/event.h \
512 $(OBJDIR)/export_.c:$(OBJDIR)/export.h \
513 $(OBJDIR)/file_.c:$(OBJDIR)/file.h \
514 $(OBJDIR)/finfo_.c:$(OBJDIR)/finfo.h \
515 $(OBJDIR)/foci_.c:$(OBJDIR)/foci.h \
516 $(OBJDIR)/fusefs_.c:$(OBJDIR)/fusefs.h \
517 $(OBJDIR)/glob_.c:$(OBJDIR)/glob.h \
518 $(OBJDIR)/graph_.c:$(OBJDIR)/graph.h \
519 $(OBJDIR)/gzip_.c:$(OBJDIR)/gzip.h \
520 $(OBJDIR)/http_.c:$(OBJDIR)/http.h \
@@ -852,10 +856,18 @@
856
857 $(OBJDIR)/finfo.o: $(OBJDIR)/finfo_.c $(OBJDIR)/finfo.h $(SRCDIR)/config.h
858 $(XTCC) -o $(OBJDIR)/finfo.o -c $(OBJDIR)/finfo_.c
859
860 $(OBJDIR)/finfo.h: $(OBJDIR)/headers
861
862 $(OBJDIR)/foci_.c: $(SRCDIR)/foci.c $(OBJDIR)/translate
863 $(OBJDIR)/translate $(SRCDIR)/foci.c >$@
864
865 $(OBJDIR)/foci.o: $(OBJDIR)/foci_.c $(OBJDIR)/foci.h $(SRCDIR)/config.h
866 $(XTCC) -o $(OBJDIR)/foci.o -c $(OBJDIR)/foci_.c
867
868 $(OBJDIR)/foci.h: $(OBJDIR)/headers
869
870 $(OBJDIR)/fusefs_.c: $(SRCDIR)/fusefs.c $(OBJDIR)/translate
871 $(OBJDIR)/translate $(SRCDIR)/fusefs.c >$@
872
873 $(OBJDIR)/fusefs.o: $(OBJDIR)/fusefs_.c $(OBJDIR)/fusefs.h $(SRCDIR)/config.h
874
--- src/makemake.tcl
+++ src/makemake.tcl
@@ -51,10 +51,11 @@
5151
encode
5252
event
5353
export
5454
file
5555
finfo
56
+ foci
5657
fusefs
5758
glob
5859
graph
5960
gzip
6061
http
6162
--- src/makemake.tcl
+++ src/makemake.tcl
@@ -51,10 +51,11 @@
51 encode
52 event
53 export
54 file
55 finfo
 
56 fusefs
57 glob
58 graph
59 gzip
60 http
61
--- src/makemake.tcl
+++ src/makemake.tcl
@@ -51,10 +51,11 @@
51 encode
52 event
53 export
54 file
55 finfo
56 foci
57 fusefs
58 glob
59 graph
60 gzip
61 http
62
--- src/makemake.tcl
+++ src/makemake.tcl
@@ -51,10 +51,11 @@
5151
encode
5252
event
5353
export
5454
file
5555
finfo
56
+ foci
5657
fusefs
5758
glob
5859
graph
5960
gzip
6061
http
6162
--- src/makemake.tcl
+++ src/makemake.tcl
@@ -51,10 +51,11 @@
51 encode
52 event
53 export
54 file
55 finfo
 
56 fusefs
57 glob
58 graph
59 gzip
60 http
61
--- src/makemake.tcl
+++ src/makemake.tcl
@@ -51,10 +51,11 @@
51 encode
52 event
53 export
54 file
55 finfo
56 foci
57 fusefs
58 glob
59 graph
60 gzip
61 http
62
--- src/moderate.c
+++ src/moderate.c
@@ -116,10 +116,11 @@
116116
attachRid = db_int(0, "SELECT attachRid FROM modreq WHERE objid=%d", rid);
117117
if( rid==objid ){
118118
db_multi_exec("DELETE FROM modreq WHERE objid=%d", rid);
119119
}
120120
if( attachRid && object_used(attachRid) ) attachRid = 0;
121
+ admin_log("Disapproved moderation of rid %d.", rid);
121122
rid = attachRid;
122123
}
123124
db_end_transaction(0);
124125
}
125126
@@ -134,10 +135,11 @@
134135
"INSERT OR IGNORE INTO unclustered VALUES(%d);"
135136
"INSERT OR IGNORE INTO unsent VALUES(%d);",
136137
rid, rid, rid
137138
);
138139
db_multi_exec("DELETE FROM modreq WHERE objid=%d", rid);
140
+ admin_log("Approved moderation of rid %d.", rid);
139141
db_end_transaction(0);
140142
}
141143
142144
/*
143145
** WEBPAGE: modreq
144146
--- src/moderate.c
+++ src/moderate.c
@@ -116,10 +116,11 @@
116 attachRid = db_int(0, "SELECT attachRid FROM modreq WHERE objid=%d", rid);
117 if( rid==objid ){
118 db_multi_exec("DELETE FROM modreq WHERE objid=%d", rid);
119 }
120 if( attachRid && object_used(attachRid) ) attachRid = 0;
 
121 rid = attachRid;
122 }
123 db_end_transaction(0);
124 }
125
@@ -134,10 +135,11 @@
134 "INSERT OR IGNORE INTO unclustered VALUES(%d);"
135 "INSERT OR IGNORE INTO unsent VALUES(%d);",
136 rid, rid, rid
137 );
138 db_multi_exec("DELETE FROM modreq WHERE objid=%d", rid);
 
139 db_end_transaction(0);
140 }
141
142 /*
143 ** WEBPAGE: modreq
144
--- src/moderate.c
+++ src/moderate.c
@@ -116,10 +116,11 @@
116 attachRid = db_int(0, "SELECT attachRid FROM modreq WHERE objid=%d", rid);
117 if( rid==objid ){
118 db_multi_exec("DELETE FROM modreq WHERE objid=%d", rid);
119 }
120 if( attachRid && object_used(attachRid) ) attachRid = 0;
121 admin_log("Disapproved moderation of rid %d.", rid);
122 rid = attachRid;
123 }
124 db_end_transaction(0);
125 }
126
@@ -134,10 +135,11 @@
135 "INSERT OR IGNORE INTO unclustered VALUES(%d);"
136 "INSERT OR IGNORE INTO unsent VALUES(%d);",
137 rid, rid, rid
138 );
139 db_multi_exec("DELETE FROM modreq WHERE objid=%d", rid);
140 admin_log("Approved moderation of rid %d.", rid);
141 db_end_transaction(0);
142 }
143
144 /*
145 ** WEBPAGE: modreq
146
+1 -1
--- src/rebuild.c
+++ src/rebuild.c
@@ -346,11 +346,11 @@
346346
rebuild_update_schema();
347347
for(;;){
348348
zTable = db_text(0,
349349
"SELECT name FROM sqlite_master /*scan*/"
350350
" WHERE type='table'"
351
- " AND name NOT IN ('blob','delta','rcvfrom','user',"
351
+ " AND name NOT IN ('admin_log', 'blob','delta','rcvfrom','user',"
352352
"'config','shun','private','reportfmt',"
353353
"'concealed','accesslog','modreq',"
354354
"'purgeevent','purgeitem')"
355355
" AND name NOT GLOB 'sqlite_*'"
356356
" AND name NOT GLOB 'fx_*'"
357357
--- src/rebuild.c
+++ src/rebuild.c
@@ -346,11 +346,11 @@
346 rebuild_update_schema();
347 for(;;){
348 zTable = db_text(0,
349 "SELECT name FROM sqlite_master /*scan*/"
350 " WHERE type='table'"
351 " AND name NOT IN ('blob','delta','rcvfrom','user',"
352 "'config','shun','private','reportfmt',"
353 "'concealed','accesslog','modreq',"
354 "'purgeevent','purgeitem')"
355 " AND name NOT GLOB 'sqlite_*'"
356 " AND name NOT GLOB 'fx_*'"
357
--- src/rebuild.c
+++ src/rebuild.c
@@ -346,11 +346,11 @@
346 rebuild_update_schema();
347 for(;;){
348 zTable = db_text(0,
349 "SELECT name FROM sqlite_master /*scan*/"
350 " WHERE type='table'"
351 " AND name NOT IN ('admin_log', 'blob','delta','rcvfrom','user',"
352 "'config','shun','private','reportfmt',"
353 "'concealed','accesslog','modreq',"
354 "'purgeevent','purgeitem')"
355 " AND name NOT GLOB 'sqlite_*'"
356 " AND name NOT GLOB 'fx_*'"
357
+1 -1
--- src/rebuild.c
+++ src/rebuild.c
@@ -346,11 +346,11 @@
346346
rebuild_update_schema();
347347
for(;;){
348348
zTable = db_text(0,
349349
"SELECT name FROM sqlite_master /*scan*/"
350350
" WHERE type='table'"
351
- " AND name NOT IN ('blob','delta','rcvfrom','user',"
351
+ " AND name NOT IN ('admin_log', 'blob','delta','rcvfrom','user',"
352352
"'config','shun','private','reportfmt',"
353353
"'concealed','accesslog','modreq',"
354354
"'purgeevent','purgeitem')"
355355
" AND name NOT GLOB 'sqlite_*'"
356356
" AND name NOT GLOB 'fx_*'"
357357
--- src/rebuild.c
+++ src/rebuild.c
@@ -346,11 +346,11 @@
346 rebuild_update_schema();
347 for(;;){
348 zTable = db_text(0,
349 "SELECT name FROM sqlite_master /*scan*/"
350 " WHERE type='table'"
351 " AND name NOT IN ('blob','delta','rcvfrom','user',"
352 "'config','shun','private','reportfmt',"
353 "'concealed','accesslog','modreq',"
354 "'purgeevent','purgeitem')"
355 " AND name NOT GLOB 'sqlite_*'"
356 " AND name NOT GLOB 'fx_*'"
357
--- src/rebuild.c
+++ src/rebuild.c
@@ -346,11 +346,11 @@
346 rebuild_update_schema();
347 for(;;){
348 zTable = db_text(0,
349 "SELECT name FROM sqlite_master /*scan*/"
350 " WHERE type='table'"
351 " AND name NOT IN ('admin_log', 'blob','delta','rcvfrom','user',"
352 "'config','shun','private','reportfmt',"
353 "'concealed','accesslog','modreq',"
354 "'purgeevent','purgeitem')"
355 " AND name NOT GLOB 'sqlite_*'"
356 " AND name NOT GLOB 'fx_*'"
357
+98 -1
--- src/setup.c
+++ src/setup.c
@@ -109,10 +109,12 @@
109109
"Show artifacts that are shunned by this repository");
110110
setup_menu_entry("Log", "rcvfromlist",
111111
"A record of received artifacts and their sources");
112112
setup_menu_entry("User-Log", "access_log",
113113
"A record of login attempts");
114
+ setup_menu_entry("Admin-Log", "admin_log",
115
+ "View the admin_log entries");
114116
setup_menu_entry("Stats", "stat",
115117
"Display repository statistics");
116118
setup_menu_entry("SQL", "admin_sql",
117119
"Enter raw SQL commands");
118120
setup_menu_entry("TH1", "admin_th1",
@@ -380,12 +382,14 @@
380382
}
381383
login_verify_csrf_secret();
382384
db_multi_exec(
383385
"REPLACE INTO user(uid,login,info,pw,cap,mtime) "
384386
"VALUES(nullif(%d,0),%Q,%Q,%Q,%Q,now())",
385
- uid, P("login"), P("info"), zPw, zCap
387
+ uid, zLogin, P("info"), zPw, zCap
386388
);
389
+ admin_log( "Updated user [%q] with capabilities [%q].",
390
+ zLogin, zCap );
387391
if( atoi(PD("all","0"))>0 ){
388392
Blob sql;
389393
char *zErr = 0;
390394
blob_zero(&sql);
391395
if( zOldLogin==0 ){
@@ -407,12 +411,16 @@
407411
zLogin, P("pw"), zLogin, P("info"), zCap,
408412
zOldLogin
409413
);
410414
login_group_sql(blob_str(&sql), "<li> ", " </li>\n", &zErr);
411415
blob_reset(&sql);
416
+ admin_log( "Updated user [%q] in all login groups "
417
+ "with capabilities [%q].",
418
+ zLogin, zCap );
412419
if( zErr ){
413420
style_header("User Change Error");
421
+ admin_log( "Error updating user '%q': %s'.", zLogin, zErr );
414422
@ <span class="loginError">%s(zErr)</span>
415423
@
416424
@ <p><a href="setup_uedit?id=%d(uid)">[Bummer]</a></p>
417425
style_footer();
418426
return;
@@ -862,10 +870,12 @@
862870
if( zQ ){
863871
int iQ = fossil_strcmp(zQ,"on")==0 || atoi(zQ);
864872
if( iQ!=iVal ){
865873
login_verify_csrf_secret();
866874
db_set(zVar, iQ ? "1" : "0", 0);
875
+ admin_log("Set option [%q] to [%q].",
876
+ zVar, iQ ? "on" : "off");
867877
iVal = iQ;
868878
}
869879
}
870880
@ <input type="checkbox" name="%s(zQParm)"
871881
if( iVal ){
@@ -889,12 +899,15 @@
889899
int disabled /* 1 if disabled */
890900
){
891901
const char *zVal = db_get(zVar, zDflt);
892902
const char *zQ = P(zQParm);
893903
if( zQ && fossil_strcmp(zQ,zVal)!=0 ){
904
+ const int nZQ = (int)strlen(zQ);
894905
login_verify_csrf_secret();
895906
db_set(zVar, zQ, 0);
907
+ admin_log("Set entry_attribute %Q to: %.*s%s",
908
+ zVar, 20, zQ, (nZQ>20 ? "..." : ""));
896909
zVal = zQ;
897910
}
898911
@ <input type="text" id="%s(zQParm)" name="%s(zQParm)" value="%h(zVal)" size="%d(width)"
899912
if( disabled ){
900913
@ disabled="disabled"
@@ -915,12 +928,15 @@
915928
int disabled /* 1 if the textarea should not be editable */
916929
){
917930
const char *z = db_get(zVar, (char*)zDflt);
918931
const char *zQ = P(zQP);
919932
if( zQ && !disabled && fossil_strcmp(zQ,z)!=0){
933
+ const int nZQ = (int)strlen(zQ);
920934
login_verify_csrf_secret();
921935
db_set(zVar, zQ, 0);
936
+ admin_log("Set textarea_attribute %Q to: %.*s%s",
937
+ zVar, 20, zQ, (nZQ>20 ? "..." : ""));
922938
z = zQ;
923939
}
924940
if( rows>0 && cols>0 ){
925941
@ <textarea id="id%s(zQP)" name="%s(zQP)" rows="%d(rows)"
926942
if( disabled ){
@@ -946,12 +962,15 @@
946962
){
947963
const char *z = db_get(zVar, (char*)zDflt);
948964
const char *zQ = P(zQP);
949965
int i;
950966
if( zQ && fossil_strcmp(zQ,z)!=0){
967
+ const int nZQ = (int)strlen(zQ);
951968
login_verify_csrf_secret();
952969
db_set(zVar, zQ, 0);
970
+ admin_log("Set multiple_choice_attribute %Q to: %.*s%s",
971
+ zVar, 20, zQ, (nZQ>20 ? "..." : ""));
953972
z = zQ;
954973
}
955974
@ <select size="1" name="%s(zQP)" id="id%s(zQP)">
956975
for(i=0; i<nChoice*2; i+=2){
957976
const char *zSel = fossil_strcmp(azChoice[i],z)==0 ? " selected" : "";
@@ -2023,5 +2042,83 @@
20232042
@ <pre class="th1error">%h(zR)</pre>
20242043
}
20252044
}
20262045
style_footer();
20272046
}
2047
+
2048
+static void admin_log_render_limits(){
2049
+ int const count = db_int(0,"SELECT COUNT(*) FROM admin_log");
2050
+ int i;
2051
+ int limits[] = {
2052
+ 10, 20, 50, 100, 250, 500, 0
2053
+ };
2054
+ for(i = 0; limits[i]; ++i ){
2055
+ cgi_printf("%s<a href='?n=%d'>%d</a>",
2056
+ i ? " " : "",
2057
+ limits[i], limits[i]);
2058
+ if(limits[i]>count) break;
2059
+ }
2060
+}
2061
+
2062
+/*
2063
+** WEBPAGE: admin_log
2064
+**
2065
+** Shows the contents of the admin_log table, which is only created if
2066
+** the admin-log setting is enabled. Requires Admin or Setup ('a' or
2067
+** 's') permissions.
2068
+*/
2069
+void page_admin_log(){
2070
+ Stmt stLog = empty_Stmt;
2071
+ Blob qLog = empty_blob;
2072
+ int limit;
2073
+ int fLogEnabled;
2074
+ int counter = 0;
2075
+ login_check_credentials();
2076
+ if( !g.perm.Setup && !g.perm.Admin ){
2077
+ login_needed();
2078
+ }
2079
+ style_header("Admin Log");
2080
+ create_admin_log_table();
2081
+ limit = atoi(PD("n","20"));
2082
+ fLogEnabled = db_get_boolean("admin-log", 0);
2083
+ @ <div>Admin logging is %s(fLogEnabled?"on":"off").</div>
2084
+
2085
+
2086
+ @ <div>Limit results to: <span>
2087
+ admin_log_render_limits();
2088
+ @ </span></div>
2089
+
2090
+ blob_append_sql(&qLog,
2091
+ "SELECT datetime(time,'unixepoch'), who, page, what "
2092
+ "FROM admin_log "
2093
+ "ORDER BY time DESC ");
2094
+ if(limit>0){
2095
+ @ %d(limit) Most recent entries:
2096
+ blob_append_sql(&qLog, "LIMIT %d", limit);
2097
+ }
2098
+ db_prepare(&stLog, "%s", blob_sql_text(&qLog));
2099
+ blob_reset(&qLog);
2100
+ @ <table id="adminLogTable" class="adminLogTable" width="100%%">
2101
+ @ <thead>
2102
+ @ <th>Time</th>
2103
+ @ <th>User</th>
2104
+ @ <th>Page</th>
2105
+ @ <th width="60%%">Message</th>
2106
+ @ </thead><tbody>
2107
+ while( SQLITE_ROW == db_step(&stLog) ){
2108
+ char const * zTime = db_column_text(&stLog, 0);
2109
+ char const * zUser = db_column_text(&stLog, 1);
2110
+ char const * zPage = db_column_text(&stLog, 2);
2111
+ char const * zMessage = db_column_text(&stLog, 3);
2112
+ @ <tr class="row%d(counter++%2)">
2113
+ @ <td class="adminTime">%s(zTime)</td>
2114
+ @ <td>%s(zUser)</td>
2115
+ @ <td>%s(zPage)</td>
2116
+ @ <td>%h(zMessage)</td>
2117
+ @ </tr>
2118
+ }
2119
+ @ </tbody></table>
2120
+ if(limit>0 && counter<limit){
2121
+ @ <div>%d(counter) entries shown.</div>
2122
+ }
2123
+ style_footer();
2124
+}
20282125
--- src/setup.c
+++ src/setup.c
@@ -109,10 +109,12 @@
109 "Show artifacts that are shunned by this repository");
110 setup_menu_entry("Log", "rcvfromlist",
111 "A record of received artifacts and their sources");
112 setup_menu_entry("User-Log", "access_log",
113 "A record of login attempts");
 
 
114 setup_menu_entry("Stats", "stat",
115 "Display repository statistics");
116 setup_menu_entry("SQL", "admin_sql",
117 "Enter raw SQL commands");
118 setup_menu_entry("TH1", "admin_th1",
@@ -380,12 +382,14 @@
380 }
381 login_verify_csrf_secret();
382 db_multi_exec(
383 "REPLACE INTO user(uid,login,info,pw,cap,mtime) "
384 "VALUES(nullif(%d,0),%Q,%Q,%Q,%Q,now())",
385 uid, P("login"), P("info"), zPw, zCap
386 );
 
 
387 if( atoi(PD("all","0"))>0 ){
388 Blob sql;
389 char *zErr = 0;
390 blob_zero(&sql);
391 if( zOldLogin==0 ){
@@ -407,12 +411,16 @@
407 zLogin, P("pw"), zLogin, P("info"), zCap,
408 zOldLogin
409 );
410 login_group_sql(blob_str(&sql), "<li> ", " </li>\n", &zErr);
411 blob_reset(&sql);
 
 
 
412 if( zErr ){
413 style_header("User Change Error");
 
414 @ <span class="loginError">%s(zErr)</span>
415 @
416 @ <p><a href="setup_uedit?id=%d(uid)">[Bummer]</a></p>
417 style_footer();
418 return;
@@ -862,10 +870,12 @@
862 if( zQ ){
863 int iQ = fossil_strcmp(zQ,"on")==0 || atoi(zQ);
864 if( iQ!=iVal ){
865 login_verify_csrf_secret();
866 db_set(zVar, iQ ? "1" : "0", 0);
 
 
867 iVal = iQ;
868 }
869 }
870 @ <input type="checkbox" name="%s(zQParm)"
871 if( iVal ){
@@ -889,12 +899,15 @@
889 int disabled /* 1 if disabled */
890 ){
891 const char *zVal = db_get(zVar, zDflt);
892 const char *zQ = P(zQParm);
893 if( zQ && fossil_strcmp(zQ,zVal)!=0 ){
 
894 login_verify_csrf_secret();
895 db_set(zVar, zQ, 0);
 
 
896 zVal = zQ;
897 }
898 @ <input type="text" id="%s(zQParm)" name="%s(zQParm)" value="%h(zVal)" size="%d(width)"
899 if( disabled ){
900 @ disabled="disabled"
@@ -915,12 +928,15 @@
915 int disabled /* 1 if the textarea should not be editable */
916 ){
917 const char *z = db_get(zVar, (char*)zDflt);
918 const char *zQ = P(zQP);
919 if( zQ && !disabled && fossil_strcmp(zQ,z)!=0){
 
920 login_verify_csrf_secret();
921 db_set(zVar, zQ, 0);
 
 
922 z = zQ;
923 }
924 if( rows>0 && cols>0 ){
925 @ <textarea id="id%s(zQP)" name="%s(zQP)" rows="%d(rows)"
926 if( disabled ){
@@ -946,12 +962,15 @@
946 ){
947 const char *z = db_get(zVar, (char*)zDflt);
948 const char *zQ = P(zQP);
949 int i;
950 if( zQ && fossil_strcmp(zQ,z)!=0){
 
951 login_verify_csrf_secret();
952 db_set(zVar, zQ, 0);
 
 
953 z = zQ;
954 }
955 @ <select size="1" name="%s(zQP)" id="id%s(zQP)">
956 for(i=0; i<nChoice*2; i+=2){
957 const char *zSel = fossil_strcmp(azChoice[i],z)==0 ? " selected" : "";
@@ -2023,5 +2042,83 @@
2023 @ <pre class="th1error">%h(zR)</pre>
2024 }
2025 }
2026 style_footer();
2027 }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2028
--- src/setup.c
+++ src/setup.c
@@ -109,10 +109,12 @@
109 "Show artifacts that are shunned by this repository");
110 setup_menu_entry("Log", "rcvfromlist",
111 "A record of received artifacts and their sources");
112 setup_menu_entry("User-Log", "access_log",
113 "A record of login attempts");
114 setup_menu_entry("Admin-Log", "admin_log",
115 "View the admin_log entries");
116 setup_menu_entry("Stats", "stat",
117 "Display repository statistics");
118 setup_menu_entry("SQL", "admin_sql",
119 "Enter raw SQL commands");
120 setup_menu_entry("TH1", "admin_th1",
@@ -380,12 +382,14 @@
382 }
383 login_verify_csrf_secret();
384 db_multi_exec(
385 "REPLACE INTO user(uid,login,info,pw,cap,mtime) "
386 "VALUES(nullif(%d,0),%Q,%Q,%Q,%Q,now())",
387 uid, zLogin, P("info"), zPw, zCap
388 );
389 admin_log( "Updated user [%q] with capabilities [%q].",
390 zLogin, zCap );
391 if( atoi(PD("all","0"))>0 ){
392 Blob sql;
393 char *zErr = 0;
394 blob_zero(&sql);
395 if( zOldLogin==0 ){
@@ -407,12 +411,16 @@
411 zLogin, P("pw"), zLogin, P("info"), zCap,
412 zOldLogin
413 );
414 login_group_sql(blob_str(&sql), "<li> ", " </li>\n", &zErr);
415 blob_reset(&sql);
416 admin_log( "Updated user [%q] in all login groups "
417 "with capabilities [%q].",
418 zLogin, zCap );
419 if( zErr ){
420 style_header("User Change Error");
421 admin_log( "Error updating user '%q': %s'.", zLogin, zErr );
422 @ <span class="loginError">%s(zErr)</span>
423 @
424 @ <p><a href="setup_uedit?id=%d(uid)">[Bummer]</a></p>
425 style_footer();
426 return;
@@ -862,10 +870,12 @@
870 if( zQ ){
871 int iQ = fossil_strcmp(zQ,"on")==0 || atoi(zQ);
872 if( iQ!=iVal ){
873 login_verify_csrf_secret();
874 db_set(zVar, iQ ? "1" : "0", 0);
875 admin_log("Set option [%q] to [%q].",
876 zVar, iQ ? "on" : "off");
877 iVal = iQ;
878 }
879 }
880 @ <input type="checkbox" name="%s(zQParm)"
881 if( iVal ){
@@ -889,12 +899,15 @@
899 int disabled /* 1 if disabled */
900 ){
901 const char *zVal = db_get(zVar, zDflt);
902 const char *zQ = P(zQParm);
903 if( zQ && fossil_strcmp(zQ,zVal)!=0 ){
904 const int nZQ = (int)strlen(zQ);
905 login_verify_csrf_secret();
906 db_set(zVar, zQ, 0);
907 admin_log("Set entry_attribute %Q to: %.*s%s",
908 zVar, 20, zQ, (nZQ>20 ? "..." : ""));
909 zVal = zQ;
910 }
911 @ <input type="text" id="%s(zQParm)" name="%s(zQParm)" value="%h(zVal)" size="%d(width)"
912 if( disabled ){
913 @ disabled="disabled"
@@ -915,12 +928,15 @@
928 int disabled /* 1 if the textarea should not be editable */
929 ){
930 const char *z = db_get(zVar, (char*)zDflt);
931 const char *zQ = P(zQP);
932 if( zQ && !disabled && fossil_strcmp(zQ,z)!=0){
933 const int nZQ = (int)strlen(zQ);
934 login_verify_csrf_secret();
935 db_set(zVar, zQ, 0);
936 admin_log("Set textarea_attribute %Q to: %.*s%s",
937 zVar, 20, zQ, (nZQ>20 ? "..." : ""));
938 z = zQ;
939 }
940 if( rows>0 && cols>0 ){
941 @ <textarea id="id%s(zQP)" name="%s(zQP)" rows="%d(rows)"
942 if( disabled ){
@@ -946,12 +962,15 @@
962 ){
963 const char *z = db_get(zVar, (char*)zDflt);
964 const char *zQ = P(zQP);
965 int i;
966 if( zQ && fossil_strcmp(zQ,z)!=0){
967 const int nZQ = (int)strlen(zQ);
968 login_verify_csrf_secret();
969 db_set(zVar, zQ, 0);
970 admin_log("Set multiple_choice_attribute %Q to: %.*s%s",
971 zVar, 20, zQ, (nZQ>20 ? "..." : ""));
972 z = zQ;
973 }
974 @ <select size="1" name="%s(zQP)" id="id%s(zQP)">
975 for(i=0; i<nChoice*2; i+=2){
976 const char *zSel = fossil_strcmp(azChoice[i],z)==0 ? " selected" : "";
@@ -2023,5 +2042,83 @@
2042 @ <pre class="th1error">%h(zR)</pre>
2043 }
2044 }
2045 style_footer();
2046 }
2047
2048 static void admin_log_render_limits(){
2049 int const count = db_int(0,"SELECT COUNT(*) FROM admin_log");
2050 int i;
2051 int limits[] = {
2052 10, 20, 50, 100, 250, 500, 0
2053 };
2054 for(i = 0; limits[i]; ++i ){
2055 cgi_printf("%s<a href='?n=%d'>%d</a>",
2056 i ? " " : "",
2057 limits[i], limits[i]);
2058 if(limits[i]>count) break;
2059 }
2060 }
2061
2062 /*
2063 ** WEBPAGE: admin_log
2064 **
2065 ** Shows the contents of the admin_log table, which is only created if
2066 ** the admin-log setting is enabled. Requires Admin or Setup ('a' or
2067 ** 's') permissions.
2068 */
2069 void page_admin_log(){
2070 Stmt stLog = empty_Stmt;
2071 Blob qLog = empty_blob;
2072 int limit;
2073 int fLogEnabled;
2074 int counter = 0;
2075 login_check_credentials();
2076 if( !g.perm.Setup && !g.perm.Admin ){
2077 login_needed();
2078 }
2079 style_header("Admin Log");
2080 create_admin_log_table();
2081 limit = atoi(PD("n","20"));
2082 fLogEnabled = db_get_boolean("admin-log", 0);
2083 @ <div>Admin logging is %s(fLogEnabled?"on":"off").</div>
2084
2085
2086 @ <div>Limit results to: <span>
2087 admin_log_render_limits();
2088 @ </span></div>
2089
2090 blob_append_sql(&qLog,
2091 "SELECT datetime(time,'unixepoch'), who, page, what "
2092 "FROM admin_log "
2093 "ORDER BY time DESC ");
2094 if(limit>0){
2095 @ %d(limit) Most recent entries:
2096 blob_append_sql(&qLog, "LIMIT %d", limit);
2097 }
2098 db_prepare(&stLog, "%s", blob_sql_text(&qLog));
2099 blob_reset(&qLog);
2100 @ <table id="adminLogTable" class="adminLogTable" width="100%%">
2101 @ <thead>
2102 @ <th>Time</th>
2103 @ <th>User</th>
2104 @ <th>Page</th>
2105 @ <th width="60%%">Message</th>
2106 @ </thead><tbody>
2107 while( SQLITE_ROW == db_step(&stLog) ){
2108 char const * zTime = db_column_text(&stLog, 0);
2109 char const * zUser = db_column_text(&stLog, 1);
2110 char const * zPage = db_column_text(&stLog, 2);
2111 char const * zMessage = db_column_text(&stLog, 3);
2112 @ <tr class="row%d(counter++%2)">
2113 @ <td class="adminTime">%s(zTime)</td>
2114 @ <td>%s(zUser)</td>
2115 @ <td>%s(zPage)</td>
2116 @ <td>%h(zMessage)</td>
2117 @ </tr>
2118 }
2119 @ </tbody></table>
2120 if(limit>0 && counter<limit){
2121 @ <div>%d(counter) entries shown.</div>
2122 }
2123 style_footer();
2124 }
2125
+3
--- src/shun.c
+++ src/shun.c
@@ -56,10 +56,11 @@
5656
if( P("rebuild") ){
5757
db_close(1);
5858
db_open_repository(g.zRepositoryName);
5959
db_begin_transaction();
6060
rebuild_db(0, 0, 0);
61
+ admin_log("Rebuilt database.");
6162
db_end_transaction(0);
6263
}
6364
if( zUuid ){
6465
char *p;
6566
int i = 0;
@@ -101,10 +102,11 @@
101102
while( *p ){
102103
db_multi_exec("DELETE FROM shun WHERE uuid=%Q", p);
103104
if( !db_exists("SELECT 1 FROM blob WHERE uuid=%Q", p) ){
104105
allExist = 0;
105106
}
107
+ admin_log("Unshunned %Q", p);
106108
p += UUID_SIZE+1;
107109
}
108110
if( allExist ){
109111
@ <p class="noMoreShun">Artifact(s)<br />
110112
for( p = zUuid ; *p ; p += UUID_SIZE+1 ){
@@ -139,10 +141,11 @@
139141
if( tagid ){
140142
db_multi_exec("DELETE FROM ticket WHERE tkt_uuid=%Q", p);
141143
db_multi_exec("DELETE FROM tag WHERE tagid=%d", tagid);
142144
db_multi_exec("DELETE FROM tagxref WHERE tagid=%d", tagid);
143145
}
146
+ admin_log("Shunned %Q", p);
144147
p += UUID_SIZE+1;
145148
}
146149
@ <p class="shunned">Artifact(s)<br />
147150
for( p = zUuid ; *p ; p += UUID_SIZE+1 ){
148151
@ <a href="%s(g.zTop)/artifact/%s(p)">%s(p)</a><br />
149152
--- src/shun.c
+++ src/shun.c
@@ -56,10 +56,11 @@
56 if( P("rebuild") ){
57 db_close(1);
58 db_open_repository(g.zRepositoryName);
59 db_begin_transaction();
60 rebuild_db(0, 0, 0);
 
61 db_end_transaction(0);
62 }
63 if( zUuid ){
64 char *p;
65 int i = 0;
@@ -101,10 +102,11 @@
101 while( *p ){
102 db_multi_exec("DELETE FROM shun WHERE uuid=%Q", p);
103 if( !db_exists("SELECT 1 FROM blob WHERE uuid=%Q", p) ){
104 allExist = 0;
105 }
 
106 p += UUID_SIZE+1;
107 }
108 if( allExist ){
109 @ <p class="noMoreShun">Artifact(s)<br />
110 for( p = zUuid ; *p ; p += UUID_SIZE+1 ){
@@ -139,10 +141,11 @@
139 if( tagid ){
140 db_multi_exec("DELETE FROM ticket WHERE tkt_uuid=%Q", p);
141 db_multi_exec("DELETE FROM tag WHERE tagid=%d", tagid);
142 db_multi_exec("DELETE FROM tagxref WHERE tagid=%d", tagid);
143 }
 
144 p += UUID_SIZE+1;
145 }
146 @ <p class="shunned">Artifact(s)<br />
147 for( p = zUuid ; *p ; p += UUID_SIZE+1 ){
148 @ <a href="%s(g.zTop)/artifact/%s(p)">%s(p)</a><br />
149
--- src/shun.c
+++ src/shun.c
@@ -56,10 +56,11 @@
56 if( P("rebuild") ){
57 db_close(1);
58 db_open_repository(g.zRepositoryName);
59 db_begin_transaction();
60 rebuild_db(0, 0, 0);
61 admin_log("Rebuilt database.");
62 db_end_transaction(0);
63 }
64 if( zUuid ){
65 char *p;
66 int i = 0;
@@ -101,10 +102,11 @@
102 while( *p ){
103 db_multi_exec("DELETE FROM shun WHERE uuid=%Q", p);
104 if( !db_exists("SELECT 1 FROM blob WHERE uuid=%Q", p) ){
105 allExist = 0;
106 }
107 admin_log("Unshunned %Q", p);
108 p += UUID_SIZE+1;
109 }
110 if( allExist ){
111 @ <p class="noMoreShun">Artifact(s)<br />
112 for( p = zUuid ; *p ; p += UUID_SIZE+1 ){
@@ -139,10 +141,11 @@
141 if( tagid ){
142 db_multi_exec("DELETE FROM ticket WHERE tkt_uuid=%Q", p);
143 db_multi_exec("DELETE FROM tag WHERE tagid=%d", tagid);
144 db_multi_exec("DELETE FROM tagxref WHERE tagid=%d", tagid);
145 }
146 admin_log("Shunned %Q", p);
147 p += UUID_SIZE+1;
148 }
149 @ <p class="shunned">Artifact(s)<br />
150 for( p = zUuid ; *p ; p += UUID_SIZE+1 ){
151 @ <a href="%s(g.zTop)/artifact/%s(p)">%s(p)</a><br />
152
--- src/sqlcmd.c
+++ src/sqlcmd.c
@@ -132,10 +132,12 @@
132132
const char **pzErrMsg,
133133
const void *notUsed
134134
){
135135
add_content_sql_commands(db);
136136
re_add_sql_func(db);
137
+ g.zMainDbType = "repository";
138
+ foci_register(db);
137139
g.repositoryOpen = 1;
138140
g.db = db;
139141
return SQLITE_OK;
140142
}
141143
142144
--- src/sqlcmd.c
+++ src/sqlcmd.c
@@ -132,10 +132,12 @@
132 const char **pzErrMsg,
133 const void *notUsed
134 ){
135 add_content_sql_commands(db);
136 re_add_sql_func(db);
 
 
137 g.repositoryOpen = 1;
138 g.db = db;
139 return SQLITE_OK;
140 }
141
142
--- src/sqlcmd.c
+++ src/sqlcmd.c
@@ -132,10 +132,12 @@
132 const char **pzErrMsg,
133 const void *notUsed
134 ){
135 add_content_sql_commands(db);
136 re_add_sql_func(db);
137 g.zMainDbType = "repository";
138 foci_register(db);
139 g.repositoryOpen = 1;
140 g.db = db;
141 return SQLITE_OK;
142 }
143
144
--- src/sqlcmd.c
+++ src/sqlcmd.c
@@ -132,10 +132,12 @@
132132
const char **pzErrMsg,
133133
const void *notUsed
134134
){
135135
add_content_sql_commands(db);
136136
re_add_sql_func(db);
137
+ g.zMainDbType = "repository";
138
+ foci_register(db);
137139
g.repositoryOpen = 1;
138140
g.db = db;
139141
return SQLITE_OK;
140142
}
141143
142144
--- src/sqlcmd.c
+++ src/sqlcmd.c
@@ -132,10 +132,12 @@
132 const char **pzErrMsg,
133 const void *notUsed
134 ){
135 add_content_sql_commands(db);
136 re_add_sql_func(db);
 
 
137 g.repositoryOpen = 1;
138 g.db = db;
139 return SQLITE_OK;
140 }
141
142
--- src/sqlcmd.c
+++ src/sqlcmd.c
@@ -132,10 +132,12 @@
132 const char **pzErrMsg,
133 const void *notUsed
134 ){
135 add_content_sql_commands(db);
136 re_add_sql_func(db);
137 g.zMainDbType = "repository";
138 foci_register(db);
139 g.repositoryOpen = 1;
140 g.db = db;
141 return SQLITE_OK;
142 }
143
144
+10
--- src/style.c
+++ src/style.c
@@ -1208,10 +1208,20 @@
12081208
@ font-weight: bold;
12091209
},
12101210
{ "#canvas", "timeline graph node colors",
12111211
@ color: black;
12121212
@ background-color: white;
1213
+ },
1214
+ { "table.adminLogTable",
1215
+ "Class for the /admin_log table",
1216
+ @ text-align: left
1217
+ },
1218
+ { ".adminLogTable .adminTime",
1219
+ "Class for the /admin_log table",
1220
+ @ text-align: left
1221
+ @ vertical-align: top;
1222
+ @ white-space: nowrap;
12131223
},
12141224
{ 0,
12151225
0,
12161226
0
12171227
}
12181228
--- src/style.c
+++ src/style.c
@@ -1208,10 +1208,20 @@
1208 @ font-weight: bold;
1209 },
1210 { "#canvas", "timeline graph node colors",
1211 @ color: black;
1212 @ background-color: white;
 
 
 
 
 
 
 
 
 
 
1213 },
1214 { 0,
1215 0,
1216 0
1217 }
1218
--- src/style.c
+++ src/style.c
@@ -1208,10 +1208,20 @@
1208 @ font-weight: bold;
1209 },
1210 { "#canvas", "timeline graph node colors",
1211 @ color: black;
1212 @ background-color: white;
1213 },
1214 { "table.adminLogTable",
1215 "Class for the /admin_log table",
1216 @ text-align: left
1217 },
1218 { ".adminLogTable .adminTime",
1219 "Class for the /admin_log table",
1220 @ text-align: left
1221 @ vertical-align: top;
1222 @ white-space: nowrap;
1223 },
1224 { 0,
1225 0,
1226 0
1227 }
1228
+10 -4
--- win/Makefile.dmc
+++ win/Makefile.dmc
@@ -28,13 +28,13 @@
2828
2929
SQLITE_OPTIONS = -DNDEBUG=1 -DSQLITE_OMIT_LOAD_EXTENSION=1 -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_OMIT_DEPRECATED -DSQLITE_ENABLE_EXPLAIN_COMMENTS
3030
3131
SHELL_OPTIONS = -Dmain=sqlite3_shell -DSQLITE_OMIT_LOAD_EXTENSION=1 -DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) -DSQLITE_SHELL_DBNAME_PROC=fossil_open -Daccess=file_access -Dsystem=fossil_system -Dgetenv=fossil_getenv -Dfopen=fossil_fopen
3232
33
-SRC = add_.c allrepo_.c attach_.c bag_.c bisect_.c blob_.c branch_.c browse_.c builtin_.c bundle_.c cache_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c db_.c delta_.c deltacmd_.c descendants_.c diff_.c diffcmd_.c doc_.c encode_.c event_.c export_.c file_.c finfo_.c fusefs_.c glob_.c graph_.c gzip_.c http_.c http_socket_.c http_ssl_.c http_transport_.c import_.c info_.c json_.c json_artifact_.c json_branch_.c json_config_.c json_diff_.c json_dir_.c json_finfo_.c json_login_.c json_query_.c json_report_.c json_status_.c json_tag_.c json_timeline_.c json_user_.c json_wiki_.c leaf_.c loadctrl_.c login_.c lookslike_.c main_.c manifest_.c markdown_.c markdown_html_.c md5_.c merge_.c merge3_.c moderate_.c name_.c path_.c pivot_.c popen_.c pqueue_.c printf_.c publish_.c purge_.c rebuild_.c regexp_.c report_.c rss_.c schema_.c search_.c setup_.c sha1_.c shun_.c skins_.c sqlcmd_.c stash_.c stat_.c style_.c sync_.c tag_.c tar_.c th_main_.c timeline_.c tkt_.c tktsetup_.c undo_.c unicode_.c update_.c url_.c user_.c utf8_.c util_.c verify_.c vfile_.c wiki_.c wikiformat_.c winfile_.c winhttp_.c wysiwyg_.c xfer_.c xfersetup_.c zip_.c
33
+SRC = add_.c allrepo_.c attach_.c bag_.c bisect_.c blob_.c branch_.c browse_.c builtin_.c bundle_.c cache_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c db_.c delta_.c deltacmd_.c descendants_.c diff_.c diffcmd_.c doc_.c encode_.c event_.c export_.c file_.c finfo_.c foci_.c fusefs_.c glob_.c graph_.c gzip_.c http_.c http_socket_.c http_ssl_.c http_transport_.c import_.c info_.c json_.c json_artifact_.c json_branch_.c json_config_.c json_diff_.c json_dir_.c json_finfo_.c json_login_.c json_query_.c json_report_.c json_status_.c json_tag_.c json_timeline_.c json_user_.c json_wiki_.c leaf_.c loadctrl_.c login_.c lookslike_.c main_.c manifest_.c markdown_.c markdown_html_.c md5_.c merge_.c merge3_.c moderate_.c name_.c path_.c pivot_.c popen_.c pqueue_.c printf_.c publish_.c purge_.c rebuild_.c regexp_.c report_.c rss_.c schema_.c search_.c setup_.c sha1_.c shun_.c skins_.c sqlcmd_.c stash_.c stat_.c style_.c sync_.c tag_.c tar_.c th_main_.c timeline_.c tkt_.c tktsetup_.c undo_.c unicode_.c update_.c url_.c user_.c utf8_.c util_.c verify_.c vfile_.c wiki_.c wikiformat_.c winfile_.c winhttp_.c wysiwyg_.c xfer_.c xfersetup_.c zip_.c
3434
35
-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)\builtin$O $(OBJDIR)\bundle$O $(OBJDIR)\cache$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)\fusefs$O $(OBJDIR)\glob$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)\json$O $(OBJDIR)\json_artifact$O $(OBJDIR)\json_branch$O $(OBJDIR)\json_config$O $(OBJDIR)\json_diff$O $(OBJDIR)\json_dir$O $(OBJDIR)\json_finfo$O $(OBJDIR)\json_login$O $(OBJDIR)\json_query$O $(OBJDIR)\json_report$O $(OBJDIR)\json_status$O $(OBJDIR)\json_tag$O $(OBJDIR)\json_timeline$O $(OBJDIR)\json_user$O $(OBJDIR)\json_wiki$O $(OBJDIR)\leaf$O $(OBJDIR)\loadctrl$O $(OBJDIR)\login$O $(OBJDIR)\lookslike$O $(OBJDIR)\main$O $(OBJDIR)\manifest$O $(OBJDIR)\markdown$O $(OBJDIR)\markdown_html$O $(OBJDIR)\md5$O $(OBJDIR)\merge$O $(OBJDIR)\merge3$O $(OBJDIR)\moderate$O $(OBJDIR)\name$O $(OBJDIR)\path$O $(OBJDIR)\pivot$O $(OBJDIR)\popen$O $(OBJDIR)\pqueue$O $(OBJDIR)\printf$O $(OBJDIR)\publish$O $(OBJDIR)\purge$O $(OBJDIR)\rebuild$O $(OBJDIR)\regexp$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)\unicode$O $(OBJDIR)\update$O $(OBJDIR)\url$O $(OBJDIR)\user$O $(OBJDIR)\utf8$O $(OBJDIR)\util$O $(OBJDIR)\verify$O $(OBJDIR)\vfile$O $(OBJDIR)\wiki$O $(OBJDIR)\wikiformat$O $(OBJDIR)\winfile$O $(OBJDIR)\winhttp$O $(OBJDIR)\wysiwyg$O $(OBJDIR)\xfer$O $(OBJDIR)\xfersetup$O $(OBJDIR)\zip$O $(OBJDIR)\shell$O $(OBJDIR)\sqlite3$O $(OBJDIR)\th$O $(OBJDIR)\th_lang$O
35
+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)\builtin$O $(OBJDIR)\bundle$O $(OBJDIR)\cache$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)\foci$O $(OBJDIR)\fusefs$O $(OBJDIR)\glob$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)\json$O $(OBJDIR)\json_artifact$O $(OBJDIR)\json_branch$O $(OBJDIR)\json_config$O $(OBJDIR)\json_diff$O $(OBJDIR)\json_dir$O $(OBJDIR)\json_finfo$O $(OBJDIR)\json_login$O $(OBJDIR)\json_query$O $(OBJDIR)\json_report$O $(OBJDIR)\json_status$O $(OBJDIR)\json_tag$O $(OBJDIR)\json_timeline$O $(OBJDIR)\json_user$O $(OBJDIR)\json_wiki$O $(OBJDIR)\leaf$O $(OBJDIR)\loadctrl$O $(OBJDIR)\login$O $(OBJDIR)\lookslike$O $(OBJDIR)\main$O $(OBJDIR)\manifest$O $(OBJDIR)\markdown$O $(OBJDIR)\markdown_html$O $(OBJDIR)\md5$O $(OBJDIR)\merge$O $(OBJDIR)\merge3$O $(OBJDIR)\moderate$O $(OBJDIR)\name$O $(OBJDIR)\path$O $(OBJDIR)\pivot$O $(OBJDIR)\popen$O $(OBJDIR)\pqueue$O $(OBJDIR)\printf$O $(OBJDIR)\publish$O $(OBJDIR)\purge$O $(OBJDIR)\rebuild$O $(OBJDIR)\regexp$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)\unicode$O $(OBJDIR)\update$O $(OBJDIR)\url$O $(OBJDIR)\user$O $(OBJDIR)\utf8$O $(OBJDIR)\util$O $(OBJDIR)\verify$O $(OBJDIR)\vfile$O $(OBJDIR)\wiki$O $(OBJDIR)\wikiformat$O $(OBJDIR)\winfile$O $(OBJDIR)\winhttp$O $(OBJDIR)\wysiwyg$O $(OBJDIR)\xfer$O $(OBJDIR)\xfersetup$O $(OBJDIR)\zip$O $(OBJDIR)\shell$O $(OBJDIR)\sqlite3$O $(OBJDIR)\th$O $(OBJDIR)\th_lang$O
3636
3737
3838
RC=$(DMDIR)\bin\rcc
3939
RCFLAGS=-32 -w1 -I$(SRCDIR) /D__DMC__
4040
@@ -49,11 +49,11 @@
4949
5050
$(OBJDIR)\fossil.res: $B\win\fossil.rc
5151
$(RC) $(RCFLAGS) -o$@ $**
5252
5353
$(OBJDIR)\link: $B\win\Makefile.dmc $(OBJDIR)\fossil.res
54
- +echo add allrepo attach bag bisect blob branch browse builtin bundle cache captcha cgi checkin checkout clearsign clone comformat configure content db delta deltacmd descendants diff diffcmd doc encode event export file finfo fusefs glob graph gzip http http_socket http_ssl http_transport import info json json_artifact json_branch json_config json_diff json_dir json_finfo json_login json_query json_report json_status json_tag json_timeline json_user json_wiki leaf loadctrl login lookslike main manifest markdown markdown_html md5 merge merge3 moderate name path pivot popen pqueue printf publish purge rebuild regexp report rss schema search setup sha1 shun skins sqlcmd stash stat style sync tag tar th_main timeline tkt tktsetup undo unicode update url user utf8 util verify vfile wiki wikiformat winfile winhttp wysiwyg xfer xfersetup zip shell sqlite3 th th_lang > $@
54
+ +echo add allrepo attach bag bisect blob branch browse builtin bundle cache captcha cgi checkin checkout clearsign clone comformat configure content db delta deltacmd descendants diff diffcmd doc encode event export file finfo foci fusefs glob graph gzip http http_socket http_ssl http_transport import info json json_artifact json_branch json_config json_diff json_dir json_finfo json_login json_query json_report json_status json_tag json_timeline json_user json_wiki leaf loadctrl login lookslike main manifest markdown markdown_html md5 merge merge3 moderate name path pivot popen pqueue printf publish purge rebuild regexp report rss schema search setup sha1 shun skins sqlcmd stash stat style sync tag tar th_main timeline tkt tktsetup undo unicode update url user utf8 util verify vfile wiki wikiformat winfile winhttp wysiwyg xfer xfersetup zip shell sqlite3 th th_lang > $@
5555
+echo fossil >> $@
5656
+echo fossil >> $@
5757
+echo $(LIBS) >> $@
5858
+echo. >> $@
5959
+echo fossil >> $@
@@ -314,10 +314,16 @@
314314
$(OBJDIR)\finfo$O : finfo_.c finfo.h
315315
$(TCC) -o$@ -c finfo_.c
316316
317317
finfo_.c : $(SRCDIR)\finfo.c
318318
+translate$E $** > $@
319
+
320
+$(OBJDIR)\foci$O : foci_.c foci.h
321
+ $(TCC) -o$@ -c foci_.c
322
+
323
+foci_.c : $(SRCDIR)\foci.c
324
+ +translate$E $** > $@
319325
320326
$(OBJDIR)\fusefs$O : fusefs_.c fusefs.h
321327
$(TCC) -o$@ -c fusefs_.c
322328
323329
fusefs_.c : $(SRCDIR)\fusefs.c
@@ -814,7 +820,7 @@
814820
815821
zip_.c : $(SRCDIR)\zip.c
816822
+translate$E $** > $@
817823
818824
headers: makeheaders$E page_index.h builtin_data.h VERSION.h
819
- +makeheaders$E add_.c:add.h allrepo_.c:allrepo.h attach_.c:attach.h bag_.c:bag.h bisect_.c:bisect.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.h builtin_.c:builtin.h bundle_.c:bundle.h cache_.c:cache.h captcha_.c:captcha.h cgi_.c:cgi.h checkin_.c:checkin.h checkout_.c:checkout.h clearsign_.c:clearsign.h clone_.c:clone.h comformat_.c:comformat.h configure_.c:configure.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h doc_.c:doc.h encode_.c:encode.h event_.c:event.h export_.c:export.h file_.c:file.h finfo_.c:finfo.h fusefs_.c:fusefs.h glob_.c:glob.h graph_.c:graph.h gzip_.c:gzip.h http_.c:http.h http_socket_.c:http_socket.h http_ssl_.c:http_ssl.h http_transport_.c:http_transport.h import_.c:import.h info_.c:info.h json_.c:json.h json_artifact_.c:json_artifact.h json_branch_.c:json_branch.h json_config_.c:json_config.h json_diff_.c:json_diff.h json_dir_.c:json_dir.h json_finfo_.c:json_finfo.h json_login_.c:json_login.h json_query_.c:json_query.h json_report_.c:json_report.h json_status_.c:json_status.h json_tag_.c:json_tag.h json_timeline_.c:json_timeline.h json_user_.c:json_user.h json_wiki_.c:json_wiki.h leaf_.c:leaf.h loadctrl_.c:loadctrl.h login_.c:login.h lookslike_.c:lookslike.h main_.c:main.h manifest_.c:manifest.h markdown_.c:markdown.h markdown_html_.c:markdown_html.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h moderate_.c:moderate.h name_.c:name.h path_.c:path.h pivot_.c:pivot.h popen_.c:popen.h pqueue_.c:pqueue.h printf_.c:printf.h publish_.c:publish.h purge_.c:purge.h rebuild_.c:rebuild.h regexp_.c:regexp.h report_.c:report.h rss_.c:rss.h schema_.c:schema.h search_.c:search.h setup_.c:setup.h sha1_.c:sha1.h shun_.c:shun.h skins_.c:skins.h sqlcmd_.c:sqlcmd.h stash_.c:stash.h stat_.c:stat.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tar_.c:tar.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktsetup_.c:tktsetup.h undo_.c:undo.h unicode_.c:unicode.h update_.c:update.h url_.c:url.h user_.c:user.h utf8_.c:utf8.h util_.c:util.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h winfile_.c:winfile.h winhttp_.c:winhttp.h wysiwyg_.c:wysiwyg.h xfer_.c:xfer.h xfersetup_.c:xfersetup.h zip_.c:zip.h $(SRCDIR)\sqlite3.h $(SRCDIR)\th.h VERSION.h $(SRCDIR)\cson_amalgamation.h
825
+ +makeheaders$E add_.c:add.h allrepo_.c:allrepo.h attach_.c:attach.h bag_.c:bag.h bisect_.c:bisect.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.h builtin_.c:builtin.h bundle_.c:bundle.h cache_.c:cache.h captcha_.c:captcha.h cgi_.c:cgi.h checkin_.c:checkin.h checkout_.c:checkout.h clearsign_.c:clearsign.h clone_.c:clone.h comformat_.c:comformat.h configure_.c:configure.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h doc_.c:doc.h encode_.c:encode.h event_.c:event.h export_.c:export.h file_.c:file.h finfo_.c:finfo.h foci_.c:foci.h fusefs_.c:fusefs.h glob_.c:glob.h graph_.c:graph.h gzip_.c:gzip.h http_.c:http.h http_socket_.c:http_socket.h http_ssl_.c:http_ssl.h http_transport_.c:http_transport.h import_.c:import.h info_.c:info.h json_.c:json.h json_artifact_.c:json_artifact.h json_branch_.c:json_branch.h json_config_.c:json_config.h json_diff_.c:json_diff.h json_dir_.c:json_dir.h json_finfo_.c:json_finfo.h json_login_.c:json_login.h json_query_.c:json_query.h json_report_.c:json_report.h json_status_.c:json_status.h json_tag_.c:json_tag.h json_timeline_.c:json_timeline.h json_user_.c:json_user.h json_wiki_.c:json_wiki.h leaf_.c:leaf.h loadctrl_.c:loadctrl.h login_.c:login.h lookslike_.c:lookslike.h main_.c:main.h manifest_.c:manifest.h markdown_.c:markdown.h markdown_html_.c:markdown_html.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h moderate_.c:moderate.h name_.c:name.h path_.c:path.h pivot_.c:pivot.h popen_.c:popen.h pqueue_.c:pqueue.h printf_.c:printf.h publish_.c:publish.h purge_.c:purge.h rebuild_.c:rebuild.h regexp_.c:regexp.h report_.c:report.h rss_.c:rss.h schema_.c:schema.h search_.c:search.h setup_.c:setup.h sha1_.c:sha1.h shun_.c:shun.h skins_.c:skins.h sqlcmd_.c:sqlcmd.h stash_.c:stash.h stat_.c:stat.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tar_.c:tar.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktsetup_.c:tktsetup.h undo_.c:undo.h unicode_.c:unicode.h update_.c:update.h url_.c:url.h user_.c:user.h utf8_.c:utf8.h util_.c:util.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h winfile_.c:winfile.h winhttp_.c:winhttp.h wysiwyg_.c:wysiwyg.h xfer_.c:xfer.h xfersetup_.c:xfersetup.h zip_.c:zip.h $(SRCDIR)\sqlite3.h $(SRCDIR)\th.h VERSION.h $(SRCDIR)\cson_amalgamation.h
820826
@copy /Y nul: headers
821827
--- win/Makefile.dmc
+++ win/Makefile.dmc
@@ -28,13 +28,13 @@
28
29 SQLITE_OPTIONS = -DNDEBUG=1 -DSQLITE_OMIT_LOAD_EXTENSION=1 -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_OMIT_DEPRECATED -DSQLITE_ENABLE_EXPLAIN_COMMENTS
30
31 SHELL_OPTIONS = -Dmain=sqlite3_shell -DSQLITE_OMIT_LOAD_EXTENSION=1 -DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) -DSQLITE_SHELL_DBNAME_PROC=fossil_open -Daccess=file_access -Dsystem=fossil_system -Dgetenv=fossil_getenv -Dfopen=fossil_fopen
32
33 SRC = add_.c allrepo_.c attach_.c bag_.c bisect_.c blob_.c branch_.c browse_.c builtin_.c bundle_.c cache_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c db_.c delta_.c deltacmd_.c descendants_.c diff_.c diffcmd_.c doc_.c encode_.c event_.c export_.c file_.c finfo_.c fusefs_.c glob_.c graph_.c gzip_.c http_.c http_socket_.c http_ssl_.c http_transport_.c import_.c info_.c json_.c json_artifact_.c json_branch_.c json_config_.c json_diff_.c json_dir_.c json_finfo_.c json_login_.c json_query_.c json_report_.c json_status_.c json_tag_.c json_timeline_.c json_user_.c json_wiki_.c leaf_.c loadctrl_.c login_.c lookslike_.c main_.c manifest_.c markdown_.c markdown_html_.c md5_.c merge_.c merge3_.c moderate_.c name_.c path_.c pivot_.c popen_.c pqueue_.c printf_.c publish_.c purge_.c rebuild_.c regexp_.c report_.c rss_.c schema_.c search_.c setup_.c sha1_.c shun_.c skins_.c sqlcmd_.c stash_.c stat_.c style_.c sync_.c tag_.c tar_.c th_main_.c timeline_.c tkt_.c tktsetup_.c undo_.c unicode_.c update_.c url_.c user_.c utf8_.c util_.c verify_.c vfile_.c wiki_.c wikiformat_.c winfile_.c winhttp_.c wysiwyg_.c xfer_.c xfersetup_.c zip_.c
34
35 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)\builtin$O $(OBJDIR)\bundle$O $(OBJDIR)\cache$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)\fusefs$O $(OBJDIR)\glob$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)\json$O $(OBJDIR)\json_artifact$O $(OBJDIR)\json_branch$O $(OBJDIR)\json_config$O $(OBJDIR)\json_diff$O $(OBJDIR)\json_dir$O $(OBJDIR)\json_finfo$O $(OBJDIR)\json_login$O $(OBJDIR)\json_query$O $(OBJDIR)\json_report$O $(OBJDIR)\json_status$O $(OBJDIR)\json_tag$O $(OBJDIR)\json_timeline$O $(OBJDIR)\json_user$O $(OBJDIR)\json_wiki$O $(OBJDIR)\leaf$O $(OBJDIR)\loadctrl$O $(OBJDIR)\login$O $(OBJDIR)\lookslike$O $(OBJDIR)\main$O $(OBJDIR)\manifest$O $(OBJDIR)\markdown$O $(OBJDIR)\markdown_html$O $(OBJDIR)\md5$O $(OBJDIR)\merge$O $(OBJDIR)\merge3$O $(OBJDIR)\moderate$O $(OBJDIR)\name$O $(OBJDIR)\path$O $(OBJDIR)\pivot$O $(OBJDIR)\popen$O $(OBJDIR)\pqueue$O $(OBJDIR)\printf$O $(OBJDIR)\publish$O $(OBJDIR)\purge$O $(OBJDIR)\rebuild$O $(OBJDIR)\regexp$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)\unicode$O $(OBJDIR)\update$O $(OBJDIR)\url$O $(OBJDIR)\user$O $(OBJDIR)\utf8$O $(OBJDIR)\util$O $(OBJDIR)\verify$O $(OBJDIR)\vfile$O $(OBJDIR)\wiki$O $(OBJDIR)\wikiformat$O $(OBJDIR)\winfile$O $(OBJDIR)\winhttp$O $(OBJDIR)\wysiwyg$O $(OBJDIR)\xfer$O $(OBJDIR)\xfersetup$O $(OBJDIR)\zip$O $(OBJDIR)\shell$O $(OBJDIR)\sqlite3$O $(OBJDIR)\th$O $(OBJDIR)\th_lang$O
36
37
38 RC=$(DMDIR)\bin\rcc
39 RCFLAGS=-32 -w1 -I$(SRCDIR) /D__DMC__
40
@@ -49,11 +49,11 @@
49
50 $(OBJDIR)\fossil.res: $B\win\fossil.rc
51 $(RC) $(RCFLAGS) -o$@ $**
52
53 $(OBJDIR)\link: $B\win\Makefile.dmc $(OBJDIR)\fossil.res
54 +echo add allrepo attach bag bisect blob branch browse builtin bundle cache captcha cgi checkin checkout clearsign clone comformat configure content db delta deltacmd descendants diff diffcmd doc encode event export file finfo fusefs glob graph gzip http http_socket http_ssl http_transport import info json json_artifact json_branch json_config json_diff json_dir json_finfo json_login json_query json_report json_status json_tag json_timeline json_user json_wiki leaf loadctrl login lookslike main manifest markdown markdown_html md5 merge merge3 moderate name path pivot popen pqueue printf publish purge rebuild regexp report rss schema search setup sha1 shun skins sqlcmd stash stat style sync tag tar th_main timeline tkt tktsetup undo unicode update url user utf8 util verify vfile wiki wikiformat winfile winhttp wysiwyg xfer xfersetup zip shell sqlite3 th th_lang > $@
55 +echo fossil >> $@
56 +echo fossil >> $@
57 +echo $(LIBS) >> $@
58 +echo. >> $@
59 +echo fossil >> $@
@@ -314,10 +314,16 @@
314 $(OBJDIR)\finfo$O : finfo_.c finfo.h
315 $(TCC) -o$@ -c finfo_.c
316
317 finfo_.c : $(SRCDIR)\finfo.c
318 +translate$E $** > $@
 
 
 
 
 
 
319
320 $(OBJDIR)\fusefs$O : fusefs_.c fusefs.h
321 $(TCC) -o$@ -c fusefs_.c
322
323 fusefs_.c : $(SRCDIR)\fusefs.c
@@ -814,7 +820,7 @@
814
815 zip_.c : $(SRCDIR)\zip.c
816 +translate$E $** > $@
817
818 headers: makeheaders$E page_index.h builtin_data.h VERSION.h
819 +makeheaders$E add_.c:add.h allrepo_.c:allrepo.h attach_.c:attach.h bag_.c:bag.h bisect_.c:bisect.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.h builtin_.c:builtin.h bundle_.c:bundle.h cache_.c:cache.h captcha_.c:captcha.h cgi_.c:cgi.h checkin_.c:checkin.h checkout_.c:checkout.h clearsign_.c:clearsign.h clone_.c:clone.h comformat_.c:comformat.h configure_.c:configure.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h doc_.c:doc.h encode_.c:encode.h event_.c:event.h export_.c:export.h file_.c:file.h finfo_.c:finfo.h fusefs_.c:fusefs.h glob_.c:glob.h graph_.c:graph.h gzip_.c:gzip.h http_.c:http.h http_socket_.c:http_socket.h http_ssl_.c:http_ssl.h http_transport_.c:http_transport.h import_.c:import.h info_.c:info.h json_.c:json.h json_artifact_.c:json_artifact.h json_branch_.c:json_branch.h json_config_.c:json_config.h json_diff_.c:json_diff.h json_dir_.c:json_dir.h json_finfo_.c:json_finfo.h json_login_.c:json_login.h json_query_.c:json_query.h json_report_.c:json_report.h json_status_.c:json_status.h json_tag_.c:json_tag.h json_timeline_.c:json_timeline.h json_user_.c:json_user.h json_wiki_.c:json_wiki.h leaf_.c:leaf.h loadctrl_.c:loadctrl.h login_.c:login.h lookslike_.c:lookslike.h main_.c:main.h manifest_.c:manifest.h markdown_.c:markdown.h markdown_html_.c:markdown_html.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h moderate_.c:moderate.h name_.c:name.h path_.c:path.h pivot_.c:pivot.h popen_.c:popen.h pqueue_.c:pqueue.h printf_.c:printf.h publish_.c:publish.h purge_.c:purge.h rebuild_.c:rebuild.h regexp_.c:regexp.h report_.c:report.h rss_.c:rss.h schema_.c:schema.h search_.c:search.h setup_.c:setup.h sha1_.c:sha1.h shun_.c:shun.h skins_.c:skins.h sqlcmd_.c:sqlcmd.h stash_.c:stash.h stat_.c:stat.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tar_.c:tar.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktsetup_.c:tktsetup.h undo_.c:undo.h unicode_.c:unicode.h update_.c:update.h url_.c:url.h user_.c:user.h utf8_.c:utf8.h util_.c:util.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h winfile_.c:winfile.h winhttp_.c:winhttp.h wysiwyg_.c:wysiwyg.h xfer_.c:xfer.h xfersetup_.c:xfersetup.h zip_.c:zip.h $(SRCDIR)\sqlite3.h $(SRCDIR)\th.h VERSION.h $(SRCDIR)\cson_amalgamation.h
820 @copy /Y nul: headers
821
--- win/Makefile.dmc
+++ win/Makefile.dmc
@@ -28,13 +28,13 @@
28
29 SQLITE_OPTIONS = -DNDEBUG=1 -DSQLITE_OMIT_LOAD_EXTENSION=1 -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_OMIT_DEPRECATED -DSQLITE_ENABLE_EXPLAIN_COMMENTS
30
31 SHELL_OPTIONS = -Dmain=sqlite3_shell -DSQLITE_OMIT_LOAD_EXTENSION=1 -DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) -DSQLITE_SHELL_DBNAME_PROC=fossil_open -Daccess=file_access -Dsystem=fossil_system -Dgetenv=fossil_getenv -Dfopen=fossil_fopen
32
33 SRC = add_.c allrepo_.c attach_.c bag_.c bisect_.c blob_.c branch_.c browse_.c builtin_.c bundle_.c cache_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c db_.c delta_.c deltacmd_.c descendants_.c diff_.c diffcmd_.c doc_.c encode_.c event_.c export_.c file_.c finfo_.c foci_.c fusefs_.c glob_.c graph_.c gzip_.c http_.c http_socket_.c http_ssl_.c http_transport_.c import_.c info_.c json_.c json_artifact_.c json_branch_.c json_config_.c json_diff_.c json_dir_.c json_finfo_.c json_login_.c json_query_.c json_report_.c json_status_.c json_tag_.c json_timeline_.c json_user_.c json_wiki_.c leaf_.c loadctrl_.c login_.c lookslike_.c main_.c manifest_.c markdown_.c markdown_html_.c md5_.c merge_.c merge3_.c moderate_.c name_.c path_.c pivot_.c popen_.c pqueue_.c printf_.c publish_.c purge_.c rebuild_.c regexp_.c report_.c rss_.c schema_.c search_.c setup_.c sha1_.c shun_.c skins_.c sqlcmd_.c stash_.c stat_.c style_.c sync_.c tag_.c tar_.c th_main_.c timeline_.c tkt_.c tktsetup_.c undo_.c unicode_.c update_.c url_.c user_.c utf8_.c util_.c verify_.c vfile_.c wiki_.c wikiformat_.c winfile_.c winhttp_.c wysiwyg_.c xfer_.c xfersetup_.c zip_.c
34
35 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)\builtin$O $(OBJDIR)\bundle$O $(OBJDIR)\cache$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)\foci$O $(OBJDIR)\fusefs$O $(OBJDIR)\glob$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)\json$O $(OBJDIR)\json_artifact$O $(OBJDIR)\json_branch$O $(OBJDIR)\json_config$O $(OBJDIR)\json_diff$O $(OBJDIR)\json_dir$O $(OBJDIR)\json_finfo$O $(OBJDIR)\json_login$O $(OBJDIR)\json_query$O $(OBJDIR)\json_report$O $(OBJDIR)\json_status$O $(OBJDIR)\json_tag$O $(OBJDIR)\json_timeline$O $(OBJDIR)\json_user$O $(OBJDIR)\json_wiki$O $(OBJDIR)\leaf$O $(OBJDIR)\loadctrl$O $(OBJDIR)\login$O $(OBJDIR)\lookslike$O $(OBJDIR)\main$O $(OBJDIR)\manifest$O $(OBJDIR)\markdown$O $(OBJDIR)\markdown_html$O $(OBJDIR)\md5$O $(OBJDIR)\merge$O $(OBJDIR)\merge3$O $(OBJDIR)\moderate$O $(OBJDIR)\name$O $(OBJDIR)\path$O $(OBJDIR)\pivot$O $(OBJDIR)\popen$O $(OBJDIR)\pqueue$O $(OBJDIR)\printf$O $(OBJDIR)\publish$O $(OBJDIR)\purge$O $(OBJDIR)\rebuild$O $(OBJDIR)\regexp$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)\unicode$O $(OBJDIR)\update$O $(OBJDIR)\url$O $(OBJDIR)\user$O $(OBJDIR)\utf8$O $(OBJDIR)\util$O $(OBJDIR)\verify$O $(OBJDIR)\vfile$O $(OBJDIR)\wiki$O $(OBJDIR)\wikiformat$O $(OBJDIR)\winfile$O $(OBJDIR)\winhttp$O $(OBJDIR)\wysiwyg$O $(OBJDIR)\xfer$O $(OBJDIR)\xfersetup$O $(OBJDIR)\zip$O $(OBJDIR)\shell$O $(OBJDIR)\sqlite3$O $(OBJDIR)\th$O $(OBJDIR)\th_lang$O
36
37
38 RC=$(DMDIR)\bin\rcc
39 RCFLAGS=-32 -w1 -I$(SRCDIR) /D__DMC__
40
@@ -49,11 +49,11 @@
49
50 $(OBJDIR)\fossil.res: $B\win\fossil.rc
51 $(RC) $(RCFLAGS) -o$@ $**
52
53 $(OBJDIR)\link: $B\win\Makefile.dmc $(OBJDIR)\fossil.res
54 +echo add allrepo attach bag bisect blob branch browse builtin bundle cache captcha cgi checkin checkout clearsign clone comformat configure content db delta deltacmd descendants diff diffcmd doc encode event export file finfo foci fusefs glob graph gzip http http_socket http_ssl http_transport import info json json_artifact json_branch json_config json_diff json_dir json_finfo json_login json_query json_report json_status json_tag json_timeline json_user json_wiki leaf loadctrl login lookslike main manifest markdown markdown_html md5 merge merge3 moderate name path pivot popen pqueue printf publish purge rebuild regexp report rss schema search setup sha1 shun skins sqlcmd stash stat style sync tag tar th_main timeline tkt tktsetup undo unicode update url user utf8 util verify vfile wiki wikiformat winfile winhttp wysiwyg xfer xfersetup zip shell sqlite3 th th_lang > $@
55 +echo fossil >> $@
56 +echo fossil >> $@
57 +echo $(LIBS) >> $@
58 +echo. >> $@
59 +echo fossil >> $@
@@ -314,10 +314,16 @@
314 $(OBJDIR)\finfo$O : finfo_.c finfo.h
315 $(TCC) -o$@ -c finfo_.c
316
317 finfo_.c : $(SRCDIR)\finfo.c
318 +translate$E $** > $@
319
320 $(OBJDIR)\foci$O : foci_.c foci.h
321 $(TCC) -o$@ -c foci_.c
322
323 foci_.c : $(SRCDIR)\foci.c
324 +translate$E $** > $@
325
326 $(OBJDIR)\fusefs$O : fusefs_.c fusefs.h
327 $(TCC) -o$@ -c fusefs_.c
328
329 fusefs_.c : $(SRCDIR)\fusefs.c
@@ -814,7 +820,7 @@
820
821 zip_.c : $(SRCDIR)\zip.c
822 +translate$E $** > $@
823
824 headers: makeheaders$E page_index.h builtin_data.h VERSION.h
825 +makeheaders$E add_.c:add.h allrepo_.c:allrepo.h attach_.c:attach.h bag_.c:bag.h bisect_.c:bisect.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.h builtin_.c:builtin.h bundle_.c:bundle.h cache_.c:cache.h captcha_.c:captcha.h cgi_.c:cgi.h checkin_.c:checkin.h checkout_.c:checkout.h clearsign_.c:clearsign.h clone_.c:clone.h comformat_.c:comformat.h configure_.c:configure.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h doc_.c:doc.h encode_.c:encode.h event_.c:event.h export_.c:export.h file_.c:file.h finfo_.c:finfo.h foci_.c:foci.h fusefs_.c:fusefs.h glob_.c:glob.h graph_.c:graph.h gzip_.c:gzip.h http_.c:http.h http_socket_.c:http_socket.h http_ssl_.c:http_ssl.h http_transport_.c:http_transport.h import_.c:import.h info_.c:info.h json_.c:json.h json_artifact_.c:json_artifact.h json_branch_.c:json_branch.h json_config_.c:json_config.h json_diff_.c:json_diff.h json_dir_.c:json_dir.h json_finfo_.c:json_finfo.h json_login_.c:json_login.h json_query_.c:json_query.h json_report_.c:json_report.h json_status_.c:json_status.h json_tag_.c:json_tag.h json_timeline_.c:json_timeline.h json_user_.c:json_user.h json_wiki_.c:json_wiki.h leaf_.c:leaf.h loadctrl_.c:loadctrl.h login_.c:login.h lookslike_.c:lookslike.h main_.c:main.h manifest_.c:manifest.h markdown_.c:markdown.h markdown_html_.c:markdown_html.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h moderate_.c:moderate.h name_.c:name.h path_.c:path.h pivot_.c:pivot.h popen_.c:popen.h pqueue_.c:pqueue.h printf_.c:printf.h publish_.c:publish.h purge_.c:purge.h rebuild_.c:rebuild.h regexp_.c:regexp.h report_.c:report.h rss_.c:rss.h schema_.c:schema.h search_.c:search.h setup_.c:setup.h sha1_.c:sha1.h shun_.c:shun.h skins_.c:skins.h sqlcmd_.c:sqlcmd.h stash_.c:stash.h stat_.c:stat.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tar_.c:tar.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktsetup_.c:tktsetup.h undo_.c:undo.h unicode_.c:unicode.h update_.c:update.h url_.c:url.h user_.c:user.h utf8_.c:utf8.h util_.c:util.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h winfile_.c:winfile.h winhttp_.c:winhttp.h wysiwyg_.c:wysiwyg.h xfer_.c:xfer.h xfersetup_.c:xfersetup.h zip_.c:zip.h $(SRCDIR)\sqlite3.h $(SRCDIR)\th.h VERSION.h $(SRCDIR)\cson_amalgamation.h
826 @copy /Y nul: headers
827
+10 -4
--- win/Makefile.dmc
+++ win/Makefile.dmc
@@ -28,13 +28,13 @@
2828
2929
SQLITE_OPTIONS = -DNDEBUG=1 -DSQLITE_OMIT_LOAD_EXTENSION=1 -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_OMIT_DEPRECATED -DSQLITE_ENABLE_EXPLAIN_COMMENTS
3030
3131
SHELL_OPTIONS = -Dmain=sqlite3_shell -DSQLITE_OMIT_LOAD_EXTENSION=1 -DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) -DSQLITE_SHELL_DBNAME_PROC=fossil_open -Daccess=file_access -Dsystem=fossil_system -Dgetenv=fossil_getenv -Dfopen=fossil_fopen
3232
33
-SRC = add_.c allrepo_.c attach_.c bag_.c bisect_.c blob_.c branch_.c browse_.c builtin_.c bundle_.c cache_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c db_.c delta_.c deltacmd_.c descendants_.c diff_.c diffcmd_.c doc_.c encode_.c event_.c export_.c file_.c finfo_.c fusefs_.c glob_.c graph_.c gzip_.c http_.c http_socket_.c http_ssl_.c http_transport_.c import_.c info_.c json_.c json_artifact_.c json_branch_.c json_config_.c json_diff_.c json_dir_.c json_finfo_.c json_login_.c json_query_.c json_report_.c json_status_.c json_tag_.c json_timeline_.c json_user_.c json_wiki_.c leaf_.c loadctrl_.c login_.c lookslike_.c main_.c manifest_.c markdown_.c markdown_html_.c md5_.c merge_.c merge3_.c moderate_.c name_.c path_.c pivot_.c popen_.c pqueue_.c printf_.c publish_.c purge_.c rebuild_.c regexp_.c report_.c rss_.c schema_.c search_.c setup_.c sha1_.c shun_.c skins_.c sqlcmd_.c stash_.c stat_.c style_.c sync_.c tag_.c tar_.c th_main_.c timeline_.c tkt_.c tktsetup_.c undo_.c unicode_.c update_.c url_.c user_.c utf8_.c util_.c verify_.c vfile_.c wiki_.c wikiformat_.c winfile_.c winhttp_.c wysiwyg_.c xfer_.c xfersetup_.c zip_.c
33
+SRC = add_.c allrepo_.c attach_.c bag_.c bisect_.c blob_.c branch_.c browse_.c builtin_.c bundle_.c cache_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c db_.c delta_.c deltacmd_.c descendants_.c diff_.c diffcmd_.c doc_.c encode_.c event_.c export_.c file_.c finfo_.c foci_.c fusefs_.c glob_.c graph_.c gzip_.c http_.c http_socket_.c http_ssl_.c http_transport_.c import_.c info_.c json_.c json_artifact_.c json_branch_.c json_config_.c json_diff_.c json_dir_.c json_finfo_.c json_login_.c json_query_.c json_report_.c json_status_.c json_tag_.c json_timeline_.c json_user_.c json_wiki_.c leaf_.c loadctrl_.c login_.c lookslike_.c main_.c manifest_.c markdown_.c markdown_html_.c md5_.c merge_.c merge3_.c moderate_.c name_.c path_.c pivot_.c popen_.c pqueue_.c printf_.c publish_.c purge_.c rebuild_.c regexp_.c report_.c rss_.c schema_.c search_.c setup_.c sha1_.c shun_.c skins_.c sqlcmd_.c stash_.c stat_.c style_.c sync_.c tag_.c tar_.c th_main_.c timeline_.c tkt_.c tktsetup_.c undo_.c unicode_.c update_.c url_.c user_.c utf8_.c util_.c verify_.c vfile_.c wiki_.c wikiformat_.c winfile_.c winhttp_.c wysiwyg_.c xfer_.c xfersetup_.c zip_.c
3434
35
-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)\builtin$O $(OBJDIR)\bundle$O $(OBJDIR)\cache$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)\fusefs$O $(OBJDIR)\glob$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)\json$O $(OBJDIR)\json_artifact$O $(OBJDIR)\json_branch$O $(OBJDIR)\json_config$O $(OBJDIR)\json_diff$O $(OBJDIR)\json_dir$O $(OBJDIR)\json_finfo$O $(OBJDIR)\json_login$O $(OBJDIR)\json_query$O $(OBJDIR)\json_report$O $(OBJDIR)\json_status$O $(OBJDIR)\json_tag$O $(OBJDIR)\json_timeline$O $(OBJDIR)\json_user$O $(OBJDIR)\json_wiki$O $(OBJDIR)\leaf$O $(OBJDIR)\loadctrl$O $(OBJDIR)\login$O $(OBJDIR)\lookslike$O $(OBJDIR)\main$O $(OBJDIR)\manifest$O $(OBJDIR)\markdown$O $(OBJDIR)\markdown_html$O $(OBJDIR)\md5$O $(OBJDIR)\merge$O $(OBJDIR)\merge3$O $(OBJDIR)\moderate$O $(OBJDIR)\name$O $(OBJDIR)\path$O $(OBJDIR)\pivot$O $(OBJDIR)\popen$O $(OBJDIR)\pqueue$O $(OBJDIR)\printf$O $(OBJDIR)\publish$O $(OBJDIR)\purge$O $(OBJDIR)\rebuild$O $(OBJDIR)\regexp$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)\unicode$O $(OBJDIR)\update$O $(OBJDIR)\url$O $(OBJDIR)\user$O $(OBJDIR)\utf8$O $(OBJDIR)\util$O $(OBJDIR)\verify$O $(OBJDIR)\vfile$O $(OBJDIR)\wiki$O $(OBJDIR)\wikiformat$O $(OBJDIR)\winfile$O $(OBJDIR)\winhttp$O $(OBJDIR)\wysiwyg$O $(OBJDIR)\xfer$O $(OBJDIR)\xfersetup$O $(OBJDIR)\zip$O $(OBJDIR)\shell$O $(OBJDIR)\sqlite3$O $(OBJDIR)\th$O $(OBJDIR)\th_lang$O
35
+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)\builtin$O $(OBJDIR)\bundle$O $(OBJDIR)\cache$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)\foci$O $(OBJDIR)\fusefs$O $(OBJDIR)\glob$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)\json$O $(OBJDIR)\json_artifact$O $(OBJDIR)\json_branch$O $(OBJDIR)\json_config$O $(OBJDIR)\json_diff$O $(OBJDIR)\json_dir$O $(OBJDIR)\json_finfo$O $(OBJDIR)\json_login$O $(OBJDIR)\json_query$O $(OBJDIR)\json_report$O $(OBJDIR)\json_status$O $(OBJDIR)\json_tag$O $(OBJDIR)\json_timeline$O $(OBJDIR)\json_user$O $(OBJDIR)\json_wiki$O $(OBJDIR)\leaf$O $(OBJDIR)\loadctrl$O $(OBJDIR)\login$O $(OBJDIR)\lookslike$O $(OBJDIR)\main$O $(OBJDIR)\manifest$O $(OBJDIR)\markdown$O $(OBJDIR)\markdown_html$O $(OBJDIR)\md5$O $(OBJDIR)\merge$O $(OBJDIR)\merge3$O $(OBJDIR)\moderate$O $(OBJDIR)\name$O $(OBJDIR)\path$O $(OBJDIR)\pivot$O $(OBJDIR)\popen$O $(OBJDIR)\pqueue$O $(OBJDIR)\printf$O $(OBJDIR)\publish$O $(OBJDIR)\purge$O $(OBJDIR)\rebuild$O $(OBJDIR)\regexp$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)\unicode$O $(OBJDIR)\update$O $(OBJDIR)\url$O $(OBJDIR)\user$O $(OBJDIR)\utf8$O $(OBJDIR)\util$O $(OBJDIR)\verify$O $(OBJDIR)\vfile$O $(OBJDIR)\wiki$O $(OBJDIR)\wikiformat$O $(OBJDIR)\winfile$O $(OBJDIR)\winhttp$O $(OBJDIR)\wysiwyg$O $(OBJDIR)\xfer$O $(OBJDIR)\xfersetup$O $(OBJDIR)\zip$O $(OBJDIR)\shell$O $(OBJDIR)\sqlite3$O $(OBJDIR)\th$O $(OBJDIR)\th_lang$O
3636
3737
3838
RC=$(DMDIR)\bin\rcc
3939
RCFLAGS=-32 -w1 -I$(SRCDIR) /D__DMC__
4040
@@ -49,11 +49,11 @@
4949
5050
$(OBJDIR)\fossil.res: $B\win\fossil.rc
5151
$(RC) $(RCFLAGS) -o$@ $**
5252
5353
$(OBJDIR)\link: $B\win\Makefile.dmc $(OBJDIR)\fossil.res
54
- +echo add allrepo attach bag bisect blob branch browse builtin bundle cache captcha cgi checkin checkout clearsign clone comformat configure content db delta deltacmd descendants diff diffcmd doc encode event export file finfo fusefs glob graph gzip http http_socket http_ssl http_transport import info json json_artifact json_branch json_config json_diff json_dir json_finfo json_login json_query json_report json_status json_tag json_timeline json_user json_wiki leaf loadctrl login lookslike main manifest markdown markdown_html md5 merge merge3 moderate name path pivot popen pqueue printf publish purge rebuild regexp report rss schema search setup sha1 shun skins sqlcmd stash stat style sync tag tar th_main timeline tkt tktsetup undo unicode update url user utf8 util verify vfile wiki wikiformat winfile winhttp wysiwyg xfer xfersetup zip shell sqlite3 th th_lang > $@
54
+ +echo add allrepo attach bag bisect blob branch browse builtin bundle cache captcha cgi checkin checkout clearsign clone comformat configure content db delta deltacmd descendants diff diffcmd doc encode event export file finfo foci fusefs glob graph gzip http http_socket http_ssl http_transport import info json json_artifact json_branch json_config json_diff json_dir json_finfo json_login json_query json_report json_status json_tag json_timeline json_user json_wiki leaf loadctrl login lookslike main manifest markdown markdown_html md5 merge merge3 moderate name path pivot popen pqueue printf publish purge rebuild regexp report rss schema search setup sha1 shun skins sqlcmd stash stat style sync tag tar th_main timeline tkt tktsetup undo unicode update url user utf8 util verify vfile wiki wikiformat winfile winhttp wysiwyg xfer xfersetup zip shell sqlite3 th th_lang > $@
5555
+echo fossil >> $@
5656
+echo fossil >> $@
5757
+echo $(LIBS) >> $@
5858
+echo. >> $@
5959
+echo fossil >> $@
@@ -314,10 +314,16 @@
314314
$(OBJDIR)\finfo$O : finfo_.c finfo.h
315315
$(TCC) -o$@ -c finfo_.c
316316
317317
finfo_.c : $(SRCDIR)\finfo.c
318318
+translate$E $** > $@
319
+
320
+$(OBJDIR)\foci$O : foci_.c foci.h
321
+ $(TCC) -o$@ -c foci_.c
322
+
323
+foci_.c : $(SRCDIR)\foci.c
324
+ +translate$E $** > $@
319325
320326
$(OBJDIR)\fusefs$O : fusefs_.c fusefs.h
321327
$(TCC) -o$@ -c fusefs_.c
322328
323329
fusefs_.c : $(SRCDIR)\fusefs.c
@@ -814,7 +820,7 @@
814820
815821
zip_.c : $(SRCDIR)\zip.c
816822
+translate$E $** > $@
817823
818824
headers: makeheaders$E page_index.h builtin_data.h VERSION.h
819
- +makeheaders$E add_.c:add.h allrepo_.c:allrepo.h attach_.c:attach.h bag_.c:bag.h bisect_.c:bisect.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.h builtin_.c:builtin.h bundle_.c:bundle.h cache_.c:cache.h captcha_.c:captcha.h cgi_.c:cgi.h checkin_.c:checkin.h checkout_.c:checkout.h clearsign_.c:clearsign.h clone_.c:clone.h comformat_.c:comformat.h configure_.c:configure.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h doc_.c:doc.h encode_.c:encode.h event_.c:event.h export_.c:export.h file_.c:file.h finfo_.c:finfo.h fusefs_.c:fusefs.h glob_.c:glob.h graph_.c:graph.h gzip_.c:gzip.h http_.c:http.h http_socket_.c:http_socket.h http_ssl_.c:http_ssl.h http_transport_.c:http_transport.h import_.c:import.h info_.c:info.h json_.c:json.h json_artifact_.c:json_artifact.h json_branch_.c:json_branch.h json_config_.c:json_config.h json_diff_.c:json_diff.h json_dir_.c:json_dir.h json_finfo_.c:json_finfo.h json_login_.c:json_login.h json_query_.c:json_query.h json_report_.c:json_report.h json_status_.c:json_status.h json_tag_.c:json_tag.h json_timeline_.c:json_timeline.h json_user_.c:json_user.h json_wiki_.c:json_wiki.h leaf_.c:leaf.h loadctrl_.c:loadctrl.h login_.c:login.h lookslike_.c:lookslike.h main_.c:main.h manifest_.c:manifest.h markdown_.c:markdown.h markdown_html_.c:markdown_html.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h moderate_.c:moderate.h name_.c:name.h path_.c:path.h pivot_.c:pivot.h popen_.c:popen.h pqueue_.c:pqueue.h printf_.c:printf.h publish_.c:publish.h purge_.c:purge.h rebuild_.c:rebuild.h regexp_.c:regexp.h report_.c:report.h rss_.c:rss.h schema_.c:schema.h search_.c:search.h setup_.c:setup.h sha1_.c:sha1.h shun_.c:shun.h skins_.c:skins.h sqlcmd_.c:sqlcmd.h stash_.c:stash.h stat_.c:stat.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tar_.c:tar.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktsetup_.c:tktsetup.h undo_.c:undo.h unicode_.c:unicode.h update_.c:update.h url_.c:url.h user_.c:user.h utf8_.c:utf8.h util_.c:util.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h winfile_.c:winfile.h winhttp_.c:winhttp.h wysiwyg_.c:wysiwyg.h xfer_.c:xfer.h xfersetup_.c:xfersetup.h zip_.c:zip.h $(SRCDIR)\sqlite3.h $(SRCDIR)\th.h VERSION.h $(SRCDIR)\cson_amalgamation.h
825
+ +makeheaders$E add_.c:add.h allrepo_.c:allrepo.h attach_.c:attach.h bag_.c:bag.h bisect_.c:bisect.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.h builtin_.c:builtin.h bundle_.c:bundle.h cache_.c:cache.h captcha_.c:captcha.h cgi_.c:cgi.h checkin_.c:checkin.h checkout_.c:checkout.h clearsign_.c:clearsign.h clone_.c:clone.h comformat_.c:comformat.h configure_.c:configure.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h doc_.c:doc.h encode_.c:encode.h event_.c:event.h export_.c:export.h file_.c:file.h finfo_.c:finfo.h foci_.c:foci.h fusefs_.c:fusefs.h glob_.c:glob.h graph_.c:graph.h gzip_.c:gzip.h http_.c:http.h http_socket_.c:http_socket.h http_ssl_.c:http_ssl.h http_transport_.c:http_transport.h import_.c:import.h info_.c:info.h json_.c:json.h json_artifact_.c:json_artifact.h json_branch_.c:json_branch.h json_config_.c:json_config.h json_diff_.c:json_diff.h json_dir_.c:json_dir.h json_finfo_.c:json_finfo.h json_login_.c:json_login.h json_query_.c:json_query.h json_report_.c:json_report.h json_status_.c:json_status.h json_tag_.c:json_tag.h json_timeline_.c:json_timeline.h json_user_.c:json_user.h json_wiki_.c:json_wiki.h leaf_.c:leaf.h loadctrl_.c:loadctrl.h login_.c:login.h lookslike_.c:lookslike.h main_.c:main.h manifest_.c:manifest.h markdown_.c:markdown.h markdown_html_.c:markdown_html.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h moderate_.c:moderate.h name_.c:name.h path_.c:path.h pivot_.c:pivot.h popen_.c:popen.h pqueue_.c:pqueue.h printf_.c:printf.h publish_.c:publish.h purge_.c:purge.h rebuild_.c:rebuild.h regexp_.c:regexp.h report_.c:report.h rss_.c:rss.h schema_.c:schema.h search_.c:search.h setup_.c:setup.h sha1_.c:sha1.h shun_.c:shun.h skins_.c:skins.h sqlcmd_.c:sqlcmd.h stash_.c:stash.h stat_.c:stat.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tar_.c:tar.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktsetup_.c:tktsetup.h undo_.c:undo.h unicode_.c:unicode.h update_.c:update.h url_.c:url.h user_.c:user.h utf8_.c:utf8.h util_.c:util.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h winfile_.c:winfile.h winhttp_.c:winhttp.h wysiwyg_.c:wysiwyg.h xfer_.c:xfer.h xfersetup_.c:xfersetup.h zip_.c:zip.h $(SRCDIR)\sqlite3.h $(SRCDIR)\th.h VERSION.h $(SRCDIR)\cson_amalgamation.h
820826
@copy /Y nul: headers
821827
--- win/Makefile.dmc
+++ win/Makefile.dmc
@@ -28,13 +28,13 @@
28
29 SQLITE_OPTIONS = -DNDEBUG=1 -DSQLITE_OMIT_LOAD_EXTENSION=1 -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_OMIT_DEPRECATED -DSQLITE_ENABLE_EXPLAIN_COMMENTS
30
31 SHELL_OPTIONS = -Dmain=sqlite3_shell -DSQLITE_OMIT_LOAD_EXTENSION=1 -DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) -DSQLITE_SHELL_DBNAME_PROC=fossil_open -Daccess=file_access -Dsystem=fossil_system -Dgetenv=fossil_getenv -Dfopen=fossil_fopen
32
33 SRC = add_.c allrepo_.c attach_.c bag_.c bisect_.c blob_.c branch_.c browse_.c builtin_.c bundle_.c cache_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c db_.c delta_.c deltacmd_.c descendants_.c diff_.c diffcmd_.c doc_.c encode_.c event_.c export_.c file_.c finfo_.c fusefs_.c glob_.c graph_.c gzip_.c http_.c http_socket_.c http_ssl_.c http_transport_.c import_.c info_.c json_.c json_artifact_.c json_branch_.c json_config_.c json_diff_.c json_dir_.c json_finfo_.c json_login_.c json_query_.c json_report_.c json_status_.c json_tag_.c json_timeline_.c json_user_.c json_wiki_.c leaf_.c loadctrl_.c login_.c lookslike_.c main_.c manifest_.c markdown_.c markdown_html_.c md5_.c merge_.c merge3_.c moderate_.c name_.c path_.c pivot_.c popen_.c pqueue_.c printf_.c publish_.c purge_.c rebuild_.c regexp_.c report_.c rss_.c schema_.c search_.c setup_.c sha1_.c shun_.c skins_.c sqlcmd_.c stash_.c stat_.c style_.c sync_.c tag_.c tar_.c th_main_.c timeline_.c tkt_.c tktsetup_.c undo_.c unicode_.c update_.c url_.c user_.c utf8_.c util_.c verify_.c vfile_.c wiki_.c wikiformat_.c winfile_.c winhttp_.c wysiwyg_.c xfer_.c xfersetup_.c zip_.c
34
35 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)\builtin$O $(OBJDIR)\bundle$O $(OBJDIR)\cache$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)\fusefs$O $(OBJDIR)\glob$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)\json$O $(OBJDIR)\json_artifact$O $(OBJDIR)\json_branch$O $(OBJDIR)\json_config$O $(OBJDIR)\json_diff$O $(OBJDIR)\json_dir$O $(OBJDIR)\json_finfo$O $(OBJDIR)\json_login$O $(OBJDIR)\json_query$O $(OBJDIR)\json_report$O $(OBJDIR)\json_status$O $(OBJDIR)\json_tag$O $(OBJDIR)\json_timeline$O $(OBJDIR)\json_user$O $(OBJDIR)\json_wiki$O $(OBJDIR)\leaf$O $(OBJDIR)\loadctrl$O $(OBJDIR)\login$O $(OBJDIR)\lookslike$O $(OBJDIR)\main$O $(OBJDIR)\manifest$O $(OBJDIR)\markdown$O $(OBJDIR)\markdown_html$O $(OBJDIR)\md5$O $(OBJDIR)\merge$O $(OBJDIR)\merge3$O $(OBJDIR)\moderate$O $(OBJDIR)\name$O $(OBJDIR)\path$O $(OBJDIR)\pivot$O $(OBJDIR)\popen$O $(OBJDIR)\pqueue$O $(OBJDIR)\printf$O $(OBJDIR)\publish$O $(OBJDIR)\purge$O $(OBJDIR)\rebuild$O $(OBJDIR)\regexp$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)\unicode$O $(OBJDIR)\update$O $(OBJDIR)\url$O $(OBJDIR)\user$O $(OBJDIR)\utf8$O $(OBJDIR)\util$O $(OBJDIR)\verify$O $(OBJDIR)\vfile$O $(OBJDIR)\wiki$O $(OBJDIR)\wikiformat$O $(OBJDIR)\winfile$O $(OBJDIR)\winhttp$O $(OBJDIR)\wysiwyg$O $(OBJDIR)\xfer$O $(OBJDIR)\xfersetup$O $(OBJDIR)\zip$O $(OBJDIR)\shell$O $(OBJDIR)\sqlite3$O $(OBJDIR)\th$O $(OBJDIR)\th_lang$O
36
37
38 RC=$(DMDIR)\bin\rcc
39 RCFLAGS=-32 -w1 -I$(SRCDIR) /D__DMC__
40
@@ -49,11 +49,11 @@
49
50 $(OBJDIR)\fossil.res: $B\win\fossil.rc
51 $(RC) $(RCFLAGS) -o$@ $**
52
53 $(OBJDIR)\link: $B\win\Makefile.dmc $(OBJDIR)\fossil.res
54 +echo add allrepo attach bag bisect blob branch browse builtin bundle cache captcha cgi checkin checkout clearsign clone comformat configure content db delta deltacmd descendants diff diffcmd doc encode event export file finfo fusefs glob graph gzip http http_socket http_ssl http_transport import info json json_artifact json_branch json_config json_diff json_dir json_finfo json_login json_query json_report json_status json_tag json_timeline json_user json_wiki leaf loadctrl login lookslike main manifest markdown markdown_html md5 merge merge3 moderate name path pivot popen pqueue printf publish purge rebuild regexp report rss schema search setup sha1 shun skins sqlcmd stash stat style sync tag tar th_main timeline tkt tktsetup undo unicode update url user utf8 util verify vfile wiki wikiformat winfile winhttp wysiwyg xfer xfersetup zip shell sqlite3 th th_lang > $@
55 +echo fossil >> $@
56 +echo fossil >> $@
57 +echo $(LIBS) >> $@
58 +echo. >> $@
59 +echo fossil >> $@
@@ -314,10 +314,16 @@
314 $(OBJDIR)\finfo$O : finfo_.c finfo.h
315 $(TCC) -o$@ -c finfo_.c
316
317 finfo_.c : $(SRCDIR)\finfo.c
318 +translate$E $** > $@
 
 
 
 
 
 
319
320 $(OBJDIR)\fusefs$O : fusefs_.c fusefs.h
321 $(TCC) -o$@ -c fusefs_.c
322
323 fusefs_.c : $(SRCDIR)\fusefs.c
@@ -814,7 +820,7 @@
814
815 zip_.c : $(SRCDIR)\zip.c
816 +translate$E $** > $@
817
818 headers: makeheaders$E page_index.h builtin_data.h VERSION.h
819 +makeheaders$E add_.c:add.h allrepo_.c:allrepo.h attach_.c:attach.h bag_.c:bag.h bisect_.c:bisect.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.h builtin_.c:builtin.h bundle_.c:bundle.h cache_.c:cache.h captcha_.c:captcha.h cgi_.c:cgi.h checkin_.c:checkin.h checkout_.c:checkout.h clearsign_.c:clearsign.h clone_.c:clone.h comformat_.c:comformat.h configure_.c:configure.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h doc_.c:doc.h encode_.c:encode.h event_.c:event.h export_.c:export.h file_.c:file.h finfo_.c:finfo.h fusefs_.c:fusefs.h glob_.c:glob.h graph_.c:graph.h gzip_.c:gzip.h http_.c:http.h http_socket_.c:http_socket.h http_ssl_.c:http_ssl.h http_transport_.c:http_transport.h import_.c:import.h info_.c:info.h json_.c:json.h json_artifact_.c:json_artifact.h json_branch_.c:json_branch.h json_config_.c:json_config.h json_diff_.c:json_diff.h json_dir_.c:json_dir.h json_finfo_.c:json_finfo.h json_login_.c:json_login.h json_query_.c:json_query.h json_report_.c:json_report.h json_status_.c:json_status.h json_tag_.c:json_tag.h json_timeline_.c:json_timeline.h json_user_.c:json_user.h json_wiki_.c:json_wiki.h leaf_.c:leaf.h loadctrl_.c:loadctrl.h login_.c:login.h lookslike_.c:lookslike.h main_.c:main.h manifest_.c:manifest.h markdown_.c:markdown.h markdown_html_.c:markdown_html.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h moderate_.c:moderate.h name_.c:name.h path_.c:path.h pivot_.c:pivot.h popen_.c:popen.h pqueue_.c:pqueue.h printf_.c:printf.h publish_.c:publish.h purge_.c:purge.h rebuild_.c:rebuild.h regexp_.c:regexp.h report_.c:report.h rss_.c:rss.h schema_.c:schema.h search_.c:search.h setup_.c:setup.h sha1_.c:sha1.h shun_.c:shun.h skins_.c:skins.h sqlcmd_.c:sqlcmd.h stash_.c:stash.h stat_.c:stat.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tar_.c:tar.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktsetup_.c:tktsetup.h undo_.c:undo.h unicode_.c:unicode.h update_.c:update.h url_.c:url.h user_.c:user.h utf8_.c:utf8.h util_.c:util.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h winfile_.c:winfile.h winhttp_.c:winhttp.h wysiwyg_.c:wysiwyg.h xfer_.c:xfer.h xfersetup_.c:xfersetup.h zip_.c:zip.h $(SRCDIR)\sqlite3.h $(SRCDIR)\th.h VERSION.h $(SRCDIR)\cson_amalgamation.h
820 @copy /Y nul: headers
821
--- win/Makefile.dmc
+++ win/Makefile.dmc
@@ -28,13 +28,13 @@
28
29 SQLITE_OPTIONS = -DNDEBUG=1 -DSQLITE_OMIT_LOAD_EXTENSION=1 -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_OMIT_DEPRECATED -DSQLITE_ENABLE_EXPLAIN_COMMENTS
30
31 SHELL_OPTIONS = -Dmain=sqlite3_shell -DSQLITE_OMIT_LOAD_EXTENSION=1 -DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) -DSQLITE_SHELL_DBNAME_PROC=fossil_open -Daccess=file_access -Dsystem=fossil_system -Dgetenv=fossil_getenv -Dfopen=fossil_fopen
32
33 SRC = add_.c allrepo_.c attach_.c bag_.c bisect_.c blob_.c branch_.c browse_.c builtin_.c bundle_.c cache_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c db_.c delta_.c deltacmd_.c descendants_.c diff_.c diffcmd_.c doc_.c encode_.c event_.c export_.c file_.c finfo_.c foci_.c fusefs_.c glob_.c graph_.c gzip_.c http_.c http_socket_.c http_ssl_.c http_transport_.c import_.c info_.c json_.c json_artifact_.c json_branch_.c json_config_.c json_diff_.c json_dir_.c json_finfo_.c json_login_.c json_query_.c json_report_.c json_status_.c json_tag_.c json_timeline_.c json_user_.c json_wiki_.c leaf_.c loadctrl_.c login_.c lookslike_.c main_.c manifest_.c markdown_.c markdown_html_.c md5_.c merge_.c merge3_.c moderate_.c name_.c path_.c pivot_.c popen_.c pqueue_.c printf_.c publish_.c purge_.c rebuild_.c regexp_.c report_.c rss_.c schema_.c search_.c setup_.c sha1_.c shun_.c skins_.c sqlcmd_.c stash_.c stat_.c style_.c sync_.c tag_.c tar_.c th_main_.c timeline_.c tkt_.c tktsetup_.c undo_.c unicode_.c update_.c url_.c user_.c utf8_.c util_.c verify_.c vfile_.c wiki_.c wikiformat_.c winfile_.c winhttp_.c wysiwyg_.c xfer_.c xfersetup_.c zip_.c
34
35 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)\builtin$O $(OBJDIR)\bundle$O $(OBJDIR)\cache$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)\foci$O $(OBJDIR)\fusefs$O $(OBJDIR)\glob$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)\json$O $(OBJDIR)\json_artifact$O $(OBJDIR)\json_branch$O $(OBJDIR)\json_config$O $(OBJDIR)\json_diff$O $(OBJDIR)\json_dir$O $(OBJDIR)\json_finfo$O $(OBJDIR)\json_login$O $(OBJDIR)\json_query$O $(OBJDIR)\json_report$O $(OBJDIR)\json_status$O $(OBJDIR)\json_tag$O $(OBJDIR)\json_timeline$O $(OBJDIR)\json_user$O $(OBJDIR)\json_wiki$O $(OBJDIR)\leaf$O $(OBJDIR)\loadctrl$O $(OBJDIR)\login$O $(OBJDIR)\lookslike$O $(OBJDIR)\main$O $(OBJDIR)\manifest$O $(OBJDIR)\markdown$O $(OBJDIR)\markdown_html$O $(OBJDIR)\md5$O $(OBJDIR)\merge$O $(OBJDIR)\merge3$O $(OBJDIR)\moderate$O $(OBJDIR)\name$O $(OBJDIR)\path$O $(OBJDIR)\pivot$O $(OBJDIR)\popen$O $(OBJDIR)\pqueue$O $(OBJDIR)\printf$O $(OBJDIR)\publish$O $(OBJDIR)\purge$O $(OBJDIR)\rebuild$O $(OBJDIR)\regexp$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)\unicode$O $(OBJDIR)\update$O $(OBJDIR)\url$O $(OBJDIR)\user$O $(OBJDIR)\utf8$O $(OBJDIR)\util$O $(OBJDIR)\verify$O $(OBJDIR)\vfile$O $(OBJDIR)\wiki$O $(OBJDIR)\wikiformat$O $(OBJDIR)\winfile$O $(OBJDIR)\winhttp$O $(OBJDIR)\wysiwyg$O $(OBJDIR)\xfer$O $(OBJDIR)\xfersetup$O $(OBJDIR)\zip$O $(OBJDIR)\shell$O $(OBJDIR)\sqlite3$O $(OBJDIR)\th$O $(OBJDIR)\th_lang$O
36
37
38 RC=$(DMDIR)\bin\rcc
39 RCFLAGS=-32 -w1 -I$(SRCDIR) /D__DMC__
40
@@ -49,11 +49,11 @@
49
50 $(OBJDIR)\fossil.res: $B\win\fossil.rc
51 $(RC) $(RCFLAGS) -o$@ $**
52
53 $(OBJDIR)\link: $B\win\Makefile.dmc $(OBJDIR)\fossil.res
54 +echo add allrepo attach bag bisect blob branch browse builtin bundle cache captcha cgi checkin checkout clearsign clone comformat configure content db delta deltacmd descendants diff diffcmd doc encode event export file finfo foci fusefs glob graph gzip http http_socket http_ssl http_transport import info json json_artifact json_branch json_config json_diff json_dir json_finfo json_login json_query json_report json_status json_tag json_timeline json_user json_wiki leaf loadctrl login lookslike main manifest markdown markdown_html md5 merge merge3 moderate name path pivot popen pqueue printf publish purge rebuild regexp report rss schema search setup sha1 shun skins sqlcmd stash stat style sync tag tar th_main timeline tkt tktsetup undo unicode update url user utf8 util verify vfile wiki wikiformat winfile winhttp wysiwyg xfer xfersetup zip shell sqlite3 th th_lang > $@
55 +echo fossil >> $@
56 +echo fossil >> $@
57 +echo $(LIBS) >> $@
58 +echo. >> $@
59 +echo fossil >> $@
@@ -314,10 +314,16 @@
314 $(OBJDIR)\finfo$O : finfo_.c finfo.h
315 $(TCC) -o$@ -c finfo_.c
316
317 finfo_.c : $(SRCDIR)\finfo.c
318 +translate$E $** > $@
319
320 $(OBJDIR)\foci$O : foci_.c foci.h
321 $(TCC) -o$@ -c foci_.c
322
323 foci_.c : $(SRCDIR)\foci.c
324 +translate$E $** > $@
325
326 $(OBJDIR)\fusefs$O : fusefs_.c fusefs.h
327 $(TCC) -o$@ -c fusefs_.c
328
329 fusefs_.c : $(SRCDIR)\fusefs.c
@@ -814,7 +820,7 @@
820
821 zip_.c : $(SRCDIR)\zip.c
822 +translate$E $** > $@
823
824 headers: makeheaders$E page_index.h builtin_data.h VERSION.h
825 +makeheaders$E add_.c:add.h allrepo_.c:allrepo.h attach_.c:attach.h bag_.c:bag.h bisect_.c:bisect.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.h builtin_.c:builtin.h bundle_.c:bundle.h cache_.c:cache.h captcha_.c:captcha.h cgi_.c:cgi.h checkin_.c:checkin.h checkout_.c:checkout.h clearsign_.c:clearsign.h clone_.c:clone.h comformat_.c:comformat.h configure_.c:configure.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h doc_.c:doc.h encode_.c:encode.h event_.c:event.h export_.c:export.h file_.c:file.h finfo_.c:finfo.h foci_.c:foci.h fusefs_.c:fusefs.h glob_.c:glob.h graph_.c:graph.h gzip_.c:gzip.h http_.c:http.h http_socket_.c:http_socket.h http_ssl_.c:http_ssl.h http_transport_.c:http_transport.h import_.c:import.h info_.c:info.h json_.c:json.h json_artifact_.c:json_artifact.h json_branch_.c:json_branch.h json_config_.c:json_config.h json_diff_.c:json_diff.h json_dir_.c:json_dir.h json_finfo_.c:json_finfo.h json_login_.c:json_login.h json_query_.c:json_query.h json_report_.c:json_report.h json_status_.c:json_status.h json_tag_.c:json_tag.h json_timeline_.c:json_timeline.h json_user_.c:json_user.h json_wiki_.c:json_wiki.h leaf_.c:leaf.h loadctrl_.c:loadctrl.h login_.c:login.h lookslike_.c:lookslike.h main_.c:main.h manifest_.c:manifest.h markdown_.c:markdown.h markdown_html_.c:markdown_html.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h moderate_.c:moderate.h name_.c:name.h path_.c:path.h pivot_.c:pivot.h popen_.c:popen.h pqueue_.c:pqueue.h printf_.c:printf.h publish_.c:publish.h purge_.c:purge.h rebuild_.c:rebuild.h regexp_.c:regexp.h report_.c:report.h rss_.c:rss.h schema_.c:schema.h search_.c:search.h setup_.c:setup.h sha1_.c:sha1.h shun_.c:shun.h skins_.c:skins.h sqlcmd_.c:sqlcmd.h stash_.c:stash.h stat_.c:stat.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tar_.c:tar.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktsetup_.c:tktsetup.h undo_.c:undo.h unicode_.c:unicode.h update_.c:update.h url_.c:url.h user_.c:user.h utf8_.c:utf8.h util_.c:util.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h winfile_.c:winfile.h winhttp_.c:winhttp.h wysiwyg_.c:wysiwyg.h xfer_.c:xfer.h xfersetup_.c:xfersetup.h zip_.c:zip.h $(SRCDIR)\sqlite3.h $(SRCDIR)\th.h VERSION.h $(SRCDIR)\cson_amalgamation.h
826 @copy /Y nul: headers
827
--- win/Makefile.mingw
+++ win/Makefile.mingw
@@ -375,10 +375,11 @@
375375
$(SRCDIR)/encode.c \
376376
$(SRCDIR)/event.c \
377377
$(SRCDIR)/export.c \
378378
$(SRCDIR)/file.c \
379379
$(SRCDIR)/finfo.c \
380
+ $(SRCDIR)/foci.c \
380381
$(SRCDIR)/fusefs.c \
381382
$(SRCDIR)/glob.c \
382383
$(SRCDIR)/graph.c \
383384
$(SRCDIR)/gzip.c \
384385
$(SRCDIR)/http.c \
@@ -495,10 +496,11 @@
495496
$(OBJDIR)/encode_.c \
496497
$(OBJDIR)/event_.c \
497498
$(OBJDIR)/export_.c \
498499
$(OBJDIR)/file_.c \
499500
$(OBJDIR)/finfo_.c \
501
+ $(OBJDIR)/foci_.c \
500502
$(OBJDIR)/fusefs_.c \
501503
$(OBJDIR)/glob_.c \
502504
$(OBJDIR)/graph_.c \
503505
$(OBJDIR)/gzip_.c \
504506
$(OBJDIR)/http_.c \
@@ -612,10 +614,11 @@
612614
$(OBJDIR)/encode.o \
613615
$(OBJDIR)/event.o \
614616
$(OBJDIR)/export.o \
615617
$(OBJDIR)/file.o \
616618
$(OBJDIR)/finfo.o \
619
+ $(OBJDIR)/foci.o \
617620
$(OBJDIR)/fusefs.o \
618621
$(OBJDIR)/glob.o \
619622
$(OBJDIR)/graph.o \
620623
$(OBJDIR)/gzip.o \
621624
$(OBJDIR)/http.o \
@@ -922,10 +925,11 @@
922925
$(OBJDIR)/encode_.c:$(OBJDIR)/encode.h \
923926
$(OBJDIR)/event_.c:$(OBJDIR)/event.h \
924927
$(OBJDIR)/export_.c:$(OBJDIR)/export.h \
925928
$(OBJDIR)/file_.c:$(OBJDIR)/file.h \
926929
$(OBJDIR)/finfo_.c:$(OBJDIR)/finfo.h \
930
+ $(OBJDIR)/foci_.c:$(OBJDIR)/foci.h \
927931
$(OBJDIR)/fusefs_.c:$(OBJDIR)/fusefs.h \
928932
$(OBJDIR)/glob_.c:$(OBJDIR)/glob.h \
929933
$(OBJDIR)/graph_.c:$(OBJDIR)/graph.h \
930934
$(OBJDIR)/gzip_.c:$(OBJDIR)/gzip.h \
931935
$(OBJDIR)/http_.c:$(OBJDIR)/http.h \
@@ -1269,10 +1273,18 @@
12691273
12701274
$(OBJDIR)/finfo.o: $(OBJDIR)/finfo_.c $(OBJDIR)/finfo.h $(SRCDIR)/config.h
12711275
$(XTCC) -o $(OBJDIR)/finfo.o -c $(OBJDIR)/finfo_.c
12721276
12731277
$(OBJDIR)/finfo.h: $(OBJDIR)/headers
1278
+
1279
+$(OBJDIR)/foci_.c: $(SRCDIR)/foci.c $(TRANSLATE)
1280
+ $(TRANSLATE) $(SRCDIR)/foci.c >$@
1281
+
1282
+$(OBJDIR)/foci.o: $(OBJDIR)/foci_.c $(OBJDIR)/foci.h $(SRCDIR)/config.h
1283
+ $(XTCC) -o $(OBJDIR)/foci.o -c $(OBJDIR)/foci_.c
1284
+
1285
+$(OBJDIR)/foci.h: $(OBJDIR)/headers
12741286
12751287
$(OBJDIR)/fusefs_.c: $(SRCDIR)/fusefs.c $(TRANSLATE)
12761288
$(TRANSLATE) $(SRCDIR)/fusefs.c >$@
12771289
12781290
$(OBJDIR)/fusefs.o: $(OBJDIR)/fusefs_.c $(OBJDIR)/fusefs.h $(SRCDIR)/config.h
12791291
--- win/Makefile.mingw
+++ win/Makefile.mingw
@@ -375,10 +375,11 @@
375 $(SRCDIR)/encode.c \
376 $(SRCDIR)/event.c \
377 $(SRCDIR)/export.c \
378 $(SRCDIR)/file.c \
379 $(SRCDIR)/finfo.c \
 
380 $(SRCDIR)/fusefs.c \
381 $(SRCDIR)/glob.c \
382 $(SRCDIR)/graph.c \
383 $(SRCDIR)/gzip.c \
384 $(SRCDIR)/http.c \
@@ -495,10 +496,11 @@
495 $(OBJDIR)/encode_.c \
496 $(OBJDIR)/event_.c \
497 $(OBJDIR)/export_.c \
498 $(OBJDIR)/file_.c \
499 $(OBJDIR)/finfo_.c \
 
500 $(OBJDIR)/fusefs_.c \
501 $(OBJDIR)/glob_.c \
502 $(OBJDIR)/graph_.c \
503 $(OBJDIR)/gzip_.c \
504 $(OBJDIR)/http_.c \
@@ -612,10 +614,11 @@
612 $(OBJDIR)/encode.o \
613 $(OBJDIR)/event.o \
614 $(OBJDIR)/export.o \
615 $(OBJDIR)/file.o \
616 $(OBJDIR)/finfo.o \
 
617 $(OBJDIR)/fusefs.o \
618 $(OBJDIR)/glob.o \
619 $(OBJDIR)/graph.o \
620 $(OBJDIR)/gzip.o \
621 $(OBJDIR)/http.o \
@@ -922,10 +925,11 @@
922 $(OBJDIR)/encode_.c:$(OBJDIR)/encode.h \
923 $(OBJDIR)/event_.c:$(OBJDIR)/event.h \
924 $(OBJDIR)/export_.c:$(OBJDIR)/export.h \
925 $(OBJDIR)/file_.c:$(OBJDIR)/file.h \
926 $(OBJDIR)/finfo_.c:$(OBJDIR)/finfo.h \
 
927 $(OBJDIR)/fusefs_.c:$(OBJDIR)/fusefs.h \
928 $(OBJDIR)/glob_.c:$(OBJDIR)/glob.h \
929 $(OBJDIR)/graph_.c:$(OBJDIR)/graph.h \
930 $(OBJDIR)/gzip_.c:$(OBJDIR)/gzip.h \
931 $(OBJDIR)/http_.c:$(OBJDIR)/http.h \
@@ -1269,10 +1273,18 @@
1269
1270 $(OBJDIR)/finfo.o: $(OBJDIR)/finfo_.c $(OBJDIR)/finfo.h $(SRCDIR)/config.h
1271 $(XTCC) -o $(OBJDIR)/finfo.o -c $(OBJDIR)/finfo_.c
1272
1273 $(OBJDIR)/finfo.h: $(OBJDIR)/headers
 
 
 
 
 
 
 
 
1274
1275 $(OBJDIR)/fusefs_.c: $(SRCDIR)/fusefs.c $(TRANSLATE)
1276 $(TRANSLATE) $(SRCDIR)/fusefs.c >$@
1277
1278 $(OBJDIR)/fusefs.o: $(OBJDIR)/fusefs_.c $(OBJDIR)/fusefs.h $(SRCDIR)/config.h
1279
--- win/Makefile.mingw
+++ win/Makefile.mingw
@@ -375,10 +375,11 @@
375 $(SRCDIR)/encode.c \
376 $(SRCDIR)/event.c \
377 $(SRCDIR)/export.c \
378 $(SRCDIR)/file.c \
379 $(SRCDIR)/finfo.c \
380 $(SRCDIR)/foci.c \
381 $(SRCDIR)/fusefs.c \
382 $(SRCDIR)/glob.c \
383 $(SRCDIR)/graph.c \
384 $(SRCDIR)/gzip.c \
385 $(SRCDIR)/http.c \
@@ -495,10 +496,11 @@
496 $(OBJDIR)/encode_.c \
497 $(OBJDIR)/event_.c \
498 $(OBJDIR)/export_.c \
499 $(OBJDIR)/file_.c \
500 $(OBJDIR)/finfo_.c \
501 $(OBJDIR)/foci_.c \
502 $(OBJDIR)/fusefs_.c \
503 $(OBJDIR)/glob_.c \
504 $(OBJDIR)/graph_.c \
505 $(OBJDIR)/gzip_.c \
506 $(OBJDIR)/http_.c \
@@ -612,10 +614,11 @@
614 $(OBJDIR)/encode.o \
615 $(OBJDIR)/event.o \
616 $(OBJDIR)/export.o \
617 $(OBJDIR)/file.o \
618 $(OBJDIR)/finfo.o \
619 $(OBJDIR)/foci.o \
620 $(OBJDIR)/fusefs.o \
621 $(OBJDIR)/glob.o \
622 $(OBJDIR)/graph.o \
623 $(OBJDIR)/gzip.o \
624 $(OBJDIR)/http.o \
@@ -922,10 +925,11 @@
925 $(OBJDIR)/encode_.c:$(OBJDIR)/encode.h \
926 $(OBJDIR)/event_.c:$(OBJDIR)/event.h \
927 $(OBJDIR)/export_.c:$(OBJDIR)/export.h \
928 $(OBJDIR)/file_.c:$(OBJDIR)/file.h \
929 $(OBJDIR)/finfo_.c:$(OBJDIR)/finfo.h \
930 $(OBJDIR)/foci_.c:$(OBJDIR)/foci.h \
931 $(OBJDIR)/fusefs_.c:$(OBJDIR)/fusefs.h \
932 $(OBJDIR)/glob_.c:$(OBJDIR)/glob.h \
933 $(OBJDIR)/graph_.c:$(OBJDIR)/graph.h \
934 $(OBJDIR)/gzip_.c:$(OBJDIR)/gzip.h \
935 $(OBJDIR)/http_.c:$(OBJDIR)/http.h \
@@ -1269,10 +1273,18 @@
1273
1274 $(OBJDIR)/finfo.o: $(OBJDIR)/finfo_.c $(OBJDIR)/finfo.h $(SRCDIR)/config.h
1275 $(XTCC) -o $(OBJDIR)/finfo.o -c $(OBJDIR)/finfo_.c
1276
1277 $(OBJDIR)/finfo.h: $(OBJDIR)/headers
1278
1279 $(OBJDIR)/foci_.c: $(SRCDIR)/foci.c $(TRANSLATE)
1280 $(TRANSLATE) $(SRCDIR)/foci.c >$@
1281
1282 $(OBJDIR)/foci.o: $(OBJDIR)/foci_.c $(OBJDIR)/foci.h $(SRCDIR)/config.h
1283 $(XTCC) -o $(OBJDIR)/foci.o -c $(OBJDIR)/foci_.c
1284
1285 $(OBJDIR)/foci.h: $(OBJDIR)/headers
1286
1287 $(OBJDIR)/fusefs_.c: $(SRCDIR)/fusefs.c $(TRANSLATE)
1288 $(TRANSLATE) $(SRCDIR)/fusefs.c >$@
1289
1290 $(OBJDIR)/fusefs.o: $(OBJDIR)/fusefs_.c $(OBJDIR)/fusefs.h $(SRCDIR)/config.h
1291
--- win/Makefile.mingw
+++ win/Makefile.mingw
@@ -375,10 +375,11 @@
375375
$(SRCDIR)/encode.c \
376376
$(SRCDIR)/event.c \
377377
$(SRCDIR)/export.c \
378378
$(SRCDIR)/file.c \
379379
$(SRCDIR)/finfo.c \
380
+ $(SRCDIR)/foci.c \
380381
$(SRCDIR)/fusefs.c \
381382
$(SRCDIR)/glob.c \
382383
$(SRCDIR)/graph.c \
383384
$(SRCDIR)/gzip.c \
384385
$(SRCDIR)/http.c \
@@ -495,10 +496,11 @@
495496
$(OBJDIR)/encode_.c \
496497
$(OBJDIR)/event_.c \
497498
$(OBJDIR)/export_.c \
498499
$(OBJDIR)/file_.c \
499500
$(OBJDIR)/finfo_.c \
501
+ $(OBJDIR)/foci_.c \
500502
$(OBJDIR)/fusefs_.c \
501503
$(OBJDIR)/glob_.c \
502504
$(OBJDIR)/graph_.c \
503505
$(OBJDIR)/gzip_.c \
504506
$(OBJDIR)/http_.c \
@@ -612,10 +614,11 @@
612614
$(OBJDIR)/encode.o \
613615
$(OBJDIR)/event.o \
614616
$(OBJDIR)/export.o \
615617
$(OBJDIR)/file.o \
616618
$(OBJDIR)/finfo.o \
619
+ $(OBJDIR)/foci.o \
617620
$(OBJDIR)/fusefs.o \
618621
$(OBJDIR)/glob.o \
619622
$(OBJDIR)/graph.o \
620623
$(OBJDIR)/gzip.o \
621624
$(OBJDIR)/http.o \
@@ -922,10 +925,11 @@
922925
$(OBJDIR)/encode_.c:$(OBJDIR)/encode.h \
923926
$(OBJDIR)/event_.c:$(OBJDIR)/event.h \
924927
$(OBJDIR)/export_.c:$(OBJDIR)/export.h \
925928
$(OBJDIR)/file_.c:$(OBJDIR)/file.h \
926929
$(OBJDIR)/finfo_.c:$(OBJDIR)/finfo.h \
930
+ $(OBJDIR)/foci_.c:$(OBJDIR)/foci.h \
927931
$(OBJDIR)/fusefs_.c:$(OBJDIR)/fusefs.h \
928932
$(OBJDIR)/glob_.c:$(OBJDIR)/glob.h \
929933
$(OBJDIR)/graph_.c:$(OBJDIR)/graph.h \
930934
$(OBJDIR)/gzip_.c:$(OBJDIR)/gzip.h \
931935
$(OBJDIR)/http_.c:$(OBJDIR)/http.h \
@@ -1269,10 +1273,18 @@
12691273
12701274
$(OBJDIR)/finfo.o: $(OBJDIR)/finfo_.c $(OBJDIR)/finfo.h $(SRCDIR)/config.h
12711275
$(XTCC) -o $(OBJDIR)/finfo.o -c $(OBJDIR)/finfo_.c
12721276
12731277
$(OBJDIR)/finfo.h: $(OBJDIR)/headers
1278
+
1279
+$(OBJDIR)/foci_.c: $(SRCDIR)/foci.c $(TRANSLATE)
1280
+ $(TRANSLATE) $(SRCDIR)/foci.c >$@
1281
+
1282
+$(OBJDIR)/foci.o: $(OBJDIR)/foci_.c $(OBJDIR)/foci.h $(SRCDIR)/config.h
1283
+ $(XTCC) -o $(OBJDIR)/foci.o -c $(OBJDIR)/foci_.c
1284
+
1285
+$(OBJDIR)/foci.h: $(OBJDIR)/headers
12741286
12751287
$(OBJDIR)/fusefs_.c: $(SRCDIR)/fusefs.c $(TRANSLATE)
12761288
$(TRANSLATE) $(SRCDIR)/fusefs.c >$@
12771289
12781290
$(OBJDIR)/fusefs.o: $(OBJDIR)/fusefs_.c $(OBJDIR)/fusefs.h $(SRCDIR)/config.h
12791291
--- win/Makefile.mingw
+++ win/Makefile.mingw
@@ -375,10 +375,11 @@
375 $(SRCDIR)/encode.c \
376 $(SRCDIR)/event.c \
377 $(SRCDIR)/export.c \
378 $(SRCDIR)/file.c \
379 $(SRCDIR)/finfo.c \
 
380 $(SRCDIR)/fusefs.c \
381 $(SRCDIR)/glob.c \
382 $(SRCDIR)/graph.c \
383 $(SRCDIR)/gzip.c \
384 $(SRCDIR)/http.c \
@@ -495,10 +496,11 @@
495 $(OBJDIR)/encode_.c \
496 $(OBJDIR)/event_.c \
497 $(OBJDIR)/export_.c \
498 $(OBJDIR)/file_.c \
499 $(OBJDIR)/finfo_.c \
 
500 $(OBJDIR)/fusefs_.c \
501 $(OBJDIR)/glob_.c \
502 $(OBJDIR)/graph_.c \
503 $(OBJDIR)/gzip_.c \
504 $(OBJDIR)/http_.c \
@@ -612,10 +614,11 @@
612 $(OBJDIR)/encode.o \
613 $(OBJDIR)/event.o \
614 $(OBJDIR)/export.o \
615 $(OBJDIR)/file.o \
616 $(OBJDIR)/finfo.o \
 
617 $(OBJDIR)/fusefs.o \
618 $(OBJDIR)/glob.o \
619 $(OBJDIR)/graph.o \
620 $(OBJDIR)/gzip.o \
621 $(OBJDIR)/http.o \
@@ -922,10 +925,11 @@
922 $(OBJDIR)/encode_.c:$(OBJDIR)/encode.h \
923 $(OBJDIR)/event_.c:$(OBJDIR)/event.h \
924 $(OBJDIR)/export_.c:$(OBJDIR)/export.h \
925 $(OBJDIR)/file_.c:$(OBJDIR)/file.h \
926 $(OBJDIR)/finfo_.c:$(OBJDIR)/finfo.h \
 
927 $(OBJDIR)/fusefs_.c:$(OBJDIR)/fusefs.h \
928 $(OBJDIR)/glob_.c:$(OBJDIR)/glob.h \
929 $(OBJDIR)/graph_.c:$(OBJDIR)/graph.h \
930 $(OBJDIR)/gzip_.c:$(OBJDIR)/gzip.h \
931 $(OBJDIR)/http_.c:$(OBJDIR)/http.h \
@@ -1269,10 +1273,18 @@
1269
1270 $(OBJDIR)/finfo.o: $(OBJDIR)/finfo_.c $(OBJDIR)/finfo.h $(SRCDIR)/config.h
1271 $(XTCC) -o $(OBJDIR)/finfo.o -c $(OBJDIR)/finfo_.c
1272
1273 $(OBJDIR)/finfo.h: $(OBJDIR)/headers
 
 
 
 
 
 
 
 
1274
1275 $(OBJDIR)/fusefs_.c: $(SRCDIR)/fusefs.c $(TRANSLATE)
1276 $(TRANSLATE) $(SRCDIR)/fusefs.c >$@
1277
1278 $(OBJDIR)/fusefs.o: $(OBJDIR)/fusefs_.c $(OBJDIR)/fusefs.h $(SRCDIR)/config.h
1279
--- win/Makefile.mingw
+++ win/Makefile.mingw
@@ -375,10 +375,11 @@
375 $(SRCDIR)/encode.c \
376 $(SRCDIR)/event.c \
377 $(SRCDIR)/export.c \
378 $(SRCDIR)/file.c \
379 $(SRCDIR)/finfo.c \
380 $(SRCDIR)/foci.c \
381 $(SRCDIR)/fusefs.c \
382 $(SRCDIR)/glob.c \
383 $(SRCDIR)/graph.c \
384 $(SRCDIR)/gzip.c \
385 $(SRCDIR)/http.c \
@@ -495,10 +496,11 @@
496 $(OBJDIR)/encode_.c \
497 $(OBJDIR)/event_.c \
498 $(OBJDIR)/export_.c \
499 $(OBJDIR)/file_.c \
500 $(OBJDIR)/finfo_.c \
501 $(OBJDIR)/foci_.c \
502 $(OBJDIR)/fusefs_.c \
503 $(OBJDIR)/glob_.c \
504 $(OBJDIR)/graph_.c \
505 $(OBJDIR)/gzip_.c \
506 $(OBJDIR)/http_.c \
@@ -612,10 +614,11 @@
614 $(OBJDIR)/encode.o \
615 $(OBJDIR)/event.o \
616 $(OBJDIR)/export.o \
617 $(OBJDIR)/file.o \
618 $(OBJDIR)/finfo.o \
619 $(OBJDIR)/foci.o \
620 $(OBJDIR)/fusefs.o \
621 $(OBJDIR)/glob.o \
622 $(OBJDIR)/graph.o \
623 $(OBJDIR)/gzip.o \
624 $(OBJDIR)/http.o \
@@ -922,10 +925,11 @@
925 $(OBJDIR)/encode_.c:$(OBJDIR)/encode.h \
926 $(OBJDIR)/event_.c:$(OBJDIR)/event.h \
927 $(OBJDIR)/export_.c:$(OBJDIR)/export.h \
928 $(OBJDIR)/file_.c:$(OBJDIR)/file.h \
929 $(OBJDIR)/finfo_.c:$(OBJDIR)/finfo.h \
930 $(OBJDIR)/foci_.c:$(OBJDIR)/foci.h \
931 $(OBJDIR)/fusefs_.c:$(OBJDIR)/fusefs.h \
932 $(OBJDIR)/glob_.c:$(OBJDIR)/glob.h \
933 $(OBJDIR)/graph_.c:$(OBJDIR)/graph.h \
934 $(OBJDIR)/gzip_.c:$(OBJDIR)/gzip.h \
935 $(OBJDIR)/http_.c:$(OBJDIR)/http.h \
@@ -1269,10 +1273,18 @@
1273
1274 $(OBJDIR)/finfo.o: $(OBJDIR)/finfo_.c $(OBJDIR)/finfo.h $(SRCDIR)/config.h
1275 $(XTCC) -o $(OBJDIR)/finfo.o -c $(OBJDIR)/finfo_.c
1276
1277 $(OBJDIR)/finfo.h: $(OBJDIR)/headers
1278
1279 $(OBJDIR)/foci_.c: $(SRCDIR)/foci.c $(TRANSLATE)
1280 $(TRANSLATE) $(SRCDIR)/foci.c >$@
1281
1282 $(OBJDIR)/foci.o: $(OBJDIR)/foci_.c $(OBJDIR)/foci.h $(SRCDIR)/config.h
1283 $(XTCC) -o $(OBJDIR)/foci.o -c $(OBJDIR)/foci_.c
1284
1285 $(OBJDIR)/foci.h: $(OBJDIR)/headers
1286
1287 $(OBJDIR)/fusefs_.c: $(SRCDIR)/fusefs.c $(TRANSLATE)
1288 $(TRANSLATE) $(SRCDIR)/fusefs.c >$@
1289
1290 $(OBJDIR)/fusefs.o: $(OBJDIR)/fusefs_.c $(OBJDIR)/fusefs.h $(SRCDIR)/config.h
1291
--- win/Makefile.msc
+++ win/Makefile.msc
@@ -227,10 +227,11 @@
227227
encode_.c \
228228
event_.c \
229229
export_.c \
230230
file_.c \
231231
finfo_.c \
232
+ foci_.c \
232233
fusefs_.c \
233234
glob_.c \
234235
graph_.c \
235236
gzip_.c \
236237
http_.c \
@@ -346,10 +347,11 @@
346347
$(OX)\encode$O \
347348
$(OX)\event$O \
348349
$(OX)\export$O \
349350
$(OX)\file$O \
350351
$(OX)\finfo$O \
352
+ $(OX)\foci$O \
351353
$(OX)\fusefs$O \
352354
$(OX)\glob$O \
353355
$(OX)\graph$O \
354356
$(OX)\gzip$O \
355357
$(OX)\http$O \
@@ -518,10 +520,11 @@
518520
echo $(OX)\encode.obj >> $@
519521
echo $(OX)\event.obj >> $@
520522
echo $(OX)\export.obj >> $@
521523
echo $(OX)\file.obj >> $@
522524
echo $(OX)\finfo.obj >> $@
525
+ echo $(OX)\foci.obj >> $@
523526
echo $(OX)\fusefs.obj >> $@
524527
echo $(OX)\glob.obj >> $@
525528
echo $(OX)\graph.obj >> $@
526529
echo $(OX)\gzip.obj >> $@
527530
echo $(OX)\http.obj >> $@
@@ -896,10 +899,16 @@
896899
$(OX)\finfo$O : finfo_.c finfo.h
897900
$(TCC) /Fo$@ -c finfo_.c
898901
899902
finfo_.c : $(SRCDIR)\finfo.c
900903
translate$E $** > $@
904
+
905
+$(OX)\foci$O : foci_.c foci.h
906
+ $(TCC) /Fo$@ -c foci_.c
907
+
908
+foci_.c : $(SRCDIR)\foci.c
909
+ translate$E $** > $@
901910
902911
$(OX)\fusefs$O : fusefs_.c fusefs.h
903912
$(TCC) /Fo$@ -c fusefs_.c
904913
905914
fusefs_.c : $(SRCDIR)\fusefs.c
@@ -1431,10 +1440,11 @@
14311440
encode_.c:encode.h \
14321441
event_.c:event.h \
14331442
export_.c:export.h \
14341443
file_.c:file.h \
14351444
finfo_.c:finfo.h \
1445
+ foci_.c:foci.h \
14361446
fusefs_.c:fusefs.h \
14371447
glob_.c:glob.h \
14381448
graph_.c:graph.h \
14391449
gzip_.c:gzip.h \
14401450
http_.c:http.h \
14411451
--- win/Makefile.msc
+++ win/Makefile.msc
@@ -227,10 +227,11 @@
227 encode_.c \
228 event_.c \
229 export_.c \
230 file_.c \
231 finfo_.c \
 
232 fusefs_.c \
233 glob_.c \
234 graph_.c \
235 gzip_.c \
236 http_.c \
@@ -346,10 +347,11 @@
346 $(OX)\encode$O \
347 $(OX)\event$O \
348 $(OX)\export$O \
349 $(OX)\file$O \
350 $(OX)\finfo$O \
 
351 $(OX)\fusefs$O \
352 $(OX)\glob$O \
353 $(OX)\graph$O \
354 $(OX)\gzip$O \
355 $(OX)\http$O \
@@ -518,10 +520,11 @@
518 echo $(OX)\encode.obj >> $@
519 echo $(OX)\event.obj >> $@
520 echo $(OX)\export.obj >> $@
521 echo $(OX)\file.obj >> $@
522 echo $(OX)\finfo.obj >> $@
 
523 echo $(OX)\fusefs.obj >> $@
524 echo $(OX)\glob.obj >> $@
525 echo $(OX)\graph.obj >> $@
526 echo $(OX)\gzip.obj >> $@
527 echo $(OX)\http.obj >> $@
@@ -896,10 +899,16 @@
896 $(OX)\finfo$O : finfo_.c finfo.h
897 $(TCC) /Fo$@ -c finfo_.c
898
899 finfo_.c : $(SRCDIR)\finfo.c
900 translate$E $** > $@
 
 
 
 
 
 
901
902 $(OX)\fusefs$O : fusefs_.c fusefs.h
903 $(TCC) /Fo$@ -c fusefs_.c
904
905 fusefs_.c : $(SRCDIR)\fusefs.c
@@ -1431,10 +1440,11 @@
1431 encode_.c:encode.h \
1432 event_.c:event.h \
1433 export_.c:export.h \
1434 file_.c:file.h \
1435 finfo_.c:finfo.h \
 
1436 fusefs_.c:fusefs.h \
1437 glob_.c:glob.h \
1438 graph_.c:graph.h \
1439 gzip_.c:gzip.h \
1440 http_.c:http.h \
1441
--- win/Makefile.msc
+++ win/Makefile.msc
@@ -227,10 +227,11 @@
227 encode_.c \
228 event_.c \
229 export_.c \
230 file_.c \
231 finfo_.c \
232 foci_.c \
233 fusefs_.c \
234 glob_.c \
235 graph_.c \
236 gzip_.c \
237 http_.c \
@@ -346,10 +347,11 @@
347 $(OX)\encode$O \
348 $(OX)\event$O \
349 $(OX)\export$O \
350 $(OX)\file$O \
351 $(OX)\finfo$O \
352 $(OX)\foci$O \
353 $(OX)\fusefs$O \
354 $(OX)\glob$O \
355 $(OX)\graph$O \
356 $(OX)\gzip$O \
357 $(OX)\http$O \
@@ -518,10 +520,11 @@
520 echo $(OX)\encode.obj >> $@
521 echo $(OX)\event.obj >> $@
522 echo $(OX)\export.obj >> $@
523 echo $(OX)\file.obj >> $@
524 echo $(OX)\finfo.obj >> $@
525 echo $(OX)\foci.obj >> $@
526 echo $(OX)\fusefs.obj >> $@
527 echo $(OX)\glob.obj >> $@
528 echo $(OX)\graph.obj >> $@
529 echo $(OX)\gzip.obj >> $@
530 echo $(OX)\http.obj >> $@
@@ -896,10 +899,16 @@
899 $(OX)\finfo$O : finfo_.c finfo.h
900 $(TCC) /Fo$@ -c finfo_.c
901
902 finfo_.c : $(SRCDIR)\finfo.c
903 translate$E $** > $@
904
905 $(OX)\foci$O : foci_.c foci.h
906 $(TCC) /Fo$@ -c foci_.c
907
908 foci_.c : $(SRCDIR)\foci.c
909 translate$E $** > $@
910
911 $(OX)\fusefs$O : fusefs_.c fusefs.h
912 $(TCC) /Fo$@ -c fusefs_.c
913
914 fusefs_.c : $(SRCDIR)\fusefs.c
@@ -1431,10 +1440,11 @@
1440 encode_.c:encode.h \
1441 event_.c:event.h \
1442 export_.c:export.h \
1443 file_.c:file.h \
1444 finfo_.c:finfo.h \
1445 foci_.c:foci.h \
1446 fusefs_.c:fusefs.h \
1447 glob_.c:glob.h \
1448 graph_.c:graph.h \
1449 gzip_.c:gzip.h \
1450 http_.c:http.h \
1451
--- win/Makefile.msc
+++ win/Makefile.msc
@@ -227,10 +227,11 @@
227227
encode_.c \
228228
event_.c \
229229
export_.c \
230230
file_.c \
231231
finfo_.c \
232
+ foci_.c \
232233
fusefs_.c \
233234
glob_.c \
234235
graph_.c \
235236
gzip_.c \
236237
http_.c \
@@ -346,10 +347,11 @@
346347
$(OX)\encode$O \
347348
$(OX)\event$O \
348349
$(OX)\export$O \
349350
$(OX)\file$O \
350351
$(OX)\finfo$O \
352
+ $(OX)\foci$O \
351353
$(OX)\fusefs$O \
352354
$(OX)\glob$O \
353355
$(OX)\graph$O \
354356
$(OX)\gzip$O \
355357
$(OX)\http$O \
@@ -518,10 +520,11 @@
518520
echo $(OX)\encode.obj >> $@
519521
echo $(OX)\event.obj >> $@
520522
echo $(OX)\export.obj >> $@
521523
echo $(OX)\file.obj >> $@
522524
echo $(OX)\finfo.obj >> $@
525
+ echo $(OX)\foci.obj >> $@
523526
echo $(OX)\fusefs.obj >> $@
524527
echo $(OX)\glob.obj >> $@
525528
echo $(OX)\graph.obj >> $@
526529
echo $(OX)\gzip.obj >> $@
527530
echo $(OX)\http.obj >> $@
@@ -896,10 +899,16 @@
896899
$(OX)\finfo$O : finfo_.c finfo.h
897900
$(TCC) /Fo$@ -c finfo_.c
898901
899902
finfo_.c : $(SRCDIR)\finfo.c
900903
translate$E $** > $@
904
+
905
+$(OX)\foci$O : foci_.c foci.h
906
+ $(TCC) /Fo$@ -c foci_.c
907
+
908
+foci_.c : $(SRCDIR)\foci.c
909
+ translate$E $** > $@
901910
902911
$(OX)\fusefs$O : fusefs_.c fusefs.h
903912
$(TCC) /Fo$@ -c fusefs_.c
904913
905914
fusefs_.c : $(SRCDIR)\fusefs.c
@@ -1431,10 +1440,11 @@
14311440
encode_.c:encode.h \
14321441
event_.c:event.h \
14331442
export_.c:export.h \
14341443
file_.c:file.h \
14351444
finfo_.c:finfo.h \
1445
+ foci_.c:foci.h \
14361446
fusefs_.c:fusefs.h \
14371447
glob_.c:glob.h \
14381448
graph_.c:graph.h \
14391449
gzip_.c:gzip.h \
14401450
http_.c:http.h \
14411451
--- win/Makefile.msc
+++ win/Makefile.msc
@@ -227,10 +227,11 @@
227 encode_.c \
228 event_.c \
229 export_.c \
230 file_.c \
231 finfo_.c \
 
232 fusefs_.c \
233 glob_.c \
234 graph_.c \
235 gzip_.c \
236 http_.c \
@@ -346,10 +347,11 @@
346 $(OX)\encode$O \
347 $(OX)\event$O \
348 $(OX)\export$O \
349 $(OX)\file$O \
350 $(OX)\finfo$O \
 
351 $(OX)\fusefs$O \
352 $(OX)\glob$O \
353 $(OX)\graph$O \
354 $(OX)\gzip$O \
355 $(OX)\http$O \
@@ -518,10 +520,11 @@
518 echo $(OX)\encode.obj >> $@
519 echo $(OX)\event.obj >> $@
520 echo $(OX)\export.obj >> $@
521 echo $(OX)\file.obj >> $@
522 echo $(OX)\finfo.obj >> $@
 
523 echo $(OX)\fusefs.obj >> $@
524 echo $(OX)\glob.obj >> $@
525 echo $(OX)\graph.obj >> $@
526 echo $(OX)\gzip.obj >> $@
527 echo $(OX)\http.obj >> $@
@@ -896,10 +899,16 @@
896 $(OX)\finfo$O : finfo_.c finfo.h
897 $(TCC) /Fo$@ -c finfo_.c
898
899 finfo_.c : $(SRCDIR)\finfo.c
900 translate$E $** > $@
 
 
 
 
 
 
901
902 $(OX)\fusefs$O : fusefs_.c fusefs.h
903 $(TCC) /Fo$@ -c fusefs_.c
904
905 fusefs_.c : $(SRCDIR)\fusefs.c
@@ -1431,10 +1440,11 @@
1431 encode_.c:encode.h \
1432 event_.c:event.h \
1433 export_.c:export.h \
1434 file_.c:file.h \
1435 finfo_.c:finfo.h \
 
1436 fusefs_.c:fusefs.h \
1437 glob_.c:glob.h \
1438 graph_.c:graph.h \
1439 gzip_.c:gzip.h \
1440 http_.c:http.h \
1441
--- win/Makefile.msc
+++ win/Makefile.msc
@@ -227,10 +227,11 @@
227 encode_.c \
228 event_.c \
229 export_.c \
230 file_.c \
231 finfo_.c \
232 foci_.c \
233 fusefs_.c \
234 glob_.c \
235 graph_.c \
236 gzip_.c \
237 http_.c \
@@ -346,10 +347,11 @@
347 $(OX)\encode$O \
348 $(OX)\event$O \
349 $(OX)\export$O \
350 $(OX)\file$O \
351 $(OX)\finfo$O \
352 $(OX)\foci$O \
353 $(OX)\fusefs$O \
354 $(OX)\glob$O \
355 $(OX)\graph$O \
356 $(OX)\gzip$O \
357 $(OX)\http$O \
@@ -518,10 +520,11 @@
520 echo $(OX)\encode.obj >> $@
521 echo $(OX)\event.obj >> $@
522 echo $(OX)\export.obj >> $@
523 echo $(OX)\file.obj >> $@
524 echo $(OX)\finfo.obj >> $@
525 echo $(OX)\foci.obj >> $@
526 echo $(OX)\fusefs.obj >> $@
527 echo $(OX)\glob.obj >> $@
528 echo $(OX)\graph.obj >> $@
529 echo $(OX)\gzip.obj >> $@
530 echo $(OX)\http.obj >> $@
@@ -896,10 +899,16 @@
899 $(OX)\finfo$O : finfo_.c finfo.h
900 $(TCC) /Fo$@ -c finfo_.c
901
902 finfo_.c : $(SRCDIR)\finfo.c
903 translate$E $** > $@
904
905 $(OX)\foci$O : foci_.c foci.h
906 $(TCC) /Fo$@ -c foci_.c
907
908 foci_.c : $(SRCDIR)\foci.c
909 translate$E $** > $@
910
911 $(OX)\fusefs$O : fusefs_.c fusefs.h
912 $(TCC) /Fo$@ -c fusefs_.c
913
914 fusefs_.c : $(SRCDIR)\fusefs.c
@@ -1431,10 +1440,11 @@
1440 encode_.c:encode.h \
1441 event_.c:event.h \
1442 export_.c:export.h \
1443 file_.c:file.h \
1444 finfo_.c:finfo.h \
1445 foci_.c:foci.h \
1446 fusefs_.c:fusefs.h \
1447 glob_.c:glob.h \
1448 graph_.c:graph.h \
1449 gzip_.c:gzip.h \
1450 http_.c:http.h \
1451

Keyboard Shortcuts

Open search /
Next entry (timeline) j
Previous entry (timeline) k
Open focused entry Enter
Show this help ?
Toggle theme Top nav button