Fossil SCM

Merge in trunk.

stephan 2020-06-11 07:46 default.css merge
Commit bd56e90d0f3b2c0ec90d43b45ec2088494820b1f151c9e6287a2079866039cf9
78 files changed +1 -1 +176 +4 -35 +57 -4 +2 -2 +1 +2 -17 +2 -1 +30 -2 +1 -1 +1 -1 +1 +33 -7 +1 +66 -320 +1 -1 +2 -2 +95 -4 +16 -2 +6 -6 +3 -3 +2 +58 -29 +12 -2 +12 -2 +200 -154 +200 -154 +2 -1 +13 -14 +207 -15 +3 -2 +9 +2 +1 -1 +21 +436 -107 +280 -103 +3 -3 -1 -1 +23 -6 +7 -5 +1 +1 -1 +64 -14 +140 +12 +322 -14 +12 -15 +7 -1 +4 -4 +1 -1 +72 +30 +10 +164 +14 -10 +3 -2 +11 -10 +288 -288 +2 -2 +2 -2 +12 -7 +12 -7 +12 -2 +12 -2 +21 -2 +1820 -1674 +1820 -1674 +58 -13 +16 +4 -4 +2 -2 +27 -1 +15 -15 +5 -9 +38 -6 +25 -34
+1 -1
--- src/add.c
+++ src/add.c
@@ -1090,11 +1090,11 @@
10901090
const char *zPath = db_column_text(&q, 0);
10911091
int nPath = db_column_bytes(&q, 0);
10921092
const char *zTail;
10931093
if( nPath==nOrig ){
10941094
zTail = file_tail(zPath);
1095
- }else if( destType==1 ){
1095
+ }else if( origType!=0 && destType==1 ){
10961096
zTail = &zPath[nOrig-strlen(file_tail(zOrig))];
10971097
}else{
10981098
zTail = &zPath[nOrig+1];
10991099
}
11001100
db_multi_exec(
11011101
11021102
ADDED src/ajax.c
--- src/add.c
+++ src/add.c
@@ -1090,11 +1090,11 @@
1090 const char *zPath = db_column_text(&q, 0);
1091 int nPath = db_column_bytes(&q, 0);
1092 const char *zTail;
1093 if( nPath==nOrig ){
1094 zTail = file_tail(zPath);
1095 }else if( destType==1 ){
1096 zTail = &zPath[nOrig-strlen(file_tail(zOrig))];
1097 }else{
1098 zTail = &zPath[nOrig+1];
1099 }
1100 db_multi_exec(
1101
1102 DDED src/ajax.c
--- src/add.c
+++ src/add.c
@@ -1090,11 +1090,11 @@
1090 const char *zPath = db_column_text(&q, 0);
1091 int nPath = db_column_bytes(&q, 0);
1092 const char *zTail;
1093 if( nPath==nOrig ){
1094 zTail = file_tail(zPath);
1095 }else if( origType!=0 && destType==1 ){
1096 zTail = &zPath[nOrig-strlen(file_tail(zOrig))];
1097 }else{
1098 zTail = &zPath[nOrig+1];
1099 }
1100 db_multi_exec(
1101
1102 DDED src/ajax.c
+176
--- a/src/ajax.c
+++ b/src/ajax.c
@@ -0,0 +1,176 @@
1
+/*
2
+** Copyright (c) 2020 D. Richard Hipp
3
+**
4
+** This program is free software; you can redistribute it and/or
5
+** modify it under the terms of the Simplified BSD License (also
6
+** known as the "2-Clause License" or "FreeBSD License".)
7
+**
8
+** This program is distributed in the hope that it will be useful,
9
+** but without any warranty; without even the implied warranty of
10
+** merchantability or fitness for a particular purpose.
11
+**
12
+** Author contact information:
13
+** [email protected]
14
+** http://www.hwaci.com/drh/
15
+**
16
+*******************************************************************************
17
+**
18
+** This file contains shared Ajax-related code for /fileedit, the wiki/forum
19
+** editors, and friends.
20
+*/
21
+#include "config.h"
22
+#include "ajax.h "
23
+#include <assert.h>
24
+#include <stdarg.h>
25
+
26
+#if INTERFACE
27
+/* enum ajax_render_preview_flags: */
28
+#define AJAX_PREVIEW_LINE_NUMBERS 1
29
+/* enum ajax_render_modes: */
30
+#define AJAX_RENDER_GUESS 0 /* Guess rendering mode based on mimetype. */
31
+/* GUESS must be 0. All others have unspecified values. */
32
+#define AJAX_RENDER_PLAIN_TEXT 1 /* Render as plain text. */
33
+#define AJAX_RENDER_HTML_IFRAME 2 /* Render as HTML inside an IFRAME. */
34
+#define AJAX_RENDER_HTML_INLINE 3 /* Render as HTML without an IFRAME. */
35
+#define AJAX_RENDER_WIKI 4 /* Render as wiki/markdown. */
36
+#endif
37
+
38
+/*
39
+** Emits JS code which initializes the
40
+** fossil.page.previewModes object to a map of AJAX_RENDER_xxx values
41
+** and symbolic names for use by client-side scripts.
42
+**
43
+** If addScriptTag is true then the output is wrapped in a SCRIPT tag
44
+** with the current nonce, else no SCRIPT tag is emitted.
45
+**
46
+** Requires thatstyle
47
+**
48
+** Requires that builtin_emit_script_fossil_bootstrap() has already been
49
+** called in order to initialize the window.fossil.page object.
50
+*/
51
+void ajax_emit_js_preview_modes(int addScriptTag){
52
+ emit_script_tag(0,0);
53
+ CX("\n"_);
54
+ }
55
+ CX("fossil.page.pditional
56
+**Blob *pContent, u64 diffFlags)0, diffFlagsOrig, pContent, &out, &DCfg);
57
+ i if(DIFF_SIDEBYSIDE & diffFlags)/* nothing to do */
58
+ }eelse{
59
+ CX("",&out);
60
+ }
61
+ blob_reset(&out);
62
+}
63
+
64
+/*
65
+** Uses P(zKey) to fetch a CGI environment variable. If that var is
66
+** NULL or starts with '0' or 'f' then this function returns false,
67
+** else it returns true.
68
+*/
69
+int ajax_p_bool(char const *zKey){
70
+ const char * zVal = P(zKey);
71
+ return (!zal || emit_script_tag(1,0 /fileedit, the wiki/forum
72
+** editors, and friends.
73
+*/
74
+#include "config.h"
75
+#include "ajax.h "
76
+#include <assert.h>
77
+#include <stdarg.h>
78
+
79
+#if INTERFACE
80
+/* enum ajax_render_preview_flags: */
81
+#define AJAX_PREVIEW_LINE_NUMBERS 1
82
+/* enum ajax_render_modes: */
83
+#define AJAX_RENDER_GUESS 0 /* Guess rendering mode based on mimetype. */
84
+/* GUESS must be 0. All others have unspecified values. */
85
+#define AJAX_RENDER_PLAIN_TEXT 1 /* Render as plain text. */
86
+#define AJAX_RENDER_HTML_IFRAME 2 /* Render as HTML inside an IFRAME. */
87
+#define AJAX_RENDER_HTML_INLINE 3 /* Render as HTML without an IFRAME. */
88
+#define AJAX_RENDER_WIKI 4 /* Render as wiki/markdown. */
89
+#endif
90
+
91
+/*
92
+** Emits JS code which initializes the
93
+** fossil.page.previewModes object to a map of AJAX_RENDER_xxx values
94
+** anre; you can redistri/*
95
+** Copyright (c) 2020 D. Richard Hipp
96
+**
97
+** This program is free software; you can redistribute it and/or
98
+** modify it under the terms of the Simplified BSD License (also
99
+** known as the "2-Clause License" or "FreeBSD License".)
100
+**
101
+** This program is distributed in the hope that it will be useful,
102
+** but without any warranty; without even the implied warranty of
103
+** merchantability or fitness for a particular purpose.
104
+**
105
+** Author contact information:
106
+** [email protected]
107
+** http://www.hwaci.com/drh/
108
+**
109
+*******************************************************************************
110
+**
111
+** This file contains shared Ajax-related code for /fileedit, the wiki/forum
112
+** editors, and friends.
113
+*/
114
+#include "config.h"
115
+#include "ajax.h "
116
+#include <assert.h>
117
+#include <stdarg.h>
118
+
119
+#if INTERFACE
120
+/* enum ajax_render_preview_flags: */
121
+#define AJAX_PREVIEW_LINE_NUMBERS 1
122
+/* enum ajax_render_modes: */
123
+#define AJAX_RENDER_GUESS 0 /* Guess rendering mode based on mimetype. */
124
+/* GUESS must be 0. All others have unspecified values. */
125
+#define AJAX_RENDER_PLAIN_TEXT 1 /* Render as plain text. */
126
+#define AJAX_RENDER_HTML_IFRAME 2 /* Render as HTML inside an IFRAME. */
127
+#define AJAX_RENDER_HTML_INLINE 3 /* Render as HTML without an IFRAME. */
128
+#define AJAX_RENDER_WIKI 4 /* Render as wiki/markdown. */
129
+#endif
130
+
131
+/*
132
+** Emits JS code which initializes the
133
+** fossil.page.previewModes object to a map of AJAX_RENDER_xxx values
134
+** and symbolic names for use by client-side scripts.
135
+**
136
+** If addScriptTag is true then the output is wrapped in a SCRIPT tag
137
+** with the current nonce, else no SCRIPT tag is emitted.script_fossil_bootstrap() has already been
138
+** called in order to initialize the window.fossil.page object.
139
+*/
140
+void ajax_emit_js_preview_modes(int addScriptTag){
141
+ emit_script_tag(0,0);
142
+ CX("\n"_);
143
+ }
144
+ CX("fossil.page.pditional
145
+**Blob *pContent, u64 diffFlags)0, diffFlagsOrig, pContent, &out, &DCfg);
146
+ i if(DIFF_SIDEBYSIDE & diffFlags)/* nothing to do */
147
+ }eelse{
148
+ CX("",&out);
149
+ }
150
+ blob_reset(&out);
151
+}
152
+
153
+/*
154
+** Uses P(zKey) to fetch a CGI environment variable. If that var is
155
+** NULL or starts with '0' or 'f' then this function returns false,
156
+** else it returns true.
157
+*/
158
+int ajax_p_bool(char const *zKey){
159
+ const char * zVal = P(zKey);
160
+ return (!zal || emit_script_tag(1,0 /fileedit, the wiki/forum
161
+** editors, and friends.
162
+*/
163
+#include "config.h"
164
+#include "ajax.h "
165
+#include <assert.h>
166
+#include <stdarg.h>
167
+
168
+#if INTERFARENDER_HTML_IFRAME 2 /* Render as HTML inside an IFRAME. */
169
+#define AJAX_RENDER_HTML_INLINE 3 /* Render as HTML without an IFRAME. */
170
+#define AJAX_RENDER_WIKI 4 /* Render as wiki/markdown. */
171
+#endif
172
+
173
+/*
174
+** Emits JS code which initializes the
175
+** fossil.page.previewModes object to a map of AJAX_RENDER_xxx values
176
+** anstatic
--- a/src/ajax.c
+++ b/src/ajax.c
@@ -0,0 +1,176 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
--- a/src/ajax.c
+++ b/src/ajax.c
@@ -0,0 +1,176 @@
1 /*
2 ** Copyright (c) 2020 D. Richard Hipp
3 **
4 ** This program is free software; you can redistribute it and/or
5 ** modify it under the terms of the Simplified BSD License (also
6 ** known as the "2-Clause License" or "FreeBSD License".)
7 **
8 ** This program is distributed in the hope that it will be useful,
9 ** but without any warranty; without even the implied warranty of
10 ** merchantability or fitness for a particular purpose.
11 **
12 ** Author contact information:
13 ** [email protected]
14 ** http://www.hwaci.com/drh/
15 **
16 *******************************************************************************
17 **
18 ** This file contains shared Ajax-related code for /fileedit, the wiki/forum
19 ** editors, and friends.
20 */
21 #include "config.h"
22 #include "ajax.h "
23 #include <assert.h>
24 #include <stdarg.h>
25
26 #if INTERFACE
27 /* enum ajax_render_preview_flags: */
28 #define AJAX_PREVIEW_LINE_NUMBERS 1
29 /* enum ajax_render_modes: */
30 #define AJAX_RENDER_GUESS 0 /* Guess rendering mode based on mimetype. */
31 /* GUESS must be 0. All others have unspecified values. */
32 #define AJAX_RENDER_PLAIN_TEXT 1 /* Render as plain text. */
33 #define AJAX_RENDER_HTML_IFRAME 2 /* Render as HTML inside an IFRAME. */
34 #define AJAX_RENDER_HTML_INLINE 3 /* Render as HTML without an IFRAME. */
35 #define AJAX_RENDER_WIKI 4 /* Render as wiki/markdown. */
36 #endif
37
38 /*
39 ** Emits JS code which initializes the
40 ** fossil.page.previewModes object to a map of AJAX_RENDER_xxx values
41 ** and symbolic names for use by client-side scripts.
42 **
43 ** If addScriptTag is true then the output is wrapped in a SCRIPT tag
44 ** with the current nonce, else no SCRIPT tag is emitted.
45 **
46 ** Requires thatstyle
47 **
48 ** Requires that builtin_emit_script_fossil_bootstrap() has already been
49 ** called in order to initialize the window.fossil.page object.
50 */
51 void ajax_emit_js_preview_modes(int addScriptTag){
52 emit_script_tag(0,0);
53 CX("\n"_);
54 }
55 CX("fossil.page.pditional
56 **Blob *pContent, u64 diffFlags)0, diffFlagsOrig, pContent, &out, &DCfg);
57 i if(DIFF_SIDEBYSIDE & diffFlags)/* nothing to do */
58 }eelse{
59 CX("",&out);
60 }
61 blob_reset(&out);
62 }
63
64 /*
65 ** Uses P(zKey) to fetch a CGI environment variable. If that var is
66 ** NULL or starts with '0' or 'f' then this function returns false,
67 ** else it returns true.
68 */
69 int ajax_p_bool(char const *zKey){
70 const char * zVal = P(zKey);
71 return (!zal || emit_script_tag(1,0 /fileedit, the wiki/forum
72 ** editors, and friends.
73 */
74 #include "config.h"
75 #include "ajax.h "
76 #include <assert.h>
77 #include <stdarg.h>
78
79 #if INTERFACE
80 /* enum ajax_render_preview_flags: */
81 #define AJAX_PREVIEW_LINE_NUMBERS 1
82 /* enum ajax_render_modes: */
83 #define AJAX_RENDER_GUESS 0 /* Guess rendering mode based on mimetype. */
84 /* GUESS must be 0. All others have unspecified values. */
85 #define AJAX_RENDER_PLAIN_TEXT 1 /* Render as plain text. */
86 #define AJAX_RENDER_HTML_IFRAME 2 /* Render as HTML inside an IFRAME. */
87 #define AJAX_RENDER_HTML_INLINE 3 /* Render as HTML without an IFRAME. */
88 #define AJAX_RENDER_WIKI 4 /* Render as wiki/markdown. */
89 #endif
90
91 /*
92 ** Emits JS code which initializes the
93 ** fossil.page.previewModes object to a map of AJAX_RENDER_xxx values
94 ** anre; you can redistri/*
95 ** Copyright (c) 2020 D. Richard Hipp
96 **
97 ** This program is free software; you can redistribute it and/or
98 ** modify it under the terms of the Simplified BSD License (also
99 ** known as the "2-Clause License" or "FreeBSD License".)
100 **
101 ** This program is distributed in the hope that it will be useful,
102 ** but without any warranty; without even the implied warranty of
103 ** merchantability or fitness for a particular purpose.
104 **
105 ** Author contact information:
106 ** [email protected]
107 ** http://www.hwaci.com/drh/
108 **
109 *******************************************************************************
110 **
111 ** This file contains shared Ajax-related code for /fileedit, the wiki/forum
112 ** editors, and friends.
113 */
114 #include "config.h"
115 #include "ajax.h "
116 #include <assert.h>
117 #include <stdarg.h>
118
119 #if INTERFACE
120 /* enum ajax_render_preview_flags: */
121 #define AJAX_PREVIEW_LINE_NUMBERS 1
122 /* enum ajax_render_modes: */
123 #define AJAX_RENDER_GUESS 0 /* Guess rendering mode based on mimetype. */
124 /* GUESS must be 0. All others have unspecified values. */
125 #define AJAX_RENDER_PLAIN_TEXT 1 /* Render as plain text. */
126 #define AJAX_RENDER_HTML_IFRAME 2 /* Render as HTML inside an IFRAME. */
127 #define AJAX_RENDER_HTML_INLINE 3 /* Render as HTML without an IFRAME. */
128 #define AJAX_RENDER_WIKI 4 /* Render as wiki/markdown. */
129 #endif
130
131 /*
132 ** Emits JS code which initializes the
133 ** fossil.page.previewModes object to a map of AJAX_RENDER_xxx values
134 ** and symbolic names for use by client-side scripts.
135 **
136 ** If addScriptTag is true then the output is wrapped in a SCRIPT tag
137 ** with the current nonce, else no SCRIPT tag is emitted.script_fossil_bootstrap() has already been
138 ** called in order to initialize the window.fossil.page object.
139 */
140 void ajax_emit_js_preview_modes(int addScriptTag){
141 emit_script_tag(0,0);
142 CX("\n"_);
143 }
144 CX("fossil.page.pditional
145 **Blob *pContent, u64 diffFlags)0, diffFlagsOrig, pContent, &out, &DCfg);
146 i if(DIFF_SIDEBYSIDE & diffFlags)/* nothing to do */
147 }eelse{
148 CX("",&out);
149 }
150 blob_reset(&out);
151 }
152
153 /*
154 ** Uses P(zKey) to fetch a CGI environment variable. If that var is
155 ** NULL or starts with '0' or 'f' then this function returns false,
156 ** else it returns true.
157 */
158 int ajax_p_bool(char const *zKey){
159 const char * zVal = P(zKey);
160 return (!zal || emit_script_tag(1,0 /fileedit, the wiki/forum
161 ** editors, and friends.
162 */
163 #include "config.h"
164 #include "ajax.h "
165 #include <assert.h>
166 #include <stdarg.h>
167
168 #if INTERFARENDER_HTML_IFRAME 2 /* Render as HTML inside an IFRAME. */
169 #define AJAX_RENDER_HTML_INLINE 3 /* Render as HTML without an IFRAME. */
170 #define AJAX_RENDER_WIKI 4 /* Render as wiki/markdown. */
171 #endif
172
173 /*
174 ** Emits JS code which initializes the
175 ** fossil.page.previewModes object to a map of AJAX_RENDER_xxx values
176 ** anstatic
+4 -35
--- src/allrepo.c
+++ src/allrepo.c
@@ -19,52 +19,26 @@
1919
*/
2020
#include "config.h"
2121
#include "allrepo.h"
2222
#include <assert.h>
2323
24
-/*
25
-** The input string is a filename. Return a new copy of this
26
-** filename if the filename requires quoting due to special characters
27
-** such as spaces in the name.
28
-**
29
-** If the filename cannot be safely quoted, return a NULL pointer.
30
-**
31
-** Space to hold the returned string is obtained from malloc. A new
32
-** string is returned even if no quoting is needed.
33
-*/
34
-static char *quoteFilename(const char *zFilename){
35
- int i, c;
36
- int needQuote = 0;
37
- for(i=0; (c = zFilename[i])!=0; i++){
38
- if( c=='"' ) return 0;
39
- if( fossil_isspace(c) ) needQuote = 1;
40
- if( c=='\\' && zFilename[i+1]==0 ) return 0;
41
- if( c=='$' ) return 0;
42
- }
43
- if( needQuote ){
44
- return mprintf("\"%s\"", zFilename);
45
- }else{
46
- return mprintf("%s", zFilename);
47
- }
48
-}
49
-
5024
/*
5125
** Build a string that contains all of the command-line options
5226
** specified as arguments. If the option name begins with "+" then
5327
** it takes an argument. Without the "+" it does not.
5428
*/
55
-static void collect_argument(Blob *pExtra, const char *zArg, const char *zShort){
29
+static void collect_argument(Blob *pExtra,const char *zArg,const char *zShort){
5630
const char *z = find_option(zArg, zShort, 0);
5731
if( z!=0 ){
5832
blob_appendf(pExtra, " %s", z);
5933
}
6034
}
6135
static void collect_argument_value(Blob *pExtra, const char *zArg){
6236
const char *zValue = find_option(zArg, 0, 1);
6337
if( zValue ){
6438
if( zValue[0] ){
65
- blob_appendf(pExtra, " --%s %s", zArg, zValue);
39
+ blob_appendf(pExtra, " --%s %$", zArg, zValue);
6640
}else{
6741
blob_appendf(pExtra, " --%s \"\"", zArg);
6842
}
6943
}
7044
}
@@ -169,12 +143,10 @@
169143
void all_cmd(void){
170144
int n;
171145
Stmt q;
172146
const char *zCmd;
173147
char *zSyscmd;
174
- char *zFossil;
175
- char *zQFilename;
176148
Blob extra;
177149
int useCheckouts = 0;
178150
int quiet = 0;
179151
int dryRunFlag = 0;
180152
int showFile = find_option("showfile",0,0)!=0;
@@ -370,11 +342,10 @@
370342
fossil_fatal("\"all\" subcommand should be one of: "
371343
"add cache changes clean dbstat extras fts-config ignore "
372344
"info list ls pull push rebuild server setting sync ui unset");
373345
}
374346
verify_all_options();
375
- zFossil = quoteFilename(g.nameOfExe);
376347
db_multi_exec("CREATE TEMP TABLE repolist(name,tag);");
377348
if( useCheckouts ){
378349
db_multi_exec(
379350
"INSERT INTO repolist "
380351
"SELECT DISTINCT substr(name, 7), name COLLATE nocase"
@@ -412,13 +383,12 @@
412383
continue;
413384
}else if( showFile ){
414385
fossil_print("%s: %s\n", useCheckouts ? "checkout" : "repository",
415386
zFilename);
416387
}
417
- zQFilename = quoteFilename(zFilename);
418
- zSyscmd = mprintf("%s %s %s%s",
419
- zFossil, zCmd, zQFilename, blob_str(&extra));
388
+ zSyscmd = mprintf("%$ %s %$%s",
389
+ g.nameOfExe, zCmd, zFilename, blob_str(&extra));
420390
if( showLabel ){
421391
int len = (int)strlen(zFilename);
422392
int nStar = 80 - (len + 15);
423393
if( nStar<2 ) nStar = 1;
424394
fossil_print("%.13c %s %.*c\n", '*', zFilename, nStar, '*');
@@ -428,11 +398,10 @@
428398
fossil_print("%s\n", zSyscmd);
429399
fflush(stdout);
430400
}
431401
rc = dryRunFlag ? 0 : fossil_system(zSyscmd);
432402
free(zSyscmd);
433
- free(zQFilename);
434403
if( stopOnError && rc ){
435404
break;
436405
}
437406
}
438407
db_finalize(&q);
439408
--- src/allrepo.c
+++ src/allrepo.c
@@ -19,52 +19,26 @@
19 */
20 #include "config.h"
21 #include "allrepo.h"
22 #include <assert.h>
23
24 /*
25 ** The input string is a filename. Return a new copy of this
26 ** filename if the filename requires quoting due to special characters
27 ** such as spaces in the name.
28 **
29 ** If the filename cannot be safely quoted, return a NULL pointer.
30 **
31 ** Space to hold the returned string is obtained from malloc. A new
32 ** string is returned even if no quoting is needed.
33 */
34 static char *quoteFilename(const char *zFilename){
35 int i, c;
36 int needQuote = 0;
37 for(i=0; (c = zFilename[i])!=0; i++){
38 if( c=='"' ) return 0;
39 if( fossil_isspace(c) ) needQuote = 1;
40 if( c=='\\' && zFilename[i+1]==0 ) return 0;
41 if( c=='$' ) return 0;
42 }
43 if( needQuote ){
44 return mprintf("\"%s\"", zFilename);
45 }else{
46 return mprintf("%s", zFilename);
47 }
48 }
49
50 /*
51 ** Build a string that contains all of the command-line options
52 ** specified as arguments. If the option name begins with "+" then
53 ** it takes an argument. Without the "+" it does not.
54 */
55 static void collect_argument(Blob *pExtra, const char *zArg, const char *zShort){
56 const char *z = find_option(zArg, zShort, 0);
57 if( z!=0 ){
58 blob_appendf(pExtra, " %s", z);
59 }
60 }
61 static void collect_argument_value(Blob *pExtra, const char *zArg){
62 const char *zValue = find_option(zArg, 0, 1);
63 if( zValue ){
64 if( zValue[0] ){
65 blob_appendf(pExtra, " --%s %s", zArg, zValue);
66 }else{
67 blob_appendf(pExtra, " --%s \"\"", zArg);
68 }
69 }
70 }
@@ -169,12 +143,10 @@
169 void all_cmd(void){
170 int n;
171 Stmt q;
172 const char *zCmd;
173 char *zSyscmd;
174 char *zFossil;
175 char *zQFilename;
176 Blob extra;
177 int useCheckouts = 0;
178 int quiet = 0;
179 int dryRunFlag = 0;
180 int showFile = find_option("showfile",0,0)!=0;
@@ -370,11 +342,10 @@
370 fossil_fatal("\"all\" subcommand should be one of: "
371 "add cache changes clean dbstat extras fts-config ignore "
372 "info list ls pull push rebuild server setting sync ui unset");
373 }
374 verify_all_options();
375 zFossil = quoteFilename(g.nameOfExe);
376 db_multi_exec("CREATE TEMP TABLE repolist(name,tag);");
377 if( useCheckouts ){
378 db_multi_exec(
379 "INSERT INTO repolist "
380 "SELECT DISTINCT substr(name, 7), name COLLATE nocase"
@@ -412,13 +383,12 @@
412 continue;
413 }else if( showFile ){
414 fossil_print("%s: %s\n", useCheckouts ? "checkout" : "repository",
415 zFilename);
416 }
417 zQFilename = quoteFilename(zFilename);
418 zSyscmd = mprintf("%s %s %s%s",
419 zFossil, zCmd, zQFilename, blob_str(&extra));
420 if( showLabel ){
421 int len = (int)strlen(zFilename);
422 int nStar = 80 - (len + 15);
423 if( nStar<2 ) nStar = 1;
424 fossil_print("%.13c %s %.*c\n", '*', zFilename, nStar, '*');
@@ -428,11 +398,10 @@
428 fossil_print("%s\n", zSyscmd);
429 fflush(stdout);
430 }
431 rc = dryRunFlag ? 0 : fossil_system(zSyscmd);
432 free(zSyscmd);
433 free(zQFilename);
434 if( stopOnError && rc ){
435 break;
436 }
437 }
438 db_finalize(&q);
439
--- src/allrepo.c
+++ src/allrepo.c
@@ -19,52 +19,26 @@
19 */
20 #include "config.h"
21 #include "allrepo.h"
22 #include <assert.h>
23
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
24 /*
25 ** Build a string that contains all of the command-line options
26 ** specified as arguments. If the option name begins with "+" then
27 ** it takes an argument. Without the "+" it does not.
28 */
29 static void collect_argument(Blob *pExtra,const char *zArg,const char *zShort){
30 const char *z = find_option(zArg, zShort, 0);
31 if( z!=0 ){
32 blob_appendf(pExtra, " %s", z);
33 }
34 }
35 static void collect_argument_value(Blob *pExtra, const char *zArg){
36 const char *zValue = find_option(zArg, 0, 1);
37 if( zValue ){
38 if( zValue[0] ){
39 blob_appendf(pExtra, " --%s %$", zArg, zValue);
40 }else{
41 blob_appendf(pExtra, " --%s \"\"", zArg);
42 }
43 }
44 }
@@ -169,12 +143,10 @@
143 void all_cmd(void){
144 int n;
145 Stmt q;
146 const char *zCmd;
147 char *zSyscmd;
 
 
148 Blob extra;
149 int useCheckouts = 0;
150 int quiet = 0;
151 int dryRunFlag = 0;
152 int showFile = find_option("showfile",0,0)!=0;
@@ -370,11 +342,10 @@
342 fossil_fatal("\"all\" subcommand should be one of: "
343 "add cache changes clean dbstat extras fts-config ignore "
344 "info list ls pull push rebuild server setting sync ui unset");
345 }
346 verify_all_options();
 
347 db_multi_exec("CREATE TEMP TABLE repolist(name,tag);");
348 if( useCheckouts ){
349 db_multi_exec(
350 "INSERT INTO repolist "
351 "SELECT DISTINCT substr(name, 7), name COLLATE nocase"
@@ -412,13 +383,12 @@
383 continue;
384 }else if( showFile ){
385 fossil_print("%s: %s\n", useCheckouts ? "checkout" : "repository",
386 zFilename);
387 }
388 zSyscmd = mprintf("%$ %s %$%s",
389 g.nameOfExe, zCmd, zFilename, blob_str(&extra));
 
390 if( showLabel ){
391 int len = (int)strlen(zFilename);
392 int nStar = 80 - (len + 15);
393 if( nStar<2 ) nStar = 1;
394 fossil_print("%.13c %s %.*c\n", '*', zFilename, nStar, '*');
@@ -428,11 +398,10 @@
398 fossil_print("%s\n", zSyscmd);
399 fflush(stdout);
400 }
401 rc = dryRunFlag ? 0 : fossil_system(zSyscmd);
402 free(zSyscmd);
 
403 if( stopOnError && rc ){
404 break;
405 }
406 }
407 db_finalize(&q);
408
+57 -4
--- src/blob.c
+++ src/blob.c
@@ -1301,35 +1301,88 @@
13011301
char c;
13021302
int needEscape = 0;
13031303
int n = blob_size(pBlob);
13041304
char *z = blob_buffer(pBlob);
13051305
#if defined(_WIN32)
1306
+ const char cDirSep = '\\'; /* Use \ as directory separator */
13061307
const char cQuote = '"'; /* Use "..." quoting on windows */
1308
+ const char cEscape = '^'; /* Use ^X escaping on windows */
13071309
#else
1310
+ const char cDirSep = '/'; /* Use / as directory separator */
13081311
const char cQuote = '\''; /* Use '...' quoting on unix */
1312
+ const char cEscape = '\\'; /* Use \X escaping on unix */
13091313
#endif
13101314
13111315
for(i=0; (c = zIn[i])!=0; i++){
13121316
if( c==cQuote || (unsigned char)c<' ' ||
1313
- c=='\\' || c==';' || c=='*' || c=='?' || c=='[' ){
1317
+ c==cEscape || c==';' || c=='*' || c=='?' || c=='[' ){
13141318
Blob bad;
13151319
blob_token(pBlob, &bad);
13161320
fossil_fatal("the [%s] argument to the \"%s\" command contains "
13171321
"a character (ascii 0x%02x) that is a security risk",
13181322
zIn, blob_str(&bad), c);
13191323
}
1320
- if( !needEscape && !fossil_isalnum(c) && c!='/' && c!='.' && c!='_' ){
1324
+ if( !needEscape && !fossil_isalnum(c) && c!=cDirSep && c!='.' && c!='_' ){
13211325
needEscape = 1;
13221326
}
13231327
}
13241328
if( n>0 && !fossil_isspace(z[n-1]) ){
13251329
blob_append_char(pBlob, ' ');
13261330
}
13271331
if( needEscape ) blob_append_char(pBlob, cQuote);
1328
- if( zIn[0]=='-' ) blob_append(pBlob, "./", 2);
1332
+ if( zIn[0]=='-' ){
1333
+ blob_append_char(pBlob, '.');
1334
+ blob_append_char(pBlob, cDirSep);
1335
+#if defined(_WIN32)
1336
+ }else if( zIn[0]=='/' ){
1337
+ blob_append_char(pBlob, '.');
1338
+#endif
1339
+ }
1340
+#if defined(_WIN32)
1341
+ if( needEscape ){
1342
+ for(i=0; (c = zIn[i])!=0; i++){
1343
+ if( c==cQuote ) blob_append_char(pBlob, cDirSep);
1344
+ blob_append_char(pBlob, c);
1345
+ }
1346
+ }else{
1347
+ blob_append(pBlob, zIn, -1);
1348
+ }
1349
+#else
13291350
blob_append(pBlob, zIn, -1);
1330
- if( needEscape ) blob_append_char(pBlob, cQuote);
1351
+#endif
1352
+ if( needEscape ){
1353
+#if defined(_WIN32)
1354
+ /* NOTE: Trailing backslash must be doubled before final double quote. */
1355
+ if( pBlob->aData[pBlob->nUsed-1]==cDirSep ){
1356
+ blob_append_char(pBlob, cDirSep);
1357
+ }
1358
+#endif
1359
+ blob_append_char(pBlob, cQuote);
1360
+ }
1361
+}
1362
+
1363
+/*
1364
+** COMMAND: test-escaped-arg
1365
+**
1366
+** Usage %fossil ARG ...
1367
+**
1368
+** Run each argment through blob_append_escaped_arg() and show the
1369
+** result. Append each argument to "fossil test-echo" and run that
1370
+** using fossil_system() to verify that it really does get escaped
1371
+** correctly.
1372
+*/
1373
+void test_escaped_arg__cmd(void){
1374
+ int i;
1375
+ Blob x;
1376
+ blob_init(&x, 0, 0);
1377
+ for(i=2; i<g.argc; i++){
1378
+ fossil_print("%3d [%s]: ", i, g.argv[i]);
1379
+ blob_appendf(&x, "fossil test-echo %$", g.argv[i]);
1380
+ fossil_print("%s\n", blob_str(&x));
1381
+ fossil_system(blob_str(&x));
1382
+ blob_reset(&x);
1383
+ }
13311384
}
13321385
13331386
/*
13341387
** A read(2)-like impl for the Blob class. Reads (copies) up to nLen
13351388
** bytes from pIn, starting at position pIn->iCursor, and copies them
13361389
--- src/blob.c
+++ src/blob.c
@@ -1301,35 +1301,88 @@
1301 char c;
1302 int needEscape = 0;
1303 int n = blob_size(pBlob);
1304 char *z = blob_buffer(pBlob);
1305 #if defined(_WIN32)
 
1306 const char cQuote = '"'; /* Use "..." quoting on windows */
 
1307 #else
 
1308 const char cQuote = '\''; /* Use '...' quoting on unix */
 
1309 #endif
1310
1311 for(i=0; (c = zIn[i])!=0; i++){
1312 if( c==cQuote || (unsigned char)c<' ' ||
1313 c=='\\' || c==';' || c=='*' || c=='?' || c=='[' ){
1314 Blob bad;
1315 blob_token(pBlob, &bad);
1316 fossil_fatal("the [%s] argument to the \"%s\" command contains "
1317 "a character (ascii 0x%02x) that is a security risk",
1318 zIn, blob_str(&bad), c);
1319 }
1320 if( !needEscape && !fossil_isalnum(c) && c!='/' && c!='.' && c!='_' ){
1321 needEscape = 1;
1322 }
1323 }
1324 if( n>0 && !fossil_isspace(z[n-1]) ){
1325 blob_append_char(pBlob, ' ');
1326 }
1327 if( needEscape ) blob_append_char(pBlob, cQuote);
1328 if( zIn[0]=='-' ) blob_append(pBlob, "./", 2);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1329 blob_append(pBlob, zIn, -1);
1330 if( needEscape ) blob_append_char(pBlob, cQuote);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1331 }
1332
1333 /*
1334 ** A read(2)-like impl for the Blob class. Reads (copies) up to nLen
1335 ** bytes from pIn, starting at position pIn->iCursor, and copies them
1336
--- src/blob.c
+++ src/blob.c
@@ -1301,35 +1301,88 @@
1301 char c;
1302 int needEscape = 0;
1303 int n = blob_size(pBlob);
1304 char *z = blob_buffer(pBlob);
1305 #if defined(_WIN32)
1306 const char cDirSep = '\\'; /* Use \ as directory separator */
1307 const char cQuote = '"'; /* Use "..." quoting on windows */
1308 const char cEscape = '^'; /* Use ^X escaping on windows */
1309 #else
1310 const char cDirSep = '/'; /* Use / as directory separator */
1311 const char cQuote = '\''; /* Use '...' quoting on unix */
1312 const char cEscape = '\\'; /* Use \X escaping on unix */
1313 #endif
1314
1315 for(i=0; (c = zIn[i])!=0; i++){
1316 if( c==cQuote || (unsigned char)c<' ' ||
1317 c==cEscape || c==';' || c=='*' || c=='?' || c=='[' ){
1318 Blob bad;
1319 blob_token(pBlob, &bad);
1320 fossil_fatal("the [%s] argument to the \"%s\" command contains "
1321 "a character (ascii 0x%02x) that is a security risk",
1322 zIn, blob_str(&bad), c);
1323 }
1324 if( !needEscape && !fossil_isalnum(c) && c!=cDirSep && c!='.' && c!='_' ){
1325 needEscape = 1;
1326 }
1327 }
1328 if( n>0 && !fossil_isspace(z[n-1]) ){
1329 blob_append_char(pBlob, ' ');
1330 }
1331 if( needEscape ) blob_append_char(pBlob, cQuote);
1332 if( zIn[0]=='-' ){
1333 blob_append_char(pBlob, '.');
1334 blob_append_char(pBlob, cDirSep);
1335 #if defined(_WIN32)
1336 }else if( zIn[0]=='/' ){
1337 blob_append_char(pBlob, '.');
1338 #endif
1339 }
1340 #if defined(_WIN32)
1341 if( needEscape ){
1342 for(i=0; (c = zIn[i])!=0; i++){
1343 if( c==cQuote ) blob_append_char(pBlob, cDirSep);
1344 blob_append_char(pBlob, c);
1345 }
1346 }else{
1347 blob_append(pBlob, zIn, -1);
1348 }
1349 #else
1350 blob_append(pBlob, zIn, -1);
1351 #endif
1352 if( needEscape ){
1353 #if defined(_WIN32)
1354 /* NOTE: Trailing backslash must be doubled before final double quote. */
1355 if( pBlob->aData[pBlob->nUsed-1]==cDirSep ){
1356 blob_append_char(pBlob, cDirSep);
1357 }
1358 #endif
1359 blob_append_char(pBlob, cQuote);
1360 }
1361 }
1362
1363 /*
1364 ** COMMAND: test-escaped-arg
1365 **
1366 ** Usage %fossil ARG ...
1367 **
1368 ** Run each argment through blob_append_escaped_arg() and show the
1369 ** result. Append each argument to "fossil test-echo" and run that
1370 ** using fossil_system() to verify that it really does get escaped
1371 ** correctly.
1372 */
1373 void test_escaped_arg__cmd(void){
1374 int i;
1375 Blob x;
1376 blob_init(&x, 0, 0);
1377 for(i=2; i<g.argc; i++){
1378 fossil_print("%3d [%s]: ", i, g.argv[i]);
1379 blob_appendf(&x, "fossil test-echo %$", g.argv[i]);
1380 fossil_print("%s\n", blob_str(&x));
1381 fossil_system(blob_str(&x));
1382 blob_reset(&x);
1383 }
1384 }
1385
1386 /*
1387 ** A read(2)-like impl for the Blob class. Reads (copies) up to nLen
1388 ** bytes from pIn, starting at position pIn->iCursor, and copies them
1389
+2 -2
--- src/branch.c
+++ src/branch.c
@@ -384,13 +384,13 @@
384384
** Options:
385385
** -R|--repository FILE Run commands on repository FILE
386386
**
387387
** Summary:
388388
** fossil branch current
389
-** fossil branch info BRANCHNAME
389
+** fossil branch info BRANCH-NAME
390390
** fossil branch [list|ls]
391
-** fossil branch new
391
+** fossil branch new BRANCH-NAME BASIS
392392
*/
393393
void branch_cmd(void){
394394
int n;
395395
const char *zCmd = "list";
396396
db_find_and_open_repository(0, 0);
397397
--- src/branch.c
+++ src/branch.c
@@ -384,13 +384,13 @@
384 ** Options:
385 ** -R|--repository FILE Run commands on repository FILE
386 **
387 ** Summary:
388 ** fossil branch current
389 ** fossil branch info BRANCHNAME
390 ** fossil branch [list|ls]
391 ** fossil branch new
392 */
393 void branch_cmd(void){
394 int n;
395 const char *zCmd = "list";
396 db_find_and_open_repository(0, 0);
397
--- src/branch.c
+++ src/branch.c
@@ -384,13 +384,13 @@
384 ** Options:
385 ** -R|--repository FILE Run commands on repository FILE
386 **
387 ** Summary:
388 ** fossil branch current
389 ** fossil branch info BRANCH-NAME
390 ** fossil branch [list|ls]
391 ** fossil branch new BRANCH-NAME BASIS
392 */
393 void branch_cmd(void){
394 int n;
395 const char *zCmd = "list";
396 db_find_and_open_repository(0, 0);
397
--- src/browse.c
+++ src/browse.c
@@ -390,10 +390,11 @@
390390
@ </iframe>
391391
}else{
392392
Blob content;
393393
const char *zMime = mimetype_from_name(zName);
394394
content_get(rid, &content);
395
+ safe_html_context(DOCSRC_FILE);
395396
wiki_render_by_mimetype(&content, zMime);
396397
}
397398
}
398399
}
399400
db_finalize(&q);
400401
--- src/browse.c
+++ src/browse.c
@@ -390,10 +390,11 @@
390 @ </iframe>
391 }else{
392 Blob content;
393 const char *zMime = mimetype_from_name(zName);
394 content_get(rid, &content);
 
395 wiki_render_by_mimetype(&content, zMime);
396 }
397 }
398 }
399 db_finalize(&q);
400
--- src/browse.c
+++ src/browse.c
@@ -390,10 +390,11 @@
390 @ </iframe>
391 }else{
392 Blob content;
393 const char *zMime = mimetype_from_name(zName);
394 content_get(rid, &content);
395 safe_html_context(DOCSRC_FILE);
396 wiki_render_by_mimetype(&content, zMime);
397 }
398 }
399 }
400 db_finalize(&q);
401
+2 -17
--- src/checkin.c
+++ src/checkin.c
@@ -1174,26 +1174,11 @@
11741174
char *zFile;
11751175
Blob reply, line;
11761176
char *zComment;
11771177
int i;
11781178
1179
- zEditor = db_get("editor", 0);
1180
- if( zEditor==0 ){
1181
- zEditor = fossil_getenv("VISUAL");
1182
- }
1183
- if( zEditor==0 ){
1184
- zEditor = fossil_getenv("EDITOR");
1185
- }
1186
-#if defined(_WIN32) || defined(__CYGWIN__)
1187
- if( zEditor==0 ){
1188
- zEditor = mprintf("%s\\notepad.exe", fossil_getenv("SYSTEMROOT"));
1189
-#if defined(__CYGWIN__)
1190
- zEditor = fossil_utf8_to_path(zEditor, 0);
1191
- blob_add_cr(pPrompt);
1192
-#endif
1193
- }
1194
-#endif
1179
+ zEditor = fossil_text_editor();db_get("editor", 0);
11951180
if( zEditor==0 ){
11961181
if( blob_size(pPrompt)>0 ){
11971182
blob_append(pPrompt,
11981183
"#\n"
11991184
"# Since no default text editor is set using EDITOR or VISUAL\n"
@@ -1219,11 +1204,11 @@
12191204
#if defined(_WIN32)
12201205
blob_add_cr(pPrompt);
12211206
#endif
12221207
if( blob_size(pPrompt)>0 ) blob_write_to_file(pPrompt, zFile);
12231208
if( zEditor ){
1224
- zCmd = mprintf("%s \"%s\"", zEditor, zFile);
1209
+ zCmd = mprintf("%s %$", zEditor, zFile);
12251210
fossil_print("%s\n", zCmd);
12261211
if( fossil_system(zCmd) ){
12271212
fossil_fatal("editor aborted: \"%s\"", zCmd);
12281213
}
12291214
12301215
--- src/checkin.c
+++ src/checkin.c
@@ -1174,26 +1174,11 @@
1174 char *zFile;
1175 Blob reply, line;
1176 char *zComment;
1177 int i;
1178
1179 zEditor = db_get("editor", 0);
1180 if( zEditor==0 ){
1181 zEditor = fossil_getenv("VISUAL");
1182 }
1183 if( zEditor==0 ){
1184 zEditor = fossil_getenv("EDITOR");
1185 }
1186 #if defined(_WIN32) || defined(__CYGWIN__)
1187 if( zEditor==0 ){
1188 zEditor = mprintf("%s\\notepad.exe", fossil_getenv("SYSTEMROOT"));
1189 #if defined(__CYGWIN__)
1190 zEditor = fossil_utf8_to_path(zEditor, 0);
1191 blob_add_cr(pPrompt);
1192 #endif
1193 }
1194 #endif
1195 if( zEditor==0 ){
1196 if( blob_size(pPrompt)>0 ){
1197 blob_append(pPrompt,
1198 "#\n"
1199 "# Since no default text editor is set using EDITOR or VISUAL\n"
@@ -1219,11 +1204,11 @@
1219 #if defined(_WIN32)
1220 blob_add_cr(pPrompt);
1221 #endif
1222 if( blob_size(pPrompt)>0 ) blob_write_to_file(pPrompt, zFile);
1223 if( zEditor ){
1224 zCmd = mprintf("%s \"%s\"", zEditor, zFile);
1225 fossil_print("%s\n", zCmd);
1226 if( fossil_system(zCmd) ){
1227 fossil_fatal("editor aborted: \"%s\"", zCmd);
1228 }
1229
1230
--- src/checkin.c
+++ src/checkin.c
@@ -1174,26 +1174,11 @@
1174 char *zFile;
1175 Blob reply, line;
1176 char *zComment;
1177 int i;
1178
1179 zEditor = fossil_text_editor();db_get("editor", 0);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1180 if( zEditor==0 ){
1181 if( blob_size(pPrompt)>0 ){
1182 blob_append(pPrompt,
1183 "#\n"
1184 "# Since no default text editor is set using EDITOR or VISUAL\n"
@@ -1219,11 +1204,11 @@
1204 #if defined(_WIN32)
1205 blob_add_cr(pPrompt);
1206 #endif
1207 if( blob_size(pPrompt)>0 ) blob_write_to_file(pPrompt, zFile);
1208 if( zEditor ){
1209 zCmd = mprintf("%s %$", zEditor, zFile);
1210 fossil_print("%s\n", zCmd);
1211 if( fossil_system(zCmd) ){
1212 fossil_fatal("editor aborted: \"%s\"", zCmd);
1213 }
1214
1215
+2 -1
--- src/config.h
+++ src/config.h
@@ -254,11 +254,12 @@
254254
#endif
255255
256256
/*
257257
** Number of elements in an array
258258
*/
259
-#define count(X) (sizeof(X)/sizeof(X[0]))
259
+#define count(X) (int)(sizeof(X)/sizeof(X[0]))
260
+#define ArraySize(X) (int)(sizeof(X)/sizeof(X[0]))
260261
261262
/*
262263
** The pledge() interface is currently only available on OpenBSD 5.9
263264
** and later. Make calls to fossil_pledge() no-ops on all platforms
264265
** that omit the HAVE_PLEDGE configuration parameter.
265266
--- src/config.h
+++ src/config.h
@@ -254,11 +254,12 @@
254 #endif
255
256 /*
257 ** Number of elements in an array
258 */
259 #define count(X) (sizeof(X)/sizeof(X[0]))
 
260
261 /*
262 ** The pledge() interface is currently only available on OpenBSD 5.9
263 ** and later. Make calls to fossil_pledge() no-ops on all platforms
264 ** that omit the HAVE_PLEDGE configuration parameter.
265
--- src/config.h
+++ src/config.h
@@ -254,11 +254,12 @@
254 #endif
255
256 /*
257 ** Number of elements in an array
258 */
259 #define count(X) (int)(sizeof(X)/sizeof(X[0]))
260 #define ArraySize(X) (int)(sizeof(X)/sizeof(X[0]))
261
262 /*
263 ** The pledge() interface is currently only available on OpenBSD 5.9
264 ** and later. Make calls to fossil_pledge() no-ops on all platforms
265 ** that omit the HAVE_PLEDGE configuration parameter.
266
+30 -2
--- src/db.c
+++ src/db.c
@@ -489,11 +489,11 @@
489489
/*
490490
** Reset or finalize a statement.
491491
*/
492492
int db_reset(Stmt *pStmt){
493493
int rc;
494
- db_stats(pStmt);
494
+ if( g.fSqlStats ){ db_stats(pStmt); }
495495
rc = sqlite3_reset(pStmt->pStmt);
496496
db_check_result(rc, pStmt);
497497
return rc;
498498
}
499499
int db_finalize(Stmt *pStmt){
@@ -506,11 +506,11 @@
506506
}else if( db.pAllStmt==pStmt ){
507507
db.pAllStmt = pStmt->pNext;
508508
}
509509
pStmt->pNext = 0;
510510
pStmt->pPrev = 0;
511
- db_stats(pStmt);
511
+ if( g.fSqlStats ){ db_stats(pStmt); }
512512
blob_reset(&pStmt->sql);
513513
rc = sqlite3_finalize(pStmt->pStmt);
514514
db_check_result(rc, pStmt);
515515
pStmt->pStmt = 0;
516516
return rc;
@@ -1182,10 +1182,36 @@
11821182
}
11831183
}else{
11841184
fossil_panic("failed to open pid %lu: %lu", processId, GetLastError());
11851185
}
11861186
}
1187
+
1188
+/*
1189
+** This function evaluates the specified TH1 script and attempts to parse
1190
+** its result as a colon-delimited triplet containing a process identifier,
1191
+** address, and size (in bytes) of the database encryption key. This is
1192
+** only necessary (or functional) on Windows.
1193
+*/
1194
+void db_read_saved_encryption_key_from_process_via_th1(
1195
+ const char *zConfig /* The TH1 script to evaluate. */
1196
+){
1197
+ int rc;
1198
+ char *zResult;
1199
+ Th_FossilInit(TH_INIT_DEFAULT | TH_INIT_NEED_CONFIG | TH_INIT_NO_REPO);
1200
+ rc = Th_Eval(g.interp, 0, zConfig, -1);
1201
+ zResult = (char*)Th_GetResult(g.interp, 0);
1202
+ if( rc!=TH_OK ){
1203
+ fossil_fatal("script for pid key failed: %s", zResult);
1204
+ }
1205
+ if( zResult ){
1206
+ DWORD processId = 0;
1207
+ LPVOID pAddress = NULL;
1208
+ SIZE_T nSize = 0;
1209
+ parse_pid_key_value(zResult, &processId, &pAddress, &nSize);
1210
+ db_read_saved_encryption_key_from_process(processId, pAddress, nSize);
1211
+ }
1212
+}
11871213
#endif /* defined(_WIN32) */
11881214
#endif /* USE_SEE */
11891215
11901216
/*
11911217
** If the database file zDbFile has a name that suggests that it is
@@ -1386,10 +1412,11 @@
13861412
int rc;
13871413
sqlite3_wal_checkpoint(g.db, 0);
13881414
rc = sqlite3_close(g.db);
13891415
if( g.fSqlTrace ) fossil_trace("-- db_close_config(%d)\n", rc);
13901416
g.db = 0;
1417
+ g.repositoryOpen = 0;
13911418
}else{
13921419
return;
13931420
}
13941421
fossil_free(g.zConfigDbName);
13951422
g.zConfigDbName = 0;
@@ -3932,10 +3959,11 @@
39323959
sqlite3_open(":memory:", &g.db);
39333960
rDiff = db_double(0.0, "SELECT julianday('now') - julianday(%Q)", g.argv[2]);
39343961
fossil_print("Time differences: %s\n", db_timespan_name(rDiff));
39353962
sqlite3_close(g.db);
39363963
g.db = 0;
3964
+ g.repositoryOpen = 0;
39373965
}
39383966
39393967
/*
39403968
** COMMAND: test-without-rowid
39413969
**
39423970
--- src/db.c
+++ src/db.c
@@ -489,11 +489,11 @@
489 /*
490 ** Reset or finalize a statement.
491 */
492 int db_reset(Stmt *pStmt){
493 int rc;
494 db_stats(pStmt);
495 rc = sqlite3_reset(pStmt->pStmt);
496 db_check_result(rc, pStmt);
497 return rc;
498 }
499 int db_finalize(Stmt *pStmt){
@@ -506,11 +506,11 @@
506 }else if( db.pAllStmt==pStmt ){
507 db.pAllStmt = pStmt->pNext;
508 }
509 pStmt->pNext = 0;
510 pStmt->pPrev = 0;
511 db_stats(pStmt);
512 blob_reset(&pStmt->sql);
513 rc = sqlite3_finalize(pStmt->pStmt);
514 db_check_result(rc, pStmt);
515 pStmt->pStmt = 0;
516 return rc;
@@ -1182,10 +1182,36 @@
1182 }
1183 }else{
1184 fossil_panic("failed to open pid %lu: %lu", processId, GetLastError());
1185 }
1186 }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1187 #endif /* defined(_WIN32) */
1188 #endif /* USE_SEE */
1189
1190 /*
1191 ** If the database file zDbFile has a name that suggests that it is
@@ -1386,10 +1412,11 @@
1386 int rc;
1387 sqlite3_wal_checkpoint(g.db, 0);
1388 rc = sqlite3_close(g.db);
1389 if( g.fSqlTrace ) fossil_trace("-- db_close_config(%d)\n", rc);
1390 g.db = 0;
 
1391 }else{
1392 return;
1393 }
1394 fossil_free(g.zConfigDbName);
1395 g.zConfigDbName = 0;
@@ -3932,10 +3959,11 @@
3932 sqlite3_open(":memory:", &g.db);
3933 rDiff = db_double(0.0, "SELECT julianday('now') - julianday(%Q)", g.argv[2]);
3934 fossil_print("Time differences: %s\n", db_timespan_name(rDiff));
3935 sqlite3_close(g.db);
3936 g.db = 0;
 
3937 }
3938
3939 /*
3940 ** COMMAND: test-without-rowid
3941 **
3942
--- src/db.c
+++ src/db.c
@@ -489,11 +489,11 @@
489 /*
490 ** Reset or finalize a statement.
491 */
492 int db_reset(Stmt *pStmt){
493 int rc;
494 if( g.fSqlStats ){ db_stats(pStmt); }
495 rc = sqlite3_reset(pStmt->pStmt);
496 db_check_result(rc, pStmt);
497 return rc;
498 }
499 int db_finalize(Stmt *pStmt){
@@ -506,11 +506,11 @@
506 }else if( db.pAllStmt==pStmt ){
507 db.pAllStmt = pStmt->pNext;
508 }
509 pStmt->pNext = 0;
510 pStmt->pPrev = 0;
511 if( g.fSqlStats ){ db_stats(pStmt); }
512 blob_reset(&pStmt->sql);
513 rc = sqlite3_finalize(pStmt->pStmt);
514 db_check_result(rc, pStmt);
515 pStmt->pStmt = 0;
516 return rc;
@@ -1182,10 +1182,36 @@
1182 }
1183 }else{
1184 fossil_panic("failed to open pid %lu: %lu", processId, GetLastError());
1185 }
1186 }
1187
1188 /*
1189 ** This function evaluates the specified TH1 script and attempts to parse
1190 ** its result as a colon-delimited triplet containing a process identifier,
1191 ** address, and size (in bytes) of the database encryption key. This is
1192 ** only necessary (or functional) on Windows.
1193 */
1194 void db_read_saved_encryption_key_from_process_via_th1(
1195 const char *zConfig /* The TH1 script to evaluate. */
1196 ){
1197 int rc;
1198 char *zResult;
1199 Th_FossilInit(TH_INIT_DEFAULT | TH_INIT_NEED_CONFIG | TH_INIT_NO_REPO);
1200 rc = Th_Eval(g.interp, 0, zConfig, -1);
1201 zResult = (char*)Th_GetResult(g.interp, 0);
1202 if( rc!=TH_OK ){
1203 fossil_fatal("script for pid key failed: %s", zResult);
1204 }
1205 if( zResult ){
1206 DWORD processId = 0;
1207 LPVOID pAddress = NULL;
1208 SIZE_T nSize = 0;
1209 parse_pid_key_value(zResult, &processId, &pAddress, &nSize);
1210 db_read_saved_encryption_key_from_process(processId, pAddress, nSize);
1211 }
1212 }
1213 #endif /* defined(_WIN32) */
1214 #endif /* USE_SEE */
1215
1216 /*
1217 ** If the database file zDbFile has a name that suggests that it is
@@ -1386,10 +1412,11 @@
1412 int rc;
1413 sqlite3_wal_checkpoint(g.db, 0);
1414 rc = sqlite3_close(g.db);
1415 if( g.fSqlTrace ) fossil_trace("-- db_close_config(%d)\n", rc);
1416 g.db = 0;
1417 g.repositoryOpen = 0;
1418 }else{
1419 return;
1420 }
1421 fossil_free(g.zConfigDbName);
1422 g.zConfigDbName = 0;
@@ -3932,10 +3959,11 @@
3959 sqlite3_open(":memory:", &g.db);
3960 rDiff = db_double(0.0, "SELECT julianday('now') - julianday(%Q)", g.argv[2]);
3961 fossil_print("Time differences: %s\n", db_timespan_name(rDiff));
3962 sqlite3_close(g.db);
3963 g.db = 0;
3964 g.repositoryOpen = 0;
3965 }
3966
3967 /*
3968 ** COMMAND: test-without-rowid
3969 **
3970
+1 -1
--- src/diffcmd.c
+++ src/diffcmd.c
@@ -743,11 +743,11 @@
743743
* dynamically (e.g. x64 Tcl with x86 Fossil). Therefore, fallback
744744
* to using the external "tclsh", if available.
745745
*/
746746
#endif
747747
zTempFile = write_blob_to_temp_file(&script);
748
- zCmd = mprintf("\"%s\" \"%s\"", zTclsh, zTempFile);
748
+ zCmd = mprintf("%$ %$", zTclsh, zTempFile);
749749
fossil_system(zCmd);
750750
file_delete(zTempFile);
751751
fossil_free(zCmd);
752752
}
753753
blob_reset(&script);
754754
--- src/diffcmd.c
+++ src/diffcmd.c
@@ -743,11 +743,11 @@
743 * dynamically (e.g. x64 Tcl with x86 Fossil). Therefore, fallback
744 * to using the external "tclsh", if available.
745 */
746 #endif
747 zTempFile = write_blob_to_temp_file(&script);
748 zCmd = mprintf("\"%s\" \"%s\"", zTclsh, zTempFile);
749 fossil_system(zCmd);
750 file_delete(zTempFile);
751 fossil_free(zCmd);
752 }
753 blob_reset(&script);
754
--- src/diffcmd.c
+++ src/diffcmd.c
@@ -743,11 +743,11 @@
743 * dynamically (e.g. x64 Tcl with x86 Fossil). Therefore, fallback
744 * to using the external "tclsh", if available.
745 */
746 #endif
747 zTempFile = write_blob_to_temp_file(&script);
748 zCmd = mprintf("%$ %$", zTclsh, zTempFile);
749 fossil_system(zCmd);
750 file_delete(zTempFile);
751 fossil_free(zCmd);
752 }
753 blob_reset(&script);
754
+1 -1
--- src/doc.c
+++ src/doc.c
@@ -2,11 +2,11 @@
22
** Copyright (c) 2007 D. Richard Hipp
33
**
44
** This program is free software; you can redistribute it and/or
55
** modify it under the terms of the Simplified BSD License (also
66
** known as the "2-Clause License" or "FreeBSD License".)
7
-
7
+**
88
** This program is distributed in the hope that it will be useful,
99
** but without any warranty; without even the implied warranty of
1010
** merchantability or fitness for a particular purpose.
1111
**
1212
** Author contact information:
1313
--- src/doc.c
+++ src/doc.c
@@ -2,11 +2,11 @@
2 ** Copyright (c) 2007 D. Richard Hipp
3 **
4 ** This program is free software; you can redistribute it and/or
5 ** modify it under the terms of the Simplified BSD License (also
6 ** known as the "2-Clause License" or "FreeBSD License".)
7
8 ** This program is distributed in the hope that it will be useful,
9 ** but without any warranty; without even the implied warranty of
10 ** merchantability or fitness for a particular purpose.
11 **
12 ** Author contact information:
13
--- src/doc.c
+++ src/doc.c
@@ -2,11 +2,11 @@
2 ** Copyright (c) 2007 D. Richard Hipp
3 **
4 ** This program is free software; you can redistribute it and/or
5 ** modify it under the terms of the Simplified BSD License (also
6 ** known as the "2-Clause License" or "FreeBSD License".)
7 **
8 ** This program is distributed in the hope that it will be useful,
9 ** but without any warranty; without even the implied warranty of
10 ** merchantability or fitness for a particular purpose.
11 **
12 ** Author contact information:
13
--- src/event.c
+++ src/event.c
@@ -508,10 +508,11 @@
508508
@ </blockquote>
509509
@ <p><b>Page content preview:</b><p>
510510
@ <blockquote>
511511
blob_init(&event, 0, 0);
512512
blob_append(&event, zBody, -1);
513
+ safe_html_context(DOCSRC_WIKI);
513514
wiki_render_by_mimetype(&event, zMimetype);
514515
@ </blockquote><hr />
515516
blob_reset(&event);
516517
}
517518
for(n=2, z=zBody; z[0]; z++){
518519
--- src/event.c
+++ src/event.c
@@ -508,10 +508,11 @@
508 @ </blockquote>
509 @ <p><b>Page content preview:</b><p>
510 @ <blockquote>
511 blob_init(&event, 0, 0);
512 blob_append(&event, zBody, -1);
 
513 wiki_render_by_mimetype(&event, zMimetype);
514 @ </blockquote><hr />
515 blob_reset(&event);
516 }
517 for(n=2, z=zBody; z[0]; z++){
518
--- src/event.c
+++ src/event.c
@@ -508,10 +508,11 @@
508 @ </blockquote>
509 @ <p><b>Page content preview:</b><p>
510 @ <blockquote>
511 blob_init(&event, 0, 0);
512 blob_append(&event, zBody, -1);
513 safe_html_context(DOCSRC_WIKI);
514 wiki_render_by_mimetype(&event, zMimetype);
515 @ </blockquote><hr />
516 blob_reset(&event);
517 }
518 for(n=2, z=zBody; z[0]; z++){
519
+33 -7
--- src/export.c
+++ src/export.c
@@ -882,15 +882,15 @@
882882
static void gitmirror_sanitize_name(char *z){
883883
static unsigned char aSafe[] = {
884884
/* x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF */
885885
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x */
886886
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 1x */
887
- 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 2x */
888
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, /* 3x */
887
+ 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, /* 2x */
888
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, /* 3x */
889889
0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 4x */
890890
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, /* 5x */
891
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 6x */
891
+ 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 6x */
892892
1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, /* 7x */
893893
};
894894
unsigned char *zu = (unsigned char*)z;
895895
int i;
896896
for(i=0; zu[i]; i++){
@@ -902,10 +902,36 @@
902902
|| (i>0 && zu[i-1]=='.')) ){
903903
zu[i] = '_';
904904
}
905905
}
906906
}
907
+
908
+/*
909
+** COMMAND: test-sanitize-name
910
+**
911
+** Usage: %fossil ARG...
912
+**
913
+** This sanitizes each argument and make it part of an "echo" command
914
+** run by the shell.
915
+*/
916
+void test_sanitize_name_cmd(void){
917
+ sqlite3_str *pStr;
918
+ int i;
919
+ char *zCmd;
920
+ pStr = sqlite3_str_new(0);
921
+ sqlite3_str_appendall(pStr, "echo");
922
+ for(i=2; i<g.argc; i++){
923
+ char *z = fossil_strdup(g.argv[i]);
924
+ gitmirror_sanitize_name(z);
925
+ sqlite3_str_appendf(pStr, " \"%s\"", z);
926
+ fossil_free(z);
927
+ }
928
+ zCmd = sqlite3_str_finish(pStr);
929
+ fossil_print("Command: %s\n", zCmd);
930
+ fossil_system(zCmd);
931
+ sqlite3_free(zCmd);
932
+}
907933
908934
/*
909935
** Quote a filename as a C-style string using \\ and \" if necessary.
910936
** If quoting is not necessary, just return a copy of the input string.
911937
**
@@ -1286,11 +1312,11 @@
12861312
if( rc ) fossil_fatal("cannot create directory \"%s\"", zMirror);
12871313
12881314
/* Make sure GIT has been initialized */
12891315
z = mprintf("%s/.git", zMirror);
12901316
if( !file_isdir(z, ExtFILE) ){
1291
- zCmd = mprintf("git init \"%s\"",zMirror);
1317
+ zCmd = mprintf("git init %$",zMirror);
12921318
gitmirror_message(VERB_NORMAL, "%s\n", zCmd);
12931319
rc = fossil_system(zCmd);
12941320
if( rc ){
12951321
fossil_fatal("cannot initialize the git repository using: \"%s\"", zCmd);
12961322
}
@@ -1484,11 +1510,11 @@
14841510
while( db_step(&q)==SQLITE_ROW ){
14851511
char *zTagname = fossil_strdup(db_column_text(&q,0));
14861512
const char *zObj = db_column_text(&q,1);
14871513
char *zTagCmd;
14881514
gitmirror_sanitize_name(zTagname);
1489
- zTagCmd = mprintf("git tag -f \"%s\" %s", zTagname, zObj);
1515
+ zTagCmd = mprintf("git tag -f %$ %$", zTagname, zObj);
14901516
fossil_free(zTagname);
14911517
gitmirror_message(VERB_NORMAL, "%s\n", zTagCmd);
14921518
fossil_system(zTagCmd);
14931519
fossil_free(zTagCmd);
14941520
}
@@ -1519,11 +1545,11 @@
15191545
fossil_free(zBrname);
15201546
zBrname = fossil_strdup("master");
15211547
}else{
15221548
gitmirror_sanitize_name(zBrname);
15231549
}
1524
- zRefCmd = mprintf("git update-ref \"refs/heads/%s\" %s", zBrname, zObj);
1550
+ zRefCmd = mprintf("git update-ref \"refs/heads/%s\" %$", zBrname, zObj);
15251551
fossil_free(zBrname);
15261552
gitmirror_message(VERB_NORMAL, "%s\n", zRefCmd);
15271553
fossil_system(zRefCmd);
15281554
fossil_free(zRefCmd);
15291555
}
@@ -1556,11 +1582,11 @@
15561582
}else{
15571583
zPushCmd = mprintf("git push --mirror %s", zPushUrl);
15581584
}
15591585
gitmirror_message(VERB_NORMAL, "%s\n", zPushCmd);
15601586
fossil_free(zPushCmd);
1561
- zPushCmd = mprintf("git push --mirror %s", zPushUrl);
1587
+ zPushCmd = mprintf("git push --mirror %$", zPushUrl);
15621588
fossil_system(zPushCmd);
15631589
fossil_free(zPushCmd);
15641590
}
15651591
}
15661592
15671593
--- src/export.c
+++ src/export.c
@@ -882,15 +882,15 @@
882 static void gitmirror_sanitize_name(char *z){
883 static unsigned char aSafe[] = {
884 /* x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF */
885 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x */
886 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 1x */
887 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 2x */
888 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 0, /* 3x */
889 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 4x */
890 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, /* 5x */
891 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 6x */
892 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, /* 7x */
893 };
894 unsigned char *zu = (unsigned char*)z;
895 int i;
896 for(i=0; zu[i]; i++){
@@ -902,10 +902,36 @@
902 || (i>0 && zu[i-1]=='.')) ){
903 zu[i] = '_';
904 }
905 }
906 }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
907
908 /*
909 ** Quote a filename as a C-style string using \\ and \" if necessary.
910 ** If quoting is not necessary, just return a copy of the input string.
911 **
@@ -1286,11 +1312,11 @@
1286 if( rc ) fossil_fatal("cannot create directory \"%s\"", zMirror);
1287
1288 /* Make sure GIT has been initialized */
1289 z = mprintf("%s/.git", zMirror);
1290 if( !file_isdir(z, ExtFILE) ){
1291 zCmd = mprintf("git init \"%s\"",zMirror);
1292 gitmirror_message(VERB_NORMAL, "%s\n", zCmd);
1293 rc = fossil_system(zCmd);
1294 if( rc ){
1295 fossil_fatal("cannot initialize the git repository using: \"%s\"", zCmd);
1296 }
@@ -1484,11 +1510,11 @@
1484 while( db_step(&q)==SQLITE_ROW ){
1485 char *zTagname = fossil_strdup(db_column_text(&q,0));
1486 const char *zObj = db_column_text(&q,1);
1487 char *zTagCmd;
1488 gitmirror_sanitize_name(zTagname);
1489 zTagCmd = mprintf("git tag -f \"%s\" %s", zTagname, zObj);
1490 fossil_free(zTagname);
1491 gitmirror_message(VERB_NORMAL, "%s\n", zTagCmd);
1492 fossil_system(zTagCmd);
1493 fossil_free(zTagCmd);
1494 }
@@ -1519,11 +1545,11 @@
1519 fossil_free(zBrname);
1520 zBrname = fossil_strdup("master");
1521 }else{
1522 gitmirror_sanitize_name(zBrname);
1523 }
1524 zRefCmd = mprintf("git update-ref \"refs/heads/%s\" %s", zBrname, zObj);
1525 fossil_free(zBrname);
1526 gitmirror_message(VERB_NORMAL, "%s\n", zRefCmd);
1527 fossil_system(zRefCmd);
1528 fossil_free(zRefCmd);
1529 }
@@ -1556,11 +1582,11 @@
1556 }else{
1557 zPushCmd = mprintf("git push --mirror %s", zPushUrl);
1558 }
1559 gitmirror_message(VERB_NORMAL, "%s\n", zPushCmd);
1560 fossil_free(zPushCmd);
1561 zPushCmd = mprintf("git push --mirror %s", zPushUrl);
1562 fossil_system(zPushCmd);
1563 fossil_free(zPushCmd);
1564 }
1565 }
1566
1567
--- src/export.c
+++ src/export.c
@@ -882,15 +882,15 @@
882 static void gitmirror_sanitize_name(char *z){
883 static unsigned char aSafe[] = {
884 /* x0 x1 x2 x3 x4 x5 x6 x7 x8 x9 xA xB xC xD xE xF */
885 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 0x */
886 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, /* 1x */
887 0, 1, 0, 1, 0, 1, 1, 0, 1, 1, 0, 1, 1, 1, 1, 1, /* 2x */
888 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, /* 3x */
889 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 4x */
890 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 1, /* 5x */
891 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, /* 6x */
892 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, /* 7x */
893 };
894 unsigned char *zu = (unsigned char*)z;
895 int i;
896 for(i=0; zu[i]; i++){
@@ -902,10 +902,36 @@
902 || (i>0 && zu[i-1]=='.')) ){
903 zu[i] = '_';
904 }
905 }
906 }
907
908 /*
909 ** COMMAND: test-sanitize-name
910 **
911 ** Usage: %fossil ARG...
912 **
913 ** This sanitizes each argument and make it part of an "echo" command
914 ** run by the shell.
915 */
916 void test_sanitize_name_cmd(void){
917 sqlite3_str *pStr;
918 int i;
919 char *zCmd;
920 pStr = sqlite3_str_new(0);
921 sqlite3_str_appendall(pStr, "echo");
922 for(i=2; i<g.argc; i++){
923 char *z = fossil_strdup(g.argv[i]);
924 gitmirror_sanitize_name(z);
925 sqlite3_str_appendf(pStr, " \"%s\"", z);
926 fossil_free(z);
927 }
928 zCmd = sqlite3_str_finish(pStr);
929 fossil_print("Command: %s\n", zCmd);
930 fossil_system(zCmd);
931 sqlite3_free(zCmd);
932 }
933
934 /*
935 ** Quote a filename as a C-style string using \\ and \" if necessary.
936 ** If quoting is not necessary, just return a copy of the input string.
937 **
@@ -1286,11 +1312,11 @@
1312 if( rc ) fossil_fatal("cannot create directory \"%s\"", zMirror);
1313
1314 /* Make sure GIT has been initialized */
1315 z = mprintf("%s/.git", zMirror);
1316 if( !file_isdir(z, ExtFILE) ){
1317 zCmd = mprintf("git init %$",zMirror);
1318 gitmirror_message(VERB_NORMAL, "%s\n", zCmd);
1319 rc = fossil_system(zCmd);
1320 if( rc ){
1321 fossil_fatal("cannot initialize the git repository using: \"%s\"", zCmd);
1322 }
@@ -1484,11 +1510,11 @@
1510 while( db_step(&q)==SQLITE_ROW ){
1511 char *zTagname = fossil_strdup(db_column_text(&q,0));
1512 const char *zObj = db_column_text(&q,1);
1513 char *zTagCmd;
1514 gitmirror_sanitize_name(zTagname);
1515 zTagCmd = mprintf("git tag -f %$ %$", zTagname, zObj);
1516 fossil_free(zTagname);
1517 gitmirror_message(VERB_NORMAL, "%s\n", zTagCmd);
1518 fossil_system(zTagCmd);
1519 fossil_free(zTagCmd);
1520 }
@@ -1519,11 +1545,11 @@
1545 fossil_free(zBrname);
1546 zBrname = fossil_strdup("master");
1547 }else{
1548 gitmirror_sanitize_name(zBrname);
1549 }
1550 zRefCmd = mprintf("git update-ref \"refs/heads/%s\" %$", zBrname, zObj);
1551 fossil_free(zBrname);
1552 gitmirror_message(VERB_NORMAL, "%s\n", zRefCmd);
1553 fossil_system(zRefCmd);
1554 fossil_free(zRefCmd);
1555 }
@@ -1556,11 +1582,11 @@
1582 }else{
1583 zPushCmd = mprintf("git push --mirror %s", zPushUrl);
1584 }
1585 gitmirror_message(VERB_NORMAL, "%s\n", zPushCmd);
1586 fossil_free(zPushCmd);
1587 zPushCmd = mprintf("git push --mirror %$", zPushUrl);
1588 fossil_system(zPushCmd);
1589 fossil_free(zPushCmd);
1590 }
1591 }
1592
1593
+1
--- src/file.c
+++ src/file.c
@@ -967,10 +967,11 @@
967967
*/
968968
int file_simplify_name(char *z, int n, int slash){
969969
int i = 1, j;
970970
assert( z!=0 );
971971
if( n<0 ) n = strlen(z);
972
+ if( n==0 ) return 0;
972973
973974
/* On windows and cygwin convert all \ characters to /
974975
* and remove extended path prefix if present */
975976
#if defined(_WIN32) || defined(__CYGWIN__)
976977
for(j=0; j<n; j++){
977978
--- src/file.c
+++ src/file.c
@@ -967,10 +967,11 @@
967 */
968 int file_simplify_name(char *z, int n, int slash){
969 int i = 1, j;
970 assert( z!=0 );
971 if( n<0 ) n = strlen(z);
 
972
973 /* On windows and cygwin convert all \ characters to /
974 * and remove extended path prefix if present */
975 #if defined(_WIN32) || defined(__CYGWIN__)
976 for(j=0; j<n; j++){
977
--- src/file.c
+++ src/file.c
@@ -967,10 +967,11 @@
967 */
968 int file_simplify_name(char *z, int n, int slash){
969 int i = 1, j;
970 assert( z!=0 );
971 if( n<0 ) n = strlen(z);
972 if( n==0 ) return 0;
973
974 /* On windows and cygwin convert all \ characters to /
975 * and remove extended path prefix if present */
976 #if defined(_WIN32) || defined(__CYGWIN__)
977 for(j=0; j<n; j++){
978
+66 -320
--- src/fileedit.c
+++ src/fileedit.c
@@ -919,111 +919,10 @@
919919
}else{
920920
return 0;
921921
}
922922
}
923923
924
-enum fileedit_render_preview_flags {
925
-FE_PREVIEW_LINE_NUMBERS = 1
926
-};
927
-enum fileedit_render_modes {
928
-/* GUESS must be 0. All others have unspecified values. */
929
-FE_RENDER_GUESS = 0,
930
-FE_RENDER_PLAIN_TEXT,
931
-FE_RENDER_HTML_IFRAME,
932
-FE_RENDER_HTML_INLINE,
933
-FE_RENDER_WIKI
934
-};
935
-
936
-static int fileedit_render_mode_for_mimetype(const char * zMimetype){
937
- int rc = FE_RENDER_PLAIN_TEXT;
938
- if( zMimetype ){
939
- if( fossil_strcmp(zMimetype, "text/html")==0 ){
940
- rc = FE_RENDER_HTML_IFRAME;
941
- }else if( fossil_strcmp(zMimetype, "text/x-fossil-wiki")==0
942
- || fossil_strcmp(zMimetype, "text/x-markdown")==0 ){
943
- rc = FE_RENDER_WIKI;
944
- }
945
- }
946
- return rc;
947
-}
948
-
949
-/*
950
-** Performs the PREVIEW mode for /filepage.
951
-**
952
-** If *renderMode==FE_RENDER_GUESS then *renderMode gets set to the
953
-** mode which is guessed at for the rendering.
954
-*/
955
-static void fileedit_render_preview(Blob * pContent,
956
- const char *zFilename,
957
- int flags, int * renderMode,
958
- int nIframeHeightEm){
959
- const char * zMime;
960
- zMime = mimetype_from_name(zFilename);
961
- if(FE_RENDER_GUESS==*renderMode){
962
- *renderMode = fileedit_render_mode_for_mimetype(zMime);
963
- }
964
- switch(*renderMode){
965
- case FE_RENDER_HTML_IFRAME:{
966
- char * z64 = encode64(blob_str(pContent), blob_size(pContent));
967
- CX("<iframe width='100%%' frameborder='0' "
968
- "marginwidth='0' style='height:%dem' "
969
- "marginheight='0' sandbox='allow-same-origin' "
970
- "id='ifm1' src='data:text/html;base64,%z'"
971
- "></iframe>",
972
- nIframeHeightEm ? nIframeHeightEm : 40,
973
- z64);
974
- break;
975
- }
976
- case FE_RENDER_HTML_INLINE:{
977
- CX("%b",pContent);
978
- break;
979
- }
980
- case FE_RENDER_WIKI:
981
- wiki_render_by_mimetype(pContent, zMime);
982
- break;
983
- default:{
984
- const char *zExt = strrchr(zFilename,'.');
985
- const char *zContent = blob_str(pContent);
986
- if(FE_PREVIEW_LINE_NUMBERS & flags){
987
- output_text_with_line_numbers(zContent, "on");
988
- }else if(zExt && zExt[1]){
989
- CX("<pre><code class='language-%s'>%h</code></pre>",
990
- zExt+1, zContent);
991
- }else{
992
- CX("<pre>%h</pre>", zContent);
993
- }
994
- break;
995
- }
996
- }
997
-}
998
-
999
-/*
1000
-** Renders diffs for the /fileedit page. pContent is the
1001
-** locally-edited content. frid is the RID of the file's blob entry
1002
-** from which pContent is based. zManifestUuid is the checkin version
1003
-** to which RID belongs - it is purely informational, for labeling the
1004
-** diff view. isSbs is true for side-by-side diffs, false for unified.
1005
-*/
1006
-static void fileedit_render_diff(Blob * pContent, int frid,
1007
- const char * zManifestUuid,
1008
- u64 diffFlags){
1009
- Blob orig = empty_blob;
1010
- Blob out = empty_blob;
1011
-
1012
- content_get(frid, &orig);
1013
- text_diff(&orig, pContent, &out, 0, diffFlags);
1014
- if(blob_size(&out)==0){
1015
- /* nothing to do */
1016
- }else if(DIFF_SIDEBYSIDE & diffFlags){
1017
- CX("%b",&out);
1018
- }else{
1019
- CX("<pre class='udiff'>%b</pre>",&out);
1020
- }
1021
- blob_reset(&orig);
1022
- blob_reset(&out);
1023
-}
1024
-
1025924
/*
1026925
** Given a repo-relative filename and a manifest RID, returns the UUID
1027926
** of the corresponding file entry. Returns NULL if no match is
1028927
** found. If pFilePerm is not NULL, the file's permission flag value
1029928
** is written to *pFilePerm.
@@ -1043,99 +942,25 @@
1043942
}
1044943
db_finalize(&stmt);
1045944
return zFileUuid;
1046945
}
1047946
1048
-/*
1049
-** Helper for /fileedit_xyz routes. Clears the CGI content buffer,
1050
-** sets an error status code, and queues up a JSON response in the
1051
-** form of an object:
1052
-**
1053
-** {error: formatted message}
1054
-**
1055
-** After calling this, the caller should immediately return.
1056
- */
1057
-static void fileedit_ajax_error(int httpCode, const char * zFmt, ...){
1058
- Blob msg = empty_blob;
1059
- Blob content = empty_blob;
1060
- va_list vargs;
1061
- va_start(vargs,zFmt);
1062
- blob_vappendf(&msg, zFmt, vargs);
1063
- va_end(vargs);
1064
- blob_appendf(&content,"{\"error\":%!j}", blob_str(&msg));
1065
- blob_reset(&msg);
1066
- cgi_set_content(&content);
1067
- cgi_set_status(httpCode, "Error");
1068
- cgi_set_content_type("application/json");
1069
-}
1070
-
1071
-/*
1072
-** Performs bootstrapping common to the /fileedit_xyz AJAX routes.
1073
-** Returns 0 if bootstrapping fails (wrong permissions), in which
1074
-** case it has reported the error and the route should immediately
1075
-** return. Returns true on success.
1076
-**
1077
-** Must be passed true if the request being set up requires POST,
1078
-** else false.
1079
-*/
1080
-static int fileedit_ajax_boostrap(int requirePost){
1081
- login_check_credentials();
1082
- if( !g.perm.Write ){
1083
- fileedit_ajax_error(403,"Write permissions required.");
1084
- return 0;
1085
- }else if(0==cgi_csrf_safe(requirePost)){
1086
- fileedit_ajax_error(403,
1087
- "CSRF violation (make sure sending of HTTP "
1088
- "Referer headers is enabled for XHR "
1089
- "connections).");
1090
- return 0;
1091
- }
1092
- return 1;
1093
-}
1094947
/*
1095948
** Returns true if the current user is allowed to edit the given
1096949
** filename, as determined by fileedit_is_editable(), else false,
1097950
** in which case it queues up an error response and the caller
1098951
** must return immediately.
1099952
*/
1100953
static int fileedit_ajax_check_filename(const char * zFilename){
1101954
if(0==fileedit_is_editable(zFilename)){
1102
- fileedit_ajax_error(403, "File is disallowed by the "
1103
- "fileedit-glob setting.");
955
+ ajax_route_error(403, "File is disallowed by the "
956
+ "fileedit-glob setting.");
1104957
return 0;
1105958
}
1106959
return 1;
1107960
}
1108961
1109
-
1110
-/*
1111
-** If zFn is not NULL, it is assigned the value of the first one of
1112
-** the "filename" or "fn" CGI parameters which is set.
1113
-**
1114
-** If zCi is not NULL, it is assigned the value of the first one of
1115
-** the "checkin" or "ci" CGI parameters which is set.
1116
-**
1117
-** If a parameter is not NULL, it will be assigned NULL if the
1118
-** corresponding parameter is not set.
1119
-**
1120
-** Returns the number of non-NULL values it assigns to arguments. Thus
1121
-** if passed (&x, NULL), it returns 1 if it assigns non-NULL to *x and
1122
-** 0 if it assigns NULL to *x.
1123
-*/
1124
-static int fileedit_get_fnci_args( const char **zFn, const char **zCi ){
1125
- int rc = 0;
1126
- if(zCi!=0){
1127
- *zCi = PD("checkin",P("ci"));
1128
- if( *zCi ) ++rc;
1129
- }
1130
- if(zFn!=0){
1131
- *zFn = PD("filename",P("fn"));
1132
- if (*zFn) ++rc;
1133
- }
1134
- return rc;
1135
-}
1136
-
1137962
/*
1138963
** Passed the values of the "checkin" and "filename" request
1139964
** properties, this function verifies that they are valid and
1140965
** populates:
1141966
**
@@ -1157,30 +982,30 @@
1157982
static int fileedit_ajax_setup_filerev(const char * zRev,
1158983
char ** zRevUuid,
1159984
int * vid,
1160985
const char * zFilename,
1161986
int * frid){
1162
- char * zFileUuid; /* file UUID */
987
+ char * zFileUuid = 0; /* file content UUID */
1163988
const int checkFile = zFilename!=0 || frid!=0;
1164989
1165990
if(checkFile && !fileedit_ajax_check_filename(zFilename)){
1166991
return 0;
1167992
}
1168993
*vid = symbolic_name_to_rid(zRev, "ci");
1169994
if(0==*vid){
1170
- fileedit_ajax_error(404,"Cannot resolve name as a checkin: %s",
1171
- zRev);
995
+ ajax_route_error(404,"Cannot resolve name as a checkin: %s",
996
+ zRev);
1172997
return 0;
1173998
}else if(*vid<0){
1174
- fileedit_ajax_error(400,"Checkin name is ambiguous: %s",
1175
- zRev);
999
+ ajax_route_error(400,"Checkin name is ambiguous: %s",
1000
+ zRev);
11761001
return 0;
11771002
}
11781003
if(checkFile){
11791004
zFileUuid = fileedit_file_uuid(zFilename, *vid, 0);
11801005
if(zFileUuid==0){
1181
- fileedit_ajax_error(404,"Checkin does not contain file.");
1006
+ ajax_route_error(404, "Checkin does not contain file.");
11821007
return 0;
11831008
}
11841009
}
11851010
if(zRevUuid!=0){
11861011
*zRevUuid = rid_to_uuid(*vid);
@@ -1204,11 +1029,11 @@
12041029
** checkin=CHECKIN_NAME
12051030
**
12061031
** User must have Write access to use this page.
12071032
**
12081033
** Responds with the raw content of the given page. On error it
1209
-** produces a JSON response as documented for fileedit_ajax_error().
1034
+** produces a JSON response as documented for ajax_route_error().
12101035
**
12111036
** Extra response headers:
12121037
**
12131038
** x-fileedit-file-perm: empty or "x" or "l", representing PERM_REG,
12141039
** PERM_EXE, or PERM_LINK, respectively.
@@ -1220,12 +1045,12 @@
12201045
const char * zRev = 0;
12211046
int vid, frid;
12221047
Blob content = empty_blob;
12231048
const char * zMime;
12241049
1225
- fileedit_get_fnci_args( &zFilename, &zRev );
1226
- if(!fileedit_ajax_boostrap(0)
1050
+ ajax_get_fnci_args( &zFilename, &zRev );
1051
+ if(!ajax_route_bootstrap(1,0)
12271052
|| !fileedit_ajax_setup_filerev(zRev, 0, &vid,
12281053
zFilename, &frid)){
12291054
return;
12301055
}
12311056
zMime = mimetype_from_name(zFilename);
@@ -1255,81 +1080,10 @@
12551080
}
12561081
cgi_set_content_type(zMime);
12571082
cgi_set_content(&content);
12581083
}
12591084
1260
-/*
1261
-** AJAX route /fileedit?ajax=preview
1262
-**
1263
-** Required query parameters:
1264
-**
1265
-** filename=FILENAME
1266
-** content=text
1267
-**
1268
-** Optional query parameters:
1269
-**
1270
-** render_mode=integer (FE_RENDER_xxx) (default=FE_RENDER_GUESS)
1271
-**
1272
-** ln=0 or 1 to disable/enable line number mode in
1273
-** FE_RENDER_PLAIN_TEXT mode.
1274
-**
1275
-** iframe_height=integer (default=40) Height, in EMs of HTML preview
1276
-** iframe.
1277
-**
1278
-** User must have Write access to use this page.
1279
-**
1280
-** Responds with the HTML content of the preview. On error it produces
1281
-** a JSON response as documented for fileedit_ajax_error().
1282
-**
1283
-** Extra response headers:
1284
-**
1285
-** x-fileedit-render-mode: string representing the rendering mode
1286
-** which was really used (which will differ from the requested mode
1287
-** only if mode 0 (guess) was requested). The names are documented
1288
-** below in code and match those in the emitted JS object
1289
-** fossil.page.previewModes.
1290
-*/
1291
-static void fileedit_ajax_preview(void){
1292
- const char * zFilename = 0;
1293
- const char * zContent = P("content");
1294
- int renderMode = atoi(PD("render_mode","0"));
1295
- int ln = atoi(PD("ln","0"));
1296
- int iframeHeight = atoi(PD("iframe_height","40"));
1297
- Blob content = empty_blob;
1298
- const char * zRenderMode = 0;
1299
- fileedit_get_fnci_args( &zFilename, 0 );
1300
- if(!fileedit_ajax_boostrap(1)
1301
- || !fileedit_ajax_check_filename(zFilename)){
1302
- return;
1303
- }
1304
- cgi_set_content_type("text/html");
1305
- blob_init(&content, zContent, -1);
1306
- fileedit_render_preview(&content, zFilename,
1307
- ln ? FE_PREVIEW_LINE_NUMBERS : 0,
1308
- &renderMode, iframeHeight);
1309
- /*
1310
- ** Now tell the caller if we did indeed use FE_RENDER_WIKI, so that
1311
- ** they can re-set the <base href> to an appropriate value (which
1312
- ** requires knowing the content's current checkin version, which we
1313
- ** don't have here).
1314
- */
1315
- switch(renderMode){
1316
- /* The strings used here MUST correspond to those used in the JS-side
1317
- ** fossil.page.previewModes map.
1318
- */
1319
- case FE_RENDER_WIKI: zRenderMode = "wiki"; break;
1320
- case FE_RENDER_HTML_INLINE: zRenderMode = "htmlInline"; break;
1321
- case FE_RENDER_HTML_IFRAME: zRenderMode = "htmlIframe"; break;
1322
- case FE_RENDER_PLAIN_TEXT: zRenderMode = "text"; break;
1323
- case FE_RENDER_GUESS:
1324
- assert(!"cannot happen");
1325
- }
1326
- if(zRenderMode!=0){
1327
- cgi_printf_header("x-fileedit-render-mode: %s\r\n", zRenderMode);
1328
- }
1329
-}
1330
-
13311085
/*
13321086
** AJAX route /fileedit?ajax=diff
13331087
**
13341088
** Required query parameters:
13351089
**
@@ -1347,11 +1101,11 @@
13471101
** patch-style siff can be produced.
13481102
**
13491103
** User must have Write access to use this page.
13501104
**
13511105
** Responds with the HTML content of the diff. On error it produces a
1352
-** JSON response as documented for fileedit_ajax_error().
1106
+** JSON response as documented for ajax_route_error().
13531107
*/
13541108
static void fileedit_ajax_diff(void){
13551109
/*
13561110
** Reminder: we only need the filename to perform valdiation
13571111
** against fileedit_is_editable(), else this route could be
@@ -1377,22 +1131,27 @@
13771131
diffFlags |= DIFF_IGNORE_ALLWS;
13781132
}else if(1==iFlag){
13791133
diffFlags |= DIFF_IGNORE_EOLWS;
13801134
}
13811135
diffFlags |= DIFF_STRIP_EOLCR;
1382
- fileedit_get_fnci_args( &zFilename, &zRev );
1383
- if(!fileedit_ajax_boostrap(1)
1136
+ ajax_get_fnci_args( &zFilename, &zRev );
1137
+ if(!ajax_route_bootstrap(1,1)
13841138
|| !fileedit_ajax_setup_filerev(zRev, &zRevUuid, &vid,
13851139
zFilename, &frid)){
13861140
return;
13871141
}
13881142
if(!zContent){
13891143
zContent = "";
13901144
}
13911145
cgi_set_content_type("text/html");
13921146
blob_init(&content, zContent, -1);
1393
- fileedit_render_diff(&content, frid, zRevUuid, diffFlags);
1147
+ {
1148
+ Blob orig = empty_blob;
1149
+ content_get(frid, &orig);
1150
+ ajax_render_diff(&orig, &content, diffFlags);
1151
+ blob_reset(&orig);
1152
+ }
13941153
fossil_free(zRevUuid);
13951154
blob_reset(&content);
13961155
}
13971156
13981157
/*
@@ -1557,19 +1316,19 @@
15571316
** checkin: UUID,
15581317
** editableFiles: [ filename1, ... filenameN ] // sorted by name
15591318
** }
15601319
**
15611320
** On error it produces a JSON response as documented for
1562
-** fileedit_ajax_error().
1321
+** ajax_route_error().
15631322
*/
15641323
static void fileedit_ajax_filelist(void){
15651324
const char * zCi = PD("checkin",P("ci"));
15661325
Blob sql = empty_blob;
15671326
Stmt q = empty_Stmt;
15681327
int i = 0;
15691328
1570
- if(!fileedit_ajax_boostrap(0)){
1329
+ if(!ajax_route_bootstrap(1,0)){
15711330
return;
15721331
}
15731332
cgi_set_content_type("application/json");
15741333
if(zCi!=0){
15751334
char * zCiFull = 0;
@@ -1616,11 +1375,11 @@
16161375
CX("}");
16171376
}
16181377
CX("]");
16191378
db_finalize(&q);
16201379
}else{
1621
- fileedit_ajax_error(500, "Unhandled URL argument.");
1380
+ ajax_route_error(500, "Unhandled URL argument.");
16221381
}
16231382
}
16241383
16251384
/*
16261385
** AJAX route /fileedit?ajax=commit
@@ -1657,11 +1416,11 @@
16571416
** dryRun: bool,
16581417
** manifest: text of manifest,
16591418
** }
16601419
**
16611420
** On error it produces a JSON response as documented for
1662
-** fileedit_ajax_error().
1421
+** ajax_route_error().
16631422
*/
16641423
static void fileedit_ajax_commit(void){
16651424
Blob err = empty_blob; /* Error messages */
16661425
Blob manifest = empty_blob; /* raw new manifest */
16671426
CheckinMiniInfo cimi; /* checkin state */
@@ -1669,30 +1428,30 @@
16691428
int newVid = 0; /* new version's RID */
16701429
char * zNewUuid = 0; /* newVid's UUID */
16711430
char const * zMimetype;
16721431
char * zBranch = 0;
16731432
1674
- if(!fileedit_ajax_boostrap(1)){
1433
+ if(!ajax_route_bootstrap(1,1)){
16751434
return;
16761435
}
16771436
db_begin_transaction();
16781437
CheckinMiniInfo_init(&cimi);
16791438
rc = fileedit_setup_cimi_from_p(&cimi, &err, 0);
16801439
if(0!=rc){
1681
- fileedit_ajax_error(rc,"%b",&err);
1440
+ ajax_route_error(rc,"%b",&err);
16821441
goto end_cleanup;
16831442
}
16841443
if(blob_size(&cimi.comment)==0){
1685
- fileedit_ajax_error(400,"Empty checkin comment is not permitted.");
1444
+ ajax_route_error(400,"Empty checkin comment is not permitted.");
16861445
goto end_cleanup;
16871446
}
16881447
if(0!=atoi(PD("include_manifest","0"))){
16891448
cimi.pMfOut = &manifest;
16901449
}
16911450
checkin_mini(&cimi, &newVid, &err);
16921451
if(blob_size(&err)){
1693
- fileedit_ajax_error(500,"%b",&err);
1452
+ ajax_route_error(500,"%b",&err);
16941453
goto end_cleanup;
16951454
}
16961455
assert(newVid>0);
16971456
zNewUuid = rid_to_uuid(newVid);
16981457
cgi_set_content_type("application/json");
@@ -1747,21 +1506,20 @@
17471506
** use of the name parameter.
17481507
**
17491508
** Which additional parameters are used by each distinct ajax value is
17501509
** an internal implementation detail and may change with any given
17511510
** build of this code. An unknown "name" value triggers an error, as
1752
-** documented for fileedit_ajax_error().
1511
+** documented for ajax_route_error().
17531512
*/
17541513
void fileedit_page(void){
17551514
const char * zFilename = 0; /* filename. We'll accept 'name'
17561515
because that param is handled
17571516
specially by the core. */
17581517
const char * zRev = 0; /* checkin version */
17591518
const char * zFileMime = 0; /* File mime type guess */
17601519
CheckinMiniInfo cimi; /* Checkin state */
1761
- int previewHtmlHeight = 0; /* iframe height (EMs) */
1762
- int previewRenderMode = FE_RENDER_GUESS; /* preview mode */
1520
+ int previewRenderMode = AJAX_RENDER_GUESS; /* preview mode */
17631521
Blob err = empty_blob; /* Error report */
17641522
Blob endScript = empty_blob; /* Script code to run at the
17651523
end. This content will be
17661524
combined into a single JS
17671525
function call, thus each
@@ -1772,21 +1530,21 @@
17721530
17731531
/* Allow no access to this page without check-in privilege */
17741532
login_check_credentials();
17751533
if( !g.perm.Write ){
17761534
if(zAjax!=0){
1777
- fileedit_ajax_error(403, "Write permissions required.");
1535
+ ajax_route_error(403, "Write permissions required.");
17781536
}else{
17791537
login_needed(g.anon.Write);
17801538
}
17811539
return;
17821540
}
17831541
/* No access to anything on this page if the fileedit-glob is empty */
17841542
if( fileedit_glob()==0 ){
17851543
if(zAjax!=0){
1786
- fileedit_ajax_error(403, "Online editing is disabled for this "
1787
- "repository.");
1544
+ ajax_route_error(403, "Online editing is disabled for this "
1545
+ "repository.");
17881546
return;
17891547
}
17901548
style_header("File Editor (disabled)");
17911549
CX("<h1>Online File Editing Is Disabled</h1>\n");
17921550
if( g.perm.Admin ){
@@ -1806,22 +1564,21 @@
18061564
/* Dispatch AJAX methods based tail of the request URI.
18071565
** The AJAX parts do their own permissions/CSRF check and
18081566
** fail with a JSON-format response if needed.
18091567
*/
18101568
if( 0!=zAjax ){
1569
+ /* preview mode is handled via /ajax/preview-text */
18111570
if(0==strcmp("content",zAjax)){
18121571
fileedit_ajax_content();
1813
- }else if(0==strcmp("preview",zAjax)){
1814
- fileedit_ajax_preview();
18151572
}else if(0==strcmp("filelist",zAjax)){
18161573
fileedit_ajax_filelist();
18171574
}else if(0==strcmp("diff",zAjax)){
18181575
fileedit_ajax_diff();
18191576
}else if(0==strcmp("commit",zAjax)){
18201577
fileedit_ajax_commit();
18211578
}else{
1822
- fileedit_ajax_error(500, "Unhandled ajax route name.");
1579
+ ajax_route_error(500, "Unhandled ajax route name.");
18231580
}
18241581
return;
18251582
}
18261583
18271584
db_begin_transaction();
@@ -1854,21 +1611,19 @@
18541611
** render the errors. Any up-coming errors, barring malloc failure
18551612
** or similar, are not "that" fatal. We can/should continue
18561613
** rendering the page, then output the error message at the end.
18571614
********************************************************************/
18581615
1859
- {
1860
- /* The CSS for this page lives in a common file but much of it we
1861
- ** don't want inadvertently being used by other pages. We don't
1862
- ** have a common, page-specific container we can filter our CSS
1863
- ** selectors, but we do have the BODY, which we can decorate with
1864
- ** whatever CSS we wish...
1865
- */
1866
- style_emit_script_tag(0,0);
1867
- CX("document.body.classList.add('fileedit');\n");
1868
- style_emit_script_tag(1,0);
1869
- }
1616
+ /* The CSS for this page lives in a common file but much of it we
1617
+ ** don't want inadvertently being used by other pages. We don't
1618
+ ** have a common, page-specific container we can filter our CSS
1619
+ ** selectors, but we do have the BODY, which we can decorate with
1620
+ ** whatever CSS we wish...
1621
+ */
1622
+ style_emit_script_tag(0,0);
1623
+ CX("document.body.classList.add('fileedit');\n");
1624
+ style_emit_script_tag(1,0);
18701625
18711626
/* Status bar */
18721627
CX("<div id='fossil-status-bar' "
18731628
"title='Status message area. Double-click to clear them.'>"
18741629
"Status messages will go here.</div>\n"
@@ -1947,46 +1702,30 @@
19471702
"If on, the preview will automatically "
19481703
"refresh when this tab is selected.");
19491704
19501705
/* Default preview rendering mode selection... */
19511706
previewRenderMode = zFileMime
1952
- ? fileedit_render_mode_for_mimetype(zFileMime)
1953
- : FE_RENDER_GUESS;
1707
+ ? ajax_render_mode_for_mimetype(zFileMime)
1708
+ : AJAX_RENDER_GUESS;
19541709
style_select_list_int("select-preview-mode",
19551710
"preview_render_mode",
19561711
"Preview Mode",
19571712
"Preview mode format.",
19581713
previewRenderMode,
1959
- "Guess", FE_RENDER_GUESS,
1960
- "Wiki/Markdown", FE_RENDER_WIKI,
1961
- "HTML (iframe)", FE_RENDER_HTML_IFRAME,
1962
- "HTML (inline)", FE_RENDER_HTML_INLINE,
1963
- "Plain Text", FE_RENDER_PLAIN_TEXT,
1714
+ "Guess", AJAX_RENDER_GUESS,
1715
+ "Wiki/Markdown", AJAX_RENDER_WIKI,
1716
+ "HTML (iframe)", AJAX_RENDER_HTML_IFRAME,
1717
+ "HTML (inline)", AJAX_RENDER_HTML_INLINE,
1718
+ "Plain Text", AJAX_RENDER_PLAIN_TEXT,
19641719
NULL);
1965
- /*
1966
- ** Set up a JS-side mapping of the FE_RENDER_xyz values. This is
1967
- ** used for dynamically toggling certain UI components on and off.
1968
- */
1969
- blob_appendf(&endScript, "fossil.page.previewModes={"
1970
- "guess: %d, %d: 'guess', wiki: %d, %d: 'wiki',"
1971
- "htmlIframe: %d, %d: 'htmlIframe', "
1972
- "htmlInline: %d, %d: 'htmlInline', "
1973
- "text: %d, %d: 'text'"
1974
- "};\n",
1975
- FE_RENDER_GUESS, FE_RENDER_GUESS,
1976
- FE_RENDER_WIKI, FE_RENDER_WIKI,
1977
- FE_RENDER_HTML_IFRAME, FE_RENDER_HTML_IFRAME,
1978
- FE_RENDER_HTML_INLINE, FE_RENDER_HTML_INLINE,
1979
- FE_RENDER_PLAIN_TEXT, FE_RENDER_PLAIN_TEXT);
19801720
/* Allow selection of HTML preview iframe height */
1981
- previewHtmlHeight = 40;
19821721
style_select_list_int("select-preview-html-ems",
19831722
"preview_html_ems",
19841723
"HTML Preview IFrame Height (EMs)",
19851724
"Height (in EMs) of the iframe used for "
19861725
"HTML preview",
1987
- previewHtmlHeight,
1726
+ 40 /*default*/,
19881727
"", 20, "", 40,
19891728
"", 60, "", 80,
19901729
"", 100, NULL);
19911730
/* Selection of line numbers for text preview */
19921731
style_labeled_checkbox("cb-line-numbers",
@@ -2188,28 +1927,28 @@
21881927
{
21891928
/* Dynamically populate the editor, display any error in the err
21901929
** blob, and/or switch to tab #0, where the file selector
21911930
** lives... */
21921931
blob_appendf(&endScript,
2193
- "window.addEventListener('load',");
1932
+ "fossil.onPageLoad(");
21941933
if(zRev && zFilename){
21951934
assert(0==blob_size(&err));
21961935
blob_appendf(&endScript,
21971936
"()=>fossil.page.loadFile(%!j,%!j)",
21981937
zFilename, cimi.zParentUuid);
21991938
}else{
2200
- blob_appendf(&endScript,"function(){");
1939
+ blob_appendf(&endScript,"function(){\n");
22011940
if(blob_size(&err)>0){
22021941
blob_appendf(&endScript,
22031942
"fossil.error(%!j);\n",
22041943
blob_str(&err));
22051944
}
22061945
blob_appendf(&endScript,
22071946
"fossil.page.tabs.switchToTab(0);\n");
22081947
blob_appendf(&endScript,"}");
22091948
}
2210
- blob_appendf(&endScript,", false);\n");
1949
+ blob_appendf(&endScript,");\n");
22111950
}
22121951
22131952
blob_reset(&err);
22141953
CheckinMiniInfo_cleanup(&cimi);
22151954
style_emit_script_fossil_bootstrap(0);
@@ -2216,21 +1955,28 @@
22161955
append_diff_javascript(1);
22171956
style_emit_script_fetch(0);
22181957
style_emit_script_tabs(0)/*also emits fossil.dom*/;
22191958
style_emit_script_confirmer(0);
22201959
style_emit_script_builtin(0, "fossil.storage.js");
1960
+
1961
+ /*
1962
+ ** Set up a JS-side mapping of the AJAX_RENDER_xyz values. This is
1963
+ ** used for dynamically toggling certain UI components on and off.
1964
+ ** Must come before fossil.page.fileedit.js.
1965
+ */
1966
+ ajax_emit_js_preview_modes(1);
1967
+
22211968
style_emit_script_builtin(0, "fossil.page.fileedit.js");
22221969
if(blob_size(&endScript)>0){
22231970
style_emit_script_tag(0,0);
2224
- CX("(function(){\n");
2225
- CX("try{\n%b\n}"
1971
+ CX("\n(function(){\n");
1972
+ CX("try{\n%b}\n"
22261973
"catch(e){"
2227
- "fossil.error(e);\n"
2228
- "console.error('Exception:',e);\n"
1974
+ "fossil.error(e); console.error('Exception:',e);"
22291975
"}\n",
22301976
&endScript);
22311977
CX("})();");
22321978
style_emit_script_tag(1,0);
22331979
}
22341980
db_end_transaction(0);
22351981
style_footer();
22361982
}
22371983
--- src/fileedit.c
+++ src/fileedit.c
@@ -919,111 +919,10 @@
919 }else{
920 return 0;
921 }
922 }
923
924 enum fileedit_render_preview_flags {
925 FE_PREVIEW_LINE_NUMBERS = 1
926 };
927 enum fileedit_render_modes {
928 /* GUESS must be 0. All others have unspecified values. */
929 FE_RENDER_GUESS = 0,
930 FE_RENDER_PLAIN_TEXT,
931 FE_RENDER_HTML_IFRAME,
932 FE_RENDER_HTML_INLINE,
933 FE_RENDER_WIKI
934 };
935
936 static int fileedit_render_mode_for_mimetype(const char * zMimetype){
937 int rc = FE_RENDER_PLAIN_TEXT;
938 if( zMimetype ){
939 if( fossil_strcmp(zMimetype, "text/html")==0 ){
940 rc = FE_RENDER_HTML_IFRAME;
941 }else if( fossil_strcmp(zMimetype, "text/x-fossil-wiki")==0
942 || fossil_strcmp(zMimetype, "text/x-markdown")==0 ){
943 rc = FE_RENDER_WIKI;
944 }
945 }
946 return rc;
947 }
948
949 /*
950 ** Performs the PREVIEW mode for /filepage.
951 **
952 ** If *renderMode==FE_RENDER_GUESS then *renderMode gets set to the
953 ** mode which is guessed at for the rendering.
954 */
955 static void fileedit_render_preview(Blob * pContent,
956 const char *zFilename,
957 int flags, int * renderMode,
958 int nIframeHeightEm){
959 const char * zMime;
960 zMime = mimetype_from_name(zFilename);
961 if(FE_RENDER_GUESS==*renderMode){
962 *renderMode = fileedit_render_mode_for_mimetype(zMime);
963 }
964 switch(*renderMode){
965 case FE_RENDER_HTML_IFRAME:{
966 char * z64 = encode64(blob_str(pContent), blob_size(pContent));
967 CX("<iframe width='100%%' frameborder='0' "
968 "marginwidth='0' style='height:%dem' "
969 "marginheight='0' sandbox='allow-same-origin' "
970 "id='ifm1' src='data:text/html;base64,%z'"
971 "></iframe>",
972 nIframeHeightEm ? nIframeHeightEm : 40,
973 z64);
974 break;
975 }
976 case FE_RENDER_HTML_INLINE:{
977 CX("%b",pContent);
978 break;
979 }
980 case FE_RENDER_WIKI:
981 wiki_render_by_mimetype(pContent, zMime);
982 break;
983 default:{
984 const char *zExt = strrchr(zFilename,'.');
985 const char *zContent = blob_str(pContent);
986 if(FE_PREVIEW_LINE_NUMBERS & flags){
987 output_text_with_line_numbers(zContent, "on");
988 }else if(zExt && zExt[1]){
989 CX("<pre><code class='language-%s'>%h</code></pre>",
990 zExt+1, zContent);
991 }else{
992 CX("<pre>%h</pre>", zContent);
993 }
994 break;
995 }
996 }
997 }
998
999 /*
1000 ** Renders diffs for the /fileedit page. pContent is the
1001 ** locally-edited content. frid is the RID of the file's blob entry
1002 ** from which pContent is based. zManifestUuid is the checkin version
1003 ** to which RID belongs - it is purely informational, for labeling the
1004 ** diff view. isSbs is true for side-by-side diffs, false for unified.
1005 */
1006 static void fileedit_render_diff(Blob * pContent, int frid,
1007 const char * zManifestUuid,
1008 u64 diffFlags){
1009 Blob orig = empty_blob;
1010 Blob out = empty_blob;
1011
1012 content_get(frid, &orig);
1013 text_diff(&orig, pContent, &out, 0, diffFlags);
1014 if(blob_size(&out)==0){
1015 /* nothing to do */
1016 }else if(DIFF_SIDEBYSIDE & diffFlags){
1017 CX("%b",&out);
1018 }else{
1019 CX("<pre class='udiff'>%b</pre>",&out);
1020 }
1021 blob_reset(&orig);
1022 blob_reset(&out);
1023 }
1024
1025 /*
1026 ** Given a repo-relative filename and a manifest RID, returns the UUID
1027 ** of the corresponding file entry. Returns NULL if no match is
1028 ** found. If pFilePerm is not NULL, the file's permission flag value
1029 ** is written to *pFilePerm.
@@ -1043,99 +942,25 @@
1043 }
1044 db_finalize(&stmt);
1045 return zFileUuid;
1046 }
1047
1048 /*
1049 ** Helper for /fileedit_xyz routes. Clears the CGI content buffer,
1050 ** sets an error status code, and queues up a JSON response in the
1051 ** form of an object:
1052 **
1053 ** {error: formatted message}
1054 **
1055 ** After calling this, the caller should immediately return.
1056 */
1057 static void fileedit_ajax_error(int httpCode, const char * zFmt, ...){
1058 Blob msg = empty_blob;
1059 Blob content = empty_blob;
1060 va_list vargs;
1061 va_start(vargs,zFmt);
1062 blob_vappendf(&msg, zFmt, vargs);
1063 va_end(vargs);
1064 blob_appendf(&content,"{\"error\":%!j}", blob_str(&msg));
1065 blob_reset(&msg);
1066 cgi_set_content(&content);
1067 cgi_set_status(httpCode, "Error");
1068 cgi_set_content_type("application/json");
1069 }
1070
1071 /*
1072 ** Performs bootstrapping common to the /fileedit_xyz AJAX routes.
1073 ** Returns 0 if bootstrapping fails (wrong permissions), in which
1074 ** case it has reported the error and the route should immediately
1075 ** return. Returns true on success.
1076 **
1077 ** Must be passed true if the request being set up requires POST,
1078 ** else false.
1079 */
1080 static int fileedit_ajax_boostrap(int requirePost){
1081 login_check_credentials();
1082 if( !g.perm.Write ){
1083 fileedit_ajax_error(403,"Write permissions required.");
1084 return 0;
1085 }else if(0==cgi_csrf_safe(requirePost)){
1086 fileedit_ajax_error(403,
1087 "CSRF violation (make sure sending of HTTP "
1088 "Referer headers is enabled for XHR "
1089 "connections).");
1090 return 0;
1091 }
1092 return 1;
1093 }
1094 /*
1095 ** Returns true if the current user is allowed to edit the given
1096 ** filename, as determined by fileedit_is_editable(), else false,
1097 ** in which case it queues up an error response and the caller
1098 ** must return immediately.
1099 */
1100 static int fileedit_ajax_check_filename(const char * zFilename){
1101 if(0==fileedit_is_editable(zFilename)){
1102 fileedit_ajax_error(403, "File is disallowed by the "
1103 "fileedit-glob setting.");
1104 return 0;
1105 }
1106 return 1;
1107 }
1108
1109
1110 /*
1111 ** If zFn is not NULL, it is assigned the value of the first one of
1112 ** the "filename" or "fn" CGI parameters which is set.
1113 **
1114 ** If zCi is not NULL, it is assigned the value of the first one of
1115 ** the "checkin" or "ci" CGI parameters which is set.
1116 **
1117 ** If a parameter is not NULL, it will be assigned NULL if the
1118 ** corresponding parameter is not set.
1119 **
1120 ** Returns the number of non-NULL values it assigns to arguments. Thus
1121 ** if passed (&x, NULL), it returns 1 if it assigns non-NULL to *x and
1122 ** 0 if it assigns NULL to *x.
1123 */
1124 static int fileedit_get_fnci_args( const char **zFn, const char **zCi ){
1125 int rc = 0;
1126 if(zCi!=0){
1127 *zCi = PD("checkin",P("ci"));
1128 if( *zCi ) ++rc;
1129 }
1130 if(zFn!=0){
1131 *zFn = PD("filename",P("fn"));
1132 if (*zFn) ++rc;
1133 }
1134 return rc;
1135 }
1136
1137 /*
1138 ** Passed the values of the "checkin" and "filename" request
1139 ** properties, this function verifies that they are valid and
1140 ** populates:
1141 **
@@ -1157,30 +982,30 @@
1157 static int fileedit_ajax_setup_filerev(const char * zRev,
1158 char ** zRevUuid,
1159 int * vid,
1160 const char * zFilename,
1161 int * frid){
1162 char * zFileUuid; /* file UUID */
1163 const int checkFile = zFilename!=0 || frid!=0;
1164
1165 if(checkFile && !fileedit_ajax_check_filename(zFilename)){
1166 return 0;
1167 }
1168 *vid = symbolic_name_to_rid(zRev, "ci");
1169 if(0==*vid){
1170 fileedit_ajax_error(404,"Cannot resolve name as a checkin: %s",
1171 zRev);
1172 return 0;
1173 }else if(*vid<0){
1174 fileedit_ajax_error(400,"Checkin name is ambiguous: %s",
1175 zRev);
1176 return 0;
1177 }
1178 if(checkFile){
1179 zFileUuid = fileedit_file_uuid(zFilename, *vid, 0);
1180 if(zFileUuid==0){
1181 fileedit_ajax_error(404,"Checkin does not contain file.");
1182 return 0;
1183 }
1184 }
1185 if(zRevUuid!=0){
1186 *zRevUuid = rid_to_uuid(*vid);
@@ -1204,11 +1029,11 @@
1204 ** checkin=CHECKIN_NAME
1205 **
1206 ** User must have Write access to use this page.
1207 **
1208 ** Responds with the raw content of the given page. On error it
1209 ** produces a JSON response as documented for fileedit_ajax_error().
1210 **
1211 ** Extra response headers:
1212 **
1213 ** x-fileedit-file-perm: empty or "x" or "l", representing PERM_REG,
1214 ** PERM_EXE, or PERM_LINK, respectively.
@@ -1220,12 +1045,12 @@
1220 const char * zRev = 0;
1221 int vid, frid;
1222 Blob content = empty_blob;
1223 const char * zMime;
1224
1225 fileedit_get_fnci_args( &zFilename, &zRev );
1226 if(!fileedit_ajax_boostrap(0)
1227 || !fileedit_ajax_setup_filerev(zRev, 0, &vid,
1228 zFilename, &frid)){
1229 return;
1230 }
1231 zMime = mimetype_from_name(zFilename);
@@ -1255,81 +1080,10 @@
1255 }
1256 cgi_set_content_type(zMime);
1257 cgi_set_content(&content);
1258 }
1259
1260 /*
1261 ** AJAX route /fileedit?ajax=preview
1262 **
1263 ** Required query parameters:
1264 **
1265 ** filename=FILENAME
1266 ** content=text
1267 **
1268 ** Optional query parameters:
1269 **
1270 ** render_mode=integer (FE_RENDER_xxx) (default=FE_RENDER_GUESS)
1271 **
1272 ** ln=0 or 1 to disable/enable line number mode in
1273 ** FE_RENDER_PLAIN_TEXT mode.
1274 **
1275 ** iframe_height=integer (default=40) Height, in EMs of HTML preview
1276 ** iframe.
1277 **
1278 ** User must have Write access to use this page.
1279 **
1280 ** Responds with the HTML content of the preview. On error it produces
1281 ** a JSON response as documented for fileedit_ajax_error().
1282 **
1283 ** Extra response headers:
1284 **
1285 ** x-fileedit-render-mode: string representing the rendering mode
1286 ** which was really used (which will differ from the requested mode
1287 ** only if mode 0 (guess) was requested). The names are documented
1288 ** below in code and match those in the emitted JS object
1289 ** fossil.page.previewModes.
1290 */
1291 static void fileedit_ajax_preview(void){
1292 const char * zFilename = 0;
1293 const char * zContent = P("content");
1294 int renderMode = atoi(PD("render_mode","0"));
1295 int ln = atoi(PD("ln","0"));
1296 int iframeHeight = atoi(PD("iframe_height","40"));
1297 Blob content = empty_blob;
1298 const char * zRenderMode = 0;
1299 fileedit_get_fnci_args( &zFilename, 0 );
1300 if(!fileedit_ajax_boostrap(1)
1301 || !fileedit_ajax_check_filename(zFilename)){
1302 return;
1303 }
1304 cgi_set_content_type("text/html");
1305 blob_init(&content, zContent, -1);
1306 fileedit_render_preview(&content, zFilename,
1307 ln ? FE_PREVIEW_LINE_NUMBERS : 0,
1308 &renderMode, iframeHeight);
1309 /*
1310 ** Now tell the caller if we did indeed use FE_RENDER_WIKI, so that
1311 ** they can re-set the <base href> to an appropriate value (which
1312 ** requires knowing the content's current checkin version, which we
1313 ** don't have here).
1314 */
1315 switch(renderMode){
1316 /* The strings used here MUST correspond to those used in the JS-side
1317 ** fossil.page.previewModes map.
1318 */
1319 case FE_RENDER_WIKI: zRenderMode = "wiki"; break;
1320 case FE_RENDER_HTML_INLINE: zRenderMode = "htmlInline"; break;
1321 case FE_RENDER_HTML_IFRAME: zRenderMode = "htmlIframe"; break;
1322 case FE_RENDER_PLAIN_TEXT: zRenderMode = "text"; break;
1323 case FE_RENDER_GUESS:
1324 assert(!"cannot happen");
1325 }
1326 if(zRenderMode!=0){
1327 cgi_printf_header("x-fileedit-render-mode: %s\r\n", zRenderMode);
1328 }
1329 }
1330
1331 /*
1332 ** AJAX route /fileedit?ajax=diff
1333 **
1334 ** Required query parameters:
1335 **
@@ -1347,11 +1101,11 @@
1347 ** patch-style siff can be produced.
1348 **
1349 ** User must have Write access to use this page.
1350 **
1351 ** Responds with the HTML content of the diff. On error it produces a
1352 ** JSON response as documented for fileedit_ajax_error().
1353 */
1354 static void fileedit_ajax_diff(void){
1355 /*
1356 ** Reminder: we only need the filename to perform valdiation
1357 ** against fileedit_is_editable(), else this route could be
@@ -1377,22 +1131,27 @@
1377 diffFlags |= DIFF_IGNORE_ALLWS;
1378 }else if(1==iFlag){
1379 diffFlags |= DIFF_IGNORE_EOLWS;
1380 }
1381 diffFlags |= DIFF_STRIP_EOLCR;
1382 fileedit_get_fnci_args( &zFilename, &zRev );
1383 if(!fileedit_ajax_boostrap(1)
1384 || !fileedit_ajax_setup_filerev(zRev, &zRevUuid, &vid,
1385 zFilename, &frid)){
1386 return;
1387 }
1388 if(!zContent){
1389 zContent = "";
1390 }
1391 cgi_set_content_type("text/html");
1392 blob_init(&content, zContent, -1);
1393 fileedit_render_diff(&content, frid, zRevUuid, diffFlags);
 
 
 
 
 
1394 fossil_free(zRevUuid);
1395 blob_reset(&content);
1396 }
1397
1398 /*
@@ -1557,19 +1316,19 @@
1557 ** checkin: UUID,
1558 ** editableFiles: [ filename1, ... filenameN ] // sorted by name
1559 ** }
1560 **
1561 ** On error it produces a JSON response as documented for
1562 ** fileedit_ajax_error().
1563 */
1564 static void fileedit_ajax_filelist(void){
1565 const char * zCi = PD("checkin",P("ci"));
1566 Blob sql = empty_blob;
1567 Stmt q = empty_Stmt;
1568 int i = 0;
1569
1570 if(!fileedit_ajax_boostrap(0)){
1571 return;
1572 }
1573 cgi_set_content_type("application/json");
1574 if(zCi!=0){
1575 char * zCiFull = 0;
@@ -1616,11 +1375,11 @@
1616 CX("}");
1617 }
1618 CX("]");
1619 db_finalize(&q);
1620 }else{
1621 fileedit_ajax_error(500, "Unhandled URL argument.");
1622 }
1623 }
1624
1625 /*
1626 ** AJAX route /fileedit?ajax=commit
@@ -1657,11 +1416,11 @@
1657 ** dryRun: bool,
1658 ** manifest: text of manifest,
1659 ** }
1660 **
1661 ** On error it produces a JSON response as documented for
1662 ** fileedit_ajax_error().
1663 */
1664 static void fileedit_ajax_commit(void){
1665 Blob err = empty_blob; /* Error messages */
1666 Blob manifest = empty_blob; /* raw new manifest */
1667 CheckinMiniInfo cimi; /* checkin state */
@@ -1669,30 +1428,30 @@
1669 int newVid = 0; /* new version's RID */
1670 char * zNewUuid = 0; /* newVid's UUID */
1671 char const * zMimetype;
1672 char * zBranch = 0;
1673
1674 if(!fileedit_ajax_boostrap(1)){
1675 return;
1676 }
1677 db_begin_transaction();
1678 CheckinMiniInfo_init(&cimi);
1679 rc = fileedit_setup_cimi_from_p(&cimi, &err, 0);
1680 if(0!=rc){
1681 fileedit_ajax_error(rc,"%b",&err);
1682 goto end_cleanup;
1683 }
1684 if(blob_size(&cimi.comment)==0){
1685 fileedit_ajax_error(400,"Empty checkin comment is not permitted.");
1686 goto end_cleanup;
1687 }
1688 if(0!=atoi(PD("include_manifest","0"))){
1689 cimi.pMfOut = &manifest;
1690 }
1691 checkin_mini(&cimi, &newVid, &err);
1692 if(blob_size(&err)){
1693 fileedit_ajax_error(500,"%b",&err);
1694 goto end_cleanup;
1695 }
1696 assert(newVid>0);
1697 zNewUuid = rid_to_uuid(newVid);
1698 cgi_set_content_type("application/json");
@@ -1747,21 +1506,20 @@
1747 ** use of the name parameter.
1748 **
1749 ** Which additional parameters are used by each distinct ajax value is
1750 ** an internal implementation detail and may change with any given
1751 ** build of this code. An unknown "name" value triggers an error, as
1752 ** documented for fileedit_ajax_error().
1753 */
1754 void fileedit_page(void){
1755 const char * zFilename = 0; /* filename. We'll accept 'name'
1756 because that param is handled
1757 specially by the core. */
1758 const char * zRev = 0; /* checkin version */
1759 const char * zFileMime = 0; /* File mime type guess */
1760 CheckinMiniInfo cimi; /* Checkin state */
1761 int previewHtmlHeight = 0; /* iframe height (EMs) */
1762 int previewRenderMode = FE_RENDER_GUESS; /* preview mode */
1763 Blob err = empty_blob; /* Error report */
1764 Blob endScript = empty_blob; /* Script code to run at the
1765 end. This content will be
1766 combined into a single JS
1767 function call, thus each
@@ -1772,21 +1530,21 @@
1772
1773 /* Allow no access to this page without check-in privilege */
1774 login_check_credentials();
1775 if( !g.perm.Write ){
1776 if(zAjax!=0){
1777 fileedit_ajax_error(403, "Write permissions required.");
1778 }else{
1779 login_needed(g.anon.Write);
1780 }
1781 return;
1782 }
1783 /* No access to anything on this page if the fileedit-glob is empty */
1784 if( fileedit_glob()==0 ){
1785 if(zAjax!=0){
1786 fileedit_ajax_error(403, "Online editing is disabled for this "
1787 "repository.");
1788 return;
1789 }
1790 style_header("File Editor (disabled)");
1791 CX("<h1>Online File Editing Is Disabled</h1>\n");
1792 if( g.perm.Admin ){
@@ -1806,22 +1564,21 @@
1806 /* Dispatch AJAX methods based tail of the request URI.
1807 ** The AJAX parts do their own permissions/CSRF check and
1808 ** fail with a JSON-format response if needed.
1809 */
1810 if( 0!=zAjax ){
 
1811 if(0==strcmp("content",zAjax)){
1812 fileedit_ajax_content();
1813 }else if(0==strcmp("preview",zAjax)){
1814 fileedit_ajax_preview();
1815 }else if(0==strcmp("filelist",zAjax)){
1816 fileedit_ajax_filelist();
1817 }else if(0==strcmp("diff",zAjax)){
1818 fileedit_ajax_diff();
1819 }else if(0==strcmp("commit",zAjax)){
1820 fileedit_ajax_commit();
1821 }else{
1822 fileedit_ajax_error(500, "Unhandled ajax route name.");
1823 }
1824 return;
1825 }
1826
1827 db_begin_transaction();
@@ -1854,21 +1611,19 @@
1854 ** render the errors. Any up-coming errors, barring malloc failure
1855 ** or similar, are not "that" fatal. We can/should continue
1856 ** rendering the page, then output the error message at the end.
1857 ********************************************************************/
1858
1859 {
1860 /* The CSS for this page lives in a common file but much of it we
1861 ** don't want inadvertently being used by other pages. We don't
1862 ** have a common, page-specific container we can filter our CSS
1863 ** selectors, but we do have the BODY, which we can decorate with
1864 ** whatever CSS we wish...
1865 */
1866 style_emit_script_tag(0,0);
1867 CX("document.body.classList.add('fileedit');\n");
1868 style_emit_script_tag(1,0);
1869 }
1870
1871 /* Status bar */
1872 CX("<div id='fossil-status-bar' "
1873 "title='Status message area. Double-click to clear them.'>"
1874 "Status messages will go here.</div>\n"
@@ -1947,46 +1702,30 @@
1947 "If on, the preview will automatically "
1948 "refresh when this tab is selected.");
1949
1950 /* Default preview rendering mode selection... */
1951 previewRenderMode = zFileMime
1952 ? fileedit_render_mode_for_mimetype(zFileMime)
1953 : FE_RENDER_GUESS;
1954 style_select_list_int("select-preview-mode",
1955 "preview_render_mode",
1956 "Preview Mode",
1957 "Preview mode format.",
1958 previewRenderMode,
1959 "Guess", FE_RENDER_GUESS,
1960 "Wiki/Markdown", FE_RENDER_WIKI,
1961 "HTML (iframe)", FE_RENDER_HTML_IFRAME,
1962 "HTML (inline)", FE_RENDER_HTML_INLINE,
1963 "Plain Text", FE_RENDER_PLAIN_TEXT,
1964 NULL);
1965 /*
1966 ** Set up a JS-side mapping of the FE_RENDER_xyz values. This is
1967 ** used for dynamically toggling certain UI components on and off.
1968 */
1969 blob_appendf(&endScript, "fossil.page.previewModes={"
1970 "guess: %d, %d: 'guess', wiki: %d, %d: 'wiki',"
1971 "htmlIframe: %d, %d: 'htmlIframe', "
1972 "htmlInline: %d, %d: 'htmlInline', "
1973 "text: %d, %d: 'text'"
1974 "};\n",
1975 FE_RENDER_GUESS, FE_RENDER_GUESS,
1976 FE_RENDER_WIKI, FE_RENDER_WIKI,
1977 FE_RENDER_HTML_IFRAME, FE_RENDER_HTML_IFRAME,
1978 FE_RENDER_HTML_INLINE, FE_RENDER_HTML_INLINE,
1979 FE_RENDER_PLAIN_TEXT, FE_RENDER_PLAIN_TEXT);
1980 /* Allow selection of HTML preview iframe height */
1981 previewHtmlHeight = 40;
1982 style_select_list_int("select-preview-html-ems",
1983 "preview_html_ems",
1984 "HTML Preview IFrame Height (EMs)",
1985 "Height (in EMs) of the iframe used for "
1986 "HTML preview",
1987 previewHtmlHeight,
1988 "", 20, "", 40,
1989 "", 60, "", 80,
1990 "", 100, NULL);
1991 /* Selection of line numbers for text preview */
1992 style_labeled_checkbox("cb-line-numbers",
@@ -2188,28 +1927,28 @@
2188 {
2189 /* Dynamically populate the editor, display any error in the err
2190 ** blob, and/or switch to tab #0, where the file selector
2191 ** lives... */
2192 blob_appendf(&endScript,
2193 "window.addEventListener('load',");
2194 if(zRev && zFilename){
2195 assert(0==blob_size(&err));
2196 blob_appendf(&endScript,
2197 "()=>fossil.page.loadFile(%!j,%!j)",
2198 zFilename, cimi.zParentUuid);
2199 }else{
2200 blob_appendf(&endScript,"function(){");
2201 if(blob_size(&err)>0){
2202 blob_appendf(&endScript,
2203 "fossil.error(%!j);\n",
2204 blob_str(&err));
2205 }
2206 blob_appendf(&endScript,
2207 "fossil.page.tabs.switchToTab(0);\n");
2208 blob_appendf(&endScript,"}");
2209 }
2210 blob_appendf(&endScript,", false);\n");
2211 }
2212
2213 blob_reset(&err);
2214 CheckinMiniInfo_cleanup(&cimi);
2215 style_emit_script_fossil_bootstrap(0);
@@ -2216,21 +1955,28 @@
2216 append_diff_javascript(1);
2217 style_emit_script_fetch(0);
2218 style_emit_script_tabs(0)/*also emits fossil.dom*/;
2219 style_emit_script_confirmer(0);
2220 style_emit_script_builtin(0, "fossil.storage.js");
 
 
 
 
 
 
 
 
2221 style_emit_script_builtin(0, "fossil.page.fileedit.js");
2222 if(blob_size(&endScript)>0){
2223 style_emit_script_tag(0,0);
2224 CX("(function(){\n");
2225 CX("try{\n%b\n}"
2226 "catch(e){"
2227 "fossil.error(e);\n"
2228 "console.error('Exception:',e);\n"
2229 "}\n",
2230 &endScript);
2231 CX("})();");
2232 style_emit_script_tag(1,0);
2233 }
2234 db_end_transaction(0);
2235 style_footer();
2236 }
2237
--- src/fileedit.c
+++ src/fileedit.c
@@ -919,111 +919,10 @@
919 }else{
920 return 0;
921 }
922 }
923
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
924 /*
925 ** Given a repo-relative filename and a manifest RID, returns the UUID
926 ** of the corresponding file entry. Returns NULL if no match is
927 ** found. If pFilePerm is not NULL, the file's permission flag value
928 ** is written to *pFilePerm.
@@ -1043,99 +942,25 @@
942 }
943 db_finalize(&stmt);
944 return zFileUuid;
945 }
946
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
947 /*
948 ** Returns true if the current user is allowed to edit the given
949 ** filename, as determined by fileedit_is_editable(), else false,
950 ** in which case it queues up an error response and the caller
951 ** must return immediately.
952 */
953 static int fileedit_ajax_check_filename(const char * zFilename){
954 if(0==fileedit_is_editable(zFilename)){
955 ajax_route_error(403, "File is disallowed by the "
956 "fileedit-glob setting.");
957 return 0;
958 }
959 return 1;
960 }
961
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
962 /*
963 ** Passed the values of the "checkin" and "filename" request
964 ** properties, this function verifies that they are valid and
965 ** populates:
966 **
@@ -1157,30 +982,30 @@
982 static int fileedit_ajax_setup_filerev(const char * zRev,
983 char ** zRevUuid,
984 int * vid,
985 const char * zFilename,
986 int * frid){
987 char * zFileUuid = 0; /* file content UUID */
988 const int checkFile = zFilename!=0 || frid!=0;
989
990 if(checkFile && !fileedit_ajax_check_filename(zFilename)){
991 return 0;
992 }
993 *vid = symbolic_name_to_rid(zRev, "ci");
994 if(0==*vid){
995 ajax_route_error(404,"Cannot resolve name as a checkin: %s",
996 zRev);
997 return 0;
998 }else if(*vid<0){
999 ajax_route_error(400,"Checkin name is ambiguous: %s",
1000 zRev);
1001 return 0;
1002 }
1003 if(checkFile){
1004 zFileUuid = fileedit_file_uuid(zFilename, *vid, 0);
1005 if(zFileUuid==0){
1006 ajax_route_error(404, "Checkin does not contain file.");
1007 return 0;
1008 }
1009 }
1010 if(zRevUuid!=0){
1011 *zRevUuid = rid_to_uuid(*vid);
@@ -1204,11 +1029,11 @@
1029 ** checkin=CHECKIN_NAME
1030 **
1031 ** User must have Write access to use this page.
1032 **
1033 ** Responds with the raw content of the given page. On error it
1034 ** produces a JSON response as documented for ajax_route_error().
1035 **
1036 ** Extra response headers:
1037 **
1038 ** x-fileedit-file-perm: empty or "x" or "l", representing PERM_REG,
1039 ** PERM_EXE, or PERM_LINK, respectively.
@@ -1220,12 +1045,12 @@
1045 const char * zRev = 0;
1046 int vid, frid;
1047 Blob content = empty_blob;
1048 const char * zMime;
1049
1050 ajax_get_fnci_args( &zFilename, &zRev );
1051 if(!ajax_route_bootstrap(1,0)
1052 || !fileedit_ajax_setup_filerev(zRev, 0, &vid,
1053 zFilename, &frid)){
1054 return;
1055 }
1056 zMime = mimetype_from_name(zFilename);
@@ -1255,81 +1080,10 @@
1080 }
1081 cgi_set_content_type(zMime);
1082 cgi_set_content(&content);
1083 }
1084
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1085 /*
1086 ** AJAX route /fileedit?ajax=diff
1087 **
1088 ** Required query parameters:
1089 **
@@ -1347,11 +1101,11 @@
1101 ** patch-style siff can be produced.
1102 **
1103 ** User must have Write access to use this page.
1104 **
1105 ** Responds with the HTML content of the diff. On error it produces a
1106 ** JSON response as documented for ajax_route_error().
1107 */
1108 static void fileedit_ajax_diff(void){
1109 /*
1110 ** Reminder: we only need the filename to perform valdiation
1111 ** against fileedit_is_editable(), else this route could be
@@ -1377,22 +1131,27 @@
1131 diffFlags |= DIFF_IGNORE_ALLWS;
1132 }else if(1==iFlag){
1133 diffFlags |= DIFF_IGNORE_EOLWS;
1134 }
1135 diffFlags |= DIFF_STRIP_EOLCR;
1136 ajax_get_fnci_args( &zFilename, &zRev );
1137 if(!ajax_route_bootstrap(1,1)
1138 || !fileedit_ajax_setup_filerev(zRev, &zRevUuid, &vid,
1139 zFilename, &frid)){
1140 return;
1141 }
1142 if(!zContent){
1143 zContent = "";
1144 }
1145 cgi_set_content_type("text/html");
1146 blob_init(&content, zContent, -1);
1147 {
1148 Blob orig = empty_blob;
1149 content_get(frid, &orig);
1150 ajax_render_diff(&orig, &content, diffFlags);
1151 blob_reset(&orig);
1152 }
1153 fossil_free(zRevUuid);
1154 blob_reset(&content);
1155 }
1156
1157 /*
@@ -1557,19 +1316,19 @@
1316 ** checkin: UUID,
1317 ** editableFiles: [ filename1, ... filenameN ] // sorted by name
1318 ** }
1319 **
1320 ** On error it produces a JSON response as documented for
1321 ** ajax_route_error().
1322 */
1323 static void fileedit_ajax_filelist(void){
1324 const char * zCi = PD("checkin",P("ci"));
1325 Blob sql = empty_blob;
1326 Stmt q = empty_Stmt;
1327 int i = 0;
1328
1329 if(!ajax_route_bootstrap(1,0)){
1330 return;
1331 }
1332 cgi_set_content_type("application/json");
1333 if(zCi!=0){
1334 char * zCiFull = 0;
@@ -1616,11 +1375,11 @@
1375 CX("}");
1376 }
1377 CX("]");
1378 db_finalize(&q);
1379 }else{
1380 ajax_route_error(500, "Unhandled URL argument.");
1381 }
1382 }
1383
1384 /*
1385 ** AJAX route /fileedit?ajax=commit
@@ -1657,11 +1416,11 @@
1416 ** dryRun: bool,
1417 ** manifest: text of manifest,
1418 ** }
1419 **
1420 ** On error it produces a JSON response as documented for
1421 ** ajax_route_error().
1422 */
1423 static void fileedit_ajax_commit(void){
1424 Blob err = empty_blob; /* Error messages */
1425 Blob manifest = empty_blob; /* raw new manifest */
1426 CheckinMiniInfo cimi; /* checkin state */
@@ -1669,30 +1428,30 @@
1428 int newVid = 0; /* new version's RID */
1429 char * zNewUuid = 0; /* newVid's UUID */
1430 char const * zMimetype;
1431 char * zBranch = 0;
1432
1433 if(!ajax_route_bootstrap(1,1)){
1434 return;
1435 }
1436 db_begin_transaction();
1437 CheckinMiniInfo_init(&cimi);
1438 rc = fileedit_setup_cimi_from_p(&cimi, &err, 0);
1439 if(0!=rc){
1440 ajax_route_error(rc,"%b",&err);
1441 goto end_cleanup;
1442 }
1443 if(blob_size(&cimi.comment)==0){
1444 ajax_route_error(400,"Empty checkin comment is not permitted.");
1445 goto end_cleanup;
1446 }
1447 if(0!=atoi(PD("include_manifest","0"))){
1448 cimi.pMfOut = &manifest;
1449 }
1450 checkin_mini(&cimi, &newVid, &err);
1451 if(blob_size(&err)){
1452 ajax_route_error(500,"%b",&err);
1453 goto end_cleanup;
1454 }
1455 assert(newVid>0);
1456 zNewUuid = rid_to_uuid(newVid);
1457 cgi_set_content_type("application/json");
@@ -1747,21 +1506,20 @@
1506 ** use of the name parameter.
1507 **
1508 ** Which additional parameters are used by each distinct ajax value is
1509 ** an internal implementation detail and may change with any given
1510 ** build of this code. An unknown "name" value triggers an error, as
1511 ** documented for ajax_route_error().
1512 */
1513 void fileedit_page(void){
1514 const char * zFilename = 0; /* filename. We'll accept 'name'
1515 because that param is handled
1516 specially by the core. */
1517 const char * zRev = 0; /* checkin version */
1518 const char * zFileMime = 0; /* File mime type guess */
1519 CheckinMiniInfo cimi; /* Checkin state */
1520 int previewRenderMode = AJAX_RENDER_GUESS; /* preview mode */
 
1521 Blob err = empty_blob; /* Error report */
1522 Blob endScript = empty_blob; /* Script code to run at the
1523 end. This content will be
1524 combined into a single JS
1525 function call, thus each
@@ -1772,21 +1530,21 @@
1530
1531 /* Allow no access to this page without check-in privilege */
1532 login_check_credentials();
1533 if( !g.perm.Write ){
1534 if(zAjax!=0){
1535 ajax_route_error(403, "Write permissions required.");
1536 }else{
1537 login_needed(g.anon.Write);
1538 }
1539 return;
1540 }
1541 /* No access to anything on this page if the fileedit-glob is empty */
1542 if( fileedit_glob()==0 ){
1543 if(zAjax!=0){
1544 ajax_route_error(403, "Online editing is disabled for this "
1545 "repository.");
1546 return;
1547 }
1548 style_header("File Editor (disabled)");
1549 CX("<h1>Online File Editing Is Disabled</h1>\n");
1550 if( g.perm.Admin ){
@@ -1806,22 +1564,21 @@
1564 /* Dispatch AJAX methods based tail of the request URI.
1565 ** The AJAX parts do their own permissions/CSRF check and
1566 ** fail with a JSON-format response if needed.
1567 */
1568 if( 0!=zAjax ){
1569 /* preview mode is handled via /ajax/preview-text */
1570 if(0==strcmp("content",zAjax)){
1571 fileedit_ajax_content();
 
 
1572 }else if(0==strcmp("filelist",zAjax)){
1573 fileedit_ajax_filelist();
1574 }else if(0==strcmp("diff",zAjax)){
1575 fileedit_ajax_diff();
1576 }else if(0==strcmp("commit",zAjax)){
1577 fileedit_ajax_commit();
1578 }else{
1579 ajax_route_error(500, "Unhandled ajax route name.");
1580 }
1581 return;
1582 }
1583
1584 db_begin_transaction();
@@ -1854,21 +1611,19 @@
1611 ** render the errors. Any up-coming errors, barring malloc failure
1612 ** or similar, are not "that" fatal. We can/should continue
1613 ** rendering the page, then output the error message at the end.
1614 ********************************************************************/
1615
1616 /* The CSS for this page lives in a common file but much of it we
1617 ** don't want inadvertently being used by other pages. We don't
1618 ** have a common, page-specific container we can filter our CSS
1619 ** selectors, but we do have the BODY, which we can decorate with
1620 ** whatever CSS we wish...
1621 */
1622 style_emit_script_tag(0,0);
1623 CX("document.body.classList.add('fileedit');\n");
1624 style_emit_script_tag(1,0);
 
 
1625
1626 /* Status bar */
1627 CX("<div id='fossil-status-bar' "
1628 "title='Status message area. Double-click to clear them.'>"
1629 "Status messages will go here.</div>\n"
@@ -1947,46 +1702,30 @@
1702 "If on, the preview will automatically "
1703 "refresh when this tab is selected.");
1704
1705 /* Default preview rendering mode selection... */
1706 previewRenderMode = zFileMime
1707 ? ajax_render_mode_for_mimetype(zFileMime)
1708 : AJAX_RENDER_GUESS;
1709 style_select_list_int("select-preview-mode",
1710 "preview_render_mode",
1711 "Preview Mode",
1712 "Preview mode format.",
1713 previewRenderMode,
1714 "Guess", AJAX_RENDER_GUESS,
1715 "Wiki/Markdown", AJAX_RENDER_WIKI,
1716 "HTML (iframe)", AJAX_RENDER_HTML_IFRAME,
1717 "HTML (inline)", AJAX_RENDER_HTML_INLINE,
1718 "Plain Text", AJAX_RENDER_PLAIN_TEXT,
1719 NULL);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1720 /* Allow selection of HTML preview iframe height */
 
1721 style_select_list_int("select-preview-html-ems",
1722 "preview_html_ems",
1723 "HTML Preview IFrame Height (EMs)",
1724 "Height (in EMs) of the iframe used for "
1725 "HTML preview",
1726 40 /*default*/,
1727 "", 20, "", 40,
1728 "", 60, "", 80,
1729 "", 100, NULL);
1730 /* Selection of line numbers for text preview */
1731 style_labeled_checkbox("cb-line-numbers",
@@ -2188,28 +1927,28 @@
1927 {
1928 /* Dynamically populate the editor, display any error in the err
1929 ** blob, and/or switch to tab #0, where the file selector
1930 ** lives... */
1931 blob_appendf(&endScript,
1932 "fossil.onPageLoad(");
1933 if(zRev && zFilename){
1934 assert(0==blob_size(&err));
1935 blob_appendf(&endScript,
1936 "()=>fossil.page.loadFile(%!j,%!j)",
1937 zFilename, cimi.zParentUuid);
1938 }else{
1939 blob_appendf(&endScript,"function(){\n");
1940 if(blob_size(&err)>0){
1941 blob_appendf(&endScript,
1942 "fossil.error(%!j);\n",
1943 blob_str(&err));
1944 }
1945 blob_appendf(&endScript,
1946 "fossil.page.tabs.switchToTab(0);\n");
1947 blob_appendf(&endScript,"}");
1948 }
1949 blob_appendf(&endScript,");\n");
1950 }
1951
1952 blob_reset(&err);
1953 CheckinMiniInfo_cleanup(&cimi);
1954 style_emit_script_fossil_bootstrap(0);
@@ -2216,21 +1955,28 @@
1955 append_diff_javascript(1);
1956 style_emit_script_fetch(0);
1957 style_emit_script_tabs(0)/*also emits fossil.dom*/;
1958 style_emit_script_confirmer(0);
1959 style_emit_script_builtin(0, "fossil.storage.js");
1960
1961 /*
1962 ** Set up a JS-side mapping of the AJAX_RENDER_xyz values. This is
1963 ** used for dynamically toggling certain UI components on and off.
1964 ** Must come before fossil.page.fileedit.js.
1965 */
1966 ajax_emit_js_preview_modes(1);
1967
1968 style_emit_script_builtin(0, "fossil.page.fileedit.js");
1969 if(blob_size(&endScript)>0){
1970 style_emit_script_tag(0,0);
1971 CX("\n(function(){\n");
1972 CX("try{\n%b}\n"
1973 "catch(e){"
1974 "fossil.error(e); console.error('Exception:',e);"
 
1975 "}\n",
1976 &endScript);
1977 CX("})();");
1978 style_emit_script_tag(1,0);
1979 }
1980 db_end_transaction(0);
1981 style_footer();
1982 }
1983
+1 -1
--- src/forum.c
+++ src/forum.c
@@ -340,10 +340,11 @@
340340
}else{
341341
@ <div class='forumPostFullBody'>
342342
}
343343
blob_init(&x, 0, 0);
344344
blob_append(&x, zContent, -1);
345
+ safe_html_context(DOCSRC_FORUM);
345346
wiki_render_by_mimetype(&x, zMimetype);
346347
blob_reset(&x);
347348
@ </div>
348349
}else{
349350
@ <i>Deleted</i>
@@ -667,11 +668,10 @@
667668
@ <div id='forum%d(fpid)' class='forumHierRoot%s(zSel)'>
668669
}else{
669670
@ <div id='forum%d(fpid)' class='forumHier%s(zSel)' \
670671
@ style='margin-left: %d((p->nIndent-1)*iIndentScale)ex;'>
671672
}
672
- pPost = manifest_get(fpid, CFTYPE_FORUM, 0);
673673
if( pPost==0 ) continue;
674674
if( pPost->zThreadTitle ){
675675
@ <h1>%h(pPost->zThreadTitle)</h1>
676676
}
677677
zDate = db_text(0, "SELECT datetime(%.17g)", pOPost->rDate);
678678
--- src/forum.c
+++ src/forum.c
@@ -340,10 +340,11 @@
340 }else{
341 @ <div class='forumPostFullBody'>
342 }
343 blob_init(&x, 0, 0);
344 blob_append(&x, zContent, -1);
 
345 wiki_render_by_mimetype(&x, zMimetype);
346 blob_reset(&x);
347 @ </div>
348 }else{
349 @ <i>Deleted</i>
@@ -667,11 +668,10 @@
667 @ <div id='forum%d(fpid)' class='forumHierRoot%s(zSel)'>
668 }else{
669 @ <div id='forum%d(fpid)' class='forumHier%s(zSel)' \
670 @ style='margin-left: %d((p->nIndent-1)*iIndentScale)ex;'>
671 }
672 pPost = manifest_get(fpid, CFTYPE_FORUM, 0);
673 if( pPost==0 ) continue;
674 if( pPost->zThreadTitle ){
675 @ <h1>%h(pPost->zThreadTitle)</h1>
676 }
677 zDate = db_text(0, "SELECT datetime(%.17g)", pOPost->rDate);
678
--- src/forum.c
+++ src/forum.c
@@ -340,10 +340,11 @@
340 }else{
341 @ <div class='forumPostFullBody'>
342 }
343 blob_init(&x, 0, 0);
344 blob_append(&x, zContent, -1);
345 safe_html_context(DOCSRC_FORUM);
346 wiki_render_by_mimetype(&x, zMimetype);
347 blob_reset(&x);
348 @ </div>
349 }else{
350 @ <i>Deleted</i>
@@ -667,11 +668,10 @@
668 @ <div id='forum%d(fpid)' class='forumHierRoot%s(zSel)'>
669 }else{
670 @ <div id='forum%d(fpid)' class='forumHier%s(zSel)' \
671 @ style='margin-left: %d((p->nIndent-1)*iIndentScale)ex;'>
672 }
 
673 if( pPost==0 ) continue;
674 if( pPost->zThreadTitle ){
675 @ <h1>%h(pPost->zThreadTitle)</h1>
676 }
677 zDate = db_text(0, "SELECT datetime(%.17g)", pOPost->rDate);
678
--- src/fossil.page.fileedit.js
+++ src/fossil.page.fileedit.js
@@ -1104,13 +1104,13 @@
11041104
fd.append('ln',E('[name=preview_ln]').checked ? 1 : 0);
11051105
fd.append('iframe_height', E('[name=preview_html_ems]').value);
11061106
fd.append('content',content || '');
11071107
F.message(
11081108
"Fetching preview..."
1109
- ).fetch('fileedit/preview',{
1109
+ ).fetch('ajax/preview-text',{
11101110
payload: fd,
1111
- responseHeaders: 'x-fileedit-render-mode',
1111
+ responseHeaders: 'x-ajax-render-mode',
11121112
onload: (r,header)=>{
11131113
P.selectPreviewMode(P.previewModes[header]);
11141114
if('wiki'===header) P.baseHrefForFile();
11151115
else P.baseHrefRestore();
11161116
callback(r);
11171117
--- src/fossil.page.fileedit.js
+++ src/fossil.page.fileedit.js
@@ -1104,13 +1104,13 @@
1104 fd.append('ln',E('[name=preview_ln]').checked ? 1 : 0);
1105 fd.append('iframe_height', E('[name=preview_html_ems]').value);
1106 fd.append('content',content || '');
1107 F.message(
1108 "Fetching preview..."
1109 ).fetch('fileedit/preview',{
1110 payload: fd,
1111 responseHeaders: 'x-fileedit-render-mode',
1112 onload: (r,header)=>{
1113 P.selectPreviewMode(P.previewModes[header]);
1114 if('wiki'===header) P.baseHrefForFile();
1115 else P.baseHrefRestore();
1116 callback(r);
1117
--- src/fossil.page.fileedit.js
+++ src/fossil.page.fileedit.js
@@ -1104,13 +1104,13 @@
1104 fd.append('ln',E('[name=preview_ln]').checked ? 1 : 0);
1105 fd.append('iframe_height', E('[name=preview_html_ems]').value);
1106 fd.append('content',content || '');
1107 F.message(
1108 "Fetching preview..."
1109 ).fetch('ajax/preview-text',{
1110 payload: fd,
1111 responseHeaders: 'x-ajax-render-mode',
1112 onload: (r,header)=>{
1113 P.selectPreviewMode(P.previewModes[header]);
1114 if('wiki'===header) P.baseHrefForFile();
1115 else P.baseHrefRestore();
1116 callback(r);
1117
+95 -4
--- src/graph.c
+++ src/graph.c
@@ -56,10 +56,11 @@
5656
struct GraphRow {
5757
int rid; /* The rid for the check-in */
5858
i8 nParent; /* Number of parents. */
5959
i8 nCherrypick; /* Subset of aParent that are cherrypicks */
6060
i8 nNonCherrypick; /* Number of non-cherrypick parents */
61
+ u8 nMergeChild; /* Number of merge children */
6162
int *aParent; /* Array of parents. 0 element is primary .*/
6263
char *zBranch; /* Branch name */
6364
char *zBgClr; /* Background Color */
6465
char zUuid[HNAME_MAX+1]; /* Check-in for file ID */
6566
@@ -472,11 +473,12 @@
472473
** the aParent[] array.
473474
*/
474475
if( (tmFlags & (TIMELINE_DISJOINT|TIMELINE_XMERGE))!=0 ){
475476
for(pRow=p->pFirst; pRow; pRow=pRow->pNext){
476477
for(i=1; i<pRow->nParent; i++){
477
- if( hashFind(p, pRow->aParent[i])==0 ){
478
+ GraphRow *pParent = hashFind(p, pRow->aParent[i]);
479
+ if( pParent==0 ){
478480
memmove(pRow->aParent+i, pRow->aParent+i+1,
479481
sizeof(pRow->aParent[0])*(pRow->nParent-i-1));
480482
pRow->nParent--;
481483
if( i<pRow->nNonCherrypick ){
482484
pRow->nNonCherrypick--;
@@ -486,10 +488,62 @@
486488
i--;
487489
}
488490
}
489491
}
490492
}
493
+
494
+ /* Put the deepest (earliest) merge parent first in the list.
495
+ ** An off-screen merge parent is considered deepest.
496
+ */
497
+ for(pRow=p->pFirst; pRow; pRow=pRow->pNext ){
498
+ if( pRow->nParent<=1 ) continue;
499
+ for(i=1; i<pRow->nParent; i++){
500
+ GraphRow *pParent = hashFind(p, pRow->aParent[i]);
501
+ if( pParent ) pParent->nMergeChild++;
502
+ }
503
+ if( pRow->nCherrypick>1 ){
504
+ int iBest = -1;
505
+ int iDeepest = -1;
506
+ for(i=pRow->nNonCherrypick; i<pRow->nParent; i++){
507
+ GraphRow *pParent = hashFind(p, pRow->aParent[i]);
508
+ if( pParent==0 ){
509
+ iBest = i;
510
+ break;
511
+ }
512
+ if( pParent->idx>iDeepest ){
513
+ iDeepest = pParent->idx;
514
+ iBest = i;
515
+ }
516
+ }
517
+ i = pRow->nNonCherrypick;
518
+ if( iBest>i ){
519
+ int x = pRow->aParent[i];
520
+ pRow->aParent[i] = pRow->aParent[iBest];
521
+ pRow->aParent[iBest] = x;
522
+ }
523
+ }
524
+ if( pRow->nNonCherrypick>2 ){
525
+ int iBest = -1;
526
+ int iDeepest = -1;
527
+ for(i=1; i<pRow->nNonCherrypick; i++){
528
+ GraphRow *pParent = hashFind(p, pRow->aParent[i]);
529
+ if( pParent==0 ){
530
+ iBest = i;
531
+ break;
532
+ }
533
+ if( pParent->idx>iDeepest ){
534
+ iDeepest = pParent->idx;
535
+ iBest = i;
536
+ }
537
+ }
538
+ if( iBest>1 ){
539
+ int x = pRow->aParent[1];
540
+ pRow->aParent[1] = pRow->aParent[iBest];
541
+ pRow->aParent[iBest] = x;
542
+ }
543
+ }
544
+ }
491545
492546
/* If the primary parent is in a different branch, but there are
493547
** other parents in the same branch, reorder the parents to make
494548
** the parent from the same branch the primary parent.
495549
*/
@@ -668,15 +722,29 @@
668722
669723
/*
670724
** Insert merge rails and merge arrows
671725
*/
672726
for(pRow=p->pFirst; pRow; pRow=pRow->pNext){
727
+ int iReuseIdx = -1;
728
+ int iReuseRail = -1;
729
+ int isCherrypick = 0;
673730
for(i=1; i<pRow->nParent; i++){
674731
int parentRid = pRow->aParent[i];
732
+ if( i==pRow->nNonCherrypick ){
733
+ /* Because full merges are laid out before cherrypicks,
734
+ ** it is ok to use a full-merge raise for a cherrypick.
735
+ ** See the graph on check-in 8ac66ef33b464d28 for example
736
+ ** iReuseIdx = -1;
737
+ ** iReuseRail = -1; */
738
+ isCherrypick = 1;
739
+ }
675740
pDesc = hashFind(p, parentRid);
676741
if( pDesc==0 ){
677742
/* Merge from a node that is off-screen */
743
+ if( iReuseIdx>=p->nRow+1 ){
744
+ continue; /* Suppress multiple off-screen merges */
745
+ }
678746
int iMrail = -1;
679747
for(j=0; j<GR_MAX_RAIL; j++){
680748
if( mergeRiserFrom[j]==parentRid ){
681749
iMrail = j;
682750
break;
@@ -685,10 +753,12 @@
685753
if( iMrail==-1 ){
686754
iMrail = findFreeRail(p, pRow->idx, p->pLast->idx, 0);
687755
if( p->mxRail>=GR_MAX_RAIL ) return;
688756
mergeRiserFrom[iMrail] = parentRid;
689757
}
758
+ iReuseIdx = p->nRow+1;
759
+ iReuseRail = iMrail;
690760
mask = BIT(iMrail);
691761
if( i>=pRow->nNonCherrypick ){
692762
pRow->mergeIn[iMrail] = 2;
693763
pRow->cherrypickDown |= mask;
694764
}else{
@@ -697,13 +767,34 @@
697767
}
698768
for(pLoop=pRow->pNext; pLoop; pLoop=pLoop->pNext){
699769
pLoop->railInUse |= mask;
700770
}
701771
}else{
702
- /* Merge from an on-screen node */
703
- createMergeRiser(p, pDesc, pRow, i>=pRow->nNonCherrypick);
704
- if( p->mxRail>=GR_MAX_RAIL ) return;
772
+ /* The merge parent node does exist on this graph */
773
+ if( iReuseIdx>pDesc->idx
774
+ && pDesc->nMergeChild==1
775
+ ){
776
+ /* Reuse an existing merge riser */
777
+ pDesc->mergeOut = iReuseRail;
778
+ if( isCherrypick ){
779
+ pDesc->cherrypickUpto = pDesc->idx;
780
+ }else{
781
+ pDesc->hasNormalOutMerge = 1;
782
+ pDesc->mergeUpto = pDesc->idx;
783
+ }
784
+ }else{
785
+ /* Create a new merge for an on-screen node */
786
+ createMergeRiser(p, pDesc, pRow, isCherrypick);
787
+ if( p->mxRail>=GR_MAX_RAIL ) return;
788
+ if( iReuseIdx<0
789
+ && pDesc->nMergeChild==1
790
+ && (pDesc->iRail!=pDesc->mergeOut || pDesc->isLeaf)
791
+ ){
792
+ iReuseIdx = pDesc->idx;
793
+ iReuseRail = pDesc->mergeOut;
794
+ }
795
+ }
705796
}
706797
}
707798
}
708799
709800
/*
710801
--- src/graph.c
+++ src/graph.c
@@ -56,10 +56,11 @@
56 struct GraphRow {
57 int rid; /* The rid for the check-in */
58 i8 nParent; /* Number of parents. */
59 i8 nCherrypick; /* Subset of aParent that are cherrypicks */
60 i8 nNonCherrypick; /* Number of non-cherrypick parents */
 
61 int *aParent; /* Array of parents. 0 element is primary .*/
62 char *zBranch; /* Branch name */
63 char *zBgClr; /* Background Color */
64 char zUuid[HNAME_MAX+1]; /* Check-in for file ID */
65
@@ -472,11 +473,12 @@
472 ** the aParent[] array.
473 */
474 if( (tmFlags & (TIMELINE_DISJOINT|TIMELINE_XMERGE))!=0 ){
475 for(pRow=p->pFirst; pRow; pRow=pRow->pNext){
476 for(i=1; i<pRow->nParent; i++){
477 if( hashFind(p, pRow->aParent[i])==0 ){
 
478 memmove(pRow->aParent+i, pRow->aParent+i+1,
479 sizeof(pRow->aParent[0])*(pRow->nParent-i-1));
480 pRow->nParent--;
481 if( i<pRow->nNonCherrypick ){
482 pRow->nNonCherrypick--;
@@ -486,10 +488,62 @@
486 i--;
487 }
488 }
489 }
490 }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
491
492 /* If the primary parent is in a different branch, but there are
493 ** other parents in the same branch, reorder the parents to make
494 ** the parent from the same branch the primary parent.
495 */
@@ -668,15 +722,29 @@
668
669 /*
670 ** Insert merge rails and merge arrows
671 */
672 for(pRow=p->pFirst; pRow; pRow=pRow->pNext){
 
 
 
673 for(i=1; i<pRow->nParent; i++){
674 int parentRid = pRow->aParent[i];
 
 
 
 
 
 
 
 
675 pDesc = hashFind(p, parentRid);
676 if( pDesc==0 ){
677 /* Merge from a node that is off-screen */
 
 
 
678 int iMrail = -1;
679 for(j=0; j<GR_MAX_RAIL; j++){
680 if( mergeRiserFrom[j]==parentRid ){
681 iMrail = j;
682 break;
@@ -685,10 +753,12 @@
685 if( iMrail==-1 ){
686 iMrail = findFreeRail(p, pRow->idx, p->pLast->idx, 0);
687 if( p->mxRail>=GR_MAX_RAIL ) return;
688 mergeRiserFrom[iMrail] = parentRid;
689 }
 
 
690 mask = BIT(iMrail);
691 if( i>=pRow->nNonCherrypick ){
692 pRow->mergeIn[iMrail] = 2;
693 pRow->cherrypickDown |= mask;
694 }else{
@@ -697,13 +767,34 @@
697 }
698 for(pLoop=pRow->pNext; pLoop; pLoop=pLoop->pNext){
699 pLoop->railInUse |= mask;
700 }
701 }else{
702 /* Merge from an on-screen node */
703 createMergeRiser(p, pDesc, pRow, i>=pRow->nNonCherrypick);
704 if( p->mxRail>=GR_MAX_RAIL ) return;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
705 }
706 }
707 }
708
709 /*
710
--- src/graph.c
+++ src/graph.c
@@ -56,10 +56,11 @@
56 struct GraphRow {
57 int rid; /* The rid for the check-in */
58 i8 nParent; /* Number of parents. */
59 i8 nCherrypick; /* Subset of aParent that are cherrypicks */
60 i8 nNonCherrypick; /* Number of non-cherrypick parents */
61 u8 nMergeChild; /* Number of merge children */
62 int *aParent; /* Array of parents. 0 element is primary .*/
63 char *zBranch; /* Branch name */
64 char *zBgClr; /* Background Color */
65 char zUuid[HNAME_MAX+1]; /* Check-in for file ID */
66
@@ -472,11 +473,12 @@
473 ** the aParent[] array.
474 */
475 if( (tmFlags & (TIMELINE_DISJOINT|TIMELINE_XMERGE))!=0 ){
476 for(pRow=p->pFirst; pRow; pRow=pRow->pNext){
477 for(i=1; i<pRow->nParent; i++){
478 GraphRow *pParent = hashFind(p, pRow->aParent[i]);
479 if( pParent==0 ){
480 memmove(pRow->aParent+i, pRow->aParent+i+1,
481 sizeof(pRow->aParent[0])*(pRow->nParent-i-1));
482 pRow->nParent--;
483 if( i<pRow->nNonCherrypick ){
484 pRow->nNonCherrypick--;
@@ -486,10 +488,62 @@
488 i--;
489 }
490 }
491 }
492 }
493
494 /* Put the deepest (earliest) merge parent first in the list.
495 ** An off-screen merge parent is considered deepest.
496 */
497 for(pRow=p->pFirst; pRow; pRow=pRow->pNext ){
498 if( pRow->nParent<=1 ) continue;
499 for(i=1; i<pRow->nParent; i++){
500 GraphRow *pParent = hashFind(p, pRow->aParent[i]);
501 if( pParent ) pParent->nMergeChild++;
502 }
503 if( pRow->nCherrypick>1 ){
504 int iBest = -1;
505 int iDeepest = -1;
506 for(i=pRow->nNonCherrypick; i<pRow->nParent; i++){
507 GraphRow *pParent = hashFind(p, pRow->aParent[i]);
508 if( pParent==0 ){
509 iBest = i;
510 break;
511 }
512 if( pParent->idx>iDeepest ){
513 iDeepest = pParent->idx;
514 iBest = i;
515 }
516 }
517 i = pRow->nNonCherrypick;
518 if( iBest>i ){
519 int x = pRow->aParent[i];
520 pRow->aParent[i] = pRow->aParent[iBest];
521 pRow->aParent[iBest] = x;
522 }
523 }
524 if( pRow->nNonCherrypick>2 ){
525 int iBest = -1;
526 int iDeepest = -1;
527 for(i=1; i<pRow->nNonCherrypick; i++){
528 GraphRow *pParent = hashFind(p, pRow->aParent[i]);
529 if( pParent==0 ){
530 iBest = i;
531 break;
532 }
533 if( pParent->idx>iDeepest ){
534 iDeepest = pParent->idx;
535 iBest = i;
536 }
537 }
538 if( iBest>1 ){
539 int x = pRow->aParent[1];
540 pRow->aParent[1] = pRow->aParent[iBest];
541 pRow->aParent[iBest] = x;
542 }
543 }
544 }
545
546 /* If the primary parent is in a different branch, but there are
547 ** other parents in the same branch, reorder the parents to make
548 ** the parent from the same branch the primary parent.
549 */
@@ -668,15 +722,29 @@
722
723 /*
724 ** Insert merge rails and merge arrows
725 */
726 for(pRow=p->pFirst; pRow; pRow=pRow->pNext){
727 int iReuseIdx = -1;
728 int iReuseRail = -1;
729 int isCherrypick = 0;
730 for(i=1; i<pRow->nParent; i++){
731 int parentRid = pRow->aParent[i];
732 if( i==pRow->nNonCherrypick ){
733 /* Because full merges are laid out before cherrypicks,
734 ** it is ok to use a full-merge raise for a cherrypick.
735 ** See the graph on check-in 8ac66ef33b464d28 for example
736 ** iReuseIdx = -1;
737 ** iReuseRail = -1; */
738 isCherrypick = 1;
739 }
740 pDesc = hashFind(p, parentRid);
741 if( pDesc==0 ){
742 /* Merge from a node that is off-screen */
743 if( iReuseIdx>=p->nRow+1 ){
744 continue; /* Suppress multiple off-screen merges */
745 }
746 int iMrail = -1;
747 for(j=0; j<GR_MAX_RAIL; j++){
748 if( mergeRiserFrom[j]==parentRid ){
749 iMrail = j;
750 break;
@@ -685,10 +753,12 @@
753 if( iMrail==-1 ){
754 iMrail = findFreeRail(p, pRow->idx, p->pLast->idx, 0);
755 if( p->mxRail>=GR_MAX_RAIL ) return;
756 mergeRiserFrom[iMrail] = parentRid;
757 }
758 iReuseIdx = p->nRow+1;
759 iReuseRail = iMrail;
760 mask = BIT(iMrail);
761 if( i>=pRow->nNonCherrypick ){
762 pRow->mergeIn[iMrail] = 2;
763 pRow->cherrypickDown |= mask;
764 }else{
@@ -697,13 +767,34 @@
767 }
768 for(pLoop=pRow->pNext; pLoop; pLoop=pLoop->pNext){
769 pLoop->railInUse |= mask;
770 }
771 }else{
772 /* The merge parent node does exist on this graph */
773 if( iReuseIdx>pDesc->idx
774 && pDesc->nMergeChild==1
775 ){
776 /* Reuse an existing merge riser */
777 pDesc->mergeOut = iReuseRail;
778 if( isCherrypick ){
779 pDesc->cherrypickUpto = pDesc->idx;
780 }else{
781 pDesc->hasNormalOutMerge = 1;
782 pDesc->mergeUpto = pDesc->idx;
783 }
784 }else{
785 /* Create a new merge for an on-screen node */
786 createMergeRiser(p, pDesc, pRow, isCherrypick);
787 if( p->mxRail>=GR_MAX_RAIL ) return;
788 if( iReuseIdx<0
789 && pDesc->nMergeChild==1
790 && (pDesc->iRail!=pDesc->mergeOut || pDesc->isLeaf)
791 ){
792 iReuseIdx = pDesc->idx;
793 iReuseRail = pDesc->mergeOut;
794 }
795 }
796 }
797 }
798 }
799
800 /*
801
+16 -2
--- src/graph.js
+++ src/graph.js
@@ -431,18 +431,32 @@
431431
}else{
432432
mergeLines[p.mo] = -mLine.w/2;
433433
}
434434
x1 += mergeLines[p.mo]
435435
var y0 = p.y+2;
436
+ var isCP = p.hasOwnProperty('cu');
436437
if( p.mu==p.id ){
437
- drawCherrypickLine(x0,y0,x1+(x0<x1 ? mLine.w : 0),null);
438
+ /* Special case: The merge riser already exists. Only draw the
439
+ /* horizontal line or arrow going from the node out to the riser. */
440
+ var dx = x1<x0 ? mArrow.w : -mArrow.w;
441
+ if( isCP ){
442
+ drawCherrypickLine(x0,y0,x1+dx,null);
443
+ cls = "arrow cherrypick " + (x1<x0 ? "l" : "r");
444
+ }else{
445
+ drawMergeLine(x0,y0,x1+dx,null);
446
+ cls = "arrow merge " + (x1<x0 ? "l" : "r");
447
+ }
448
+ if( !isCP || p.mu==p.cu ){
449
+ dx = x1<x0 ? mLine.w : -(mArrow.w + mLine.w/2);
450
+ drawBox(cls,null,x1+dx,y0+(mLine.w-mArrow.h)/2);
451
+ }
438452
y1 = y0;
439453
}else{
440454
drawMergeLine(x0,y0,x1+(x0<x1 ? mLine.w : 0),null);
441455
drawMergeLine(x1,y0+mLine.w,null,y1);
442456
}
443
- if( p.hasOwnProperty('cu') ){
457
+ if( isCP && p.cu!=p.id ){
444458
var u2 = tx.rowinfo[p.cu-tx.iTopRow];
445459
var y2 = miLineY(u2);
446460
drawCherrypickLine(x1,y1,null,y2);
447461
}
448462
}else if( mergeOffset ){
449463
--- src/graph.js
+++ src/graph.js
@@ -431,18 +431,32 @@
431 }else{
432 mergeLines[p.mo] = -mLine.w/2;
433 }
434 x1 += mergeLines[p.mo]
435 var y0 = p.y+2;
 
436 if( p.mu==p.id ){
437 drawCherrypickLine(x0,y0,x1+(x0<x1 ? mLine.w : 0),null);
 
 
 
 
 
 
 
 
 
 
 
 
 
438 y1 = y0;
439 }else{
440 drawMergeLine(x0,y0,x1+(x0<x1 ? mLine.w : 0),null);
441 drawMergeLine(x1,y0+mLine.w,null,y1);
442 }
443 if( p.hasOwnProperty('cu') ){
444 var u2 = tx.rowinfo[p.cu-tx.iTopRow];
445 var y2 = miLineY(u2);
446 drawCherrypickLine(x1,y1,null,y2);
447 }
448 }else if( mergeOffset ){
449
--- src/graph.js
+++ src/graph.js
@@ -431,18 +431,32 @@
431 }else{
432 mergeLines[p.mo] = -mLine.w/2;
433 }
434 x1 += mergeLines[p.mo]
435 var y0 = p.y+2;
436 var isCP = p.hasOwnProperty('cu');
437 if( p.mu==p.id ){
438 /* Special case: The merge riser already exists. Only draw the
439 /* horizontal line or arrow going from the node out to the riser. */
440 var dx = x1<x0 ? mArrow.w : -mArrow.w;
441 if( isCP ){
442 drawCherrypickLine(x0,y0,x1+dx,null);
443 cls = "arrow cherrypick " + (x1<x0 ? "l" : "r");
444 }else{
445 drawMergeLine(x0,y0,x1+dx,null);
446 cls = "arrow merge " + (x1<x0 ? "l" : "r");
447 }
448 if( !isCP || p.mu==p.cu ){
449 dx = x1<x0 ? mLine.w : -(mArrow.w + mLine.w/2);
450 drawBox(cls,null,x1+dx,y0+(mLine.w-mArrow.h)/2);
451 }
452 y1 = y0;
453 }else{
454 drawMergeLine(x0,y0,x1+(x0<x1 ? mLine.w : 0),null);
455 drawMergeLine(x1,y0+mLine.w,null,y1);
456 }
457 if( isCP && p.cu!=p.id ){
458 var u2 = tx.rowinfo[p.cu-tx.iTopRow];
459 var y2 = miLineY(u2);
460 drawCherrypickLine(x1,y1,null,y2);
461 }
462 }else if( mergeOffset ){
463
+6 -6
--- src/http_ssl.c
+++ src/http_ssl.c
@@ -328,17 +328,17 @@
328328
ssl_close();
329329
return 1;
330330
}
331331
332332
if( !sslNoCertVerify && SSL_get_verify_result(ssl)!=X509_V_OK ){
333
- int x;
333
+ int x, desclen;
334334
char *desc, *prompt;
335335
Blob ans;
336336
char cReply;
337337
BIO *mem;
338
- unsigned char md[32];
339
- char zHash[32*2+1];
338
+ unsigned char md[EVP_MAX_MD_SIZE];
339
+ char zHash[EVP_MAX_MD_SIZE*2+1];
340340
unsigned int mdLength = (int)sizeof(md);
341341
342342
memset(md, 0, sizeof(md));
343343
zHash[0] = 0;
344344
/* MMNNFFPPS */
@@ -365,15 +365,15 @@
365365
BIO_puts(mem, " subject: ");
366366
X509_NAME_print_ex(mem, X509_get_subject_name(cert), 0, XN_FLAG_ONELINE);
367367
BIO_puts(mem, "\n issuer: ");
368368
X509_NAME_print_ex(mem, X509_get_issuer_name(cert), 0, XN_FLAG_ONELINE);
369369
BIO_printf(mem, "\n sha256: %s", zHash);
370
- BIO_get_mem_data(mem, &desc);
370
+ desclen = BIO_get_mem_data(mem, &desc);
371371
372
- prompt = mprintf("Unable to verify SSL cert from %s\n%s\n"
372
+ prompt = mprintf("Unable to verify SSL cert from %s\n%.*s\n"
373373
"accept this cert and continue (y/N)? ",
374
- pUrlData->name, desc);
374
+ pUrlData->name, desclen, desc);
375375
BIO_free(mem);
376376
377377
prompt_user(prompt, &ans);
378378
free(prompt);
379379
cReply = blob_str(&ans)[0];
380380
--- src/http_ssl.c
+++ src/http_ssl.c
@@ -328,17 +328,17 @@
328 ssl_close();
329 return 1;
330 }
331
332 if( !sslNoCertVerify && SSL_get_verify_result(ssl)!=X509_V_OK ){
333 int x;
334 char *desc, *prompt;
335 Blob ans;
336 char cReply;
337 BIO *mem;
338 unsigned char md[32];
339 char zHash[32*2+1];
340 unsigned int mdLength = (int)sizeof(md);
341
342 memset(md, 0, sizeof(md));
343 zHash[0] = 0;
344 /* MMNNFFPPS */
@@ -365,15 +365,15 @@
365 BIO_puts(mem, " subject: ");
366 X509_NAME_print_ex(mem, X509_get_subject_name(cert), 0, XN_FLAG_ONELINE);
367 BIO_puts(mem, "\n issuer: ");
368 X509_NAME_print_ex(mem, X509_get_issuer_name(cert), 0, XN_FLAG_ONELINE);
369 BIO_printf(mem, "\n sha256: %s", zHash);
370 BIO_get_mem_data(mem, &desc);
371
372 prompt = mprintf("Unable to verify SSL cert from %s\n%s\n"
373 "accept this cert and continue (y/N)? ",
374 pUrlData->name, desc);
375 BIO_free(mem);
376
377 prompt_user(prompt, &ans);
378 free(prompt);
379 cReply = blob_str(&ans)[0];
380
--- src/http_ssl.c
+++ src/http_ssl.c
@@ -328,17 +328,17 @@
328 ssl_close();
329 return 1;
330 }
331
332 if( !sslNoCertVerify && SSL_get_verify_result(ssl)!=X509_V_OK ){
333 int x, desclen;
334 char *desc, *prompt;
335 Blob ans;
336 char cReply;
337 BIO *mem;
338 unsigned char md[EVP_MAX_MD_SIZE];
339 char zHash[EVP_MAX_MD_SIZE*2+1];
340 unsigned int mdLength = (int)sizeof(md);
341
342 memset(md, 0, sizeof(md));
343 zHash[0] = 0;
344 /* MMNNFFPPS */
@@ -365,15 +365,15 @@
365 BIO_puts(mem, " subject: ");
366 X509_NAME_print_ex(mem, X509_get_subject_name(cert), 0, XN_FLAG_ONELINE);
367 BIO_puts(mem, "\n issuer: ");
368 X509_NAME_print_ex(mem, X509_get_issuer_name(cert), 0, XN_FLAG_ONELINE);
369 BIO_printf(mem, "\n sha256: %s", zHash);
370 desclen = BIO_get_mem_data(mem, &desc);
371
372 prompt = mprintf("Unable to verify SSL cert from %s\n%.*s\n"
373 "accept this cert and continue (y/N)? ",
374 pUrlData->name, desclen, desc);
375 BIO_free(mem);
376
377 prompt_user(prompt, &ans);
378 free(prompt);
379 cReply = blob_str(&ans)[0];
380
--- src/http_transport.c
+++ src/http_transport.c
@@ -263,18 +263,18 @@
263263
}
264264
}
265265
266266
/*
267267
** This routine is called when the outbound message is complete and
268
-** it is time to being receiving a reply.
268
+** it is time to begin receiving a reply.
269269
*/
270270
void transport_flip(UrlData *pUrlData){
271271
if( pUrlData->isFile ){
272272
char *zCmd;
273273
fclose(transport.pFile);
274
- zCmd = mprintf("\"%s\" http --in \"%s\" --out \"%s\" --ipaddr 127.0.0.1"
275
- " \"%s\" --localauth",
274
+ zCmd = mprintf("%$ http --in %$ --out %$ --ipaddr 127.0.0.1"
275
+ " %$ --localauth",
276276
g.nameOfExe, transport.zOutFile, transport.zInFile, pUrlData->name
277277
);
278278
fossil_system(zCmd);
279279
free(zCmd);
280280
transport.pFile = fossil_fopen(transport.zInFile, "rb");
281281
--- src/http_transport.c
+++ src/http_transport.c
@@ -263,18 +263,18 @@
263 }
264 }
265
266 /*
267 ** This routine is called when the outbound message is complete and
268 ** it is time to being receiving a reply.
269 */
270 void transport_flip(UrlData *pUrlData){
271 if( pUrlData->isFile ){
272 char *zCmd;
273 fclose(transport.pFile);
274 zCmd = mprintf("\"%s\" http --in \"%s\" --out \"%s\" --ipaddr 127.0.0.1"
275 " \"%s\" --localauth",
276 g.nameOfExe, transport.zOutFile, transport.zInFile, pUrlData->name
277 );
278 fossil_system(zCmd);
279 free(zCmd);
280 transport.pFile = fossil_fopen(transport.zInFile, "rb");
281
--- src/http_transport.c
+++ src/http_transport.c
@@ -263,18 +263,18 @@
263 }
264 }
265
266 /*
267 ** This routine is called when the outbound message is complete and
268 ** it is time to begin receiving a reply.
269 */
270 void transport_flip(UrlData *pUrlData){
271 if( pUrlData->isFile ){
272 char *zCmd;
273 fclose(transport.pFile);
274 zCmd = mprintf("%$ http --in %$ --out %$ --ipaddr 127.0.0.1"
275 " %$ --localauth",
276 g.nameOfExe, transport.zOutFile, transport.zInFile, pUrlData->name
277 );
278 fossil_system(zCmd);
279 free(zCmd);
280 transport.pFile = fossil_fopen(transport.zInFile, "rb");
281
+2
--- src/info.c
+++ src/info.c
@@ -1043,10 +1043,11 @@
10431043
}
10441044
10451045
10461046
@ <div class="section">Content</div>
10471047
blob_init(&wiki, pWiki->zWiki, -1);
1048
+ safe_html_context(DOCSRC_WIKI);
10481049
wiki_render_by_mimetype(&wiki, pWiki->zMimetype);
10491050
blob_reset(&wiki);
10501051
manifest_destroy(pWiki);
10511052
style_footer();
10521053
}
@@ -2362,10 +2363,11 @@
23622363
style_submenu_element("Content", "%R/artifact/%s", zUuid);
23632364
}else{
23642365
@ <hr />
23652366
content_get(rid, &content);
23662367
if( renderAsWiki ){
2368
+ safe_html_context(DOCSRC_FILE);
23672369
wiki_render_by_mimetype(&content, zMime);
23682370
}else if( renderAsHtml ){
23692371
@ <iframe src="%R/raw/%s(zUuid)"
23702372
@ width="100%%" frameborder="0" marginwidth="0" marginheight="0"
23712373
@ sandbox="allow-same-origin" id="ifm1">
23722374
--- src/info.c
+++ src/info.c
@@ -1043,10 +1043,11 @@
1043 }
1044
1045
1046 @ <div class="section">Content</div>
1047 blob_init(&wiki, pWiki->zWiki, -1);
 
1048 wiki_render_by_mimetype(&wiki, pWiki->zMimetype);
1049 blob_reset(&wiki);
1050 manifest_destroy(pWiki);
1051 style_footer();
1052 }
@@ -2362,10 +2363,11 @@
2362 style_submenu_element("Content", "%R/artifact/%s", zUuid);
2363 }else{
2364 @ <hr />
2365 content_get(rid, &content);
2366 if( renderAsWiki ){
 
2367 wiki_render_by_mimetype(&content, zMime);
2368 }else if( renderAsHtml ){
2369 @ <iframe src="%R/raw/%s(zUuid)"
2370 @ width="100%%" frameborder="0" marginwidth="0" marginheight="0"
2371 @ sandbox="allow-same-origin" id="ifm1">
2372
--- src/info.c
+++ src/info.c
@@ -1043,10 +1043,11 @@
1043 }
1044
1045
1046 @ <div class="section">Content</div>
1047 blob_init(&wiki, pWiki->zWiki, -1);
1048 safe_html_context(DOCSRC_WIKI);
1049 wiki_render_by_mimetype(&wiki, pWiki->zMimetype);
1050 blob_reset(&wiki);
1051 manifest_destroy(pWiki);
1052 style_footer();
1053 }
@@ -2362,10 +2363,11 @@
2363 style_submenu_element("Content", "%R/artifact/%s", zUuid);
2364 }else{
2365 @ <hr />
2366 content_get(rid, &content);
2367 if( renderAsWiki ){
2368 safe_html_context(DOCSRC_FILE);
2369 wiki_render_by_mimetype(&content, zMime);
2370 }else if( renderAsHtml ){
2371 @ <iframe src="%R/raw/%s(zUuid)"
2372 @ width="100%%" frameborder="0" marginwidth="0" marginheight="0"
2373 @ sandbox="allow-same-origin" id="ifm1">
2374
+58 -29
--- src/main.c
+++ src/main.c
@@ -210,10 +210,14 @@
210210
Blob httpHeader; /* Complete text of the HTTP request header */
211211
UrlData url; /* Information about current URL */
212212
const char *zLogin; /* Login name. NULL or "" if not logged in. */
213213
const char *zSSLIdentity; /* Value of --ssl-identity option, filename of
214214
** SSL client identity */
215
+#if defined(_WIN32) && USE_SEE
216
+ const char *zPidKey; /* Saved value of the --usepidkey option. Only
217
+ * applicable when using SEE on Windows. */
218
+#endif
215219
int useLocalauth; /* No login required if from 127.0.0.1 */
216220
int noPswd; /* Logged in without password (on 127.0.0.1) */
217221
int userUid; /* Integer user id */
218222
int isHuman; /* True if access by a human, not a spider or bot */
219223
int comFmtFlags; /* Zero or more "COMMENT_PRINT_*" bit flags, should be
@@ -630,11 +634,11 @@
630634
#if defined(FOSSIL_FUZZ)
631635
/* Do not include a main() procedure when building for fuzz testing.
632636
** libFuzzer will supply main(). */
633637
#elif defined(_WIN32) && !defined(BROKEN_MINGW_CMDLINE)
634638
int _dowildcard = -1; /* This turns on command-line globbing in MinGW-w64 */
635
- int wmain(int argc, wchar_t **argv){ return fossil_main(argc, argv); }
639
+ int wmain(int argc, wchar_t **argv){ return fossil_main(argc,(char**)argv); }
636640
#elif defined(_WIN32)
637641
int _CRT_glob = 0x0001; /* See MinGW bug #2062 */
638642
int main(int argc, char **argv){ return fossil_main(argc, argv); }
639643
#else
640644
int main(int argc, char **argv){ return fossil_main(argc, argv); }
@@ -758,10 +762,30 @@
758762
if( find_option("utc",0,0) ) g.fTimeFormat = 1;
759763
if( find_option("localtime",0,0) ) g.fTimeFormat = 2;
760764
if( zChdir && file_chdir(zChdir, 0) ){
761765
fossil_fatal("unable to change directories to %s", zChdir);
762766
}
767
+#if defined(_WIN32) && USE_SEE
768
+ {
769
+ g.zPidKey = find_option("usepidkey",0,1);
770
+ if( g.zPidKey ){
771
+ DWORD processId = 0;
772
+ LPVOID pAddress = NULL;
773
+ SIZE_T nSize = 0;
774
+ parse_pid_key_value(g.zPidKey, &processId, &pAddress, &nSize);
775
+ db_read_saved_encryption_key_from_process(processId, pAddress, nSize);
776
+ }else{
777
+ const char *zSeeDbConfig = find_option("seedbcfg",0,1);
778
+ if( !zSeeDbConfig ){
779
+ zSeeDbConfig = fossil_getenv("FOSSIL_SEE_DB_CONFIG");
780
+ }
781
+ if( zSeeDbConfig ){
782
+ db_read_saved_encryption_key_from_process_via_th1(zSeeDbConfig);
783
+ }
784
+ }
785
+ }
786
+#endif
763787
if( find_option("help",0,0)!=0 ){
764788
/* If --help is found anywhere on the command line, translate the command
765789
* to "fossil help cmdname" where "cmdname" is the first argument that
766790
* does not begin with a "-" character. If all arguments start with "-",
767791
* translate to "fossil help argv[1] argv[2]...". */
@@ -2345,10 +2369,43 @@
23452369
}else{
23462370
fossil_fatal("failed to parse pid key");
23472371
}
23482372
}
23492373
#endif
2374
+
2375
+/*
2376
+** WEBPAGE: test-pid
2377
+**
2378
+** Return the process identifier of the running Fossil server instance.
2379
+**
2380
+** Query parameters:
2381
+**
2382
+** usepidkey When present and available, also return the
2383
+** address and size, within this server process,
2384
+** of the saved database encryption key. This
2385
+** is only supported when using SEE on Windows.
2386
+*/
2387
+void test_pid_page(void){
2388
+ login_check_credentials();
2389
+ if( !g.perm.Setup ){ login_needed(0); return; }
2390
+#if defined(_WIN32) && USE_SEE
2391
+ if( P("usepidkey")!=0 ){
2392
+ if( g.zPidKey ){
2393
+ @ %s(g.zPidKey)
2394
+ return;
2395
+ }else{
2396
+ const char *zSavedKey = db_get_saved_encryption_key();
2397
+ size_t savedKeySize = db_get_saved_encryption_key_size();
2398
+ if( zSavedKey!=0 && savedKeySize>0 ){
2399
+ @ %lu(GetCurrentProcessId()):%p(zSavedKey):%u(savedKeySize)
2400
+ return;
2401
+ }
2402
+ }
2403
+ }
2404
+#endif
2405
+ @ %d(GETPID())
2406
+}
23502407
23512408
/*
23522409
** COMMAND: http*
23532410
**
23542411
** Usage: %fossil http ?REPOSITORY? ?OPTIONS?
@@ -2413,13 +2470,10 @@
24132470
const char *zInFile;
24142471
const char *zOutFile;
24152472
int useSCGI;
24162473
int noJail;
24172474
int allowRepoList;
2418
-#if defined(_WIN32) && USE_SEE
2419
- const char *zPidKey;
2420
-#endif
24212475
24222476
Th_InitTraceLog();
24232477
24242478
/* The winhttp module passes the --files option as --files-urlenc with
24252479
** the argument being URL encoded, to avoid wildcard expansion in the
@@ -2466,21 +2520,10 @@
24662520
cgi_replace_parameter("HTTPS","on");
24672521
}
24682522
zHost = find_option("host", 0, 1);
24692523
if( zHost ) cgi_replace_parameter("HTTP_HOST",zHost);
24702524
2471
-#if defined(_WIN32) && USE_SEE
2472
- zPidKey = find_option("usepidkey", 0, 1);
2473
- if( zPidKey ){
2474
- DWORD processId = 0;
2475
- LPVOID pAddress = NULL;
2476
- SIZE_T nSize = 0;
2477
- parse_pid_key_value(zPidKey, &processId, &pAddress, &nSize);
2478
- db_read_saved_encryption_key_from_process(processId, pAddress, nSize);
2479
- }
2480
-#endif
2481
-
24822525
/* We should be done with options.. */
24832526
verify_all_options();
24842527
24852528
if( g.argc!=2 && g.argc!=3 ) usage("?REPOSITORY?");
24862529
g.cgiOutput = 1;
@@ -2695,13 +2738,10 @@
26952738
const char *zAltBase; /* Argument to the --baseurl option */
26962739
const char *zFileGlob; /* Static content must match this */
26972740
char *zIpAddr = 0; /* Bind to this IP address */
26982741
int fCreate = 0; /* The --create flag */
26992742
const char *zInitPage = 0; /* Start on this page. --page option */
2700
-#if defined(_WIN32) && USE_SEE
2701
- const char *zPidKey;
2702
-#endif
27032743
27042744
#if defined(_WIN32)
27052745
const char *zStopperFile; /* Name of file used to terminate server */
27062746
zStopperFile = find_option("stopper", 0, 1);
27072747
#endif
@@ -2745,21 +2785,10 @@
27452785
}
27462786
if( find_option("localhost", 0, 0)!=0 ){
27472787
flags |= HTTP_SERVER_LOCALHOST;
27482788
}
27492789
2750
-#if defined(_WIN32) && USE_SEE
2751
- zPidKey = find_option("usepidkey", 0, 1);
2752
- if( zPidKey ){
2753
- DWORD processId = 0;
2754
- LPVOID pAddress = NULL;
2755
- SIZE_T nSize = 0;
2756
- parse_pid_key_value(zPidKey, &processId, &pAddress, &nSize);
2757
- db_read_saved_encryption_key_from_process(processId, pAddress, nSize);
2758
- }
2759
-#endif
2760
-
27612790
/* We should be done with options.. */
27622791
verify_all_options();
27632792
27642793
if( g.argc!=2 && g.argc!=3 ) usage("?REPOSITORY?");
27652794
if( isUiCmd ){
27662795
--- src/main.c
+++ src/main.c
@@ -210,10 +210,14 @@
210 Blob httpHeader; /* Complete text of the HTTP request header */
211 UrlData url; /* Information about current URL */
212 const char *zLogin; /* Login name. NULL or "" if not logged in. */
213 const char *zSSLIdentity; /* Value of --ssl-identity option, filename of
214 ** SSL client identity */
 
 
 
 
215 int useLocalauth; /* No login required if from 127.0.0.1 */
216 int noPswd; /* Logged in without password (on 127.0.0.1) */
217 int userUid; /* Integer user id */
218 int isHuman; /* True if access by a human, not a spider or bot */
219 int comFmtFlags; /* Zero or more "COMMENT_PRINT_*" bit flags, should be
@@ -630,11 +634,11 @@
630 #if defined(FOSSIL_FUZZ)
631 /* Do not include a main() procedure when building for fuzz testing.
632 ** libFuzzer will supply main(). */
633 #elif defined(_WIN32) && !defined(BROKEN_MINGW_CMDLINE)
634 int _dowildcard = -1; /* This turns on command-line globbing in MinGW-w64 */
635 int wmain(int argc, wchar_t **argv){ return fossil_main(argc, argv); }
636 #elif defined(_WIN32)
637 int _CRT_glob = 0x0001; /* See MinGW bug #2062 */
638 int main(int argc, char **argv){ return fossil_main(argc, argv); }
639 #else
640 int main(int argc, char **argv){ return fossil_main(argc, argv); }
@@ -758,10 +762,30 @@
758 if( find_option("utc",0,0) ) g.fTimeFormat = 1;
759 if( find_option("localtime",0,0) ) g.fTimeFormat = 2;
760 if( zChdir && file_chdir(zChdir, 0) ){
761 fossil_fatal("unable to change directories to %s", zChdir);
762 }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
763 if( find_option("help",0,0)!=0 ){
764 /* If --help is found anywhere on the command line, translate the command
765 * to "fossil help cmdname" where "cmdname" is the first argument that
766 * does not begin with a "-" character. If all arguments start with "-",
767 * translate to "fossil help argv[1] argv[2]...". */
@@ -2345,10 +2369,43 @@
2345 }else{
2346 fossil_fatal("failed to parse pid key");
2347 }
2348 }
2349 #endif
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2350
2351 /*
2352 ** COMMAND: http*
2353 **
2354 ** Usage: %fossil http ?REPOSITORY? ?OPTIONS?
@@ -2413,13 +2470,10 @@
2413 const char *zInFile;
2414 const char *zOutFile;
2415 int useSCGI;
2416 int noJail;
2417 int allowRepoList;
2418 #if defined(_WIN32) && USE_SEE
2419 const char *zPidKey;
2420 #endif
2421
2422 Th_InitTraceLog();
2423
2424 /* The winhttp module passes the --files option as --files-urlenc with
2425 ** the argument being URL encoded, to avoid wildcard expansion in the
@@ -2466,21 +2520,10 @@
2466 cgi_replace_parameter("HTTPS","on");
2467 }
2468 zHost = find_option("host", 0, 1);
2469 if( zHost ) cgi_replace_parameter("HTTP_HOST",zHost);
2470
2471 #if defined(_WIN32) && USE_SEE
2472 zPidKey = find_option("usepidkey", 0, 1);
2473 if( zPidKey ){
2474 DWORD processId = 0;
2475 LPVOID pAddress = NULL;
2476 SIZE_T nSize = 0;
2477 parse_pid_key_value(zPidKey, &processId, &pAddress, &nSize);
2478 db_read_saved_encryption_key_from_process(processId, pAddress, nSize);
2479 }
2480 #endif
2481
2482 /* We should be done with options.. */
2483 verify_all_options();
2484
2485 if( g.argc!=2 && g.argc!=3 ) usage("?REPOSITORY?");
2486 g.cgiOutput = 1;
@@ -2695,13 +2738,10 @@
2695 const char *zAltBase; /* Argument to the --baseurl option */
2696 const char *zFileGlob; /* Static content must match this */
2697 char *zIpAddr = 0; /* Bind to this IP address */
2698 int fCreate = 0; /* The --create flag */
2699 const char *zInitPage = 0; /* Start on this page. --page option */
2700 #if defined(_WIN32) && USE_SEE
2701 const char *zPidKey;
2702 #endif
2703
2704 #if defined(_WIN32)
2705 const char *zStopperFile; /* Name of file used to terminate server */
2706 zStopperFile = find_option("stopper", 0, 1);
2707 #endif
@@ -2745,21 +2785,10 @@
2745 }
2746 if( find_option("localhost", 0, 0)!=0 ){
2747 flags |= HTTP_SERVER_LOCALHOST;
2748 }
2749
2750 #if defined(_WIN32) && USE_SEE
2751 zPidKey = find_option("usepidkey", 0, 1);
2752 if( zPidKey ){
2753 DWORD processId = 0;
2754 LPVOID pAddress = NULL;
2755 SIZE_T nSize = 0;
2756 parse_pid_key_value(zPidKey, &processId, &pAddress, &nSize);
2757 db_read_saved_encryption_key_from_process(processId, pAddress, nSize);
2758 }
2759 #endif
2760
2761 /* We should be done with options.. */
2762 verify_all_options();
2763
2764 if( g.argc!=2 && g.argc!=3 ) usage("?REPOSITORY?");
2765 if( isUiCmd ){
2766
--- src/main.c
+++ src/main.c
@@ -210,10 +210,14 @@
210 Blob httpHeader; /* Complete text of the HTTP request header */
211 UrlData url; /* Information about current URL */
212 const char *zLogin; /* Login name. NULL or "" if not logged in. */
213 const char *zSSLIdentity; /* Value of --ssl-identity option, filename of
214 ** SSL client identity */
215 #if defined(_WIN32) && USE_SEE
216 const char *zPidKey; /* Saved value of the --usepidkey option. Only
217 * applicable when using SEE on Windows. */
218 #endif
219 int useLocalauth; /* No login required if from 127.0.0.1 */
220 int noPswd; /* Logged in without password (on 127.0.0.1) */
221 int userUid; /* Integer user id */
222 int isHuman; /* True if access by a human, not a spider or bot */
223 int comFmtFlags; /* Zero or more "COMMENT_PRINT_*" bit flags, should be
@@ -630,11 +634,11 @@
634 #if defined(FOSSIL_FUZZ)
635 /* Do not include a main() procedure when building for fuzz testing.
636 ** libFuzzer will supply main(). */
637 #elif defined(_WIN32) && !defined(BROKEN_MINGW_CMDLINE)
638 int _dowildcard = -1; /* This turns on command-line globbing in MinGW-w64 */
639 int wmain(int argc, wchar_t **argv){ return fossil_main(argc,(char**)argv); }
640 #elif defined(_WIN32)
641 int _CRT_glob = 0x0001; /* See MinGW bug #2062 */
642 int main(int argc, char **argv){ return fossil_main(argc, argv); }
643 #else
644 int main(int argc, char **argv){ return fossil_main(argc, argv); }
@@ -758,10 +762,30 @@
762 if( find_option("utc",0,0) ) g.fTimeFormat = 1;
763 if( find_option("localtime",0,0) ) g.fTimeFormat = 2;
764 if( zChdir && file_chdir(zChdir, 0) ){
765 fossil_fatal("unable to change directories to %s", zChdir);
766 }
767 #if defined(_WIN32) && USE_SEE
768 {
769 g.zPidKey = find_option("usepidkey",0,1);
770 if( g.zPidKey ){
771 DWORD processId = 0;
772 LPVOID pAddress = NULL;
773 SIZE_T nSize = 0;
774 parse_pid_key_value(g.zPidKey, &processId, &pAddress, &nSize);
775 db_read_saved_encryption_key_from_process(processId, pAddress, nSize);
776 }else{
777 const char *zSeeDbConfig = find_option("seedbcfg",0,1);
778 if( !zSeeDbConfig ){
779 zSeeDbConfig = fossil_getenv("FOSSIL_SEE_DB_CONFIG");
780 }
781 if( zSeeDbConfig ){
782 db_read_saved_encryption_key_from_process_via_th1(zSeeDbConfig);
783 }
784 }
785 }
786 #endif
787 if( find_option("help",0,0)!=0 ){
788 /* If --help is found anywhere on the command line, translate the command
789 * to "fossil help cmdname" where "cmdname" is the first argument that
790 * does not begin with a "-" character. If all arguments start with "-",
791 * translate to "fossil help argv[1] argv[2]...". */
@@ -2345,10 +2369,43 @@
2369 }else{
2370 fossil_fatal("failed to parse pid key");
2371 }
2372 }
2373 #endif
2374
2375 /*
2376 ** WEBPAGE: test-pid
2377 **
2378 ** Return the process identifier of the running Fossil server instance.
2379 **
2380 ** Query parameters:
2381 **
2382 ** usepidkey When present and available, also return the
2383 ** address and size, within this server process,
2384 ** of the saved database encryption key. This
2385 ** is only supported when using SEE on Windows.
2386 */
2387 void test_pid_page(void){
2388 login_check_credentials();
2389 if( !g.perm.Setup ){ login_needed(0); return; }
2390 #if defined(_WIN32) && USE_SEE
2391 if( P("usepidkey")!=0 ){
2392 if( g.zPidKey ){
2393 @ %s(g.zPidKey)
2394 return;
2395 }else{
2396 const char *zSavedKey = db_get_saved_encryption_key();
2397 size_t savedKeySize = db_get_saved_encryption_key_size();
2398 if( zSavedKey!=0 && savedKeySize>0 ){
2399 @ %lu(GetCurrentProcessId()):%p(zSavedKey):%u(savedKeySize)
2400 return;
2401 }
2402 }
2403 }
2404 #endif
2405 @ %d(GETPID())
2406 }
2407
2408 /*
2409 ** COMMAND: http*
2410 **
2411 ** Usage: %fossil http ?REPOSITORY? ?OPTIONS?
@@ -2413,13 +2470,10 @@
2470 const char *zInFile;
2471 const char *zOutFile;
2472 int useSCGI;
2473 int noJail;
2474 int allowRepoList;
 
 
 
2475
2476 Th_InitTraceLog();
2477
2478 /* The winhttp module passes the --files option as --files-urlenc with
2479 ** the argument being URL encoded, to avoid wildcard expansion in the
@@ -2466,21 +2520,10 @@
2520 cgi_replace_parameter("HTTPS","on");
2521 }
2522 zHost = find_option("host", 0, 1);
2523 if( zHost ) cgi_replace_parameter("HTTP_HOST",zHost);
2524
 
 
 
 
 
 
 
 
 
 
 
2525 /* We should be done with options.. */
2526 verify_all_options();
2527
2528 if( g.argc!=2 && g.argc!=3 ) usage("?REPOSITORY?");
2529 g.cgiOutput = 1;
@@ -2695,13 +2738,10 @@
2738 const char *zAltBase; /* Argument to the --baseurl option */
2739 const char *zFileGlob; /* Static content must match this */
2740 char *zIpAddr = 0; /* Bind to this IP address */
2741 int fCreate = 0; /* The --create flag */
2742 const char *zInitPage = 0; /* Start on this page. --page option */
 
 
 
2743
2744 #if defined(_WIN32)
2745 const char *zStopperFile; /* Name of file used to terminate server */
2746 zStopperFile = find_option("stopper", 0, 1);
2747 #endif
@@ -2745,21 +2785,10 @@
2785 }
2786 if( find_option("localhost", 0, 0)!=0 ){
2787 flags |= HTTP_SERVER_LOCALHOST;
2788 }
2789
 
 
 
 
 
 
 
 
 
 
 
2790 /* We should be done with options.. */
2791 verify_all_options();
2792
2793 if( g.argc!=2 && g.argc!=3 ) usage("?REPOSITORY?");
2794 if( isUiCmd ){
2795
+12 -2
--- src/main.mk
+++ src/main.mk
@@ -15,10 +15,11 @@
1515
1616
TESTFLAGS := -quiet
1717
1818
SRC = \
1919
$(SRCDIR)/add.c \
20
+ $(SRCDIR)/ajax.c \
2021
$(SRCDIR)/alerts.c \
2122
$(SRCDIR)/allrepo.c \
2223
$(SRCDIR)/attach.c \
2324
$(SRCDIR)/backlink.c \
2425
$(SRCDIR)/backoffice.c \
@@ -260,10 +261,11 @@
260261
$(SRCDIR)/useredit.js \
261262
$(SRCDIR)/wiki.wiki
262263
263264
TRANS_SRC = \
264265
$(OBJDIR)/add_.c \
266
+ $(OBJDIR)/ajax_.c \
265267
$(OBJDIR)/alerts_.c \
266268
$(OBJDIR)/allrepo_.c \
267269
$(OBJDIR)/attach_.c \
268270
$(OBJDIR)/backlink_.c \
269271
$(OBJDIR)/backoffice_.c \
@@ -404,10 +406,11 @@
404406
$(OBJDIR)/xfersetup_.c \
405407
$(OBJDIR)/zip_.c
406408
407409
OBJ = \
408410
$(OBJDIR)/add.o \
411
+ $(OBJDIR)/ajax.o \
409412
$(OBJDIR)/alerts.o \
410413
$(OBJDIR)/allrepo.o \
411414
$(OBJDIR)/attach.o \
412415
$(OBJDIR)/backlink.o \
413416
$(OBJDIR)/backoffice.o \
@@ -603,11 +606,10 @@
603606
-DSQLITE_DEFAULT_MEMSTATUS=0 \
604607
-DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 \
605608
-DSQLITE_LIKE_DOESNT_MATCH_BLOBS \
606609
-DSQLITE_OMIT_DECLTYPE \
607610
-DSQLITE_OMIT_DEPRECATED \
608
- -DSQLITE_OMIT_GET_TABLE \
609611
-DSQLITE_OMIT_PROGRESS_CALLBACK \
610612
-DSQLITE_OMIT_SHARED_CACHE \
611613
-DSQLITE_OMIT_LOAD_EXTENSION \
612614
-DSQLITE_MAX_EXPR_DEPTH=0 \
613615
-DSQLITE_USE_ALLOCA \
@@ -631,11 +633,10 @@
631633
-DSQLITE_DEFAULT_MEMSTATUS=0 \
632634
-DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 \
633635
-DSQLITE_LIKE_DOESNT_MATCH_BLOBS \
634636
-DSQLITE_OMIT_DECLTYPE \
635637
-DSQLITE_OMIT_DEPRECATED \
636
- -DSQLITE_OMIT_GET_TABLE \
637638
-DSQLITE_OMIT_PROGRESS_CALLBACK \
638639
-DSQLITE_OMIT_SHARED_CACHE \
639640
-DSQLITE_OMIT_LOAD_EXTENSION \
640641
-DSQLITE_MAX_EXPR_DEPTH=0 \
641642
-DSQLITE_USE_ALLOCA \
@@ -737,10 +738,11 @@
737738
$(OBJDIR)/builtin_data.h: $(OBJDIR)/mkbuiltin $(EXTRA_FILES)
738739
$(OBJDIR)/mkbuiltin --prefix $(SRCDIR)/ $(EXTRA_FILES) >$@
739740
740741
$(OBJDIR)/headers: $(OBJDIR)/page_index.h $(OBJDIR)/builtin_data.h $(OBJDIR)/makeheaders $(OBJDIR)/VERSION.h
741742
$(OBJDIR)/makeheaders $(OBJDIR)/add_.c:$(OBJDIR)/add.h \
743
+ $(OBJDIR)/ajax_.c:$(OBJDIR)/ajax.h \
742744
$(OBJDIR)/alerts_.c:$(OBJDIR)/alerts.h \
743745
$(OBJDIR)/allrepo_.c:$(OBJDIR)/allrepo.h \
744746
$(OBJDIR)/attach_.c:$(OBJDIR)/attach.h \
745747
$(OBJDIR)/backlink_.c:$(OBJDIR)/backlink.h \
746748
$(OBJDIR)/backoffice_.c:$(OBJDIR)/backoffice.h \
@@ -892,10 +894,18 @@
892894
893895
$(OBJDIR)/add.o: $(OBJDIR)/add_.c $(OBJDIR)/add.h $(SRCDIR)/config.h
894896
$(XTCC) -o $(OBJDIR)/add.o -c $(OBJDIR)/add_.c
895897
896898
$(OBJDIR)/add.h: $(OBJDIR)/headers
899
+
900
+$(OBJDIR)/ajax_.c: $(SRCDIR)/ajax.c $(OBJDIR)/translate
901
+ $(OBJDIR)/translate $(SRCDIR)/ajax.c >$@
902
+
903
+$(OBJDIR)/ajax.o: $(OBJDIR)/ajax_.c $(OBJDIR)/ajax.h $(SRCDIR)/config.h
904
+ $(XTCC) -o $(OBJDIR)/ajax.o -c $(OBJDIR)/ajax_.c
905
+
906
+$(OBJDIR)/ajax.h: $(OBJDIR)/headers
897907
898908
$(OBJDIR)/alerts_.c: $(SRCDIR)/alerts.c $(OBJDIR)/translate
899909
$(OBJDIR)/translate $(SRCDIR)/alerts.c >$@
900910
901911
$(OBJDIR)/alerts.o: $(OBJDIR)/alerts_.c $(OBJDIR)/alerts.h $(SRCDIR)/config.h
902912
--- src/main.mk
+++ src/main.mk
@@ -15,10 +15,11 @@
15
16 TESTFLAGS := -quiet
17
18 SRC = \
19 $(SRCDIR)/add.c \
 
20 $(SRCDIR)/alerts.c \
21 $(SRCDIR)/allrepo.c \
22 $(SRCDIR)/attach.c \
23 $(SRCDIR)/backlink.c \
24 $(SRCDIR)/backoffice.c \
@@ -260,10 +261,11 @@
260 $(SRCDIR)/useredit.js \
261 $(SRCDIR)/wiki.wiki
262
263 TRANS_SRC = \
264 $(OBJDIR)/add_.c \
 
265 $(OBJDIR)/alerts_.c \
266 $(OBJDIR)/allrepo_.c \
267 $(OBJDIR)/attach_.c \
268 $(OBJDIR)/backlink_.c \
269 $(OBJDIR)/backoffice_.c \
@@ -404,10 +406,11 @@
404 $(OBJDIR)/xfersetup_.c \
405 $(OBJDIR)/zip_.c
406
407 OBJ = \
408 $(OBJDIR)/add.o \
 
409 $(OBJDIR)/alerts.o \
410 $(OBJDIR)/allrepo.o \
411 $(OBJDIR)/attach.o \
412 $(OBJDIR)/backlink.o \
413 $(OBJDIR)/backoffice.o \
@@ -603,11 +606,10 @@
603 -DSQLITE_DEFAULT_MEMSTATUS=0 \
604 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 \
605 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS \
606 -DSQLITE_OMIT_DECLTYPE \
607 -DSQLITE_OMIT_DEPRECATED \
608 -DSQLITE_OMIT_GET_TABLE \
609 -DSQLITE_OMIT_PROGRESS_CALLBACK \
610 -DSQLITE_OMIT_SHARED_CACHE \
611 -DSQLITE_OMIT_LOAD_EXTENSION \
612 -DSQLITE_MAX_EXPR_DEPTH=0 \
613 -DSQLITE_USE_ALLOCA \
@@ -631,11 +633,10 @@
631 -DSQLITE_DEFAULT_MEMSTATUS=0 \
632 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 \
633 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS \
634 -DSQLITE_OMIT_DECLTYPE \
635 -DSQLITE_OMIT_DEPRECATED \
636 -DSQLITE_OMIT_GET_TABLE \
637 -DSQLITE_OMIT_PROGRESS_CALLBACK \
638 -DSQLITE_OMIT_SHARED_CACHE \
639 -DSQLITE_OMIT_LOAD_EXTENSION \
640 -DSQLITE_MAX_EXPR_DEPTH=0 \
641 -DSQLITE_USE_ALLOCA \
@@ -737,10 +738,11 @@
737 $(OBJDIR)/builtin_data.h: $(OBJDIR)/mkbuiltin $(EXTRA_FILES)
738 $(OBJDIR)/mkbuiltin --prefix $(SRCDIR)/ $(EXTRA_FILES) >$@
739
740 $(OBJDIR)/headers: $(OBJDIR)/page_index.h $(OBJDIR)/builtin_data.h $(OBJDIR)/makeheaders $(OBJDIR)/VERSION.h
741 $(OBJDIR)/makeheaders $(OBJDIR)/add_.c:$(OBJDIR)/add.h \
 
742 $(OBJDIR)/alerts_.c:$(OBJDIR)/alerts.h \
743 $(OBJDIR)/allrepo_.c:$(OBJDIR)/allrepo.h \
744 $(OBJDIR)/attach_.c:$(OBJDIR)/attach.h \
745 $(OBJDIR)/backlink_.c:$(OBJDIR)/backlink.h \
746 $(OBJDIR)/backoffice_.c:$(OBJDIR)/backoffice.h \
@@ -892,10 +894,18 @@
892
893 $(OBJDIR)/add.o: $(OBJDIR)/add_.c $(OBJDIR)/add.h $(SRCDIR)/config.h
894 $(XTCC) -o $(OBJDIR)/add.o -c $(OBJDIR)/add_.c
895
896 $(OBJDIR)/add.h: $(OBJDIR)/headers
 
 
 
 
 
 
 
 
897
898 $(OBJDIR)/alerts_.c: $(SRCDIR)/alerts.c $(OBJDIR)/translate
899 $(OBJDIR)/translate $(SRCDIR)/alerts.c >$@
900
901 $(OBJDIR)/alerts.o: $(OBJDIR)/alerts_.c $(OBJDIR)/alerts.h $(SRCDIR)/config.h
902
--- src/main.mk
+++ src/main.mk
@@ -15,10 +15,11 @@
15
16 TESTFLAGS := -quiet
17
18 SRC = \
19 $(SRCDIR)/add.c \
20 $(SRCDIR)/ajax.c \
21 $(SRCDIR)/alerts.c \
22 $(SRCDIR)/allrepo.c \
23 $(SRCDIR)/attach.c \
24 $(SRCDIR)/backlink.c \
25 $(SRCDIR)/backoffice.c \
@@ -260,10 +261,11 @@
261 $(SRCDIR)/useredit.js \
262 $(SRCDIR)/wiki.wiki
263
264 TRANS_SRC = \
265 $(OBJDIR)/add_.c \
266 $(OBJDIR)/ajax_.c \
267 $(OBJDIR)/alerts_.c \
268 $(OBJDIR)/allrepo_.c \
269 $(OBJDIR)/attach_.c \
270 $(OBJDIR)/backlink_.c \
271 $(OBJDIR)/backoffice_.c \
@@ -404,10 +406,11 @@
406 $(OBJDIR)/xfersetup_.c \
407 $(OBJDIR)/zip_.c
408
409 OBJ = \
410 $(OBJDIR)/add.o \
411 $(OBJDIR)/ajax.o \
412 $(OBJDIR)/alerts.o \
413 $(OBJDIR)/allrepo.o \
414 $(OBJDIR)/attach.o \
415 $(OBJDIR)/backlink.o \
416 $(OBJDIR)/backoffice.o \
@@ -603,11 +606,10 @@
606 -DSQLITE_DEFAULT_MEMSTATUS=0 \
607 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 \
608 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS \
609 -DSQLITE_OMIT_DECLTYPE \
610 -DSQLITE_OMIT_DEPRECATED \
 
611 -DSQLITE_OMIT_PROGRESS_CALLBACK \
612 -DSQLITE_OMIT_SHARED_CACHE \
613 -DSQLITE_OMIT_LOAD_EXTENSION \
614 -DSQLITE_MAX_EXPR_DEPTH=0 \
615 -DSQLITE_USE_ALLOCA \
@@ -631,11 +633,10 @@
633 -DSQLITE_DEFAULT_MEMSTATUS=0 \
634 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 \
635 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS \
636 -DSQLITE_OMIT_DECLTYPE \
637 -DSQLITE_OMIT_DEPRECATED \
 
638 -DSQLITE_OMIT_PROGRESS_CALLBACK \
639 -DSQLITE_OMIT_SHARED_CACHE \
640 -DSQLITE_OMIT_LOAD_EXTENSION \
641 -DSQLITE_MAX_EXPR_DEPTH=0 \
642 -DSQLITE_USE_ALLOCA \
@@ -737,10 +738,11 @@
738 $(OBJDIR)/builtin_data.h: $(OBJDIR)/mkbuiltin $(EXTRA_FILES)
739 $(OBJDIR)/mkbuiltin --prefix $(SRCDIR)/ $(EXTRA_FILES) >$@
740
741 $(OBJDIR)/headers: $(OBJDIR)/page_index.h $(OBJDIR)/builtin_data.h $(OBJDIR)/makeheaders $(OBJDIR)/VERSION.h
742 $(OBJDIR)/makeheaders $(OBJDIR)/add_.c:$(OBJDIR)/add.h \
743 $(OBJDIR)/ajax_.c:$(OBJDIR)/ajax.h \
744 $(OBJDIR)/alerts_.c:$(OBJDIR)/alerts.h \
745 $(OBJDIR)/allrepo_.c:$(OBJDIR)/allrepo.h \
746 $(OBJDIR)/attach_.c:$(OBJDIR)/attach.h \
747 $(OBJDIR)/backlink_.c:$(OBJDIR)/backlink.h \
748 $(OBJDIR)/backoffice_.c:$(OBJDIR)/backoffice.h \
@@ -892,10 +894,18 @@
894
895 $(OBJDIR)/add.o: $(OBJDIR)/add_.c $(OBJDIR)/add.h $(SRCDIR)/config.h
896 $(XTCC) -o $(OBJDIR)/add.o -c $(OBJDIR)/add_.c
897
898 $(OBJDIR)/add.h: $(OBJDIR)/headers
899
900 $(OBJDIR)/ajax_.c: $(SRCDIR)/ajax.c $(OBJDIR)/translate
901 $(OBJDIR)/translate $(SRCDIR)/ajax.c >$@
902
903 $(OBJDIR)/ajax.o: $(OBJDIR)/ajax_.c $(OBJDIR)/ajax.h $(SRCDIR)/config.h
904 $(XTCC) -o $(OBJDIR)/ajax.o -c $(OBJDIR)/ajax_.c
905
906 $(OBJDIR)/ajax.h: $(OBJDIR)/headers
907
908 $(OBJDIR)/alerts_.c: $(SRCDIR)/alerts.c $(OBJDIR)/translate
909 $(OBJDIR)/translate $(SRCDIR)/alerts.c >$@
910
911 $(OBJDIR)/alerts.o: $(OBJDIR)/alerts_.c $(OBJDIR)/alerts.h $(SRCDIR)/config.h
912
+12 -2
--- src/main.mk
+++ src/main.mk
@@ -15,10 +15,11 @@
1515
1616
TESTFLAGS := -quiet
1717
1818
SRC = \
1919
$(SRCDIR)/add.c \
20
+ $(SRCDIR)/ajax.c \
2021
$(SRCDIR)/alerts.c \
2122
$(SRCDIR)/allrepo.c \
2223
$(SRCDIR)/attach.c \
2324
$(SRCDIR)/backlink.c \
2425
$(SRCDIR)/backoffice.c \
@@ -260,10 +261,11 @@
260261
$(SRCDIR)/useredit.js \
261262
$(SRCDIR)/wiki.wiki
262263
263264
TRANS_SRC = \
264265
$(OBJDIR)/add_.c \
266
+ $(OBJDIR)/ajax_.c \
265267
$(OBJDIR)/alerts_.c \
266268
$(OBJDIR)/allrepo_.c \
267269
$(OBJDIR)/attach_.c \
268270
$(OBJDIR)/backlink_.c \
269271
$(OBJDIR)/backoffice_.c \
@@ -404,10 +406,11 @@
404406
$(OBJDIR)/xfersetup_.c \
405407
$(OBJDIR)/zip_.c
406408
407409
OBJ = \
408410
$(OBJDIR)/add.o \
411
+ $(OBJDIR)/ajax.o \
409412
$(OBJDIR)/alerts.o \
410413
$(OBJDIR)/allrepo.o \
411414
$(OBJDIR)/attach.o \
412415
$(OBJDIR)/backlink.o \
413416
$(OBJDIR)/backoffice.o \
@@ -603,11 +606,10 @@
603606
-DSQLITE_DEFAULT_MEMSTATUS=0 \
604607
-DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 \
605608
-DSQLITE_LIKE_DOESNT_MATCH_BLOBS \
606609
-DSQLITE_OMIT_DECLTYPE \
607610
-DSQLITE_OMIT_DEPRECATED \
608
- -DSQLITE_OMIT_GET_TABLE \
609611
-DSQLITE_OMIT_PROGRESS_CALLBACK \
610612
-DSQLITE_OMIT_SHARED_CACHE \
611613
-DSQLITE_OMIT_LOAD_EXTENSION \
612614
-DSQLITE_MAX_EXPR_DEPTH=0 \
613615
-DSQLITE_USE_ALLOCA \
@@ -631,11 +633,10 @@
631633
-DSQLITE_DEFAULT_MEMSTATUS=0 \
632634
-DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 \
633635
-DSQLITE_LIKE_DOESNT_MATCH_BLOBS \
634636
-DSQLITE_OMIT_DECLTYPE \
635637
-DSQLITE_OMIT_DEPRECATED \
636
- -DSQLITE_OMIT_GET_TABLE \
637638
-DSQLITE_OMIT_PROGRESS_CALLBACK \
638639
-DSQLITE_OMIT_SHARED_CACHE \
639640
-DSQLITE_OMIT_LOAD_EXTENSION \
640641
-DSQLITE_MAX_EXPR_DEPTH=0 \
641642
-DSQLITE_USE_ALLOCA \
@@ -737,10 +738,11 @@
737738
$(OBJDIR)/builtin_data.h: $(OBJDIR)/mkbuiltin $(EXTRA_FILES)
738739
$(OBJDIR)/mkbuiltin --prefix $(SRCDIR)/ $(EXTRA_FILES) >$@
739740
740741
$(OBJDIR)/headers: $(OBJDIR)/page_index.h $(OBJDIR)/builtin_data.h $(OBJDIR)/makeheaders $(OBJDIR)/VERSION.h
741742
$(OBJDIR)/makeheaders $(OBJDIR)/add_.c:$(OBJDIR)/add.h \
743
+ $(OBJDIR)/ajax_.c:$(OBJDIR)/ajax.h \
742744
$(OBJDIR)/alerts_.c:$(OBJDIR)/alerts.h \
743745
$(OBJDIR)/allrepo_.c:$(OBJDIR)/allrepo.h \
744746
$(OBJDIR)/attach_.c:$(OBJDIR)/attach.h \
745747
$(OBJDIR)/backlink_.c:$(OBJDIR)/backlink.h \
746748
$(OBJDIR)/backoffice_.c:$(OBJDIR)/backoffice.h \
@@ -892,10 +894,18 @@
892894
893895
$(OBJDIR)/add.o: $(OBJDIR)/add_.c $(OBJDIR)/add.h $(SRCDIR)/config.h
894896
$(XTCC) -o $(OBJDIR)/add.o -c $(OBJDIR)/add_.c
895897
896898
$(OBJDIR)/add.h: $(OBJDIR)/headers
899
+
900
+$(OBJDIR)/ajax_.c: $(SRCDIR)/ajax.c $(OBJDIR)/translate
901
+ $(OBJDIR)/translate $(SRCDIR)/ajax.c >$@
902
+
903
+$(OBJDIR)/ajax.o: $(OBJDIR)/ajax_.c $(OBJDIR)/ajax.h $(SRCDIR)/config.h
904
+ $(XTCC) -o $(OBJDIR)/ajax.o -c $(OBJDIR)/ajax_.c
905
+
906
+$(OBJDIR)/ajax.h: $(OBJDIR)/headers
897907
898908
$(OBJDIR)/alerts_.c: $(SRCDIR)/alerts.c $(OBJDIR)/translate
899909
$(OBJDIR)/translate $(SRCDIR)/alerts.c >$@
900910
901911
$(OBJDIR)/alerts.o: $(OBJDIR)/alerts_.c $(OBJDIR)/alerts.h $(SRCDIR)/config.h
902912
--- src/main.mk
+++ src/main.mk
@@ -15,10 +15,11 @@
15
16 TESTFLAGS := -quiet
17
18 SRC = \
19 $(SRCDIR)/add.c \
 
20 $(SRCDIR)/alerts.c \
21 $(SRCDIR)/allrepo.c \
22 $(SRCDIR)/attach.c \
23 $(SRCDIR)/backlink.c \
24 $(SRCDIR)/backoffice.c \
@@ -260,10 +261,11 @@
260 $(SRCDIR)/useredit.js \
261 $(SRCDIR)/wiki.wiki
262
263 TRANS_SRC = \
264 $(OBJDIR)/add_.c \
 
265 $(OBJDIR)/alerts_.c \
266 $(OBJDIR)/allrepo_.c \
267 $(OBJDIR)/attach_.c \
268 $(OBJDIR)/backlink_.c \
269 $(OBJDIR)/backoffice_.c \
@@ -404,10 +406,11 @@
404 $(OBJDIR)/xfersetup_.c \
405 $(OBJDIR)/zip_.c
406
407 OBJ = \
408 $(OBJDIR)/add.o \
 
409 $(OBJDIR)/alerts.o \
410 $(OBJDIR)/allrepo.o \
411 $(OBJDIR)/attach.o \
412 $(OBJDIR)/backlink.o \
413 $(OBJDIR)/backoffice.o \
@@ -603,11 +606,10 @@
603 -DSQLITE_DEFAULT_MEMSTATUS=0 \
604 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 \
605 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS \
606 -DSQLITE_OMIT_DECLTYPE \
607 -DSQLITE_OMIT_DEPRECATED \
608 -DSQLITE_OMIT_GET_TABLE \
609 -DSQLITE_OMIT_PROGRESS_CALLBACK \
610 -DSQLITE_OMIT_SHARED_CACHE \
611 -DSQLITE_OMIT_LOAD_EXTENSION \
612 -DSQLITE_MAX_EXPR_DEPTH=0 \
613 -DSQLITE_USE_ALLOCA \
@@ -631,11 +633,10 @@
631 -DSQLITE_DEFAULT_MEMSTATUS=0 \
632 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 \
633 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS \
634 -DSQLITE_OMIT_DECLTYPE \
635 -DSQLITE_OMIT_DEPRECATED \
636 -DSQLITE_OMIT_GET_TABLE \
637 -DSQLITE_OMIT_PROGRESS_CALLBACK \
638 -DSQLITE_OMIT_SHARED_CACHE \
639 -DSQLITE_OMIT_LOAD_EXTENSION \
640 -DSQLITE_MAX_EXPR_DEPTH=0 \
641 -DSQLITE_USE_ALLOCA \
@@ -737,10 +738,11 @@
737 $(OBJDIR)/builtin_data.h: $(OBJDIR)/mkbuiltin $(EXTRA_FILES)
738 $(OBJDIR)/mkbuiltin --prefix $(SRCDIR)/ $(EXTRA_FILES) >$@
739
740 $(OBJDIR)/headers: $(OBJDIR)/page_index.h $(OBJDIR)/builtin_data.h $(OBJDIR)/makeheaders $(OBJDIR)/VERSION.h
741 $(OBJDIR)/makeheaders $(OBJDIR)/add_.c:$(OBJDIR)/add.h \
 
742 $(OBJDIR)/alerts_.c:$(OBJDIR)/alerts.h \
743 $(OBJDIR)/allrepo_.c:$(OBJDIR)/allrepo.h \
744 $(OBJDIR)/attach_.c:$(OBJDIR)/attach.h \
745 $(OBJDIR)/backlink_.c:$(OBJDIR)/backlink.h \
746 $(OBJDIR)/backoffice_.c:$(OBJDIR)/backoffice.h \
@@ -892,10 +894,18 @@
892
893 $(OBJDIR)/add.o: $(OBJDIR)/add_.c $(OBJDIR)/add.h $(SRCDIR)/config.h
894 $(XTCC) -o $(OBJDIR)/add.o -c $(OBJDIR)/add_.c
895
896 $(OBJDIR)/add.h: $(OBJDIR)/headers
 
 
 
 
 
 
 
 
897
898 $(OBJDIR)/alerts_.c: $(SRCDIR)/alerts.c $(OBJDIR)/translate
899 $(OBJDIR)/translate $(SRCDIR)/alerts.c >$@
900
901 $(OBJDIR)/alerts.o: $(OBJDIR)/alerts_.c $(OBJDIR)/alerts.h $(SRCDIR)/config.h
902
--- src/main.mk
+++ src/main.mk
@@ -15,10 +15,11 @@
15
16 TESTFLAGS := -quiet
17
18 SRC = \
19 $(SRCDIR)/add.c \
20 $(SRCDIR)/ajax.c \
21 $(SRCDIR)/alerts.c \
22 $(SRCDIR)/allrepo.c \
23 $(SRCDIR)/attach.c \
24 $(SRCDIR)/backlink.c \
25 $(SRCDIR)/backoffice.c \
@@ -260,10 +261,11 @@
261 $(SRCDIR)/useredit.js \
262 $(SRCDIR)/wiki.wiki
263
264 TRANS_SRC = \
265 $(OBJDIR)/add_.c \
266 $(OBJDIR)/ajax_.c \
267 $(OBJDIR)/alerts_.c \
268 $(OBJDIR)/allrepo_.c \
269 $(OBJDIR)/attach_.c \
270 $(OBJDIR)/backlink_.c \
271 $(OBJDIR)/backoffice_.c \
@@ -404,10 +406,11 @@
406 $(OBJDIR)/xfersetup_.c \
407 $(OBJDIR)/zip_.c
408
409 OBJ = \
410 $(OBJDIR)/add.o \
411 $(OBJDIR)/ajax.o \
412 $(OBJDIR)/alerts.o \
413 $(OBJDIR)/allrepo.o \
414 $(OBJDIR)/attach.o \
415 $(OBJDIR)/backlink.o \
416 $(OBJDIR)/backoffice.o \
@@ -603,11 +606,10 @@
606 -DSQLITE_DEFAULT_MEMSTATUS=0 \
607 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 \
608 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS \
609 -DSQLITE_OMIT_DECLTYPE \
610 -DSQLITE_OMIT_DEPRECATED \
 
611 -DSQLITE_OMIT_PROGRESS_CALLBACK \
612 -DSQLITE_OMIT_SHARED_CACHE \
613 -DSQLITE_OMIT_LOAD_EXTENSION \
614 -DSQLITE_MAX_EXPR_DEPTH=0 \
615 -DSQLITE_USE_ALLOCA \
@@ -631,11 +633,10 @@
633 -DSQLITE_DEFAULT_MEMSTATUS=0 \
634 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 \
635 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS \
636 -DSQLITE_OMIT_DECLTYPE \
637 -DSQLITE_OMIT_DEPRECATED \
 
638 -DSQLITE_OMIT_PROGRESS_CALLBACK \
639 -DSQLITE_OMIT_SHARED_CACHE \
640 -DSQLITE_OMIT_LOAD_EXTENSION \
641 -DSQLITE_MAX_EXPR_DEPTH=0 \
642 -DSQLITE_USE_ALLOCA \
@@ -737,10 +738,11 @@
738 $(OBJDIR)/builtin_data.h: $(OBJDIR)/mkbuiltin $(EXTRA_FILES)
739 $(OBJDIR)/mkbuiltin --prefix $(SRCDIR)/ $(EXTRA_FILES) >$@
740
741 $(OBJDIR)/headers: $(OBJDIR)/page_index.h $(OBJDIR)/builtin_data.h $(OBJDIR)/makeheaders $(OBJDIR)/VERSION.h
742 $(OBJDIR)/makeheaders $(OBJDIR)/add_.c:$(OBJDIR)/add.h \
743 $(OBJDIR)/ajax_.c:$(OBJDIR)/ajax.h \
744 $(OBJDIR)/alerts_.c:$(OBJDIR)/alerts.h \
745 $(OBJDIR)/allrepo_.c:$(OBJDIR)/allrepo.h \
746 $(OBJDIR)/attach_.c:$(OBJDIR)/attach.h \
747 $(OBJDIR)/backlink_.c:$(OBJDIR)/backlink.h \
748 $(OBJDIR)/backoffice_.c:$(OBJDIR)/backoffice.h \
@@ -892,10 +894,18 @@
894
895 $(OBJDIR)/add.o: $(OBJDIR)/add_.c $(OBJDIR)/add.h $(SRCDIR)/config.h
896 $(XTCC) -o $(OBJDIR)/add.o -c $(OBJDIR)/add_.c
897
898 $(OBJDIR)/add.h: $(OBJDIR)/headers
899
900 $(OBJDIR)/ajax_.c: $(SRCDIR)/ajax.c $(OBJDIR)/translate
901 $(OBJDIR)/translate $(SRCDIR)/ajax.c >$@
902
903 $(OBJDIR)/ajax.o: $(OBJDIR)/ajax_.c $(OBJDIR)/ajax.h $(SRCDIR)/config.h
904 $(XTCC) -o $(OBJDIR)/ajax.o -c $(OBJDIR)/ajax_.c
905
906 $(OBJDIR)/ajax.h: $(OBJDIR)/headers
907
908 $(OBJDIR)/alerts_.c: $(SRCDIR)/alerts.c $(OBJDIR)/translate
909 $(OBJDIR)/translate $(SRCDIR)/alerts.c >$@
910
911 $(OBJDIR)/alerts.o: $(OBJDIR)/alerts_.c $(OBJDIR)/alerts.h $(SRCDIR)/config.h
912
+200 -154
--- src/makemake.tcl
+++ src/makemake.tcl
@@ -26,10 +26,11 @@
2626
# Set the separate extra_files variable further down for how to add non-C
2727
# files, such as string and BLOB resources.
2828
#
2929
set src {
3030
add
31
+ ajax
3132
alerts
3233
allrepo
3334
attach
3435
backlink
3536
backoffice
@@ -193,11 +194,10 @@
193194
-DSQLITE_DEFAULT_MEMSTATUS=0
194195
-DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1
195196
-DSQLITE_LIKE_DOESNT_MATCH_BLOBS
196197
-DSQLITE_OMIT_DECLTYPE
197198
-DSQLITE_OMIT_DEPRECATED
198
- -DSQLITE_OMIT_GET_TABLE
199199
-DSQLITE_OMIT_PROGRESS_CALLBACK
200200
-DSQLITE_OMIT_SHARED_CACHE
201201
-DSQLITE_OMIT_LOAD_EXTENSION
202202
-DSQLITE_MAX_EXPR_DEPTH=0
203203
-DSQLITE_USE_ALLOCA
@@ -475,10 +475,11 @@
475475
writeln "\$(OBJDIR)/headers:\t\$(OBJDIR)/page_index.h \$(OBJDIR)/builtin_data.h \$(OBJDIR)/makeheaders \$(OBJDIR)/VERSION.h"
476476
writeln "\t\$(OBJDIR)/makeheaders $mhargs"
477477
writeln "\ttouch \$(OBJDIR)/headers"
478478
writeln "\$(OBJDIR)/headers: Makefile"
479479
writeln "\$(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 : \$(SRCDIR)/json_detail.h"
480
+
480481
writeln "Makefile:"
481482
set extra_h(dispatch) " \$(OBJDIR)/page_index.h "
482483
set extra_h(builtin) " \$(OBJDIR)/builtin_data.h "
483484
484485
foreach s [lsort $src] {
@@ -1423,11 +1424,10 @@
14231424
$(OBJDIR)\json_tag$O : $(SRCDIR)\json_detail.h
14241425
$(OBJDIR)\json_timeline$O : $(SRCDIR)\json_detail.h
14251426
$(OBJDIR)\json_user$O : $(SRCDIR)\json_detail.h
14261427
$(OBJDIR)\json_wiki$O : $(SRCDIR)\json_detail.h
14271428
1428
-
14291429
}
14301430
foreach s [lsort $src] {
14311431
writeln "\$(OBJDIR)\\$s\$O : ${s}_.c ${s}.h"
14321432
writeln "\t\$(TCC) -o\$@ -c ${s}_.c\n"
14331433
writeln "${s}_.c : \$(SRCDIR)\\$s.c"
@@ -1456,39 +1456,52 @@
14561456
writeln {#
14571457
##############################################################################
14581458
# WARNING: DO NOT EDIT, AUTOMATICALLY GENERATED FILE (SEE "src/makemake.tcl")
14591459
##############################################################################
14601460
#
1461
-# This Makefile will only function correctly if used from a sub-directory
1462
-# that is a direct child of the top-level directory for this project.
1463
-#
1464
-!if !exist("..\.fossil-settings")
1465
-!error "Please change the current directory to the one containing this file."
1466
-!endif
1467
-
14681461
#
14691462
# This file is automatically generated. Instead of editing this
14701463
# file, edit "makemake.tcl" then run "tclsh makemake.tcl"
14711464
# to regenerate this file.
14721465
#
14731466
B = ..
1474
-SRCDIR = $B\src
1475
-OBJDIR = .
1476
-OX = .
1467
+SRCDIR = $(B)\src
1468
+T = .
1469
+OBJDIR = $(T)
1470
+OX = $(OBJDIR)
14771471
O = .obj
14781472
E = .exe
14791473
P = .pdb
14801474
1481
-# Perl is only necessary if OpenSSL support is enabled and it must
1482
-# be built from source code. The PERLDIR variable should point to
1483
-# the directory containing the main Perl binary (i.e. "perl.exe").
1484
-PERLDIR = C:\Perl\bin
1475
+INSTALLDIR = .
1476
+!ifdef DESTDIR
1477
+INSTALLDIR = $(DESTDIR)\$(INSTALLDIR)
1478
+!endif
1479
+
1480
+# When building out of source, this Makefile needs to know the path to the base
1481
+# top-level directory for this project. Pass it on NMAKE command line via make
1482
+# variable B:
1483
+# NMAKE /f "path\to\this\Makefile" B="path/to/fossil/root"
1484
+#
1485
+# NOTE: Make sure B path has no trailing backslash, UNIX-style path is OK too.
1486
+#
1487
+!if !exist("$(B)\.fossil-settings")
1488
+!error Please specify path to project base directory: B="path/to/fossil"
1489
+!endif
1490
+
1491
+# Perl is only necessary if OpenSSL support is enabled and it is built from
1492
+# source code. The PERLDIR environment variable, if it exists, should point
1493
+# to the directory containing the main Perl executable specified here (i.e.
1494
+# "perl.exe").
14851495
PERL = perl.exe
14861496
14871497
# Enable debugging symbols?
14881498
!ifndef DEBUG
14891499
DEBUG = 0
1500
+!endif
1501
+!ifdef FOSSIL_DEBUG
1502
+DEBUG = 1
14901503
!endif
14911504
14921505
# Build the OpenSSL libraries?
14931506
!ifndef FOSSIL_BUILD_SSL
14941507
FOSSIL_BUILD_SSL = 0
@@ -1605,27 +1618,30 @@
16051618
ZLIB = zdll.lib
16061619
!else
16071620
ZLIB = zlib.lib
16081621
!endif
16091622
1610
-INCL = /I. /I$(SRCDIR) /I$B\win\include
1623
+INCL = /I. /I"$(OX)" /I"$(SRCDIR)" /I"$(B)\win\include"
16111624
16121625
!if $(FOSSIL_ENABLE_MINIZ)==0
1613
-INCL = $(INCL) /I$(ZINCDIR)
1626
+INCL = $(INCL) /I"$(ZINCDIR)"
16141627
!endif
16151628
16161629
!if $(FOSSIL_ENABLE_SSL)!=0
1617
-INCL = $(INCL) /I$(SSLINCDIR)
1630
+INCL = $(INCL) /I"$(SSLINCDIR)"
16181631
!endif
16191632
16201633
!if $(FOSSIL_ENABLE_TCL)!=0
1621
-INCL = $(INCL) /I$(TCLINCDIR)
1634
+INCL = $(INCL) /I"$(TCLINCDIR)"
16221635
!endif
16231636
16241637
CFLAGS = /nologo
16251638
LDFLAGS =
16261639
1640
+CFLAGS = $(CFLAGS) /D_CRT_SECURE_NO_DEPRECATE /D_CRT_SECURE_NO_WARNINGS
1641
+CFLAGS = $(CFLAGS) /D_CRT_NONSTDC_NO_DEPRECATE /D_CRT_NONSTDC_NO_WARNINGS
1642
+
16271643
!if $(FOSSIL_DYNAMIC_BUILD)!=0
16281644
LDFLAGS = $(LDFLAGS) /MANIFEST
16291645
!else
16301646
LDFLAGS = $(LDFLAGS) /NODEFAULTLIB:msvcrt /MANIFEST:NO
16311647
!endif
@@ -1654,11 +1670,11 @@
16541670
CRTFLAGS = /MT
16551671
!endif
16561672
!endif
16571673
16581674
!if $(DEBUG)!=0
1659
-CFLAGS = $(CFLAGS) /Zi $(CRTFLAGS) /Od
1675
+CFLAGS = $(CFLAGS) /Zi $(CRTFLAGS) /Od /DFOSSIL_DEBUG
16601676
LDFLAGS = $(LDFLAGS) /DEBUG
16611677
!else
16621678
CFLAGS = $(CFLAGS) $(CRTFLAGS) /O2
16631679
!endif
16641680
@@ -1674,11 +1690,11 @@
16741690
RCC = $(RCC) /DFOSSIL_DYNAMIC_BUILD=1
16751691
!endif
16761692
16771693
!if $(FOSSIL_ENABLE_MINIZ)==0
16781694
LIBS = $(LIBS) $(ZLIB)
1679
-LIBDIR = $(LIBDIR) /LIBPATH:$(ZLIBDIR)
1695
+LIBDIR = $(LIBDIR) /LIBPATH:"$(ZLIBDIR)"
16801696
!endif
16811697
16821698
!if $(FOSSIL_ENABLE_MINIZ)!=0
16831699
TCC = $(TCC) /DFOSSIL_ENABLE_MINIZ=1
16841700
RCC = $(RCC) /DFOSSIL_ENABLE_MINIZ=1
@@ -1691,11 +1707,11 @@
16911707
16921708
!if $(FOSSIL_ENABLE_SSL)!=0
16931709
TCC = $(TCC) /DFOSSIL_ENABLE_SSL=1
16941710
RCC = $(RCC) /DFOSSIL_ENABLE_SSL=1
16951711
LIBS = $(LIBS) $(SSLLIB)
1696
-LIBDIR = $(LIBDIR) /LIBPATH:$(SSLLIBDIR)
1712
+LIBDIR = $(LIBDIR) /LIBPATH:"$(SSLLIBDIR)"
16971713
!endif
16981714
16991715
!if $(FOSSIL_ENABLE_EXEC_REL_PATHS)!=0
17001716
TCC = $(TCC) /DFOSSIL_ENABLE_EXEC_REL_PATHS=1
17011717
RCC = $(RCC) /DFOSSIL_ENABLE_EXEC_REL_PATHS=1
@@ -1749,11 +1765,11 @@
17491765
foreach s [lsort $src] {
17501766
if {$i > 0} {
17511767
writeln " \\"
17521768
writeln -nonewline " "
17531769
}
1754
- writeln -nonewline "${s}_.c"; incr i
1770
+ writeln -nonewline "\"\$(OX)\\${s}_.c\""; incr i
17551771
}
17561772
writeln "\n"
17571773
writeln -nonewline "EXTRA_FILES = "
17581774
set i 0
17591775
foreach s [lsort $extra_files] {
@@ -1760,11 +1776,11 @@
17601776
if {$i > 0} {
17611777
writeln " \\"
17621778
writeln -nonewline " "
17631779
}
17641780
set s [regsub -all / $s \\]
1765
- writeln -nonewline "\$(SRCDIR)\\${s}"; incr i
1781
+ writeln -nonewline "\"\$(SRCDIR)\\${s}\""; incr i
17661782
}
17671783
writeln "\n"
17681784
set AdditionalObj [list shell sqlite3 th th_lang th_tcl cson_amalgamation]
17691785
writeln -nonewline "OBJ = "
17701786
set i 0
@@ -1771,51 +1787,71 @@
17711787
foreach s [lsort [concat $src $AdditionalObj]] {
17721788
if {$i > 0} {
17731789
writeln " \\"
17741790
writeln -nonewline " "
17751791
}
1776
- writeln -nonewline "\$(OX)\\$s\$O"; incr i
1792
+ writeln -nonewline "\"\$(OX)\\$s\$O\""; incr i
17771793
}
17781794
if {$i > 0} {
17791795
writeln " \\"
17801796
}
17811797
writeln "!if \$(FOSSIL_ENABLE_MINIZ)!=0"
17821798
writeln -nonewline " "
1783
-writeln "\$(OX)\\miniz\$O \\"; incr i
1799
+writeln "\"\$(OX)\\miniz\$O\" \\"; incr i
17841800
writeln "!endif"
1785
-writeln -nonewline " \$(OX)\\fossil.res\n\n"
1801
+writeln -nonewline " \"\$(OX)\\fossil.res\"\n\n"
17861802
writeln [string map [list <<<NEXT_LINE>>> \\] {
17871803
!ifndef BASEAPPNAME
17881804
BASEAPPNAME = fossil
17891805
!endif
17901806
17911807
APPNAME = $(OX)\$(BASEAPPNAME)$(E)
17921808
PDBNAME = $(OX)\$(BASEAPPNAME)$(P)
17931809
APPTARGETS =
17941810
1795
-all: $(OX) $(APPNAME)
1811
+all: "$(OX)" "$(APPNAME)"
1812
+
1813
+$(BASEAPPNAME): "$(APPNAME)"
1814
+
1815
+$(BASEAPPNAME)$(E): "$(APPNAME)"
1816
+
1817
+install: "$(APPNAME)"
1818
+ echo F | xcopy /Y "$(APPNAME)" "$(INSTALLDIR)"\*
1819
+!if $(DEBUG)!=0
1820
+ echo F | xcopy /Y "$(PDBNAME)" "$(INSTALLDIR)"\*
1821
+!endif
1822
+
1823
+$(OX):
1824
+ @-mkdir $@
17961825
17971826
zlib:
17981827
@echo Building zlib from "$(ZLIBDIR)"...
17991828
!if $(FOSSIL_ENABLE_WINXP)!=0
18001829
@pushd "$(ZLIBDIR)" && $(MAKE) /f win32\Makefile.msc $(ZLIB) "CC=cl $(XPCFLAGS)" "LD=link $(XPLDFLAGS)" && popd
18011830
!else
18021831
@pushd "$(ZLIBDIR)" && $(MAKE) /f win32\Makefile.msc $(ZLIB) && popd
18031832
!endif
18041833
1834
+clean-zlib:
1835
+ @pushd "$(ZLIBDIR)" && $(MAKE) /f win32\Makefile.msc clean && popd
1836
+
18051837
!if $(FOSSIL_ENABLE_SSL)!=0
18061838
openssl:
18071839
@echo Building OpenSSL from "$(SSLDIR)"...
1808
-!if "$(PERLDIR)" != ""
1809
- @set PATH=$(PERLDIR);$(PATH)
1840
+!ifdef PERLDIR
1841
+ @pushd "$(SSLDIR)" && "$(PERLDIR)\$(PERL)" Configure $(SSLCONFIG) && popd
1842
+!else
1843
+ @pushd "$(SSLDIR)" && "$(PERL)" Configure $(SSLCONFIG) && popd
18101844
!endif
1811
- @pushd "$(SSLDIR)" && $(PERL) Configure $(SSLCONFIG) && popd
18121845
!if $(FOSSIL_ENABLE_WINXP)!=0
18131846
@pushd "$(SSLDIR)" && $(MAKE) "CC=cl $(XPCFLAGS)" "LFLAGS=$(XPLDFLAGS)" && popd
18141847
!else
18151848
@pushd "$(SSLDIR)" && $(MAKE) && popd
18161849
!endif
1850
+
1851
+clean-openssl:
1852
+ @pushd "$(SSLDIR)" && $(MAKE) clean && popd
18171853
!endif
18181854
18191855
!if $(FOSSIL_ENABLE_MINIZ)==0
18201856
!if $(FOSSIL_BUILD_ZLIB)!=0
18211857
APPTARGETS = $(APPTARGETS) zlib
@@ -1826,49 +1862,45 @@
18261862
!if $(FOSSIL_BUILD_SSL)!=0
18271863
APPTARGETS = $(APPTARGETS) openssl
18281864
!endif
18291865
!endif
18301866
1831
-$(APPNAME) : $(APPTARGETS) translate$E mkindex$E codecheck1$E headers $(OBJ) $(OX)\linkopts
1832
- cd $(OX)
1833
- codecheck1$E $(SRC)
1834
- link $(LDFLAGS) /OUT:$@ $(LIBDIR) Wsetargv.obj fossil.res @linkopts
1835
- if exist [email protected] <<<NEXT_LINE>>>
1836
- $(MTC) -nologo -manifest [email protected] -outputresource:$@;1
1837
-
1838
-$(OX)\linkopts: $B\win\Makefile.msc}]
1867
+"$(APPNAME)" : $(APPTARGETS) "$(OBJDIR)\translate$E" "$(OBJDIR)\mkindex$E" "$(OBJDIR)\codecheck1$E" "$(OX)\headers" $(OBJ) "$(OX)\linkopts"
1868
+ "$(OBJDIR)\codecheck1$E" $(SRC)
1869
+ link $(LDFLAGS) /OUT:$@ /PDB:$(@D)\ $(LIBDIR) Wsetargv.obj "$(OX)\fossil.res" @"$(OX)\linkopts"
1870
+ if exist "$(B)\win\fossil.exe.manifest" <<<NEXT_LINE>>>
1871
+ $(MTC) -nologo -manifest "$(B)\win\fossil.exe.manifest" -outputresource:$@;1
1872
+
1873
+"$(OX)\linkopts": "$(B)\win\Makefile.msc"}]
18391874
set redir {>}
18401875
foreach s [lsort [concat $src $AdditionalObj]] {
1841
- writeln "\techo \$(OX)\\$s.obj $redir \$@"
1876
+ writeln "\techo \"\$(OX)\\$s.obj\" $redir \$@"
18421877
set redir {>>}
18431878
}
18441879
set redir {>>}
18451880
writeln "!if \$(FOSSIL_ENABLE_MINIZ)!=0"
1846
-writeln "\techo \$(OX)\\miniz.obj $redir \$@"
1881
+writeln "\techo \"\$(OX)\\miniz.obj\" $redir \$@"
18471882
writeln "!endif"
18481883
writeln "\techo \$(LIBS) $redir \$@"
18491884
writeln {
1850
-$(OX):
1851
- @-mkdir $@
1852
-
1853
-translate$E: $(SRCDIR)\translate.c
1854
- $(BCC) $**
1855
-
1856
-makeheaders$E: $(SRCDIR)\makeheaders.c
1857
- $(BCC) $**
1858
-
1859
-mkindex$E: $(SRCDIR)\mkindex.c
1860
- $(BCC) $**
1861
-
1862
-mkbuiltin$E: $(SRCDIR)\mkbuiltin.c
1863
- $(BCC) $**
1864
-
1865
-mkversion$E: $(SRCDIR)\mkversion.c
1866
- $(BCC) $**
1867
-
1868
-codecheck1$E: $(SRCDIR)\codecheck1.c
1869
- $(BCC) $**
1885
+"$(OBJDIR)\translate$E": "$(SRCDIR)\translate.c"
1886
+ $(BCC) /Fe$@ /Fo$(@D)\ /Fd$(@D)\ $**
1887
+
1888
+"$(OBJDIR)\makeheaders$E": "$(SRCDIR)\makeheaders.c"
1889
+ $(BCC) /Fe$@ /Fo$(@D)\ /Fd$(@D)\ $**
1890
+
1891
+"$(OBJDIR)\mkindex$E": "$(SRCDIR)\mkindex.c"
1892
+ $(BCC) /Fe$@ /Fo$(@D)\ /Fd$(@D)\ $**
1893
+
1894
+"$(OBJDIR)\mkbuiltin$E": "$(SRCDIR)\mkbuiltin.c"
1895
+ $(BCC) /Fe$@ /Fo$(@D)\ /Fd$(@D)\ $**
1896
+
1897
+"$(OBJDIR)\mkversion$E": "$(SRCDIR)\mkversion.c"
1898
+ $(BCC) /Fe$@ /Fo$(@D)\ /Fd$(@D)\ $**
1899
+
1900
+"$(OBJDIR)\codecheck1$E": "$(SRCDIR)\codecheck1.c"
1901
+ $(BCC) /Fe$@ /Fo$(@D)\ /Fd$(@D)\ $**
18701902
18711903
!if $(USE_SEE)!=0
18721904
SEE_FLAGS = /DSQLITE_HAS_CODEC=1 /DSQLITE_SHELL_DBKEY_PROC=fossil_key
18731905
SQLITE3_SHELL_SRC = $(SRCDIR)\shell-see.c
18741906
SQLITE3_SRC = $(SRCDIR)\sqlite3-see.c
@@ -1876,109 +1908,123 @@
18761908
SEE_FLAGS =
18771909
SQLITE3_SHELL_SRC = $(SRCDIR)\shell.c
18781910
SQLITE3_SRC = $(SRCDIR)\sqlite3.c
18791911
!endif
18801912
1881
-$(OX)\shell$O : $(SQLITE3_SHELL_SRC) $B\win\Makefile.msc
1882
- $(TCC) /Fo$@ $(SHELL_OPTIONS) $(SQLITE_OPTIONS) $(SHELL_CFLAGS) $(SEE_FLAGS) -c $(SQLITE3_SHELL_SRC)
1883
-
1884
-$(OX)\sqlite3$O : $(SQLITE3_SRC) $B\win\Makefile.msc
1885
- $(TCC) /Fo$@ -c $(SQLITE_OPTIONS) $(SQLITE_CFLAGS) $(SEE_FLAGS) $(SQLITE3_SRC)
1886
-
1887
-$(OX)\th$O : $(SRCDIR)\th.c
1888
- $(TCC) /Fo$@ -c $**
1889
-
1890
-$(OX)\th_lang$O : $(SRCDIR)\th_lang.c
1891
- $(TCC) /Fo$@ -c $**
1892
-
1893
-$(OX)\th_tcl$O : $(SRCDIR)\th_tcl.c
1894
- $(TCC) /Fo$@ -c $**
1895
-
1896
-$(OX)\miniz$O : $(SRCDIR)\miniz.c
1897
- $(TCC) /Fo$@ -c $(MINIZ_OPTIONS) $(SRCDIR)\miniz.c
1898
-
1899
-VERSION.h : mkversion$E $B\manifest.uuid $B\manifest $B\VERSION
1900
- $** > $@
1901
-
1902
-$(OX)\cson_amalgamation$O : $(SRCDIR)\cson_amalgamation.c
1903
- $(TCC) /Fo$@ /c $**
1904
-
1905
-page_index.h: mkindex$E $(SRC)
1906
- $** > $@
1907
-
1908
-builtin_data.h: mkbuiltin$E $(EXTRA_FILES)
1909
- mkbuiltin$E --prefix $(SRCDIR)/ $(EXTRA_FILES) > $@
1910
-
1911
-clean:
1912
- -del $(OX)\*.obj 2>NUL
1913
- -del *.obj 2>NUL
1914
- -del *_.c 2>NUL
1915
- -del *.h 2>NUL
1916
- -del *.ilk 2>NUL
1917
- -del *.map 2>NUL
1918
- -del *.res 2>NUL
1919
- -del headers 2>NUL
1920
- -del linkopts 2>NUL
1921
- -del vc*.pdb 2>NUL
1922
-
1923
-realclean: clean
1924
- -del $(APPNAME) 2>NUL
1925
- -del $(PDBNAME) 2>NUL
1926
- -del translate$E 2>NUL
1927
- -del translate$P 2>NUL
1928
- -del mkindex$E 2>NUL
1929
- -del mkindex$P 2>NUL
1930
- -del makeheaders$E 2>NUL
1931
- -del makeheaders$P 2>NUL
1932
- -del mkversion$E 2>NUL
1933
- -del mkversion$P 2>NUL
1934
- -del codecheck1$E 2>NUL
1935
- -del codecheck1$P 2>NUL
1936
- -del mkbuiltin$E 2>NUL
1937
- -del mkbuiltin$P 2>NUL
1938
-
1939
-$(OBJDIR)\json$O : $(SRCDIR)\json_detail.h
1940
-$(OBJDIR)\json_artifact$O : $(SRCDIR)\json_detail.h
1941
-$(OBJDIR)\json_branch$O : $(SRCDIR)\json_detail.h
1942
-$(OBJDIR)\json_config$O : $(SRCDIR)\json_detail.h
1943
-$(OBJDIR)\json_diff$O : $(SRCDIR)\json_detail.h
1944
-$(OBJDIR)\json_dir$O : $(SRCDIR)\json_detail.h
1945
-$(OBJDIR)\json_finfo$O : $(SRCDIR)\json_detail.h
1946
-$(OBJDIR)\json_login$O : $(SRCDIR)\json_detail.h
1947
-$(OBJDIR)\json_query$O : $(SRCDIR)\json_detail.h
1948
-$(OBJDIR)\json_report$O : $(SRCDIR)\json_detail.h
1949
-$(OBJDIR)\json_status$O : $(SRCDIR)\json_detail.h
1950
-$(OBJDIR)\json_tag$O : $(SRCDIR)\json_detail.h
1951
-$(OBJDIR)\json_timeline$O : $(SRCDIR)\json_detail.h
1952
-$(OBJDIR)\json_user$O : $(SRCDIR)\json_detail.h
1953
-$(OBJDIR)\json_wiki$O : $(SRCDIR)\json_detail.h
1954
-}
1955
-foreach s [lsort $src] {
1956
- writeln "\$(OX)\\$s\$O : ${s}_.c ${s}.h"
1957
- writeln "\t\$(TCC) /Fo\$@ -c ${s}_.c\n"
1958
- writeln "${s}_.c : \$(SRCDIR)\\$s.c"
1959
- writeln "\ttranslate\$E \$** > \$@\n"
1960
-}
1961
-
1962
-writeln "fossil.res : \$B\\win\\fossil.rc"
1963
-writeln "\t\$(RCC) /fo \$@ \$**\n"
1964
-
1965
-writeln "headers: makeheaders\$E page_index.h builtin_data.h VERSION.h"
1966
-writeln -nonewline "\tmakeheaders\$E "
1913
+"$(OX)\shell$O" : "$(SQLITE3_SHELL_SRC)" "$(B)\win\Makefile.msc"
1914
+ $(TCC) /Fo$@ /Fd$(@D)\ $(SHELL_OPTIONS) $(SQLITE_OPTIONS) $(SHELL_CFLAGS) $(SEE_FLAGS) -c "$(SQLITE3_SHELL_SRC)"
1915
+
1916
+"$(OX)\sqlite3$O" : "$(SQLITE3_SRC)" "$(B)\win\Makefile.msc"
1917
+ $(TCC) /Fo$@ /Fd$(@D)\ -c $(SQLITE_OPTIONS) $(SQLITE_CFLAGS) $(SEE_FLAGS) "$(SQLITE3_SRC)"
1918
+
1919
+"$(OX)\th$O" : "$(SRCDIR)\th.c"
1920
+ $(TCC) /Fo$@ /Fd$(@D)\ -c $**
1921
+
1922
+"$(OX)\th_lang$O" : "$(SRCDIR)\th_lang.c"
1923
+ $(TCC) /Fo$@ /Fd$(@D)\ -c $**
1924
+
1925
+"$(OX)\th_tcl$O" : "$(SRCDIR)\th_tcl.c"
1926
+ $(TCC) /Fo$@ /Fd$(@D)\ -c $**
1927
+
1928
+"$(OX)\miniz$O" : "$(SRCDIR)\miniz.c"
1929
+ $(TCC) /Fo$@ /Fd$(@D)\ -c $(MINIZ_OPTIONS) $**
1930
+
1931
+"$(OX)\VERSION.h" : "$(OBJDIR)\mkversion$E" "$(B)\manifest.uuid" "$(B)\manifest" "$(B)\VERSION"
1932
+ $** > $@
1933
+
1934
+"$(OX)\cson_amalgamation$O" : "$(SRCDIR)\cson_amalgamation.c"
1935
+ $(TCC) /Fo$@ /Fd$(@D)\ -c $**
1936
+
1937
+"$(OX)\page_index.h": "$(OBJDIR)\mkindex$E" $(SRC)
1938
+ $** > $@
1939
+
1940
+"$(OX)\builtin_data.h": "$(OBJDIR)\mkbuiltin$E" "$(OX)\builtin_data.reslist"
1941
+ "$(OBJDIR)\mkbuiltin$E" --prefix "$(SRCDIR)/" --reslist "$(OX)\builtin_data.reslist" > $@
1942
+
1943
+cleanx:
1944
+ -del "$(OX)\*.obj" 2>NUL
1945
+ -del "$(OBJDIR)\*.obj" 2>NUL
1946
+ -del "$(OX)\*_.c" 2>NUL
1947
+ -del "$(OX)\*.h" 2>NUL
1948
+ -del "$(OX)\*.ilk" 2>NUL
1949
+ -del "$(OX)\*.map" 2>NUL
1950
+ -del "$(OX)\*.res" 2>NUL
1951
+ -del "$(OX)\*.reslist" 2>NUL
1952
+ -del "$(OX)\headers" 2>NUL
1953
+ -del "$(OX)\linkopts" 2>NUL
1954
+ -del "$(OX)\vc*.pdb" 2>NUL
1955
+
1956
+clean: cleanx
1957
+ -del "$(APPNAME)" 2>NUL
1958
+ -del "$(PDBNAME)" 2>NUL
1959
+ -del "$(OBJDIR)\translate$E" 2>NUL
1960
+ -del "$(OBJDIR)\translate$P" 2>NUL
1961
+ -del "$(OBJDIR)\mkindex$E" 2>NUL
1962
+ -del "$(OBJDIR)\mkindex$P" 2>NUL
1963
+ -del "$(OBJDIR)\makeheaders$E" 2>NUL
1964
+ -del "$(OBJDIR)\makeheaders$P" 2>NUL
1965
+ -del "$(OBJDIR)\mkversion$E" 2>NUL
1966
+ -del "$(OBJDIR)\mkversion$P" 2>NUL
1967
+ -del "$(OBJDIR)\mkcss$E" 2>NUL
1968
+ -del "$(OBJDIR)\mkcss$P" 2>NUL
1969
+ -del "$(OBJDIR)\codecheck1$E" 2>NUL
1970
+ -del "$(OBJDIR)\codecheck1$P" 2>NUL
1971
+ -del "$(OBJDIR)\mkbuiltin$E" 2>NUL
1972
+ -del "$(OBJDIR)\mkbuiltin$P" 2>NUL
1973
+
1974
+realclean: clean
1975
+
1976
+"$(OBJDIR)\json$O" : "$(SRCDIR)\json_detail.h"
1977
+"$(OBJDIR)\json_artifact$O" : "$(SRCDIR)\json_detail.h"
1978
+"$(OBJDIR)\json_branch$O" : "$(SRCDIR)\json_detail.h"
1979
+"$(OBJDIR)\json_config$O" : "$(SRCDIR)\json_detail.h"
1980
+"$(OBJDIR)\json_diff$O" : "$(SRCDIR)\json_detail.h"
1981
+"$(OBJDIR)\json_dir$O" : "$(SRCDIR)\json_detail.h"
1982
+"$(OBJDIR)\json_finfo$O" : "$(SRCDIR)\json_detail.h"
1983
+"$(OBJDIR)\json_login$O" : "$(SRCDIR)\json_detail.h"
1984
+"$(OBJDIR)\json_query$O" : "$(SRCDIR)\json_detail.h"
1985
+"$(OBJDIR)\json_report$O" : "$(SRCDIR)\json_detail.h"
1986
+"$(OBJDIR)\json_status$O" : "$(SRCDIR)\json_detail.h"
1987
+"$(OBJDIR)\json_tag$O" : "$(SRCDIR)\json_detail.h"
1988
+"$(OBJDIR)\json_timeline$O" : "$(SRCDIR)\json_detail.h"
1989
+"$(OBJDIR)\json_user$O" : "$(SRCDIR)\json_detail.h"
1990
+"$(OBJDIR)\json_wiki$O" : "$(SRCDIR)\json_detail.h"
1991
+}
1992
+
1993
+writeln {"$(OX)\builtin_data.reslist": $(EXTRA_FILES) "$(B)\win\Makefile.msc"}
1994
+set redir {>}
1995
+foreach s [lsort $extra_files] {
1996
+ writeln "\techo \"\$(SRCDIR)\\${s}\" $redir \$@"
1997
+ set redir {>>}
1998
+}
1999
+
2000
+writeln ""
2001
+foreach s [lsort $src] {
2002
+ writeln "\"\$(OX)\\$s\$O\" : \"\$(OX)\\${s}_.c\" \"\$(OX)\\${s}.h\""
2003
+ writeln "\t\$(TCC) /Fo\$@ /Fd\$(@D)\\ -c \"\$(OX)\\${s}_.c\"\n"
2004
+ writeln "\"\$(OX)\\${s}_.c\" : \"\$(SRCDIR)\\$s.c\""
2005
+ writeln "\t\"\$(OBJDIR)\\translate\$E\" \$** > \$@\n"
2006
+}
2007
+
2008
+writeln "\"\$(OX)\\fossil.res\" : \"\$(B)\\win\\fossil.rc\""
2009
+writeln "\t\$(RCC) /fo \$@ \$**\n"
2010
+
2011
+writeln "\"\$(OX)\\headers\": \"\$(OBJDIR)\\makeheaders\$E\" \"\$(OX)\\page_index.h\" \"\$(OX)\\builtin_data.h\" \"\$(OX)\\default_css.h\" \"\$(OX)\\VERSION.h\""
2012
+writeln -nonewline "\t\"\$(OBJDIR)\\makeheaders\$E\" "
19672013
set i 0
19682014
foreach s [lsort $src] {
19692015
if {$i > 0} {
19702016
writeln " \\"
19712017
writeln -nonewline "\t\t\t"
19722018
}
1973
- writeln -nonewline "${s}_.c:$s.h"; incr i
2019
+ writeln -nonewline "\"\$(OX)\\${s}_.c\":\"\$(OX)\\$s.h\""; incr i
19742020
}
1975
-writeln " \\\n\t\t\t\$(SRCDIR)\\sqlite3.h \\"
1976
-writeln "\t\t\t\$(SRCDIR)\\th.h \\"
1977
-writeln "\t\t\tVERSION.h \\"
1978
-writeln "\t\t\t\$(SRCDIR)\\cson_amalgamation.h"
1979
-writeln "\t@copy /Y nul: headers"
2021
+writeln " \\\n\t\t\t\"\$(SRCDIR)\\sqlite3.h\" \\"
2022
+writeln "\t\t\t\"\$(SRCDIR)\\th.h\" \\"
2023
+writeln "\t\t\t\"\$(OX)\\VERSION.h\" \\"
2024
+writeln "\t\t\t\"\$(SRCDIR)\\cson_amalgamation.h\""
2025
+writeln "\t@copy /Y nul: $@"
19802026
19812027
19822028
close $output_file
19832029
#
19842030
# End of the win/Makefile.msc output
19852031
--- src/makemake.tcl
+++ src/makemake.tcl
@@ -26,10 +26,11 @@
26 # Set the separate extra_files variable further down for how to add non-C
27 # files, such as string and BLOB resources.
28 #
29 set src {
30 add
 
31 alerts
32 allrepo
33 attach
34 backlink
35 backoffice
@@ -193,11 +194,10 @@
193 -DSQLITE_DEFAULT_MEMSTATUS=0
194 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1
195 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS
196 -DSQLITE_OMIT_DECLTYPE
197 -DSQLITE_OMIT_DEPRECATED
198 -DSQLITE_OMIT_GET_TABLE
199 -DSQLITE_OMIT_PROGRESS_CALLBACK
200 -DSQLITE_OMIT_SHARED_CACHE
201 -DSQLITE_OMIT_LOAD_EXTENSION
202 -DSQLITE_MAX_EXPR_DEPTH=0
203 -DSQLITE_USE_ALLOCA
@@ -475,10 +475,11 @@
475 writeln "\$(OBJDIR)/headers:\t\$(OBJDIR)/page_index.h \$(OBJDIR)/builtin_data.h \$(OBJDIR)/makeheaders \$(OBJDIR)/VERSION.h"
476 writeln "\t\$(OBJDIR)/makeheaders $mhargs"
477 writeln "\ttouch \$(OBJDIR)/headers"
478 writeln "\$(OBJDIR)/headers: Makefile"
479 writeln "\$(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 : \$(SRCDIR)/json_detail.h"
 
480 writeln "Makefile:"
481 set extra_h(dispatch) " \$(OBJDIR)/page_index.h "
482 set extra_h(builtin) " \$(OBJDIR)/builtin_data.h "
483
484 foreach s [lsort $src] {
@@ -1423,11 +1424,10 @@
1423 $(OBJDIR)\json_tag$O : $(SRCDIR)\json_detail.h
1424 $(OBJDIR)\json_timeline$O : $(SRCDIR)\json_detail.h
1425 $(OBJDIR)\json_user$O : $(SRCDIR)\json_detail.h
1426 $(OBJDIR)\json_wiki$O : $(SRCDIR)\json_detail.h
1427
1428
1429 }
1430 foreach s [lsort $src] {
1431 writeln "\$(OBJDIR)\\$s\$O : ${s}_.c ${s}.h"
1432 writeln "\t\$(TCC) -o\$@ -c ${s}_.c\n"
1433 writeln "${s}_.c : \$(SRCDIR)\\$s.c"
@@ -1456,39 +1456,52 @@
1456 writeln {#
1457 ##############################################################################
1458 # WARNING: DO NOT EDIT, AUTOMATICALLY GENERATED FILE (SEE "src/makemake.tcl")
1459 ##############################################################################
1460 #
1461 # This Makefile will only function correctly if used from a sub-directory
1462 # that is a direct child of the top-level directory for this project.
1463 #
1464 !if !exist("..\.fossil-settings")
1465 !error "Please change the current directory to the one containing this file."
1466 !endif
1467
1468 #
1469 # This file is automatically generated. Instead of editing this
1470 # file, edit "makemake.tcl" then run "tclsh makemake.tcl"
1471 # to regenerate this file.
1472 #
1473 B = ..
1474 SRCDIR = $B\src
1475 OBJDIR = .
1476 OX = .
 
1477 O = .obj
1478 E = .exe
1479 P = .pdb
1480
1481 # Perl is only necessary if OpenSSL support is enabled and it must
1482 # be built from source code. The PERLDIR variable should point to
1483 # the directory containing the main Perl binary (i.e. "perl.exe").
1484 PERLDIR = C:\Perl\bin
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1485 PERL = perl.exe
1486
1487 # Enable debugging symbols?
1488 !ifndef DEBUG
1489 DEBUG = 0
 
 
 
1490 !endif
1491
1492 # Build the OpenSSL libraries?
1493 !ifndef FOSSIL_BUILD_SSL
1494 FOSSIL_BUILD_SSL = 0
@@ -1605,27 +1618,30 @@
1605 ZLIB = zdll.lib
1606 !else
1607 ZLIB = zlib.lib
1608 !endif
1609
1610 INCL = /I. /I$(SRCDIR) /I$B\win\include
1611
1612 !if $(FOSSIL_ENABLE_MINIZ)==0
1613 INCL = $(INCL) /I$(ZINCDIR)
1614 !endif
1615
1616 !if $(FOSSIL_ENABLE_SSL)!=0
1617 INCL = $(INCL) /I$(SSLINCDIR)
1618 !endif
1619
1620 !if $(FOSSIL_ENABLE_TCL)!=0
1621 INCL = $(INCL) /I$(TCLINCDIR)
1622 !endif
1623
1624 CFLAGS = /nologo
1625 LDFLAGS =
1626
 
 
 
1627 !if $(FOSSIL_DYNAMIC_BUILD)!=0
1628 LDFLAGS = $(LDFLAGS) /MANIFEST
1629 !else
1630 LDFLAGS = $(LDFLAGS) /NODEFAULTLIB:msvcrt /MANIFEST:NO
1631 !endif
@@ -1654,11 +1670,11 @@
1654 CRTFLAGS = /MT
1655 !endif
1656 !endif
1657
1658 !if $(DEBUG)!=0
1659 CFLAGS = $(CFLAGS) /Zi $(CRTFLAGS) /Od
1660 LDFLAGS = $(LDFLAGS) /DEBUG
1661 !else
1662 CFLAGS = $(CFLAGS) $(CRTFLAGS) /O2
1663 !endif
1664
@@ -1674,11 +1690,11 @@
1674 RCC = $(RCC) /DFOSSIL_DYNAMIC_BUILD=1
1675 !endif
1676
1677 !if $(FOSSIL_ENABLE_MINIZ)==0
1678 LIBS = $(LIBS) $(ZLIB)
1679 LIBDIR = $(LIBDIR) /LIBPATH:$(ZLIBDIR)
1680 !endif
1681
1682 !if $(FOSSIL_ENABLE_MINIZ)!=0
1683 TCC = $(TCC) /DFOSSIL_ENABLE_MINIZ=1
1684 RCC = $(RCC) /DFOSSIL_ENABLE_MINIZ=1
@@ -1691,11 +1707,11 @@
1691
1692 !if $(FOSSIL_ENABLE_SSL)!=0
1693 TCC = $(TCC) /DFOSSIL_ENABLE_SSL=1
1694 RCC = $(RCC) /DFOSSIL_ENABLE_SSL=1
1695 LIBS = $(LIBS) $(SSLLIB)
1696 LIBDIR = $(LIBDIR) /LIBPATH:$(SSLLIBDIR)
1697 !endif
1698
1699 !if $(FOSSIL_ENABLE_EXEC_REL_PATHS)!=0
1700 TCC = $(TCC) /DFOSSIL_ENABLE_EXEC_REL_PATHS=1
1701 RCC = $(RCC) /DFOSSIL_ENABLE_EXEC_REL_PATHS=1
@@ -1749,11 +1765,11 @@
1749 foreach s [lsort $src] {
1750 if {$i > 0} {
1751 writeln " \\"
1752 writeln -nonewline " "
1753 }
1754 writeln -nonewline "${s}_.c"; incr i
1755 }
1756 writeln "\n"
1757 writeln -nonewline "EXTRA_FILES = "
1758 set i 0
1759 foreach s [lsort $extra_files] {
@@ -1760,11 +1776,11 @@
1760 if {$i > 0} {
1761 writeln " \\"
1762 writeln -nonewline " "
1763 }
1764 set s [regsub -all / $s \\]
1765 writeln -nonewline "\$(SRCDIR)\\${s}"; incr i
1766 }
1767 writeln "\n"
1768 set AdditionalObj [list shell sqlite3 th th_lang th_tcl cson_amalgamation]
1769 writeln -nonewline "OBJ = "
1770 set i 0
@@ -1771,51 +1787,71 @@
1771 foreach s [lsort [concat $src $AdditionalObj]] {
1772 if {$i > 0} {
1773 writeln " \\"
1774 writeln -nonewline " "
1775 }
1776 writeln -nonewline "\$(OX)\\$s\$O"; incr i
1777 }
1778 if {$i > 0} {
1779 writeln " \\"
1780 }
1781 writeln "!if \$(FOSSIL_ENABLE_MINIZ)!=0"
1782 writeln -nonewline " "
1783 writeln "\$(OX)\\miniz\$O \\"; incr i
1784 writeln "!endif"
1785 writeln -nonewline " \$(OX)\\fossil.res\n\n"
1786 writeln [string map [list <<<NEXT_LINE>>> \\] {
1787 !ifndef BASEAPPNAME
1788 BASEAPPNAME = fossil
1789 !endif
1790
1791 APPNAME = $(OX)\$(BASEAPPNAME)$(E)
1792 PDBNAME = $(OX)\$(BASEAPPNAME)$(P)
1793 APPTARGETS =
1794
1795 all: $(OX) $(APPNAME)
 
 
 
 
 
 
 
 
 
 
 
 
 
1796
1797 zlib:
1798 @echo Building zlib from "$(ZLIBDIR)"...
1799 !if $(FOSSIL_ENABLE_WINXP)!=0
1800 @pushd "$(ZLIBDIR)" && $(MAKE) /f win32\Makefile.msc $(ZLIB) "CC=cl $(XPCFLAGS)" "LD=link $(XPLDFLAGS)" && popd
1801 !else
1802 @pushd "$(ZLIBDIR)" && $(MAKE) /f win32\Makefile.msc $(ZLIB) && popd
1803 !endif
1804
 
 
 
1805 !if $(FOSSIL_ENABLE_SSL)!=0
1806 openssl:
1807 @echo Building OpenSSL from "$(SSLDIR)"...
1808 !if "$(PERLDIR)" != ""
1809 @set PATH=$(PERLDIR);$(PATH)
 
 
1810 !endif
1811 @pushd "$(SSLDIR)" && $(PERL) Configure $(SSLCONFIG) && popd
1812 !if $(FOSSIL_ENABLE_WINXP)!=0
1813 @pushd "$(SSLDIR)" && $(MAKE) "CC=cl $(XPCFLAGS)" "LFLAGS=$(XPLDFLAGS)" && popd
1814 !else
1815 @pushd "$(SSLDIR)" && $(MAKE) && popd
1816 !endif
 
 
 
1817 !endif
1818
1819 !if $(FOSSIL_ENABLE_MINIZ)==0
1820 !if $(FOSSIL_BUILD_ZLIB)!=0
1821 APPTARGETS = $(APPTARGETS) zlib
@@ -1826,49 +1862,45 @@
1826 !if $(FOSSIL_BUILD_SSL)!=0
1827 APPTARGETS = $(APPTARGETS) openssl
1828 !endif
1829 !endif
1830
1831 $(APPNAME) : $(APPTARGETS) translate$E mkindex$E codecheck1$E headers $(OBJ) $(OX)\linkopts
1832 cd $(OX)
1833 codecheck1$E $(SRC)
1834 link $(LDFLAGS) /OUT:$@ $(LIBDIR) Wsetargv.obj fossil.res @linkopts
1835 if exist [email protected] <<<NEXT_LINE>>>
1836 $(MTC) -nologo -manifest [email protected] -outputresource:$@;1
1837
1838 $(OX)\linkopts: $B\win\Makefile.msc}]
1839 set redir {>}
1840 foreach s [lsort [concat $src $AdditionalObj]] {
1841 writeln "\techo \$(OX)\\$s.obj $redir \$@"
1842 set redir {>>}
1843 }
1844 set redir {>>}
1845 writeln "!if \$(FOSSIL_ENABLE_MINIZ)!=0"
1846 writeln "\techo \$(OX)\\miniz.obj $redir \$@"
1847 writeln "!endif"
1848 writeln "\techo \$(LIBS) $redir \$@"
1849 writeln {
1850 $(OX):
1851 @-mkdir $@
1852
1853 translate$E: $(SRCDIR)\translate.c
1854 $(BCC) $**
1855
1856 makeheaders$E: $(SRCDIR)\makeheaders.c
1857 $(BCC) $**
1858
1859 mkindex$E: $(SRCDIR)\mkindex.c
1860 $(BCC) $**
1861
1862 mkbuiltin$E: $(SRCDIR)\mkbuiltin.c
1863 $(BCC) $**
1864
1865 mkversion$E: $(SRCDIR)\mkversion.c
1866 $(BCC) $**
1867
1868 codecheck1$E: $(SRCDIR)\codecheck1.c
1869 $(BCC) $**
1870
1871 !if $(USE_SEE)!=0
1872 SEE_FLAGS = /DSQLITE_HAS_CODEC=1 /DSQLITE_SHELL_DBKEY_PROC=fossil_key
1873 SQLITE3_SHELL_SRC = $(SRCDIR)\shell-see.c
1874 SQLITE3_SRC = $(SRCDIR)\sqlite3-see.c
@@ -1876,109 +1908,123 @@
1876 SEE_FLAGS =
1877 SQLITE3_SHELL_SRC = $(SRCDIR)\shell.c
1878 SQLITE3_SRC = $(SRCDIR)\sqlite3.c
1879 !endif
1880
1881 $(OX)\shell$O : $(SQLITE3_SHELL_SRC) $B\win\Makefile.msc
1882 $(TCC) /Fo$@ $(SHELL_OPTIONS) $(SQLITE_OPTIONS) $(SHELL_CFLAGS) $(SEE_FLAGS) -c $(SQLITE3_SHELL_SRC)
1883
1884 $(OX)\sqlite3$O : $(SQLITE3_SRC) $B\win\Makefile.msc
1885 $(TCC) /Fo$@ -c $(SQLITE_OPTIONS) $(SQLITE_CFLAGS) $(SEE_FLAGS) $(SQLITE3_SRC)
1886
1887 $(OX)\th$O : $(SRCDIR)\th.c
1888 $(TCC) /Fo$@ -c $**
1889
1890 $(OX)\th_lang$O : $(SRCDIR)\th_lang.c
1891 $(TCC) /Fo$@ -c $**
1892
1893 $(OX)\th_tcl$O : $(SRCDIR)\th_tcl.c
1894 $(TCC) /Fo$@ -c $**
1895
1896 $(OX)\miniz$O : $(SRCDIR)\miniz.c
1897 $(TCC) /Fo$@ -c $(MINIZ_OPTIONS) $(SRCDIR)\miniz.c
1898
1899 VERSION.h : mkversion$E $B\manifest.uuid $B\manifest $B\VERSION
1900 $** > $@
1901
1902 $(OX)\cson_amalgamation$O : $(SRCDIR)\cson_amalgamation.c
1903 $(TCC) /Fo$@ /c $**
1904
1905 page_index.h: mkindex$E $(SRC)
1906 $** > $@
1907
1908 builtin_data.h: mkbuiltin$E $(EXTRA_FILES)
1909 mkbuiltin$E --prefix $(SRCDIR)/ $(EXTRA_FILES) > $@
1910
1911 clean:
1912 -del $(OX)\*.obj 2>NUL
1913 -del *.obj 2>NUL
1914 -del *_.c 2>NUL
1915 -del *.h 2>NUL
1916 -del *.ilk 2>NUL
1917 -del *.map 2>NUL
1918 -del *.res 2>NUL
1919 -del headers 2>NUL
1920 -del linkopts 2>NUL
1921 -del vc*.pdb 2>NUL
1922
1923 realclean: clean
1924 -del $(APPNAME) 2>NUL
1925 -del $(PDBNAME) 2>NUL
1926 -del translate$E 2>NUL
1927 -del translate$P 2>NUL
1928 -del mkindex$E 2>NUL
1929 -del mkindex$P 2>NUL
1930 -del makeheaders$E 2>NUL
1931 -del makeheaders$P 2>NUL
1932 -del mkversion$E 2>NUL
1933 -del mkversion$P 2>NUL
1934 -del codecheck1$E 2>NUL
1935 -del codecheck1$P 2>NUL
1936 -del mkbuiltin$E 2>NUL
1937 -del mkbuiltin$P 2>NUL
1938
1939 $(OBJDIR)\json$O : $(SRCDIR)\json_detail.h
1940 $(OBJDIR)\json_artifact$O : $(SRCDIR)\json_detail.h
1941 $(OBJDIR)\json_branch$O : $(SRCDIR)\json_detail.h
1942 $(OBJDIR)\json_config$O : $(SRCDIR)\json_detail.h
1943 $(OBJDIR)\json_diff$O : $(SRCDIR)\json_detail.h
1944 $(OBJDIR)\json_dir$O : $(SRCDIR)\json_detail.h
1945 $(OBJDIR)\json_finfo$O : $(SRCDIR)\json_detail.h
1946 $(OBJDIR)\json_login$O : $(SRCDIR)\json_detail.h
1947 $(OBJDIR)\json_query$O : $(SRCDIR)\json_detail.h
1948 $(OBJDIR)\json_report$O : $(SRCDIR)\json_detail.h
1949 $(OBJDIR)\json_status$O : $(SRCDIR)\json_detail.h
1950 $(OBJDIR)\json_tag$O : $(SRCDIR)\json_detail.h
1951 $(OBJDIR)\json_timeline$O : $(SRCDIR)\json_detail.h
1952 $(OBJDIR)\json_user$O : $(SRCDIR)\json_detail.h
1953 $(OBJDIR)\json_wiki$O : $(SRCDIR)\json_detail.h
1954 }
1955 foreach s [lsort $src] {
1956 writeln "\$(OX)\\$s\$O : ${s}_.c ${s}.h"
1957 writeln "\t\$(TCC) /Fo\$@ -c ${s}_.c\n"
1958 writeln "${s}_.c : \$(SRCDIR)\\$s.c"
1959 writeln "\ttranslate\$E \$** > \$@\n"
1960 }
1961
1962 writeln "fossil.res : \$B\\win\\fossil.rc"
1963 writeln "\t\$(RCC) /fo \$@ \$**\n"
1964
1965 writeln "headers: makeheaders\$E page_index.h builtin_data.h VERSION.h"
1966 writeln -nonewline "\tmakeheaders\$E "
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1967 set i 0
1968 foreach s [lsort $src] {
1969 if {$i > 0} {
1970 writeln " \\"
1971 writeln -nonewline "\t\t\t"
1972 }
1973 writeln -nonewline "${s}_.c:$s.h"; incr i
1974 }
1975 writeln " \\\n\t\t\t\$(SRCDIR)\\sqlite3.h \\"
1976 writeln "\t\t\t\$(SRCDIR)\\th.h \\"
1977 writeln "\t\t\tVERSION.h \\"
1978 writeln "\t\t\t\$(SRCDIR)\\cson_amalgamation.h"
1979 writeln "\t@copy /Y nul: headers"
1980
1981
1982 close $output_file
1983 #
1984 # End of the win/Makefile.msc output
1985
--- src/makemake.tcl
+++ src/makemake.tcl
@@ -26,10 +26,11 @@
26 # Set the separate extra_files variable further down for how to add non-C
27 # files, such as string and BLOB resources.
28 #
29 set src {
30 add
31 ajax
32 alerts
33 allrepo
34 attach
35 backlink
36 backoffice
@@ -193,11 +194,10 @@
194 -DSQLITE_DEFAULT_MEMSTATUS=0
195 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1
196 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS
197 -DSQLITE_OMIT_DECLTYPE
198 -DSQLITE_OMIT_DEPRECATED
 
199 -DSQLITE_OMIT_PROGRESS_CALLBACK
200 -DSQLITE_OMIT_SHARED_CACHE
201 -DSQLITE_OMIT_LOAD_EXTENSION
202 -DSQLITE_MAX_EXPR_DEPTH=0
203 -DSQLITE_USE_ALLOCA
@@ -475,10 +475,11 @@
475 writeln "\$(OBJDIR)/headers:\t\$(OBJDIR)/page_index.h \$(OBJDIR)/builtin_data.h \$(OBJDIR)/makeheaders \$(OBJDIR)/VERSION.h"
476 writeln "\t\$(OBJDIR)/makeheaders $mhargs"
477 writeln "\ttouch \$(OBJDIR)/headers"
478 writeln "\$(OBJDIR)/headers: Makefile"
479 writeln "\$(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 : \$(SRCDIR)/json_detail.h"
480
481 writeln "Makefile:"
482 set extra_h(dispatch) " \$(OBJDIR)/page_index.h "
483 set extra_h(builtin) " \$(OBJDIR)/builtin_data.h "
484
485 foreach s [lsort $src] {
@@ -1423,11 +1424,10 @@
1424 $(OBJDIR)\json_tag$O : $(SRCDIR)\json_detail.h
1425 $(OBJDIR)\json_timeline$O : $(SRCDIR)\json_detail.h
1426 $(OBJDIR)\json_user$O : $(SRCDIR)\json_detail.h
1427 $(OBJDIR)\json_wiki$O : $(SRCDIR)\json_detail.h
1428
 
1429 }
1430 foreach s [lsort $src] {
1431 writeln "\$(OBJDIR)\\$s\$O : ${s}_.c ${s}.h"
1432 writeln "\t\$(TCC) -o\$@ -c ${s}_.c\n"
1433 writeln "${s}_.c : \$(SRCDIR)\\$s.c"
@@ -1456,39 +1456,52 @@
1456 writeln {#
1457 ##############################################################################
1458 # WARNING: DO NOT EDIT, AUTOMATICALLY GENERATED FILE (SEE "src/makemake.tcl")
1459 ##############################################################################
1460 #
 
 
 
 
 
 
 
1461 #
1462 # This file is automatically generated. Instead of editing this
1463 # file, edit "makemake.tcl" then run "tclsh makemake.tcl"
1464 # to regenerate this file.
1465 #
1466 B = ..
1467 SRCDIR = $(B)\src
1468 T = .
1469 OBJDIR = $(T)
1470 OX = $(OBJDIR)
1471 O = .obj
1472 E = .exe
1473 P = .pdb
1474
1475 INSTALLDIR = .
1476 !ifdef DESTDIR
1477 INSTALLDIR = $(DESTDIR)\$(INSTALLDIR)
1478 !endif
1479
1480 # When building out of source, this Makefile needs to know the path to the base
1481 # top-level directory for this project. Pass it on NMAKE command line via make
1482 # variable B:
1483 # NMAKE /f "path\to\this\Makefile" B="path/to/fossil/root"
1484 #
1485 # NOTE: Make sure B path has no trailing backslash, UNIX-style path is OK too.
1486 #
1487 !if !exist("$(B)\.fossil-settings")
1488 !error Please specify path to project base directory: B="path/to/fossil"
1489 !endif
1490
1491 # Perl is only necessary if OpenSSL support is enabled and it is built from
1492 # source code. The PERLDIR environment variable, if it exists, should point
1493 # to the directory containing the main Perl executable specified here (i.e.
1494 # "perl.exe").
1495 PERL = perl.exe
1496
1497 # Enable debugging symbols?
1498 !ifndef DEBUG
1499 DEBUG = 0
1500 !endif
1501 !ifdef FOSSIL_DEBUG
1502 DEBUG = 1
1503 !endif
1504
1505 # Build the OpenSSL libraries?
1506 !ifndef FOSSIL_BUILD_SSL
1507 FOSSIL_BUILD_SSL = 0
@@ -1605,27 +1618,30 @@
1618 ZLIB = zdll.lib
1619 !else
1620 ZLIB = zlib.lib
1621 !endif
1622
1623 INCL = /I. /I"$(OX)" /I"$(SRCDIR)" /I"$(B)\win\include"
1624
1625 !if $(FOSSIL_ENABLE_MINIZ)==0
1626 INCL = $(INCL) /I"$(ZINCDIR)"
1627 !endif
1628
1629 !if $(FOSSIL_ENABLE_SSL)!=0
1630 INCL = $(INCL) /I"$(SSLINCDIR)"
1631 !endif
1632
1633 !if $(FOSSIL_ENABLE_TCL)!=0
1634 INCL = $(INCL) /I"$(TCLINCDIR)"
1635 !endif
1636
1637 CFLAGS = /nologo
1638 LDFLAGS =
1639
1640 CFLAGS = $(CFLAGS) /D_CRT_SECURE_NO_DEPRECATE /D_CRT_SECURE_NO_WARNINGS
1641 CFLAGS = $(CFLAGS) /D_CRT_NONSTDC_NO_DEPRECATE /D_CRT_NONSTDC_NO_WARNINGS
1642
1643 !if $(FOSSIL_DYNAMIC_BUILD)!=0
1644 LDFLAGS = $(LDFLAGS) /MANIFEST
1645 !else
1646 LDFLAGS = $(LDFLAGS) /NODEFAULTLIB:msvcrt /MANIFEST:NO
1647 !endif
@@ -1654,11 +1670,11 @@
1670 CRTFLAGS = /MT
1671 !endif
1672 !endif
1673
1674 !if $(DEBUG)!=0
1675 CFLAGS = $(CFLAGS) /Zi $(CRTFLAGS) /Od /DFOSSIL_DEBUG
1676 LDFLAGS = $(LDFLAGS) /DEBUG
1677 !else
1678 CFLAGS = $(CFLAGS) $(CRTFLAGS) /O2
1679 !endif
1680
@@ -1674,11 +1690,11 @@
1690 RCC = $(RCC) /DFOSSIL_DYNAMIC_BUILD=1
1691 !endif
1692
1693 !if $(FOSSIL_ENABLE_MINIZ)==0
1694 LIBS = $(LIBS) $(ZLIB)
1695 LIBDIR = $(LIBDIR) /LIBPATH:"$(ZLIBDIR)"
1696 !endif
1697
1698 !if $(FOSSIL_ENABLE_MINIZ)!=0
1699 TCC = $(TCC) /DFOSSIL_ENABLE_MINIZ=1
1700 RCC = $(RCC) /DFOSSIL_ENABLE_MINIZ=1
@@ -1691,11 +1707,11 @@
1707
1708 !if $(FOSSIL_ENABLE_SSL)!=0
1709 TCC = $(TCC) /DFOSSIL_ENABLE_SSL=1
1710 RCC = $(RCC) /DFOSSIL_ENABLE_SSL=1
1711 LIBS = $(LIBS) $(SSLLIB)
1712 LIBDIR = $(LIBDIR) /LIBPATH:"$(SSLLIBDIR)"
1713 !endif
1714
1715 !if $(FOSSIL_ENABLE_EXEC_REL_PATHS)!=0
1716 TCC = $(TCC) /DFOSSIL_ENABLE_EXEC_REL_PATHS=1
1717 RCC = $(RCC) /DFOSSIL_ENABLE_EXEC_REL_PATHS=1
@@ -1749,11 +1765,11 @@
1765 foreach s [lsort $src] {
1766 if {$i > 0} {
1767 writeln " \\"
1768 writeln -nonewline " "
1769 }
1770 writeln -nonewline "\"\$(OX)\\${s}_.c\""; incr i
1771 }
1772 writeln "\n"
1773 writeln -nonewline "EXTRA_FILES = "
1774 set i 0
1775 foreach s [lsort $extra_files] {
@@ -1760,11 +1776,11 @@
1776 if {$i > 0} {
1777 writeln " \\"
1778 writeln -nonewline " "
1779 }
1780 set s [regsub -all / $s \\]
1781 writeln -nonewline "\"\$(SRCDIR)\\${s}\""; incr i
1782 }
1783 writeln "\n"
1784 set AdditionalObj [list shell sqlite3 th th_lang th_tcl cson_amalgamation]
1785 writeln -nonewline "OBJ = "
1786 set i 0
@@ -1771,51 +1787,71 @@
1787 foreach s [lsort [concat $src $AdditionalObj]] {
1788 if {$i > 0} {
1789 writeln " \\"
1790 writeln -nonewline " "
1791 }
1792 writeln -nonewline "\"\$(OX)\\$s\$O\""; incr i
1793 }
1794 if {$i > 0} {
1795 writeln " \\"
1796 }
1797 writeln "!if \$(FOSSIL_ENABLE_MINIZ)!=0"
1798 writeln -nonewline " "
1799 writeln "\"\$(OX)\\miniz\$O\" \\"; incr i
1800 writeln "!endif"
1801 writeln -nonewline " \"\$(OX)\\fossil.res\"\n\n"
1802 writeln [string map [list <<<NEXT_LINE>>> \\] {
1803 !ifndef BASEAPPNAME
1804 BASEAPPNAME = fossil
1805 !endif
1806
1807 APPNAME = $(OX)\$(BASEAPPNAME)$(E)
1808 PDBNAME = $(OX)\$(BASEAPPNAME)$(P)
1809 APPTARGETS =
1810
1811 all: "$(OX)" "$(APPNAME)"
1812
1813 $(BASEAPPNAME): "$(APPNAME)"
1814
1815 $(BASEAPPNAME)$(E): "$(APPNAME)"
1816
1817 install: "$(APPNAME)"
1818 echo F | xcopy /Y "$(APPNAME)" "$(INSTALLDIR)"\*
1819 !if $(DEBUG)!=0
1820 echo F | xcopy /Y "$(PDBNAME)" "$(INSTALLDIR)"\*
1821 !endif
1822
1823 $(OX):
1824 @-mkdir $@
1825
1826 zlib:
1827 @echo Building zlib from "$(ZLIBDIR)"...
1828 !if $(FOSSIL_ENABLE_WINXP)!=0
1829 @pushd "$(ZLIBDIR)" && $(MAKE) /f win32\Makefile.msc $(ZLIB) "CC=cl $(XPCFLAGS)" "LD=link $(XPLDFLAGS)" && popd
1830 !else
1831 @pushd "$(ZLIBDIR)" && $(MAKE) /f win32\Makefile.msc $(ZLIB) && popd
1832 !endif
1833
1834 clean-zlib:
1835 @pushd "$(ZLIBDIR)" && $(MAKE) /f win32\Makefile.msc clean && popd
1836
1837 !if $(FOSSIL_ENABLE_SSL)!=0
1838 openssl:
1839 @echo Building OpenSSL from "$(SSLDIR)"...
1840 !ifdef PERLDIR
1841 @pushd "$(SSLDIR)" && "$(PERLDIR)\$(PERL)" Configure $(SSLCONFIG) && popd
1842 !else
1843 @pushd "$(SSLDIR)" && "$(PERL)" Configure $(SSLCONFIG) && popd
1844 !endif
 
1845 !if $(FOSSIL_ENABLE_WINXP)!=0
1846 @pushd "$(SSLDIR)" && $(MAKE) "CC=cl $(XPCFLAGS)" "LFLAGS=$(XPLDFLAGS)" && popd
1847 !else
1848 @pushd "$(SSLDIR)" && $(MAKE) && popd
1849 !endif
1850
1851 clean-openssl:
1852 @pushd "$(SSLDIR)" && $(MAKE) clean && popd
1853 !endif
1854
1855 !if $(FOSSIL_ENABLE_MINIZ)==0
1856 !if $(FOSSIL_BUILD_ZLIB)!=0
1857 APPTARGETS = $(APPTARGETS) zlib
@@ -1826,49 +1862,45 @@
1862 !if $(FOSSIL_BUILD_SSL)!=0
1863 APPTARGETS = $(APPTARGETS) openssl
1864 !endif
1865 !endif
1866
1867 "$(APPNAME)" : $(APPTARGETS) "$(OBJDIR)\translate$E" "$(OBJDIR)\mkindex$E" "$(OBJDIR)\codecheck1$E" "$(OX)\headers" $(OBJ) "$(OX)\linkopts"
1868 "$(OBJDIR)\codecheck1$E" $(SRC)
1869 link $(LDFLAGS) /OUT:$@ /PDB:$(@D)\ $(LIBDIR) Wsetargv.obj "$(OX)\fossil.res" @"$(OX)\linkopts"
1870 if exist "$(B)\win\fossil.exe.manifest" <<<NEXT_LINE>>>
1871 $(MTC) -nologo -manifest "$(B)\win\fossil.exe.manifest" -outputresource:$@;1
1872
1873 "$(OX)\linkopts": "$(B)\win\Makefile.msc"}]
 
1874 set redir {>}
1875 foreach s [lsort [concat $src $AdditionalObj]] {
1876 writeln "\techo \"\$(OX)\\$s.obj\" $redir \$@"
1877 set redir {>>}
1878 }
1879 set redir {>>}
1880 writeln "!if \$(FOSSIL_ENABLE_MINIZ)!=0"
1881 writeln "\techo \"\$(OX)\\miniz.obj\" $redir \$@"
1882 writeln "!endif"
1883 writeln "\techo \$(LIBS) $redir \$@"
1884 writeln {
1885 "$(OBJDIR)\translate$E": "$(SRCDIR)\translate.c"
1886 $(BCC) /Fe$@ /Fo$(@D)\ /Fd$(@D)\ $**
1887
1888 "$(OBJDIR)\makeheaders$E": "$(SRCDIR)\makeheaders.c"
1889 $(BCC) /Fe$@ /Fo$(@D)\ /Fd$(@D)\ $**
1890
1891 "$(OBJDIR)\mkindex$E": "$(SRCDIR)\mkindex.c"
1892 $(BCC) /Fe$@ /Fo$(@D)\ /Fd$(@D)\ $**
1893
1894 "$(OBJDIR)\mkbuiltin$E": "$(SRCDIR)\mkbuiltin.c"
1895 $(BCC) /Fe$@ /Fo$(@D)\ /Fd$(@D)\ $**
1896
1897 "$(OBJDIR)\mkversion$E": "$(SRCDIR)\mkversion.c"
1898 $(BCC) /Fe$@ /Fo$(@D)\ /Fd$(@D)\ $**
1899
1900 "$(OBJDIR)\codecheck1$E": "$(SRCDIR)\codecheck1.c"
1901 $(BCC) /Fe$@ /Fo$(@D)\ /Fd$(@D)\ $**
 
 
 
1902
1903 !if $(USE_SEE)!=0
1904 SEE_FLAGS = /DSQLITE_HAS_CODEC=1 /DSQLITE_SHELL_DBKEY_PROC=fossil_key
1905 SQLITE3_SHELL_SRC = $(SRCDIR)\shell-see.c
1906 SQLITE3_SRC = $(SRCDIR)\sqlite3-see.c
@@ -1876,109 +1908,123 @@
1908 SEE_FLAGS =
1909 SQLITE3_SHELL_SRC = $(SRCDIR)\shell.c
1910 SQLITE3_SRC = $(SRCDIR)\sqlite3.c
1911 !endif
1912
1913 "$(OX)\shell$O" : "$(SQLITE3_SHELL_SRC)" "$(B)\win\Makefile.msc"
1914 $(TCC) /Fo$@ /Fd$(@D)\ $(SHELL_OPTIONS) $(SQLITE_OPTIONS) $(SHELL_CFLAGS) $(SEE_FLAGS) -c "$(SQLITE3_SHELL_SRC)"
1915
1916 "$(OX)\sqlite3$O" : "$(SQLITE3_SRC)" "$(B)\win\Makefile.msc"
1917 $(TCC) /Fo$@ /Fd$(@D)\ -c $(SQLITE_OPTIONS) $(SQLITE_CFLAGS) $(SEE_FLAGS) "$(SQLITE3_SRC)"
1918
1919 "$(OX)\th$O" : "$(SRCDIR)\th.c"
1920 $(TCC) /Fo$@ /Fd$(@D)\ -c $**
1921
1922 "$(OX)\th_lang$O" : "$(SRCDIR)\th_lang.c"
1923 $(TCC) /Fo$@ /Fd$(@D)\ -c $**
1924
1925 "$(OX)\th_tcl$O" : "$(SRCDIR)\th_tcl.c"
1926 $(TCC) /Fo$@ /Fd$(@D)\ -c $**
1927
1928 "$(OX)\miniz$O" : "$(SRCDIR)\miniz.c"
1929 $(TCC) /Fo$@ /Fd$(@D)\ -c $(MINIZ_OPTIONS) $**
1930
1931 "$(OX)\VERSION.h" : "$(OBJDIR)\mkversion$E" "$(B)\manifest.uuid" "$(B)\manifest" "$(B)\VERSION"
1932 $** > $@
1933
1934 "$(OX)\cson_amalgamation$O" : "$(SRCDIR)\cson_amalgamation.c"
1935 $(TCC) /Fo$@ /Fd$(@D)\ -c $**
1936
1937 "$(OX)\page_index.h": "$(OBJDIR)\mkindex$E" $(SRC)
1938 $** > $@
1939
1940 "$(OX)\builtin_data.h": "$(OBJDIR)\mkbuiltin$E" "$(OX)\builtin_data.reslist"
1941 "$(OBJDIR)\mkbuiltin$E" --prefix "$(SRCDIR)/" --reslist "$(OX)\builtin_data.reslist" > $@
1942
1943 cleanx:
1944 -del "$(OX)\*.obj" 2>NUL
1945 -del "$(OBJDIR)\*.obj" 2>NUL
1946 -del "$(OX)\*_.c" 2>NUL
1947 -del "$(OX)\*.h" 2>NUL
1948 -del "$(OX)\*.ilk" 2>NUL
1949 -del "$(OX)\*.map" 2>NUL
1950 -del "$(OX)\*.res" 2>NUL
1951 -del "$(OX)\*.reslist" 2>NUL
1952 -del "$(OX)\headers" 2>NUL
1953 -del "$(OX)\linkopts" 2>NUL
1954 -del "$(OX)\vc*.pdb" 2>NUL
1955
1956 clean: cleanx
1957 -del "$(APPNAME)" 2>NUL
1958 -del "$(PDBNAME)" 2>NUL
1959 -del "$(OBJDIR)\translate$E" 2>NUL
1960 -del "$(OBJDIR)\translate$P" 2>NUL
1961 -del "$(OBJDIR)\mkindex$E" 2>NUL
1962 -del "$(OBJDIR)\mkindex$P" 2>NUL
1963 -del "$(OBJDIR)\makeheaders$E" 2>NUL
1964 -del "$(OBJDIR)\makeheaders$P" 2>NUL
1965 -del "$(OBJDIR)\mkversion$E" 2>NUL
1966 -del "$(OBJDIR)\mkversion$P" 2>NUL
1967 -del "$(OBJDIR)\mkcss$E" 2>NUL
1968 -del "$(OBJDIR)\mkcss$P" 2>NUL
1969 -del "$(OBJDIR)\codecheck1$E" 2>NUL
1970 -del "$(OBJDIR)\codecheck1$P" 2>NUL
1971 -del "$(OBJDIR)\mkbuiltin$E" 2>NUL
1972 -del "$(OBJDIR)\mkbuiltin$P" 2>NUL
1973
1974 realclean: clean
1975
1976 "$(OBJDIR)\json$O" : "$(SRCDIR)\json_detail.h"
1977 "$(OBJDIR)\json_artifact$O" : "$(SRCDIR)\json_detail.h"
1978 "$(OBJDIR)\json_branch$O" : "$(SRCDIR)\json_detail.h"
1979 "$(OBJDIR)\json_config$O" : "$(SRCDIR)\json_detail.h"
1980 "$(OBJDIR)\json_diff$O" : "$(SRCDIR)\json_detail.h"
1981 "$(OBJDIR)\json_dir$O" : "$(SRCDIR)\json_detail.h"
1982 "$(OBJDIR)\json_finfo$O" : "$(SRCDIR)\json_detail.h"
1983 "$(OBJDIR)\json_login$O" : "$(SRCDIR)\json_detail.h"
1984 "$(OBJDIR)\json_query$O" : "$(SRCDIR)\json_detail.h"
1985 "$(OBJDIR)\json_report$O" : "$(SRCDIR)\json_detail.h"
1986 "$(OBJDIR)\json_status$O" : "$(SRCDIR)\json_detail.h"
1987 "$(OBJDIR)\json_tag$O" : "$(SRCDIR)\json_detail.h"
1988 "$(OBJDIR)\json_timeline$O" : "$(SRCDIR)\json_detail.h"
1989 "$(OBJDIR)\json_user$O" : "$(SRCDIR)\json_detail.h"
1990 "$(OBJDIR)\json_wiki$O" : "$(SRCDIR)\json_detail.h"
1991 }
1992
1993 writeln {"$(OX)\builtin_data.reslist": $(EXTRA_FILES) "$(B)\win\Makefile.msc"}
1994 set redir {>}
1995 foreach s [lsort $extra_files] {
1996 writeln "\techo \"\$(SRCDIR)\\${s}\" $redir \$@"
1997 set redir {>>}
1998 }
1999
2000 writeln ""
2001 foreach s [lsort $src] {
2002 writeln "\"\$(OX)\\$s\$O\" : \"\$(OX)\\${s}_.c\" \"\$(OX)\\${s}.h\""
2003 writeln "\t\$(TCC) /Fo\$@ /Fd\$(@D)\\ -c \"\$(OX)\\${s}_.c\"\n"
2004 writeln "\"\$(OX)\\${s}_.c\" : \"\$(SRCDIR)\\$s.c\""
2005 writeln "\t\"\$(OBJDIR)\\translate\$E\" \$** > \$@\n"
2006 }
2007
2008 writeln "\"\$(OX)\\fossil.res\" : \"\$(B)\\win\\fossil.rc\""
2009 writeln "\t\$(RCC) /fo \$@ \$**\n"
2010
2011 writeln "\"\$(OX)\\headers\": \"\$(OBJDIR)\\makeheaders\$E\" \"\$(OX)\\page_index.h\" \"\$(OX)\\builtin_data.h\" \"\$(OX)\\default_css.h\" \"\$(OX)\\VERSION.h\""
2012 writeln -nonewline "\t\"\$(OBJDIR)\\makeheaders\$E\" "
2013 set i 0
2014 foreach s [lsort $src] {
2015 if {$i > 0} {
2016 writeln " \\"
2017 writeln -nonewline "\t\t\t"
2018 }
2019 writeln -nonewline "\"\$(OX)\\${s}_.c\":\"\$(OX)\\$s.h\""; incr i
2020 }
2021 writeln " \\\n\t\t\t\"\$(SRCDIR)\\sqlite3.h\" \\"
2022 writeln "\t\t\t\"\$(SRCDIR)\\th.h\" \\"
2023 writeln "\t\t\t\"\$(OX)\\VERSION.h\" \\"
2024 writeln "\t\t\t\"\$(SRCDIR)\\cson_amalgamation.h\""
2025 writeln "\t@copy /Y nul: $@"
2026
2027
2028 close $output_file
2029 #
2030 # End of the win/Makefile.msc output
2031
+200 -154
--- src/makemake.tcl
+++ src/makemake.tcl
@@ -26,10 +26,11 @@
2626
# Set the separate extra_files variable further down for how to add non-C
2727
# files, such as string and BLOB resources.
2828
#
2929
set src {
3030
add
31
+ ajax
3132
alerts
3233
allrepo
3334
attach
3435
backlink
3536
backoffice
@@ -193,11 +194,10 @@
193194
-DSQLITE_DEFAULT_MEMSTATUS=0
194195
-DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1
195196
-DSQLITE_LIKE_DOESNT_MATCH_BLOBS
196197
-DSQLITE_OMIT_DECLTYPE
197198
-DSQLITE_OMIT_DEPRECATED
198
- -DSQLITE_OMIT_GET_TABLE
199199
-DSQLITE_OMIT_PROGRESS_CALLBACK
200200
-DSQLITE_OMIT_SHARED_CACHE
201201
-DSQLITE_OMIT_LOAD_EXTENSION
202202
-DSQLITE_MAX_EXPR_DEPTH=0
203203
-DSQLITE_USE_ALLOCA
@@ -475,10 +475,11 @@
475475
writeln "\$(OBJDIR)/headers:\t\$(OBJDIR)/page_index.h \$(OBJDIR)/builtin_data.h \$(OBJDIR)/makeheaders \$(OBJDIR)/VERSION.h"
476476
writeln "\t\$(OBJDIR)/makeheaders $mhargs"
477477
writeln "\ttouch \$(OBJDIR)/headers"
478478
writeln "\$(OBJDIR)/headers: Makefile"
479479
writeln "\$(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 : \$(SRCDIR)/json_detail.h"
480
+
480481
writeln "Makefile:"
481482
set extra_h(dispatch) " \$(OBJDIR)/page_index.h "
482483
set extra_h(builtin) " \$(OBJDIR)/builtin_data.h "
483484
484485
foreach s [lsort $src] {
@@ -1423,11 +1424,10 @@
14231424
$(OBJDIR)\json_tag$O : $(SRCDIR)\json_detail.h
14241425
$(OBJDIR)\json_timeline$O : $(SRCDIR)\json_detail.h
14251426
$(OBJDIR)\json_user$O : $(SRCDIR)\json_detail.h
14261427
$(OBJDIR)\json_wiki$O : $(SRCDIR)\json_detail.h
14271428
1428
-
14291429
}
14301430
foreach s [lsort $src] {
14311431
writeln "\$(OBJDIR)\\$s\$O : ${s}_.c ${s}.h"
14321432
writeln "\t\$(TCC) -o\$@ -c ${s}_.c\n"
14331433
writeln "${s}_.c : \$(SRCDIR)\\$s.c"
@@ -1456,39 +1456,52 @@
14561456
writeln {#
14571457
##############################################################################
14581458
# WARNING: DO NOT EDIT, AUTOMATICALLY GENERATED FILE (SEE "src/makemake.tcl")
14591459
##############################################################################
14601460
#
1461
-# This Makefile will only function correctly if used from a sub-directory
1462
-# that is a direct child of the top-level directory for this project.
1463
-#
1464
-!if !exist("..\.fossil-settings")
1465
-!error "Please change the current directory to the one containing this file."
1466
-!endif
1467
-
14681461
#
14691462
# This file is automatically generated. Instead of editing this
14701463
# file, edit "makemake.tcl" then run "tclsh makemake.tcl"
14711464
# to regenerate this file.
14721465
#
14731466
B = ..
1474
-SRCDIR = $B\src
1475
-OBJDIR = .
1476
-OX = .
1467
+SRCDIR = $(B)\src
1468
+T = .
1469
+OBJDIR = $(T)
1470
+OX = $(OBJDIR)
14771471
O = .obj
14781472
E = .exe
14791473
P = .pdb
14801474
1481
-# Perl is only necessary if OpenSSL support is enabled and it must
1482
-# be built from source code. The PERLDIR variable should point to
1483
-# the directory containing the main Perl binary (i.e. "perl.exe").
1484
-PERLDIR = C:\Perl\bin
1475
+INSTALLDIR = .
1476
+!ifdef DESTDIR
1477
+INSTALLDIR = $(DESTDIR)\$(INSTALLDIR)
1478
+!endif
1479
+
1480
+# When building out of source, this Makefile needs to know the path to the base
1481
+# top-level directory for this project. Pass it on NMAKE command line via make
1482
+# variable B:
1483
+# NMAKE /f "path\to\this\Makefile" B="path/to/fossil/root"
1484
+#
1485
+# NOTE: Make sure B path has no trailing backslash, UNIX-style path is OK too.
1486
+#
1487
+!if !exist("$(B)\.fossil-settings")
1488
+!error Please specify path to project base directory: B="path/to/fossil"
1489
+!endif
1490
+
1491
+# Perl is only necessary if OpenSSL support is enabled and it is built from
1492
+# source code. The PERLDIR environment variable, if it exists, should point
1493
+# to the directory containing the main Perl executable specified here (i.e.
1494
+# "perl.exe").
14851495
PERL = perl.exe
14861496
14871497
# Enable debugging symbols?
14881498
!ifndef DEBUG
14891499
DEBUG = 0
1500
+!endif
1501
+!ifdef FOSSIL_DEBUG
1502
+DEBUG = 1
14901503
!endif
14911504
14921505
# Build the OpenSSL libraries?
14931506
!ifndef FOSSIL_BUILD_SSL
14941507
FOSSIL_BUILD_SSL = 0
@@ -1605,27 +1618,30 @@
16051618
ZLIB = zdll.lib
16061619
!else
16071620
ZLIB = zlib.lib
16081621
!endif
16091622
1610
-INCL = /I. /I$(SRCDIR) /I$B\win\include
1623
+INCL = /I. /I"$(OX)" /I"$(SRCDIR)" /I"$(B)\win\include"
16111624
16121625
!if $(FOSSIL_ENABLE_MINIZ)==0
1613
-INCL = $(INCL) /I$(ZINCDIR)
1626
+INCL = $(INCL) /I"$(ZINCDIR)"
16141627
!endif
16151628
16161629
!if $(FOSSIL_ENABLE_SSL)!=0
1617
-INCL = $(INCL) /I$(SSLINCDIR)
1630
+INCL = $(INCL) /I"$(SSLINCDIR)"
16181631
!endif
16191632
16201633
!if $(FOSSIL_ENABLE_TCL)!=0
1621
-INCL = $(INCL) /I$(TCLINCDIR)
1634
+INCL = $(INCL) /I"$(TCLINCDIR)"
16221635
!endif
16231636
16241637
CFLAGS = /nologo
16251638
LDFLAGS =
16261639
1640
+CFLAGS = $(CFLAGS) /D_CRT_SECURE_NO_DEPRECATE /D_CRT_SECURE_NO_WARNINGS
1641
+CFLAGS = $(CFLAGS) /D_CRT_NONSTDC_NO_DEPRECATE /D_CRT_NONSTDC_NO_WARNINGS
1642
+
16271643
!if $(FOSSIL_DYNAMIC_BUILD)!=0
16281644
LDFLAGS = $(LDFLAGS) /MANIFEST
16291645
!else
16301646
LDFLAGS = $(LDFLAGS) /NODEFAULTLIB:msvcrt /MANIFEST:NO
16311647
!endif
@@ -1654,11 +1670,11 @@
16541670
CRTFLAGS = /MT
16551671
!endif
16561672
!endif
16571673
16581674
!if $(DEBUG)!=0
1659
-CFLAGS = $(CFLAGS) /Zi $(CRTFLAGS) /Od
1675
+CFLAGS = $(CFLAGS) /Zi $(CRTFLAGS) /Od /DFOSSIL_DEBUG
16601676
LDFLAGS = $(LDFLAGS) /DEBUG
16611677
!else
16621678
CFLAGS = $(CFLAGS) $(CRTFLAGS) /O2
16631679
!endif
16641680
@@ -1674,11 +1690,11 @@
16741690
RCC = $(RCC) /DFOSSIL_DYNAMIC_BUILD=1
16751691
!endif
16761692
16771693
!if $(FOSSIL_ENABLE_MINIZ)==0
16781694
LIBS = $(LIBS) $(ZLIB)
1679
-LIBDIR = $(LIBDIR) /LIBPATH:$(ZLIBDIR)
1695
+LIBDIR = $(LIBDIR) /LIBPATH:"$(ZLIBDIR)"
16801696
!endif
16811697
16821698
!if $(FOSSIL_ENABLE_MINIZ)!=0
16831699
TCC = $(TCC) /DFOSSIL_ENABLE_MINIZ=1
16841700
RCC = $(RCC) /DFOSSIL_ENABLE_MINIZ=1
@@ -1691,11 +1707,11 @@
16911707
16921708
!if $(FOSSIL_ENABLE_SSL)!=0
16931709
TCC = $(TCC) /DFOSSIL_ENABLE_SSL=1
16941710
RCC = $(RCC) /DFOSSIL_ENABLE_SSL=1
16951711
LIBS = $(LIBS) $(SSLLIB)
1696
-LIBDIR = $(LIBDIR) /LIBPATH:$(SSLLIBDIR)
1712
+LIBDIR = $(LIBDIR) /LIBPATH:"$(SSLLIBDIR)"
16971713
!endif
16981714
16991715
!if $(FOSSIL_ENABLE_EXEC_REL_PATHS)!=0
17001716
TCC = $(TCC) /DFOSSIL_ENABLE_EXEC_REL_PATHS=1
17011717
RCC = $(RCC) /DFOSSIL_ENABLE_EXEC_REL_PATHS=1
@@ -1749,11 +1765,11 @@
17491765
foreach s [lsort $src] {
17501766
if {$i > 0} {
17511767
writeln " \\"
17521768
writeln -nonewline " "
17531769
}
1754
- writeln -nonewline "${s}_.c"; incr i
1770
+ writeln -nonewline "\"\$(OX)\\${s}_.c\""; incr i
17551771
}
17561772
writeln "\n"
17571773
writeln -nonewline "EXTRA_FILES = "
17581774
set i 0
17591775
foreach s [lsort $extra_files] {
@@ -1760,11 +1776,11 @@
17601776
if {$i > 0} {
17611777
writeln " \\"
17621778
writeln -nonewline " "
17631779
}
17641780
set s [regsub -all / $s \\]
1765
- writeln -nonewline "\$(SRCDIR)\\${s}"; incr i
1781
+ writeln -nonewline "\"\$(SRCDIR)\\${s}\""; incr i
17661782
}
17671783
writeln "\n"
17681784
set AdditionalObj [list shell sqlite3 th th_lang th_tcl cson_amalgamation]
17691785
writeln -nonewline "OBJ = "
17701786
set i 0
@@ -1771,51 +1787,71 @@
17711787
foreach s [lsort [concat $src $AdditionalObj]] {
17721788
if {$i > 0} {
17731789
writeln " \\"
17741790
writeln -nonewline " "
17751791
}
1776
- writeln -nonewline "\$(OX)\\$s\$O"; incr i
1792
+ writeln -nonewline "\"\$(OX)\\$s\$O\""; incr i
17771793
}
17781794
if {$i > 0} {
17791795
writeln " \\"
17801796
}
17811797
writeln "!if \$(FOSSIL_ENABLE_MINIZ)!=0"
17821798
writeln -nonewline " "
1783
-writeln "\$(OX)\\miniz\$O \\"; incr i
1799
+writeln "\"\$(OX)\\miniz\$O\" \\"; incr i
17841800
writeln "!endif"
1785
-writeln -nonewline " \$(OX)\\fossil.res\n\n"
1801
+writeln -nonewline " \"\$(OX)\\fossil.res\"\n\n"
17861802
writeln [string map [list <<<NEXT_LINE>>> \\] {
17871803
!ifndef BASEAPPNAME
17881804
BASEAPPNAME = fossil
17891805
!endif
17901806
17911807
APPNAME = $(OX)\$(BASEAPPNAME)$(E)
17921808
PDBNAME = $(OX)\$(BASEAPPNAME)$(P)
17931809
APPTARGETS =
17941810
1795
-all: $(OX) $(APPNAME)
1811
+all: "$(OX)" "$(APPNAME)"
1812
+
1813
+$(BASEAPPNAME): "$(APPNAME)"
1814
+
1815
+$(BASEAPPNAME)$(E): "$(APPNAME)"
1816
+
1817
+install: "$(APPNAME)"
1818
+ echo F | xcopy /Y "$(APPNAME)" "$(INSTALLDIR)"\*
1819
+!if $(DEBUG)!=0
1820
+ echo F | xcopy /Y "$(PDBNAME)" "$(INSTALLDIR)"\*
1821
+!endif
1822
+
1823
+$(OX):
1824
+ @-mkdir $@
17961825
17971826
zlib:
17981827
@echo Building zlib from "$(ZLIBDIR)"...
17991828
!if $(FOSSIL_ENABLE_WINXP)!=0
18001829
@pushd "$(ZLIBDIR)" && $(MAKE) /f win32\Makefile.msc $(ZLIB) "CC=cl $(XPCFLAGS)" "LD=link $(XPLDFLAGS)" && popd
18011830
!else
18021831
@pushd "$(ZLIBDIR)" && $(MAKE) /f win32\Makefile.msc $(ZLIB) && popd
18031832
!endif
18041833
1834
+clean-zlib:
1835
+ @pushd "$(ZLIBDIR)" && $(MAKE) /f win32\Makefile.msc clean && popd
1836
+
18051837
!if $(FOSSIL_ENABLE_SSL)!=0
18061838
openssl:
18071839
@echo Building OpenSSL from "$(SSLDIR)"...
1808
-!if "$(PERLDIR)" != ""
1809
- @set PATH=$(PERLDIR);$(PATH)
1840
+!ifdef PERLDIR
1841
+ @pushd "$(SSLDIR)" && "$(PERLDIR)\$(PERL)" Configure $(SSLCONFIG) && popd
1842
+!else
1843
+ @pushd "$(SSLDIR)" && "$(PERL)" Configure $(SSLCONFIG) && popd
18101844
!endif
1811
- @pushd "$(SSLDIR)" && $(PERL) Configure $(SSLCONFIG) && popd
18121845
!if $(FOSSIL_ENABLE_WINXP)!=0
18131846
@pushd "$(SSLDIR)" && $(MAKE) "CC=cl $(XPCFLAGS)" "LFLAGS=$(XPLDFLAGS)" && popd
18141847
!else
18151848
@pushd "$(SSLDIR)" && $(MAKE) && popd
18161849
!endif
1850
+
1851
+clean-openssl:
1852
+ @pushd "$(SSLDIR)" && $(MAKE) clean && popd
18171853
!endif
18181854
18191855
!if $(FOSSIL_ENABLE_MINIZ)==0
18201856
!if $(FOSSIL_BUILD_ZLIB)!=0
18211857
APPTARGETS = $(APPTARGETS) zlib
@@ -1826,49 +1862,45 @@
18261862
!if $(FOSSIL_BUILD_SSL)!=0
18271863
APPTARGETS = $(APPTARGETS) openssl
18281864
!endif
18291865
!endif
18301866
1831
-$(APPNAME) : $(APPTARGETS) translate$E mkindex$E codecheck1$E headers $(OBJ) $(OX)\linkopts
1832
- cd $(OX)
1833
- codecheck1$E $(SRC)
1834
- link $(LDFLAGS) /OUT:$@ $(LIBDIR) Wsetargv.obj fossil.res @linkopts
1835
- if exist [email protected] <<<NEXT_LINE>>>
1836
- $(MTC) -nologo -manifest [email protected] -outputresource:$@;1
1837
-
1838
-$(OX)\linkopts: $B\win\Makefile.msc}]
1867
+"$(APPNAME)" : $(APPTARGETS) "$(OBJDIR)\translate$E" "$(OBJDIR)\mkindex$E" "$(OBJDIR)\codecheck1$E" "$(OX)\headers" $(OBJ) "$(OX)\linkopts"
1868
+ "$(OBJDIR)\codecheck1$E" $(SRC)
1869
+ link $(LDFLAGS) /OUT:$@ /PDB:$(@D)\ $(LIBDIR) Wsetargv.obj "$(OX)\fossil.res" @"$(OX)\linkopts"
1870
+ if exist "$(B)\win\fossil.exe.manifest" <<<NEXT_LINE>>>
1871
+ $(MTC) -nologo -manifest "$(B)\win\fossil.exe.manifest" -outputresource:$@;1
1872
+
1873
+"$(OX)\linkopts": "$(B)\win\Makefile.msc"}]
18391874
set redir {>}
18401875
foreach s [lsort [concat $src $AdditionalObj]] {
1841
- writeln "\techo \$(OX)\\$s.obj $redir \$@"
1876
+ writeln "\techo \"\$(OX)\\$s.obj\" $redir \$@"
18421877
set redir {>>}
18431878
}
18441879
set redir {>>}
18451880
writeln "!if \$(FOSSIL_ENABLE_MINIZ)!=0"
1846
-writeln "\techo \$(OX)\\miniz.obj $redir \$@"
1881
+writeln "\techo \"\$(OX)\\miniz.obj\" $redir \$@"
18471882
writeln "!endif"
18481883
writeln "\techo \$(LIBS) $redir \$@"
18491884
writeln {
1850
-$(OX):
1851
- @-mkdir $@
1852
-
1853
-translate$E: $(SRCDIR)\translate.c
1854
- $(BCC) $**
1855
-
1856
-makeheaders$E: $(SRCDIR)\makeheaders.c
1857
- $(BCC) $**
1858
-
1859
-mkindex$E: $(SRCDIR)\mkindex.c
1860
- $(BCC) $**
1861
-
1862
-mkbuiltin$E: $(SRCDIR)\mkbuiltin.c
1863
- $(BCC) $**
1864
-
1865
-mkversion$E: $(SRCDIR)\mkversion.c
1866
- $(BCC) $**
1867
-
1868
-codecheck1$E: $(SRCDIR)\codecheck1.c
1869
- $(BCC) $**
1885
+"$(OBJDIR)\translate$E": "$(SRCDIR)\translate.c"
1886
+ $(BCC) /Fe$@ /Fo$(@D)\ /Fd$(@D)\ $**
1887
+
1888
+"$(OBJDIR)\makeheaders$E": "$(SRCDIR)\makeheaders.c"
1889
+ $(BCC) /Fe$@ /Fo$(@D)\ /Fd$(@D)\ $**
1890
+
1891
+"$(OBJDIR)\mkindex$E": "$(SRCDIR)\mkindex.c"
1892
+ $(BCC) /Fe$@ /Fo$(@D)\ /Fd$(@D)\ $**
1893
+
1894
+"$(OBJDIR)\mkbuiltin$E": "$(SRCDIR)\mkbuiltin.c"
1895
+ $(BCC) /Fe$@ /Fo$(@D)\ /Fd$(@D)\ $**
1896
+
1897
+"$(OBJDIR)\mkversion$E": "$(SRCDIR)\mkversion.c"
1898
+ $(BCC) /Fe$@ /Fo$(@D)\ /Fd$(@D)\ $**
1899
+
1900
+"$(OBJDIR)\codecheck1$E": "$(SRCDIR)\codecheck1.c"
1901
+ $(BCC) /Fe$@ /Fo$(@D)\ /Fd$(@D)\ $**
18701902
18711903
!if $(USE_SEE)!=0
18721904
SEE_FLAGS = /DSQLITE_HAS_CODEC=1 /DSQLITE_SHELL_DBKEY_PROC=fossil_key
18731905
SQLITE3_SHELL_SRC = $(SRCDIR)\shell-see.c
18741906
SQLITE3_SRC = $(SRCDIR)\sqlite3-see.c
@@ -1876,109 +1908,123 @@
18761908
SEE_FLAGS =
18771909
SQLITE3_SHELL_SRC = $(SRCDIR)\shell.c
18781910
SQLITE3_SRC = $(SRCDIR)\sqlite3.c
18791911
!endif
18801912
1881
-$(OX)\shell$O : $(SQLITE3_SHELL_SRC) $B\win\Makefile.msc
1882
- $(TCC) /Fo$@ $(SHELL_OPTIONS) $(SQLITE_OPTIONS) $(SHELL_CFLAGS) $(SEE_FLAGS) -c $(SQLITE3_SHELL_SRC)
1883
-
1884
-$(OX)\sqlite3$O : $(SQLITE3_SRC) $B\win\Makefile.msc
1885
- $(TCC) /Fo$@ -c $(SQLITE_OPTIONS) $(SQLITE_CFLAGS) $(SEE_FLAGS) $(SQLITE3_SRC)
1886
-
1887
-$(OX)\th$O : $(SRCDIR)\th.c
1888
- $(TCC) /Fo$@ -c $**
1889
-
1890
-$(OX)\th_lang$O : $(SRCDIR)\th_lang.c
1891
- $(TCC) /Fo$@ -c $**
1892
-
1893
-$(OX)\th_tcl$O : $(SRCDIR)\th_tcl.c
1894
- $(TCC) /Fo$@ -c $**
1895
-
1896
-$(OX)\miniz$O : $(SRCDIR)\miniz.c
1897
- $(TCC) /Fo$@ -c $(MINIZ_OPTIONS) $(SRCDIR)\miniz.c
1898
-
1899
-VERSION.h : mkversion$E $B\manifest.uuid $B\manifest $B\VERSION
1900
- $** > $@
1901
-
1902
-$(OX)\cson_amalgamation$O : $(SRCDIR)\cson_amalgamation.c
1903
- $(TCC) /Fo$@ /c $**
1904
-
1905
-page_index.h: mkindex$E $(SRC)
1906
- $** > $@
1907
-
1908
-builtin_data.h: mkbuiltin$E $(EXTRA_FILES)
1909
- mkbuiltin$E --prefix $(SRCDIR)/ $(EXTRA_FILES) > $@
1910
-
1911
-clean:
1912
- -del $(OX)\*.obj 2>NUL
1913
- -del *.obj 2>NUL
1914
- -del *_.c 2>NUL
1915
- -del *.h 2>NUL
1916
- -del *.ilk 2>NUL
1917
- -del *.map 2>NUL
1918
- -del *.res 2>NUL
1919
- -del headers 2>NUL
1920
- -del linkopts 2>NUL
1921
- -del vc*.pdb 2>NUL
1922
-
1923
-realclean: clean
1924
- -del $(APPNAME) 2>NUL
1925
- -del $(PDBNAME) 2>NUL
1926
- -del translate$E 2>NUL
1927
- -del translate$P 2>NUL
1928
- -del mkindex$E 2>NUL
1929
- -del mkindex$P 2>NUL
1930
- -del makeheaders$E 2>NUL
1931
- -del makeheaders$P 2>NUL
1932
- -del mkversion$E 2>NUL
1933
- -del mkversion$P 2>NUL
1934
- -del codecheck1$E 2>NUL
1935
- -del codecheck1$P 2>NUL
1936
- -del mkbuiltin$E 2>NUL
1937
- -del mkbuiltin$P 2>NUL
1938
-
1939
-$(OBJDIR)\json$O : $(SRCDIR)\json_detail.h
1940
-$(OBJDIR)\json_artifact$O : $(SRCDIR)\json_detail.h
1941
-$(OBJDIR)\json_branch$O : $(SRCDIR)\json_detail.h
1942
-$(OBJDIR)\json_config$O : $(SRCDIR)\json_detail.h
1943
-$(OBJDIR)\json_diff$O : $(SRCDIR)\json_detail.h
1944
-$(OBJDIR)\json_dir$O : $(SRCDIR)\json_detail.h
1945
-$(OBJDIR)\json_finfo$O : $(SRCDIR)\json_detail.h
1946
-$(OBJDIR)\json_login$O : $(SRCDIR)\json_detail.h
1947
-$(OBJDIR)\json_query$O : $(SRCDIR)\json_detail.h
1948
-$(OBJDIR)\json_report$O : $(SRCDIR)\json_detail.h
1949
-$(OBJDIR)\json_status$O : $(SRCDIR)\json_detail.h
1950
-$(OBJDIR)\json_tag$O : $(SRCDIR)\json_detail.h
1951
-$(OBJDIR)\json_timeline$O : $(SRCDIR)\json_detail.h
1952
-$(OBJDIR)\json_user$O : $(SRCDIR)\json_detail.h
1953
-$(OBJDIR)\json_wiki$O : $(SRCDIR)\json_detail.h
1954
-}
1955
-foreach s [lsort $src] {
1956
- writeln "\$(OX)\\$s\$O : ${s}_.c ${s}.h"
1957
- writeln "\t\$(TCC) /Fo\$@ -c ${s}_.c\n"
1958
- writeln "${s}_.c : \$(SRCDIR)\\$s.c"
1959
- writeln "\ttranslate\$E \$** > \$@\n"
1960
-}
1961
-
1962
-writeln "fossil.res : \$B\\win\\fossil.rc"
1963
-writeln "\t\$(RCC) /fo \$@ \$**\n"
1964
-
1965
-writeln "headers: makeheaders\$E page_index.h builtin_data.h VERSION.h"
1966
-writeln -nonewline "\tmakeheaders\$E "
1913
+"$(OX)\shell$O" : "$(SQLITE3_SHELL_SRC)" "$(B)\win\Makefile.msc"
1914
+ $(TCC) /Fo$@ /Fd$(@D)\ $(SHELL_OPTIONS) $(SQLITE_OPTIONS) $(SHELL_CFLAGS) $(SEE_FLAGS) -c "$(SQLITE3_SHELL_SRC)"
1915
+
1916
+"$(OX)\sqlite3$O" : "$(SQLITE3_SRC)" "$(B)\win\Makefile.msc"
1917
+ $(TCC) /Fo$@ /Fd$(@D)\ -c $(SQLITE_OPTIONS) $(SQLITE_CFLAGS) $(SEE_FLAGS) "$(SQLITE3_SRC)"
1918
+
1919
+"$(OX)\th$O" : "$(SRCDIR)\th.c"
1920
+ $(TCC) /Fo$@ /Fd$(@D)\ -c $**
1921
+
1922
+"$(OX)\th_lang$O" : "$(SRCDIR)\th_lang.c"
1923
+ $(TCC) /Fo$@ /Fd$(@D)\ -c $**
1924
+
1925
+"$(OX)\th_tcl$O" : "$(SRCDIR)\th_tcl.c"
1926
+ $(TCC) /Fo$@ /Fd$(@D)\ -c $**
1927
+
1928
+"$(OX)\miniz$O" : "$(SRCDIR)\miniz.c"
1929
+ $(TCC) /Fo$@ /Fd$(@D)\ -c $(MINIZ_OPTIONS) $**
1930
+
1931
+"$(OX)\VERSION.h" : "$(OBJDIR)\mkversion$E" "$(B)\manifest.uuid" "$(B)\manifest" "$(B)\VERSION"
1932
+ $** > $@
1933
+
1934
+"$(OX)\cson_amalgamation$O" : "$(SRCDIR)\cson_amalgamation.c"
1935
+ $(TCC) /Fo$@ /Fd$(@D)\ -c $**
1936
+
1937
+"$(OX)\page_index.h": "$(OBJDIR)\mkindex$E" $(SRC)
1938
+ $** > $@
1939
+
1940
+"$(OX)\builtin_data.h": "$(OBJDIR)\mkbuiltin$E" "$(OX)\builtin_data.reslist"
1941
+ "$(OBJDIR)\mkbuiltin$E" --prefix "$(SRCDIR)/" --reslist "$(OX)\builtin_data.reslist" > $@
1942
+
1943
+cleanx:
1944
+ -del "$(OX)\*.obj" 2>NUL
1945
+ -del "$(OBJDIR)\*.obj" 2>NUL
1946
+ -del "$(OX)\*_.c" 2>NUL
1947
+ -del "$(OX)\*.h" 2>NUL
1948
+ -del "$(OX)\*.ilk" 2>NUL
1949
+ -del "$(OX)\*.map" 2>NUL
1950
+ -del "$(OX)\*.res" 2>NUL
1951
+ -del "$(OX)\*.reslist" 2>NUL
1952
+ -del "$(OX)\headers" 2>NUL
1953
+ -del "$(OX)\linkopts" 2>NUL
1954
+ -del "$(OX)\vc*.pdb" 2>NUL
1955
+
1956
+clean: cleanx
1957
+ -del "$(APPNAME)" 2>NUL
1958
+ -del "$(PDBNAME)" 2>NUL
1959
+ -del "$(OBJDIR)\translate$E" 2>NUL
1960
+ -del "$(OBJDIR)\translate$P" 2>NUL
1961
+ -del "$(OBJDIR)\mkindex$E" 2>NUL
1962
+ -del "$(OBJDIR)\mkindex$P" 2>NUL
1963
+ -del "$(OBJDIR)\makeheaders$E" 2>NUL
1964
+ -del "$(OBJDIR)\makeheaders$P" 2>NUL
1965
+ -del "$(OBJDIR)\mkversion$E" 2>NUL
1966
+ -del "$(OBJDIR)\mkversion$P" 2>NUL
1967
+ -del "$(OBJDIR)\mkcss$E" 2>NUL
1968
+ -del "$(OBJDIR)\mkcss$P" 2>NUL
1969
+ -del "$(OBJDIR)\codecheck1$E" 2>NUL
1970
+ -del "$(OBJDIR)\codecheck1$P" 2>NUL
1971
+ -del "$(OBJDIR)\mkbuiltin$E" 2>NUL
1972
+ -del "$(OBJDIR)\mkbuiltin$P" 2>NUL
1973
+
1974
+realclean: clean
1975
+
1976
+"$(OBJDIR)\json$O" : "$(SRCDIR)\json_detail.h"
1977
+"$(OBJDIR)\json_artifact$O" : "$(SRCDIR)\json_detail.h"
1978
+"$(OBJDIR)\json_branch$O" : "$(SRCDIR)\json_detail.h"
1979
+"$(OBJDIR)\json_config$O" : "$(SRCDIR)\json_detail.h"
1980
+"$(OBJDIR)\json_diff$O" : "$(SRCDIR)\json_detail.h"
1981
+"$(OBJDIR)\json_dir$O" : "$(SRCDIR)\json_detail.h"
1982
+"$(OBJDIR)\json_finfo$O" : "$(SRCDIR)\json_detail.h"
1983
+"$(OBJDIR)\json_login$O" : "$(SRCDIR)\json_detail.h"
1984
+"$(OBJDIR)\json_query$O" : "$(SRCDIR)\json_detail.h"
1985
+"$(OBJDIR)\json_report$O" : "$(SRCDIR)\json_detail.h"
1986
+"$(OBJDIR)\json_status$O" : "$(SRCDIR)\json_detail.h"
1987
+"$(OBJDIR)\json_tag$O" : "$(SRCDIR)\json_detail.h"
1988
+"$(OBJDIR)\json_timeline$O" : "$(SRCDIR)\json_detail.h"
1989
+"$(OBJDIR)\json_user$O" : "$(SRCDIR)\json_detail.h"
1990
+"$(OBJDIR)\json_wiki$O" : "$(SRCDIR)\json_detail.h"
1991
+}
1992
+
1993
+writeln {"$(OX)\builtin_data.reslist": $(EXTRA_FILES) "$(B)\win\Makefile.msc"}
1994
+set redir {>}
1995
+foreach s [lsort $extra_files] {
1996
+ writeln "\techo \"\$(SRCDIR)\\${s}\" $redir \$@"
1997
+ set redir {>>}
1998
+}
1999
+
2000
+writeln ""
2001
+foreach s [lsort $src] {
2002
+ writeln "\"\$(OX)\\$s\$O\" : \"\$(OX)\\${s}_.c\" \"\$(OX)\\${s}.h\""
2003
+ writeln "\t\$(TCC) /Fo\$@ /Fd\$(@D)\\ -c \"\$(OX)\\${s}_.c\"\n"
2004
+ writeln "\"\$(OX)\\${s}_.c\" : \"\$(SRCDIR)\\$s.c\""
2005
+ writeln "\t\"\$(OBJDIR)\\translate\$E\" \$** > \$@\n"
2006
+}
2007
+
2008
+writeln "\"\$(OX)\\fossil.res\" : \"\$(B)\\win\\fossil.rc\""
2009
+writeln "\t\$(RCC) /fo \$@ \$**\n"
2010
+
2011
+writeln "\"\$(OX)\\headers\": \"\$(OBJDIR)\\makeheaders\$E\" \"\$(OX)\\page_index.h\" \"\$(OX)\\builtin_data.h\" \"\$(OX)\\default_css.h\" \"\$(OX)\\VERSION.h\""
2012
+writeln -nonewline "\t\"\$(OBJDIR)\\makeheaders\$E\" "
19672013
set i 0
19682014
foreach s [lsort $src] {
19692015
if {$i > 0} {
19702016
writeln " \\"
19712017
writeln -nonewline "\t\t\t"
19722018
}
1973
- writeln -nonewline "${s}_.c:$s.h"; incr i
2019
+ writeln -nonewline "\"\$(OX)\\${s}_.c\":\"\$(OX)\\$s.h\""; incr i
19742020
}
1975
-writeln " \\\n\t\t\t\$(SRCDIR)\\sqlite3.h \\"
1976
-writeln "\t\t\t\$(SRCDIR)\\th.h \\"
1977
-writeln "\t\t\tVERSION.h \\"
1978
-writeln "\t\t\t\$(SRCDIR)\\cson_amalgamation.h"
1979
-writeln "\t@copy /Y nul: headers"
2021
+writeln " \\\n\t\t\t\"\$(SRCDIR)\\sqlite3.h\" \\"
2022
+writeln "\t\t\t\"\$(SRCDIR)\\th.h\" \\"
2023
+writeln "\t\t\t\"\$(OX)\\VERSION.h\" \\"
2024
+writeln "\t\t\t\"\$(SRCDIR)\\cson_amalgamation.h\""
2025
+writeln "\t@copy /Y nul: $@"
19802026
19812027
19822028
close $output_file
19832029
#
19842030
# End of the win/Makefile.msc output
19852031
--- src/makemake.tcl
+++ src/makemake.tcl
@@ -26,10 +26,11 @@
26 # Set the separate extra_files variable further down for how to add non-C
27 # files, such as string and BLOB resources.
28 #
29 set src {
30 add
 
31 alerts
32 allrepo
33 attach
34 backlink
35 backoffice
@@ -193,11 +194,10 @@
193 -DSQLITE_DEFAULT_MEMSTATUS=0
194 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1
195 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS
196 -DSQLITE_OMIT_DECLTYPE
197 -DSQLITE_OMIT_DEPRECATED
198 -DSQLITE_OMIT_GET_TABLE
199 -DSQLITE_OMIT_PROGRESS_CALLBACK
200 -DSQLITE_OMIT_SHARED_CACHE
201 -DSQLITE_OMIT_LOAD_EXTENSION
202 -DSQLITE_MAX_EXPR_DEPTH=0
203 -DSQLITE_USE_ALLOCA
@@ -475,10 +475,11 @@
475 writeln "\$(OBJDIR)/headers:\t\$(OBJDIR)/page_index.h \$(OBJDIR)/builtin_data.h \$(OBJDIR)/makeheaders \$(OBJDIR)/VERSION.h"
476 writeln "\t\$(OBJDIR)/makeheaders $mhargs"
477 writeln "\ttouch \$(OBJDIR)/headers"
478 writeln "\$(OBJDIR)/headers: Makefile"
479 writeln "\$(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 : \$(SRCDIR)/json_detail.h"
 
480 writeln "Makefile:"
481 set extra_h(dispatch) " \$(OBJDIR)/page_index.h "
482 set extra_h(builtin) " \$(OBJDIR)/builtin_data.h "
483
484 foreach s [lsort $src] {
@@ -1423,11 +1424,10 @@
1423 $(OBJDIR)\json_tag$O : $(SRCDIR)\json_detail.h
1424 $(OBJDIR)\json_timeline$O : $(SRCDIR)\json_detail.h
1425 $(OBJDIR)\json_user$O : $(SRCDIR)\json_detail.h
1426 $(OBJDIR)\json_wiki$O : $(SRCDIR)\json_detail.h
1427
1428
1429 }
1430 foreach s [lsort $src] {
1431 writeln "\$(OBJDIR)\\$s\$O : ${s}_.c ${s}.h"
1432 writeln "\t\$(TCC) -o\$@ -c ${s}_.c\n"
1433 writeln "${s}_.c : \$(SRCDIR)\\$s.c"
@@ -1456,39 +1456,52 @@
1456 writeln {#
1457 ##############################################################################
1458 # WARNING: DO NOT EDIT, AUTOMATICALLY GENERATED FILE (SEE "src/makemake.tcl")
1459 ##############################################################################
1460 #
1461 # This Makefile will only function correctly if used from a sub-directory
1462 # that is a direct child of the top-level directory for this project.
1463 #
1464 !if !exist("..\.fossil-settings")
1465 !error "Please change the current directory to the one containing this file."
1466 !endif
1467
1468 #
1469 # This file is automatically generated. Instead of editing this
1470 # file, edit "makemake.tcl" then run "tclsh makemake.tcl"
1471 # to regenerate this file.
1472 #
1473 B = ..
1474 SRCDIR = $B\src
1475 OBJDIR = .
1476 OX = .
 
1477 O = .obj
1478 E = .exe
1479 P = .pdb
1480
1481 # Perl is only necessary if OpenSSL support is enabled and it must
1482 # be built from source code. The PERLDIR variable should point to
1483 # the directory containing the main Perl binary (i.e. "perl.exe").
1484 PERLDIR = C:\Perl\bin
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1485 PERL = perl.exe
1486
1487 # Enable debugging symbols?
1488 !ifndef DEBUG
1489 DEBUG = 0
 
 
 
1490 !endif
1491
1492 # Build the OpenSSL libraries?
1493 !ifndef FOSSIL_BUILD_SSL
1494 FOSSIL_BUILD_SSL = 0
@@ -1605,27 +1618,30 @@
1605 ZLIB = zdll.lib
1606 !else
1607 ZLIB = zlib.lib
1608 !endif
1609
1610 INCL = /I. /I$(SRCDIR) /I$B\win\include
1611
1612 !if $(FOSSIL_ENABLE_MINIZ)==0
1613 INCL = $(INCL) /I$(ZINCDIR)
1614 !endif
1615
1616 !if $(FOSSIL_ENABLE_SSL)!=0
1617 INCL = $(INCL) /I$(SSLINCDIR)
1618 !endif
1619
1620 !if $(FOSSIL_ENABLE_TCL)!=0
1621 INCL = $(INCL) /I$(TCLINCDIR)
1622 !endif
1623
1624 CFLAGS = /nologo
1625 LDFLAGS =
1626
 
 
 
1627 !if $(FOSSIL_DYNAMIC_BUILD)!=0
1628 LDFLAGS = $(LDFLAGS) /MANIFEST
1629 !else
1630 LDFLAGS = $(LDFLAGS) /NODEFAULTLIB:msvcrt /MANIFEST:NO
1631 !endif
@@ -1654,11 +1670,11 @@
1654 CRTFLAGS = /MT
1655 !endif
1656 !endif
1657
1658 !if $(DEBUG)!=0
1659 CFLAGS = $(CFLAGS) /Zi $(CRTFLAGS) /Od
1660 LDFLAGS = $(LDFLAGS) /DEBUG
1661 !else
1662 CFLAGS = $(CFLAGS) $(CRTFLAGS) /O2
1663 !endif
1664
@@ -1674,11 +1690,11 @@
1674 RCC = $(RCC) /DFOSSIL_DYNAMIC_BUILD=1
1675 !endif
1676
1677 !if $(FOSSIL_ENABLE_MINIZ)==0
1678 LIBS = $(LIBS) $(ZLIB)
1679 LIBDIR = $(LIBDIR) /LIBPATH:$(ZLIBDIR)
1680 !endif
1681
1682 !if $(FOSSIL_ENABLE_MINIZ)!=0
1683 TCC = $(TCC) /DFOSSIL_ENABLE_MINIZ=1
1684 RCC = $(RCC) /DFOSSIL_ENABLE_MINIZ=1
@@ -1691,11 +1707,11 @@
1691
1692 !if $(FOSSIL_ENABLE_SSL)!=0
1693 TCC = $(TCC) /DFOSSIL_ENABLE_SSL=1
1694 RCC = $(RCC) /DFOSSIL_ENABLE_SSL=1
1695 LIBS = $(LIBS) $(SSLLIB)
1696 LIBDIR = $(LIBDIR) /LIBPATH:$(SSLLIBDIR)
1697 !endif
1698
1699 !if $(FOSSIL_ENABLE_EXEC_REL_PATHS)!=0
1700 TCC = $(TCC) /DFOSSIL_ENABLE_EXEC_REL_PATHS=1
1701 RCC = $(RCC) /DFOSSIL_ENABLE_EXEC_REL_PATHS=1
@@ -1749,11 +1765,11 @@
1749 foreach s [lsort $src] {
1750 if {$i > 0} {
1751 writeln " \\"
1752 writeln -nonewline " "
1753 }
1754 writeln -nonewline "${s}_.c"; incr i
1755 }
1756 writeln "\n"
1757 writeln -nonewline "EXTRA_FILES = "
1758 set i 0
1759 foreach s [lsort $extra_files] {
@@ -1760,11 +1776,11 @@
1760 if {$i > 0} {
1761 writeln " \\"
1762 writeln -nonewline " "
1763 }
1764 set s [regsub -all / $s \\]
1765 writeln -nonewline "\$(SRCDIR)\\${s}"; incr i
1766 }
1767 writeln "\n"
1768 set AdditionalObj [list shell sqlite3 th th_lang th_tcl cson_amalgamation]
1769 writeln -nonewline "OBJ = "
1770 set i 0
@@ -1771,51 +1787,71 @@
1771 foreach s [lsort [concat $src $AdditionalObj]] {
1772 if {$i > 0} {
1773 writeln " \\"
1774 writeln -nonewline " "
1775 }
1776 writeln -nonewline "\$(OX)\\$s\$O"; incr i
1777 }
1778 if {$i > 0} {
1779 writeln " \\"
1780 }
1781 writeln "!if \$(FOSSIL_ENABLE_MINIZ)!=0"
1782 writeln -nonewline " "
1783 writeln "\$(OX)\\miniz\$O \\"; incr i
1784 writeln "!endif"
1785 writeln -nonewline " \$(OX)\\fossil.res\n\n"
1786 writeln [string map [list <<<NEXT_LINE>>> \\] {
1787 !ifndef BASEAPPNAME
1788 BASEAPPNAME = fossil
1789 !endif
1790
1791 APPNAME = $(OX)\$(BASEAPPNAME)$(E)
1792 PDBNAME = $(OX)\$(BASEAPPNAME)$(P)
1793 APPTARGETS =
1794
1795 all: $(OX) $(APPNAME)
 
 
 
 
 
 
 
 
 
 
 
 
 
1796
1797 zlib:
1798 @echo Building zlib from "$(ZLIBDIR)"...
1799 !if $(FOSSIL_ENABLE_WINXP)!=0
1800 @pushd "$(ZLIBDIR)" && $(MAKE) /f win32\Makefile.msc $(ZLIB) "CC=cl $(XPCFLAGS)" "LD=link $(XPLDFLAGS)" && popd
1801 !else
1802 @pushd "$(ZLIBDIR)" && $(MAKE) /f win32\Makefile.msc $(ZLIB) && popd
1803 !endif
1804
 
 
 
1805 !if $(FOSSIL_ENABLE_SSL)!=0
1806 openssl:
1807 @echo Building OpenSSL from "$(SSLDIR)"...
1808 !if "$(PERLDIR)" != ""
1809 @set PATH=$(PERLDIR);$(PATH)
 
 
1810 !endif
1811 @pushd "$(SSLDIR)" && $(PERL) Configure $(SSLCONFIG) && popd
1812 !if $(FOSSIL_ENABLE_WINXP)!=0
1813 @pushd "$(SSLDIR)" && $(MAKE) "CC=cl $(XPCFLAGS)" "LFLAGS=$(XPLDFLAGS)" && popd
1814 !else
1815 @pushd "$(SSLDIR)" && $(MAKE) && popd
1816 !endif
 
 
 
1817 !endif
1818
1819 !if $(FOSSIL_ENABLE_MINIZ)==0
1820 !if $(FOSSIL_BUILD_ZLIB)!=0
1821 APPTARGETS = $(APPTARGETS) zlib
@@ -1826,49 +1862,45 @@
1826 !if $(FOSSIL_BUILD_SSL)!=0
1827 APPTARGETS = $(APPTARGETS) openssl
1828 !endif
1829 !endif
1830
1831 $(APPNAME) : $(APPTARGETS) translate$E mkindex$E codecheck1$E headers $(OBJ) $(OX)\linkopts
1832 cd $(OX)
1833 codecheck1$E $(SRC)
1834 link $(LDFLAGS) /OUT:$@ $(LIBDIR) Wsetargv.obj fossil.res @linkopts
1835 if exist [email protected] <<<NEXT_LINE>>>
1836 $(MTC) -nologo -manifest [email protected] -outputresource:$@;1
1837
1838 $(OX)\linkopts: $B\win\Makefile.msc}]
1839 set redir {>}
1840 foreach s [lsort [concat $src $AdditionalObj]] {
1841 writeln "\techo \$(OX)\\$s.obj $redir \$@"
1842 set redir {>>}
1843 }
1844 set redir {>>}
1845 writeln "!if \$(FOSSIL_ENABLE_MINIZ)!=0"
1846 writeln "\techo \$(OX)\\miniz.obj $redir \$@"
1847 writeln "!endif"
1848 writeln "\techo \$(LIBS) $redir \$@"
1849 writeln {
1850 $(OX):
1851 @-mkdir $@
1852
1853 translate$E: $(SRCDIR)\translate.c
1854 $(BCC) $**
1855
1856 makeheaders$E: $(SRCDIR)\makeheaders.c
1857 $(BCC) $**
1858
1859 mkindex$E: $(SRCDIR)\mkindex.c
1860 $(BCC) $**
1861
1862 mkbuiltin$E: $(SRCDIR)\mkbuiltin.c
1863 $(BCC) $**
1864
1865 mkversion$E: $(SRCDIR)\mkversion.c
1866 $(BCC) $**
1867
1868 codecheck1$E: $(SRCDIR)\codecheck1.c
1869 $(BCC) $**
1870
1871 !if $(USE_SEE)!=0
1872 SEE_FLAGS = /DSQLITE_HAS_CODEC=1 /DSQLITE_SHELL_DBKEY_PROC=fossil_key
1873 SQLITE3_SHELL_SRC = $(SRCDIR)\shell-see.c
1874 SQLITE3_SRC = $(SRCDIR)\sqlite3-see.c
@@ -1876,109 +1908,123 @@
1876 SEE_FLAGS =
1877 SQLITE3_SHELL_SRC = $(SRCDIR)\shell.c
1878 SQLITE3_SRC = $(SRCDIR)\sqlite3.c
1879 !endif
1880
1881 $(OX)\shell$O : $(SQLITE3_SHELL_SRC) $B\win\Makefile.msc
1882 $(TCC) /Fo$@ $(SHELL_OPTIONS) $(SQLITE_OPTIONS) $(SHELL_CFLAGS) $(SEE_FLAGS) -c $(SQLITE3_SHELL_SRC)
1883
1884 $(OX)\sqlite3$O : $(SQLITE3_SRC) $B\win\Makefile.msc
1885 $(TCC) /Fo$@ -c $(SQLITE_OPTIONS) $(SQLITE_CFLAGS) $(SEE_FLAGS) $(SQLITE3_SRC)
1886
1887 $(OX)\th$O : $(SRCDIR)\th.c
1888 $(TCC) /Fo$@ -c $**
1889
1890 $(OX)\th_lang$O : $(SRCDIR)\th_lang.c
1891 $(TCC) /Fo$@ -c $**
1892
1893 $(OX)\th_tcl$O : $(SRCDIR)\th_tcl.c
1894 $(TCC) /Fo$@ -c $**
1895
1896 $(OX)\miniz$O : $(SRCDIR)\miniz.c
1897 $(TCC) /Fo$@ -c $(MINIZ_OPTIONS) $(SRCDIR)\miniz.c
1898
1899 VERSION.h : mkversion$E $B\manifest.uuid $B\manifest $B\VERSION
1900 $** > $@
1901
1902 $(OX)\cson_amalgamation$O : $(SRCDIR)\cson_amalgamation.c
1903 $(TCC) /Fo$@ /c $**
1904
1905 page_index.h: mkindex$E $(SRC)
1906 $** > $@
1907
1908 builtin_data.h: mkbuiltin$E $(EXTRA_FILES)
1909 mkbuiltin$E --prefix $(SRCDIR)/ $(EXTRA_FILES) > $@
1910
1911 clean:
1912 -del $(OX)\*.obj 2>NUL
1913 -del *.obj 2>NUL
1914 -del *_.c 2>NUL
1915 -del *.h 2>NUL
1916 -del *.ilk 2>NUL
1917 -del *.map 2>NUL
1918 -del *.res 2>NUL
1919 -del headers 2>NUL
1920 -del linkopts 2>NUL
1921 -del vc*.pdb 2>NUL
1922
1923 realclean: clean
1924 -del $(APPNAME) 2>NUL
1925 -del $(PDBNAME) 2>NUL
1926 -del translate$E 2>NUL
1927 -del translate$P 2>NUL
1928 -del mkindex$E 2>NUL
1929 -del mkindex$P 2>NUL
1930 -del makeheaders$E 2>NUL
1931 -del makeheaders$P 2>NUL
1932 -del mkversion$E 2>NUL
1933 -del mkversion$P 2>NUL
1934 -del codecheck1$E 2>NUL
1935 -del codecheck1$P 2>NUL
1936 -del mkbuiltin$E 2>NUL
1937 -del mkbuiltin$P 2>NUL
1938
1939 $(OBJDIR)\json$O : $(SRCDIR)\json_detail.h
1940 $(OBJDIR)\json_artifact$O : $(SRCDIR)\json_detail.h
1941 $(OBJDIR)\json_branch$O : $(SRCDIR)\json_detail.h
1942 $(OBJDIR)\json_config$O : $(SRCDIR)\json_detail.h
1943 $(OBJDIR)\json_diff$O : $(SRCDIR)\json_detail.h
1944 $(OBJDIR)\json_dir$O : $(SRCDIR)\json_detail.h
1945 $(OBJDIR)\json_finfo$O : $(SRCDIR)\json_detail.h
1946 $(OBJDIR)\json_login$O : $(SRCDIR)\json_detail.h
1947 $(OBJDIR)\json_query$O : $(SRCDIR)\json_detail.h
1948 $(OBJDIR)\json_report$O : $(SRCDIR)\json_detail.h
1949 $(OBJDIR)\json_status$O : $(SRCDIR)\json_detail.h
1950 $(OBJDIR)\json_tag$O : $(SRCDIR)\json_detail.h
1951 $(OBJDIR)\json_timeline$O : $(SRCDIR)\json_detail.h
1952 $(OBJDIR)\json_user$O : $(SRCDIR)\json_detail.h
1953 $(OBJDIR)\json_wiki$O : $(SRCDIR)\json_detail.h
1954 }
1955 foreach s [lsort $src] {
1956 writeln "\$(OX)\\$s\$O : ${s}_.c ${s}.h"
1957 writeln "\t\$(TCC) /Fo\$@ -c ${s}_.c\n"
1958 writeln "${s}_.c : \$(SRCDIR)\\$s.c"
1959 writeln "\ttranslate\$E \$** > \$@\n"
1960 }
1961
1962 writeln "fossil.res : \$B\\win\\fossil.rc"
1963 writeln "\t\$(RCC) /fo \$@ \$**\n"
1964
1965 writeln "headers: makeheaders\$E page_index.h builtin_data.h VERSION.h"
1966 writeln -nonewline "\tmakeheaders\$E "
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1967 set i 0
1968 foreach s [lsort $src] {
1969 if {$i > 0} {
1970 writeln " \\"
1971 writeln -nonewline "\t\t\t"
1972 }
1973 writeln -nonewline "${s}_.c:$s.h"; incr i
1974 }
1975 writeln " \\\n\t\t\t\$(SRCDIR)\\sqlite3.h \\"
1976 writeln "\t\t\t\$(SRCDIR)\\th.h \\"
1977 writeln "\t\t\tVERSION.h \\"
1978 writeln "\t\t\t\$(SRCDIR)\\cson_amalgamation.h"
1979 writeln "\t@copy /Y nul: headers"
1980
1981
1982 close $output_file
1983 #
1984 # End of the win/Makefile.msc output
1985
--- src/makemake.tcl
+++ src/makemake.tcl
@@ -26,10 +26,11 @@
26 # Set the separate extra_files variable further down for how to add non-C
27 # files, such as string and BLOB resources.
28 #
29 set src {
30 add
31 ajax
32 alerts
33 allrepo
34 attach
35 backlink
36 backoffice
@@ -193,11 +194,10 @@
194 -DSQLITE_DEFAULT_MEMSTATUS=0
195 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1
196 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS
197 -DSQLITE_OMIT_DECLTYPE
198 -DSQLITE_OMIT_DEPRECATED
 
199 -DSQLITE_OMIT_PROGRESS_CALLBACK
200 -DSQLITE_OMIT_SHARED_CACHE
201 -DSQLITE_OMIT_LOAD_EXTENSION
202 -DSQLITE_MAX_EXPR_DEPTH=0
203 -DSQLITE_USE_ALLOCA
@@ -475,10 +475,11 @@
475 writeln "\$(OBJDIR)/headers:\t\$(OBJDIR)/page_index.h \$(OBJDIR)/builtin_data.h \$(OBJDIR)/makeheaders \$(OBJDIR)/VERSION.h"
476 writeln "\t\$(OBJDIR)/makeheaders $mhargs"
477 writeln "\ttouch \$(OBJDIR)/headers"
478 writeln "\$(OBJDIR)/headers: Makefile"
479 writeln "\$(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 : \$(SRCDIR)/json_detail.h"
480
481 writeln "Makefile:"
482 set extra_h(dispatch) " \$(OBJDIR)/page_index.h "
483 set extra_h(builtin) " \$(OBJDIR)/builtin_data.h "
484
485 foreach s [lsort $src] {
@@ -1423,11 +1424,10 @@
1424 $(OBJDIR)\json_tag$O : $(SRCDIR)\json_detail.h
1425 $(OBJDIR)\json_timeline$O : $(SRCDIR)\json_detail.h
1426 $(OBJDIR)\json_user$O : $(SRCDIR)\json_detail.h
1427 $(OBJDIR)\json_wiki$O : $(SRCDIR)\json_detail.h
1428
 
1429 }
1430 foreach s [lsort $src] {
1431 writeln "\$(OBJDIR)\\$s\$O : ${s}_.c ${s}.h"
1432 writeln "\t\$(TCC) -o\$@ -c ${s}_.c\n"
1433 writeln "${s}_.c : \$(SRCDIR)\\$s.c"
@@ -1456,39 +1456,52 @@
1456 writeln {#
1457 ##############################################################################
1458 # WARNING: DO NOT EDIT, AUTOMATICALLY GENERATED FILE (SEE "src/makemake.tcl")
1459 ##############################################################################
1460 #
 
 
 
 
 
 
 
1461 #
1462 # This file is automatically generated. Instead of editing this
1463 # file, edit "makemake.tcl" then run "tclsh makemake.tcl"
1464 # to regenerate this file.
1465 #
1466 B = ..
1467 SRCDIR = $(B)\src
1468 T = .
1469 OBJDIR = $(T)
1470 OX = $(OBJDIR)
1471 O = .obj
1472 E = .exe
1473 P = .pdb
1474
1475 INSTALLDIR = .
1476 !ifdef DESTDIR
1477 INSTALLDIR = $(DESTDIR)\$(INSTALLDIR)
1478 !endif
1479
1480 # When building out of source, this Makefile needs to know the path to the base
1481 # top-level directory for this project. Pass it on NMAKE command line via make
1482 # variable B:
1483 # NMAKE /f "path\to\this\Makefile" B="path/to/fossil/root"
1484 #
1485 # NOTE: Make sure B path has no trailing backslash, UNIX-style path is OK too.
1486 #
1487 !if !exist("$(B)\.fossil-settings")
1488 !error Please specify path to project base directory: B="path/to/fossil"
1489 !endif
1490
1491 # Perl is only necessary if OpenSSL support is enabled and it is built from
1492 # source code. The PERLDIR environment variable, if it exists, should point
1493 # to the directory containing the main Perl executable specified here (i.e.
1494 # "perl.exe").
1495 PERL = perl.exe
1496
1497 # Enable debugging symbols?
1498 !ifndef DEBUG
1499 DEBUG = 0
1500 !endif
1501 !ifdef FOSSIL_DEBUG
1502 DEBUG = 1
1503 !endif
1504
1505 # Build the OpenSSL libraries?
1506 !ifndef FOSSIL_BUILD_SSL
1507 FOSSIL_BUILD_SSL = 0
@@ -1605,27 +1618,30 @@
1618 ZLIB = zdll.lib
1619 !else
1620 ZLIB = zlib.lib
1621 !endif
1622
1623 INCL = /I. /I"$(OX)" /I"$(SRCDIR)" /I"$(B)\win\include"
1624
1625 !if $(FOSSIL_ENABLE_MINIZ)==0
1626 INCL = $(INCL) /I"$(ZINCDIR)"
1627 !endif
1628
1629 !if $(FOSSIL_ENABLE_SSL)!=0
1630 INCL = $(INCL) /I"$(SSLINCDIR)"
1631 !endif
1632
1633 !if $(FOSSIL_ENABLE_TCL)!=0
1634 INCL = $(INCL) /I"$(TCLINCDIR)"
1635 !endif
1636
1637 CFLAGS = /nologo
1638 LDFLAGS =
1639
1640 CFLAGS = $(CFLAGS) /D_CRT_SECURE_NO_DEPRECATE /D_CRT_SECURE_NO_WARNINGS
1641 CFLAGS = $(CFLAGS) /D_CRT_NONSTDC_NO_DEPRECATE /D_CRT_NONSTDC_NO_WARNINGS
1642
1643 !if $(FOSSIL_DYNAMIC_BUILD)!=0
1644 LDFLAGS = $(LDFLAGS) /MANIFEST
1645 !else
1646 LDFLAGS = $(LDFLAGS) /NODEFAULTLIB:msvcrt /MANIFEST:NO
1647 !endif
@@ -1654,11 +1670,11 @@
1670 CRTFLAGS = /MT
1671 !endif
1672 !endif
1673
1674 !if $(DEBUG)!=0
1675 CFLAGS = $(CFLAGS) /Zi $(CRTFLAGS) /Od /DFOSSIL_DEBUG
1676 LDFLAGS = $(LDFLAGS) /DEBUG
1677 !else
1678 CFLAGS = $(CFLAGS) $(CRTFLAGS) /O2
1679 !endif
1680
@@ -1674,11 +1690,11 @@
1690 RCC = $(RCC) /DFOSSIL_DYNAMIC_BUILD=1
1691 !endif
1692
1693 !if $(FOSSIL_ENABLE_MINIZ)==0
1694 LIBS = $(LIBS) $(ZLIB)
1695 LIBDIR = $(LIBDIR) /LIBPATH:"$(ZLIBDIR)"
1696 !endif
1697
1698 !if $(FOSSIL_ENABLE_MINIZ)!=0
1699 TCC = $(TCC) /DFOSSIL_ENABLE_MINIZ=1
1700 RCC = $(RCC) /DFOSSIL_ENABLE_MINIZ=1
@@ -1691,11 +1707,11 @@
1707
1708 !if $(FOSSIL_ENABLE_SSL)!=0
1709 TCC = $(TCC) /DFOSSIL_ENABLE_SSL=1
1710 RCC = $(RCC) /DFOSSIL_ENABLE_SSL=1
1711 LIBS = $(LIBS) $(SSLLIB)
1712 LIBDIR = $(LIBDIR) /LIBPATH:"$(SSLLIBDIR)"
1713 !endif
1714
1715 !if $(FOSSIL_ENABLE_EXEC_REL_PATHS)!=0
1716 TCC = $(TCC) /DFOSSIL_ENABLE_EXEC_REL_PATHS=1
1717 RCC = $(RCC) /DFOSSIL_ENABLE_EXEC_REL_PATHS=1
@@ -1749,11 +1765,11 @@
1765 foreach s [lsort $src] {
1766 if {$i > 0} {
1767 writeln " \\"
1768 writeln -nonewline " "
1769 }
1770 writeln -nonewline "\"\$(OX)\\${s}_.c\""; incr i
1771 }
1772 writeln "\n"
1773 writeln -nonewline "EXTRA_FILES = "
1774 set i 0
1775 foreach s [lsort $extra_files] {
@@ -1760,11 +1776,11 @@
1776 if {$i > 0} {
1777 writeln " \\"
1778 writeln -nonewline " "
1779 }
1780 set s [regsub -all / $s \\]
1781 writeln -nonewline "\"\$(SRCDIR)\\${s}\""; incr i
1782 }
1783 writeln "\n"
1784 set AdditionalObj [list shell sqlite3 th th_lang th_tcl cson_amalgamation]
1785 writeln -nonewline "OBJ = "
1786 set i 0
@@ -1771,51 +1787,71 @@
1787 foreach s [lsort [concat $src $AdditionalObj]] {
1788 if {$i > 0} {
1789 writeln " \\"
1790 writeln -nonewline " "
1791 }
1792 writeln -nonewline "\"\$(OX)\\$s\$O\""; incr i
1793 }
1794 if {$i > 0} {
1795 writeln " \\"
1796 }
1797 writeln "!if \$(FOSSIL_ENABLE_MINIZ)!=0"
1798 writeln -nonewline " "
1799 writeln "\"\$(OX)\\miniz\$O\" \\"; incr i
1800 writeln "!endif"
1801 writeln -nonewline " \"\$(OX)\\fossil.res\"\n\n"
1802 writeln [string map [list <<<NEXT_LINE>>> \\] {
1803 !ifndef BASEAPPNAME
1804 BASEAPPNAME = fossil
1805 !endif
1806
1807 APPNAME = $(OX)\$(BASEAPPNAME)$(E)
1808 PDBNAME = $(OX)\$(BASEAPPNAME)$(P)
1809 APPTARGETS =
1810
1811 all: "$(OX)" "$(APPNAME)"
1812
1813 $(BASEAPPNAME): "$(APPNAME)"
1814
1815 $(BASEAPPNAME)$(E): "$(APPNAME)"
1816
1817 install: "$(APPNAME)"
1818 echo F | xcopy /Y "$(APPNAME)" "$(INSTALLDIR)"\*
1819 !if $(DEBUG)!=0
1820 echo F | xcopy /Y "$(PDBNAME)" "$(INSTALLDIR)"\*
1821 !endif
1822
1823 $(OX):
1824 @-mkdir $@
1825
1826 zlib:
1827 @echo Building zlib from "$(ZLIBDIR)"...
1828 !if $(FOSSIL_ENABLE_WINXP)!=0
1829 @pushd "$(ZLIBDIR)" && $(MAKE) /f win32\Makefile.msc $(ZLIB) "CC=cl $(XPCFLAGS)" "LD=link $(XPLDFLAGS)" && popd
1830 !else
1831 @pushd "$(ZLIBDIR)" && $(MAKE) /f win32\Makefile.msc $(ZLIB) && popd
1832 !endif
1833
1834 clean-zlib:
1835 @pushd "$(ZLIBDIR)" && $(MAKE) /f win32\Makefile.msc clean && popd
1836
1837 !if $(FOSSIL_ENABLE_SSL)!=0
1838 openssl:
1839 @echo Building OpenSSL from "$(SSLDIR)"...
1840 !ifdef PERLDIR
1841 @pushd "$(SSLDIR)" && "$(PERLDIR)\$(PERL)" Configure $(SSLCONFIG) && popd
1842 !else
1843 @pushd "$(SSLDIR)" && "$(PERL)" Configure $(SSLCONFIG) && popd
1844 !endif
 
1845 !if $(FOSSIL_ENABLE_WINXP)!=0
1846 @pushd "$(SSLDIR)" && $(MAKE) "CC=cl $(XPCFLAGS)" "LFLAGS=$(XPLDFLAGS)" && popd
1847 !else
1848 @pushd "$(SSLDIR)" && $(MAKE) && popd
1849 !endif
1850
1851 clean-openssl:
1852 @pushd "$(SSLDIR)" && $(MAKE) clean && popd
1853 !endif
1854
1855 !if $(FOSSIL_ENABLE_MINIZ)==0
1856 !if $(FOSSIL_BUILD_ZLIB)!=0
1857 APPTARGETS = $(APPTARGETS) zlib
@@ -1826,49 +1862,45 @@
1862 !if $(FOSSIL_BUILD_SSL)!=0
1863 APPTARGETS = $(APPTARGETS) openssl
1864 !endif
1865 !endif
1866
1867 "$(APPNAME)" : $(APPTARGETS) "$(OBJDIR)\translate$E" "$(OBJDIR)\mkindex$E" "$(OBJDIR)\codecheck1$E" "$(OX)\headers" $(OBJ) "$(OX)\linkopts"
1868 "$(OBJDIR)\codecheck1$E" $(SRC)
1869 link $(LDFLAGS) /OUT:$@ /PDB:$(@D)\ $(LIBDIR) Wsetargv.obj "$(OX)\fossil.res" @"$(OX)\linkopts"
1870 if exist "$(B)\win\fossil.exe.manifest" <<<NEXT_LINE>>>
1871 $(MTC) -nologo -manifest "$(B)\win\fossil.exe.manifest" -outputresource:$@;1
1872
1873 "$(OX)\linkopts": "$(B)\win\Makefile.msc"}]
 
1874 set redir {>}
1875 foreach s [lsort [concat $src $AdditionalObj]] {
1876 writeln "\techo \"\$(OX)\\$s.obj\" $redir \$@"
1877 set redir {>>}
1878 }
1879 set redir {>>}
1880 writeln "!if \$(FOSSIL_ENABLE_MINIZ)!=0"
1881 writeln "\techo \"\$(OX)\\miniz.obj\" $redir \$@"
1882 writeln "!endif"
1883 writeln "\techo \$(LIBS) $redir \$@"
1884 writeln {
1885 "$(OBJDIR)\translate$E": "$(SRCDIR)\translate.c"
1886 $(BCC) /Fe$@ /Fo$(@D)\ /Fd$(@D)\ $**
1887
1888 "$(OBJDIR)\makeheaders$E": "$(SRCDIR)\makeheaders.c"
1889 $(BCC) /Fe$@ /Fo$(@D)\ /Fd$(@D)\ $**
1890
1891 "$(OBJDIR)\mkindex$E": "$(SRCDIR)\mkindex.c"
1892 $(BCC) /Fe$@ /Fo$(@D)\ /Fd$(@D)\ $**
1893
1894 "$(OBJDIR)\mkbuiltin$E": "$(SRCDIR)\mkbuiltin.c"
1895 $(BCC) /Fe$@ /Fo$(@D)\ /Fd$(@D)\ $**
1896
1897 "$(OBJDIR)\mkversion$E": "$(SRCDIR)\mkversion.c"
1898 $(BCC) /Fe$@ /Fo$(@D)\ /Fd$(@D)\ $**
1899
1900 "$(OBJDIR)\codecheck1$E": "$(SRCDIR)\codecheck1.c"
1901 $(BCC) /Fe$@ /Fo$(@D)\ /Fd$(@D)\ $**
 
 
 
1902
1903 !if $(USE_SEE)!=0
1904 SEE_FLAGS = /DSQLITE_HAS_CODEC=1 /DSQLITE_SHELL_DBKEY_PROC=fossil_key
1905 SQLITE3_SHELL_SRC = $(SRCDIR)\shell-see.c
1906 SQLITE3_SRC = $(SRCDIR)\sqlite3-see.c
@@ -1876,109 +1908,123 @@
1908 SEE_FLAGS =
1909 SQLITE3_SHELL_SRC = $(SRCDIR)\shell.c
1910 SQLITE3_SRC = $(SRCDIR)\sqlite3.c
1911 !endif
1912
1913 "$(OX)\shell$O" : "$(SQLITE3_SHELL_SRC)" "$(B)\win\Makefile.msc"
1914 $(TCC) /Fo$@ /Fd$(@D)\ $(SHELL_OPTIONS) $(SQLITE_OPTIONS) $(SHELL_CFLAGS) $(SEE_FLAGS) -c "$(SQLITE3_SHELL_SRC)"
1915
1916 "$(OX)\sqlite3$O" : "$(SQLITE3_SRC)" "$(B)\win\Makefile.msc"
1917 $(TCC) /Fo$@ /Fd$(@D)\ -c $(SQLITE_OPTIONS) $(SQLITE_CFLAGS) $(SEE_FLAGS) "$(SQLITE3_SRC)"
1918
1919 "$(OX)\th$O" : "$(SRCDIR)\th.c"
1920 $(TCC) /Fo$@ /Fd$(@D)\ -c $**
1921
1922 "$(OX)\th_lang$O" : "$(SRCDIR)\th_lang.c"
1923 $(TCC) /Fo$@ /Fd$(@D)\ -c $**
1924
1925 "$(OX)\th_tcl$O" : "$(SRCDIR)\th_tcl.c"
1926 $(TCC) /Fo$@ /Fd$(@D)\ -c $**
1927
1928 "$(OX)\miniz$O" : "$(SRCDIR)\miniz.c"
1929 $(TCC) /Fo$@ /Fd$(@D)\ -c $(MINIZ_OPTIONS) $**
1930
1931 "$(OX)\VERSION.h" : "$(OBJDIR)\mkversion$E" "$(B)\manifest.uuid" "$(B)\manifest" "$(B)\VERSION"
1932 $** > $@
1933
1934 "$(OX)\cson_amalgamation$O" : "$(SRCDIR)\cson_amalgamation.c"
1935 $(TCC) /Fo$@ /Fd$(@D)\ -c $**
1936
1937 "$(OX)\page_index.h": "$(OBJDIR)\mkindex$E" $(SRC)
1938 $** > $@
1939
1940 "$(OX)\builtin_data.h": "$(OBJDIR)\mkbuiltin$E" "$(OX)\builtin_data.reslist"
1941 "$(OBJDIR)\mkbuiltin$E" --prefix "$(SRCDIR)/" --reslist "$(OX)\builtin_data.reslist" > $@
1942
1943 cleanx:
1944 -del "$(OX)\*.obj" 2>NUL
1945 -del "$(OBJDIR)\*.obj" 2>NUL
1946 -del "$(OX)\*_.c" 2>NUL
1947 -del "$(OX)\*.h" 2>NUL
1948 -del "$(OX)\*.ilk" 2>NUL
1949 -del "$(OX)\*.map" 2>NUL
1950 -del "$(OX)\*.res" 2>NUL
1951 -del "$(OX)\*.reslist" 2>NUL
1952 -del "$(OX)\headers" 2>NUL
1953 -del "$(OX)\linkopts" 2>NUL
1954 -del "$(OX)\vc*.pdb" 2>NUL
1955
1956 clean: cleanx
1957 -del "$(APPNAME)" 2>NUL
1958 -del "$(PDBNAME)" 2>NUL
1959 -del "$(OBJDIR)\translate$E" 2>NUL
1960 -del "$(OBJDIR)\translate$P" 2>NUL
1961 -del "$(OBJDIR)\mkindex$E" 2>NUL
1962 -del "$(OBJDIR)\mkindex$P" 2>NUL
1963 -del "$(OBJDIR)\makeheaders$E" 2>NUL
1964 -del "$(OBJDIR)\makeheaders$P" 2>NUL
1965 -del "$(OBJDIR)\mkversion$E" 2>NUL
1966 -del "$(OBJDIR)\mkversion$P" 2>NUL
1967 -del "$(OBJDIR)\mkcss$E" 2>NUL
1968 -del "$(OBJDIR)\mkcss$P" 2>NUL
1969 -del "$(OBJDIR)\codecheck1$E" 2>NUL
1970 -del "$(OBJDIR)\codecheck1$P" 2>NUL
1971 -del "$(OBJDIR)\mkbuiltin$E" 2>NUL
1972 -del "$(OBJDIR)\mkbuiltin$P" 2>NUL
1973
1974 realclean: clean
1975
1976 "$(OBJDIR)\json$O" : "$(SRCDIR)\json_detail.h"
1977 "$(OBJDIR)\json_artifact$O" : "$(SRCDIR)\json_detail.h"
1978 "$(OBJDIR)\json_branch$O" : "$(SRCDIR)\json_detail.h"
1979 "$(OBJDIR)\json_config$O" : "$(SRCDIR)\json_detail.h"
1980 "$(OBJDIR)\json_diff$O" : "$(SRCDIR)\json_detail.h"
1981 "$(OBJDIR)\json_dir$O" : "$(SRCDIR)\json_detail.h"
1982 "$(OBJDIR)\json_finfo$O" : "$(SRCDIR)\json_detail.h"
1983 "$(OBJDIR)\json_login$O" : "$(SRCDIR)\json_detail.h"
1984 "$(OBJDIR)\json_query$O" : "$(SRCDIR)\json_detail.h"
1985 "$(OBJDIR)\json_report$O" : "$(SRCDIR)\json_detail.h"
1986 "$(OBJDIR)\json_status$O" : "$(SRCDIR)\json_detail.h"
1987 "$(OBJDIR)\json_tag$O" : "$(SRCDIR)\json_detail.h"
1988 "$(OBJDIR)\json_timeline$O" : "$(SRCDIR)\json_detail.h"
1989 "$(OBJDIR)\json_user$O" : "$(SRCDIR)\json_detail.h"
1990 "$(OBJDIR)\json_wiki$O" : "$(SRCDIR)\json_detail.h"
1991 }
1992
1993 writeln {"$(OX)\builtin_data.reslist": $(EXTRA_FILES) "$(B)\win\Makefile.msc"}
1994 set redir {>}
1995 foreach s [lsort $extra_files] {
1996 writeln "\techo \"\$(SRCDIR)\\${s}\" $redir \$@"
1997 set redir {>>}
1998 }
1999
2000 writeln ""
2001 foreach s [lsort $src] {
2002 writeln "\"\$(OX)\\$s\$O\" : \"\$(OX)\\${s}_.c\" \"\$(OX)\\${s}.h\""
2003 writeln "\t\$(TCC) /Fo\$@ /Fd\$(@D)\\ -c \"\$(OX)\\${s}_.c\"\n"
2004 writeln "\"\$(OX)\\${s}_.c\" : \"\$(SRCDIR)\\$s.c\""
2005 writeln "\t\"\$(OBJDIR)\\translate\$E\" \$** > \$@\n"
2006 }
2007
2008 writeln "\"\$(OX)\\fossil.res\" : \"\$(B)\\win\\fossil.rc\""
2009 writeln "\t\$(RCC) /fo \$@ \$**\n"
2010
2011 writeln "\"\$(OX)\\headers\": \"\$(OBJDIR)\\makeheaders\$E\" \"\$(OX)\\page_index.h\" \"\$(OX)\\builtin_data.h\" \"\$(OX)\\default_css.h\" \"\$(OX)\\VERSION.h\""
2012 writeln -nonewline "\t\"\$(OBJDIR)\\makeheaders\$E\" "
2013 set i 0
2014 foreach s [lsort $src] {
2015 if {$i > 0} {
2016 writeln " \\"
2017 writeln -nonewline "\t\t\t"
2018 }
2019 writeln -nonewline "\"\$(OX)\\${s}_.c\":\"\$(OX)\\$s.h\""; incr i
2020 }
2021 writeln " \\\n\t\t\t\"\$(SRCDIR)\\sqlite3.h\" \\"
2022 writeln "\t\t\t\"\$(SRCDIR)\\th.h\" \\"
2023 writeln "\t\t\t\"\$(OX)\\VERSION.h\" \\"
2024 writeln "\t\t\t\"\$(SRCDIR)\\cson_amalgamation.h\""
2025 writeln "\t@copy /Y nul: $@"
2026
2027
2028 close $output_file
2029 #
2030 # End of the win/Makefile.msc output
2031
+2 -1
--- src/markdown.c
+++ src/markdown.c
@@ -2008,11 +2008,12 @@
20082008
){
20092009
size_t beg, end, i;
20102010
char *txt_data;
20112011
int has_table = (rndr->make.table
20122012
&& rndr->make.table_row
2013
- && rndr->make.table_cell);
2013
+ && rndr->make.table_cell
2014
+ && memchr(data, '|', size)!=0);
20142015
20152016
beg = 0;
20162017
while( beg<size ){
20172018
txt_data = data+beg;
20182019
end = size-beg;
20192020
--- src/markdown.c
+++ src/markdown.c
@@ -2008,11 +2008,12 @@
2008 ){
2009 size_t beg, end, i;
2010 char *txt_data;
2011 int has_table = (rndr->make.table
2012 && rndr->make.table_row
2013 && rndr->make.table_cell);
 
2014
2015 beg = 0;
2016 while( beg<size ){
2017 txt_data = data+beg;
2018 end = size-beg;
2019
--- src/markdown.c
+++ src/markdown.c
@@ -2008,11 +2008,12 @@
2008 ){
2009 size_t beg, end, i;
2010 char *txt_data;
2011 int has_table = (rndr->make.table
2012 && rndr->make.table_row
2013 && rndr->make.table_cell
2014 && memchr(data, '|', size)!=0);
2015
2016 beg = 0;
2017 while( beg<size ){
2018 txt_data = data+beg;
2019 end = size-beg;
2020
--- src/markdown_html.c
+++ src/markdown_html.c
@@ -129,11 +129,11 @@
129129
static void html_epilog(struct Blob *ob, void *opaque){
130130
INTER_BLOCK(ob);
131131
BLOB_APPEND_LITERAL(ob, "</div>\n");
132132
}
133133
134
-static void html_raw_block(struct Blob *ob, struct Blob *text, void *opaque){
134
+static void html_blockhtml(struct Blob *ob, struct Blob *text, void *opaque){
135135
char *data = blob_buffer(text);
136136
size_t size = blob_size(text);
137137
Blob *title = (Blob*)opaque;
138138
while( size>0 && fossil_isspace(data[0]) ){ data++; size--; }
139139
while( size>0 && fossil_isspace(data[size-1]) ){ size--; }
@@ -142,11 +142,11 @@
142142
&& size>9
143143
&& title!=0
144144
&& sqlite3_strnicmp("<h1",data,3)==0
145145
&& sqlite3_strnicmp("</h1>", &data[size-5],5)==0
146146
){
147
- int nTag = htmlTagLength(data);
147
+ int nTag = html_tag_length(data);
148148
blob_append(title, data+nTag, size - nTag - 5);
149149
return;
150150
}
151151
INTER_BLOCK(ob);
152152
blob_append(ob, data, size);
@@ -298,13 +298,12 @@
298298
299299
300300
301301
/* HTML span tags */
302302
303
-static int html_raw_span(struct Blob *ob, struct Blob *text, void *opaque){
304
- /* If the document begins with a <h1> markup, take that as the header. */
305
- BLOB_APPEND_BLOB(ob, text);
303
+static int html_raw_html_tag(struct Blob *ob, struct Blob *text, void *opaque){
304
+ blob_append(ob, blob_buffer(text), blob_size(text));
306305
return 1;
307306
}
308307
309308
static int html_autolink(
310309
struct Blob *ob,
@@ -334,11 +333,11 @@
334333
** * https://spec.commonmark.org/0.29/#code-spans
335334
**
336335
** If nSep is 1 or 2, then this is a code-span which is inline.
337336
** If nSep is 3 or more, then this is a fenced code block
338337
*/
339
-static int html_code_span(
338
+static int html_codespan(
340339
struct Blob *ob, /* Write the output here */
341340
struct Blob *text, /* The stuff in between the code span marks */
342341
int nSep, /* Number of grave accents marks as delimiters */
343342
void *opaque
344343
){
@@ -414,11 +413,11 @@
414413
}
415414
BLOB_APPEND_LITERAL(ob, "\" />");
416415
return 1;
417416
}
418417
419
-static int html_line_break(struct Blob *ob, void *opaque){
418
+static int html_linebreak(struct Blob *ob, void *opaque){
420419
BLOB_APPEND_LITERAL(ob, "<br />\n");
421420
return 1;
422421
}
423422
424423
static int html_link(
@@ -484,11 +483,11 @@
484483
html_epilog,
485484
486485
/* block level elements */
487486
html_blockcode,
488487
html_blockquote,
489
- html_raw_block,
488
+ html_blockhtml,
490489
html_header,
491490
html_hrule,
492491
html_list,
493492
html_list_item,
494493
html_paragraph,
@@ -496,27 +495,27 @@
496495
html_table_cell,
497496
html_table_row,
498497
499498
/* span level elements */
500499
html_autolink,
501
- html_code_span,
500
+ html_codespan,
502501
html_double_emphasis,
503502
html_emphasis,
504503
html_image,
505
- html_line_break,
504
+ html_linebreak,
506505
html_link,
507
- html_raw_span,
506
+ html_raw_html_tag,
508507
html_triple_emphasis,
509508
510509
/* low level elements */
511
- 0, /* entities are copied verbatim */
510
+ 0, /* entity */
512511
html_normal_text,
513512
514513
/* misc. parameters */
515
- "*_", /* emphasis characters */
516
- 0 /* opaque data */
514
+ "*_", /* emph_chars */
515
+ 0 /* opaque */
517516
};
518517
html_renderer.opaque = output_title;
519518
if( output_title ) blob_reset(output_title);
520519
blob_reset(output_body);
521520
markdown(output_body, input_markdown, &html_renderer);
522521
}
523522
--- src/markdown_html.c
+++ src/markdown_html.c
@@ -129,11 +129,11 @@
129 static void html_epilog(struct Blob *ob, void *opaque){
130 INTER_BLOCK(ob);
131 BLOB_APPEND_LITERAL(ob, "</div>\n");
132 }
133
134 static void html_raw_block(struct Blob *ob, struct Blob *text, void *opaque){
135 char *data = blob_buffer(text);
136 size_t size = blob_size(text);
137 Blob *title = (Blob*)opaque;
138 while( size>0 && fossil_isspace(data[0]) ){ data++; size--; }
139 while( size>0 && fossil_isspace(data[size-1]) ){ size--; }
@@ -142,11 +142,11 @@
142 && size>9
143 && title!=0
144 && sqlite3_strnicmp("<h1",data,3)==0
145 && sqlite3_strnicmp("</h1>", &data[size-5],5)==0
146 ){
147 int nTag = htmlTagLength(data);
148 blob_append(title, data+nTag, size - nTag - 5);
149 return;
150 }
151 INTER_BLOCK(ob);
152 blob_append(ob, data, size);
@@ -298,13 +298,12 @@
298
299
300
301 /* HTML span tags */
302
303 static int html_raw_span(struct Blob *ob, struct Blob *text, void *opaque){
304 /* If the document begins with a <h1> markup, take that as the header. */
305 BLOB_APPEND_BLOB(ob, text);
306 return 1;
307 }
308
309 static int html_autolink(
310 struct Blob *ob,
@@ -334,11 +333,11 @@
334 ** * https://spec.commonmark.org/0.29/#code-spans
335 **
336 ** If nSep is 1 or 2, then this is a code-span which is inline.
337 ** If nSep is 3 or more, then this is a fenced code block
338 */
339 static int html_code_span(
340 struct Blob *ob, /* Write the output here */
341 struct Blob *text, /* The stuff in between the code span marks */
342 int nSep, /* Number of grave accents marks as delimiters */
343 void *opaque
344 ){
@@ -414,11 +413,11 @@
414 }
415 BLOB_APPEND_LITERAL(ob, "\" />");
416 return 1;
417 }
418
419 static int html_line_break(struct Blob *ob, void *opaque){
420 BLOB_APPEND_LITERAL(ob, "<br />\n");
421 return 1;
422 }
423
424 static int html_link(
@@ -484,11 +483,11 @@
484 html_epilog,
485
486 /* block level elements */
487 html_blockcode,
488 html_blockquote,
489 html_raw_block,
490 html_header,
491 html_hrule,
492 html_list,
493 html_list_item,
494 html_paragraph,
@@ -496,27 +495,27 @@
496 html_table_cell,
497 html_table_row,
498
499 /* span level elements */
500 html_autolink,
501 html_code_span,
502 html_double_emphasis,
503 html_emphasis,
504 html_image,
505 html_line_break,
506 html_link,
507 html_raw_span,
508 html_triple_emphasis,
509
510 /* low level elements */
511 0, /* entities are copied verbatim */
512 html_normal_text,
513
514 /* misc. parameters */
515 "*_", /* emphasis characters */
516 0 /* opaque data */
517 };
518 html_renderer.opaque = output_title;
519 if( output_title ) blob_reset(output_title);
520 blob_reset(output_body);
521 markdown(output_body, input_markdown, &html_renderer);
522 }
523
--- src/markdown_html.c
+++ src/markdown_html.c
@@ -129,11 +129,11 @@
129 static void html_epilog(struct Blob *ob, void *opaque){
130 INTER_BLOCK(ob);
131 BLOB_APPEND_LITERAL(ob, "</div>\n");
132 }
133
134 static void html_blockhtml(struct Blob *ob, struct Blob *text, void *opaque){
135 char *data = blob_buffer(text);
136 size_t size = blob_size(text);
137 Blob *title = (Blob*)opaque;
138 while( size>0 && fossil_isspace(data[0]) ){ data++; size--; }
139 while( size>0 && fossil_isspace(data[size-1]) ){ size--; }
@@ -142,11 +142,11 @@
142 && size>9
143 && title!=0
144 && sqlite3_strnicmp("<h1",data,3)==0
145 && sqlite3_strnicmp("</h1>", &data[size-5],5)==0
146 ){
147 int nTag = html_tag_length(data);
148 blob_append(title, data+nTag, size - nTag - 5);
149 return;
150 }
151 INTER_BLOCK(ob);
152 blob_append(ob, data, size);
@@ -298,13 +298,12 @@
298
299
300
301 /* HTML span tags */
302
303 static int html_raw_html_tag(struct Blob *ob, struct Blob *text, void *opaque){
304 blob_append(ob, blob_buffer(text), blob_size(text));
 
305 return 1;
306 }
307
308 static int html_autolink(
309 struct Blob *ob,
@@ -334,11 +333,11 @@
333 ** * https://spec.commonmark.org/0.29/#code-spans
334 **
335 ** If nSep is 1 or 2, then this is a code-span which is inline.
336 ** If nSep is 3 or more, then this is a fenced code block
337 */
338 static int html_codespan(
339 struct Blob *ob, /* Write the output here */
340 struct Blob *text, /* The stuff in between the code span marks */
341 int nSep, /* Number of grave accents marks as delimiters */
342 void *opaque
343 ){
@@ -414,11 +413,11 @@
413 }
414 BLOB_APPEND_LITERAL(ob, "\" />");
415 return 1;
416 }
417
418 static int html_linebreak(struct Blob *ob, void *opaque){
419 BLOB_APPEND_LITERAL(ob, "<br />\n");
420 return 1;
421 }
422
423 static int html_link(
@@ -484,11 +483,11 @@
483 html_epilog,
484
485 /* block level elements */
486 html_blockcode,
487 html_blockquote,
488 html_blockhtml,
489 html_header,
490 html_hrule,
491 html_list,
492 html_list_item,
493 html_paragraph,
@@ -496,27 +495,27 @@
495 html_table_cell,
496 html_table_row,
497
498 /* span level elements */
499 html_autolink,
500 html_codespan,
501 html_double_emphasis,
502 html_emphasis,
503 html_image,
504 html_linebreak,
505 html_link,
506 html_raw_html_tag,
507 html_triple_emphasis,
508
509 /* low level elements */
510 0, /* entity */
511 html_normal_text,
512
513 /* misc. parameters */
514 "*_", /* emph_chars */
515 0 /* opaque */
516 };
517 html_renderer.opaque = output_title;
518 if( output_title ) blob_reset(output_title);
519 blob_reset(output_body);
520 markdown(output_body, input_markdown, &html_renderer);
521 }
522
+207 -15
--- src/mkbuiltin.c
+++ src/mkbuiltin.c
@@ -17,10 +17,17 @@
1717
**
1818
** This is a stand-alone utility program that is part of the Fossil build
1919
** process. This program reads files named on the command line and converts
2020
** them into ANSI-C static char array variables. Output is written onto
2121
** standard output.
22
+**
23
+** Additionally, the input files may be listed in a separate list file (one
24
+** resource name per line, optionally enclosed in double quotes). Pass the list
25
+** via '--reslist <the-list-file>' option. Both lists, from the command line and
26
+** the list file, are merged; duplicate file names skipped from processing.
27
+** This option is useful to get around the command line length limitations
28
+** under some OS, like Windows.
2229
**
2330
** The makefiles use this utility to package various resources (large scripts,
2431
** GIF images, etc) that are separate files in the source code as byte
2532
** arrays in the resulting executable.
2633
*/
@@ -101,48 +108,232 @@
101108
struct Resource {
102109
char *zName;
103110
int nByte;
104111
int idx;
105112
};
113
+
114
+typedef struct ResourceList ResourceList;
115
+struct ResourceList {
116
+ Resource *aRes;
117
+ int nRes;
118
+ char *buf;
119
+ long bufsize;
120
+};
121
+
122
+
123
+Resource *read_reslist(char *name, ResourceList *list){
124
+#define RESLIST_BUF_MAXBYTES (1L<<20) /* 1 MB of text */
125
+ FILE *in;
126
+ long filesize = 0L;
127
+ long linecount = 0L;
128
+ char *p = 0;
129
+ char *pb = 0;
130
+
131
+ memset(list, 0, sizeof(*list));
132
+
133
+ if( (in = fopen(name, "rb"))==0 ){
134
+ return list->aRes;
135
+ }
136
+ fseek(in, 0L, SEEK_END);
137
+ filesize = ftell(in);
138
+ rewind(in);
139
+
140
+ if( filesize > RESLIST_BUF_MAXBYTES ){
141
+ fprintf(stderr, "List file [%s] must be smaller than %ld bytes\n", name,
142
+ RESLIST_BUF_MAXBYTES);
143
+ return list->aRes;
144
+ }
145
+ list->bufsize = filesize;
146
+ list->buf = (char *)calloc((list->bufsize + 2), sizeof(list->buf[0]));
147
+ if( list->buf==0 ){
148
+ fprintf(stderr, "failed to allocated %ld bytes\n", list->bufsize + 1);
149
+ list->bufsize = 0L;
150
+ return list->aRes;
151
+ }
152
+ filesize = fread(list->buf, sizeof(list->buf[0]),list->bufsize, in);
153
+ if ( filesize!=list->bufsize ){
154
+ fprintf(stderr, "failed to read [%s]\n", name);
155
+ return list->aRes;
156
+ }
157
+ fclose(in);
158
+
159
+ /*
160
+ ** append an extra newline (if missing) for a correct line count
161
+ */
162
+ if( list->buf[list->bufsize-1]!='\n' ) list->buf[list->bufsize]='\n';
163
+
164
+ linecount = 0L;
165
+ for( p = strchr(list->buf, '\n');
166
+ p && p <= &list->buf[list->bufsize-1];
167
+ p = strchr(++p, '\n') ){
168
+ ++linecount;
169
+ }
170
+
171
+ list->aRes = (Resource *)calloc(linecount+1, sizeof(list->aRes[0]));
172
+ for( pb = list->buf, p = strchr(pb, '\n');
173
+ p && p <= &list->buf[list->bufsize-1];
174
+ pb = ++p, p = strchr(pb, '\n') ){
175
+
176
+ char *path = pb;
177
+ char *pe = p - 1;
178
+
179
+ /* strip leading and trailing whitespace */
180
+ while( path < p && isspace(*path) ) ++path;
181
+ while( pe > path && isspace(*pe) ){
182
+ *pe = '\0';
183
+ --pe;
184
+ }
185
+
186
+ /* strip outer quotes */
187
+ while( path < p && *path=='\"') ++path;
188
+ while( pe > path && *pe=='\"' ){
189
+ *pe = '\0';
190
+ --pe;
191
+ }
192
+ *p = '\0';
193
+
194
+ /* skip empty path */
195
+ if( *path ){
196
+ list->aRes[list->nRes].zName = path;
197
+ ++(list->nRes);
198
+ }
199
+ }
200
+ return list->aRes;
201
+}
202
+
203
+void free_reslist(ResourceList *list){
204
+ if( list ){
205
+ if( list->buf ) free(list->buf);
206
+ if( list->aRes) free(list->aRes);
207
+ memset(list, 0, sizeof(*list));
208
+ }
209
+}
106210
107211
/*
108212
** Compare two Resource objects for sorting purposes. They sort
109213
** in zName order so that Fossil can search for resources using
110214
** a binary search.
111215
*/
112
-static int compareResource(const void *a, const void *b){
113
- Resource *pA = (Resource*)a;
114
- Resource *pB = (Resource*)b;
115
- return strcmp(pA->zName, pB->zName);
216
+typedef int (*QsortCompareFunc)(const void *, const void*);
217
+
218
+static int compareResource(const Resource *a, const Resource *b){
219
+ return strcmp(a->zName, b->zName);
220
+}
221
+
222
+int remove_duplicates(ResourceList *list){
223
+ char dupNameAsc[64] = "\255";
224
+ char dupNameDesc[64] = "";
225
+ Resource dupResAsc;
226
+ Resource dupResDesc;
227
+ Resource *pDupRes;
228
+ int dupcount = 0;
229
+ int i;
230
+
231
+ if( list->nRes==0 ){
232
+ return list->nRes;
233
+ }
234
+
235
+ /*
236
+ ** scan for duplicates and assign their names to a string that would sort to
237
+ ** the bottom, then re-sort and truncate the duplicates
238
+ */
239
+ memset(dupNameAsc, dupNameAsc[0], sizeof(dupNameAsc)-2);
240
+ memset(dupNameDesc, dupNameDesc[0], sizeof(dupNameDesc)-2);
241
+ memset(&dupResAsc, 0, sizeof(dupResAsc));
242
+ dupResAsc.zName = dupNameAsc;
243
+ memset(&dupResDesc, 0, sizeof(dupResDesc));
244
+ dupResDesc.zName = dupNameDesc;
245
+ pDupRes = (compareResource(&dupResAsc, &dupResDesc) > 0
246
+ ? &dupResAsc : &dupResDesc);
247
+
248
+ qsort(list->aRes, list->nRes, sizeof(list->aRes[0]),
249
+ (QsortCompareFunc)compareResource);
250
+ for( i=0; i<list->nRes-1 ; ++i){
251
+ Resource *res = &list->aRes[i];
252
+
253
+ while( i<list->nRes-1
254
+ && compareResource(res, &list->aRes[i+1])==0 ){
255
+ fprintf(stderr, "Skipped a duplicate file [%s]\n", list->aRes[i+1].zName);
256
+ memcpy(&list->aRes[i+1], pDupRes, sizeof(list->aRes[0]));
257
+ ++dupcount;
258
+
259
+ ++i;
260
+ }
261
+ }
262
+ if( dupcount == 0){
263
+ return list->nRes;
264
+ }
265
+ qsort(list->aRes, list->nRes, sizeof(list->aRes[0]),
266
+ (QsortCompareFunc)compareResource);
267
+ list->nRes -= dupcount;
268
+ memset(&list->aRes[list->nRes], 0, sizeof(list->aRes[0]));
269
+
270
+ return list->nRes;
116271
}
117272
118273
int main(int argc, char **argv){
119274
int i, sz;
120275
int j, n;
276
+ ResourceList resList;
121277
Resource *aRes;
122278
int nRes;
123279
unsigned char *pData;
124280
int nErr = 0;
125281
int nSkip;
126282
int nPrefix = 0;
127283
int nName;
128284
285
+ if( argc==1 ){
286
+ fprintf(stderr, "usage\t:%s "
287
+ "[--prefix path] [--reslist file] [resource-file1 ...]\n",
288
+ argv[0]
289
+ );
290
+ return 1;
291
+ }
129292
if( argc>3 && strcmp(argv[1],"--prefix")==0 ){
130293
nPrefix = (int)strlen(argv[2]);
131294
argc -= 2;
132295
argv += 2;
133296
}
134
- nRes = argc - 1;
135
- aRes = malloc( nRes*sizeof(aRes[0]) );
136
- if( aRes==0 ){
137
- fprintf(stderr, "malloc failed\n");
138
- return 1;
139
- }
140
- for(i=0; i<argc-1; i++){
141
- aRes[i].zName = argv[i+1];
142
- }
143
- qsort(aRes, nRes, sizeof(aRes[0]), compareResource);
297
+
298
+ memset(&resList, 0, sizeof(resList));
299
+ if( argc>2 && strcmp(argv[1],"--reslist")==0 ){
300
+ if( read_reslist(argv[2], &resList)==0 ){
301
+ fprintf(stderr, "Failed to load resource list from [%s]", argv[2]);
302
+ free_reslist(&resList);
303
+ return 1;
304
+ }
305
+ argc -= 2;
306
+ argv += 2;
307
+ }
308
+
309
+ if( argc>1 ){
310
+ aRes = realloc(resList.aRes, (resList.nRes+argc-1)*sizeof(resList.aRes[0]));
311
+ if( aRes==0 || aRes==resList.aRes ){
312
+ fprintf(stderr, "realloc failed\n");
313
+ free_reslist(&resList);
314
+ return 1;
315
+ }
316
+ resList.aRes = aRes;
317
+
318
+ for(i=0; i<argc-1; i++){
319
+ resList.aRes[resList.nRes].zName = argv[i+1];
320
+ ++resList.nRes;
321
+ }
322
+ }
323
+
324
+ if( resList.nRes==0 ){
325
+ fprintf(stderr,"No resource files to process\n");
326
+ free_reslist(&resList);
327
+ return 1;
328
+ }
329
+ remove_duplicates(&resList);
330
+
331
+ nRes = resList.nRes;
332
+ aRes = resList.aRes;
333
+ qsort(aRes, nRes, sizeof(aRes[0]), (QsortCompareFunc)compareResource);
334
+
144335
printf("/* Automatically generated code: Do not edit.\n**\n"
145336
"** Rerun the \"mkbuiltin.c\" program or rerun the Fossil\n"
146337
"** makefile to update this source file.\n"
147338
"*/\n");
148339
for(i=0; i<nRes; i++){
@@ -204,13 +395,14 @@
204395
while( z[0] ){
205396
if( z[0]=='\\' ) z[0] = '/';
206397
z++;
207398
}
208399
}
209
- qsort(aRes, nRes, sizeof(aRes[0]), compareResource);
400
+ qsort(aRes, nRes, sizeof(aRes[0]), (QsortCompareFunc)compareResource);
210401
for(i=0; i<nRes; i++){
211402
printf(" { \"%s\", bidata%d, %d },\n",
212403
aRes[i].zName, aRes[i].idx, aRes[i].nByte);
213404
}
214405
printf("};\n");
406
+ free_reslist(&resList);
215407
return nErr;
216408
}
217409
--- src/mkbuiltin.c
+++ src/mkbuiltin.c
@@ -17,10 +17,17 @@
17 **
18 ** This is a stand-alone utility program that is part of the Fossil build
19 ** process. This program reads files named on the command line and converts
20 ** them into ANSI-C static char array variables. Output is written onto
21 ** standard output.
 
 
 
 
 
 
 
22 **
23 ** The makefiles use this utility to package various resources (large scripts,
24 ** GIF images, etc) that are separate files in the source code as byte
25 ** arrays in the resulting executable.
26 */
@@ -101,48 +108,232 @@
101 struct Resource {
102 char *zName;
103 int nByte;
104 int idx;
105 };
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
106
107 /*
108 ** Compare two Resource objects for sorting purposes. They sort
109 ** in zName order so that Fossil can search for resources using
110 ** a binary search.
111 */
112 static int compareResource(const void *a, const void *b){
113 Resource *pA = (Resource*)a;
114 Resource *pB = (Resource*)b;
115 return strcmp(pA->zName, pB->zName);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
116 }
117
118 int main(int argc, char **argv){
119 int i, sz;
120 int j, n;
 
121 Resource *aRes;
122 int nRes;
123 unsigned char *pData;
124 int nErr = 0;
125 int nSkip;
126 int nPrefix = 0;
127 int nName;
128
 
 
 
 
 
 
 
129 if( argc>3 && strcmp(argv[1],"--prefix")==0 ){
130 nPrefix = (int)strlen(argv[2]);
131 argc -= 2;
132 argv += 2;
133 }
134 nRes = argc - 1;
135 aRes = malloc( nRes*sizeof(aRes[0]) );
136 if( aRes==0 ){
137 fprintf(stderr, "malloc failed\n");
138 return 1;
139 }
140 for(i=0; i<argc-1; i++){
141 aRes[i].zName = argv[i+1];
142 }
143 qsort(aRes, nRes, sizeof(aRes[0]), compareResource);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
144 printf("/* Automatically generated code: Do not edit.\n**\n"
145 "** Rerun the \"mkbuiltin.c\" program or rerun the Fossil\n"
146 "** makefile to update this source file.\n"
147 "*/\n");
148 for(i=0; i<nRes; i++){
@@ -204,13 +395,14 @@
204 while( z[0] ){
205 if( z[0]=='\\' ) z[0] = '/';
206 z++;
207 }
208 }
209 qsort(aRes, nRes, sizeof(aRes[0]), compareResource);
210 for(i=0; i<nRes; i++){
211 printf(" { \"%s\", bidata%d, %d },\n",
212 aRes[i].zName, aRes[i].idx, aRes[i].nByte);
213 }
214 printf("};\n");
 
215 return nErr;
216 }
217
--- src/mkbuiltin.c
+++ src/mkbuiltin.c
@@ -17,10 +17,17 @@
17 **
18 ** This is a stand-alone utility program that is part of the Fossil build
19 ** process. This program reads files named on the command line and converts
20 ** them into ANSI-C static char array variables. Output is written onto
21 ** standard output.
22 **
23 ** Additionally, the input files may be listed in a separate list file (one
24 ** resource name per line, optionally enclosed in double quotes). Pass the list
25 ** via '--reslist <the-list-file>' option. Both lists, from the command line and
26 ** the list file, are merged; duplicate file names skipped from processing.
27 ** This option is useful to get around the command line length limitations
28 ** under some OS, like Windows.
29 **
30 ** The makefiles use this utility to package various resources (large scripts,
31 ** GIF images, etc) that are separate files in the source code as byte
32 ** arrays in the resulting executable.
33 */
@@ -101,48 +108,232 @@
108 struct Resource {
109 char *zName;
110 int nByte;
111 int idx;
112 };
113
114 typedef struct ResourceList ResourceList;
115 struct ResourceList {
116 Resource *aRes;
117 int nRes;
118 char *buf;
119 long bufsize;
120 };
121
122
123 Resource *read_reslist(char *name, ResourceList *list){
124 #define RESLIST_BUF_MAXBYTES (1L<<20) /* 1 MB of text */
125 FILE *in;
126 long filesize = 0L;
127 long linecount = 0L;
128 char *p = 0;
129 char *pb = 0;
130
131 memset(list, 0, sizeof(*list));
132
133 if( (in = fopen(name, "rb"))==0 ){
134 return list->aRes;
135 }
136 fseek(in, 0L, SEEK_END);
137 filesize = ftell(in);
138 rewind(in);
139
140 if( filesize > RESLIST_BUF_MAXBYTES ){
141 fprintf(stderr, "List file [%s] must be smaller than %ld bytes\n", name,
142 RESLIST_BUF_MAXBYTES);
143 return list->aRes;
144 }
145 list->bufsize = filesize;
146 list->buf = (char *)calloc((list->bufsize + 2), sizeof(list->buf[0]));
147 if( list->buf==0 ){
148 fprintf(stderr, "failed to allocated %ld bytes\n", list->bufsize + 1);
149 list->bufsize = 0L;
150 return list->aRes;
151 }
152 filesize = fread(list->buf, sizeof(list->buf[0]),list->bufsize, in);
153 if ( filesize!=list->bufsize ){
154 fprintf(stderr, "failed to read [%s]\n", name);
155 return list->aRes;
156 }
157 fclose(in);
158
159 /*
160 ** append an extra newline (if missing) for a correct line count
161 */
162 if( list->buf[list->bufsize-1]!='\n' ) list->buf[list->bufsize]='\n';
163
164 linecount = 0L;
165 for( p = strchr(list->buf, '\n');
166 p && p <= &list->buf[list->bufsize-1];
167 p = strchr(++p, '\n') ){
168 ++linecount;
169 }
170
171 list->aRes = (Resource *)calloc(linecount+1, sizeof(list->aRes[0]));
172 for( pb = list->buf, p = strchr(pb, '\n');
173 p && p <= &list->buf[list->bufsize-1];
174 pb = ++p, p = strchr(pb, '\n') ){
175
176 char *path = pb;
177 char *pe = p - 1;
178
179 /* strip leading and trailing whitespace */
180 while( path < p && isspace(*path) ) ++path;
181 while( pe > path && isspace(*pe) ){
182 *pe = '\0';
183 --pe;
184 }
185
186 /* strip outer quotes */
187 while( path < p && *path=='\"') ++path;
188 while( pe > path && *pe=='\"' ){
189 *pe = '\0';
190 --pe;
191 }
192 *p = '\0';
193
194 /* skip empty path */
195 if( *path ){
196 list->aRes[list->nRes].zName = path;
197 ++(list->nRes);
198 }
199 }
200 return list->aRes;
201 }
202
203 void free_reslist(ResourceList *list){
204 if( list ){
205 if( list->buf ) free(list->buf);
206 if( list->aRes) free(list->aRes);
207 memset(list, 0, sizeof(*list));
208 }
209 }
210
211 /*
212 ** Compare two Resource objects for sorting purposes. They sort
213 ** in zName order so that Fossil can search for resources using
214 ** a binary search.
215 */
216 typedef int (*QsortCompareFunc)(const void *, const void*);
217
218 static int compareResource(const Resource *a, const Resource *b){
219 return strcmp(a->zName, b->zName);
220 }
221
222 int remove_duplicates(ResourceList *list){
223 char dupNameAsc[64] = "\255";
224 char dupNameDesc[64] = "";
225 Resource dupResAsc;
226 Resource dupResDesc;
227 Resource *pDupRes;
228 int dupcount = 0;
229 int i;
230
231 if( list->nRes==0 ){
232 return list->nRes;
233 }
234
235 /*
236 ** scan for duplicates and assign their names to a string that would sort to
237 ** the bottom, then re-sort and truncate the duplicates
238 */
239 memset(dupNameAsc, dupNameAsc[0], sizeof(dupNameAsc)-2);
240 memset(dupNameDesc, dupNameDesc[0], sizeof(dupNameDesc)-2);
241 memset(&dupResAsc, 0, sizeof(dupResAsc));
242 dupResAsc.zName = dupNameAsc;
243 memset(&dupResDesc, 0, sizeof(dupResDesc));
244 dupResDesc.zName = dupNameDesc;
245 pDupRes = (compareResource(&dupResAsc, &dupResDesc) > 0
246 ? &dupResAsc : &dupResDesc);
247
248 qsort(list->aRes, list->nRes, sizeof(list->aRes[0]),
249 (QsortCompareFunc)compareResource);
250 for( i=0; i<list->nRes-1 ; ++i){
251 Resource *res = &list->aRes[i];
252
253 while( i<list->nRes-1
254 && compareResource(res, &list->aRes[i+1])==0 ){
255 fprintf(stderr, "Skipped a duplicate file [%s]\n", list->aRes[i+1].zName);
256 memcpy(&list->aRes[i+1], pDupRes, sizeof(list->aRes[0]));
257 ++dupcount;
258
259 ++i;
260 }
261 }
262 if( dupcount == 0){
263 return list->nRes;
264 }
265 qsort(list->aRes, list->nRes, sizeof(list->aRes[0]),
266 (QsortCompareFunc)compareResource);
267 list->nRes -= dupcount;
268 memset(&list->aRes[list->nRes], 0, sizeof(list->aRes[0]));
269
270 return list->nRes;
271 }
272
273 int main(int argc, char **argv){
274 int i, sz;
275 int j, n;
276 ResourceList resList;
277 Resource *aRes;
278 int nRes;
279 unsigned char *pData;
280 int nErr = 0;
281 int nSkip;
282 int nPrefix = 0;
283 int nName;
284
285 if( argc==1 ){
286 fprintf(stderr, "usage\t:%s "
287 "[--prefix path] [--reslist file] [resource-file1 ...]\n",
288 argv[0]
289 );
290 return 1;
291 }
292 if( argc>3 && strcmp(argv[1],"--prefix")==0 ){
293 nPrefix = (int)strlen(argv[2]);
294 argc -= 2;
295 argv += 2;
296 }
297
298 memset(&resList, 0, sizeof(resList));
299 if( argc>2 && strcmp(argv[1],"--reslist")==0 ){
300 if( read_reslist(argv[2], &resList)==0 ){
301 fprintf(stderr, "Failed to load resource list from [%s]", argv[2]);
302 free_reslist(&resList);
303 return 1;
304 }
305 argc -= 2;
306 argv += 2;
307 }
308
309 if( argc>1 ){
310 aRes = realloc(resList.aRes, (resList.nRes+argc-1)*sizeof(resList.aRes[0]));
311 if( aRes==0 || aRes==resList.aRes ){
312 fprintf(stderr, "realloc failed\n");
313 free_reslist(&resList);
314 return 1;
315 }
316 resList.aRes = aRes;
317
318 for(i=0; i<argc-1; i++){
319 resList.aRes[resList.nRes].zName = argv[i+1];
320 ++resList.nRes;
321 }
322 }
323
324 if( resList.nRes==0 ){
325 fprintf(stderr,"No resource files to process\n");
326 free_reslist(&resList);
327 return 1;
328 }
329 remove_duplicates(&resList);
330
331 nRes = resList.nRes;
332 aRes = resList.aRes;
333 qsort(aRes, nRes, sizeof(aRes[0]), (QsortCompareFunc)compareResource);
334
335 printf("/* Automatically generated code: Do not edit.\n**\n"
336 "** Rerun the \"mkbuiltin.c\" program or rerun the Fossil\n"
337 "** makefile to update this source file.\n"
338 "*/\n");
339 for(i=0; i<nRes; i++){
@@ -204,13 +395,14 @@
395 while( z[0] ){
396 if( z[0]=='\\' ) z[0] = '/';
397 z++;
398 }
399 }
400 qsort(aRes, nRes, sizeof(aRes[0]), (QsortCompareFunc)compareResource);
401 for(i=0; i<nRes; i++){
402 printf(" { \"%s\", bidata%d, %d },\n",
403 aRes[i].zName, aRes[i].idx, aRes[i].nByte);
404 }
405 printf("};\n");
406 free_reslist(&resList);
407 return nErr;
408 }
409
+3 -2
--- src/name.c
+++ src/name.c
@@ -380,11 +380,11 @@
380380
if( zType[0]=='*' ){
381381
db_prepare(&q, "SELECT rid FROM blob WHERE uuid GLOB '%q*'", zUuid);
382382
}else{
383383
db_prepare(&q,
384384
"SELECT blob.rid"
385
- " FROM blob, event"
385
+ " FROM blob CROSS JOIN event"
386386
" WHERE blob.uuid GLOB '%q*'"
387387
" AND event.objid=blob.rid"
388388
" AND event.type GLOB '%q'",
389389
zUuid, zType
390390
);
@@ -973,11 +973,12 @@
973973
@ type TEXT, -- file, checkin, wiki, ticket, etc.
974974
@ rcvid INT, -- When the artifact was received
975975
@ summary TEXT, -- Summary comment for the object
976976
@ ref TEXT -- hash of an object to link against
977977
@ );
978
-@ CREATE INDEX desctype ON description(summary) WHERE summary='unknown';
978
+@ CREATE INDEX IF NOT EXISTS desctype
979
+@ ON description(summary) WHERE summary='unknown';
979980
;
980981
981982
/*
982983
** Attempt to describe all phantom artifacts. The artifacts are
983984
** already loaded into the description table and have summary='unknown'.
984985
--- src/name.c
+++ src/name.c
@@ -380,11 +380,11 @@
380 if( zType[0]=='*' ){
381 db_prepare(&q, "SELECT rid FROM blob WHERE uuid GLOB '%q*'", zUuid);
382 }else{
383 db_prepare(&q,
384 "SELECT blob.rid"
385 " FROM blob, event"
386 " WHERE blob.uuid GLOB '%q*'"
387 " AND event.objid=blob.rid"
388 " AND event.type GLOB '%q'",
389 zUuid, zType
390 );
@@ -973,11 +973,12 @@
973 @ type TEXT, -- file, checkin, wiki, ticket, etc.
974 @ rcvid INT, -- When the artifact was received
975 @ summary TEXT, -- Summary comment for the object
976 @ ref TEXT -- hash of an object to link against
977 @ );
978 @ CREATE INDEX desctype ON description(summary) WHERE summary='unknown';
 
979 ;
980
981 /*
982 ** Attempt to describe all phantom artifacts. The artifacts are
983 ** already loaded into the description table and have summary='unknown'.
984
--- src/name.c
+++ src/name.c
@@ -380,11 +380,11 @@
380 if( zType[0]=='*' ){
381 db_prepare(&q, "SELECT rid FROM blob WHERE uuid GLOB '%q*'", zUuid);
382 }else{
383 db_prepare(&q,
384 "SELECT blob.rid"
385 " FROM blob CROSS JOIN event"
386 " WHERE blob.uuid GLOB '%q*'"
387 " AND event.objid=blob.rid"
388 " AND event.type GLOB '%q'",
389 zUuid, zType
390 );
@@ -973,11 +973,12 @@
973 @ type TEXT, -- file, checkin, wiki, ticket, etc.
974 @ rcvid INT, -- When the artifact was received
975 @ summary TEXT, -- Summary comment for the object
976 @ ref TEXT -- hash of an object to link against
977 @ );
978 @ CREATE INDEX IF NOT EXISTS desctype
979 @ ON description(summary) WHERE summary='unknown';
980 ;
981
982 /*
983 ** Attempt to describe all phantom artifacts. The artifacts are
984 ** already loaded into the description table and have summary='unknown'.
985
--- src/printf.c
+++ src/printf.c
@@ -101,10 +101,12 @@
101101
#define etWIKISTR 22 /* Timeline comment text rendered from a char*: %W */
102102
#define etSTRINGID 23 /* String with length limit for a hash prefix: %S */
103103
#define etROOT 24 /* String value of g.zTop: %R */
104104
#define etJSONSTR 25 /* String encoded as a JSON string literal: %j
105105
Use %!j to include double-quotes around it. */
106
+#define etSHELLESC 26 /* Escape a filename for use in a shell command: %$
107
+ See blob_append_escaped_arg() for details */
106108
107109
108110
/*
109111
** An "etByte" is an 8-bit unsigned value.
110112
*/
@@ -167,10 +169,11 @@
167169
{ 'i', 10, 1, etRADIX, 0, 0 },
168170
{ 'n', 0, 0, etSIZE, 0, 0 },
169171
{ '%', 0, 0, etPERCENT, 0, 0 },
170172
{ 'p', 16, 0, etPOINTER, 0, 1 },
171173
{ '/', 0, 0, etPATH, 0, 0 },
174
+ { '$', 0, 0, etSHELLESC, 0, 0 },
172175
};
173176
#define etNINFO count(fmtinfo)
174177
175178
/*
176179
** "*val" is a double such that 0.1 <= *val < 10.0
@@ -813,10 +816,16 @@
813816
blob_init(&wiki, zWiki, limit);
814817
wiki_convert(&wiki, pBlob, wiki_convert_flags(flag_altform2));
815818
blob_reset(&wiki);
816819
length = width = 0;
817820
break;
821
+ }
822
+ case etSHELLESC: {
823
+ char *zArg = va_arg(ap, char*);
824
+ blob_append_escaped_arg(pBlob, zArg);
825
+ length = width = 0;
826
+ break;
818827
}
819828
case etERROR:
820829
buf[0] = '%';
821830
buf[1] = c;
822831
errorflag = 0;
823832
--- src/printf.c
+++ src/printf.c
@@ -101,10 +101,12 @@
101 #define etWIKISTR 22 /* Timeline comment text rendered from a char*: %W */
102 #define etSTRINGID 23 /* String with length limit for a hash prefix: %S */
103 #define etROOT 24 /* String value of g.zTop: %R */
104 #define etJSONSTR 25 /* String encoded as a JSON string literal: %j
105 Use %!j to include double-quotes around it. */
 
 
106
107
108 /*
109 ** An "etByte" is an 8-bit unsigned value.
110 */
@@ -167,10 +169,11 @@
167 { 'i', 10, 1, etRADIX, 0, 0 },
168 { 'n', 0, 0, etSIZE, 0, 0 },
169 { '%', 0, 0, etPERCENT, 0, 0 },
170 { 'p', 16, 0, etPOINTER, 0, 1 },
171 { '/', 0, 0, etPATH, 0, 0 },
 
172 };
173 #define etNINFO count(fmtinfo)
174
175 /*
176 ** "*val" is a double such that 0.1 <= *val < 10.0
@@ -813,10 +816,16 @@
813 blob_init(&wiki, zWiki, limit);
814 wiki_convert(&wiki, pBlob, wiki_convert_flags(flag_altform2));
815 blob_reset(&wiki);
816 length = width = 0;
817 break;
 
 
 
 
 
 
818 }
819 case etERROR:
820 buf[0] = '%';
821 buf[1] = c;
822 errorflag = 0;
823
--- src/printf.c
+++ src/printf.c
@@ -101,10 +101,12 @@
101 #define etWIKISTR 22 /* Timeline comment text rendered from a char*: %W */
102 #define etSTRINGID 23 /* String with length limit for a hash prefix: %S */
103 #define etROOT 24 /* String value of g.zTop: %R */
104 #define etJSONSTR 25 /* String encoded as a JSON string literal: %j
105 Use %!j to include double-quotes around it. */
106 #define etSHELLESC 26 /* Escape a filename for use in a shell command: %$
107 See blob_append_escaped_arg() for details */
108
109
110 /*
111 ** An "etByte" is an 8-bit unsigned value.
112 */
@@ -167,10 +169,11 @@
169 { 'i', 10, 1, etRADIX, 0, 0 },
170 { 'n', 0, 0, etSIZE, 0, 0 },
171 { '%', 0, 0, etPERCENT, 0, 0 },
172 { 'p', 16, 0, etPOINTER, 0, 1 },
173 { '/', 0, 0, etPATH, 0, 0 },
174 { '$', 0, 0, etSHELLESC, 0, 0 },
175 };
176 #define etNINFO count(fmtinfo)
177
178 /*
179 ** "*val" is a double such that 0.1 <= *val < 10.0
@@ -813,10 +816,16 @@
816 blob_init(&wiki, zWiki, limit);
817 wiki_convert(&wiki, pBlob, wiki_convert_flags(flag_altform2));
818 blob_reset(&wiki);
819 length = width = 0;
820 break;
821 }
822 case etSHELLESC: {
823 char *zArg = va_arg(ap, char*);
824 blob_append_escaped_arg(pBlob, zArg);
825 length = width = 0;
826 break;
827 }
828 case etERROR:
829 buf[0] = '%';
830 buf[1] = c;
831 errorflag = 0;
832
--- src/repolist.c
+++ src/repolist.c
@@ -141,10 +141,12 @@
141141
}
142142
n = db_int(0, "SELECT count(*) FROM sfile");
143143
if( n==0 ){
144144
sqlite3_close(g.db);
145145
g.db = 0;
146
+ g.repositoryOpen = 0;
147
+ g.localOpen = 0;
146148
return 0;
147149
}else{
148150
Stmt q;
149151
double rNow;
150152
blob_append_sql(&html,
151153
--- src/repolist.c
+++ src/repolist.c
@@ -141,10 +141,12 @@
141 }
142 n = db_int(0, "SELECT count(*) FROM sfile");
143 if( n==0 ){
144 sqlite3_close(g.db);
145 g.db = 0;
 
 
146 return 0;
147 }else{
148 Stmt q;
149 double rNow;
150 blob_append_sql(&html,
151
--- src/repolist.c
+++ src/repolist.c
@@ -141,10 +141,12 @@
141 }
142 n = db_int(0, "SELECT count(*) FROM sfile");
143 if( n==0 ){
144 sqlite3_close(g.db);
145 g.db = 0;
146 g.repositoryOpen = 0;
147 g.localOpen = 0;
148 return 0;
149 }else{
150 Stmt q;
151 double rNow;
152 blob_append_sql(&html,
153
+1 -1
--- src/schema.c
+++ src/schema.c
@@ -266,11 +266,11 @@
266266
@ mid INTEGER, -- Check-in that contains fid
267267
@ fid INTEGER, -- New file content. 0 if deleted
268268
@ pmid INTEGER, -- Check-in that contains pid
269269
@ pid INTEGER, -- Prev file content. 0 if new. -1 merge
270270
@ fnid INTEGER REFERENCES filename, -- Name of the file
271
-@ pfnid INTEGER REFERENCES filename, -- Previous name. 0 if unchanged
271
+@ pfnid INTEGER, -- Previous name. 0 if unchanged
272272
@ mperm INTEGER, -- File permissions. 1==exec
273273
@ isaux BOOLEAN DEFAULT 0 -- TRUE if pmid is the primary
274274
@ );
275275
@ CREATE INDEX mlink_i1 ON mlink(mid);
276276
@ CREATE INDEX mlink_i2 ON mlink(fnid);
277277
--- src/schema.c
+++ src/schema.c
@@ -266,11 +266,11 @@
266 @ mid INTEGER, -- Check-in that contains fid
267 @ fid INTEGER, -- New file content. 0 if deleted
268 @ pmid INTEGER, -- Check-in that contains pid
269 @ pid INTEGER, -- Prev file content. 0 if new. -1 merge
270 @ fnid INTEGER REFERENCES filename, -- Name of the file
271 @ pfnid INTEGER REFERENCES filename, -- Previous name. 0 if unchanged
272 @ mperm INTEGER, -- File permissions. 1==exec
273 @ isaux BOOLEAN DEFAULT 0 -- TRUE if pmid is the primary
274 @ );
275 @ CREATE INDEX mlink_i1 ON mlink(mid);
276 @ CREATE INDEX mlink_i2 ON mlink(fnid);
277
--- src/schema.c
+++ src/schema.c
@@ -266,11 +266,11 @@
266 @ mid INTEGER, -- Check-in that contains fid
267 @ fid INTEGER, -- New file content. 0 if deleted
268 @ pmid INTEGER, -- Check-in that contains pid
269 @ pid INTEGER, -- Prev file content. 0 if new. -1 merge
270 @ fnid INTEGER REFERENCES filename, -- Name of the file
271 @ pfnid INTEGER, -- Previous name. 0 if unchanged
272 @ mperm INTEGER, -- File permissions. 1==exec
273 @ isaux BOOLEAN DEFAULT 0 -- TRUE if pmid is the primary
274 @ );
275 @ CREATE INDEX mlink_i1 ON mlink(mid);
276 @ CREATE INDEX mlink_i2 ON mlink(fnid);
277
+21
--- src/setup.c
+++ src/setup.c
@@ -1052,10 +1052,31 @@
10521052
@ <li> <b>branch/</b><i>branch-name</i>
10531053
@ <li> <b>checkin/</b><i>full-checkin-hash</i>
10541054
@ <li> <b>tag/</b><i>tag-name</i>
10551055
@ </ul>
10561056
@ (Property: "wiki-about")</p>
1057
+ @ <hr />
1058
+ entry_attribute("Allow Unsafe HTML In Markdown", 6,
1059
+ "safe-html", "safe-html", "", 0);
1060
+ @ <p>Allow "unsafe" HTML (ex: &lt;script&gt;, &lt;form&gt;, etc) to be
1061
+ @ generated by <a href="%R/md_rules">Markdown-formatted</a> documents.
1062
+ @ This setting is a string where each character indicates a "type" of
1063
+ @ document in which to allow unsafe HTML:
1064
+ @ <ul>
1065
+ @ <li> <b>b</b> &rarr; checked-in files, embedded documentation
1066
+ @ <li> <b>f</b> &rarr; forum posts
1067
+ @ <li> <b>t</b> &rarr; tickets
1068
+ @ <li> <b>w</b> &rarr; wiki pages
1069
+ @ </ul>
1070
+ @ Include letters for each type of document for which unsafe HTML should
1071
+ @ be allowed. For example, to allow unsafe HTML only for checked-in files,
1072
+ @ make this setting be just "<b>b</b>". To allow unsafe HTML anywhere except
1073
+ @ in forum posts, make this setting be "<b>btw</b>". The default is an
1074
+ @ empty string which means that Fossil never allows Markdown documents
1075
+ @ to generate unsafe HTML.
1076
+ @ (Property: "safe-html")</p>
1077
+ @ <hr />
10571078
@ <hr />
10581079
onoff_attribute("Enable WYSIWYG Wiki Editing",
10591080
"wysiwyg-wiki", "wysiwyg-wiki", 0, 0);
10601081
@ <p>Enable what-you-see-is-what-you-get (WYSIWYG) editing of wiki pages.
10611082
@ The WYSIWYG editor generates HTML instead of markup, which makes
10621083
--- src/setup.c
+++ src/setup.c
@@ -1052,10 +1052,31 @@
1052 @ <li> <b>branch/</b><i>branch-name</i>
1053 @ <li> <b>checkin/</b><i>full-checkin-hash</i>
1054 @ <li> <b>tag/</b><i>tag-name</i>
1055 @ </ul>
1056 @ (Property: "wiki-about")</p>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1057 @ <hr />
1058 onoff_attribute("Enable WYSIWYG Wiki Editing",
1059 "wysiwyg-wiki", "wysiwyg-wiki", 0, 0);
1060 @ <p>Enable what-you-see-is-what-you-get (WYSIWYG) editing of wiki pages.
1061 @ The WYSIWYG editor generates HTML instead of markup, which makes
1062
--- src/setup.c
+++ src/setup.c
@@ -1052,10 +1052,31 @@
1052 @ <li> <b>branch/</b><i>branch-name</i>
1053 @ <li> <b>checkin/</b><i>full-checkin-hash</i>
1054 @ <li> <b>tag/</b><i>tag-name</i>
1055 @ </ul>
1056 @ (Property: "wiki-about")</p>
1057 @ <hr />
1058 entry_attribute("Allow Unsafe HTML In Markdown", 6,
1059 "safe-html", "safe-html", "", 0);
1060 @ <p>Allow "unsafe" HTML (ex: &lt;script&gt;, &lt;form&gt;, etc) to be
1061 @ generated by <a href="%R/md_rules">Markdown-formatted</a> documents.
1062 @ This setting is a string where each character indicates a "type" of
1063 @ document in which to allow unsafe HTML:
1064 @ <ul>
1065 @ <li> <b>b</b> &rarr; checked-in files, embedded documentation
1066 @ <li> <b>f</b> &rarr; forum posts
1067 @ <li> <b>t</b> &rarr; tickets
1068 @ <li> <b>w</b> &rarr; wiki pages
1069 @ </ul>
1070 @ Include letters for each type of document for which unsafe HTML should
1071 @ be allowed. For example, to allow unsafe HTML only for checked-in files,
1072 @ make this setting be just "<b>b</b>". To allow unsafe HTML anywhere except
1073 @ in forum posts, make this setting be "<b>btw</b>". The default is an
1074 @ empty string which means that Fossil never allows Markdown documents
1075 @ to generate unsafe HTML.
1076 @ (Property: "safe-html")</p>
1077 @ <hr />
1078 @ <hr />
1079 onoff_attribute("Enable WYSIWYG Wiki Editing",
1080 "wysiwyg-wiki", "wysiwyg-wiki", 0, 0);
1081 @ <p>Enable what-you-see-is-what-you-get (WYSIWYG) editing of wiki pages.
1082 @ The WYSIWYG editor generates HTML instead of markup, which makes
1083
+436 -107
--- src/shell.c
+++ src/shell.c
@@ -9700,22 +9700,10 @@
97009700
char **azFilter; /* Array of xFilter rejection GLOB patterns */
97019701
sqlite3_session *p; /* The open session */
97029702
};
97039703
#endif
97049704
9705
-/*
9706
-** Shell output mode information from before ".explain on",
9707
-** saved so that it can be restored by ".explain off"
9708
-*/
9709
-typedef struct SavedModeInfo SavedModeInfo;
9710
-struct SavedModeInfo {
9711
- int valid; /* Is there legit data in here? */
9712
- int mode; /* Mode prior to ".explain on" */
9713
- int showHeader; /* The ".header" setting prior to ".explain on" */
9714
- int colWidth[100]; /* Column widths prior to ".explain on" */
9715
-};
9716
-
97179705
typedef struct ExpertInfo ExpertInfo;
97189706
struct ExpertInfo {
97199707
sqlite3expert *pExpert;
97209708
int bVerbose;
97219709
};
@@ -9781,12 +9769,13 @@
97819769
char zTestcase[30]; /* Name of current test case */
97829770
char colSeparator[20]; /* Column separator character for several modes */
97839771
char rowSeparator[20]; /* Row separator character for MODE_Ascii */
97849772
char colSepPrior[20]; /* Saved column separator */
97859773
char rowSepPrior[20]; /* Saved row separator */
9786
- int colWidth[100]; /* Requested width of each column when in column mode*/
9787
- int actualWidth[100]; /* Actual width of each column */
9774
+ int *colWidth; /* Requested width of each column in columnar modes */
9775
+ int *actualWidth; /* Actual width of each column */
9776
+ int nWidth; /* Number of slots in colWidth[] and actualWidth[] */
97889777
char nullValue[20]; /* The text to print when a NULL comes back from
97899778
** the database */
97909779
char outfile[FILENAME_MAX]; /* Filename for *out */
97919780
const char *zDbFilename; /* name of the database file */
97929781
char *zFreeOnClose; /* Filename to free when closing */
@@ -9843,10 +9832,11 @@
98439832
#define SHFLG_Backslash 0x00000004 /* The --backslash option is used */
98449833
#define SHFLG_PreserveRowid 0x00000008 /* .dump preserves rowid values */
98459834
#define SHFLG_Newlines 0x00000010 /* .dump --newline flag */
98469835
#define SHFLG_CountChanges 0x00000020 /* .changes setting */
98479836
#define SHFLG_Echo 0x00000040 /* .echo or --echo setting */
9837
+#define SHFLG_HeaderSet 0x00000080 /* .header has been used */
98489838
98499839
/*
98509840
** Macros for testing and setting shellFlgs
98519841
*/
98529842
#define ShellHasFlag(P,X) (((P)->shellFlgs & (X))!=0)
@@ -9867,10 +9857,14 @@
98679857
#define MODE_Csv 8 /* Quote strings, numbers are plain */
98689858
#define MODE_Explain 9 /* Like MODE_Column, but do not truncate data */
98699859
#define MODE_Ascii 10 /* Use ASCII unit and record separators (0x1F/0x1E) */
98709860
#define MODE_Pretty 11 /* Pretty-print schemas */
98719861
#define MODE_EQP 12 /* Converts EXPLAIN QUERY PLAN output into a graph */
9862
+#define MODE_Json 13 /* Output JSON */
9863
+#define MODE_Markdown 14 /* Markdown formatting */
9864
+#define MODE_Table 15 /* MySQL-style table formatting */
9865
+#define MODE_Box 16 /* Unicode box-drawing characters */
98729866
98739867
static const char *modeDescr[] = {
98749868
"line",
98759869
"column",
98769870
"list",
@@ -9881,11 +9875,15 @@
98819875
"tcl",
98829876
"csv",
98839877
"explain",
98849878
"ascii",
98859879
"prettyprint",
9886
- "eqp"
9880
+ "eqp",
9881
+ "json",
9882
+ "markdown",
9883
+ "table",
9884
+ "box"
98879885
};
98889886
98899887
/*
98909888
** These are the column/row/line separators used by the various
98919889
** import/export modes.
@@ -10248,10 +10246,44 @@
1024810246
fputc(c, out);
1024910247
}
1025010248
}
1025110249
fputc('"', out);
1025210250
}
10251
+
10252
+/*
10253
+** Output the given string as a quoted according to JSON quoting rules.
10254
+*/
10255
+static void output_json_string(FILE *out, const char *z, int n){
10256
+ unsigned int c;
10257
+ if( n<0 ) n = (int)strlen(z);
10258
+ fputc('"', out);
10259
+ while( n-- ){
10260
+ c = *(z++);
10261
+ if( c=='\\' || c=='"' ){
10262
+ fputc('\\', out);
10263
+ fputc(c, out);
10264
+ }else if( c<=0x1f ){
10265
+ fputc('\\', out);
10266
+ if( c=='\b' ){
10267
+ fputc('b', out);
10268
+ }else if( c=='\f' ){
10269
+ fputc('f', out);
10270
+ }else if( c=='\n' ){
10271
+ fputc('n', out);
10272
+ }else if( c=='\r' ){
10273
+ fputc('r', out);
10274
+ }else if( c=='\t' ){
10275
+ fputc('t', out);
10276
+ }else{
10277
+ raw_printf(out, "u%04x",c);
10278
+ }
10279
+ }else{
10280
+ fputc(c, out);
10281
+ }
10282
+ }
10283
+ fputc('"', out);
10284
+}
1025310285
1025410286
/*
1025510287
** Output the given string with characters that are special to
1025610288
** HTML escaped.
1025710289
*/
@@ -10557,10 +10589,44 @@
1055710589
raw_printf(p->out, "Progress %u\n", p->nProgress);
1055810590
}
1055910591
return 0;
1056010592
}
1056110593
#endif /* SQLITE_OMIT_PROGRESS_CALLBACK */
10594
+
10595
+/*
10596
+** Print N dashes
10597
+*/
10598
+static void print_dashes(FILE *out, int N){
10599
+ const char zDash[] = "--------------------------------------------------";
10600
+ const int nDash = sizeof(zDash) - 1;
10601
+ while( N>nDash ){
10602
+ fputs(zDash, out);
10603
+ N -= nDash;
10604
+ }
10605
+ raw_printf(out, "%.*s", N, zDash);
10606
+}
10607
+
10608
+/*
10609
+** Print a markdown or table-style row separator using ascii-art
10610
+*/
10611
+static void print_row_separator(
10612
+ ShellState *p,
10613
+ int nArg,
10614
+ const char *zSep
10615
+){
10616
+ int i;
10617
+ if( nArg>0 ){
10618
+ fputs(zSep, p->out);
10619
+ print_dashes(p->out, p->actualWidth[0]+2);
10620
+ for(i=1; i<nArg; i++){
10621
+ fputs(zSep, p->out);
10622
+ print_dashes(p->out, p->actualWidth[i]+2);
10623
+ }
10624
+ fputs(zSep, p->out);
10625
+ }
10626
+ fputs("\n", p->out);
10627
+}
1056210628
1056310629
/*
1056410630
** This is the callback routine that the shell
1056510631
** invokes for each row of a query result.
1056610632
*/
@@ -10567,11 +10633,11 @@
1056710633
static int shell_callback(
1056810634
void *pArg,
1056910635
int nArg, /* Number of result columns */
1057010636
char **azArg, /* Text of each result column */
1057110637
char **azCol, /* Column names */
10572
- int *aiType /* Column types */
10638
+ int *aiType /* Column types. Might be NULL */
1057310639
){
1057410640
int i;
1057510641
ShellState *p = (ShellState*)pArg;
1057610642
1057710643
if( azArg==0 ) return 0;
@@ -10588,85 +10654,41 @@
1058810654
utf8_printf(p->out,"%*s = %s%s", w, azCol[i],
1058910655
azArg[i] ? azArg[i] : p->nullValue, p->rowSeparator);
1059010656
}
1059110657
break;
1059210658
}
10593
- case MODE_Explain:
10594
- case MODE_Column: {
10595
- static const int aExplainWidths[] = {4, 13, 4, 4, 4, 13, 2, 13};
10596
- const int *colWidth;
10597
- int showHdr;
10598
- char *rowSep;
10599
- int nWidth;
10600
- if( p->cMode==MODE_Column ){
10601
- colWidth = p->colWidth;
10602
- nWidth = ArraySize(p->colWidth);
10603
- showHdr = p->showHeader;
10604
- rowSep = p->rowSeparator;
10605
- }else{
10606
- colWidth = aExplainWidths;
10607
- nWidth = ArraySize(aExplainWidths);
10608
- showHdr = 1;
10609
- rowSep = SEP_Row;
10659
+ case MODE_Explain: {
10660
+ static const int aExplainWidth[] = {4, 13, 4, 4, 4, 13, 2, 13};
10661
+ if( nArg>ArraySize(aExplainWidth) ){
10662
+ nArg = ArraySize(aExplainWidth);
1061010663
}
1061110664
if( p->cnt++==0 ){
1061210665
for(i=0; i<nArg; i++){
10613
- int w, n;
10614
- if( i<nWidth ){
10615
- w = colWidth[i];
10616
- }else{
10617
- w = 0;
10618
- }
10619
- if( w==0 ){
10620
- w = strlenChar(azCol[i] ? azCol[i] : "");
10621
- if( w<10 ) w = 10;
10622
- n = strlenChar(azArg && azArg[i] ? azArg[i] : p->nullValue);
10623
- if( w<n ) w = n;
10624
- }
10625
- if( i<ArraySize(p->actualWidth) ){
10626
- p->actualWidth[i] = w;
10627
- }
10628
- if( showHdr ){
10629
- utf8_width_print(p->out, w, azCol[i]);
10630
- utf8_printf(p->out, "%s", i==nArg-1 ? rowSep : " ");
10631
- }
10632
- }
10633
- if( showHdr ){
10634
- for(i=0; i<nArg; i++){
10635
- int w;
10636
- if( i<ArraySize(p->actualWidth) ){
10637
- w = p->actualWidth[i];
10638
- if( w<0 ) w = -w;
10639
- }else{
10640
- w = 10;
10641
- }
10642
- utf8_printf(p->out,"%-*.*s%s",w,w,
10643
- "----------------------------------------------------------"
10644
- "----------------------------------------------------------",
10645
- i==nArg-1 ? rowSep : " ");
10646
- }
10666
+ int w = aExplainWidth[i];
10667
+ utf8_width_print(p->out, w, azCol[i]);
10668
+ fputs(i==nArg-1 ? "\n" : " ", p->out);
10669
+ }
10670
+ for(i=0; i<nArg; i++){
10671
+ int w = aExplainWidth[i];
10672
+ print_dashes(p->out, w);
10673
+ fputs(i==nArg-1 ? "\n" : " ", p->out);
1064710674
}
1064810675
}
1064910676
if( azArg==0 ) break;
1065010677
for(i=0; i<nArg; i++){
10651
- int w;
10652
- if( i<ArraySize(p->actualWidth) ){
10653
- w = p->actualWidth[i];
10654
- }else{
10655
- w = 10;
10656
- }
10657
- if( p->cMode==MODE_Explain && azArg[i] && strlenChar(azArg[i])>w ){
10678
+ int w = aExplainWidth[i];
10679
+ if( azArg[i] && strlenChar(azArg[i])>w ){
1065810680
w = strlenChar(azArg[i]);
1065910681
}
1066010682
if( i==1 && p->aiIndent && p->pStmt ){
1066110683
if( p->iIndent<p->nIndent ){
1066210684
utf8_printf(p->out, "%*.s", p->aiIndent[p->iIndent], "");
1066310685
}
1066410686
p->iIndent++;
1066510687
}
1066610688
utf8_width_print(p->out, w, azArg[i] ? azArg[i] : p->nullValue);
10667
- utf8_printf(p->out, "%s", i==nArg-1 ? rowSep : " ");
10689
+ fputs(i==nArg-1 ? "\n" : " ", p->out);
1066810690
}
1066910691
break;
1067010692
}
1067110693
case MODE_Semi: { /* .schema and .fullschema output */
1067210694
printSchemaLine(p->out, azArg[0], ";\n");
@@ -10865,23 +10887,65 @@
1086510887
output_quoted_escaped_string(p->out, azArg[i]);
1086610888
}
1086710889
}
1086810890
raw_printf(p->out,");\n");
1086910891
break;
10892
+ }
10893
+ case MODE_Json: {
10894
+ if( azArg==0 ) break;
10895
+ if( p->cnt==0 ){
10896
+ fputs("[{", p->out);
10897
+ }else{
10898
+ fputs(",\n{", p->out);
10899
+ }
10900
+ p->cnt++;
10901
+ for(i=0; i<nArg; i++){
10902
+ output_json_string(p->out, azCol[i], -1);
10903
+ putc(':', p->out);
10904
+ if( (azArg[i]==0) || (aiType && aiType[i]==SQLITE_NULL) ){
10905
+ fputs("null",p->out);
10906
+ }else if( aiType && aiType[i]==SQLITE_FLOAT ){
10907
+ char z[50];
10908
+ double r = sqlite3_column_double(p->pStmt, i);
10909
+ sqlite3_uint64 ur;
10910
+ memcpy(&ur,&r,sizeof(r));
10911
+ if( ur==0x7ff0000000000000LL ){
10912
+ raw_printf(p->out, "1e999");
10913
+ }else if( ur==0xfff0000000000000LL ){
10914
+ raw_printf(p->out, "-1e999");
10915
+ }else{
10916
+ sqlite3_snprintf(50,z,"%!.20g", r);
10917
+ raw_printf(p->out, "%s", z);
10918
+ }
10919
+ }else if( aiType && aiType[i]==SQLITE_BLOB && p->pStmt ){
10920
+ const void *pBlob = sqlite3_column_blob(p->pStmt, i);
10921
+ int nBlob = sqlite3_column_bytes(p->pStmt, i);
10922
+ output_json_string(p->out, pBlob, nBlob);
10923
+ }else if( aiType && aiType[i]==SQLITE_TEXT ){
10924
+ output_json_string(p->out, azArg[i], -1);
10925
+ }else{
10926
+ utf8_printf(p->out,"%s", azArg[i]);
10927
+ }
10928
+ if( i<nArg-1 ){
10929
+ putc(',', p->out);
10930
+ }
10931
+ }
10932
+ putc('}', p->out);
10933
+ break;
1087010934
}
1087110935
case MODE_Quote: {
1087210936
if( azArg==0 ) break;
1087310937
if( p->cnt==0 && p->showHeader ){
1087410938
for(i=0; i<nArg; i++){
10875
- if( i>0 ) raw_printf(p->out, ",");
10939
+ if( i>0 ) fputs(p->colSeparator, p->out);
1087610940
output_quoted_string(p->out, azCol[i]);
1087710941
}
10878
- raw_printf(p->out,"\n");
10942
+ fputs(p->rowSeparator, p->out);
1087910943
}
1088010944
p->cnt++;
1088110945
for(i=0; i<nArg; i++){
10882
- if( i>0 ) raw_printf(p->out, ",");
10946
+ if( i>0 ) fputs(p->colSeparator, p->out);
1088310947
if( (azArg[i]==0) || (aiType && aiType[i]==SQLITE_NULL) ){
1088410948
utf8_printf(p->out,"NULL");
1088510949
}else if( aiType && aiType[i]==SQLITE_TEXT ){
1088610950
output_quoted_string(p->out, azArg[i]);
1088710951
}else if( aiType && aiType[i]==SQLITE_INTEGER ){
@@ -10899,11 +10963,11 @@
1089910963
utf8_printf(p->out,"%s", azArg[i]);
1090010964
}else{
1090110965
output_quoted_string(p->out, azArg[i]);
1090210966
}
1090310967
}
10904
- raw_printf(p->out,"\n");
10968
+ fputs(p->rowSeparator, p->out);
1090510969
break;
1090610970
}
1090710971
case MODE_Ascii: {
1090810972
if( p->cnt++==0 && p->showHeader ){
1090910973
for(i=0; i<nArg; i++){
@@ -11554,19 +11618,236 @@
1155411618
}
1155511619
sqlite3_reset(pQ);
1155611620
}
1155711621
sqlite3_finalize(pQ);
1155811622
}
11623
+
11624
+/*
11625
+** UTF8 box-drawing characters. Imagine box lines like this:
11626
+**
11627
+** 1
11628
+** |
11629
+** 4 --+-- 2
11630
+** |
11631
+** 3
11632
+**
11633
+** Each box characters has between 2 and 4 of the lines leading from
11634
+** the center. The characters are here identified by the numbers of
11635
+** their corresponding lines.
11636
+*/
11637
+#define BOX_24 "\342\224\200" /* U+2500 --- */
11638
+#define BOX_13 "\342\224\202" /* U+2502 | */
11639
+#define BOX_23 "\342\224\214" /* U+250c ,- */
11640
+#define BOX_34 "\342\224\220" /* U+2510 -, */
11641
+#define BOX_12 "\342\224\224" /* U+2514 '- */
11642
+#define BOX_14 "\342\224\230" /* U+2518 -' */
11643
+#define BOX_123 "\342\224\234" /* U+251c |- */
11644
+#define BOX_134 "\342\224\244" /* U+2524 -| */
11645
+#define BOX_234 "\342\224\254" /* U+252c -,- */
11646
+#define BOX_124 "\342\224\264" /* U+2534 -'- */
11647
+#define BOX_1234 "\342\224\274" /* U+253c -|- */
11648
+
11649
+/* Draw horizontal line N characters long using unicode box
11650
+** characters
11651
+*/
11652
+static void print_box_line(FILE *out, int N){
11653
+ const char zDash[] =
11654
+ BOX_24 BOX_24 BOX_24 BOX_24 BOX_24 BOX_24 BOX_24 BOX_24 BOX_24 BOX_24
11655
+ BOX_24 BOX_24 BOX_24 BOX_24 BOX_24 BOX_24 BOX_24 BOX_24 BOX_24 BOX_24;
11656
+ const int nDash = sizeof(zDash) - 1;
11657
+ N *= 3;
11658
+ while( N>nDash ){
11659
+ utf8_printf(out, zDash);
11660
+ N -= nDash;
11661
+ }
11662
+ utf8_printf(out, "%.*s", N, zDash);
11663
+}
11664
+
11665
+/*
11666
+** Draw a horizontal separator for a MODE_Box table.
11667
+*/
11668
+static void print_box_row_separator(
11669
+ ShellState *p,
11670
+ int nArg,
11671
+ const char *zSep1,
11672
+ const char *zSep2,
11673
+ const char *zSep3
11674
+){
11675
+ int i;
11676
+ if( nArg>0 ){
11677
+ utf8_printf(p->out, "%s", zSep1);
11678
+ print_box_line(p->out, p->actualWidth[0]+2);
11679
+ for(i=1; i<nArg; i++){
11680
+ utf8_printf(p->out, "%s", zSep2);
11681
+ print_box_line(p->out, p->actualWidth[i]+2);
11682
+ }
11683
+ utf8_printf(p->out, "%s", zSep3);
11684
+ }
11685
+ fputs("\n", p->out);
11686
+}
11687
+
11688
+
11689
+
11690
+/*
11691
+** Run a prepared statement and output the result in one of the
11692
+** table-oriented formats: MODE_Column, MODE_Markdown, MODE_Table,
11693
+** or MODE_Box.
11694
+**
11695
+** This is different from ordinary exec_prepared_stmt() in that
11696
+** it has to run the entire query and gather the results into memory
11697
+** first, in order to determine column widths, before providing
11698
+** any output.
11699
+*/
11700
+static void exec_prepared_stmt_columnar(
11701
+ ShellState *p, /* Pointer to ShellState */
11702
+ sqlite3_stmt *pStmt /* Statment to run */
11703
+){
11704
+ int nRow = 0;
11705
+ int nColumn = 0;
11706
+ char **azData = 0;
11707
+ char *zMsg = 0;
11708
+ const char *z;
11709
+ int rc;
11710
+ int i, j, nTotal, w, n;
11711
+ const char *colSep = 0;
11712
+ const char *rowSep = 0;
11713
+
11714
+ rc = sqlite3_get_table(p->db, sqlite3_sql(pStmt),
11715
+ &azData, &nRow, &nColumn, &zMsg);
11716
+ if( rc ){
11717
+ utf8_printf(p->out, "ERROR: %s\n", zMsg);
11718
+ sqlite3_free(zMsg);
11719
+ sqlite3_free_table(azData);
11720
+ return;
11721
+ }
11722
+ if( nRow==0 || nColumn==0 ){
11723
+ sqlite3_free_table(azData);
11724
+ return;
11725
+ }
11726
+ if( nColumn>p->nWidth ){
11727
+ p->colWidth = realloc(p->colWidth, nColumn*2*sizeof(int));
11728
+ if( p->colWidth==0 ) shell_out_of_memory();
11729
+ for(i=p->nWidth; i<nColumn; i++) p->colWidth[i] = 0;
11730
+ p->nWidth = nColumn;
11731
+ p->actualWidth = &p->colWidth[nColumn];
11732
+ }
11733
+ memset(p->actualWidth, 0, nColumn*sizeof(int));
11734
+ for(i=0; i<nColumn; i++){
11735
+ w = p->colWidth[i];
11736
+ if( w<0 ) w = -w;
11737
+ p->actualWidth[i] = w;
11738
+ }
11739
+ nTotal = nColumn*(nRow+1);
11740
+ for(i=0; i<nTotal; i++){
11741
+ z = azData[i];
11742
+ if( z==0 ) z = p->nullValue;
11743
+ n = strlenChar(z);
11744
+ j = i%nColumn;
11745
+ if( n>p->actualWidth[j] ) p->actualWidth[j] = n;
11746
+ }
11747
+ switch( p->cMode ){
11748
+ case MODE_Column: {
11749
+ colSep = " ";
11750
+ rowSep = "\n";
11751
+ if( p->showHeader ){
11752
+ for(i=0; i<nColumn; i++){
11753
+ w = p->actualWidth[i];
11754
+ if( p->colWidth[i]<0 ) w = -w;
11755
+ utf8_width_print(p->out, w, azData[i]);
11756
+ fputs(i==nColumn-1?"\n":" ", p->out);
11757
+ }
11758
+ for(i=0; i<nColumn; i++){
11759
+ print_dashes(p->out, p->actualWidth[i]);
11760
+ fputs(i==nColumn-1?"\n":" ", p->out);
11761
+ }
11762
+ }
11763
+ break;
11764
+ }
11765
+ case MODE_Table: {
11766
+ colSep = " | ";
11767
+ rowSep = " |\n";
11768
+ print_row_separator(p, nColumn, "+");
11769
+ fputs("| ", p->out);
11770
+ for(i=0; i<nColumn; i++){
11771
+ w = p->actualWidth[i];
11772
+ n = strlenChar(azData[i]);
11773
+ utf8_printf(p->out, "%*s%s%*s", (w-n)/2, "", azData[i], (w-n+1)/2, "");
11774
+ fputs(i==nColumn-1?" |\n":" | ", p->out);
11775
+ }
11776
+ print_row_separator(p, nColumn, "+");
11777
+ break;
11778
+ }
11779
+ case MODE_Markdown: {
11780
+ colSep = " | ";
11781
+ rowSep = " |\n";
11782
+ fputs("| ", p->out);
11783
+ for(i=0; i<nColumn; i++){
11784
+ w = p->actualWidth[i];
11785
+ n = strlenChar(azData[i]);
11786
+ utf8_printf(p->out, "%*s%s%*s", (w-n)/2, "", azData[i], (w-n+1)/2, "");
11787
+ fputs(i==nColumn-1?" |\n":" | ", p->out);
11788
+ }
11789
+ print_row_separator(p, nColumn, "|");
11790
+ break;
11791
+ }
11792
+ case MODE_Box: {
11793
+ colSep = " " BOX_13 " ";
11794
+ rowSep = " " BOX_13 "\n";
11795
+ print_box_row_separator(p, nColumn, BOX_23, BOX_234, BOX_34);
11796
+ utf8_printf(p->out, BOX_13 " ");
11797
+ for(i=0; i<nColumn; i++){
11798
+ w = p->actualWidth[i];
11799
+ n = strlenChar(azData[i]);
11800
+ utf8_printf(p->out, "%*s%s%*s%s",
11801
+ (w-n)/2, "", azData[i], (w-n+1)/2, "",
11802
+ i==nColumn-1?" "BOX_13"\n":" "BOX_13" ");
11803
+ }
11804
+ print_box_row_separator(p, nColumn, BOX_123, BOX_1234, BOX_134);
11805
+ break;
11806
+ }
11807
+ }
11808
+ for(i=nColumn, j=0; i<nTotal; i++, j++){
11809
+ if( j==0 && p->cMode!=MODE_Column ){
11810
+ utf8_printf(p->out, "%s", p->cMode==MODE_Box?BOX_13" ":"| ");
11811
+ }
11812
+ z = azData[i];
11813
+ if( z==0 ) z = p->nullValue;
11814
+ w = p->actualWidth[j];
11815
+ if( p->colWidth[j]<0 ) w = -w;
11816
+ utf8_width_print(p->out, w, z);
11817
+ if( j==nColumn-1 ){
11818
+ utf8_printf(p->out, "%s", rowSep);
11819
+ j = -1;
11820
+ }else{
11821
+ utf8_printf(p->out, "%s", colSep);
11822
+ }
11823
+ }
11824
+ if( p->cMode==MODE_Table ){
11825
+ print_row_separator(p, nColumn, "+");
11826
+ }else if( p->cMode==MODE_Box ){
11827
+ print_box_row_separator(p, nColumn, BOX_12, BOX_124, BOX_14);
11828
+ }
11829
+ sqlite3_free_table(azData);
11830
+}
1155911831
1156011832
/*
1156111833
** Run a prepared statement
1156211834
*/
1156311835
static void exec_prepared_stmt(
1156411836
ShellState *pArg, /* Pointer to ShellState */
1156511837
sqlite3_stmt *pStmt /* Statment to run */
1156611838
){
1156711839
int rc;
11840
+
11841
+ if( pArg->cMode==MODE_Column
11842
+ || pArg->cMode==MODE_Table
11843
+ || pArg->cMode==MODE_Box
11844
+ || pArg->cMode==MODE_Markdown
11845
+ ){
11846
+ exec_prepared_stmt_columnar(pArg, pStmt);
11847
+ return;
11848
+ }
1156811849
1156911850
/* perform the first step. this will tell us if we
1157011851
** have a result set or not and how wide it is.
1157111852
*/
1157211853
rc = sqlite3_step(pStmt);
@@ -11611,10 +11892,13 @@
1161111892
rc = sqlite3_step(pStmt);
1161211893
}
1161311894
}
1161411895
} while( SQLITE_ROW == rc );
1161511896
sqlite3_free(pData);
11897
+ if( pArg->cMode==MODE_Json ){
11898
+ fputs("]\n", pArg->out);
11899
+ }
1161611900
}
1161711901
}
1161811902
}
1161911903
1162011904
#ifndef SQLITE_OMIT_VIRTUALTABLE
@@ -12291,28 +12575,32 @@
1229112575
".load FILE ?ENTRY? Load an extension library",
1229212576
#endif
1229312577
".log FILE|off Turn logging on or off. FILE can be stderr/stdout",
1229412578
".mode MODE ?TABLE? Set output mode",
1229512579
" MODE is one of:",
12296
- " ascii Columns/rows delimited by 0x1F and 0x1E",
12297
- " csv Comma-separated values",
12298
- " column Left-aligned columns. (See .width)",
12299
- " html HTML <table> code",
12300
- " insert SQL insert statements for TABLE",
12301
- " line One value per line",
12302
- " list Values delimited by \"|\"",
12303
- " quote Escape answers as for SQL",
12304
- " tabs Tab-separated values",
12305
- " tcl TCL list elements",
12580
+ " ascii Columns/rows delimited by 0x1F and 0x1E",
12581
+ " box Tables using unicode box-drawing characters",
12582
+ " csv Comma-separated values",
12583
+ " column Output in columns. (See .width)",
12584
+ " html HTML <table> code",
12585
+ " insert SQL insert statements for TABLE",
12586
+ " json Results in a JSON array",
12587
+ " line One value per line",
12588
+ " list Values delimited by \"|\"",
12589
+ " markdown Markdown table format",
12590
+ " quote Escape answers as for SQL",
12591
+ " table ASCII-art table",
12592
+ " tabs Tab-separated values",
12593
+ " tcl TCL list elements",
1230612594
".nullvalue STRING Use STRING in place of NULL values",
1230712595
".once ?OPTIONS? ?FILE? Output for the next SQL command only to FILE",
1230812596
" If FILE begins with '|' then open as a pipe",
1230912597
" --bom Put a UTF8 byte-order mark at the beginning",
1231012598
" -e Send output to the system text editor",
1231112599
" -x Send output as CSV to a spreadsheet (same as \".excel\")",
1231212600
#ifdef SQLITE_DEBUG
12313
- ".oom [--repeat M] [N] Simulate an OOM error on the N-th allocation",
12601
+ ".oom ?--repeat M? ?N? Simulate an OOM error on the N-th allocation",
1231412602
#endif
1231512603
".open ?OPTIONS? ?FILE? Close existing database and reopen FILE",
1231612604
" Options:",
1231712605
" --append Use appendvfs to append database to the end of FILE",
1231812606
#ifdef SQLITE_ENABLE_DESERIALIZE
@@ -12425,11 +12713,11 @@
1242512713
" --allexcept Unregister everything except those named",
1242612714
#endif
1242712715
".vfsinfo ?AUX? Information about the top-level VFS",
1242812716
".vfslist List all available VFSes",
1242912717
".vfsname ?AUX? Print the name of the VFS stack",
12430
- ".width NUM1 NUM2 ... Set column widths for \"column\" mode",
12718
+ ".width NUM1 NUM2 ... Set minimum column widths for columnar output",
1243112719
" Negative values right-justify",
1243212720
};
1243312721
1243412722
/*
1243512723
** Output help text.
@@ -13262,10 +13550,11 @@
1326213550
*/
1326313551
typedef struct ImportCtx ImportCtx;
1326413552
struct ImportCtx {
1326513553
const char *zFile; /* Name of the input file */
1326613554
FILE *in; /* Read the CSV text from this input stream */
13555
+ int (SQLITE_CDECL *xCloser)(FILE*); /* Func to close in */
1326713556
char *z; /* Accumulated text for a field */
1326813557
int n; /* Number of bytes in z */
1326913558
int nAlloc; /* Space allocated for z[] */
1327013559
int nLine; /* Current line number */
1327113560
int nRow; /* Number of rows imported */
@@ -13273,10 +13562,20 @@
1327313562
int bNotFirst; /* True if one or more bytes already read */
1327413563
int cTerm; /* Character that terminated the most recent field */
1327513564
int cColSep; /* The column separator character. (Usually ",") */
1327613565
int cRowSep; /* The row separator character. (Usually "\n") */
1327713566
};
13567
+
13568
+/* Clean up resourced used by an ImportCtx */
13569
+static void import_cleanup(ImportCtx *p){
13570
+ if( p->in!=0 && p->xCloser!=0 ){
13571
+ p->xCloser(p->in);
13572
+ p->in = 0;
13573
+ }
13574
+ sqlite3_free(p->z);
13575
+ p->z = 0;
13576
+}
1327813577
1327913578
/* Append a single byte to z[] */
1328013579
static void import_append_char(ImportCtx *p, int c){
1328113580
if( p->n+1>=p->nAlloc ){
1328213581
p->nAlloc += p->nAlloc + 100;
@@ -15995,10 +16294,11 @@
1599516294
if( strcmp(z,"preserve-rowids")==0 ){
1599616295
#ifdef SQLITE_OMIT_VIRTUALTABLE
1599716296
raw_printf(stderr, "The --preserve-rowids option is not compatible"
1599816297
" with SQLITE_OMIT_VIRTUALTABLE\n");
1599916298
rc = 1;
16299
+ sqlite3_free(zLike);
1600016300
goto meta_command_exit;
1600116301
#else
1600216302
ShellSetFlag(p, SHFLG_PreserveRowid);
1600316303
#endif
1600416304
}else
@@ -16006,10 +16306,11 @@
1600616306
ShellSetFlag(p, SHFLG_Newlines);
1600716307
}else
1600816308
{
1600916309
raw_printf(stderr, "Unknown option \"%s\" on \".dump\"\n", azArg[i]);
1601016310
rc = 1;
16311
+ sqlite3_free(zLike);
1601116312
goto meta_command_exit;
1601216313
}
1601316314
}else if( zLike ){
1601416315
zLike = sqlite3_mprintf("%z OR name LIKE %Q ESCAPE '\\'",
1601516316
zLike, azArg[i]);
@@ -16334,10 +16635,11 @@
1633416635
}else
1633516636
1633616637
if( c=='h' && strncmp(azArg[0], "headers", n)==0 ){
1633716638
if( nArg==2 ){
1633816639
p->showHeader = booleanValue(azArg[1]);
16640
+ p->shellFlgs |= SHFLG_HeaderSet;
1633916641
}else{
1634016642
raw_printf(stderr, "Usage: .headers on|off\n");
1634116643
rc = 1;
1634216644
}
1634316645
}else
@@ -16363,11 +16665,10 @@
1636316665
int needCommit; /* True to COMMIT or ROLLBACK at end */
1636416666
int nSep; /* Number of bytes in p->colSeparator[] */
1636516667
char *zSql; /* An SQL statement */
1636616668
ImportCtx sCtx; /* Reader context */
1636716669
char *(SQLITE_CDECL *xRead)(ImportCtx*); /* Func to read one value */
16368
- int (SQLITE_CDECL *xCloser)(FILE*); /* Func to close file */
1636916670
int eVerbose = 0; /* Larger for more console output */
1637016671
int nSkip = 0; /* Initial lines to skip */
1637116672
int useOutputMode = 1; /* Use output mode to determine separators */
1637216673
1637316674
memset(&sCtx, 0, sizeof(sCtx));
@@ -16469,15 +16770,15 @@
1646916770
rc = 1;
1647016771
goto meta_command_exit;
1647116772
#else
1647216773
sCtx.in = popen(sCtx.zFile+1, "r");
1647316774
sCtx.zFile = "<pipe>";
16474
- xCloser = pclose;
16775
+ sCtx.xCloser = pclose;
1647516776
#endif
1647616777
}else{
1647716778
sCtx.in = fopen(sCtx.zFile, "rb");
16478
- xCloser = fclose;
16779
+ sCtx.xCloser = fclose;
1647916780
}
1648016781
if( sCtx.in==0 ){
1648116782
utf8_printf(stderr, "Error: cannot open \"%s\"\n", zFile);
1648216783
rc = 1;
1648316784
goto meta_command_exit;
@@ -16497,11 +16798,11 @@
1649716798
while( xRead(&sCtx) && sCtx.cTerm==sCtx.cColSep ){}
1649816799
sCtx.nLine++;
1649916800
}
1650016801
zSql = sqlite3_mprintf("SELECT * FROM %s", zTable);
1650116802
if( zSql==0 ){
16502
- xCloser(sCtx.in);
16803
+ import_cleanup(&sCtx);
1650316804
shell_out_of_memory();
1650416805
}
1650516806
nByte = strlen30(zSql);
1650616807
rc = sqlite3_prepare_v2(p->db, zSql, -1, &pStmt, 0);
1650716808
import_append_char(&sCtx, 0); /* To ensure sCtx.z is allocated */
@@ -16513,12 +16814,11 @@
1651316814
cSep = ',';
1651416815
if( sCtx.cTerm!=sCtx.cColSep ) break;
1651516816
}
1651616817
if( cSep=='(' ){
1651716818
sqlite3_free(zCreate);
16518
- sqlite3_free(sCtx.z);
16519
- xCloser(sCtx.in);
16819
+ import_cleanup(&sCtx);
1652016820
utf8_printf(stderr,"%s: empty file\n", sCtx.zFile);
1652116821
rc = 1;
1652216822
goto meta_command_exit;
1652316823
}
1652416824
zCreate = sqlite3_mprintf("%z\n)", zCreate);
@@ -16528,32 +16828,31 @@
1652816828
rc = sqlite3_exec(p->db, zCreate, 0, 0, 0);
1652916829
sqlite3_free(zCreate);
1653016830
if( rc ){
1653116831
utf8_printf(stderr, "CREATE TABLE %s(...) failed: %s\n", zTable,
1653216832
sqlite3_errmsg(p->db));
16533
- sqlite3_free(sCtx.z);
16534
- xCloser(sCtx.in);
16833
+ import_cleanup(&sCtx);
1653516834
rc = 1;
1653616835
goto meta_command_exit;
1653716836
}
1653816837
rc = sqlite3_prepare_v2(p->db, zSql, -1, &pStmt, 0);
1653916838
}
1654016839
sqlite3_free(zSql);
1654116840
if( rc ){
1654216841
if (pStmt) sqlite3_finalize(pStmt);
1654316842
utf8_printf(stderr,"Error: %s\n", sqlite3_errmsg(p->db));
16544
- xCloser(sCtx.in);
16843
+ import_cleanup(&sCtx);
1654516844
rc = 1;
1654616845
goto meta_command_exit;
1654716846
}
1654816847
nCol = sqlite3_column_count(pStmt);
1654916848
sqlite3_finalize(pStmt);
1655016849
pStmt = 0;
1655116850
if( nCol==0 ) return 0; /* no columns, no error */
1655216851
zSql = sqlite3_malloc64( nByte*2 + 20 + nCol*2 );
1655316852
if( zSql==0 ){
16554
- xCloser(sCtx.in);
16853
+ import_cleanup(&sCtx);
1655516854
shell_out_of_memory();
1655616855
}
1655716856
sqlite3_snprintf(nByte+20, zSql, "INSERT INTO \"%w\" VALUES(?", zTable);
1655816857
j = strlen30(zSql);
1655916858
for(i=1; i<nCol; i++){
@@ -16568,11 +16867,11 @@
1656816867
rc = sqlite3_prepare_v2(p->db, zSql, -1, &pStmt, 0);
1656916868
sqlite3_free(zSql);
1657016869
if( rc ){
1657116870
utf8_printf(stderr, "Error: %s\n", sqlite3_errmsg(p->db));
1657216871
if (pStmt) sqlite3_finalize(pStmt);
16573
- xCloser(sCtx.in);
16872
+ import_cleanup(&sCtx);
1657416873
rc = 1;
1657516874
goto meta_command_exit;
1657616875
}
1657716876
needCommit = sqlite3_get_autocommit(p->db);
1657816877
if( needCommit ) sqlite3_exec(p->db, "BEGIN", 0, 0, 0);
@@ -16620,12 +16919,11 @@
1662016919
sCtx.nRow++;
1662116920
}
1662216921
}
1662316922
}while( sCtx.cTerm!=EOF );
1662416923
16625
- xCloser(sCtx.in);
16626
- sqlite3_free(sCtx.z);
16924
+ import_cleanup(&sCtx);
1662716925
sqlite3_finalize(pStmt);
1662816926
if( needCommit ) sqlite3_exec(p->db, "COMMIT", 0, 0, 0);
1662916927
if( eVerbose>0 ){
1663016928
utf8_printf(p->out,
1663116929
"Added %d rows with %d errors using %d lines of input\n",
@@ -16860,10 +17158,13 @@
1686017158
if( c2=='l' && n2>2 && strncmp(azArg[1],"lines",n2)==0 ){
1686117159
p->mode = MODE_Line;
1686217160
sqlite3_snprintf(sizeof(p->rowSeparator), p->rowSeparator, SEP_Row);
1686317161
}else if( c2=='c' && strncmp(azArg[1],"columns",n2)==0 ){
1686417162
p->mode = MODE_Column;
17163
+ if( (p->shellFlgs & SHFLG_HeaderSet)==0 ){
17164
+ p->showHeader = 1;
17165
+ }
1686517166
sqlite3_snprintf(sizeof(p->rowSeparator), p->rowSeparator, SEP_Row);
1686617167
}else if( c2=='l' && n2>2 && strncmp(azArg[1],"list",n2)==0 ){
1686717168
p->mode = MODE_List;
1686817169
sqlite3_snprintf(sizeof(p->colSeparator), p->colSeparator, SEP_Column);
1686917170
sqlite3_snprintf(sizeof(p->rowSeparator), p->rowSeparator, SEP_Row);
@@ -16883,19 +17184,30 @@
1688317184
}else if( c2=='i' && strncmp(azArg[1],"insert",n2)==0 ){
1688417185
p->mode = MODE_Insert;
1688517186
set_table_name(p, nArg>=3 ? azArg[2] : "table");
1688617187
}else if( c2=='q' && strncmp(azArg[1],"quote",n2)==0 ){
1688717188
p->mode = MODE_Quote;
17189
+ sqlite3_snprintf(sizeof(p->colSeparator), p->colSeparator, SEP_Comma);
17190
+ sqlite3_snprintf(sizeof(p->rowSeparator), p->rowSeparator, SEP_Row);
1688817191
}else if( c2=='a' && strncmp(azArg[1],"ascii",n2)==0 ){
1688917192
p->mode = MODE_Ascii;
1689017193
sqlite3_snprintf(sizeof(p->colSeparator), p->colSeparator, SEP_Unit);
1689117194
sqlite3_snprintf(sizeof(p->rowSeparator), p->rowSeparator, SEP_Record);
17195
+ }else if( c2=='m' && strncmp(azArg[1],"markdown",n2)==0 ){
17196
+ p->mode = MODE_Markdown;
17197
+ }else if( c2=='t' && strncmp(azArg[1],"table",n2)==0 ){
17198
+ p->mode = MODE_Table;
17199
+ }else if( c2=='b' && strncmp(azArg[1],"box",n2)==0 ){
17200
+ p->mode = MODE_Box;
17201
+ }else if( c2=='j' && strncmp(azArg[1],"json",n2)==0 ){
17202
+ p->mode = MODE_Json;
1689217203
}else if( nArg==1 ){
1689317204
raw_printf(p->out, "current output mode: %s\n", modeDescr[p->mode]);
1689417205
}else{
1689517206
raw_printf(stderr, "Error: mode should be one of: "
16896
- "ascii column csv html insert line list quote tabs tcl\n");
17207
+ "ascii box column csv html insert json line list markdown "
17208
+ "quote table tabs tcl\n");
1689717209
rc = 1;
1689817210
}
1689917211
p->cMode = p->mode;
1690017212
}else
1690117213
@@ -17992,11 +18304,11 @@
1799218304
utf8_printf(p->out,"%12.12s: ", "rowseparator");
1799318305
output_c_string(p->out, p->rowSeparator);
1799418306
raw_printf(p->out, "\n");
1799518307
utf8_printf(p->out, "%12.12s: %s\n","stats", azBool[p->statsOn!=0]);
1799618308
utf8_printf(p->out, "%12.12s: ", "width");
17997
- for (i=0;i<(int)ArraySize(p->colWidth) && p->colWidth[i] != 0;i++) {
18309
+ for (i=0;i<p->nWidth;i++) {
1799818310
raw_printf(p->out, "%d ", p->colWidth[i]);
1799918311
}
1800018312
raw_printf(p->out, "\n");
1800118313
utf8_printf(p->out, "%12.12s: %s\n", "filename",
1800218314
p->zDbFilename ? p->zDbFilename : "");
@@ -18541,11 +18853,15 @@
1854118853
#endif
1854218854
1854318855
if( c=='w' && strncmp(azArg[0], "width", n)==0 ){
1854418856
int j;
1854518857
assert( nArg<=ArraySize(azArg) );
18546
- for(j=1; j<nArg && j<ArraySize(p->colWidth); j++){
18858
+ p->nWidth = nArg-1;
18859
+ p->colWidth = realloc(p->colWidth, p->nWidth*sizeof(int)*2);
18860
+ if( p->colWidth==0 && p->nWidth>0 ) shell_out_of_memory();
18861
+ if( p->nWidth ) p->actualWidth = &p->colWidth[p->nWidth];
18862
+ for(j=1; j<nArg; j++){
1854718863
p->colWidth[j-1] = (int)integerValue(azArg[j]);
1854818864
}
1854918865
}else
1855018866
1855118867
{
@@ -18886,10 +19202,11 @@
1888619202
#endif
1888719203
" -append append the database to the end of the file\n"
1888819204
" -ascii set output mode to 'ascii'\n"
1888919205
" -bail stop after hitting an error\n"
1889019206
" -batch force batch I/O\n"
19207
+ " -box set output mode to 'box'\n"
1889119208
" -column set output mode to 'column'\n"
1889219209
" -cmd COMMAND run \"COMMAND\" before reading stdin\n"
1889319210
" -csv set output mode to 'csv'\n"
1889419211
#if defined(SQLITE_ENABLE_DESERIALIZE)
1889519212
" -deserialize open the database using sqlite3_deserialize()\n"
@@ -18901,13 +19218,15 @@
1890119218
" -heap SIZE Size of heap for memsys3 or memsys5\n"
1890219219
#endif
1890319220
" -help show this message\n"
1890419221
" -html set output mode to HTML\n"
1890519222
" -interactive force interactive I/O\n"
19223
+ " -json set output mode to 'json'\n"
1890619224
" -line set output mode to 'line'\n"
1890719225
" -list set output mode to 'list'\n"
1890819226
" -lookaside SIZE N use N entries of SZ bytes for lookaside memory\n"
19227
+ " -markdown set output mode to 'markdown'\n"
1890919228
#if defined(SQLITE_ENABLE_DESERIALIZE)
1891019229
" -maxsize N maximum size for a --deserialize database\n"
1891119230
#endif
1891219231
" -memtrace trace all memory allocations and deallocations\n"
1891319232
" -mmap N default mmap size set to N\n"
@@ -18923,10 +19242,11 @@
1892319242
" -separator SEP set output column separator. Default: '|'\n"
1892419243
#ifdef SQLITE_ENABLE_SORTER_REFERENCES
1892519244
" -sorterref SIZE sorter references threshold size\n"
1892619245
#endif
1892719246
" -stats print memory stats before each finalize\n"
19247
+ " -table set output mode to 'table'\n"
1892819248
" -version show SQLite version\n"
1892919249
" -vfs NAME use NAME as the default VFS\n"
1893019250
#ifdef SQLITE_ENABLE_VFSTRACE
1893119251
" -vfstrace enable tracing of all VFS calls\n"
1893219252
#endif
@@ -19324,10 +19644,18 @@
1932419644
data.mode = MODE_Quote;
1932519645
}else if( strcmp(z,"-line")==0 ){
1932619646
data.mode = MODE_Line;
1932719647
}else if( strcmp(z,"-column")==0 ){
1932819648
data.mode = MODE_Column;
19649
+ }else if( strcmp(z,"-json")==0 ){
19650
+ data.mode = MODE_Json;
19651
+ }else if( strcmp(z,"-markdown")==0 ){
19652
+ data.mode = MODE_Markdown;
19653
+ }else if( strcmp(z,"-table")==0 ){
19654
+ data.mode = MODE_Table;
19655
+ }else if( strcmp(z,"-box")==0 ){
19656
+ data.mode = MODE_Box;
1932919657
}else if( strcmp(z,"-csv")==0 ){
1933019658
data.mode = MODE_Csv;
1933119659
memcpy(data.colSeparator,",",2);
1933219660
#ifdef SQLITE_HAVE_ZLIB
1933319661
}else if( strcmp(z,"-zip")==0 ){
@@ -19541,10 +19869,11 @@
1954119869
clearTempFile(&data);
1954219870
#if !SQLITE_SHELL_IS_UTF8
1954319871
for(i=0; i<argcToFree; i++) free(argvToFree[i]);
1954419872
free(argvToFree);
1954519873
#endif
19874
+ free(data.colWidth);
1954619875
/* Clear the global data structure so that valgrind will detect memory
1954719876
** leaks */
1954819877
memset(&data, 0, sizeof(data));
1954919878
return rc;
1955019879
}
1955119880
--- src/shell.c
+++ src/shell.c
@@ -9700,22 +9700,10 @@
9700 char **azFilter; /* Array of xFilter rejection GLOB patterns */
9701 sqlite3_session *p; /* The open session */
9702 };
9703 #endif
9704
9705 /*
9706 ** Shell output mode information from before ".explain on",
9707 ** saved so that it can be restored by ".explain off"
9708 */
9709 typedef struct SavedModeInfo SavedModeInfo;
9710 struct SavedModeInfo {
9711 int valid; /* Is there legit data in here? */
9712 int mode; /* Mode prior to ".explain on" */
9713 int showHeader; /* The ".header" setting prior to ".explain on" */
9714 int colWidth[100]; /* Column widths prior to ".explain on" */
9715 };
9716
9717 typedef struct ExpertInfo ExpertInfo;
9718 struct ExpertInfo {
9719 sqlite3expert *pExpert;
9720 int bVerbose;
9721 };
@@ -9781,12 +9769,13 @@
9781 char zTestcase[30]; /* Name of current test case */
9782 char colSeparator[20]; /* Column separator character for several modes */
9783 char rowSeparator[20]; /* Row separator character for MODE_Ascii */
9784 char colSepPrior[20]; /* Saved column separator */
9785 char rowSepPrior[20]; /* Saved row separator */
9786 int colWidth[100]; /* Requested width of each column when in column mode*/
9787 int actualWidth[100]; /* Actual width of each column */
 
9788 char nullValue[20]; /* The text to print when a NULL comes back from
9789 ** the database */
9790 char outfile[FILENAME_MAX]; /* Filename for *out */
9791 const char *zDbFilename; /* name of the database file */
9792 char *zFreeOnClose; /* Filename to free when closing */
@@ -9843,10 +9832,11 @@
9843 #define SHFLG_Backslash 0x00000004 /* The --backslash option is used */
9844 #define SHFLG_PreserveRowid 0x00000008 /* .dump preserves rowid values */
9845 #define SHFLG_Newlines 0x00000010 /* .dump --newline flag */
9846 #define SHFLG_CountChanges 0x00000020 /* .changes setting */
9847 #define SHFLG_Echo 0x00000040 /* .echo or --echo setting */
 
9848
9849 /*
9850 ** Macros for testing and setting shellFlgs
9851 */
9852 #define ShellHasFlag(P,X) (((P)->shellFlgs & (X))!=0)
@@ -9867,10 +9857,14 @@
9867 #define MODE_Csv 8 /* Quote strings, numbers are plain */
9868 #define MODE_Explain 9 /* Like MODE_Column, but do not truncate data */
9869 #define MODE_Ascii 10 /* Use ASCII unit and record separators (0x1F/0x1E) */
9870 #define MODE_Pretty 11 /* Pretty-print schemas */
9871 #define MODE_EQP 12 /* Converts EXPLAIN QUERY PLAN output into a graph */
 
 
 
 
9872
9873 static const char *modeDescr[] = {
9874 "line",
9875 "column",
9876 "list",
@@ -9881,11 +9875,15 @@
9881 "tcl",
9882 "csv",
9883 "explain",
9884 "ascii",
9885 "prettyprint",
9886 "eqp"
 
 
 
 
9887 };
9888
9889 /*
9890 ** These are the column/row/line separators used by the various
9891 ** import/export modes.
@@ -10248,10 +10246,44 @@
10248 fputc(c, out);
10249 }
10250 }
10251 fputc('"', out);
10252 }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10253
10254 /*
10255 ** Output the given string with characters that are special to
10256 ** HTML escaped.
10257 */
@@ -10557,10 +10589,44 @@
10557 raw_printf(p->out, "Progress %u\n", p->nProgress);
10558 }
10559 return 0;
10560 }
10561 #endif /* SQLITE_OMIT_PROGRESS_CALLBACK */
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10562
10563 /*
10564 ** This is the callback routine that the shell
10565 ** invokes for each row of a query result.
10566 */
@@ -10567,11 +10633,11 @@
10567 static int shell_callback(
10568 void *pArg,
10569 int nArg, /* Number of result columns */
10570 char **azArg, /* Text of each result column */
10571 char **azCol, /* Column names */
10572 int *aiType /* Column types */
10573 ){
10574 int i;
10575 ShellState *p = (ShellState*)pArg;
10576
10577 if( azArg==0 ) return 0;
@@ -10588,85 +10654,41 @@
10588 utf8_printf(p->out,"%*s = %s%s", w, azCol[i],
10589 azArg[i] ? azArg[i] : p->nullValue, p->rowSeparator);
10590 }
10591 break;
10592 }
10593 case MODE_Explain:
10594 case MODE_Column: {
10595 static const int aExplainWidths[] = {4, 13, 4, 4, 4, 13, 2, 13};
10596 const int *colWidth;
10597 int showHdr;
10598 char *rowSep;
10599 int nWidth;
10600 if( p->cMode==MODE_Column ){
10601 colWidth = p->colWidth;
10602 nWidth = ArraySize(p->colWidth);
10603 showHdr = p->showHeader;
10604 rowSep = p->rowSeparator;
10605 }else{
10606 colWidth = aExplainWidths;
10607 nWidth = ArraySize(aExplainWidths);
10608 showHdr = 1;
10609 rowSep = SEP_Row;
10610 }
10611 if( p->cnt++==0 ){
10612 for(i=0; i<nArg; i++){
10613 int w, n;
10614 if( i<nWidth ){
10615 w = colWidth[i];
10616 }else{
10617 w = 0;
10618 }
10619 if( w==0 ){
10620 w = strlenChar(azCol[i] ? azCol[i] : "");
10621 if( w<10 ) w = 10;
10622 n = strlenChar(azArg && azArg[i] ? azArg[i] : p->nullValue);
10623 if( w<n ) w = n;
10624 }
10625 if( i<ArraySize(p->actualWidth) ){
10626 p->actualWidth[i] = w;
10627 }
10628 if( showHdr ){
10629 utf8_width_print(p->out, w, azCol[i]);
10630 utf8_printf(p->out, "%s", i==nArg-1 ? rowSep : " ");
10631 }
10632 }
10633 if( showHdr ){
10634 for(i=0; i<nArg; i++){
10635 int w;
10636 if( i<ArraySize(p->actualWidth) ){
10637 w = p->actualWidth[i];
10638 if( w<0 ) w = -w;
10639 }else{
10640 w = 10;
10641 }
10642 utf8_printf(p->out,"%-*.*s%s",w,w,
10643 "----------------------------------------------------------"
10644 "----------------------------------------------------------",
10645 i==nArg-1 ? rowSep : " ");
10646 }
10647 }
10648 }
10649 if( azArg==0 ) break;
10650 for(i=0; i<nArg; i++){
10651 int w;
10652 if( i<ArraySize(p->actualWidth) ){
10653 w = p->actualWidth[i];
10654 }else{
10655 w = 10;
10656 }
10657 if( p->cMode==MODE_Explain && azArg[i] && strlenChar(azArg[i])>w ){
10658 w = strlenChar(azArg[i]);
10659 }
10660 if( i==1 && p->aiIndent && p->pStmt ){
10661 if( p->iIndent<p->nIndent ){
10662 utf8_printf(p->out, "%*.s", p->aiIndent[p->iIndent], "");
10663 }
10664 p->iIndent++;
10665 }
10666 utf8_width_print(p->out, w, azArg[i] ? azArg[i] : p->nullValue);
10667 utf8_printf(p->out, "%s", i==nArg-1 ? rowSep : " ");
10668 }
10669 break;
10670 }
10671 case MODE_Semi: { /* .schema and .fullschema output */
10672 printSchemaLine(p->out, azArg[0], ";\n");
@@ -10865,23 +10887,65 @@
10865 output_quoted_escaped_string(p->out, azArg[i]);
10866 }
10867 }
10868 raw_printf(p->out,");\n");
10869 break;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10870 }
10871 case MODE_Quote: {
10872 if( azArg==0 ) break;
10873 if( p->cnt==0 && p->showHeader ){
10874 for(i=0; i<nArg; i++){
10875 if( i>0 ) raw_printf(p->out, ",");
10876 output_quoted_string(p->out, azCol[i]);
10877 }
10878 raw_printf(p->out,"\n");
10879 }
10880 p->cnt++;
10881 for(i=0; i<nArg; i++){
10882 if( i>0 ) raw_printf(p->out, ",");
10883 if( (azArg[i]==0) || (aiType && aiType[i]==SQLITE_NULL) ){
10884 utf8_printf(p->out,"NULL");
10885 }else if( aiType && aiType[i]==SQLITE_TEXT ){
10886 output_quoted_string(p->out, azArg[i]);
10887 }else if( aiType && aiType[i]==SQLITE_INTEGER ){
@@ -10899,11 +10963,11 @@
10899 utf8_printf(p->out,"%s", azArg[i]);
10900 }else{
10901 output_quoted_string(p->out, azArg[i]);
10902 }
10903 }
10904 raw_printf(p->out,"\n");
10905 break;
10906 }
10907 case MODE_Ascii: {
10908 if( p->cnt++==0 && p->showHeader ){
10909 for(i=0; i<nArg; i++){
@@ -11554,19 +11618,236 @@
11554 }
11555 sqlite3_reset(pQ);
11556 }
11557 sqlite3_finalize(pQ);
11558 }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11559
11560 /*
11561 ** Run a prepared statement
11562 */
11563 static void exec_prepared_stmt(
11564 ShellState *pArg, /* Pointer to ShellState */
11565 sqlite3_stmt *pStmt /* Statment to run */
11566 ){
11567 int rc;
 
 
 
 
 
 
 
 
 
11568
11569 /* perform the first step. this will tell us if we
11570 ** have a result set or not and how wide it is.
11571 */
11572 rc = sqlite3_step(pStmt);
@@ -11611,10 +11892,13 @@
11611 rc = sqlite3_step(pStmt);
11612 }
11613 }
11614 } while( SQLITE_ROW == rc );
11615 sqlite3_free(pData);
 
 
 
11616 }
11617 }
11618 }
11619
11620 #ifndef SQLITE_OMIT_VIRTUALTABLE
@@ -12291,28 +12575,32 @@
12291 ".load FILE ?ENTRY? Load an extension library",
12292 #endif
12293 ".log FILE|off Turn logging on or off. FILE can be stderr/stdout",
12294 ".mode MODE ?TABLE? Set output mode",
12295 " MODE is one of:",
12296 " ascii Columns/rows delimited by 0x1F and 0x1E",
12297 " csv Comma-separated values",
12298 " column Left-aligned columns. (See .width)",
12299 " html HTML <table> code",
12300 " insert SQL insert statements for TABLE",
12301 " line One value per line",
12302 " list Values delimited by \"|\"",
12303 " quote Escape answers as for SQL",
12304 " tabs Tab-separated values",
12305 " tcl TCL list elements",
 
 
 
 
12306 ".nullvalue STRING Use STRING in place of NULL values",
12307 ".once ?OPTIONS? ?FILE? Output for the next SQL command only to FILE",
12308 " If FILE begins with '|' then open as a pipe",
12309 " --bom Put a UTF8 byte-order mark at the beginning",
12310 " -e Send output to the system text editor",
12311 " -x Send output as CSV to a spreadsheet (same as \".excel\")",
12312 #ifdef SQLITE_DEBUG
12313 ".oom [--repeat M] [N] Simulate an OOM error on the N-th allocation",
12314 #endif
12315 ".open ?OPTIONS? ?FILE? Close existing database and reopen FILE",
12316 " Options:",
12317 " --append Use appendvfs to append database to the end of FILE",
12318 #ifdef SQLITE_ENABLE_DESERIALIZE
@@ -12425,11 +12713,11 @@
12425 " --allexcept Unregister everything except those named",
12426 #endif
12427 ".vfsinfo ?AUX? Information about the top-level VFS",
12428 ".vfslist List all available VFSes",
12429 ".vfsname ?AUX? Print the name of the VFS stack",
12430 ".width NUM1 NUM2 ... Set column widths for \"column\" mode",
12431 " Negative values right-justify",
12432 };
12433
12434 /*
12435 ** Output help text.
@@ -13262,10 +13550,11 @@
13262 */
13263 typedef struct ImportCtx ImportCtx;
13264 struct ImportCtx {
13265 const char *zFile; /* Name of the input file */
13266 FILE *in; /* Read the CSV text from this input stream */
 
13267 char *z; /* Accumulated text for a field */
13268 int n; /* Number of bytes in z */
13269 int nAlloc; /* Space allocated for z[] */
13270 int nLine; /* Current line number */
13271 int nRow; /* Number of rows imported */
@@ -13273,10 +13562,20 @@
13273 int bNotFirst; /* True if one or more bytes already read */
13274 int cTerm; /* Character that terminated the most recent field */
13275 int cColSep; /* The column separator character. (Usually ",") */
13276 int cRowSep; /* The row separator character. (Usually "\n") */
13277 };
 
 
 
 
 
 
 
 
 
 
13278
13279 /* Append a single byte to z[] */
13280 static void import_append_char(ImportCtx *p, int c){
13281 if( p->n+1>=p->nAlloc ){
13282 p->nAlloc += p->nAlloc + 100;
@@ -15995,10 +16294,11 @@
15995 if( strcmp(z,"preserve-rowids")==0 ){
15996 #ifdef SQLITE_OMIT_VIRTUALTABLE
15997 raw_printf(stderr, "The --preserve-rowids option is not compatible"
15998 " with SQLITE_OMIT_VIRTUALTABLE\n");
15999 rc = 1;
 
16000 goto meta_command_exit;
16001 #else
16002 ShellSetFlag(p, SHFLG_PreserveRowid);
16003 #endif
16004 }else
@@ -16006,10 +16306,11 @@
16006 ShellSetFlag(p, SHFLG_Newlines);
16007 }else
16008 {
16009 raw_printf(stderr, "Unknown option \"%s\" on \".dump\"\n", azArg[i]);
16010 rc = 1;
 
16011 goto meta_command_exit;
16012 }
16013 }else if( zLike ){
16014 zLike = sqlite3_mprintf("%z OR name LIKE %Q ESCAPE '\\'",
16015 zLike, azArg[i]);
@@ -16334,10 +16635,11 @@
16334 }else
16335
16336 if( c=='h' && strncmp(azArg[0], "headers", n)==0 ){
16337 if( nArg==2 ){
16338 p->showHeader = booleanValue(azArg[1]);
 
16339 }else{
16340 raw_printf(stderr, "Usage: .headers on|off\n");
16341 rc = 1;
16342 }
16343 }else
@@ -16363,11 +16665,10 @@
16363 int needCommit; /* True to COMMIT or ROLLBACK at end */
16364 int nSep; /* Number of bytes in p->colSeparator[] */
16365 char *zSql; /* An SQL statement */
16366 ImportCtx sCtx; /* Reader context */
16367 char *(SQLITE_CDECL *xRead)(ImportCtx*); /* Func to read one value */
16368 int (SQLITE_CDECL *xCloser)(FILE*); /* Func to close file */
16369 int eVerbose = 0; /* Larger for more console output */
16370 int nSkip = 0; /* Initial lines to skip */
16371 int useOutputMode = 1; /* Use output mode to determine separators */
16372
16373 memset(&sCtx, 0, sizeof(sCtx));
@@ -16469,15 +16770,15 @@
16469 rc = 1;
16470 goto meta_command_exit;
16471 #else
16472 sCtx.in = popen(sCtx.zFile+1, "r");
16473 sCtx.zFile = "<pipe>";
16474 xCloser = pclose;
16475 #endif
16476 }else{
16477 sCtx.in = fopen(sCtx.zFile, "rb");
16478 xCloser = fclose;
16479 }
16480 if( sCtx.in==0 ){
16481 utf8_printf(stderr, "Error: cannot open \"%s\"\n", zFile);
16482 rc = 1;
16483 goto meta_command_exit;
@@ -16497,11 +16798,11 @@
16497 while( xRead(&sCtx) && sCtx.cTerm==sCtx.cColSep ){}
16498 sCtx.nLine++;
16499 }
16500 zSql = sqlite3_mprintf("SELECT * FROM %s", zTable);
16501 if( zSql==0 ){
16502 xCloser(sCtx.in);
16503 shell_out_of_memory();
16504 }
16505 nByte = strlen30(zSql);
16506 rc = sqlite3_prepare_v2(p->db, zSql, -1, &pStmt, 0);
16507 import_append_char(&sCtx, 0); /* To ensure sCtx.z is allocated */
@@ -16513,12 +16814,11 @@
16513 cSep = ',';
16514 if( sCtx.cTerm!=sCtx.cColSep ) break;
16515 }
16516 if( cSep=='(' ){
16517 sqlite3_free(zCreate);
16518 sqlite3_free(sCtx.z);
16519 xCloser(sCtx.in);
16520 utf8_printf(stderr,"%s: empty file\n", sCtx.zFile);
16521 rc = 1;
16522 goto meta_command_exit;
16523 }
16524 zCreate = sqlite3_mprintf("%z\n)", zCreate);
@@ -16528,32 +16828,31 @@
16528 rc = sqlite3_exec(p->db, zCreate, 0, 0, 0);
16529 sqlite3_free(zCreate);
16530 if( rc ){
16531 utf8_printf(stderr, "CREATE TABLE %s(...) failed: %s\n", zTable,
16532 sqlite3_errmsg(p->db));
16533 sqlite3_free(sCtx.z);
16534 xCloser(sCtx.in);
16535 rc = 1;
16536 goto meta_command_exit;
16537 }
16538 rc = sqlite3_prepare_v2(p->db, zSql, -1, &pStmt, 0);
16539 }
16540 sqlite3_free(zSql);
16541 if( rc ){
16542 if (pStmt) sqlite3_finalize(pStmt);
16543 utf8_printf(stderr,"Error: %s\n", sqlite3_errmsg(p->db));
16544 xCloser(sCtx.in);
16545 rc = 1;
16546 goto meta_command_exit;
16547 }
16548 nCol = sqlite3_column_count(pStmt);
16549 sqlite3_finalize(pStmt);
16550 pStmt = 0;
16551 if( nCol==0 ) return 0; /* no columns, no error */
16552 zSql = sqlite3_malloc64( nByte*2 + 20 + nCol*2 );
16553 if( zSql==0 ){
16554 xCloser(sCtx.in);
16555 shell_out_of_memory();
16556 }
16557 sqlite3_snprintf(nByte+20, zSql, "INSERT INTO \"%w\" VALUES(?", zTable);
16558 j = strlen30(zSql);
16559 for(i=1; i<nCol; i++){
@@ -16568,11 +16867,11 @@
16568 rc = sqlite3_prepare_v2(p->db, zSql, -1, &pStmt, 0);
16569 sqlite3_free(zSql);
16570 if( rc ){
16571 utf8_printf(stderr, "Error: %s\n", sqlite3_errmsg(p->db));
16572 if (pStmt) sqlite3_finalize(pStmt);
16573 xCloser(sCtx.in);
16574 rc = 1;
16575 goto meta_command_exit;
16576 }
16577 needCommit = sqlite3_get_autocommit(p->db);
16578 if( needCommit ) sqlite3_exec(p->db, "BEGIN", 0, 0, 0);
@@ -16620,12 +16919,11 @@
16620 sCtx.nRow++;
16621 }
16622 }
16623 }while( sCtx.cTerm!=EOF );
16624
16625 xCloser(sCtx.in);
16626 sqlite3_free(sCtx.z);
16627 sqlite3_finalize(pStmt);
16628 if( needCommit ) sqlite3_exec(p->db, "COMMIT", 0, 0, 0);
16629 if( eVerbose>0 ){
16630 utf8_printf(p->out,
16631 "Added %d rows with %d errors using %d lines of input\n",
@@ -16860,10 +17158,13 @@
16860 if( c2=='l' && n2>2 && strncmp(azArg[1],"lines",n2)==0 ){
16861 p->mode = MODE_Line;
16862 sqlite3_snprintf(sizeof(p->rowSeparator), p->rowSeparator, SEP_Row);
16863 }else if( c2=='c' && strncmp(azArg[1],"columns",n2)==0 ){
16864 p->mode = MODE_Column;
 
 
 
16865 sqlite3_snprintf(sizeof(p->rowSeparator), p->rowSeparator, SEP_Row);
16866 }else if( c2=='l' && n2>2 && strncmp(azArg[1],"list",n2)==0 ){
16867 p->mode = MODE_List;
16868 sqlite3_snprintf(sizeof(p->colSeparator), p->colSeparator, SEP_Column);
16869 sqlite3_snprintf(sizeof(p->rowSeparator), p->rowSeparator, SEP_Row);
@@ -16883,19 +17184,30 @@
16883 }else if( c2=='i' && strncmp(azArg[1],"insert",n2)==0 ){
16884 p->mode = MODE_Insert;
16885 set_table_name(p, nArg>=3 ? azArg[2] : "table");
16886 }else if( c2=='q' && strncmp(azArg[1],"quote",n2)==0 ){
16887 p->mode = MODE_Quote;
 
 
16888 }else if( c2=='a' && strncmp(azArg[1],"ascii",n2)==0 ){
16889 p->mode = MODE_Ascii;
16890 sqlite3_snprintf(sizeof(p->colSeparator), p->colSeparator, SEP_Unit);
16891 sqlite3_snprintf(sizeof(p->rowSeparator), p->rowSeparator, SEP_Record);
 
 
 
 
 
 
 
 
16892 }else if( nArg==1 ){
16893 raw_printf(p->out, "current output mode: %s\n", modeDescr[p->mode]);
16894 }else{
16895 raw_printf(stderr, "Error: mode should be one of: "
16896 "ascii column csv html insert line list quote tabs tcl\n");
 
16897 rc = 1;
16898 }
16899 p->cMode = p->mode;
16900 }else
16901
@@ -17992,11 +18304,11 @@
17992 utf8_printf(p->out,"%12.12s: ", "rowseparator");
17993 output_c_string(p->out, p->rowSeparator);
17994 raw_printf(p->out, "\n");
17995 utf8_printf(p->out, "%12.12s: %s\n","stats", azBool[p->statsOn!=0]);
17996 utf8_printf(p->out, "%12.12s: ", "width");
17997 for (i=0;i<(int)ArraySize(p->colWidth) && p->colWidth[i] != 0;i++) {
17998 raw_printf(p->out, "%d ", p->colWidth[i]);
17999 }
18000 raw_printf(p->out, "\n");
18001 utf8_printf(p->out, "%12.12s: %s\n", "filename",
18002 p->zDbFilename ? p->zDbFilename : "");
@@ -18541,11 +18853,15 @@
18541 #endif
18542
18543 if( c=='w' && strncmp(azArg[0], "width", n)==0 ){
18544 int j;
18545 assert( nArg<=ArraySize(azArg) );
18546 for(j=1; j<nArg && j<ArraySize(p->colWidth); j++){
 
 
 
 
18547 p->colWidth[j-1] = (int)integerValue(azArg[j]);
18548 }
18549 }else
18550
18551 {
@@ -18886,10 +19202,11 @@
18886 #endif
18887 " -append append the database to the end of the file\n"
18888 " -ascii set output mode to 'ascii'\n"
18889 " -bail stop after hitting an error\n"
18890 " -batch force batch I/O\n"
 
18891 " -column set output mode to 'column'\n"
18892 " -cmd COMMAND run \"COMMAND\" before reading stdin\n"
18893 " -csv set output mode to 'csv'\n"
18894 #if defined(SQLITE_ENABLE_DESERIALIZE)
18895 " -deserialize open the database using sqlite3_deserialize()\n"
@@ -18901,13 +19218,15 @@
18901 " -heap SIZE Size of heap for memsys3 or memsys5\n"
18902 #endif
18903 " -help show this message\n"
18904 " -html set output mode to HTML\n"
18905 " -interactive force interactive I/O\n"
 
18906 " -line set output mode to 'line'\n"
18907 " -list set output mode to 'list'\n"
18908 " -lookaside SIZE N use N entries of SZ bytes for lookaside memory\n"
 
18909 #if defined(SQLITE_ENABLE_DESERIALIZE)
18910 " -maxsize N maximum size for a --deserialize database\n"
18911 #endif
18912 " -memtrace trace all memory allocations and deallocations\n"
18913 " -mmap N default mmap size set to N\n"
@@ -18923,10 +19242,11 @@
18923 " -separator SEP set output column separator. Default: '|'\n"
18924 #ifdef SQLITE_ENABLE_SORTER_REFERENCES
18925 " -sorterref SIZE sorter references threshold size\n"
18926 #endif
18927 " -stats print memory stats before each finalize\n"
 
18928 " -version show SQLite version\n"
18929 " -vfs NAME use NAME as the default VFS\n"
18930 #ifdef SQLITE_ENABLE_VFSTRACE
18931 " -vfstrace enable tracing of all VFS calls\n"
18932 #endif
@@ -19324,10 +19644,18 @@
19324 data.mode = MODE_Quote;
19325 }else if( strcmp(z,"-line")==0 ){
19326 data.mode = MODE_Line;
19327 }else if( strcmp(z,"-column")==0 ){
19328 data.mode = MODE_Column;
 
 
 
 
 
 
 
 
19329 }else if( strcmp(z,"-csv")==0 ){
19330 data.mode = MODE_Csv;
19331 memcpy(data.colSeparator,",",2);
19332 #ifdef SQLITE_HAVE_ZLIB
19333 }else if( strcmp(z,"-zip")==0 ){
@@ -19541,10 +19869,11 @@
19541 clearTempFile(&data);
19542 #if !SQLITE_SHELL_IS_UTF8
19543 for(i=0; i<argcToFree; i++) free(argvToFree[i]);
19544 free(argvToFree);
19545 #endif
 
19546 /* Clear the global data structure so that valgrind will detect memory
19547 ** leaks */
19548 memset(&data, 0, sizeof(data));
19549 return rc;
19550 }
19551
--- src/shell.c
+++ src/shell.c
@@ -9700,22 +9700,10 @@
9700 char **azFilter; /* Array of xFilter rejection GLOB patterns */
9701 sqlite3_session *p; /* The open session */
9702 };
9703 #endif
9704
 
 
 
 
 
 
 
 
 
 
 
 
9705 typedef struct ExpertInfo ExpertInfo;
9706 struct ExpertInfo {
9707 sqlite3expert *pExpert;
9708 int bVerbose;
9709 };
@@ -9781,12 +9769,13 @@
9769 char zTestcase[30]; /* Name of current test case */
9770 char colSeparator[20]; /* Column separator character for several modes */
9771 char rowSeparator[20]; /* Row separator character for MODE_Ascii */
9772 char colSepPrior[20]; /* Saved column separator */
9773 char rowSepPrior[20]; /* Saved row separator */
9774 int *colWidth; /* Requested width of each column in columnar modes */
9775 int *actualWidth; /* Actual width of each column */
9776 int nWidth; /* Number of slots in colWidth[] and actualWidth[] */
9777 char nullValue[20]; /* The text to print when a NULL comes back from
9778 ** the database */
9779 char outfile[FILENAME_MAX]; /* Filename for *out */
9780 const char *zDbFilename; /* name of the database file */
9781 char *zFreeOnClose; /* Filename to free when closing */
@@ -9843,10 +9832,11 @@
9832 #define SHFLG_Backslash 0x00000004 /* The --backslash option is used */
9833 #define SHFLG_PreserveRowid 0x00000008 /* .dump preserves rowid values */
9834 #define SHFLG_Newlines 0x00000010 /* .dump --newline flag */
9835 #define SHFLG_CountChanges 0x00000020 /* .changes setting */
9836 #define SHFLG_Echo 0x00000040 /* .echo or --echo setting */
9837 #define SHFLG_HeaderSet 0x00000080 /* .header has been used */
9838
9839 /*
9840 ** Macros for testing and setting shellFlgs
9841 */
9842 #define ShellHasFlag(P,X) (((P)->shellFlgs & (X))!=0)
@@ -9867,10 +9857,14 @@
9857 #define MODE_Csv 8 /* Quote strings, numbers are plain */
9858 #define MODE_Explain 9 /* Like MODE_Column, but do not truncate data */
9859 #define MODE_Ascii 10 /* Use ASCII unit and record separators (0x1F/0x1E) */
9860 #define MODE_Pretty 11 /* Pretty-print schemas */
9861 #define MODE_EQP 12 /* Converts EXPLAIN QUERY PLAN output into a graph */
9862 #define MODE_Json 13 /* Output JSON */
9863 #define MODE_Markdown 14 /* Markdown formatting */
9864 #define MODE_Table 15 /* MySQL-style table formatting */
9865 #define MODE_Box 16 /* Unicode box-drawing characters */
9866
9867 static const char *modeDescr[] = {
9868 "line",
9869 "column",
9870 "list",
@@ -9881,11 +9875,15 @@
9875 "tcl",
9876 "csv",
9877 "explain",
9878 "ascii",
9879 "prettyprint",
9880 "eqp",
9881 "json",
9882 "markdown",
9883 "table",
9884 "box"
9885 };
9886
9887 /*
9888 ** These are the column/row/line separators used by the various
9889 ** import/export modes.
@@ -10248,10 +10246,44 @@
10246 fputc(c, out);
10247 }
10248 }
10249 fputc('"', out);
10250 }
10251
10252 /*
10253 ** Output the given string as a quoted according to JSON quoting rules.
10254 */
10255 static void output_json_string(FILE *out, const char *z, int n){
10256 unsigned int c;
10257 if( n<0 ) n = (int)strlen(z);
10258 fputc('"', out);
10259 while( n-- ){
10260 c = *(z++);
10261 if( c=='\\' || c=='"' ){
10262 fputc('\\', out);
10263 fputc(c, out);
10264 }else if( c<=0x1f ){
10265 fputc('\\', out);
10266 if( c=='\b' ){
10267 fputc('b', out);
10268 }else if( c=='\f' ){
10269 fputc('f', out);
10270 }else if( c=='\n' ){
10271 fputc('n', out);
10272 }else if( c=='\r' ){
10273 fputc('r', out);
10274 }else if( c=='\t' ){
10275 fputc('t', out);
10276 }else{
10277 raw_printf(out, "u%04x",c);
10278 }
10279 }else{
10280 fputc(c, out);
10281 }
10282 }
10283 fputc('"', out);
10284 }
10285
10286 /*
10287 ** Output the given string with characters that are special to
10288 ** HTML escaped.
10289 */
@@ -10557,10 +10589,44 @@
10589 raw_printf(p->out, "Progress %u\n", p->nProgress);
10590 }
10591 return 0;
10592 }
10593 #endif /* SQLITE_OMIT_PROGRESS_CALLBACK */
10594
10595 /*
10596 ** Print N dashes
10597 */
10598 static void print_dashes(FILE *out, int N){
10599 const char zDash[] = "--------------------------------------------------";
10600 const int nDash = sizeof(zDash) - 1;
10601 while( N>nDash ){
10602 fputs(zDash, out);
10603 N -= nDash;
10604 }
10605 raw_printf(out, "%.*s", N, zDash);
10606 }
10607
10608 /*
10609 ** Print a markdown or table-style row separator using ascii-art
10610 */
10611 static void print_row_separator(
10612 ShellState *p,
10613 int nArg,
10614 const char *zSep
10615 ){
10616 int i;
10617 if( nArg>0 ){
10618 fputs(zSep, p->out);
10619 print_dashes(p->out, p->actualWidth[0]+2);
10620 for(i=1; i<nArg; i++){
10621 fputs(zSep, p->out);
10622 print_dashes(p->out, p->actualWidth[i]+2);
10623 }
10624 fputs(zSep, p->out);
10625 }
10626 fputs("\n", p->out);
10627 }
10628
10629 /*
10630 ** This is the callback routine that the shell
10631 ** invokes for each row of a query result.
10632 */
@@ -10567,11 +10633,11 @@
10633 static int shell_callback(
10634 void *pArg,
10635 int nArg, /* Number of result columns */
10636 char **azArg, /* Text of each result column */
10637 char **azCol, /* Column names */
10638 int *aiType /* Column types. Might be NULL */
10639 ){
10640 int i;
10641 ShellState *p = (ShellState*)pArg;
10642
10643 if( azArg==0 ) return 0;
@@ -10588,85 +10654,41 @@
10654 utf8_printf(p->out,"%*s = %s%s", w, azCol[i],
10655 azArg[i] ? azArg[i] : p->nullValue, p->rowSeparator);
10656 }
10657 break;
10658 }
10659 case MODE_Explain: {
10660 static const int aExplainWidth[] = {4, 13, 4, 4, 4, 13, 2, 13};
10661 if( nArg>ArraySize(aExplainWidth) ){
10662 nArg = ArraySize(aExplainWidth);
 
 
 
 
 
 
 
 
 
 
 
 
 
10663 }
10664 if( p->cnt++==0 ){
10665 for(i=0; i<nArg; i++){
10666 int w = aExplainWidth[i];
10667 utf8_width_print(p->out, w, azCol[i]);
10668 fputs(i==nArg-1 ? "\n" : " ", p->out);
10669 }
10670 for(i=0; i<nArg; i++){
10671 int w = aExplainWidth[i];
10672 print_dashes(p->out, w);
10673 fputs(i==nArg-1 ? "\n" : " ", p->out);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10674 }
10675 }
10676 if( azArg==0 ) break;
10677 for(i=0; i<nArg; i++){
10678 int w = aExplainWidth[i];
10679 if( azArg[i] && strlenChar(azArg[i])>w ){
 
 
 
 
 
10680 w = strlenChar(azArg[i]);
10681 }
10682 if( i==1 && p->aiIndent && p->pStmt ){
10683 if( p->iIndent<p->nIndent ){
10684 utf8_printf(p->out, "%*.s", p->aiIndent[p->iIndent], "");
10685 }
10686 p->iIndent++;
10687 }
10688 utf8_width_print(p->out, w, azArg[i] ? azArg[i] : p->nullValue);
10689 fputs(i==nArg-1 ? "\n" : " ", p->out);
10690 }
10691 break;
10692 }
10693 case MODE_Semi: { /* .schema and .fullschema output */
10694 printSchemaLine(p->out, azArg[0], ";\n");
@@ -10865,23 +10887,65 @@
10887 output_quoted_escaped_string(p->out, azArg[i]);
10888 }
10889 }
10890 raw_printf(p->out,");\n");
10891 break;
10892 }
10893 case MODE_Json: {
10894 if( azArg==0 ) break;
10895 if( p->cnt==0 ){
10896 fputs("[{", p->out);
10897 }else{
10898 fputs(",\n{", p->out);
10899 }
10900 p->cnt++;
10901 for(i=0; i<nArg; i++){
10902 output_json_string(p->out, azCol[i], -1);
10903 putc(':', p->out);
10904 if( (azArg[i]==0) || (aiType && aiType[i]==SQLITE_NULL) ){
10905 fputs("null",p->out);
10906 }else if( aiType && aiType[i]==SQLITE_FLOAT ){
10907 char z[50];
10908 double r = sqlite3_column_double(p->pStmt, i);
10909 sqlite3_uint64 ur;
10910 memcpy(&ur,&r,sizeof(r));
10911 if( ur==0x7ff0000000000000LL ){
10912 raw_printf(p->out, "1e999");
10913 }else if( ur==0xfff0000000000000LL ){
10914 raw_printf(p->out, "-1e999");
10915 }else{
10916 sqlite3_snprintf(50,z,"%!.20g", r);
10917 raw_printf(p->out, "%s", z);
10918 }
10919 }else if( aiType && aiType[i]==SQLITE_BLOB && p->pStmt ){
10920 const void *pBlob = sqlite3_column_blob(p->pStmt, i);
10921 int nBlob = sqlite3_column_bytes(p->pStmt, i);
10922 output_json_string(p->out, pBlob, nBlob);
10923 }else if( aiType && aiType[i]==SQLITE_TEXT ){
10924 output_json_string(p->out, azArg[i], -1);
10925 }else{
10926 utf8_printf(p->out,"%s", azArg[i]);
10927 }
10928 if( i<nArg-1 ){
10929 putc(',', p->out);
10930 }
10931 }
10932 putc('}', p->out);
10933 break;
10934 }
10935 case MODE_Quote: {
10936 if( azArg==0 ) break;
10937 if( p->cnt==0 && p->showHeader ){
10938 for(i=0; i<nArg; i++){
10939 if( i>0 ) fputs(p->colSeparator, p->out);
10940 output_quoted_string(p->out, azCol[i]);
10941 }
10942 fputs(p->rowSeparator, p->out);
10943 }
10944 p->cnt++;
10945 for(i=0; i<nArg; i++){
10946 if( i>0 ) fputs(p->colSeparator, p->out);
10947 if( (azArg[i]==0) || (aiType && aiType[i]==SQLITE_NULL) ){
10948 utf8_printf(p->out,"NULL");
10949 }else if( aiType && aiType[i]==SQLITE_TEXT ){
10950 output_quoted_string(p->out, azArg[i]);
10951 }else if( aiType && aiType[i]==SQLITE_INTEGER ){
@@ -10899,11 +10963,11 @@
10963 utf8_printf(p->out,"%s", azArg[i]);
10964 }else{
10965 output_quoted_string(p->out, azArg[i]);
10966 }
10967 }
10968 fputs(p->rowSeparator, p->out);
10969 break;
10970 }
10971 case MODE_Ascii: {
10972 if( p->cnt++==0 && p->showHeader ){
10973 for(i=0; i<nArg; i++){
@@ -11554,19 +11618,236 @@
11618 }
11619 sqlite3_reset(pQ);
11620 }
11621 sqlite3_finalize(pQ);
11622 }
11623
11624 /*
11625 ** UTF8 box-drawing characters. Imagine box lines like this:
11626 **
11627 ** 1
11628 ** |
11629 ** 4 --+-- 2
11630 ** |
11631 ** 3
11632 **
11633 ** Each box characters has between 2 and 4 of the lines leading from
11634 ** the center. The characters are here identified by the numbers of
11635 ** their corresponding lines.
11636 */
11637 #define BOX_24 "\342\224\200" /* U+2500 --- */
11638 #define BOX_13 "\342\224\202" /* U+2502 | */
11639 #define BOX_23 "\342\224\214" /* U+250c ,- */
11640 #define BOX_34 "\342\224\220" /* U+2510 -, */
11641 #define BOX_12 "\342\224\224" /* U+2514 '- */
11642 #define BOX_14 "\342\224\230" /* U+2518 -' */
11643 #define BOX_123 "\342\224\234" /* U+251c |- */
11644 #define BOX_134 "\342\224\244" /* U+2524 -| */
11645 #define BOX_234 "\342\224\254" /* U+252c -,- */
11646 #define BOX_124 "\342\224\264" /* U+2534 -'- */
11647 #define BOX_1234 "\342\224\274" /* U+253c -|- */
11648
11649 /* Draw horizontal line N characters long using unicode box
11650 ** characters
11651 */
11652 static void print_box_line(FILE *out, int N){
11653 const char zDash[] =
11654 BOX_24 BOX_24 BOX_24 BOX_24 BOX_24 BOX_24 BOX_24 BOX_24 BOX_24 BOX_24
11655 BOX_24 BOX_24 BOX_24 BOX_24 BOX_24 BOX_24 BOX_24 BOX_24 BOX_24 BOX_24;
11656 const int nDash = sizeof(zDash) - 1;
11657 N *= 3;
11658 while( N>nDash ){
11659 utf8_printf(out, zDash);
11660 N -= nDash;
11661 }
11662 utf8_printf(out, "%.*s", N, zDash);
11663 }
11664
11665 /*
11666 ** Draw a horizontal separator for a MODE_Box table.
11667 */
11668 static void print_box_row_separator(
11669 ShellState *p,
11670 int nArg,
11671 const char *zSep1,
11672 const char *zSep2,
11673 const char *zSep3
11674 ){
11675 int i;
11676 if( nArg>0 ){
11677 utf8_printf(p->out, "%s", zSep1);
11678 print_box_line(p->out, p->actualWidth[0]+2);
11679 for(i=1; i<nArg; i++){
11680 utf8_printf(p->out, "%s", zSep2);
11681 print_box_line(p->out, p->actualWidth[i]+2);
11682 }
11683 utf8_printf(p->out, "%s", zSep3);
11684 }
11685 fputs("\n", p->out);
11686 }
11687
11688
11689
11690 /*
11691 ** Run a prepared statement and output the result in one of the
11692 ** table-oriented formats: MODE_Column, MODE_Markdown, MODE_Table,
11693 ** or MODE_Box.
11694 **
11695 ** This is different from ordinary exec_prepared_stmt() in that
11696 ** it has to run the entire query and gather the results into memory
11697 ** first, in order to determine column widths, before providing
11698 ** any output.
11699 */
11700 static void exec_prepared_stmt_columnar(
11701 ShellState *p, /* Pointer to ShellState */
11702 sqlite3_stmt *pStmt /* Statment to run */
11703 ){
11704 int nRow = 0;
11705 int nColumn = 0;
11706 char **azData = 0;
11707 char *zMsg = 0;
11708 const char *z;
11709 int rc;
11710 int i, j, nTotal, w, n;
11711 const char *colSep = 0;
11712 const char *rowSep = 0;
11713
11714 rc = sqlite3_get_table(p->db, sqlite3_sql(pStmt),
11715 &azData, &nRow, &nColumn, &zMsg);
11716 if( rc ){
11717 utf8_printf(p->out, "ERROR: %s\n", zMsg);
11718 sqlite3_free(zMsg);
11719 sqlite3_free_table(azData);
11720 return;
11721 }
11722 if( nRow==0 || nColumn==0 ){
11723 sqlite3_free_table(azData);
11724 return;
11725 }
11726 if( nColumn>p->nWidth ){
11727 p->colWidth = realloc(p->colWidth, nColumn*2*sizeof(int));
11728 if( p->colWidth==0 ) shell_out_of_memory();
11729 for(i=p->nWidth; i<nColumn; i++) p->colWidth[i] = 0;
11730 p->nWidth = nColumn;
11731 p->actualWidth = &p->colWidth[nColumn];
11732 }
11733 memset(p->actualWidth, 0, nColumn*sizeof(int));
11734 for(i=0; i<nColumn; i++){
11735 w = p->colWidth[i];
11736 if( w<0 ) w = -w;
11737 p->actualWidth[i] = w;
11738 }
11739 nTotal = nColumn*(nRow+1);
11740 for(i=0; i<nTotal; i++){
11741 z = azData[i];
11742 if( z==0 ) z = p->nullValue;
11743 n = strlenChar(z);
11744 j = i%nColumn;
11745 if( n>p->actualWidth[j] ) p->actualWidth[j] = n;
11746 }
11747 switch( p->cMode ){
11748 case MODE_Column: {
11749 colSep = " ";
11750 rowSep = "\n";
11751 if( p->showHeader ){
11752 for(i=0; i<nColumn; i++){
11753 w = p->actualWidth[i];
11754 if( p->colWidth[i]<0 ) w = -w;
11755 utf8_width_print(p->out, w, azData[i]);
11756 fputs(i==nColumn-1?"\n":" ", p->out);
11757 }
11758 for(i=0; i<nColumn; i++){
11759 print_dashes(p->out, p->actualWidth[i]);
11760 fputs(i==nColumn-1?"\n":" ", p->out);
11761 }
11762 }
11763 break;
11764 }
11765 case MODE_Table: {
11766 colSep = " | ";
11767 rowSep = " |\n";
11768 print_row_separator(p, nColumn, "+");
11769 fputs("| ", p->out);
11770 for(i=0; i<nColumn; i++){
11771 w = p->actualWidth[i];
11772 n = strlenChar(azData[i]);
11773 utf8_printf(p->out, "%*s%s%*s", (w-n)/2, "", azData[i], (w-n+1)/2, "");
11774 fputs(i==nColumn-1?" |\n":" | ", p->out);
11775 }
11776 print_row_separator(p, nColumn, "+");
11777 break;
11778 }
11779 case MODE_Markdown: {
11780 colSep = " | ";
11781 rowSep = " |\n";
11782 fputs("| ", p->out);
11783 for(i=0; i<nColumn; i++){
11784 w = p->actualWidth[i];
11785 n = strlenChar(azData[i]);
11786 utf8_printf(p->out, "%*s%s%*s", (w-n)/2, "", azData[i], (w-n+1)/2, "");
11787 fputs(i==nColumn-1?" |\n":" | ", p->out);
11788 }
11789 print_row_separator(p, nColumn, "|");
11790 break;
11791 }
11792 case MODE_Box: {
11793 colSep = " " BOX_13 " ";
11794 rowSep = " " BOX_13 "\n";
11795 print_box_row_separator(p, nColumn, BOX_23, BOX_234, BOX_34);
11796 utf8_printf(p->out, BOX_13 " ");
11797 for(i=0; i<nColumn; i++){
11798 w = p->actualWidth[i];
11799 n = strlenChar(azData[i]);
11800 utf8_printf(p->out, "%*s%s%*s%s",
11801 (w-n)/2, "", azData[i], (w-n+1)/2, "",
11802 i==nColumn-1?" "BOX_13"\n":" "BOX_13" ");
11803 }
11804 print_box_row_separator(p, nColumn, BOX_123, BOX_1234, BOX_134);
11805 break;
11806 }
11807 }
11808 for(i=nColumn, j=0; i<nTotal; i++, j++){
11809 if( j==0 && p->cMode!=MODE_Column ){
11810 utf8_printf(p->out, "%s", p->cMode==MODE_Box?BOX_13" ":"| ");
11811 }
11812 z = azData[i];
11813 if( z==0 ) z = p->nullValue;
11814 w = p->actualWidth[j];
11815 if( p->colWidth[j]<0 ) w = -w;
11816 utf8_width_print(p->out, w, z);
11817 if( j==nColumn-1 ){
11818 utf8_printf(p->out, "%s", rowSep);
11819 j = -1;
11820 }else{
11821 utf8_printf(p->out, "%s", colSep);
11822 }
11823 }
11824 if( p->cMode==MODE_Table ){
11825 print_row_separator(p, nColumn, "+");
11826 }else if( p->cMode==MODE_Box ){
11827 print_box_row_separator(p, nColumn, BOX_12, BOX_124, BOX_14);
11828 }
11829 sqlite3_free_table(azData);
11830 }
11831
11832 /*
11833 ** Run a prepared statement
11834 */
11835 static void exec_prepared_stmt(
11836 ShellState *pArg, /* Pointer to ShellState */
11837 sqlite3_stmt *pStmt /* Statment to run */
11838 ){
11839 int rc;
11840
11841 if( pArg->cMode==MODE_Column
11842 || pArg->cMode==MODE_Table
11843 || pArg->cMode==MODE_Box
11844 || pArg->cMode==MODE_Markdown
11845 ){
11846 exec_prepared_stmt_columnar(pArg, pStmt);
11847 return;
11848 }
11849
11850 /* perform the first step. this will tell us if we
11851 ** have a result set or not and how wide it is.
11852 */
11853 rc = sqlite3_step(pStmt);
@@ -11611,10 +11892,13 @@
11892 rc = sqlite3_step(pStmt);
11893 }
11894 }
11895 } while( SQLITE_ROW == rc );
11896 sqlite3_free(pData);
11897 if( pArg->cMode==MODE_Json ){
11898 fputs("]\n", pArg->out);
11899 }
11900 }
11901 }
11902 }
11903
11904 #ifndef SQLITE_OMIT_VIRTUALTABLE
@@ -12291,28 +12575,32 @@
12575 ".load FILE ?ENTRY? Load an extension library",
12576 #endif
12577 ".log FILE|off Turn logging on or off. FILE can be stderr/stdout",
12578 ".mode MODE ?TABLE? Set output mode",
12579 " MODE is one of:",
12580 " ascii Columns/rows delimited by 0x1F and 0x1E",
12581 " box Tables using unicode box-drawing characters",
12582 " csv Comma-separated values",
12583 " column Output in columns. (See .width)",
12584 " html HTML <table> code",
12585 " insert SQL insert statements for TABLE",
12586 " json Results in a JSON array",
12587 " line One value per line",
12588 " list Values delimited by \"|\"",
12589 " markdown Markdown table format",
12590 " quote Escape answers as for SQL",
12591 " table ASCII-art table",
12592 " tabs Tab-separated values",
12593 " tcl TCL list elements",
12594 ".nullvalue STRING Use STRING in place of NULL values",
12595 ".once ?OPTIONS? ?FILE? Output for the next SQL command only to FILE",
12596 " If FILE begins with '|' then open as a pipe",
12597 " --bom Put a UTF8 byte-order mark at the beginning",
12598 " -e Send output to the system text editor",
12599 " -x Send output as CSV to a spreadsheet (same as \".excel\")",
12600 #ifdef SQLITE_DEBUG
12601 ".oom ?--repeat M? ?N? Simulate an OOM error on the N-th allocation",
12602 #endif
12603 ".open ?OPTIONS? ?FILE? Close existing database and reopen FILE",
12604 " Options:",
12605 " --append Use appendvfs to append database to the end of FILE",
12606 #ifdef SQLITE_ENABLE_DESERIALIZE
@@ -12425,11 +12713,11 @@
12713 " --allexcept Unregister everything except those named",
12714 #endif
12715 ".vfsinfo ?AUX? Information about the top-level VFS",
12716 ".vfslist List all available VFSes",
12717 ".vfsname ?AUX? Print the name of the VFS stack",
12718 ".width NUM1 NUM2 ... Set minimum column widths for columnar output",
12719 " Negative values right-justify",
12720 };
12721
12722 /*
12723 ** Output help text.
@@ -13262,10 +13550,11 @@
13550 */
13551 typedef struct ImportCtx ImportCtx;
13552 struct ImportCtx {
13553 const char *zFile; /* Name of the input file */
13554 FILE *in; /* Read the CSV text from this input stream */
13555 int (SQLITE_CDECL *xCloser)(FILE*); /* Func to close in */
13556 char *z; /* Accumulated text for a field */
13557 int n; /* Number of bytes in z */
13558 int nAlloc; /* Space allocated for z[] */
13559 int nLine; /* Current line number */
13560 int nRow; /* Number of rows imported */
@@ -13273,10 +13562,20 @@
13562 int bNotFirst; /* True if one or more bytes already read */
13563 int cTerm; /* Character that terminated the most recent field */
13564 int cColSep; /* The column separator character. (Usually ",") */
13565 int cRowSep; /* The row separator character. (Usually "\n") */
13566 };
13567
13568 /* Clean up resourced used by an ImportCtx */
13569 static void import_cleanup(ImportCtx *p){
13570 if( p->in!=0 && p->xCloser!=0 ){
13571 p->xCloser(p->in);
13572 p->in = 0;
13573 }
13574 sqlite3_free(p->z);
13575 p->z = 0;
13576 }
13577
13578 /* Append a single byte to z[] */
13579 static void import_append_char(ImportCtx *p, int c){
13580 if( p->n+1>=p->nAlloc ){
13581 p->nAlloc += p->nAlloc + 100;
@@ -15995,10 +16294,11 @@
16294 if( strcmp(z,"preserve-rowids")==0 ){
16295 #ifdef SQLITE_OMIT_VIRTUALTABLE
16296 raw_printf(stderr, "The --preserve-rowids option is not compatible"
16297 " with SQLITE_OMIT_VIRTUALTABLE\n");
16298 rc = 1;
16299 sqlite3_free(zLike);
16300 goto meta_command_exit;
16301 #else
16302 ShellSetFlag(p, SHFLG_PreserveRowid);
16303 #endif
16304 }else
@@ -16006,10 +16306,11 @@
16306 ShellSetFlag(p, SHFLG_Newlines);
16307 }else
16308 {
16309 raw_printf(stderr, "Unknown option \"%s\" on \".dump\"\n", azArg[i]);
16310 rc = 1;
16311 sqlite3_free(zLike);
16312 goto meta_command_exit;
16313 }
16314 }else if( zLike ){
16315 zLike = sqlite3_mprintf("%z OR name LIKE %Q ESCAPE '\\'",
16316 zLike, azArg[i]);
@@ -16334,10 +16635,11 @@
16635 }else
16636
16637 if( c=='h' && strncmp(azArg[0], "headers", n)==0 ){
16638 if( nArg==2 ){
16639 p->showHeader = booleanValue(azArg[1]);
16640 p->shellFlgs |= SHFLG_HeaderSet;
16641 }else{
16642 raw_printf(stderr, "Usage: .headers on|off\n");
16643 rc = 1;
16644 }
16645 }else
@@ -16363,11 +16665,10 @@
16665 int needCommit; /* True to COMMIT or ROLLBACK at end */
16666 int nSep; /* Number of bytes in p->colSeparator[] */
16667 char *zSql; /* An SQL statement */
16668 ImportCtx sCtx; /* Reader context */
16669 char *(SQLITE_CDECL *xRead)(ImportCtx*); /* Func to read one value */
 
16670 int eVerbose = 0; /* Larger for more console output */
16671 int nSkip = 0; /* Initial lines to skip */
16672 int useOutputMode = 1; /* Use output mode to determine separators */
16673
16674 memset(&sCtx, 0, sizeof(sCtx));
@@ -16469,15 +16770,15 @@
16770 rc = 1;
16771 goto meta_command_exit;
16772 #else
16773 sCtx.in = popen(sCtx.zFile+1, "r");
16774 sCtx.zFile = "<pipe>";
16775 sCtx.xCloser = pclose;
16776 #endif
16777 }else{
16778 sCtx.in = fopen(sCtx.zFile, "rb");
16779 sCtx.xCloser = fclose;
16780 }
16781 if( sCtx.in==0 ){
16782 utf8_printf(stderr, "Error: cannot open \"%s\"\n", zFile);
16783 rc = 1;
16784 goto meta_command_exit;
@@ -16497,11 +16798,11 @@
16798 while( xRead(&sCtx) && sCtx.cTerm==sCtx.cColSep ){}
16799 sCtx.nLine++;
16800 }
16801 zSql = sqlite3_mprintf("SELECT * FROM %s", zTable);
16802 if( zSql==0 ){
16803 import_cleanup(&sCtx);
16804 shell_out_of_memory();
16805 }
16806 nByte = strlen30(zSql);
16807 rc = sqlite3_prepare_v2(p->db, zSql, -1, &pStmt, 0);
16808 import_append_char(&sCtx, 0); /* To ensure sCtx.z is allocated */
@@ -16513,12 +16814,11 @@
16814 cSep = ',';
16815 if( sCtx.cTerm!=sCtx.cColSep ) break;
16816 }
16817 if( cSep=='(' ){
16818 sqlite3_free(zCreate);
16819 import_cleanup(&sCtx);
 
16820 utf8_printf(stderr,"%s: empty file\n", sCtx.zFile);
16821 rc = 1;
16822 goto meta_command_exit;
16823 }
16824 zCreate = sqlite3_mprintf("%z\n)", zCreate);
@@ -16528,32 +16828,31 @@
16828 rc = sqlite3_exec(p->db, zCreate, 0, 0, 0);
16829 sqlite3_free(zCreate);
16830 if( rc ){
16831 utf8_printf(stderr, "CREATE TABLE %s(...) failed: %s\n", zTable,
16832 sqlite3_errmsg(p->db));
16833 import_cleanup(&sCtx);
 
16834 rc = 1;
16835 goto meta_command_exit;
16836 }
16837 rc = sqlite3_prepare_v2(p->db, zSql, -1, &pStmt, 0);
16838 }
16839 sqlite3_free(zSql);
16840 if( rc ){
16841 if (pStmt) sqlite3_finalize(pStmt);
16842 utf8_printf(stderr,"Error: %s\n", sqlite3_errmsg(p->db));
16843 import_cleanup(&sCtx);
16844 rc = 1;
16845 goto meta_command_exit;
16846 }
16847 nCol = sqlite3_column_count(pStmt);
16848 sqlite3_finalize(pStmt);
16849 pStmt = 0;
16850 if( nCol==0 ) return 0; /* no columns, no error */
16851 zSql = sqlite3_malloc64( nByte*2 + 20 + nCol*2 );
16852 if( zSql==0 ){
16853 import_cleanup(&sCtx);
16854 shell_out_of_memory();
16855 }
16856 sqlite3_snprintf(nByte+20, zSql, "INSERT INTO \"%w\" VALUES(?", zTable);
16857 j = strlen30(zSql);
16858 for(i=1; i<nCol; i++){
@@ -16568,11 +16867,11 @@
16867 rc = sqlite3_prepare_v2(p->db, zSql, -1, &pStmt, 0);
16868 sqlite3_free(zSql);
16869 if( rc ){
16870 utf8_printf(stderr, "Error: %s\n", sqlite3_errmsg(p->db));
16871 if (pStmt) sqlite3_finalize(pStmt);
16872 import_cleanup(&sCtx);
16873 rc = 1;
16874 goto meta_command_exit;
16875 }
16876 needCommit = sqlite3_get_autocommit(p->db);
16877 if( needCommit ) sqlite3_exec(p->db, "BEGIN", 0, 0, 0);
@@ -16620,12 +16919,11 @@
16919 sCtx.nRow++;
16920 }
16921 }
16922 }while( sCtx.cTerm!=EOF );
16923
16924 import_cleanup(&sCtx);
 
16925 sqlite3_finalize(pStmt);
16926 if( needCommit ) sqlite3_exec(p->db, "COMMIT", 0, 0, 0);
16927 if( eVerbose>0 ){
16928 utf8_printf(p->out,
16929 "Added %d rows with %d errors using %d lines of input\n",
@@ -16860,10 +17158,13 @@
17158 if( c2=='l' && n2>2 && strncmp(azArg[1],"lines",n2)==0 ){
17159 p->mode = MODE_Line;
17160 sqlite3_snprintf(sizeof(p->rowSeparator), p->rowSeparator, SEP_Row);
17161 }else if( c2=='c' && strncmp(azArg[1],"columns",n2)==0 ){
17162 p->mode = MODE_Column;
17163 if( (p->shellFlgs & SHFLG_HeaderSet)==0 ){
17164 p->showHeader = 1;
17165 }
17166 sqlite3_snprintf(sizeof(p->rowSeparator), p->rowSeparator, SEP_Row);
17167 }else if( c2=='l' && n2>2 && strncmp(azArg[1],"list",n2)==0 ){
17168 p->mode = MODE_List;
17169 sqlite3_snprintf(sizeof(p->colSeparator), p->colSeparator, SEP_Column);
17170 sqlite3_snprintf(sizeof(p->rowSeparator), p->rowSeparator, SEP_Row);
@@ -16883,19 +17184,30 @@
17184 }else if( c2=='i' && strncmp(azArg[1],"insert",n2)==0 ){
17185 p->mode = MODE_Insert;
17186 set_table_name(p, nArg>=3 ? azArg[2] : "table");
17187 }else if( c2=='q' && strncmp(azArg[1],"quote",n2)==0 ){
17188 p->mode = MODE_Quote;
17189 sqlite3_snprintf(sizeof(p->colSeparator), p->colSeparator, SEP_Comma);
17190 sqlite3_snprintf(sizeof(p->rowSeparator), p->rowSeparator, SEP_Row);
17191 }else if( c2=='a' && strncmp(azArg[1],"ascii",n2)==0 ){
17192 p->mode = MODE_Ascii;
17193 sqlite3_snprintf(sizeof(p->colSeparator), p->colSeparator, SEP_Unit);
17194 sqlite3_snprintf(sizeof(p->rowSeparator), p->rowSeparator, SEP_Record);
17195 }else if( c2=='m' && strncmp(azArg[1],"markdown",n2)==0 ){
17196 p->mode = MODE_Markdown;
17197 }else if( c2=='t' && strncmp(azArg[1],"table",n2)==0 ){
17198 p->mode = MODE_Table;
17199 }else if( c2=='b' && strncmp(azArg[1],"box",n2)==0 ){
17200 p->mode = MODE_Box;
17201 }else if( c2=='j' && strncmp(azArg[1],"json",n2)==0 ){
17202 p->mode = MODE_Json;
17203 }else if( nArg==1 ){
17204 raw_printf(p->out, "current output mode: %s\n", modeDescr[p->mode]);
17205 }else{
17206 raw_printf(stderr, "Error: mode should be one of: "
17207 "ascii box column csv html insert json line list markdown "
17208 "quote table tabs tcl\n");
17209 rc = 1;
17210 }
17211 p->cMode = p->mode;
17212 }else
17213
@@ -17992,11 +18304,11 @@
18304 utf8_printf(p->out,"%12.12s: ", "rowseparator");
18305 output_c_string(p->out, p->rowSeparator);
18306 raw_printf(p->out, "\n");
18307 utf8_printf(p->out, "%12.12s: %s\n","stats", azBool[p->statsOn!=0]);
18308 utf8_printf(p->out, "%12.12s: ", "width");
18309 for (i=0;i<p->nWidth;i++) {
18310 raw_printf(p->out, "%d ", p->colWidth[i]);
18311 }
18312 raw_printf(p->out, "\n");
18313 utf8_printf(p->out, "%12.12s: %s\n", "filename",
18314 p->zDbFilename ? p->zDbFilename : "");
@@ -18541,11 +18853,15 @@
18853 #endif
18854
18855 if( c=='w' && strncmp(azArg[0], "width", n)==0 ){
18856 int j;
18857 assert( nArg<=ArraySize(azArg) );
18858 p->nWidth = nArg-1;
18859 p->colWidth = realloc(p->colWidth, p->nWidth*sizeof(int)*2);
18860 if( p->colWidth==0 && p->nWidth>0 ) shell_out_of_memory();
18861 if( p->nWidth ) p->actualWidth = &p->colWidth[p->nWidth];
18862 for(j=1; j<nArg; j++){
18863 p->colWidth[j-1] = (int)integerValue(azArg[j]);
18864 }
18865 }else
18866
18867 {
@@ -18886,10 +19202,11 @@
19202 #endif
19203 " -append append the database to the end of the file\n"
19204 " -ascii set output mode to 'ascii'\n"
19205 " -bail stop after hitting an error\n"
19206 " -batch force batch I/O\n"
19207 " -box set output mode to 'box'\n"
19208 " -column set output mode to 'column'\n"
19209 " -cmd COMMAND run \"COMMAND\" before reading stdin\n"
19210 " -csv set output mode to 'csv'\n"
19211 #if defined(SQLITE_ENABLE_DESERIALIZE)
19212 " -deserialize open the database using sqlite3_deserialize()\n"
@@ -18901,13 +19218,15 @@
19218 " -heap SIZE Size of heap for memsys3 or memsys5\n"
19219 #endif
19220 " -help show this message\n"
19221 " -html set output mode to HTML\n"
19222 " -interactive force interactive I/O\n"
19223 " -json set output mode to 'json'\n"
19224 " -line set output mode to 'line'\n"
19225 " -list set output mode to 'list'\n"
19226 " -lookaside SIZE N use N entries of SZ bytes for lookaside memory\n"
19227 " -markdown set output mode to 'markdown'\n"
19228 #if defined(SQLITE_ENABLE_DESERIALIZE)
19229 " -maxsize N maximum size for a --deserialize database\n"
19230 #endif
19231 " -memtrace trace all memory allocations and deallocations\n"
19232 " -mmap N default mmap size set to N\n"
@@ -18923,10 +19242,11 @@
19242 " -separator SEP set output column separator. Default: '|'\n"
19243 #ifdef SQLITE_ENABLE_SORTER_REFERENCES
19244 " -sorterref SIZE sorter references threshold size\n"
19245 #endif
19246 " -stats print memory stats before each finalize\n"
19247 " -table set output mode to 'table'\n"
19248 " -version show SQLite version\n"
19249 " -vfs NAME use NAME as the default VFS\n"
19250 #ifdef SQLITE_ENABLE_VFSTRACE
19251 " -vfstrace enable tracing of all VFS calls\n"
19252 #endif
@@ -19324,10 +19644,18 @@
19644 data.mode = MODE_Quote;
19645 }else if( strcmp(z,"-line")==0 ){
19646 data.mode = MODE_Line;
19647 }else if( strcmp(z,"-column")==0 ){
19648 data.mode = MODE_Column;
19649 }else if( strcmp(z,"-json")==0 ){
19650 data.mode = MODE_Json;
19651 }else if( strcmp(z,"-markdown")==0 ){
19652 data.mode = MODE_Markdown;
19653 }else if( strcmp(z,"-table")==0 ){
19654 data.mode = MODE_Table;
19655 }else if( strcmp(z,"-box")==0 ){
19656 data.mode = MODE_Box;
19657 }else if( strcmp(z,"-csv")==0 ){
19658 data.mode = MODE_Csv;
19659 memcpy(data.colSeparator,",",2);
19660 #ifdef SQLITE_HAVE_ZLIB
19661 }else if( strcmp(z,"-zip")==0 ){
@@ -19541,10 +19869,11 @@
19869 clearTempFile(&data);
19870 #if !SQLITE_SHELL_IS_UTF8
19871 for(i=0; i<argcToFree; i++) free(argvToFree[i]);
19872 free(argvToFree);
19873 #endif
19874 free(data.colWidth);
19875 /* Clear the global data structure so that valgrind will detect memory
19876 ** leaks */
19877 memset(&data, 0, sizeof(data));
19878 return rc;
19879 }
19880
+280 -103
--- src/sqlite3.c
+++ src/sqlite3.c
@@ -1,8 +1,8 @@
11
/******************************************************************************
22
** This file is an amalgamation of many separate C source files from SQLite
3
-** version 3.32.1. By combining all the individual C code files into this
3
+** version 3.33.0. By combining all the individual C code files into this
44
** single large file, the entire code can be compiled as a single translation
55
** unit. This allows many compilers to do optimizations that would not be
66
** possible if the files were compiled separately. Performance improvements
77
** of 5% or more are commonly seen when SQLite is compiled as a single
88
** translation unit.
@@ -1160,13 +1160,13 @@
11601160
**
11611161
** See also: [sqlite3_libversion()],
11621162
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
11631163
** [sqlite_version()] and [sqlite_source_id()].
11641164
*/
1165
-#define SQLITE_VERSION "3.32.1"
1166
-#define SQLITE_VERSION_NUMBER 3032001
1167
-#define SQLITE_SOURCE_ID "2020-05-25 16:19:56 0c1fcf4711a2e66c813aed38cf41cd3e2123ee8eb6db98118086764c4ba83350"
1165
+#define SQLITE_VERSION "3.33.0"
1166
+#define SQLITE_VERSION_NUMBER 3033000
1167
+#define SQLITE_SOURCE_ID "2020-06-08 11:34:40 6e6b3729e0549de028f6c5bf494b2d69d621c81b61a1dc0a329d3950039342fb"
11681168
11691169
/*
11701170
** CAPI3REF: Run-Time Library Version Numbers
11711171
** KEYWORDS: sqlite3_version sqlite3_sourceid
11721172
**
@@ -13449,14 +13449,14 @@
1344913449
1345013450
/*
1345113451
** WAL mode depends on atomic aligned 32-bit loads and stores in a few
1345213452
** places. The following macros try to make this explicit.
1345313453
*/
13454
-#ifndef __has_feature
13455
-# define __has_feature(x) 0 /* compatibility with non-clang compilers */
13454
+#ifndef __has_extension
13455
+# define __has_extension(x) 0 /* compatibility with non-clang compilers */
1345613456
#endif
13457
-#if GCC_VERSION>=4007000 || __has_feature(c_atomic)
13457
+#if GCC_VERSION>=4007000 || __has_extension(c_atomic)
1345813458
# define AtomicLoad(PTR) __atomic_load_n((PTR),__ATOMIC_RELAXED)
1345913459
# define AtomicStore(PTR,VAL) __atomic_store_n((PTR),(VAL),__ATOMIC_RELAXED)
1346013460
#else
1346113461
# define AtomicLoad(PTR) (*(PTR))
1346213462
# define AtomicStore(PTR,VAL) (*(PTR) = (VAL))
@@ -17861,15 +17861,15 @@
1786117861
int nSortingColumn; /* Number of columns in the sorting index */
1786217862
int mnReg, mxReg; /* Range of registers allocated for aCol and aFunc */
1786317863
ExprList *pGroupBy; /* The group by clause */
1786417864
struct AggInfo_col { /* For each column used in source tables */
1786517865
Table *pTab; /* Source table */
17866
+ Expr *pExpr; /* The original expression */
1786617867
int iTable; /* Cursor number of the source table */
17867
- int iColumn; /* Column number within the source table */
17868
- int iSorterColumn; /* Column number in the sorting index */
1786917868
int iMem; /* Memory location that acts as accumulator */
17870
- Expr *pExpr; /* The original expression */
17869
+ i16 iColumn; /* Column number within the source table */
17870
+ i16 iSorterColumn; /* Column number in the sorting index */
1787117871
} *aCol;
1787217872
int nColumn; /* Number of used entries in aCol[] */
1787317873
int nAccumulator; /* Number of columns that show through to the output.
1787417874
** Additional columns are used only as parameters to
1787517875
** aggregate functions */
@@ -17878,12 +17878,21 @@
1787817878
FuncDef *pFunc; /* The aggregate function implementation */
1787917879
int iMem; /* Memory location that acts as accumulator */
1788017880
int iDistinct; /* Ephemeral table used to enforce DISTINCT */
1788117881
} *aFunc;
1788217882
int nFunc; /* Number of entries in aFunc[] */
17883
+#ifdef SQLITE_DEBUG
17884
+ int iAggMagic; /* Magic number when valid */
17885
+#endif
17886
+ AggInfo *pNext; /* Next in list of them all */
1788317887
};
1788417888
17889
+/*
17890
+** Value for AggInfo.iAggMagic when the structure is valid
17891
+*/
17892
+#define AggInfoMagic 0x2059e99e
17893
+
1788517894
/*
1788617895
** The datatype ynVar is a signed integer, either 16-bit or 32-bit.
1788717896
** Usually it is 16-bits. But if SQLITE_MAX_VARIABLE_NUMBER is greater
1788817897
** than 32767 we have to make it 32-bit. 16-bit is preferred because
1788917898
** it uses less memory in the Expr object, which is a big memory user
@@ -18676,10 +18685,11 @@
1867618685
#endif
1867718686
AutoincInfo *pAinc; /* Information about AUTOINCREMENT counters */
1867818687
Parse *pToplevel; /* Parse structure for main program (or NULL) */
1867918688
Table *pTriggerTab; /* Table triggers are being coded for */
1868018689
Parse *pParentParse; /* Parent parser if this parser is nested */
18690
+ AggInfo *pAggList; /* List of all AggInfo objects */
1868118691
int addrCrTab; /* Address of OP_CreateBtree opcode on CREATE TABLE */
1868218692
u32 nQueryLoop; /* Est number of iterations of a query (10*log2(N)) */
1868318693
u32 oldmask; /* Mask of old.* columns referenced */
1868418694
u32 newmask; /* Mask of new.* columns referenced */
1868518695
u8 eTriggerOp; /* TK_UPDATE, TK_INSERT or TK_DELETE */
@@ -19642,10 +19652,11 @@
1964219652
SQLITE_PRIVATE int sqlite3ExprCompare(Parse*,Expr*, Expr*, int);
1964319653
SQLITE_PRIVATE int sqlite3ExprCompareSkip(Expr*, Expr*, int);
1964419654
SQLITE_PRIVATE int sqlite3ExprListCompare(ExprList*, ExprList*, int);
1964519655
SQLITE_PRIVATE int sqlite3ExprImpliesExpr(Parse*,Expr*, Expr*, int);
1964619656
SQLITE_PRIVATE int sqlite3ExprImpliesNonNullRow(Expr*,int);
19657
+SQLITE_PRIVATE void sqlite3AggInfoPersistWalkerInit(Walker*,Parse*);
1964719658
SQLITE_PRIVATE void sqlite3ExprAnalyzeAggregates(NameContext*, Expr*);
1964819659
SQLITE_PRIVATE void sqlite3ExprAnalyzeAggList(NameContext*,ExprList*);
1964919660
SQLITE_PRIVATE int sqlite3ExprCoveredByIndex(Expr*, int iCur, Index *pIdx);
1965019661
SQLITE_PRIVATE int sqlite3FunctionUsesThisSrc(Expr*, SrcList*);
1965119662
SQLITE_PRIVATE Vdbe *sqlite3GetVdbe(Parse*);
@@ -30013,11 +30024,11 @@
3001330024
sqlite3TreeViewLine(pView, "EXISTS-expr flags=0x%x", pExpr->flags);
3001430025
sqlite3TreeViewSelect(pView, pExpr->x.pSelect, 0);
3001530026
break;
3001630027
}
3001730028
case TK_SELECT: {
30018
- sqlite3TreeViewLine(pView, "SELECT-expr flags=0x%x", pExpr->flags);
30029
+ sqlite3TreeViewLine(pView, "subquery-expr flags=0x%x", pExpr->flags);
3001930030
sqlite3TreeViewSelect(pView, pExpr->x.pSelect, 0);
3002030031
break;
3002130032
}
3002230033
case TK_IN: {
3002330034
sqlite3TreeViewLine(pView, "IN flags=0x%x", pExpr->flags);
@@ -30932,13 +30943,13 @@
3093230943
pMem->n = (int)(z - zOut);
3093330944
}
3093430945
*z = 0;
3093530946
assert( (pMem->n+(desiredEnc==SQLITE_UTF8?1:2))<=len );
3093630947
30937
- c = pMem->flags;
30948
+ c = MEM_Str|MEM_Term|(pMem->flags&(MEM_AffMask|MEM_Subtype));
3093830949
sqlite3VdbeMemRelease(pMem);
30939
- pMem->flags = MEM_Str|MEM_Term|(c&(MEM_AffMask|MEM_Subtype));
30950
+ pMem->flags = c;
3094030951
pMem->enc = desiredEnc;
3094130952
pMem->z = (char*)zOut;
3094230953
pMem->zMalloc = pMem->z;
3094330954
pMem->szMalloc = sqlite3DbMallocSize(pMem->db, pMem->z);
3094430955
@@ -38285,11 +38296,14 @@
3828538296
** 2. Write lock (ofst==0).
3828638297
** 3. Read locks (ofst>=3 && ofst<SQLITE_SHM_NLOCK).
3828738298
**
3828838299
** In other words, if this is a blocking lock, none of the locks that
3828938300
** occur later in the above list than the lock being obtained may be
38290
- ** held. */
38301
+ ** held.
38302
+ **
38303
+ ** It is not permitted to block on the RECOVER lock.
38304
+ */
3829138305
#ifdef SQLITE_ENABLE_SETLK_TIMEOUT
3829238306
assert( (flags & SQLITE_SHM_UNLOCK) || pDbFd->iBusyTimeout==0 || (
3829338307
(ofst!=2) /* not RECOVER */
3829438308
&& (ofst!=1 || (p->exclMask|p->sharedMask)==0)
3829538309
&& (ofst!=0 || (p->exclMask|p->sharedMask)<3)
@@ -60401,11 +60415,11 @@
6040160415
nCollide = idx;
6040260416
for(iKey=walHash(iPage); sLoc.aHash[iKey]; iKey=walNextHash(iKey)){
6040360417
if( (nCollide--)==0 ) return SQLITE_CORRUPT_BKPT;
6040460418
}
6040560419
sLoc.aPgno[idx] = iPage;
60406
- sLoc.aHash[iKey] = (ht_slot)idx;
60420
+ AtomicStore(&sLoc.aHash[iKey], (ht_slot)idx);
6040760421
6040860422
#ifdef SQLITE_ENABLE_EXPENSIVE_ASSERT
6040960423
/* Verify that the number of entries in the hash table exactly equals
6041060424
** the number of entries in the mapping region.
6041160425
*/
@@ -80835,11 +80849,15 @@
8083580849
** if the VDBE has just been set to run but has not actually executed any
8083680850
** instructions yet, leave the main database error information unchanged.
8083780851
*/
8083880852
if( p->pc>=0 ){
8083980853
vdbeInvokeSqllog(p);
80840
- sqlite3VdbeTransferError(p);
80854
+ if( db->pErr || p->zErrMsg ){
80855
+ sqlite3VdbeTransferError(p);
80856
+ }else{
80857
+ db->errCode = p->rc;
80858
+ }
8084180859
if( p->runOnlyOnce ) p->expired = 1;
8084280860
}else if( p->rc && p->expired ){
8084380861
/* The expired flag was set on the VDBE before the first call
8084480862
** to sqlite3_step(). For consistency (since sqlite3_step() was
8084580863
** called), set the database error in this case as well.
@@ -80855,12 +80873,14 @@
8085580873
if( p->apCsr ) for(i=0; i<p->nCursor; i++) assert( p->apCsr[i]==0 );
8085680874
if( p->aMem ){
8085780875
for(i=0; i<p->nMem; i++) assert( p->aMem[i].flags==MEM_Undefined );
8085880876
}
8085980877
#endif
80860
- sqlite3DbFree(db, p->zErrMsg);
80861
- p->zErrMsg = 0;
80878
+ if( p->zErrMsg ){
80879
+ sqlite3DbFree(db, p->zErrMsg);
80880
+ p->zErrMsg = 0;
80881
+ }
8086280882
p->pResultSet = 0;
8086380883
#ifdef SQLITE_DEBUG
8086480884
p->nWrite = 0;
8086580885
#endif
8086680886
@@ -85818,10 +85838,12 @@
8581885838
/* This happens if a malloc() inside a call to sqlite3_column_text() or
8581985839
** sqlite3_column_text16() failed. */
8582085840
goto no_mem;
8582185841
}
8582285842
assert( p->rc==SQLITE_OK || (p->rc&0xff)==SQLITE_BUSY );
85843
+ testcase( p->rc!=SQLITE_OK );
85844
+ p->rc = SQLITE_OK;
8582385845
assert( p->bIsReader || p->readOnly!=0 );
8582485846
p->iCurrentTime = 0;
8582585847
assert( p->explain==0 );
8582685848
p->pResultSet = 0;
8582785849
db->busyHandler.nBusy = 0;
@@ -93131,13 +93153,11 @@
9313193153
/* Jump to here if the sqlite3_interrupt() API sets the interrupt
9313293154
** flag.
9313393155
*/
9313493156
abort_due_to_interrupt:
9313593157
assert( AtomicLoad(&db->u1.isInterrupted) );
93136
- rc = db->mallocFailed ? SQLITE_NOMEM_BKPT : SQLITE_INTERRUPT;
93137
- p->rc = rc;
93138
- sqlite3VdbeError(p, "%s", sqlite3ErrStr(rc));
93158
+ rc = SQLITE_INTERRUPT;
9313993159
goto abort_due_to_error;
9314093160
}
9314193161
9314293162
9314393163
/************** End of vdbe.c ************************************************/
@@ -99532,11 +99552,16 @@
9953299552
assert( pExpr!=0 );
9953399553
}
9953499554
op = pExpr->op;
9953599555
if( op==TK_SELECT ){
9953699556
assert( pExpr->flags&EP_xIsSelect );
99537
- return sqlite3ExprAffinity(pExpr->x.pSelect->pEList->a[0].pExpr);
99557
+ if( ALWAYS(pExpr->x.pSelect)
99558
+ && pExpr->x.pSelect->pEList
99559
+ && ALWAYS(pExpr->x.pSelect->pEList->a[0].pExpr)
99560
+ ){
99561
+ return sqlite3ExprAffinity(pExpr->x.pSelect->pEList->a[0].pExpr);
99562
+ }
9953899563
}
9953999564
if( op==TK_REGISTER ) op = pExpr->op2;
9954099565
#ifndef SQLITE_OMIT_CAST
9954199566
if( op==TK_CAST ){
9954299567
assert( !ExprHasProperty(pExpr, EP_IntValue) );
@@ -102032,11 +102057,11 @@
102032102057
** satisfy the query. This is preferable to generating a new
102033102058
** ephemeral table. */
102034102059
if( pParse->nErr==0 && (p = isCandidateForInOpt(pX))!=0 ){
102035102060
sqlite3 *db = pParse->db; /* Database connection */
102036102061
Table *pTab; /* Table <table>. */
102037
- i16 iDb; /* Database idx for pTab */
102062
+ int iDb; /* Database idx for pTab */
102038102063
ExprList *pEList = p->pEList;
102039102064
int nExpr = pEList->nExpr;
102040102065
102041102066
assert( p->pEList!=0 ); /* Because of isCandidateForInOpt(p) */
102042102067
assert( p->pEList->a[0].pExpr!=0 ); /* Because of isCandidateForInOpt(p) */
@@ -102043,10 +102068,11 @@
102043102068
assert( p->pSrc!=0 ); /* Because of isCandidateForInOpt(p) */
102044102069
pTab = p->pSrc->a[0].pTab;
102045102070
102046102071
/* Code an OP_Transaction and OP_TableLock for <table>. */
102047102072
iDb = sqlite3SchemaToIndex(db, pTab->pSchema);
102073
+ assert( iDb>=0 && iDb<SQLITE_MAX_ATTACHED );
102048102074
sqlite3CodeVerifySchema(pParse, iDb);
102049102075
sqlite3TableLock(pParse, iDb, pTab->tnum, 0, pTab->zName);
102050102076
102051102077
assert(v); /* sqlite3GetVdbe() has always been previously called */
102052102078
if( nExpr==1 && pEList->a[0].pExpr->iColumn<0 ){
@@ -103276,14 +103302,11 @@
103276103302
int r1, r2; /* Various register numbers */
103277103303
Expr tempX; /* Temporary expression node */
103278103304
int p5 = 0;
103279103305
103280103306
assert( target>0 && target<=pParse->nMem );
103281
- if( v==0 ){
103282
- assert( pParse->db->mallocFailed );
103283
- return 0;
103284
- }
103307
+ assert( v!=0 );
103285103308
103286103309
expr_code_doover:
103287103310
if( pExpr==0 ){
103288103311
op = TK_NULL;
103289103312
}else{
@@ -104109,13 +104132,14 @@
104109104132
SQLITE_PRIVATE void sqlite3ExprCode(Parse *pParse, Expr *pExpr, int target){
104110104133
int inReg;
104111104134
104112104135
assert( pExpr==0 || !ExprHasVVAProperty(pExpr,EP_Immutable) );
104113104136
assert( target>0 && target<=pParse->nMem );
104114
- inReg = sqlite3ExprCodeTarget(pParse, pExpr, target);
104115104137
assert( pParse->pVdbe!=0 || pParse->db->mallocFailed );
104116
- if( inReg!=target && pParse->pVdbe ){
104138
+ if( pParse->pVdbe==0 ) return;
104139
+ inReg = sqlite3ExprCodeTarget(pParse, pExpr, target);
104140
+ if( inReg!=target ){
104117104141
u8 op;
104118104142
if( ExprHasProperty(pExpr,EP_Subquery) ){
104119104143
op = OP_Copy;
104120104144
}else{
104121104145
op = OP_SCopy;
@@ -105189,10 +105213,68 @@
105189105213
sqlite3WalkExpr(&w, pExpr->y.pWin->pFilter);
105190105214
}
105191105215
#endif
105192105216
return cnt.nThis>0 || cnt.nOther==0;
105193105217
}
105218
+
105219
+/*
105220
+** This is a Walker expression node callback.
105221
+**
105222
+** For Expr nodes that contain pAggInfo pointers, make sure the AggInfo
105223
+** object that is referenced does not refer directly to the Expr. If
105224
+** it does, make a copy. This is done because the pExpr argument is
105225
+** subject to change.
105226
+**
105227
+** The copy is stored on pParse->pConstExpr with a register number of 0.
105228
+** This will cause the expression to be deleted automatically when the
105229
+** Parse object is destroyed, but the zero register number means that it
105230
+** will not generate any code in the preamble.
105231
+*/
105232
+static int agginfoPersistExprCb(Walker *pWalker, Expr *pExpr){
105233
+ if( ALWAYS(!ExprHasProperty(pExpr, EP_TokenOnly|EP_Reduced))
105234
+ && pExpr->pAggInfo!=0
105235
+ ){
105236
+ AggInfo *pAggInfo = pExpr->pAggInfo;
105237
+ int iAgg = pExpr->iAgg;
105238
+ Parse *pParse = pWalker->pParse;
105239
+ sqlite3 *db = pParse->db;
105240
+ assert( pExpr->op==TK_AGG_COLUMN || pExpr->op==TK_AGG_FUNCTION );
105241
+ if( pExpr->op==TK_AGG_COLUMN ){
105242
+ assert( iAgg>=0 && iAgg<pAggInfo->nColumn );
105243
+ if( pAggInfo->aCol[iAgg].pExpr==pExpr ){
105244
+ pExpr = sqlite3ExprDup(db, pExpr, 0);
105245
+ if( pExpr ){
105246
+ pAggInfo->aCol[iAgg].pExpr = pExpr;
105247
+ pParse->pConstExpr =
105248
+ sqlite3ExprListAppend(pParse, pParse->pConstExpr, pExpr);
105249
+ }
105250
+ }
105251
+ }else{
105252
+ assert( iAgg>=0 && iAgg<pAggInfo->nFunc );
105253
+ if( pAggInfo->aFunc[iAgg].pExpr==pExpr ){
105254
+ pExpr = sqlite3ExprDup(db, pExpr, 0);
105255
+ if( pExpr ){
105256
+ pAggInfo->aFunc[iAgg].pExpr = pExpr;
105257
+ pParse->pConstExpr =
105258
+ sqlite3ExprListAppend(pParse, pParse->pConstExpr, pExpr);
105259
+ }
105260
+ }
105261
+ }
105262
+ }
105263
+ return WRC_Continue;
105264
+}
105265
+
105266
+/*
105267
+** Initialize a Walker object so that will persist AggInfo entries referenced
105268
+** by the tree that is walked.
105269
+*/
105270
+SQLITE_PRIVATE void sqlite3AggInfoPersistWalkerInit(Walker *pWalker, Parse *pParse){
105271
+ memset(pWalker, 0, sizeof(*pWalker));
105272
+ pWalker->pParse = pParse;
105273
+ pWalker->xExprCallback = agginfoPersistExprCb;
105274
+ pWalker->xSelectCallback = sqlite3SelectWalkNoop;
105275
+}
105194105276
105195105277
/*
105196105278
** Add a new element to the pAggInfo->aCol[] array. Return the index of
105197105279
** the new element. Return a negative number if malloc fails.
105198105280
*/
@@ -105220,11 +105302,11 @@
105220105302
sizeof(pInfo->aFunc[0]),
105221105303
&pInfo->nFunc,
105222105304
&i
105223105305
);
105224105306
return i;
105225
-}
105307
+}
105226105308
105227105309
/*
105228105310
** This is the xExprCallback for a tree walker. It is used to
105229105311
** implement sqlite3ExprAnalyzeAggregates(). See sqlite3ExprAnalyzeAggregates
105230105312
** for additional information.
@@ -108177,10 +108259,34 @@
108177108259
assert( regOut!=regStat && regOut!=regStat+1 );
108178108260
sqlite3VdbeAddFunctionCall(pParse, 0, regStat, regOut, 1+IsStat4,
108179108261
&statGetFuncdef, 0);
108180108262
}
108181108263
108264
+#ifdef SQLITE_ENABLE_EXPLAIN_COMMENTS
108265
+/* Add a comment to the most recent VDBE opcode that is the name
108266
+** of the k-th column of the pIdx index.
108267
+*/
108268
+static void analyzeVdbeCommentIndexWithColumnName(
108269
+ Vdbe *v, /* Prepared statement under construction */
108270
+ Index *pIdx, /* Index whose column is being loaded */
108271
+ int k /* Which column index */
108272
+){
108273
+ int i; /* Index of column in the table */
108274
+ assert( k>=0 && k<pIdx->nColumn );
108275
+ i = pIdx->aiColumn[k];
108276
+ if( NEVER(i==XN_ROWID) ){
108277
+ VdbeComment((v,"%s.rowid",pIdx->zName));
108278
+ }else if( i==XN_EXPR ){
108279
+ VdbeComment((v,"%s.expr(%d)",pIdx->zName, k));
108280
+ }else{
108281
+ VdbeComment((v,"%s.%s", pIdx->zName, pIdx->pTable->aCol[i].zName));
108282
+ }
108283
+}
108284
+#else
108285
+# define analyzeVdbeCommentIndexWithColumnName(a,b,c)
108286
+#endif /* SQLITE_DEBUG */
108287
+
108182108288
/*
108183108289
** Generate code to do an analysis of all indices associated with
108184108290
** a single table.
108185108291
*/
108186108292
static void analyzeOneTable(
@@ -108393,11 +108499,11 @@
108393108499
}
108394108500
for(i=0; i<nColTest; i++){
108395108501
char *pColl = (char*)sqlite3LocateCollSeq(pParse, pIdx->azColl[i]);
108396108502
sqlite3VdbeAddOp2(v, OP_Integer, i, regChng);
108397108503
sqlite3VdbeAddOp3(v, OP_Column, iIdxCur, i, regTemp);
108398
- VdbeComment((v, "%s.column(%d)", pIdx->zName, i));
108504
+ analyzeVdbeCommentIndexWithColumnName(v,pIdx,i);
108399108505
aGotoChng[i] =
108400108506
sqlite3VdbeAddOp4(v, OP_Ne, regTemp, 0, regPrev+i, pColl, P4_COLLSEQ);
108401108507
sqlite3VdbeChangeP5(v, SQLITE_NULLEQ);
108402108508
VdbeCoverage(v);
108403108509
}
@@ -108414,11 +108520,11 @@
108414108520
*/
108415108521
sqlite3VdbeJumpHere(v, addrNextRow-1);
108416108522
for(i=0; i<nColTest; i++){
108417108523
sqlite3VdbeJumpHere(v, aGotoChng[i]);
108418108524
sqlite3VdbeAddOp3(v, OP_Column, iIdxCur, i, regPrev+i);
108419
- VdbeComment((v, "%s.column(%d)", pIdx->zName, i));
108525
+ analyzeVdbeCommentIndexWithColumnName(v,pIdx,i);
108420108526
}
108421108527
sqlite3VdbeResolveLabel(v, endDistinctTest);
108422108528
sqlite3DbFree(db, aGotoChng);
108423108529
}
108424108530
@@ -108440,11 +108546,11 @@
108440108546
regKey = sqlite3GetTempRange(pParse, pPk->nKeyCol);
108441108547
for(j=0; j<pPk->nKeyCol; j++){
108442108548
k = sqlite3TableColumnToIndex(pIdx, pPk->aiColumn[j]);
108443108549
assert( k>=0 && k<pIdx->nColumn );
108444108550
sqlite3VdbeAddOp3(v, OP_Column, iIdxCur, k, regKey+j);
108445
- VdbeComment((v, "%s.column(%d)", pIdx->zName, i));
108551
+ analyzeVdbeCommentIndexWithColumnName(v,pIdx,k);
108446108552
}
108447108553
sqlite3VdbeAddOp3(v, OP_MakeRecord, regKey, pPk->nKeyCol, regRowid);
108448108554
sqlite3ReleaseTempRange(pParse, regKey, pPk->nKeyCol);
108449108555
}
108450108556
}
@@ -110251,16 +110357,25 @@
110251110357
110252110358
/* Initialize any AUTOINCREMENT data structures required.
110253110359
*/
110254110360
sqlite3AutoincrementBegin(pParse);
110255110361
110256
- /* Code constant expressions that where factored out of inner loops */
110362
+ /* Code constant expressions that where factored out of inner loops.
110363
+ **
110364
+ ** The pConstExpr list might also contain expressions that we simply
110365
+ ** want to keep around until the Parse object is deleted. Such
110366
+ ** expressions have iConstExprReg==0. Do not generate code for
110367
+ ** those expressions, of course.
110368
+ */
110257110369
if( pParse->pConstExpr ){
110258110370
ExprList *pEL = pParse->pConstExpr;
110259110371
pParse->okConstFactor = 0;
110260110372
for(i=0; i<pEL->nExpr; i++){
110261
- sqlite3ExprCode(pParse, pEL->a[i].pExpr, pEL->a[i].u.iConstExprReg);
110373
+ int iReg = pEL->a[i].u.iConstExprReg;
110374
+ if( iReg>0 ){
110375
+ sqlite3ExprCode(pParse, pEL->a[i].pExpr, iReg);
110376
+ }
110262110377
}
110263110378
}
110264110379
110265110380
/* Finally, jump back to the beginning of the executable code. */
110266110381
sqlite3VdbeGoto(v, 1);
@@ -114091,25 +114206,37 @@
114091114206
** Apart from that, we have little to go on besides intuition as to
114092114207
** how aiRowEst[] should be initialized. The numbers generated here
114093114208
** are based on typical values found in actual indices.
114094114209
*/
114095114210
SQLITE_PRIVATE void sqlite3DefaultRowEst(Index *pIdx){
114096
- /* 10, 9, 8, 7, 6 */
114097
- LogEst aVal[] = { 33, 32, 30, 28, 26 };
114211
+ /* 10, 9, 8, 7, 6 */
114212
+ static const LogEst aVal[] = { 33, 32, 30, 28, 26 };
114098114213
LogEst *a = pIdx->aiRowLogEst;
114214
+ LogEst x;
114099114215
int nCopy = MIN(ArraySize(aVal), pIdx->nKeyCol);
114100114216
int i;
114101114217
114102114218
/* Indexes with default row estimates should not have stat1 data */
114103114219
assert( !pIdx->hasStat1 );
114104114220
114105114221
/* Set the first entry (number of rows in the index) to the estimated
114106114222
** number of rows in the table, or half the number of rows in the table
114107
- ** for a partial index. But do not let the estimate drop below 10. */
114108
- a[0] = pIdx->pTable->nRowLogEst;
114109
- if( pIdx->pPartIdxWhere!=0 ) a[0] -= 10; assert( 10==sqlite3LogEst(2) );
114110
- if( a[0]<33 ) a[0] = 33; assert( 33==sqlite3LogEst(10) );
114223
+ ** for a partial index.
114224
+ **
114225
+ ** 2020-05-27: If some of the stat data is coming from the sqlite_stat1
114226
+ ** table but other parts we are having to guess at, then do not let the
114227
+ ** estimated number of rows in the table be less than 1000 (LogEst 99).
114228
+ ** Failure to do this can cause the indexes for which we do not have
114229
+ ** stat1 data to be ignored by the query planner. tag-20200527-1
114230
+ */
114231
+ x = pIdx->pTable->nRowLogEst;
114232
+ assert( 99==sqlite3LogEst(1000) );
114233
+ if( x<99 ){
114234
+ pIdx->pTable->nRowLogEst = x = 99;
114235
+ }
114236
+ if( pIdx->pPartIdxWhere!=0 ) x -= 10; assert( 10==sqlite3LogEst(2) );
114237
+ a[0] = x;
114111114238
114112114239
/* Estimate that a[1] is 10, a[2] is 9, a[3] is 8, a[4] is 7, a[5] is
114113114240
** 6 and each subsequent value (if any) is 5. */
114114114241
memcpy(&a[1], aVal, nCopy*sizeof(LogEst));
114115114242
for(i=nCopy+1; i<=pIdx->nKeyCol; i++){
@@ -128405,21 +128532,22 @@
128405128532
**
128406128533
** If the same database is attached more than once, the first
128407128534
** attached database is returned.
128408128535
*/
128409128536
SQLITE_PRIVATE int sqlite3SchemaToIndex(sqlite3 *db, Schema *pSchema){
128410
- int i = -1000000;
128537
+ int i = -32768;
128411128538
128412
- /* If pSchema is NULL, then return -1000000. This happens when code in
128539
+ /* If pSchema is NULL, then return -32768. This happens when code in
128413128540
** expr.c is trying to resolve a reference to a transient table (i.e. one
128414128541
** created by a sub-select). In this case the return value of this
128415128542
** function should never be used.
128416128543
**
128417
- ** We return -1000000 instead of the more usual -1 simply because using
128418
- ** -1000000 as the incorrect index into db->aDb[] is much
128544
+ ** We return -32768 instead of the more usual -1 simply because using
128545
+ ** -32768 as the incorrect index into db->aDb[] is much
128419128546
** more likely to cause a segfault than -1 (of course there are assert()
128420
- ** statements too, but it never hurts to play the odds).
128547
+ ** statements too, but it never hurts to play the odds) and
128548
+ ** -32768 will still fit into a 16-bit signed integer.
128421128549
*/
128422128550
assert( sqlite3_mutex_held(db->mutex) );
128423128551
if( pSchema ){
128424128552
for(i=0; 1; i++){
128425128553
assert( i<db->nDb );
@@ -128429,16 +128557,31 @@
128429128557
}
128430128558
assert( i>=0 && i<db->nDb );
128431128559
}
128432128560
return i;
128433128561
}
128562
+
128563
+/*
128564
+** Deallocate a single AggInfo object
128565
+*/
128566
+static void agginfoFree(sqlite3 *db, AggInfo *p){
128567
+ sqlite3DbFree(db, p->aCol);
128568
+ sqlite3DbFree(db, p->aFunc);
128569
+ sqlite3DbFree(db, p);
128570
+}
128434128571
128435128572
/*
128436128573
** Free all memory allocations in the pParse object
128437128574
*/
128438128575
SQLITE_PRIVATE void sqlite3ParserReset(Parse *pParse){
128439128576
sqlite3 *db = pParse->db;
128577
+ AggInfo *pThis = pParse->pAggList;
128578
+ while( pThis ){
128579
+ AggInfo *pNext = pThis->pNext;
128580
+ agginfoFree(db, pThis);
128581
+ pThis = pNext;
128582
+ }
128440128583
sqlite3DbFree(db, pParse->aLabel);
128441128584
sqlite3ExprListDelete(db, pParse->pConstExpr);
128442128585
if( db ){
128443128586
assert( db->lookaside.bDisable >= pParse->disableLookaside );
128444128587
db->lookaside.bDisable -= pParse->disableLookaside;
@@ -128970,13 +129113,13 @@
128970129113
Expr *pHaving, /* the HAVING clause */
128971129114
ExprList *pOrderBy, /* the ORDER BY clause */
128972129115
u32 selFlags, /* Flag parameters, such as SF_Distinct */
128973129116
Expr *pLimit /* LIMIT value. NULL means not used */
128974129117
){
128975
- Select *pNew;
129118
+ Select *pNew, *pAllocated;
128976129119
Select standin;
128977
- pNew = sqlite3DbMallocRawNN(pParse->db, sizeof(*pNew) );
129120
+ pAllocated = pNew = sqlite3DbMallocRawNN(pParse->db, sizeof(*pNew) );
128978129121
if( pNew==0 ){
128979129122
assert( pParse->db->mallocFailed );
128980129123
pNew = &standin;
128981129124
}
128982129125
if( pEList==0 ){
@@ -129006,16 +129149,15 @@
129006129149
pNew->pWin = 0;
129007129150
pNew->pWinDefn = 0;
129008129151
#endif
129009129152
if( pParse->db->mallocFailed ) {
129010129153
clearSelect(pParse->db, pNew, pNew!=&standin);
129011
- pNew = 0;
129154
+ pAllocated = 0;
129012129155
}else{
129013129156
assert( pNew->pSrc!=0 || pParse->nErr>0 );
129014129157
}
129015
- assert( pNew!=&standin );
129016
- return pNew;
129158
+ return pAllocated;
129017129159
}
129018129160
129019129161
129020129162
/*
129021129163
** Delete the given Select structure and all of its substructures.
@@ -132624,10 +132766,11 @@
132624132766
int isLeftJoin = 0; /* True if pSub is the right side of a LEFT JOIN */
132625132767
int i; /* Loop counter */
132626132768
Expr *pWhere; /* The WHERE clause */
132627132769
struct SrcList_item *pSubitem; /* The subquery */
132628132770
sqlite3 *db = pParse->db;
132771
+ Walker w; /* Walker to persist agginfo data */
132629132772
132630132773
/* Check to see if flattening is permitted. Return 0 if not.
132631132774
*/
132632132775
assert( p!=0 );
132633132776
assert( p->pPrior==0 );
@@ -132998,10 +133141,12 @@
132998133141
}
132999133142
133000133143
/* Finially, delete what is left of the subquery and return
133001133144
** success.
133002133145
*/
133146
+ sqlite3AggInfoPersistWalkerInit(&w, pParse);
133147
+ sqlite3WalkSelect(&w,pSub1);
133003133148
sqlite3SelectDelete(db, pSub1);
133004133149
133005133150
#if SELECTTRACE_ENABLED
133006133151
if( sqlite3SelectTrace & 0x100 ){
133007133152
SELECTTRACE(0x100,pParse,p,("After flattening:\n"));
@@ -134582,14 +134727,14 @@
134582134727
ExprList *pEList = 0; /* List of columns to extract. */
134583134728
SrcList *pTabList; /* List of tables to select from */
134584134729
Expr *pWhere; /* The WHERE clause. May be NULL */
134585134730
ExprList *pGroupBy; /* The GROUP BY clause. May be NULL */
134586134731
Expr *pHaving; /* The HAVING clause. May be NULL */
134732
+ AggInfo *pAggInfo = 0; /* Aggregate information */
134587134733
int rc = 1; /* Value to return from this function */
134588134734
DistinctCtx sDistinct; /* Info on how to code the DISTINCT keyword */
134589134735
SortCtx sSort; /* Info on how to code the ORDER BY clause */
134590
- AggInfo sAggInfo; /* Information used by aggregate queries */
134591134736
int iEnd; /* Address of the end of the query */
134592134737
sqlite3 *db; /* The database connection */
134593134738
ExprList *pMinMaxOrderBy = 0; /* Added ORDER BY for min/max queries */
134594134739
u8 minMaxFlag; /* Flag for min/max queries */
134595134740
@@ -134597,11 +134742,10 @@
134597134742
v = sqlite3GetVdbe(pParse);
134598134743
if( p==0 || db->mallocFailed || pParse->nErr ){
134599134744
return 1;
134600134745
}
134601134746
if( sqlite3AuthCheck(pParse, SQLITE_SELECT, 0, 0, 0) ) return 1;
134602
- memset(&sAggInfo, 0, sizeof(sAggInfo));
134603134747
#if SELECTTRACE_ENABLED
134604134748
SELECTTRACE(1,pParse,p, ("begin processing:\n", pParse->addrExplain));
134605134749
if( sqlite3SelectTrace & 0x100 ){
134606134750
sqlite3TreeViewSelect(0, p, 0);
134607134751
}
@@ -135187,18 +135331,24 @@
135187135331
135188135332
/* Convert TK_COLUMN nodes into TK_AGG_COLUMN and make entries in
135189135333
** sAggInfo for all TK_AGG_FUNCTION nodes in expressions of the
135190135334
** SELECT statement.
135191135335
*/
135336
+ pAggInfo = sqlite3DbMallocZero(db, sizeof(*pAggInfo) );
135337
+ if( pAggInfo==0 ){
135338
+ goto select_end;
135339
+ }
135340
+ pAggInfo->pNext = pParse->pAggList;
135341
+ pParse->pAggList = pAggInfo;
135192135342
memset(&sNC, 0, sizeof(sNC));
135193135343
sNC.pParse = pParse;
135194135344
sNC.pSrcList = pTabList;
135195
- sNC.uNC.pAggInfo = &sAggInfo;
135345
+ sNC.uNC.pAggInfo = pAggInfo;
135196135346
VVA_ONLY( sNC.ncFlags = NC_UAggInfo; )
135197
- sAggInfo.mnReg = pParse->nMem+1;
135198
- sAggInfo.nSortingColumn = pGroupBy ? pGroupBy->nExpr : 0;
135199
- sAggInfo.pGroupBy = pGroupBy;
135347
+ pAggInfo->mnReg = pParse->nMem+1;
135348
+ pAggInfo->nSortingColumn = pGroupBy ? pGroupBy->nExpr : 0;
135349
+ pAggInfo->pGroupBy = pGroupBy;
135200135350
sqlite3ExprAnalyzeAggList(&sNC, pEList);
135201135351
sqlite3ExprAnalyzeAggList(&sNC, sSort.pOrderBy);
135202135352
if( pHaving ){
135203135353
if( pGroupBy ){
135204135354
assert( pWhere==p->pWhere );
@@ -135207,18 +135357,18 @@
135207135357
havingToWhere(pParse, p);
135208135358
pWhere = p->pWhere;
135209135359
}
135210135360
sqlite3ExprAnalyzeAggregates(&sNC, pHaving);
135211135361
}
135212
- sAggInfo.nAccumulator = sAggInfo.nColumn;
135213
- if( p->pGroupBy==0 && p->pHaving==0 && sAggInfo.nFunc==1 ){
135214
- minMaxFlag = minMaxQuery(db, sAggInfo.aFunc[0].pExpr, &pMinMaxOrderBy);
135362
+ pAggInfo->nAccumulator = pAggInfo->nColumn;
135363
+ if( p->pGroupBy==0 && p->pHaving==0 && pAggInfo->nFunc==1 ){
135364
+ minMaxFlag = minMaxQuery(db, pAggInfo->aFunc[0].pExpr, &pMinMaxOrderBy);
135215135365
}else{
135216135366
minMaxFlag = WHERE_ORDERBY_NORMAL;
135217135367
}
135218
- for(i=0; i<sAggInfo.nFunc; i++){
135219
- Expr *pExpr = sAggInfo.aFunc[i].pExpr;
135368
+ for(i=0; i<pAggInfo->nFunc; i++){
135369
+ Expr *pExpr = pAggInfo->aFunc[i].pExpr;
135220135370
assert( !ExprHasProperty(pExpr, EP_xIsSelect) );
135221135371
sNC.ncFlags |= NC_InAggFunc;
135222135372
sqlite3ExprAnalyzeAggList(&sNC, pExpr->x.pList);
135223135373
#ifndef SQLITE_OMIT_WINDOWFUNC
135224135374
assert( !IsWindowFunc(pExpr) );
@@ -135226,26 +135376,26 @@
135226135376
sqlite3ExprAnalyzeAggregates(&sNC, pExpr->y.pWin->pFilter);
135227135377
}
135228135378
#endif
135229135379
sNC.ncFlags &= ~NC_InAggFunc;
135230135380
}
135231
- sAggInfo.mxReg = pParse->nMem;
135381
+ pAggInfo->mxReg = pParse->nMem;
135232135382
if( db->mallocFailed ) goto select_end;
135233135383
#if SELECTTRACE_ENABLED
135234135384
if( sqlite3SelectTrace & 0x400 ){
135235135385
int ii;
135236
- SELECTTRACE(0x400,pParse,p,("After aggregate analysis %p:\n", &sAggInfo));
135386
+ SELECTTRACE(0x400,pParse,p,("After aggregate analysis %p:\n", pAggInfo));
135237135387
sqlite3TreeViewSelect(0, p, 0);
135238
- for(ii=0; ii<sAggInfo.nColumn; ii++){
135388
+ for(ii=0; ii<pAggInfo->nColumn; ii++){
135239135389
sqlite3DebugPrintf("agg-column[%d] iMem=%d\n",
135240
- ii, sAggInfo.aCol[ii].iMem);
135241
- sqlite3TreeViewExpr(0, sAggInfo.aCol[ii].pExpr, 0);
135390
+ ii, pAggInfo->aCol[ii].iMem);
135391
+ sqlite3TreeViewExpr(0, pAggInfo->aCol[ii].pExpr, 0);
135242135392
}
135243
- for(ii=0; ii<sAggInfo.nFunc; ii++){
135393
+ for(ii=0; ii<pAggInfo->nFunc; ii++){
135244135394
sqlite3DebugPrintf("agg-func[%d]: iMem=%d\n",
135245
- ii, sAggInfo.aFunc[ii].iMem);
135246
- sqlite3TreeViewExpr(0, sAggInfo.aFunc[ii].pExpr, 0);
135395
+ ii, pAggInfo->aFunc[ii].iMem);
135396
+ sqlite3TreeViewExpr(0, pAggInfo->aFunc[ii].pExpr, 0);
135247135397
}
135248135398
}
135249135399
#endif
135250135400
135251135401
@@ -135266,14 +135416,15 @@
135266135416
/* If there is a GROUP BY clause we might need a sorting index to
135267135417
** implement it. Allocate that sorting index now. If it turns out
135268135418
** that we do not need it after all, the OP_SorterOpen instruction
135269135419
** will be converted into a Noop.
135270135420
*/
135271
- sAggInfo.sortingIdx = pParse->nTab++;
135272
- pKeyInfo = sqlite3KeyInfoFromExprList(pParse,pGroupBy,0,sAggInfo.nColumn);
135421
+ pAggInfo->sortingIdx = pParse->nTab++;
135422
+ pKeyInfo = sqlite3KeyInfoFromExprList(pParse, pGroupBy,
135423
+ 0, pAggInfo->nColumn);
135273135424
addrSortingIdx = sqlite3VdbeAddOp4(v, OP_SorterOpen,
135274
- sAggInfo.sortingIdx, sAggInfo.nSortingColumn,
135425
+ pAggInfo->sortingIdx, pAggInfo->nSortingColumn,
135275135426
0, (char*)pKeyInfo, P4_KEYINFO);
135276135427
135277135428
/* Initialize memory locations used by GROUP BY aggregate processing
135278135429
*/
135279135430
iUseFlag = ++pParse->nMem;
@@ -135324,40 +135475,40 @@
135324135475
135325135476
groupBySort = 1;
135326135477
nGroupBy = pGroupBy->nExpr;
135327135478
nCol = nGroupBy;
135328135479
j = nGroupBy;
135329
- for(i=0; i<sAggInfo.nColumn; i++){
135330
- if( sAggInfo.aCol[i].iSorterColumn>=j ){
135480
+ for(i=0; i<pAggInfo->nColumn; i++){
135481
+ if( pAggInfo->aCol[i].iSorterColumn>=j ){
135331135482
nCol++;
135332135483
j++;
135333135484
}
135334135485
}
135335135486
regBase = sqlite3GetTempRange(pParse, nCol);
135336135487
sqlite3ExprCodeExprList(pParse, pGroupBy, regBase, 0, 0);
135337135488
j = nGroupBy;
135338
- for(i=0; i<sAggInfo.nColumn; i++){
135339
- struct AggInfo_col *pCol = &sAggInfo.aCol[i];
135489
+ for(i=0; i<pAggInfo->nColumn; i++){
135490
+ struct AggInfo_col *pCol = &pAggInfo->aCol[i];
135340135491
if( pCol->iSorterColumn>=j ){
135341135492
int r1 = j + regBase;
135342135493
sqlite3ExprCodeGetColumnOfTable(v,
135343135494
pCol->pTab, pCol->iTable, pCol->iColumn, r1);
135344135495
j++;
135345135496
}
135346135497
}
135347135498
regRecord = sqlite3GetTempReg(pParse);
135348135499
sqlite3VdbeAddOp3(v, OP_MakeRecord, regBase, nCol, regRecord);
135349
- sqlite3VdbeAddOp2(v, OP_SorterInsert, sAggInfo.sortingIdx, regRecord);
135500
+ sqlite3VdbeAddOp2(v, OP_SorterInsert, pAggInfo->sortingIdx, regRecord);
135350135501
sqlite3ReleaseTempReg(pParse, regRecord);
135351135502
sqlite3ReleaseTempRange(pParse, regBase, nCol);
135352135503
sqlite3WhereEnd(pWInfo);
135353
- sAggInfo.sortingIdxPTab = sortPTab = pParse->nTab++;
135504
+ pAggInfo->sortingIdxPTab = sortPTab = pParse->nTab++;
135354135505
sortOut = sqlite3GetTempReg(pParse);
135355135506
sqlite3VdbeAddOp3(v, OP_OpenPseudo, sortPTab, sortOut, nCol);
135356
- sqlite3VdbeAddOp2(v, OP_SorterSort, sAggInfo.sortingIdx, addrEnd);
135507
+ sqlite3VdbeAddOp2(v, OP_SorterSort, pAggInfo->sortingIdx, addrEnd);
135357135508
VdbeComment((v, "GROUP BY sort")); VdbeCoverage(v);
135358
- sAggInfo.useSortingIdx = 1;
135509
+ pAggInfo->useSortingIdx = 1;
135359135510
}
135360135511
135361135512
/* If the index or temporary table used by the GROUP BY sort
135362135513
** will naturally deliver rows in the order required by the ORDER BY
135363135514
** clause, cancel the ephemeral table open coded earlier.
@@ -135377,18 +135528,18 @@
135377135528
** Then compare the current GROUP BY terms against the GROUP BY terms
135378135529
** from the previous row currently stored in a0, a1, a2...
135379135530
*/
135380135531
addrTopOfLoop = sqlite3VdbeCurrentAddr(v);
135381135532
if( groupBySort ){
135382
- sqlite3VdbeAddOp3(v, OP_SorterData, sAggInfo.sortingIdx,
135533
+ sqlite3VdbeAddOp3(v, OP_SorterData, pAggInfo->sortingIdx,
135383135534
sortOut, sortPTab);
135384135535
}
135385135536
for(j=0; j<pGroupBy->nExpr; j++){
135386135537
if( groupBySort ){
135387135538
sqlite3VdbeAddOp3(v, OP_Column, sortPTab, j, iBMem+j);
135388135539
}else{
135389
- sAggInfo.directMode = 1;
135540
+ pAggInfo->directMode = 1;
135390135541
sqlite3ExprCode(pParse, pGroupBy->a[j].pExpr, iBMem+j);
135391135542
}
135392135543
}
135393135544
sqlite3VdbeAddOp4(v, OP_Compare, iAMem, iBMem, pGroupBy->nExpr,
135394135545
(char*)sqlite3KeyInfoRef(pKeyInfo), P4_KEYINFO);
@@ -135414,18 +135565,18 @@
135414135565
135415135566
/* Update the aggregate accumulators based on the content of
135416135567
** the current row
135417135568
*/
135418135569
sqlite3VdbeJumpHere(v, addr1);
135419
- updateAccumulator(pParse, iUseFlag, &sAggInfo);
135570
+ updateAccumulator(pParse, iUseFlag, pAggInfo);
135420135571
sqlite3VdbeAddOp2(v, OP_Integer, 1, iUseFlag);
135421135572
VdbeComment((v, "indicate data in accumulator"));
135422135573
135423135574
/* End of the loop
135424135575
*/
135425135576
if( groupBySort ){
135426
- sqlite3VdbeAddOp2(v, OP_SorterNext, sAggInfo.sortingIdx, addrTopOfLoop);
135577
+ sqlite3VdbeAddOp2(v, OP_SorterNext, pAggInfo->sortingIdx, addrTopOfLoop);
135427135578
VdbeCoverage(v);
135428135579
}else{
135429135580
sqlite3WhereEnd(pWInfo);
135430135581
sqlite3VdbeChangeToNoop(v, addrSortingIdx);
135431135582
}
@@ -135454,11 +135605,11 @@
135454135605
addrOutputRow = sqlite3VdbeCurrentAddr(v);
135455135606
sqlite3VdbeAddOp2(v, OP_IfPos, iUseFlag, addrOutputRow+2);
135456135607
VdbeCoverage(v);
135457135608
VdbeComment((v, "Groupby result generator entry point"));
135458135609
sqlite3VdbeAddOp1(v, OP_Return, regOutputRow);
135459
- finalizeAggFunctions(pParse, &sAggInfo);
135610
+ finalizeAggFunctions(pParse, pAggInfo);
135460135611
sqlite3ExprIfFalse(pParse, pHaving, addrOutputRow+1, SQLITE_JUMPIFNULL);
135461135612
selectInnerLoop(pParse, p, -1, &sSort,
135462135613
&sDistinct, pDest,
135463135614
addrOutputRow+1, addrSetAbort);
135464135615
sqlite3VdbeAddOp1(v, OP_Return, regOutputRow);
@@ -135465,19 +135616,19 @@
135465135616
VdbeComment((v, "end groupby result generator"));
135466135617
135467135618
/* Generate a subroutine that will reset the group-by accumulator
135468135619
*/
135469135620
sqlite3VdbeResolveLabel(v, addrReset);
135470
- resetAccumulator(pParse, &sAggInfo);
135621
+ resetAccumulator(pParse, pAggInfo);
135471135622
sqlite3VdbeAddOp2(v, OP_Integer, 0, iUseFlag);
135472135623
VdbeComment((v, "indicate accumulator empty"));
135473135624
sqlite3VdbeAddOp1(v, OP_Return, regReset);
135474135625
135475135626
} /* endif pGroupBy. Begin aggregate queries without GROUP BY: */
135476135627
else {
135477135628
Table *pTab;
135478
- if( (pTab = isSimpleCount(p, &sAggInfo))!=0 ){
135629
+ if( (pTab = isSimpleCount(p, pAggInfo))!=0 ){
135479135630
/* If isSimpleCount() returns a pointer to a Table structure, then
135480135631
** the SQL statement is of the form:
135481135632
**
135482135633
** SELECT count(*) FROM <tbl>
135483135634
**
@@ -135528,11 +135679,11 @@
135528135679
/* Open a read-only cursor, execute the OP_Count, close the cursor. */
135529135680
sqlite3VdbeAddOp4Int(v, OP_OpenRead, iCsr, iRoot, iDb, 1);
135530135681
if( pKeyInfo ){
135531135682
sqlite3VdbeChangeP4(v, -1, (char *)pKeyInfo, P4_KEYINFO);
135532135683
}
135533
- sqlite3VdbeAddOp2(v, OP_Count, iCsr, sAggInfo.aFunc[0].iMem);
135684
+ sqlite3VdbeAddOp2(v, OP_Count, iCsr, pAggInfo->aFunc[0].iMem);
135534135685
sqlite3VdbeAddOp1(v, OP_Close, iCsr);
135535135686
explainSimpleCount(pParse, pTab, pBest);
135536135687
}else{
135537135688
int regAcc = 0; /* "populate accumulators" flag */
135538135689
@@ -135543,16 +135694,20 @@
135543135694
** that the accumulator registers are (a) updated only once if
135544135695
** there are no min() or max functions or (b) always updated for the
135545135696
** first row visited by the aggregate, so that they are updated at
135546135697
** least once even if the FILTER clause means the min() or max()
135547135698
** function visits zero rows. */
135548
- if( sAggInfo.nAccumulator ){
135549
- for(i=0; i<sAggInfo.nFunc; i++){
135550
- if( ExprHasProperty(sAggInfo.aFunc[i].pExpr, EP_WinFunc) ) continue;
135551
- if( sAggInfo.aFunc[i].pFunc->funcFlags&SQLITE_FUNC_NEEDCOLL ) break;
135699
+ if( pAggInfo->nAccumulator ){
135700
+ for(i=0; i<pAggInfo->nFunc; i++){
135701
+ if( ExprHasProperty(pAggInfo->aFunc[i].pExpr, EP_WinFunc) ){
135702
+ continue;
135703
+ }
135704
+ if( pAggInfo->aFunc[i].pFunc->funcFlags&SQLITE_FUNC_NEEDCOLL ){
135705
+ break;
135706
+ }
135552135707
}
135553
- if( i==sAggInfo.nFunc ){
135708
+ if( i==pAggInfo->nFunc ){
135554135709
regAcc = ++pParse->nMem;
135555135710
sqlite3VdbeAddOp2(v, OP_Integer, 0, regAcc);
135556135711
}
135557135712
}
135558135713
@@ -135559,11 +135714,11 @@
135559135714
/* This case runs if the aggregate has no GROUP BY clause. The
135560135715
** processing is much simpler since there is only a single row
135561135716
** of output.
135562135717
*/
135563135718
assert( p->pGroupBy==0 );
135564
- resetAccumulator(pParse, &sAggInfo);
135719
+ resetAccumulator(pParse, pAggInfo);
135565135720
135566135721
/* If this query is a candidate for the min/max optimization, then
135567135722
** minMaxFlag will have been previously set to either
135568135723
** WHERE_ORDERBY_MIN or WHERE_ORDERBY_MAX and pMinMaxOrderBy will
135569135724
** be an appropriate ORDER BY expression for the optimization.
@@ -135575,19 +135730,19 @@
135575135730
pWInfo = sqlite3WhereBegin(pParse, pTabList, pWhere, pMinMaxOrderBy,
135576135731
0, minMaxFlag, 0);
135577135732
if( pWInfo==0 ){
135578135733
goto select_end;
135579135734
}
135580
- updateAccumulator(pParse, regAcc, &sAggInfo);
135735
+ updateAccumulator(pParse, regAcc, pAggInfo);
135581135736
if( regAcc ) sqlite3VdbeAddOp2(v, OP_Integer, 1, regAcc);
135582135737
if( sqlite3WhereIsOrdered(pWInfo)>0 ){
135583135738
sqlite3VdbeGoto(v, sqlite3WhereBreakLabel(pWInfo));
135584135739
VdbeComment((v, "%s() by index",
135585135740
(minMaxFlag==WHERE_ORDERBY_MIN?"min":"max")));
135586135741
}
135587135742
sqlite3WhereEnd(pWInfo);
135588
- finalizeAggFunctions(pParse, &sAggInfo);
135743
+ finalizeAggFunctions(pParse, pAggInfo);
135589135744
}
135590135745
135591135746
sSort.pOrderBy = 0;
135592135747
sqlite3ExprIfFalse(pParse, pHaving, addrEnd, SQLITE_JUMPIFNULL);
135593135748
selectInnerLoop(pParse, p, -1, 0, 0,
@@ -135622,12 +135777,29 @@
135622135777
/* Control jumps to here if an error is encountered above, or upon
135623135778
** successful coding of the SELECT.
135624135779
*/
135625135780
select_end:
135626135781
sqlite3ExprListDelete(db, pMinMaxOrderBy);
135627
- sqlite3DbFree(db, sAggInfo.aCol);
135628
- sqlite3DbFree(db, sAggInfo.aFunc);
135782
+#ifdef SQLITE_DEBUG
135783
+ if( pAggInfo ){
135784
+ for(i=0; i<pAggInfo->nColumn; i++){
135785
+ Expr *pExpr = pAggInfo->aCol[i].pExpr;
135786
+ assert( pExpr!=0 || db->mallocFailed );
135787
+ if( pExpr==0 ) continue;
135788
+ assert( pExpr->pAggInfo==pAggInfo );
135789
+ assert( pExpr->iAgg==i );
135790
+ }
135791
+ for(i=0; i<pAggInfo->nFunc; i++){
135792
+ Expr *pExpr = pAggInfo->aFunc[i].pExpr;
135793
+ assert( pExpr!=0 || db->mallocFailed );
135794
+ if( pExpr==0 ) continue;
135795
+ assert( pExpr->pAggInfo==pAggInfo );
135796
+ assert( pExpr->iAgg==i );
135797
+ }
135798
+ }
135799
+#endif
135800
+
135629135801
#if SELECTTRACE_ENABLED
135630135802
SELECTTRACE(0x1,pParse,p,("end processing\n"));
135631135803
if( (sqlite3SelectTrace & 0x2000)!=0 && ExplainQueryPlanParent(pParse)==0 ){
135632135804
sqlite3TreeViewSelect(0, p, 0);
135633135805
}
@@ -147847,10 +148019,11 @@
147847148019
pNew->rSetup = 0;
147848148020
pNew->prereq = mPrereq;
147849148021
pNew->nOut = rSize;
147850148022
pNew->u.btree.pIndex = pProbe;
147851148023
b = indexMightHelpWithOrderBy(pBuilder, pProbe, pSrc->iCursor);
148024
+
147852148025
/* The ONEPASS_DESIRED flags never occurs together with ORDER BY */
147853148026
assert( (pWInfo->wctrlFlags & WHERE_ONEPASS_DESIRED)==0 || b==0 );
147854148027
if( pProbe->idxType==SQLITE_IDXTYPE_IPK ){
147855148028
/* Integer primary key index */
147856148029
pNew->wsFlags = WHERE_IPK;
@@ -147876,10 +148049,11 @@
147876148049
147877148050
/* Full scan via index */
147878148051
if( b
147879148052
|| !HasRowid(pTab)
147880148053
|| pProbe->pPartIdxWhere!=0
148054
+ || pSrc->fg.isIndexedBy
147881148055
|| ( m==0
147882148056
&& pProbe->bUnordered==0
147883148057
&& (pProbe->szIdxRow<pTab->szTabRow)
147884148058
&& (pWInfo->wctrlFlags & WHERE_ONEPASS_DESIRED)==0
147885148059
&& sqlite3GlobalConfig.bUseCis
@@ -151315,16 +151489,20 @@
151315151489
151316151490
ExprList *pSublist = 0; /* Expression list for sub-query */
151317151491
Window *pMWin = p->pWin; /* Master window object */
151318151492
Window *pWin; /* Window object iterator */
151319151493
Table *pTab;
151494
+ Walker w;
151495
+
151320151496
u32 selFlags = p->selFlags;
151321151497
151322151498
pTab = sqlite3DbMallocZero(db, sizeof(Table));
151323151499
if( pTab==0 ){
151324151500
return sqlite3ErrorToParser(db, SQLITE_NOMEM);
151325151501
}
151502
+ sqlite3AggInfoPersistWalkerInit(&w, pParse);
151503
+ sqlite3WalkSelect(&w, p);
151326151504
151327151505
p->pSrc = 0;
151328151506
p->pWhere = 0;
151329151507
p->pGroupBy = 0;
151330151508
p->pHaving = 0;
@@ -151401,11 +151579,10 @@
151401151579
pParse, pSublist, pSrc, pWhere, pGroupBy, pHaving, pSort, 0, 0
151402151580
);
151403151581
p->pSrc = sqlite3SrcListAppend(pParse, 0, 0, 0);
151404151582
if( p->pSrc ){
151405151583
Table *pTab2;
151406
- Walker w;
151407151584
p->pSrc->a[0].pSelect = pSub;
151408151585
sqlite3SrcListAssignCursors(pParse, p->pSrc);
151409151586
pSub->selFlags |= SF_Expanded;
151410151587
pTab2 = sqlite3ResultSetOfSelect(pParse, pSub, SQLITE_AFF_NONE);
151411151588
pSub->selFlags |= (selFlags & SF_Aggregate);
@@ -224820,11 +224997,11 @@
224820224997
int nArg, /* Number of args */
224821224998
sqlite3_value **apUnused /* Function arguments */
224822224999
){
224823225000
assert( nArg==0 );
224824225001
UNUSED_PARAM2(nArg, apUnused);
224825
- sqlite3_result_text(pCtx, "fts5: 2020-05-25 16:19:56 0c1fcf4711a2e66c813aed38cf41cd3e2123ee8eb6db98118086764c4ba83350", -1, SQLITE_TRANSIENT);
225002
+ sqlite3_result_text(pCtx, "fts5: 2020-06-08 11:34:40 6e6b3729e0549de028f6c5bf494b2d69d621c81b61a1dc0a329d3950039342fb", -1, SQLITE_TRANSIENT);
224826225003
}
224827225004
224828225005
/*
224829225006
** Return true if zName is the extension on one of the shadow tables used
224830225007
** by this module.
@@ -229603,12 +229780,12 @@
229603229780
}
229604229781
#endif /* SQLITE_CORE */
229605229782
#endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_STMTVTAB) */
229606229783
229607229784
/************** End of stmt.c ************************************************/
229608
-#if __LINE__!=229608
229785
+#if __LINE__!=229785
229609229786
#undef SQLITE_SOURCE_ID
229610
-#define SQLITE_SOURCE_ID "2020-05-25 16:19:56 0c1fcf4711a2e66c813aed38cf41cd3e2123ee8eb6db98118086764c4ba8alt2"
229787
+#define SQLITE_SOURCE_ID "2020-06-08 11:34:40 6e6b3729e0549de028f6c5bf494b2d69d621c81b61a1dc0a329d39500393alt2"
229611229788
#endif
229612229789
/* Return the source-id for this library */
229613229790
SQLITE_API const char *sqlite3_sourceid(void){ return SQLITE_SOURCE_ID; }
229614229791
/************************** End of sqlite3.c ******************************/
229615229792
--- src/sqlite3.c
+++ src/sqlite3.c
@@ -1,8 +1,8 @@
1 /******************************************************************************
2 ** This file is an amalgamation of many separate C source files from SQLite
3 ** version 3.32.1. By combining all the individual C code files into this
4 ** single large file, the entire code can be compiled as a single translation
5 ** unit. This allows many compilers to do optimizations that would not be
6 ** possible if the files were compiled separately. Performance improvements
7 ** of 5% or more are commonly seen when SQLite is compiled as a single
8 ** translation unit.
@@ -1160,13 +1160,13 @@
1160 **
1161 ** See also: [sqlite3_libversion()],
1162 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
1163 ** [sqlite_version()] and [sqlite_source_id()].
1164 */
1165 #define SQLITE_VERSION "3.32.1"
1166 #define SQLITE_VERSION_NUMBER 3032001
1167 #define SQLITE_SOURCE_ID "2020-05-25 16:19:56 0c1fcf4711a2e66c813aed38cf41cd3e2123ee8eb6db98118086764c4ba83350"
1168
1169 /*
1170 ** CAPI3REF: Run-Time Library Version Numbers
1171 ** KEYWORDS: sqlite3_version sqlite3_sourceid
1172 **
@@ -13449,14 +13449,14 @@
13449
13450 /*
13451 ** WAL mode depends on atomic aligned 32-bit loads and stores in a few
13452 ** places. The following macros try to make this explicit.
13453 */
13454 #ifndef __has_feature
13455 # define __has_feature(x) 0 /* compatibility with non-clang compilers */
13456 #endif
13457 #if GCC_VERSION>=4007000 || __has_feature(c_atomic)
13458 # define AtomicLoad(PTR) __atomic_load_n((PTR),__ATOMIC_RELAXED)
13459 # define AtomicStore(PTR,VAL) __atomic_store_n((PTR),(VAL),__ATOMIC_RELAXED)
13460 #else
13461 # define AtomicLoad(PTR) (*(PTR))
13462 # define AtomicStore(PTR,VAL) (*(PTR) = (VAL))
@@ -17861,15 +17861,15 @@
17861 int nSortingColumn; /* Number of columns in the sorting index */
17862 int mnReg, mxReg; /* Range of registers allocated for aCol and aFunc */
17863 ExprList *pGroupBy; /* The group by clause */
17864 struct AggInfo_col { /* For each column used in source tables */
17865 Table *pTab; /* Source table */
 
17866 int iTable; /* Cursor number of the source table */
17867 int iColumn; /* Column number within the source table */
17868 int iSorterColumn; /* Column number in the sorting index */
17869 int iMem; /* Memory location that acts as accumulator */
17870 Expr *pExpr; /* The original expression */
 
17871 } *aCol;
17872 int nColumn; /* Number of used entries in aCol[] */
17873 int nAccumulator; /* Number of columns that show through to the output.
17874 ** Additional columns are used only as parameters to
17875 ** aggregate functions */
@@ -17878,12 +17878,21 @@
17878 FuncDef *pFunc; /* The aggregate function implementation */
17879 int iMem; /* Memory location that acts as accumulator */
17880 int iDistinct; /* Ephemeral table used to enforce DISTINCT */
17881 } *aFunc;
17882 int nFunc; /* Number of entries in aFunc[] */
 
 
 
 
17883 };
17884
 
 
 
 
 
17885 /*
17886 ** The datatype ynVar is a signed integer, either 16-bit or 32-bit.
17887 ** Usually it is 16-bits. But if SQLITE_MAX_VARIABLE_NUMBER is greater
17888 ** than 32767 we have to make it 32-bit. 16-bit is preferred because
17889 ** it uses less memory in the Expr object, which is a big memory user
@@ -18676,10 +18685,11 @@
18676 #endif
18677 AutoincInfo *pAinc; /* Information about AUTOINCREMENT counters */
18678 Parse *pToplevel; /* Parse structure for main program (or NULL) */
18679 Table *pTriggerTab; /* Table triggers are being coded for */
18680 Parse *pParentParse; /* Parent parser if this parser is nested */
 
18681 int addrCrTab; /* Address of OP_CreateBtree opcode on CREATE TABLE */
18682 u32 nQueryLoop; /* Est number of iterations of a query (10*log2(N)) */
18683 u32 oldmask; /* Mask of old.* columns referenced */
18684 u32 newmask; /* Mask of new.* columns referenced */
18685 u8 eTriggerOp; /* TK_UPDATE, TK_INSERT or TK_DELETE */
@@ -19642,10 +19652,11 @@
19642 SQLITE_PRIVATE int sqlite3ExprCompare(Parse*,Expr*, Expr*, int);
19643 SQLITE_PRIVATE int sqlite3ExprCompareSkip(Expr*, Expr*, int);
19644 SQLITE_PRIVATE int sqlite3ExprListCompare(ExprList*, ExprList*, int);
19645 SQLITE_PRIVATE int sqlite3ExprImpliesExpr(Parse*,Expr*, Expr*, int);
19646 SQLITE_PRIVATE int sqlite3ExprImpliesNonNullRow(Expr*,int);
 
19647 SQLITE_PRIVATE void sqlite3ExprAnalyzeAggregates(NameContext*, Expr*);
19648 SQLITE_PRIVATE void sqlite3ExprAnalyzeAggList(NameContext*,ExprList*);
19649 SQLITE_PRIVATE int sqlite3ExprCoveredByIndex(Expr*, int iCur, Index *pIdx);
19650 SQLITE_PRIVATE int sqlite3FunctionUsesThisSrc(Expr*, SrcList*);
19651 SQLITE_PRIVATE Vdbe *sqlite3GetVdbe(Parse*);
@@ -30013,11 +30024,11 @@
30013 sqlite3TreeViewLine(pView, "EXISTS-expr flags=0x%x", pExpr->flags);
30014 sqlite3TreeViewSelect(pView, pExpr->x.pSelect, 0);
30015 break;
30016 }
30017 case TK_SELECT: {
30018 sqlite3TreeViewLine(pView, "SELECT-expr flags=0x%x", pExpr->flags);
30019 sqlite3TreeViewSelect(pView, pExpr->x.pSelect, 0);
30020 break;
30021 }
30022 case TK_IN: {
30023 sqlite3TreeViewLine(pView, "IN flags=0x%x", pExpr->flags);
@@ -30932,13 +30943,13 @@
30932 pMem->n = (int)(z - zOut);
30933 }
30934 *z = 0;
30935 assert( (pMem->n+(desiredEnc==SQLITE_UTF8?1:2))<=len );
30936
30937 c = pMem->flags;
30938 sqlite3VdbeMemRelease(pMem);
30939 pMem->flags = MEM_Str|MEM_Term|(c&(MEM_AffMask|MEM_Subtype));
30940 pMem->enc = desiredEnc;
30941 pMem->z = (char*)zOut;
30942 pMem->zMalloc = pMem->z;
30943 pMem->szMalloc = sqlite3DbMallocSize(pMem->db, pMem->z);
30944
@@ -38285,11 +38296,14 @@
38285 ** 2. Write lock (ofst==0).
38286 ** 3. Read locks (ofst>=3 && ofst<SQLITE_SHM_NLOCK).
38287 **
38288 ** In other words, if this is a blocking lock, none of the locks that
38289 ** occur later in the above list than the lock being obtained may be
38290 ** held. */
 
 
 
38291 #ifdef SQLITE_ENABLE_SETLK_TIMEOUT
38292 assert( (flags & SQLITE_SHM_UNLOCK) || pDbFd->iBusyTimeout==0 || (
38293 (ofst!=2) /* not RECOVER */
38294 && (ofst!=1 || (p->exclMask|p->sharedMask)==0)
38295 && (ofst!=0 || (p->exclMask|p->sharedMask)<3)
@@ -60401,11 +60415,11 @@
60401 nCollide = idx;
60402 for(iKey=walHash(iPage); sLoc.aHash[iKey]; iKey=walNextHash(iKey)){
60403 if( (nCollide--)==0 ) return SQLITE_CORRUPT_BKPT;
60404 }
60405 sLoc.aPgno[idx] = iPage;
60406 sLoc.aHash[iKey] = (ht_slot)idx;
60407
60408 #ifdef SQLITE_ENABLE_EXPENSIVE_ASSERT
60409 /* Verify that the number of entries in the hash table exactly equals
60410 ** the number of entries in the mapping region.
60411 */
@@ -80835,11 +80849,15 @@
80835 ** if the VDBE has just been set to run but has not actually executed any
80836 ** instructions yet, leave the main database error information unchanged.
80837 */
80838 if( p->pc>=0 ){
80839 vdbeInvokeSqllog(p);
80840 sqlite3VdbeTransferError(p);
 
 
 
 
80841 if( p->runOnlyOnce ) p->expired = 1;
80842 }else if( p->rc && p->expired ){
80843 /* The expired flag was set on the VDBE before the first call
80844 ** to sqlite3_step(). For consistency (since sqlite3_step() was
80845 ** called), set the database error in this case as well.
@@ -80855,12 +80873,14 @@
80855 if( p->apCsr ) for(i=0; i<p->nCursor; i++) assert( p->apCsr[i]==0 );
80856 if( p->aMem ){
80857 for(i=0; i<p->nMem; i++) assert( p->aMem[i].flags==MEM_Undefined );
80858 }
80859 #endif
80860 sqlite3DbFree(db, p->zErrMsg);
80861 p->zErrMsg = 0;
 
 
80862 p->pResultSet = 0;
80863 #ifdef SQLITE_DEBUG
80864 p->nWrite = 0;
80865 #endif
80866
@@ -85818,10 +85838,12 @@
85818 /* This happens if a malloc() inside a call to sqlite3_column_text() or
85819 ** sqlite3_column_text16() failed. */
85820 goto no_mem;
85821 }
85822 assert( p->rc==SQLITE_OK || (p->rc&0xff)==SQLITE_BUSY );
 
 
85823 assert( p->bIsReader || p->readOnly!=0 );
85824 p->iCurrentTime = 0;
85825 assert( p->explain==0 );
85826 p->pResultSet = 0;
85827 db->busyHandler.nBusy = 0;
@@ -93131,13 +93153,11 @@
93131 /* Jump to here if the sqlite3_interrupt() API sets the interrupt
93132 ** flag.
93133 */
93134 abort_due_to_interrupt:
93135 assert( AtomicLoad(&db->u1.isInterrupted) );
93136 rc = db->mallocFailed ? SQLITE_NOMEM_BKPT : SQLITE_INTERRUPT;
93137 p->rc = rc;
93138 sqlite3VdbeError(p, "%s", sqlite3ErrStr(rc));
93139 goto abort_due_to_error;
93140 }
93141
93142
93143 /************** End of vdbe.c ************************************************/
@@ -99532,11 +99552,16 @@
99532 assert( pExpr!=0 );
99533 }
99534 op = pExpr->op;
99535 if( op==TK_SELECT ){
99536 assert( pExpr->flags&EP_xIsSelect );
99537 return sqlite3ExprAffinity(pExpr->x.pSelect->pEList->a[0].pExpr);
 
 
 
 
 
99538 }
99539 if( op==TK_REGISTER ) op = pExpr->op2;
99540 #ifndef SQLITE_OMIT_CAST
99541 if( op==TK_CAST ){
99542 assert( !ExprHasProperty(pExpr, EP_IntValue) );
@@ -102032,11 +102057,11 @@
102032 ** satisfy the query. This is preferable to generating a new
102033 ** ephemeral table. */
102034 if( pParse->nErr==0 && (p = isCandidateForInOpt(pX))!=0 ){
102035 sqlite3 *db = pParse->db; /* Database connection */
102036 Table *pTab; /* Table <table>. */
102037 i16 iDb; /* Database idx for pTab */
102038 ExprList *pEList = p->pEList;
102039 int nExpr = pEList->nExpr;
102040
102041 assert( p->pEList!=0 ); /* Because of isCandidateForInOpt(p) */
102042 assert( p->pEList->a[0].pExpr!=0 ); /* Because of isCandidateForInOpt(p) */
@@ -102043,10 +102068,11 @@
102043 assert( p->pSrc!=0 ); /* Because of isCandidateForInOpt(p) */
102044 pTab = p->pSrc->a[0].pTab;
102045
102046 /* Code an OP_Transaction and OP_TableLock for <table>. */
102047 iDb = sqlite3SchemaToIndex(db, pTab->pSchema);
 
102048 sqlite3CodeVerifySchema(pParse, iDb);
102049 sqlite3TableLock(pParse, iDb, pTab->tnum, 0, pTab->zName);
102050
102051 assert(v); /* sqlite3GetVdbe() has always been previously called */
102052 if( nExpr==1 && pEList->a[0].pExpr->iColumn<0 ){
@@ -103276,14 +103302,11 @@
103276 int r1, r2; /* Various register numbers */
103277 Expr tempX; /* Temporary expression node */
103278 int p5 = 0;
103279
103280 assert( target>0 && target<=pParse->nMem );
103281 if( v==0 ){
103282 assert( pParse->db->mallocFailed );
103283 return 0;
103284 }
103285
103286 expr_code_doover:
103287 if( pExpr==0 ){
103288 op = TK_NULL;
103289 }else{
@@ -104109,13 +104132,14 @@
104109 SQLITE_PRIVATE void sqlite3ExprCode(Parse *pParse, Expr *pExpr, int target){
104110 int inReg;
104111
104112 assert( pExpr==0 || !ExprHasVVAProperty(pExpr,EP_Immutable) );
104113 assert( target>0 && target<=pParse->nMem );
104114 inReg = sqlite3ExprCodeTarget(pParse, pExpr, target);
104115 assert( pParse->pVdbe!=0 || pParse->db->mallocFailed );
104116 if( inReg!=target && pParse->pVdbe ){
 
 
104117 u8 op;
104118 if( ExprHasProperty(pExpr,EP_Subquery) ){
104119 op = OP_Copy;
104120 }else{
104121 op = OP_SCopy;
@@ -105189,10 +105213,68 @@
105189 sqlite3WalkExpr(&w, pExpr->y.pWin->pFilter);
105190 }
105191 #endif
105192 return cnt.nThis>0 || cnt.nOther==0;
105193 }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
105194
105195 /*
105196 ** Add a new element to the pAggInfo->aCol[] array. Return the index of
105197 ** the new element. Return a negative number if malloc fails.
105198 */
@@ -105220,11 +105302,11 @@
105220 sizeof(pInfo->aFunc[0]),
105221 &pInfo->nFunc,
105222 &i
105223 );
105224 return i;
105225 }
105226
105227 /*
105228 ** This is the xExprCallback for a tree walker. It is used to
105229 ** implement sqlite3ExprAnalyzeAggregates(). See sqlite3ExprAnalyzeAggregates
105230 ** for additional information.
@@ -108177,10 +108259,34 @@
108177 assert( regOut!=regStat && regOut!=regStat+1 );
108178 sqlite3VdbeAddFunctionCall(pParse, 0, regStat, regOut, 1+IsStat4,
108179 &statGetFuncdef, 0);
108180 }
108181
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
108182 /*
108183 ** Generate code to do an analysis of all indices associated with
108184 ** a single table.
108185 */
108186 static void analyzeOneTable(
@@ -108393,11 +108499,11 @@
108393 }
108394 for(i=0; i<nColTest; i++){
108395 char *pColl = (char*)sqlite3LocateCollSeq(pParse, pIdx->azColl[i]);
108396 sqlite3VdbeAddOp2(v, OP_Integer, i, regChng);
108397 sqlite3VdbeAddOp3(v, OP_Column, iIdxCur, i, regTemp);
108398 VdbeComment((v, "%s.column(%d)", pIdx->zName, i));
108399 aGotoChng[i] =
108400 sqlite3VdbeAddOp4(v, OP_Ne, regTemp, 0, regPrev+i, pColl, P4_COLLSEQ);
108401 sqlite3VdbeChangeP5(v, SQLITE_NULLEQ);
108402 VdbeCoverage(v);
108403 }
@@ -108414,11 +108520,11 @@
108414 */
108415 sqlite3VdbeJumpHere(v, addrNextRow-1);
108416 for(i=0; i<nColTest; i++){
108417 sqlite3VdbeJumpHere(v, aGotoChng[i]);
108418 sqlite3VdbeAddOp3(v, OP_Column, iIdxCur, i, regPrev+i);
108419 VdbeComment((v, "%s.column(%d)", pIdx->zName, i));
108420 }
108421 sqlite3VdbeResolveLabel(v, endDistinctTest);
108422 sqlite3DbFree(db, aGotoChng);
108423 }
108424
@@ -108440,11 +108546,11 @@
108440 regKey = sqlite3GetTempRange(pParse, pPk->nKeyCol);
108441 for(j=0; j<pPk->nKeyCol; j++){
108442 k = sqlite3TableColumnToIndex(pIdx, pPk->aiColumn[j]);
108443 assert( k>=0 && k<pIdx->nColumn );
108444 sqlite3VdbeAddOp3(v, OP_Column, iIdxCur, k, regKey+j);
108445 VdbeComment((v, "%s.column(%d)", pIdx->zName, i));
108446 }
108447 sqlite3VdbeAddOp3(v, OP_MakeRecord, regKey, pPk->nKeyCol, regRowid);
108448 sqlite3ReleaseTempRange(pParse, regKey, pPk->nKeyCol);
108449 }
108450 }
@@ -110251,16 +110357,25 @@
110251
110252 /* Initialize any AUTOINCREMENT data structures required.
110253 */
110254 sqlite3AutoincrementBegin(pParse);
110255
110256 /* Code constant expressions that where factored out of inner loops */
 
 
 
 
 
 
110257 if( pParse->pConstExpr ){
110258 ExprList *pEL = pParse->pConstExpr;
110259 pParse->okConstFactor = 0;
110260 for(i=0; i<pEL->nExpr; i++){
110261 sqlite3ExprCode(pParse, pEL->a[i].pExpr, pEL->a[i].u.iConstExprReg);
 
 
 
110262 }
110263 }
110264
110265 /* Finally, jump back to the beginning of the executable code. */
110266 sqlite3VdbeGoto(v, 1);
@@ -114091,25 +114206,37 @@
114091 ** Apart from that, we have little to go on besides intuition as to
114092 ** how aiRowEst[] should be initialized. The numbers generated here
114093 ** are based on typical values found in actual indices.
114094 */
114095 SQLITE_PRIVATE void sqlite3DefaultRowEst(Index *pIdx){
114096 /* 10, 9, 8, 7, 6 */
114097 LogEst aVal[] = { 33, 32, 30, 28, 26 };
114098 LogEst *a = pIdx->aiRowLogEst;
 
114099 int nCopy = MIN(ArraySize(aVal), pIdx->nKeyCol);
114100 int i;
114101
114102 /* Indexes with default row estimates should not have stat1 data */
114103 assert( !pIdx->hasStat1 );
114104
114105 /* Set the first entry (number of rows in the index) to the estimated
114106 ** number of rows in the table, or half the number of rows in the table
114107 ** for a partial index. But do not let the estimate drop below 10. */
114108 a[0] = pIdx->pTable->nRowLogEst;
114109 if( pIdx->pPartIdxWhere!=0 ) a[0] -= 10; assert( 10==sqlite3LogEst(2) );
114110 if( a[0]<33 ) a[0] = 33; assert( 33==sqlite3LogEst(10) );
 
 
 
 
 
 
 
 
 
 
 
114111
114112 /* Estimate that a[1] is 10, a[2] is 9, a[3] is 8, a[4] is 7, a[5] is
114113 ** 6 and each subsequent value (if any) is 5. */
114114 memcpy(&a[1], aVal, nCopy*sizeof(LogEst));
114115 for(i=nCopy+1; i<=pIdx->nKeyCol; i++){
@@ -128405,21 +128532,22 @@
128405 **
128406 ** If the same database is attached more than once, the first
128407 ** attached database is returned.
128408 */
128409 SQLITE_PRIVATE int sqlite3SchemaToIndex(sqlite3 *db, Schema *pSchema){
128410 int i = -1000000;
128411
128412 /* If pSchema is NULL, then return -1000000. This happens when code in
128413 ** expr.c is trying to resolve a reference to a transient table (i.e. one
128414 ** created by a sub-select). In this case the return value of this
128415 ** function should never be used.
128416 **
128417 ** We return -1000000 instead of the more usual -1 simply because using
128418 ** -1000000 as the incorrect index into db->aDb[] is much
128419 ** more likely to cause a segfault than -1 (of course there are assert()
128420 ** statements too, but it never hurts to play the odds).
 
128421 */
128422 assert( sqlite3_mutex_held(db->mutex) );
128423 if( pSchema ){
128424 for(i=0; 1; i++){
128425 assert( i<db->nDb );
@@ -128429,16 +128557,31 @@
128429 }
128430 assert( i>=0 && i<db->nDb );
128431 }
128432 return i;
128433 }
 
 
 
 
 
 
 
 
 
128434
128435 /*
128436 ** Free all memory allocations in the pParse object
128437 */
128438 SQLITE_PRIVATE void sqlite3ParserReset(Parse *pParse){
128439 sqlite3 *db = pParse->db;
 
 
 
 
 
 
128440 sqlite3DbFree(db, pParse->aLabel);
128441 sqlite3ExprListDelete(db, pParse->pConstExpr);
128442 if( db ){
128443 assert( db->lookaside.bDisable >= pParse->disableLookaside );
128444 db->lookaside.bDisable -= pParse->disableLookaside;
@@ -128970,13 +129113,13 @@
128970 Expr *pHaving, /* the HAVING clause */
128971 ExprList *pOrderBy, /* the ORDER BY clause */
128972 u32 selFlags, /* Flag parameters, such as SF_Distinct */
128973 Expr *pLimit /* LIMIT value. NULL means not used */
128974 ){
128975 Select *pNew;
128976 Select standin;
128977 pNew = sqlite3DbMallocRawNN(pParse->db, sizeof(*pNew) );
128978 if( pNew==0 ){
128979 assert( pParse->db->mallocFailed );
128980 pNew = &standin;
128981 }
128982 if( pEList==0 ){
@@ -129006,16 +129149,15 @@
129006 pNew->pWin = 0;
129007 pNew->pWinDefn = 0;
129008 #endif
129009 if( pParse->db->mallocFailed ) {
129010 clearSelect(pParse->db, pNew, pNew!=&standin);
129011 pNew = 0;
129012 }else{
129013 assert( pNew->pSrc!=0 || pParse->nErr>0 );
129014 }
129015 assert( pNew!=&standin );
129016 return pNew;
129017 }
129018
129019
129020 /*
129021 ** Delete the given Select structure and all of its substructures.
@@ -132624,10 +132766,11 @@
132624 int isLeftJoin = 0; /* True if pSub is the right side of a LEFT JOIN */
132625 int i; /* Loop counter */
132626 Expr *pWhere; /* The WHERE clause */
132627 struct SrcList_item *pSubitem; /* The subquery */
132628 sqlite3 *db = pParse->db;
 
132629
132630 /* Check to see if flattening is permitted. Return 0 if not.
132631 */
132632 assert( p!=0 );
132633 assert( p->pPrior==0 );
@@ -132998,10 +133141,12 @@
132998 }
132999
133000 /* Finially, delete what is left of the subquery and return
133001 ** success.
133002 */
 
 
133003 sqlite3SelectDelete(db, pSub1);
133004
133005 #if SELECTTRACE_ENABLED
133006 if( sqlite3SelectTrace & 0x100 ){
133007 SELECTTRACE(0x100,pParse,p,("After flattening:\n"));
@@ -134582,14 +134727,14 @@
134582 ExprList *pEList = 0; /* List of columns to extract. */
134583 SrcList *pTabList; /* List of tables to select from */
134584 Expr *pWhere; /* The WHERE clause. May be NULL */
134585 ExprList *pGroupBy; /* The GROUP BY clause. May be NULL */
134586 Expr *pHaving; /* The HAVING clause. May be NULL */
 
134587 int rc = 1; /* Value to return from this function */
134588 DistinctCtx sDistinct; /* Info on how to code the DISTINCT keyword */
134589 SortCtx sSort; /* Info on how to code the ORDER BY clause */
134590 AggInfo sAggInfo; /* Information used by aggregate queries */
134591 int iEnd; /* Address of the end of the query */
134592 sqlite3 *db; /* The database connection */
134593 ExprList *pMinMaxOrderBy = 0; /* Added ORDER BY for min/max queries */
134594 u8 minMaxFlag; /* Flag for min/max queries */
134595
@@ -134597,11 +134742,10 @@
134597 v = sqlite3GetVdbe(pParse);
134598 if( p==0 || db->mallocFailed || pParse->nErr ){
134599 return 1;
134600 }
134601 if( sqlite3AuthCheck(pParse, SQLITE_SELECT, 0, 0, 0) ) return 1;
134602 memset(&sAggInfo, 0, sizeof(sAggInfo));
134603 #if SELECTTRACE_ENABLED
134604 SELECTTRACE(1,pParse,p, ("begin processing:\n", pParse->addrExplain));
134605 if( sqlite3SelectTrace & 0x100 ){
134606 sqlite3TreeViewSelect(0, p, 0);
134607 }
@@ -135187,18 +135331,24 @@
135187
135188 /* Convert TK_COLUMN nodes into TK_AGG_COLUMN and make entries in
135189 ** sAggInfo for all TK_AGG_FUNCTION nodes in expressions of the
135190 ** SELECT statement.
135191 */
 
 
 
 
 
 
135192 memset(&sNC, 0, sizeof(sNC));
135193 sNC.pParse = pParse;
135194 sNC.pSrcList = pTabList;
135195 sNC.uNC.pAggInfo = &sAggInfo;
135196 VVA_ONLY( sNC.ncFlags = NC_UAggInfo; )
135197 sAggInfo.mnReg = pParse->nMem+1;
135198 sAggInfo.nSortingColumn = pGroupBy ? pGroupBy->nExpr : 0;
135199 sAggInfo.pGroupBy = pGroupBy;
135200 sqlite3ExprAnalyzeAggList(&sNC, pEList);
135201 sqlite3ExprAnalyzeAggList(&sNC, sSort.pOrderBy);
135202 if( pHaving ){
135203 if( pGroupBy ){
135204 assert( pWhere==p->pWhere );
@@ -135207,18 +135357,18 @@
135207 havingToWhere(pParse, p);
135208 pWhere = p->pWhere;
135209 }
135210 sqlite3ExprAnalyzeAggregates(&sNC, pHaving);
135211 }
135212 sAggInfo.nAccumulator = sAggInfo.nColumn;
135213 if( p->pGroupBy==0 && p->pHaving==0 && sAggInfo.nFunc==1 ){
135214 minMaxFlag = minMaxQuery(db, sAggInfo.aFunc[0].pExpr, &pMinMaxOrderBy);
135215 }else{
135216 minMaxFlag = WHERE_ORDERBY_NORMAL;
135217 }
135218 for(i=0; i<sAggInfo.nFunc; i++){
135219 Expr *pExpr = sAggInfo.aFunc[i].pExpr;
135220 assert( !ExprHasProperty(pExpr, EP_xIsSelect) );
135221 sNC.ncFlags |= NC_InAggFunc;
135222 sqlite3ExprAnalyzeAggList(&sNC, pExpr->x.pList);
135223 #ifndef SQLITE_OMIT_WINDOWFUNC
135224 assert( !IsWindowFunc(pExpr) );
@@ -135226,26 +135376,26 @@
135226 sqlite3ExprAnalyzeAggregates(&sNC, pExpr->y.pWin->pFilter);
135227 }
135228 #endif
135229 sNC.ncFlags &= ~NC_InAggFunc;
135230 }
135231 sAggInfo.mxReg = pParse->nMem;
135232 if( db->mallocFailed ) goto select_end;
135233 #if SELECTTRACE_ENABLED
135234 if( sqlite3SelectTrace & 0x400 ){
135235 int ii;
135236 SELECTTRACE(0x400,pParse,p,("After aggregate analysis %p:\n", &sAggInfo));
135237 sqlite3TreeViewSelect(0, p, 0);
135238 for(ii=0; ii<sAggInfo.nColumn; ii++){
135239 sqlite3DebugPrintf("agg-column[%d] iMem=%d\n",
135240 ii, sAggInfo.aCol[ii].iMem);
135241 sqlite3TreeViewExpr(0, sAggInfo.aCol[ii].pExpr, 0);
135242 }
135243 for(ii=0; ii<sAggInfo.nFunc; ii++){
135244 sqlite3DebugPrintf("agg-func[%d]: iMem=%d\n",
135245 ii, sAggInfo.aFunc[ii].iMem);
135246 sqlite3TreeViewExpr(0, sAggInfo.aFunc[ii].pExpr, 0);
135247 }
135248 }
135249 #endif
135250
135251
@@ -135266,14 +135416,15 @@
135266 /* If there is a GROUP BY clause we might need a sorting index to
135267 ** implement it. Allocate that sorting index now. If it turns out
135268 ** that we do not need it after all, the OP_SorterOpen instruction
135269 ** will be converted into a Noop.
135270 */
135271 sAggInfo.sortingIdx = pParse->nTab++;
135272 pKeyInfo = sqlite3KeyInfoFromExprList(pParse,pGroupBy,0,sAggInfo.nColumn);
 
135273 addrSortingIdx = sqlite3VdbeAddOp4(v, OP_SorterOpen,
135274 sAggInfo.sortingIdx, sAggInfo.nSortingColumn,
135275 0, (char*)pKeyInfo, P4_KEYINFO);
135276
135277 /* Initialize memory locations used by GROUP BY aggregate processing
135278 */
135279 iUseFlag = ++pParse->nMem;
@@ -135324,40 +135475,40 @@
135324
135325 groupBySort = 1;
135326 nGroupBy = pGroupBy->nExpr;
135327 nCol = nGroupBy;
135328 j = nGroupBy;
135329 for(i=0; i<sAggInfo.nColumn; i++){
135330 if( sAggInfo.aCol[i].iSorterColumn>=j ){
135331 nCol++;
135332 j++;
135333 }
135334 }
135335 regBase = sqlite3GetTempRange(pParse, nCol);
135336 sqlite3ExprCodeExprList(pParse, pGroupBy, regBase, 0, 0);
135337 j = nGroupBy;
135338 for(i=0; i<sAggInfo.nColumn; i++){
135339 struct AggInfo_col *pCol = &sAggInfo.aCol[i];
135340 if( pCol->iSorterColumn>=j ){
135341 int r1 = j + regBase;
135342 sqlite3ExprCodeGetColumnOfTable(v,
135343 pCol->pTab, pCol->iTable, pCol->iColumn, r1);
135344 j++;
135345 }
135346 }
135347 regRecord = sqlite3GetTempReg(pParse);
135348 sqlite3VdbeAddOp3(v, OP_MakeRecord, regBase, nCol, regRecord);
135349 sqlite3VdbeAddOp2(v, OP_SorterInsert, sAggInfo.sortingIdx, regRecord);
135350 sqlite3ReleaseTempReg(pParse, regRecord);
135351 sqlite3ReleaseTempRange(pParse, regBase, nCol);
135352 sqlite3WhereEnd(pWInfo);
135353 sAggInfo.sortingIdxPTab = sortPTab = pParse->nTab++;
135354 sortOut = sqlite3GetTempReg(pParse);
135355 sqlite3VdbeAddOp3(v, OP_OpenPseudo, sortPTab, sortOut, nCol);
135356 sqlite3VdbeAddOp2(v, OP_SorterSort, sAggInfo.sortingIdx, addrEnd);
135357 VdbeComment((v, "GROUP BY sort")); VdbeCoverage(v);
135358 sAggInfo.useSortingIdx = 1;
135359 }
135360
135361 /* If the index or temporary table used by the GROUP BY sort
135362 ** will naturally deliver rows in the order required by the ORDER BY
135363 ** clause, cancel the ephemeral table open coded earlier.
@@ -135377,18 +135528,18 @@
135377 ** Then compare the current GROUP BY terms against the GROUP BY terms
135378 ** from the previous row currently stored in a0, a1, a2...
135379 */
135380 addrTopOfLoop = sqlite3VdbeCurrentAddr(v);
135381 if( groupBySort ){
135382 sqlite3VdbeAddOp3(v, OP_SorterData, sAggInfo.sortingIdx,
135383 sortOut, sortPTab);
135384 }
135385 for(j=0; j<pGroupBy->nExpr; j++){
135386 if( groupBySort ){
135387 sqlite3VdbeAddOp3(v, OP_Column, sortPTab, j, iBMem+j);
135388 }else{
135389 sAggInfo.directMode = 1;
135390 sqlite3ExprCode(pParse, pGroupBy->a[j].pExpr, iBMem+j);
135391 }
135392 }
135393 sqlite3VdbeAddOp4(v, OP_Compare, iAMem, iBMem, pGroupBy->nExpr,
135394 (char*)sqlite3KeyInfoRef(pKeyInfo), P4_KEYINFO);
@@ -135414,18 +135565,18 @@
135414
135415 /* Update the aggregate accumulators based on the content of
135416 ** the current row
135417 */
135418 sqlite3VdbeJumpHere(v, addr1);
135419 updateAccumulator(pParse, iUseFlag, &sAggInfo);
135420 sqlite3VdbeAddOp2(v, OP_Integer, 1, iUseFlag);
135421 VdbeComment((v, "indicate data in accumulator"));
135422
135423 /* End of the loop
135424 */
135425 if( groupBySort ){
135426 sqlite3VdbeAddOp2(v, OP_SorterNext, sAggInfo.sortingIdx, addrTopOfLoop);
135427 VdbeCoverage(v);
135428 }else{
135429 sqlite3WhereEnd(pWInfo);
135430 sqlite3VdbeChangeToNoop(v, addrSortingIdx);
135431 }
@@ -135454,11 +135605,11 @@
135454 addrOutputRow = sqlite3VdbeCurrentAddr(v);
135455 sqlite3VdbeAddOp2(v, OP_IfPos, iUseFlag, addrOutputRow+2);
135456 VdbeCoverage(v);
135457 VdbeComment((v, "Groupby result generator entry point"));
135458 sqlite3VdbeAddOp1(v, OP_Return, regOutputRow);
135459 finalizeAggFunctions(pParse, &sAggInfo);
135460 sqlite3ExprIfFalse(pParse, pHaving, addrOutputRow+1, SQLITE_JUMPIFNULL);
135461 selectInnerLoop(pParse, p, -1, &sSort,
135462 &sDistinct, pDest,
135463 addrOutputRow+1, addrSetAbort);
135464 sqlite3VdbeAddOp1(v, OP_Return, regOutputRow);
@@ -135465,19 +135616,19 @@
135465 VdbeComment((v, "end groupby result generator"));
135466
135467 /* Generate a subroutine that will reset the group-by accumulator
135468 */
135469 sqlite3VdbeResolveLabel(v, addrReset);
135470 resetAccumulator(pParse, &sAggInfo);
135471 sqlite3VdbeAddOp2(v, OP_Integer, 0, iUseFlag);
135472 VdbeComment((v, "indicate accumulator empty"));
135473 sqlite3VdbeAddOp1(v, OP_Return, regReset);
135474
135475 } /* endif pGroupBy. Begin aggregate queries without GROUP BY: */
135476 else {
135477 Table *pTab;
135478 if( (pTab = isSimpleCount(p, &sAggInfo))!=0 ){
135479 /* If isSimpleCount() returns a pointer to a Table structure, then
135480 ** the SQL statement is of the form:
135481 **
135482 ** SELECT count(*) FROM <tbl>
135483 **
@@ -135528,11 +135679,11 @@
135528 /* Open a read-only cursor, execute the OP_Count, close the cursor. */
135529 sqlite3VdbeAddOp4Int(v, OP_OpenRead, iCsr, iRoot, iDb, 1);
135530 if( pKeyInfo ){
135531 sqlite3VdbeChangeP4(v, -1, (char *)pKeyInfo, P4_KEYINFO);
135532 }
135533 sqlite3VdbeAddOp2(v, OP_Count, iCsr, sAggInfo.aFunc[0].iMem);
135534 sqlite3VdbeAddOp1(v, OP_Close, iCsr);
135535 explainSimpleCount(pParse, pTab, pBest);
135536 }else{
135537 int regAcc = 0; /* "populate accumulators" flag */
135538
@@ -135543,16 +135694,20 @@
135543 ** that the accumulator registers are (a) updated only once if
135544 ** there are no min() or max functions or (b) always updated for the
135545 ** first row visited by the aggregate, so that they are updated at
135546 ** least once even if the FILTER clause means the min() or max()
135547 ** function visits zero rows. */
135548 if( sAggInfo.nAccumulator ){
135549 for(i=0; i<sAggInfo.nFunc; i++){
135550 if( ExprHasProperty(sAggInfo.aFunc[i].pExpr, EP_WinFunc) ) continue;
135551 if( sAggInfo.aFunc[i].pFunc->funcFlags&SQLITE_FUNC_NEEDCOLL ) break;
 
 
 
 
135552 }
135553 if( i==sAggInfo.nFunc ){
135554 regAcc = ++pParse->nMem;
135555 sqlite3VdbeAddOp2(v, OP_Integer, 0, regAcc);
135556 }
135557 }
135558
@@ -135559,11 +135714,11 @@
135559 /* This case runs if the aggregate has no GROUP BY clause. The
135560 ** processing is much simpler since there is only a single row
135561 ** of output.
135562 */
135563 assert( p->pGroupBy==0 );
135564 resetAccumulator(pParse, &sAggInfo);
135565
135566 /* If this query is a candidate for the min/max optimization, then
135567 ** minMaxFlag will have been previously set to either
135568 ** WHERE_ORDERBY_MIN or WHERE_ORDERBY_MAX and pMinMaxOrderBy will
135569 ** be an appropriate ORDER BY expression for the optimization.
@@ -135575,19 +135730,19 @@
135575 pWInfo = sqlite3WhereBegin(pParse, pTabList, pWhere, pMinMaxOrderBy,
135576 0, minMaxFlag, 0);
135577 if( pWInfo==0 ){
135578 goto select_end;
135579 }
135580 updateAccumulator(pParse, regAcc, &sAggInfo);
135581 if( regAcc ) sqlite3VdbeAddOp2(v, OP_Integer, 1, regAcc);
135582 if( sqlite3WhereIsOrdered(pWInfo)>0 ){
135583 sqlite3VdbeGoto(v, sqlite3WhereBreakLabel(pWInfo));
135584 VdbeComment((v, "%s() by index",
135585 (minMaxFlag==WHERE_ORDERBY_MIN?"min":"max")));
135586 }
135587 sqlite3WhereEnd(pWInfo);
135588 finalizeAggFunctions(pParse, &sAggInfo);
135589 }
135590
135591 sSort.pOrderBy = 0;
135592 sqlite3ExprIfFalse(pParse, pHaving, addrEnd, SQLITE_JUMPIFNULL);
135593 selectInnerLoop(pParse, p, -1, 0, 0,
@@ -135622,12 +135777,29 @@
135622 /* Control jumps to here if an error is encountered above, or upon
135623 ** successful coding of the SELECT.
135624 */
135625 select_end:
135626 sqlite3ExprListDelete(db, pMinMaxOrderBy);
135627 sqlite3DbFree(db, sAggInfo.aCol);
135628 sqlite3DbFree(db, sAggInfo.aFunc);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
135629 #if SELECTTRACE_ENABLED
135630 SELECTTRACE(0x1,pParse,p,("end processing\n"));
135631 if( (sqlite3SelectTrace & 0x2000)!=0 && ExplainQueryPlanParent(pParse)==0 ){
135632 sqlite3TreeViewSelect(0, p, 0);
135633 }
@@ -147847,10 +148019,11 @@
147847 pNew->rSetup = 0;
147848 pNew->prereq = mPrereq;
147849 pNew->nOut = rSize;
147850 pNew->u.btree.pIndex = pProbe;
147851 b = indexMightHelpWithOrderBy(pBuilder, pProbe, pSrc->iCursor);
 
147852 /* The ONEPASS_DESIRED flags never occurs together with ORDER BY */
147853 assert( (pWInfo->wctrlFlags & WHERE_ONEPASS_DESIRED)==0 || b==0 );
147854 if( pProbe->idxType==SQLITE_IDXTYPE_IPK ){
147855 /* Integer primary key index */
147856 pNew->wsFlags = WHERE_IPK;
@@ -147876,10 +148049,11 @@
147876
147877 /* Full scan via index */
147878 if( b
147879 || !HasRowid(pTab)
147880 || pProbe->pPartIdxWhere!=0
 
147881 || ( m==0
147882 && pProbe->bUnordered==0
147883 && (pProbe->szIdxRow<pTab->szTabRow)
147884 && (pWInfo->wctrlFlags & WHERE_ONEPASS_DESIRED)==0
147885 && sqlite3GlobalConfig.bUseCis
@@ -151315,16 +151489,20 @@
151315
151316 ExprList *pSublist = 0; /* Expression list for sub-query */
151317 Window *pMWin = p->pWin; /* Master window object */
151318 Window *pWin; /* Window object iterator */
151319 Table *pTab;
 
 
151320 u32 selFlags = p->selFlags;
151321
151322 pTab = sqlite3DbMallocZero(db, sizeof(Table));
151323 if( pTab==0 ){
151324 return sqlite3ErrorToParser(db, SQLITE_NOMEM);
151325 }
 
 
151326
151327 p->pSrc = 0;
151328 p->pWhere = 0;
151329 p->pGroupBy = 0;
151330 p->pHaving = 0;
@@ -151401,11 +151579,10 @@
151401 pParse, pSublist, pSrc, pWhere, pGroupBy, pHaving, pSort, 0, 0
151402 );
151403 p->pSrc = sqlite3SrcListAppend(pParse, 0, 0, 0);
151404 if( p->pSrc ){
151405 Table *pTab2;
151406 Walker w;
151407 p->pSrc->a[0].pSelect = pSub;
151408 sqlite3SrcListAssignCursors(pParse, p->pSrc);
151409 pSub->selFlags |= SF_Expanded;
151410 pTab2 = sqlite3ResultSetOfSelect(pParse, pSub, SQLITE_AFF_NONE);
151411 pSub->selFlags |= (selFlags & SF_Aggregate);
@@ -224820,11 +224997,11 @@
224820 int nArg, /* Number of args */
224821 sqlite3_value **apUnused /* Function arguments */
224822 ){
224823 assert( nArg==0 );
224824 UNUSED_PARAM2(nArg, apUnused);
224825 sqlite3_result_text(pCtx, "fts5: 2020-05-25 16:19:56 0c1fcf4711a2e66c813aed38cf41cd3e2123ee8eb6db98118086764c4ba83350", -1, SQLITE_TRANSIENT);
224826 }
224827
224828 /*
224829 ** Return true if zName is the extension on one of the shadow tables used
224830 ** by this module.
@@ -229603,12 +229780,12 @@
229603 }
229604 #endif /* SQLITE_CORE */
229605 #endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_STMTVTAB) */
229606
229607 /************** End of stmt.c ************************************************/
229608 #if __LINE__!=229608
229609 #undef SQLITE_SOURCE_ID
229610 #define SQLITE_SOURCE_ID "2020-05-25 16:19:56 0c1fcf4711a2e66c813aed38cf41cd3e2123ee8eb6db98118086764c4ba8alt2"
229611 #endif
229612 /* Return the source-id for this library */
229613 SQLITE_API const char *sqlite3_sourceid(void){ return SQLITE_SOURCE_ID; }
229614 /************************** End of sqlite3.c ******************************/
229615
--- src/sqlite3.c
+++ src/sqlite3.c
@@ -1,8 +1,8 @@
1 /******************************************************************************
2 ** This file is an amalgamation of many separate C source files from SQLite
3 ** version 3.33.0. By combining all the individual C code files into this
4 ** single large file, the entire code can be compiled as a single translation
5 ** unit. This allows many compilers to do optimizations that would not be
6 ** possible if the files were compiled separately. Performance improvements
7 ** of 5% or more are commonly seen when SQLite is compiled as a single
8 ** translation unit.
@@ -1160,13 +1160,13 @@
1160 **
1161 ** See also: [sqlite3_libversion()],
1162 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
1163 ** [sqlite_version()] and [sqlite_source_id()].
1164 */
1165 #define SQLITE_VERSION "3.33.0"
1166 #define SQLITE_VERSION_NUMBER 3033000
1167 #define SQLITE_SOURCE_ID "2020-06-08 11:34:40 6e6b3729e0549de028f6c5bf494b2d69d621c81b61a1dc0a329d3950039342fb"
1168
1169 /*
1170 ** CAPI3REF: Run-Time Library Version Numbers
1171 ** KEYWORDS: sqlite3_version sqlite3_sourceid
1172 **
@@ -13449,14 +13449,14 @@
13449
13450 /*
13451 ** WAL mode depends on atomic aligned 32-bit loads and stores in a few
13452 ** places. The following macros try to make this explicit.
13453 */
13454 #ifndef __has_extension
13455 # define __has_extension(x) 0 /* compatibility with non-clang compilers */
13456 #endif
13457 #if GCC_VERSION>=4007000 || __has_extension(c_atomic)
13458 # define AtomicLoad(PTR) __atomic_load_n((PTR),__ATOMIC_RELAXED)
13459 # define AtomicStore(PTR,VAL) __atomic_store_n((PTR),(VAL),__ATOMIC_RELAXED)
13460 #else
13461 # define AtomicLoad(PTR) (*(PTR))
13462 # define AtomicStore(PTR,VAL) (*(PTR) = (VAL))
@@ -17861,15 +17861,15 @@
17861 int nSortingColumn; /* Number of columns in the sorting index */
17862 int mnReg, mxReg; /* Range of registers allocated for aCol and aFunc */
17863 ExprList *pGroupBy; /* The group by clause */
17864 struct AggInfo_col { /* For each column used in source tables */
17865 Table *pTab; /* Source table */
17866 Expr *pExpr; /* The original expression */
17867 int iTable; /* Cursor number of the source table */
 
 
17868 int iMem; /* Memory location that acts as accumulator */
17869 i16 iColumn; /* Column number within the source table */
17870 i16 iSorterColumn; /* Column number in the sorting index */
17871 } *aCol;
17872 int nColumn; /* Number of used entries in aCol[] */
17873 int nAccumulator; /* Number of columns that show through to the output.
17874 ** Additional columns are used only as parameters to
17875 ** aggregate functions */
@@ -17878,12 +17878,21 @@
17878 FuncDef *pFunc; /* The aggregate function implementation */
17879 int iMem; /* Memory location that acts as accumulator */
17880 int iDistinct; /* Ephemeral table used to enforce DISTINCT */
17881 } *aFunc;
17882 int nFunc; /* Number of entries in aFunc[] */
17883 #ifdef SQLITE_DEBUG
17884 int iAggMagic; /* Magic number when valid */
17885 #endif
17886 AggInfo *pNext; /* Next in list of them all */
17887 };
17888
17889 /*
17890 ** Value for AggInfo.iAggMagic when the structure is valid
17891 */
17892 #define AggInfoMagic 0x2059e99e
17893
17894 /*
17895 ** The datatype ynVar is a signed integer, either 16-bit or 32-bit.
17896 ** Usually it is 16-bits. But if SQLITE_MAX_VARIABLE_NUMBER is greater
17897 ** than 32767 we have to make it 32-bit. 16-bit is preferred because
17898 ** it uses less memory in the Expr object, which is a big memory user
@@ -18676,10 +18685,11 @@
18685 #endif
18686 AutoincInfo *pAinc; /* Information about AUTOINCREMENT counters */
18687 Parse *pToplevel; /* Parse structure for main program (or NULL) */
18688 Table *pTriggerTab; /* Table triggers are being coded for */
18689 Parse *pParentParse; /* Parent parser if this parser is nested */
18690 AggInfo *pAggList; /* List of all AggInfo objects */
18691 int addrCrTab; /* Address of OP_CreateBtree opcode on CREATE TABLE */
18692 u32 nQueryLoop; /* Est number of iterations of a query (10*log2(N)) */
18693 u32 oldmask; /* Mask of old.* columns referenced */
18694 u32 newmask; /* Mask of new.* columns referenced */
18695 u8 eTriggerOp; /* TK_UPDATE, TK_INSERT or TK_DELETE */
@@ -19642,10 +19652,11 @@
19652 SQLITE_PRIVATE int sqlite3ExprCompare(Parse*,Expr*, Expr*, int);
19653 SQLITE_PRIVATE int sqlite3ExprCompareSkip(Expr*, Expr*, int);
19654 SQLITE_PRIVATE int sqlite3ExprListCompare(ExprList*, ExprList*, int);
19655 SQLITE_PRIVATE int sqlite3ExprImpliesExpr(Parse*,Expr*, Expr*, int);
19656 SQLITE_PRIVATE int sqlite3ExprImpliesNonNullRow(Expr*,int);
19657 SQLITE_PRIVATE void sqlite3AggInfoPersistWalkerInit(Walker*,Parse*);
19658 SQLITE_PRIVATE void sqlite3ExprAnalyzeAggregates(NameContext*, Expr*);
19659 SQLITE_PRIVATE void sqlite3ExprAnalyzeAggList(NameContext*,ExprList*);
19660 SQLITE_PRIVATE int sqlite3ExprCoveredByIndex(Expr*, int iCur, Index *pIdx);
19661 SQLITE_PRIVATE int sqlite3FunctionUsesThisSrc(Expr*, SrcList*);
19662 SQLITE_PRIVATE Vdbe *sqlite3GetVdbe(Parse*);
@@ -30013,11 +30024,11 @@
30024 sqlite3TreeViewLine(pView, "EXISTS-expr flags=0x%x", pExpr->flags);
30025 sqlite3TreeViewSelect(pView, pExpr->x.pSelect, 0);
30026 break;
30027 }
30028 case TK_SELECT: {
30029 sqlite3TreeViewLine(pView, "subquery-expr flags=0x%x", pExpr->flags);
30030 sqlite3TreeViewSelect(pView, pExpr->x.pSelect, 0);
30031 break;
30032 }
30033 case TK_IN: {
30034 sqlite3TreeViewLine(pView, "IN flags=0x%x", pExpr->flags);
@@ -30932,13 +30943,13 @@
30943 pMem->n = (int)(z - zOut);
30944 }
30945 *z = 0;
30946 assert( (pMem->n+(desiredEnc==SQLITE_UTF8?1:2))<=len );
30947
30948 c = MEM_Str|MEM_Term|(pMem->flags&(MEM_AffMask|MEM_Subtype));
30949 sqlite3VdbeMemRelease(pMem);
30950 pMem->flags = c;
30951 pMem->enc = desiredEnc;
30952 pMem->z = (char*)zOut;
30953 pMem->zMalloc = pMem->z;
30954 pMem->szMalloc = sqlite3DbMallocSize(pMem->db, pMem->z);
30955
@@ -38285,11 +38296,14 @@
38296 ** 2. Write lock (ofst==0).
38297 ** 3. Read locks (ofst>=3 && ofst<SQLITE_SHM_NLOCK).
38298 **
38299 ** In other words, if this is a blocking lock, none of the locks that
38300 ** occur later in the above list than the lock being obtained may be
38301 ** held.
38302 **
38303 ** It is not permitted to block on the RECOVER lock.
38304 */
38305 #ifdef SQLITE_ENABLE_SETLK_TIMEOUT
38306 assert( (flags & SQLITE_SHM_UNLOCK) || pDbFd->iBusyTimeout==0 || (
38307 (ofst!=2) /* not RECOVER */
38308 && (ofst!=1 || (p->exclMask|p->sharedMask)==0)
38309 && (ofst!=0 || (p->exclMask|p->sharedMask)<3)
@@ -60401,11 +60415,11 @@
60415 nCollide = idx;
60416 for(iKey=walHash(iPage); sLoc.aHash[iKey]; iKey=walNextHash(iKey)){
60417 if( (nCollide--)==0 ) return SQLITE_CORRUPT_BKPT;
60418 }
60419 sLoc.aPgno[idx] = iPage;
60420 AtomicStore(&sLoc.aHash[iKey], (ht_slot)idx);
60421
60422 #ifdef SQLITE_ENABLE_EXPENSIVE_ASSERT
60423 /* Verify that the number of entries in the hash table exactly equals
60424 ** the number of entries in the mapping region.
60425 */
@@ -80835,11 +80849,15 @@
80849 ** if the VDBE has just been set to run but has not actually executed any
80850 ** instructions yet, leave the main database error information unchanged.
80851 */
80852 if( p->pc>=0 ){
80853 vdbeInvokeSqllog(p);
80854 if( db->pErr || p->zErrMsg ){
80855 sqlite3VdbeTransferError(p);
80856 }else{
80857 db->errCode = p->rc;
80858 }
80859 if( p->runOnlyOnce ) p->expired = 1;
80860 }else if( p->rc && p->expired ){
80861 /* The expired flag was set on the VDBE before the first call
80862 ** to sqlite3_step(). For consistency (since sqlite3_step() was
80863 ** called), set the database error in this case as well.
@@ -80855,12 +80873,14 @@
80873 if( p->apCsr ) for(i=0; i<p->nCursor; i++) assert( p->apCsr[i]==0 );
80874 if( p->aMem ){
80875 for(i=0; i<p->nMem; i++) assert( p->aMem[i].flags==MEM_Undefined );
80876 }
80877 #endif
80878 if( p->zErrMsg ){
80879 sqlite3DbFree(db, p->zErrMsg);
80880 p->zErrMsg = 0;
80881 }
80882 p->pResultSet = 0;
80883 #ifdef SQLITE_DEBUG
80884 p->nWrite = 0;
80885 #endif
80886
@@ -85818,10 +85838,12 @@
85838 /* This happens if a malloc() inside a call to sqlite3_column_text() or
85839 ** sqlite3_column_text16() failed. */
85840 goto no_mem;
85841 }
85842 assert( p->rc==SQLITE_OK || (p->rc&0xff)==SQLITE_BUSY );
85843 testcase( p->rc!=SQLITE_OK );
85844 p->rc = SQLITE_OK;
85845 assert( p->bIsReader || p->readOnly!=0 );
85846 p->iCurrentTime = 0;
85847 assert( p->explain==0 );
85848 p->pResultSet = 0;
85849 db->busyHandler.nBusy = 0;
@@ -93131,13 +93153,11 @@
93153 /* Jump to here if the sqlite3_interrupt() API sets the interrupt
93154 ** flag.
93155 */
93156 abort_due_to_interrupt:
93157 assert( AtomicLoad(&db->u1.isInterrupted) );
93158 rc = SQLITE_INTERRUPT;
 
 
93159 goto abort_due_to_error;
93160 }
93161
93162
93163 /************** End of vdbe.c ************************************************/
@@ -99532,11 +99552,16 @@
99552 assert( pExpr!=0 );
99553 }
99554 op = pExpr->op;
99555 if( op==TK_SELECT ){
99556 assert( pExpr->flags&EP_xIsSelect );
99557 if( ALWAYS(pExpr->x.pSelect)
99558 && pExpr->x.pSelect->pEList
99559 && ALWAYS(pExpr->x.pSelect->pEList->a[0].pExpr)
99560 ){
99561 return sqlite3ExprAffinity(pExpr->x.pSelect->pEList->a[0].pExpr);
99562 }
99563 }
99564 if( op==TK_REGISTER ) op = pExpr->op2;
99565 #ifndef SQLITE_OMIT_CAST
99566 if( op==TK_CAST ){
99567 assert( !ExprHasProperty(pExpr, EP_IntValue) );
@@ -102032,11 +102057,11 @@
102057 ** satisfy the query. This is preferable to generating a new
102058 ** ephemeral table. */
102059 if( pParse->nErr==0 && (p = isCandidateForInOpt(pX))!=0 ){
102060 sqlite3 *db = pParse->db; /* Database connection */
102061 Table *pTab; /* Table <table>. */
102062 int iDb; /* Database idx for pTab */
102063 ExprList *pEList = p->pEList;
102064 int nExpr = pEList->nExpr;
102065
102066 assert( p->pEList!=0 ); /* Because of isCandidateForInOpt(p) */
102067 assert( p->pEList->a[0].pExpr!=0 ); /* Because of isCandidateForInOpt(p) */
@@ -102043,10 +102068,11 @@
102068 assert( p->pSrc!=0 ); /* Because of isCandidateForInOpt(p) */
102069 pTab = p->pSrc->a[0].pTab;
102070
102071 /* Code an OP_Transaction and OP_TableLock for <table>. */
102072 iDb = sqlite3SchemaToIndex(db, pTab->pSchema);
102073 assert( iDb>=0 && iDb<SQLITE_MAX_ATTACHED );
102074 sqlite3CodeVerifySchema(pParse, iDb);
102075 sqlite3TableLock(pParse, iDb, pTab->tnum, 0, pTab->zName);
102076
102077 assert(v); /* sqlite3GetVdbe() has always been previously called */
102078 if( nExpr==1 && pEList->a[0].pExpr->iColumn<0 ){
@@ -103276,14 +103302,11 @@
103302 int r1, r2; /* Various register numbers */
103303 Expr tempX; /* Temporary expression node */
103304 int p5 = 0;
103305
103306 assert( target>0 && target<=pParse->nMem );
103307 assert( v!=0 );
 
 
 
103308
103309 expr_code_doover:
103310 if( pExpr==0 ){
103311 op = TK_NULL;
103312 }else{
@@ -104109,13 +104132,14 @@
104132 SQLITE_PRIVATE void sqlite3ExprCode(Parse *pParse, Expr *pExpr, int target){
104133 int inReg;
104134
104135 assert( pExpr==0 || !ExprHasVVAProperty(pExpr,EP_Immutable) );
104136 assert( target>0 && target<=pParse->nMem );
 
104137 assert( pParse->pVdbe!=0 || pParse->db->mallocFailed );
104138 if( pParse->pVdbe==0 ) return;
104139 inReg = sqlite3ExprCodeTarget(pParse, pExpr, target);
104140 if( inReg!=target ){
104141 u8 op;
104142 if( ExprHasProperty(pExpr,EP_Subquery) ){
104143 op = OP_Copy;
104144 }else{
104145 op = OP_SCopy;
@@ -105189,10 +105213,68 @@
105213 sqlite3WalkExpr(&w, pExpr->y.pWin->pFilter);
105214 }
105215 #endif
105216 return cnt.nThis>0 || cnt.nOther==0;
105217 }
105218
105219 /*
105220 ** This is a Walker expression node callback.
105221 **
105222 ** For Expr nodes that contain pAggInfo pointers, make sure the AggInfo
105223 ** object that is referenced does not refer directly to the Expr. If
105224 ** it does, make a copy. This is done because the pExpr argument is
105225 ** subject to change.
105226 **
105227 ** The copy is stored on pParse->pConstExpr with a register number of 0.
105228 ** This will cause the expression to be deleted automatically when the
105229 ** Parse object is destroyed, but the zero register number means that it
105230 ** will not generate any code in the preamble.
105231 */
105232 static int agginfoPersistExprCb(Walker *pWalker, Expr *pExpr){
105233 if( ALWAYS(!ExprHasProperty(pExpr, EP_TokenOnly|EP_Reduced))
105234 && pExpr->pAggInfo!=0
105235 ){
105236 AggInfo *pAggInfo = pExpr->pAggInfo;
105237 int iAgg = pExpr->iAgg;
105238 Parse *pParse = pWalker->pParse;
105239 sqlite3 *db = pParse->db;
105240 assert( pExpr->op==TK_AGG_COLUMN || pExpr->op==TK_AGG_FUNCTION );
105241 if( pExpr->op==TK_AGG_COLUMN ){
105242 assert( iAgg>=0 && iAgg<pAggInfo->nColumn );
105243 if( pAggInfo->aCol[iAgg].pExpr==pExpr ){
105244 pExpr = sqlite3ExprDup(db, pExpr, 0);
105245 if( pExpr ){
105246 pAggInfo->aCol[iAgg].pExpr = pExpr;
105247 pParse->pConstExpr =
105248 sqlite3ExprListAppend(pParse, pParse->pConstExpr, pExpr);
105249 }
105250 }
105251 }else{
105252 assert( iAgg>=0 && iAgg<pAggInfo->nFunc );
105253 if( pAggInfo->aFunc[iAgg].pExpr==pExpr ){
105254 pExpr = sqlite3ExprDup(db, pExpr, 0);
105255 if( pExpr ){
105256 pAggInfo->aFunc[iAgg].pExpr = pExpr;
105257 pParse->pConstExpr =
105258 sqlite3ExprListAppend(pParse, pParse->pConstExpr, pExpr);
105259 }
105260 }
105261 }
105262 }
105263 return WRC_Continue;
105264 }
105265
105266 /*
105267 ** Initialize a Walker object so that will persist AggInfo entries referenced
105268 ** by the tree that is walked.
105269 */
105270 SQLITE_PRIVATE void sqlite3AggInfoPersistWalkerInit(Walker *pWalker, Parse *pParse){
105271 memset(pWalker, 0, sizeof(*pWalker));
105272 pWalker->pParse = pParse;
105273 pWalker->xExprCallback = agginfoPersistExprCb;
105274 pWalker->xSelectCallback = sqlite3SelectWalkNoop;
105275 }
105276
105277 /*
105278 ** Add a new element to the pAggInfo->aCol[] array. Return the index of
105279 ** the new element. Return a negative number if malloc fails.
105280 */
@@ -105220,11 +105302,11 @@
105302 sizeof(pInfo->aFunc[0]),
105303 &pInfo->nFunc,
105304 &i
105305 );
105306 return i;
105307 }
105308
105309 /*
105310 ** This is the xExprCallback for a tree walker. It is used to
105311 ** implement sqlite3ExprAnalyzeAggregates(). See sqlite3ExprAnalyzeAggregates
105312 ** for additional information.
@@ -108177,10 +108259,34 @@
108259 assert( regOut!=regStat && regOut!=regStat+1 );
108260 sqlite3VdbeAddFunctionCall(pParse, 0, regStat, regOut, 1+IsStat4,
108261 &statGetFuncdef, 0);
108262 }
108263
108264 #ifdef SQLITE_ENABLE_EXPLAIN_COMMENTS
108265 /* Add a comment to the most recent VDBE opcode that is the name
108266 ** of the k-th column of the pIdx index.
108267 */
108268 static void analyzeVdbeCommentIndexWithColumnName(
108269 Vdbe *v, /* Prepared statement under construction */
108270 Index *pIdx, /* Index whose column is being loaded */
108271 int k /* Which column index */
108272 ){
108273 int i; /* Index of column in the table */
108274 assert( k>=0 && k<pIdx->nColumn );
108275 i = pIdx->aiColumn[k];
108276 if( NEVER(i==XN_ROWID) ){
108277 VdbeComment((v,"%s.rowid",pIdx->zName));
108278 }else if( i==XN_EXPR ){
108279 VdbeComment((v,"%s.expr(%d)",pIdx->zName, k));
108280 }else{
108281 VdbeComment((v,"%s.%s", pIdx->zName, pIdx->pTable->aCol[i].zName));
108282 }
108283 }
108284 #else
108285 # define analyzeVdbeCommentIndexWithColumnName(a,b,c)
108286 #endif /* SQLITE_DEBUG */
108287
108288 /*
108289 ** Generate code to do an analysis of all indices associated with
108290 ** a single table.
108291 */
108292 static void analyzeOneTable(
@@ -108393,11 +108499,11 @@
108499 }
108500 for(i=0; i<nColTest; i++){
108501 char *pColl = (char*)sqlite3LocateCollSeq(pParse, pIdx->azColl[i]);
108502 sqlite3VdbeAddOp2(v, OP_Integer, i, regChng);
108503 sqlite3VdbeAddOp3(v, OP_Column, iIdxCur, i, regTemp);
108504 analyzeVdbeCommentIndexWithColumnName(v,pIdx,i);
108505 aGotoChng[i] =
108506 sqlite3VdbeAddOp4(v, OP_Ne, regTemp, 0, regPrev+i, pColl, P4_COLLSEQ);
108507 sqlite3VdbeChangeP5(v, SQLITE_NULLEQ);
108508 VdbeCoverage(v);
108509 }
@@ -108414,11 +108520,11 @@
108520 */
108521 sqlite3VdbeJumpHere(v, addrNextRow-1);
108522 for(i=0; i<nColTest; i++){
108523 sqlite3VdbeJumpHere(v, aGotoChng[i]);
108524 sqlite3VdbeAddOp3(v, OP_Column, iIdxCur, i, regPrev+i);
108525 analyzeVdbeCommentIndexWithColumnName(v,pIdx,i);
108526 }
108527 sqlite3VdbeResolveLabel(v, endDistinctTest);
108528 sqlite3DbFree(db, aGotoChng);
108529 }
108530
@@ -108440,11 +108546,11 @@
108546 regKey = sqlite3GetTempRange(pParse, pPk->nKeyCol);
108547 for(j=0; j<pPk->nKeyCol; j++){
108548 k = sqlite3TableColumnToIndex(pIdx, pPk->aiColumn[j]);
108549 assert( k>=0 && k<pIdx->nColumn );
108550 sqlite3VdbeAddOp3(v, OP_Column, iIdxCur, k, regKey+j);
108551 analyzeVdbeCommentIndexWithColumnName(v,pIdx,k);
108552 }
108553 sqlite3VdbeAddOp3(v, OP_MakeRecord, regKey, pPk->nKeyCol, regRowid);
108554 sqlite3ReleaseTempRange(pParse, regKey, pPk->nKeyCol);
108555 }
108556 }
@@ -110251,16 +110357,25 @@
110357
110358 /* Initialize any AUTOINCREMENT data structures required.
110359 */
110360 sqlite3AutoincrementBegin(pParse);
110361
110362 /* Code constant expressions that where factored out of inner loops.
110363 **
110364 ** The pConstExpr list might also contain expressions that we simply
110365 ** want to keep around until the Parse object is deleted. Such
110366 ** expressions have iConstExprReg==0. Do not generate code for
110367 ** those expressions, of course.
110368 */
110369 if( pParse->pConstExpr ){
110370 ExprList *pEL = pParse->pConstExpr;
110371 pParse->okConstFactor = 0;
110372 for(i=0; i<pEL->nExpr; i++){
110373 int iReg = pEL->a[i].u.iConstExprReg;
110374 if( iReg>0 ){
110375 sqlite3ExprCode(pParse, pEL->a[i].pExpr, iReg);
110376 }
110377 }
110378 }
110379
110380 /* Finally, jump back to the beginning of the executable code. */
110381 sqlite3VdbeGoto(v, 1);
@@ -114091,25 +114206,37 @@
114206 ** Apart from that, we have little to go on besides intuition as to
114207 ** how aiRowEst[] should be initialized. The numbers generated here
114208 ** are based on typical values found in actual indices.
114209 */
114210 SQLITE_PRIVATE void sqlite3DefaultRowEst(Index *pIdx){
114211 /* 10, 9, 8, 7, 6 */
114212 static const LogEst aVal[] = { 33, 32, 30, 28, 26 };
114213 LogEst *a = pIdx->aiRowLogEst;
114214 LogEst x;
114215 int nCopy = MIN(ArraySize(aVal), pIdx->nKeyCol);
114216 int i;
114217
114218 /* Indexes with default row estimates should not have stat1 data */
114219 assert( !pIdx->hasStat1 );
114220
114221 /* Set the first entry (number of rows in the index) to the estimated
114222 ** number of rows in the table, or half the number of rows in the table
114223 ** for a partial index.
114224 **
114225 ** 2020-05-27: If some of the stat data is coming from the sqlite_stat1
114226 ** table but other parts we are having to guess at, then do not let the
114227 ** estimated number of rows in the table be less than 1000 (LogEst 99).
114228 ** Failure to do this can cause the indexes for which we do not have
114229 ** stat1 data to be ignored by the query planner. tag-20200527-1
114230 */
114231 x = pIdx->pTable->nRowLogEst;
114232 assert( 99==sqlite3LogEst(1000) );
114233 if( x<99 ){
114234 pIdx->pTable->nRowLogEst = x = 99;
114235 }
114236 if( pIdx->pPartIdxWhere!=0 ) x -= 10; assert( 10==sqlite3LogEst(2) );
114237 a[0] = x;
114238
114239 /* Estimate that a[1] is 10, a[2] is 9, a[3] is 8, a[4] is 7, a[5] is
114240 ** 6 and each subsequent value (if any) is 5. */
114241 memcpy(&a[1], aVal, nCopy*sizeof(LogEst));
114242 for(i=nCopy+1; i<=pIdx->nKeyCol; i++){
@@ -128405,21 +128532,22 @@
128532 **
128533 ** If the same database is attached more than once, the first
128534 ** attached database is returned.
128535 */
128536 SQLITE_PRIVATE int sqlite3SchemaToIndex(sqlite3 *db, Schema *pSchema){
128537 int i = -32768;
128538
128539 /* If pSchema is NULL, then return -32768. This happens when code in
128540 ** expr.c is trying to resolve a reference to a transient table (i.e. one
128541 ** created by a sub-select). In this case the return value of this
128542 ** function should never be used.
128543 **
128544 ** We return -32768 instead of the more usual -1 simply because using
128545 ** -32768 as the incorrect index into db->aDb[] is much
128546 ** more likely to cause a segfault than -1 (of course there are assert()
128547 ** statements too, but it never hurts to play the odds) and
128548 ** -32768 will still fit into a 16-bit signed integer.
128549 */
128550 assert( sqlite3_mutex_held(db->mutex) );
128551 if( pSchema ){
128552 for(i=0; 1; i++){
128553 assert( i<db->nDb );
@@ -128429,16 +128557,31 @@
128557 }
128558 assert( i>=0 && i<db->nDb );
128559 }
128560 return i;
128561 }
128562
128563 /*
128564 ** Deallocate a single AggInfo object
128565 */
128566 static void agginfoFree(sqlite3 *db, AggInfo *p){
128567 sqlite3DbFree(db, p->aCol);
128568 sqlite3DbFree(db, p->aFunc);
128569 sqlite3DbFree(db, p);
128570 }
128571
128572 /*
128573 ** Free all memory allocations in the pParse object
128574 */
128575 SQLITE_PRIVATE void sqlite3ParserReset(Parse *pParse){
128576 sqlite3 *db = pParse->db;
128577 AggInfo *pThis = pParse->pAggList;
128578 while( pThis ){
128579 AggInfo *pNext = pThis->pNext;
128580 agginfoFree(db, pThis);
128581 pThis = pNext;
128582 }
128583 sqlite3DbFree(db, pParse->aLabel);
128584 sqlite3ExprListDelete(db, pParse->pConstExpr);
128585 if( db ){
128586 assert( db->lookaside.bDisable >= pParse->disableLookaside );
128587 db->lookaside.bDisable -= pParse->disableLookaside;
@@ -128970,13 +129113,13 @@
129113 Expr *pHaving, /* the HAVING clause */
129114 ExprList *pOrderBy, /* the ORDER BY clause */
129115 u32 selFlags, /* Flag parameters, such as SF_Distinct */
129116 Expr *pLimit /* LIMIT value. NULL means not used */
129117 ){
129118 Select *pNew, *pAllocated;
129119 Select standin;
129120 pAllocated = pNew = sqlite3DbMallocRawNN(pParse->db, sizeof(*pNew) );
129121 if( pNew==0 ){
129122 assert( pParse->db->mallocFailed );
129123 pNew = &standin;
129124 }
129125 if( pEList==0 ){
@@ -129006,16 +129149,15 @@
129149 pNew->pWin = 0;
129150 pNew->pWinDefn = 0;
129151 #endif
129152 if( pParse->db->mallocFailed ) {
129153 clearSelect(pParse->db, pNew, pNew!=&standin);
129154 pAllocated = 0;
129155 }else{
129156 assert( pNew->pSrc!=0 || pParse->nErr>0 );
129157 }
129158 return pAllocated;
 
129159 }
129160
129161
129162 /*
129163 ** Delete the given Select structure and all of its substructures.
@@ -132624,10 +132766,11 @@
132766 int isLeftJoin = 0; /* True if pSub is the right side of a LEFT JOIN */
132767 int i; /* Loop counter */
132768 Expr *pWhere; /* The WHERE clause */
132769 struct SrcList_item *pSubitem; /* The subquery */
132770 sqlite3 *db = pParse->db;
132771 Walker w; /* Walker to persist agginfo data */
132772
132773 /* Check to see if flattening is permitted. Return 0 if not.
132774 */
132775 assert( p!=0 );
132776 assert( p->pPrior==0 );
@@ -132998,10 +133141,12 @@
133141 }
133142
133143 /* Finially, delete what is left of the subquery and return
133144 ** success.
133145 */
133146 sqlite3AggInfoPersistWalkerInit(&w, pParse);
133147 sqlite3WalkSelect(&w,pSub1);
133148 sqlite3SelectDelete(db, pSub1);
133149
133150 #if SELECTTRACE_ENABLED
133151 if( sqlite3SelectTrace & 0x100 ){
133152 SELECTTRACE(0x100,pParse,p,("After flattening:\n"));
@@ -134582,14 +134727,14 @@
134727 ExprList *pEList = 0; /* List of columns to extract. */
134728 SrcList *pTabList; /* List of tables to select from */
134729 Expr *pWhere; /* The WHERE clause. May be NULL */
134730 ExprList *pGroupBy; /* The GROUP BY clause. May be NULL */
134731 Expr *pHaving; /* The HAVING clause. May be NULL */
134732 AggInfo *pAggInfo = 0; /* Aggregate information */
134733 int rc = 1; /* Value to return from this function */
134734 DistinctCtx sDistinct; /* Info on how to code the DISTINCT keyword */
134735 SortCtx sSort; /* Info on how to code the ORDER BY clause */
 
134736 int iEnd; /* Address of the end of the query */
134737 sqlite3 *db; /* The database connection */
134738 ExprList *pMinMaxOrderBy = 0; /* Added ORDER BY for min/max queries */
134739 u8 minMaxFlag; /* Flag for min/max queries */
134740
@@ -134597,11 +134742,10 @@
134742 v = sqlite3GetVdbe(pParse);
134743 if( p==0 || db->mallocFailed || pParse->nErr ){
134744 return 1;
134745 }
134746 if( sqlite3AuthCheck(pParse, SQLITE_SELECT, 0, 0, 0) ) return 1;
 
134747 #if SELECTTRACE_ENABLED
134748 SELECTTRACE(1,pParse,p, ("begin processing:\n", pParse->addrExplain));
134749 if( sqlite3SelectTrace & 0x100 ){
134750 sqlite3TreeViewSelect(0, p, 0);
134751 }
@@ -135187,18 +135331,24 @@
135331
135332 /* Convert TK_COLUMN nodes into TK_AGG_COLUMN and make entries in
135333 ** sAggInfo for all TK_AGG_FUNCTION nodes in expressions of the
135334 ** SELECT statement.
135335 */
135336 pAggInfo = sqlite3DbMallocZero(db, sizeof(*pAggInfo) );
135337 if( pAggInfo==0 ){
135338 goto select_end;
135339 }
135340 pAggInfo->pNext = pParse->pAggList;
135341 pParse->pAggList = pAggInfo;
135342 memset(&sNC, 0, sizeof(sNC));
135343 sNC.pParse = pParse;
135344 sNC.pSrcList = pTabList;
135345 sNC.uNC.pAggInfo = pAggInfo;
135346 VVA_ONLY( sNC.ncFlags = NC_UAggInfo; )
135347 pAggInfo->mnReg = pParse->nMem+1;
135348 pAggInfo->nSortingColumn = pGroupBy ? pGroupBy->nExpr : 0;
135349 pAggInfo->pGroupBy = pGroupBy;
135350 sqlite3ExprAnalyzeAggList(&sNC, pEList);
135351 sqlite3ExprAnalyzeAggList(&sNC, sSort.pOrderBy);
135352 if( pHaving ){
135353 if( pGroupBy ){
135354 assert( pWhere==p->pWhere );
@@ -135207,18 +135357,18 @@
135357 havingToWhere(pParse, p);
135358 pWhere = p->pWhere;
135359 }
135360 sqlite3ExprAnalyzeAggregates(&sNC, pHaving);
135361 }
135362 pAggInfo->nAccumulator = pAggInfo->nColumn;
135363 if( p->pGroupBy==0 && p->pHaving==0 && pAggInfo->nFunc==1 ){
135364 minMaxFlag = minMaxQuery(db, pAggInfo->aFunc[0].pExpr, &pMinMaxOrderBy);
135365 }else{
135366 minMaxFlag = WHERE_ORDERBY_NORMAL;
135367 }
135368 for(i=0; i<pAggInfo->nFunc; i++){
135369 Expr *pExpr = pAggInfo->aFunc[i].pExpr;
135370 assert( !ExprHasProperty(pExpr, EP_xIsSelect) );
135371 sNC.ncFlags |= NC_InAggFunc;
135372 sqlite3ExprAnalyzeAggList(&sNC, pExpr->x.pList);
135373 #ifndef SQLITE_OMIT_WINDOWFUNC
135374 assert( !IsWindowFunc(pExpr) );
@@ -135226,26 +135376,26 @@
135376 sqlite3ExprAnalyzeAggregates(&sNC, pExpr->y.pWin->pFilter);
135377 }
135378 #endif
135379 sNC.ncFlags &= ~NC_InAggFunc;
135380 }
135381 pAggInfo->mxReg = pParse->nMem;
135382 if( db->mallocFailed ) goto select_end;
135383 #if SELECTTRACE_ENABLED
135384 if( sqlite3SelectTrace & 0x400 ){
135385 int ii;
135386 SELECTTRACE(0x400,pParse,p,("After aggregate analysis %p:\n", pAggInfo));
135387 sqlite3TreeViewSelect(0, p, 0);
135388 for(ii=0; ii<pAggInfo->nColumn; ii++){
135389 sqlite3DebugPrintf("agg-column[%d] iMem=%d\n",
135390 ii, pAggInfo->aCol[ii].iMem);
135391 sqlite3TreeViewExpr(0, pAggInfo->aCol[ii].pExpr, 0);
135392 }
135393 for(ii=0; ii<pAggInfo->nFunc; ii++){
135394 sqlite3DebugPrintf("agg-func[%d]: iMem=%d\n",
135395 ii, pAggInfo->aFunc[ii].iMem);
135396 sqlite3TreeViewExpr(0, pAggInfo->aFunc[ii].pExpr, 0);
135397 }
135398 }
135399 #endif
135400
135401
@@ -135266,14 +135416,15 @@
135416 /* If there is a GROUP BY clause we might need a sorting index to
135417 ** implement it. Allocate that sorting index now. If it turns out
135418 ** that we do not need it after all, the OP_SorterOpen instruction
135419 ** will be converted into a Noop.
135420 */
135421 pAggInfo->sortingIdx = pParse->nTab++;
135422 pKeyInfo = sqlite3KeyInfoFromExprList(pParse, pGroupBy,
135423 0, pAggInfo->nColumn);
135424 addrSortingIdx = sqlite3VdbeAddOp4(v, OP_SorterOpen,
135425 pAggInfo->sortingIdx, pAggInfo->nSortingColumn,
135426 0, (char*)pKeyInfo, P4_KEYINFO);
135427
135428 /* Initialize memory locations used by GROUP BY aggregate processing
135429 */
135430 iUseFlag = ++pParse->nMem;
@@ -135324,40 +135475,40 @@
135475
135476 groupBySort = 1;
135477 nGroupBy = pGroupBy->nExpr;
135478 nCol = nGroupBy;
135479 j = nGroupBy;
135480 for(i=0; i<pAggInfo->nColumn; i++){
135481 if( pAggInfo->aCol[i].iSorterColumn>=j ){
135482 nCol++;
135483 j++;
135484 }
135485 }
135486 regBase = sqlite3GetTempRange(pParse, nCol);
135487 sqlite3ExprCodeExprList(pParse, pGroupBy, regBase, 0, 0);
135488 j = nGroupBy;
135489 for(i=0; i<pAggInfo->nColumn; i++){
135490 struct AggInfo_col *pCol = &pAggInfo->aCol[i];
135491 if( pCol->iSorterColumn>=j ){
135492 int r1 = j + regBase;
135493 sqlite3ExprCodeGetColumnOfTable(v,
135494 pCol->pTab, pCol->iTable, pCol->iColumn, r1);
135495 j++;
135496 }
135497 }
135498 regRecord = sqlite3GetTempReg(pParse);
135499 sqlite3VdbeAddOp3(v, OP_MakeRecord, regBase, nCol, regRecord);
135500 sqlite3VdbeAddOp2(v, OP_SorterInsert, pAggInfo->sortingIdx, regRecord);
135501 sqlite3ReleaseTempReg(pParse, regRecord);
135502 sqlite3ReleaseTempRange(pParse, regBase, nCol);
135503 sqlite3WhereEnd(pWInfo);
135504 pAggInfo->sortingIdxPTab = sortPTab = pParse->nTab++;
135505 sortOut = sqlite3GetTempReg(pParse);
135506 sqlite3VdbeAddOp3(v, OP_OpenPseudo, sortPTab, sortOut, nCol);
135507 sqlite3VdbeAddOp2(v, OP_SorterSort, pAggInfo->sortingIdx, addrEnd);
135508 VdbeComment((v, "GROUP BY sort")); VdbeCoverage(v);
135509 pAggInfo->useSortingIdx = 1;
135510 }
135511
135512 /* If the index or temporary table used by the GROUP BY sort
135513 ** will naturally deliver rows in the order required by the ORDER BY
135514 ** clause, cancel the ephemeral table open coded earlier.
@@ -135377,18 +135528,18 @@
135528 ** Then compare the current GROUP BY terms against the GROUP BY terms
135529 ** from the previous row currently stored in a0, a1, a2...
135530 */
135531 addrTopOfLoop = sqlite3VdbeCurrentAddr(v);
135532 if( groupBySort ){
135533 sqlite3VdbeAddOp3(v, OP_SorterData, pAggInfo->sortingIdx,
135534 sortOut, sortPTab);
135535 }
135536 for(j=0; j<pGroupBy->nExpr; j++){
135537 if( groupBySort ){
135538 sqlite3VdbeAddOp3(v, OP_Column, sortPTab, j, iBMem+j);
135539 }else{
135540 pAggInfo->directMode = 1;
135541 sqlite3ExprCode(pParse, pGroupBy->a[j].pExpr, iBMem+j);
135542 }
135543 }
135544 sqlite3VdbeAddOp4(v, OP_Compare, iAMem, iBMem, pGroupBy->nExpr,
135545 (char*)sqlite3KeyInfoRef(pKeyInfo), P4_KEYINFO);
@@ -135414,18 +135565,18 @@
135565
135566 /* Update the aggregate accumulators based on the content of
135567 ** the current row
135568 */
135569 sqlite3VdbeJumpHere(v, addr1);
135570 updateAccumulator(pParse, iUseFlag, pAggInfo);
135571 sqlite3VdbeAddOp2(v, OP_Integer, 1, iUseFlag);
135572 VdbeComment((v, "indicate data in accumulator"));
135573
135574 /* End of the loop
135575 */
135576 if( groupBySort ){
135577 sqlite3VdbeAddOp2(v, OP_SorterNext, pAggInfo->sortingIdx, addrTopOfLoop);
135578 VdbeCoverage(v);
135579 }else{
135580 sqlite3WhereEnd(pWInfo);
135581 sqlite3VdbeChangeToNoop(v, addrSortingIdx);
135582 }
@@ -135454,11 +135605,11 @@
135605 addrOutputRow = sqlite3VdbeCurrentAddr(v);
135606 sqlite3VdbeAddOp2(v, OP_IfPos, iUseFlag, addrOutputRow+2);
135607 VdbeCoverage(v);
135608 VdbeComment((v, "Groupby result generator entry point"));
135609 sqlite3VdbeAddOp1(v, OP_Return, regOutputRow);
135610 finalizeAggFunctions(pParse, pAggInfo);
135611 sqlite3ExprIfFalse(pParse, pHaving, addrOutputRow+1, SQLITE_JUMPIFNULL);
135612 selectInnerLoop(pParse, p, -1, &sSort,
135613 &sDistinct, pDest,
135614 addrOutputRow+1, addrSetAbort);
135615 sqlite3VdbeAddOp1(v, OP_Return, regOutputRow);
@@ -135465,19 +135616,19 @@
135616 VdbeComment((v, "end groupby result generator"));
135617
135618 /* Generate a subroutine that will reset the group-by accumulator
135619 */
135620 sqlite3VdbeResolveLabel(v, addrReset);
135621 resetAccumulator(pParse, pAggInfo);
135622 sqlite3VdbeAddOp2(v, OP_Integer, 0, iUseFlag);
135623 VdbeComment((v, "indicate accumulator empty"));
135624 sqlite3VdbeAddOp1(v, OP_Return, regReset);
135625
135626 } /* endif pGroupBy. Begin aggregate queries without GROUP BY: */
135627 else {
135628 Table *pTab;
135629 if( (pTab = isSimpleCount(p, pAggInfo))!=0 ){
135630 /* If isSimpleCount() returns a pointer to a Table structure, then
135631 ** the SQL statement is of the form:
135632 **
135633 ** SELECT count(*) FROM <tbl>
135634 **
@@ -135528,11 +135679,11 @@
135679 /* Open a read-only cursor, execute the OP_Count, close the cursor. */
135680 sqlite3VdbeAddOp4Int(v, OP_OpenRead, iCsr, iRoot, iDb, 1);
135681 if( pKeyInfo ){
135682 sqlite3VdbeChangeP4(v, -1, (char *)pKeyInfo, P4_KEYINFO);
135683 }
135684 sqlite3VdbeAddOp2(v, OP_Count, iCsr, pAggInfo->aFunc[0].iMem);
135685 sqlite3VdbeAddOp1(v, OP_Close, iCsr);
135686 explainSimpleCount(pParse, pTab, pBest);
135687 }else{
135688 int regAcc = 0; /* "populate accumulators" flag */
135689
@@ -135543,16 +135694,20 @@
135694 ** that the accumulator registers are (a) updated only once if
135695 ** there are no min() or max functions or (b) always updated for the
135696 ** first row visited by the aggregate, so that they are updated at
135697 ** least once even if the FILTER clause means the min() or max()
135698 ** function visits zero rows. */
135699 if( pAggInfo->nAccumulator ){
135700 for(i=0; i<pAggInfo->nFunc; i++){
135701 if( ExprHasProperty(pAggInfo->aFunc[i].pExpr, EP_WinFunc) ){
135702 continue;
135703 }
135704 if( pAggInfo->aFunc[i].pFunc->funcFlags&SQLITE_FUNC_NEEDCOLL ){
135705 break;
135706 }
135707 }
135708 if( i==pAggInfo->nFunc ){
135709 regAcc = ++pParse->nMem;
135710 sqlite3VdbeAddOp2(v, OP_Integer, 0, regAcc);
135711 }
135712 }
135713
@@ -135559,11 +135714,11 @@
135714 /* This case runs if the aggregate has no GROUP BY clause. The
135715 ** processing is much simpler since there is only a single row
135716 ** of output.
135717 */
135718 assert( p->pGroupBy==0 );
135719 resetAccumulator(pParse, pAggInfo);
135720
135721 /* If this query is a candidate for the min/max optimization, then
135722 ** minMaxFlag will have been previously set to either
135723 ** WHERE_ORDERBY_MIN or WHERE_ORDERBY_MAX and pMinMaxOrderBy will
135724 ** be an appropriate ORDER BY expression for the optimization.
@@ -135575,19 +135730,19 @@
135730 pWInfo = sqlite3WhereBegin(pParse, pTabList, pWhere, pMinMaxOrderBy,
135731 0, minMaxFlag, 0);
135732 if( pWInfo==0 ){
135733 goto select_end;
135734 }
135735 updateAccumulator(pParse, regAcc, pAggInfo);
135736 if( regAcc ) sqlite3VdbeAddOp2(v, OP_Integer, 1, regAcc);
135737 if( sqlite3WhereIsOrdered(pWInfo)>0 ){
135738 sqlite3VdbeGoto(v, sqlite3WhereBreakLabel(pWInfo));
135739 VdbeComment((v, "%s() by index",
135740 (minMaxFlag==WHERE_ORDERBY_MIN?"min":"max")));
135741 }
135742 sqlite3WhereEnd(pWInfo);
135743 finalizeAggFunctions(pParse, pAggInfo);
135744 }
135745
135746 sSort.pOrderBy = 0;
135747 sqlite3ExprIfFalse(pParse, pHaving, addrEnd, SQLITE_JUMPIFNULL);
135748 selectInnerLoop(pParse, p, -1, 0, 0,
@@ -135622,12 +135777,29 @@
135777 /* Control jumps to here if an error is encountered above, or upon
135778 ** successful coding of the SELECT.
135779 */
135780 select_end:
135781 sqlite3ExprListDelete(db, pMinMaxOrderBy);
135782 #ifdef SQLITE_DEBUG
135783 if( pAggInfo ){
135784 for(i=0; i<pAggInfo->nColumn; i++){
135785 Expr *pExpr = pAggInfo->aCol[i].pExpr;
135786 assert( pExpr!=0 || db->mallocFailed );
135787 if( pExpr==0 ) continue;
135788 assert( pExpr->pAggInfo==pAggInfo );
135789 assert( pExpr->iAgg==i );
135790 }
135791 for(i=0; i<pAggInfo->nFunc; i++){
135792 Expr *pExpr = pAggInfo->aFunc[i].pExpr;
135793 assert( pExpr!=0 || db->mallocFailed );
135794 if( pExpr==0 ) continue;
135795 assert( pExpr->pAggInfo==pAggInfo );
135796 assert( pExpr->iAgg==i );
135797 }
135798 }
135799 #endif
135800
135801 #if SELECTTRACE_ENABLED
135802 SELECTTRACE(0x1,pParse,p,("end processing\n"));
135803 if( (sqlite3SelectTrace & 0x2000)!=0 && ExplainQueryPlanParent(pParse)==0 ){
135804 sqlite3TreeViewSelect(0, p, 0);
135805 }
@@ -147847,10 +148019,11 @@
148019 pNew->rSetup = 0;
148020 pNew->prereq = mPrereq;
148021 pNew->nOut = rSize;
148022 pNew->u.btree.pIndex = pProbe;
148023 b = indexMightHelpWithOrderBy(pBuilder, pProbe, pSrc->iCursor);
148024
148025 /* The ONEPASS_DESIRED flags never occurs together with ORDER BY */
148026 assert( (pWInfo->wctrlFlags & WHERE_ONEPASS_DESIRED)==0 || b==0 );
148027 if( pProbe->idxType==SQLITE_IDXTYPE_IPK ){
148028 /* Integer primary key index */
148029 pNew->wsFlags = WHERE_IPK;
@@ -147876,10 +148049,11 @@
148049
148050 /* Full scan via index */
148051 if( b
148052 || !HasRowid(pTab)
148053 || pProbe->pPartIdxWhere!=0
148054 || pSrc->fg.isIndexedBy
148055 || ( m==0
148056 && pProbe->bUnordered==0
148057 && (pProbe->szIdxRow<pTab->szTabRow)
148058 && (pWInfo->wctrlFlags & WHERE_ONEPASS_DESIRED)==0
148059 && sqlite3GlobalConfig.bUseCis
@@ -151315,16 +151489,20 @@
151489
151490 ExprList *pSublist = 0; /* Expression list for sub-query */
151491 Window *pMWin = p->pWin; /* Master window object */
151492 Window *pWin; /* Window object iterator */
151493 Table *pTab;
151494 Walker w;
151495
151496 u32 selFlags = p->selFlags;
151497
151498 pTab = sqlite3DbMallocZero(db, sizeof(Table));
151499 if( pTab==0 ){
151500 return sqlite3ErrorToParser(db, SQLITE_NOMEM);
151501 }
151502 sqlite3AggInfoPersistWalkerInit(&w, pParse);
151503 sqlite3WalkSelect(&w, p);
151504
151505 p->pSrc = 0;
151506 p->pWhere = 0;
151507 p->pGroupBy = 0;
151508 p->pHaving = 0;
@@ -151401,11 +151579,10 @@
151579 pParse, pSublist, pSrc, pWhere, pGroupBy, pHaving, pSort, 0, 0
151580 );
151581 p->pSrc = sqlite3SrcListAppend(pParse, 0, 0, 0);
151582 if( p->pSrc ){
151583 Table *pTab2;
 
151584 p->pSrc->a[0].pSelect = pSub;
151585 sqlite3SrcListAssignCursors(pParse, p->pSrc);
151586 pSub->selFlags |= SF_Expanded;
151587 pTab2 = sqlite3ResultSetOfSelect(pParse, pSub, SQLITE_AFF_NONE);
151588 pSub->selFlags |= (selFlags & SF_Aggregate);
@@ -224820,11 +224997,11 @@
224997 int nArg, /* Number of args */
224998 sqlite3_value **apUnused /* Function arguments */
224999 ){
225000 assert( nArg==0 );
225001 UNUSED_PARAM2(nArg, apUnused);
225002 sqlite3_result_text(pCtx, "fts5: 2020-06-08 11:34:40 6e6b3729e0549de028f6c5bf494b2d69d621c81b61a1dc0a329d3950039342fb", -1, SQLITE_TRANSIENT);
225003 }
225004
225005 /*
225006 ** Return true if zName is the extension on one of the shadow tables used
225007 ** by this module.
@@ -229603,12 +229780,12 @@
229780 }
229781 #endif /* SQLITE_CORE */
229782 #endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_STMTVTAB) */
229783
229784 /************** End of stmt.c ************************************************/
229785 #if __LINE__!=229785
229786 #undef SQLITE_SOURCE_ID
229787 #define SQLITE_SOURCE_ID "2020-06-08 11:34:40 6e6b3729e0549de028f6c5bf494b2d69d621c81b61a1dc0a329d39500393alt2"
229788 #endif
229789 /* Return the source-id for this library */
229790 SQLITE_API const char *sqlite3_sourceid(void){ return SQLITE_SOURCE_ID; }
229791 /************************** End of sqlite3.c ******************************/
229792
+3 -3
--- src/sqlite3.h
+++ src/sqlite3.h
@@ -121,13 +121,13 @@
121121
**
122122
** See also: [sqlite3_libversion()],
123123
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
124124
** [sqlite_version()] and [sqlite_source_id()].
125125
*/
126
-#define SQLITE_VERSION "3.32.1"
127
-#define SQLITE_VERSION_NUMBER 3032001
128
-#define SQLITE_SOURCE_ID "2020-05-25 16:19:56 0c1fcf4711a2e66c813aed38cf41cd3e2123ee8eb6db98118086764c4ba83350"
126
+#define SQLITE_VERSION "3.33.0"
127
+#define SQLITE_VERSION_NUMBER 3033000
128
+#define SQLITE_SOURCE_ID "2020-06-08 11:34:40 6e6b3729e0549de028f6c5bf494b2d69d621c81b61a1dc0a329d3950039342fb"
129129
130130
/*
131131
** CAPI3REF: Run-Time Library Version Numbers
132132
** KEYWORDS: sqlite3_version sqlite3_sourceid
133133
**
134134
--- src/sqlite3.h
+++ src/sqlite3.h
@@ -121,13 +121,13 @@
121 **
122 ** See also: [sqlite3_libversion()],
123 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
124 ** [sqlite_version()] and [sqlite_source_id()].
125 */
126 #define SQLITE_VERSION "3.32.1"
127 #define SQLITE_VERSION_NUMBER 3032001
128 #define SQLITE_SOURCE_ID "2020-05-25 16:19:56 0c1fcf4711a2e66c813aed38cf41cd3e2123ee8eb6db98118086764c4ba83350"
129
130 /*
131 ** CAPI3REF: Run-Time Library Version Numbers
132 ** KEYWORDS: sqlite3_version sqlite3_sourceid
133 **
134
--- src/sqlite3.h
+++ src/sqlite3.h
@@ -121,13 +121,13 @@
121 **
122 ** See also: [sqlite3_libversion()],
123 ** [sqlite3_libversion_number()], [sqlite3_sourceid()],
124 ** [sqlite_version()] and [sqlite_source_id()].
125 */
126 #define SQLITE_VERSION "3.33.0"
127 #define SQLITE_VERSION_NUMBER 3033000
128 #define SQLITE_SOURCE_ID "2020-06-08 11:34:40 6e6b3729e0549de028f6c5bf494b2d69d621c81b61a1dc0a329d3950039342fb"
129
130 /*
131 ** CAPI3REF: Run-Time Library Version Numbers
132 ** KEYWORDS: sqlite3_version sqlite3_sourceid
133 **
134
--- src/style.c
+++ src/style.c
@@ -1607,11 +1607,10 @@
16071607
** a leading slash, and has %R/ prepended to it.
16081608
**
16091609
** Meaning that no follow-up call to pass a non-0 first argument
16101610
** to close the tag. zSrc is ignored if the first argument is not
16111611
** 0.
1612
-**
16131612
*/
16141613
void style_emit_script_tag(int isCloser, const char * zSrc){
16151614
if(0==isCloser){
16161615
if(zSrc!=0 && zSrc[0]!=0){
16171616
CX("<script src='%R/%T'></script>\n", zSrc);
16181617
--- src/style.c
+++ src/style.c
@@ -1607,11 +1607,10 @@
1607 ** a leading slash, and has %R/ prepended to it.
1608 **
1609 ** Meaning that no follow-up call to pass a non-0 first argument
1610 ** to close the tag. zSrc is ignored if the first argument is not
1611 ** 0.
1612 **
1613 */
1614 void style_emit_script_tag(int isCloser, const char * zSrc){
1615 if(0==isCloser){
1616 if(zSrc!=0 && zSrc[0]!=0){
1617 CX("<script src='%R/%T'></script>\n", zSrc);
1618
--- src/style.c
+++ src/style.c
@@ -1607,11 +1607,10 @@
1607 ** a leading slash, and has %R/ prepended to it.
1608 **
1609 ** Meaning that no follow-up call to pass a non-0 first argument
1610 ** to close the tag. zSrc is ignored if the first argument is not
1611 ** 0.
 
1612 */
1613 void style_emit_script_tag(int isCloser, const char * zSrc){
1614 if(0==isCloser){
1615 if(zSrc!=0 && zSrc[0]!=0){
1616 CX("<script src='%R/%T'></script>\n", zSrc);
1617
--- src/style.c
+++ src/style.c
@@ -1607,11 +1607,10 @@
16071607
** a leading slash, and has %R/ prepended to it.
16081608
**
16091609
** Meaning that no follow-up call to pass a non-0 first argument
16101610
** to close the tag. zSrc is ignored if the first argument is not
16111611
** 0.
1612
-**
16131612
*/
16141613
void style_emit_script_tag(int isCloser, const char * zSrc){
16151614
if(0==isCloser){
16161615
if(zSrc!=0 && zSrc[0]!=0){
16171616
CX("<script src='%R/%T'></script>\n", zSrc);
16181617
--- src/style.c
+++ src/style.c
@@ -1607,11 +1607,10 @@
1607 ** a leading slash, and has %R/ prepended to it.
1608 **
1609 ** Meaning that no follow-up call to pass a non-0 first argument
1610 ** to close the tag. zSrc is ignored if the first argument is not
1611 ** 0.
1612 **
1613 */
1614 void style_emit_script_tag(int isCloser, const char * zSrc){
1615 if(0==isCloser){
1616 if(zSrc!=0 && zSrc[0]!=0){
1617 CX("<script src='%R/%T'></script>\n", zSrc);
1618
--- src/style.c
+++ src/style.c
@@ -1607,11 +1607,10 @@
1607 ** a leading slash, and has %R/ prepended to it.
1608 **
1609 ** Meaning that no follow-up call to pass a non-0 first argument
1610 ** to close the tag. zSrc is ignored if the first argument is not
1611 ** 0.
 
1612 */
1613 void style_emit_script_tag(int isCloser, const char * zSrc){
1614 if(0==isCloser){
1615 if(zSrc!=0 && zSrc[0]!=0){
1616 CX("<script src='%R/%T'></script>\n", zSrc);
1617
+23 -6
--- src/th_main.c
+++ src/th_main.c
@@ -30,11 +30,12 @@
3030
#define TH_INIT_NONE ((u32)0x00000000) /* No flags. */
3131
#define TH_INIT_NEED_CONFIG ((u32)0x00000001) /* Open configuration first? */
3232
#define TH_INIT_FORCE_TCL ((u32)0x00000002) /* Force Tcl to be enabled? */
3333
#define TH_INIT_FORCE_RESET ((u32)0x00000004) /* Force TH1 commands re-added? */
3434
#define TH_INIT_FORCE_SETUP ((u32)0x00000008) /* Force eval of setup script? */
35
-#define TH_INIT_MASK ((u32)0x0000000F) /* All possible init flags. */
35
+#define TH_INIT_NO_REPO ((u32)0x00000010) /* Skip opening repository. */
36
+#define TH_INIT_MASK ((u32)0x0000001F) /* All possible init flags. */
3637
3738
/*
3839
** Useful and/or "well-known" combinations of flag values.
3940
*/
4041
#define TH_INIT_DEFAULT (TH_INIT_NONE) /* Default flags. */
@@ -44,13 +45,13 @@
4445
4546
/*
4647
** Flags set by functions in this file to keep track of integration state
4748
** information. These flags should not be used outside of this file.
4849
*/
49
-#define TH_STATE_CONFIG ((u32)0x00000010) /* We opened the config. */
50
-#define TH_STATE_REPOSITORY ((u32)0x00000020) /* We opened the repository. */
51
-#define TH_STATE_MASK ((u32)0x00000030) /* All possible state flags. */
50
+#define TH_STATE_CONFIG ((u32)0x00000020) /* We opened the config. */
51
+#define TH_STATE_REPOSITORY ((u32)0x00000040) /* We opened the repository. */
52
+#define TH_STATE_MASK ((u32)0x00000060) /* All possible state flags. */
5253
5354
#ifdef FOSSIL_ENABLE_TH1_HOOKS
5455
/*
5556
** These are the "well-known" TH1 error messages that occur when no hook is
5657
** registered to be called prior to executing a command or processing a web
@@ -1771,11 +1772,20 @@
17711772
int szCol = th_strlen(zCol);
17721773
const char *zVal = (const char*)sqlite3_column_text(pStmt, i);
17731774
int szVal = sqlite3_column_bytes(pStmt, i);
17741775
Th_SetVar(interp, zCol, szCol, zVal, szVal);
17751776
}
1777
+ if( g.thTrace ){
1778
+ Th_Trace("query_eval {<pre>%#h</pre>}<br />\n", argl[2], argv[2]);
1779
+ }
17761780
res = Th_Eval(interp, 0, argv[2], argl[2]);
1781
+ if( g.thTrace ){
1782
+ int nTrRes;
1783
+ char *zTrRes = (char*)Th_GetResult(g.interp, &nTrRes);
1784
+ Th_Trace("[query_eval] => %h {%#h}<br />\n",
1785
+ Th_ReturnCodeName(res, 0), nTrRes, zTrRes);
1786
+ }
17771787
if( res==TH_BREAK || res==TH_CONTINUE ) res = TH_OK;
17781788
}
17791789
rc = sqlite3_finalize(pStmt);
17801790
if( rc!=SQLITE_OK ){
17811791
if( noComplain ) return TH_OK;
@@ -2085,10 +2095,11 @@
20852095
int wasInit = 0;
20862096
int needConfig = flags & TH_INIT_NEED_CONFIG;
20872097
int forceReset = flags & TH_INIT_FORCE_RESET;
20882098
int forceTcl = flags & TH_INIT_FORCE_TCL;
20892099
int forceSetup = flags & TH_INIT_FORCE_SETUP;
2100
+ int noRepo = flags & TH_INIT_NO_REPO;
20902101
static unsigned int aFlags[] = { 0, 1, WIKI_LINKSONLY };
20912102
static int anonFlag = LOGIN_ANON;
20922103
static int zeroInt = 0;
20932104
static struct _Command {
20942105
const char *zName;
@@ -2152,11 +2163,11 @@
21522163
** This function uses several settings which may be defined in the
21532164
** repository and/or the global configuration. Since the caller
21542165
** passed a non-zero value for the needConfig parameter, make sure
21552166
** the necessary database connections are open prior to continuing.
21562167
*/
2157
- Th_OpenConfig(1);
2168
+ Th_OpenConfig(!noRepo);
21582169
}
21592170
if( forceReset || forceTcl || g.interp==0 ){
21602171
int created = 0;
21612172
int i;
21622173
if( g.interp==0 ){
@@ -2622,13 +2633,19 @@
26222633
}else if( z[i]=='<' && isBeginScriptTag(&z[i]) ){
26232634
sendText(z, i, 0);
26242635
z += i+5;
26252636
for(i=0; z[i] && (z[i]!='<' || !isEndScriptTag(&z[i])); i++){}
26262637
if( g.thTrace ){
2627
- Th_Trace("eval {<pre>%#h</pre>}<br />", i, z);
2638
+ Th_Trace("render_eval {<pre>%#h</pre>}<br />\n", i, z);
26282639
}
26292640
rc = Th_Eval(g.interp, 0, (const char*)z, i);
2641
+ if( g.thTrace ){
2642
+ int nTrRes;
2643
+ char *zTrRes = (char*)Th_GetResult(g.interp, &nTrRes);
2644
+ Th_Trace("[render_eval] => %h {%#h}<br />\n",
2645
+ Th_ReturnCodeName(rc, 0), nTrRes, zTrRes);
2646
+ }
26302647
if( rc!=TH_OK ) break;
26312648
z += i;
26322649
if( z[0] ){ z += 6; }
26332650
i = 0;
26342651
}else{
26352652
--- src/th_main.c
+++ src/th_main.c
@@ -30,11 +30,12 @@
30 #define TH_INIT_NONE ((u32)0x00000000) /* No flags. */
31 #define TH_INIT_NEED_CONFIG ((u32)0x00000001) /* Open configuration first? */
32 #define TH_INIT_FORCE_TCL ((u32)0x00000002) /* Force Tcl to be enabled? */
33 #define TH_INIT_FORCE_RESET ((u32)0x00000004) /* Force TH1 commands re-added? */
34 #define TH_INIT_FORCE_SETUP ((u32)0x00000008) /* Force eval of setup script? */
35 #define TH_INIT_MASK ((u32)0x0000000F) /* All possible init flags. */
 
36
37 /*
38 ** Useful and/or "well-known" combinations of flag values.
39 */
40 #define TH_INIT_DEFAULT (TH_INIT_NONE) /* Default flags. */
@@ -44,13 +45,13 @@
44
45 /*
46 ** Flags set by functions in this file to keep track of integration state
47 ** information. These flags should not be used outside of this file.
48 */
49 #define TH_STATE_CONFIG ((u32)0x00000010) /* We opened the config. */
50 #define TH_STATE_REPOSITORY ((u32)0x00000020) /* We opened the repository. */
51 #define TH_STATE_MASK ((u32)0x00000030) /* All possible state flags. */
52
53 #ifdef FOSSIL_ENABLE_TH1_HOOKS
54 /*
55 ** These are the "well-known" TH1 error messages that occur when no hook is
56 ** registered to be called prior to executing a command or processing a web
@@ -1771,11 +1772,20 @@
1771 int szCol = th_strlen(zCol);
1772 const char *zVal = (const char*)sqlite3_column_text(pStmt, i);
1773 int szVal = sqlite3_column_bytes(pStmt, i);
1774 Th_SetVar(interp, zCol, szCol, zVal, szVal);
1775 }
 
 
 
1776 res = Th_Eval(interp, 0, argv[2], argl[2]);
 
 
 
 
 
 
1777 if( res==TH_BREAK || res==TH_CONTINUE ) res = TH_OK;
1778 }
1779 rc = sqlite3_finalize(pStmt);
1780 if( rc!=SQLITE_OK ){
1781 if( noComplain ) return TH_OK;
@@ -2085,10 +2095,11 @@
2085 int wasInit = 0;
2086 int needConfig = flags & TH_INIT_NEED_CONFIG;
2087 int forceReset = flags & TH_INIT_FORCE_RESET;
2088 int forceTcl = flags & TH_INIT_FORCE_TCL;
2089 int forceSetup = flags & TH_INIT_FORCE_SETUP;
 
2090 static unsigned int aFlags[] = { 0, 1, WIKI_LINKSONLY };
2091 static int anonFlag = LOGIN_ANON;
2092 static int zeroInt = 0;
2093 static struct _Command {
2094 const char *zName;
@@ -2152,11 +2163,11 @@
2152 ** This function uses several settings which may be defined in the
2153 ** repository and/or the global configuration. Since the caller
2154 ** passed a non-zero value for the needConfig parameter, make sure
2155 ** the necessary database connections are open prior to continuing.
2156 */
2157 Th_OpenConfig(1);
2158 }
2159 if( forceReset || forceTcl || g.interp==0 ){
2160 int created = 0;
2161 int i;
2162 if( g.interp==0 ){
@@ -2622,13 +2633,19 @@
2622 }else if( z[i]=='<' && isBeginScriptTag(&z[i]) ){
2623 sendText(z, i, 0);
2624 z += i+5;
2625 for(i=0; z[i] && (z[i]!='<' || !isEndScriptTag(&z[i])); i++){}
2626 if( g.thTrace ){
2627 Th_Trace("eval {<pre>%#h</pre>}<br />", i, z);
2628 }
2629 rc = Th_Eval(g.interp, 0, (const char*)z, i);
 
 
 
 
 
 
2630 if( rc!=TH_OK ) break;
2631 z += i;
2632 if( z[0] ){ z += 6; }
2633 i = 0;
2634 }else{
2635
--- src/th_main.c
+++ src/th_main.c
@@ -30,11 +30,12 @@
30 #define TH_INIT_NONE ((u32)0x00000000) /* No flags. */
31 #define TH_INIT_NEED_CONFIG ((u32)0x00000001) /* Open configuration first? */
32 #define TH_INIT_FORCE_TCL ((u32)0x00000002) /* Force Tcl to be enabled? */
33 #define TH_INIT_FORCE_RESET ((u32)0x00000004) /* Force TH1 commands re-added? */
34 #define TH_INIT_FORCE_SETUP ((u32)0x00000008) /* Force eval of setup script? */
35 #define TH_INIT_NO_REPO ((u32)0x00000010) /* Skip opening repository. */
36 #define TH_INIT_MASK ((u32)0x0000001F) /* All possible init flags. */
37
38 /*
39 ** Useful and/or "well-known" combinations of flag values.
40 */
41 #define TH_INIT_DEFAULT (TH_INIT_NONE) /* Default flags. */
@@ -44,13 +45,13 @@
45
46 /*
47 ** Flags set by functions in this file to keep track of integration state
48 ** information. These flags should not be used outside of this file.
49 */
50 #define TH_STATE_CONFIG ((u32)0x00000020) /* We opened the config. */
51 #define TH_STATE_REPOSITORY ((u32)0x00000040) /* We opened the repository. */
52 #define TH_STATE_MASK ((u32)0x00000060) /* All possible state flags. */
53
54 #ifdef FOSSIL_ENABLE_TH1_HOOKS
55 /*
56 ** These are the "well-known" TH1 error messages that occur when no hook is
57 ** registered to be called prior to executing a command or processing a web
@@ -1771,11 +1772,20 @@
1772 int szCol = th_strlen(zCol);
1773 const char *zVal = (const char*)sqlite3_column_text(pStmt, i);
1774 int szVal = sqlite3_column_bytes(pStmt, i);
1775 Th_SetVar(interp, zCol, szCol, zVal, szVal);
1776 }
1777 if( g.thTrace ){
1778 Th_Trace("query_eval {<pre>%#h</pre>}<br />\n", argl[2], argv[2]);
1779 }
1780 res = Th_Eval(interp, 0, argv[2], argl[2]);
1781 if( g.thTrace ){
1782 int nTrRes;
1783 char *zTrRes = (char*)Th_GetResult(g.interp, &nTrRes);
1784 Th_Trace("[query_eval] => %h {%#h}<br />\n",
1785 Th_ReturnCodeName(res, 0), nTrRes, zTrRes);
1786 }
1787 if( res==TH_BREAK || res==TH_CONTINUE ) res = TH_OK;
1788 }
1789 rc = sqlite3_finalize(pStmt);
1790 if( rc!=SQLITE_OK ){
1791 if( noComplain ) return TH_OK;
@@ -2085,10 +2095,11 @@
2095 int wasInit = 0;
2096 int needConfig = flags & TH_INIT_NEED_CONFIG;
2097 int forceReset = flags & TH_INIT_FORCE_RESET;
2098 int forceTcl = flags & TH_INIT_FORCE_TCL;
2099 int forceSetup = flags & TH_INIT_FORCE_SETUP;
2100 int noRepo = flags & TH_INIT_NO_REPO;
2101 static unsigned int aFlags[] = { 0, 1, WIKI_LINKSONLY };
2102 static int anonFlag = LOGIN_ANON;
2103 static int zeroInt = 0;
2104 static struct _Command {
2105 const char *zName;
@@ -2152,11 +2163,11 @@
2163 ** This function uses several settings which may be defined in the
2164 ** repository and/or the global configuration. Since the caller
2165 ** passed a non-zero value for the needConfig parameter, make sure
2166 ** the necessary database connections are open prior to continuing.
2167 */
2168 Th_OpenConfig(!noRepo);
2169 }
2170 if( forceReset || forceTcl || g.interp==0 ){
2171 int created = 0;
2172 int i;
2173 if( g.interp==0 ){
@@ -2622,13 +2633,19 @@
2633 }else if( z[i]=='<' && isBeginScriptTag(&z[i]) ){
2634 sendText(z, i, 0);
2635 z += i+5;
2636 for(i=0; z[i] && (z[i]!='<' || !isEndScriptTag(&z[i])); i++){}
2637 if( g.thTrace ){
2638 Th_Trace("render_eval {<pre>%#h</pre>}<br />\n", i, z);
2639 }
2640 rc = Th_Eval(g.interp, 0, (const char*)z, i);
2641 if( g.thTrace ){
2642 int nTrRes;
2643 char *zTrRes = (char*)Th_GetResult(g.interp, &nTrRes);
2644 Th_Trace("[render_eval] => %h {%#h}<br />\n",
2645 Th_ReturnCodeName(rc, 0), nTrRes, zTrRes);
2646 }
2647 if( rc!=TH_OK ) break;
2648 z += i;
2649 if( z[0] ){ z += 6; }
2650 i = 0;
2651 }else{
2652
+7 -5
--- src/timeline.c
+++ src/timeline.c
@@ -999,11 +999,11 @@
999999
}
10001000
if( pRow->mergeOut>=0 ){
10011001
cgi_printf("\"mo\":%d,", aiMap[pRow->mergeOut]);
10021002
if( pRow->mergeUpto==0 ) pRow->mergeUpto = pRow->idx;
10031003
cgi_printf("\"mu\":%d,", pRow->mergeUpto);
1004
- if( pRow->cherrypickUpto>0 && pRow->cherrypickUpto<pRow->mergeUpto ){
1004
+ if( pRow->cherrypickUpto>0 && pRow->cherrypickUpto<=pRow->mergeUpto ){
10051005
cgi_printf("\"cu\":%d,", pRow->cherrypickUpto);
10061006
}
10071007
}
10081008
if( pRow->isStepParent ){
10091009
cgi_printf("\"sb\":%d,", pRow->aiRiser[pRow->iRail]);
@@ -2357,22 +2357,24 @@
23572357
url_add_parameter(&url, "c", 0);
23582358
}else if( rCirca>0.0 ){
23592359
Blob sql2;
23602360
blob_init(&sql2, blob_sql_text(&sql), -1);
23612361
blob_append_sql(&sql2,
2362
- " AND event.mtime<=%f ORDER BY event.mtime DESC", rCirca);
2362
+ " AND event.mtime>=%f ORDER BY event.mtime ASC", rCirca);
23632363
if( nEntry>0 ){
23642364
blob_append_sql(&sql2," LIMIT %d", (nEntry+1)/2);
2365
- nEntry -= (nEntry+1)/2;
23662365
}
23672366
if( PB("showsql") ){
23682367
@ <pre>%h(blob_sql_text(&sql2))</pre>
23692368
}
23702369
db_multi_exec("%s", blob_sql_text(&sql2));
2370
+ if( nEntry>0 ){
2371
+ nEntry -= db_int(0,"select count(*) from timeline");
2372
+ }
23712373
blob_reset(&sql2);
23722374
blob_append_sql(&sql,
2373
- " AND event.mtime>=%f ORDER BY event.mtime ASC",
2375
+ " AND event.mtime<=%f ORDER BY event.mtime DESC",
23742376
rCirca
23752377
);
23762378
if( zMark==0 ) zMark = zCirca;
23772379
}else{
23782380
blob_append_sql(&sql, " ORDER BY event.mtime DESC");
@@ -3024,11 +3026,11 @@
30243026
z = db_text(0, "SELECT date(%Q,'-1 day')", zToday);
30253027
style_submenu_element("Yesterday", "%R/thisdayinhistory?today=%t", z);
30263028
z = db_text(0, "SELECT date(%Q,'+1 day')", zToday);
30273029
style_submenu_element("Tomorrow", "%R/thisdayinhistory?today=%t", z);
30283030
zStartOfProject = db_text(0,
3029
- "SELECT datetime(min(mtime),toLocal()) FROM event;"
3031
+ "SELECT datetime(min(mtime),toLocal(),'startofday') FROM event;"
30303032
);
30313033
timeline_temp_table();
30323034
db_prepare(&q, "SELECT * FROM timeline ORDER BY sortby DESC /*scan*/");
30333035
for(i=0; i<sizeof(aYearsAgo)/sizeof(aYearsAgo[0]); i++){
30343036
int iAgo = aYearsAgo[i];
30353037
--- src/timeline.c
+++ src/timeline.c
@@ -999,11 +999,11 @@
999 }
1000 if( pRow->mergeOut>=0 ){
1001 cgi_printf("\"mo\":%d,", aiMap[pRow->mergeOut]);
1002 if( pRow->mergeUpto==0 ) pRow->mergeUpto = pRow->idx;
1003 cgi_printf("\"mu\":%d,", pRow->mergeUpto);
1004 if( pRow->cherrypickUpto>0 && pRow->cherrypickUpto<pRow->mergeUpto ){
1005 cgi_printf("\"cu\":%d,", pRow->cherrypickUpto);
1006 }
1007 }
1008 if( pRow->isStepParent ){
1009 cgi_printf("\"sb\":%d,", pRow->aiRiser[pRow->iRail]);
@@ -2357,22 +2357,24 @@
2357 url_add_parameter(&url, "c", 0);
2358 }else if( rCirca>0.0 ){
2359 Blob sql2;
2360 blob_init(&sql2, blob_sql_text(&sql), -1);
2361 blob_append_sql(&sql2,
2362 " AND event.mtime<=%f ORDER BY event.mtime DESC", rCirca);
2363 if( nEntry>0 ){
2364 blob_append_sql(&sql2," LIMIT %d", (nEntry+1)/2);
2365 nEntry -= (nEntry+1)/2;
2366 }
2367 if( PB("showsql") ){
2368 @ <pre>%h(blob_sql_text(&sql2))</pre>
2369 }
2370 db_multi_exec("%s", blob_sql_text(&sql2));
 
 
 
2371 blob_reset(&sql2);
2372 blob_append_sql(&sql,
2373 " AND event.mtime>=%f ORDER BY event.mtime ASC",
2374 rCirca
2375 );
2376 if( zMark==0 ) zMark = zCirca;
2377 }else{
2378 blob_append_sql(&sql, " ORDER BY event.mtime DESC");
@@ -3024,11 +3026,11 @@
3024 z = db_text(0, "SELECT date(%Q,'-1 day')", zToday);
3025 style_submenu_element("Yesterday", "%R/thisdayinhistory?today=%t", z);
3026 z = db_text(0, "SELECT date(%Q,'+1 day')", zToday);
3027 style_submenu_element("Tomorrow", "%R/thisdayinhistory?today=%t", z);
3028 zStartOfProject = db_text(0,
3029 "SELECT datetime(min(mtime),toLocal()) FROM event;"
3030 );
3031 timeline_temp_table();
3032 db_prepare(&q, "SELECT * FROM timeline ORDER BY sortby DESC /*scan*/");
3033 for(i=0; i<sizeof(aYearsAgo)/sizeof(aYearsAgo[0]); i++){
3034 int iAgo = aYearsAgo[i];
3035
--- src/timeline.c
+++ src/timeline.c
@@ -999,11 +999,11 @@
999 }
1000 if( pRow->mergeOut>=0 ){
1001 cgi_printf("\"mo\":%d,", aiMap[pRow->mergeOut]);
1002 if( pRow->mergeUpto==0 ) pRow->mergeUpto = pRow->idx;
1003 cgi_printf("\"mu\":%d,", pRow->mergeUpto);
1004 if( pRow->cherrypickUpto>0 && pRow->cherrypickUpto<=pRow->mergeUpto ){
1005 cgi_printf("\"cu\":%d,", pRow->cherrypickUpto);
1006 }
1007 }
1008 if( pRow->isStepParent ){
1009 cgi_printf("\"sb\":%d,", pRow->aiRiser[pRow->iRail]);
@@ -2357,22 +2357,24 @@
2357 url_add_parameter(&url, "c", 0);
2358 }else if( rCirca>0.0 ){
2359 Blob sql2;
2360 blob_init(&sql2, blob_sql_text(&sql), -1);
2361 blob_append_sql(&sql2,
2362 " AND event.mtime>=%f ORDER BY event.mtime ASC", rCirca);
2363 if( nEntry>0 ){
2364 blob_append_sql(&sql2," LIMIT %d", (nEntry+1)/2);
 
2365 }
2366 if( PB("showsql") ){
2367 @ <pre>%h(blob_sql_text(&sql2))</pre>
2368 }
2369 db_multi_exec("%s", blob_sql_text(&sql2));
2370 if( nEntry>0 ){
2371 nEntry -= db_int(0,"select count(*) from timeline");
2372 }
2373 blob_reset(&sql2);
2374 blob_append_sql(&sql,
2375 " AND event.mtime<=%f ORDER BY event.mtime DESC",
2376 rCirca
2377 );
2378 if( zMark==0 ) zMark = zCirca;
2379 }else{
2380 blob_append_sql(&sql, " ORDER BY event.mtime DESC");
@@ -3024,11 +3026,11 @@
3026 z = db_text(0, "SELECT date(%Q,'-1 day')", zToday);
3027 style_submenu_element("Yesterday", "%R/thisdayinhistory?today=%t", z);
3028 z = db_text(0, "SELECT date(%Q,'+1 day')", zToday);
3029 style_submenu_element("Tomorrow", "%R/thisdayinhistory?today=%t", z);
3030 zStartOfProject = db_text(0,
3031 "SELECT datetime(min(mtime),toLocal(),'startofday') FROM event;"
3032 );
3033 timeline_temp_table();
3034 db_prepare(&q, "SELECT * FROM timeline ORDER BY sortby DESC /*scan*/");
3035 for(i=0; i<sizeof(aYearsAgo)/sizeof(aYearsAgo[0]); i++){
3036 int iAgo = aYearsAgo[i];
3037
+1
--- src/tkt.c
+++ src/tkt.c
@@ -512,10 +512,11 @@
512512
getAllTicketFields();
513513
initializeVariablesFromDb();
514514
zScript = ticket_viewpage_code();
515515
if( P("showfields")!=0 ) showAllFields();
516516
if( g.thTrace ) Th_Trace("BEGIN_TKTVIEW_SCRIPT<br />\n", -1);
517
+ safe_html_context(DOCSRC_TICKET);
517518
Th_Render(zScript);
518519
if( g.thTrace ) Th_Trace("END_TKTVIEW<br />\n", -1);
519520
520521
zFullName = db_text(0,
521522
"SELECT tkt_uuid FROM ticket"
522523
--- src/tkt.c
+++ src/tkt.c
@@ -512,10 +512,11 @@
512 getAllTicketFields();
513 initializeVariablesFromDb();
514 zScript = ticket_viewpage_code();
515 if( P("showfields")!=0 ) showAllFields();
516 if( g.thTrace ) Th_Trace("BEGIN_TKTVIEW_SCRIPT<br />\n", -1);
 
517 Th_Render(zScript);
518 if( g.thTrace ) Th_Trace("END_TKTVIEW<br />\n", -1);
519
520 zFullName = db_text(0,
521 "SELECT tkt_uuid FROM ticket"
522
--- src/tkt.c
+++ src/tkt.c
@@ -512,10 +512,11 @@
512 getAllTicketFields();
513 initializeVariablesFromDb();
514 zScript = ticket_viewpage_code();
515 if( P("showfields")!=0 ) showAllFields();
516 if( g.thTrace ) Th_Trace("BEGIN_TKTVIEW_SCRIPT<br />\n", -1);
517 safe_html_context(DOCSRC_TICKET);
518 Th_Render(zScript);
519 if( g.thTrace ) Th_Trace("END_TKTVIEW<br />\n", -1);
520
521 zFullName = db_text(0,
522 "SELECT tkt_uuid FROM ticket"
523
--- src/unversioned.c
+++ src/unversioned.c
@@ -377,11 +377,11 @@
377377
}
378378
#if defined(_WIN32) || defined(__CYGWIN__)
379379
blob_add_cr(&content);
380380
#endif
381381
blob_write_to_file(&content, zTFile);
382
- zCmd = mprintf("%s \"%s\"", zEditor, zTFile);
382
+ zCmd = mprintf("%s %$", zEditor, zTFile);
383383
if( fossil_system(zCmd) ){
384384
fossil_fatal("editor aborted: %Q", zCmd);
385385
}
386386
fossil_free(zCmd);
387387
blob_reset(&content);
388388
--- src/unversioned.c
+++ src/unversioned.c
@@ -377,11 +377,11 @@
377 }
378 #if defined(_WIN32) || defined(__CYGWIN__)
379 blob_add_cr(&content);
380 #endif
381 blob_write_to_file(&content, zTFile);
382 zCmd = mprintf("%s \"%s\"", zEditor, zTFile);
383 if( fossil_system(zCmd) ){
384 fossil_fatal("editor aborted: %Q", zCmd);
385 }
386 fossil_free(zCmd);
387 blob_reset(&content);
388
--- src/unversioned.c
+++ src/unversioned.c
@@ -377,11 +377,11 @@
377 }
378 #if defined(_WIN32) || defined(__CYGWIN__)
379 blob_add_cr(&content);
380 #endif
381 blob_write_to_file(&content, zTFile);
382 zCmd = mprintf("%s %$", zEditor, zTFile);
383 if( fossil_system(zCmd) ){
384 fossil_fatal("editor aborted: %Q", zCmd);
385 }
386 fossil_free(zCmd);
387 blob_reset(&content);
388
+64 -14
--- src/update.c
+++ src/update.c
@@ -765,28 +765,31 @@
765765
}
766766
767767
/*
768768
** COMMAND: revert
769769
**
770
-** Usage: %fossil revert ?-r REVISION? ?FILE ...?
770
+** Usage: %fossil revert ?OPTIONS? ?FILE ...?
771771
**
772772
** Revert to the current repository version of FILE, or to
773
-** the version associated with baseline REVISION if the -r flag
774
-** appears.
773
+** the baseline VERSION specified with -r flag.
775774
**
776775
** If FILE was part of a rename operation, both the original file
777776
** and the renamed file are reverted.
777
+**
778
+** Using a directory name for any of the FILE arguments is the same
779
+** as using every subdirectory and file beneath that directory.
778780
**
779781
** Revert all files if no file name is provided.
780782
**
781783
** If a file is reverted accidentally, it can be restored using
782784
** the "fossil undo" command.
783785
**
784786
** Options:
785
-** -r REVISION revert given FILE(s) back to given REVISION
787
+** -r|--revision VERSION Revert given FILE(s) back to given
788
+** VERSION
786789
**
787
-** See also: redo, undo, update
790
+** See also: redo, undo, checkout, update
788791
*/
789792
void revert_cmd(void){
790793
Manifest *pCoManifest; /* Manifest of current checkout */
791794
Manifest *pRvManifest; /* Manifest of selected revert version */
792795
ManifestFile *pCoFile; /* File within current checkout manifest */
@@ -794,20 +797,23 @@
794797
const char *zFile; /* Filename relative to checkout root */
795798
const char *zRevision; /* Selected revert version, NULL if current */
796799
Blob record = BLOB_INITIALIZER; /* Contents of each reverted file */
797800
int i;
798801
Stmt q;
802
+ int revertAll = 0;
803
+ int revisionOptNotSupported = 0;
799804
800805
undo_capture_command_line();
801806
zRevision = find_option("revision", "r", 1);
802807
verify_all_options();
803808
804809
if( g.argc<2 ){
805810
usage("?OPTIONS? [FILE] ...");
806811
}
807812
if( zRevision && g.argc<3 ){
808
- fossil_fatal("the --revision option does not work for the entire tree");
813
+ fossil_fatal("directories or the entire tree can only be reverted"
814
+ " back to current version");
809815
}
810816
db_must_be_within_tree();
811817
812818
/* Get manifests of revert version and (if different) current checkout. */
813819
pRvManifest = historical_manifest(zRevision);
@@ -821,21 +827,64 @@
821827
for(i=2; i<g.argc; i++){
822828
Blob fname;
823829
zFile = mprintf("%/", g.argv[i]);
824830
blob_zero(&fname);
825831
file_tree_name(zFile, &fname, 0, 1);
826
- db_multi_exec(
827
- "REPLACE INTO torevert VALUES(%B);"
828
- "INSERT OR IGNORE INTO torevert"
829
- " SELECT pathname"
830
- " FROM vfile"
831
- " WHERE origname=%B;",
832
- &fname, &fname
833
- );
832
+ if( blob_eq(&fname, ".") ){
833
+ if( zRevision ){
834
+ revisionOptNotSupported = 1;
835
+ break;
836
+ }
837
+ revertAll = 1;
838
+ break;
839
+ }else if( db_exists(
840
+ "SELECT pathname"
841
+ " FROM vfile"
842
+ " WHERE (substr(pathname,1,length('%q/'))='%q/'"
843
+ " OR substr(origname,1,length('%q/'))='%q/');",
844
+ blob_str(&fname), blob_str(&fname),
845
+ blob_str(&fname), blob_str(&fname)) ){
846
+ int vid;
847
+ vid = db_lget_int("checkout", 0);
848
+ vfile_check_signature(vid, 0);
849
+
850
+ if( zRevision ){
851
+ revisionOptNotSupported = 1;
852
+ break;
853
+ }
854
+ db_multi_exec(
855
+ "INSERT OR IGNORE INTO torevert"
856
+ " SELECT pathname"
857
+ " FROM vfile"
858
+ " WHERE (substr(pathname,1,length('%q/'))='%q/'"
859
+ " OR substr(origname,1,length('%q/'))='%q/')"
860
+ " AND (chnged OR deleted OR rid=0 OR pathname!=origname);",
861
+ blob_str(&fname), blob_str(&fname),
862
+ blob_str(&fname), blob_str(&fname)
863
+ );
864
+ }else{
865
+ db_multi_exec(
866
+ "REPLACE INTO torevert VALUES(%B);"
867
+ "INSERT OR IGNORE INTO torevert"
868
+ " SELECT pathname"
869
+ " FROM vfile"
870
+ " WHERE origname=%B;",
871
+ &fname, &fname
872
+ );
873
+ }
834874
blob_reset(&fname);
835875
}
836876
}else{
877
+ revertAll = 1;
878
+ }
879
+
880
+ if( revisionOptNotSupported ){
881
+ fossil_fatal("directories or the entire tree can only be reverted"
882
+ " back to current version");
883
+ }
884
+
885
+ if ( revertAll ){
837886
int vid;
838887
vid = db_lget_int("checkout", 0);
839888
vfile_check_signature(vid, 0);
840889
db_multi_exec(
841890
"DELETE FROM vmerge;"
@@ -843,10 +892,11 @@
843892
" SELECT pathname"
844893
" FROM vfile "
845894
" WHERE chnged OR deleted OR rid=0 OR pathname!=origname;"
846895
);
847896
}
897
+
848898
db_multi_exec(
849899
"INSERT OR IGNORE INTO torevert"
850900
" SELECT origname"
851901
" FROM vfile"
852902
" WHERE origname!=pathname AND pathname IN (SELECT name FROM torevert);"
853903
--- src/update.c
+++ src/update.c
@@ -765,28 +765,31 @@
765 }
766
767 /*
768 ** COMMAND: revert
769 **
770 ** Usage: %fossil revert ?-r REVISION? ?FILE ...?
771 **
772 ** Revert to the current repository version of FILE, or to
773 ** the version associated with baseline REVISION if the -r flag
774 ** appears.
775 **
776 ** If FILE was part of a rename operation, both the original file
777 ** and the renamed file are reverted.
 
 
 
778 **
779 ** Revert all files if no file name is provided.
780 **
781 ** If a file is reverted accidentally, it can be restored using
782 ** the "fossil undo" command.
783 **
784 ** Options:
785 ** -r REVISION revert given FILE(s) back to given REVISION
 
786 **
787 ** See also: redo, undo, update
788 */
789 void revert_cmd(void){
790 Manifest *pCoManifest; /* Manifest of current checkout */
791 Manifest *pRvManifest; /* Manifest of selected revert version */
792 ManifestFile *pCoFile; /* File within current checkout manifest */
@@ -794,20 +797,23 @@
794 const char *zFile; /* Filename relative to checkout root */
795 const char *zRevision; /* Selected revert version, NULL if current */
796 Blob record = BLOB_INITIALIZER; /* Contents of each reverted file */
797 int i;
798 Stmt q;
 
 
799
800 undo_capture_command_line();
801 zRevision = find_option("revision", "r", 1);
802 verify_all_options();
803
804 if( g.argc<2 ){
805 usage("?OPTIONS? [FILE] ...");
806 }
807 if( zRevision && g.argc<3 ){
808 fossil_fatal("the --revision option does not work for the entire tree");
 
809 }
810 db_must_be_within_tree();
811
812 /* Get manifests of revert version and (if different) current checkout. */
813 pRvManifest = historical_manifest(zRevision);
@@ -821,21 +827,64 @@
821 for(i=2; i<g.argc; i++){
822 Blob fname;
823 zFile = mprintf("%/", g.argv[i]);
824 blob_zero(&fname);
825 file_tree_name(zFile, &fname, 0, 1);
826 db_multi_exec(
827 "REPLACE INTO torevert VALUES(%B);"
828 "INSERT OR IGNORE INTO torevert"
829 " SELECT pathname"
830 " FROM vfile"
831 " WHERE origname=%B;",
832 &fname, &fname
833 );
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
834 blob_reset(&fname);
835 }
836 }else{
 
 
 
 
 
 
 
 
 
837 int vid;
838 vid = db_lget_int("checkout", 0);
839 vfile_check_signature(vid, 0);
840 db_multi_exec(
841 "DELETE FROM vmerge;"
@@ -843,10 +892,11 @@
843 " SELECT pathname"
844 " FROM vfile "
845 " WHERE chnged OR deleted OR rid=0 OR pathname!=origname;"
846 );
847 }
 
848 db_multi_exec(
849 "INSERT OR IGNORE INTO torevert"
850 " SELECT origname"
851 " FROM vfile"
852 " WHERE origname!=pathname AND pathname IN (SELECT name FROM torevert);"
853
--- src/update.c
+++ src/update.c
@@ -765,28 +765,31 @@
765 }
766
767 /*
768 ** COMMAND: revert
769 **
770 ** Usage: %fossil revert ?OPTIONS? ?FILE ...?
771 **
772 ** Revert to the current repository version of FILE, or to
773 ** the baseline VERSION specified with -r flag.
 
774 **
775 ** If FILE was part of a rename operation, both the original file
776 ** and the renamed file are reverted.
777 **
778 ** Using a directory name for any of the FILE arguments is the same
779 ** as using every subdirectory and file beneath that directory.
780 **
781 ** Revert all files if no file name is provided.
782 **
783 ** If a file is reverted accidentally, it can be restored using
784 ** the "fossil undo" command.
785 **
786 ** Options:
787 ** -r|--revision VERSION Revert given FILE(s) back to given
788 ** VERSION
789 **
790 ** See also: redo, undo, checkout, update
791 */
792 void revert_cmd(void){
793 Manifest *pCoManifest; /* Manifest of current checkout */
794 Manifest *pRvManifest; /* Manifest of selected revert version */
795 ManifestFile *pCoFile; /* File within current checkout manifest */
@@ -794,20 +797,23 @@
797 const char *zFile; /* Filename relative to checkout root */
798 const char *zRevision; /* Selected revert version, NULL if current */
799 Blob record = BLOB_INITIALIZER; /* Contents of each reverted file */
800 int i;
801 Stmt q;
802 int revertAll = 0;
803 int revisionOptNotSupported = 0;
804
805 undo_capture_command_line();
806 zRevision = find_option("revision", "r", 1);
807 verify_all_options();
808
809 if( g.argc<2 ){
810 usage("?OPTIONS? [FILE] ...");
811 }
812 if( zRevision && g.argc<3 ){
813 fossil_fatal("directories or the entire tree can only be reverted"
814 " back to current version");
815 }
816 db_must_be_within_tree();
817
818 /* Get manifests of revert version and (if different) current checkout. */
819 pRvManifest = historical_manifest(zRevision);
@@ -821,21 +827,64 @@
827 for(i=2; i<g.argc; i++){
828 Blob fname;
829 zFile = mprintf("%/", g.argv[i]);
830 blob_zero(&fname);
831 file_tree_name(zFile, &fname, 0, 1);
832 if( blob_eq(&fname, ".") ){
833 if( zRevision ){
834 revisionOptNotSupported = 1;
835 break;
836 }
837 revertAll = 1;
838 break;
839 }else if( db_exists(
840 "SELECT pathname"
841 " FROM vfile"
842 " WHERE (substr(pathname,1,length('%q/'))='%q/'"
843 " OR substr(origname,1,length('%q/'))='%q/');",
844 blob_str(&fname), blob_str(&fname),
845 blob_str(&fname), blob_str(&fname)) ){
846 int vid;
847 vid = db_lget_int("checkout", 0);
848 vfile_check_signature(vid, 0);
849
850 if( zRevision ){
851 revisionOptNotSupported = 1;
852 break;
853 }
854 db_multi_exec(
855 "INSERT OR IGNORE INTO torevert"
856 " SELECT pathname"
857 " FROM vfile"
858 " WHERE (substr(pathname,1,length('%q/'))='%q/'"
859 " OR substr(origname,1,length('%q/'))='%q/')"
860 " AND (chnged OR deleted OR rid=0 OR pathname!=origname);",
861 blob_str(&fname), blob_str(&fname),
862 blob_str(&fname), blob_str(&fname)
863 );
864 }else{
865 db_multi_exec(
866 "REPLACE INTO torevert VALUES(%B);"
867 "INSERT OR IGNORE INTO torevert"
868 " SELECT pathname"
869 " FROM vfile"
870 " WHERE origname=%B;",
871 &fname, &fname
872 );
873 }
874 blob_reset(&fname);
875 }
876 }else{
877 revertAll = 1;
878 }
879
880 if( revisionOptNotSupported ){
881 fossil_fatal("directories or the entire tree can only be reverted"
882 " back to current version");
883 }
884
885 if ( revertAll ){
886 int vid;
887 vid = db_lget_int("checkout", 0);
888 vfile_check_signature(vid, 0);
889 db_multi_exec(
890 "DELETE FROM vmerge;"
@@ -843,10 +892,11 @@
892 " SELECT pathname"
893 " FROM vfile "
894 " WHERE chnged OR deleted OR rid=0 OR pathname!=origname;"
895 );
896 }
897
898 db_multi_exec(
899 "INSERT OR IGNORE INTO torevert"
900 " SELECT origname"
901 " FROM vfile"
902 " WHERE origname!=pathname AND pathname IN (SELECT name FROM torevert);"
903
+140
--- src/util.c
+++ src/util.c
@@ -155,10 +155,124 @@
155155
zIn++;
156156
}
157157
}
158158
return zStart;
159159
}
160
+
161
+/*
162
+** If this local variable is set, fossil_assert_safe_command_string()
163
+** returns false on an unsafe command-string rather than abort. Set
164
+** this variable for testing.
165
+*/
166
+static int safeCmdStrTest = 0;
167
+
168
+/*
169
+** Check the input string to ensure that it is safe to pass into system().
170
+** A string is unsafe for system() on unix if it contains any of the following:
171
+**
172
+** * Any occurrance of '$' or '`' except after \
173
+** * Any of the following characters, unquoted: ;|& or \n except
174
+** these characters are allowed as the very last character in the
175
+** string.
176
+** * Unbalanced single or double quotes
177
+**
178
+** This routine is intended as a second line of defense against attack.
179
+** It should never fail. Dangerous shell strings should be detected and
180
+** fixed before calling fossil_system(). This routine serves only as a
181
+** safety net in case of bugs elsewhere in the system.
182
+**
183
+** If an unsafe string is seen, either abort (default) or print
184
+** a warning message (if safeCmdStrTest is true).
185
+*/
186
+static void fossil_assert_safe_command_string(const char *z){
187
+ int unsafe = 0;
188
+#ifndef _WIN32
189
+ /* Unix */
190
+ int inQuote = 0;
191
+ int i, c;
192
+ for(i=0; !unsafe && (c = z[i])!=0; i++){
193
+ switch( c ){
194
+ case '$':
195
+ case '`': {
196
+ if( inQuote!='\'' ) unsafe = i+1;
197
+ break;
198
+ }
199
+ case ';':
200
+ case '|':
201
+ case '&':
202
+ case '\n': {
203
+ if( inQuote!='\'' && z[i+1]!=0 ) unsafe = i+1;
204
+ break;
205
+ }
206
+ case '"':
207
+ case '\'': {
208
+ if( inQuote==0 ){
209
+ inQuote = c;
210
+ }else if( inQuote==c ){
211
+ inQuote = 0;
212
+ }
213
+ break;
214
+ }
215
+ case '\\': {
216
+ if( z[i+1]==0 ){
217
+ unsafe = i+1;
218
+ }else if( inQuote!='\'' ){
219
+ i++;
220
+ }
221
+ break;
222
+ }
223
+ }
224
+ }
225
+ if( inQuote ) unsafe = i;
226
+#else
227
+ /* Windows */
228
+ int i, c;
229
+ int inQuote = 0;
230
+ for(i=0; !unsafe && (c = z[i])!=0; i++){
231
+ switch( c ){
232
+ case '>':
233
+ case '<':
234
+ case '|':
235
+ case '&':
236
+ case '\n': {
237
+ if( inQuote==0 && z[i+1]!=0 ) unsafe = i+1;
238
+ break;
239
+ }
240
+ case '\\': {
241
+ if( z[i+1]=='"' ){ i++; }
242
+ break;
243
+ }
244
+ case '"': {
245
+ if( inQuote==c ){
246
+ inQuote = 0;
247
+ }else{
248
+ inQuote = c;
249
+ }
250
+ break;
251
+ }
252
+ case '^': {
253
+ if( z[i+1]=='"' ){
254
+ unsafe = i+2;
255
+ }else if( z[i+1]!=0 ){
256
+ i++;
257
+ }
258
+ break;
259
+ }
260
+ }
261
+ }
262
+ if( inQuote ) unsafe = i;
263
+#endif
264
+ if( unsafe ){
265
+ char *zMsg = mprintf("Unsafe command string: %s\n%*shere ----^",
266
+ z, unsafe+13, "");
267
+ if( safeCmdStrTest ){
268
+ fossil_print("%z\n", zMsg);
269
+ }else{
270
+ fossil_panic("%s", zMsg);
271
+ }
272
+ }
273
+}
160274
161275
/*
162276
** This function implements a cross-platform "system()" interface.
163277
*/
164278
int fossil_system(const char *zOrigCmd){
@@ -170,17 +284,19 @@
170284
char *zNewCmd = mprintf("\"%s\"", zOrigCmd);
171285
wchar_t *zUnicode = fossil_utf8_to_unicode(zNewCmd);
172286
if( g.fSystemTrace ) {
173287
fossil_trace("SYSTEM: %s\n", zNewCmd);
174288
}
289
+ fossil_assert_safe_command_string(zOrigCmd);
175290
rc = _wsystem(zUnicode);
176291
fossil_unicode_free(zUnicode);
177292
free(zNewCmd);
178293
#else
179294
/* On unix, evaluate the command directly.
180295
*/
181296
if( g.fSystemTrace ) fprintf(stderr, "SYSTEM: %s\n", zOrigCmd);
297
+ fossil_assert_safe_command_string(zOrigCmd);
182298
183299
/* Unix systems should never shell-out while processing an HTTP request,
184300
** either via CGI, SCGI, or direct HTTP. The following assert verifies
185301
** this. And the following assert proves that Fossil is not vulnerable
186302
** to the ShellShock or BashDoor bug.
@@ -192,10 +308,34 @@
192308
rc = system(zOrigCmd);
193309
fossil_limit_memory(1);
194310
#endif
195311
return rc;
196312
}
313
+
314
+/*
315
+** COMMAND: test-fossil-system
316
+**
317
+** Read lines of input and send them to fossil_system() for evaluation.
318
+** Use this command to verify that fossil_system() will not run "unsafe"
319
+** commands.
320
+*/
321
+void test_fossil_system_cmd(void){
322
+ char zLine[10000];
323
+ safeCmdStrTest = 1;
324
+ while(1){
325
+ size_t n;
326
+ printf("system-test> ");
327
+ fflush(stdout);
328
+ if( !fgets(zLine, sizeof(zLine), stdin) ) break;
329
+ n = strlen(zLine);
330
+ while( n>0 && fossil_isspace(zLine[n-1]) ) n--;
331
+ zLine[n] = 0;
332
+ printf("cmd: [%s]\n", zLine);
333
+ fflush(stdout);
334
+ fossil_system(zLine);
335
+ }
336
+}
197337
198338
/*
199339
** Like strcmp() except that it accepts NULL pointers. NULL sorts before
200340
** all non-NULL string pointers. Also, this strcmp() is a binary comparison
201341
** that does not consider locale.
202342
--- src/util.c
+++ src/util.c
@@ -155,10 +155,124 @@
155 zIn++;
156 }
157 }
158 return zStart;
159 }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
160
161 /*
162 ** This function implements a cross-platform "system()" interface.
163 */
164 int fossil_system(const char *zOrigCmd){
@@ -170,17 +284,19 @@
170 char *zNewCmd = mprintf("\"%s\"", zOrigCmd);
171 wchar_t *zUnicode = fossil_utf8_to_unicode(zNewCmd);
172 if( g.fSystemTrace ) {
173 fossil_trace("SYSTEM: %s\n", zNewCmd);
174 }
 
175 rc = _wsystem(zUnicode);
176 fossil_unicode_free(zUnicode);
177 free(zNewCmd);
178 #else
179 /* On unix, evaluate the command directly.
180 */
181 if( g.fSystemTrace ) fprintf(stderr, "SYSTEM: %s\n", zOrigCmd);
 
182
183 /* Unix systems should never shell-out while processing an HTTP request,
184 ** either via CGI, SCGI, or direct HTTP. The following assert verifies
185 ** this. And the following assert proves that Fossil is not vulnerable
186 ** to the ShellShock or BashDoor bug.
@@ -192,10 +308,34 @@
192 rc = system(zOrigCmd);
193 fossil_limit_memory(1);
194 #endif
195 return rc;
196 }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
197
198 /*
199 ** Like strcmp() except that it accepts NULL pointers. NULL sorts before
200 ** all non-NULL string pointers. Also, this strcmp() is a binary comparison
201 ** that does not consider locale.
202
--- src/util.c
+++ src/util.c
@@ -155,10 +155,124 @@
155 zIn++;
156 }
157 }
158 return zStart;
159 }
160
161 /*
162 ** If this local variable is set, fossil_assert_safe_command_string()
163 ** returns false on an unsafe command-string rather than abort. Set
164 ** this variable for testing.
165 */
166 static int safeCmdStrTest = 0;
167
168 /*
169 ** Check the input string to ensure that it is safe to pass into system().
170 ** A string is unsafe for system() on unix if it contains any of the following:
171 **
172 ** * Any occurrance of '$' or '`' except after \
173 ** * Any of the following characters, unquoted: ;|& or \n except
174 ** these characters are allowed as the very last character in the
175 ** string.
176 ** * Unbalanced single or double quotes
177 **
178 ** This routine is intended as a second line of defense against attack.
179 ** It should never fail. Dangerous shell strings should be detected and
180 ** fixed before calling fossil_system(). This routine serves only as a
181 ** safety net in case of bugs elsewhere in the system.
182 **
183 ** If an unsafe string is seen, either abort (default) or print
184 ** a warning message (if safeCmdStrTest is true).
185 */
186 static void fossil_assert_safe_command_string(const char *z){
187 int unsafe = 0;
188 #ifndef _WIN32
189 /* Unix */
190 int inQuote = 0;
191 int i, c;
192 for(i=0; !unsafe && (c = z[i])!=0; i++){
193 switch( c ){
194 case '$':
195 case '`': {
196 if( inQuote!='\'' ) unsafe = i+1;
197 break;
198 }
199 case ';':
200 case '|':
201 case '&':
202 case '\n': {
203 if( inQuote!='\'' && z[i+1]!=0 ) unsafe = i+1;
204 break;
205 }
206 case '"':
207 case '\'': {
208 if( inQuote==0 ){
209 inQuote = c;
210 }else if( inQuote==c ){
211 inQuote = 0;
212 }
213 break;
214 }
215 case '\\': {
216 if( z[i+1]==0 ){
217 unsafe = i+1;
218 }else if( inQuote!='\'' ){
219 i++;
220 }
221 break;
222 }
223 }
224 }
225 if( inQuote ) unsafe = i;
226 #else
227 /* Windows */
228 int i, c;
229 int inQuote = 0;
230 for(i=0; !unsafe && (c = z[i])!=0; i++){
231 switch( c ){
232 case '>':
233 case '<':
234 case '|':
235 case '&':
236 case '\n': {
237 if( inQuote==0 && z[i+1]!=0 ) unsafe = i+1;
238 break;
239 }
240 case '\\': {
241 if( z[i+1]=='"' ){ i++; }
242 break;
243 }
244 case '"': {
245 if( inQuote==c ){
246 inQuote = 0;
247 }else{
248 inQuote = c;
249 }
250 break;
251 }
252 case '^': {
253 if( z[i+1]=='"' ){
254 unsafe = i+2;
255 }else if( z[i+1]!=0 ){
256 i++;
257 }
258 break;
259 }
260 }
261 }
262 if( inQuote ) unsafe = i;
263 #endif
264 if( unsafe ){
265 char *zMsg = mprintf("Unsafe command string: %s\n%*shere ----^",
266 z, unsafe+13, "");
267 if( safeCmdStrTest ){
268 fossil_print("%z\n", zMsg);
269 }else{
270 fossil_panic("%s", zMsg);
271 }
272 }
273 }
274
275 /*
276 ** This function implements a cross-platform "system()" interface.
277 */
278 int fossil_system(const char *zOrigCmd){
@@ -170,17 +284,19 @@
284 char *zNewCmd = mprintf("\"%s\"", zOrigCmd);
285 wchar_t *zUnicode = fossil_utf8_to_unicode(zNewCmd);
286 if( g.fSystemTrace ) {
287 fossil_trace("SYSTEM: %s\n", zNewCmd);
288 }
289 fossil_assert_safe_command_string(zOrigCmd);
290 rc = _wsystem(zUnicode);
291 fossil_unicode_free(zUnicode);
292 free(zNewCmd);
293 #else
294 /* On unix, evaluate the command directly.
295 */
296 if( g.fSystemTrace ) fprintf(stderr, "SYSTEM: %s\n", zOrigCmd);
297 fossil_assert_safe_command_string(zOrigCmd);
298
299 /* Unix systems should never shell-out while processing an HTTP request,
300 ** either via CGI, SCGI, or direct HTTP. The following assert verifies
301 ** this. And the following assert proves that Fossil is not vulnerable
302 ** to the ShellShock or BashDoor bug.
@@ -192,10 +308,34 @@
308 rc = system(zOrigCmd);
309 fossil_limit_memory(1);
310 #endif
311 return rc;
312 }
313
314 /*
315 ** COMMAND: test-fossil-system
316 **
317 ** Read lines of input and send them to fossil_system() for evaluation.
318 ** Use this command to verify that fossil_system() will not run "unsafe"
319 ** commands.
320 */
321 void test_fossil_system_cmd(void){
322 char zLine[10000];
323 safeCmdStrTest = 1;
324 while(1){
325 size_t n;
326 printf("system-test> ");
327 fflush(stdout);
328 if( !fgets(zLine, sizeof(zLine), stdin) ) break;
329 n = strlen(zLine);
330 while( n>0 && fossil_isspace(zLine[n-1]) ) n--;
331 zLine[n] = 0;
332 printf("cmd: [%s]\n", zLine);
333 fflush(stdout);
334 fossil_system(zLine);
335 }
336 }
337
338 /*
339 ** Like strcmp() except that it accepts NULL pointers. NULL sorts before
340 ** all non-NULL string pointers. Also, this strcmp() is a binary comparison
341 ** that does not consider locale.
342
+12
--- src/wiki.c
+++ src/wiki.c
@@ -188,17 +188,20 @@
188188
** Render wiki text according to its mimetype.
189189
**
190190
** text/x-fossil-wiki Fossil wiki
191191
** text/x-markdown Markdown
192192
** anything else... Plain text
193
+**
194
+** If zMimetype is a null pointer, then use "text/x-fossil-wiki".
193195
*/
194196
void wiki_render_by_mimetype(Blob *pWiki, const char *zMimetype){
195197
if( zMimetype==0 || fossil_strcmp(zMimetype, "text/x-fossil-wiki")==0 ){
196198
wiki_convert(pWiki, 0, 0);
197199
}else if( fossil_strcmp(zMimetype, "text/x-markdown")==0 ){
198200
Blob tail = BLOB_INITIALIZER;
199201
markdown_to_html(pWiki, 0, &tail);
202
+ safe_html(&tail);
200203
@ %s(blob_str(&tail))
201204
blob_reset(&tail);
202205
}else{
203206
@ <pre class='textPlain'>
204207
@ %h(blob_str(pWiki))
@@ -220,10 +223,11 @@
220223
}else{
221224
style_submenu_element("Plain-Text", "%R/md_rules?txt=1");
222225
}
223226
blob_init(&x, builtin_text("markdown.md"), -1);
224227
blob_materialize(&x);
228
+ safe_html_context(DOCSRC_TRUSTED);
225229
wiki_render_by_mimetype(&x, fTxt ? "text/plain" : "text/x-markdown");
226230
blob_reset(&x);
227231
style_footer();
228232
}
229233
@@ -241,10 +245,11 @@
241245
}else{
242246
style_submenu_element("Plain-Text", "%R/wiki_rules?txt=1");
243247
}
244248
blob_init(&x, builtin_text("wiki.wiki"), -1);
245249
blob_materialize(&x);
250
+ safe_html_context(DOCSRC_TRUSTED);
246251
wiki_render_by_mimetype(&x, fTxt ? "text/plain" : "text/x-fossil-wiki");
247252
blob_reset(&x);
248253
style_footer();
249254
}
250255
@@ -558,10 +563,11 @@
558563
}
559564
if( zBody[0]==0 ){
560565
@ <i>This page has been deleted</i>
561566
}else{
562567
blob_init(&wiki, zBody, -1);
568
+ safe_html_context(DOCSRC_WIKI);
563569
wiki_render_by_mimetype(&wiki, zMimetype);
564570
blob_reset(&wiki);
565571
}
566572
attachment_list(zPageName, "<hr /><h2>Attachments:</h2><ul>");
567573
manifest_destroy(pWiki);
@@ -745,10 +751,11 @@
745751
blob_append(&wiki, zBody, -1);
746752
if( P("preview")!=0 ){
747753
havePreview = 1;
748754
if( zBody[0] ){
749755
@ Preview:<hr />
756
+ safe_html_context(DOCSRC_WIKI);
750757
wiki_render_by_mimetype(&wiki, zMimetype);
751758
@ <hr />
752759
blob_reset(&wiki);
753760
}
754761
}
@@ -1007,10 +1014,11 @@
10071014
if( P("preview")!=0 ){
10081015
Blob preview;
10091016
blob_zero(&preview);
10101017
appendRemark(&preview, zMimetype);
10111018
@ Preview:<hr />
1019
+ safe_html_context(DOCSRC_WIKI);
10121020
wiki_render_by_mimetype(&preview, zMimetype);
10131021
@ <hr />
10141022
blob_reset(&preview);
10151023
}
10161024
zUser = PD("u", g.zLogin);
@@ -1558,10 +1566,12 @@
15581566
** input blob before appending the output, which is
15591567
** different from wiki_convert() and htmlize_to_blob(), and
15601568
** precludes us simply appending the opening <html><body>
15611569
** part to the body
15621570
*/;
1571
+ safe_html_context(DOCSRC_WIKI);
1572
+ safe_html(&html);
15631573
}else if( fossil_strcmp(zMimetype, "text/plain")==0 ){
15641574
htmlize_to_blob(&html,zBody,i);
15651575
}else{
15661576
fossil_fatal("Unsupported MIME type '%s' for wiki page '%s'.",
15671577
zMimetype, pWiki->zWikiTitle );
@@ -1799,10 +1809,12 @@
17991809
}else{
18001810
wiki_section_label(zPrefix, zName, mFlags);
18011811
}
18021812
wiki_submenu_to_edit_wiki(zPrefix, zName, mFlags);
18031813
@ <div class="accordion_panel">
1814
+ safe_html_context(DOCSRC_WIKI);
1815
+ safe_html(&tail);
18041816
convert_href_and_output(&tail);
18051817
@ </div>
18061818
blob_reset(&tail);
18071819
blob_reset(&title);
18081820
blob_reset(&markdown);
18091821
--- src/wiki.c
+++ src/wiki.c
@@ -188,17 +188,20 @@
188 ** Render wiki text according to its mimetype.
189 **
190 ** text/x-fossil-wiki Fossil wiki
191 ** text/x-markdown Markdown
192 ** anything else... Plain text
 
 
193 */
194 void wiki_render_by_mimetype(Blob *pWiki, const char *zMimetype){
195 if( zMimetype==0 || fossil_strcmp(zMimetype, "text/x-fossil-wiki")==0 ){
196 wiki_convert(pWiki, 0, 0);
197 }else if( fossil_strcmp(zMimetype, "text/x-markdown")==0 ){
198 Blob tail = BLOB_INITIALIZER;
199 markdown_to_html(pWiki, 0, &tail);
 
200 @ %s(blob_str(&tail))
201 blob_reset(&tail);
202 }else{
203 @ <pre class='textPlain'>
204 @ %h(blob_str(pWiki))
@@ -220,10 +223,11 @@
220 }else{
221 style_submenu_element("Plain-Text", "%R/md_rules?txt=1");
222 }
223 blob_init(&x, builtin_text("markdown.md"), -1);
224 blob_materialize(&x);
 
225 wiki_render_by_mimetype(&x, fTxt ? "text/plain" : "text/x-markdown");
226 blob_reset(&x);
227 style_footer();
228 }
229
@@ -241,10 +245,11 @@
241 }else{
242 style_submenu_element("Plain-Text", "%R/wiki_rules?txt=1");
243 }
244 blob_init(&x, builtin_text("wiki.wiki"), -1);
245 blob_materialize(&x);
 
246 wiki_render_by_mimetype(&x, fTxt ? "text/plain" : "text/x-fossil-wiki");
247 blob_reset(&x);
248 style_footer();
249 }
250
@@ -558,10 +563,11 @@
558 }
559 if( zBody[0]==0 ){
560 @ <i>This page has been deleted</i>
561 }else{
562 blob_init(&wiki, zBody, -1);
 
563 wiki_render_by_mimetype(&wiki, zMimetype);
564 blob_reset(&wiki);
565 }
566 attachment_list(zPageName, "<hr /><h2>Attachments:</h2><ul>");
567 manifest_destroy(pWiki);
@@ -745,10 +751,11 @@
745 blob_append(&wiki, zBody, -1);
746 if( P("preview")!=0 ){
747 havePreview = 1;
748 if( zBody[0] ){
749 @ Preview:<hr />
 
750 wiki_render_by_mimetype(&wiki, zMimetype);
751 @ <hr />
752 blob_reset(&wiki);
753 }
754 }
@@ -1007,10 +1014,11 @@
1007 if( P("preview")!=0 ){
1008 Blob preview;
1009 blob_zero(&preview);
1010 appendRemark(&preview, zMimetype);
1011 @ Preview:<hr />
 
1012 wiki_render_by_mimetype(&preview, zMimetype);
1013 @ <hr />
1014 blob_reset(&preview);
1015 }
1016 zUser = PD("u", g.zLogin);
@@ -1558,10 +1566,12 @@
1558 ** input blob before appending the output, which is
1559 ** different from wiki_convert() and htmlize_to_blob(), and
1560 ** precludes us simply appending the opening <html><body>
1561 ** part to the body
1562 */;
 
 
1563 }else if( fossil_strcmp(zMimetype, "text/plain")==0 ){
1564 htmlize_to_blob(&html,zBody,i);
1565 }else{
1566 fossil_fatal("Unsupported MIME type '%s' for wiki page '%s'.",
1567 zMimetype, pWiki->zWikiTitle );
@@ -1799,10 +1809,12 @@
1799 }else{
1800 wiki_section_label(zPrefix, zName, mFlags);
1801 }
1802 wiki_submenu_to_edit_wiki(zPrefix, zName, mFlags);
1803 @ <div class="accordion_panel">
 
 
1804 convert_href_and_output(&tail);
1805 @ </div>
1806 blob_reset(&tail);
1807 blob_reset(&title);
1808 blob_reset(&markdown);
1809
--- src/wiki.c
+++ src/wiki.c
@@ -188,17 +188,20 @@
188 ** Render wiki text according to its mimetype.
189 **
190 ** text/x-fossil-wiki Fossil wiki
191 ** text/x-markdown Markdown
192 ** anything else... Plain text
193 **
194 ** If zMimetype is a null pointer, then use "text/x-fossil-wiki".
195 */
196 void wiki_render_by_mimetype(Blob *pWiki, const char *zMimetype){
197 if( zMimetype==0 || fossil_strcmp(zMimetype, "text/x-fossil-wiki")==0 ){
198 wiki_convert(pWiki, 0, 0);
199 }else if( fossil_strcmp(zMimetype, "text/x-markdown")==0 ){
200 Blob tail = BLOB_INITIALIZER;
201 markdown_to_html(pWiki, 0, &tail);
202 safe_html(&tail);
203 @ %s(blob_str(&tail))
204 blob_reset(&tail);
205 }else{
206 @ <pre class='textPlain'>
207 @ %h(blob_str(pWiki))
@@ -220,10 +223,11 @@
223 }else{
224 style_submenu_element("Plain-Text", "%R/md_rules?txt=1");
225 }
226 blob_init(&x, builtin_text("markdown.md"), -1);
227 blob_materialize(&x);
228 safe_html_context(DOCSRC_TRUSTED);
229 wiki_render_by_mimetype(&x, fTxt ? "text/plain" : "text/x-markdown");
230 blob_reset(&x);
231 style_footer();
232 }
233
@@ -241,10 +245,11 @@
245 }else{
246 style_submenu_element("Plain-Text", "%R/wiki_rules?txt=1");
247 }
248 blob_init(&x, builtin_text("wiki.wiki"), -1);
249 blob_materialize(&x);
250 safe_html_context(DOCSRC_TRUSTED);
251 wiki_render_by_mimetype(&x, fTxt ? "text/plain" : "text/x-fossil-wiki");
252 blob_reset(&x);
253 style_footer();
254 }
255
@@ -558,10 +563,11 @@
563 }
564 if( zBody[0]==0 ){
565 @ <i>This page has been deleted</i>
566 }else{
567 blob_init(&wiki, zBody, -1);
568 safe_html_context(DOCSRC_WIKI);
569 wiki_render_by_mimetype(&wiki, zMimetype);
570 blob_reset(&wiki);
571 }
572 attachment_list(zPageName, "<hr /><h2>Attachments:</h2><ul>");
573 manifest_destroy(pWiki);
@@ -745,10 +751,11 @@
751 blob_append(&wiki, zBody, -1);
752 if( P("preview")!=0 ){
753 havePreview = 1;
754 if( zBody[0] ){
755 @ Preview:<hr />
756 safe_html_context(DOCSRC_WIKI);
757 wiki_render_by_mimetype(&wiki, zMimetype);
758 @ <hr />
759 blob_reset(&wiki);
760 }
761 }
@@ -1007,10 +1014,11 @@
1014 if( P("preview")!=0 ){
1015 Blob preview;
1016 blob_zero(&preview);
1017 appendRemark(&preview, zMimetype);
1018 @ Preview:<hr />
1019 safe_html_context(DOCSRC_WIKI);
1020 wiki_render_by_mimetype(&preview, zMimetype);
1021 @ <hr />
1022 blob_reset(&preview);
1023 }
1024 zUser = PD("u", g.zLogin);
@@ -1558,10 +1566,12 @@
1566 ** input blob before appending the output, which is
1567 ** different from wiki_convert() and htmlize_to_blob(), and
1568 ** precludes us simply appending the opening <html><body>
1569 ** part to the body
1570 */;
1571 safe_html_context(DOCSRC_WIKI);
1572 safe_html(&html);
1573 }else if( fossil_strcmp(zMimetype, "text/plain")==0 ){
1574 htmlize_to_blob(&html,zBody,i);
1575 }else{
1576 fossil_fatal("Unsupported MIME type '%s' for wiki page '%s'.",
1577 zMimetype, pWiki->zWikiTitle );
@@ -1799,10 +1809,12 @@
1809 }else{
1810 wiki_section_label(zPrefix, zName, mFlags);
1811 }
1812 wiki_submenu_to_edit_wiki(zPrefix, zName, mFlags);
1813 @ <div class="accordion_panel">
1814 safe_html_context(DOCSRC_WIKI);
1815 safe_html(&tail);
1816 convert_href_and_output(&tail);
1817 @ </div>
1818 blob_reset(&tail);
1819 blob_reset(&title);
1820 blob_reset(&markdown);
1821
+322 -14
--- src/wikiformat.c
+++ src/wikiformat.c
@@ -31,10 +31,11 @@
3131
#define WIKI_BUTTONS 0x008 /* Allow sub-menu buttons */
3232
#define WIKI_NOBADLINKS 0x010 /* Ignore broken hyperlinks */
3333
#define WIKI_LINKSONLY 0x020 /* No markup. Only decorate links */
3434
#define WIKI_NEWLINE 0x040 /* Honor \n - break lines at each \n */
3535
#define WIKI_MARKDOWNLINKS 0x080 /* Resolve hyperlinks as in markdown */
36
+#define WIKI_SAFE 0x100 /* Make the result safe for embedding */
3637
#endif
3738
3839
3940
/*
4041
** These are the only markup attributes allowed.
@@ -248,10 +249,13 @@
248249
#define MUTYPE_TABLE 0x0040 /* <table> */
249250
#define MUTYPE_TR 0x0080 /* <tr> */
250251
#define MUTYPE_TD 0x0100 /* <td> or <th> */
251252
#define MUTYPE_SPECIAL 0x0200 /* <nowiki> or <verbatim> */
252253
#define MUTYPE_HYPERLINK 0x0400 /* <a> */
254
+
255
+/* MUTYPE values for elements that require strictly nested end-tags */
256
+#define MUTYPE_Nested 0x0656
253257
254258
/*
255259
** These markup types must have an end tag.
256260
*/
257261
#define MUTYPE_STACK (MUTYPE_BLOCK | MUTYPE_FONT | MUTYPE_LIST | MUTYPE_TABLE)
@@ -469,11 +473,11 @@
469473
** z points to a "<" character. Check to see if this is the start of
470474
** a valid markup. If it is, return the total number of characters in
471475
** the markup including the initial "<" and the terminating ">". If
472476
** it is not well-formed markup, return 0.
473477
*/
474
-int htmlTagLength(const char *z){
478
+int html_tag_length(const char *z){
475479
int n = 1;
476480
int inparen = 0;
477481
int c;
478482
if( z[n]=='/' ){ n++; }
479483
if( !fossil_isalpha(z[n]) ) return 0;
@@ -656,11 +660,11 @@
656660
** characters in that token. Write the token type into *pTokenType.
657661
*/
658662
static int nextWikiToken(const char *z, Renderer *p, int *pTokenType){
659663
int n;
660664
if( z[0]=='<' ){
661
- n = htmlTagLength(z);
665
+ n = html_tag_length(z);
662666
if( n>0 ){
663667
*pTokenType = TOKEN_MARKUP;
664668
return n;
665669
}else{
666670
*pTokenType = TOKEN_CHARACTER;
@@ -1741,13 +1745,10 @@
17411745
Renderer renderer;
17421746
17431747
memset(&renderer, 0, sizeof(renderer));
17441748
renderer.renderFlags = flags;
17451749
renderer.state = ALLOW_WIKI|AT_NEWLINE|AT_PARAGRAPH|flags;
1746
- if( flags & WIKI_NOBLOCK ){
1747
- renderer.state |= INLINE_MARKUP_ONLY;
1748
- }
17491750
if( flags & WIKI_INLINE ){
17501751
renderer.wantAutoParagraph = 0;
17511752
}else{
17521753
renderer.wantAutoParagraph = 1;
17531754
}
@@ -1805,25 +1806,37 @@
18051806
}
18061807
18071808
/*
18081809
** COMMAND: test-markdown-render
18091810
**
1810
-** Usage: %fossil test-markdown-render FILE
1811
+** Usage: %fossil test-markdown-render FILE ...
18111812
**
18121813
** Render markdown in FILE as HTML on stdout.
1814
+** Options:
1815
+**
1816
+** --safe Restrict the output to use only "safe" HTML
18131817
*/
18141818
void test_markdown_render(void){
18151819
Blob in, out;
1820
+ int i;
1821
+ int bSafe = 0;
18161822
db_find_and_open_repository(OPEN_OK_NOT_FOUND|OPEN_SUBSTITUTE,0);
1823
+ bSafe = find_option("safe",0,0)!=0;
18171824
verify_all_options();
1818
- if( g.argc!=3 ) usage("FILE");
1819
- blob_zero(&out);
1820
- blob_read_from_file(&in, g.argv[2], ExtFILE);
1821
- markdown_to_html(&in, 0, &out);
1822
- blob_write_to_file(&out, "-");
1823
- blob_reset(&in);
1824
- blob_reset(&out);
1825
+ for(i=2; i<g.argc; i++){
1826
+ blob_zero(&out);
1827
+ blob_read_from_file(&in, g.argv[i], ExtFILE);
1828
+ if( g.argc>3 ){
1829
+ fossil_print("<!------ %h ------->\n", g.argv[i]);
1830
+ }
1831
+ markdown_to_html(&in, 0, &out);
1832
+ safe_html_context( bSafe ? DOCSRC_UNTRUSTED : DOCSRC_TRUSTED );
1833
+ safe_html(&out);
1834
+ blob_write_to_file(&out, "-");
1835
+ blob_reset(&in);
1836
+ blob_reset(&out);
1837
+ }
18251838
}
18261839
18271840
/*
18281841
** Search for a <title>...</title> at the beginning of a wiki page.
18291842
** Return true (nonzero) if a title is found. Return zero if there is
@@ -2026,11 +2039,11 @@
20262039
*/
20272040
int html_token_length(const char *z){
20282041
int n;
20292042
char c;
20302043
if( (c=z[0])=='<' ){
2031
- n = htmlTagLength(z);
2044
+ n = html_tag_length(z);
20322045
if( n<=0 ) n = 1;
20332046
}else if( fossil_isspace(c) ){
20342047
for(n=1; z[n] && fossil_isspace(z[n]); n++){}
20352048
}else if( c=='&' ){
20362049
n = z[1]=='#' ? 2 : 1;
@@ -2396,5 +2409,300 @@
23962409
blob_reset(&in);
23972410
fossil_puts(blob_str(&out), 0);
23982411
blob_reset(&out);
23992412
}
24002413
}
2414
+
2415
+/****************************************************************************
2416
+** safe-html:
2417
+**
2418
+** An interface for preventing HTML constructs (ex: <style>, <form>, etc)
2419
+** from being inserted into Wiki and Forum posts using Markdown. See the
2420
+** comment on safe_html_append() for additional information on what is meant
2421
+** by "safe".
2422
+**
2423
+** The safe-html restrictions only apply to Markdown, as Fossil-Wiki only
2424
+** allows safe-html by design - unsafe-HTML is never and has never been
2425
+** allowed in Fossil-Wiki.
2426
+**
2427
+** This code is in the wikiformat.c file so that it can have access to the
2428
+** white-list of acceptable HTML in the aMarkup[] array.
2429
+*/
2430
+
2431
+/*
2432
+** An instance of this object keeps track of the nesting of HTML
2433
+** elements for safe_html_append().
2434
+*/
2435
+typedef struct HtmlTagStack HtmlTagStack;
2436
+struct HtmlTagStack {
2437
+ int n; /* Current tag stack depth */
2438
+ int nAlloc; /* Space allocated for aStack[] */
2439
+ int *aStack; /* The stack of tags */
2440
+ int aSpace[10]; /* Initial static space, to avoid malloc() */
2441
+};
2442
+
2443
+/*
2444
+** Initialize bulk memory to a valid empty tagstack.
2445
+*/
2446
+static void html_tagstack_init(HtmlTagStack *p){
2447
+ p->n = 0;
2448
+ p->nAlloc = 0;
2449
+ p->aStack = p->aSpace;
2450
+}
2451
+
2452
+/*
2453
+** Push a new element onto the tag statk
2454
+*/
2455
+static void html_tagstack_push(HtmlTagStack *p, int e){
2456
+ if( p->n>=ArraySize(p->aSpace) && p->n>=p->nAlloc ){
2457
+ if( p->nAlloc==0 ){
2458
+ int *aNew;
2459
+ p->nAlloc = 50;
2460
+ aNew = fossil_malloc( sizeof(p->aStack[0])*p->nAlloc );
2461
+ memcpy(aNew, p->aStack, sizeof(p->aStack[0])*p->n );
2462
+ p->aStack = aNew;
2463
+ }else{
2464
+ p->nAlloc *= 2;
2465
+ p->aStack = fossil_realloc(p->aStack, sizeof(p->aStack[0])*p->nAlloc );
2466
+ }
2467
+ }
2468
+ p->aStack[p->n++] = e;
2469
+}
2470
+
2471
+/*
2472
+** Clear a tag stack, reclaiming any memory allocations.
2473
+*/
2474
+static void html_tagstack_clear(HtmlTagStack *p){
2475
+ if( p->nAlloc ){
2476
+ fossil_free(p->aStack);
2477
+ p->nAlloc = 0;
2478
+ p->aStack = p->aSpace;
2479
+ }
2480
+ p->n = 0;
2481
+}
2482
+
2483
+/*
2484
+** The HTML end-tag eEnd wants to be added to pBlob.
2485
+**
2486
+** If an open-tag for eEnd exists anywhere on the stack, then
2487
+** pop it and all prior elements from the task, issuing appropriate
2488
+** end-tags as you go.
2489
+**
2490
+** If there is no open-tag for eEnd on the stack, then this
2491
+** routine is a no-op.
2492
+*/
2493
+static void html_tagstack_pop(HtmlTagStack *p, Blob *pBlob, int eEnd){
2494
+ int i, e;
2495
+ if( eEnd!=0 ){
2496
+ for(i=p->n-1; i>=0 && p->aStack[i]!=eEnd; i--){}
2497
+ if( i<0 ){
2498
+ blob_appendf(pBlob, "<span class='error'>&lt;/%s&gt;</span>",
2499
+ aMarkup[eEnd].zName);
2500
+ return;
2501
+ }
2502
+ }else if( p->n==0 ){
2503
+ return;
2504
+ }
2505
+ do{
2506
+ e = p->aStack[--p->n];
2507
+ if( e==eEnd || (aMarkup[e].iType & MUTYPE_Nested)!=0 ){
2508
+ blob_appendf(pBlob, "</%s>", aMarkup[e].zName);
2509
+ }
2510
+ }while( e!=eEnd && p->n>0 );
2511
+}
2512
+
2513
+/*
2514
+** Append a safe translation of HTML text to a Blob object.
2515
+**
2516
+** Restriction: The input to this routine must be writable.
2517
+* Temporary changes may be made to the input, but the input is restored
2518
+** to its original state prior to returning. If zHtml[nHtml] is not a
2519
+** zero character, then a zero might be written in that position
2520
+** temporarily, but that slot will also be restored before this routine
2521
+** returns.
2522
+*/
2523
+static void safe_html_append(Blob *pBlob, char *zHtml, int nHtml){
2524
+ char cLast;
2525
+ int i, j, n;
2526
+ HtmlTagStack s;
2527
+ ParsedMarkup markup;
2528
+
2529
+ if( nHtml<=0 ) return;
2530
+ cLast = zHtml[nHtml];
2531
+ zHtml[nHtml] = 0;
2532
+ html_tagstack_init(&s);
2533
+
2534
+ i = 0;
2535
+ while( i<nHtml ){
2536
+ if( zHtml[i]=='<' ){
2537
+ j = i;
2538
+ }else{
2539
+ char *z = strchr(zHtml+i, '<');
2540
+ if( z==0 ){
2541
+ blob_append(pBlob, zHtml+i, nHtml-i);
2542
+ break;
2543
+ }
2544
+ j = (int)(z - zHtml);
2545
+ blob_append(pBlob, zHtml+i, j-i);
2546
+ }
2547
+ n = html_tag_length(zHtml+j);
2548
+ if( n==0 ){
2549
+ blob_append(pBlob, "&lt;", 4);
2550
+ i = j+1;
2551
+ continue;
2552
+ }else{
2553
+ i = j + n;
2554
+ }
2555
+ parseMarkup(&markup, zHtml+j);
2556
+ if( markup.iCode==MARKUP_INVALID ){
2557
+ unparseMarkup(&markup);
2558
+ blob_appendf(pBlob, "<span class='error'>&lt;%.*s&gt;</span>",
2559
+ n-2, zHtml+j+1);
2560
+ continue;
2561
+ }
2562
+ if( (markup.iType & MUTYPE_Nested)==0 || markup.iCode==MARKUP_P ){
2563
+ renderMarkup(pBlob, &markup);
2564
+ }else{
2565
+ if( markup.endTag ){
2566
+ html_tagstack_pop(&s, pBlob, markup.iCode);
2567
+ }else{
2568
+ renderMarkup(pBlob, &markup);
2569
+ html_tagstack_push(&s, markup.iCode);
2570
+ }
2571
+ }
2572
+ unparseMarkup(&markup);
2573
+ }
2574
+ html_tagstack_pop(&s, pBlob, 0);
2575
+ html_tagstack_clear(&s);
2576
+ zHtml[nHtml] = cLast;
2577
+}
2578
+
2579
+/*
2580
+** This local variable is true if the safe_html() function is enabled.
2581
+** In other words, this is true if the output of Markdown should be
2582
+** restricted to use only "safe" HTML.
2583
+*/
2584
+static int safeHtmlEnable = 1;
2585
+
2586
+
2587
+#if INTERFACE
2588
+/*
2589
+** Allowed values for the eTrust parameter to safe_html_context().
2590
+*/
2591
+#define DOCSRC_FILE 1 /* Document is a checked-in file */
2592
+#define DOCSRC_FORUM 2 /* Document is a forum post */
2593
+#define DOCSRC_TICKET 3 /* Document is a ticket comment */
2594
+#define DOCSRC_WIKI 4 /* Document is a wiki page */
2595
+#define DOCSRC_TRUSTED 5 /* safe_html() is always a no-op */
2596
+#define DOCSRC_UNTRUSTED 6 /* safe_html() is always enabled */
2597
+#endif /* INTERFACE */
2598
+
2599
+
2600
+/*
2601
+** Specify the context in which a markdown document with potentially
2602
+** unsafe HTML will be rendered.
2603
+*/
2604
+void safe_html_context(int eTrust){
2605
+ static const char *zSafeHtmlSetting = 0;
2606
+ char cPerm = 0;
2607
+ if( eTrust==DOCSRC_TRUSTED ){
2608
+ safeHtmlEnable = 0;
2609
+ return;
2610
+ }
2611
+ if( eTrust==DOCSRC_UNTRUSTED ){
2612
+ safeHtmlEnable = 1;
2613
+ return;
2614
+ }
2615
+ if( zSafeHtmlSetting==0 ){
2616
+ zSafeHtmlSetting = db_get("safe-html", "");
2617
+ }
2618
+ switch( eTrust ){
2619
+ case DOCSRC_FILE: cPerm = 'b'; break;
2620
+ case DOCSRC_FORUM: cPerm = 'f'; break;
2621
+ case DOCSRC_TICKET: cPerm = 't'; break;
2622
+ case DOCSRC_WIKI: cPerm = 'w'; break;
2623
+ }
2624
+ safeHtmlEnable = (strchr(zSafeHtmlSetting,cPerm)==0);
2625
+}
2626
+
2627
+/*
2628
+** The input blob contains HTML. If safe-html is enabled, then
2629
+** convert the input into "safe HTML". The following modifications
2630
+** are made:
2631
+**
2632
+** 1. Remove any elements that are not on the AllowedMarkup list.
2633
+** (ex: <script>, <form>, etc.)
2634
+**
2635
+** 2. Remove any attributes that are not on the AllowedMarkup list.
2636
+** (ex: onload=, id=, etc.)
2637
+**
2638
+** 3. Omit any surplus close-tags. This prevents the script from
2639
+** terminating an <div> or similar in the outer context.
2640
+**
2641
+** 4. Insert additional close-tags as necessary so that any
2642
+** tag in the input that needs a close-tag has one. This
2643
+** prevents tags in the embedded script from affecting the
2644
+** display of content that follows this script in the enclosing
2645
+** context.
2646
+**
2647
+** This modifications are intended to make the generated HTML safe
2648
+** to be embedded in a larger HTML document, such that the embedded
2649
+** HTML has no influence on the formatting and operation of the
2650
+** larger document.
2651
+**
2652
+** If safe-html is disabled, then this routine is a no-op.
2653
+*/
2654
+void safe_html(Blob *in){
2655
+ Blob out; /* Holding area for the revised text during construction */
2656
+ char *z; /* Original input text */
2657
+ int n; /* Number of bytes in the original input text */
2658
+ int k;
2659
+
2660
+ if( safeHtmlEnable==0 ) return;
2661
+ z = blob_str(in);
2662
+ n = blob_size(in);
2663
+ blob_init(&out, 0, 0);
2664
+ while( fossil_isspace(z[0]) ){ z++; n--; }
2665
+ for(k=n-1; k>5 && fossil_isspace(z[k]); k--){}
2666
+
2667
+ if( fossil_strnicmp(z, "<div",4)==0 && !fossil_isalpha(z[4])
2668
+ && fossil_strnicmp(z+k-5, "</div>",6)==0
2669
+ ){
2670
+ /* The input contains an outer <div>...</div>. Preserve the
2671
+ ** full scope of that <div>. */
2672
+ int m = html_tag_length(z);
2673
+ k -= 5;
2674
+ blob_append(&out, z, m);
2675
+ safe_html_append(&out, z+m, k-m);
2676
+ blob_append(&out, z+k, n-k);
2677
+ }else{
2678
+ safe_html_append(&out, z, n);
2679
+ }
2680
+ blob_reset(in);
2681
+ *in = out;
2682
+}
2683
+
2684
+/*
2685
+** COMMAND: test-safe-html
2686
+**
2687
+** Usage: %fossil test-safe-html FILE ...
2688
+**
2689
+** Read files named on the command-line. Send the text of each file
2690
+** through safe_html_append() and then write the result on
2691
+** standard output.
2692
+*/
2693
+void test_safe_html_cmd(void){
2694
+ int i;
2695
+ Blob x;
2696
+ for(i=2; i<g.argc; i++){
2697
+ char *z;
2698
+ int n;
2699
+ blob_read_from_file(&x, g.argv[i], ExtFILE);
2700
+ blob_terminate(&x);
2701
+ safe_html(&x);
2702
+ z = blob_str(&x);
2703
+ n = blob_size(&x);
2704
+ while( n>0 && (z[n-1]=='\n' || z[n-1]=='\r') ) n--;
2705
+ fossil_print("%.*s\n", n, z);
2706
+ blob_reset(&x);
2707
+ }
2708
+}
24012709
--- src/wikiformat.c
+++ src/wikiformat.c
@@ -31,10 +31,11 @@
31 #define WIKI_BUTTONS 0x008 /* Allow sub-menu buttons */
32 #define WIKI_NOBADLINKS 0x010 /* Ignore broken hyperlinks */
33 #define WIKI_LINKSONLY 0x020 /* No markup. Only decorate links */
34 #define WIKI_NEWLINE 0x040 /* Honor \n - break lines at each \n */
35 #define WIKI_MARKDOWNLINKS 0x080 /* Resolve hyperlinks as in markdown */
 
36 #endif
37
38
39 /*
40 ** These are the only markup attributes allowed.
@@ -248,10 +249,13 @@
248 #define MUTYPE_TABLE 0x0040 /* <table> */
249 #define MUTYPE_TR 0x0080 /* <tr> */
250 #define MUTYPE_TD 0x0100 /* <td> or <th> */
251 #define MUTYPE_SPECIAL 0x0200 /* <nowiki> or <verbatim> */
252 #define MUTYPE_HYPERLINK 0x0400 /* <a> */
 
 
 
253
254 /*
255 ** These markup types must have an end tag.
256 */
257 #define MUTYPE_STACK (MUTYPE_BLOCK | MUTYPE_FONT | MUTYPE_LIST | MUTYPE_TABLE)
@@ -469,11 +473,11 @@
469 ** z points to a "<" character. Check to see if this is the start of
470 ** a valid markup. If it is, return the total number of characters in
471 ** the markup including the initial "<" and the terminating ">". If
472 ** it is not well-formed markup, return 0.
473 */
474 int htmlTagLength(const char *z){
475 int n = 1;
476 int inparen = 0;
477 int c;
478 if( z[n]=='/' ){ n++; }
479 if( !fossil_isalpha(z[n]) ) return 0;
@@ -656,11 +660,11 @@
656 ** characters in that token. Write the token type into *pTokenType.
657 */
658 static int nextWikiToken(const char *z, Renderer *p, int *pTokenType){
659 int n;
660 if( z[0]=='<' ){
661 n = htmlTagLength(z);
662 if( n>0 ){
663 *pTokenType = TOKEN_MARKUP;
664 return n;
665 }else{
666 *pTokenType = TOKEN_CHARACTER;
@@ -1741,13 +1745,10 @@
1741 Renderer renderer;
1742
1743 memset(&renderer, 0, sizeof(renderer));
1744 renderer.renderFlags = flags;
1745 renderer.state = ALLOW_WIKI|AT_NEWLINE|AT_PARAGRAPH|flags;
1746 if( flags & WIKI_NOBLOCK ){
1747 renderer.state |= INLINE_MARKUP_ONLY;
1748 }
1749 if( flags & WIKI_INLINE ){
1750 renderer.wantAutoParagraph = 0;
1751 }else{
1752 renderer.wantAutoParagraph = 1;
1753 }
@@ -1805,25 +1806,37 @@
1805 }
1806
1807 /*
1808 ** COMMAND: test-markdown-render
1809 **
1810 ** Usage: %fossil test-markdown-render FILE
1811 **
1812 ** Render markdown in FILE as HTML on stdout.
 
 
 
1813 */
1814 void test_markdown_render(void){
1815 Blob in, out;
 
 
1816 db_find_and_open_repository(OPEN_OK_NOT_FOUND|OPEN_SUBSTITUTE,0);
 
1817 verify_all_options();
1818 if( g.argc!=3 ) usage("FILE");
1819 blob_zero(&out);
1820 blob_read_from_file(&in, g.argv[2], ExtFILE);
1821 markdown_to_html(&in, 0, &out);
1822 blob_write_to_file(&out, "-");
1823 blob_reset(&in);
1824 blob_reset(&out);
 
 
 
 
 
 
1825 }
1826
1827 /*
1828 ** Search for a <title>...</title> at the beginning of a wiki page.
1829 ** Return true (nonzero) if a title is found. Return zero if there is
@@ -2026,11 +2039,11 @@
2026 */
2027 int html_token_length(const char *z){
2028 int n;
2029 char c;
2030 if( (c=z[0])=='<' ){
2031 n = htmlTagLength(z);
2032 if( n<=0 ) n = 1;
2033 }else if( fossil_isspace(c) ){
2034 for(n=1; z[n] && fossil_isspace(z[n]); n++){}
2035 }else if( c=='&' ){
2036 n = z[1]=='#' ? 2 : 1;
@@ -2396,5 +2409,300 @@
2396 blob_reset(&in);
2397 fossil_puts(blob_str(&out), 0);
2398 blob_reset(&out);
2399 }
2400 }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2401
--- src/wikiformat.c
+++ src/wikiformat.c
@@ -31,10 +31,11 @@
31 #define WIKI_BUTTONS 0x008 /* Allow sub-menu buttons */
32 #define WIKI_NOBADLINKS 0x010 /* Ignore broken hyperlinks */
33 #define WIKI_LINKSONLY 0x020 /* No markup. Only decorate links */
34 #define WIKI_NEWLINE 0x040 /* Honor \n - break lines at each \n */
35 #define WIKI_MARKDOWNLINKS 0x080 /* Resolve hyperlinks as in markdown */
36 #define WIKI_SAFE 0x100 /* Make the result safe for embedding */
37 #endif
38
39
40 /*
41 ** These are the only markup attributes allowed.
@@ -248,10 +249,13 @@
249 #define MUTYPE_TABLE 0x0040 /* <table> */
250 #define MUTYPE_TR 0x0080 /* <tr> */
251 #define MUTYPE_TD 0x0100 /* <td> or <th> */
252 #define MUTYPE_SPECIAL 0x0200 /* <nowiki> or <verbatim> */
253 #define MUTYPE_HYPERLINK 0x0400 /* <a> */
254
255 /* MUTYPE values for elements that require strictly nested end-tags */
256 #define MUTYPE_Nested 0x0656
257
258 /*
259 ** These markup types must have an end tag.
260 */
261 #define MUTYPE_STACK (MUTYPE_BLOCK | MUTYPE_FONT | MUTYPE_LIST | MUTYPE_TABLE)
@@ -469,11 +473,11 @@
473 ** z points to a "<" character. Check to see if this is the start of
474 ** a valid markup. If it is, return the total number of characters in
475 ** the markup including the initial "<" and the terminating ">". If
476 ** it is not well-formed markup, return 0.
477 */
478 int html_tag_length(const char *z){
479 int n = 1;
480 int inparen = 0;
481 int c;
482 if( z[n]=='/' ){ n++; }
483 if( !fossil_isalpha(z[n]) ) return 0;
@@ -656,11 +660,11 @@
660 ** characters in that token. Write the token type into *pTokenType.
661 */
662 static int nextWikiToken(const char *z, Renderer *p, int *pTokenType){
663 int n;
664 if( z[0]=='<' ){
665 n = html_tag_length(z);
666 if( n>0 ){
667 *pTokenType = TOKEN_MARKUP;
668 return n;
669 }else{
670 *pTokenType = TOKEN_CHARACTER;
@@ -1741,13 +1745,10 @@
1745 Renderer renderer;
1746
1747 memset(&renderer, 0, sizeof(renderer));
1748 renderer.renderFlags = flags;
1749 renderer.state = ALLOW_WIKI|AT_NEWLINE|AT_PARAGRAPH|flags;
 
 
 
1750 if( flags & WIKI_INLINE ){
1751 renderer.wantAutoParagraph = 0;
1752 }else{
1753 renderer.wantAutoParagraph = 1;
1754 }
@@ -1805,25 +1806,37 @@
1806 }
1807
1808 /*
1809 ** COMMAND: test-markdown-render
1810 **
1811 ** Usage: %fossil test-markdown-render FILE ...
1812 **
1813 ** Render markdown in FILE as HTML on stdout.
1814 ** Options:
1815 **
1816 ** --safe Restrict the output to use only "safe" HTML
1817 */
1818 void test_markdown_render(void){
1819 Blob in, out;
1820 int i;
1821 int bSafe = 0;
1822 db_find_and_open_repository(OPEN_OK_NOT_FOUND|OPEN_SUBSTITUTE,0);
1823 bSafe = find_option("safe",0,0)!=0;
1824 verify_all_options();
1825 for(i=2; i<g.argc; i++){
1826 blob_zero(&out);
1827 blob_read_from_file(&in, g.argv[i], ExtFILE);
1828 if( g.argc>3 ){
1829 fossil_print("<!------ %h ------->\n", g.argv[i]);
1830 }
1831 markdown_to_html(&in, 0, &out);
1832 safe_html_context( bSafe ? DOCSRC_UNTRUSTED : DOCSRC_TRUSTED );
1833 safe_html(&out);
1834 blob_write_to_file(&out, "-");
1835 blob_reset(&in);
1836 blob_reset(&out);
1837 }
1838 }
1839
1840 /*
1841 ** Search for a <title>...</title> at the beginning of a wiki page.
1842 ** Return true (nonzero) if a title is found. Return zero if there is
@@ -2026,11 +2039,11 @@
2039 */
2040 int html_token_length(const char *z){
2041 int n;
2042 char c;
2043 if( (c=z[0])=='<' ){
2044 n = html_tag_length(z);
2045 if( n<=0 ) n = 1;
2046 }else if( fossil_isspace(c) ){
2047 for(n=1; z[n] && fossil_isspace(z[n]); n++){}
2048 }else if( c=='&' ){
2049 n = z[1]=='#' ? 2 : 1;
@@ -2396,5 +2409,300 @@
2409 blob_reset(&in);
2410 fossil_puts(blob_str(&out), 0);
2411 blob_reset(&out);
2412 }
2413 }
2414
2415 /****************************************************************************
2416 ** safe-html:
2417 **
2418 ** An interface for preventing HTML constructs (ex: <style>, <form>, etc)
2419 ** from being inserted into Wiki and Forum posts using Markdown. See the
2420 ** comment on safe_html_append() for additional information on what is meant
2421 ** by "safe".
2422 **
2423 ** The safe-html restrictions only apply to Markdown, as Fossil-Wiki only
2424 ** allows safe-html by design - unsafe-HTML is never and has never been
2425 ** allowed in Fossil-Wiki.
2426 **
2427 ** This code is in the wikiformat.c file so that it can have access to the
2428 ** white-list of acceptable HTML in the aMarkup[] array.
2429 */
2430
2431 /*
2432 ** An instance of this object keeps track of the nesting of HTML
2433 ** elements for safe_html_append().
2434 */
2435 typedef struct HtmlTagStack HtmlTagStack;
2436 struct HtmlTagStack {
2437 int n; /* Current tag stack depth */
2438 int nAlloc; /* Space allocated for aStack[] */
2439 int *aStack; /* The stack of tags */
2440 int aSpace[10]; /* Initial static space, to avoid malloc() */
2441 };
2442
2443 /*
2444 ** Initialize bulk memory to a valid empty tagstack.
2445 */
2446 static void html_tagstack_init(HtmlTagStack *p){
2447 p->n = 0;
2448 p->nAlloc = 0;
2449 p->aStack = p->aSpace;
2450 }
2451
2452 /*
2453 ** Push a new element onto the tag statk
2454 */
2455 static void html_tagstack_push(HtmlTagStack *p, int e){
2456 if( p->n>=ArraySize(p->aSpace) && p->n>=p->nAlloc ){
2457 if( p->nAlloc==0 ){
2458 int *aNew;
2459 p->nAlloc = 50;
2460 aNew = fossil_malloc( sizeof(p->aStack[0])*p->nAlloc );
2461 memcpy(aNew, p->aStack, sizeof(p->aStack[0])*p->n );
2462 p->aStack = aNew;
2463 }else{
2464 p->nAlloc *= 2;
2465 p->aStack = fossil_realloc(p->aStack, sizeof(p->aStack[0])*p->nAlloc );
2466 }
2467 }
2468 p->aStack[p->n++] = e;
2469 }
2470
2471 /*
2472 ** Clear a tag stack, reclaiming any memory allocations.
2473 */
2474 static void html_tagstack_clear(HtmlTagStack *p){
2475 if( p->nAlloc ){
2476 fossil_free(p->aStack);
2477 p->nAlloc = 0;
2478 p->aStack = p->aSpace;
2479 }
2480 p->n = 0;
2481 }
2482
2483 /*
2484 ** The HTML end-tag eEnd wants to be added to pBlob.
2485 **
2486 ** If an open-tag for eEnd exists anywhere on the stack, then
2487 ** pop it and all prior elements from the task, issuing appropriate
2488 ** end-tags as you go.
2489 **
2490 ** If there is no open-tag for eEnd on the stack, then this
2491 ** routine is a no-op.
2492 */
2493 static void html_tagstack_pop(HtmlTagStack *p, Blob *pBlob, int eEnd){
2494 int i, e;
2495 if( eEnd!=0 ){
2496 for(i=p->n-1; i>=0 && p->aStack[i]!=eEnd; i--){}
2497 if( i<0 ){
2498 blob_appendf(pBlob, "<span class='error'>&lt;/%s&gt;</span>",
2499 aMarkup[eEnd].zName);
2500 return;
2501 }
2502 }else if( p->n==0 ){
2503 return;
2504 }
2505 do{
2506 e = p->aStack[--p->n];
2507 if( e==eEnd || (aMarkup[e].iType & MUTYPE_Nested)!=0 ){
2508 blob_appendf(pBlob, "</%s>", aMarkup[e].zName);
2509 }
2510 }while( e!=eEnd && p->n>0 );
2511 }
2512
2513 /*
2514 ** Append a safe translation of HTML text to a Blob object.
2515 **
2516 ** Restriction: The input to this routine must be writable.
2517 * Temporary changes may be made to the input, but the input is restored
2518 ** to its original state prior to returning. If zHtml[nHtml] is not a
2519 ** zero character, then a zero might be written in that position
2520 ** temporarily, but that slot will also be restored before this routine
2521 ** returns.
2522 */
2523 static void safe_html_append(Blob *pBlob, char *zHtml, int nHtml){
2524 char cLast;
2525 int i, j, n;
2526 HtmlTagStack s;
2527 ParsedMarkup markup;
2528
2529 if( nHtml<=0 ) return;
2530 cLast = zHtml[nHtml];
2531 zHtml[nHtml] = 0;
2532 html_tagstack_init(&s);
2533
2534 i = 0;
2535 while( i<nHtml ){
2536 if( zHtml[i]=='<' ){
2537 j = i;
2538 }else{
2539 char *z = strchr(zHtml+i, '<');
2540 if( z==0 ){
2541 blob_append(pBlob, zHtml+i, nHtml-i);
2542 break;
2543 }
2544 j = (int)(z - zHtml);
2545 blob_append(pBlob, zHtml+i, j-i);
2546 }
2547 n = html_tag_length(zHtml+j);
2548 if( n==0 ){
2549 blob_append(pBlob, "&lt;", 4);
2550 i = j+1;
2551 continue;
2552 }else{
2553 i = j + n;
2554 }
2555 parseMarkup(&markup, zHtml+j);
2556 if( markup.iCode==MARKUP_INVALID ){
2557 unparseMarkup(&markup);
2558 blob_appendf(pBlob, "<span class='error'>&lt;%.*s&gt;</span>",
2559 n-2, zHtml+j+1);
2560 continue;
2561 }
2562 if( (markup.iType & MUTYPE_Nested)==0 || markup.iCode==MARKUP_P ){
2563 renderMarkup(pBlob, &markup);
2564 }else{
2565 if( markup.endTag ){
2566 html_tagstack_pop(&s, pBlob, markup.iCode);
2567 }else{
2568 renderMarkup(pBlob, &markup);
2569 html_tagstack_push(&s, markup.iCode);
2570 }
2571 }
2572 unparseMarkup(&markup);
2573 }
2574 html_tagstack_pop(&s, pBlob, 0);
2575 html_tagstack_clear(&s);
2576 zHtml[nHtml] = cLast;
2577 }
2578
2579 /*
2580 ** This local variable is true if the safe_html() function is enabled.
2581 ** In other words, this is true if the output of Markdown should be
2582 ** restricted to use only "safe" HTML.
2583 */
2584 static int safeHtmlEnable = 1;
2585
2586
2587 #if INTERFACE
2588 /*
2589 ** Allowed values for the eTrust parameter to safe_html_context().
2590 */
2591 #define DOCSRC_FILE 1 /* Document is a checked-in file */
2592 #define DOCSRC_FORUM 2 /* Document is a forum post */
2593 #define DOCSRC_TICKET 3 /* Document is a ticket comment */
2594 #define DOCSRC_WIKI 4 /* Document is a wiki page */
2595 #define DOCSRC_TRUSTED 5 /* safe_html() is always a no-op */
2596 #define DOCSRC_UNTRUSTED 6 /* safe_html() is always enabled */
2597 #endif /* INTERFACE */
2598
2599
2600 /*
2601 ** Specify the context in which a markdown document with potentially
2602 ** unsafe HTML will be rendered.
2603 */
2604 void safe_html_context(int eTrust){
2605 static const char *zSafeHtmlSetting = 0;
2606 char cPerm = 0;
2607 if( eTrust==DOCSRC_TRUSTED ){
2608 safeHtmlEnable = 0;
2609 return;
2610 }
2611 if( eTrust==DOCSRC_UNTRUSTED ){
2612 safeHtmlEnable = 1;
2613 return;
2614 }
2615 if( zSafeHtmlSetting==0 ){
2616 zSafeHtmlSetting = db_get("safe-html", "");
2617 }
2618 switch( eTrust ){
2619 case DOCSRC_FILE: cPerm = 'b'; break;
2620 case DOCSRC_FORUM: cPerm = 'f'; break;
2621 case DOCSRC_TICKET: cPerm = 't'; break;
2622 case DOCSRC_WIKI: cPerm = 'w'; break;
2623 }
2624 safeHtmlEnable = (strchr(zSafeHtmlSetting,cPerm)==0);
2625 }
2626
2627 /*
2628 ** The input blob contains HTML. If safe-html is enabled, then
2629 ** convert the input into "safe HTML". The following modifications
2630 ** are made:
2631 **
2632 ** 1. Remove any elements that are not on the AllowedMarkup list.
2633 ** (ex: <script>, <form>, etc.)
2634 **
2635 ** 2. Remove any attributes that are not on the AllowedMarkup list.
2636 ** (ex: onload=, id=, etc.)
2637 **
2638 ** 3. Omit any surplus close-tags. This prevents the script from
2639 ** terminating an <div> or similar in the outer context.
2640 **
2641 ** 4. Insert additional close-tags as necessary so that any
2642 ** tag in the input that needs a close-tag has one. This
2643 ** prevents tags in the embedded script from affecting the
2644 ** display of content that follows this script in the enclosing
2645 ** context.
2646 **
2647 ** This modifications are intended to make the generated HTML safe
2648 ** to be embedded in a larger HTML document, such that the embedded
2649 ** HTML has no influence on the formatting and operation of the
2650 ** larger document.
2651 **
2652 ** If safe-html is disabled, then this routine is a no-op.
2653 */
2654 void safe_html(Blob *in){
2655 Blob out; /* Holding area for the revised text during construction */
2656 char *z; /* Original input text */
2657 int n; /* Number of bytes in the original input text */
2658 int k;
2659
2660 if( safeHtmlEnable==0 ) return;
2661 z = blob_str(in);
2662 n = blob_size(in);
2663 blob_init(&out, 0, 0);
2664 while( fossil_isspace(z[0]) ){ z++; n--; }
2665 for(k=n-1; k>5 && fossil_isspace(z[k]); k--){}
2666
2667 if( fossil_strnicmp(z, "<div",4)==0 && !fossil_isalpha(z[4])
2668 && fossil_strnicmp(z+k-5, "</div>",6)==0
2669 ){
2670 /* The input contains an outer <div>...</div>. Preserve the
2671 ** full scope of that <div>. */
2672 int m = html_tag_length(z);
2673 k -= 5;
2674 blob_append(&out, z, m);
2675 safe_html_append(&out, z+m, k-m);
2676 blob_append(&out, z+k, n-k);
2677 }else{
2678 safe_html_append(&out, z, n);
2679 }
2680 blob_reset(in);
2681 *in = out;
2682 }
2683
2684 /*
2685 ** COMMAND: test-safe-html
2686 **
2687 ** Usage: %fossil test-safe-html FILE ...
2688 **
2689 ** Read files named on the command-line. Send the text of each file
2690 ** through safe_html_append() and then write the result on
2691 ** standard output.
2692 */
2693 void test_safe_html_cmd(void){
2694 int i;
2695 Blob x;
2696 for(i=2; i<g.argc; i++){
2697 char *z;
2698 int n;
2699 blob_read_from_file(&x, g.argv[i], ExtFILE);
2700 blob_terminate(&x);
2701 safe_html(&x);
2702 z = blob_str(&x);
2703 n = blob_size(&x);
2704 while( n>0 && (z[n-1]=='\n' || z[n-1]=='\r') ) n--;
2705 fossil_print("%.*s\n", n, z);
2706 blob_reset(&x);
2707 }
2708 }
2709
+12 -15
--- test/amend.test
+++ test/amend.test
@@ -103,11 +103,11 @@
103103
1234 1234
104104
123456 #123456
105105
} {
106106
incr tc
107107
fossil amend $HASH -bgcolor $color
108
- test amend-bgcolor-1.$tc.a {[string match "*uuid:*$HASH*" $RESULT]}
108
+ test amend-bgcolor-1.$tc.a {[string match "*hash:*$HASH*" $RESULT]}
109109
fossil tag list --raw $HASH
110110
test amend-bgcolor-1.$tc.b {[string first "bgcolor=$result" $RESULT] != -1}
111111
fossil timeline -n 1
112112
test amend-bgcolor-1.$tc.c {
113113
[string match "*Change*background*color*to*\"$result\"*" $RESULT]
@@ -121,11 +121,11 @@
121121
if {$VERBOSE} { protOut "No artifact found in timeline output" }
122122
test amend-bgcolor-1.$tc.d false
123123
}
124124
}
125125
fossil amend $HASH -bgcolor {}
126
-test amend-bgcolor-2.1 {[string match "*uuid:*$HASH*" $RESULT]}
126
+test amend-bgcolor-2.1 {[string match "*hash:*$HASH*" $RESULT]}
127127
fossil tag list --raw $HASH
128128
test amend-bgcolor-2.2 {
129129
[string first "bgcolor=" $RESULT] == -1 &&
130130
[string first "bgcolor" $RESULT] != -1
131131
}
@@ -147,11 +147,11 @@
147147
if {![uuid_from_branch $RESULT HASH2]} {
148148
test amend-branchcolor.setup false
149149
}
150150
fossil update $HASH2
151151
fossil amend $HASH2 -branchcolor yellow
152
-test amend-branchcolor-1.1 {[string match "*uuid:*$HASH2*" $RESULT]}
152
+test amend-branchcolor-1.1 {[string match "*hash:*$HASH2*" $RESULT]}
153153
fossil tag ls --raw $HASH2
154154
test amend-branchcolor-1.2 {[string first "bgcolor=yellow" $RESULT] != -1}
155155
fossil timeline -n 1
156156
test amend-branchcolor-1.3 {
157157
[string match {*Change*branch*background*color*to*"yellow".*} $RESULT]
@@ -175,11 +175,11 @@
175175
write_file datafile "bc1"
176176
fossil commit -m "mc1"
177177
write_file datafile "bc2"
178178
fossil commit -m "mc2"
179179
fossil amend $HASHN -branchcolor deadbe
180
-test amend-branchcolor-2.1 {[string match "*uuid:*$HASHN*" $RESULT]}
180
+test amend-branchcolor-2.1 {[string match "*hash:*$HASHN*" $RESULT]}
181181
fossil tag ls --raw current
182182
test amend-branchcolor-2.2 {[string first "bgcolor=#deadbe" $RESULT] != -1}
183183
fossil timeline -n 1
184184
test amend-branchcolor-2.3 {
185185
[string match {*Change*branch*background*color*to*"#deadbe".*} $RESULT]
@@ -201,11 +201,11 @@
201201
set timestamp [clock scan yesterday]
202202
set date [clock format $timestamp -format "%Y-%m-%d" -gmt 1]
203203
set time [clock format $timestamp -format "%H:%M:%S" -gmt 1]
204204
set datetime "$date $time"
205205
fossil amend $HASHINIT -date $datetime
206
-test amend-date-1.1 {[string match "*uuid:*$HASHINIT*$datetime*" $RESULT]}
206
+test amend-date-1.1 {[string match "*hash:*$HASHINIT*$datetime*" $RESULT]}
207207
fossil tag ls --raw $HASHINIT
208208
test amend-date-1.2 {[string first "date=$datetime" $RESULT] != -1}
209209
fossil timeline -n 1
210210
test amend-date-1.3 {[string match "*Timestamp*$date*$time*" $RESULT]}
211211
set badformats {
@@ -232,11 +232,11 @@
232232
fossil branch new tohide current
233233
if {![uuid_from_branch $RESULT HASHH]} {
234234
test amend-hide-setup false
235235
}
236236
fossil amend $HASHH -hide
237
-test amend-hide-1.1 {[string match "*uuid:*$HASHH*" $RESULT]}
237
+test amend-hide-1.1 {[string match "*hash:*$HASHH*" $RESULT]}
238238
fossil tag ls --raw $HASHH
239239
test amend-hide-1.2 {[string first "hidden" $RESULT] != -1}
240240
fossil timeline -n 1
241241
test amend-hide-1.3 {[string match {*Add*propagating*"hidden".*} $RESULT]}
242242
@@ -248,11 +248,11 @@
248248
if {![uuid_from_branch $RESULT HASHC]} {
249249
test amend-close.setup false
250250
}
251251
fossil update $HASHC
252252
fossil amend $HASHC -close
253
-test amend-close-1.1.a {[string match "*uuid:*$HASHC*" $RESULT]}
253
+test amend-close-1.1.a {[string match "*hash:*$HASHC*" $RESULT]}
254254
test amend-close-1.1.b {
255255
[string match "*comment:*Create*new*branch*named*\"cllf\"*" $RESULT]
256256
}
257257
fossil tag ls --raw $HASHC
258258
test amend-close-1.2 {[string first "closed" $RESULT] != -1}
@@ -273,11 +273,11 @@
273273
write_file datafile "b1"
274274
fossil commit -m "m1"
275275
write_file datafile "b2"
276276
fossil commit -m "m2"
277277
fossil amend $HASH3 --close
278
-test amend-close-3.1 {[string match "*uuid:*$HASH3*" $RESULT]}
278
+test amend-close-3.1 {[string match "*hash:*$HASH3*" $RESULT]}
279279
fossil tag ls --raw current
280280
test amend-close-3.2 {[string first "closed" $RESULT] != -1}
281281
fossil timeline -n 1
282282
test amend-close-3.3 {
283283
[string match "*Add*propagating*\"closed\".*" $RESULT]
@@ -311,11 +311,11 @@
311311
append t2exp "sym-$res*"
312312
append t3exp "Add*tag*\"$res\".*"
313313
append t5exp "Cancel*tag*\"$res\".*"
314314
}
315315
eval fossil amend $HASH $tags
316
- test amend-tag-$tc.1 {[string match "*uuid:*$HASH*tags:*$t1exp*" $RESULT]}
316
+ test amend-tag-$tc.1 {[string match "*hash:*$HASH*tags:*$t1exp*" $RESULT]}
317317
fossil tag ls --raw $HASH
318318
test amend-tag-$tc.2 {[string match $t2exp $RESULT]}
319319
fossil timeline -n 1
320320
test amend-tag-$tc.3 {[string match $t3exp $RESULT]}
321321
eval fossil amend $HASH $cancels
@@ -341,11 +341,11 @@
341341
342342
proc test-comment {name HASH comment} {
343343
global VERBOSE RESULT
344344
345345
test amend-comment-$name.1 {
346
- [string match "*uuid:*$HASH*comment:*$comment*" $RESULT]
346
+ [string match "*hash:*$HASH*comment:*$comment*" $RESULT]
347347
}
348348
fossil timeline -n 1
349349
if {[artifact_from_timeline $RESULT artid]} {
350350
fossil artifact $artid
351351
test amend-comment-$name.2 {
@@ -359,11 +359,11 @@
359359
test amend-comment-$name.3 {
360360
[string match "*[short_uuid $HASH]*Edit*check-in*comment.*" $RESULT]
361361
}
362362
fossil info $HASH
363363
test amend-comment-$name.4 {
364
- [string match "*uuid:*$HASH*comment:*$comment*" $RESULT]
364
+ [string match "*hash:*$HASH*comment:*$comment*" $RESULT]
365365
}
366366
}
367367
368368
prep-test "revision 1" "revision 1"
369369
fossil amend $HASH -comment "revised revision 1"
@@ -382,14 +382,11 @@
382382
write_file commitmsg "revision 4 revised with -M"
383383
fossil amend $HASH -M commitmsg
384384
test-comment 4 $HASH "revision 4 revised with -M"
385385
386386
prep-test "final comment" "final content"
387
-if {[catch {exec which ed} result]} {
388
- if {$VERBOSE} { protOut "Install ed for interactive comment test: $result" }
389
- test-comment 5 $HASH "ed required for interactive edit"
390
-} else {
387
+if {[catch {exec which ed} result] == 0} {
391388
fossil settings editor "ed -s"
392389
set comment "interactive edited comment"
393390
fossil_maybe_answer "a\n$comment\n.\nw\nq\n" amend $HASH --edit-comment
394391
test-comment 5 $HASH $comment
395392
}
396393
--- test/amend.test
+++ test/amend.test
@@ -103,11 +103,11 @@
103 1234 1234
104 123456 #123456
105 } {
106 incr tc
107 fossil amend $HASH -bgcolor $color
108 test amend-bgcolor-1.$tc.a {[string match "*uuid:*$HASH*" $RESULT]}
109 fossil tag list --raw $HASH
110 test amend-bgcolor-1.$tc.b {[string first "bgcolor=$result" $RESULT] != -1}
111 fossil timeline -n 1
112 test amend-bgcolor-1.$tc.c {
113 [string match "*Change*background*color*to*\"$result\"*" $RESULT]
@@ -121,11 +121,11 @@
121 if {$VERBOSE} { protOut "No artifact found in timeline output" }
122 test amend-bgcolor-1.$tc.d false
123 }
124 }
125 fossil amend $HASH -bgcolor {}
126 test amend-bgcolor-2.1 {[string match "*uuid:*$HASH*" $RESULT]}
127 fossil tag list --raw $HASH
128 test amend-bgcolor-2.2 {
129 [string first "bgcolor=" $RESULT] == -1 &&
130 [string first "bgcolor" $RESULT] != -1
131 }
@@ -147,11 +147,11 @@
147 if {![uuid_from_branch $RESULT HASH2]} {
148 test amend-branchcolor.setup false
149 }
150 fossil update $HASH2
151 fossil amend $HASH2 -branchcolor yellow
152 test amend-branchcolor-1.1 {[string match "*uuid:*$HASH2*" $RESULT]}
153 fossil tag ls --raw $HASH2
154 test amend-branchcolor-1.2 {[string first "bgcolor=yellow" $RESULT] != -1}
155 fossil timeline -n 1
156 test amend-branchcolor-1.3 {
157 [string match {*Change*branch*background*color*to*"yellow".*} $RESULT]
@@ -175,11 +175,11 @@
175 write_file datafile "bc1"
176 fossil commit -m "mc1"
177 write_file datafile "bc2"
178 fossil commit -m "mc2"
179 fossil amend $HASHN -branchcolor deadbe
180 test amend-branchcolor-2.1 {[string match "*uuid:*$HASHN*" $RESULT]}
181 fossil tag ls --raw current
182 test amend-branchcolor-2.2 {[string first "bgcolor=#deadbe" $RESULT] != -1}
183 fossil timeline -n 1
184 test amend-branchcolor-2.3 {
185 [string match {*Change*branch*background*color*to*"#deadbe".*} $RESULT]
@@ -201,11 +201,11 @@
201 set timestamp [clock scan yesterday]
202 set date [clock format $timestamp -format "%Y-%m-%d" -gmt 1]
203 set time [clock format $timestamp -format "%H:%M:%S" -gmt 1]
204 set datetime "$date $time"
205 fossil amend $HASHINIT -date $datetime
206 test amend-date-1.1 {[string match "*uuid:*$HASHINIT*$datetime*" $RESULT]}
207 fossil tag ls --raw $HASHINIT
208 test amend-date-1.2 {[string first "date=$datetime" $RESULT] != -1}
209 fossil timeline -n 1
210 test amend-date-1.3 {[string match "*Timestamp*$date*$time*" $RESULT]}
211 set badformats {
@@ -232,11 +232,11 @@
232 fossil branch new tohide current
233 if {![uuid_from_branch $RESULT HASHH]} {
234 test amend-hide-setup false
235 }
236 fossil amend $HASHH -hide
237 test amend-hide-1.1 {[string match "*uuid:*$HASHH*" $RESULT]}
238 fossil tag ls --raw $HASHH
239 test amend-hide-1.2 {[string first "hidden" $RESULT] != -1}
240 fossil timeline -n 1
241 test amend-hide-1.3 {[string match {*Add*propagating*"hidden".*} $RESULT]}
242
@@ -248,11 +248,11 @@
248 if {![uuid_from_branch $RESULT HASHC]} {
249 test amend-close.setup false
250 }
251 fossil update $HASHC
252 fossil amend $HASHC -close
253 test amend-close-1.1.a {[string match "*uuid:*$HASHC*" $RESULT]}
254 test amend-close-1.1.b {
255 [string match "*comment:*Create*new*branch*named*\"cllf\"*" $RESULT]
256 }
257 fossil tag ls --raw $HASHC
258 test amend-close-1.2 {[string first "closed" $RESULT] != -1}
@@ -273,11 +273,11 @@
273 write_file datafile "b1"
274 fossil commit -m "m1"
275 write_file datafile "b2"
276 fossil commit -m "m2"
277 fossil amend $HASH3 --close
278 test amend-close-3.1 {[string match "*uuid:*$HASH3*" $RESULT]}
279 fossil tag ls --raw current
280 test amend-close-3.2 {[string first "closed" $RESULT] != -1}
281 fossil timeline -n 1
282 test amend-close-3.3 {
283 [string match "*Add*propagating*\"closed\".*" $RESULT]
@@ -311,11 +311,11 @@
311 append t2exp "sym-$res*"
312 append t3exp "Add*tag*\"$res\".*"
313 append t5exp "Cancel*tag*\"$res\".*"
314 }
315 eval fossil amend $HASH $tags
316 test amend-tag-$tc.1 {[string match "*uuid:*$HASH*tags:*$t1exp*" $RESULT]}
317 fossil tag ls --raw $HASH
318 test amend-tag-$tc.2 {[string match $t2exp $RESULT]}
319 fossil timeline -n 1
320 test amend-tag-$tc.3 {[string match $t3exp $RESULT]}
321 eval fossil amend $HASH $cancels
@@ -341,11 +341,11 @@
341
342 proc test-comment {name HASH comment} {
343 global VERBOSE RESULT
344
345 test amend-comment-$name.1 {
346 [string match "*uuid:*$HASH*comment:*$comment*" $RESULT]
347 }
348 fossil timeline -n 1
349 if {[artifact_from_timeline $RESULT artid]} {
350 fossil artifact $artid
351 test amend-comment-$name.2 {
@@ -359,11 +359,11 @@
359 test amend-comment-$name.3 {
360 [string match "*[short_uuid $HASH]*Edit*check-in*comment.*" $RESULT]
361 }
362 fossil info $HASH
363 test amend-comment-$name.4 {
364 [string match "*uuid:*$HASH*comment:*$comment*" $RESULT]
365 }
366 }
367
368 prep-test "revision 1" "revision 1"
369 fossil amend $HASH -comment "revised revision 1"
@@ -382,14 +382,11 @@
382 write_file commitmsg "revision 4 revised with -M"
383 fossil amend $HASH -M commitmsg
384 test-comment 4 $HASH "revision 4 revised with -M"
385
386 prep-test "final comment" "final content"
387 if {[catch {exec which ed} result]} {
388 if {$VERBOSE} { protOut "Install ed for interactive comment test: $result" }
389 test-comment 5 $HASH "ed required for interactive edit"
390 } else {
391 fossil settings editor "ed -s"
392 set comment "interactive edited comment"
393 fossil_maybe_answer "a\n$comment\n.\nw\nq\n" amend $HASH --edit-comment
394 test-comment 5 $HASH $comment
395 }
396
--- test/amend.test
+++ test/amend.test
@@ -103,11 +103,11 @@
103 1234 1234
104 123456 #123456
105 } {
106 incr tc
107 fossil amend $HASH -bgcolor $color
108 test amend-bgcolor-1.$tc.a {[string match "*hash:*$HASH*" $RESULT]}
109 fossil tag list --raw $HASH
110 test amend-bgcolor-1.$tc.b {[string first "bgcolor=$result" $RESULT] != -1}
111 fossil timeline -n 1
112 test amend-bgcolor-1.$tc.c {
113 [string match "*Change*background*color*to*\"$result\"*" $RESULT]
@@ -121,11 +121,11 @@
121 if {$VERBOSE} { protOut "No artifact found in timeline output" }
122 test amend-bgcolor-1.$tc.d false
123 }
124 }
125 fossil amend $HASH -bgcolor {}
126 test amend-bgcolor-2.1 {[string match "*hash:*$HASH*" $RESULT]}
127 fossil tag list --raw $HASH
128 test amend-bgcolor-2.2 {
129 [string first "bgcolor=" $RESULT] == -1 &&
130 [string first "bgcolor" $RESULT] != -1
131 }
@@ -147,11 +147,11 @@
147 if {![uuid_from_branch $RESULT HASH2]} {
148 test amend-branchcolor.setup false
149 }
150 fossil update $HASH2
151 fossil amend $HASH2 -branchcolor yellow
152 test amend-branchcolor-1.1 {[string match "*hash:*$HASH2*" $RESULT]}
153 fossil tag ls --raw $HASH2
154 test amend-branchcolor-1.2 {[string first "bgcolor=yellow" $RESULT] != -1}
155 fossil timeline -n 1
156 test amend-branchcolor-1.3 {
157 [string match {*Change*branch*background*color*to*"yellow".*} $RESULT]
@@ -175,11 +175,11 @@
175 write_file datafile "bc1"
176 fossil commit -m "mc1"
177 write_file datafile "bc2"
178 fossil commit -m "mc2"
179 fossil amend $HASHN -branchcolor deadbe
180 test amend-branchcolor-2.1 {[string match "*hash:*$HASHN*" $RESULT]}
181 fossil tag ls --raw current
182 test amend-branchcolor-2.2 {[string first "bgcolor=#deadbe" $RESULT] != -1}
183 fossil timeline -n 1
184 test amend-branchcolor-2.3 {
185 [string match {*Change*branch*background*color*to*"#deadbe".*} $RESULT]
@@ -201,11 +201,11 @@
201 set timestamp [clock scan yesterday]
202 set date [clock format $timestamp -format "%Y-%m-%d" -gmt 1]
203 set time [clock format $timestamp -format "%H:%M:%S" -gmt 1]
204 set datetime "$date $time"
205 fossil amend $HASHINIT -date $datetime
206 test amend-date-1.1 {[string match "*hash:*$HASHINIT*$datetime*" $RESULT]}
207 fossil tag ls --raw $HASHINIT
208 test amend-date-1.2 {[string first "date=$datetime" $RESULT] != -1}
209 fossil timeline -n 1
210 test amend-date-1.3 {[string match "*Timestamp*$date*$time*" $RESULT]}
211 set badformats {
@@ -232,11 +232,11 @@
232 fossil branch new tohide current
233 if {![uuid_from_branch $RESULT HASHH]} {
234 test amend-hide-setup false
235 }
236 fossil amend $HASHH -hide
237 test amend-hide-1.1 {[string match "*hash:*$HASHH*" $RESULT]}
238 fossil tag ls --raw $HASHH
239 test amend-hide-1.2 {[string first "hidden" $RESULT] != -1}
240 fossil timeline -n 1
241 test amend-hide-1.3 {[string match {*Add*propagating*"hidden".*} $RESULT]}
242
@@ -248,11 +248,11 @@
248 if {![uuid_from_branch $RESULT HASHC]} {
249 test amend-close.setup false
250 }
251 fossil update $HASHC
252 fossil amend $HASHC -close
253 test amend-close-1.1.a {[string match "*hash:*$HASHC*" $RESULT]}
254 test amend-close-1.1.b {
255 [string match "*comment:*Create*new*branch*named*\"cllf\"*" $RESULT]
256 }
257 fossil tag ls --raw $HASHC
258 test amend-close-1.2 {[string first "closed" $RESULT] != -1}
@@ -273,11 +273,11 @@
273 write_file datafile "b1"
274 fossil commit -m "m1"
275 write_file datafile "b2"
276 fossil commit -m "m2"
277 fossil amend $HASH3 --close
278 test amend-close-3.1 {[string match "*hash:*$HASH3*" $RESULT]}
279 fossil tag ls --raw current
280 test amend-close-3.2 {[string first "closed" $RESULT] != -1}
281 fossil timeline -n 1
282 test amend-close-3.3 {
283 [string match "*Add*propagating*\"closed\".*" $RESULT]
@@ -311,11 +311,11 @@
311 append t2exp "sym-$res*"
312 append t3exp "Add*tag*\"$res\".*"
313 append t5exp "Cancel*tag*\"$res\".*"
314 }
315 eval fossil amend $HASH $tags
316 test amend-tag-$tc.1 {[string match "*hash:*$HASH*tags:*$t1exp*" $RESULT]}
317 fossil tag ls --raw $HASH
318 test amend-tag-$tc.2 {[string match $t2exp $RESULT]}
319 fossil timeline -n 1
320 test amend-tag-$tc.3 {[string match $t3exp $RESULT]}
321 eval fossil amend $HASH $cancels
@@ -341,11 +341,11 @@
341
342 proc test-comment {name HASH comment} {
343 global VERBOSE RESULT
344
345 test amend-comment-$name.1 {
346 [string match "*hash:*$HASH*comment:*$comment*" $RESULT]
347 }
348 fossil timeline -n 1
349 if {[artifact_from_timeline $RESULT artid]} {
350 fossil artifact $artid
351 test amend-comment-$name.2 {
@@ -359,11 +359,11 @@
359 test amend-comment-$name.3 {
360 [string match "*[short_uuid $HASH]*Edit*check-in*comment.*" $RESULT]
361 }
362 fossil info $HASH
363 test amend-comment-$name.4 {
364 [string match "*hash:*$HASH*comment:*$comment*" $RESULT]
365 }
366 }
367
368 prep-test "revision 1" "revision 1"
369 fossil amend $HASH -comment "revised revision 1"
@@ -382,14 +382,11 @@
382 write_file commitmsg "revision 4 revised with -M"
383 fossil amend $HASH -M commitmsg
384 test-comment 4 $HASH "revision 4 revised with -M"
385
386 prep-test "final comment" "final content"
387 if {[catch {exec which ed} result] == 0} {
 
 
 
388 fossil settings editor "ed -s"
389 set comment "interactive edited comment"
390 fossil_maybe_answer "a\n$comment\n.\nw\nq\n" amend $HASH --edit-comment
391 test-comment 5 $HASH $comment
392 }
393
--- test/commit-warning.test
+++ test/commit-warning.test
@@ -50,16 +50,19 @@
5050
set a8 $a7$a7
5151
set a9 $a8$a8
5252
set a10 $a9$a9
5353
write_file line-1024 "$a10\n"
5454
set a11 $a10$a10
55
+write_file line-2048 "$a11\n"
5556
set a12 $a11$a11
5657
write_file line-4096 "$a12\n"
5758
set a13 $a12$a12
5859
write_file line-8192 "$a13\n"
5960
set a14 $a13$a13
61
+write_file line-16K "$a14\n"
6062
set a15 $a14$a14
63
+write_file line-32K "$a15\n"
6164
set a16 $a15$a15
6265
write_file line-64K "$a16\n"
6366
6467
# UTF-8 extends 7-bit ASCII using bytes 80 and above to encode
6568
# larger character codes. Unicode uses U+0 through U+10FFFF only,
@@ -118,13 +121,16 @@
118121
1\tcr-only.txt\tCR line endings
119122
1\tcrlf.txt\tCR/LF line endings
120123
0\tempty\t
121124
0\tline-0064\t
122125
0\tline-1024\t
126
+0\tline-16K\t
127
+0\tline-2048\t
128
+1\tline-32K\tlong lines
123129
0\tline-4096\t
124130
1\tline-64K\tlong lines
125
-1\tline-8192\tlong lines
131
+0\tline-8192\t
126132
0\tplain.txt\t
127133
1\tutf-16be-bombe-hello\tUnicode
128134
1\tutf-16be-bomle-hello\tUnicode
129135
1\tutf-16be-hello\tbinary data
130136
1\tutf-16be.txt\tUnicode
131137
--- test/commit-warning.test
+++ test/commit-warning.test
@@ -50,16 +50,19 @@
50 set a8 $a7$a7
51 set a9 $a8$a8
52 set a10 $a9$a9
53 write_file line-1024 "$a10\n"
54 set a11 $a10$a10
 
55 set a12 $a11$a11
56 write_file line-4096 "$a12\n"
57 set a13 $a12$a12
58 write_file line-8192 "$a13\n"
59 set a14 $a13$a13
 
60 set a15 $a14$a14
 
61 set a16 $a15$a15
62 write_file line-64K "$a16\n"
63
64 # UTF-8 extends 7-bit ASCII using bytes 80 and above to encode
65 # larger character codes. Unicode uses U+0 through U+10FFFF only,
@@ -118,13 +121,16 @@
118 1\tcr-only.txt\tCR line endings
119 1\tcrlf.txt\tCR/LF line endings
120 0\tempty\t
121 0\tline-0064\t
122 0\tline-1024\t
 
 
 
123 0\tline-4096\t
124 1\tline-64K\tlong lines
125 1\tline-8192\tlong lines
126 0\tplain.txt\t
127 1\tutf-16be-bombe-hello\tUnicode
128 1\tutf-16be-bomle-hello\tUnicode
129 1\tutf-16be-hello\tbinary data
130 1\tutf-16be.txt\tUnicode
131
--- test/commit-warning.test
+++ test/commit-warning.test
@@ -50,16 +50,19 @@
50 set a8 $a7$a7
51 set a9 $a8$a8
52 set a10 $a9$a9
53 write_file line-1024 "$a10\n"
54 set a11 $a10$a10
55 write_file line-2048 "$a11\n"
56 set a12 $a11$a11
57 write_file line-4096 "$a12\n"
58 set a13 $a12$a12
59 write_file line-8192 "$a13\n"
60 set a14 $a13$a13
61 write_file line-16K "$a14\n"
62 set a15 $a14$a14
63 write_file line-32K "$a15\n"
64 set a16 $a15$a15
65 write_file line-64K "$a16\n"
66
67 # UTF-8 extends 7-bit ASCII using bytes 80 and above to encode
68 # larger character codes. Unicode uses U+0 through U+10FFFF only,
@@ -118,13 +121,16 @@
121 1\tcr-only.txt\tCR line endings
122 1\tcrlf.txt\tCR/LF line endings
123 0\tempty\t
124 0\tline-0064\t
125 0\tline-1024\t
126 0\tline-16K\t
127 0\tline-2048\t
128 1\tline-32K\tlong lines
129 0\tline-4096\t
130 1\tline-64K\tlong lines
131 0\tline-8192\t
132 0\tplain.txt\t
133 1\tutf-16be-bombe-hello\tUnicode
134 1\tutf-16be-bomle-hello\tUnicode
135 1\tutf-16be-hello\tbinary data
136 1\tutf-16be.txt\tUnicode
137
+4 -4
--- test/diff.test
+++ test/diff.test
@@ -30,13 +30,13 @@
3030
write_file [file join .fossil-settings binary-glob] "*"
3131
3232
write_file file0.dat ""; # no content.
3333
write_file file1.dat "test file 1 (one line no term)."
3434
write_file file2.dat "test file 2 (NUL character).\0"
35
-write_file file3.dat "test file 3 (long line).[string repeat x 16384]"
36
-write_file file4.dat "test file 4 (long line).[string repeat y 16384]\ntwo"
37
-write_file file5.dat "[string repeat z 16384]\ntest file 5 (long line)."
35
+write_file file3.dat "test file 3 (long line).[string repeat x 32768]"
36
+write_file file4.dat "test file 4 (long line).[string repeat y 32768]\ntwo"
37
+write_file file5.dat "[string repeat z 32768]\ntest file 5 (long line)."
3838
3939
fossil add $rootDir
4040
fossil commit -m "c1"
4141
4242
###############################################################################
@@ -56,11 +56,11 @@
5656
+++ file0.dat
5757
cannot compute difference between binary files}}
5858
5959
###############################################################################
6060
61
-write_file file1.dat [string repeat z 16384]
61
+write_file file1.dat [string repeat z 32768]
6262
fossil diff file1.dat
6363
6464
test diff-file1-1 {[normalize_result] eq {Index: file1.dat
6565
==================================================================
6666
--- file1.dat
6767
--- test/diff.test
+++ test/diff.test
@@ -30,13 +30,13 @@
30 write_file [file join .fossil-settings binary-glob] "*"
31
32 write_file file0.dat ""; # no content.
33 write_file file1.dat "test file 1 (one line no term)."
34 write_file file2.dat "test file 2 (NUL character).\0"
35 write_file file3.dat "test file 3 (long line).[string repeat x 16384]"
36 write_file file4.dat "test file 4 (long line).[string repeat y 16384]\ntwo"
37 write_file file5.dat "[string repeat z 16384]\ntest file 5 (long line)."
38
39 fossil add $rootDir
40 fossil commit -m "c1"
41
42 ###############################################################################
@@ -56,11 +56,11 @@
56 +++ file0.dat
57 cannot compute difference between binary files}}
58
59 ###############################################################################
60
61 write_file file1.dat [string repeat z 16384]
62 fossil diff file1.dat
63
64 test diff-file1-1 {[normalize_result] eq {Index: file1.dat
65 ==================================================================
66 --- file1.dat
67
--- test/diff.test
+++ test/diff.test
@@ -30,13 +30,13 @@
30 write_file [file join .fossil-settings binary-glob] "*"
31
32 write_file file0.dat ""; # no content.
33 write_file file1.dat "test file 1 (one line no term)."
34 write_file file2.dat "test file 2 (NUL character).\0"
35 write_file file3.dat "test file 3 (long line).[string repeat x 32768]"
36 write_file file4.dat "test file 4 (long line).[string repeat y 32768]\ntwo"
37 write_file file5.dat "[string repeat z 32768]\ntest file 5 (long line)."
38
39 fossil add $rootDir
40 fossil commit -m "c1"
41
42 ###############################################################################
@@ -56,11 +56,11 @@
56 +++ file0.dat
57 cannot compute difference between binary files}}
58
59 ###############################################################################
60
61 write_file file1.dat [string repeat z 32768]
62 fossil diff file1.dat
63
64 test diff-file1-1 {[normalize_result] eq {Index: file1.dat
65 ==================================================================
66 --- file1.dat
67
--- test/fileStat.th1
+++ test/fileStat.th1
@@ -60,11 +60,11 @@
6060
tclEval {
6161
#
6262
# NOTE: Get the unique Id of the latest check-in on trunk.
6363
#
6464
return [lindex [regexp -line -inline -nocase -- \
65
- {^uuid:\s+([0-9A-F]{40}) } [eval [getFossilCommand \
65
+ {^(?:uuid|hash):\s+([0-9A-F]{40}) } [eval [getFossilCommand \
6666
$repository "" info trunk]]] end]
6767
}
6868
}
6969
7070
7171
proc theSumOfAllFiles { id } {
7272
7373
ADDED test/graph-test-2.md
--- test/fileStat.th1
+++ test/fileStat.th1
@@ -60,11 +60,11 @@
60 tclEval {
61 #
62 # NOTE: Get the unique Id of the latest check-in on trunk.
63 #
64 return [lindex [regexp -line -inline -nocase -- \
65 {^uuid:\s+([0-9A-F]{40}) } [eval [getFossilCommand \
66 $repository "" info trunk]]] end]
67 }
68 }
69
70
71 proc theSumOfAllFiles { id } {
72
73 DDED test/graph-test-2.md
--- test/fileStat.th1
+++ test/fileStat.th1
@@ -60,11 +60,11 @@
60 tclEval {
61 #
62 # NOTE: Get the unique Id of the latest check-in on trunk.
63 #
64 return [lindex [regexp -line -inline -nocase -- \
65 {^(?:uuid|hash):\s+([0-9A-F]{40}) } [eval [getFossilCommand \
66 $repository "" info trunk]]] end]
67 }
68 }
69
70
71 proc theSumOfAllFiles { id } {
72
73 DDED test/graph-test-2.md
--- a/test/graph-test-2.md
+++ b/test/graph-test-2.md
@@ -0,0 +1,72 @@
1
+# Graph Test Cases
2
+
3
+There are test cases for the merge-riser coalescing logic that
4
+was added on 2020-06-08.
5
+
6
+ * [e19cfba5373369b](/info/e19cfba5373369b?diff=0)
7
+ * [c779b6890464cae](/info/c779b6890464cae?diff=0)
8
+ * [eed3946bd92a499](/info/eed3946bd92a499?diff=0)
9
+ * [9e1fa626e47f147](/info/9e1fa626e47f147?diff=0)
10
+ * [68bd2e7bedb8d05](/info/68bd2e7bedb8d05?diff=0)
11
+ * [8ac66ef33b464d2](/info/8ac66ef33b464d2?diff=0)
12
+ * [ef6979eac9abded](/info/ef6979eac9abded?diff=0)
13
+ * [7766e689926c703](/info/7766e689926c703?diff=0)
14
+ * [642f4dcfa24f1f9](/info/642f4dcfa24f1f9?diff=0)
15
+ * [3ea66260b5555d2](/info/3ea66260b5555d2?diff=0)
16
+ * [66ae70a54b20656](/info/66ae70a54b20656?diff=0)
17
+ * [b0f2a0ac53926c9](/info/b0f2a0ac53926c9?diff=0)
18
+ * [303e7af7c31866c](/info/303e7af7c31866c?diff=0)
19
+ * [b31afcc2cab1dc4](/info/b31afcc2cab1dc4?diff=0)
20
+ * [1a164e5fb76a46b](/info/1a164e5fb76a46b?diff=0)
21
+ * [f325b2343e6a18f](/info/f325b2343e6a18f?diff=0)
22
+ * [2d75e87b760c0a9](/info/2d75e87b760c0a9?diff=0)
23
+ * [76442af7e13267b](/info/76442af7e13267b?diff=0)
24
+
25
+
26
+The list above was generated by the following script:
27
+
28
+~~~~~
29
+.mode list
30
+SELECT printf(' * [%s](/info/%s?diff=0)', hash, hash) FROM (
31
+ SELECT count(*) AS cnt, sum(cherrypick=1) AS cp, sum(cherrypick=0) AS n,
32
+ (SELECT substr(uuid,1,15) FROM blob WHERE rid=cid) AS hash
33
+ FROM (
34
+ SELECT cid, 0 AS cherrypick FROM plink WHERE NOT isprim
35
+ UNION ALL
36
+ SELECT childid, 1 FROM cherrypick
37
+ )
38
+ GROUP BY cid
39
+ HAVING (cp>0 AND n>0) OR cp>3 OR n>2
40
+ ORDER BY cnt
41
+);
42
+~~~~~
43
+
44
+Similar links to the SQLite repository:
45
+
46
+ * [7f72fc4f47445a2](https://sqlite.org/src/info/7f72fc4f47445a2?diff=0)
47
+ * [db2935473eab91c](https://sqlite.org/src/info/db2935473eab91c?diff=0)
48
+ * [a56506b9387a067](https://sqlite.org/src/info/a56506b9387a067?diff=0)
49
+ * [d59567dda231e7f](https://sqlite.org/src/info/d59567dda231e7f?diff=0)
50
+ * [2b750b0f74e5a11](https://sqlite.org/src/info/2b750b0f74e5a11?diff=0)
51
+ * [c697d2f83c2d8ea](https://sqlite.org/src/info/c697d2f83c2d8ea?diff=0)
52
+ * [b330c7ff6fd1230](https://sqlite.org/src/info/b330c7ff6fd1230?diff=0)
53
+ * [746fcd2fd412ddc](https://sqlite.org/src/info/746fcd2fd412ddc?diff=0)
54
+ * [71866b367f32b5a](https://sqlite.org/src/info/71866b367f32b5a?diff=0)
55
+ * [05418b2a4a6e6a9](https://sqlite.org/src/info/05418b2a4a6e6a9?diff=0)
56
+
57
+Generated by a very similar script:
58
+
59
+~~~~~
60
+SELECT printf(' * [%s](https://sqlite.org/src/info/%s?diff=0)', hash, hash) FROM (
61
+ SELECT count(*) AS cnt, sum(cherrypick=1) AS cp, sum(cherrypick=0) AS n,
62
+ (SELECT substr(uuid,1,15) FROM blob WHERE rid=cid) AS hash
63
+ FROM (
64
+ SELECT cid, 0 AS cherrypick FROM plink WHERE NOT isprim
65
+ UNION ALL
66
+ SELECT childid, 1 FROM cherrypick
67
+ )
68
+ GROUP BY cid
69
+ HAVING (cp>0 AND n>0) OR cp>2 OR n>2
70
+ ORDER BY cnt
71
+);
72
+~~~~~
--- a/test/graph-test-2.md
+++ b/test/graph-test-2.md
@@ -0,0 +1,72 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
--- a/test/graph-test-2.md
+++ b/test/graph-test-2.md
@@ -0,0 +1,72 @@
1 # Graph Test Cases
2
3 There are test cases for the merge-riser coalescing logic that
4 was added on 2020-06-08.
5
6 * [e19cfba5373369b](/info/e19cfba5373369b?diff=0)
7 * [c779b6890464cae](/info/c779b6890464cae?diff=0)
8 * [eed3946bd92a499](/info/eed3946bd92a499?diff=0)
9 * [9e1fa626e47f147](/info/9e1fa626e47f147?diff=0)
10 * [68bd2e7bedb8d05](/info/68bd2e7bedb8d05?diff=0)
11 * [8ac66ef33b464d2](/info/8ac66ef33b464d2?diff=0)
12 * [ef6979eac9abded](/info/ef6979eac9abded?diff=0)
13 * [7766e689926c703](/info/7766e689926c703?diff=0)
14 * [642f4dcfa24f1f9](/info/642f4dcfa24f1f9?diff=0)
15 * [3ea66260b5555d2](/info/3ea66260b5555d2?diff=0)
16 * [66ae70a54b20656](/info/66ae70a54b20656?diff=0)
17 * [b0f2a0ac53926c9](/info/b0f2a0ac53926c9?diff=0)
18 * [303e7af7c31866c](/info/303e7af7c31866c?diff=0)
19 * [b31afcc2cab1dc4](/info/b31afcc2cab1dc4?diff=0)
20 * [1a164e5fb76a46b](/info/1a164e5fb76a46b?diff=0)
21 * [f325b2343e6a18f](/info/f325b2343e6a18f?diff=0)
22 * [2d75e87b760c0a9](/info/2d75e87b760c0a9?diff=0)
23 * [76442af7e13267b](/info/76442af7e13267b?diff=0)
24
25
26 The list above was generated by the following script:
27
28 ~~~~~
29 .mode list
30 SELECT printf(' * [%s](/info/%s?diff=0)', hash, hash) FROM (
31 SELECT count(*) AS cnt, sum(cherrypick=1) AS cp, sum(cherrypick=0) AS n,
32 (SELECT substr(uuid,1,15) FROM blob WHERE rid=cid) AS hash
33 FROM (
34 SELECT cid, 0 AS cherrypick FROM plink WHERE NOT isprim
35 UNION ALL
36 SELECT childid, 1 FROM cherrypick
37 )
38 GROUP BY cid
39 HAVING (cp>0 AND n>0) OR cp>3 OR n>2
40 ORDER BY cnt
41 );
42 ~~~~~
43
44 Similar links to the SQLite repository:
45
46 * [7f72fc4f47445a2](https://sqlite.org/src/info/7f72fc4f47445a2?diff=0)
47 * [db2935473eab91c](https://sqlite.org/src/info/db2935473eab91c?diff=0)
48 * [a56506b9387a067](https://sqlite.org/src/info/a56506b9387a067?diff=0)
49 * [d59567dda231e7f](https://sqlite.org/src/info/d59567dda231e7f?diff=0)
50 * [2b750b0f74e5a11](https://sqlite.org/src/info/2b750b0f74e5a11?diff=0)
51 * [c697d2f83c2d8ea](https://sqlite.org/src/info/c697d2f83c2d8ea?diff=0)
52 * [b330c7ff6fd1230](https://sqlite.org/src/info/b330c7ff6fd1230?diff=0)
53 * [746fcd2fd412ddc](https://sqlite.org/src/info/746fcd2fd412ddc?diff=0)
54 * [71866b367f32b5a](https://sqlite.org/src/info/71866b367f32b5a?diff=0)
55 * [05418b2a4a6e6a9](https://sqlite.org/src/info/05418b2a4a6e6a9?diff=0)
56
57 Generated by a very similar script:
58
59 ~~~~~
60 SELECT printf(' * [%s](https://sqlite.org/src/info/%s?diff=0)', hash, hash) FROM (
61 SELECT count(*) AS cnt, sum(cherrypick=1) AS cp, sum(cherrypick=0) AS n,
62 (SELECT substr(uuid,1,15) FROM blob WHERE rid=cid) AS hash
63 FROM (
64 SELECT cid, 0 AS cherrypick FROM plink WHERE NOT isprim
65 UNION ALL
66 SELECT childid, 1 FROM cherrypick
67 )
68 GROUP BY cid
69 HAVING (cp>0 AND n>0) OR cp>2 OR n>2
70 ORDER BY cnt
71 );
72 ~~~~~
--- test/mv-rm.test
+++ test/mv-rm.test
@@ -50,11 +50,15 @@
5050
file mkdir [file join $rootDir subdirC]
5151
write_file [file join $rootDir subdirC f10] "f10"
5252
write_file [file join $rootDir subdirC f11] "f11"
5353
write_file f12 "f12"
5454
55
+file mkdir [file join $rootDir subdirE a]
56
+write_file [file join $rootDir subdirE a f14] "f14"
57
+
5558
fossil add f1 f2 f3 f4 f5 f6 f7 f8 subdirB/f9 subdirC/f10 subdirC/f11 f12
59
+fossil add subdirE/a/f14
5660
fossil commit -m "c1"
5761
5862
########################################
5963
# Test 1: Soft Move Relative Directory #
6064
########################################
@@ -431,10 +435,36 @@
431435
test mv-file-new-directory-13 {[file size subdirC/f10] == 3}
432436
test mv-file-new-directory-14 {[read_file subdirC/f10] eq "f10"}
433437
test mv-file-new-directory-15 {[file size subdirC/f11] == 3}
434438
test mv-file-new-directory-16 {[read_file subdirC/f11] eq "f11"}
435439
440
+cd $rootDir
441
+
442
+###############################################################################
443
+# Test 19: Follow-up Soft Rename of a Directory Already Renamed on Filesystem #
444
+###############################################################################
445
+
446
+file rename [file join $rootDir subdirE/a] [file join $rootDir subdirE/a_renamed]
447
+
448
+fossil mv subdirE/a subdirE/a_renamed
449
+test mv-soft-already-renamed-directory-1 {
450
+ [normalize_result] eq "RENAME subdirE/a/f14 subdirE/a_renamed/f14"
451
+}
452
+
453
+test mv-soft-already-renamed-directory-2 {[file size subdirE/a_renamed/f14] == 3}
454
+test mv-soft-already-renamed-directory-3 {[read_file subdirE/a_renamed/f14] eq "f14"}
455
+
456
+fossil revert
457
+test mv-soft-already-renamed-directory-4 {
458
+ [normalize_result] eq "DELETE subdirE/a_renamed/f14\nREVERT subdirE/a/f14${undoMsg}"
459
+}
460
+
461
+test mv-soft-already-renamed-directory-5 {[file size subdirE/a/f14] == 3}
462
+test mv-soft-already-renamed-directory-6 {[read_file subdirE/a/f14] eq "f14"}
463
+
464
+file delete -force [file join $rootDir subdirE/a_renamed]
465
+
436466
cd $rootDir
437467
438468
###############################################################################
439469
440470
test_cleanup
441471
--- test/mv-rm.test
+++ test/mv-rm.test
@@ -50,11 +50,15 @@
50 file mkdir [file join $rootDir subdirC]
51 write_file [file join $rootDir subdirC f10] "f10"
52 write_file [file join $rootDir subdirC f11] "f11"
53 write_file f12 "f12"
54
 
 
 
55 fossil add f1 f2 f3 f4 f5 f6 f7 f8 subdirB/f9 subdirC/f10 subdirC/f11 f12
 
56 fossil commit -m "c1"
57
58 ########################################
59 # Test 1: Soft Move Relative Directory #
60 ########################################
@@ -431,10 +435,36 @@
431 test mv-file-new-directory-13 {[file size subdirC/f10] == 3}
432 test mv-file-new-directory-14 {[read_file subdirC/f10] eq "f10"}
433 test mv-file-new-directory-15 {[file size subdirC/f11] == 3}
434 test mv-file-new-directory-16 {[read_file subdirC/f11] eq "f11"}
435
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
436 cd $rootDir
437
438 ###############################################################################
439
440 test_cleanup
441
--- test/mv-rm.test
+++ test/mv-rm.test
@@ -50,11 +50,15 @@
50 file mkdir [file join $rootDir subdirC]
51 write_file [file join $rootDir subdirC f10] "f10"
52 write_file [file join $rootDir subdirC f11] "f11"
53 write_file f12 "f12"
54
55 file mkdir [file join $rootDir subdirE a]
56 write_file [file join $rootDir subdirE a f14] "f14"
57
58 fossil add f1 f2 f3 f4 f5 f6 f7 f8 subdirB/f9 subdirC/f10 subdirC/f11 f12
59 fossil add subdirE/a/f14
60 fossil commit -m "c1"
61
62 ########################################
63 # Test 1: Soft Move Relative Directory #
64 ########################################
@@ -431,10 +435,36 @@
435 test mv-file-new-directory-13 {[file size subdirC/f10] == 3}
436 test mv-file-new-directory-14 {[read_file subdirC/f10] eq "f10"}
437 test mv-file-new-directory-15 {[file size subdirC/f11] == 3}
438 test mv-file-new-directory-16 {[read_file subdirC/f11] eq "f11"}
439
440 cd $rootDir
441
442 ###############################################################################
443 # Test 19: Follow-up Soft Rename of a Directory Already Renamed on Filesystem #
444 ###############################################################################
445
446 file rename [file join $rootDir subdirE/a] [file join $rootDir subdirE/a_renamed]
447
448 fossil mv subdirE/a subdirE/a_renamed
449 test mv-soft-already-renamed-directory-1 {
450 [normalize_result] eq "RENAME subdirE/a/f14 subdirE/a_renamed/f14"
451 }
452
453 test mv-soft-already-renamed-directory-2 {[file size subdirE/a_renamed/f14] == 3}
454 test mv-soft-already-renamed-directory-3 {[read_file subdirE/a_renamed/f14] eq "f14"}
455
456 fossil revert
457 test mv-soft-already-renamed-directory-4 {
458 [normalize_result] eq "DELETE subdirE/a_renamed/f14\nREVERT subdirE/a/f14${undoMsg}"
459 }
460
461 test mv-soft-already-renamed-directory-5 {[file size subdirE/a/f14] == 3}
462 test mv-soft-already-renamed-directory-6 {[read_file subdirE/a/f14] eq "f14"}
463
464 file delete -force [file join $rootDir subdirE/a_renamed]
465
466 cd $rootDir
467
468 ###############################################################################
469
470 test_cleanup
471
--- test/release-checklist.wiki
+++ test/release-checklist.wiki
@@ -12,10 +12,20 @@
1212
1313
<li><p>
1414
Click on each of the links in in the
1515
[./graph-test-1.wiki] document and verify that all graphs are
1616
rendered correctly.
17
+
18
+<li><p>
19
+Click on each of the links in in the
20
+[./graph-test-2.md] document and verify that all graphs are
21
+rendered correctly.
22
+<ol type="a">
23
+<li> Also view the same check-ins on a /timeline
24
+view by clicking on the date for each check-in in the /info
25
+view, as the graph rendering is slightly different.
26
+</ol>
1727
1828
<li><p>
1929
Click on each of the links in in the
2030
[./diff-test-1.wiki] document and verify that all diffs are
2131
rendered correctly.
2232
--- test/release-checklist.wiki
+++ test/release-checklist.wiki
@@ -12,10 +12,20 @@
12
13 <li><p>
14 Click on each of the links in in the
15 [./graph-test-1.wiki] document and verify that all graphs are
16 rendered correctly.
 
 
 
 
 
 
 
 
 
 
17
18 <li><p>
19 Click on each of the links in in the
20 [./diff-test-1.wiki] document and verify that all diffs are
21 rendered correctly.
22
--- test/release-checklist.wiki
+++ test/release-checklist.wiki
@@ -12,10 +12,20 @@
12
13 <li><p>
14 Click on each of the links in in the
15 [./graph-test-1.wiki] document and verify that all graphs are
16 rendered correctly.
17
18 <li><p>
19 Click on each of the links in in the
20 [./graph-test-2.md] document and verify that all graphs are
21 rendered correctly.
22 <ol type="a">
23 <li> Also view the same check-ins on a /timeline
24 view by clicking on the date for each check-in in the /info
25 view, as the graph rendering is slightly different.
26 </ol>
27
28 <li><p>
29 Click on each of the links in in the
30 [./diff-test-1.wiki] document and verify that all diffs are
31 rendered correctly.
32
--- test/revert.test
+++ test/revert.test
@@ -186,9 +186,173 @@
186186
test 3-mv-2 {![file exists f1new]}
187187
revert-test 3-1 {} {
188188
REVERT f1
189189
DELETE f1new
190190
} -exists {f1} -notexists {f1n}
191
+
192
+
193
+# Test reverting of files under a sub-directory
194
+test_setup
195
+file mkdir d
196
+write_file d/f1 "d/f1"
197
+write_file d/f2 "d/f2"
198
+write_file d/f3 "d/f3"
199
+write_file d/f4 "d/f4"
200
+
201
+fossil add d
202
+fossil delete d/f1
203
+fossil commit -m "d/f2 d/f3 d/f4"
204
+
205
+## Changes to revert
206
+fossil add d/f1
207
+write_file d/f2 "4-1:d/f2"
208
+fossil changes d/f2
209
+fossil delete --soft d/f3
210
+
211
+revert-test 4-1 {d/f1} {
212
+ UNMANAGE d/f1
213
+} -changes {
214
+ EDITED d/f2
215
+ DELETED d/f3
216
+} -addremove {
217
+ ADDED d/f1
218
+} -exists {d/f1 d/f2 d/f3}
219
+
220
+revert-test 4-2 {d/f2} {
221
+ REVERT d/f2
222
+} -changes {
223
+ ADDED d/f1
224
+ DELETED d/f3
225
+} -exists {d/f1 d/f2 d/f3}
226
+
227
+revert-test 4-3 {d/f3} {
228
+ REVERT d/f3
229
+} -changes {
230
+ ADDED d/f1
231
+ EDITED d/f2
232
+} -exists {d/f1 d/f2 d/f3}
233
+
234
+fossil mv --soft d/f4 d/f4new
235
+test 4-4-mv-1 {[file exists d/f4]}
236
+test 4-4-mv-2 {![file exists d/f4new]}
237
+revert-test 4-4 {d/f4} {
238
+ DELETE d/f4new
239
+ REVERT d/f4
240
+} -changes {
241
+ ADDED d/f1
242
+ EDITED d/f2
243
+ DELETED d/f3
244
+} -exists {d/f4} -notexists {d/f4new}
245
+
246
+## Commit changes before testing reverting of directory rename,
247
+## otherwise there're could be sequencing issues
248
+fossil redo
249
+fossil commit -m "4-5:setup"
250
+
251
+fossil mv --soft d dnew
252
+revert-test 4-5 {d/f1 d/f2 d/f3 d/f4} {
253
+ REVERT d/f1
254
+ REVERT d/f2
255
+ UNMANAGE d/f3
256
+ REVERT d/f4
257
+ DELETE dnew/f1
258
+ DELETE dnew/f2
259
+ DELETE dnew/f4
260
+} -addremove {
261
+ ADDED d/f3
262
+} -exists {d/f1 d/f2 d/f3 d/f4} -notexists {dnew}
263
+
264
+
265
+## Test reverting of changes in whole sub-directory tree
266
+test_setup
267
+file mkdir d
268
+write_file f0 "f0"
269
+write_file d/f1 "d/f1"
270
+write_file d/f2 "d/f2"
271
+write_file d/f3 "d/f3"
272
+write_file d/f4 "d/f4"
273
+
274
+fossil add f0 d
275
+fossil delete d/f1
276
+fossil commit -m "f0 d/f2 d/f3 d/f4"
277
+
278
+## Changes to revert
279
+fossil add d/f1
280
+write_file d/f2 "5-1:d/f2"
281
+fossil changes d/f2
282
+fossil delete --soft d/f3
283
+
284
+revert-test 5-1 {d} {
285
+ UNMANAGE d/f1
286
+ REVERT d/f2
287
+ REVERT d/f3
288
+} -addremove {
289
+ ADDED d/f1
290
+} -exists {f0 d/f1 d/f2 d/f3}
291
+
292
+write_file f0 "5-2:f0"
293
+fossil changes f0
294
+revert-test 5-2 {f0 d} {
295
+ UNMANAGE d/f1
296
+ REVERT d/f2
297
+ REVERT d/f3
298
+ REVERT f0
299
+} -addremove {
300
+ ADDED d/f1
301
+} -exists {f0 d/f1 d/f2 d/f3}
302
+
303
+## Commit changes before testing the revert of directory rename,
304
+## otherwise there're could be sequencing issues
305
+fossil commit -m "5-3:setup"
306
+
307
+fossil changes
308
+
309
+fossil mv --soft d dnew
310
+revert-test 5-3 {d} {
311
+ REVERT d/f1
312
+ REVERT d/f2
313
+ REVERT d/f4
314
+ DELETE dnew/f1
315
+ DELETE dnew/f2
316
+ DELETE dnew/f4
317
+} -addremove {
318
+ ADDED d/f3
319
+} -exists {f0 d/f1 d/f2 d/f3 d/f4} -notexists {dnew}
320
+
321
+## Reset/redo the undone results of revert to get to a clean checkout
322
+fossil redo
323
+
324
+file mkdir d/e
325
+file mkdir d/e/f
326
+write_file d/e/fe1 "d/e/fe1"
327
+write_file d/e/f/ff1 "d/e/f/ff1"
328
+
329
+file mkdir d1
330
+file mkdir d1/e
331
+write_file d1/e/fe1 "d1/e/fe1"
332
+write_file d1/e/fe2 "d1/e/fe2"
333
+
334
+fossil add d1/e/fe1
335
+fossil commit d1/e/fe1 -m "d1/e/fe1"
336
+
337
+write_file d1/e/fe1 "5-4:d1/e/fe1"
338
+fossil changes d1/e/fe1
339
+fossil add d d1
340
+
341
+revert-test 5-4 {d d1} {
342
+ UNMANAGE d/f3
343
+ UNMANAGE d/e/fe1
344
+ UNMANAGE d/e/f/ff1
345
+ REVERT d1/e/fe1
346
+ UNMANAGE d1/e/fe2
347
+} -addremove {
348
+ ADDED d/f3
349
+ ADDED d/e/fe1
350
+ ADDED d/e/f/ff1
351
+ ADDED d1/e/fe2
352
+} -exists {d/f1 d/f2 d/f3 d/f4 d/e/fe1 d/e/fe1 d/e/f/ff1
353
+ d1/e/fe1 d1/e/fe2}
354
+
191355
192356
###############################################################################
193357
194358
test_cleanup
195359
--- test/revert.test
+++ test/revert.test
@@ -186,9 +186,173 @@
186 test 3-mv-2 {![file exists f1new]}
187 revert-test 3-1 {} {
188 REVERT f1
189 DELETE f1new
190 } -exists {f1} -notexists {f1n}
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
191
192 ###############################################################################
193
194 test_cleanup
195
--- test/revert.test
+++ test/revert.test
@@ -186,9 +186,173 @@
186 test 3-mv-2 {![file exists f1new]}
187 revert-test 3-1 {} {
188 REVERT f1
189 DELETE f1new
190 } -exists {f1} -notexists {f1n}
191
192
193 # Test reverting of files under a sub-directory
194 test_setup
195 file mkdir d
196 write_file d/f1 "d/f1"
197 write_file d/f2 "d/f2"
198 write_file d/f3 "d/f3"
199 write_file d/f4 "d/f4"
200
201 fossil add d
202 fossil delete d/f1
203 fossil commit -m "d/f2 d/f3 d/f4"
204
205 ## Changes to revert
206 fossil add d/f1
207 write_file d/f2 "4-1:d/f2"
208 fossil changes d/f2
209 fossil delete --soft d/f3
210
211 revert-test 4-1 {d/f1} {
212 UNMANAGE d/f1
213 } -changes {
214 EDITED d/f2
215 DELETED d/f3
216 } -addremove {
217 ADDED d/f1
218 } -exists {d/f1 d/f2 d/f3}
219
220 revert-test 4-2 {d/f2} {
221 REVERT d/f2
222 } -changes {
223 ADDED d/f1
224 DELETED d/f3
225 } -exists {d/f1 d/f2 d/f3}
226
227 revert-test 4-3 {d/f3} {
228 REVERT d/f3
229 } -changes {
230 ADDED d/f1
231 EDITED d/f2
232 } -exists {d/f1 d/f2 d/f3}
233
234 fossil mv --soft d/f4 d/f4new
235 test 4-4-mv-1 {[file exists d/f4]}
236 test 4-4-mv-2 {![file exists d/f4new]}
237 revert-test 4-4 {d/f4} {
238 DELETE d/f4new
239 REVERT d/f4
240 } -changes {
241 ADDED d/f1
242 EDITED d/f2
243 DELETED d/f3
244 } -exists {d/f4} -notexists {d/f4new}
245
246 ## Commit changes before testing reverting of directory rename,
247 ## otherwise there're could be sequencing issues
248 fossil redo
249 fossil commit -m "4-5:setup"
250
251 fossil mv --soft d dnew
252 revert-test 4-5 {d/f1 d/f2 d/f3 d/f4} {
253 REVERT d/f1
254 REVERT d/f2
255 UNMANAGE d/f3
256 REVERT d/f4
257 DELETE dnew/f1
258 DELETE dnew/f2
259 DELETE dnew/f4
260 } -addremove {
261 ADDED d/f3
262 } -exists {d/f1 d/f2 d/f3 d/f4} -notexists {dnew}
263
264
265 ## Test reverting of changes in whole sub-directory tree
266 test_setup
267 file mkdir d
268 write_file f0 "f0"
269 write_file d/f1 "d/f1"
270 write_file d/f2 "d/f2"
271 write_file d/f3 "d/f3"
272 write_file d/f4 "d/f4"
273
274 fossil add f0 d
275 fossil delete d/f1
276 fossil commit -m "f0 d/f2 d/f3 d/f4"
277
278 ## Changes to revert
279 fossil add d/f1
280 write_file d/f2 "5-1:d/f2"
281 fossil changes d/f2
282 fossil delete --soft d/f3
283
284 revert-test 5-1 {d} {
285 UNMANAGE d/f1
286 REVERT d/f2
287 REVERT d/f3
288 } -addremove {
289 ADDED d/f1
290 } -exists {f0 d/f1 d/f2 d/f3}
291
292 write_file f0 "5-2:f0"
293 fossil changes f0
294 revert-test 5-2 {f0 d} {
295 UNMANAGE d/f1
296 REVERT d/f2
297 REVERT d/f3
298 REVERT f0
299 } -addremove {
300 ADDED d/f1
301 } -exists {f0 d/f1 d/f2 d/f3}
302
303 ## Commit changes before testing the revert of directory rename,
304 ## otherwise there're could be sequencing issues
305 fossil commit -m "5-3:setup"
306
307 fossil changes
308
309 fossil mv --soft d dnew
310 revert-test 5-3 {d} {
311 REVERT d/f1
312 REVERT d/f2
313 REVERT d/f4
314 DELETE dnew/f1
315 DELETE dnew/f2
316 DELETE dnew/f4
317 } -addremove {
318 ADDED d/f3
319 } -exists {f0 d/f1 d/f2 d/f3 d/f4} -notexists {dnew}
320
321 ## Reset/redo the undone results of revert to get to a clean checkout
322 fossil redo
323
324 file mkdir d/e
325 file mkdir d/e/f
326 write_file d/e/fe1 "d/e/fe1"
327 write_file d/e/f/ff1 "d/e/f/ff1"
328
329 file mkdir d1
330 file mkdir d1/e
331 write_file d1/e/fe1 "d1/e/fe1"
332 write_file d1/e/fe2 "d1/e/fe2"
333
334 fossil add d1/e/fe1
335 fossil commit d1/e/fe1 -m "d1/e/fe1"
336
337 write_file d1/e/fe1 "5-4:d1/e/fe1"
338 fossil changes d1/e/fe1
339 fossil add d d1
340
341 revert-test 5-4 {d d1} {
342 UNMANAGE d/f3
343 UNMANAGE d/e/fe1
344 UNMANAGE d/e/f/ff1
345 REVERT d1/e/fe1
346 UNMANAGE d1/e/fe2
347 } -addremove {
348 ADDED d/f3
349 ADDED d/e/fe1
350 ADDED d/e/f/ff1
351 ADDED d1/e/fe2
352 } -exists {d/f1 d/f2 d/f3 d/f4 d/e/fe1 d/e/fe1 d/e/f/ff1
353 d1/e/fe1 d1/e/fe2}
354
355
356 ###############################################################################
357
358 test_cleanup
359
+14 -10
--- test/tester.tcl
+++ test/tester.tcl
@@ -243,19 +243,11 @@
243243
dotfiles \
244244
empty-dirs \
245245
encoding-glob \
246246
ignore-glob \
247247
keep-glob \
248
- manifest \
249
- th1-setup \
250
- th1-uri-regexp]
251
-
252
- fossil test-th-eval "hasfeature tcl"
253
-
254
- if {[normalize_result] eq "1"} {
255
- lappend result tcl-setup
256
- }
248
+ manifest]
257249
258250
return [lsort -dictionary $result]
259251
}
260252
261253
# Returns the list of all supported settings.
@@ -282,40 +274,49 @@
282274
clean-glob \
283275
clearsign \
284276
comment-format \
285277
crlf-glob \
286278
crnl-glob \
279
+ default-csp \
287280
default-perms \
288281
diff-binary \
289282
diff-command \
290283
dont-push \
291284
dotfiles \
292285
editor \
286
+ email-admin \
293287
email-self \
294288
email-send-command \
295289
email-send-db \
296290
email-send-dir \
297291
email-send-method \
298292
email-send-relayhost \
293
+ email-subname \
294
+ email-url \
299295
empty-dirs \
300296
encoding-glob \
301297
exec-rel-paths \
298
+ fileedit-glob \
299
+ forbid-delta-manifests \
302300
gdiff-command \
303301
gmerge-command \
304302
hash-digits \
305303
http-port \
306304
https-login \
307305
ignore-glob \
308306
keep-glob \
309307
localauth \
308
+ lock-timeout \
310309
main-branch \
311310
manifest \
312311
max-loadavg \
313312
max-upload \
313
+ mimetypes \
314314
mtime-changes \
315315
pgp-command \
316316
proxy \
317
+ redirect-to-https \
317318
relative-paths \
318319
repo-cksum \
319320
repolist-skin \
320321
self-register \
321322
ssh-command \
@@ -952,11 +953,14 @@
952953
set inFileName [file join $::tempPath [appendArgs test-http-in- $suffix]]
953954
set outFileName [file join $::tempPath [appendArgs test-http-out- $suffix]]
954955
set data [subst [read_file $dataFileName]]
955956
956957
write_file $inFileName $data
957
- fossil http $inFileName $outFileName 127.0.0.1 $repository --localauth
958
+
959
+ fossil http --in $inFileName --out $outFileName --ipaddr 127.0.0.1 \
960
+ $repository --localauth --th-trace
961
+
958962
set result [expr {[file exists $outFileName] ? [read_file $outFileName] : ""}]
959963
960964
if {1} {
961965
catch {file delete $inFileName}
962966
catch {file delete $outFileName}
963967
--- test/tester.tcl
+++ test/tester.tcl
@@ -243,19 +243,11 @@
243 dotfiles \
244 empty-dirs \
245 encoding-glob \
246 ignore-glob \
247 keep-glob \
248 manifest \
249 th1-setup \
250 th1-uri-regexp]
251
252 fossil test-th-eval "hasfeature tcl"
253
254 if {[normalize_result] eq "1"} {
255 lappend result tcl-setup
256 }
257
258 return [lsort -dictionary $result]
259 }
260
261 # Returns the list of all supported settings.
@@ -282,40 +274,49 @@
282 clean-glob \
283 clearsign \
284 comment-format \
285 crlf-glob \
286 crnl-glob \
 
287 default-perms \
288 diff-binary \
289 diff-command \
290 dont-push \
291 dotfiles \
292 editor \
 
293 email-self \
294 email-send-command \
295 email-send-db \
296 email-send-dir \
297 email-send-method \
298 email-send-relayhost \
 
 
299 empty-dirs \
300 encoding-glob \
301 exec-rel-paths \
 
 
302 gdiff-command \
303 gmerge-command \
304 hash-digits \
305 http-port \
306 https-login \
307 ignore-glob \
308 keep-glob \
309 localauth \
 
310 main-branch \
311 manifest \
312 max-loadavg \
313 max-upload \
 
314 mtime-changes \
315 pgp-command \
316 proxy \
 
317 relative-paths \
318 repo-cksum \
319 repolist-skin \
320 self-register \
321 ssh-command \
@@ -952,11 +953,14 @@
952 set inFileName [file join $::tempPath [appendArgs test-http-in- $suffix]]
953 set outFileName [file join $::tempPath [appendArgs test-http-out- $suffix]]
954 set data [subst [read_file $dataFileName]]
955
956 write_file $inFileName $data
957 fossil http $inFileName $outFileName 127.0.0.1 $repository --localauth
 
 
 
958 set result [expr {[file exists $outFileName] ? [read_file $outFileName] : ""}]
959
960 if {1} {
961 catch {file delete $inFileName}
962 catch {file delete $outFileName}
963
--- test/tester.tcl
+++ test/tester.tcl
@@ -243,19 +243,11 @@
243 dotfiles \
244 empty-dirs \
245 encoding-glob \
246 ignore-glob \
247 keep-glob \
248 manifest]
 
 
 
 
 
 
 
 
249
250 return [lsort -dictionary $result]
251 }
252
253 # Returns the list of all supported settings.
@@ -282,40 +274,49 @@
274 clean-glob \
275 clearsign \
276 comment-format \
277 crlf-glob \
278 crnl-glob \
279 default-csp \
280 default-perms \
281 diff-binary \
282 diff-command \
283 dont-push \
284 dotfiles \
285 editor \
286 email-admin \
287 email-self \
288 email-send-command \
289 email-send-db \
290 email-send-dir \
291 email-send-method \
292 email-send-relayhost \
293 email-subname \
294 email-url \
295 empty-dirs \
296 encoding-glob \
297 exec-rel-paths \
298 fileedit-glob \
299 forbid-delta-manifests \
300 gdiff-command \
301 gmerge-command \
302 hash-digits \
303 http-port \
304 https-login \
305 ignore-glob \
306 keep-glob \
307 localauth \
308 lock-timeout \
309 main-branch \
310 manifest \
311 max-loadavg \
312 max-upload \
313 mimetypes \
314 mtime-changes \
315 pgp-command \
316 proxy \
317 redirect-to-https \
318 relative-paths \
319 repo-cksum \
320 repolist-skin \
321 self-register \
322 ssh-command \
@@ -952,11 +953,14 @@
953 set inFileName [file join $::tempPath [appendArgs test-http-in- $suffix]]
954 set outFileName [file join $::tempPath [appendArgs test-http-out- $suffix]]
955 set data [subst [read_file $dataFileName]]
956
957 write_file $inFileName $data
958
959 fossil http --in $inFileName --out $outFileName --ipaddr 127.0.0.1 \
960 $repository --localauth --th-trace
961
962 set result [expr {[file exists $outFileName] ? [read_file $outFileName] : ""}]
963
964 if {1} {
965 catch {file delete $inFileName}
966 catch {file delete $outFileName}
967
--- test/th1-hooks.test
+++ test/th1-hooks.test
@@ -126,11 +126,12 @@
126126
127127
set dataFileName [file join $::testdir th1-hooks-input.txt]
128128
129129
###############################################################################
130130
131
-saveTh1SetupFile; writeTh1SetupFile $testTh1Setup
131
+set savedTh1Setup [fossil settings th1-setup]
132
+fossil settings th1-setup $testTh1Setup
132133
133134
###############################################################################
134135
135136
fossil timeline custom -expectError; # NOTE: Bad "WHEN" argument.
136137
test th1-cmd-hooks-1a {[normalize_result] eq \
@@ -227,10 +228,10 @@
227228
test th1-custom-web-1b {[last_data_line] eq \
228229
{<h1><b>command_hook http webpage_hook test1 webpage_notify test1</b></h1>}}
229230
230231
###############################################################################
231232
232
-restoreTh1SetupFile
233
+fossil settings th1-setup $savedTh1Setup
233234
234235
###############################################################################
235236
236237
test_cleanup
237238
--- test/th1-hooks.test
+++ test/th1-hooks.test
@@ -126,11 +126,12 @@
126
127 set dataFileName [file join $::testdir th1-hooks-input.txt]
128
129 ###############################################################################
130
131 saveTh1SetupFile; writeTh1SetupFile $testTh1Setup
 
132
133 ###############################################################################
134
135 fossil timeline custom -expectError; # NOTE: Bad "WHEN" argument.
136 test th1-cmd-hooks-1a {[normalize_result] eq \
@@ -227,10 +228,10 @@
227 test th1-custom-web-1b {[last_data_line] eq \
228 {<h1><b>command_hook http webpage_hook test1 webpage_notify test1</b></h1>}}
229
230 ###############################################################################
231
232 restoreTh1SetupFile
233
234 ###############################################################################
235
236 test_cleanup
237
--- test/th1-hooks.test
+++ test/th1-hooks.test
@@ -126,11 +126,12 @@
126
127 set dataFileName [file join $::testdir th1-hooks-input.txt]
128
129 ###############################################################################
130
131 set savedTh1Setup [fossil settings th1-setup]
132 fossil settings th1-setup $testTh1Setup
133
134 ###############################################################################
135
136 fossil timeline custom -expectError; # NOTE: Bad "WHEN" argument.
137 test th1-cmd-hooks-1a {[normalize_result] eq \
@@ -227,10 +228,10 @@
228 test th1-custom-web-1b {[last_data_line] eq \
229 {<h1><b>command_hook http webpage_hook test1 webpage_notify test1</b></h1>}}
230
231 ###############################################################################
232
233 fossil settings th1-setup $savedTh1Setup
234
235 ###############################################################################
236
237 test_cleanup
238
+11 -10
--- test/th1.test
+++ test/th1.test
@@ -563,12 +563,13 @@
563563
puts "Skipping th1-anycap-*-1 perm tests: uncommitted changes in Fossil checkout."
564564
} else {
565565
set skip_anycap 0
566566
}
567567
568
+# NOTE: The 'd' permission is no longer used.
568569
foreach perm [list \
569
- a b c d e f g h i j k l m n o p q r s t u v w x y z \
570
+ a b c e f g h i j k l m n o p q r s t u v w x y z \
570571
A D \
571572
2 3 4 5 6 7 ] {
572573
if {$perm eq "u"} continue; # NOTE: Skip "reader" meta-permission.
573574
if {$perm eq "v"} continue; # NOTE: Skip "developer" meta-permission.
574575
@@ -792,11 +793,11 @@
792793
test th1-footer-2 {$RESULT eq {}}
793794
794795
###############################################################################
795796
796797
fossil test-th-eval --open-config --cgi "styleHeader {}; styleFooter"
797
-test th1-footer-3 {[regexp -- {</body></html>} $RESULT]}
798
+test th1-footer-3 {[regexp -- {</body>\n</html>} $RESULT]}
798799
799800
###############################################################################
800801
801802
fossil test-th-eval "getParameter"
802803
test th1-get-parameter-1 {$RESULT eq \
@@ -1035,18 +1036,18 @@
10351036
#
10361037
fossil test-th-eval "info commands"
10371038
set sorted_result [lsort $RESULT]
10381039
protOut "Sorted: $sorted_result"
10391040
set base_commands {anoncap anycap array artifact break breakpoint catch\
1040
- cgiHeaderLine checkout combobox continue date decorate dir enable_output \
1041
- encode64 error expr for getParameter glob_match globalState hascap \
1042
- hasfeature html htmlize http httpize if info insertCsrf lindex linecount \
1043
- list llength lsearch markdown nonce proc puts query randhex redirect\
1044
- regexp reinitialize rename render repository return searchable set\
1045
- setParameter setting stime string styleFooter styleHeader styleScript\
1046
- tclReady trace unset unversioned uplevel upvar utime verifyCsrf\
1047
- verifyLogin wiki}
1041
+ cgiHeaderLine checkout combobox continue copybtn date decorate dir \
1042
+ enable_output encode64 error expr for getParameter glob_match \
1043
+ globalState hascap hasfeature html htmlize http httpize if info \
1044
+ insertCsrf lindex linecount list llength lsearch markdown nonce proc \
1045
+ puts query randhex redirect regexp reinitialize rename render \
1046
+ repository return searchable set setParameter setting stime string \
1047
+ styleFooter styleHeader styleScript tclReady trace unset unversioned \
1048
+ uplevel upvar utime verifyCsrf verifyLogin wiki}
10481049
set tcl_commands {tclEval tclExpr tclInvoke tclIsSafe tclMakeSafe}
10491050
if {$th1Tcl} {
10501051
test th1-info-commands-1 {$sorted_result eq [lsort "$base_commands $tcl_commands"]}
10511052
} else {
10521053
test th1-info-commands-1 {$sorted_result eq [lsort "$base_commands"]}
10531054
--- test/th1.test
+++ test/th1.test
@@ -563,12 +563,13 @@
563 puts "Skipping th1-anycap-*-1 perm tests: uncommitted changes in Fossil checkout."
564 } else {
565 set skip_anycap 0
566 }
567
 
568 foreach perm [list \
569 a b c d e f g h i j k l m n o p q r s t u v w x y z \
570 A D \
571 2 3 4 5 6 7 ] {
572 if {$perm eq "u"} continue; # NOTE: Skip "reader" meta-permission.
573 if {$perm eq "v"} continue; # NOTE: Skip "developer" meta-permission.
574
@@ -792,11 +793,11 @@
792 test th1-footer-2 {$RESULT eq {}}
793
794 ###############################################################################
795
796 fossil test-th-eval --open-config --cgi "styleHeader {}; styleFooter"
797 test th1-footer-3 {[regexp -- {</body></html>} $RESULT]}
798
799 ###############################################################################
800
801 fossil test-th-eval "getParameter"
802 test th1-get-parameter-1 {$RESULT eq \
@@ -1035,18 +1036,18 @@
1035 #
1036 fossil test-th-eval "info commands"
1037 set sorted_result [lsort $RESULT]
1038 protOut "Sorted: $sorted_result"
1039 set base_commands {anoncap anycap array artifact break breakpoint catch\
1040 cgiHeaderLine checkout combobox continue date decorate dir enable_output \
1041 encode64 error expr for getParameter glob_match globalState hascap \
1042 hasfeature html htmlize http httpize if info insertCsrf lindex linecount \
1043 list llength lsearch markdown nonce proc puts query randhex redirect\
1044 regexp reinitialize rename render repository return searchable set\
1045 setParameter setting stime string styleFooter styleHeader styleScript\
1046 tclReady trace unset unversioned uplevel upvar utime verifyCsrf\
1047 verifyLogin wiki}
1048 set tcl_commands {tclEval tclExpr tclInvoke tclIsSafe tclMakeSafe}
1049 if {$th1Tcl} {
1050 test th1-info-commands-1 {$sorted_result eq [lsort "$base_commands $tcl_commands"]}
1051 } else {
1052 test th1-info-commands-1 {$sorted_result eq [lsort "$base_commands"]}
1053
--- test/th1.test
+++ test/th1.test
@@ -563,12 +563,13 @@
563 puts "Skipping th1-anycap-*-1 perm tests: uncommitted changes in Fossil checkout."
564 } else {
565 set skip_anycap 0
566 }
567
568 # NOTE: The 'd' permission is no longer used.
569 foreach perm [list \
570 a b c e f g h i j k l m n o p q r s t u v w x y z \
571 A D \
572 2 3 4 5 6 7 ] {
573 if {$perm eq "u"} continue; # NOTE: Skip "reader" meta-permission.
574 if {$perm eq "v"} continue; # NOTE: Skip "developer" meta-permission.
575
@@ -792,11 +793,11 @@
793 test th1-footer-2 {$RESULT eq {}}
794
795 ###############################################################################
796
797 fossil test-th-eval --open-config --cgi "styleHeader {}; styleFooter"
798 test th1-footer-3 {[regexp -- {</body>\n</html>} $RESULT]}
799
800 ###############################################################################
801
802 fossil test-th-eval "getParameter"
803 test th1-get-parameter-1 {$RESULT eq \
@@ -1035,18 +1036,18 @@
1036 #
1037 fossil test-th-eval "info commands"
1038 set sorted_result [lsort $RESULT]
1039 protOut "Sorted: $sorted_result"
1040 set base_commands {anoncap anycap array artifact break breakpoint catch\
1041 cgiHeaderLine checkout combobox continue copybtn date decorate dir \
1042 enable_output encode64 error expr for getParameter glob_match \
1043 globalState hascap hasfeature html htmlize http httpize if info \
1044 insertCsrf lindex linecount list llength lsearch markdown nonce proc \
1045 puts query randhex redirect regexp reinitialize rename render \
1046 repository return searchable set setParameter setting stime string \
1047 styleFooter styleHeader styleScript tclReady trace unset unversioned \
1048 uplevel upvar utime verifyCsrf verifyLogin wiki}
1049 set tcl_commands {tclEval tclExpr tclInvoke tclIsSafe tclMakeSafe}
1050 if {$th1Tcl} {
1051 test th1-info-commands-1 {$sorted_result eq [lsort "$base_commands $tcl_commands"]}
1052 } else {
1053 test th1-info-commands-1 {$sorted_result eq [lsort "$base_commands"]}
1054
+288 -288
--- test/utf.test
+++ test/utf.test
@@ -141,42 +141,42 @@
141141
75 [appendArgs \x00 ABCD\x00\n] \
142142
76 [appendArgs \x00 A\x00\r\n] \
143143
77 [appendArgs \x00 AB\x00\r\n] \
144144
78 [appendArgs \x00 ABC\x00\r\n] \
145145
79 [appendArgs \x00 ABCD\x00\r\n] \
146
- 80 [string repeat A 8193] \
147
- 81 [string repeat A 8193]\r \
148
- 82 [string repeat A 8193]\n \
149
- 83 [string repeat A 8193]\r\n \
150
- 84 [string repeat ABCD 2049] \
151
- 85 [string repeat ABCD 2049]\r \
152
- 86 [string repeat ABCD 2049]\n \
153
- 87 [string repeat ABCD 2049]\r\n \
154
- 88 \x00[string repeat A 8193] \
155
- 89 \x00[string repeat A 8193]\r \
156
- 90 \x00[string repeat A 8193]\n \
157
- 91 \x00[string repeat A 8193]\r\n \
158
- 92 \x00[string repeat ABCD 2049] \
159
- 93 \x00[string repeat ABCD 2049]\r \
160
- 94 \x00[string repeat ABCD 2049]\n \
161
- 95 \x00[string repeat ABCD 2049]\r\n \
162
- 96 [string repeat A 8193]\x00 \
163
- 97 [string repeat A 8193]\x00\r \
164
- 98 [string repeat A 8193]\x00\n \
165
- 99 [string repeat A 8193]\x00\r\n \
166
- 100 [string repeat ABCD 2049]\x00 \
167
- 101 [string repeat ABCD 2049]\x00\r \
168
- 102 [string repeat ABCD 2049]\x00\n \
169
- 103 [string repeat ABCD 2049]\x00\r\n \
170
- 104 \x00[string repeat A 8193]\x00 \
171
- 105 \x00[string repeat A 8193]\x00\r \
172
- 106 \x00[string repeat A 8193]\x00\n \
173
- 107 \x00[string repeat A 8193]\x00\r\n \
174
- 108 \x00[string repeat ABCD 2049]\x00 \
175
- 109 \x00[string repeat ABCD 2049]\x00\r \
176
- 110 \x00[string repeat ABCD 2049]\x00\n \
177
- 111 \x00[string repeat ABCD 2049]\x00\r\n \
146
+ 80 [string repeat A 32769] \
147
+ 81 [string repeat A 32769]\r \
148
+ 82 [string repeat A 32769]\n \
149
+ 83 [string repeat A 32769]\r\n \
150
+ 84 [string repeat ABCD 8196] \
151
+ 85 [string repeat ABCD 8196]\r \
152
+ 86 [string repeat ABCD 8196]\n \
153
+ 87 [string repeat ABCD 8196]\r\n \
154
+ 88 \x00[string repeat A 32769] \
155
+ 89 \x00[string repeat A 32769]\r \
156
+ 90 \x00[string repeat A 32769]\n \
157
+ 91 \x00[string repeat A 32769]\r\n \
158
+ 92 \x00[string repeat ABCD 8196] \
159
+ 93 \x00[string repeat ABCD 8196]\r \
160
+ 94 \x00[string repeat ABCD 8196]\n \
161
+ 95 \x00[string repeat ABCD 8196]\r\n \
162
+ 96 [string repeat A 32769]\x00 \
163
+ 97 [string repeat A 32769]\x00\r \
164
+ 98 [string repeat A 32769]\x00\n \
165
+ 99 [string repeat A 32769]\x00\r\n \
166
+ 100 [string repeat ABCD 8196]\x00 \
167
+ 101 [string repeat ABCD 8196]\x00\r \
168
+ 102 [string repeat ABCD 8196]\x00\n \
169
+ 103 [string repeat ABCD 8196]\x00\r\n \
170
+ 104 \x00[string repeat A 32769]\x00 \
171
+ 105 \x00[string repeat A 32769]\x00\r \
172
+ 106 \x00[string repeat A 32769]\x00\n \
173
+ 107 \x00[string repeat A 32769]\x00\r\n \
174
+ 108 \x00[string repeat ABCD 8196]\x00 \
175
+ 109 \x00[string repeat ABCD 8196]\x00\r \
176
+ 110 \x00[string repeat ABCD 8196]\x00\n \
177
+ 111 \x00[string repeat ABCD 8196]\x00\r\n \
178178
112 \u000A\u000D \
179179
113 \u0A00\u0D00 \
180180
114 \u000D\u000A \
181181
115 \u0D00\u0A00 \
182182
116 \x00\u000A\u000D \
@@ -2906,11 +2906,11 @@
29062906
Has flag LOOK_INVALID: no
29072907
Has flag LOOK_ODD: no
29082908
Has flag LOOK_SHORT: no}
29092909
29102910
utf-check 260 utf-check-260-0-80-0.jnk \
2911
-{File "%TEMP%/utf-check-260-0-80-0.jnk" has 8193 bytes.
2911
+{File "%TEMP%/utf-check-260-0-80-0.jnk" has 32769 bytes.
29122912
Starts with UTF-8 BOM: no
29132913
Starts with UTF-16 BOM: no
29142914
Looks like UTF-8: no
29152915
Has flag LOOK_NUL: no
29162916
Has flag LOOK_CR: no
@@ -2922,11 +2922,11 @@
29222922
Has flag LOOK_INVALID: no
29232923
Has flag LOOK_ODD: no
29242924
Has flag LOOK_SHORT: no}
29252925
29262926
utf-check 261 utf-check-261-0-80-1.jnk \
2927
-{File "%TEMP%/utf-check-261-0-80-1.jnk" has 8194 bytes.
2927
+{File "%TEMP%/utf-check-261-0-80-1.jnk" has 32770 bytes.
29282928
Starts with UTF-8 BOM: no
29292929
Starts with UTF-16 BOM: no
29302930
Looks like UTF-8: no
29312931
Has flag LOOK_NUL: no
29322932
Has flag LOOK_CR: no
@@ -2938,11 +2938,11 @@
29382938
Has flag LOOK_INVALID: no
29392939
Has flag LOOK_ODD: no
29402940
Has flag LOOK_SHORT: no}
29412941
29422942
utf-check 262 utf-check-262-0-81-0.jnk \
2943
-{File "%TEMP%/utf-check-262-0-81-0.jnk" has 8194 bytes.
2943
+{File "%TEMP%/utf-check-262-0-81-0.jnk" has 32770 bytes.
29442944
Starts with UTF-8 BOM: no
29452945
Starts with UTF-16 BOM: no
29462946
Looks like UTF-8: no
29472947
Has flag LOOK_NUL: no
29482948
Has flag LOOK_CR: yes
@@ -2954,11 +2954,11 @@
29542954
Has flag LOOK_INVALID: no
29552955
Has flag LOOK_ODD: no
29562956
Has flag LOOK_SHORT: no}
29572957
29582958
utf-check 263 utf-check-263-0-81-1.jnk \
2959
-{File "%TEMP%/utf-check-263-0-81-1.jnk" has 8195 bytes.
2959
+{File "%TEMP%/utf-check-263-0-81-1.jnk" has 32771 bytes.
29602960
Starts with UTF-8 BOM: no
29612961
Starts with UTF-16 BOM: no
29622962
Looks like UTF-8: no
29632963
Has flag LOOK_NUL: no
29642964
Has flag LOOK_CR: yes
@@ -2970,11 +2970,11 @@
29702970
Has flag LOOK_INVALID: no
29712971
Has flag LOOK_ODD: no
29722972
Has flag LOOK_SHORT: no}
29732973
29742974
utf-check 264 utf-check-264-0-82-0.jnk \
2975
-{File "%TEMP%/utf-check-264-0-82-0.jnk" has 8194 bytes.
2975
+{File "%TEMP%/utf-check-264-0-82-0.jnk" has 32770 bytes.
29762976
Starts with UTF-8 BOM: no
29772977
Starts with UTF-16 BOM: no
29782978
Looks like UTF-8: no
29792979
Has flag LOOK_NUL: no
29802980
Has flag LOOK_CR: no
@@ -2986,11 +2986,11 @@
29862986
Has flag LOOK_INVALID: no
29872987
Has flag LOOK_ODD: no
29882988
Has flag LOOK_SHORT: no}
29892989
29902990
utf-check 265 utf-check-265-0-82-1.jnk \
2991
-{File "%TEMP%/utf-check-265-0-82-1.jnk" has 8195 bytes.
2991
+{File "%TEMP%/utf-check-265-0-82-1.jnk" has 32771 bytes.
29922992
Starts with UTF-8 BOM: no
29932993
Starts with UTF-16 BOM: no
29942994
Looks like UTF-8: no
29952995
Has flag LOOK_NUL: no
29962996
Has flag LOOK_CR: no
@@ -3002,11 +3002,11 @@
30023002
Has flag LOOK_INVALID: no
30033003
Has flag LOOK_ODD: no
30043004
Has flag LOOK_SHORT: no}
30053005
30063006
utf-check 266 utf-check-266-0-83-0.jnk \
3007
-{File "%TEMP%/utf-check-266-0-83-0.jnk" has 8195 bytes.
3007
+{File "%TEMP%/utf-check-266-0-83-0.jnk" has 32771 bytes.
30083008
Starts with UTF-8 BOM: no
30093009
Starts with UTF-16 BOM: no
30103010
Looks like UTF-8: no
30113011
Has flag LOOK_NUL: no
30123012
Has flag LOOK_CR: yes
@@ -3018,11 +3018,11 @@
30183018
Has flag LOOK_INVALID: no
30193019
Has flag LOOK_ODD: no
30203020
Has flag LOOK_SHORT: no}
30213021
30223022
utf-check 267 utf-check-267-0-83-1.jnk \
3023
-{File "%TEMP%/utf-check-267-0-83-1.jnk" has 8196 bytes.
3023
+{File "%TEMP%/utf-check-267-0-83-1.jnk" has 32772 bytes.
30243024
Starts with UTF-8 BOM: no
30253025
Starts with UTF-16 BOM: no
30263026
Looks like UTF-8: no
30273027
Has flag LOOK_NUL: no
30283028
Has flag LOOK_CR: yes
@@ -3034,11 +3034,11 @@
30343034
Has flag LOOK_INVALID: no
30353035
Has flag LOOK_ODD: no
30363036
Has flag LOOK_SHORT: no}
30373037
30383038
utf-check 268 utf-check-268-0-84-0.jnk \
3039
-{File "%TEMP%/utf-check-268-0-84-0.jnk" has 8196 bytes.
3039
+{File "%TEMP%/utf-check-268-0-84-0.jnk" has 32784 bytes.
30403040
Starts with UTF-8 BOM: no
30413041
Starts with UTF-16 BOM: no
30423042
Looks like UTF-8: no
30433043
Has flag LOOK_NUL: no
30443044
Has flag LOOK_CR: no
@@ -3050,11 +3050,11 @@
30503050
Has flag LOOK_INVALID: no
30513051
Has flag LOOK_ODD: no
30523052
Has flag LOOK_SHORT: no}
30533053
30543054
utf-check 269 utf-check-269-0-84-1.jnk \
3055
-{File "%TEMP%/utf-check-269-0-84-1.jnk" has 8197 bytes.
3055
+{File "%TEMP%/utf-check-269-0-84-1.jnk" has 32785 bytes.
30563056
Starts with UTF-8 BOM: no
30573057
Starts with UTF-16 BOM: no
30583058
Looks like UTF-8: no
30593059
Has flag LOOK_NUL: no
30603060
Has flag LOOK_CR: no
@@ -3066,11 +3066,11 @@
30663066
Has flag LOOK_INVALID: no
30673067
Has flag LOOK_ODD: no
30683068
Has flag LOOK_SHORT: no}
30693069
30703070
utf-check 270 utf-check-270-0-85-0.jnk \
3071
-{File "%TEMP%/utf-check-270-0-85-0.jnk" has 8197 bytes.
3071
+{File "%TEMP%/utf-check-270-0-85-0.jnk" has 32785 bytes.
30723072
Starts with UTF-8 BOM: no
30733073
Starts with UTF-16 BOM: no
30743074
Looks like UTF-8: no
30753075
Has flag LOOK_NUL: no
30763076
Has flag LOOK_CR: yes
@@ -3082,11 +3082,11 @@
30823082
Has flag LOOK_INVALID: no
30833083
Has flag LOOK_ODD: no
30843084
Has flag LOOK_SHORT: no}
30853085
30863086
utf-check 271 utf-check-271-0-85-1.jnk \
3087
-{File "%TEMP%/utf-check-271-0-85-1.jnk" has 8198 bytes.
3087
+{File "%TEMP%/utf-check-271-0-85-1.jnk" has 32786 bytes.
30883088
Starts with UTF-8 BOM: no
30893089
Starts with UTF-16 BOM: no
30903090
Looks like UTF-8: no
30913091
Has flag LOOK_NUL: no
30923092
Has flag LOOK_CR: yes
@@ -3098,11 +3098,11 @@
30983098
Has flag LOOK_INVALID: no
30993099
Has flag LOOK_ODD: no
31003100
Has flag LOOK_SHORT: no}
31013101
31023102
utf-check 272 utf-check-272-0-86-0.jnk \
3103
-{File "%TEMP%/utf-check-272-0-86-0.jnk" has 8197 bytes.
3103
+{File "%TEMP%/utf-check-272-0-86-0.jnk" has 32785 bytes.
31043104
Starts with UTF-8 BOM: no
31053105
Starts with UTF-16 BOM: no
31063106
Looks like UTF-8: no
31073107
Has flag LOOK_NUL: no
31083108
Has flag LOOK_CR: no
@@ -3114,11 +3114,11 @@
31143114
Has flag LOOK_INVALID: no
31153115
Has flag LOOK_ODD: no
31163116
Has flag LOOK_SHORT: no}
31173117
31183118
utf-check 273 utf-check-273-0-86-1.jnk \
3119
-{File "%TEMP%/utf-check-273-0-86-1.jnk" has 8198 bytes.
3119
+{File "%TEMP%/utf-check-273-0-86-1.jnk" has 32786 bytes.
31203120
Starts with UTF-8 BOM: no
31213121
Starts with UTF-16 BOM: no
31223122
Looks like UTF-8: no
31233123
Has flag LOOK_NUL: no
31243124
Has flag LOOK_CR: no
@@ -3130,11 +3130,11 @@
31303130
Has flag LOOK_INVALID: no
31313131
Has flag LOOK_ODD: no
31323132
Has flag LOOK_SHORT: no}
31333133
31343134
utf-check 274 utf-check-274-0-87-0.jnk \
3135
-{File "%TEMP%/utf-check-274-0-87-0.jnk" has 8198 bytes.
3135
+{File "%TEMP%/utf-check-274-0-87-0.jnk" has 32786 bytes.
31363136
Starts with UTF-8 BOM: no
31373137
Starts with UTF-16 BOM: no
31383138
Looks like UTF-8: no
31393139
Has flag LOOK_NUL: no
31403140
Has flag LOOK_CR: yes
@@ -3146,11 +3146,11 @@
31463146
Has flag LOOK_INVALID: no
31473147
Has flag LOOK_ODD: no
31483148
Has flag LOOK_SHORT: no}
31493149
31503150
utf-check 275 utf-check-275-0-87-1.jnk \
3151
-{File "%TEMP%/utf-check-275-0-87-1.jnk" has 8199 bytes.
3151
+{File "%TEMP%/utf-check-275-0-87-1.jnk" has 32787 bytes.
31523152
Starts with UTF-8 BOM: no
31533153
Starts with UTF-16 BOM: no
31543154
Looks like UTF-8: no
31553155
Has flag LOOK_NUL: no
31563156
Has flag LOOK_CR: yes
@@ -3162,11 +3162,11 @@
31623162
Has flag LOOK_INVALID: no
31633163
Has flag LOOK_ODD: no
31643164
Has flag LOOK_SHORT: no}
31653165
31663166
utf-check 276 utf-check-276-0-88-0.jnk \
3167
-{File "%TEMP%/utf-check-276-0-88-0.jnk" has 8194 bytes.
3167
+{File "%TEMP%/utf-check-276-0-88-0.jnk" has 32770 bytes.
31683168
Starts with UTF-8 BOM: no
31693169
Starts with UTF-16 BOM: no
31703170
Looks like UTF-8: no
31713171
Has flag LOOK_NUL: yes
31723172
Has flag LOOK_CR: no
@@ -3178,11 +3178,11 @@
31783178
Has flag LOOK_INVALID: no
31793179
Has flag LOOK_ODD: no
31803180
Has flag LOOK_SHORT: no}
31813181
31823182
utf-check 277 utf-check-277-0-88-1.jnk \
3183
-{File "%TEMP%/utf-check-277-0-88-1.jnk" has 8195 bytes.
3183
+{File "%TEMP%/utf-check-277-0-88-1.jnk" has 32771 bytes.
31843184
Starts with UTF-8 BOM: no
31853185
Starts with UTF-16 BOM: no
31863186
Looks like UTF-8: no
31873187
Has flag LOOK_NUL: yes
31883188
Has flag LOOK_CR: no
@@ -3194,11 +3194,11 @@
31943194
Has flag LOOK_INVALID: no
31953195
Has flag LOOK_ODD: no
31963196
Has flag LOOK_SHORT: no}
31973197
31983198
utf-check 278 utf-check-278-0-89-0.jnk \
3199
-{File "%TEMP%/utf-check-278-0-89-0.jnk" has 8195 bytes.
3199
+{File "%TEMP%/utf-check-278-0-89-0.jnk" has 32771 bytes.
32003200
Starts with UTF-8 BOM: no
32013201
Starts with UTF-16 BOM: no
32023202
Looks like UTF-8: no
32033203
Has flag LOOK_NUL: yes
32043204
Has flag LOOK_CR: yes
@@ -3210,11 +3210,11 @@
32103210
Has flag LOOK_INVALID: no
32113211
Has flag LOOK_ODD: no
32123212
Has flag LOOK_SHORT: no}
32133213
32143214
utf-check 279 utf-check-279-0-89-1.jnk \
3215
-{File "%TEMP%/utf-check-279-0-89-1.jnk" has 8196 bytes.
3215
+{File "%TEMP%/utf-check-279-0-89-1.jnk" has 32772 bytes.
32163216
Starts with UTF-8 BOM: no
32173217
Starts with UTF-16 BOM: no
32183218
Looks like UTF-8: no
32193219
Has flag LOOK_NUL: yes
32203220
Has flag LOOK_CR: yes
@@ -3226,11 +3226,11 @@
32263226
Has flag LOOK_INVALID: no
32273227
Has flag LOOK_ODD: no
32283228
Has flag LOOK_SHORT: no}
32293229
32303230
utf-check 280 utf-check-280-0-90-0.jnk \
3231
-{File "%TEMP%/utf-check-280-0-90-0.jnk" has 8195 bytes.
3231
+{File "%TEMP%/utf-check-280-0-90-0.jnk" has 32771 bytes.
32323232
Starts with UTF-8 BOM: no
32333233
Starts with UTF-16 BOM: no
32343234
Looks like UTF-8: no
32353235
Has flag LOOK_NUL: yes
32363236
Has flag LOOK_CR: no
@@ -3242,11 +3242,11 @@
32423242
Has flag LOOK_INVALID: no
32433243
Has flag LOOK_ODD: no
32443244
Has flag LOOK_SHORT: no}
32453245
32463246
utf-check 281 utf-check-281-0-90-1.jnk \
3247
-{File "%TEMP%/utf-check-281-0-90-1.jnk" has 8196 bytes.
3247
+{File "%TEMP%/utf-check-281-0-90-1.jnk" has 32772 bytes.
32483248
Starts with UTF-8 BOM: no
32493249
Starts with UTF-16 BOM: no
32503250
Looks like UTF-8: no
32513251
Has flag LOOK_NUL: yes
32523252
Has flag LOOK_CR: no
@@ -3258,11 +3258,11 @@
32583258
Has flag LOOK_INVALID: no
32593259
Has flag LOOK_ODD: no
32603260
Has flag LOOK_SHORT: no}
32613261
32623262
utf-check 282 utf-check-282-0-91-0.jnk \
3263
-{File "%TEMP%/utf-check-282-0-91-0.jnk" has 8196 bytes.
3263
+{File "%TEMP%/utf-check-282-0-91-0.jnk" has 32772 bytes.
32643264
Starts with UTF-8 BOM: no
32653265
Starts with UTF-16 BOM: no
32663266
Looks like UTF-8: no
32673267
Has flag LOOK_NUL: yes
32683268
Has flag LOOK_CR: yes
@@ -3274,11 +3274,11 @@
32743274
Has flag LOOK_INVALID: no
32753275
Has flag LOOK_ODD: no
32763276
Has flag LOOK_SHORT: no}
32773277
32783278
utf-check 283 utf-check-283-0-91-1.jnk \
3279
-{File "%TEMP%/utf-check-283-0-91-1.jnk" has 8197 bytes.
3279
+{File "%TEMP%/utf-check-283-0-91-1.jnk" has 32773 bytes.
32803280
Starts with UTF-8 BOM: no
32813281
Starts with UTF-16 BOM: no
32823282
Looks like UTF-8: no
32833283
Has flag LOOK_NUL: yes
32843284
Has flag LOOK_CR: yes
@@ -3290,11 +3290,11 @@
32903290
Has flag LOOK_INVALID: no
32913291
Has flag LOOK_ODD: no
32923292
Has flag LOOK_SHORT: no}
32933293
32943294
utf-check 284 utf-check-284-0-92-0.jnk \
3295
-{File "%TEMP%/utf-check-284-0-92-0.jnk" has 8197 bytes.
3295
+{File "%TEMP%/utf-check-284-0-92-0.jnk" has 32785 bytes.
32963296
Starts with UTF-8 BOM: no
32973297
Starts with UTF-16 BOM: no
32983298
Looks like UTF-8: no
32993299
Has flag LOOK_NUL: yes
33003300
Has flag LOOK_CR: no
@@ -3306,11 +3306,11 @@
33063306
Has flag LOOK_INVALID: no
33073307
Has flag LOOK_ODD: no
33083308
Has flag LOOK_SHORT: no}
33093309
33103310
utf-check 285 utf-check-285-0-92-1.jnk \
3311
-{File "%TEMP%/utf-check-285-0-92-1.jnk" has 8198 bytes.
3311
+{File "%TEMP%/utf-check-285-0-92-1.jnk" has 32786 bytes.
33123312
Starts with UTF-8 BOM: no
33133313
Starts with UTF-16 BOM: no
33143314
Looks like UTF-8: no
33153315
Has flag LOOK_NUL: yes
33163316
Has flag LOOK_CR: no
@@ -3322,11 +3322,11 @@
33223322
Has flag LOOK_INVALID: no
33233323
Has flag LOOK_ODD: no
33243324
Has flag LOOK_SHORT: no}
33253325
33263326
utf-check 286 utf-check-286-0-93-0.jnk \
3327
-{File "%TEMP%/utf-check-286-0-93-0.jnk" has 8198 bytes.
3327
+{File "%TEMP%/utf-check-286-0-93-0.jnk" has 32786 bytes.
33283328
Starts with UTF-8 BOM: no
33293329
Starts with UTF-16 BOM: no
33303330
Looks like UTF-8: no
33313331
Has flag LOOK_NUL: yes
33323332
Has flag LOOK_CR: yes
@@ -3338,11 +3338,11 @@
33383338
Has flag LOOK_INVALID: no
33393339
Has flag LOOK_ODD: no
33403340
Has flag LOOK_SHORT: no}
33413341
33423342
utf-check 287 utf-check-287-0-93-1.jnk \
3343
-{File "%TEMP%/utf-check-287-0-93-1.jnk" has 8199 bytes.
3343
+{File "%TEMP%/utf-check-287-0-93-1.jnk" has 32787 bytes.
33443344
Starts with UTF-8 BOM: no
33453345
Starts with UTF-16 BOM: no
33463346
Looks like UTF-8: no
33473347
Has flag LOOK_NUL: yes
33483348
Has flag LOOK_CR: yes
@@ -3354,11 +3354,11 @@
33543354
Has flag LOOK_INVALID: no
33553355
Has flag LOOK_ODD: no
33563356
Has flag LOOK_SHORT: no}
33573357
33583358
utf-check 288 utf-check-288-0-94-0.jnk \
3359
-{File "%TEMP%/utf-check-288-0-94-0.jnk" has 8198 bytes.
3359
+{File "%TEMP%/utf-check-288-0-94-0.jnk" has 32786 bytes.
33603360
Starts with UTF-8 BOM: no
33613361
Starts with UTF-16 BOM: no
33623362
Looks like UTF-8: no
33633363
Has flag LOOK_NUL: yes
33643364
Has flag LOOK_CR: no
@@ -3370,11 +3370,11 @@
33703370
Has flag LOOK_INVALID: no
33713371
Has flag LOOK_ODD: no
33723372
Has flag LOOK_SHORT: no}
33733373
33743374
utf-check 289 utf-check-289-0-94-1.jnk \
3375
-{File "%TEMP%/utf-check-289-0-94-1.jnk" has 8199 bytes.
3375
+{File "%TEMP%/utf-check-289-0-94-1.jnk" has 32787 bytes.
33763376
Starts with UTF-8 BOM: no
33773377
Starts with UTF-16 BOM: no
33783378
Looks like UTF-8: no
33793379
Has flag LOOK_NUL: yes
33803380
Has flag LOOK_CR: no
@@ -3386,11 +3386,11 @@
33863386
Has flag LOOK_INVALID: no
33873387
Has flag LOOK_ODD: no
33883388
Has flag LOOK_SHORT: no}
33893389
33903390
utf-check 290 utf-check-290-0-95-0.jnk \
3391
-{File "%TEMP%/utf-check-290-0-95-0.jnk" has 8199 bytes.
3391
+{File "%TEMP%/utf-check-290-0-95-0.jnk" has 32787 bytes.
33923392
Starts with UTF-8 BOM: no
33933393
Starts with UTF-16 BOM: no
33943394
Looks like UTF-8: no
33953395
Has flag LOOK_NUL: yes
33963396
Has flag LOOK_CR: yes
@@ -3402,11 +3402,11 @@
34023402
Has flag LOOK_INVALID: no
34033403
Has flag LOOK_ODD: no
34043404
Has flag LOOK_SHORT: no}
34053405
34063406
utf-check 291 utf-check-291-0-95-1.jnk \
3407
-{File "%TEMP%/utf-check-291-0-95-1.jnk" has 8200 bytes.
3407
+{File "%TEMP%/utf-check-291-0-95-1.jnk" has 32788 bytes.
34083408
Starts with UTF-8 BOM: no
34093409
Starts with UTF-16 BOM: no
34103410
Looks like UTF-8: no
34113411
Has flag LOOK_NUL: yes
34123412
Has flag LOOK_CR: yes
@@ -3418,11 +3418,11 @@
34183418
Has flag LOOK_INVALID: no
34193419
Has flag LOOK_ODD: no
34203420
Has flag LOOK_SHORT: no}
34213421
34223422
utf-check 292 utf-check-292-0-96-0.jnk \
3423
-{File "%TEMP%/utf-check-292-0-96-0.jnk" has 8194 bytes.
3423
+{File "%TEMP%/utf-check-292-0-96-0.jnk" has 32770 bytes.
34243424
Starts with UTF-8 BOM: no
34253425
Starts with UTF-16 BOM: no
34263426
Looks like UTF-8: no
34273427
Has flag LOOK_NUL: yes
34283428
Has flag LOOK_CR: no
@@ -3434,11 +3434,11 @@
34343434
Has flag LOOK_INVALID: no
34353435
Has flag LOOK_ODD: no
34363436
Has flag LOOK_SHORT: no}
34373437
34383438
utf-check 293 utf-check-293-0-96-1.jnk \
3439
-{File "%TEMP%/utf-check-293-0-96-1.jnk" has 8195 bytes.
3439
+{File "%TEMP%/utf-check-293-0-96-1.jnk" has 32771 bytes.
34403440
Starts with UTF-8 BOM: no
34413441
Starts with UTF-16 BOM: no
34423442
Looks like UTF-8: no
34433443
Has flag LOOK_NUL: yes
34443444
Has flag LOOK_CR: no
@@ -3450,11 +3450,11 @@
34503450
Has flag LOOK_INVALID: no
34513451
Has flag LOOK_ODD: no
34523452
Has flag LOOK_SHORT: no}
34533453
34543454
utf-check 294 utf-check-294-0-97-0.jnk \
3455
-{File "%TEMP%/utf-check-294-0-97-0.jnk" has 8195 bytes.
3455
+{File "%TEMP%/utf-check-294-0-97-0.jnk" has 32771 bytes.
34563456
Starts with UTF-8 BOM: no
34573457
Starts with UTF-16 BOM: no
34583458
Looks like UTF-8: no
34593459
Has flag LOOK_NUL: yes
34603460
Has flag LOOK_CR: yes
@@ -3466,11 +3466,11 @@
34663466
Has flag LOOK_INVALID: no
34673467
Has flag LOOK_ODD: no
34683468
Has flag LOOK_SHORT: no}
34693469
34703470
utf-check 295 utf-check-295-0-97-1.jnk \
3471
-{File "%TEMP%/utf-check-295-0-97-1.jnk" has 8196 bytes.
3471
+{File "%TEMP%/utf-check-295-0-97-1.jnk" has 32772 bytes.
34723472
Starts with UTF-8 BOM: no
34733473
Starts with UTF-16 BOM: no
34743474
Looks like UTF-8: no
34753475
Has flag LOOK_NUL: yes
34763476
Has flag LOOK_CR: yes
@@ -3482,11 +3482,11 @@
34823482
Has flag LOOK_INVALID: no
34833483
Has flag LOOK_ODD: no
34843484
Has flag LOOK_SHORT: no}
34853485
34863486
utf-check 296 utf-check-296-0-98-0.jnk \
3487
-{File "%TEMP%/utf-check-296-0-98-0.jnk" has 8195 bytes.
3487
+{File "%TEMP%/utf-check-296-0-98-0.jnk" has 32771 bytes.
34883488
Starts with UTF-8 BOM: no
34893489
Starts with UTF-16 BOM: no
34903490
Looks like UTF-8: no
34913491
Has flag LOOK_NUL: yes
34923492
Has flag LOOK_CR: no
@@ -3498,11 +3498,11 @@
34983498
Has flag LOOK_INVALID: no
34993499
Has flag LOOK_ODD: no
35003500
Has flag LOOK_SHORT: no}
35013501
35023502
utf-check 297 utf-check-297-0-98-1.jnk \
3503
-{File "%TEMP%/utf-check-297-0-98-1.jnk" has 8196 bytes.
3503
+{File "%TEMP%/utf-check-297-0-98-1.jnk" has 32772 bytes.
35043504
Starts with UTF-8 BOM: no
35053505
Starts with UTF-16 BOM: no
35063506
Looks like UTF-8: no
35073507
Has flag LOOK_NUL: yes
35083508
Has flag LOOK_CR: no
@@ -3514,11 +3514,11 @@
35143514
Has flag LOOK_INVALID: no
35153515
Has flag LOOK_ODD: no
35163516
Has flag LOOK_SHORT: no}
35173517
35183518
utf-check 298 utf-check-298-0-99-0.jnk \
3519
-{File "%TEMP%/utf-check-298-0-99-0.jnk" has 8196 bytes.
3519
+{File "%TEMP%/utf-check-298-0-99-0.jnk" has 32772 bytes.
35203520
Starts with UTF-8 BOM: no
35213521
Starts with UTF-16 BOM: no
35223522
Looks like UTF-8: no
35233523
Has flag LOOK_NUL: yes
35243524
Has flag LOOK_CR: yes
@@ -3530,11 +3530,11 @@
35303530
Has flag LOOK_INVALID: no
35313531
Has flag LOOK_ODD: no
35323532
Has flag LOOK_SHORT: no}
35333533
35343534
utf-check 299 utf-check-299-0-99-1.jnk \
3535
-{File "%TEMP%/utf-check-299-0-99-1.jnk" has 8197 bytes.
3535
+{File "%TEMP%/utf-check-299-0-99-1.jnk" has 32773 bytes.
35363536
Starts with UTF-8 BOM: no
35373537
Starts with UTF-16 BOM: no
35383538
Looks like UTF-8: no
35393539
Has flag LOOK_NUL: yes
35403540
Has flag LOOK_CR: yes
@@ -3546,11 +3546,11 @@
35463546
Has flag LOOK_INVALID: no
35473547
Has flag LOOK_ODD: no
35483548
Has flag LOOK_SHORT: no}
35493549
35503550
utf-check 300 utf-check-300-0-100-0.jnk \
3551
-{File "%TEMP%/utf-check-300-0-100-0.jnk" has 8197 bytes.
3551
+{File "%TEMP%/utf-check-300-0-100-0.jnk" has 32785 bytes.
35523552
Starts with UTF-8 BOM: no
35533553
Starts with UTF-16 BOM: no
35543554
Looks like UTF-8: no
35553555
Has flag LOOK_NUL: yes
35563556
Has flag LOOK_CR: no
@@ -3562,11 +3562,11 @@
35623562
Has flag LOOK_INVALID: no
35633563
Has flag LOOK_ODD: no
35643564
Has flag LOOK_SHORT: no}
35653565
35663566
utf-check 301 utf-check-301-0-100-1.jnk \
3567
-{File "%TEMP%/utf-check-301-0-100-1.jnk" has 8198 bytes.
3567
+{File "%TEMP%/utf-check-301-0-100-1.jnk" has 32786 bytes.
35683568
Starts with UTF-8 BOM: no
35693569
Starts with UTF-16 BOM: no
35703570
Looks like UTF-8: no
35713571
Has flag LOOK_NUL: yes
35723572
Has flag LOOK_CR: no
@@ -3578,11 +3578,11 @@
35783578
Has flag LOOK_INVALID: no
35793579
Has flag LOOK_ODD: no
35803580
Has flag LOOK_SHORT: no}
35813581
35823582
utf-check 302 utf-check-302-0-101-0.jnk \
3583
-{File "%TEMP%/utf-check-302-0-101-0.jnk" has 8198 bytes.
3583
+{File "%TEMP%/utf-check-302-0-101-0.jnk" has 32786 bytes.
35843584
Starts with UTF-8 BOM: no
35853585
Starts with UTF-16 BOM: no
35863586
Looks like UTF-8: no
35873587
Has flag LOOK_NUL: yes
35883588
Has flag LOOK_CR: yes
@@ -3594,11 +3594,11 @@
35943594
Has flag LOOK_INVALID: no
35953595
Has flag LOOK_ODD: no
35963596
Has flag LOOK_SHORT: no}
35973597
35983598
utf-check 303 utf-check-303-0-101-1.jnk \
3599
-{File "%TEMP%/utf-check-303-0-101-1.jnk" has 8199 bytes.
3599
+{File "%TEMP%/utf-check-303-0-101-1.jnk" has 32787 bytes.
36003600
Starts with UTF-8 BOM: no
36013601
Starts with UTF-16 BOM: no
36023602
Looks like UTF-8: no
36033603
Has flag LOOK_NUL: yes
36043604
Has flag LOOK_CR: yes
@@ -3610,11 +3610,11 @@
36103610
Has flag LOOK_INVALID: no
36113611
Has flag LOOK_ODD: no
36123612
Has flag LOOK_SHORT: no}
36133613
36143614
utf-check 304 utf-check-304-0-102-0.jnk \
3615
-{File "%TEMP%/utf-check-304-0-102-0.jnk" has 8198 bytes.
3615
+{File "%TEMP%/utf-check-304-0-102-0.jnk" has 32786 bytes.
36163616
Starts with UTF-8 BOM: no
36173617
Starts with UTF-16 BOM: no
36183618
Looks like UTF-8: no
36193619
Has flag LOOK_NUL: yes
36203620
Has flag LOOK_CR: no
@@ -3626,11 +3626,11 @@
36263626
Has flag LOOK_INVALID: no
36273627
Has flag LOOK_ODD: no
36283628
Has flag LOOK_SHORT: no}
36293629
36303630
utf-check 305 utf-check-305-0-102-1.jnk \
3631
-{File "%TEMP%/utf-check-305-0-102-1.jnk" has 8199 bytes.
3631
+{File "%TEMP%/utf-check-305-0-102-1.jnk" has 32787 bytes.
36323632
Starts with UTF-8 BOM: no
36333633
Starts with UTF-16 BOM: no
36343634
Looks like UTF-8: no
36353635
Has flag LOOK_NUL: yes
36363636
Has flag LOOK_CR: no
@@ -3642,11 +3642,11 @@
36423642
Has flag LOOK_INVALID: no
36433643
Has flag LOOK_ODD: no
36443644
Has flag LOOK_SHORT: no}
36453645
36463646
utf-check 306 utf-check-306-0-103-0.jnk \
3647
-{File "%TEMP%/utf-check-306-0-103-0.jnk" has 8199 bytes.
3647
+{File "%TEMP%/utf-check-306-0-103-0.jnk" has 32787 bytes.
36483648
Starts with UTF-8 BOM: no
36493649
Starts with UTF-16 BOM: no
36503650
Looks like UTF-8: no
36513651
Has flag LOOK_NUL: yes
36523652
Has flag LOOK_CR: yes
@@ -3658,11 +3658,11 @@
36583658
Has flag LOOK_INVALID: no
36593659
Has flag LOOK_ODD: no
36603660
Has flag LOOK_SHORT: no}
36613661
36623662
utf-check 307 utf-check-307-0-103-1.jnk \
3663
-{File "%TEMP%/utf-check-307-0-103-1.jnk" has 8200 bytes.
3663
+{File "%TEMP%/utf-check-307-0-103-1.jnk" has 32788 bytes.
36643664
Starts with UTF-8 BOM: no
36653665
Starts with UTF-16 BOM: no
36663666
Looks like UTF-8: no
36673667
Has flag LOOK_NUL: yes
36683668
Has flag LOOK_CR: yes
@@ -3674,11 +3674,11 @@
36743674
Has flag LOOK_INVALID: no
36753675
Has flag LOOK_ODD: no
36763676
Has flag LOOK_SHORT: no}
36773677
36783678
utf-check 308 utf-check-308-0-104-0.jnk \
3679
-{File "%TEMP%/utf-check-308-0-104-0.jnk" has 8195 bytes.
3679
+{File "%TEMP%/utf-check-308-0-104-0.jnk" has 32771 bytes.
36803680
Starts with UTF-8 BOM: no
36813681
Starts with UTF-16 BOM: no
36823682
Looks like UTF-8: no
36833683
Has flag LOOK_NUL: yes
36843684
Has flag LOOK_CR: no
@@ -3690,11 +3690,11 @@
36903690
Has flag LOOK_INVALID: no
36913691
Has flag LOOK_ODD: no
36923692
Has flag LOOK_SHORT: no}
36933693
36943694
utf-check 309 utf-check-309-0-104-1.jnk \
3695
-{File "%TEMP%/utf-check-309-0-104-1.jnk" has 8196 bytes.
3695
+{File "%TEMP%/utf-check-309-0-104-1.jnk" has 32772 bytes.
36963696
Starts with UTF-8 BOM: no
36973697
Starts with UTF-16 BOM: no
36983698
Looks like UTF-8: no
36993699
Has flag LOOK_NUL: yes
37003700
Has flag LOOK_CR: no
@@ -3706,11 +3706,11 @@
37063706
Has flag LOOK_INVALID: no
37073707
Has flag LOOK_ODD: no
37083708
Has flag LOOK_SHORT: no}
37093709
37103710
utf-check 310 utf-check-310-0-105-0.jnk \
3711
-{File "%TEMP%/utf-check-310-0-105-0.jnk" has 8196 bytes.
3711
+{File "%TEMP%/utf-check-310-0-105-0.jnk" has 32772 bytes.
37123712
Starts with UTF-8 BOM: no
37133713
Starts with UTF-16 BOM: no
37143714
Looks like UTF-8: no
37153715
Has flag LOOK_NUL: yes
37163716
Has flag LOOK_CR: yes
@@ -3722,11 +3722,11 @@
37223722
Has flag LOOK_INVALID: no
37233723
Has flag LOOK_ODD: no
37243724
Has flag LOOK_SHORT: no}
37253725
37263726
utf-check 311 utf-check-311-0-105-1.jnk \
3727
-{File "%TEMP%/utf-check-311-0-105-1.jnk" has 8197 bytes.
3727
+{File "%TEMP%/utf-check-311-0-105-1.jnk" has 32773 bytes.
37283728
Starts with UTF-8 BOM: no
37293729
Starts with UTF-16 BOM: no
37303730
Looks like UTF-8: no
37313731
Has flag LOOK_NUL: yes
37323732
Has flag LOOK_CR: yes
@@ -3738,11 +3738,11 @@
37383738
Has flag LOOK_INVALID: no
37393739
Has flag LOOK_ODD: no
37403740
Has flag LOOK_SHORT: no}
37413741
37423742
utf-check 312 utf-check-312-0-106-0.jnk \
3743
-{File "%TEMP%/utf-check-312-0-106-0.jnk" has 8196 bytes.
3743
+{File "%TEMP%/utf-check-312-0-106-0.jnk" has 32772 bytes.
37443744
Starts with UTF-8 BOM: no
37453745
Starts with UTF-16 BOM: no
37463746
Looks like UTF-8: no
37473747
Has flag LOOK_NUL: yes
37483748
Has flag LOOK_CR: no
@@ -3754,11 +3754,11 @@
37543754
Has flag LOOK_INVALID: no
37553755
Has flag LOOK_ODD: no
37563756
Has flag LOOK_SHORT: no}
37573757
37583758
utf-check 313 utf-check-313-0-106-1.jnk \
3759
-{File "%TEMP%/utf-check-313-0-106-1.jnk" has 8197 bytes.
3759
+{File "%TEMP%/utf-check-313-0-106-1.jnk" has 32773 bytes.
37603760
Starts with UTF-8 BOM: no
37613761
Starts with UTF-16 BOM: no
37623762
Looks like UTF-8: no
37633763
Has flag LOOK_NUL: yes
37643764
Has flag LOOK_CR: no
@@ -3770,11 +3770,11 @@
37703770
Has flag LOOK_INVALID: no
37713771
Has flag LOOK_ODD: no
37723772
Has flag LOOK_SHORT: no}
37733773
37743774
utf-check 314 utf-check-314-0-107-0.jnk \
3775
-{File "%TEMP%/utf-check-314-0-107-0.jnk" has 8197 bytes.
3775
+{File "%TEMP%/utf-check-314-0-107-0.jnk" has 32773 bytes.
37763776
Starts with UTF-8 BOM: no
37773777
Starts with UTF-16 BOM: no
37783778
Looks like UTF-8: no
37793779
Has flag LOOK_NUL: yes
37803780
Has flag LOOK_CR: yes
@@ -3786,11 +3786,11 @@
37863786
Has flag LOOK_INVALID: no
37873787
Has flag LOOK_ODD: no
37883788
Has flag LOOK_SHORT: no}
37893789
37903790
utf-check 315 utf-check-315-0-107-1.jnk \
3791
-{File "%TEMP%/utf-check-315-0-107-1.jnk" has 8198 bytes.
3791
+{File "%TEMP%/utf-check-315-0-107-1.jnk" has 32774 bytes.
37923792
Starts with UTF-8 BOM: no
37933793
Starts with UTF-16 BOM: no
37943794
Looks like UTF-8: no
37953795
Has flag LOOK_NUL: yes
37963796
Has flag LOOK_CR: yes
@@ -3802,11 +3802,11 @@
38023802
Has flag LOOK_INVALID: no
38033803
Has flag LOOK_ODD: no
38043804
Has flag LOOK_SHORT: no}
38053805
38063806
utf-check 316 utf-check-316-0-108-0.jnk \
3807
-{File "%TEMP%/utf-check-316-0-108-0.jnk" has 8198 bytes.
3807
+{File "%TEMP%/utf-check-316-0-108-0.jnk" has 32786 bytes.
38083808
Starts with UTF-8 BOM: no
38093809
Starts with UTF-16 BOM: no
38103810
Looks like UTF-8: no
38113811
Has flag LOOK_NUL: yes
38123812
Has flag LOOK_CR: no
@@ -3818,11 +3818,11 @@
38183818
Has flag LOOK_INVALID: no
38193819
Has flag LOOK_ODD: no
38203820
Has flag LOOK_SHORT: no}
38213821
38223822
utf-check 317 utf-check-317-0-108-1.jnk \
3823
-{File "%TEMP%/utf-check-317-0-108-1.jnk" has 8199 bytes.
3823
+{File "%TEMP%/utf-check-317-0-108-1.jnk" has 32787 bytes.
38243824
Starts with UTF-8 BOM: no
38253825
Starts with UTF-16 BOM: no
38263826
Looks like UTF-8: no
38273827
Has flag LOOK_NUL: yes
38283828
Has flag LOOK_CR: no
@@ -3834,11 +3834,11 @@
38343834
Has flag LOOK_INVALID: no
38353835
Has flag LOOK_ODD: no
38363836
Has flag LOOK_SHORT: no}
38373837
38383838
utf-check 318 utf-check-318-0-109-0.jnk \
3839
-{File "%TEMP%/utf-check-318-0-109-0.jnk" has 8199 bytes.
3839
+{File "%TEMP%/utf-check-318-0-109-0.jnk" has 32787 bytes.
38403840
Starts with UTF-8 BOM: no
38413841
Starts with UTF-16 BOM: no
38423842
Looks like UTF-8: no
38433843
Has flag LOOK_NUL: yes
38443844
Has flag LOOK_CR: yes
@@ -3850,11 +3850,11 @@
38503850
Has flag LOOK_INVALID: no
38513851
Has flag LOOK_ODD: no
38523852
Has flag LOOK_SHORT: no}
38533853
38543854
utf-check 319 utf-check-319-0-109-1.jnk \
3855
-{File "%TEMP%/utf-check-319-0-109-1.jnk" has 8200 bytes.
3855
+{File "%TEMP%/utf-check-319-0-109-1.jnk" has 32788 bytes.
38563856
Starts with UTF-8 BOM: no
38573857
Starts with UTF-16 BOM: no
38583858
Looks like UTF-8: no
38593859
Has flag LOOK_NUL: yes
38603860
Has flag LOOK_CR: yes
@@ -3866,11 +3866,11 @@
38663866
Has flag LOOK_INVALID: no
38673867
Has flag LOOK_ODD: no
38683868
Has flag LOOK_SHORT: no}
38693869
38703870
utf-check 320 utf-check-320-0-110-0.jnk \
3871
-{File "%TEMP%/utf-check-320-0-110-0.jnk" has 8199 bytes.
3871
+{File "%TEMP%/utf-check-320-0-110-0.jnk" has 32787 bytes.
38723872
Starts with UTF-8 BOM: no
38733873
Starts with UTF-16 BOM: no
38743874
Looks like UTF-8: no
38753875
Has flag LOOK_NUL: yes
38763876
Has flag LOOK_CR: no
@@ -3882,11 +3882,11 @@
38823882
Has flag LOOK_INVALID: no
38833883
Has flag LOOK_ODD: no
38843884
Has flag LOOK_SHORT: no}
38853885
38863886
utf-check 321 utf-check-321-0-110-1.jnk \
3887
-{File "%TEMP%/utf-check-321-0-110-1.jnk" has 8200 bytes.
3887
+{File "%TEMP%/utf-check-321-0-110-1.jnk" has 32788 bytes.
38883888
Starts with UTF-8 BOM: no
38893889
Starts with UTF-16 BOM: no
38903890
Looks like UTF-8: no
38913891
Has flag LOOK_NUL: yes
38923892
Has flag LOOK_CR: no
@@ -3898,11 +3898,11 @@
38983898
Has flag LOOK_INVALID: no
38993899
Has flag LOOK_ODD: no
39003900
Has flag LOOK_SHORT: no}
39013901
39023902
utf-check 322 utf-check-322-0-111-0.jnk \
3903
-{File "%TEMP%/utf-check-322-0-111-0.jnk" has 8200 bytes.
3903
+{File "%TEMP%/utf-check-322-0-111-0.jnk" has 32788 bytes.
39043904
Starts with UTF-8 BOM: no
39053905
Starts with UTF-16 BOM: no
39063906
Looks like UTF-8: no
39073907
Has flag LOOK_NUL: yes
39083908
Has flag LOOK_CR: yes
@@ -3914,11 +3914,11 @@
39143914
Has flag LOOK_INVALID: no
39153915
Has flag LOOK_ODD: no
39163916
Has flag LOOK_SHORT: no}
39173917
39183918
utf-check 323 utf-check-323-0-111-1.jnk \
3919
-{File "%TEMP%/utf-check-323-0-111-1.jnk" has 8201 bytes.
3919
+{File "%TEMP%/utf-check-323-0-111-1.jnk" has 32789 bytes.
39203920
Starts with UTF-8 BOM: no
39213921
Starts with UTF-16 BOM: no
39223922
Looks like UTF-8: no
39233923
Has flag LOOK_NUL: yes
39243924
Has flag LOOK_CR: yes
@@ -9466,11 +9466,11 @@
94669466
Has flag LOOK_INVALID: no
94679467
Has flag LOOK_ODD: no
94689468
Has flag LOOK_SHORT: no}
94699469
94709470
utf-check 670 utf-check-670-1-80-0.jnk \
9471
-{File "%TEMP%/utf-check-670-1-80-0.jnk" has 8196 bytes.
9471
+{File "%TEMP%/utf-check-670-1-80-0.jnk" has 32772 bytes.
94729472
Starts with UTF-8 BOM: yes
94739473
Starts with UTF-16 BOM: no
94749474
Looks like UTF-8: no
94759475
Has flag LOOK_NUL: no
94769476
Has flag LOOK_CR: no
@@ -9482,11 +9482,11 @@
94829482
Has flag LOOK_INVALID: no
94839483
Has flag LOOK_ODD: no
94849484
Has flag LOOK_SHORT: no}
94859485
94869486
utf-check 671 utf-check-671-1-80-1.jnk \
9487
-{File "%TEMP%/utf-check-671-1-80-1.jnk" has 8197 bytes.
9487
+{File "%TEMP%/utf-check-671-1-80-1.jnk" has 32773 bytes.
94889488
Starts with UTF-8 BOM: yes
94899489
Starts with UTF-16 BOM: no
94909490
Looks like UTF-8: no
94919491
Has flag LOOK_NUL: no
94929492
Has flag LOOK_CR: no
@@ -9498,11 +9498,11 @@
94989498
Has flag LOOK_INVALID: no
94999499
Has flag LOOK_ODD: no
95009500
Has flag LOOK_SHORT: no}
95019501
95029502
utf-check 672 utf-check-672-1-81-0.jnk \
9503
-{File "%TEMP%/utf-check-672-1-81-0.jnk" has 8197 bytes.
9503
+{File "%TEMP%/utf-check-672-1-81-0.jnk" has 32773 bytes.
95049504
Starts with UTF-8 BOM: yes
95059505
Starts with UTF-16 BOM: no
95069506
Looks like UTF-8: no
95079507
Has flag LOOK_NUL: no
95089508
Has flag LOOK_CR: yes
@@ -9514,11 +9514,11 @@
95149514
Has flag LOOK_INVALID: no
95159515
Has flag LOOK_ODD: no
95169516
Has flag LOOK_SHORT: no}
95179517
95189518
utf-check 673 utf-check-673-1-81-1.jnk \
9519
-{File "%TEMP%/utf-check-673-1-81-1.jnk" has 8198 bytes.
9519
+{File "%TEMP%/utf-check-673-1-81-1.jnk" has 32774 bytes.
95209520
Starts with UTF-8 BOM: yes
95219521
Starts with UTF-16 BOM: no
95229522
Looks like UTF-8: no
95239523
Has flag LOOK_NUL: no
95249524
Has flag LOOK_CR: yes
@@ -9530,11 +9530,11 @@
95309530
Has flag LOOK_INVALID: no
95319531
Has flag LOOK_ODD: no
95329532
Has flag LOOK_SHORT: no}
95339533
95349534
utf-check 674 utf-check-674-1-82-0.jnk \
9535
-{File "%TEMP%/utf-check-674-1-82-0.jnk" has 8197 bytes.
9535
+{File "%TEMP%/utf-check-674-1-82-0.jnk" has 32773 bytes.
95369536
Starts with UTF-8 BOM: yes
95379537
Starts with UTF-16 BOM: no
95389538
Looks like UTF-8: no
95399539
Has flag LOOK_NUL: no
95409540
Has flag LOOK_CR: no
@@ -9546,11 +9546,11 @@
95469546
Has flag LOOK_INVALID: no
95479547
Has flag LOOK_ODD: no
95489548
Has flag LOOK_SHORT: no}
95499549
95509550
utf-check 675 utf-check-675-1-82-1.jnk \
9551
-{File "%TEMP%/utf-check-675-1-82-1.jnk" has 8198 bytes.
9551
+{File "%TEMP%/utf-check-675-1-82-1.jnk" has 32774 bytes.
95529552
Starts with UTF-8 BOM: yes
95539553
Starts with UTF-16 BOM: no
95549554
Looks like UTF-8: no
95559555
Has flag LOOK_NUL: no
95569556
Has flag LOOK_CR: no
@@ -9562,11 +9562,11 @@
95629562
Has flag LOOK_INVALID: no
95639563
Has flag LOOK_ODD: no
95649564
Has flag LOOK_SHORT: no}
95659565
95669566
utf-check 676 utf-check-676-1-83-0.jnk \
9567
-{File "%TEMP%/utf-check-676-1-83-0.jnk" has 8198 bytes.
9567
+{File "%TEMP%/utf-check-676-1-83-0.jnk" has 32774 bytes.
95689568
Starts with UTF-8 BOM: yes
95699569
Starts with UTF-16 BOM: no
95709570
Looks like UTF-8: no
95719571
Has flag LOOK_NUL: no
95729572
Has flag LOOK_CR: yes
@@ -9578,11 +9578,11 @@
95789578
Has flag LOOK_INVALID: no
95799579
Has flag LOOK_ODD: no
95809580
Has flag LOOK_SHORT: no}
95819581
95829582
utf-check 677 utf-check-677-1-83-1.jnk \
9583
-{File "%TEMP%/utf-check-677-1-83-1.jnk" has 8199 bytes.
9583
+{File "%TEMP%/utf-check-677-1-83-1.jnk" has 32775 bytes.
95849584
Starts with UTF-8 BOM: yes
95859585
Starts with UTF-16 BOM: no
95869586
Looks like UTF-8: no
95879587
Has flag LOOK_NUL: no
95889588
Has flag LOOK_CR: yes
@@ -9594,11 +9594,11 @@
95949594
Has flag LOOK_INVALID: no
95959595
Has flag LOOK_ODD: no
95969596
Has flag LOOK_SHORT: no}
95979597
95989598
utf-check 678 utf-check-678-1-84-0.jnk \
9599
-{File "%TEMP%/utf-check-678-1-84-0.jnk" has 8199 bytes.
9599
+{File "%TEMP%/utf-check-678-1-84-0.jnk" has 32787 bytes.
96009600
Starts with UTF-8 BOM: yes
96019601
Starts with UTF-16 BOM: no
96029602
Looks like UTF-8: no
96039603
Has flag LOOK_NUL: no
96049604
Has flag LOOK_CR: no
@@ -9610,11 +9610,11 @@
96109610
Has flag LOOK_INVALID: no
96119611
Has flag LOOK_ODD: no
96129612
Has flag LOOK_SHORT: no}
96139613
96149614
utf-check 679 utf-check-679-1-84-1.jnk \
9615
-{File "%TEMP%/utf-check-679-1-84-1.jnk" has 8200 bytes.
9615
+{File "%TEMP%/utf-check-679-1-84-1.jnk" has 32788 bytes.
96169616
Starts with UTF-8 BOM: yes
96179617
Starts with UTF-16 BOM: no
96189618
Looks like UTF-8: no
96199619
Has flag LOOK_NUL: no
96209620
Has flag LOOK_CR: no
@@ -9626,11 +9626,11 @@
96269626
Has flag LOOK_INVALID: no
96279627
Has flag LOOK_ODD: no
96289628
Has flag LOOK_SHORT: no}
96299629
96309630
utf-check 680 utf-check-680-1-85-0.jnk \
9631
-{File "%TEMP%/utf-check-680-1-85-0.jnk" has 8200 bytes.
9631
+{File "%TEMP%/utf-check-680-1-85-0.jnk" has 32788 bytes.
96329632
Starts with UTF-8 BOM: yes
96339633
Starts with UTF-16 BOM: no
96349634
Looks like UTF-8: no
96359635
Has flag LOOK_NUL: no
96369636
Has flag LOOK_CR: yes
@@ -9642,11 +9642,11 @@
96429642
Has flag LOOK_INVALID: no
96439643
Has flag LOOK_ODD: no
96449644
Has flag LOOK_SHORT: no}
96459645
96469646
utf-check 681 utf-check-681-1-85-1.jnk \
9647
-{File "%TEMP%/utf-check-681-1-85-1.jnk" has 8201 bytes.
9647
+{File "%TEMP%/utf-check-681-1-85-1.jnk" has 32789 bytes.
96489648
Starts with UTF-8 BOM: yes
96499649
Starts with UTF-16 BOM: no
96509650
Looks like UTF-8: no
96519651
Has flag LOOK_NUL: no
96529652
Has flag LOOK_CR: yes
@@ -9658,11 +9658,11 @@
96589658
Has flag LOOK_INVALID: no
96599659
Has flag LOOK_ODD: no
96609660
Has flag LOOK_SHORT: no}
96619661
96629662
utf-check 682 utf-check-682-1-86-0.jnk \
9663
-{File "%TEMP%/utf-check-682-1-86-0.jnk" has 8200 bytes.
9663
+{File "%TEMP%/utf-check-682-1-86-0.jnk" has 32788 bytes.
96649664
Starts with UTF-8 BOM: yes
96659665
Starts with UTF-16 BOM: no
96669666
Looks like UTF-8: no
96679667
Has flag LOOK_NUL: no
96689668
Has flag LOOK_CR: no
@@ -9674,11 +9674,11 @@
96749674
Has flag LOOK_INVALID: no
96759675
Has flag LOOK_ODD: no
96769676
Has flag LOOK_SHORT: no}
96779677
96789678
utf-check 683 utf-check-683-1-86-1.jnk \
9679
-{File "%TEMP%/utf-check-683-1-86-1.jnk" has 8201 bytes.
9679
+{File "%TEMP%/utf-check-683-1-86-1.jnk" has 32789 bytes.
96809680
Starts with UTF-8 BOM: yes
96819681
Starts with UTF-16 BOM: no
96829682
Looks like UTF-8: no
96839683
Has flag LOOK_NUL: no
96849684
Has flag LOOK_CR: no
@@ -9690,11 +9690,11 @@
96909690
Has flag LOOK_INVALID: no
96919691
Has flag LOOK_ODD: no
96929692
Has flag LOOK_SHORT: no}
96939693
96949694
utf-check 684 utf-check-684-1-87-0.jnk \
9695
-{File "%TEMP%/utf-check-684-1-87-0.jnk" has 8201 bytes.
9695
+{File "%TEMP%/utf-check-684-1-87-0.jnk" has 32789 bytes.
96969696
Starts with UTF-8 BOM: yes
96979697
Starts with UTF-16 BOM: no
96989698
Looks like UTF-8: no
96999699
Has flag LOOK_NUL: no
97009700
Has flag LOOK_CR: yes
@@ -9706,11 +9706,11 @@
97069706
Has flag LOOK_INVALID: no
97079707
Has flag LOOK_ODD: no
97089708
Has flag LOOK_SHORT: no}
97099709
97109710
utf-check 685 utf-check-685-1-87-1.jnk \
9711
-{File "%TEMP%/utf-check-685-1-87-1.jnk" has 8202 bytes.
9711
+{File "%TEMP%/utf-check-685-1-87-1.jnk" has 32790 bytes.
97129712
Starts with UTF-8 BOM: yes
97139713
Starts with UTF-16 BOM: no
97149714
Looks like UTF-8: no
97159715
Has flag LOOK_NUL: no
97169716
Has flag LOOK_CR: yes
@@ -9722,11 +9722,11 @@
97229722
Has flag LOOK_INVALID: no
97239723
Has flag LOOK_ODD: no
97249724
Has flag LOOK_SHORT: no}
97259725
97269726
utf-check 686 utf-check-686-1-88-0.jnk \
9727
-{File "%TEMP%/utf-check-686-1-88-0.jnk" has 8197 bytes.
9727
+{File "%TEMP%/utf-check-686-1-88-0.jnk" has 32773 bytes.
97289728
Starts with UTF-8 BOM: yes
97299729
Starts with UTF-16 BOM: no
97309730
Looks like UTF-8: no
97319731
Has flag LOOK_NUL: yes
97329732
Has flag LOOK_CR: no
@@ -9738,11 +9738,11 @@
97389738
Has flag LOOK_INVALID: no
97399739
Has flag LOOK_ODD: no
97409740
Has flag LOOK_SHORT: no}
97419741
97429742
utf-check 687 utf-check-687-1-88-1.jnk \
9743
-{File "%TEMP%/utf-check-687-1-88-1.jnk" has 8198 bytes.
9743
+{File "%TEMP%/utf-check-687-1-88-1.jnk" has 32774 bytes.
97449744
Starts with UTF-8 BOM: yes
97459745
Starts with UTF-16 BOM: no
97469746
Looks like UTF-8: no
97479747
Has flag LOOK_NUL: yes
97489748
Has flag LOOK_CR: no
@@ -9754,11 +9754,11 @@
97549754
Has flag LOOK_INVALID: no
97559755
Has flag LOOK_ODD: no
97569756
Has flag LOOK_SHORT: no}
97579757
97589758
utf-check 688 utf-check-688-1-89-0.jnk \
9759
-{File "%TEMP%/utf-check-688-1-89-0.jnk" has 8198 bytes.
9759
+{File "%TEMP%/utf-check-688-1-89-0.jnk" has 32774 bytes.
97609760
Starts with UTF-8 BOM: yes
97619761
Starts with UTF-16 BOM: no
97629762
Looks like UTF-8: no
97639763
Has flag LOOK_NUL: yes
97649764
Has flag LOOK_CR: yes
@@ -9770,11 +9770,11 @@
97709770
Has flag LOOK_INVALID: no
97719771
Has flag LOOK_ODD: no
97729772
Has flag LOOK_SHORT: no}
97739773
97749774
utf-check 689 utf-check-689-1-89-1.jnk \
9775
-{File "%TEMP%/utf-check-689-1-89-1.jnk" has 8199 bytes.
9775
+{File "%TEMP%/utf-check-689-1-89-1.jnk" has 32775 bytes.
97769776
Starts with UTF-8 BOM: yes
97779777
Starts with UTF-16 BOM: no
97789778
Looks like UTF-8: no
97799779
Has flag LOOK_NUL: yes
97809780
Has flag LOOK_CR: yes
@@ -9786,11 +9786,11 @@
97869786
Has flag LOOK_INVALID: no
97879787
Has flag LOOK_ODD: no
97889788
Has flag LOOK_SHORT: no}
97899789
97909790
utf-check 690 utf-check-690-1-90-0.jnk \
9791
-{File "%TEMP%/utf-check-690-1-90-0.jnk" has 8198 bytes.
9791
+{File "%TEMP%/utf-check-690-1-90-0.jnk" has 32774 bytes.
97929792
Starts with UTF-8 BOM: yes
97939793
Starts with UTF-16 BOM: no
97949794
Looks like UTF-8: no
97959795
Has flag LOOK_NUL: yes
97969796
Has flag LOOK_CR: no
@@ -9802,11 +9802,11 @@
98029802
Has flag LOOK_INVALID: no
98039803
Has flag LOOK_ODD: no
98049804
Has flag LOOK_SHORT: no}
98059805
98069806
utf-check 691 utf-check-691-1-90-1.jnk \
9807
-{File "%TEMP%/utf-check-691-1-90-1.jnk" has 8199 bytes.
9807
+{File "%TEMP%/utf-check-691-1-90-1.jnk" has 32775 bytes.
98089808
Starts with UTF-8 BOM: yes
98099809
Starts with UTF-16 BOM: no
98109810
Looks like UTF-8: no
98119811
Has flag LOOK_NUL: yes
98129812
Has flag LOOK_CR: no
@@ -9818,11 +9818,11 @@
98189818
Has flag LOOK_INVALID: no
98199819
Has flag LOOK_ODD: no
98209820
Has flag LOOK_SHORT: no}
98219821
98229822
utf-check 692 utf-check-692-1-91-0.jnk \
9823
-{File "%TEMP%/utf-check-692-1-91-0.jnk" has 8199 bytes.
9823
+{File "%TEMP%/utf-check-692-1-91-0.jnk" has 32775 bytes.
98249824
Starts with UTF-8 BOM: yes
98259825
Starts with UTF-16 BOM: no
98269826
Looks like UTF-8: no
98279827
Has flag LOOK_NUL: yes
98289828
Has flag LOOK_CR: yes
@@ -9834,11 +9834,11 @@
98349834
Has flag LOOK_INVALID: no
98359835
Has flag LOOK_ODD: no
98369836
Has flag LOOK_SHORT: no}
98379837
98389838
utf-check 693 utf-check-693-1-91-1.jnk \
9839
-{File "%TEMP%/utf-check-693-1-91-1.jnk" has 8200 bytes.
9839
+{File "%TEMP%/utf-check-693-1-91-1.jnk" has 32776 bytes.
98409840
Starts with UTF-8 BOM: yes
98419841
Starts with UTF-16 BOM: no
98429842
Looks like UTF-8: no
98439843
Has flag LOOK_NUL: yes
98449844
Has flag LOOK_CR: yes
@@ -9850,11 +9850,11 @@
98509850
Has flag LOOK_INVALID: no
98519851
Has flag LOOK_ODD: no
98529852
Has flag LOOK_SHORT: no}
98539853
98549854
utf-check 694 utf-check-694-1-92-0.jnk \
9855
-{File "%TEMP%/utf-check-694-1-92-0.jnk" has 8200 bytes.
9855
+{File "%TEMP%/utf-check-694-1-92-0.jnk" has 32788 bytes.
98569856
Starts with UTF-8 BOM: yes
98579857
Starts with UTF-16 BOM: no
98589858
Looks like UTF-8: no
98599859
Has flag LOOK_NUL: yes
98609860
Has flag LOOK_CR: no
@@ -9866,11 +9866,11 @@
98669866
Has flag LOOK_INVALID: no
98679867
Has flag LOOK_ODD: no
98689868
Has flag LOOK_SHORT: no}
98699869
98709870
utf-check 695 utf-check-695-1-92-1.jnk \
9871
-{File "%TEMP%/utf-check-695-1-92-1.jnk" has 8201 bytes.
9871
+{File "%TEMP%/utf-check-695-1-92-1.jnk" has 32789 bytes.
98729872
Starts with UTF-8 BOM: yes
98739873
Starts with UTF-16 BOM: no
98749874
Looks like UTF-8: no
98759875
Has flag LOOK_NUL: yes
98769876
Has flag LOOK_CR: no
@@ -9882,11 +9882,11 @@
98829882
Has flag LOOK_INVALID: no
98839883
Has flag LOOK_ODD: no
98849884
Has flag LOOK_SHORT: no}
98859885
98869886
utf-check 696 utf-check-696-1-93-0.jnk \
9887
-{File "%TEMP%/utf-check-696-1-93-0.jnk" has 8201 bytes.
9887
+{File "%TEMP%/utf-check-696-1-93-0.jnk" has 32789 bytes.
98889888
Starts with UTF-8 BOM: yes
98899889
Starts with UTF-16 BOM: no
98909890
Looks like UTF-8: no
98919891
Has flag LOOK_NUL: yes
98929892
Has flag LOOK_CR: yes
@@ -9898,11 +9898,11 @@
98989898
Has flag LOOK_INVALID: no
98999899
Has flag LOOK_ODD: no
99009900
Has flag LOOK_SHORT: no}
99019901
99029902
utf-check 697 utf-check-697-1-93-1.jnk \
9903
-{File "%TEMP%/utf-check-697-1-93-1.jnk" has 8202 bytes.
9903
+{File "%TEMP%/utf-check-697-1-93-1.jnk" has 32790 bytes.
99049904
Starts with UTF-8 BOM: yes
99059905
Starts with UTF-16 BOM: no
99069906
Looks like UTF-8: no
99079907
Has flag LOOK_NUL: yes
99089908
Has flag LOOK_CR: yes
@@ -9914,11 +9914,11 @@
99149914
Has flag LOOK_INVALID: no
99159915
Has flag LOOK_ODD: no
99169916
Has flag LOOK_SHORT: no}
99179917
99189918
utf-check 698 utf-check-698-1-94-0.jnk \
9919
-{File "%TEMP%/utf-check-698-1-94-0.jnk" has 8201 bytes.
9919
+{File "%TEMP%/utf-check-698-1-94-0.jnk" has 32789 bytes.
99209920
Starts with UTF-8 BOM: yes
99219921
Starts with UTF-16 BOM: no
99229922
Looks like UTF-8: no
99239923
Has flag LOOK_NUL: yes
99249924
Has flag LOOK_CR: no
@@ -9930,11 +9930,11 @@
99309930
Has flag LOOK_INVALID: no
99319931
Has flag LOOK_ODD: no
99329932
Has flag LOOK_SHORT: no}
99339933
99349934
utf-check 699 utf-check-699-1-94-1.jnk \
9935
-{File "%TEMP%/utf-check-699-1-94-1.jnk" has 8202 bytes.
9935
+{File "%TEMP%/utf-check-699-1-94-1.jnk" has 32790 bytes.
99369936
Starts with UTF-8 BOM: yes
99379937
Starts with UTF-16 BOM: no
99389938
Looks like UTF-8: no
99399939
Has flag LOOK_NUL: yes
99409940
Has flag LOOK_CR: no
@@ -9946,11 +9946,11 @@
99469946
Has flag LOOK_INVALID: no
99479947
Has flag LOOK_ODD: no
99489948
Has flag LOOK_SHORT: no}
99499949
99509950
utf-check 700 utf-check-700-1-95-0.jnk \
9951
-{File "%TEMP%/utf-check-700-1-95-0.jnk" has 8202 bytes.
9951
+{File "%TEMP%/utf-check-700-1-95-0.jnk" has 32790 bytes.
99529952
Starts with UTF-8 BOM: yes
99539953
Starts with UTF-16 BOM: no
99549954
Looks like UTF-8: no
99559955
Has flag LOOK_NUL: yes
99569956
Has flag LOOK_CR: yes
@@ -9962,11 +9962,11 @@
99629962
Has flag LOOK_INVALID: no
99639963
Has flag LOOK_ODD: no
99649964
Has flag LOOK_SHORT: no}
99659965
99669966
utf-check 701 utf-check-701-1-95-1.jnk \
9967
-{File "%TEMP%/utf-check-701-1-95-1.jnk" has 8203 bytes.
9967
+{File "%TEMP%/utf-check-701-1-95-1.jnk" has 32791 bytes.
99689968
Starts with UTF-8 BOM: yes
99699969
Starts with UTF-16 BOM: no
99709970
Looks like UTF-8: no
99719971
Has flag LOOK_NUL: yes
99729972
Has flag LOOK_CR: yes
@@ -9978,11 +9978,11 @@
99789978
Has flag LOOK_INVALID: no
99799979
Has flag LOOK_ODD: no
99809980
Has flag LOOK_SHORT: no}
99819981
99829982
utf-check 702 utf-check-702-1-96-0.jnk \
9983
-{File "%TEMP%/utf-check-702-1-96-0.jnk" has 8197 bytes.
9983
+{File "%TEMP%/utf-check-702-1-96-0.jnk" has 32773 bytes.
99849984
Starts with UTF-8 BOM: yes
99859985
Starts with UTF-16 BOM: no
99869986
Looks like UTF-8: no
99879987
Has flag LOOK_NUL: yes
99889988
Has flag LOOK_CR: no
@@ -9994,11 +9994,11 @@
99949994
Has flag LOOK_INVALID: no
99959995
Has flag LOOK_ODD: no
99969996
Has flag LOOK_SHORT: no}
99979997
99989998
utf-check 703 utf-check-703-1-96-1.jnk \
9999
-{File "%TEMP%/utf-check-703-1-96-1.jnk" has 8198 bytes.
9999
+{File "%TEMP%/utf-check-703-1-96-1.jnk" has 32774 bytes.
1000010000
Starts with UTF-8 BOM: yes
1000110001
Starts with UTF-16 BOM: no
1000210002
Looks like UTF-8: no
1000310003
Has flag LOOK_NUL: yes
1000410004
Has flag LOOK_CR: no
@@ -10010,11 +10010,11 @@
1001010010
Has flag LOOK_INVALID: no
1001110011
Has flag LOOK_ODD: no
1001210012
Has flag LOOK_SHORT: no}
1001310013
1001410014
utf-check 704 utf-check-704-1-97-0.jnk \
10015
-{File "%TEMP%/utf-check-704-1-97-0.jnk" has 8198 bytes.
10015
+{File "%TEMP%/utf-check-704-1-97-0.jnk" has 32774 bytes.
1001610016
Starts with UTF-8 BOM: yes
1001710017
Starts with UTF-16 BOM: no
1001810018
Looks like UTF-8: no
1001910019
Has flag LOOK_NUL: yes
1002010020
Has flag LOOK_CR: yes
@@ -10026,11 +10026,11 @@
1002610026
Has flag LOOK_INVALID: no
1002710027
Has flag LOOK_ODD: no
1002810028
Has flag LOOK_SHORT: no}
1002910029
1003010030
utf-check 705 utf-check-705-1-97-1.jnk \
10031
-{File "%TEMP%/utf-check-705-1-97-1.jnk" has 8199 bytes.
10031
+{File "%TEMP%/utf-check-705-1-97-1.jnk" has 32775 bytes.
1003210032
Starts with UTF-8 BOM: yes
1003310033
Starts with UTF-16 BOM: no
1003410034
Looks like UTF-8: no
1003510035
Has flag LOOK_NUL: yes
1003610036
Has flag LOOK_CR: yes
@@ -10042,11 +10042,11 @@
1004210042
Has flag LOOK_INVALID: no
1004310043
Has flag LOOK_ODD: no
1004410044
Has flag LOOK_SHORT: no}
1004510045
1004610046
utf-check 706 utf-check-706-1-98-0.jnk \
10047
-{File "%TEMP%/utf-check-706-1-98-0.jnk" has 8198 bytes.
10047
+{File "%TEMP%/utf-check-706-1-98-0.jnk" has 32774 bytes.
1004810048
Starts with UTF-8 BOM: yes
1004910049
Starts with UTF-16 BOM: no
1005010050
Looks like UTF-8: no
1005110051
Has flag LOOK_NUL: yes
1005210052
Has flag LOOK_CR: no
@@ -10058,11 +10058,11 @@
1005810058
Has flag LOOK_INVALID: no
1005910059
Has flag LOOK_ODD: no
1006010060
Has flag LOOK_SHORT: no}
1006110061
1006210062
utf-check 707 utf-check-707-1-98-1.jnk \
10063
-{File "%TEMP%/utf-check-707-1-98-1.jnk" has 8199 bytes.
10063
+{File "%TEMP%/utf-check-707-1-98-1.jnk" has 32775 bytes.
1006410064
Starts with UTF-8 BOM: yes
1006510065
Starts with UTF-16 BOM: no
1006610066
Looks like UTF-8: no
1006710067
Has flag LOOK_NUL: yes
1006810068
Has flag LOOK_CR: no
@@ -10074,11 +10074,11 @@
1007410074
Has flag LOOK_INVALID: no
1007510075
Has flag LOOK_ODD: no
1007610076
Has flag LOOK_SHORT: no}
1007710077
1007810078
utf-check 708 utf-check-708-1-99-0.jnk \
10079
-{File "%TEMP%/utf-check-708-1-99-0.jnk" has 8199 bytes.
10079
+{File "%TEMP%/utf-check-708-1-99-0.jnk" has 32775 bytes.
1008010080
Starts with UTF-8 BOM: yes
1008110081
Starts with UTF-16 BOM: no
1008210082
Looks like UTF-8: no
1008310083
Has flag LOOK_NUL: yes
1008410084
Has flag LOOK_CR: yes
@@ -10090,11 +10090,11 @@
1009010090
Has flag LOOK_INVALID: no
1009110091
Has flag LOOK_ODD: no
1009210092
Has flag LOOK_SHORT: no}
1009310093
1009410094
utf-check 709 utf-check-709-1-99-1.jnk \
10095
-{File "%TEMP%/utf-check-709-1-99-1.jnk" has 8200 bytes.
10095
+{File "%TEMP%/utf-check-709-1-99-1.jnk" has 32776 bytes.
1009610096
Starts with UTF-8 BOM: yes
1009710097
Starts with UTF-16 BOM: no
1009810098
Looks like UTF-8: no
1009910099
Has flag LOOK_NUL: yes
1010010100
Has flag LOOK_CR: yes
@@ -10106,11 +10106,11 @@
1010610106
Has flag LOOK_INVALID: no
1010710107
Has flag LOOK_ODD: no
1010810108
Has flag LOOK_SHORT: no}
1010910109
1011010110
utf-check 710 utf-check-710-1-100-0.jnk \
10111
-{File "%TEMP%/utf-check-710-1-100-0.jnk" has 8200 bytes.
10111
+{File "%TEMP%/utf-check-710-1-100-0.jnk" has 32788 bytes.
1011210112
Starts with UTF-8 BOM: yes
1011310113
Starts with UTF-16 BOM: no
1011410114
Looks like UTF-8: no
1011510115
Has flag LOOK_NUL: yes
1011610116
Has flag LOOK_CR: no
@@ -10122,11 +10122,11 @@
1012210122
Has flag LOOK_INVALID: no
1012310123
Has flag LOOK_ODD: no
1012410124
Has flag LOOK_SHORT: no}
1012510125
1012610126
utf-check 711 utf-check-711-1-100-1.jnk \
10127
-{File "%TEMP%/utf-check-711-1-100-1.jnk" has 8201 bytes.
10127
+{File "%TEMP%/utf-check-711-1-100-1.jnk" has 32789 bytes.
1012810128
Starts with UTF-8 BOM: yes
1012910129
Starts with UTF-16 BOM: no
1013010130
Looks like UTF-8: no
1013110131
Has flag LOOK_NUL: yes
1013210132
Has flag LOOK_CR: no
@@ -10138,11 +10138,11 @@
1013810138
Has flag LOOK_INVALID: no
1013910139
Has flag LOOK_ODD: no
1014010140
Has flag LOOK_SHORT: no}
1014110141
1014210142
utf-check 712 utf-check-712-1-101-0.jnk \
10143
-{File "%TEMP%/utf-check-712-1-101-0.jnk" has 8201 bytes.
10143
+{File "%TEMP%/utf-check-712-1-101-0.jnk" has 32789 bytes.
1014410144
Starts with UTF-8 BOM: yes
1014510145
Starts with UTF-16 BOM: no
1014610146
Looks like UTF-8: no
1014710147
Has flag LOOK_NUL: yes
1014810148
Has flag LOOK_CR: yes
@@ -10154,11 +10154,11 @@
1015410154
Has flag LOOK_INVALID: no
1015510155
Has flag LOOK_ODD: no
1015610156
Has flag LOOK_SHORT: no}
1015710157
1015810158
utf-check 713 utf-check-713-1-101-1.jnk \
10159
-{File "%TEMP%/utf-check-713-1-101-1.jnk" has 8202 bytes.
10159
+{File "%TEMP%/utf-check-713-1-101-1.jnk" has 32790 bytes.
1016010160
Starts with UTF-8 BOM: yes
1016110161
Starts with UTF-16 BOM: no
1016210162
Looks like UTF-8: no
1016310163
Has flag LOOK_NUL: yes
1016410164
Has flag LOOK_CR: yes
@@ -10170,11 +10170,11 @@
1017010170
Has flag LOOK_INVALID: no
1017110171
Has flag LOOK_ODD: no
1017210172
Has flag LOOK_SHORT: no}
1017310173
1017410174
utf-check 714 utf-check-714-1-102-0.jnk \
10175
-{File "%TEMP%/utf-check-714-1-102-0.jnk" has 8201 bytes.
10175
+{File "%TEMP%/utf-check-714-1-102-0.jnk" has 32789 bytes.
1017610176
Starts with UTF-8 BOM: yes
1017710177
Starts with UTF-16 BOM: no
1017810178
Looks like UTF-8: no
1017910179
Has flag LOOK_NUL: yes
1018010180
Has flag LOOK_CR: no
@@ -10186,11 +10186,11 @@
1018610186
Has flag LOOK_INVALID: no
1018710187
Has flag LOOK_ODD: no
1018810188
Has flag LOOK_SHORT: no}
1018910189
1019010190
utf-check 715 utf-check-715-1-102-1.jnk \
10191
-{File "%TEMP%/utf-check-715-1-102-1.jnk" has 8202 bytes.
10191
+{File "%TEMP%/utf-check-715-1-102-1.jnk" has 32790 bytes.
1019210192
Starts with UTF-8 BOM: yes
1019310193
Starts with UTF-16 BOM: no
1019410194
Looks like UTF-8: no
1019510195
Has flag LOOK_NUL: yes
1019610196
Has flag LOOK_CR: no
@@ -10202,11 +10202,11 @@
1020210202
Has flag LOOK_INVALID: no
1020310203
Has flag LOOK_ODD: no
1020410204
Has flag LOOK_SHORT: no}
1020510205
1020610206
utf-check 716 utf-check-716-1-103-0.jnk \
10207
-{File "%TEMP%/utf-check-716-1-103-0.jnk" has 8202 bytes.
10207
+{File "%TEMP%/utf-check-716-1-103-0.jnk" has 32790 bytes.
1020810208
Starts with UTF-8 BOM: yes
1020910209
Starts with UTF-16 BOM: no
1021010210
Looks like UTF-8: no
1021110211
Has flag LOOK_NUL: yes
1021210212
Has flag LOOK_CR: yes
@@ -10218,11 +10218,11 @@
1021810218
Has flag LOOK_INVALID: no
1021910219
Has flag LOOK_ODD: no
1022010220
Has flag LOOK_SHORT: no}
1022110221
1022210222
utf-check 717 utf-check-717-1-103-1.jnk \
10223
-{File "%TEMP%/utf-check-717-1-103-1.jnk" has 8203 bytes.
10223
+{File "%TEMP%/utf-check-717-1-103-1.jnk" has 32791 bytes.
1022410224
Starts with UTF-8 BOM: yes
1022510225
Starts with UTF-16 BOM: no
1022610226
Looks like UTF-8: no
1022710227
Has flag LOOK_NUL: yes
1022810228
Has flag LOOK_CR: yes
@@ -10234,11 +10234,11 @@
1023410234
Has flag LOOK_INVALID: no
1023510235
Has flag LOOK_ODD: no
1023610236
Has flag LOOK_SHORT: no}
1023710237
1023810238
utf-check 718 utf-check-718-1-104-0.jnk \
10239
-{File "%TEMP%/utf-check-718-1-104-0.jnk" has 8198 bytes.
10239
+{File "%TEMP%/utf-check-718-1-104-0.jnk" has 32774 bytes.
1024010240
Starts with UTF-8 BOM: yes
1024110241
Starts with UTF-16 BOM: no
1024210242
Looks like UTF-8: no
1024310243
Has flag LOOK_NUL: yes
1024410244
Has flag LOOK_CR: no
@@ -10250,11 +10250,11 @@
1025010250
Has flag LOOK_INVALID: no
1025110251
Has flag LOOK_ODD: no
1025210252
Has flag LOOK_SHORT: no}
1025310253
1025410254
utf-check 719 utf-check-719-1-104-1.jnk \
10255
-{File "%TEMP%/utf-check-719-1-104-1.jnk" has 8199 bytes.
10255
+{File "%TEMP%/utf-check-719-1-104-1.jnk" has 32775 bytes.
1025610256
Starts with UTF-8 BOM: yes
1025710257
Starts with UTF-16 BOM: no
1025810258
Looks like UTF-8: no
1025910259
Has flag LOOK_NUL: yes
1026010260
Has flag LOOK_CR: no
@@ -10266,11 +10266,11 @@
1026610266
Has flag LOOK_INVALID: no
1026710267
Has flag LOOK_ODD: no
1026810268
Has flag LOOK_SHORT: no}
1026910269
1027010270
utf-check 720 utf-check-720-1-105-0.jnk \
10271
-{File "%TEMP%/utf-check-720-1-105-0.jnk" has 8199 bytes.
10271
+{File "%TEMP%/utf-check-720-1-105-0.jnk" has 32775 bytes.
1027210272
Starts with UTF-8 BOM: yes
1027310273
Starts with UTF-16 BOM: no
1027410274
Looks like UTF-8: no
1027510275
Has flag LOOK_NUL: yes
1027610276
Has flag LOOK_CR: yes
@@ -10282,11 +10282,11 @@
1028210282
Has flag LOOK_INVALID: no
1028310283
Has flag LOOK_ODD: no
1028410284
Has flag LOOK_SHORT: no}
1028510285
1028610286
utf-check 721 utf-check-721-1-105-1.jnk \
10287
-{File "%TEMP%/utf-check-721-1-105-1.jnk" has 8200 bytes.
10287
+{File "%TEMP%/utf-check-721-1-105-1.jnk" has 32776 bytes.
1028810288
Starts with UTF-8 BOM: yes
1028910289
Starts with UTF-16 BOM: no
1029010290
Looks like UTF-8: no
1029110291
Has flag LOOK_NUL: yes
1029210292
Has flag LOOK_CR: yes
@@ -10298,11 +10298,11 @@
1029810298
Has flag LOOK_INVALID: no
1029910299
Has flag LOOK_ODD: no
1030010300
Has flag LOOK_SHORT: no}
1030110301
1030210302
utf-check 722 utf-check-722-1-106-0.jnk \
10303
-{File "%TEMP%/utf-check-722-1-106-0.jnk" has 8199 bytes.
10303
+{File "%TEMP%/utf-check-722-1-106-0.jnk" has 32775 bytes.
1030410304
Starts with UTF-8 BOM: yes
1030510305
Starts with UTF-16 BOM: no
1030610306
Looks like UTF-8: no
1030710307
Has flag LOOK_NUL: yes
1030810308
Has flag LOOK_CR: no
@@ -10314,11 +10314,11 @@
1031410314
Has flag LOOK_INVALID: no
1031510315
Has flag LOOK_ODD: no
1031610316
Has flag LOOK_SHORT: no}
1031710317
1031810318
utf-check 723 utf-check-723-1-106-1.jnk \
10319
-{File "%TEMP%/utf-check-723-1-106-1.jnk" has 8200 bytes.
10319
+{File "%TEMP%/utf-check-723-1-106-1.jnk" has 32776 bytes.
1032010320
Starts with UTF-8 BOM: yes
1032110321
Starts with UTF-16 BOM: no
1032210322
Looks like UTF-8: no
1032310323
Has flag LOOK_NUL: yes
1032410324
Has flag LOOK_CR: no
@@ -10330,11 +10330,11 @@
1033010330
Has flag LOOK_INVALID: no
1033110331
Has flag LOOK_ODD: no
1033210332
Has flag LOOK_SHORT: no}
1033310333
1033410334
utf-check 724 utf-check-724-1-107-0.jnk \
10335
-{File "%TEMP%/utf-check-724-1-107-0.jnk" has 8200 bytes.
10335
+{File "%TEMP%/utf-check-724-1-107-0.jnk" has 32776 bytes.
1033610336
Starts with UTF-8 BOM: yes
1033710337
Starts with UTF-16 BOM: no
1033810338
Looks like UTF-8: no
1033910339
Has flag LOOK_NUL: yes
1034010340
Has flag LOOK_CR: yes
@@ -10346,11 +10346,11 @@
1034610346
Has flag LOOK_INVALID: no
1034710347
Has flag LOOK_ODD: no
1034810348
Has flag LOOK_SHORT: no}
1034910349
1035010350
utf-check 725 utf-check-725-1-107-1.jnk \
10351
-{File "%TEMP%/utf-check-725-1-107-1.jnk" has 8201 bytes.
10351
+{File "%TEMP%/utf-check-725-1-107-1.jnk" has 32777 bytes.
1035210352
Starts with UTF-8 BOM: yes
1035310353
Starts with UTF-16 BOM: no
1035410354
Looks like UTF-8: no
1035510355
Has flag LOOK_NUL: yes
1035610356
Has flag LOOK_CR: yes
@@ -10362,11 +10362,11 @@
1036210362
Has flag LOOK_INVALID: no
1036310363
Has flag LOOK_ODD: no
1036410364
Has flag LOOK_SHORT: no}
1036510365
1036610366
utf-check 726 utf-check-726-1-108-0.jnk \
10367
-{File "%TEMP%/utf-check-726-1-108-0.jnk" has 8201 bytes.
10367
+{File "%TEMP%/utf-check-726-1-108-0.jnk" has 32789 bytes.
1036810368
Starts with UTF-8 BOM: yes
1036910369
Starts with UTF-16 BOM: no
1037010370
Looks like UTF-8: no
1037110371
Has flag LOOK_NUL: yes
1037210372
Has flag LOOK_CR: no
@@ -10378,11 +10378,11 @@
1037810378
Has flag LOOK_INVALID: no
1037910379
Has flag LOOK_ODD: no
1038010380
Has flag LOOK_SHORT: no}
1038110381
1038210382
utf-check 727 utf-check-727-1-108-1.jnk \
10383
-{File "%TEMP%/utf-check-727-1-108-1.jnk" has 8202 bytes.
10383
+{File "%TEMP%/utf-check-727-1-108-1.jnk" has 32790 bytes.
1038410384
Starts with UTF-8 BOM: yes
1038510385
Starts with UTF-16 BOM: no
1038610386
Looks like UTF-8: no
1038710387
Has flag LOOK_NUL: yes
1038810388
Has flag LOOK_CR: no
@@ -10394,11 +10394,11 @@
1039410394
Has flag LOOK_INVALID: no
1039510395
Has flag LOOK_ODD: no
1039610396
Has flag LOOK_SHORT: no}
1039710397
1039810398
utf-check 728 utf-check-728-1-109-0.jnk \
10399
-{File "%TEMP%/utf-check-728-1-109-0.jnk" has 8202 bytes.
10399
+{File "%TEMP%/utf-check-728-1-109-0.jnk" has 32790 bytes.
1040010400
Starts with UTF-8 BOM: yes
1040110401
Starts with UTF-16 BOM: no
1040210402
Looks like UTF-8: no
1040310403
Has flag LOOK_NUL: yes
1040410404
Has flag LOOK_CR: yes
@@ -10410,11 +10410,11 @@
1041010410
Has flag LOOK_INVALID: no
1041110411
Has flag LOOK_ODD: no
1041210412
Has flag LOOK_SHORT: no}
1041310413
1041410414
utf-check 729 utf-check-729-1-109-1.jnk \
10415
-{File "%TEMP%/utf-check-729-1-109-1.jnk" has 8203 bytes.
10415
+{File "%TEMP%/utf-check-729-1-109-1.jnk" has 32791 bytes.
1041610416
Starts with UTF-8 BOM: yes
1041710417
Starts with UTF-16 BOM: no
1041810418
Looks like UTF-8: no
1041910419
Has flag LOOK_NUL: yes
1042010420
Has flag LOOK_CR: yes
@@ -10426,11 +10426,11 @@
1042610426
Has flag LOOK_INVALID: no
1042710427
Has flag LOOK_ODD: no
1042810428
Has flag LOOK_SHORT: no}
1042910429
1043010430
utf-check 730 utf-check-730-1-110-0.jnk \
10431
-{File "%TEMP%/utf-check-730-1-110-0.jnk" has 8202 bytes.
10431
+{File "%TEMP%/utf-check-730-1-110-0.jnk" has 32790 bytes.
1043210432
Starts with UTF-8 BOM: yes
1043310433
Starts with UTF-16 BOM: no
1043410434
Looks like UTF-8: no
1043510435
Has flag LOOK_NUL: yes
1043610436
Has flag LOOK_CR: no
@@ -10442,11 +10442,11 @@
1044210442
Has flag LOOK_INVALID: no
1044310443
Has flag LOOK_ODD: no
1044410444
Has flag LOOK_SHORT: no}
1044510445
1044610446
utf-check 731 utf-check-731-1-110-1.jnk \
10447
-{File "%TEMP%/utf-check-731-1-110-1.jnk" has 8203 bytes.
10447
+{File "%TEMP%/utf-check-731-1-110-1.jnk" has 32791 bytes.
1044810448
Starts with UTF-8 BOM: yes
1044910449
Starts with UTF-16 BOM: no
1045010450
Looks like UTF-8: no
1045110451
Has flag LOOK_NUL: yes
1045210452
Has flag LOOK_CR: no
@@ -10458,11 +10458,11 @@
1045810458
Has flag LOOK_INVALID: no
1045910459
Has flag LOOK_ODD: no
1046010460
Has flag LOOK_SHORT: no}
1046110461
1046210462
utf-check 732 utf-check-732-1-111-0.jnk \
10463
-{File "%TEMP%/utf-check-732-1-111-0.jnk" has 8203 bytes.
10463
+{File "%TEMP%/utf-check-732-1-111-0.jnk" has 32791 bytes.
1046410464
Starts with UTF-8 BOM: yes
1046510465
Starts with UTF-16 BOM: no
1046610466
Looks like UTF-8: no
1046710467
Has flag LOOK_NUL: yes
1046810468
Has flag LOOK_CR: yes
@@ -10474,11 +10474,11 @@
1047410474
Has flag LOOK_INVALID: no
1047510475
Has flag LOOK_ODD: no
1047610476
Has flag LOOK_SHORT: no}
1047710477
1047810478
utf-check 733 utf-check-733-1-111-1.jnk \
10479
-{File "%TEMP%/utf-check-733-1-111-1.jnk" has 8204 bytes.
10479
+{File "%TEMP%/utf-check-733-1-111-1.jnk" has 32792 bytes.
1048010480
Starts with UTF-8 BOM: yes
1048110481
Starts with UTF-16 BOM: no
1048210482
Looks like UTF-8: no
1048310483
Has flag LOOK_NUL: yes
1048410484
Has flag LOOK_CR: yes
@@ -16026,11 +16026,11 @@
1602616026
Has flag LOOK_INVALID: yes
1602716027
Has flag LOOK_ODD: no
1602816028
Has flag LOOK_SHORT: no}
1602916029
1603016030
utf-check 1080 utf-check-1080-2-80-0.jnk \
16031
-{File "%TEMP%/utf-check-1080-2-80-0.jnk" has 16388 bytes.
16031
+{File "%TEMP%/utf-check-1080-2-80-0.jnk" has 65540 bytes.
1603216032
Starts with UTF-8 BOM: no
1603316033
Starts with UTF-16 BOM: yes
1603416034
Looks like UTF-16: no
1603516035
Has flag LOOK_NUL: no
1603616036
Has flag LOOK_CR: no
@@ -16042,11 +16042,11 @@
1604216042
Has flag LOOK_INVALID: no
1604316043
Has flag LOOK_ODD: no
1604416044
Has flag LOOK_SHORT: no}
1604516045
1604616046
utf-check 1081 utf-check-1081-2-80-1.jnk \
16047
-{File "%TEMP%/utf-check-1081-2-80-1.jnk" has 16389 bytes.
16047
+{File "%TEMP%/utf-check-1081-2-80-1.jnk" has 65541 bytes.
1604816048
Starts with UTF-8 BOM: no
1604916049
Starts with UTF-16 BOM: yes
1605016050
Looks like UTF-8: no
1605116051
Has flag LOOK_NUL: yes
1605216052
Has flag LOOK_CR: no
@@ -16058,11 +16058,11 @@
1605816058
Has flag LOOK_INVALID: yes
1605916059
Has flag LOOK_ODD: no
1606016060
Has flag LOOK_SHORT: no}
1606116061
1606216062
utf-check 1082 utf-check-1082-2-81-0.jnk \
16063
-{File "%TEMP%/utf-check-1082-2-81-0.jnk" has 16390 bytes.
16063
+{File "%TEMP%/utf-check-1082-2-81-0.jnk" has 65542 bytes.
1606416064
Starts with UTF-8 BOM: no
1606516065
Starts with UTF-16 BOM: yes
1606616066
Looks like UTF-16: no
1606716067
Has flag LOOK_NUL: no
1606816068
Has flag LOOK_CR: yes
@@ -16074,11 +16074,11 @@
1607416074
Has flag LOOK_INVALID: no
1607516075
Has flag LOOK_ODD: no
1607616076
Has flag LOOK_SHORT: no}
1607716077
1607816078
utf-check 1083 utf-check-1083-2-81-1.jnk \
16079
-{File "%TEMP%/utf-check-1083-2-81-1.jnk" has 16391 bytes.
16079
+{File "%TEMP%/utf-check-1083-2-81-1.jnk" has 65543 bytes.
1608016080
Starts with UTF-8 BOM: no
1608116081
Starts with UTF-16 BOM: yes
1608216082
Looks like UTF-8: no
1608316083
Has flag LOOK_NUL: yes
1608416084
Has flag LOOK_CR: yes
@@ -16090,11 +16090,11 @@
1609016090
Has flag LOOK_INVALID: yes
1609116091
Has flag LOOK_ODD: no
1609216092
Has flag LOOK_SHORT: no}
1609316093
1609416094
utf-check 1084 utf-check-1084-2-82-0.jnk \
16095
-{File "%TEMP%/utf-check-1084-2-82-0.jnk" has 16390 bytes.
16095
+{File "%TEMP%/utf-check-1084-2-82-0.jnk" has 65542 bytes.
1609616096
Starts with UTF-8 BOM: no
1609716097
Starts with UTF-16 BOM: yes
1609816098
Looks like UTF-16: no
1609916099
Has flag LOOK_NUL: no
1610016100
Has flag LOOK_CR: no
@@ -16106,11 +16106,11 @@
1610616106
Has flag LOOK_INVALID: no
1610716107
Has flag LOOK_ODD: no
1610816108
Has flag LOOK_SHORT: no}
1610916109
1611016110
utf-check 1085 utf-check-1085-2-82-1.jnk \
16111
-{File "%TEMP%/utf-check-1085-2-82-1.jnk" has 16391 bytes.
16111
+{File "%TEMP%/utf-check-1085-2-82-1.jnk" has 65543 bytes.
1611216112
Starts with UTF-8 BOM: no
1611316113
Starts with UTF-16 BOM: yes
1611416114
Looks like UTF-8: no
1611516115
Has flag LOOK_NUL: yes
1611616116
Has flag LOOK_CR: no
@@ -16122,11 +16122,11 @@
1612216122
Has flag LOOK_INVALID: yes
1612316123
Has flag LOOK_ODD: no
1612416124
Has flag LOOK_SHORT: no}
1612516125
1612616126
utf-check 1086 utf-check-1086-2-83-0.jnk \
16127
-{File "%TEMP%/utf-check-1086-2-83-0.jnk" has 16392 bytes.
16127
+{File "%TEMP%/utf-check-1086-2-83-0.jnk" has 65544 bytes.
1612816128
Starts with UTF-8 BOM: no
1612916129
Starts with UTF-16 BOM: yes
1613016130
Looks like UTF-16: no
1613116131
Has flag LOOK_NUL: no
1613216132
Has flag LOOK_CR: yes
@@ -16138,11 +16138,11 @@
1613816138
Has flag LOOK_INVALID: no
1613916139
Has flag LOOK_ODD: no
1614016140
Has flag LOOK_SHORT: no}
1614116141
1614216142
utf-check 1087 utf-check-1087-2-83-1.jnk \
16143
-{File "%TEMP%/utf-check-1087-2-83-1.jnk" has 16393 bytes.
16143
+{File "%TEMP%/utf-check-1087-2-83-1.jnk" has 65545 bytes.
1614416144
Starts with UTF-8 BOM: no
1614516145
Starts with UTF-16 BOM: yes
1614616146
Looks like UTF-8: no
1614716147
Has flag LOOK_NUL: yes
1614816148
Has flag LOOK_CR: yes
@@ -16154,11 +16154,11 @@
1615416154
Has flag LOOK_INVALID: yes
1615516155
Has flag LOOK_ODD: no
1615616156
Has flag LOOK_SHORT: no}
1615716157
1615816158
utf-check 1088 utf-check-1088-2-84-0.jnk \
16159
-{File "%TEMP%/utf-check-1088-2-84-0.jnk" has 16394 bytes.
16159
+{File "%TEMP%/utf-check-1088-2-84-0.jnk" has 65570 bytes.
1616016160
Starts with UTF-8 BOM: no
1616116161
Starts with UTF-16 BOM: yes
1616216162
Looks like UTF-16: no
1616316163
Has flag LOOK_NUL: no
1616416164
Has flag LOOK_CR: no
@@ -16170,11 +16170,11 @@
1617016170
Has flag LOOK_INVALID: no
1617116171
Has flag LOOK_ODD: no
1617216172
Has flag LOOK_SHORT: no}
1617316173
1617416174
utf-check 1089 utf-check-1089-2-84-1.jnk \
16175
-{File "%TEMP%/utf-check-1089-2-84-1.jnk" has 16395 bytes.
16175
+{File "%TEMP%/utf-check-1089-2-84-1.jnk" has 65571 bytes.
1617616176
Starts with UTF-8 BOM: no
1617716177
Starts with UTF-16 BOM: yes
1617816178
Looks like UTF-8: no
1617916179
Has flag LOOK_NUL: yes
1618016180
Has flag LOOK_CR: no
@@ -16186,11 +16186,11 @@
1618616186
Has flag LOOK_INVALID: yes
1618716187
Has flag LOOK_ODD: no
1618816188
Has flag LOOK_SHORT: no}
1618916189
1619016190
utf-check 1090 utf-check-1090-2-85-0.jnk \
16191
-{File "%TEMP%/utf-check-1090-2-85-0.jnk" has 16396 bytes.
16191
+{File "%TEMP%/utf-check-1090-2-85-0.jnk" has 65572 bytes.
1619216192
Starts with UTF-8 BOM: no
1619316193
Starts with UTF-16 BOM: yes
1619416194
Looks like UTF-16: no
1619516195
Has flag LOOK_NUL: no
1619616196
Has flag LOOK_CR: yes
@@ -16202,11 +16202,11 @@
1620216202
Has flag LOOK_INVALID: no
1620316203
Has flag LOOK_ODD: no
1620416204
Has flag LOOK_SHORT: no}
1620516205
1620616206
utf-check 1091 utf-check-1091-2-85-1.jnk \
16207
-{File "%TEMP%/utf-check-1091-2-85-1.jnk" has 16397 bytes.
16207
+{File "%TEMP%/utf-check-1091-2-85-1.jnk" has 65573 bytes.
1620816208
Starts with UTF-8 BOM: no
1620916209
Starts with UTF-16 BOM: yes
1621016210
Looks like UTF-8: no
1621116211
Has flag LOOK_NUL: yes
1621216212
Has flag LOOK_CR: yes
@@ -16218,11 +16218,11 @@
1621816218
Has flag LOOK_INVALID: yes
1621916219
Has flag LOOK_ODD: no
1622016220
Has flag LOOK_SHORT: no}
1622116221
1622216222
utf-check 1092 utf-check-1092-2-86-0.jnk \
16223
-{File "%TEMP%/utf-check-1092-2-86-0.jnk" has 16396 bytes.
16223
+{File "%TEMP%/utf-check-1092-2-86-0.jnk" has 65572 bytes.
1622416224
Starts with UTF-8 BOM: no
1622516225
Starts with UTF-16 BOM: yes
1622616226
Looks like UTF-16: no
1622716227
Has flag LOOK_NUL: no
1622816228
Has flag LOOK_CR: no
@@ -16234,11 +16234,11 @@
1623416234
Has flag LOOK_INVALID: no
1623516235
Has flag LOOK_ODD: no
1623616236
Has flag LOOK_SHORT: no}
1623716237
1623816238
utf-check 1093 utf-check-1093-2-86-1.jnk \
16239
-{File "%TEMP%/utf-check-1093-2-86-1.jnk" has 16397 bytes.
16239
+{File "%TEMP%/utf-check-1093-2-86-1.jnk" has 65573 bytes.
1624016240
Starts with UTF-8 BOM: no
1624116241
Starts with UTF-16 BOM: yes
1624216242
Looks like UTF-8: no
1624316243
Has flag LOOK_NUL: yes
1624416244
Has flag LOOK_CR: no
@@ -16250,11 +16250,11 @@
1625016250
Has flag LOOK_INVALID: yes
1625116251
Has flag LOOK_ODD: no
1625216252
Has flag LOOK_SHORT: no}
1625316253
1625416254
utf-check 1094 utf-check-1094-2-87-0.jnk \
16255
-{File "%TEMP%/utf-check-1094-2-87-0.jnk" has 16398 bytes.
16255
+{File "%TEMP%/utf-check-1094-2-87-0.jnk" has 65574 bytes.
1625616256
Starts with UTF-8 BOM: no
1625716257
Starts with UTF-16 BOM: yes
1625816258
Looks like UTF-16: no
1625916259
Has flag LOOK_NUL: no
1626016260
Has flag LOOK_CR: yes
@@ -16266,11 +16266,11 @@
1626616266
Has flag LOOK_INVALID: no
1626716267
Has flag LOOK_ODD: no
1626816268
Has flag LOOK_SHORT: no}
1626916269
1627016270
utf-check 1095 utf-check-1095-2-87-1.jnk \
16271
-{File "%TEMP%/utf-check-1095-2-87-1.jnk" has 16399 bytes.
16271
+{File "%TEMP%/utf-check-1095-2-87-1.jnk" has 65575 bytes.
1627216272
Starts with UTF-8 BOM: no
1627316273
Starts with UTF-16 BOM: yes
1627416274
Looks like UTF-8: no
1627516275
Has flag LOOK_NUL: yes
1627616276
Has flag LOOK_CR: yes
@@ -16282,11 +16282,11 @@
1628216282
Has flag LOOK_INVALID: yes
1628316283
Has flag LOOK_ODD: no
1628416284
Has flag LOOK_SHORT: no}
1628516285
1628616286
utf-check 1096 utf-check-1096-2-88-0.jnk \
16287
-{File "%TEMP%/utf-check-1096-2-88-0.jnk" has 16390 bytes.
16287
+{File "%TEMP%/utf-check-1096-2-88-0.jnk" has 65542 bytes.
1628816288
Starts with UTF-8 BOM: no
1628916289
Starts with UTF-16 BOM: no
1629016290
Looks like UTF-8: no
1629116291
Has flag LOOK_NUL: yes
1629216292
Has flag LOOK_CR: no
@@ -16298,11 +16298,11 @@
1629816298
Has flag LOOK_INVALID: yes
1629916299
Has flag LOOK_ODD: no
1630016300
Has flag LOOK_SHORT: no}
1630116301
1630216302
utf-check 1097 utf-check-1097-2-88-1.jnk \
16303
-{File "%TEMP%/utf-check-1097-2-88-1.jnk" has 16391 bytes.
16303
+{File "%TEMP%/utf-check-1097-2-88-1.jnk" has 65543 bytes.
1630416304
Starts with UTF-8 BOM: no
1630516305
Starts with UTF-16 BOM: no
1630616306
Looks like UTF-8: no
1630716307
Has flag LOOK_NUL: yes
1630816308
Has flag LOOK_CR: no
@@ -16314,11 +16314,11 @@
1631416314
Has flag LOOK_INVALID: yes
1631516315
Has flag LOOK_ODD: no
1631616316
Has flag LOOK_SHORT: no}
1631716317
1631816318
utf-check 1098 utf-check-1098-2-89-0.jnk \
16319
-{File "%TEMP%/utf-check-1098-2-89-0.jnk" has 16392 bytes.
16319
+{File "%TEMP%/utf-check-1098-2-89-0.jnk" has 65544 bytes.
1632016320
Starts with UTF-8 BOM: no
1632116321
Starts with UTF-16 BOM: no
1632216322
Looks like UTF-8: no
1632316323
Has flag LOOK_NUL: yes
1632416324
Has flag LOOK_CR: yes
@@ -16330,11 +16330,11 @@
1633016330
Has flag LOOK_INVALID: yes
1633116331
Has flag LOOK_ODD: no
1633216332
Has flag LOOK_SHORT: no}
1633316333
1633416334
utf-check 1099 utf-check-1099-2-89-1.jnk \
16335
-{File "%TEMP%/utf-check-1099-2-89-1.jnk" has 16393 bytes.
16335
+{File "%TEMP%/utf-check-1099-2-89-1.jnk" has 65545 bytes.
1633616336
Starts with UTF-8 BOM: no
1633716337
Starts with UTF-16 BOM: no
1633816338
Looks like UTF-8: no
1633916339
Has flag LOOK_NUL: yes
1634016340
Has flag LOOK_CR: yes
@@ -16346,11 +16346,11 @@
1634616346
Has flag LOOK_INVALID: yes
1634716347
Has flag LOOK_ODD: no
1634816348
Has flag LOOK_SHORT: no}
1634916349
1635016350
utf-check 1100 utf-check-1100-2-90-0.jnk \
16351
-{File "%TEMP%/utf-check-1100-2-90-0.jnk" has 16392 bytes.
16351
+{File "%TEMP%/utf-check-1100-2-90-0.jnk" has 65544 bytes.
1635216352
Starts with UTF-8 BOM: no
1635316353
Starts with UTF-16 BOM: no
1635416354
Looks like UTF-8: no
1635516355
Has flag LOOK_NUL: yes
1635616356
Has flag LOOK_CR: no
@@ -16362,11 +16362,11 @@
1636216362
Has flag LOOK_INVALID: yes
1636316363
Has flag LOOK_ODD: no
1636416364
Has flag LOOK_SHORT: no}
1636516365
1636616366
utf-check 1101 utf-check-1101-2-90-1.jnk \
16367
-{File "%TEMP%/utf-check-1101-2-90-1.jnk" has 16393 bytes.
16367
+{File "%TEMP%/utf-check-1101-2-90-1.jnk" has 65545 bytes.
1636816368
Starts with UTF-8 BOM: no
1636916369
Starts with UTF-16 BOM: no
1637016370
Looks like UTF-8: no
1637116371
Has flag LOOK_NUL: yes
1637216372
Has flag LOOK_CR: no
@@ -16378,11 +16378,11 @@
1637816378
Has flag LOOK_INVALID: yes
1637916379
Has flag LOOK_ODD: no
1638016380
Has flag LOOK_SHORT: no}
1638116381
1638216382
utf-check 1102 utf-check-1102-2-91-0.jnk \
16383
-{File "%TEMP%/utf-check-1102-2-91-0.jnk" has 16394 bytes.
16383
+{File "%TEMP%/utf-check-1102-2-91-0.jnk" has 65546 bytes.
1638416384
Starts with UTF-8 BOM: no
1638516385
Starts with UTF-16 BOM: no
1638616386
Looks like UTF-8: no
1638716387
Has flag LOOK_NUL: yes
1638816388
Has flag LOOK_CR: yes
@@ -16394,11 +16394,11 @@
1639416394
Has flag LOOK_INVALID: yes
1639516395
Has flag LOOK_ODD: no
1639616396
Has flag LOOK_SHORT: no}
1639716397
1639816398
utf-check 1103 utf-check-1103-2-91-1.jnk \
16399
-{File "%TEMP%/utf-check-1103-2-91-1.jnk" has 16395 bytes.
16399
+{File "%TEMP%/utf-check-1103-2-91-1.jnk" has 65547 bytes.
1640016400
Starts with UTF-8 BOM: no
1640116401
Starts with UTF-16 BOM: no
1640216402
Looks like UTF-8: no
1640316403
Has flag LOOK_NUL: yes
1640416404
Has flag LOOK_CR: yes
@@ -16410,11 +16410,11 @@
1641016410
Has flag LOOK_INVALID: yes
1641116411
Has flag LOOK_ODD: no
1641216412
Has flag LOOK_SHORT: no}
1641316413
1641416414
utf-check 1104 utf-check-1104-2-92-0.jnk \
16415
-{File "%TEMP%/utf-check-1104-2-92-0.jnk" has 16396 bytes.
16415
+{File "%TEMP%/utf-check-1104-2-92-0.jnk" has 65572 bytes.
1641616416
Starts with UTF-8 BOM: no
1641716417
Starts with UTF-16 BOM: no
1641816418
Looks like UTF-8: no
1641916419
Has flag LOOK_NUL: yes
1642016420
Has flag LOOK_CR: no
@@ -16426,11 +16426,11 @@
1642616426
Has flag LOOK_INVALID: yes
1642716427
Has flag LOOK_ODD: no
1642816428
Has flag LOOK_SHORT: no}
1642916429
1643016430
utf-check 1105 utf-check-1105-2-92-1.jnk \
16431
-{File "%TEMP%/utf-check-1105-2-92-1.jnk" has 16397 bytes.
16431
+{File "%TEMP%/utf-check-1105-2-92-1.jnk" has 65573 bytes.
1643216432
Starts with UTF-8 BOM: no
1643316433
Starts with UTF-16 BOM: no
1643416434
Looks like UTF-8: no
1643516435
Has flag LOOK_NUL: yes
1643616436
Has flag LOOK_CR: no
@@ -16442,11 +16442,11 @@
1644216442
Has flag LOOK_INVALID: yes
1644316443
Has flag LOOK_ODD: no
1644416444
Has flag LOOK_SHORT: no}
1644516445
1644616446
utf-check 1106 utf-check-1106-2-93-0.jnk \
16447
-{File "%TEMP%/utf-check-1106-2-93-0.jnk" has 16398 bytes.
16447
+{File "%TEMP%/utf-check-1106-2-93-0.jnk" has 65574 bytes.
1644816448
Starts with UTF-8 BOM: no
1644916449
Starts with UTF-16 BOM: no
1645016450
Looks like UTF-8: no
1645116451
Has flag LOOK_NUL: yes
1645216452
Has flag LOOK_CR: yes
@@ -16458,11 +16458,11 @@
1645816458
Has flag LOOK_INVALID: yes
1645916459
Has flag LOOK_ODD: no
1646016460
Has flag LOOK_SHORT: no}
1646116461
1646216462
utf-check 1107 utf-check-1107-2-93-1.jnk \
16463
-{File "%TEMP%/utf-check-1107-2-93-1.jnk" has 16399 bytes.
16463
+{File "%TEMP%/utf-check-1107-2-93-1.jnk" has 65575 bytes.
1646416464
Starts with UTF-8 BOM: no
1646516465
Starts with UTF-16 BOM: no
1646616466
Looks like UTF-8: no
1646716467
Has flag LOOK_NUL: yes
1646816468
Has flag LOOK_CR: yes
@@ -16474,11 +16474,11 @@
1647416474
Has flag LOOK_INVALID: yes
1647516475
Has flag LOOK_ODD: no
1647616476
Has flag LOOK_SHORT: no}
1647716477
1647816478
utf-check 1108 utf-check-1108-2-94-0.jnk \
16479
-{File "%TEMP%/utf-check-1108-2-94-0.jnk" has 16398 bytes.
16479
+{File "%TEMP%/utf-check-1108-2-94-0.jnk" has 65574 bytes.
1648016480
Starts with UTF-8 BOM: no
1648116481
Starts with UTF-16 BOM: no
1648216482
Looks like UTF-8: no
1648316483
Has flag LOOK_NUL: yes
1648416484
Has flag LOOK_CR: no
@@ -16490,11 +16490,11 @@
1649016490
Has flag LOOK_INVALID: yes
1649116491
Has flag LOOK_ODD: no
1649216492
Has flag LOOK_SHORT: no}
1649316493
1649416494
utf-check 1109 utf-check-1109-2-94-1.jnk \
16495
-{File "%TEMP%/utf-check-1109-2-94-1.jnk" has 16399 bytes.
16495
+{File "%TEMP%/utf-check-1109-2-94-1.jnk" has 65575 bytes.
1649616496
Starts with UTF-8 BOM: no
1649716497
Starts with UTF-16 BOM: no
1649816498
Looks like UTF-8: no
1649916499
Has flag LOOK_NUL: yes
1650016500
Has flag LOOK_CR: no
@@ -16506,11 +16506,11 @@
1650616506
Has flag LOOK_INVALID: yes
1650716507
Has flag LOOK_ODD: no
1650816508
Has flag LOOK_SHORT: no}
1650916509
1651016510
utf-check 1110 utf-check-1110-2-95-0.jnk \
16511
-{File "%TEMP%/utf-check-1110-2-95-0.jnk" has 16400 bytes.
16511
+{File "%TEMP%/utf-check-1110-2-95-0.jnk" has 65576 bytes.
1651216512
Starts with UTF-8 BOM: no
1651316513
Starts with UTF-16 BOM: no
1651416514
Looks like UTF-8: no
1651516515
Has flag LOOK_NUL: yes
1651616516
Has flag LOOK_CR: yes
@@ -16522,11 +16522,11 @@
1652216522
Has flag LOOK_INVALID: yes
1652316523
Has flag LOOK_ODD: no
1652416524
Has flag LOOK_SHORT: no}
1652516525
1652616526
utf-check 1111 utf-check-1111-2-95-1.jnk \
16527
-{File "%TEMP%/utf-check-1111-2-95-1.jnk" has 16401 bytes.
16527
+{File "%TEMP%/utf-check-1111-2-95-1.jnk" has 65577 bytes.
1652816528
Starts with UTF-8 BOM: no
1652916529
Starts with UTF-16 BOM: no
1653016530
Looks like UTF-8: no
1653116531
Has flag LOOK_NUL: yes
1653216532
Has flag LOOK_CR: yes
@@ -16538,11 +16538,11 @@
1653816538
Has flag LOOK_INVALID: yes
1653916539
Has flag LOOK_ODD: no
1654016540
Has flag LOOK_SHORT: no}
1654116541
1654216542
utf-check 1112 utf-check-1112-2-96-0.jnk \
16543
-{File "%TEMP%/utf-check-1112-2-96-0.jnk" has 16390 bytes.
16543
+{File "%TEMP%/utf-check-1112-2-96-0.jnk" has 65542 bytes.
1654416544
Starts with UTF-8 BOM: no
1654516545
Starts with UTF-16 BOM: yes
1654616546
Looks like UTF-16: no
1654716547
Has flag LOOK_NUL: yes
1654816548
Has flag LOOK_CR: no
@@ -16554,11 +16554,11 @@
1655416554
Has flag LOOK_INVALID: no
1655516555
Has flag LOOK_ODD: no
1655616556
Has flag LOOK_SHORT: no}
1655716557
1655816558
utf-check 1113 utf-check-1113-2-96-1.jnk \
16559
-{File "%TEMP%/utf-check-1113-2-96-1.jnk" has 16391 bytes.
16559
+{File "%TEMP%/utf-check-1113-2-96-1.jnk" has 65543 bytes.
1656016560
Starts with UTF-8 BOM: no
1656116561
Starts with UTF-16 BOM: yes
1656216562
Looks like UTF-8: no
1656316563
Has flag LOOK_NUL: yes
1656416564
Has flag LOOK_CR: no
@@ -16570,11 +16570,11 @@
1657016570
Has flag LOOK_INVALID: yes
1657116571
Has flag LOOK_ODD: no
1657216572
Has flag LOOK_SHORT: no}
1657316573
1657416574
utf-check 1114 utf-check-1114-2-97-0.jnk \
16575
-{File "%TEMP%/utf-check-1114-2-97-0.jnk" has 16392 bytes.
16575
+{File "%TEMP%/utf-check-1114-2-97-0.jnk" has 65544 bytes.
1657616576
Starts with UTF-8 BOM: no
1657716577
Starts with UTF-16 BOM: yes
1657816578
Looks like UTF-16: no
1657916579
Has flag LOOK_NUL: yes
1658016580
Has flag LOOK_CR: yes
@@ -16586,11 +16586,11 @@
1658616586
Has flag LOOK_INVALID: no
1658716587
Has flag LOOK_ODD: no
1658816588
Has flag LOOK_SHORT: no}
1658916589
1659016590
utf-check 1115 utf-check-1115-2-97-1.jnk \
16591
-{File "%TEMP%/utf-check-1115-2-97-1.jnk" has 16393 bytes.
16591
+{File "%TEMP%/utf-check-1115-2-97-1.jnk" has 65545 bytes.
1659216592
Starts with UTF-8 BOM: no
1659316593
Starts with UTF-16 BOM: yes
1659416594
Looks like UTF-8: no
1659516595
Has flag LOOK_NUL: yes
1659616596
Has flag LOOK_CR: yes
@@ -16602,11 +16602,11 @@
1660216602
Has flag LOOK_INVALID: yes
1660316603
Has flag LOOK_ODD: no
1660416604
Has flag LOOK_SHORT: no}
1660516605
1660616606
utf-check 1116 utf-check-1116-2-98-0.jnk \
16607
-{File "%TEMP%/utf-check-1116-2-98-0.jnk" has 16392 bytes.
16607
+{File "%TEMP%/utf-check-1116-2-98-0.jnk" has 65544 bytes.
1660816608
Starts with UTF-8 BOM: no
1660916609
Starts with UTF-16 BOM: yes
1661016610
Looks like UTF-16: no
1661116611
Has flag LOOK_NUL: yes
1661216612
Has flag LOOK_CR: no
@@ -16618,11 +16618,11 @@
1661816618
Has flag LOOK_INVALID: no
1661916619
Has flag LOOK_ODD: no
1662016620
Has flag LOOK_SHORT: no}
1662116621
1662216622
utf-check 1117 utf-check-1117-2-98-1.jnk \
16623
-{File "%TEMP%/utf-check-1117-2-98-1.jnk" has 16393 bytes.
16623
+{File "%TEMP%/utf-check-1117-2-98-1.jnk" has 65545 bytes.
1662416624
Starts with UTF-8 BOM: no
1662516625
Starts with UTF-16 BOM: yes
1662616626
Looks like UTF-8: no
1662716627
Has flag LOOK_NUL: yes
1662816628
Has flag LOOK_CR: no
@@ -16634,11 +16634,11 @@
1663416634
Has flag LOOK_INVALID: yes
1663516635
Has flag LOOK_ODD: no
1663616636
Has flag LOOK_SHORT: no}
1663716637
1663816638
utf-check 1118 utf-check-1118-2-99-0.jnk \
16639
-{File "%TEMP%/utf-check-1118-2-99-0.jnk" has 16394 bytes.
16639
+{File "%TEMP%/utf-check-1118-2-99-0.jnk" has 65546 bytes.
1664016640
Starts with UTF-8 BOM: no
1664116641
Starts with UTF-16 BOM: yes
1664216642
Looks like UTF-16: no
1664316643
Has flag LOOK_NUL: yes
1664416644
Has flag LOOK_CR: yes
@@ -16650,11 +16650,11 @@
1665016650
Has flag LOOK_INVALID: no
1665116651
Has flag LOOK_ODD: no
1665216652
Has flag LOOK_SHORT: no}
1665316653
1665416654
utf-check 1119 utf-check-1119-2-99-1.jnk \
16655
-{File "%TEMP%/utf-check-1119-2-99-1.jnk" has 16395 bytes.
16655
+{File "%TEMP%/utf-check-1119-2-99-1.jnk" has 65547 bytes.
1665616656
Starts with UTF-8 BOM: no
1665716657
Starts with UTF-16 BOM: yes
1665816658
Looks like UTF-8: no
1665916659
Has flag LOOK_NUL: yes
1666016660
Has flag LOOK_CR: yes
@@ -16666,11 +16666,11 @@
1666616666
Has flag LOOK_INVALID: yes
1666716667
Has flag LOOK_ODD: no
1666816668
Has flag LOOK_SHORT: no}
1666916669
1667016670
utf-check 1120 utf-check-1120-2-100-0.jnk \
16671
-{File "%TEMP%/utf-check-1120-2-100-0.jnk" has 16396 bytes.
16671
+{File "%TEMP%/utf-check-1120-2-100-0.jnk" has 65572 bytes.
1667216672
Starts with UTF-8 BOM: no
1667316673
Starts with UTF-16 BOM: yes
1667416674
Looks like UTF-16: no
1667516675
Has flag LOOK_NUL: yes
1667616676
Has flag LOOK_CR: no
@@ -16682,11 +16682,11 @@
1668216682
Has flag LOOK_INVALID: no
1668316683
Has flag LOOK_ODD: no
1668416684
Has flag LOOK_SHORT: no}
1668516685
1668616686
utf-check 1121 utf-check-1121-2-100-1.jnk \
16687
-{File "%TEMP%/utf-check-1121-2-100-1.jnk" has 16397 bytes.
16687
+{File "%TEMP%/utf-check-1121-2-100-1.jnk" has 65573 bytes.
1668816688
Starts with UTF-8 BOM: no
1668916689
Starts with UTF-16 BOM: yes
1669016690
Looks like UTF-8: no
1669116691
Has flag LOOK_NUL: yes
1669216692
Has flag LOOK_CR: no
@@ -16698,11 +16698,11 @@
1669816698
Has flag LOOK_INVALID: yes
1669916699
Has flag LOOK_ODD: no
1670016700
Has flag LOOK_SHORT: no}
1670116701
1670216702
utf-check 1122 utf-check-1122-2-101-0.jnk \
16703
-{File "%TEMP%/utf-check-1122-2-101-0.jnk" has 16398 bytes.
16703
+{File "%TEMP%/utf-check-1122-2-101-0.jnk" has 65574 bytes.
1670416704
Starts with UTF-8 BOM: no
1670516705
Starts with UTF-16 BOM: yes
1670616706
Looks like UTF-16: no
1670716707
Has flag LOOK_NUL: yes
1670816708
Has flag LOOK_CR: yes
@@ -16714,11 +16714,11 @@
1671416714
Has flag LOOK_INVALID: no
1671516715
Has flag LOOK_ODD: no
1671616716
Has flag LOOK_SHORT: no}
1671716717
1671816718
utf-check 1123 utf-check-1123-2-101-1.jnk \
16719
-{File "%TEMP%/utf-check-1123-2-101-1.jnk" has 16399 bytes.
16719
+{File "%TEMP%/utf-check-1123-2-101-1.jnk" has 65575 bytes.
1672016720
Starts with UTF-8 BOM: no
1672116721
Starts with UTF-16 BOM: yes
1672216722
Looks like UTF-8: no
1672316723
Has flag LOOK_NUL: yes
1672416724
Has flag LOOK_CR: yes
@@ -16730,11 +16730,11 @@
1673016730
Has flag LOOK_INVALID: yes
1673116731
Has flag LOOK_ODD: no
1673216732
Has flag LOOK_SHORT: no}
1673316733
1673416734
utf-check 1124 utf-check-1124-2-102-0.jnk \
16735
-{File "%TEMP%/utf-check-1124-2-102-0.jnk" has 16398 bytes.
16735
+{File "%TEMP%/utf-check-1124-2-102-0.jnk" has 65574 bytes.
1673616736
Starts with UTF-8 BOM: no
1673716737
Starts with UTF-16 BOM: yes
1673816738
Looks like UTF-16: no
1673916739
Has flag LOOK_NUL: yes
1674016740
Has flag LOOK_CR: no
@@ -16746,11 +16746,11 @@
1674616746
Has flag LOOK_INVALID: no
1674716747
Has flag LOOK_ODD: no
1674816748
Has flag LOOK_SHORT: no}
1674916749
1675016750
utf-check 1125 utf-check-1125-2-102-1.jnk \
16751
-{File "%TEMP%/utf-check-1125-2-102-1.jnk" has 16399 bytes.
16751
+{File "%TEMP%/utf-check-1125-2-102-1.jnk" has 65575 bytes.
1675216752
Starts with UTF-8 BOM: no
1675316753
Starts with UTF-16 BOM: yes
1675416754
Looks like UTF-8: no
1675516755
Has flag LOOK_NUL: yes
1675616756
Has flag LOOK_CR: no
@@ -16762,11 +16762,11 @@
1676216762
Has flag LOOK_INVALID: yes
1676316763
Has flag LOOK_ODD: no
1676416764
Has flag LOOK_SHORT: no}
1676516765
1676616766
utf-check 1126 utf-check-1126-2-103-0.jnk \
16767
-{File "%TEMP%/utf-check-1126-2-103-0.jnk" has 16400 bytes.
16767
+{File "%TEMP%/utf-check-1126-2-103-0.jnk" has 65576 bytes.
1676816768
Starts with UTF-8 BOM: no
1676916769
Starts with UTF-16 BOM: yes
1677016770
Looks like UTF-16: no
1677116771
Has flag LOOK_NUL: yes
1677216772
Has flag LOOK_CR: yes
@@ -16778,11 +16778,11 @@
1677816778
Has flag LOOK_INVALID: no
1677916779
Has flag LOOK_ODD: no
1678016780
Has flag LOOK_SHORT: no}
1678116781
1678216782
utf-check 1127 utf-check-1127-2-103-1.jnk \
16783
-{File "%TEMP%/utf-check-1127-2-103-1.jnk" has 16401 bytes.
16783
+{File "%TEMP%/utf-check-1127-2-103-1.jnk" has 65577 bytes.
1678416784
Starts with UTF-8 BOM: no
1678516785
Starts with UTF-16 BOM: yes
1678616786
Looks like UTF-8: no
1678716787
Has flag LOOK_NUL: yes
1678816788
Has flag LOOK_CR: yes
@@ -16794,11 +16794,11 @@
1679416794
Has flag LOOK_INVALID: yes
1679516795
Has flag LOOK_ODD: no
1679616796
Has flag LOOK_SHORT: no}
1679716797
1679816798
utf-check 1128 utf-check-1128-2-104-0.jnk \
16799
-{File "%TEMP%/utf-check-1128-2-104-0.jnk" has 16392 bytes.
16799
+{File "%TEMP%/utf-check-1128-2-104-0.jnk" has 65544 bytes.
1680016800
Starts with UTF-8 BOM: no
1680116801
Starts with UTF-16 BOM: no
1680216802
Looks like UTF-8: no
1680316803
Has flag LOOK_NUL: yes
1680416804
Has flag LOOK_CR: no
@@ -16810,11 +16810,11 @@
1681016810
Has flag LOOK_INVALID: yes
1681116811
Has flag LOOK_ODD: no
1681216812
Has flag LOOK_SHORT: no}
1681316813
1681416814
utf-check 1129 utf-check-1129-2-104-1.jnk \
16815
-{File "%TEMP%/utf-check-1129-2-104-1.jnk" has 16393 bytes.
16815
+{File "%TEMP%/utf-check-1129-2-104-1.jnk" has 65545 bytes.
1681616816
Starts with UTF-8 BOM: no
1681716817
Starts with UTF-16 BOM: no
1681816818
Looks like UTF-8: no
1681916819
Has flag LOOK_NUL: yes
1682016820
Has flag LOOK_CR: no
@@ -16826,11 +16826,11 @@
1682616826
Has flag LOOK_INVALID: yes
1682716827
Has flag LOOK_ODD: no
1682816828
Has flag LOOK_SHORT: no}
1682916829
1683016830
utf-check 1130 utf-check-1130-2-105-0.jnk \
16831
-{File "%TEMP%/utf-check-1130-2-105-0.jnk" has 16394 bytes.
16831
+{File "%TEMP%/utf-check-1130-2-105-0.jnk" has 65546 bytes.
1683216832
Starts with UTF-8 BOM: no
1683316833
Starts with UTF-16 BOM: no
1683416834
Looks like UTF-8: no
1683516835
Has flag LOOK_NUL: yes
1683616836
Has flag LOOK_CR: yes
@@ -16842,11 +16842,11 @@
1684216842
Has flag LOOK_INVALID: yes
1684316843
Has flag LOOK_ODD: no
1684416844
Has flag LOOK_SHORT: no}
1684516845
1684616846
utf-check 1131 utf-check-1131-2-105-1.jnk \
16847
-{File "%TEMP%/utf-check-1131-2-105-1.jnk" has 16395 bytes.
16847
+{File "%TEMP%/utf-check-1131-2-105-1.jnk" has 65547 bytes.
1684816848
Starts with UTF-8 BOM: no
1684916849
Starts with UTF-16 BOM: no
1685016850
Looks like UTF-8: no
1685116851
Has flag LOOK_NUL: yes
1685216852
Has flag LOOK_CR: yes
@@ -16858,11 +16858,11 @@
1685816858
Has flag LOOK_INVALID: yes
1685916859
Has flag LOOK_ODD: no
1686016860
Has flag LOOK_SHORT: no}
1686116861
1686216862
utf-check 1132 utf-check-1132-2-106-0.jnk \
16863
-{File "%TEMP%/utf-check-1132-2-106-0.jnk" has 16394 bytes.
16863
+{File "%TEMP%/utf-check-1132-2-106-0.jnk" has 65546 bytes.
1686416864
Starts with UTF-8 BOM: no
1686516865
Starts with UTF-16 BOM: no
1686616866
Looks like UTF-8: no
1686716867
Has flag LOOK_NUL: yes
1686816868
Has flag LOOK_CR: no
@@ -16874,11 +16874,11 @@
1687416874
Has flag LOOK_INVALID: yes
1687516875
Has flag LOOK_ODD: no
1687616876
Has flag LOOK_SHORT: no}
1687716877
1687816878
utf-check 1133 utf-check-1133-2-106-1.jnk \
16879
-{File "%TEMP%/utf-check-1133-2-106-1.jnk" has 16395 bytes.
16879
+{File "%TEMP%/utf-check-1133-2-106-1.jnk" has 65547 bytes.
1688016880
Starts with UTF-8 BOM: no
1688116881
Starts with UTF-16 BOM: no
1688216882
Looks like UTF-8: no
1688316883
Has flag LOOK_NUL: yes
1688416884
Has flag LOOK_CR: no
@@ -16890,11 +16890,11 @@
1689016890
Has flag LOOK_INVALID: yes
1689116891
Has flag LOOK_ODD: no
1689216892
Has flag LOOK_SHORT: no}
1689316893
1689416894
utf-check 1134 utf-check-1134-2-107-0.jnk \
16895
-{File "%TEMP%/utf-check-1134-2-107-0.jnk" has 16396 bytes.
16895
+{File "%TEMP%/utf-check-1134-2-107-0.jnk" has 65548 bytes.
1689616896
Starts with UTF-8 BOM: no
1689716897
Starts with UTF-16 BOM: no
1689816898
Looks like UTF-8: no
1689916899
Has flag LOOK_NUL: yes
1690016900
Has flag LOOK_CR: yes
@@ -16906,11 +16906,11 @@
1690616906
Has flag LOOK_INVALID: yes
1690716907
Has flag LOOK_ODD: no
1690816908
Has flag LOOK_SHORT: no}
1690916909
1691016910
utf-check 1135 utf-check-1135-2-107-1.jnk \
16911
-{File "%TEMP%/utf-check-1135-2-107-1.jnk" has 16397 bytes.
16911
+{File "%TEMP%/utf-check-1135-2-107-1.jnk" has 65549 bytes.
1691216912
Starts with UTF-8 BOM: no
1691316913
Starts with UTF-16 BOM: no
1691416914
Looks like UTF-8: no
1691516915
Has flag LOOK_NUL: yes
1691616916
Has flag LOOK_CR: yes
@@ -16922,11 +16922,11 @@
1692216922
Has flag LOOK_INVALID: yes
1692316923
Has flag LOOK_ODD: no
1692416924
Has flag LOOK_SHORT: no}
1692516925
1692616926
utf-check 1136 utf-check-1136-2-108-0.jnk \
16927
-{File "%TEMP%/utf-check-1136-2-108-0.jnk" has 16398 bytes.
16927
+{File "%TEMP%/utf-check-1136-2-108-0.jnk" has 65574 bytes.
1692816928
Starts with UTF-8 BOM: no
1692916929
Starts with UTF-16 BOM: no
1693016930
Looks like UTF-8: no
1693116931
Has flag LOOK_NUL: yes
1693216932
Has flag LOOK_CR: no
@@ -16938,11 +16938,11 @@
1693816938
Has flag LOOK_INVALID: yes
1693916939
Has flag LOOK_ODD: no
1694016940
Has flag LOOK_SHORT: no}
1694116941
1694216942
utf-check 1137 utf-check-1137-2-108-1.jnk \
16943
-{File "%TEMP%/utf-check-1137-2-108-1.jnk" has 16399 bytes.
16943
+{File "%TEMP%/utf-check-1137-2-108-1.jnk" has 65575 bytes.
1694416944
Starts with UTF-8 BOM: no
1694516945
Starts with UTF-16 BOM: no
1694616946
Looks like UTF-8: no
1694716947
Has flag LOOK_NUL: yes
1694816948
Has flag LOOK_CR: no
@@ -16954,11 +16954,11 @@
1695416954
Has flag LOOK_INVALID: yes
1695516955
Has flag LOOK_ODD: no
1695616956
Has flag LOOK_SHORT: no}
1695716957
1695816958
utf-check 1138 utf-check-1138-2-109-0.jnk \
16959
-{File "%TEMP%/utf-check-1138-2-109-0.jnk" has 16400 bytes.
16959
+{File "%TEMP%/utf-check-1138-2-109-0.jnk" has 65576 bytes.
1696016960
Starts with UTF-8 BOM: no
1696116961
Starts with UTF-16 BOM: no
1696216962
Looks like UTF-8: no
1696316963
Has flag LOOK_NUL: yes
1696416964
Has flag LOOK_CR: yes
@@ -16970,11 +16970,11 @@
1697016970
Has flag LOOK_INVALID: yes
1697116971
Has flag LOOK_ODD: no
1697216972
Has flag LOOK_SHORT: no}
1697316973
1697416974
utf-check 1139 utf-check-1139-2-109-1.jnk \
16975
-{File "%TEMP%/utf-check-1139-2-109-1.jnk" has 16401 bytes.
16975
+{File "%TEMP%/utf-check-1139-2-109-1.jnk" has 65577 bytes.
1697616976
Starts with UTF-8 BOM: no
1697716977
Starts with UTF-16 BOM: no
1697816978
Looks like UTF-8: no
1697916979
Has flag LOOK_NUL: yes
1698016980
Has flag LOOK_CR: yes
@@ -16986,11 +16986,11 @@
1698616986
Has flag LOOK_INVALID: yes
1698716987
Has flag LOOK_ODD: no
1698816988
Has flag LOOK_SHORT: no}
1698916989
1699016990
utf-check 1140 utf-check-1140-2-110-0.jnk \
16991
-{File "%TEMP%/utf-check-1140-2-110-0.jnk" has 16400 bytes.
16991
+{File "%TEMP%/utf-check-1140-2-110-0.jnk" has 65576 bytes.
1699216992
Starts with UTF-8 BOM: no
1699316993
Starts with UTF-16 BOM: no
1699416994
Looks like UTF-8: no
1699516995
Has flag LOOK_NUL: yes
1699616996
Has flag LOOK_CR: no
@@ -17002,11 +17002,11 @@
1700217002
Has flag LOOK_INVALID: yes
1700317003
Has flag LOOK_ODD: no
1700417004
Has flag LOOK_SHORT: no}
1700517005
1700617006
utf-check 1141 utf-check-1141-2-110-1.jnk \
17007
-{File "%TEMP%/utf-check-1141-2-110-1.jnk" has 16401 bytes.
17007
+{File "%TEMP%/utf-check-1141-2-110-1.jnk" has 65577 bytes.
1700817008
Starts with UTF-8 BOM: no
1700917009
Starts with UTF-16 BOM: no
1701017010
Looks like UTF-8: no
1701117011
Has flag LOOK_NUL: yes
1701217012
Has flag LOOK_CR: no
@@ -17018,11 +17018,11 @@
1701817018
Has flag LOOK_INVALID: yes
1701917019
Has flag LOOK_ODD: no
1702017020
Has flag LOOK_SHORT: no}
1702117021
1702217022
utf-check 1142 utf-check-1142-2-111-0.jnk \
17023
-{File "%TEMP%/utf-check-1142-2-111-0.jnk" has 16402 bytes.
17023
+{File "%TEMP%/utf-check-1142-2-111-0.jnk" has 65578 bytes.
1702417024
Starts with UTF-8 BOM: no
1702517025
Starts with UTF-16 BOM: no
1702617026
Looks like UTF-8: no
1702717027
Has flag LOOK_NUL: yes
1702817028
Has flag LOOK_CR: yes
@@ -17034,11 +17034,11 @@
1703417034
Has flag LOOK_INVALID: yes
1703517035
Has flag LOOK_ODD: no
1703617036
Has flag LOOK_SHORT: no}
1703717037
1703817038
utf-check 1143 utf-check-1143-2-111-1.jnk \
17039
-{File "%TEMP%/utf-check-1143-2-111-1.jnk" has 16403 bytes.
17039
+{File "%TEMP%/utf-check-1143-2-111-1.jnk" has 65579 bytes.
1704017040
Starts with UTF-8 BOM: no
1704117041
Starts with UTF-16 BOM: no
1704217042
Looks like UTF-8: no
1704317043
Has flag LOOK_NUL: yes
1704417044
Has flag LOOK_CR: yes
@@ -22586,11 +22586,11 @@
2258622586
Has flag LOOK_INVALID: yes
2258722587
Has flag LOOK_ODD: no
2258822588
Has flag LOOK_SHORT: no}
2258922589
2259022590
utf-check 1490 utf-check-1490-3-80-0.jnk \
22591
-{File "%TEMP%/utf-check-1490-3-80-0.jnk" has 16388 bytes.
22591
+{File "%TEMP%/utf-check-1490-3-80-0.jnk" has 65540 bytes.
2259222592
Starts with UTF-8 BOM: no
2259322593
Starts with UTF-16 BOM: no
2259422594
Looks like UTF-8: no
2259522595
Has flag LOOK_NUL: yes
2259622596
Has flag LOOK_CR: no
@@ -22602,11 +22602,11 @@
2260222602
Has flag LOOK_INVALID: yes
2260322603
Has flag LOOK_ODD: no
2260422604
Has flag LOOK_SHORT: no}
2260522605
2260622606
utf-check 1491 utf-check-1491-3-80-1.jnk \
22607
-{File "%TEMP%/utf-check-1491-3-80-1.jnk" has 16389 bytes.
22607
+{File "%TEMP%/utf-check-1491-3-80-1.jnk" has 65541 bytes.
2260822608
Starts with UTF-8 BOM: no
2260922609
Starts with UTF-16 BOM: no
2261022610
Looks like UTF-8: no
2261122611
Has flag LOOK_NUL: yes
2261222612
Has flag LOOK_CR: no
@@ -22618,11 +22618,11 @@
2261822618
Has flag LOOK_INVALID: yes
2261922619
Has flag LOOK_ODD: no
2262022620
Has flag LOOK_SHORT: no}
2262122621
2262222622
utf-check 1492 utf-check-1492-3-81-0.jnk \
22623
-{File "%TEMP%/utf-check-1492-3-81-0.jnk" has 16390 bytes.
22623
+{File "%TEMP%/utf-check-1492-3-81-0.jnk" has 65542 bytes.
2262422624
Starts with UTF-8 BOM: no
2262522625
Starts with UTF-16 BOM: no
2262622626
Looks like UTF-8: no
2262722627
Has flag LOOK_NUL: yes
2262822628
Has flag LOOK_CR: no
@@ -22634,11 +22634,11 @@
2263422634
Has flag LOOK_INVALID: yes
2263522635
Has flag LOOK_ODD: no
2263622636
Has flag LOOK_SHORT: no}
2263722637
2263822638
utf-check 1493 utf-check-1493-3-81-1.jnk \
22639
-{File "%TEMP%/utf-check-1493-3-81-1.jnk" has 16391 bytes.
22639
+{File "%TEMP%/utf-check-1493-3-81-1.jnk" has 65543 bytes.
2264022640
Starts with UTF-8 BOM: no
2264122641
Starts with UTF-16 BOM: no
2264222642
Looks like UTF-8: no
2264322643
Has flag LOOK_NUL: yes
2264422644
Has flag LOOK_CR: no
@@ -22650,11 +22650,11 @@
2265022650
Has flag LOOK_INVALID: yes
2265122651
Has flag LOOK_ODD: no
2265222652
Has flag LOOK_SHORT: no}
2265322653
2265422654
utf-check 1494 utf-check-1494-3-82-0.jnk \
22655
-{File "%TEMP%/utf-check-1494-3-82-0.jnk" has 16390 bytes.
22655
+{File "%TEMP%/utf-check-1494-3-82-0.jnk" has 65542 bytes.
2265622656
Starts with UTF-8 BOM: no
2265722657
Starts with UTF-16 BOM: no
2265822658
Looks like UTF-8: no
2265922659
Has flag LOOK_NUL: yes
2266022660
Has flag LOOK_CR: no
@@ -22666,11 +22666,11 @@
2266622666
Has flag LOOK_INVALID: yes
2266722667
Has flag LOOK_ODD: no
2266822668
Has flag LOOK_SHORT: no}
2266922669
2267022670
utf-check 1495 utf-check-1495-3-82-1.jnk \
22671
-{File "%TEMP%/utf-check-1495-3-82-1.jnk" has 16391 bytes.
22671
+{File "%TEMP%/utf-check-1495-3-82-1.jnk" has 65543 bytes.
2267222672
Starts with UTF-8 BOM: no
2267322673
Starts with UTF-16 BOM: no
2267422674
Looks like UTF-8: no
2267522675
Has flag LOOK_NUL: yes
2267622676
Has flag LOOK_CR: no
@@ -22682,11 +22682,11 @@
2268222682
Has flag LOOK_INVALID: yes
2268322683
Has flag LOOK_ODD: no
2268422684
Has flag LOOK_SHORT: no}
2268522685
2268622686
utf-check 1496 utf-check-1496-3-83-0.jnk \
22687
-{File "%TEMP%/utf-check-1496-3-83-0.jnk" has 16392 bytes.
22687
+{File "%TEMP%/utf-check-1496-3-83-0.jnk" has 65544 bytes.
2268822688
Starts with UTF-8 BOM: no
2268922689
Starts with UTF-16 BOM: no
2269022690
Looks like UTF-8: no
2269122691
Has flag LOOK_NUL: yes
2269222692
Has flag LOOK_CR: no
@@ -22698,11 +22698,11 @@
2269822698
Has flag LOOK_INVALID: yes
2269922699
Has flag LOOK_ODD: no
2270022700
Has flag LOOK_SHORT: no}
2270122701
2270222702
utf-check 1497 utf-check-1497-3-83-1.jnk \
22703
-{File "%TEMP%/utf-check-1497-3-83-1.jnk" has 16393 bytes.
22703
+{File "%TEMP%/utf-check-1497-3-83-1.jnk" has 65545 bytes.
2270422704
Starts with UTF-8 BOM: no
2270522705
Starts with UTF-16 BOM: no
2270622706
Looks like UTF-8: no
2270722707
Has flag LOOK_NUL: yes
2270822708
Has flag LOOK_CR: no
@@ -22714,11 +22714,11 @@
2271422714
Has flag LOOK_INVALID: yes
2271522715
Has flag LOOK_ODD: no
2271622716
Has flag LOOK_SHORT: no}
2271722717
2271822718
utf-check 1498 utf-check-1498-3-84-0.jnk \
22719
-{File "%TEMP%/utf-check-1498-3-84-0.jnk" has 16394 bytes.
22719
+{File "%TEMP%/utf-check-1498-3-84-0.jnk" has 65570 bytes.
2272022720
Starts with UTF-8 BOM: no
2272122721
Starts with UTF-16 BOM: no
2272222722
Looks like UTF-8: no
2272322723
Has flag LOOK_NUL: yes
2272422724
Has flag LOOK_CR: no
@@ -22730,11 +22730,11 @@
2273022730
Has flag LOOK_INVALID: yes
2273122731
Has flag LOOK_ODD: no
2273222732
Has flag LOOK_SHORT: no}
2273322733
2273422734
utf-check 1499 utf-check-1499-3-84-1.jnk \
22735
-{File "%TEMP%/utf-check-1499-3-84-1.jnk" has 16395 bytes.
22735
+{File "%TEMP%/utf-check-1499-3-84-1.jnk" has 65571 bytes.
2273622736
Starts with UTF-8 BOM: no
2273722737
Starts with UTF-16 BOM: no
2273822738
Looks like UTF-8: no
2273922739
Has flag LOOK_NUL: yes
2274022740
Has flag LOOK_CR: no
@@ -22746,11 +22746,11 @@
2274622746
Has flag LOOK_INVALID: yes
2274722747
Has flag LOOK_ODD: no
2274822748
Has flag LOOK_SHORT: no}
2274922749
2275022750
utf-check 1500 utf-check-1500-3-85-0.jnk \
22751
-{File "%TEMP%/utf-check-1500-3-85-0.jnk" has 16396 bytes.
22751
+{File "%TEMP%/utf-check-1500-3-85-0.jnk" has 65572 bytes.
2275222752
Starts with UTF-8 BOM: no
2275322753
Starts with UTF-16 BOM: no
2275422754
Looks like UTF-8: no
2275522755
Has flag LOOK_NUL: yes
2275622756
Has flag LOOK_CR: no
@@ -22762,11 +22762,11 @@
2276222762
Has flag LOOK_INVALID: yes
2276322763
Has flag LOOK_ODD: no
2276422764
Has flag LOOK_SHORT: no}
2276522765
2276622766
utf-check 1501 utf-check-1501-3-85-1.jnk \
22767
-{File "%TEMP%/utf-check-1501-3-85-1.jnk" has 16397 bytes.
22767
+{File "%TEMP%/utf-check-1501-3-85-1.jnk" has 65573 bytes.
2276822768
Starts with UTF-8 BOM: no
2276922769
Starts with UTF-16 BOM: no
2277022770
Looks like UTF-8: no
2277122771
Has flag LOOK_NUL: yes
2277222772
Has flag LOOK_CR: no
@@ -22778,11 +22778,11 @@
2277822778
Has flag LOOK_INVALID: yes
2277922779
Has flag LOOK_ODD: no
2278022780
Has flag LOOK_SHORT: no}
2278122781
2278222782
utf-check 1502 utf-check-1502-3-86-0.jnk \
22783
-{File "%TEMP%/utf-check-1502-3-86-0.jnk" has 16396 bytes.
22783
+{File "%TEMP%/utf-check-1502-3-86-0.jnk" has 65572 bytes.
2278422784
Starts with UTF-8 BOM: no
2278522785
Starts with UTF-16 BOM: no
2278622786
Looks like UTF-8: no
2278722787
Has flag LOOK_NUL: yes
2278822788
Has flag LOOK_CR: no
@@ -22794,11 +22794,11 @@
2279422794
Has flag LOOK_INVALID: yes
2279522795
Has flag LOOK_ODD: no
2279622796
Has flag LOOK_SHORT: no}
2279722797
2279822798
utf-check 1503 utf-check-1503-3-86-1.jnk \
22799
-{File "%TEMP%/utf-check-1503-3-86-1.jnk" has 16397 bytes.
22799
+{File "%TEMP%/utf-check-1503-3-86-1.jnk" has 65573 bytes.
2280022800
Starts with UTF-8 BOM: no
2280122801
Starts with UTF-16 BOM: no
2280222802
Looks like UTF-8: no
2280322803
Has flag LOOK_NUL: yes
2280422804
Has flag LOOK_CR: no
@@ -22810,11 +22810,11 @@
2281022810
Has flag LOOK_INVALID: yes
2281122811
Has flag LOOK_ODD: no
2281222812
Has flag LOOK_SHORT: no}
2281322813
2281422814
utf-check 1504 utf-check-1504-3-87-0.jnk \
22815
-{File "%TEMP%/utf-check-1504-3-87-0.jnk" has 16398 bytes.
22815
+{File "%TEMP%/utf-check-1504-3-87-0.jnk" has 65574 bytes.
2281622816
Starts with UTF-8 BOM: no
2281722817
Starts with UTF-16 BOM: no
2281822818
Looks like UTF-8: no
2281922819
Has flag LOOK_NUL: yes
2282022820
Has flag LOOK_CR: no
@@ -22826,11 +22826,11 @@
2282622826
Has flag LOOK_INVALID: yes
2282722827
Has flag LOOK_ODD: no
2282822828
Has flag LOOK_SHORT: no}
2282922829
2283022830
utf-check 1505 utf-check-1505-3-87-1.jnk \
22831
-{File "%TEMP%/utf-check-1505-3-87-1.jnk" has 16399 bytes.
22831
+{File "%TEMP%/utf-check-1505-3-87-1.jnk" has 65575 bytes.
2283222832
Starts with UTF-8 BOM: no
2283322833
Starts with UTF-16 BOM: no
2283422834
Looks like UTF-8: no
2283522835
Has flag LOOK_NUL: yes
2283622836
Has flag LOOK_CR: no
@@ -22842,11 +22842,11 @@
2284222842
Has flag LOOK_INVALID: yes
2284322843
Has flag LOOK_ODD: no
2284422844
Has flag LOOK_SHORT: no}
2284522845
2284622846
utf-check 1506 utf-check-1506-3-88-0.jnk \
22847
-{File "%TEMP%/utf-check-1506-3-88-0.jnk" has 16390 bytes.
22847
+{File "%TEMP%/utf-check-1506-3-88-0.jnk" has 65542 bytes.
2284822848
Starts with UTF-8 BOM: no
2284922849
Starts with UTF-16 BOM: no
2285022850
Looks like UTF-8: no
2285122851
Has flag LOOK_NUL: yes
2285222852
Has flag LOOK_CR: no
@@ -22858,11 +22858,11 @@
2285822858
Has flag LOOK_INVALID: yes
2285922859
Has flag LOOK_ODD: no
2286022860
Has flag LOOK_SHORT: no}
2286122861
2286222862
utf-check 1507 utf-check-1507-3-88-1.jnk \
22863
-{File "%TEMP%/utf-check-1507-3-88-1.jnk" has 16391 bytes.
22863
+{File "%TEMP%/utf-check-1507-3-88-1.jnk" has 65543 bytes.
2286422864
Starts with UTF-8 BOM: no
2286522865
Starts with UTF-16 BOM: no
2286622866
Looks like UTF-8: no
2286722867
Has flag LOOK_NUL: yes
2286822868
Has flag LOOK_CR: no
@@ -22874,11 +22874,11 @@
2287422874
Has flag LOOK_INVALID: yes
2287522875
Has flag LOOK_ODD: no
2287622876
Has flag LOOK_SHORT: no}
2287722877
2287822878
utf-check 1508 utf-check-1508-3-89-0.jnk \
22879
-{File "%TEMP%/utf-check-1508-3-89-0.jnk" has 16392 bytes.
22879
+{File "%TEMP%/utf-check-1508-3-89-0.jnk" has 65544 bytes.
2288022880
Starts with UTF-8 BOM: no
2288122881
Starts with UTF-16 BOM: no
2288222882
Looks like UTF-8: no
2288322883
Has flag LOOK_NUL: yes
2288422884
Has flag LOOK_CR: no
@@ -22890,11 +22890,11 @@
2289022890
Has flag LOOK_INVALID: yes
2289122891
Has flag LOOK_ODD: no
2289222892
Has flag LOOK_SHORT: no}
2289322893
2289422894
utf-check 1509 utf-check-1509-3-89-1.jnk \
22895
-{File "%TEMP%/utf-check-1509-3-89-1.jnk" has 16393 bytes.
22895
+{File "%TEMP%/utf-check-1509-3-89-1.jnk" has 65545 bytes.
2289622896
Starts with UTF-8 BOM: no
2289722897
Starts with UTF-16 BOM: no
2289822898
Looks like UTF-8: no
2289922899
Has flag LOOK_NUL: yes
2290022900
Has flag LOOK_CR: no
@@ -22906,11 +22906,11 @@
2290622906
Has flag LOOK_INVALID: yes
2290722907
Has flag LOOK_ODD: no
2290822908
Has flag LOOK_SHORT: no}
2290922909
2291022910
utf-check 1510 utf-check-1510-3-90-0.jnk \
22911
-{File "%TEMP%/utf-check-1510-3-90-0.jnk" has 16392 bytes.
22911
+{File "%TEMP%/utf-check-1510-3-90-0.jnk" has 65544 bytes.
2291222912
Starts with UTF-8 BOM: no
2291322913
Starts with UTF-16 BOM: no
2291422914
Looks like UTF-8: no
2291522915
Has flag LOOK_NUL: yes
2291622916
Has flag LOOK_CR: no
@@ -22922,11 +22922,11 @@
2292222922
Has flag LOOK_INVALID: yes
2292322923
Has flag LOOK_ODD: no
2292422924
Has flag LOOK_SHORT: no}
2292522925
2292622926
utf-check 1511 utf-check-1511-3-90-1.jnk \
22927
-{File "%TEMP%/utf-check-1511-3-90-1.jnk" has 16393 bytes.
22927
+{File "%TEMP%/utf-check-1511-3-90-1.jnk" has 65545 bytes.
2292822928
Starts with UTF-8 BOM: no
2292922929
Starts with UTF-16 BOM: no
2293022930
Looks like UTF-8: no
2293122931
Has flag LOOK_NUL: yes
2293222932
Has flag LOOK_CR: no
@@ -22938,11 +22938,11 @@
2293822938
Has flag LOOK_INVALID: yes
2293922939
Has flag LOOK_ODD: no
2294022940
Has flag LOOK_SHORT: no}
2294122941
2294222942
utf-check 1512 utf-check-1512-3-91-0.jnk \
22943
-{File "%TEMP%/utf-check-1512-3-91-0.jnk" has 16394 bytes.
22943
+{File "%TEMP%/utf-check-1512-3-91-0.jnk" has 65546 bytes.
2294422944
Starts with UTF-8 BOM: no
2294522945
Starts with UTF-16 BOM: no
2294622946
Looks like UTF-8: no
2294722947
Has flag LOOK_NUL: yes
2294822948
Has flag LOOK_CR: no
@@ -22954,11 +22954,11 @@
2295422954
Has flag LOOK_INVALID: yes
2295522955
Has flag LOOK_ODD: no
2295622956
Has flag LOOK_SHORT: no}
2295722957
2295822958
utf-check 1513 utf-check-1513-3-91-1.jnk \
22959
-{File "%TEMP%/utf-check-1513-3-91-1.jnk" has 16395 bytes.
22959
+{File "%TEMP%/utf-check-1513-3-91-1.jnk" has 65547 bytes.
2296022960
Starts with UTF-8 BOM: no
2296122961
Starts with UTF-16 BOM: no
2296222962
Looks like UTF-8: no
2296322963
Has flag LOOK_NUL: yes
2296422964
Has flag LOOK_CR: no
@@ -22970,11 +22970,11 @@
2297022970
Has flag LOOK_INVALID: yes
2297122971
Has flag LOOK_ODD: no
2297222972
Has flag LOOK_SHORT: no}
2297322973
2297422974
utf-check 1514 utf-check-1514-3-92-0.jnk \
22975
-{File "%TEMP%/utf-check-1514-3-92-0.jnk" has 16396 bytes.
22975
+{File "%TEMP%/utf-check-1514-3-92-0.jnk" has 65572 bytes.
2297622976
Starts with UTF-8 BOM: no
2297722977
Starts with UTF-16 BOM: no
2297822978
Looks like UTF-8: no
2297922979
Has flag LOOK_NUL: yes
2298022980
Has flag LOOK_CR: no
@@ -22986,11 +22986,11 @@
2298622986
Has flag LOOK_INVALID: yes
2298722987
Has flag LOOK_ODD: no
2298822988
Has flag LOOK_SHORT: no}
2298922989
2299022990
utf-check 1515 utf-check-1515-3-92-1.jnk \
22991
-{File "%TEMP%/utf-check-1515-3-92-1.jnk" has 16397 bytes.
22991
+{File "%TEMP%/utf-check-1515-3-92-1.jnk" has 65573 bytes.
2299222992
Starts with UTF-8 BOM: no
2299322993
Starts with UTF-16 BOM: no
2299422994
Looks like UTF-8: no
2299522995
Has flag LOOK_NUL: yes
2299622996
Has flag LOOK_CR: no
@@ -23002,11 +23002,11 @@
2300223002
Has flag LOOK_INVALID: yes
2300323003
Has flag LOOK_ODD: no
2300423004
Has flag LOOK_SHORT: no}
2300523005
2300623006
utf-check 1516 utf-check-1516-3-93-0.jnk \
23007
-{File "%TEMP%/utf-check-1516-3-93-0.jnk" has 16398 bytes.
23007
+{File "%TEMP%/utf-check-1516-3-93-0.jnk" has 65574 bytes.
2300823008
Starts with UTF-8 BOM: no
2300923009
Starts with UTF-16 BOM: no
2301023010
Looks like UTF-8: no
2301123011
Has flag LOOK_NUL: yes
2301223012
Has flag LOOK_CR: no
@@ -23018,11 +23018,11 @@
2301823018
Has flag LOOK_INVALID: yes
2301923019
Has flag LOOK_ODD: no
2302023020
Has flag LOOK_SHORT: no}
2302123021
2302223022
utf-check 1517 utf-check-1517-3-93-1.jnk \
23023
-{File "%TEMP%/utf-check-1517-3-93-1.jnk" has 16399 bytes.
23023
+{File "%TEMP%/utf-check-1517-3-93-1.jnk" has 65575 bytes.
2302423024
Starts with UTF-8 BOM: no
2302523025
Starts with UTF-16 BOM: no
2302623026
Looks like UTF-8: no
2302723027
Has flag LOOK_NUL: yes
2302823028
Has flag LOOK_CR: no
@@ -23034,11 +23034,11 @@
2303423034
Has flag LOOK_INVALID: yes
2303523035
Has flag LOOK_ODD: no
2303623036
Has flag LOOK_SHORT: no}
2303723037
2303823038
utf-check 1518 utf-check-1518-3-94-0.jnk \
23039
-{File "%TEMP%/utf-check-1518-3-94-0.jnk" has 16398 bytes.
23039
+{File "%TEMP%/utf-check-1518-3-94-0.jnk" has 65574 bytes.
2304023040
Starts with UTF-8 BOM: no
2304123041
Starts with UTF-16 BOM: no
2304223042
Looks like UTF-8: no
2304323043
Has flag LOOK_NUL: yes
2304423044
Has flag LOOK_CR: no
@@ -23050,11 +23050,11 @@
2305023050
Has flag LOOK_INVALID: yes
2305123051
Has flag LOOK_ODD: no
2305223052
Has flag LOOK_SHORT: no}
2305323053
2305423054
utf-check 1519 utf-check-1519-3-94-1.jnk \
23055
-{File "%TEMP%/utf-check-1519-3-94-1.jnk" has 16399 bytes.
23055
+{File "%TEMP%/utf-check-1519-3-94-1.jnk" has 65575 bytes.
2305623056
Starts with UTF-8 BOM: no
2305723057
Starts with UTF-16 BOM: no
2305823058
Looks like UTF-8: no
2305923059
Has flag LOOK_NUL: yes
2306023060
Has flag LOOK_CR: no
@@ -23066,11 +23066,11 @@
2306623066
Has flag LOOK_INVALID: yes
2306723067
Has flag LOOK_ODD: no
2306823068
Has flag LOOK_SHORT: no}
2306923069
2307023070
utf-check 1520 utf-check-1520-3-95-0.jnk \
23071
-{File "%TEMP%/utf-check-1520-3-95-0.jnk" has 16400 bytes.
23071
+{File "%TEMP%/utf-check-1520-3-95-0.jnk" has 65576 bytes.
2307223072
Starts with UTF-8 BOM: no
2307323073
Starts with UTF-16 BOM: no
2307423074
Looks like UTF-8: no
2307523075
Has flag LOOK_NUL: yes
2307623076
Has flag LOOK_CR: no
@@ -23082,11 +23082,11 @@
2308223082
Has flag LOOK_INVALID: yes
2308323083
Has flag LOOK_ODD: no
2308423084
Has flag LOOK_SHORT: no}
2308523085
2308623086
utf-check 1521 utf-check-1521-3-95-1.jnk \
23087
-{File "%TEMP%/utf-check-1521-3-95-1.jnk" has 16401 bytes.
23087
+{File "%TEMP%/utf-check-1521-3-95-1.jnk" has 65577 bytes.
2308823088
Starts with UTF-8 BOM: no
2308923089
Starts with UTF-16 BOM: no
2309023090
Looks like UTF-8: no
2309123091
Has flag LOOK_NUL: yes
2309223092
Has flag LOOK_CR: no
@@ -23098,11 +23098,11 @@
2309823098
Has flag LOOK_INVALID: yes
2309923099
Has flag LOOK_ODD: no
2310023100
Has flag LOOK_SHORT: no}
2310123101
2310223102
utf-check 1522 utf-check-1522-3-96-0.jnk \
23103
-{File "%TEMP%/utf-check-1522-3-96-0.jnk" has 16390 bytes.
23103
+{File "%TEMP%/utf-check-1522-3-96-0.jnk" has 65542 bytes.
2310423104
Starts with UTF-8 BOM: no
2310523105
Starts with UTF-16 BOM: no
2310623106
Looks like UTF-8: no
2310723107
Has flag LOOK_NUL: yes
2310823108
Has flag LOOK_CR: no
@@ -23114,11 +23114,11 @@
2311423114
Has flag LOOK_INVALID: yes
2311523115
Has flag LOOK_ODD: no
2311623116
Has flag LOOK_SHORT: no}
2311723117
2311823118
utf-check 1523 utf-check-1523-3-96-1.jnk \
23119
-{File "%TEMP%/utf-check-1523-3-96-1.jnk" has 16391 bytes.
23119
+{File "%TEMP%/utf-check-1523-3-96-1.jnk" has 65543 bytes.
2312023120
Starts with UTF-8 BOM: no
2312123121
Starts with UTF-16 BOM: no
2312223122
Looks like UTF-8: no
2312323123
Has flag LOOK_NUL: yes
2312423124
Has flag LOOK_CR: no
@@ -23130,11 +23130,11 @@
2313023130
Has flag LOOK_INVALID: yes
2313123131
Has flag LOOK_ODD: no
2313223132
Has flag LOOK_SHORT: no}
2313323133
2313423134
utf-check 1524 utf-check-1524-3-97-0.jnk \
23135
-{File "%TEMP%/utf-check-1524-3-97-0.jnk" has 16392 bytes.
23135
+{File "%TEMP%/utf-check-1524-3-97-0.jnk" has 65544 bytes.
2313623136
Starts with UTF-8 BOM: no
2313723137
Starts with UTF-16 BOM: no
2313823138
Looks like UTF-8: no
2313923139
Has flag LOOK_NUL: yes
2314023140
Has flag LOOK_CR: no
@@ -23146,11 +23146,11 @@
2314623146
Has flag LOOK_INVALID: yes
2314723147
Has flag LOOK_ODD: no
2314823148
Has flag LOOK_SHORT: no}
2314923149
2315023150
utf-check 1525 utf-check-1525-3-97-1.jnk \
23151
-{File "%TEMP%/utf-check-1525-3-97-1.jnk" has 16393 bytes.
23151
+{File "%TEMP%/utf-check-1525-3-97-1.jnk" has 65545 bytes.
2315223152
Starts with UTF-8 BOM: no
2315323153
Starts with UTF-16 BOM: no
2315423154
Looks like UTF-8: no
2315523155
Has flag LOOK_NUL: yes
2315623156
Has flag LOOK_CR: no
@@ -23162,11 +23162,11 @@
2316223162
Has flag LOOK_INVALID: yes
2316323163
Has flag LOOK_ODD: no
2316423164
Has flag LOOK_SHORT: no}
2316523165
2316623166
utf-check 1526 utf-check-1526-3-98-0.jnk \
23167
-{File "%TEMP%/utf-check-1526-3-98-0.jnk" has 16392 bytes.
23167
+{File "%TEMP%/utf-check-1526-3-98-0.jnk" has 65544 bytes.
2316823168
Starts with UTF-8 BOM: no
2316923169
Starts with UTF-16 BOM: no
2317023170
Looks like UTF-8: no
2317123171
Has flag LOOK_NUL: yes
2317223172
Has flag LOOK_CR: no
@@ -23178,11 +23178,11 @@
2317823178
Has flag LOOK_INVALID: yes
2317923179
Has flag LOOK_ODD: no
2318023180
Has flag LOOK_SHORT: no}
2318123181
2318223182
utf-check 1527 utf-check-1527-3-98-1.jnk \
23183
-{File "%TEMP%/utf-check-1527-3-98-1.jnk" has 16393 bytes.
23183
+{File "%TEMP%/utf-check-1527-3-98-1.jnk" has 65545 bytes.
2318423184
Starts with UTF-8 BOM: no
2318523185
Starts with UTF-16 BOM: no
2318623186
Looks like UTF-8: no
2318723187
Has flag LOOK_NUL: yes
2318823188
Has flag LOOK_CR: no
@@ -23194,11 +23194,11 @@
2319423194
Has flag LOOK_INVALID: yes
2319523195
Has flag LOOK_ODD: no
2319623196
Has flag LOOK_SHORT: no}
2319723197
2319823198
utf-check 1528 utf-check-1528-3-99-0.jnk \
23199
-{File "%TEMP%/utf-check-1528-3-99-0.jnk" has 16394 bytes.
23199
+{File "%TEMP%/utf-check-1528-3-99-0.jnk" has 65546 bytes.
2320023200
Starts with UTF-8 BOM: no
2320123201
Starts with UTF-16 BOM: no
2320223202
Looks like UTF-8: no
2320323203
Has flag LOOK_NUL: yes
2320423204
Has flag LOOK_CR: no
@@ -23210,11 +23210,11 @@
2321023210
Has flag LOOK_INVALID: yes
2321123211
Has flag LOOK_ODD: no
2321223212
Has flag LOOK_SHORT: no}
2321323213
2321423214
utf-check 1529 utf-check-1529-3-99-1.jnk \
23215
-{File "%TEMP%/utf-check-1529-3-99-1.jnk" has 16395 bytes.
23215
+{File "%TEMP%/utf-check-1529-3-99-1.jnk" has 65547 bytes.
2321623216
Starts with UTF-8 BOM: no
2321723217
Starts with UTF-16 BOM: no
2321823218
Looks like UTF-8: no
2321923219
Has flag LOOK_NUL: yes
2322023220
Has flag LOOK_CR: no
@@ -23226,11 +23226,11 @@
2322623226
Has flag LOOK_INVALID: yes
2322723227
Has flag LOOK_ODD: no
2322823228
Has flag LOOK_SHORT: no}
2322923229
2323023230
utf-check 1530 utf-check-1530-3-100-0.jnk \
23231
-{File "%TEMP%/utf-check-1530-3-100-0.jnk" has 16396 bytes.
23231
+{File "%TEMP%/utf-check-1530-3-100-0.jnk" has 65572 bytes.
2323223232
Starts with UTF-8 BOM: no
2323323233
Starts with UTF-16 BOM: no
2323423234
Looks like UTF-8: no
2323523235
Has flag LOOK_NUL: yes
2323623236
Has flag LOOK_CR: no
@@ -23242,11 +23242,11 @@
2324223242
Has flag LOOK_INVALID: yes
2324323243
Has flag LOOK_ODD: no
2324423244
Has flag LOOK_SHORT: no}
2324523245
2324623246
utf-check 1531 utf-check-1531-3-100-1.jnk \
23247
-{File "%TEMP%/utf-check-1531-3-100-1.jnk" has 16397 bytes.
23247
+{File "%TEMP%/utf-check-1531-3-100-1.jnk" has 65573 bytes.
2324823248
Starts with UTF-8 BOM: no
2324923249
Starts with UTF-16 BOM: no
2325023250
Looks like UTF-8: no
2325123251
Has flag LOOK_NUL: yes
2325223252
Has flag LOOK_CR: no
@@ -23258,11 +23258,11 @@
2325823258
Has flag LOOK_INVALID: yes
2325923259
Has flag LOOK_ODD: no
2326023260
Has flag LOOK_SHORT: no}
2326123261
2326223262
utf-check 1532 utf-check-1532-3-101-0.jnk \
23263
-{File "%TEMP%/utf-check-1532-3-101-0.jnk" has 16398 bytes.
23263
+{File "%TEMP%/utf-check-1532-3-101-0.jnk" has 65574 bytes.
2326423264
Starts with UTF-8 BOM: no
2326523265
Starts with UTF-16 BOM: no
2326623266
Looks like UTF-8: no
2326723267
Has flag LOOK_NUL: yes
2326823268
Has flag LOOK_CR: no
@@ -23274,11 +23274,11 @@
2327423274
Has flag LOOK_INVALID: yes
2327523275
Has flag LOOK_ODD: no
2327623276
Has flag LOOK_SHORT: no}
2327723277
2327823278
utf-check 1533 utf-check-1533-3-101-1.jnk \
23279
-{File "%TEMP%/utf-check-1533-3-101-1.jnk" has 16399 bytes.
23279
+{File "%TEMP%/utf-check-1533-3-101-1.jnk" has 65575 bytes.
2328023280
Starts with UTF-8 BOM: no
2328123281
Starts with UTF-16 BOM: no
2328223282
Looks like UTF-8: no
2328323283
Has flag LOOK_NUL: yes
2328423284
Has flag LOOK_CR: no
@@ -23290,11 +23290,11 @@
2329023290
Has flag LOOK_INVALID: yes
2329123291
Has flag LOOK_ODD: no
2329223292
Has flag LOOK_SHORT: no}
2329323293
2329423294
utf-check 1534 utf-check-1534-3-102-0.jnk \
23295
-{File "%TEMP%/utf-check-1534-3-102-0.jnk" has 16398 bytes.
23295
+{File "%TEMP%/utf-check-1534-3-102-0.jnk" has 65574 bytes.
2329623296
Starts with UTF-8 BOM: no
2329723297
Starts with UTF-16 BOM: no
2329823298
Looks like UTF-8: no
2329923299
Has flag LOOK_NUL: yes
2330023300
Has flag LOOK_CR: no
@@ -23306,11 +23306,11 @@
2330623306
Has flag LOOK_INVALID: yes
2330723307
Has flag LOOK_ODD: no
2330823308
Has flag LOOK_SHORT: no}
2330923309
2331023310
utf-check 1535 utf-check-1535-3-102-1.jnk \
23311
-{File "%TEMP%/utf-check-1535-3-102-1.jnk" has 16399 bytes.
23311
+{File "%TEMP%/utf-check-1535-3-102-1.jnk" has 65575 bytes.
2331223312
Starts with UTF-8 BOM: no
2331323313
Starts with UTF-16 BOM: no
2331423314
Looks like UTF-8: no
2331523315
Has flag LOOK_NUL: yes
2331623316
Has flag LOOK_CR: no
@@ -23322,11 +23322,11 @@
2332223322
Has flag LOOK_INVALID: yes
2332323323
Has flag LOOK_ODD: no
2332423324
Has flag LOOK_SHORT: no}
2332523325
2332623326
utf-check 1536 utf-check-1536-3-103-0.jnk \
23327
-{File "%TEMP%/utf-check-1536-3-103-0.jnk" has 16400 bytes.
23327
+{File "%TEMP%/utf-check-1536-3-103-0.jnk" has 65576 bytes.
2332823328
Starts with UTF-8 BOM: no
2332923329
Starts with UTF-16 BOM: no
2333023330
Looks like UTF-8: no
2333123331
Has flag LOOK_NUL: yes
2333223332
Has flag LOOK_CR: no
@@ -23338,11 +23338,11 @@
2333823338
Has flag LOOK_INVALID: yes
2333923339
Has flag LOOK_ODD: no
2334023340
Has flag LOOK_SHORT: no}
2334123341
2334223342
utf-check 1537 utf-check-1537-3-103-1.jnk \
23343
-{File "%TEMP%/utf-check-1537-3-103-1.jnk" has 16401 bytes.
23343
+{File "%TEMP%/utf-check-1537-3-103-1.jnk" has 65577 bytes.
2334423344
Starts with UTF-8 BOM: no
2334523345
Starts with UTF-16 BOM: no
2334623346
Looks like UTF-8: no
2334723347
Has flag LOOK_NUL: yes
2334823348
Has flag LOOK_CR: no
@@ -23354,11 +23354,11 @@
2335423354
Has flag LOOK_INVALID: yes
2335523355
Has flag LOOK_ODD: no
2335623356
Has flag LOOK_SHORT: no}
2335723357
2335823358
utf-check 1538 utf-check-1538-3-104-0.jnk \
23359
-{File "%TEMP%/utf-check-1538-3-104-0.jnk" has 16392 bytes.
23359
+{File "%TEMP%/utf-check-1538-3-104-0.jnk" has 65544 bytes.
2336023360
Starts with UTF-8 BOM: no
2336123361
Starts with UTF-16 BOM: no
2336223362
Looks like UTF-8: no
2336323363
Has flag LOOK_NUL: yes
2336423364
Has flag LOOK_CR: no
@@ -23370,11 +23370,11 @@
2337023370
Has flag LOOK_INVALID: yes
2337123371
Has flag LOOK_ODD: no
2337223372
Has flag LOOK_SHORT: no}
2337323373
2337423374
utf-check 1539 utf-check-1539-3-104-1.jnk \
23375
-{File "%TEMP%/utf-check-1539-3-104-1.jnk" has 16393 bytes.
23375
+{File "%TEMP%/utf-check-1539-3-104-1.jnk" has 65545 bytes.
2337623376
Starts with UTF-8 BOM: no
2337723377
Starts with UTF-16 BOM: no
2337823378
Looks like UTF-8: no
2337923379
Has flag LOOK_NUL: yes
2338023380
Has flag LOOK_CR: no
@@ -23386,11 +23386,11 @@
2338623386
Has flag LOOK_INVALID: yes
2338723387
Has flag LOOK_ODD: no
2338823388
Has flag LOOK_SHORT: no}
2338923389
2339023390
utf-check 1540 utf-check-1540-3-105-0.jnk \
23391
-{File "%TEMP%/utf-check-1540-3-105-0.jnk" has 16394 bytes.
23391
+{File "%TEMP%/utf-check-1540-3-105-0.jnk" has 65546 bytes.
2339223392
Starts with UTF-8 BOM: no
2339323393
Starts with UTF-16 BOM: no
2339423394
Looks like UTF-8: no
2339523395
Has flag LOOK_NUL: yes
2339623396
Has flag LOOK_CR: no
@@ -23402,11 +23402,11 @@
2340223402
Has flag LOOK_INVALID: yes
2340323403
Has flag LOOK_ODD: no
2340423404
Has flag LOOK_SHORT: no}
2340523405
2340623406
utf-check 1541 utf-check-1541-3-105-1.jnk \
23407
-{File "%TEMP%/utf-check-1541-3-105-1.jnk" has 16395 bytes.
23407
+{File "%TEMP%/utf-check-1541-3-105-1.jnk" has 65547 bytes.
2340823408
Starts with UTF-8 BOM: no
2340923409
Starts with UTF-16 BOM: no
2341023410
Looks like UTF-8: no
2341123411
Has flag LOOK_NUL: yes
2341223412
Has flag LOOK_CR: no
@@ -23418,11 +23418,11 @@
2341823418
Has flag LOOK_INVALID: yes
2341923419
Has flag LOOK_ODD: no
2342023420
Has flag LOOK_SHORT: no}
2342123421
2342223422
utf-check 1542 utf-check-1542-3-106-0.jnk \
23423
-{File "%TEMP%/utf-check-1542-3-106-0.jnk" has 16394 bytes.
23423
+{File "%TEMP%/utf-check-1542-3-106-0.jnk" has 65546 bytes.
2342423424
Starts with UTF-8 BOM: no
2342523425
Starts with UTF-16 BOM: no
2342623426
Looks like UTF-8: no
2342723427
Has flag LOOK_NUL: yes
2342823428
Has flag LOOK_CR: no
@@ -23434,11 +23434,11 @@
2343423434
Has flag LOOK_INVALID: yes
2343523435
Has flag LOOK_ODD: no
2343623436
Has flag LOOK_SHORT: no}
2343723437
2343823438
utf-check 1543 utf-check-1543-3-106-1.jnk \
23439
-{File "%TEMP%/utf-check-1543-3-106-1.jnk" has 16395 bytes.
23439
+{File "%TEMP%/utf-check-1543-3-106-1.jnk" has 65547 bytes.
2344023440
Starts with UTF-8 BOM: no
2344123441
Starts with UTF-16 BOM: no
2344223442
Looks like UTF-8: no
2344323443
Has flag LOOK_NUL: yes
2344423444
Has flag LOOK_CR: no
@@ -23450,11 +23450,11 @@
2345023450
Has flag LOOK_INVALID: yes
2345123451
Has flag LOOK_ODD: no
2345223452
Has flag LOOK_SHORT: no}
2345323453
2345423454
utf-check 1544 utf-check-1544-3-107-0.jnk \
23455
-{File "%TEMP%/utf-check-1544-3-107-0.jnk" has 16396 bytes.
23455
+{File "%TEMP%/utf-check-1544-3-107-0.jnk" has 65548 bytes.
2345623456
Starts with UTF-8 BOM: no
2345723457
Starts with UTF-16 BOM: no
2345823458
Looks like UTF-8: no
2345923459
Has flag LOOK_NUL: yes
2346023460
Has flag LOOK_CR: no
@@ -23466,11 +23466,11 @@
2346623466
Has flag LOOK_INVALID: yes
2346723467
Has flag LOOK_ODD: no
2346823468
Has flag LOOK_SHORT: no}
2346923469
2347023470
utf-check 1545 utf-check-1545-3-107-1.jnk \
23471
-{File "%TEMP%/utf-check-1545-3-107-1.jnk" has 16397 bytes.
23471
+{File "%TEMP%/utf-check-1545-3-107-1.jnk" has 65549 bytes.
2347223472
Starts with UTF-8 BOM: no
2347323473
Starts with UTF-16 BOM: no
2347423474
Looks like UTF-8: no
2347523475
Has flag LOOK_NUL: yes
2347623476
Has flag LOOK_CR: no
@@ -23482,11 +23482,11 @@
2348223482
Has flag LOOK_INVALID: yes
2348323483
Has flag LOOK_ODD: no
2348423484
Has flag LOOK_SHORT: no}
2348523485
2348623486
utf-check 1546 utf-check-1546-3-108-0.jnk \
23487
-{File "%TEMP%/utf-check-1546-3-108-0.jnk" has 16398 bytes.
23487
+{File "%TEMP%/utf-check-1546-3-108-0.jnk" has 65574 bytes.
2348823488
Starts with UTF-8 BOM: no
2348923489
Starts with UTF-16 BOM: no
2349023490
Looks like UTF-8: no
2349123491
Has flag LOOK_NUL: yes
2349223492
Has flag LOOK_CR: no
@@ -23498,11 +23498,11 @@
2349823498
Has flag LOOK_INVALID: yes
2349923499
Has flag LOOK_ODD: no
2350023500
Has flag LOOK_SHORT: no}
2350123501
2350223502
utf-check 1547 utf-check-1547-3-108-1.jnk \
23503
-{File "%TEMP%/utf-check-1547-3-108-1.jnk" has 16399 bytes.
23503
+{File "%TEMP%/utf-check-1547-3-108-1.jnk" has 65575 bytes.
2350423504
Starts with UTF-8 BOM: no
2350523505
Starts with UTF-16 BOM: no
2350623506
Looks like UTF-8: no
2350723507
Has flag LOOK_NUL: yes
2350823508
Has flag LOOK_CR: no
@@ -23514,11 +23514,11 @@
2351423514
Has flag LOOK_INVALID: yes
2351523515
Has flag LOOK_ODD: no
2351623516
Has flag LOOK_SHORT: no}
2351723517
2351823518
utf-check 1548 utf-check-1548-3-109-0.jnk \
23519
-{File "%TEMP%/utf-check-1548-3-109-0.jnk" has 16400 bytes.
23519
+{File "%TEMP%/utf-check-1548-3-109-0.jnk" has 65576 bytes.
2352023520
Starts with UTF-8 BOM: no
2352123521
Starts with UTF-16 BOM: no
2352223522
Looks like UTF-8: no
2352323523
Has flag LOOK_NUL: yes
2352423524
Has flag LOOK_CR: no
@@ -23530,11 +23530,11 @@
2353023530
Has flag LOOK_INVALID: yes
2353123531
Has flag LOOK_ODD: no
2353223532
Has flag LOOK_SHORT: no}
2353323533
2353423534
utf-check 1549 utf-check-1549-3-109-1.jnk \
23535
-{File "%TEMP%/utf-check-1549-3-109-1.jnk" has 16401 bytes.
23535
+{File "%TEMP%/utf-check-1549-3-109-1.jnk" has 65577 bytes.
2353623536
Starts with UTF-8 BOM: no
2353723537
Starts with UTF-16 BOM: no
2353823538
Looks like UTF-8: no
2353923539
Has flag LOOK_NUL: yes
2354023540
Has flag LOOK_CR: no
@@ -23546,11 +23546,11 @@
2354623546
Has flag LOOK_INVALID: yes
2354723547
Has flag LOOK_ODD: no
2354823548
Has flag LOOK_SHORT: no}
2354923549
2355023550
utf-check 1550 utf-check-1550-3-110-0.jnk \
23551
-{File "%TEMP%/utf-check-1550-3-110-0.jnk" has 16400 bytes.
23551
+{File "%TEMP%/utf-check-1550-3-110-0.jnk" has 65576 bytes.
2355223552
Starts with UTF-8 BOM: no
2355323553
Starts with UTF-16 BOM: no
2355423554
Looks like UTF-8: no
2355523555
Has flag LOOK_NUL: yes
2355623556
Has flag LOOK_CR: no
@@ -23562,11 +23562,11 @@
2356223562
Has flag LOOK_INVALID: yes
2356323563
Has flag LOOK_ODD: no
2356423564
Has flag LOOK_SHORT: no}
2356523565
2356623566
utf-check 1551 utf-check-1551-3-110-1.jnk \
23567
-{File "%TEMP%/utf-check-1551-3-110-1.jnk" has 16401 bytes.
23567
+{File "%TEMP%/utf-check-1551-3-110-1.jnk" has 65577 bytes.
2356823568
Starts with UTF-8 BOM: no
2356923569
Starts with UTF-16 BOM: no
2357023570
Looks like UTF-8: no
2357123571
Has flag LOOK_NUL: yes
2357223572
Has flag LOOK_CR: no
@@ -23578,11 +23578,11 @@
2357823578
Has flag LOOK_INVALID: yes
2357923579
Has flag LOOK_ODD: no
2358023580
Has flag LOOK_SHORT: no}
2358123581
2358223582
utf-check 1552 utf-check-1552-3-111-0.jnk \
23583
-{File "%TEMP%/utf-check-1552-3-111-0.jnk" has 16402 bytes.
23583
+{File "%TEMP%/utf-check-1552-3-111-0.jnk" has 65578 bytes.
2358423584
Starts with UTF-8 BOM: no
2358523585
Starts with UTF-16 BOM: no
2358623586
Looks like UTF-8: no
2358723587
Has flag LOOK_NUL: yes
2358823588
Has flag LOOK_CR: no
@@ -23594,11 +23594,11 @@
2359423594
Has flag LOOK_INVALID: yes
2359523595
Has flag LOOK_ODD: no
2359623596
Has flag LOOK_SHORT: no}
2359723597
2359823598
utf-check 1553 utf-check-1553-3-111-1.jnk \
23599
-{File "%TEMP%/utf-check-1553-3-111-1.jnk" has 16403 bytes.
23599
+{File "%TEMP%/utf-check-1553-3-111-1.jnk" has 65579 bytes.
2360023600
Starts with UTF-8 BOM: no
2360123601
Starts with UTF-16 BOM: no
2360223602
Looks like UTF-8: no
2360323603
Has flag LOOK_NUL: yes
2360423604
Has flag LOOK_CR: no
2360523605
--- test/utf.test
+++ test/utf.test
@@ -141,42 +141,42 @@
141 75 [appendArgs \x00 ABCD\x00\n] \
142 76 [appendArgs \x00 A\x00\r\n] \
143 77 [appendArgs \x00 AB\x00\r\n] \
144 78 [appendArgs \x00 ABC\x00\r\n] \
145 79 [appendArgs \x00 ABCD\x00\r\n] \
146 80 [string repeat A 8193] \
147 81 [string repeat A 8193]\r \
148 82 [string repeat A 8193]\n \
149 83 [string repeat A 8193]\r\n \
150 84 [string repeat ABCD 2049] \
151 85 [string repeat ABCD 2049]\r \
152 86 [string repeat ABCD 2049]\n \
153 87 [string repeat ABCD 2049]\r\n \
154 88 \x00[string repeat A 8193] \
155 89 \x00[string repeat A 8193]\r \
156 90 \x00[string repeat A 8193]\n \
157 91 \x00[string repeat A 8193]\r\n \
158 92 \x00[string repeat ABCD 2049] \
159 93 \x00[string repeat ABCD 2049]\r \
160 94 \x00[string repeat ABCD 2049]\n \
161 95 \x00[string repeat ABCD 2049]\r\n \
162 96 [string repeat A 8193]\x00 \
163 97 [string repeat A 8193]\x00\r \
164 98 [string repeat A 8193]\x00\n \
165 99 [string repeat A 8193]\x00\r\n \
166 100 [string repeat ABCD 2049]\x00 \
167 101 [string repeat ABCD 2049]\x00\r \
168 102 [string repeat ABCD 2049]\x00\n \
169 103 [string repeat ABCD 2049]\x00\r\n \
170 104 \x00[string repeat A 8193]\x00 \
171 105 \x00[string repeat A 8193]\x00\r \
172 106 \x00[string repeat A 8193]\x00\n \
173 107 \x00[string repeat A 8193]\x00\r\n \
174 108 \x00[string repeat ABCD 2049]\x00 \
175 109 \x00[string repeat ABCD 2049]\x00\r \
176 110 \x00[string repeat ABCD 2049]\x00\n \
177 111 \x00[string repeat ABCD 2049]\x00\r\n \
178 112 \u000A\u000D \
179 113 \u0A00\u0D00 \
180 114 \u000D\u000A \
181 115 \u0D00\u0A00 \
182 116 \x00\u000A\u000D \
@@ -2906,11 +2906,11 @@
2906 Has flag LOOK_INVALID: no
2907 Has flag LOOK_ODD: no
2908 Has flag LOOK_SHORT: no}
2909
2910 utf-check 260 utf-check-260-0-80-0.jnk \
2911 {File "%TEMP%/utf-check-260-0-80-0.jnk" has 8193 bytes.
2912 Starts with UTF-8 BOM: no
2913 Starts with UTF-16 BOM: no
2914 Looks like UTF-8: no
2915 Has flag LOOK_NUL: no
2916 Has flag LOOK_CR: no
@@ -2922,11 +2922,11 @@
2922 Has flag LOOK_INVALID: no
2923 Has flag LOOK_ODD: no
2924 Has flag LOOK_SHORT: no}
2925
2926 utf-check 261 utf-check-261-0-80-1.jnk \
2927 {File "%TEMP%/utf-check-261-0-80-1.jnk" has 8194 bytes.
2928 Starts with UTF-8 BOM: no
2929 Starts with UTF-16 BOM: no
2930 Looks like UTF-8: no
2931 Has flag LOOK_NUL: no
2932 Has flag LOOK_CR: no
@@ -2938,11 +2938,11 @@
2938 Has flag LOOK_INVALID: no
2939 Has flag LOOK_ODD: no
2940 Has flag LOOK_SHORT: no}
2941
2942 utf-check 262 utf-check-262-0-81-0.jnk \
2943 {File "%TEMP%/utf-check-262-0-81-0.jnk" has 8194 bytes.
2944 Starts with UTF-8 BOM: no
2945 Starts with UTF-16 BOM: no
2946 Looks like UTF-8: no
2947 Has flag LOOK_NUL: no
2948 Has flag LOOK_CR: yes
@@ -2954,11 +2954,11 @@
2954 Has flag LOOK_INVALID: no
2955 Has flag LOOK_ODD: no
2956 Has flag LOOK_SHORT: no}
2957
2958 utf-check 263 utf-check-263-0-81-1.jnk \
2959 {File "%TEMP%/utf-check-263-0-81-1.jnk" has 8195 bytes.
2960 Starts with UTF-8 BOM: no
2961 Starts with UTF-16 BOM: no
2962 Looks like UTF-8: no
2963 Has flag LOOK_NUL: no
2964 Has flag LOOK_CR: yes
@@ -2970,11 +2970,11 @@
2970 Has flag LOOK_INVALID: no
2971 Has flag LOOK_ODD: no
2972 Has flag LOOK_SHORT: no}
2973
2974 utf-check 264 utf-check-264-0-82-0.jnk \
2975 {File "%TEMP%/utf-check-264-0-82-0.jnk" has 8194 bytes.
2976 Starts with UTF-8 BOM: no
2977 Starts with UTF-16 BOM: no
2978 Looks like UTF-8: no
2979 Has flag LOOK_NUL: no
2980 Has flag LOOK_CR: no
@@ -2986,11 +2986,11 @@
2986 Has flag LOOK_INVALID: no
2987 Has flag LOOK_ODD: no
2988 Has flag LOOK_SHORT: no}
2989
2990 utf-check 265 utf-check-265-0-82-1.jnk \
2991 {File "%TEMP%/utf-check-265-0-82-1.jnk" has 8195 bytes.
2992 Starts with UTF-8 BOM: no
2993 Starts with UTF-16 BOM: no
2994 Looks like UTF-8: no
2995 Has flag LOOK_NUL: no
2996 Has flag LOOK_CR: no
@@ -3002,11 +3002,11 @@
3002 Has flag LOOK_INVALID: no
3003 Has flag LOOK_ODD: no
3004 Has flag LOOK_SHORT: no}
3005
3006 utf-check 266 utf-check-266-0-83-0.jnk \
3007 {File "%TEMP%/utf-check-266-0-83-0.jnk" has 8195 bytes.
3008 Starts with UTF-8 BOM: no
3009 Starts with UTF-16 BOM: no
3010 Looks like UTF-8: no
3011 Has flag LOOK_NUL: no
3012 Has flag LOOK_CR: yes
@@ -3018,11 +3018,11 @@
3018 Has flag LOOK_INVALID: no
3019 Has flag LOOK_ODD: no
3020 Has flag LOOK_SHORT: no}
3021
3022 utf-check 267 utf-check-267-0-83-1.jnk \
3023 {File "%TEMP%/utf-check-267-0-83-1.jnk" has 8196 bytes.
3024 Starts with UTF-8 BOM: no
3025 Starts with UTF-16 BOM: no
3026 Looks like UTF-8: no
3027 Has flag LOOK_NUL: no
3028 Has flag LOOK_CR: yes
@@ -3034,11 +3034,11 @@
3034 Has flag LOOK_INVALID: no
3035 Has flag LOOK_ODD: no
3036 Has flag LOOK_SHORT: no}
3037
3038 utf-check 268 utf-check-268-0-84-0.jnk \
3039 {File "%TEMP%/utf-check-268-0-84-0.jnk" has 8196 bytes.
3040 Starts with UTF-8 BOM: no
3041 Starts with UTF-16 BOM: no
3042 Looks like UTF-8: no
3043 Has flag LOOK_NUL: no
3044 Has flag LOOK_CR: no
@@ -3050,11 +3050,11 @@
3050 Has flag LOOK_INVALID: no
3051 Has flag LOOK_ODD: no
3052 Has flag LOOK_SHORT: no}
3053
3054 utf-check 269 utf-check-269-0-84-1.jnk \
3055 {File "%TEMP%/utf-check-269-0-84-1.jnk" has 8197 bytes.
3056 Starts with UTF-8 BOM: no
3057 Starts with UTF-16 BOM: no
3058 Looks like UTF-8: no
3059 Has flag LOOK_NUL: no
3060 Has flag LOOK_CR: no
@@ -3066,11 +3066,11 @@
3066 Has flag LOOK_INVALID: no
3067 Has flag LOOK_ODD: no
3068 Has flag LOOK_SHORT: no}
3069
3070 utf-check 270 utf-check-270-0-85-0.jnk \
3071 {File "%TEMP%/utf-check-270-0-85-0.jnk" has 8197 bytes.
3072 Starts with UTF-8 BOM: no
3073 Starts with UTF-16 BOM: no
3074 Looks like UTF-8: no
3075 Has flag LOOK_NUL: no
3076 Has flag LOOK_CR: yes
@@ -3082,11 +3082,11 @@
3082 Has flag LOOK_INVALID: no
3083 Has flag LOOK_ODD: no
3084 Has flag LOOK_SHORT: no}
3085
3086 utf-check 271 utf-check-271-0-85-1.jnk \
3087 {File "%TEMP%/utf-check-271-0-85-1.jnk" has 8198 bytes.
3088 Starts with UTF-8 BOM: no
3089 Starts with UTF-16 BOM: no
3090 Looks like UTF-8: no
3091 Has flag LOOK_NUL: no
3092 Has flag LOOK_CR: yes
@@ -3098,11 +3098,11 @@
3098 Has flag LOOK_INVALID: no
3099 Has flag LOOK_ODD: no
3100 Has flag LOOK_SHORT: no}
3101
3102 utf-check 272 utf-check-272-0-86-0.jnk \
3103 {File "%TEMP%/utf-check-272-0-86-0.jnk" has 8197 bytes.
3104 Starts with UTF-8 BOM: no
3105 Starts with UTF-16 BOM: no
3106 Looks like UTF-8: no
3107 Has flag LOOK_NUL: no
3108 Has flag LOOK_CR: no
@@ -3114,11 +3114,11 @@
3114 Has flag LOOK_INVALID: no
3115 Has flag LOOK_ODD: no
3116 Has flag LOOK_SHORT: no}
3117
3118 utf-check 273 utf-check-273-0-86-1.jnk \
3119 {File "%TEMP%/utf-check-273-0-86-1.jnk" has 8198 bytes.
3120 Starts with UTF-8 BOM: no
3121 Starts with UTF-16 BOM: no
3122 Looks like UTF-8: no
3123 Has flag LOOK_NUL: no
3124 Has flag LOOK_CR: no
@@ -3130,11 +3130,11 @@
3130 Has flag LOOK_INVALID: no
3131 Has flag LOOK_ODD: no
3132 Has flag LOOK_SHORT: no}
3133
3134 utf-check 274 utf-check-274-0-87-0.jnk \
3135 {File "%TEMP%/utf-check-274-0-87-0.jnk" has 8198 bytes.
3136 Starts with UTF-8 BOM: no
3137 Starts with UTF-16 BOM: no
3138 Looks like UTF-8: no
3139 Has flag LOOK_NUL: no
3140 Has flag LOOK_CR: yes
@@ -3146,11 +3146,11 @@
3146 Has flag LOOK_INVALID: no
3147 Has flag LOOK_ODD: no
3148 Has flag LOOK_SHORT: no}
3149
3150 utf-check 275 utf-check-275-0-87-1.jnk \
3151 {File "%TEMP%/utf-check-275-0-87-1.jnk" has 8199 bytes.
3152 Starts with UTF-8 BOM: no
3153 Starts with UTF-16 BOM: no
3154 Looks like UTF-8: no
3155 Has flag LOOK_NUL: no
3156 Has flag LOOK_CR: yes
@@ -3162,11 +3162,11 @@
3162 Has flag LOOK_INVALID: no
3163 Has flag LOOK_ODD: no
3164 Has flag LOOK_SHORT: no}
3165
3166 utf-check 276 utf-check-276-0-88-0.jnk \
3167 {File "%TEMP%/utf-check-276-0-88-0.jnk" has 8194 bytes.
3168 Starts with UTF-8 BOM: no
3169 Starts with UTF-16 BOM: no
3170 Looks like UTF-8: no
3171 Has flag LOOK_NUL: yes
3172 Has flag LOOK_CR: no
@@ -3178,11 +3178,11 @@
3178 Has flag LOOK_INVALID: no
3179 Has flag LOOK_ODD: no
3180 Has flag LOOK_SHORT: no}
3181
3182 utf-check 277 utf-check-277-0-88-1.jnk \
3183 {File "%TEMP%/utf-check-277-0-88-1.jnk" has 8195 bytes.
3184 Starts with UTF-8 BOM: no
3185 Starts with UTF-16 BOM: no
3186 Looks like UTF-8: no
3187 Has flag LOOK_NUL: yes
3188 Has flag LOOK_CR: no
@@ -3194,11 +3194,11 @@
3194 Has flag LOOK_INVALID: no
3195 Has flag LOOK_ODD: no
3196 Has flag LOOK_SHORT: no}
3197
3198 utf-check 278 utf-check-278-0-89-0.jnk \
3199 {File "%TEMP%/utf-check-278-0-89-0.jnk" has 8195 bytes.
3200 Starts with UTF-8 BOM: no
3201 Starts with UTF-16 BOM: no
3202 Looks like UTF-8: no
3203 Has flag LOOK_NUL: yes
3204 Has flag LOOK_CR: yes
@@ -3210,11 +3210,11 @@
3210 Has flag LOOK_INVALID: no
3211 Has flag LOOK_ODD: no
3212 Has flag LOOK_SHORT: no}
3213
3214 utf-check 279 utf-check-279-0-89-1.jnk \
3215 {File "%TEMP%/utf-check-279-0-89-1.jnk" has 8196 bytes.
3216 Starts with UTF-8 BOM: no
3217 Starts with UTF-16 BOM: no
3218 Looks like UTF-8: no
3219 Has flag LOOK_NUL: yes
3220 Has flag LOOK_CR: yes
@@ -3226,11 +3226,11 @@
3226 Has flag LOOK_INVALID: no
3227 Has flag LOOK_ODD: no
3228 Has flag LOOK_SHORT: no}
3229
3230 utf-check 280 utf-check-280-0-90-0.jnk \
3231 {File "%TEMP%/utf-check-280-0-90-0.jnk" has 8195 bytes.
3232 Starts with UTF-8 BOM: no
3233 Starts with UTF-16 BOM: no
3234 Looks like UTF-8: no
3235 Has flag LOOK_NUL: yes
3236 Has flag LOOK_CR: no
@@ -3242,11 +3242,11 @@
3242 Has flag LOOK_INVALID: no
3243 Has flag LOOK_ODD: no
3244 Has flag LOOK_SHORT: no}
3245
3246 utf-check 281 utf-check-281-0-90-1.jnk \
3247 {File "%TEMP%/utf-check-281-0-90-1.jnk" has 8196 bytes.
3248 Starts with UTF-8 BOM: no
3249 Starts with UTF-16 BOM: no
3250 Looks like UTF-8: no
3251 Has flag LOOK_NUL: yes
3252 Has flag LOOK_CR: no
@@ -3258,11 +3258,11 @@
3258 Has flag LOOK_INVALID: no
3259 Has flag LOOK_ODD: no
3260 Has flag LOOK_SHORT: no}
3261
3262 utf-check 282 utf-check-282-0-91-0.jnk \
3263 {File "%TEMP%/utf-check-282-0-91-0.jnk" has 8196 bytes.
3264 Starts with UTF-8 BOM: no
3265 Starts with UTF-16 BOM: no
3266 Looks like UTF-8: no
3267 Has flag LOOK_NUL: yes
3268 Has flag LOOK_CR: yes
@@ -3274,11 +3274,11 @@
3274 Has flag LOOK_INVALID: no
3275 Has flag LOOK_ODD: no
3276 Has flag LOOK_SHORT: no}
3277
3278 utf-check 283 utf-check-283-0-91-1.jnk \
3279 {File "%TEMP%/utf-check-283-0-91-1.jnk" has 8197 bytes.
3280 Starts with UTF-8 BOM: no
3281 Starts with UTF-16 BOM: no
3282 Looks like UTF-8: no
3283 Has flag LOOK_NUL: yes
3284 Has flag LOOK_CR: yes
@@ -3290,11 +3290,11 @@
3290 Has flag LOOK_INVALID: no
3291 Has flag LOOK_ODD: no
3292 Has flag LOOK_SHORT: no}
3293
3294 utf-check 284 utf-check-284-0-92-0.jnk \
3295 {File "%TEMP%/utf-check-284-0-92-0.jnk" has 8197 bytes.
3296 Starts with UTF-8 BOM: no
3297 Starts with UTF-16 BOM: no
3298 Looks like UTF-8: no
3299 Has flag LOOK_NUL: yes
3300 Has flag LOOK_CR: no
@@ -3306,11 +3306,11 @@
3306 Has flag LOOK_INVALID: no
3307 Has flag LOOK_ODD: no
3308 Has flag LOOK_SHORT: no}
3309
3310 utf-check 285 utf-check-285-0-92-1.jnk \
3311 {File "%TEMP%/utf-check-285-0-92-1.jnk" has 8198 bytes.
3312 Starts with UTF-8 BOM: no
3313 Starts with UTF-16 BOM: no
3314 Looks like UTF-8: no
3315 Has flag LOOK_NUL: yes
3316 Has flag LOOK_CR: no
@@ -3322,11 +3322,11 @@
3322 Has flag LOOK_INVALID: no
3323 Has flag LOOK_ODD: no
3324 Has flag LOOK_SHORT: no}
3325
3326 utf-check 286 utf-check-286-0-93-0.jnk \
3327 {File "%TEMP%/utf-check-286-0-93-0.jnk" has 8198 bytes.
3328 Starts with UTF-8 BOM: no
3329 Starts with UTF-16 BOM: no
3330 Looks like UTF-8: no
3331 Has flag LOOK_NUL: yes
3332 Has flag LOOK_CR: yes
@@ -3338,11 +3338,11 @@
3338 Has flag LOOK_INVALID: no
3339 Has flag LOOK_ODD: no
3340 Has flag LOOK_SHORT: no}
3341
3342 utf-check 287 utf-check-287-0-93-1.jnk \
3343 {File "%TEMP%/utf-check-287-0-93-1.jnk" has 8199 bytes.
3344 Starts with UTF-8 BOM: no
3345 Starts with UTF-16 BOM: no
3346 Looks like UTF-8: no
3347 Has flag LOOK_NUL: yes
3348 Has flag LOOK_CR: yes
@@ -3354,11 +3354,11 @@
3354 Has flag LOOK_INVALID: no
3355 Has flag LOOK_ODD: no
3356 Has flag LOOK_SHORT: no}
3357
3358 utf-check 288 utf-check-288-0-94-0.jnk \
3359 {File "%TEMP%/utf-check-288-0-94-0.jnk" has 8198 bytes.
3360 Starts with UTF-8 BOM: no
3361 Starts with UTF-16 BOM: no
3362 Looks like UTF-8: no
3363 Has flag LOOK_NUL: yes
3364 Has flag LOOK_CR: no
@@ -3370,11 +3370,11 @@
3370 Has flag LOOK_INVALID: no
3371 Has flag LOOK_ODD: no
3372 Has flag LOOK_SHORT: no}
3373
3374 utf-check 289 utf-check-289-0-94-1.jnk \
3375 {File "%TEMP%/utf-check-289-0-94-1.jnk" has 8199 bytes.
3376 Starts with UTF-8 BOM: no
3377 Starts with UTF-16 BOM: no
3378 Looks like UTF-8: no
3379 Has flag LOOK_NUL: yes
3380 Has flag LOOK_CR: no
@@ -3386,11 +3386,11 @@
3386 Has flag LOOK_INVALID: no
3387 Has flag LOOK_ODD: no
3388 Has flag LOOK_SHORT: no}
3389
3390 utf-check 290 utf-check-290-0-95-0.jnk \
3391 {File "%TEMP%/utf-check-290-0-95-0.jnk" has 8199 bytes.
3392 Starts with UTF-8 BOM: no
3393 Starts with UTF-16 BOM: no
3394 Looks like UTF-8: no
3395 Has flag LOOK_NUL: yes
3396 Has flag LOOK_CR: yes
@@ -3402,11 +3402,11 @@
3402 Has flag LOOK_INVALID: no
3403 Has flag LOOK_ODD: no
3404 Has flag LOOK_SHORT: no}
3405
3406 utf-check 291 utf-check-291-0-95-1.jnk \
3407 {File "%TEMP%/utf-check-291-0-95-1.jnk" has 8200 bytes.
3408 Starts with UTF-8 BOM: no
3409 Starts with UTF-16 BOM: no
3410 Looks like UTF-8: no
3411 Has flag LOOK_NUL: yes
3412 Has flag LOOK_CR: yes
@@ -3418,11 +3418,11 @@
3418 Has flag LOOK_INVALID: no
3419 Has flag LOOK_ODD: no
3420 Has flag LOOK_SHORT: no}
3421
3422 utf-check 292 utf-check-292-0-96-0.jnk \
3423 {File "%TEMP%/utf-check-292-0-96-0.jnk" has 8194 bytes.
3424 Starts with UTF-8 BOM: no
3425 Starts with UTF-16 BOM: no
3426 Looks like UTF-8: no
3427 Has flag LOOK_NUL: yes
3428 Has flag LOOK_CR: no
@@ -3434,11 +3434,11 @@
3434 Has flag LOOK_INVALID: no
3435 Has flag LOOK_ODD: no
3436 Has flag LOOK_SHORT: no}
3437
3438 utf-check 293 utf-check-293-0-96-1.jnk \
3439 {File "%TEMP%/utf-check-293-0-96-1.jnk" has 8195 bytes.
3440 Starts with UTF-8 BOM: no
3441 Starts with UTF-16 BOM: no
3442 Looks like UTF-8: no
3443 Has flag LOOK_NUL: yes
3444 Has flag LOOK_CR: no
@@ -3450,11 +3450,11 @@
3450 Has flag LOOK_INVALID: no
3451 Has flag LOOK_ODD: no
3452 Has flag LOOK_SHORT: no}
3453
3454 utf-check 294 utf-check-294-0-97-0.jnk \
3455 {File "%TEMP%/utf-check-294-0-97-0.jnk" has 8195 bytes.
3456 Starts with UTF-8 BOM: no
3457 Starts with UTF-16 BOM: no
3458 Looks like UTF-8: no
3459 Has flag LOOK_NUL: yes
3460 Has flag LOOK_CR: yes
@@ -3466,11 +3466,11 @@
3466 Has flag LOOK_INVALID: no
3467 Has flag LOOK_ODD: no
3468 Has flag LOOK_SHORT: no}
3469
3470 utf-check 295 utf-check-295-0-97-1.jnk \
3471 {File "%TEMP%/utf-check-295-0-97-1.jnk" has 8196 bytes.
3472 Starts with UTF-8 BOM: no
3473 Starts with UTF-16 BOM: no
3474 Looks like UTF-8: no
3475 Has flag LOOK_NUL: yes
3476 Has flag LOOK_CR: yes
@@ -3482,11 +3482,11 @@
3482 Has flag LOOK_INVALID: no
3483 Has flag LOOK_ODD: no
3484 Has flag LOOK_SHORT: no}
3485
3486 utf-check 296 utf-check-296-0-98-0.jnk \
3487 {File "%TEMP%/utf-check-296-0-98-0.jnk" has 8195 bytes.
3488 Starts with UTF-8 BOM: no
3489 Starts with UTF-16 BOM: no
3490 Looks like UTF-8: no
3491 Has flag LOOK_NUL: yes
3492 Has flag LOOK_CR: no
@@ -3498,11 +3498,11 @@
3498 Has flag LOOK_INVALID: no
3499 Has flag LOOK_ODD: no
3500 Has flag LOOK_SHORT: no}
3501
3502 utf-check 297 utf-check-297-0-98-1.jnk \
3503 {File "%TEMP%/utf-check-297-0-98-1.jnk" has 8196 bytes.
3504 Starts with UTF-8 BOM: no
3505 Starts with UTF-16 BOM: no
3506 Looks like UTF-8: no
3507 Has flag LOOK_NUL: yes
3508 Has flag LOOK_CR: no
@@ -3514,11 +3514,11 @@
3514 Has flag LOOK_INVALID: no
3515 Has flag LOOK_ODD: no
3516 Has flag LOOK_SHORT: no}
3517
3518 utf-check 298 utf-check-298-0-99-0.jnk \
3519 {File "%TEMP%/utf-check-298-0-99-0.jnk" has 8196 bytes.
3520 Starts with UTF-8 BOM: no
3521 Starts with UTF-16 BOM: no
3522 Looks like UTF-8: no
3523 Has flag LOOK_NUL: yes
3524 Has flag LOOK_CR: yes
@@ -3530,11 +3530,11 @@
3530 Has flag LOOK_INVALID: no
3531 Has flag LOOK_ODD: no
3532 Has flag LOOK_SHORT: no}
3533
3534 utf-check 299 utf-check-299-0-99-1.jnk \
3535 {File "%TEMP%/utf-check-299-0-99-1.jnk" has 8197 bytes.
3536 Starts with UTF-8 BOM: no
3537 Starts with UTF-16 BOM: no
3538 Looks like UTF-8: no
3539 Has flag LOOK_NUL: yes
3540 Has flag LOOK_CR: yes
@@ -3546,11 +3546,11 @@
3546 Has flag LOOK_INVALID: no
3547 Has flag LOOK_ODD: no
3548 Has flag LOOK_SHORT: no}
3549
3550 utf-check 300 utf-check-300-0-100-0.jnk \
3551 {File "%TEMP%/utf-check-300-0-100-0.jnk" has 8197 bytes.
3552 Starts with UTF-8 BOM: no
3553 Starts with UTF-16 BOM: no
3554 Looks like UTF-8: no
3555 Has flag LOOK_NUL: yes
3556 Has flag LOOK_CR: no
@@ -3562,11 +3562,11 @@
3562 Has flag LOOK_INVALID: no
3563 Has flag LOOK_ODD: no
3564 Has flag LOOK_SHORT: no}
3565
3566 utf-check 301 utf-check-301-0-100-1.jnk \
3567 {File "%TEMP%/utf-check-301-0-100-1.jnk" has 8198 bytes.
3568 Starts with UTF-8 BOM: no
3569 Starts with UTF-16 BOM: no
3570 Looks like UTF-8: no
3571 Has flag LOOK_NUL: yes
3572 Has flag LOOK_CR: no
@@ -3578,11 +3578,11 @@
3578 Has flag LOOK_INVALID: no
3579 Has flag LOOK_ODD: no
3580 Has flag LOOK_SHORT: no}
3581
3582 utf-check 302 utf-check-302-0-101-0.jnk \
3583 {File "%TEMP%/utf-check-302-0-101-0.jnk" has 8198 bytes.
3584 Starts with UTF-8 BOM: no
3585 Starts with UTF-16 BOM: no
3586 Looks like UTF-8: no
3587 Has flag LOOK_NUL: yes
3588 Has flag LOOK_CR: yes
@@ -3594,11 +3594,11 @@
3594 Has flag LOOK_INVALID: no
3595 Has flag LOOK_ODD: no
3596 Has flag LOOK_SHORT: no}
3597
3598 utf-check 303 utf-check-303-0-101-1.jnk \
3599 {File "%TEMP%/utf-check-303-0-101-1.jnk" has 8199 bytes.
3600 Starts with UTF-8 BOM: no
3601 Starts with UTF-16 BOM: no
3602 Looks like UTF-8: no
3603 Has flag LOOK_NUL: yes
3604 Has flag LOOK_CR: yes
@@ -3610,11 +3610,11 @@
3610 Has flag LOOK_INVALID: no
3611 Has flag LOOK_ODD: no
3612 Has flag LOOK_SHORT: no}
3613
3614 utf-check 304 utf-check-304-0-102-0.jnk \
3615 {File "%TEMP%/utf-check-304-0-102-0.jnk" has 8198 bytes.
3616 Starts with UTF-8 BOM: no
3617 Starts with UTF-16 BOM: no
3618 Looks like UTF-8: no
3619 Has flag LOOK_NUL: yes
3620 Has flag LOOK_CR: no
@@ -3626,11 +3626,11 @@
3626 Has flag LOOK_INVALID: no
3627 Has flag LOOK_ODD: no
3628 Has flag LOOK_SHORT: no}
3629
3630 utf-check 305 utf-check-305-0-102-1.jnk \
3631 {File "%TEMP%/utf-check-305-0-102-1.jnk" has 8199 bytes.
3632 Starts with UTF-8 BOM: no
3633 Starts with UTF-16 BOM: no
3634 Looks like UTF-8: no
3635 Has flag LOOK_NUL: yes
3636 Has flag LOOK_CR: no
@@ -3642,11 +3642,11 @@
3642 Has flag LOOK_INVALID: no
3643 Has flag LOOK_ODD: no
3644 Has flag LOOK_SHORT: no}
3645
3646 utf-check 306 utf-check-306-0-103-0.jnk \
3647 {File "%TEMP%/utf-check-306-0-103-0.jnk" has 8199 bytes.
3648 Starts with UTF-8 BOM: no
3649 Starts with UTF-16 BOM: no
3650 Looks like UTF-8: no
3651 Has flag LOOK_NUL: yes
3652 Has flag LOOK_CR: yes
@@ -3658,11 +3658,11 @@
3658 Has flag LOOK_INVALID: no
3659 Has flag LOOK_ODD: no
3660 Has flag LOOK_SHORT: no}
3661
3662 utf-check 307 utf-check-307-0-103-1.jnk \
3663 {File "%TEMP%/utf-check-307-0-103-1.jnk" has 8200 bytes.
3664 Starts with UTF-8 BOM: no
3665 Starts with UTF-16 BOM: no
3666 Looks like UTF-8: no
3667 Has flag LOOK_NUL: yes
3668 Has flag LOOK_CR: yes
@@ -3674,11 +3674,11 @@
3674 Has flag LOOK_INVALID: no
3675 Has flag LOOK_ODD: no
3676 Has flag LOOK_SHORT: no}
3677
3678 utf-check 308 utf-check-308-0-104-0.jnk \
3679 {File "%TEMP%/utf-check-308-0-104-0.jnk" has 8195 bytes.
3680 Starts with UTF-8 BOM: no
3681 Starts with UTF-16 BOM: no
3682 Looks like UTF-8: no
3683 Has flag LOOK_NUL: yes
3684 Has flag LOOK_CR: no
@@ -3690,11 +3690,11 @@
3690 Has flag LOOK_INVALID: no
3691 Has flag LOOK_ODD: no
3692 Has flag LOOK_SHORT: no}
3693
3694 utf-check 309 utf-check-309-0-104-1.jnk \
3695 {File "%TEMP%/utf-check-309-0-104-1.jnk" has 8196 bytes.
3696 Starts with UTF-8 BOM: no
3697 Starts with UTF-16 BOM: no
3698 Looks like UTF-8: no
3699 Has flag LOOK_NUL: yes
3700 Has flag LOOK_CR: no
@@ -3706,11 +3706,11 @@
3706 Has flag LOOK_INVALID: no
3707 Has flag LOOK_ODD: no
3708 Has flag LOOK_SHORT: no}
3709
3710 utf-check 310 utf-check-310-0-105-0.jnk \
3711 {File "%TEMP%/utf-check-310-0-105-0.jnk" has 8196 bytes.
3712 Starts with UTF-8 BOM: no
3713 Starts with UTF-16 BOM: no
3714 Looks like UTF-8: no
3715 Has flag LOOK_NUL: yes
3716 Has flag LOOK_CR: yes
@@ -3722,11 +3722,11 @@
3722 Has flag LOOK_INVALID: no
3723 Has flag LOOK_ODD: no
3724 Has flag LOOK_SHORT: no}
3725
3726 utf-check 311 utf-check-311-0-105-1.jnk \
3727 {File "%TEMP%/utf-check-311-0-105-1.jnk" has 8197 bytes.
3728 Starts with UTF-8 BOM: no
3729 Starts with UTF-16 BOM: no
3730 Looks like UTF-8: no
3731 Has flag LOOK_NUL: yes
3732 Has flag LOOK_CR: yes
@@ -3738,11 +3738,11 @@
3738 Has flag LOOK_INVALID: no
3739 Has flag LOOK_ODD: no
3740 Has flag LOOK_SHORT: no}
3741
3742 utf-check 312 utf-check-312-0-106-0.jnk \
3743 {File "%TEMP%/utf-check-312-0-106-0.jnk" has 8196 bytes.
3744 Starts with UTF-8 BOM: no
3745 Starts with UTF-16 BOM: no
3746 Looks like UTF-8: no
3747 Has flag LOOK_NUL: yes
3748 Has flag LOOK_CR: no
@@ -3754,11 +3754,11 @@
3754 Has flag LOOK_INVALID: no
3755 Has flag LOOK_ODD: no
3756 Has flag LOOK_SHORT: no}
3757
3758 utf-check 313 utf-check-313-0-106-1.jnk \
3759 {File "%TEMP%/utf-check-313-0-106-1.jnk" has 8197 bytes.
3760 Starts with UTF-8 BOM: no
3761 Starts with UTF-16 BOM: no
3762 Looks like UTF-8: no
3763 Has flag LOOK_NUL: yes
3764 Has flag LOOK_CR: no
@@ -3770,11 +3770,11 @@
3770 Has flag LOOK_INVALID: no
3771 Has flag LOOK_ODD: no
3772 Has flag LOOK_SHORT: no}
3773
3774 utf-check 314 utf-check-314-0-107-0.jnk \
3775 {File "%TEMP%/utf-check-314-0-107-0.jnk" has 8197 bytes.
3776 Starts with UTF-8 BOM: no
3777 Starts with UTF-16 BOM: no
3778 Looks like UTF-8: no
3779 Has flag LOOK_NUL: yes
3780 Has flag LOOK_CR: yes
@@ -3786,11 +3786,11 @@
3786 Has flag LOOK_INVALID: no
3787 Has flag LOOK_ODD: no
3788 Has flag LOOK_SHORT: no}
3789
3790 utf-check 315 utf-check-315-0-107-1.jnk \
3791 {File "%TEMP%/utf-check-315-0-107-1.jnk" has 8198 bytes.
3792 Starts with UTF-8 BOM: no
3793 Starts with UTF-16 BOM: no
3794 Looks like UTF-8: no
3795 Has flag LOOK_NUL: yes
3796 Has flag LOOK_CR: yes
@@ -3802,11 +3802,11 @@
3802 Has flag LOOK_INVALID: no
3803 Has flag LOOK_ODD: no
3804 Has flag LOOK_SHORT: no}
3805
3806 utf-check 316 utf-check-316-0-108-0.jnk \
3807 {File "%TEMP%/utf-check-316-0-108-0.jnk" has 8198 bytes.
3808 Starts with UTF-8 BOM: no
3809 Starts with UTF-16 BOM: no
3810 Looks like UTF-8: no
3811 Has flag LOOK_NUL: yes
3812 Has flag LOOK_CR: no
@@ -3818,11 +3818,11 @@
3818 Has flag LOOK_INVALID: no
3819 Has flag LOOK_ODD: no
3820 Has flag LOOK_SHORT: no}
3821
3822 utf-check 317 utf-check-317-0-108-1.jnk \
3823 {File "%TEMP%/utf-check-317-0-108-1.jnk" has 8199 bytes.
3824 Starts with UTF-8 BOM: no
3825 Starts with UTF-16 BOM: no
3826 Looks like UTF-8: no
3827 Has flag LOOK_NUL: yes
3828 Has flag LOOK_CR: no
@@ -3834,11 +3834,11 @@
3834 Has flag LOOK_INVALID: no
3835 Has flag LOOK_ODD: no
3836 Has flag LOOK_SHORT: no}
3837
3838 utf-check 318 utf-check-318-0-109-0.jnk \
3839 {File "%TEMP%/utf-check-318-0-109-0.jnk" has 8199 bytes.
3840 Starts with UTF-8 BOM: no
3841 Starts with UTF-16 BOM: no
3842 Looks like UTF-8: no
3843 Has flag LOOK_NUL: yes
3844 Has flag LOOK_CR: yes
@@ -3850,11 +3850,11 @@
3850 Has flag LOOK_INVALID: no
3851 Has flag LOOK_ODD: no
3852 Has flag LOOK_SHORT: no}
3853
3854 utf-check 319 utf-check-319-0-109-1.jnk \
3855 {File "%TEMP%/utf-check-319-0-109-1.jnk" has 8200 bytes.
3856 Starts with UTF-8 BOM: no
3857 Starts with UTF-16 BOM: no
3858 Looks like UTF-8: no
3859 Has flag LOOK_NUL: yes
3860 Has flag LOOK_CR: yes
@@ -3866,11 +3866,11 @@
3866 Has flag LOOK_INVALID: no
3867 Has flag LOOK_ODD: no
3868 Has flag LOOK_SHORT: no}
3869
3870 utf-check 320 utf-check-320-0-110-0.jnk \
3871 {File "%TEMP%/utf-check-320-0-110-0.jnk" has 8199 bytes.
3872 Starts with UTF-8 BOM: no
3873 Starts with UTF-16 BOM: no
3874 Looks like UTF-8: no
3875 Has flag LOOK_NUL: yes
3876 Has flag LOOK_CR: no
@@ -3882,11 +3882,11 @@
3882 Has flag LOOK_INVALID: no
3883 Has flag LOOK_ODD: no
3884 Has flag LOOK_SHORT: no}
3885
3886 utf-check 321 utf-check-321-0-110-1.jnk \
3887 {File "%TEMP%/utf-check-321-0-110-1.jnk" has 8200 bytes.
3888 Starts with UTF-8 BOM: no
3889 Starts with UTF-16 BOM: no
3890 Looks like UTF-8: no
3891 Has flag LOOK_NUL: yes
3892 Has flag LOOK_CR: no
@@ -3898,11 +3898,11 @@
3898 Has flag LOOK_INVALID: no
3899 Has flag LOOK_ODD: no
3900 Has flag LOOK_SHORT: no}
3901
3902 utf-check 322 utf-check-322-0-111-0.jnk \
3903 {File "%TEMP%/utf-check-322-0-111-0.jnk" has 8200 bytes.
3904 Starts with UTF-8 BOM: no
3905 Starts with UTF-16 BOM: no
3906 Looks like UTF-8: no
3907 Has flag LOOK_NUL: yes
3908 Has flag LOOK_CR: yes
@@ -3914,11 +3914,11 @@
3914 Has flag LOOK_INVALID: no
3915 Has flag LOOK_ODD: no
3916 Has flag LOOK_SHORT: no}
3917
3918 utf-check 323 utf-check-323-0-111-1.jnk \
3919 {File "%TEMP%/utf-check-323-0-111-1.jnk" has 8201 bytes.
3920 Starts with UTF-8 BOM: no
3921 Starts with UTF-16 BOM: no
3922 Looks like UTF-8: no
3923 Has flag LOOK_NUL: yes
3924 Has flag LOOK_CR: yes
@@ -9466,11 +9466,11 @@
9466 Has flag LOOK_INVALID: no
9467 Has flag LOOK_ODD: no
9468 Has flag LOOK_SHORT: no}
9469
9470 utf-check 670 utf-check-670-1-80-0.jnk \
9471 {File "%TEMP%/utf-check-670-1-80-0.jnk" has 8196 bytes.
9472 Starts with UTF-8 BOM: yes
9473 Starts with UTF-16 BOM: no
9474 Looks like UTF-8: no
9475 Has flag LOOK_NUL: no
9476 Has flag LOOK_CR: no
@@ -9482,11 +9482,11 @@
9482 Has flag LOOK_INVALID: no
9483 Has flag LOOK_ODD: no
9484 Has flag LOOK_SHORT: no}
9485
9486 utf-check 671 utf-check-671-1-80-1.jnk \
9487 {File "%TEMP%/utf-check-671-1-80-1.jnk" has 8197 bytes.
9488 Starts with UTF-8 BOM: yes
9489 Starts with UTF-16 BOM: no
9490 Looks like UTF-8: no
9491 Has flag LOOK_NUL: no
9492 Has flag LOOK_CR: no
@@ -9498,11 +9498,11 @@
9498 Has flag LOOK_INVALID: no
9499 Has flag LOOK_ODD: no
9500 Has flag LOOK_SHORT: no}
9501
9502 utf-check 672 utf-check-672-1-81-0.jnk \
9503 {File "%TEMP%/utf-check-672-1-81-0.jnk" has 8197 bytes.
9504 Starts with UTF-8 BOM: yes
9505 Starts with UTF-16 BOM: no
9506 Looks like UTF-8: no
9507 Has flag LOOK_NUL: no
9508 Has flag LOOK_CR: yes
@@ -9514,11 +9514,11 @@
9514 Has flag LOOK_INVALID: no
9515 Has flag LOOK_ODD: no
9516 Has flag LOOK_SHORT: no}
9517
9518 utf-check 673 utf-check-673-1-81-1.jnk \
9519 {File "%TEMP%/utf-check-673-1-81-1.jnk" has 8198 bytes.
9520 Starts with UTF-8 BOM: yes
9521 Starts with UTF-16 BOM: no
9522 Looks like UTF-8: no
9523 Has flag LOOK_NUL: no
9524 Has flag LOOK_CR: yes
@@ -9530,11 +9530,11 @@
9530 Has flag LOOK_INVALID: no
9531 Has flag LOOK_ODD: no
9532 Has flag LOOK_SHORT: no}
9533
9534 utf-check 674 utf-check-674-1-82-0.jnk \
9535 {File "%TEMP%/utf-check-674-1-82-0.jnk" has 8197 bytes.
9536 Starts with UTF-8 BOM: yes
9537 Starts with UTF-16 BOM: no
9538 Looks like UTF-8: no
9539 Has flag LOOK_NUL: no
9540 Has flag LOOK_CR: no
@@ -9546,11 +9546,11 @@
9546 Has flag LOOK_INVALID: no
9547 Has flag LOOK_ODD: no
9548 Has flag LOOK_SHORT: no}
9549
9550 utf-check 675 utf-check-675-1-82-1.jnk \
9551 {File "%TEMP%/utf-check-675-1-82-1.jnk" has 8198 bytes.
9552 Starts with UTF-8 BOM: yes
9553 Starts with UTF-16 BOM: no
9554 Looks like UTF-8: no
9555 Has flag LOOK_NUL: no
9556 Has flag LOOK_CR: no
@@ -9562,11 +9562,11 @@
9562 Has flag LOOK_INVALID: no
9563 Has flag LOOK_ODD: no
9564 Has flag LOOK_SHORT: no}
9565
9566 utf-check 676 utf-check-676-1-83-0.jnk \
9567 {File "%TEMP%/utf-check-676-1-83-0.jnk" has 8198 bytes.
9568 Starts with UTF-8 BOM: yes
9569 Starts with UTF-16 BOM: no
9570 Looks like UTF-8: no
9571 Has flag LOOK_NUL: no
9572 Has flag LOOK_CR: yes
@@ -9578,11 +9578,11 @@
9578 Has flag LOOK_INVALID: no
9579 Has flag LOOK_ODD: no
9580 Has flag LOOK_SHORT: no}
9581
9582 utf-check 677 utf-check-677-1-83-1.jnk \
9583 {File "%TEMP%/utf-check-677-1-83-1.jnk" has 8199 bytes.
9584 Starts with UTF-8 BOM: yes
9585 Starts with UTF-16 BOM: no
9586 Looks like UTF-8: no
9587 Has flag LOOK_NUL: no
9588 Has flag LOOK_CR: yes
@@ -9594,11 +9594,11 @@
9594 Has flag LOOK_INVALID: no
9595 Has flag LOOK_ODD: no
9596 Has flag LOOK_SHORT: no}
9597
9598 utf-check 678 utf-check-678-1-84-0.jnk \
9599 {File "%TEMP%/utf-check-678-1-84-0.jnk" has 8199 bytes.
9600 Starts with UTF-8 BOM: yes
9601 Starts with UTF-16 BOM: no
9602 Looks like UTF-8: no
9603 Has flag LOOK_NUL: no
9604 Has flag LOOK_CR: no
@@ -9610,11 +9610,11 @@
9610 Has flag LOOK_INVALID: no
9611 Has flag LOOK_ODD: no
9612 Has flag LOOK_SHORT: no}
9613
9614 utf-check 679 utf-check-679-1-84-1.jnk \
9615 {File "%TEMP%/utf-check-679-1-84-1.jnk" has 8200 bytes.
9616 Starts with UTF-8 BOM: yes
9617 Starts with UTF-16 BOM: no
9618 Looks like UTF-8: no
9619 Has flag LOOK_NUL: no
9620 Has flag LOOK_CR: no
@@ -9626,11 +9626,11 @@
9626 Has flag LOOK_INVALID: no
9627 Has flag LOOK_ODD: no
9628 Has flag LOOK_SHORT: no}
9629
9630 utf-check 680 utf-check-680-1-85-0.jnk \
9631 {File "%TEMP%/utf-check-680-1-85-0.jnk" has 8200 bytes.
9632 Starts with UTF-8 BOM: yes
9633 Starts with UTF-16 BOM: no
9634 Looks like UTF-8: no
9635 Has flag LOOK_NUL: no
9636 Has flag LOOK_CR: yes
@@ -9642,11 +9642,11 @@
9642 Has flag LOOK_INVALID: no
9643 Has flag LOOK_ODD: no
9644 Has flag LOOK_SHORT: no}
9645
9646 utf-check 681 utf-check-681-1-85-1.jnk \
9647 {File "%TEMP%/utf-check-681-1-85-1.jnk" has 8201 bytes.
9648 Starts with UTF-8 BOM: yes
9649 Starts with UTF-16 BOM: no
9650 Looks like UTF-8: no
9651 Has flag LOOK_NUL: no
9652 Has flag LOOK_CR: yes
@@ -9658,11 +9658,11 @@
9658 Has flag LOOK_INVALID: no
9659 Has flag LOOK_ODD: no
9660 Has flag LOOK_SHORT: no}
9661
9662 utf-check 682 utf-check-682-1-86-0.jnk \
9663 {File "%TEMP%/utf-check-682-1-86-0.jnk" has 8200 bytes.
9664 Starts with UTF-8 BOM: yes
9665 Starts with UTF-16 BOM: no
9666 Looks like UTF-8: no
9667 Has flag LOOK_NUL: no
9668 Has flag LOOK_CR: no
@@ -9674,11 +9674,11 @@
9674 Has flag LOOK_INVALID: no
9675 Has flag LOOK_ODD: no
9676 Has flag LOOK_SHORT: no}
9677
9678 utf-check 683 utf-check-683-1-86-1.jnk \
9679 {File "%TEMP%/utf-check-683-1-86-1.jnk" has 8201 bytes.
9680 Starts with UTF-8 BOM: yes
9681 Starts with UTF-16 BOM: no
9682 Looks like UTF-8: no
9683 Has flag LOOK_NUL: no
9684 Has flag LOOK_CR: no
@@ -9690,11 +9690,11 @@
9690 Has flag LOOK_INVALID: no
9691 Has flag LOOK_ODD: no
9692 Has flag LOOK_SHORT: no}
9693
9694 utf-check 684 utf-check-684-1-87-0.jnk \
9695 {File "%TEMP%/utf-check-684-1-87-0.jnk" has 8201 bytes.
9696 Starts with UTF-8 BOM: yes
9697 Starts with UTF-16 BOM: no
9698 Looks like UTF-8: no
9699 Has flag LOOK_NUL: no
9700 Has flag LOOK_CR: yes
@@ -9706,11 +9706,11 @@
9706 Has flag LOOK_INVALID: no
9707 Has flag LOOK_ODD: no
9708 Has flag LOOK_SHORT: no}
9709
9710 utf-check 685 utf-check-685-1-87-1.jnk \
9711 {File "%TEMP%/utf-check-685-1-87-1.jnk" has 8202 bytes.
9712 Starts with UTF-8 BOM: yes
9713 Starts with UTF-16 BOM: no
9714 Looks like UTF-8: no
9715 Has flag LOOK_NUL: no
9716 Has flag LOOK_CR: yes
@@ -9722,11 +9722,11 @@
9722 Has flag LOOK_INVALID: no
9723 Has flag LOOK_ODD: no
9724 Has flag LOOK_SHORT: no}
9725
9726 utf-check 686 utf-check-686-1-88-0.jnk \
9727 {File "%TEMP%/utf-check-686-1-88-0.jnk" has 8197 bytes.
9728 Starts with UTF-8 BOM: yes
9729 Starts with UTF-16 BOM: no
9730 Looks like UTF-8: no
9731 Has flag LOOK_NUL: yes
9732 Has flag LOOK_CR: no
@@ -9738,11 +9738,11 @@
9738 Has flag LOOK_INVALID: no
9739 Has flag LOOK_ODD: no
9740 Has flag LOOK_SHORT: no}
9741
9742 utf-check 687 utf-check-687-1-88-1.jnk \
9743 {File "%TEMP%/utf-check-687-1-88-1.jnk" has 8198 bytes.
9744 Starts with UTF-8 BOM: yes
9745 Starts with UTF-16 BOM: no
9746 Looks like UTF-8: no
9747 Has flag LOOK_NUL: yes
9748 Has flag LOOK_CR: no
@@ -9754,11 +9754,11 @@
9754 Has flag LOOK_INVALID: no
9755 Has flag LOOK_ODD: no
9756 Has flag LOOK_SHORT: no}
9757
9758 utf-check 688 utf-check-688-1-89-0.jnk \
9759 {File "%TEMP%/utf-check-688-1-89-0.jnk" has 8198 bytes.
9760 Starts with UTF-8 BOM: yes
9761 Starts with UTF-16 BOM: no
9762 Looks like UTF-8: no
9763 Has flag LOOK_NUL: yes
9764 Has flag LOOK_CR: yes
@@ -9770,11 +9770,11 @@
9770 Has flag LOOK_INVALID: no
9771 Has flag LOOK_ODD: no
9772 Has flag LOOK_SHORT: no}
9773
9774 utf-check 689 utf-check-689-1-89-1.jnk \
9775 {File "%TEMP%/utf-check-689-1-89-1.jnk" has 8199 bytes.
9776 Starts with UTF-8 BOM: yes
9777 Starts with UTF-16 BOM: no
9778 Looks like UTF-8: no
9779 Has flag LOOK_NUL: yes
9780 Has flag LOOK_CR: yes
@@ -9786,11 +9786,11 @@
9786 Has flag LOOK_INVALID: no
9787 Has flag LOOK_ODD: no
9788 Has flag LOOK_SHORT: no}
9789
9790 utf-check 690 utf-check-690-1-90-0.jnk \
9791 {File "%TEMP%/utf-check-690-1-90-0.jnk" has 8198 bytes.
9792 Starts with UTF-8 BOM: yes
9793 Starts with UTF-16 BOM: no
9794 Looks like UTF-8: no
9795 Has flag LOOK_NUL: yes
9796 Has flag LOOK_CR: no
@@ -9802,11 +9802,11 @@
9802 Has flag LOOK_INVALID: no
9803 Has flag LOOK_ODD: no
9804 Has flag LOOK_SHORT: no}
9805
9806 utf-check 691 utf-check-691-1-90-1.jnk \
9807 {File "%TEMP%/utf-check-691-1-90-1.jnk" has 8199 bytes.
9808 Starts with UTF-8 BOM: yes
9809 Starts with UTF-16 BOM: no
9810 Looks like UTF-8: no
9811 Has flag LOOK_NUL: yes
9812 Has flag LOOK_CR: no
@@ -9818,11 +9818,11 @@
9818 Has flag LOOK_INVALID: no
9819 Has flag LOOK_ODD: no
9820 Has flag LOOK_SHORT: no}
9821
9822 utf-check 692 utf-check-692-1-91-0.jnk \
9823 {File "%TEMP%/utf-check-692-1-91-0.jnk" has 8199 bytes.
9824 Starts with UTF-8 BOM: yes
9825 Starts with UTF-16 BOM: no
9826 Looks like UTF-8: no
9827 Has flag LOOK_NUL: yes
9828 Has flag LOOK_CR: yes
@@ -9834,11 +9834,11 @@
9834 Has flag LOOK_INVALID: no
9835 Has flag LOOK_ODD: no
9836 Has flag LOOK_SHORT: no}
9837
9838 utf-check 693 utf-check-693-1-91-1.jnk \
9839 {File "%TEMP%/utf-check-693-1-91-1.jnk" has 8200 bytes.
9840 Starts with UTF-8 BOM: yes
9841 Starts with UTF-16 BOM: no
9842 Looks like UTF-8: no
9843 Has flag LOOK_NUL: yes
9844 Has flag LOOK_CR: yes
@@ -9850,11 +9850,11 @@
9850 Has flag LOOK_INVALID: no
9851 Has flag LOOK_ODD: no
9852 Has flag LOOK_SHORT: no}
9853
9854 utf-check 694 utf-check-694-1-92-0.jnk \
9855 {File "%TEMP%/utf-check-694-1-92-0.jnk" has 8200 bytes.
9856 Starts with UTF-8 BOM: yes
9857 Starts with UTF-16 BOM: no
9858 Looks like UTF-8: no
9859 Has flag LOOK_NUL: yes
9860 Has flag LOOK_CR: no
@@ -9866,11 +9866,11 @@
9866 Has flag LOOK_INVALID: no
9867 Has flag LOOK_ODD: no
9868 Has flag LOOK_SHORT: no}
9869
9870 utf-check 695 utf-check-695-1-92-1.jnk \
9871 {File "%TEMP%/utf-check-695-1-92-1.jnk" has 8201 bytes.
9872 Starts with UTF-8 BOM: yes
9873 Starts with UTF-16 BOM: no
9874 Looks like UTF-8: no
9875 Has flag LOOK_NUL: yes
9876 Has flag LOOK_CR: no
@@ -9882,11 +9882,11 @@
9882 Has flag LOOK_INVALID: no
9883 Has flag LOOK_ODD: no
9884 Has flag LOOK_SHORT: no}
9885
9886 utf-check 696 utf-check-696-1-93-0.jnk \
9887 {File "%TEMP%/utf-check-696-1-93-0.jnk" has 8201 bytes.
9888 Starts with UTF-8 BOM: yes
9889 Starts with UTF-16 BOM: no
9890 Looks like UTF-8: no
9891 Has flag LOOK_NUL: yes
9892 Has flag LOOK_CR: yes
@@ -9898,11 +9898,11 @@
9898 Has flag LOOK_INVALID: no
9899 Has flag LOOK_ODD: no
9900 Has flag LOOK_SHORT: no}
9901
9902 utf-check 697 utf-check-697-1-93-1.jnk \
9903 {File "%TEMP%/utf-check-697-1-93-1.jnk" has 8202 bytes.
9904 Starts with UTF-8 BOM: yes
9905 Starts with UTF-16 BOM: no
9906 Looks like UTF-8: no
9907 Has flag LOOK_NUL: yes
9908 Has flag LOOK_CR: yes
@@ -9914,11 +9914,11 @@
9914 Has flag LOOK_INVALID: no
9915 Has flag LOOK_ODD: no
9916 Has flag LOOK_SHORT: no}
9917
9918 utf-check 698 utf-check-698-1-94-0.jnk \
9919 {File "%TEMP%/utf-check-698-1-94-0.jnk" has 8201 bytes.
9920 Starts with UTF-8 BOM: yes
9921 Starts with UTF-16 BOM: no
9922 Looks like UTF-8: no
9923 Has flag LOOK_NUL: yes
9924 Has flag LOOK_CR: no
@@ -9930,11 +9930,11 @@
9930 Has flag LOOK_INVALID: no
9931 Has flag LOOK_ODD: no
9932 Has flag LOOK_SHORT: no}
9933
9934 utf-check 699 utf-check-699-1-94-1.jnk \
9935 {File "%TEMP%/utf-check-699-1-94-1.jnk" has 8202 bytes.
9936 Starts with UTF-8 BOM: yes
9937 Starts with UTF-16 BOM: no
9938 Looks like UTF-8: no
9939 Has flag LOOK_NUL: yes
9940 Has flag LOOK_CR: no
@@ -9946,11 +9946,11 @@
9946 Has flag LOOK_INVALID: no
9947 Has flag LOOK_ODD: no
9948 Has flag LOOK_SHORT: no}
9949
9950 utf-check 700 utf-check-700-1-95-0.jnk \
9951 {File "%TEMP%/utf-check-700-1-95-0.jnk" has 8202 bytes.
9952 Starts with UTF-8 BOM: yes
9953 Starts with UTF-16 BOM: no
9954 Looks like UTF-8: no
9955 Has flag LOOK_NUL: yes
9956 Has flag LOOK_CR: yes
@@ -9962,11 +9962,11 @@
9962 Has flag LOOK_INVALID: no
9963 Has flag LOOK_ODD: no
9964 Has flag LOOK_SHORT: no}
9965
9966 utf-check 701 utf-check-701-1-95-1.jnk \
9967 {File "%TEMP%/utf-check-701-1-95-1.jnk" has 8203 bytes.
9968 Starts with UTF-8 BOM: yes
9969 Starts with UTF-16 BOM: no
9970 Looks like UTF-8: no
9971 Has flag LOOK_NUL: yes
9972 Has flag LOOK_CR: yes
@@ -9978,11 +9978,11 @@
9978 Has flag LOOK_INVALID: no
9979 Has flag LOOK_ODD: no
9980 Has flag LOOK_SHORT: no}
9981
9982 utf-check 702 utf-check-702-1-96-0.jnk \
9983 {File "%TEMP%/utf-check-702-1-96-0.jnk" has 8197 bytes.
9984 Starts with UTF-8 BOM: yes
9985 Starts with UTF-16 BOM: no
9986 Looks like UTF-8: no
9987 Has flag LOOK_NUL: yes
9988 Has flag LOOK_CR: no
@@ -9994,11 +9994,11 @@
9994 Has flag LOOK_INVALID: no
9995 Has flag LOOK_ODD: no
9996 Has flag LOOK_SHORT: no}
9997
9998 utf-check 703 utf-check-703-1-96-1.jnk \
9999 {File "%TEMP%/utf-check-703-1-96-1.jnk" has 8198 bytes.
10000 Starts with UTF-8 BOM: yes
10001 Starts with UTF-16 BOM: no
10002 Looks like UTF-8: no
10003 Has flag LOOK_NUL: yes
10004 Has flag LOOK_CR: no
@@ -10010,11 +10010,11 @@
10010 Has flag LOOK_INVALID: no
10011 Has flag LOOK_ODD: no
10012 Has flag LOOK_SHORT: no}
10013
10014 utf-check 704 utf-check-704-1-97-0.jnk \
10015 {File "%TEMP%/utf-check-704-1-97-0.jnk" has 8198 bytes.
10016 Starts with UTF-8 BOM: yes
10017 Starts with UTF-16 BOM: no
10018 Looks like UTF-8: no
10019 Has flag LOOK_NUL: yes
10020 Has flag LOOK_CR: yes
@@ -10026,11 +10026,11 @@
10026 Has flag LOOK_INVALID: no
10027 Has flag LOOK_ODD: no
10028 Has flag LOOK_SHORT: no}
10029
10030 utf-check 705 utf-check-705-1-97-1.jnk \
10031 {File "%TEMP%/utf-check-705-1-97-1.jnk" has 8199 bytes.
10032 Starts with UTF-8 BOM: yes
10033 Starts with UTF-16 BOM: no
10034 Looks like UTF-8: no
10035 Has flag LOOK_NUL: yes
10036 Has flag LOOK_CR: yes
@@ -10042,11 +10042,11 @@
10042 Has flag LOOK_INVALID: no
10043 Has flag LOOK_ODD: no
10044 Has flag LOOK_SHORT: no}
10045
10046 utf-check 706 utf-check-706-1-98-0.jnk \
10047 {File "%TEMP%/utf-check-706-1-98-0.jnk" has 8198 bytes.
10048 Starts with UTF-8 BOM: yes
10049 Starts with UTF-16 BOM: no
10050 Looks like UTF-8: no
10051 Has flag LOOK_NUL: yes
10052 Has flag LOOK_CR: no
@@ -10058,11 +10058,11 @@
10058 Has flag LOOK_INVALID: no
10059 Has flag LOOK_ODD: no
10060 Has flag LOOK_SHORT: no}
10061
10062 utf-check 707 utf-check-707-1-98-1.jnk \
10063 {File "%TEMP%/utf-check-707-1-98-1.jnk" has 8199 bytes.
10064 Starts with UTF-8 BOM: yes
10065 Starts with UTF-16 BOM: no
10066 Looks like UTF-8: no
10067 Has flag LOOK_NUL: yes
10068 Has flag LOOK_CR: no
@@ -10074,11 +10074,11 @@
10074 Has flag LOOK_INVALID: no
10075 Has flag LOOK_ODD: no
10076 Has flag LOOK_SHORT: no}
10077
10078 utf-check 708 utf-check-708-1-99-0.jnk \
10079 {File "%TEMP%/utf-check-708-1-99-0.jnk" has 8199 bytes.
10080 Starts with UTF-8 BOM: yes
10081 Starts with UTF-16 BOM: no
10082 Looks like UTF-8: no
10083 Has flag LOOK_NUL: yes
10084 Has flag LOOK_CR: yes
@@ -10090,11 +10090,11 @@
10090 Has flag LOOK_INVALID: no
10091 Has flag LOOK_ODD: no
10092 Has flag LOOK_SHORT: no}
10093
10094 utf-check 709 utf-check-709-1-99-1.jnk \
10095 {File "%TEMP%/utf-check-709-1-99-1.jnk" has 8200 bytes.
10096 Starts with UTF-8 BOM: yes
10097 Starts with UTF-16 BOM: no
10098 Looks like UTF-8: no
10099 Has flag LOOK_NUL: yes
10100 Has flag LOOK_CR: yes
@@ -10106,11 +10106,11 @@
10106 Has flag LOOK_INVALID: no
10107 Has flag LOOK_ODD: no
10108 Has flag LOOK_SHORT: no}
10109
10110 utf-check 710 utf-check-710-1-100-0.jnk \
10111 {File "%TEMP%/utf-check-710-1-100-0.jnk" has 8200 bytes.
10112 Starts with UTF-8 BOM: yes
10113 Starts with UTF-16 BOM: no
10114 Looks like UTF-8: no
10115 Has flag LOOK_NUL: yes
10116 Has flag LOOK_CR: no
@@ -10122,11 +10122,11 @@
10122 Has flag LOOK_INVALID: no
10123 Has flag LOOK_ODD: no
10124 Has flag LOOK_SHORT: no}
10125
10126 utf-check 711 utf-check-711-1-100-1.jnk \
10127 {File "%TEMP%/utf-check-711-1-100-1.jnk" has 8201 bytes.
10128 Starts with UTF-8 BOM: yes
10129 Starts with UTF-16 BOM: no
10130 Looks like UTF-8: no
10131 Has flag LOOK_NUL: yes
10132 Has flag LOOK_CR: no
@@ -10138,11 +10138,11 @@
10138 Has flag LOOK_INVALID: no
10139 Has flag LOOK_ODD: no
10140 Has flag LOOK_SHORT: no}
10141
10142 utf-check 712 utf-check-712-1-101-0.jnk \
10143 {File "%TEMP%/utf-check-712-1-101-0.jnk" has 8201 bytes.
10144 Starts with UTF-8 BOM: yes
10145 Starts with UTF-16 BOM: no
10146 Looks like UTF-8: no
10147 Has flag LOOK_NUL: yes
10148 Has flag LOOK_CR: yes
@@ -10154,11 +10154,11 @@
10154 Has flag LOOK_INVALID: no
10155 Has flag LOOK_ODD: no
10156 Has flag LOOK_SHORT: no}
10157
10158 utf-check 713 utf-check-713-1-101-1.jnk \
10159 {File "%TEMP%/utf-check-713-1-101-1.jnk" has 8202 bytes.
10160 Starts with UTF-8 BOM: yes
10161 Starts with UTF-16 BOM: no
10162 Looks like UTF-8: no
10163 Has flag LOOK_NUL: yes
10164 Has flag LOOK_CR: yes
@@ -10170,11 +10170,11 @@
10170 Has flag LOOK_INVALID: no
10171 Has flag LOOK_ODD: no
10172 Has flag LOOK_SHORT: no}
10173
10174 utf-check 714 utf-check-714-1-102-0.jnk \
10175 {File "%TEMP%/utf-check-714-1-102-0.jnk" has 8201 bytes.
10176 Starts with UTF-8 BOM: yes
10177 Starts with UTF-16 BOM: no
10178 Looks like UTF-8: no
10179 Has flag LOOK_NUL: yes
10180 Has flag LOOK_CR: no
@@ -10186,11 +10186,11 @@
10186 Has flag LOOK_INVALID: no
10187 Has flag LOOK_ODD: no
10188 Has flag LOOK_SHORT: no}
10189
10190 utf-check 715 utf-check-715-1-102-1.jnk \
10191 {File "%TEMP%/utf-check-715-1-102-1.jnk" has 8202 bytes.
10192 Starts with UTF-8 BOM: yes
10193 Starts with UTF-16 BOM: no
10194 Looks like UTF-8: no
10195 Has flag LOOK_NUL: yes
10196 Has flag LOOK_CR: no
@@ -10202,11 +10202,11 @@
10202 Has flag LOOK_INVALID: no
10203 Has flag LOOK_ODD: no
10204 Has flag LOOK_SHORT: no}
10205
10206 utf-check 716 utf-check-716-1-103-0.jnk \
10207 {File "%TEMP%/utf-check-716-1-103-0.jnk" has 8202 bytes.
10208 Starts with UTF-8 BOM: yes
10209 Starts with UTF-16 BOM: no
10210 Looks like UTF-8: no
10211 Has flag LOOK_NUL: yes
10212 Has flag LOOK_CR: yes
@@ -10218,11 +10218,11 @@
10218 Has flag LOOK_INVALID: no
10219 Has flag LOOK_ODD: no
10220 Has flag LOOK_SHORT: no}
10221
10222 utf-check 717 utf-check-717-1-103-1.jnk \
10223 {File "%TEMP%/utf-check-717-1-103-1.jnk" has 8203 bytes.
10224 Starts with UTF-8 BOM: yes
10225 Starts with UTF-16 BOM: no
10226 Looks like UTF-8: no
10227 Has flag LOOK_NUL: yes
10228 Has flag LOOK_CR: yes
@@ -10234,11 +10234,11 @@
10234 Has flag LOOK_INVALID: no
10235 Has flag LOOK_ODD: no
10236 Has flag LOOK_SHORT: no}
10237
10238 utf-check 718 utf-check-718-1-104-0.jnk \
10239 {File "%TEMP%/utf-check-718-1-104-0.jnk" has 8198 bytes.
10240 Starts with UTF-8 BOM: yes
10241 Starts with UTF-16 BOM: no
10242 Looks like UTF-8: no
10243 Has flag LOOK_NUL: yes
10244 Has flag LOOK_CR: no
@@ -10250,11 +10250,11 @@
10250 Has flag LOOK_INVALID: no
10251 Has flag LOOK_ODD: no
10252 Has flag LOOK_SHORT: no}
10253
10254 utf-check 719 utf-check-719-1-104-1.jnk \
10255 {File "%TEMP%/utf-check-719-1-104-1.jnk" has 8199 bytes.
10256 Starts with UTF-8 BOM: yes
10257 Starts with UTF-16 BOM: no
10258 Looks like UTF-8: no
10259 Has flag LOOK_NUL: yes
10260 Has flag LOOK_CR: no
@@ -10266,11 +10266,11 @@
10266 Has flag LOOK_INVALID: no
10267 Has flag LOOK_ODD: no
10268 Has flag LOOK_SHORT: no}
10269
10270 utf-check 720 utf-check-720-1-105-0.jnk \
10271 {File "%TEMP%/utf-check-720-1-105-0.jnk" has 8199 bytes.
10272 Starts with UTF-8 BOM: yes
10273 Starts with UTF-16 BOM: no
10274 Looks like UTF-8: no
10275 Has flag LOOK_NUL: yes
10276 Has flag LOOK_CR: yes
@@ -10282,11 +10282,11 @@
10282 Has flag LOOK_INVALID: no
10283 Has flag LOOK_ODD: no
10284 Has flag LOOK_SHORT: no}
10285
10286 utf-check 721 utf-check-721-1-105-1.jnk \
10287 {File "%TEMP%/utf-check-721-1-105-1.jnk" has 8200 bytes.
10288 Starts with UTF-8 BOM: yes
10289 Starts with UTF-16 BOM: no
10290 Looks like UTF-8: no
10291 Has flag LOOK_NUL: yes
10292 Has flag LOOK_CR: yes
@@ -10298,11 +10298,11 @@
10298 Has flag LOOK_INVALID: no
10299 Has flag LOOK_ODD: no
10300 Has flag LOOK_SHORT: no}
10301
10302 utf-check 722 utf-check-722-1-106-0.jnk \
10303 {File "%TEMP%/utf-check-722-1-106-0.jnk" has 8199 bytes.
10304 Starts with UTF-8 BOM: yes
10305 Starts with UTF-16 BOM: no
10306 Looks like UTF-8: no
10307 Has flag LOOK_NUL: yes
10308 Has flag LOOK_CR: no
@@ -10314,11 +10314,11 @@
10314 Has flag LOOK_INVALID: no
10315 Has flag LOOK_ODD: no
10316 Has flag LOOK_SHORT: no}
10317
10318 utf-check 723 utf-check-723-1-106-1.jnk \
10319 {File "%TEMP%/utf-check-723-1-106-1.jnk" has 8200 bytes.
10320 Starts with UTF-8 BOM: yes
10321 Starts with UTF-16 BOM: no
10322 Looks like UTF-8: no
10323 Has flag LOOK_NUL: yes
10324 Has flag LOOK_CR: no
@@ -10330,11 +10330,11 @@
10330 Has flag LOOK_INVALID: no
10331 Has flag LOOK_ODD: no
10332 Has flag LOOK_SHORT: no}
10333
10334 utf-check 724 utf-check-724-1-107-0.jnk \
10335 {File "%TEMP%/utf-check-724-1-107-0.jnk" has 8200 bytes.
10336 Starts with UTF-8 BOM: yes
10337 Starts with UTF-16 BOM: no
10338 Looks like UTF-8: no
10339 Has flag LOOK_NUL: yes
10340 Has flag LOOK_CR: yes
@@ -10346,11 +10346,11 @@
10346 Has flag LOOK_INVALID: no
10347 Has flag LOOK_ODD: no
10348 Has flag LOOK_SHORT: no}
10349
10350 utf-check 725 utf-check-725-1-107-1.jnk \
10351 {File "%TEMP%/utf-check-725-1-107-1.jnk" has 8201 bytes.
10352 Starts with UTF-8 BOM: yes
10353 Starts with UTF-16 BOM: no
10354 Looks like UTF-8: no
10355 Has flag LOOK_NUL: yes
10356 Has flag LOOK_CR: yes
@@ -10362,11 +10362,11 @@
10362 Has flag LOOK_INVALID: no
10363 Has flag LOOK_ODD: no
10364 Has flag LOOK_SHORT: no}
10365
10366 utf-check 726 utf-check-726-1-108-0.jnk \
10367 {File "%TEMP%/utf-check-726-1-108-0.jnk" has 8201 bytes.
10368 Starts with UTF-8 BOM: yes
10369 Starts with UTF-16 BOM: no
10370 Looks like UTF-8: no
10371 Has flag LOOK_NUL: yes
10372 Has flag LOOK_CR: no
@@ -10378,11 +10378,11 @@
10378 Has flag LOOK_INVALID: no
10379 Has flag LOOK_ODD: no
10380 Has flag LOOK_SHORT: no}
10381
10382 utf-check 727 utf-check-727-1-108-1.jnk \
10383 {File "%TEMP%/utf-check-727-1-108-1.jnk" has 8202 bytes.
10384 Starts with UTF-8 BOM: yes
10385 Starts with UTF-16 BOM: no
10386 Looks like UTF-8: no
10387 Has flag LOOK_NUL: yes
10388 Has flag LOOK_CR: no
@@ -10394,11 +10394,11 @@
10394 Has flag LOOK_INVALID: no
10395 Has flag LOOK_ODD: no
10396 Has flag LOOK_SHORT: no}
10397
10398 utf-check 728 utf-check-728-1-109-0.jnk \
10399 {File "%TEMP%/utf-check-728-1-109-0.jnk" has 8202 bytes.
10400 Starts with UTF-8 BOM: yes
10401 Starts with UTF-16 BOM: no
10402 Looks like UTF-8: no
10403 Has flag LOOK_NUL: yes
10404 Has flag LOOK_CR: yes
@@ -10410,11 +10410,11 @@
10410 Has flag LOOK_INVALID: no
10411 Has flag LOOK_ODD: no
10412 Has flag LOOK_SHORT: no}
10413
10414 utf-check 729 utf-check-729-1-109-1.jnk \
10415 {File "%TEMP%/utf-check-729-1-109-1.jnk" has 8203 bytes.
10416 Starts with UTF-8 BOM: yes
10417 Starts with UTF-16 BOM: no
10418 Looks like UTF-8: no
10419 Has flag LOOK_NUL: yes
10420 Has flag LOOK_CR: yes
@@ -10426,11 +10426,11 @@
10426 Has flag LOOK_INVALID: no
10427 Has flag LOOK_ODD: no
10428 Has flag LOOK_SHORT: no}
10429
10430 utf-check 730 utf-check-730-1-110-0.jnk \
10431 {File "%TEMP%/utf-check-730-1-110-0.jnk" has 8202 bytes.
10432 Starts with UTF-8 BOM: yes
10433 Starts with UTF-16 BOM: no
10434 Looks like UTF-8: no
10435 Has flag LOOK_NUL: yes
10436 Has flag LOOK_CR: no
@@ -10442,11 +10442,11 @@
10442 Has flag LOOK_INVALID: no
10443 Has flag LOOK_ODD: no
10444 Has flag LOOK_SHORT: no}
10445
10446 utf-check 731 utf-check-731-1-110-1.jnk \
10447 {File "%TEMP%/utf-check-731-1-110-1.jnk" has 8203 bytes.
10448 Starts with UTF-8 BOM: yes
10449 Starts with UTF-16 BOM: no
10450 Looks like UTF-8: no
10451 Has flag LOOK_NUL: yes
10452 Has flag LOOK_CR: no
@@ -10458,11 +10458,11 @@
10458 Has flag LOOK_INVALID: no
10459 Has flag LOOK_ODD: no
10460 Has flag LOOK_SHORT: no}
10461
10462 utf-check 732 utf-check-732-1-111-0.jnk \
10463 {File "%TEMP%/utf-check-732-1-111-0.jnk" has 8203 bytes.
10464 Starts with UTF-8 BOM: yes
10465 Starts with UTF-16 BOM: no
10466 Looks like UTF-8: no
10467 Has flag LOOK_NUL: yes
10468 Has flag LOOK_CR: yes
@@ -10474,11 +10474,11 @@
10474 Has flag LOOK_INVALID: no
10475 Has flag LOOK_ODD: no
10476 Has flag LOOK_SHORT: no}
10477
10478 utf-check 733 utf-check-733-1-111-1.jnk \
10479 {File "%TEMP%/utf-check-733-1-111-1.jnk" has 8204 bytes.
10480 Starts with UTF-8 BOM: yes
10481 Starts with UTF-16 BOM: no
10482 Looks like UTF-8: no
10483 Has flag LOOK_NUL: yes
10484 Has flag LOOK_CR: yes
@@ -16026,11 +16026,11 @@
16026 Has flag LOOK_INVALID: yes
16027 Has flag LOOK_ODD: no
16028 Has flag LOOK_SHORT: no}
16029
16030 utf-check 1080 utf-check-1080-2-80-0.jnk \
16031 {File "%TEMP%/utf-check-1080-2-80-0.jnk" has 16388 bytes.
16032 Starts with UTF-8 BOM: no
16033 Starts with UTF-16 BOM: yes
16034 Looks like UTF-16: no
16035 Has flag LOOK_NUL: no
16036 Has flag LOOK_CR: no
@@ -16042,11 +16042,11 @@
16042 Has flag LOOK_INVALID: no
16043 Has flag LOOK_ODD: no
16044 Has flag LOOK_SHORT: no}
16045
16046 utf-check 1081 utf-check-1081-2-80-1.jnk \
16047 {File "%TEMP%/utf-check-1081-2-80-1.jnk" has 16389 bytes.
16048 Starts with UTF-8 BOM: no
16049 Starts with UTF-16 BOM: yes
16050 Looks like UTF-8: no
16051 Has flag LOOK_NUL: yes
16052 Has flag LOOK_CR: no
@@ -16058,11 +16058,11 @@
16058 Has flag LOOK_INVALID: yes
16059 Has flag LOOK_ODD: no
16060 Has flag LOOK_SHORT: no}
16061
16062 utf-check 1082 utf-check-1082-2-81-0.jnk \
16063 {File "%TEMP%/utf-check-1082-2-81-0.jnk" has 16390 bytes.
16064 Starts with UTF-8 BOM: no
16065 Starts with UTF-16 BOM: yes
16066 Looks like UTF-16: no
16067 Has flag LOOK_NUL: no
16068 Has flag LOOK_CR: yes
@@ -16074,11 +16074,11 @@
16074 Has flag LOOK_INVALID: no
16075 Has flag LOOK_ODD: no
16076 Has flag LOOK_SHORT: no}
16077
16078 utf-check 1083 utf-check-1083-2-81-1.jnk \
16079 {File "%TEMP%/utf-check-1083-2-81-1.jnk" has 16391 bytes.
16080 Starts with UTF-8 BOM: no
16081 Starts with UTF-16 BOM: yes
16082 Looks like UTF-8: no
16083 Has flag LOOK_NUL: yes
16084 Has flag LOOK_CR: yes
@@ -16090,11 +16090,11 @@
16090 Has flag LOOK_INVALID: yes
16091 Has flag LOOK_ODD: no
16092 Has flag LOOK_SHORT: no}
16093
16094 utf-check 1084 utf-check-1084-2-82-0.jnk \
16095 {File "%TEMP%/utf-check-1084-2-82-0.jnk" has 16390 bytes.
16096 Starts with UTF-8 BOM: no
16097 Starts with UTF-16 BOM: yes
16098 Looks like UTF-16: no
16099 Has flag LOOK_NUL: no
16100 Has flag LOOK_CR: no
@@ -16106,11 +16106,11 @@
16106 Has flag LOOK_INVALID: no
16107 Has flag LOOK_ODD: no
16108 Has flag LOOK_SHORT: no}
16109
16110 utf-check 1085 utf-check-1085-2-82-1.jnk \
16111 {File "%TEMP%/utf-check-1085-2-82-1.jnk" has 16391 bytes.
16112 Starts with UTF-8 BOM: no
16113 Starts with UTF-16 BOM: yes
16114 Looks like UTF-8: no
16115 Has flag LOOK_NUL: yes
16116 Has flag LOOK_CR: no
@@ -16122,11 +16122,11 @@
16122 Has flag LOOK_INVALID: yes
16123 Has flag LOOK_ODD: no
16124 Has flag LOOK_SHORT: no}
16125
16126 utf-check 1086 utf-check-1086-2-83-0.jnk \
16127 {File "%TEMP%/utf-check-1086-2-83-0.jnk" has 16392 bytes.
16128 Starts with UTF-8 BOM: no
16129 Starts with UTF-16 BOM: yes
16130 Looks like UTF-16: no
16131 Has flag LOOK_NUL: no
16132 Has flag LOOK_CR: yes
@@ -16138,11 +16138,11 @@
16138 Has flag LOOK_INVALID: no
16139 Has flag LOOK_ODD: no
16140 Has flag LOOK_SHORT: no}
16141
16142 utf-check 1087 utf-check-1087-2-83-1.jnk \
16143 {File "%TEMP%/utf-check-1087-2-83-1.jnk" has 16393 bytes.
16144 Starts with UTF-8 BOM: no
16145 Starts with UTF-16 BOM: yes
16146 Looks like UTF-8: no
16147 Has flag LOOK_NUL: yes
16148 Has flag LOOK_CR: yes
@@ -16154,11 +16154,11 @@
16154 Has flag LOOK_INVALID: yes
16155 Has flag LOOK_ODD: no
16156 Has flag LOOK_SHORT: no}
16157
16158 utf-check 1088 utf-check-1088-2-84-0.jnk \
16159 {File "%TEMP%/utf-check-1088-2-84-0.jnk" has 16394 bytes.
16160 Starts with UTF-8 BOM: no
16161 Starts with UTF-16 BOM: yes
16162 Looks like UTF-16: no
16163 Has flag LOOK_NUL: no
16164 Has flag LOOK_CR: no
@@ -16170,11 +16170,11 @@
16170 Has flag LOOK_INVALID: no
16171 Has flag LOOK_ODD: no
16172 Has flag LOOK_SHORT: no}
16173
16174 utf-check 1089 utf-check-1089-2-84-1.jnk \
16175 {File "%TEMP%/utf-check-1089-2-84-1.jnk" has 16395 bytes.
16176 Starts with UTF-8 BOM: no
16177 Starts with UTF-16 BOM: yes
16178 Looks like UTF-8: no
16179 Has flag LOOK_NUL: yes
16180 Has flag LOOK_CR: no
@@ -16186,11 +16186,11 @@
16186 Has flag LOOK_INVALID: yes
16187 Has flag LOOK_ODD: no
16188 Has flag LOOK_SHORT: no}
16189
16190 utf-check 1090 utf-check-1090-2-85-0.jnk \
16191 {File "%TEMP%/utf-check-1090-2-85-0.jnk" has 16396 bytes.
16192 Starts with UTF-8 BOM: no
16193 Starts with UTF-16 BOM: yes
16194 Looks like UTF-16: no
16195 Has flag LOOK_NUL: no
16196 Has flag LOOK_CR: yes
@@ -16202,11 +16202,11 @@
16202 Has flag LOOK_INVALID: no
16203 Has flag LOOK_ODD: no
16204 Has flag LOOK_SHORT: no}
16205
16206 utf-check 1091 utf-check-1091-2-85-1.jnk \
16207 {File "%TEMP%/utf-check-1091-2-85-1.jnk" has 16397 bytes.
16208 Starts with UTF-8 BOM: no
16209 Starts with UTF-16 BOM: yes
16210 Looks like UTF-8: no
16211 Has flag LOOK_NUL: yes
16212 Has flag LOOK_CR: yes
@@ -16218,11 +16218,11 @@
16218 Has flag LOOK_INVALID: yes
16219 Has flag LOOK_ODD: no
16220 Has flag LOOK_SHORT: no}
16221
16222 utf-check 1092 utf-check-1092-2-86-0.jnk \
16223 {File "%TEMP%/utf-check-1092-2-86-0.jnk" has 16396 bytes.
16224 Starts with UTF-8 BOM: no
16225 Starts with UTF-16 BOM: yes
16226 Looks like UTF-16: no
16227 Has flag LOOK_NUL: no
16228 Has flag LOOK_CR: no
@@ -16234,11 +16234,11 @@
16234 Has flag LOOK_INVALID: no
16235 Has flag LOOK_ODD: no
16236 Has flag LOOK_SHORT: no}
16237
16238 utf-check 1093 utf-check-1093-2-86-1.jnk \
16239 {File "%TEMP%/utf-check-1093-2-86-1.jnk" has 16397 bytes.
16240 Starts with UTF-8 BOM: no
16241 Starts with UTF-16 BOM: yes
16242 Looks like UTF-8: no
16243 Has flag LOOK_NUL: yes
16244 Has flag LOOK_CR: no
@@ -16250,11 +16250,11 @@
16250 Has flag LOOK_INVALID: yes
16251 Has flag LOOK_ODD: no
16252 Has flag LOOK_SHORT: no}
16253
16254 utf-check 1094 utf-check-1094-2-87-0.jnk \
16255 {File "%TEMP%/utf-check-1094-2-87-0.jnk" has 16398 bytes.
16256 Starts with UTF-8 BOM: no
16257 Starts with UTF-16 BOM: yes
16258 Looks like UTF-16: no
16259 Has flag LOOK_NUL: no
16260 Has flag LOOK_CR: yes
@@ -16266,11 +16266,11 @@
16266 Has flag LOOK_INVALID: no
16267 Has flag LOOK_ODD: no
16268 Has flag LOOK_SHORT: no}
16269
16270 utf-check 1095 utf-check-1095-2-87-1.jnk \
16271 {File "%TEMP%/utf-check-1095-2-87-1.jnk" has 16399 bytes.
16272 Starts with UTF-8 BOM: no
16273 Starts with UTF-16 BOM: yes
16274 Looks like UTF-8: no
16275 Has flag LOOK_NUL: yes
16276 Has flag LOOK_CR: yes
@@ -16282,11 +16282,11 @@
16282 Has flag LOOK_INVALID: yes
16283 Has flag LOOK_ODD: no
16284 Has flag LOOK_SHORT: no}
16285
16286 utf-check 1096 utf-check-1096-2-88-0.jnk \
16287 {File "%TEMP%/utf-check-1096-2-88-0.jnk" has 16390 bytes.
16288 Starts with UTF-8 BOM: no
16289 Starts with UTF-16 BOM: no
16290 Looks like UTF-8: no
16291 Has flag LOOK_NUL: yes
16292 Has flag LOOK_CR: no
@@ -16298,11 +16298,11 @@
16298 Has flag LOOK_INVALID: yes
16299 Has flag LOOK_ODD: no
16300 Has flag LOOK_SHORT: no}
16301
16302 utf-check 1097 utf-check-1097-2-88-1.jnk \
16303 {File "%TEMP%/utf-check-1097-2-88-1.jnk" has 16391 bytes.
16304 Starts with UTF-8 BOM: no
16305 Starts with UTF-16 BOM: no
16306 Looks like UTF-8: no
16307 Has flag LOOK_NUL: yes
16308 Has flag LOOK_CR: no
@@ -16314,11 +16314,11 @@
16314 Has flag LOOK_INVALID: yes
16315 Has flag LOOK_ODD: no
16316 Has flag LOOK_SHORT: no}
16317
16318 utf-check 1098 utf-check-1098-2-89-0.jnk \
16319 {File "%TEMP%/utf-check-1098-2-89-0.jnk" has 16392 bytes.
16320 Starts with UTF-8 BOM: no
16321 Starts with UTF-16 BOM: no
16322 Looks like UTF-8: no
16323 Has flag LOOK_NUL: yes
16324 Has flag LOOK_CR: yes
@@ -16330,11 +16330,11 @@
16330 Has flag LOOK_INVALID: yes
16331 Has flag LOOK_ODD: no
16332 Has flag LOOK_SHORT: no}
16333
16334 utf-check 1099 utf-check-1099-2-89-1.jnk \
16335 {File "%TEMP%/utf-check-1099-2-89-1.jnk" has 16393 bytes.
16336 Starts with UTF-8 BOM: no
16337 Starts with UTF-16 BOM: no
16338 Looks like UTF-8: no
16339 Has flag LOOK_NUL: yes
16340 Has flag LOOK_CR: yes
@@ -16346,11 +16346,11 @@
16346 Has flag LOOK_INVALID: yes
16347 Has flag LOOK_ODD: no
16348 Has flag LOOK_SHORT: no}
16349
16350 utf-check 1100 utf-check-1100-2-90-0.jnk \
16351 {File "%TEMP%/utf-check-1100-2-90-0.jnk" has 16392 bytes.
16352 Starts with UTF-8 BOM: no
16353 Starts with UTF-16 BOM: no
16354 Looks like UTF-8: no
16355 Has flag LOOK_NUL: yes
16356 Has flag LOOK_CR: no
@@ -16362,11 +16362,11 @@
16362 Has flag LOOK_INVALID: yes
16363 Has flag LOOK_ODD: no
16364 Has flag LOOK_SHORT: no}
16365
16366 utf-check 1101 utf-check-1101-2-90-1.jnk \
16367 {File "%TEMP%/utf-check-1101-2-90-1.jnk" has 16393 bytes.
16368 Starts with UTF-8 BOM: no
16369 Starts with UTF-16 BOM: no
16370 Looks like UTF-8: no
16371 Has flag LOOK_NUL: yes
16372 Has flag LOOK_CR: no
@@ -16378,11 +16378,11 @@
16378 Has flag LOOK_INVALID: yes
16379 Has flag LOOK_ODD: no
16380 Has flag LOOK_SHORT: no}
16381
16382 utf-check 1102 utf-check-1102-2-91-0.jnk \
16383 {File "%TEMP%/utf-check-1102-2-91-0.jnk" has 16394 bytes.
16384 Starts with UTF-8 BOM: no
16385 Starts with UTF-16 BOM: no
16386 Looks like UTF-8: no
16387 Has flag LOOK_NUL: yes
16388 Has flag LOOK_CR: yes
@@ -16394,11 +16394,11 @@
16394 Has flag LOOK_INVALID: yes
16395 Has flag LOOK_ODD: no
16396 Has flag LOOK_SHORT: no}
16397
16398 utf-check 1103 utf-check-1103-2-91-1.jnk \
16399 {File "%TEMP%/utf-check-1103-2-91-1.jnk" has 16395 bytes.
16400 Starts with UTF-8 BOM: no
16401 Starts with UTF-16 BOM: no
16402 Looks like UTF-8: no
16403 Has flag LOOK_NUL: yes
16404 Has flag LOOK_CR: yes
@@ -16410,11 +16410,11 @@
16410 Has flag LOOK_INVALID: yes
16411 Has flag LOOK_ODD: no
16412 Has flag LOOK_SHORT: no}
16413
16414 utf-check 1104 utf-check-1104-2-92-0.jnk \
16415 {File "%TEMP%/utf-check-1104-2-92-0.jnk" has 16396 bytes.
16416 Starts with UTF-8 BOM: no
16417 Starts with UTF-16 BOM: no
16418 Looks like UTF-8: no
16419 Has flag LOOK_NUL: yes
16420 Has flag LOOK_CR: no
@@ -16426,11 +16426,11 @@
16426 Has flag LOOK_INVALID: yes
16427 Has flag LOOK_ODD: no
16428 Has flag LOOK_SHORT: no}
16429
16430 utf-check 1105 utf-check-1105-2-92-1.jnk \
16431 {File "%TEMP%/utf-check-1105-2-92-1.jnk" has 16397 bytes.
16432 Starts with UTF-8 BOM: no
16433 Starts with UTF-16 BOM: no
16434 Looks like UTF-8: no
16435 Has flag LOOK_NUL: yes
16436 Has flag LOOK_CR: no
@@ -16442,11 +16442,11 @@
16442 Has flag LOOK_INVALID: yes
16443 Has flag LOOK_ODD: no
16444 Has flag LOOK_SHORT: no}
16445
16446 utf-check 1106 utf-check-1106-2-93-0.jnk \
16447 {File "%TEMP%/utf-check-1106-2-93-0.jnk" has 16398 bytes.
16448 Starts with UTF-8 BOM: no
16449 Starts with UTF-16 BOM: no
16450 Looks like UTF-8: no
16451 Has flag LOOK_NUL: yes
16452 Has flag LOOK_CR: yes
@@ -16458,11 +16458,11 @@
16458 Has flag LOOK_INVALID: yes
16459 Has flag LOOK_ODD: no
16460 Has flag LOOK_SHORT: no}
16461
16462 utf-check 1107 utf-check-1107-2-93-1.jnk \
16463 {File "%TEMP%/utf-check-1107-2-93-1.jnk" has 16399 bytes.
16464 Starts with UTF-8 BOM: no
16465 Starts with UTF-16 BOM: no
16466 Looks like UTF-8: no
16467 Has flag LOOK_NUL: yes
16468 Has flag LOOK_CR: yes
@@ -16474,11 +16474,11 @@
16474 Has flag LOOK_INVALID: yes
16475 Has flag LOOK_ODD: no
16476 Has flag LOOK_SHORT: no}
16477
16478 utf-check 1108 utf-check-1108-2-94-0.jnk \
16479 {File "%TEMP%/utf-check-1108-2-94-0.jnk" has 16398 bytes.
16480 Starts with UTF-8 BOM: no
16481 Starts with UTF-16 BOM: no
16482 Looks like UTF-8: no
16483 Has flag LOOK_NUL: yes
16484 Has flag LOOK_CR: no
@@ -16490,11 +16490,11 @@
16490 Has flag LOOK_INVALID: yes
16491 Has flag LOOK_ODD: no
16492 Has flag LOOK_SHORT: no}
16493
16494 utf-check 1109 utf-check-1109-2-94-1.jnk \
16495 {File "%TEMP%/utf-check-1109-2-94-1.jnk" has 16399 bytes.
16496 Starts with UTF-8 BOM: no
16497 Starts with UTF-16 BOM: no
16498 Looks like UTF-8: no
16499 Has flag LOOK_NUL: yes
16500 Has flag LOOK_CR: no
@@ -16506,11 +16506,11 @@
16506 Has flag LOOK_INVALID: yes
16507 Has flag LOOK_ODD: no
16508 Has flag LOOK_SHORT: no}
16509
16510 utf-check 1110 utf-check-1110-2-95-0.jnk \
16511 {File "%TEMP%/utf-check-1110-2-95-0.jnk" has 16400 bytes.
16512 Starts with UTF-8 BOM: no
16513 Starts with UTF-16 BOM: no
16514 Looks like UTF-8: no
16515 Has flag LOOK_NUL: yes
16516 Has flag LOOK_CR: yes
@@ -16522,11 +16522,11 @@
16522 Has flag LOOK_INVALID: yes
16523 Has flag LOOK_ODD: no
16524 Has flag LOOK_SHORT: no}
16525
16526 utf-check 1111 utf-check-1111-2-95-1.jnk \
16527 {File "%TEMP%/utf-check-1111-2-95-1.jnk" has 16401 bytes.
16528 Starts with UTF-8 BOM: no
16529 Starts with UTF-16 BOM: no
16530 Looks like UTF-8: no
16531 Has flag LOOK_NUL: yes
16532 Has flag LOOK_CR: yes
@@ -16538,11 +16538,11 @@
16538 Has flag LOOK_INVALID: yes
16539 Has flag LOOK_ODD: no
16540 Has flag LOOK_SHORT: no}
16541
16542 utf-check 1112 utf-check-1112-2-96-0.jnk \
16543 {File "%TEMP%/utf-check-1112-2-96-0.jnk" has 16390 bytes.
16544 Starts with UTF-8 BOM: no
16545 Starts with UTF-16 BOM: yes
16546 Looks like UTF-16: no
16547 Has flag LOOK_NUL: yes
16548 Has flag LOOK_CR: no
@@ -16554,11 +16554,11 @@
16554 Has flag LOOK_INVALID: no
16555 Has flag LOOK_ODD: no
16556 Has flag LOOK_SHORT: no}
16557
16558 utf-check 1113 utf-check-1113-2-96-1.jnk \
16559 {File "%TEMP%/utf-check-1113-2-96-1.jnk" has 16391 bytes.
16560 Starts with UTF-8 BOM: no
16561 Starts with UTF-16 BOM: yes
16562 Looks like UTF-8: no
16563 Has flag LOOK_NUL: yes
16564 Has flag LOOK_CR: no
@@ -16570,11 +16570,11 @@
16570 Has flag LOOK_INVALID: yes
16571 Has flag LOOK_ODD: no
16572 Has flag LOOK_SHORT: no}
16573
16574 utf-check 1114 utf-check-1114-2-97-0.jnk \
16575 {File "%TEMP%/utf-check-1114-2-97-0.jnk" has 16392 bytes.
16576 Starts with UTF-8 BOM: no
16577 Starts with UTF-16 BOM: yes
16578 Looks like UTF-16: no
16579 Has flag LOOK_NUL: yes
16580 Has flag LOOK_CR: yes
@@ -16586,11 +16586,11 @@
16586 Has flag LOOK_INVALID: no
16587 Has flag LOOK_ODD: no
16588 Has flag LOOK_SHORT: no}
16589
16590 utf-check 1115 utf-check-1115-2-97-1.jnk \
16591 {File "%TEMP%/utf-check-1115-2-97-1.jnk" has 16393 bytes.
16592 Starts with UTF-8 BOM: no
16593 Starts with UTF-16 BOM: yes
16594 Looks like UTF-8: no
16595 Has flag LOOK_NUL: yes
16596 Has flag LOOK_CR: yes
@@ -16602,11 +16602,11 @@
16602 Has flag LOOK_INVALID: yes
16603 Has flag LOOK_ODD: no
16604 Has flag LOOK_SHORT: no}
16605
16606 utf-check 1116 utf-check-1116-2-98-0.jnk \
16607 {File "%TEMP%/utf-check-1116-2-98-0.jnk" has 16392 bytes.
16608 Starts with UTF-8 BOM: no
16609 Starts with UTF-16 BOM: yes
16610 Looks like UTF-16: no
16611 Has flag LOOK_NUL: yes
16612 Has flag LOOK_CR: no
@@ -16618,11 +16618,11 @@
16618 Has flag LOOK_INVALID: no
16619 Has flag LOOK_ODD: no
16620 Has flag LOOK_SHORT: no}
16621
16622 utf-check 1117 utf-check-1117-2-98-1.jnk \
16623 {File "%TEMP%/utf-check-1117-2-98-1.jnk" has 16393 bytes.
16624 Starts with UTF-8 BOM: no
16625 Starts with UTF-16 BOM: yes
16626 Looks like UTF-8: no
16627 Has flag LOOK_NUL: yes
16628 Has flag LOOK_CR: no
@@ -16634,11 +16634,11 @@
16634 Has flag LOOK_INVALID: yes
16635 Has flag LOOK_ODD: no
16636 Has flag LOOK_SHORT: no}
16637
16638 utf-check 1118 utf-check-1118-2-99-0.jnk \
16639 {File "%TEMP%/utf-check-1118-2-99-0.jnk" has 16394 bytes.
16640 Starts with UTF-8 BOM: no
16641 Starts with UTF-16 BOM: yes
16642 Looks like UTF-16: no
16643 Has flag LOOK_NUL: yes
16644 Has flag LOOK_CR: yes
@@ -16650,11 +16650,11 @@
16650 Has flag LOOK_INVALID: no
16651 Has flag LOOK_ODD: no
16652 Has flag LOOK_SHORT: no}
16653
16654 utf-check 1119 utf-check-1119-2-99-1.jnk \
16655 {File "%TEMP%/utf-check-1119-2-99-1.jnk" has 16395 bytes.
16656 Starts with UTF-8 BOM: no
16657 Starts with UTF-16 BOM: yes
16658 Looks like UTF-8: no
16659 Has flag LOOK_NUL: yes
16660 Has flag LOOK_CR: yes
@@ -16666,11 +16666,11 @@
16666 Has flag LOOK_INVALID: yes
16667 Has flag LOOK_ODD: no
16668 Has flag LOOK_SHORT: no}
16669
16670 utf-check 1120 utf-check-1120-2-100-0.jnk \
16671 {File "%TEMP%/utf-check-1120-2-100-0.jnk" has 16396 bytes.
16672 Starts with UTF-8 BOM: no
16673 Starts with UTF-16 BOM: yes
16674 Looks like UTF-16: no
16675 Has flag LOOK_NUL: yes
16676 Has flag LOOK_CR: no
@@ -16682,11 +16682,11 @@
16682 Has flag LOOK_INVALID: no
16683 Has flag LOOK_ODD: no
16684 Has flag LOOK_SHORT: no}
16685
16686 utf-check 1121 utf-check-1121-2-100-1.jnk \
16687 {File "%TEMP%/utf-check-1121-2-100-1.jnk" has 16397 bytes.
16688 Starts with UTF-8 BOM: no
16689 Starts with UTF-16 BOM: yes
16690 Looks like UTF-8: no
16691 Has flag LOOK_NUL: yes
16692 Has flag LOOK_CR: no
@@ -16698,11 +16698,11 @@
16698 Has flag LOOK_INVALID: yes
16699 Has flag LOOK_ODD: no
16700 Has flag LOOK_SHORT: no}
16701
16702 utf-check 1122 utf-check-1122-2-101-0.jnk \
16703 {File "%TEMP%/utf-check-1122-2-101-0.jnk" has 16398 bytes.
16704 Starts with UTF-8 BOM: no
16705 Starts with UTF-16 BOM: yes
16706 Looks like UTF-16: no
16707 Has flag LOOK_NUL: yes
16708 Has flag LOOK_CR: yes
@@ -16714,11 +16714,11 @@
16714 Has flag LOOK_INVALID: no
16715 Has flag LOOK_ODD: no
16716 Has flag LOOK_SHORT: no}
16717
16718 utf-check 1123 utf-check-1123-2-101-1.jnk \
16719 {File "%TEMP%/utf-check-1123-2-101-1.jnk" has 16399 bytes.
16720 Starts with UTF-8 BOM: no
16721 Starts with UTF-16 BOM: yes
16722 Looks like UTF-8: no
16723 Has flag LOOK_NUL: yes
16724 Has flag LOOK_CR: yes
@@ -16730,11 +16730,11 @@
16730 Has flag LOOK_INVALID: yes
16731 Has flag LOOK_ODD: no
16732 Has flag LOOK_SHORT: no}
16733
16734 utf-check 1124 utf-check-1124-2-102-0.jnk \
16735 {File "%TEMP%/utf-check-1124-2-102-0.jnk" has 16398 bytes.
16736 Starts with UTF-8 BOM: no
16737 Starts with UTF-16 BOM: yes
16738 Looks like UTF-16: no
16739 Has flag LOOK_NUL: yes
16740 Has flag LOOK_CR: no
@@ -16746,11 +16746,11 @@
16746 Has flag LOOK_INVALID: no
16747 Has flag LOOK_ODD: no
16748 Has flag LOOK_SHORT: no}
16749
16750 utf-check 1125 utf-check-1125-2-102-1.jnk \
16751 {File "%TEMP%/utf-check-1125-2-102-1.jnk" has 16399 bytes.
16752 Starts with UTF-8 BOM: no
16753 Starts with UTF-16 BOM: yes
16754 Looks like UTF-8: no
16755 Has flag LOOK_NUL: yes
16756 Has flag LOOK_CR: no
@@ -16762,11 +16762,11 @@
16762 Has flag LOOK_INVALID: yes
16763 Has flag LOOK_ODD: no
16764 Has flag LOOK_SHORT: no}
16765
16766 utf-check 1126 utf-check-1126-2-103-0.jnk \
16767 {File "%TEMP%/utf-check-1126-2-103-0.jnk" has 16400 bytes.
16768 Starts with UTF-8 BOM: no
16769 Starts with UTF-16 BOM: yes
16770 Looks like UTF-16: no
16771 Has flag LOOK_NUL: yes
16772 Has flag LOOK_CR: yes
@@ -16778,11 +16778,11 @@
16778 Has flag LOOK_INVALID: no
16779 Has flag LOOK_ODD: no
16780 Has flag LOOK_SHORT: no}
16781
16782 utf-check 1127 utf-check-1127-2-103-1.jnk \
16783 {File "%TEMP%/utf-check-1127-2-103-1.jnk" has 16401 bytes.
16784 Starts with UTF-8 BOM: no
16785 Starts with UTF-16 BOM: yes
16786 Looks like UTF-8: no
16787 Has flag LOOK_NUL: yes
16788 Has flag LOOK_CR: yes
@@ -16794,11 +16794,11 @@
16794 Has flag LOOK_INVALID: yes
16795 Has flag LOOK_ODD: no
16796 Has flag LOOK_SHORT: no}
16797
16798 utf-check 1128 utf-check-1128-2-104-0.jnk \
16799 {File "%TEMP%/utf-check-1128-2-104-0.jnk" has 16392 bytes.
16800 Starts with UTF-8 BOM: no
16801 Starts with UTF-16 BOM: no
16802 Looks like UTF-8: no
16803 Has flag LOOK_NUL: yes
16804 Has flag LOOK_CR: no
@@ -16810,11 +16810,11 @@
16810 Has flag LOOK_INVALID: yes
16811 Has flag LOOK_ODD: no
16812 Has flag LOOK_SHORT: no}
16813
16814 utf-check 1129 utf-check-1129-2-104-1.jnk \
16815 {File "%TEMP%/utf-check-1129-2-104-1.jnk" has 16393 bytes.
16816 Starts with UTF-8 BOM: no
16817 Starts with UTF-16 BOM: no
16818 Looks like UTF-8: no
16819 Has flag LOOK_NUL: yes
16820 Has flag LOOK_CR: no
@@ -16826,11 +16826,11 @@
16826 Has flag LOOK_INVALID: yes
16827 Has flag LOOK_ODD: no
16828 Has flag LOOK_SHORT: no}
16829
16830 utf-check 1130 utf-check-1130-2-105-0.jnk \
16831 {File "%TEMP%/utf-check-1130-2-105-0.jnk" has 16394 bytes.
16832 Starts with UTF-8 BOM: no
16833 Starts with UTF-16 BOM: no
16834 Looks like UTF-8: no
16835 Has flag LOOK_NUL: yes
16836 Has flag LOOK_CR: yes
@@ -16842,11 +16842,11 @@
16842 Has flag LOOK_INVALID: yes
16843 Has flag LOOK_ODD: no
16844 Has flag LOOK_SHORT: no}
16845
16846 utf-check 1131 utf-check-1131-2-105-1.jnk \
16847 {File "%TEMP%/utf-check-1131-2-105-1.jnk" has 16395 bytes.
16848 Starts with UTF-8 BOM: no
16849 Starts with UTF-16 BOM: no
16850 Looks like UTF-8: no
16851 Has flag LOOK_NUL: yes
16852 Has flag LOOK_CR: yes
@@ -16858,11 +16858,11 @@
16858 Has flag LOOK_INVALID: yes
16859 Has flag LOOK_ODD: no
16860 Has flag LOOK_SHORT: no}
16861
16862 utf-check 1132 utf-check-1132-2-106-0.jnk \
16863 {File "%TEMP%/utf-check-1132-2-106-0.jnk" has 16394 bytes.
16864 Starts with UTF-8 BOM: no
16865 Starts with UTF-16 BOM: no
16866 Looks like UTF-8: no
16867 Has flag LOOK_NUL: yes
16868 Has flag LOOK_CR: no
@@ -16874,11 +16874,11 @@
16874 Has flag LOOK_INVALID: yes
16875 Has flag LOOK_ODD: no
16876 Has flag LOOK_SHORT: no}
16877
16878 utf-check 1133 utf-check-1133-2-106-1.jnk \
16879 {File "%TEMP%/utf-check-1133-2-106-1.jnk" has 16395 bytes.
16880 Starts with UTF-8 BOM: no
16881 Starts with UTF-16 BOM: no
16882 Looks like UTF-8: no
16883 Has flag LOOK_NUL: yes
16884 Has flag LOOK_CR: no
@@ -16890,11 +16890,11 @@
16890 Has flag LOOK_INVALID: yes
16891 Has flag LOOK_ODD: no
16892 Has flag LOOK_SHORT: no}
16893
16894 utf-check 1134 utf-check-1134-2-107-0.jnk \
16895 {File "%TEMP%/utf-check-1134-2-107-0.jnk" has 16396 bytes.
16896 Starts with UTF-8 BOM: no
16897 Starts with UTF-16 BOM: no
16898 Looks like UTF-8: no
16899 Has flag LOOK_NUL: yes
16900 Has flag LOOK_CR: yes
@@ -16906,11 +16906,11 @@
16906 Has flag LOOK_INVALID: yes
16907 Has flag LOOK_ODD: no
16908 Has flag LOOK_SHORT: no}
16909
16910 utf-check 1135 utf-check-1135-2-107-1.jnk \
16911 {File "%TEMP%/utf-check-1135-2-107-1.jnk" has 16397 bytes.
16912 Starts with UTF-8 BOM: no
16913 Starts with UTF-16 BOM: no
16914 Looks like UTF-8: no
16915 Has flag LOOK_NUL: yes
16916 Has flag LOOK_CR: yes
@@ -16922,11 +16922,11 @@
16922 Has flag LOOK_INVALID: yes
16923 Has flag LOOK_ODD: no
16924 Has flag LOOK_SHORT: no}
16925
16926 utf-check 1136 utf-check-1136-2-108-0.jnk \
16927 {File "%TEMP%/utf-check-1136-2-108-0.jnk" has 16398 bytes.
16928 Starts with UTF-8 BOM: no
16929 Starts with UTF-16 BOM: no
16930 Looks like UTF-8: no
16931 Has flag LOOK_NUL: yes
16932 Has flag LOOK_CR: no
@@ -16938,11 +16938,11 @@
16938 Has flag LOOK_INVALID: yes
16939 Has flag LOOK_ODD: no
16940 Has flag LOOK_SHORT: no}
16941
16942 utf-check 1137 utf-check-1137-2-108-1.jnk \
16943 {File "%TEMP%/utf-check-1137-2-108-1.jnk" has 16399 bytes.
16944 Starts with UTF-8 BOM: no
16945 Starts with UTF-16 BOM: no
16946 Looks like UTF-8: no
16947 Has flag LOOK_NUL: yes
16948 Has flag LOOK_CR: no
@@ -16954,11 +16954,11 @@
16954 Has flag LOOK_INVALID: yes
16955 Has flag LOOK_ODD: no
16956 Has flag LOOK_SHORT: no}
16957
16958 utf-check 1138 utf-check-1138-2-109-0.jnk \
16959 {File "%TEMP%/utf-check-1138-2-109-0.jnk" has 16400 bytes.
16960 Starts with UTF-8 BOM: no
16961 Starts with UTF-16 BOM: no
16962 Looks like UTF-8: no
16963 Has flag LOOK_NUL: yes
16964 Has flag LOOK_CR: yes
@@ -16970,11 +16970,11 @@
16970 Has flag LOOK_INVALID: yes
16971 Has flag LOOK_ODD: no
16972 Has flag LOOK_SHORT: no}
16973
16974 utf-check 1139 utf-check-1139-2-109-1.jnk \
16975 {File "%TEMP%/utf-check-1139-2-109-1.jnk" has 16401 bytes.
16976 Starts with UTF-8 BOM: no
16977 Starts with UTF-16 BOM: no
16978 Looks like UTF-8: no
16979 Has flag LOOK_NUL: yes
16980 Has flag LOOK_CR: yes
@@ -16986,11 +16986,11 @@
16986 Has flag LOOK_INVALID: yes
16987 Has flag LOOK_ODD: no
16988 Has flag LOOK_SHORT: no}
16989
16990 utf-check 1140 utf-check-1140-2-110-0.jnk \
16991 {File "%TEMP%/utf-check-1140-2-110-0.jnk" has 16400 bytes.
16992 Starts with UTF-8 BOM: no
16993 Starts with UTF-16 BOM: no
16994 Looks like UTF-8: no
16995 Has flag LOOK_NUL: yes
16996 Has flag LOOK_CR: no
@@ -17002,11 +17002,11 @@
17002 Has flag LOOK_INVALID: yes
17003 Has flag LOOK_ODD: no
17004 Has flag LOOK_SHORT: no}
17005
17006 utf-check 1141 utf-check-1141-2-110-1.jnk \
17007 {File "%TEMP%/utf-check-1141-2-110-1.jnk" has 16401 bytes.
17008 Starts with UTF-8 BOM: no
17009 Starts with UTF-16 BOM: no
17010 Looks like UTF-8: no
17011 Has flag LOOK_NUL: yes
17012 Has flag LOOK_CR: no
@@ -17018,11 +17018,11 @@
17018 Has flag LOOK_INVALID: yes
17019 Has flag LOOK_ODD: no
17020 Has flag LOOK_SHORT: no}
17021
17022 utf-check 1142 utf-check-1142-2-111-0.jnk \
17023 {File "%TEMP%/utf-check-1142-2-111-0.jnk" has 16402 bytes.
17024 Starts with UTF-8 BOM: no
17025 Starts with UTF-16 BOM: no
17026 Looks like UTF-8: no
17027 Has flag LOOK_NUL: yes
17028 Has flag LOOK_CR: yes
@@ -17034,11 +17034,11 @@
17034 Has flag LOOK_INVALID: yes
17035 Has flag LOOK_ODD: no
17036 Has flag LOOK_SHORT: no}
17037
17038 utf-check 1143 utf-check-1143-2-111-1.jnk \
17039 {File "%TEMP%/utf-check-1143-2-111-1.jnk" has 16403 bytes.
17040 Starts with UTF-8 BOM: no
17041 Starts with UTF-16 BOM: no
17042 Looks like UTF-8: no
17043 Has flag LOOK_NUL: yes
17044 Has flag LOOK_CR: yes
@@ -22586,11 +22586,11 @@
22586 Has flag LOOK_INVALID: yes
22587 Has flag LOOK_ODD: no
22588 Has flag LOOK_SHORT: no}
22589
22590 utf-check 1490 utf-check-1490-3-80-0.jnk \
22591 {File "%TEMP%/utf-check-1490-3-80-0.jnk" has 16388 bytes.
22592 Starts with UTF-8 BOM: no
22593 Starts with UTF-16 BOM: no
22594 Looks like UTF-8: no
22595 Has flag LOOK_NUL: yes
22596 Has flag LOOK_CR: no
@@ -22602,11 +22602,11 @@
22602 Has flag LOOK_INVALID: yes
22603 Has flag LOOK_ODD: no
22604 Has flag LOOK_SHORT: no}
22605
22606 utf-check 1491 utf-check-1491-3-80-1.jnk \
22607 {File "%TEMP%/utf-check-1491-3-80-1.jnk" has 16389 bytes.
22608 Starts with UTF-8 BOM: no
22609 Starts with UTF-16 BOM: no
22610 Looks like UTF-8: no
22611 Has flag LOOK_NUL: yes
22612 Has flag LOOK_CR: no
@@ -22618,11 +22618,11 @@
22618 Has flag LOOK_INVALID: yes
22619 Has flag LOOK_ODD: no
22620 Has flag LOOK_SHORT: no}
22621
22622 utf-check 1492 utf-check-1492-3-81-0.jnk \
22623 {File "%TEMP%/utf-check-1492-3-81-0.jnk" has 16390 bytes.
22624 Starts with UTF-8 BOM: no
22625 Starts with UTF-16 BOM: no
22626 Looks like UTF-8: no
22627 Has flag LOOK_NUL: yes
22628 Has flag LOOK_CR: no
@@ -22634,11 +22634,11 @@
22634 Has flag LOOK_INVALID: yes
22635 Has flag LOOK_ODD: no
22636 Has flag LOOK_SHORT: no}
22637
22638 utf-check 1493 utf-check-1493-3-81-1.jnk \
22639 {File "%TEMP%/utf-check-1493-3-81-1.jnk" has 16391 bytes.
22640 Starts with UTF-8 BOM: no
22641 Starts with UTF-16 BOM: no
22642 Looks like UTF-8: no
22643 Has flag LOOK_NUL: yes
22644 Has flag LOOK_CR: no
@@ -22650,11 +22650,11 @@
22650 Has flag LOOK_INVALID: yes
22651 Has flag LOOK_ODD: no
22652 Has flag LOOK_SHORT: no}
22653
22654 utf-check 1494 utf-check-1494-3-82-0.jnk \
22655 {File "%TEMP%/utf-check-1494-3-82-0.jnk" has 16390 bytes.
22656 Starts with UTF-8 BOM: no
22657 Starts with UTF-16 BOM: no
22658 Looks like UTF-8: no
22659 Has flag LOOK_NUL: yes
22660 Has flag LOOK_CR: no
@@ -22666,11 +22666,11 @@
22666 Has flag LOOK_INVALID: yes
22667 Has flag LOOK_ODD: no
22668 Has flag LOOK_SHORT: no}
22669
22670 utf-check 1495 utf-check-1495-3-82-1.jnk \
22671 {File "%TEMP%/utf-check-1495-3-82-1.jnk" has 16391 bytes.
22672 Starts with UTF-8 BOM: no
22673 Starts with UTF-16 BOM: no
22674 Looks like UTF-8: no
22675 Has flag LOOK_NUL: yes
22676 Has flag LOOK_CR: no
@@ -22682,11 +22682,11 @@
22682 Has flag LOOK_INVALID: yes
22683 Has flag LOOK_ODD: no
22684 Has flag LOOK_SHORT: no}
22685
22686 utf-check 1496 utf-check-1496-3-83-0.jnk \
22687 {File "%TEMP%/utf-check-1496-3-83-0.jnk" has 16392 bytes.
22688 Starts with UTF-8 BOM: no
22689 Starts with UTF-16 BOM: no
22690 Looks like UTF-8: no
22691 Has flag LOOK_NUL: yes
22692 Has flag LOOK_CR: no
@@ -22698,11 +22698,11 @@
22698 Has flag LOOK_INVALID: yes
22699 Has flag LOOK_ODD: no
22700 Has flag LOOK_SHORT: no}
22701
22702 utf-check 1497 utf-check-1497-3-83-1.jnk \
22703 {File "%TEMP%/utf-check-1497-3-83-1.jnk" has 16393 bytes.
22704 Starts with UTF-8 BOM: no
22705 Starts with UTF-16 BOM: no
22706 Looks like UTF-8: no
22707 Has flag LOOK_NUL: yes
22708 Has flag LOOK_CR: no
@@ -22714,11 +22714,11 @@
22714 Has flag LOOK_INVALID: yes
22715 Has flag LOOK_ODD: no
22716 Has flag LOOK_SHORT: no}
22717
22718 utf-check 1498 utf-check-1498-3-84-0.jnk \
22719 {File "%TEMP%/utf-check-1498-3-84-0.jnk" has 16394 bytes.
22720 Starts with UTF-8 BOM: no
22721 Starts with UTF-16 BOM: no
22722 Looks like UTF-8: no
22723 Has flag LOOK_NUL: yes
22724 Has flag LOOK_CR: no
@@ -22730,11 +22730,11 @@
22730 Has flag LOOK_INVALID: yes
22731 Has flag LOOK_ODD: no
22732 Has flag LOOK_SHORT: no}
22733
22734 utf-check 1499 utf-check-1499-3-84-1.jnk \
22735 {File "%TEMP%/utf-check-1499-3-84-1.jnk" has 16395 bytes.
22736 Starts with UTF-8 BOM: no
22737 Starts with UTF-16 BOM: no
22738 Looks like UTF-8: no
22739 Has flag LOOK_NUL: yes
22740 Has flag LOOK_CR: no
@@ -22746,11 +22746,11 @@
22746 Has flag LOOK_INVALID: yes
22747 Has flag LOOK_ODD: no
22748 Has flag LOOK_SHORT: no}
22749
22750 utf-check 1500 utf-check-1500-3-85-0.jnk \
22751 {File "%TEMP%/utf-check-1500-3-85-0.jnk" has 16396 bytes.
22752 Starts with UTF-8 BOM: no
22753 Starts with UTF-16 BOM: no
22754 Looks like UTF-8: no
22755 Has flag LOOK_NUL: yes
22756 Has flag LOOK_CR: no
@@ -22762,11 +22762,11 @@
22762 Has flag LOOK_INVALID: yes
22763 Has flag LOOK_ODD: no
22764 Has flag LOOK_SHORT: no}
22765
22766 utf-check 1501 utf-check-1501-3-85-1.jnk \
22767 {File "%TEMP%/utf-check-1501-3-85-1.jnk" has 16397 bytes.
22768 Starts with UTF-8 BOM: no
22769 Starts with UTF-16 BOM: no
22770 Looks like UTF-8: no
22771 Has flag LOOK_NUL: yes
22772 Has flag LOOK_CR: no
@@ -22778,11 +22778,11 @@
22778 Has flag LOOK_INVALID: yes
22779 Has flag LOOK_ODD: no
22780 Has flag LOOK_SHORT: no}
22781
22782 utf-check 1502 utf-check-1502-3-86-0.jnk \
22783 {File "%TEMP%/utf-check-1502-3-86-0.jnk" has 16396 bytes.
22784 Starts with UTF-8 BOM: no
22785 Starts with UTF-16 BOM: no
22786 Looks like UTF-8: no
22787 Has flag LOOK_NUL: yes
22788 Has flag LOOK_CR: no
@@ -22794,11 +22794,11 @@
22794 Has flag LOOK_INVALID: yes
22795 Has flag LOOK_ODD: no
22796 Has flag LOOK_SHORT: no}
22797
22798 utf-check 1503 utf-check-1503-3-86-1.jnk \
22799 {File "%TEMP%/utf-check-1503-3-86-1.jnk" has 16397 bytes.
22800 Starts with UTF-8 BOM: no
22801 Starts with UTF-16 BOM: no
22802 Looks like UTF-8: no
22803 Has flag LOOK_NUL: yes
22804 Has flag LOOK_CR: no
@@ -22810,11 +22810,11 @@
22810 Has flag LOOK_INVALID: yes
22811 Has flag LOOK_ODD: no
22812 Has flag LOOK_SHORT: no}
22813
22814 utf-check 1504 utf-check-1504-3-87-0.jnk \
22815 {File "%TEMP%/utf-check-1504-3-87-0.jnk" has 16398 bytes.
22816 Starts with UTF-8 BOM: no
22817 Starts with UTF-16 BOM: no
22818 Looks like UTF-8: no
22819 Has flag LOOK_NUL: yes
22820 Has flag LOOK_CR: no
@@ -22826,11 +22826,11 @@
22826 Has flag LOOK_INVALID: yes
22827 Has flag LOOK_ODD: no
22828 Has flag LOOK_SHORT: no}
22829
22830 utf-check 1505 utf-check-1505-3-87-1.jnk \
22831 {File "%TEMP%/utf-check-1505-3-87-1.jnk" has 16399 bytes.
22832 Starts with UTF-8 BOM: no
22833 Starts with UTF-16 BOM: no
22834 Looks like UTF-8: no
22835 Has flag LOOK_NUL: yes
22836 Has flag LOOK_CR: no
@@ -22842,11 +22842,11 @@
22842 Has flag LOOK_INVALID: yes
22843 Has flag LOOK_ODD: no
22844 Has flag LOOK_SHORT: no}
22845
22846 utf-check 1506 utf-check-1506-3-88-0.jnk \
22847 {File "%TEMP%/utf-check-1506-3-88-0.jnk" has 16390 bytes.
22848 Starts with UTF-8 BOM: no
22849 Starts with UTF-16 BOM: no
22850 Looks like UTF-8: no
22851 Has flag LOOK_NUL: yes
22852 Has flag LOOK_CR: no
@@ -22858,11 +22858,11 @@
22858 Has flag LOOK_INVALID: yes
22859 Has flag LOOK_ODD: no
22860 Has flag LOOK_SHORT: no}
22861
22862 utf-check 1507 utf-check-1507-3-88-1.jnk \
22863 {File "%TEMP%/utf-check-1507-3-88-1.jnk" has 16391 bytes.
22864 Starts with UTF-8 BOM: no
22865 Starts with UTF-16 BOM: no
22866 Looks like UTF-8: no
22867 Has flag LOOK_NUL: yes
22868 Has flag LOOK_CR: no
@@ -22874,11 +22874,11 @@
22874 Has flag LOOK_INVALID: yes
22875 Has flag LOOK_ODD: no
22876 Has flag LOOK_SHORT: no}
22877
22878 utf-check 1508 utf-check-1508-3-89-0.jnk \
22879 {File "%TEMP%/utf-check-1508-3-89-0.jnk" has 16392 bytes.
22880 Starts with UTF-8 BOM: no
22881 Starts with UTF-16 BOM: no
22882 Looks like UTF-8: no
22883 Has flag LOOK_NUL: yes
22884 Has flag LOOK_CR: no
@@ -22890,11 +22890,11 @@
22890 Has flag LOOK_INVALID: yes
22891 Has flag LOOK_ODD: no
22892 Has flag LOOK_SHORT: no}
22893
22894 utf-check 1509 utf-check-1509-3-89-1.jnk \
22895 {File "%TEMP%/utf-check-1509-3-89-1.jnk" has 16393 bytes.
22896 Starts with UTF-8 BOM: no
22897 Starts with UTF-16 BOM: no
22898 Looks like UTF-8: no
22899 Has flag LOOK_NUL: yes
22900 Has flag LOOK_CR: no
@@ -22906,11 +22906,11 @@
22906 Has flag LOOK_INVALID: yes
22907 Has flag LOOK_ODD: no
22908 Has flag LOOK_SHORT: no}
22909
22910 utf-check 1510 utf-check-1510-3-90-0.jnk \
22911 {File "%TEMP%/utf-check-1510-3-90-0.jnk" has 16392 bytes.
22912 Starts with UTF-8 BOM: no
22913 Starts with UTF-16 BOM: no
22914 Looks like UTF-8: no
22915 Has flag LOOK_NUL: yes
22916 Has flag LOOK_CR: no
@@ -22922,11 +22922,11 @@
22922 Has flag LOOK_INVALID: yes
22923 Has flag LOOK_ODD: no
22924 Has flag LOOK_SHORT: no}
22925
22926 utf-check 1511 utf-check-1511-3-90-1.jnk \
22927 {File "%TEMP%/utf-check-1511-3-90-1.jnk" has 16393 bytes.
22928 Starts with UTF-8 BOM: no
22929 Starts with UTF-16 BOM: no
22930 Looks like UTF-8: no
22931 Has flag LOOK_NUL: yes
22932 Has flag LOOK_CR: no
@@ -22938,11 +22938,11 @@
22938 Has flag LOOK_INVALID: yes
22939 Has flag LOOK_ODD: no
22940 Has flag LOOK_SHORT: no}
22941
22942 utf-check 1512 utf-check-1512-3-91-0.jnk \
22943 {File "%TEMP%/utf-check-1512-3-91-0.jnk" has 16394 bytes.
22944 Starts with UTF-8 BOM: no
22945 Starts with UTF-16 BOM: no
22946 Looks like UTF-8: no
22947 Has flag LOOK_NUL: yes
22948 Has flag LOOK_CR: no
@@ -22954,11 +22954,11 @@
22954 Has flag LOOK_INVALID: yes
22955 Has flag LOOK_ODD: no
22956 Has flag LOOK_SHORT: no}
22957
22958 utf-check 1513 utf-check-1513-3-91-1.jnk \
22959 {File "%TEMP%/utf-check-1513-3-91-1.jnk" has 16395 bytes.
22960 Starts with UTF-8 BOM: no
22961 Starts with UTF-16 BOM: no
22962 Looks like UTF-8: no
22963 Has flag LOOK_NUL: yes
22964 Has flag LOOK_CR: no
@@ -22970,11 +22970,11 @@
22970 Has flag LOOK_INVALID: yes
22971 Has flag LOOK_ODD: no
22972 Has flag LOOK_SHORT: no}
22973
22974 utf-check 1514 utf-check-1514-3-92-0.jnk \
22975 {File "%TEMP%/utf-check-1514-3-92-0.jnk" has 16396 bytes.
22976 Starts with UTF-8 BOM: no
22977 Starts with UTF-16 BOM: no
22978 Looks like UTF-8: no
22979 Has flag LOOK_NUL: yes
22980 Has flag LOOK_CR: no
@@ -22986,11 +22986,11 @@
22986 Has flag LOOK_INVALID: yes
22987 Has flag LOOK_ODD: no
22988 Has flag LOOK_SHORT: no}
22989
22990 utf-check 1515 utf-check-1515-3-92-1.jnk \
22991 {File "%TEMP%/utf-check-1515-3-92-1.jnk" has 16397 bytes.
22992 Starts with UTF-8 BOM: no
22993 Starts with UTF-16 BOM: no
22994 Looks like UTF-8: no
22995 Has flag LOOK_NUL: yes
22996 Has flag LOOK_CR: no
@@ -23002,11 +23002,11 @@
23002 Has flag LOOK_INVALID: yes
23003 Has flag LOOK_ODD: no
23004 Has flag LOOK_SHORT: no}
23005
23006 utf-check 1516 utf-check-1516-3-93-0.jnk \
23007 {File "%TEMP%/utf-check-1516-3-93-0.jnk" has 16398 bytes.
23008 Starts with UTF-8 BOM: no
23009 Starts with UTF-16 BOM: no
23010 Looks like UTF-8: no
23011 Has flag LOOK_NUL: yes
23012 Has flag LOOK_CR: no
@@ -23018,11 +23018,11 @@
23018 Has flag LOOK_INVALID: yes
23019 Has flag LOOK_ODD: no
23020 Has flag LOOK_SHORT: no}
23021
23022 utf-check 1517 utf-check-1517-3-93-1.jnk \
23023 {File "%TEMP%/utf-check-1517-3-93-1.jnk" has 16399 bytes.
23024 Starts with UTF-8 BOM: no
23025 Starts with UTF-16 BOM: no
23026 Looks like UTF-8: no
23027 Has flag LOOK_NUL: yes
23028 Has flag LOOK_CR: no
@@ -23034,11 +23034,11 @@
23034 Has flag LOOK_INVALID: yes
23035 Has flag LOOK_ODD: no
23036 Has flag LOOK_SHORT: no}
23037
23038 utf-check 1518 utf-check-1518-3-94-0.jnk \
23039 {File "%TEMP%/utf-check-1518-3-94-0.jnk" has 16398 bytes.
23040 Starts with UTF-8 BOM: no
23041 Starts with UTF-16 BOM: no
23042 Looks like UTF-8: no
23043 Has flag LOOK_NUL: yes
23044 Has flag LOOK_CR: no
@@ -23050,11 +23050,11 @@
23050 Has flag LOOK_INVALID: yes
23051 Has flag LOOK_ODD: no
23052 Has flag LOOK_SHORT: no}
23053
23054 utf-check 1519 utf-check-1519-3-94-1.jnk \
23055 {File "%TEMP%/utf-check-1519-3-94-1.jnk" has 16399 bytes.
23056 Starts with UTF-8 BOM: no
23057 Starts with UTF-16 BOM: no
23058 Looks like UTF-8: no
23059 Has flag LOOK_NUL: yes
23060 Has flag LOOK_CR: no
@@ -23066,11 +23066,11 @@
23066 Has flag LOOK_INVALID: yes
23067 Has flag LOOK_ODD: no
23068 Has flag LOOK_SHORT: no}
23069
23070 utf-check 1520 utf-check-1520-3-95-0.jnk \
23071 {File "%TEMP%/utf-check-1520-3-95-0.jnk" has 16400 bytes.
23072 Starts with UTF-8 BOM: no
23073 Starts with UTF-16 BOM: no
23074 Looks like UTF-8: no
23075 Has flag LOOK_NUL: yes
23076 Has flag LOOK_CR: no
@@ -23082,11 +23082,11 @@
23082 Has flag LOOK_INVALID: yes
23083 Has flag LOOK_ODD: no
23084 Has flag LOOK_SHORT: no}
23085
23086 utf-check 1521 utf-check-1521-3-95-1.jnk \
23087 {File "%TEMP%/utf-check-1521-3-95-1.jnk" has 16401 bytes.
23088 Starts with UTF-8 BOM: no
23089 Starts with UTF-16 BOM: no
23090 Looks like UTF-8: no
23091 Has flag LOOK_NUL: yes
23092 Has flag LOOK_CR: no
@@ -23098,11 +23098,11 @@
23098 Has flag LOOK_INVALID: yes
23099 Has flag LOOK_ODD: no
23100 Has flag LOOK_SHORT: no}
23101
23102 utf-check 1522 utf-check-1522-3-96-0.jnk \
23103 {File "%TEMP%/utf-check-1522-3-96-0.jnk" has 16390 bytes.
23104 Starts with UTF-8 BOM: no
23105 Starts with UTF-16 BOM: no
23106 Looks like UTF-8: no
23107 Has flag LOOK_NUL: yes
23108 Has flag LOOK_CR: no
@@ -23114,11 +23114,11 @@
23114 Has flag LOOK_INVALID: yes
23115 Has flag LOOK_ODD: no
23116 Has flag LOOK_SHORT: no}
23117
23118 utf-check 1523 utf-check-1523-3-96-1.jnk \
23119 {File "%TEMP%/utf-check-1523-3-96-1.jnk" has 16391 bytes.
23120 Starts with UTF-8 BOM: no
23121 Starts with UTF-16 BOM: no
23122 Looks like UTF-8: no
23123 Has flag LOOK_NUL: yes
23124 Has flag LOOK_CR: no
@@ -23130,11 +23130,11 @@
23130 Has flag LOOK_INVALID: yes
23131 Has flag LOOK_ODD: no
23132 Has flag LOOK_SHORT: no}
23133
23134 utf-check 1524 utf-check-1524-3-97-0.jnk \
23135 {File "%TEMP%/utf-check-1524-3-97-0.jnk" has 16392 bytes.
23136 Starts with UTF-8 BOM: no
23137 Starts with UTF-16 BOM: no
23138 Looks like UTF-8: no
23139 Has flag LOOK_NUL: yes
23140 Has flag LOOK_CR: no
@@ -23146,11 +23146,11 @@
23146 Has flag LOOK_INVALID: yes
23147 Has flag LOOK_ODD: no
23148 Has flag LOOK_SHORT: no}
23149
23150 utf-check 1525 utf-check-1525-3-97-1.jnk \
23151 {File "%TEMP%/utf-check-1525-3-97-1.jnk" has 16393 bytes.
23152 Starts with UTF-8 BOM: no
23153 Starts with UTF-16 BOM: no
23154 Looks like UTF-8: no
23155 Has flag LOOK_NUL: yes
23156 Has flag LOOK_CR: no
@@ -23162,11 +23162,11 @@
23162 Has flag LOOK_INVALID: yes
23163 Has flag LOOK_ODD: no
23164 Has flag LOOK_SHORT: no}
23165
23166 utf-check 1526 utf-check-1526-3-98-0.jnk \
23167 {File "%TEMP%/utf-check-1526-3-98-0.jnk" has 16392 bytes.
23168 Starts with UTF-8 BOM: no
23169 Starts with UTF-16 BOM: no
23170 Looks like UTF-8: no
23171 Has flag LOOK_NUL: yes
23172 Has flag LOOK_CR: no
@@ -23178,11 +23178,11 @@
23178 Has flag LOOK_INVALID: yes
23179 Has flag LOOK_ODD: no
23180 Has flag LOOK_SHORT: no}
23181
23182 utf-check 1527 utf-check-1527-3-98-1.jnk \
23183 {File "%TEMP%/utf-check-1527-3-98-1.jnk" has 16393 bytes.
23184 Starts with UTF-8 BOM: no
23185 Starts with UTF-16 BOM: no
23186 Looks like UTF-8: no
23187 Has flag LOOK_NUL: yes
23188 Has flag LOOK_CR: no
@@ -23194,11 +23194,11 @@
23194 Has flag LOOK_INVALID: yes
23195 Has flag LOOK_ODD: no
23196 Has flag LOOK_SHORT: no}
23197
23198 utf-check 1528 utf-check-1528-3-99-0.jnk \
23199 {File "%TEMP%/utf-check-1528-3-99-0.jnk" has 16394 bytes.
23200 Starts with UTF-8 BOM: no
23201 Starts with UTF-16 BOM: no
23202 Looks like UTF-8: no
23203 Has flag LOOK_NUL: yes
23204 Has flag LOOK_CR: no
@@ -23210,11 +23210,11 @@
23210 Has flag LOOK_INVALID: yes
23211 Has flag LOOK_ODD: no
23212 Has flag LOOK_SHORT: no}
23213
23214 utf-check 1529 utf-check-1529-3-99-1.jnk \
23215 {File "%TEMP%/utf-check-1529-3-99-1.jnk" has 16395 bytes.
23216 Starts with UTF-8 BOM: no
23217 Starts with UTF-16 BOM: no
23218 Looks like UTF-8: no
23219 Has flag LOOK_NUL: yes
23220 Has flag LOOK_CR: no
@@ -23226,11 +23226,11 @@
23226 Has flag LOOK_INVALID: yes
23227 Has flag LOOK_ODD: no
23228 Has flag LOOK_SHORT: no}
23229
23230 utf-check 1530 utf-check-1530-3-100-0.jnk \
23231 {File "%TEMP%/utf-check-1530-3-100-0.jnk" has 16396 bytes.
23232 Starts with UTF-8 BOM: no
23233 Starts with UTF-16 BOM: no
23234 Looks like UTF-8: no
23235 Has flag LOOK_NUL: yes
23236 Has flag LOOK_CR: no
@@ -23242,11 +23242,11 @@
23242 Has flag LOOK_INVALID: yes
23243 Has flag LOOK_ODD: no
23244 Has flag LOOK_SHORT: no}
23245
23246 utf-check 1531 utf-check-1531-3-100-1.jnk \
23247 {File "%TEMP%/utf-check-1531-3-100-1.jnk" has 16397 bytes.
23248 Starts with UTF-8 BOM: no
23249 Starts with UTF-16 BOM: no
23250 Looks like UTF-8: no
23251 Has flag LOOK_NUL: yes
23252 Has flag LOOK_CR: no
@@ -23258,11 +23258,11 @@
23258 Has flag LOOK_INVALID: yes
23259 Has flag LOOK_ODD: no
23260 Has flag LOOK_SHORT: no}
23261
23262 utf-check 1532 utf-check-1532-3-101-0.jnk \
23263 {File "%TEMP%/utf-check-1532-3-101-0.jnk" has 16398 bytes.
23264 Starts with UTF-8 BOM: no
23265 Starts with UTF-16 BOM: no
23266 Looks like UTF-8: no
23267 Has flag LOOK_NUL: yes
23268 Has flag LOOK_CR: no
@@ -23274,11 +23274,11 @@
23274 Has flag LOOK_INVALID: yes
23275 Has flag LOOK_ODD: no
23276 Has flag LOOK_SHORT: no}
23277
23278 utf-check 1533 utf-check-1533-3-101-1.jnk \
23279 {File "%TEMP%/utf-check-1533-3-101-1.jnk" has 16399 bytes.
23280 Starts with UTF-8 BOM: no
23281 Starts with UTF-16 BOM: no
23282 Looks like UTF-8: no
23283 Has flag LOOK_NUL: yes
23284 Has flag LOOK_CR: no
@@ -23290,11 +23290,11 @@
23290 Has flag LOOK_INVALID: yes
23291 Has flag LOOK_ODD: no
23292 Has flag LOOK_SHORT: no}
23293
23294 utf-check 1534 utf-check-1534-3-102-0.jnk \
23295 {File "%TEMP%/utf-check-1534-3-102-0.jnk" has 16398 bytes.
23296 Starts with UTF-8 BOM: no
23297 Starts with UTF-16 BOM: no
23298 Looks like UTF-8: no
23299 Has flag LOOK_NUL: yes
23300 Has flag LOOK_CR: no
@@ -23306,11 +23306,11 @@
23306 Has flag LOOK_INVALID: yes
23307 Has flag LOOK_ODD: no
23308 Has flag LOOK_SHORT: no}
23309
23310 utf-check 1535 utf-check-1535-3-102-1.jnk \
23311 {File "%TEMP%/utf-check-1535-3-102-1.jnk" has 16399 bytes.
23312 Starts with UTF-8 BOM: no
23313 Starts with UTF-16 BOM: no
23314 Looks like UTF-8: no
23315 Has flag LOOK_NUL: yes
23316 Has flag LOOK_CR: no
@@ -23322,11 +23322,11 @@
23322 Has flag LOOK_INVALID: yes
23323 Has flag LOOK_ODD: no
23324 Has flag LOOK_SHORT: no}
23325
23326 utf-check 1536 utf-check-1536-3-103-0.jnk \
23327 {File "%TEMP%/utf-check-1536-3-103-0.jnk" has 16400 bytes.
23328 Starts with UTF-8 BOM: no
23329 Starts with UTF-16 BOM: no
23330 Looks like UTF-8: no
23331 Has flag LOOK_NUL: yes
23332 Has flag LOOK_CR: no
@@ -23338,11 +23338,11 @@
23338 Has flag LOOK_INVALID: yes
23339 Has flag LOOK_ODD: no
23340 Has flag LOOK_SHORT: no}
23341
23342 utf-check 1537 utf-check-1537-3-103-1.jnk \
23343 {File "%TEMP%/utf-check-1537-3-103-1.jnk" has 16401 bytes.
23344 Starts with UTF-8 BOM: no
23345 Starts with UTF-16 BOM: no
23346 Looks like UTF-8: no
23347 Has flag LOOK_NUL: yes
23348 Has flag LOOK_CR: no
@@ -23354,11 +23354,11 @@
23354 Has flag LOOK_INVALID: yes
23355 Has flag LOOK_ODD: no
23356 Has flag LOOK_SHORT: no}
23357
23358 utf-check 1538 utf-check-1538-3-104-0.jnk \
23359 {File "%TEMP%/utf-check-1538-3-104-0.jnk" has 16392 bytes.
23360 Starts with UTF-8 BOM: no
23361 Starts with UTF-16 BOM: no
23362 Looks like UTF-8: no
23363 Has flag LOOK_NUL: yes
23364 Has flag LOOK_CR: no
@@ -23370,11 +23370,11 @@
23370 Has flag LOOK_INVALID: yes
23371 Has flag LOOK_ODD: no
23372 Has flag LOOK_SHORT: no}
23373
23374 utf-check 1539 utf-check-1539-3-104-1.jnk \
23375 {File "%TEMP%/utf-check-1539-3-104-1.jnk" has 16393 bytes.
23376 Starts with UTF-8 BOM: no
23377 Starts with UTF-16 BOM: no
23378 Looks like UTF-8: no
23379 Has flag LOOK_NUL: yes
23380 Has flag LOOK_CR: no
@@ -23386,11 +23386,11 @@
23386 Has flag LOOK_INVALID: yes
23387 Has flag LOOK_ODD: no
23388 Has flag LOOK_SHORT: no}
23389
23390 utf-check 1540 utf-check-1540-3-105-0.jnk \
23391 {File "%TEMP%/utf-check-1540-3-105-0.jnk" has 16394 bytes.
23392 Starts with UTF-8 BOM: no
23393 Starts with UTF-16 BOM: no
23394 Looks like UTF-8: no
23395 Has flag LOOK_NUL: yes
23396 Has flag LOOK_CR: no
@@ -23402,11 +23402,11 @@
23402 Has flag LOOK_INVALID: yes
23403 Has flag LOOK_ODD: no
23404 Has flag LOOK_SHORT: no}
23405
23406 utf-check 1541 utf-check-1541-3-105-1.jnk \
23407 {File "%TEMP%/utf-check-1541-3-105-1.jnk" has 16395 bytes.
23408 Starts with UTF-8 BOM: no
23409 Starts with UTF-16 BOM: no
23410 Looks like UTF-8: no
23411 Has flag LOOK_NUL: yes
23412 Has flag LOOK_CR: no
@@ -23418,11 +23418,11 @@
23418 Has flag LOOK_INVALID: yes
23419 Has flag LOOK_ODD: no
23420 Has flag LOOK_SHORT: no}
23421
23422 utf-check 1542 utf-check-1542-3-106-0.jnk \
23423 {File "%TEMP%/utf-check-1542-3-106-0.jnk" has 16394 bytes.
23424 Starts with UTF-8 BOM: no
23425 Starts with UTF-16 BOM: no
23426 Looks like UTF-8: no
23427 Has flag LOOK_NUL: yes
23428 Has flag LOOK_CR: no
@@ -23434,11 +23434,11 @@
23434 Has flag LOOK_INVALID: yes
23435 Has flag LOOK_ODD: no
23436 Has flag LOOK_SHORT: no}
23437
23438 utf-check 1543 utf-check-1543-3-106-1.jnk \
23439 {File "%TEMP%/utf-check-1543-3-106-1.jnk" has 16395 bytes.
23440 Starts with UTF-8 BOM: no
23441 Starts with UTF-16 BOM: no
23442 Looks like UTF-8: no
23443 Has flag LOOK_NUL: yes
23444 Has flag LOOK_CR: no
@@ -23450,11 +23450,11 @@
23450 Has flag LOOK_INVALID: yes
23451 Has flag LOOK_ODD: no
23452 Has flag LOOK_SHORT: no}
23453
23454 utf-check 1544 utf-check-1544-3-107-0.jnk \
23455 {File "%TEMP%/utf-check-1544-3-107-0.jnk" has 16396 bytes.
23456 Starts with UTF-8 BOM: no
23457 Starts with UTF-16 BOM: no
23458 Looks like UTF-8: no
23459 Has flag LOOK_NUL: yes
23460 Has flag LOOK_CR: no
@@ -23466,11 +23466,11 @@
23466 Has flag LOOK_INVALID: yes
23467 Has flag LOOK_ODD: no
23468 Has flag LOOK_SHORT: no}
23469
23470 utf-check 1545 utf-check-1545-3-107-1.jnk \
23471 {File "%TEMP%/utf-check-1545-3-107-1.jnk" has 16397 bytes.
23472 Starts with UTF-8 BOM: no
23473 Starts with UTF-16 BOM: no
23474 Looks like UTF-8: no
23475 Has flag LOOK_NUL: yes
23476 Has flag LOOK_CR: no
@@ -23482,11 +23482,11 @@
23482 Has flag LOOK_INVALID: yes
23483 Has flag LOOK_ODD: no
23484 Has flag LOOK_SHORT: no}
23485
23486 utf-check 1546 utf-check-1546-3-108-0.jnk \
23487 {File "%TEMP%/utf-check-1546-3-108-0.jnk" has 16398 bytes.
23488 Starts with UTF-8 BOM: no
23489 Starts with UTF-16 BOM: no
23490 Looks like UTF-8: no
23491 Has flag LOOK_NUL: yes
23492 Has flag LOOK_CR: no
@@ -23498,11 +23498,11 @@
23498 Has flag LOOK_INVALID: yes
23499 Has flag LOOK_ODD: no
23500 Has flag LOOK_SHORT: no}
23501
23502 utf-check 1547 utf-check-1547-3-108-1.jnk \
23503 {File "%TEMP%/utf-check-1547-3-108-1.jnk" has 16399 bytes.
23504 Starts with UTF-8 BOM: no
23505 Starts with UTF-16 BOM: no
23506 Looks like UTF-8: no
23507 Has flag LOOK_NUL: yes
23508 Has flag LOOK_CR: no
@@ -23514,11 +23514,11 @@
23514 Has flag LOOK_INVALID: yes
23515 Has flag LOOK_ODD: no
23516 Has flag LOOK_SHORT: no}
23517
23518 utf-check 1548 utf-check-1548-3-109-0.jnk \
23519 {File "%TEMP%/utf-check-1548-3-109-0.jnk" has 16400 bytes.
23520 Starts with UTF-8 BOM: no
23521 Starts with UTF-16 BOM: no
23522 Looks like UTF-8: no
23523 Has flag LOOK_NUL: yes
23524 Has flag LOOK_CR: no
@@ -23530,11 +23530,11 @@
23530 Has flag LOOK_INVALID: yes
23531 Has flag LOOK_ODD: no
23532 Has flag LOOK_SHORT: no}
23533
23534 utf-check 1549 utf-check-1549-3-109-1.jnk \
23535 {File "%TEMP%/utf-check-1549-3-109-1.jnk" has 16401 bytes.
23536 Starts with UTF-8 BOM: no
23537 Starts with UTF-16 BOM: no
23538 Looks like UTF-8: no
23539 Has flag LOOK_NUL: yes
23540 Has flag LOOK_CR: no
@@ -23546,11 +23546,11 @@
23546 Has flag LOOK_INVALID: yes
23547 Has flag LOOK_ODD: no
23548 Has flag LOOK_SHORT: no}
23549
23550 utf-check 1550 utf-check-1550-3-110-0.jnk \
23551 {File "%TEMP%/utf-check-1550-3-110-0.jnk" has 16400 bytes.
23552 Starts with UTF-8 BOM: no
23553 Starts with UTF-16 BOM: no
23554 Looks like UTF-8: no
23555 Has flag LOOK_NUL: yes
23556 Has flag LOOK_CR: no
@@ -23562,11 +23562,11 @@
23562 Has flag LOOK_INVALID: yes
23563 Has flag LOOK_ODD: no
23564 Has flag LOOK_SHORT: no}
23565
23566 utf-check 1551 utf-check-1551-3-110-1.jnk \
23567 {File "%TEMP%/utf-check-1551-3-110-1.jnk" has 16401 bytes.
23568 Starts with UTF-8 BOM: no
23569 Starts with UTF-16 BOM: no
23570 Looks like UTF-8: no
23571 Has flag LOOK_NUL: yes
23572 Has flag LOOK_CR: no
@@ -23578,11 +23578,11 @@
23578 Has flag LOOK_INVALID: yes
23579 Has flag LOOK_ODD: no
23580 Has flag LOOK_SHORT: no}
23581
23582 utf-check 1552 utf-check-1552-3-111-0.jnk \
23583 {File "%TEMP%/utf-check-1552-3-111-0.jnk" has 16402 bytes.
23584 Starts with UTF-8 BOM: no
23585 Starts with UTF-16 BOM: no
23586 Looks like UTF-8: no
23587 Has flag LOOK_NUL: yes
23588 Has flag LOOK_CR: no
@@ -23594,11 +23594,11 @@
23594 Has flag LOOK_INVALID: yes
23595 Has flag LOOK_ODD: no
23596 Has flag LOOK_SHORT: no}
23597
23598 utf-check 1553 utf-check-1553-3-111-1.jnk \
23599 {File "%TEMP%/utf-check-1553-3-111-1.jnk" has 16403 bytes.
23600 Starts with UTF-8 BOM: no
23601 Starts with UTF-16 BOM: no
23602 Looks like UTF-8: no
23603 Has flag LOOK_NUL: yes
23604 Has flag LOOK_CR: no
23605
--- test/utf.test
+++ test/utf.test
@@ -141,42 +141,42 @@
141 75 [appendArgs \x00 ABCD\x00\n] \
142 76 [appendArgs \x00 A\x00\r\n] \
143 77 [appendArgs \x00 AB\x00\r\n] \
144 78 [appendArgs \x00 ABC\x00\r\n] \
145 79 [appendArgs \x00 ABCD\x00\r\n] \
146 80 [string repeat A 32769] \
147 81 [string repeat A 32769]\r \
148 82 [string repeat A 32769]\n \
149 83 [string repeat A 32769]\r\n \
150 84 [string repeat ABCD 8196] \
151 85 [string repeat ABCD 8196]\r \
152 86 [string repeat ABCD 8196]\n \
153 87 [string repeat ABCD 8196]\r\n \
154 88 \x00[string repeat A 32769] \
155 89 \x00[string repeat A 32769]\r \
156 90 \x00[string repeat A 32769]\n \
157 91 \x00[string repeat A 32769]\r\n \
158 92 \x00[string repeat ABCD 8196] \
159 93 \x00[string repeat ABCD 8196]\r \
160 94 \x00[string repeat ABCD 8196]\n \
161 95 \x00[string repeat ABCD 8196]\r\n \
162 96 [string repeat A 32769]\x00 \
163 97 [string repeat A 32769]\x00\r \
164 98 [string repeat A 32769]\x00\n \
165 99 [string repeat A 32769]\x00\r\n \
166 100 [string repeat ABCD 8196]\x00 \
167 101 [string repeat ABCD 8196]\x00\r \
168 102 [string repeat ABCD 8196]\x00\n \
169 103 [string repeat ABCD 8196]\x00\r\n \
170 104 \x00[string repeat A 32769]\x00 \
171 105 \x00[string repeat A 32769]\x00\r \
172 106 \x00[string repeat A 32769]\x00\n \
173 107 \x00[string repeat A 32769]\x00\r\n \
174 108 \x00[string repeat ABCD 8196]\x00 \
175 109 \x00[string repeat ABCD 8196]\x00\r \
176 110 \x00[string repeat ABCD 8196]\x00\n \
177 111 \x00[string repeat ABCD 8196]\x00\r\n \
178 112 \u000A\u000D \
179 113 \u0A00\u0D00 \
180 114 \u000D\u000A \
181 115 \u0D00\u0A00 \
182 116 \x00\u000A\u000D \
@@ -2906,11 +2906,11 @@
2906 Has flag LOOK_INVALID: no
2907 Has flag LOOK_ODD: no
2908 Has flag LOOK_SHORT: no}
2909
2910 utf-check 260 utf-check-260-0-80-0.jnk \
2911 {File "%TEMP%/utf-check-260-0-80-0.jnk" has 32769 bytes.
2912 Starts with UTF-8 BOM: no
2913 Starts with UTF-16 BOM: no
2914 Looks like UTF-8: no
2915 Has flag LOOK_NUL: no
2916 Has flag LOOK_CR: no
@@ -2922,11 +2922,11 @@
2922 Has flag LOOK_INVALID: no
2923 Has flag LOOK_ODD: no
2924 Has flag LOOK_SHORT: no}
2925
2926 utf-check 261 utf-check-261-0-80-1.jnk \
2927 {File "%TEMP%/utf-check-261-0-80-1.jnk" has 32770 bytes.
2928 Starts with UTF-8 BOM: no
2929 Starts with UTF-16 BOM: no
2930 Looks like UTF-8: no
2931 Has flag LOOK_NUL: no
2932 Has flag LOOK_CR: no
@@ -2938,11 +2938,11 @@
2938 Has flag LOOK_INVALID: no
2939 Has flag LOOK_ODD: no
2940 Has flag LOOK_SHORT: no}
2941
2942 utf-check 262 utf-check-262-0-81-0.jnk \
2943 {File "%TEMP%/utf-check-262-0-81-0.jnk" has 32770 bytes.
2944 Starts with UTF-8 BOM: no
2945 Starts with UTF-16 BOM: no
2946 Looks like UTF-8: no
2947 Has flag LOOK_NUL: no
2948 Has flag LOOK_CR: yes
@@ -2954,11 +2954,11 @@
2954 Has flag LOOK_INVALID: no
2955 Has flag LOOK_ODD: no
2956 Has flag LOOK_SHORT: no}
2957
2958 utf-check 263 utf-check-263-0-81-1.jnk \
2959 {File "%TEMP%/utf-check-263-0-81-1.jnk" has 32771 bytes.
2960 Starts with UTF-8 BOM: no
2961 Starts with UTF-16 BOM: no
2962 Looks like UTF-8: no
2963 Has flag LOOK_NUL: no
2964 Has flag LOOK_CR: yes
@@ -2970,11 +2970,11 @@
2970 Has flag LOOK_INVALID: no
2971 Has flag LOOK_ODD: no
2972 Has flag LOOK_SHORT: no}
2973
2974 utf-check 264 utf-check-264-0-82-0.jnk \
2975 {File "%TEMP%/utf-check-264-0-82-0.jnk" has 32770 bytes.
2976 Starts with UTF-8 BOM: no
2977 Starts with UTF-16 BOM: no
2978 Looks like UTF-8: no
2979 Has flag LOOK_NUL: no
2980 Has flag LOOK_CR: no
@@ -2986,11 +2986,11 @@
2986 Has flag LOOK_INVALID: no
2987 Has flag LOOK_ODD: no
2988 Has flag LOOK_SHORT: no}
2989
2990 utf-check 265 utf-check-265-0-82-1.jnk \
2991 {File "%TEMP%/utf-check-265-0-82-1.jnk" has 32771 bytes.
2992 Starts with UTF-8 BOM: no
2993 Starts with UTF-16 BOM: no
2994 Looks like UTF-8: no
2995 Has flag LOOK_NUL: no
2996 Has flag LOOK_CR: no
@@ -3002,11 +3002,11 @@
3002 Has flag LOOK_INVALID: no
3003 Has flag LOOK_ODD: no
3004 Has flag LOOK_SHORT: no}
3005
3006 utf-check 266 utf-check-266-0-83-0.jnk \
3007 {File "%TEMP%/utf-check-266-0-83-0.jnk" has 32771 bytes.
3008 Starts with UTF-8 BOM: no
3009 Starts with UTF-16 BOM: no
3010 Looks like UTF-8: no
3011 Has flag LOOK_NUL: no
3012 Has flag LOOK_CR: yes
@@ -3018,11 +3018,11 @@
3018 Has flag LOOK_INVALID: no
3019 Has flag LOOK_ODD: no
3020 Has flag LOOK_SHORT: no}
3021
3022 utf-check 267 utf-check-267-0-83-1.jnk \
3023 {File "%TEMP%/utf-check-267-0-83-1.jnk" has 32772 bytes.
3024 Starts with UTF-8 BOM: no
3025 Starts with UTF-16 BOM: no
3026 Looks like UTF-8: no
3027 Has flag LOOK_NUL: no
3028 Has flag LOOK_CR: yes
@@ -3034,11 +3034,11 @@
3034 Has flag LOOK_INVALID: no
3035 Has flag LOOK_ODD: no
3036 Has flag LOOK_SHORT: no}
3037
3038 utf-check 268 utf-check-268-0-84-0.jnk \
3039 {File "%TEMP%/utf-check-268-0-84-0.jnk" has 32784 bytes.
3040 Starts with UTF-8 BOM: no
3041 Starts with UTF-16 BOM: no
3042 Looks like UTF-8: no
3043 Has flag LOOK_NUL: no
3044 Has flag LOOK_CR: no
@@ -3050,11 +3050,11 @@
3050 Has flag LOOK_INVALID: no
3051 Has flag LOOK_ODD: no
3052 Has flag LOOK_SHORT: no}
3053
3054 utf-check 269 utf-check-269-0-84-1.jnk \
3055 {File "%TEMP%/utf-check-269-0-84-1.jnk" has 32785 bytes.
3056 Starts with UTF-8 BOM: no
3057 Starts with UTF-16 BOM: no
3058 Looks like UTF-8: no
3059 Has flag LOOK_NUL: no
3060 Has flag LOOK_CR: no
@@ -3066,11 +3066,11 @@
3066 Has flag LOOK_INVALID: no
3067 Has flag LOOK_ODD: no
3068 Has flag LOOK_SHORT: no}
3069
3070 utf-check 270 utf-check-270-0-85-0.jnk \
3071 {File "%TEMP%/utf-check-270-0-85-0.jnk" has 32785 bytes.
3072 Starts with UTF-8 BOM: no
3073 Starts with UTF-16 BOM: no
3074 Looks like UTF-8: no
3075 Has flag LOOK_NUL: no
3076 Has flag LOOK_CR: yes
@@ -3082,11 +3082,11 @@
3082 Has flag LOOK_INVALID: no
3083 Has flag LOOK_ODD: no
3084 Has flag LOOK_SHORT: no}
3085
3086 utf-check 271 utf-check-271-0-85-1.jnk \
3087 {File "%TEMP%/utf-check-271-0-85-1.jnk" has 32786 bytes.
3088 Starts with UTF-8 BOM: no
3089 Starts with UTF-16 BOM: no
3090 Looks like UTF-8: no
3091 Has flag LOOK_NUL: no
3092 Has flag LOOK_CR: yes
@@ -3098,11 +3098,11 @@
3098 Has flag LOOK_INVALID: no
3099 Has flag LOOK_ODD: no
3100 Has flag LOOK_SHORT: no}
3101
3102 utf-check 272 utf-check-272-0-86-0.jnk \
3103 {File "%TEMP%/utf-check-272-0-86-0.jnk" has 32785 bytes.
3104 Starts with UTF-8 BOM: no
3105 Starts with UTF-16 BOM: no
3106 Looks like UTF-8: no
3107 Has flag LOOK_NUL: no
3108 Has flag LOOK_CR: no
@@ -3114,11 +3114,11 @@
3114 Has flag LOOK_INVALID: no
3115 Has flag LOOK_ODD: no
3116 Has flag LOOK_SHORT: no}
3117
3118 utf-check 273 utf-check-273-0-86-1.jnk \
3119 {File "%TEMP%/utf-check-273-0-86-1.jnk" has 32786 bytes.
3120 Starts with UTF-8 BOM: no
3121 Starts with UTF-16 BOM: no
3122 Looks like UTF-8: no
3123 Has flag LOOK_NUL: no
3124 Has flag LOOK_CR: no
@@ -3130,11 +3130,11 @@
3130 Has flag LOOK_INVALID: no
3131 Has flag LOOK_ODD: no
3132 Has flag LOOK_SHORT: no}
3133
3134 utf-check 274 utf-check-274-0-87-0.jnk \
3135 {File "%TEMP%/utf-check-274-0-87-0.jnk" has 32786 bytes.
3136 Starts with UTF-8 BOM: no
3137 Starts with UTF-16 BOM: no
3138 Looks like UTF-8: no
3139 Has flag LOOK_NUL: no
3140 Has flag LOOK_CR: yes
@@ -3146,11 +3146,11 @@
3146 Has flag LOOK_INVALID: no
3147 Has flag LOOK_ODD: no
3148 Has flag LOOK_SHORT: no}
3149
3150 utf-check 275 utf-check-275-0-87-1.jnk \
3151 {File "%TEMP%/utf-check-275-0-87-1.jnk" has 32787 bytes.
3152 Starts with UTF-8 BOM: no
3153 Starts with UTF-16 BOM: no
3154 Looks like UTF-8: no
3155 Has flag LOOK_NUL: no
3156 Has flag LOOK_CR: yes
@@ -3162,11 +3162,11 @@
3162 Has flag LOOK_INVALID: no
3163 Has flag LOOK_ODD: no
3164 Has flag LOOK_SHORT: no}
3165
3166 utf-check 276 utf-check-276-0-88-0.jnk \
3167 {File "%TEMP%/utf-check-276-0-88-0.jnk" has 32770 bytes.
3168 Starts with UTF-8 BOM: no
3169 Starts with UTF-16 BOM: no
3170 Looks like UTF-8: no
3171 Has flag LOOK_NUL: yes
3172 Has flag LOOK_CR: no
@@ -3178,11 +3178,11 @@
3178 Has flag LOOK_INVALID: no
3179 Has flag LOOK_ODD: no
3180 Has flag LOOK_SHORT: no}
3181
3182 utf-check 277 utf-check-277-0-88-1.jnk \
3183 {File "%TEMP%/utf-check-277-0-88-1.jnk" has 32771 bytes.
3184 Starts with UTF-8 BOM: no
3185 Starts with UTF-16 BOM: no
3186 Looks like UTF-8: no
3187 Has flag LOOK_NUL: yes
3188 Has flag LOOK_CR: no
@@ -3194,11 +3194,11 @@
3194 Has flag LOOK_INVALID: no
3195 Has flag LOOK_ODD: no
3196 Has flag LOOK_SHORT: no}
3197
3198 utf-check 278 utf-check-278-0-89-0.jnk \
3199 {File "%TEMP%/utf-check-278-0-89-0.jnk" has 32771 bytes.
3200 Starts with UTF-8 BOM: no
3201 Starts with UTF-16 BOM: no
3202 Looks like UTF-8: no
3203 Has flag LOOK_NUL: yes
3204 Has flag LOOK_CR: yes
@@ -3210,11 +3210,11 @@
3210 Has flag LOOK_INVALID: no
3211 Has flag LOOK_ODD: no
3212 Has flag LOOK_SHORT: no}
3213
3214 utf-check 279 utf-check-279-0-89-1.jnk \
3215 {File "%TEMP%/utf-check-279-0-89-1.jnk" has 32772 bytes.
3216 Starts with UTF-8 BOM: no
3217 Starts with UTF-16 BOM: no
3218 Looks like UTF-8: no
3219 Has flag LOOK_NUL: yes
3220 Has flag LOOK_CR: yes
@@ -3226,11 +3226,11 @@
3226 Has flag LOOK_INVALID: no
3227 Has flag LOOK_ODD: no
3228 Has flag LOOK_SHORT: no}
3229
3230 utf-check 280 utf-check-280-0-90-0.jnk \
3231 {File "%TEMP%/utf-check-280-0-90-0.jnk" has 32771 bytes.
3232 Starts with UTF-8 BOM: no
3233 Starts with UTF-16 BOM: no
3234 Looks like UTF-8: no
3235 Has flag LOOK_NUL: yes
3236 Has flag LOOK_CR: no
@@ -3242,11 +3242,11 @@
3242 Has flag LOOK_INVALID: no
3243 Has flag LOOK_ODD: no
3244 Has flag LOOK_SHORT: no}
3245
3246 utf-check 281 utf-check-281-0-90-1.jnk \
3247 {File "%TEMP%/utf-check-281-0-90-1.jnk" has 32772 bytes.
3248 Starts with UTF-8 BOM: no
3249 Starts with UTF-16 BOM: no
3250 Looks like UTF-8: no
3251 Has flag LOOK_NUL: yes
3252 Has flag LOOK_CR: no
@@ -3258,11 +3258,11 @@
3258 Has flag LOOK_INVALID: no
3259 Has flag LOOK_ODD: no
3260 Has flag LOOK_SHORT: no}
3261
3262 utf-check 282 utf-check-282-0-91-0.jnk \
3263 {File "%TEMP%/utf-check-282-0-91-0.jnk" has 32772 bytes.
3264 Starts with UTF-8 BOM: no
3265 Starts with UTF-16 BOM: no
3266 Looks like UTF-8: no
3267 Has flag LOOK_NUL: yes
3268 Has flag LOOK_CR: yes
@@ -3274,11 +3274,11 @@
3274 Has flag LOOK_INVALID: no
3275 Has flag LOOK_ODD: no
3276 Has flag LOOK_SHORT: no}
3277
3278 utf-check 283 utf-check-283-0-91-1.jnk \
3279 {File "%TEMP%/utf-check-283-0-91-1.jnk" has 32773 bytes.
3280 Starts with UTF-8 BOM: no
3281 Starts with UTF-16 BOM: no
3282 Looks like UTF-8: no
3283 Has flag LOOK_NUL: yes
3284 Has flag LOOK_CR: yes
@@ -3290,11 +3290,11 @@
3290 Has flag LOOK_INVALID: no
3291 Has flag LOOK_ODD: no
3292 Has flag LOOK_SHORT: no}
3293
3294 utf-check 284 utf-check-284-0-92-0.jnk \
3295 {File "%TEMP%/utf-check-284-0-92-0.jnk" has 32785 bytes.
3296 Starts with UTF-8 BOM: no
3297 Starts with UTF-16 BOM: no
3298 Looks like UTF-8: no
3299 Has flag LOOK_NUL: yes
3300 Has flag LOOK_CR: no
@@ -3306,11 +3306,11 @@
3306 Has flag LOOK_INVALID: no
3307 Has flag LOOK_ODD: no
3308 Has flag LOOK_SHORT: no}
3309
3310 utf-check 285 utf-check-285-0-92-1.jnk \
3311 {File "%TEMP%/utf-check-285-0-92-1.jnk" has 32786 bytes.
3312 Starts with UTF-8 BOM: no
3313 Starts with UTF-16 BOM: no
3314 Looks like UTF-8: no
3315 Has flag LOOK_NUL: yes
3316 Has flag LOOK_CR: no
@@ -3322,11 +3322,11 @@
3322 Has flag LOOK_INVALID: no
3323 Has flag LOOK_ODD: no
3324 Has flag LOOK_SHORT: no}
3325
3326 utf-check 286 utf-check-286-0-93-0.jnk \
3327 {File "%TEMP%/utf-check-286-0-93-0.jnk" has 32786 bytes.
3328 Starts with UTF-8 BOM: no
3329 Starts with UTF-16 BOM: no
3330 Looks like UTF-8: no
3331 Has flag LOOK_NUL: yes
3332 Has flag LOOK_CR: yes
@@ -3338,11 +3338,11 @@
3338 Has flag LOOK_INVALID: no
3339 Has flag LOOK_ODD: no
3340 Has flag LOOK_SHORT: no}
3341
3342 utf-check 287 utf-check-287-0-93-1.jnk \
3343 {File "%TEMP%/utf-check-287-0-93-1.jnk" has 32787 bytes.
3344 Starts with UTF-8 BOM: no
3345 Starts with UTF-16 BOM: no
3346 Looks like UTF-8: no
3347 Has flag LOOK_NUL: yes
3348 Has flag LOOK_CR: yes
@@ -3354,11 +3354,11 @@
3354 Has flag LOOK_INVALID: no
3355 Has flag LOOK_ODD: no
3356 Has flag LOOK_SHORT: no}
3357
3358 utf-check 288 utf-check-288-0-94-0.jnk \
3359 {File "%TEMP%/utf-check-288-0-94-0.jnk" has 32786 bytes.
3360 Starts with UTF-8 BOM: no
3361 Starts with UTF-16 BOM: no
3362 Looks like UTF-8: no
3363 Has flag LOOK_NUL: yes
3364 Has flag LOOK_CR: no
@@ -3370,11 +3370,11 @@
3370 Has flag LOOK_INVALID: no
3371 Has flag LOOK_ODD: no
3372 Has flag LOOK_SHORT: no}
3373
3374 utf-check 289 utf-check-289-0-94-1.jnk \
3375 {File "%TEMP%/utf-check-289-0-94-1.jnk" has 32787 bytes.
3376 Starts with UTF-8 BOM: no
3377 Starts with UTF-16 BOM: no
3378 Looks like UTF-8: no
3379 Has flag LOOK_NUL: yes
3380 Has flag LOOK_CR: no
@@ -3386,11 +3386,11 @@
3386 Has flag LOOK_INVALID: no
3387 Has flag LOOK_ODD: no
3388 Has flag LOOK_SHORT: no}
3389
3390 utf-check 290 utf-check-290-0-95-0.jnk \
3391 {File "%TEMP%/utf-check-290-0-95-0.jnk" has 32787 bytes.
3392 Starts with UTF-8 BOM: no
3393 Starts with UTF-16 BOM: no
3394 Looks like UTF-8: no
3395 Has flag LOOK_NUL: yes
3396 Has flag LOOK_CR: yes
@@ -3402,11 +3402,11 @@
3402 Has flag LOOK_INVALID: no
3403 Has flag LOOK_ODD: no
3404 Has flag LOOK_SHORT: no}
3405
3406 utf-check 291 utf-check-291-0-95-1.jnk \
3407 {File "%TEMP%/utf-check-291-0-95-1.jnk" has 32788 bytes.
3408 Starts with UTF-8 BOM: no
3409 Starts with UTF-16 BOM: no
3410 Looks like UTF-8: no
3411 Has flag LOOK_NUL: yes
3412 Has flag LOOK_CR: yes
@@ -3418,11 +3418,11 @@
3418 Has flag LOOK_INVALID: no
3419 Has flag LOOK_ODD: no
3420 Has flag LOOK_SHORT: no}
3421
3422 utf-check 292 utf-check-292-0-96-0.jnk \
3423 {File "%TEMP%/utf-check-292-0-96-0.jnk" has 32770 bytes.
3424 Starts with UTF-8 BOM: no
3425 Starts with UTF-16 BOM: no
3426 Looks like UTF-8: no
3427 Has flag LOOK_NUL: yes
3428 Has flag LOOK_CR: no
@@ -3434,11 +3434,11 @@
3434 Has flag LOOK_INVALID: no
3435 Has flag LOOK_ODD: no
3436 Has flag LOOK_SHORT: no}
3437
3438 utf-check 293 utf-check-293-0-96-1.jnk \
3439 {File "%TEMP%/utf-check-293-0-96-1.jnk" has 32771 bytes.
3440 Starts with UTF-8 BOM: no
3441 Starts with UTF-16 BOM: no
3442 Looks like UTF-8: no
3443 Has flag LOOK_NUL: yes
3444 Has flag LOOK_CR: no
@@ -3450,11 +3450,11 @@
3450 Has flag LOOK_INVALID: no
3451 Has flag LOOK_ODD: no
3452 Has flag LOOK_SHORT: no}
3453
3454 utf-check 294 utf-check-294-0-97-0.jnk \
3455 {File "%TEMP%/utf-check-294-0-97-0.jnk" has 32771 bytes.
3456 Starts with UTF-8 BOM: no
3457 Starts with UTF-16 BOM: no
3458 Looks like UTF-8: no
3459 Has flag LOOK_NUL: yes
3460 Has flag LOOK_CR: yes
@@ -3466,11 +3466,11 @@
3466 Has flag LOOK_INVALID: no
3467 Has flag LOOK_ODD: no
3468 Has flag LOOK_SHORT: no}
3469
3470 utf-check 295 utf-check-295-0-97-1.jnk \
3471 {File "%TEMP%/utf-check-295-0-97-1.jnk" has 32772 bytes.
3472 Starts with UTF-8 BOM: no
3473 Starts with UTF-16 BOM: no
3474 Looks like UTF-8: no
3475 Has flag LOOK_NUL: yes
3476 Has flag LOOK_CR: yes
@@ -3482,11 +3482,11 @@
3482 Has flag LOOK_INVALID: no
3483 Has flag LOOK_ODD: no
3484 Has flag LOOK_SHORT: no}
3485
3486 utf-check 296 utf-check-296-0-98-0.jnk \
3487 {File "%TEMP%/utf-check-296-0-98-0.jnk" has 32771 bytes.
3488 Starts with UTF-8 BOM: no
3489 Starts with UTF-16 BOM: no
3490 Looks like UTF-8: no
3491 Has flag LOOK_NUL: yes
3492 Has flag LOOK_CR: no
@@ -3498,11 +3498,11 @@
3498 Has flag LOOK_INVALID: no
3499 Has flag LOOK_ODD: no
3500 Has flag LOOK_SHORT: no}
3501
3502 utf-check 297 utf-check-297-0-98-1.jnk \
3503 {File "%TEMP%/utf-check-297-0-98-1.jnk" has 32772 bytes.
3504 Starts with UTF-8 BOM: no
3505 Starts with UTF-16 BOM: no
3506 Looks like UTF-8: no
3507 Has flag LOOK_NUL: yes
3508 Has flag LOOK_CR: no
@@ -3514,11 +3514,11 @@
3514 Has flag LOOK_INVALID: no
3515 Has flag LOOK_ODD: no
3516 Has flag LOOK_SHORT: no}
3517
3518 utf-check 298 utf-check-298-0-99-0.jnk \
3519 {File "%TEMP%/utf-check-298-0-99-0.jnk" has 32772 bytes.
3520 Starts with UTF-8 BOM: no
3521 Starts with UTF-16 BOM: no
3522 Looks like UTF-8: no
3523 Has flag LOOK_NUL: yes
3524 Has flag LOOK_CR: yes
@@ -3530,11 +3530,11 @@
3530 Has flag LOOK_INVALID: no
3531 Has flag LOOK_ODD: no
3532 Has flag LOOK_SHORT: no}
3533
3534 utf-check 299 utf-check-299-0-99-1.jnk \
3535 {File "%TEMP%/utf-check-299-0-99-1.jnk" has 32773 bytes.
3536 Starts with UTF-8 BOM: no
3537 Starts with UTF-16 BOM: no
3538 Looks like UTF-8: no
3539 Has flag LOOK_NUL: yes
3540 Has flag LOOK_CR: yes
@@ -3546,11 +3546,11 @@
3546 Has flag LOOK_INVALID: no
3547 Has flag LOOK_ODD: no
3548 Has flag LOOK_SHORT: no}
3549
3550 utf-check 300 utf-check-300-0-100-0.jnk \
3551 {File "%TEMP%/utf-check-300-0-100-0.jnk" has 32785 bytes.
3552 Starts with UTF-8 BOM: no
3553 Starts with UTF-16 BOM: no
3554 Looks like UTF-8: no
3555 Has flag LOOK_NUL: yes
3556 Has flag LOOK_CR: no
@@ -3562,11 +3562,11 @@
3562 Has flag LOOK_INVALID: no
3563 Has flag LOOK_ODD: no
3564 Has flag LOOK_SHORT: no}
3565
3566 utf-check 301 utf-check-301-0-100-1.jnk \
3567 {File "%TEMP%/utf-check-301-0-100-1.jnk" has 32786 bytes.
3568 Starts with UTF-8 BOM: no
3569 Starts with UTF-16 BOM: no
3570 Looks like UTF-8: no
3571 Has flag LOOK_NUL: yes
3572 Has flag LOOK_CR: no
@@ -3578,11 +3578,11 @@
3578 Has flag LOOK_INVALID: no
3579 Has flag LOOK_ODD: no
3580 Has flag LOOK_SHORT: no}
3581
3582 utf-check 302 utf-check-302-0-101-0.jnk \
3583 {File "%TEMP%/utf-check-302-0-101-0.jnk" has 32786 bytes.
3584 Starts with UTF-8 BOM: no
3585 Starts with UTF-16 BOM: no
3586 Looks like UTF-8: no
3587 Has flag LOOK_NUL: yes
3588 Has flag LOOK_CR: yes
@@ -3594,11 +3594,11 @@
3594 Has flag LOOK_INVALID: no
3595 Has flag LOOK_ODD: no
3596 Has flag LOOK_SHORT: no}
3597
3598 utf-check 303 utf-check-303-0-101-1.jnk \
3599 {File "%TEMP%/utf-check-303-0-101-1.jnk" has 32787 bytes.
3600 Starts with UTF-8 BOM: no
3601 Starts with UTF-16 BOM: no
3602 Looks like UTF-8: no
3603 Has flag LOOK_NUL: yes
3604 Has flag LOOK_CR: yes
@@ -3610,11 +3610,11 @@
3610 Has flag LOOK_INVALID: no
3611 Has flag LOOK_ODD: no
3612 Has flag LOOK_SHORT: no}
3613
3614 utf-check 304 utf-check-304-0-102-0.jnk \
3615 {File "%TEMP%/utf-check-304-0-102-0.jnk" has 32786 bytes.
3616 Starts with UTF-8 BOM: no
3617 Starts with UTF-16 BOM: no
3618 Looks like UTF-8: no
3619 Has flag LOOK_NUL: yes
3620 Has flag LOOK_CR: no
@@ -3626,11 +3626,11 @@
3626 Has flag LOOK_INVALID: no
3627 Has flag LOOK_ODD: no
3628 Has flag LOOK_SHORT: no}
3629
3630 utf-check 305 utf-check-305-0-102-1.jnk \
3631 {File "%TEMP%/utf-check-305-0-102-1.jnk" has 32787 bytes.
3632 Starts with UTF-8 BOM: no
3633 Starts with UTF-16 BOM: no
3634 Looks like UTF-8: no
3635 Has flag LOOK_NUL: yes
3636 Has flag LOOK_CR: no
@@ -3642,11 +3642,11 @@
3642 Has flag LOOK_INVALID: no
3643 Has flag LOOK_ODD: no
3644 Has flag LOOK_SHORT: no}
3645
3646 utf-check 306 utf-check-306-0-103-0.jnk \
3647 {File "%TEMP%/utf-check-306-0-103-0.jnk" has 32787 bytes.
3648 Starts with UTF-8 BOM: no
3649 Starts with UTF-16 BOM: no
3650 Looks like UTF-8: no
3651 Has flag LOOK_NUL: yes
3652 Has flag LOOK_CR: yes
@@ -3658,11 +3658,11 @@
3658 Has flag LOOK_INVALID: no
3659 Has flag LOOK_ODD: no
3660 Has flag LOOK_SHORT: no}
3661
3662 utf-check 307 utf-check-307-0-103-1.jnk \
3663 {File "%TEMP%/utf-check-307-0-103-1.jnk" has 32788 bytes.
3664 Starts with UTF-8 BOM: no
3665 Starts with UTF-16 BOM: no
3666 Looks like UTF-8: no
3667 Has flag LOOK_NUL: yes
3668 Has flag LOOK_CR: yes
@@ -3674,11 +3674,11 @@
3674 Has flag LOOK_INVALID: no
3675 Has flag LOOK_ODD: no
3676 Has flag LOOK_SHORT: no}
3677
3678 utf-check 308 utf-check-308-0-104-0.jnk \
3679 {File "%TEMP%/utf-check-308-0-104-0.jnk" has 32771 bytes.
3680 Starts with UTF-8 BOM: no
3681 Starts with UTF-16 BOM: no
3682 Looks like UTF-8: no
3683 Has flag LOOK_NUL: yes
3684 Has flag LOOK_CR: no
@@ -3690,11 +3690,11 @@
3690 Has flag LOOK_INVALID: no
3691 Has flag LOOK_ODD: no
3692 Has flag LOOK_SHORT: no}
3693
3694 utf-check 309 utf-check-309-0-104-1.jnk \
3695 {File "%TEMP%/utf-check-309-0-104-1.jnk" has 32772 bytes.
3696 Starts with UTF-8 BOM: no
3697 Starts with UTF-16 BOM: no
3698 Looks like UTF-8: no
3699 Has flag LOOK_NUL: yes
3700 Has flag LOOK_CR: no
@@ -3706,11 +3706,11 @@
3706 Has flag LOOK_INVALID: no
3707 Has flag LOOK_ODD: no
3708 Has flag LOOK_SHORT: no}
3709
3710 utf-check 310 utf-check-310-0-105-0.jnk \
3711 {File "%TEMP%/utf-check-310-0-105-0.jnk" has 32772 bytes.
3712 Starts with UTF-8 BOM: no
3713 Starts with UTF-16 BOM: no
3714 Looks like UTF-8: no
3715 Has flag LOOK_NUL: yes
3716 Has flag LOOK_CR: yes
@@ -3722,11 +3722,11 @@
3722 Has flag LOOK_INVALID: no
3723 Has flag LOOK_ODD: no
3724 Has flag LOOK_SHORT: no}
3725
3726 utf-check 311 utf-check-311-0-105-1.jnk \
3727 {File "%TEMP%/utf-check-311-0-105-1.jnk" has 32773 bytes.
3728 Starts with UTF-8 BOM: no
3729 Starts with UTF-16 BOM: no
3730 Looks like UTF-8: no
3731 Has flag LOOK_NUL: yes
3732 Has flag LOOK_CR: yes
@@ -3738,11 +3738,11 @@
3738 Has flag LOOK_INVALID: no
3739 Has flag LOOK_ODD: no
3740 Has flag LOOK_SHORT: no}
3741
3742 utf-check 312 utf-check-312-0-106-0.jnk \
3743 {File "%TEMP%/utf-check-312-0-106-0.jnk" has 32772 bytes.
3744 Starts with UTF-8 BOM: no
3745 Starts with UTF-16 BOM: no
3746 Looks like UTF-8: no
3747 Has flag LOOK_NUL: yes
3748 Has flag LOOK_CR: no
@@ -3754,11 +3754,11 @@
3754 Has flag LOOK_INVALID: no
3755 Has flag LOOK_ODD: no
3756 Has flag LOOK_SHORT: no}
3757
3758 utf-check 313 utf-check-313-0-106-1.jnk \
3759 {File "%TEMP%/utf-check-313-0-106-1.jnk" has 32773 bytes.
3760 Starts with UTF-8 BOM: no
3761 Starts with UTF-16 BOM: no
3762 Looks like UTF-8: no
3763 Has flag LOOK_NUL: yes
3764 Has flag LOOK_CR: no
@@ -3770,11 +3770,11 @@
3770 Has flag LOOK_INVALID: no
3771 Has flag LOOK_ODD: no
3772 Has flag LOOK_SHORT: no}
3773
3774 utf-check 314 utf-check-314-0-107-0.jnk \
3775 {File "%TEMP%/utf-check-314-0-107-0.jnk" has 32773 bytes.
3776 Starts with UTF-8 BOM: no
3777 Starts with UTF-16 BOM: no
3778 Looks like UTF-8: no
3779 Has flag LOOK_NUL: yes
3780 Has flag LOOK_CR: yes
@@ -3786,11 +3786,11 @@
3786 Has flag LOOK_INVALID: no
3787 Has flag LOOK_ODD: no
3788 Has flag LOOK_SHORT: no}
3789
3790 utf-check 315 utf-check-315-0-107-1.jnk \
3791 {File "%TEMP%/utf-check-315-0-107-1.jnk" has 32774 bytes.
3792 Starts with UTF-8 BOM: no
3793 Starts with UTF-16 BOM: no
3794 Looks like UTF-8: no
3795 Has flag LOOK_NUL: yes
3796 Has flag LOOK_CR: yes
@@ -3802,11 +3802,11 @@
3802 Has flag LOOK_INVALID: no
3803 Has flag LOOK_ODD: no
3804 Has flag LOOK_SHORT: no}
3805
3806 utf-check 316 utf-check-316-0-108-0.jnk \
3807 {File "%TEMP%/utf-check-316-0-108-0.jnk" has 32786 bytes.
3808 Starts with UTF-8 BOM: no
3809 Starts with UTF-16 BOM: no
3810 Looks like UTF-8: no
3811 Has flag LOOK_NUL: yes
3812 Has flag LOOK_CR: no
@@ -3818,11 +3818,11 @@
3818 Has flag LOOK_INVALID: no
3819 Has flag LOOK_ODD: no
3820 Has flag LOOK_SHORT: no}
3821
3822 utf-check 317 utf-check-317-0-108-1.jnk \
3823 {File "%TEMP%/utf-check-317-0-108-1.jnk" has 32787 bytes.
3824 Starts with UTF-8 BOM: no
3825 Starts with UTF-16 BOM: no
3826 Looks like UTF-8: no
3827 Has flag LOOK_NUL: yes
3828 Has flag LOOK_CR: no
@@ -3834,11 +3834,11 @@
3834 Has flag LOOK_INVALID: no
3835 Has flag LOOK_ODD: no
3836 Has flag LOOK_SHORT: no}
3837
3838 utf-check 318 utf-check-318-0-109-0.jnk \
3839 {File "%TEMP%/utf-check-318-0-109-0.jnk" has 32787 bytes.
3840 Starts with UTF-8 BOM: no
3841 Starts with UTF-16 BOM: no
3842 Looks like UTF-8: no
3843 Has flag LOOK_NUL: yes
3844 Has flag LOOK_CR: yes
@@ -3850,11 +3850,11 @@
3850 Has flag LOOK_INVALID: no
3851 Has flag LOOK_ODD: no
3852 Has flag LOOK_SHORT: no}
3853
3854 utf-check 319 utf-check-319-0-109-1.jnk \
3855 {File "%TEMP%/utf-check-319-0-109-1.jnk" has 32788 bytes.
3856 Starts with UTF-8 BOM: no
3857 Starts with UTF-16 BOM: no
3858 Looks like UTF-8: no
3859 Has flag LOOK_NUL: yes
3860 Has flag LOOK_CR: yes
@@ -3866,11 +3866,11 @@
3866 Has flag LOOK_INVALID: no
3867 Has flag LOOK_ODD: no
3868 Has flag LOOK_SHORT: no}
3869
3870 utf-check 320 utf-check-320-0-110-0.jnk \
3871 {File "%TEMP%/utf-check-320-0-110-0.jnk" has 32787 bytes.
3872 Starts with UTF-8 BOM: no
3873 Starts with UTF-16 BOM: no
3874 Looks like UTF-8: no
3875 Has flag LOOK_NUL: yes
3876 Has flag LOOK_CR: no
@@ -3882,11 +3882,11 @@
3882 Has flag LOOK_INVALID: no
3883 Has flag LOOK_ODD: no
3884 Has flag LOOK_SHORT: no}
3885
3886 utf-check 321 utf-check-321-0-110-1.jnk \
3887 {File "%TEMP%/utf-check-321-0-110-1.jnk" has 32788 bytes.
3888 Starts with UTF-8 BOM: no
3889 Starts with UTF-16 BOM: no
3890 Looks like UTF-8: no
3891 Has flag LOOK_NUL: yes
3892 Has flag LOOK_CR: no
@@ -3898,11 +3898,11 @@
3898 Has flag LOOK_INVALID: no
3899 Has flag LOOK_ODD: no
3900 Has flag LOOK_SHORT: no}
3901
3902 utf-check 322 utf-check-322-0-111-0.jnk \
3903 {File "%TEMP%/utf-check-322-0-111-0.jnk" has 32788 bytes.
3904 Starts with UTF-8 BOM: no
3905 Starts with UTF-16 BOM: no
3906 Looks like UTF-8: no
3907 Has flag LOOK_NUL: yes
3908 Has flag LOOK_CR: yes
@@ -3914,11 +3914,11 @@
3914 Has flag LOOK_INVALID: no
3915 Has flag LOOK_ODD: no
3916 Has flag LOOK_SHORT: no}
3917
3918 utf-check 323 utf-check-323-0-111-1.jnk \
3919 {File "%TEMP%/utf-check-323-0-111-1.jnk" has 32789 bytes.
3920 Starts with UTF-8 BOM: no
3921 Starts with UTF-16 BOM: no
3922 Looks like UTF-8: no
3923 Has flag LOOK_NUL: yes
3924 Has flag LOOK_CR: yes
@@ -9466,11 +9466,11 @@
9466 Has flag LOOK_INVALID: no
9467 Has flag LOOK_ODD: no
9468 Has flag LOOK_SHORT: no}
9469
9470 utf-check 670 utf-check-670-1-80-0.jnk \
9471 {File "%TEMP%/utf-check-670-1-80-0.jnk" has 32772 bytes.
9472 Starts with UTF-8 BOM: yes
9473 Starts with UTF-16 BOM: no
9474 Looks like UTF-8: no
9475 Has flag LOOK_NUL: no
9476 Has flag LOOK_CR: no
@@ -9482,11 +9482,11 @@
9482 Has flag LOOK_INVALID: no
9483 Has flag LOOK_ODD: no
9484 Has flag LOOK_SHORT: no}
9485
9486 utf-check 671 utf-check-671-1-80-1.jnk \
9487 {File "%TEMP%/utf-check-671-1-80-1.jnk" has 32773 bytes.
9488 Starts with UTF-8 BOM: yes
9489 Starts with UTF-16 BOM: no
9490 Looks like UTF-8: no
9491 Has flag LOOK_NUL: no
9492 Has flag LOOK_CR: no
@@ -9498,11 +9498,11 @@
9498 Has flag LOOK_INVALID: no
9499 Has flag LOOK_ODD: no
9500 Has flag LOOK_SHORT: no}
9501
9502 utf-check 672 utf-check-672-1-81-0.jnk \
9503 {File "%TEMP%/utf-check-672-1-81-0.jnk" has 32773 bytes.
9504 Starts with UTF-8 BOM: yes
9505 Starts with UTF-16 BOM: no
9506 Looks like UTF-8: no
9507 Has flag LOOK_NUL: no
9508 Has flag LOOK_CR: yes
@@ -9514,11 +9514,11 @@
9514 Has flag LOOK_INVALID: no
9515 Has flag LOOK_ODD: no
9516 Has flag LOOK_SHORT: no}
9517
9518 utf-check 673 utf-check-673-1-81-1.jnk \
9519 {File "%TEMP%/utf-check-673-1-81-1.jnk" has 32774 bytes.
9520 Starts with UTF-8 BOM: yes
9521 Starts with UTF-16 BOM: no
9522 Looks like UTF-8: no
9523 Has flag LOOK_NUL: no
9524 Has flag LOOK_CR: yes
@@ -9530,11 +9530,11 @@
9530 Has flag LOOK_INVALID: no
9531 Has flag LOOK_ODD: no
9532 Has flag LOOK_SHORT: no}
9533
9534 utf-check 674 utf-check-674-1-82-0.jnk \
9535 {File "%TEMP%/utf-check-674-1-82-0.jnk" has 32773 bytes.
9536 Starts with UTF-8 BOM: yes
9537 Starts with UTF-16 BOM: no
9538 Looks like UTF-8: no
9539 Has flag LOOK_NUL: no
9540 Has flag LOOK_CR: no
@@ -9546,11 +9546,11 @@
9546 Has flag LOOK_INVALID: no
9547 Has flag LOOK_ODD: no
9548 Has flag LOOK_SHORT: no}
9549
9550 utf-check 675 utf-check-675-1-82-1.jnk \
9551 {File "%TEMP%/utf-check-675-1-82-1.jnk" has 32774 bytes.
9552 Starts with UTF-8 BOM: yes
9553 Starts with UTF-16 BOM: no
9554 Looks like UTF-8: no
9555 Has flag LOOK_NUL: no
9556 Has flag LOOK_CR: no
@@ -9562,11 +9562,11 @@
9562 Has flag LOOK_INVALID: no
9563 Has flag LOOK_ODD: no
9564 Has flag LOOK_SHORT: no}
9565
9566 utf-check 676 utf-check-676-1-83-0.jnk \
9567 {File "%TEMP%/utf-check-676-1-83-0.jnk" has 32774 bytes.
9568 Starts with UTF-8 BOM: yes
9569 Starts with UTF-16 BOM: no
9570 Looks like UTF-8: no
9571 Has flag LOOK_NUL: no
9572 Has flag LOOK_CR: yes
@@ -9578,11 +9578,11 @@
9578 Has flag LOOK_INVALID: no
9579 Has flag LOOK_ODD: no
9580 Has flag LOOK_SHORT: no}
9581
9582 utf-check 677 utf-check-677-1-83-1.jnk \
9583 {File "%TEMP%/utf-check-677-1-83-1.jnk" has 32775 bytes.
9584 Starts with UTF-8 BOM: yes
9585 Starts with UTF-16 BOM: no
9586 Looks like UTF-8: no
9587 Has flag LOOK_NUL: no
9588 Has flag LOOK_CR: yes
@@ -9594,11 +9594,11 @@
9594 Has flag LOOK_INVALID: no
9595 Has flag LOOK_ODD: no
9596 Has flag LOOK_SHORT: no}
9597
9598 utf-check 678 utf-check-678-1-84-0.jnk \
9599 {File "%TEMP%/utf-check-678-1-84-0.jnk" has 32787 bytes.
9600 Starts with UTF-8 BOM: yes
9601 Starts with UTF-16 BOM: no
9602 Looks like UTF-8: no
9603 Has flag LOOK_NUL: no
9604 Has flag LOOK_CR: no
@@ -9610,11 +9610,11 @@
9610 Has flag LOOK_INVALID: no
9611 Has flag LOOK_ODD: no
9612 Has flag LOOK_SHORT: no}
9613
9614 utf-check 679 utf-check-679-1-84-1.jnk \
9615 {File "%TEMP%/utf-check-679-1-84-1.jnk" has 32788 bytes.
9616 Starts with UTF-8 BOM: yes
9617 Starts with UTF-16 BOM: no
9618 Looks like UTF-8: no
9619 Has flag LOOK_NUL: no
9620 Has flag LOOK_CR: no
@@ -9626,11 +9626,11 @@
9626 Has flag LOOK_INVALID: no
9627 Has flag LOOK_ODD: no
9628 Has flag LOOK_SHORT: no}
9629
9630 utf-check 680 utf-check-680-1-85-0.jnk \
9631 {File "%TEMP%/utf-check-680-1-85-0.jnk" has 32788 bytes.
9632 Starts with UTF-8 BOM: yes
9633 Starts with UTF-16 BOM: no
9634 Looks like UTF-8: no
9635 Has flag LOOK_NUL: no
9636 Has flag LOOK_CR: yes
@@ -9642,11 +9642,11 @@
9642 Has flag LOOK_INVALID: no
9643 Has flag LOOK_ODD: no
9644 Has flag LOOK_SHORT: no}
9645
9646 utf-check 681 utf-check-681-1-85-1.jnk \
9647 {File "%TEMP%/utf-check-681-1-85-1.jnk" has 32789 bytes.
9648 Starts with UTF-8 BOM: yes
9649 Starts with UTF-16 BOM: no
9650 Looks like UTF-8: no
9651 Has flag LOOK_NUL: no
9652 Has flag LOOK_CR: yes
@@ -9658,11 +9658,11 @@
9658 Has flag LOOK_INVALID: no
9659 Has flag LOOK_ODD: no
9660 Has flag LOOK_SHORT: no}
9661
9662 utf-check 682 utf-check-682-1-86-0.jnk \
9663 {File "%TEMP%/utf-check-682-1-86-0.jnk" has 32788 bytes.
9664 Starts with UTF-8 BOM: yes
9665 Starts with UTF-16 BOM: no
9666 Looks like UTF-8: no
9667 Has flag LOOK_NUL: no
9668 Has flag LOOK_CR: no
@@ -9674,11 +9674,11 @@
9674 Has flag LOOK_INVALID: no
9675 Has flag LOOK_ODD: no
9676 Has flag LOOK_SHORT: no}
9677
9678 utf-check 683 utf-check-683-1-86-1.jnk \
9679 {File "%TEMP%/utf-check-683-1-86-1.jnk" has 32789 bytes.
9680 Starts with UTF-8 BOM: yes
9681 Starts with UTF-16 BOM: no
9682 Looks like UTF-8: no
9683 Has flag LOOK_NUL: no
9684 Has flag LOOK_CR: no
@@ -9690,11 +9690,11 @@
9690 Has flag LOOK_INVALID: no
9691 Has flag LOOK_ODD: no
9692 Has flag LOOK_SHORT: no}
9693
9694 utf-check 684 utf-check-684-1-87-0.jnk \
9695 {File "%TEMP%/utf-check-684-1-87-0.jnk" has 32789 bytes.
9696 Starts with UTF-8 BOM: yes
9697 Starts with UTF-16 BOM: no
9698 Looks like UTF-8: no
9699 Has flag LOOK_NUL: no
9700 Has flag LOOK_CR: yes
@@ -9706,11 +9706,11 @@
9706 Has flag LOOK_INVALID: no
9707 Has flag LOOK_ODD: no
9708 Has flag LOOK_SHORT: no}
9709
9710 utf-check 685 utf-check-685-1-87-1.jnk \
9711 {File "%TEMP%/utf-check-685-1-87-1.jnk" has 32790 bytes.
9712 Starts with UTF-8 BOM: yes
9713 Starts with UTF-16 BOM: no
9714 Looks like UTF-8: no
9715 Has flag LOOK_NUL: no
9716 Has flag LOOK_CR: yes
@@ -9722,11 +9722,11 @@
9722 Has flag LOOK_INVALID: no
9723 Has flag LOOK_ODD: no
9724 Has flag LOOK_SHORT: no}
9725
9726 utf-check 686 utf-check-686-1-88-0.jnk \
9727 {File "%TEMP%/utf-check-686-1-88-0.jnk" has 32773 bytes.
9728 Starts with UTF-8 BOM: yes
9729 Starts with UTF-16 BOM: no
9730 Looks like UTF-8: no
9731 Has flag LOOK_NUL: yes
9732 Has flag LOOK_CR: no
@@ -9738,11 +9738,11 @@
9738 Has flag LOOK_INVALID: no
9739 Has flag LOOK_ODD: no
9740 Has flag LOOK_SHORT: no}
9741
9742 utf-check 687 utf-check-687-1-88-1.jnk \
9743 {File "%TEMP%/utf-check-687-1-88-1.jnk" has 32774 bytes.
9744 Starts with UTF-8 BOM: yes
9745 Starts with UTF-16 BOM: no
9746 Looks like UTF-8: no
9747 Has flag LOOK_NUL: yes
9748 Has flag LOOK_CR: no
@@ -9754,11 +9754,11 @@
9754 Has flag LOOK_INVALID: no
9755 Has flag LOOK_ODD: no
9756 Has flag LOOK_SHORT: no}
9757
9758 utf-check 688 utf-check-688-1-89-0.jnk \
9759 {File "%TEMP%/utf-check-688-1-89-0.jnk" has 32774 bytes.
9760 Starts with UTF-8 BOM: yes
9761 Starts with UTF-16 BOM: no
9762 Looks like UTF-8: no
9763 Has flag LOOK_NUL: yes
9764 Has flag LOOK_CR: yes
@@ -9770,11 +9770,11 @@
9770 Has flag LOOK_INVALID: no
9771 Has flag LOOK_ODD: no
9772 Has flag LOOK_SHORT: no}
9773
9774 utf-check 689 utf-check-689-1-89-1.jnk \
9775 {File "%TEMP%/utf-check-689-1-89-1.jnk" has 32775 bytes.
9776 Starts with UTF-8 BOM: yes
9777 Starts with UTF-16 BOM: no
9778 Looks like UTF-8: no
9779 Has flag LOOK_NUL: yes
9780 Has flag LOOK_CR: yes
@@ -9786,11 +9786,11 @@
9786 Has flag LOOK_INVALID: no
9787 Has flag LOOK_ODD: no
9788 Has flag LOOK_SHORT: no}
9789
9790 utf-check 690 utf-check-690-1-90-0.jnk \
9791 {File "%TEMP%/utf-check-690-1-90-0.jnk" has 32774 bytes.
9792 Starts with UTF-8 BOM: yes
9793 Starts with UTF-16 BOM: no
9794 Looks like UTF-8: no
9795 Has flag LOOK_NUL: yes
9796 Has flag LOOK_CR: no
@@ -9802,11 +9802,11 @@
9802 Has flag LOOK_INVALID: no
9803 Has flag LOOK_ODD: no
9804 Has flag LOOK_SHORT: no}
9805
9806 utf-check 691 utf-check-691-1-90-1.jnk \
9807 {File "%TEMP%/utf-check-691-1-90-1.jnk" has 32775 bytes.
9808 Starts with UTF-8 BOM: yes
9809 Starts with UTF-16 BOM: no
9810 Looks like UTF-8: no
9811 Has flag LOOK_NUL: yes
9812 Has flag LOOK_CR: no
@@ -9818,11 +9818,11 @@
9818 Has flag LOOK_INVALID: no
9819 Has flag LOOK_ODD: no
9820 Has flag LOOK_SHORT: no}
9821
9822 utf-check 692 utf-check-692-1-91-0.jnk \
9823 {File "%TEMP%/utf-check-692-1-91-0.jnk" has 32775 bytes.
9824 Starts with UTF-8 BOM: yes
9825 Starts with UTF-16 BOM: no
9826 Looks like UTF-8: no
9827 Has flag LOOK_NUL: yes
9828 Has flag LOOK_CR: yes
@@ -9834,11 +9834,11 @@
9834 Has flag LOOK_INVALID: no
9835 Has flag LOOK_ODD: no
9836 Has flag LOOK_SHORT: no}
9837
9838 utf-check 693 utf-check-693-1-91-1.jnk \
9839 {File "%TEMP%/utf-check-693-1-91-1.jnk" has 32776 bytes.
9840 Starts with UTF-8 BOM: yes
9841 Starts with UTF-16 BOM: no
9842 Looks like UTF-8: no
9843 Has flag LOOK_NUL: yes
9844 Has flag LOOK_CR: yes
@@ -9850,11 +9850,11 @@
9850 Has flag LOOK_INVALID: no
9851 Has flag LOOK_ODD: no
9852 Has flag LOOK_SHORT: no}
9853
9854 utf-check 694 utf-check-694-1-92-0.jnk \
9855 {File "%TEMP%/utf-check-694-1-92-0.jnk" has 32788 bytes.
9856 Starts with UTF-8 BOM: yes
9857 Starts with UTF-16 BOM: no
9858 Looks like UTF-8: no
9859 Has flag LOOK_NUL: yes
9860 Has flag LOOK_CR: no
@@ -9866,11 +9866,11 @@
9866 Has flag LOOK_INVALID: no
9867 Has flag LOOK_ODD: no
9868 Has flag LOOK_SHORT: no}
9869
9870 utf-check 695 utf-check-695-1-92-1.jnk \
9871 {File "%TEMP%/utf-check-695-1-92-1.jnk" has 32789 bytes.
9872 Starts with UTF-8 BOM: yes
9873 Starts with UTF-16 BOM: no
9874 Looks like UTF-8: no
9875 Has flag LOOK_NUL: yes
9876 Has flag LOOK_CR: no
@@ -9882,11 +9882,11 @@
9882 Has flag LOOK_INVALID: no
9883 Has flag LOOK_ODD: no
9884 Has flag LOOK_SHORT: no}
9885
9886 utf-check 696 utf-check-696-1-93-0.jnk \
9887 {File "%TEMP%/utf-check-696-1-93-0.jnk" has 32789 bytes.
9888 Starts with UTF-8 BOM: yes
9889 Starts with UTF-16 BOM: no
9890 Looks like UTF-8: no
9891 Has flag LOOK_NUL: yes
9892 Has flag LOOK_CR: yes
@@ -9898,11 +9898,11 @@
9898 Has flag LOOK_INVALID: no
9899 Has flag LOOK_ODD: no
9900 Has flag LOOK_SHORT: no}
9901
9902 utf-check 697 utf-check-697-1-93-1.jnk \
9903 {File "%TEMP%/utf-check-697-1-93-1.jnk" has 32790 bytes.
9904 Starts with UTF-8 BOM: yes
9905 Starts with UTF-16 BOM: no
9906 Looks like UTF-8: no
9907 Has flag LOOK_NUL: yes
9908 Has flag LOOK_CR: yes
@@ -9914,11 +9914,11 @@
9914 Has flag LOOK_INVALID: no
9915 Has flag LOOK_ODD: no
9916 Has flag LOOK_SHORT: no}
9917
9918 utf-check 698 utf-check-698-1-94-0.jnk \
9919 {File "%TEMP%/utf-check-698-1-94-0.jnk" has 32789 bytes.
9920 Starts with UTF-8 BOM: yes
9921 Starts with UTF-16 BOM: no
9922 Looks like UTF-8: no
9923 Has flag LOOK_NUL: yes
9924 Has flag LOOK_CR: no
@@ -9930,11 +9930,11 @@
9930 Has flag LOOK_INVALID: no
9931 Has flag LOOK_ODD: no
9932 Has flag LOOK_SHORT: no}
9933
9934 utf-check 699 utf-check-699-1-94-1.jnk \
9935 {File "%TEMP%/utf-check-699-1-94-1.jnk" has 32790 bytes.
9936 Starts with UTF-8 BOM: yes
9937 Starts with UTF-16 BOM: no
9938 Looks like UTF-8: no
9939 Has flag LOOK_NUL: yes
9940 Has flag LOOK_CR: no
@@ -9946,11 +9946,11 @@
9946 Has flag LOOK_INVALID: no
9947 Has flag LOOK_ODD: no
9948 Has flag LOOK_SHORT: no}
9949
9950 utf-check 700 utf-check-700-1-95-0.jnk \
9951 {File "%TEMP%/utf-check-700-1-95-0.jnk" has 32790 bytes.
9952 Starts with UTF-8 BOM: yes
9953 Starts with UTF-16 BOM: no
9954 Looks like UTF-8: no
9955 Has flag LOOK_NUL: yes
9956 Has flag LOOK_CR: yes
@@ -9962,11 +9962,11 @@
9962 Has flag LOOK_INVALID: no
9963 Has flag LOOK_ODD: no
9964 Has flag LOOK_SHORT: no}
9965
9966 utf-check 701 utf-check-701-1-95-1.jnk \
9967 {File "%TEMP%/utf-check-701-1-95-1.jnk" has 32791 bytes.
9968 Starts with UTF-8 BOM: yes
9969 Starts with UTF-16 BOM: no
9970 Looks like UTF-8: no
9971 Has flag LOOK_NUL: yes
9972 Has flag LOOK_CR: yes
@@ -9978,11 +9978,11 @@
9978 Has flag LOOK_INVALID: no
9979 Has flag LOOK_ODD: no
9980 Has flag LOOK_SHORT: no}
9981
9982 utf-check 702 utf-check-702-1-96-0.jnk \
9983 {File "%TEMP%/utf-check-702-1-96-0.jnk" has 32773 bytes.
9984 Starts with UTF-8 BOM: yes
9985 Starts with UTF-16 BOM: no
9986 Looks like UTF-8: no
9987 Has flag LOOK_NUL: yes
9988 Has flag LOOK_CR: no
@@ -9994,11 +9994,11 @@
9994 Has flag LOOK_INVALID: no
9995 Has flag LOOK_ODD: no
9996 Has flag LOOK_SHORT: no}
9997
9998 utf-check 703 utf-check-703-1-96-1.jnk \
9999 {File "%TEMP%/utf-check-703-1-96-1.jnk" has 32774 bytes.
10000 Starts with UTF-8 BOM: yes
10001 Starts with UTF-16 BOM: no
10002 Looks like UTF-8: no
10003 Has flag LOOK_NUL: yes
10004 Has flag LOOK_CR: no
@@ -10010,11 +10010,11 @@
10010 Has flag LOOK_INVALID: no
10011 Has flag LOOK_ODD: no
10012 Has flag LOOK_SHORT: no}
10013
10014 utf-check 704 utf-check-704-1-97-0.jnk \
10015 {File "%TEMP%/utf-check-704-1-97-0.jnk" has 32774 bytes.
10016 Starts with UTF-8 BOM: yes
10017 Starts with UTF-16 BOM: no
10018 Looks like UTF-8: no
10019 Has flag LOOK_NUL: yes
10020 Has flag LOOK_CR: yes
@@ -10026,11 +10026,11 @@
10026 Has flag LOOK_INVALID: no
10027 Has flag LOOK_ODD: no
10028 Has flag LOOK_SHORT: no}
10029
10030 utf-check 705 utf-check-705-1-97-1.jnk \
10031 {File "%TEMP%/utf-check-705-1-97-1.jnk" has 32775 bytes.
10032 Starts with UTF-8 BOM: yes
10033 Starts with UTF-16 BOM: no
10034 Looks like UTF-8: no
10035 Has flag LOOK_NUL: yes
10036 Has flag LOOK_CR: yes
@@ -10042,11 +10042,11 @@
10042 Has flag LOOK_INVALID: no
10043 Has flag LOOK_ODD: no
10044 Has flag LOOK_SHORT: no}
10045
10046 utf-check 706 utf-check-706-1-98-0.jnk \
10047 {File "%TEMP%/utf-check-706-1-98-0.jnk" has 32774 bytes.
10048 Starts with UTF-8 BOM: yes
10049 Starts with UTF-16 BOM: no
10050 Looks like UTF-8: no
10051 Has flag LOOK_NUL: yes
10052 Has flag LOOK_CR: no
@@ -10058,11 +10058,11 @@
10058 Has flag LOOK_INVALID: no
10059 Has flag LOOK_ODD: no
10060 Has flag LOOK_SHORT: no}
10061
10062 utf-check 707 utf-check-707-1-98-1.jnk \
10063 {File "%TEMP%/utf-check-707-1-98-1.jnk" has 32775 bytes.
10064 Starts with UTF-8 BOM: yes
10065 Starts with UTF-16 BOM: no
10066 Looks like UTF-8: no
10067 Has flag LOOK_NUL: yes
10068 Has flag LOOK_CR: no
@@ -10074,11 +10074,11 @@
10074 Has flag LOOK_INVALID: no
10075 Has flag LOOK_ODD: no
10076 Has flag LOOK_SHORT: no}
10077
10078 utf-check 708 utf-check-708-1-99-0.jnk \
10079 {File "%TEMP%/utf-check-708-1-99-0.jnk" has 32775 bytes.
10080 Starts with UTF-8 BOM: yes
10081 Starts with UTF-16 BOM: no
10082 Looks like UTF-8: no
10083 Has flag LOOK_NUL: yes
10084 Has flag LOOK_CR: yes
@@ -10090,11 +10090,11 @@
10090 Has flag LOOK_INVALID: no
10091 Has flag LOOK_ODD: no
10092 Has flag LOOK_SHORT: no}
10093
10094 utf-check 709 utf-check-709-1-99-1.jnk \
10095 {File "%TEMP%/utf-check-709-1-99-1.jnk" has 32776 bytes.
10096 Starts with UTF-8 BOM: yes
10097 Starts with UTF-16 BOM: no
10098 Looks like UTF-8: no
10099 Has flag LOOK_NUL: yes
10100 Has flag LOOK_CR: yes
@@ -10106,11 +10106,11 @@
10106 Has flag LOOK_INVALID: no
10107 Has flag LOOK_ODD: no
10108 Has flag LOOK_SHORT: no}
10109
10110 utf-check 710 utf-check-710-1-100-0.jnk \
10111 {File "%TEMP%/utf-check-710-1-100-0.jnk" has 32788 bytes.
10112 Starts with UTF-8 BOM: yes
10113 Starts with UTF-16 BOM: no
10114 Looks like UTF-8: no
10115 Has flag LOOK_NUL: yes
10116 Has flag LOOK_CR: no
@@ -10122,11 +10122,11 @@
10122 Has flag LOOK_INVALID: no
10123 Has flag LOOK_ODD: no
10124 Has flag LOOK_SHORT: no}
10125
10126 utf-check 711 utf-check-711-1-100-1.jnk \
10127 {File "%TEMP%/utf-check-711-1-100-1.jnk" has 32789 bytes.
10128 Starts with UTF-8 BOM: yes
10129 Starts with UTF-16 BOM: no
10130 Looks like UTF-8: no
10131 Has flag LOOK_NUL: yes
10132 Has flag LOOK_CR: no
@@ -10138,11 +10138,11 @@
10138 Has flag LOOK_INVALID: no
10139 Has flag LOOK_ODD: no
10140 Has flag LOOK_SHORT: no}
10141
10142 utf-check 712 utf-check-712-1-101-0.jnk \
10143 {File "%TEMP%/utf-check-712-1-101-0.jnk" has 32789 bytes.
10144 Starts with UTF-8 BOM: yes
10145 Starts with UTF-16 BOM: no
10146 Looks like UTF-8: no
10147 Has flag LOOK_NUL: yes
10148 Has flag LOOK_CR: yes
@@ -10154,11 +10154,11 @@
10154 Has flag LOOK_INVALID: no
10155 Has flag LOOK_ODD: no
10156 Has flag LOOK_SHORT: no}
10157
10158 utf-check 713 utf-check-713-1-101-1.jnk \
10159 {File "%TEMP%/utf-check-713-1-101-1.jnk" has 32790 bytes.
10160 Starts with UTF-8 BOM: yes
10161 Starts with UTF-16 BOM: no
10162 Looks like UTF-8: no
10163 Has flag LOOK_NUL: yes
10164 Has flag LOOK_CR: yes
@@ -10170,11 +10170,11 @@
10170 Has flag LOOK_INVALID: no
10171 Has flag LOOK_ODD: no
10172 Has flag LOOK_SHORT: no}
10173
10174 utf-check 714 utf-check-714-1-102-0.jnk \
10175 {File "%TEMP%/utf-check-714-1-102-0.jnk" has 32789 bytes.
10176 Starts with UTF-8 BOM: yes
10177 Starts with UTF-16 BOM: no
10178 Looks like UTF-8: no
10179 Has flag LOOK_NUL: yes
10180 Has flag LOOK_CR: no
@@ -10186,11 +10186,11 @@
10186 Has flag LOOK_INVALID: no
10187 Has flag LOOK_ODD: no
10188 Has flag LOOK_SHORT: no}
10189
10190 utf-check 715 utf-check-715-1-102-1.jnk \
10191 {File "%TEMP%/utf-check-715-1-102-1.jnk" has 32790 bytes.
10192 Starts with UTF-8 BOM: yes
10193 Starts with UTF-16 BOM: no
10194 Looks like UTF-8: no
10195 Has flag LOOK_NUL: yes
10196 Has flag LOOK_CR: no
@@ -10202,11 +10202,11 @@
10202 Has flag LOOK_INVALID: no
10203 Has flag LOOK_ODD: no
10204 Has flag LOOK_SHORT: no}
10205
10206 utf-check 716 utf-check-716-1-103-0.jnk \
10207 {File "%TEMP%/utf-check-716-1-103-0.jnk" has 32790 bytes.
10208 Starts with UTF-8 BOM: yes
10209 Starts with UTF-16 BOM: no
10210 Looks like UTF-8: no
10211 Has flag LOOK_NUL: yes
10212 Has flag LOOK_CR: yes
@@ -10218,11 +10218,11 @@
10218 Has flag LOOK_INVALID: no
10219 Has flag LOOK_ODD: no
10220 Has flag LOOK_SHORT: no}
10221
10222 utf-check 717 utf-check-717-1-103-1.jnk \
10223 {File "%TEMP%/utf-check-717-1-103-1.jnk" has 32791 bytes.
10224 Starts with UTF-8 BOM: yes
10225 Starts with UTF-16 BOM: no
10226 Looks like UTF-8: no
10227 Has flag LOOK_NUL: yes
10228 Has flag LOOK_CR: yes
@@ -10234,11 +10234,11 @@
10234 Has flag LOOK_INVALID: no
10235 Has flag LOOK_ODD: no
10236 Has flag LOOK_SHORT: no}
10237
10238 utf-check 718 utf-check-718-1-104-0.jnk \
10239 {File "%TEMP%/utf-check-718-1-104-0.jnk" has 32774 bytes.
10240 Starts with UTF-8 BOM: yes
10241 Starts with UTF-16 BOM: no
10242 Looks like UTF-8: no
10243 Has flag LOOK_NUL: yes
10244 Has flag LOOK_CR: no
@@ -10250,11 +10250,11 @@
10250 Has flag LOOK_INVALID: no
10251 Has flag LOOK_ODD: no
10252 Has flag LOOK_SHORT: no}
10253
10254 utf-check 719 utf-check-719-1-104-1.jnk \
10255 {File "%TEMP%/utf-check-719-1-104-1.jnk" has 32775 bytes.
10256 Starts with UTF-8 BOM: yes
10257 Starts with UTF-16 BOM: no
10258 Looks like UTF-8: no
10259 Has flag LOOK_NUL: yes
10260 Has flag LOOK_CR: no
@@ -10266,11 +10266,11 @@
10266 Has flag LOOK_INVALID: no
10267 Has flag LOOK_ODD: no
10268 Has flag LOOK_SHORT: no}
10269
10270 utf-check 720 utf-check-720-1-105-0.jnk \
10271 {File "%TEMP%/utf-check-720-1-105-0.jnk" has 32775 bytes.
10272 Starts with UTF-8 BOM: yes
10273 Starts with UTF-16 BOM: no
10274 Looks like UTF-8: no
10275 Has flag LOOK_NUL: yes
10276 Has flag LOOK_CR: yes
@@ -10282,11 +10282,11 @@
10282 Has flag LOOK_INVALID: no
10283 Has flag LOOK_ODD: no
10284 Has flag LOOK_SHORT: no}
10285
10286 utf-check 721 utf-check-721-1-105-1.jnk \
10287 {File "%TEMP%/utf-check-721-1-105-1.jnk" has 32776 bytes.
10288 Starts with UTF-8 BOM: yes
10289 Starts with UTF-16 BOM: no
10290 Looks like UTF-8: no
10291 Has flag LOOK_NUL: yes
10292 Has flag LOOK_CR: yes
@@ -10298,11 +10298,11 @@
10298 Has flag LOOK_INVALID: no
10299 Has flag LOOK_ODD: no
10300 Has flag LOOK_SHORT: no}
10301
10302 utf-check 722 utf-check-722-1-106-0.jnk \
10303 {File "%TEMP%/utf-check-722-1-106-0.jnk" has 32775 bytes.
10304 Starts with UTF-8 BOM: yes
10305 Starts with UTF-16 BOM: no
10306 Looks like UTF-8: no
10307 Has flag LOOK_NUL: yes
10308 Has flag LOOK_CR: no
@@ -10314,11 +10314,11 @@
10314 Has flag LOOK_INVALID: no
10315 Has flag LOOK_ODD: no
10316 Has flag LOOK_SHORT: no}
10317
10318 utf-check 723 utf-check-723-1-106-1.jnk \
10319 {File "%TEMP%/utf-check-723-1-106-1.jnk" has 32776 bytes.
10320 Starts with UTF-8 BOM: yes
10321 Starts with UTF-16 BOM: no
10322 Looks like UTF-8: no
10323 Has flag LOOK_NUL: yes
10324 Has flag LOOK_CR: no
@@ -10330,11 +10330,11 @@
10330 Has flag LOOK_INVALID: no
10331 Has flag LOOK_ODD: no
10332 Has flag LOOK_SHORT: no}
10333
10334 utf-check 724 utf-check-724-1-107-0.jnk \
10335 {File "%TEMP%/utf-check-724-1-107-0.jnk" has 32776 bytes.
10336 Starts with UTF-8 BOM: yes
10337 Starts with UTF-16 BOM: no
10338 Looks like UTF-8: no
10339 Has flag LOOK_NUL: yes
10340 Has flag LOOK_CR: yes
@@ -10346,11 +10346,11 @@
10346 Has flag LOOK_INVALID: no
10347 Has flag LOOK_ODD: no
10348 Has flag LOOK_SHORT: no}
10349
10350 utf-check 725 utf-check-725-1-107-1.jnk \
10351 {File "%TEMP%/utf-check-725-1-107-1.jnk" has 32777 bytes.
10352 Starts with UTF-8 BOM: yes
10353 Starts with UTF-16 BOM: no
10354 Looks like UTF-8: no
10355 Has flag LOOK_NUL: yes
10356 Has flag LOOK_CR: yes
@@ -10362,11 +10362,11 @@
10362 Has flag LOOK_INVALID: no
10363 Has flag LOOK_ODD: no
10364 Has flag LOOK_SHORT: no}
10365
10366 utf-check 726 utf-check-726-1-108-0.jnk \
10367 {File "%TEMP%/utf-check-726-1-108-0.jnk" has 32789 bytes.
10368 Starts with UTF-8 BOM: yes
10369 Starts with UTF-16 BOM: no
10370 Looks like UTF-8: no
10371 Has flag LOOK_NUL: yes
10372 Has flag LOOK_CR: no
@@ -10378,11 +10378,11 @@
10378 Has flag LOOK_INVALID: no
10379 Has flag LOOK_ODD: no
10380 Has flag LOOK_SHORT: no}
10381
10382 utf-check 727 utf-check-727-1-108-1.jnk \
10383 {File "%TEMP%/utf-check-727-1-108-1.jnk" has 32790 bytes.
10384 Starts with UTF-8 BOM: yes
10385 Starts with UTF-16 BOM: no
10386 Looks like UTF-8: no
10387 Has flag LOOK_NUL: yes
10388 Has flag LOOK_CR: no
@@ -10394,11 +10394,11 @@
10394 Has flag LOOK_INVALID: no
10395 Has flag LOOK_ODD: no
10396 Has flag LOOK_SHORT: no}
10397
10398 utf-check 728 utf-check-728-1-109-0.jnk \
10399 {File "%TEMP%/utf-check-728-1-109-0.jnk" has 32790 bytes.
10400 Starts with UTF-8 BOM: yes
10401 Starts with UTF-16 BOM: no
10402 Looks like UTF-8: no
10403 Has flag LOOK_NUL: yes
10404 Has flag LOOK_CR: yes
@@ -10410,11 +10410,11 @@
10410 Has flag LOOK_INVALID: no
10411 Has flag LOOK_ODD: no
10412 Has flag LOOK_SHORT: no}
10413
10414 utf-check 729 utf-check-729-1-109-1.jnk \
10415 {File "%TEMP%/utf-check-729-1-109-1.jnk" has 32791 bytes.
10416 Starts with UTF-8 BOM: yes
10417 Starts with UTF-16 BOM: no
10418 Looks like UTF-8: no
10419 Has flag LOOK_NUL: yes
10420 Has flag LOOK_CR: yes
@@ -10426,11 +10426,11 @@
10426 Has flag LOOK_INVALID: no
10427 Has flag LOOK_ODD: no
10428 Has flag LOOK_SHORT: no}
10429
10430 utf-check 730 utf-check-730-1-110-0.jnk \
10431 {File "%TEMP%/utf-check-730-1-110-0.jnk" has 32790 bytes.
10432 Starts with UTF-8 BOM: yes
10433 Starts with UTF-16 BOM: no
10434 Looks like UTF-8: no
10435 Has flag LOOK_NUL: yes
10436 Has flag LOOK_CR: no
@@ -10442,11 +10442,11 @@
10442 Has flag LOOK_INVALID: no
10443 Has flag LOOK_ODD: no
10444 Has flag LOOK_SHORT: no}
10445
10446 utf-check 731 utf-check-731-1-110-1.jnk \
10447 {File "%TEMP%/utf-check-731-1-110-1.jnk" has 32791 bytes.
10448 Starts with UTF-8 BOM: yes
10449 Starts with UTF-16 BOM: no
10450 Looks like UTF-8: no
10451 Has flag LOOK_NUL: yes
10452 Has flag LOOK_CR: no
@@ -10458,11 +10458,11 @@
10458 Has flag LOOK_INVALID: no
10459 Has flag LOOK_ODD: no
10460 Has flag LOOK_SHORT: no}
10461
10462 utf-check 732 utf-check-732-1-111-0.jnk \
10463 {File "%TEMP%/utf-check-732-1-111-0.jnk" has 32791 bytes.
10464 Starts with UTF-8 BOM: yes
10465 Starts with UTF-16 BOM: no
10466 Looks like UTF-8: no
10467 Has flag LOOK_NUL: yes
10468 Has flag LOOK_CR: yes
@@ -10474,11 +10474,11 @@
10474 Has flag LOOK_INVALID: no
10475 Has flag LOOK_ODD: no
10476 Has flag LOOK_SHORT: no}
10477
10478 utf-check 733 utf-check-733-1-111-1.jnk \
10479 {File "%TEMP%/utf-check-733-1-111-1.jnk" has 32792 bytes.
10480 Starts with UTF-8 BOM: yes
10481 Starts with UTF-16 BOM: no
10482 Looks like UTF-8: no
10483 Has flag LOOK_NUL: yes
10484 Has flag LOOK_CR: yes
@@ -16026,11 +16026,11 @@
16026 Has flag LOOK_INVALID: yes
16027 Has flag LOOK_ODD: no
16028 Has flag LOOK_SHORT: no}
16029
16030 utf-check 1080 utf-check-1080-2-80-0.jnk \
16031 {File "%TEMP%/utf-check-1080-2-80-0.jnk" has 65540 bytes.
16032 Starts with UTF-8 BOM: no
16033 Starts with UTF-16 BOM: yes
16034 Looks like UTF-16: no
16035 Has flag LOOK_NUL: no
16036 Has flag LOOK_CR: no
@@ -16042,11 +16042,11 @@
16042 Has flag LOOK_INVALID: no
16043 Has flag LOOK_ODD: no
16044 Has flag LOOK_SHORT: no}
16045
16046 utf-check 1081 utf-check-1081-2-80-1.jnk \
16047 {File "%TEMP%/utf-check-1081-2-80-1.jnk" has 65541 bytes.
16048 Starts with UTF-8 BOM: no
16049 Starts with UTF-16 BOM: yes
16050 Looks like UTF-8: no
16051 Has flag LOOK_NUL: yes
16052 Has flag LOOK_CR: no
@@ -16058,11 +16058,11 @@
16058 Has flag LOOK_INVALID: yes
16059 Has flag LOOK_ODD: no
16060 Has flag LOOK_SHORT: no}
16061
16062 utf-check 1082 utf-check-1082-2-81-0.jnk \
16063 {File "%TEMP%/utf-check-1082-2-81-0.jnk" has 65542 bytes.
16064 Starts with UTF-8 BOM: no
16065 Starts with UTF-16 BOM: yes
16066 Looks like UTF-16: no
16067 Has flag LOOK_NUL: no
16068 Has flag LOOK_CR: yes
@@ -16074,11 +16074,11 @@
16074 Has flag LOOK_INVALID: no
16075 Has flag LOOK_ODD: no
16076 Has flag LOOK_SHORT: no}
16077
16078 utf-check 1083 utf-check-1083-2-81-1.jnk \
16079 {File "%TEMP%/utf-check-1083-2-81-1.jnk" has 65543 bytes.
16080 Starts with UTF-8 BOM: no
16081 Starts with UTF-16 BOM: yes
16082 Looks like UTF-8: no
16083 Has flag LOOK_NUL: yes
16084 Has flag LOOK_CR: yes
@@ -16090,11 +16090,11 @@
16090 Has flag LOOK_INVALID: yes
16091 Has flag LOOK_ODD: no
16092 Has flag LOOK_SHORT: no}
16093
16094 utf-check 1084 utf-check-1084-2-82-0.jnk \
16095 {File "%TEMP%/utf-check-1084-2-82-0.jnk" has 65542 bytes.
16096 Starts with UTF-8 BOM: no
16097 Starts with UTF-16 BOM: yes
16098 Looks like UTF-16: no
16099 Has flag LOOK_NUL: no
16100 Has flag LOOK_CR: no
@@ -16106,11 +16106,11 @@
16106 Has flag LOOK_INVALID: no
16107 Has flag LOOK_ODD: no
16108 Has flag LOOK_SHORT: no}
16109
16110 utf-check 1085 utf-check-1085-2-82-1.jnk \
16111 {File "%TEMP%/utf-check-1085-2-82-1.jnk" has 65543 bytes.
16112 Starts with UTF-8 BOM: no
16113 Starts with UTF-16 BOM: yes
16114 Looks like UTF-8: no
16115 Has flag LOOK_NUL: yes
16116 Has flag LOOK_CR: no
@@ -16122,11 +16122,11 @@
16122 Has flag LOOK_INVALID: yes
16123 Has flag LOOK_ODD: no
16124 Has flag LOOK_SHORT: no}
16125
16126 utf-check 1086 utf-check-1086-2-83-0.jnk \
16127 {File "%TEMP%/utf-check-1086-2-83-0.jnk" has 65544 bytes.
16128 Starts with UTF-8 BOM: no
16129 Starts with UTF-16 BOM: yes
16130 Looks like UTF-16: no
16131 Has flag LOOK_NUL: no
16132 Has flag LOOK_CR: yes
@@ -16138,11 +16138,11 @@
16138 Has flag LOOK_INVALID: no
16139 Has flag LOOK_ODD: no
16140 Has flag LOOK_SHORT: no}
16141
16142 utf-check 1087 utf-check-1087-2-83-1.jnk \
16143 {File "%TEMP%/utf-check-1087-2-83-1.jnk" has 65545 bytes.
16144 Starts with UTF-8 BOM: no
16145 Starts with UTF-16 BOM: yes
16146 Looks like UTF-8: no
16147 Has flag LOOK_NUL: yes
16148 Has flag LOOK_CR: yes
@@ -16154,11 +16154,11 @@
16154 Has flag LOOK_INVALID: yes
16155 Has flag LOOK_ODD: no
16156 Has flag LOOK_SHORT: no}
16157
16158 utf-check 1088 utf-check-1088-2-84-0.jnk \
16159 {File "%TEMP%/utf-check-1088-2-84-0.jnk" has 65570 bytes.
16160 Starts with UTF-8 BOM: no
16161 Starts with UTF-16 BOM: yes
16162 Looks like UTF-16: no
16163 Has flag LOOK_NUL: no
16164 Has flag LOOK_CR: no
@@ -16170,11 +16170,11 @@
16170 Has flag LOOK_INVALID: no
16171 Has flag LOOK_ODD: no
16172 Has flag LOOK_SHORT: no}
16173
16174 utf-check 1089 utf-check-1089-2-84-1.jnk \
16175 {File "%TEMP%/utf-check-1089-2-84-1.jnk" has 65571 bytes.
16176 Starts with UTF-8 BOM: no
16177 Starts with UTF-16 BOM: yes
16178 Looks like UTF-8: no
16179 Has flag LOOK_NUL: yes
16180 Has flag LOOK_CR: no
@@ -16186,11 +16186,11 @@
16186 Has flag LOOK_INVALID: yes
16187 Has flag LOOK_ODD: no
16188 Has flag LOOK_SHORT: no}
16189
16190 utf-check 1090 utf-check-1090-2-85-0.jnk \
16191 {File "%TEMP%/utf-check-1090-2-85-0.jnk" has 65572 bytes.
16192 Starts with UTF-8 BOM: no
16193 Starts with UTF-16 BOM: yes
16194 Looks like UTF-16: no
16195 Has flag LOOK_NUL: no
16196 Has flag LOOK_CR: yes
@@ -16202,11 +16202,11 @@
16202 Has flag LOOK_INVALID: no
16203 Has flag LOOK_ODD: no
16204 Has flag LOOK_SHORT: no}
16205
16206 utf-check 1091 utf-check-1091-2-85-1.jnk \
16207 {File "%TEMP%/utf-check-1091-2-85-1.jnk" has 65573 bytes.
16208 Starts with UTF-8 BOM: no
16209 Starts with UTF-16 BOM: yes
16210 Looks like UTF-8: no
16211 Has flag LOOK_NUL: yes
16212 Has flag LOOK_CR: yes
@@ -16218,11 +16218,11 @@
16218 Has flag LOOK_INVALID: yes
16219 Has flag LOOK_ODD: no
16220 Has flag LOOK_SHORT: no}
16221
16222 utf-check 1092 utf-check-1092-2-86-0.jnk \
16223 {File "%TEMP%/utf-check-1092-2-86-0.jnk" has 65572 bytes.
16224 Starts with UTF-8 BOM: no
16225 Starts with UTF-16 BOM: yes
16226 Looks like UTF-16: no
16227 Has flag LOOK_NUL: no
16228 Has flag LOOK_CR: no
@@ -16234,11 +16234,11 @@
16234 Has flag LOOK_INVALID: no
16235 Has flag LOOK_ODD: no
16236 Has flag LOOK_SHORT: no}
16237
16238 utf-check 1093 utf-check-1093-2-86-1.jnk \
16239 {File "%TEMP%/utf-check-1093-2-86-1.jnk" has 65573 bytes.
16240 Starts with UTF-8 BOM: no
16241 Starts with UTF-16 BOM: yes
16242 Looks like UTF-8: no
16243 Has flag LOOK_NUL: yes
16244 Has flag LOOK_CR: no
@@ -16250,11 +16250,11 @@
16250 Has flag LOOK_INVALID: yes
16251 Has flag LOOK_ODD: no
16252 Has flag LOOK_SHORT: no}
16253
16254 utf-check 1094 utf-check-1094-2-87-0.jnk \
16255 {File "%TEMP%/utf-check-1094-2-87-0.jnk" has 65574 bytes.
16256 Starts with UTF-8 BOM: no
16257 Starts with UTF-16 BOM: yes
16258 Looks like UTF-16: no
16259 Has flag LOOK_NUL: no
16260 Has flag LOOK_CR: yes
@@ -16266,11 +16266,11 @@
16266 Has flag LOOK_INVALID: no
16267 Has flag LOOK_ODD: no
16268 Has flag LOOK_SHORT: no}
16269
16270 utf-check 1095 utf-check-1095-2-87-1.jnk \
16271 {File "%TEMP%/utf-check-1095-2-87-1.jnk" has 65575 bytes.
16272 Starts with UTF-8 BOM: no
16273 Starts with UTF-16 BOM: yes
16274 Looks like UTF-8: no
16275 Has flag LOOK_NUL: yes
16276 Has flag LOOK_CR: yes
@@ -16282,11 +16282,11 @@
16282 Has flag LOOK_INVALID: yes
16283 Has flag LOOK_ODD: no
16284 Has flag LOOK_SHORT: no}
16285
16286 utf-check 1096 utf-check-1096-2-88-0.jnk \
16287 {File "%TEMP%/utf-check-1096-2-88-0.jnk" has 65542 bytes.
16288 Starts with UTF-8 BOM: no
16289 Starts with UTF-16 BOM: no
16290 Looks like UTF-8: no
16291 Has flag LOOK_NUL: yes
16292 Has flag LOOK_CR: no
@@ -16298,11 +16298,11 @@
16298 Has flag LOOK_INVALID: yes
16299 Has flag LOOK_ODD: no
16300 Has flag LOOK_SHORT: no}
16301
16302 utf-check 1097 utf-check-1097-2-88-1.jnk \
16303 {File "%TEMP%/utf-check-1097-2-88-1.jnk" has 65543 bytes.
16304 Starts with UTF-8 BOM: no
16305 Starts with UTF-16 BOM: no
16306 Looks like UTF-8: no
16307 Has flag LOOK_NUL: yes
16308 Has flag LOOK_CR: no
@@ -16314,11 +16314,11 @@
16314 Has flag LOOK_INVALID: yes
16315 Has flag LOOK_ODD: no
16316 Has flag LOOK_SHORT: no}
16317
16318 utf-check 1098 utf-check-1098-2-89-0.jnk \
16319 {File "%TEMP%/utf-check-1098-2-89-0.jnk" has 65544 bytes.
16320 Starts with UTF-8 BOM: no
16321 Starts with UTF-16 BOM: no
16322 Looks like UTF-8: no
16323 Has flag LOOK_NUL: yes
16324 Has flag LOOK_CR: yes
@@ -16330,11 +16330,11 @@
16330 Has flag LOOK_INVALID: yes
16331 Has flag LOOK_ODD: no
16332 Has flag LOOK_SHORT: no}
16333
16334 utf-check 1099 utf-check-1099-2-89-1.jnk \
16335 {File "%TEMP%/utf-check-1099-2-89-1.jnk" has 65545 bytes.
16336 Starts with UTF-8 BOM: no
16337 Starts with UTF-16 BOM: no
16338 Looks like UTF-8: no
16339 Has flag LOOK_NUL: yes
16340 Has flag LOOK_CR: yes
@@ -16346,11 +16346,11 @@
16346 Has flag LOOK_INVALID: yes
16347 Has flag LOOK_ODD: no
16348 Has flag LOOK_SHORT: no}
16349
16350 utf-check 1100 utf-check-1100-2-90-0.jnk \
16351 {File "%TEMP%/utf-check-1100-2-90-0.jnk" has 65544 bytes.
16352 Starts with UTF-8 BOM: no
16353 Starts with UTF-16 BOM: no
16354 Looks like UTF-8: no
16355 Has flag LOOK_NUL: yes
16356 Has flag LOOK_CR: no
@@ -16362,11 +16362,11 @@
16362 Has flag LOOK_INVALID: yes
16363 Has flag LOOK_ODD: no
16364 Has flag LOOK_SHORT: no}
16365
16366 utf-check 1101 utf-check-1101-2-90-1.jnk \
16367 {File "%TEMP%/utf-check-1101-2-90-1.jnk" has 65545 bytes.
16368 Starts with UTF-8 BOM: no
16369 Starts with UTF-16 BOM: no
16370 Looks like UTF-8: no
16371 Has flag LOOK_NUL: yes
16372 Has flag LOOK_CR: no
@@ -16378,11 +16378,11 @@
16378 Has flag LOOK_INVALID: yes
16379 Has flag LOOK_ODD: no
16380 Has flag LOOK_SHORT: no}
16381
16382 utf-check 1102 utf-check-1102-2-91-0.jnk \
16383 {File "%TEMP%/utf-check-1102-2-91-0.jnk" has 65546 bytes.
16384 Starts with UTF-8 BOM: no
16385 Starts with UTF-16 BOM: no
16386 Looks like UTF-8: no
16387 Has flag LOOK_NUL: yes
16388 Has flag LOOK_CR: yes
@@ -16394,11 +16394,11 @@
16394 Has flag LOOK_INVALID: yes
16395 Has flag LOOK_ODD: no
16396 Has flag LOOK_SHORT: no}
16397
16398 utf-check 1103 utf-check-1103-2-91-1.jnk \
16399 {File "%TEMP%/utf-check-1103-2-91-1.jnk" has 65547 bytes.
16400 Starts with UTF-8 BOM: no
16401 Starts with UTF-16 BOM: no
16402 Looks like UTF-8: no
16403 Has flag LOOK_NUL: yes
16404 Has flag LOOK_CR: yes
@@ -16410,11 +16410,11 @@
16410 Has flag LOOK_INVALID: yes
16411 Has flag LOOK_ODD: no
16412 Has flag LOOK_SHORT: no}
16413
16414 utf-check 1104 utf-check-1104-2-92-0.jnk \
16415 {File "%TEMP%/utf-check-1104-2-92-0.jnk" has 65572 bytes.
16416 Starts with UTF-8 BOM: no
16417 Starts with UTF-16 BOM: no
16418 Looks like UTF-8: no
16419 Has flag LOOK_NUL: yes
16420 Has flag LOOK_CR: no
@@ -16426,11 +16426,11 @@
16426 Has flag LOOK_INVALID: yes
16427 Has flag LOOK_ODD: no
16428 Has flag LOOK_SHORT: no}
16429
16430 utf-check 1105 utf-check-1105-2-92-1.jnk \
16431 {File "%TEMP%/utf-check-1105-2-92-1.jnk" has 65573 bytes.
16432 Starts with UTF-8 BOM: no
16433 Starts with UTF-16 BOM: no
16434 Looks like UTF-8: no
16435 Has flag LOOK_NUL: yes
16436 Has flag LOOK_CR: no
@@ -16442,11 +16442,11 @@
16442 Has flag LOOK_INVALID: yes
16443 Has flag LOOK_ODD: no
16444 Has flag LOOK_SHORT: no}
16445
16446 utf-check 1106 utf-check-1106-2-93-0.jnk \
16447 {File "%TEMP%/utf-check-1106-2-93-0.jnk" has 65574 bytes.
16448 Starts with UTF-8 BOM: no
16449 Starts with UTF-16 BOM: no
16450 Looks like UTF-8: no
16451 Has flag LOOK_NUL: yes
16452 Has flag LOOK_CR: yes
@@ -16458,11 +16458,11 @@
16458 Has flag LOOK_INVALID: yes
16459 Has flag LOOK_ODD: no
16460 Has flag LOOK_SHORT: no}
16461
16462 utf-check 1107 utf-check-1107-2-93-1.jnk \
16463 {File "%TEMP%/utf-check-1107-2-93-1.jnk" has 65575 bytes.
16464 Starts with UTF-8 BOM: no
16465 Starts with UTF-16 BOM: no
16466 Looks like UTF-8: no
16467 Has flag LOOK_NUL: yes
16468 Has flag LOOK_CR: yes
@@ -16474,11 +16474,11 @@
16474 Has flag LOOK_INVALID: yes
16475 Has flag LOOK_ODD: no
16476 Has flag LOOK_SHORT: no}
16477
16478 utf-check 1108 utf-check-1108-2-94-0.jnk \
16479 {File "%TEMP%/utf-check-1108-2-94-0.jnk" has 65574 bytes.
16480 Starts with UTF-8 BOM: no
16481 Starts with UTF-16 BOM: no
16482 Looks like UTF-8: no
16483 Has flag LOOK_NUL: yes
16484 Has flag LOOK_CR: no
@@ -16490,11 +16490,11 @@
16490 Has flag LOOK_INVALID: yes
16491 Has flag LOOK_ODD: no
16492 Has flag LOOK_SHORT: no}
16493
16494 utf-check 1109 utf-check-1109-2-94-1.jnk \
16495 {File "%TEMP%/utf-check-1109-2-94-1.jnk" has 65575 bytes.
16496 Starts with UTF-8 BOM: no
16497 Starts with UTF-16 BOM: no
16498 Looks like UTF-8: no
16499 Has flag LOOK_NUL: yes
16500 Has flag LOOK_CR: no
@@ -16506,11 +16506,11 @@
16506 Has flag LOOK_INVALID: yes
16507 Has flag LOOK_ODD: no
16508 Has flag LOOK_SHORT: no}
16509
16510 utf-check 1110 utf-check-1110-2-95-0.jnk \
16511 {File "%TEMP%/utf-check-1110-2-95-0.jnk" has 65576 bytes.
16512 Starts with UTF-8 BOM: no
16513 Starts with UTF-16 BOM: no
16514 Looks like UTF-8: no
16515 Has flag LOOK_NUL: yes
16516 Has flag LOOK_CR: yes
@@ -16522,11 +16522,11 @@
16522 Has flag LOOK_INVALID: yes
16523 Has flag LOOK_ODD: no
16524 Has flag LOOK_SHORT: no}
16525
16526 utf-check 1111 utf-check-1111-2-95-1.jnk \
16527 {File "%TEMP%/utf-check-1111-2-95-1.jnk" has 65577 bytes.
16528 Starts with UTF-8 BOM: no
16529 Starts with UTF-16 BOM: no
16530 Looks like UTF-8: no
16531 Has flag LOOK_NUL: yes
16532 Has flag LOOK_CR: yes
@@ -16538,11 +16538,11 @@
16538 Has flag LOOK_INVALID: yes
16539 Has flag LOOK_ODD: no
16540 Has flag LOOK_SHORT: no}
16541
16542 utf-check 1112 utf-check-1112-2-96-0.jnk \
16543 {File "%TEMP%/utf-check-1112-2-96-0.jnk" has 65542 bytes.
16544 Starts with UTF-8 BOM: no
16545 Starts with UTF-16 BOM: yes
16546 Looks like UTF-16: no
16547 Has flag LOOK_NUL: yes
16548 Has flag LOOK_CR: no
@@ -16554,11 +16554,11 @@
16554 Has flag LOOK_INVALID: no
16555 Has flag LOOK_ODD: no
16556 Has flag LOOK_SHORT: no}
16557
16558 utf-check 1113 utf-check-1113-2-96-1.jnk \
16559 {File "%TEMP%/utf-check-1113-2-96-1.jnk" has 65543 bytes.
16560 Starts with UTF-8 BOM: no
16561 Starts with UTF-16 BOM: yes
16562 Looks like UTF-8: no
16563 Has flag LOOK_NUL: yes
16564 Has flag LOOK_CR: no
@@ -16570,11 +16570,11 @@
16570 Has flag LOOK_INVALID: yes
16571 Has flag LOOK_ODD: no
16572 Has flag LOOK_SHORT: no}
16573
16574 utf-check 1114 utf-check-1114-2-97-0.jnk \
16575 {File "%TEMP%/utf-check-1114-2-97-0.jnk" has 65544 bytes.
16576 Starts with UTF-8 BOM: no
16577 Starts with UTF-16 BOM: yes
16578 Looks like UTF-16: no
16579 Has flag LOOK_NUL: yes
16580 Has flag LOOK_CR: yes
@@ -16586,11 +16586,11 @@
16586 Has flag LOOK_INVALID: no
16587 Has flag LOOK_ODD: no
16588 Has flag LOOK_SHORT: no}
16589
16590 utf-check 1115 utf-check-1115-2-97-1.jnk \
16591 {File "%TEMP%/utf-check-1115-2-97-1.jnk" has 65545 bytes.
16592 Starts with UTF-8 BOM: no
16593 Starts with UTF-16 BOM: yes
16594 Looks like UTF-8: no
16595 Has flag LOOK_NUL: yes
16596 Has flag LOOK_CR: yes
@@ -16602,11 +16602,11 @@
16602 Has flag LOOK_INVALID: yes
16603 Has flag LOOK_ODD: no
16604 Has flag LOOK_SHORT: no}
16605
16606 utf-check 1116 utf-check-1116-2-98-0.jnk \
16607 {File "%TEMP%/utf-check-1116-2-98-0.jnk" has 65544 bytes.
16608 Starts with UTF-8 BOM: no
16609 Starts with UTF-16 BOM: yes
16610 Looks like UTF-16: no
16611 Has flag LOOK_NUL: yes
16612 Has flag LOOK_CR: no
@@ -16618,11 +16618,11 @@
16618 Has flag LOOK_INVALID: no
16619 Has flag LOOK_ODD: no
16620 Has flag LOOK_SHORT: no}
16621
16622 utf-check 1117 utf-check-1117-2-98-1.jnk \
16623 {File "%TEMP%/utf-check-1117-2-98-1.jnk" has 65545 bytes.
16624 Starts with UTF-8 BOM: no
16625 Starts with UTF-16 BOM: yes
16626 Looks like UTF-8: no
16627 Has flag LOOK_NUL: yes
16628 Has flag LOOK_CR: no
@@ -16634,11 +16634,11 @@
16634 Has flag LOOK_INVALID: yes
16635 Has flag LOOK_ODD: no
16636 Has flag LOOK_SHORT: no}
16637
16638 utf-check 1118 utf-check-1118-2-99-0.jnk \
16639 {File "%TEMP%/utf-check-1118-2-99-0.jnk" has 65546 bytes.
16640 Starts with UTF-8 BOM: no
16641 Starts with UTF-16 BOM: yes
16642 Looks like UTF-16: no
16643 Has flag LOOK_NUL: yes
16644 Has flag LOOK_CR: yes
@@ -16650,11 +16650,11 @@
16650 Has flag LOOK_INVALID: no
16651 Has flag LOOK_ODD: no
16652 Has flag LOOK_SHORT: no}
16653
16654 utf-check 1119 utf-check-1119-2-99-1.jnk \
16655 {File "%TEMP%/utf-check-1119-2-99-1.jnk" has 65547 bytes.
16656 Starts with UTF-8 BOM: no
16657 Starts with UTF-16 BOM: yes
16658 Looks like UTF-8: no
16659 Has flag LOOK_NUL: yes
16660 Has flag LOOK_CR: yes
@@ -16666,11 +16666,11 @@
16666 Has flag LOOK_INVALID: yes
16667 Has flag LOOK_ODD: no
16668 Has flag LOOK_SHORT: no}
16669
16670 utf-check 1120 utf-check-1120-2-100-0.jnk \
16671 {File "%TEMP%/utf-check-1120-2-100-0.jnk" has 65572 bytes.
16672 Starts with UTF-8 BOM: no
16673 Starts with UTF-16 BOM: yes
16674 Looks like UTF-16: no
16675 Has flag LOOK_NUL: yes
16676 Has flag LOOK_CR: no
@@ -16682,11 +16682,11 @@
16682 Has flag LOOK_INVALID: no
16683 Has flag LOOK_ODD: no
16684 Has flag LOOK_SHORT: no}
16685
16686 utf-check 1121 utf-check-1121-2-100-1.jnk \
16687 {File "%TEMP%/utf-check-1121-2-100-1.jnk" has 65573 bytes.
16688 Starts with UTF-8 BOM: no
16689 Starts with UTF-16 BOM: yes
16690 Looks like UTF-8: no
16691 Has flag LOOK_NUL: yes
16692 Has flag LOOK_CR: no
@@ -16698,11 +16698,11 @@
16698 Has flag LOOK_INVALID: yes
16699 Has flag LOOK_ODD: no
16700 Has flag LOOK_SHORT: no}
16701
16702 utf-check 1122 utf-check-1122-2-101-0.jnk \
16703 {File "%TEMP%/utf-check-1122-2-101-0.jnk" has 65574 bytes.
16704 Starts with UTF-8 BOM: no
16705 Starts with UTF-16 BOM: yes
16706 Looks like UTF-16: no
16707 Has flag LOOK_NUL: yes
16708 Has flag LOOK_CR: yes
@@ -16714,11 +16714,11 @@
16714 Has flag LOOK_INVALID: no
16715 Has flag LOOK_ODD: no
16716 Has flag LOOK_SHORT: no}
16717
16718 utf-check 1123 utf-check-1123-2-101-1.jnk \
16719 {File "%TEMP%/utf-check-1123-2-101-1.jnk" has 65575 bytes.
16720 Starts with UTF-8 BOM: no
16721 Starts with UTF-16 BOM: yes
16722 Looks like UTF-8: no
16723 Has flag LOOK_NUL: yes
16724 Has flag LOOK_CR: yes
@@ -16730,11 +16730,11 @@
16730 Has flag LOOK_INVALID: yes
16731 Has flag LOOK_ODD: no
16732 Has flag LOOK_SHORT: no}
16733
16734 utf-check 1124 utf-check-1124-2-102-0.jnk \
16735 {File "%TEMP%/utf-check-1124-2-102-0.jnk" has 65574 bytes.
16736 Starts with UTF-8 BOM: no
16737 Starts with UTF-16 BOM: yes
16738 Looks like UTF-16: no
16739 Has flag LOOK_NUL: yes
16740 Has flag LOOK_CR: no
@@ -16746,11 +16746,11 @@
16746 Has flag LOOK_INVALID: no
16747 Has flag LOOK_ODD: no
16748 Has flag LOOK_SHORT: no}
16749
16750 utf-check 1125 utf-check-1125-2-102-1.jnk \
16751 {File "%TEMP%/utf-check-1125-2-102-1.jnk" has 65575 bytes.
16752 Starts with UTF-8 BOM: no
16753 Starts with UTF-16 BOM: yes
16754 Looks like UTF-8: no
16755 Has flag LOOK_NUL: yes
16756 Has flag LOOK_CR: no
@@ -16762,11 +16762,11 @@
16762 Has flag LOOK_INVALID: yes
16763 Has flag LOOK_ODD: no
16764 Has flag LOOK_SHORT: no}
16765
16766 utf-check 1126 utf-check-1126-2-103-0.jnk \
16767 {File "%TEMP%/utf-check-1126-2-103-0.jnk" has 65576 bytes.
16768 Starts with UTF-8 BOM: no
16769 Starts with UTF-16 BOM: yes
16770 Looks like UTF-16: no
16771 Has flag LOOK_NUL: yes
16772 Has flag LOOK_CR: yes
@@ -16778,11 +16778,11 @@
16778 Has flag LOOK_INVALID: no
16779 Has flag LOOK_ODD: no
16780 Has flag LOOK_SHORT: no}
16781
16782 utf-check 1127 utf-check-1127-2-103-1.jnk \
16783 {File "%TEMP%/utf-check-1127-2-103-1.jnk" has 65577 bytes.
16784 Starts with UTF-8 BOM: no
16785 Starts with UTF-16 BOM: yes
16786 Looks like UTF-8: no
16787 Has flag LOOK_NUL: yes
16788 Has flag LOOK_CR: yes
@@ -16794,11 +16794,11 @@
16794 Has flag LOOK_INVALID: yes
16795 Has flag LOOK_ODD: no
16796 Has flag LOOK_SHORT: no}
16797
16798 utf-check 1128 utf-check-1128-2-104-0.jnk \
16799 {File "%TEMP%/utf-check-1128-2-104-0.jnk" has 65544 bytes.
16800 Starts with UTF-8 BOM: no
16801 Starts with UTF-16 BOM: no
16802 Looks like UTF-8: no
16803 Has flag LOOK_NUL: yes
16804 Has flag LOOK_CR: no
@@ -16810,11 +16810,11 @@
16810 Has flag LOOK_INVALID: yes
16811 Has flag LOOK_ODD: no
16812 Has flag LOOK_SHORT: no}
16813
16814 utf-check 1129 utf-check-1129-2-104-1.jnk \
16815 {File "%TEMP%/utf-check-1129-2-104-1.jnk" has 65545 bytes.
16816 Starts with UTF-8 BOM: no
16817 Starts with UTF-16 BOM: no
16818 Looks like UTF-8: no
16819 Has flag LOOK_NUL: yes
16820 Has flag LOOK_CR: no
@@ -16826,11 +16826,11 @@
16826 Has flag LOOK_INVALID: yes
16827 Has flag LOOK_ODD: no
16828 Has flag LOOK_SHORT: no}
16829
16830 utf-check 1130 utf-check-1130-2-105-0.jnk \
16831 {File "%TEMP%/utf-check-1130-2-105-0.jnk" has 65546 bytes.
16832 Starts with UTF-8 BOM: no
16833 Starts with UTF-16 BOM: no
16834 Looks like UTF-8: no
16835 Has flag LOOK_NUL: yes
16836 Has flag LOOK_CR: yes
@@ -16842,11 +16842,11 @@
16842 Has flag LOOK_INVALID: yes
16843 Has flag LOOK_ODD: no
16844 Has flag LOOK_SHORT: no}
16845
16846 utf-check 1131 utf-check-1131-2-105-1.jnk \
16847 {File "%TEMP%/utf-check-1131-2-105-1.jnk" has 65547 bytes.
16848 Starts with UTF-8 BOM: no
16849 Starts with UTF-16 BOM: no
16850 Looks like UTF-8: no
16851 Has flag LOOK_NUL: yes
16852 Has flag LOOK_CR: yes
@@ -16858,11 +16858,11 @@
16858 Has flag LOOK_INVALID: yes
16859 Has flag LOOK_ODD: no
16860 Has flag LOOK_SHORT: no}
16861
16862 utf-check 1132 utf-check-1132-2-106-0.jnk \
16863 {File "%TEMP%/utf-check-1132-2-106-0.jnk" has 65546 bytes.
16864 Starts with UTF-8 BOM: no
16865 Starts with UTF-16 BOM: no
16866 Looks like UTF-8: no
16867 Has flag LOOK_NUL: yes
16868 Has flag LOOK_CR: no
@@ -16874,11 +16874,11 @@
16874 Has flag LOOK_INVALID: yes
16875 Has flag LOOK_ODD: no
16876 Has flag LOOK_SHORT: no}
16877
16878 utf-check 1133 utf-check-1133-2-106-1.jnk \
16879 {File "%TEMP%/utf-check-1133-2-106-1.jnk" has 65547 bytes.
16880 Starts with UTF-8 BOM: no
16881 Starts with UTF-16 BOM: no
16882 Looks like UTF-8: no
16883 Has flag LOOK_NUL: yes
16884 Has flag LOOK_CR: no
@@ -16890,11 +16890,11 @@
16890 Has flag LOOK_INVALID: yes
16891 Has flag LOOK_ODD: no
16892 Has flag LOOK_SHORT: no}
16893
16894 utf-check 1134 utf-check-1134-2-107-0.jnk \
16895 {File "%TEMP%/utf-check-1134-2-107-0.jnk" has 65548 bytes.
16896 Starts with UTF-8 BOM: no
16897 Starts with UTF-16 BOM: no
16898 Looks like UTF-8: no
16899 Has flag LOOK_NUL: yes
16900 Has flag LOOK_CR: yes
@@ -16906,11 +16906,11 @@
16906 Has flag LOOK_INVALID: yes
16907 Has flag LOOK_ODD: no
16908 Has flag LOOK_SHORT: no}
16909
16910 utf-check 1135 utf-check-1135-2-107-1.jnk \
16911 {File "%TEMP%/utf-check-1135-2-107-1.jnk" has 65549 bytes.
16912 Starts with UTF-8 BOM: no
16913 Starts with UTF-16 BOM: no
16914 Looks like UTF-8: no
16915 Has flag LOOK_NUL: yes
16916 Has flag LOOK_CR: yes
@@ -16922,11 +16922,11 @@
16922 Has flag LOOK_INVALID: yes
16923 Has flag LOOK_ODD: no
16924 Has flag LOOK_SHORT: no}
16925
16926 utf-check 1136 utf-check-1136-2-108-0.jnk \
16927 {File "%TEMP%/utf-check-1136-2-108-0.jnk" has 65574 bytes.
16928 Starts with UTF-8 BOM: no
16929 Starts with UTF-16 BOM: no
16930 Looks like UTF-8: no
16931 Has flag LOOK_NUL: yes
16932 Has flag LOOK_CR: no
@@ -16938,11 +16938,11 @@
16938 Has flag LOOK_INVALID: yes
16939 Has flag LOOK_ODD: no
16940 Has flag LOOK_SHORT: no}
16941
16942 utf-check 1137 utf-check-1137-2-108-1.jnk \
16943 {File "%TEMP%/utf-check-1137-2-108-1.jnk" has 65575 bytes.
16944 Starts with UTF-8 BOM: no
16945 Starts with UTF-16 BOM: no
16946 Looks like UTF-8: no
16947 Has flag LOOK_NUL: yes
16948 Has flag LOOK_CR: no
@@ -16954,11 +16954,11 @@
16954 Has flag LOOK_INVALID: yes
16955 Has flag LOOK_ODD: no
16956 Has flag LOOK_SHORT: no}
16957
16958 utf-check 1138 utf-check-1138-2-109-0.jnk \
16959 {File "%TEMP%/utf-check-1138-2-109-0.jnk" has 65576 bytes.
16960 Starts with UTF-8 BOM: no
16961 Starts with UTF-16 BOM: no
16962 Looks like UTF-8: no
16963 Has flag LOOK_NUL: yes
16964 Has flag LOOK_CR: yes
@@ -16970,11 +16970,11 @@
16970 Has flag LOOK_INVALID: yes
16971 Has flag LOOK_ODD: no
16972 Has flag LOOK_SHORT: no}
16973
16974 utf-check 1139 utf-check-1139-2-109-1.jnk \
16975 {File "%TEMP%/utf-check-1139-2-109-1.jnk" has 65577 bytes.
16976 Starts with UTF-8 BOM: no
16977 Starts with UTF-16 BOM: no
16978 Looks like UTF-8: no
16979 Has flag LOOK_NUL: yes
16980 Has flag LOOK_CR: yes
@@ -16986,11 +16986,11 @@
16986 Has flag LOOK_INVALID: yes
16987 Has flag LOOK_ODD: no
16988 Has flag LOOK_SHORT: no}
16989
16990 utf-check 1140 utf-check-1140-2-110-0.jnk \
16991 {File "%TEMP%/utf-check-1140-2-110-0.jnk" has 65576 bytes.
16992 Starts with UTF-8 BOM: no
16993 Starts with UTF-16 BOM: no
16994 Looks like UTF-8: no
16995 Has flag LOOK_NUL: yes
16996 Has flag LOOK_CR: no
@@ -17002,11 +17002,11 @@
17002 Has flag LOOK_INVALID: yes
17003 Has flag LOOK_ODD: no
17004 Has flag LOOK_SHORT: no}
17005
17006 utf-check 1141 utf-check-1141-2-110-1.jnk \
17007 {File "%TEMP%/utf-check-1141-2-110-1.jnk" has 65577 bytes.
17008 Starts with UTF-8 BOM: no
17009 Starts with UTF-16 BOM: no
17010 Looks like UTF-8: no
17011 Has flag LOOK_NUL: yes
17012 Has flag LOOK_CR: no
@@ -17018,11 +17018,11 @@
17018 Has flag LOOK_INVALID: yes
17019 Has flag LOOK_ODD: no
17020 Has flag LOOK_SHORT: no}
17021
17022 utf-check 1142 utf-check-1142-2-111-0.jnk \
17023 {File "%TEMP%/utf-check-1142-2-111-0.jnk" has 65578 bytes.
17024 Starts with UTF-8 BOM: no
17025 Starts with UTF-16 BOM: no
17026 Looks like UTF-8: no
17027 Has flag LOOK_NUL: yes
17028 Has flag LOOK_CR: yes
@@ -17034,11 +17034,11 @@
17034 Has flag LOOK_INVALID: yes
17035 Has flag LOOK_ODD: no
17036 Has flag LOOK_SHORT: no}
17037
17038 utf-check 1143 utf-check-1143-2-111-1.jnk \
17039 {File "%TEMP%/utf-check-1143-2-111-1.jnk" has 65579 bytes.
17040 Starts with UTF-8 BOM: no
17041 Starts with UTF-16 BOM: no
17042 Looks like UTF-8: no
17043 Has flag LOOK_NUL: yes
17044 Has flag LOOK_CR: yes
@@ -22586,11 +22586,11 @@
22586 Has flag LOOK_INVALID: yes
22587 Has flag LOOK_ODD: no
22588 Has flag LOOK_SHORT: no}
22589
22590 utf-check 1490 utf-check-1490-3-80-0.jnk \
22591 {File "%TEMP%/utf-check-1490-3-80-0.jnk" has 65540 bytes.
22592 Starts with UTF-8 BOM: no
22593 Starts with UTF-16 BOM: no
22594 Looks like UTF-8: no
22595 Has flag LOOK_NUL: yes
22596 Has flag LOOK_CR: no
@@ -22602,11 +22602,11 @@
22602 Has flag LOOK_INVALID: yes
22603 Has flag LOOK_ODD: no
22604 Has flag LOOK_SHORT: no}
22605
22606 utf-check 1491 utf-check-1491-3-80-1.jnk \
22607 {File "%TEMP%/utf-check-1491-3-80-1.jnk" has 65541 bytes.
22608 Starts with UTF-8 BOM: no
22609 Starts with UTF-16 BOM: no
22610 Looks like UTF-8: no
22611 Has flag LOOK_NUL: yes
22612 Has flag LOOK_CR: no
@@ -22618,11 +22618,11 @@
22618 Has flag LOOK_INVALID: yes
22619 Has flag LOOK_ODD: no
22620 Has flag LOOK_SHORT: no}
22621
22622 utf-check 1492 utf-check-1492-3-81-0.jnk \
22623 {File "%TEMP%/utf-check-1492-3-81-0.jnk" has 65542 bytes.
22624 Starts with UTF-8 BOM: no
22625 Starts with UTF-16 BOM: no
22626 Looks like UTF-8: no
22627 Has flag LOOK_NUL: yes
22628 Has flag LOOK_CR: no
@@ -22634,11 +22634,11 @@
22634 Has flag LOOK_INVALID: yes
22635 Has flag LOOK_ODD: no
22636 Has flag LOOK_SHORT: no}
22637
22638 utf-check 1493 utf-check-1493-3-81-1.jnk \
22639 {File "%TEMP%/utf-check-1493-3-81-1.jnk" has 65543 bytes.
22640 Starts with UTF-8 BOM: no
22641 Starts with UTF-16 BOM: no
22642 Looks like UTF-8: no
22643 Has flag LOOK_NUL: yes
22644 Has flag LOOK_CR: no
@@ -22650,11 +22650,11 @@
22650 Has flag LOOK_INVALID: yes
22651 Has flag LOOK_ODD: no
22652 Has flag LOOK_SHORT: no}
22653
22654 utf-check 1494 utf-check-1494-3-82-0.jnk \
22655 {File "%TEMP%/utf-check-1494-3-82-0.jnk" has 65542 bytes.
22656 Starts with UTF-8 BOM: no
22657 Starts with UTF-16 BOM: no
22658 Looks like UTF-8: no
22659 Has flag LOOK_NUL: yes
22660 Has flag LOOK_CR: no
@@ -22666,11 +22666,11 @@
22666 Has flag LOOK_INVALID: yes
22667 Has flag LOOK_ODD: no
22668 Has flag LOOK_SHORT: no}
22669
22670 utf-check 1495 utf-check-1495-3-82-1.jnk \
22671 {File "%TEMP%/utf-check-1495-3-82-1.jnk" has 65543 bytes.
22672 Starts with UTF-8 BOM: no
22673 Starts with UTF-16 BOM: no
22674 Looks like UTF-8: no
22675 Has flag LOOK_NUL: yes
22676 Has flag LOOK_CR: no
@@ -22682,11 +22682,11 @@
22682 Has flag LOOK_INVALID: yes
22683 Has flag LOOK_ODD: no
22684 Has flag LOOK_SHORT: no}
22685
22686 utf-check 1496 utf-check-1496-3-83-0.jnk \
22687 {File "%TEMP%/utf-check-1496-3-83-0.jnk" has 65544 bytes.
22688 Starts with UTF-8 BOM: no
22689 Starts with UTF-16 BOM: no
22690 Looks like UTF-8: no
22691 Has flag LOOK_NUL: yes
22692 Has flag LOOK_CR: no
@@ -22698,11 +22698,11 @@
22698 Has flag LOOK_INVALID: yes
22699 Has flag LOOK_ODD: no
22700 Has flag LOOK_SHORT: no}
22701
22702 utf-check 1497 utf-check-1497-3-83-1.jnk \
22703 {File "%TEMP%/utf-check-1497-3-83-1.jnk" has 65545 bytes.
22704 Starts with UTF-8 BOM: no
22705 Starts with UTF-16 BOM: no
22706 Looks like UTF-8: no
22707 Has flag LOOK_NUL: yes
22708 Has flag LOOK_CR: no
@@ -22714,11 +22714,11 @@
22714 Has flag LOOK_INVALID: yes
22715 Has flag LOOK_ODD: no
22716 Has flag LOOK_SHORT: no}
22717
22718 utf-check 1498 utf-check-1498-3-84-0.jnk \
22719 {File "%TEMP%/utf-check-1498-3-84-0.jnk" has 65570 bytes.
22720 Starts with UTF-8 BOM: no
22721 Starts with UTF-16 BOM: no
22722 Looks like UTF-8: no
22723 Has flag LOOK_NUL: yes
22724 Has flag LOOK_CR: no
@@ -22730,11 +22730,11 @@
22730 Has flag LOOK_INVALID: yes
22731 Has flag LOOK_ODD: no
22732 Has flag LOOK_SHORT: no}
22733
22734 utf-check 1499 utf-check-1499-3-84-1.jnk \
22735 {File "%TEMP%/utf-check-1499-3-84-1.jnk" has 65571 bytes.
22736 Starts with UTF-8 BOM: no
22737 Starts with UTF-16 BOM: no
22738 Looks like UTF-8: no
22739 Has flag LOOK_NUL: yes
22740 Has flag LOOK_CR: no
@@ -22746,11 +22746,11 @@
22746 Has flag LOOK_INVALID: yes
22747 Has flag LOOK_ODD: no
22748 Has flag LOOK_SHORT: no}
22749
22750 utf-check 1500 utf-check-1500-3-85-0.jnk \
22751 {File "%TEMP%/utf-check-1500-3-85-0.jnk" has 65572 bytes.
22752 Starts with UTF-8 BOM: no
22753 Starts with UTF-16 BOM: no
22754 Looks like UTF-8: no
22755 Has flag LOOK_NUL: yes
22756 Has flag LOOK_CR: no
@@ -22762,11 +22762,11 @@
22762 Has flag LOOK_INVALID: yes
22763 Has flag LOOK_ODD: no
22764 Has flag LOOK_SHORT: no}
22765
22766 utf-check 1501 utf-check-1501-3-85-1.jnk \
22767 {File "%TEMP%/utf-check-1501-3-85-1.jnk" has 65573 bytes.
22768 Starts with UTF-8 BOM: no
22769 Starts with UTF-16 BOM: no
22770 Looks like UTF-8: no
22771 Has flag LOOK_NUL: yes
22772 Has flag LOOK_CR: no
@@ -22778,11 +22778,11 @@
22778 Has flag LOOK_INVALID: yes
22779 Has flag LOOK_ODD: no
22780 Has flag LOOK_SHORT: no}
22781
22782 utf-check 1502 utf-check-1502-3-86-0.jnk \
22783 {File "%TEMP%/utf-check-1502-3-86-0.jnk" has 65572 bytes.
22784 Starts with UTF-8 BOM: no
22785 Starts with UTF-16 BOM: no
22786 Looks like UTF-8: no
22787 Has flag LOOK_NUL: yes
22788 Has flag LOOK_CR: no
@@ -22794,11 +22794,11 @@
22794 Has flag LOOK_INVALID: yes
22795 Has flag LOOK_ODD: no
22796 Has flag LOOK_SHORT: no}
22797
22798 utf-check 1503 utf-check-1503-3-86-1.jnk \
22799 {File "%TEMP%/utf-check-1503-3-86-1.jnk" has 65573 bytes.
22800 Starts with UTF-8 BOM: no
22801 Starts with UTF-16 BOM: no
22802 Looks like UTF-8: no
22803 Has flag LOOK_NUL: yes
22804 Has flag LOOK_CR: no
@@ -22810,11 +22810,11 @@
22810 Has flag LOOK_INVALID: yes
22811 Has flag LOOK_ODD: no
22812 Has flag LOOK_SHORT: no}
22813
22814 utf-check 1504 utf-check-1504-3-87-0.jnk \
22815 {File "%TEMP%/utf-check-1504-3-87-0.jnk" has 65574 bytes.
22816 Starts with UTF-8 BOM: no
22817 Starts with UTF-16 BOM: no
22818 Looks like UTF-8: no
22819 Has flag LOOK_NUL: yes
22820 Has flag LOOK_CR: no
@@ -22826,11 +22826,11 @@
22826 Has flag LOOK_INVALID: yes
22827 Has flag LOOK_ODD: no
22828 Has flag LOOK_SHORT: no}
22829
22830 utf-check 1505 utf-check-1505-3-87-1.jnk \
22831 {File "%TEMP%/utf-check-1505-3-87-1.jnk" has 65575 bytes.
22832 Starts with UTF-8 BOM: no
22833 Starts with UTF-16 BOM: no
22834 Looks like UTF-8: no
22835 Has flag LOOK_NUL: yes
22836 Has flag LOOK_CR: no
@@ -22842,11 +22842,11 @@
22842 Has flag LOOK_INVALID: yes
22843 Has flag LOOK_ODD: no
22844 Has flag LOOK_SHORT: no}
22845
22846 utf-check 1506 utf-check-1506-3-88-0.jnk \
22847 {File "%TEMP%/utf-check-1506-3-88-0.jnk" has 65542 bytes.
22848 Starts with UTF-8 BOM: no
22849 Starts with UTF-16 BOM: no
22850 Looks like UTF-8: no
22851 Has flag LOOK_NUL: yes
22852 Has flag LOOK_CR: no
@@ -22858,11 +22858,11 @@
22858 Has flag LOOK_INVALID: yes
22859 Has flag LOOK_ODD: no
22860 Has flag LOOK_SHORT: no}
22861
22862 utf-check 1507 utf-check-1507-3-88-1.jnk \
22863 {File "%TEMP%/utf-check-1507-3-88-1.jnk" has 65543 bytes.
22864 Starts with UTF-8 BOM: no
22865 Starts with UTF-16 BOM: no
22866 Looks like UTF-8: no
22867 Has flag LOOK_NUL: yes
22868 Has flag LOOK_CR: no
@@ -22874,11 +22874,11 @@
22874 Has flag LOOK_INVALID: yes
22875 Has flag LOOK_ODD: no
22876 Has flag LOOK_SHORT: no}
22877
22878 utf-check 1508 utf-check-1508-3-89-0.jnk \
22879 {File "%TEMP%/utf-check-1508-3-89-0.jnk" has 65544 bytes.
22880 Starts with UTF-8 BOM: no
22881 Starts with UTF-16 BOM: no
22882 Looks like UTF-8: no
22883 Has flag LOOK_NUL: yes
22884 Has flag LOOK_CR: no
@@ -22890,11 +22890,11 @@
22890 Has flag LOOK_INVALID: yes
22891 Has flag LOOK_ODD: no
22892 Has flag LOOK_SHORT: no}
22893
22894 utf-check 1509 utf-check-1509-3-89-1.jnk \
22895 {File "%TEMP%/utf-check-1509-3-89-1.jnk" has 65545 bytes.
22896 Starts with UTF-8 BOM: no
22897 Starts with UTF-16 BOM: no
22898 Looks like UTF-8: no
22899 Has flag LOOK_NUL: yes
22900 Has flag LOOK_CR: no
@@ -22906,11 +22906,11 @@
22906 Has flag LOOK_INVALID: yes
22907 Has flag LOOK_ODD: no
22908 Has flag LOOK_SHORT: no}
22909
22910 utf-check 1510 utf-check-1510-3-90-0.jnk \
22911 {File "%TEMP%/utf-check-1510-3-90-0.jnk" has 65544 bytes.
22912 Starts with UTF-8 BOM: no
22913 Starts with UTF-16 BOM: no
22914 Looks like UTF-8: no
22915 Has flag LOOK_NUL: yes
22916 Has flag LOOK_CR: no
@@ -22922,11 +22922,11 @@
22922 Has flag LOOK_INVALID: yes
22923 Has flag LOOK_ODD: no
22924 Has flag LOOK_SHORT: no}
22925
22926 utf-check 1511 utf-check-1511-3-90-1.jnk \
22927 {File "%TEMP%/utf-check-1511-3-90-1.jnk" has 65545 bytes.
22928 Starts with UTF-8 BOM: no
22929 Starts with UTF-16 BOM: no
22930 Looks like UTF-8: no
22931 Has flag LOOK_NUL: yes
22932 Has flag LOOK_CR: no
@@ -22938,11 +22938,11 @@
22938 Has flag LOOK_INVALID: yes
22939 Has flag LOOK_ODD: no
22940 Has flag LOOK_SHORT: no}
22941
22942 utf-check 1512 utf-check-1512-3-91-0.jnk \
22943 {File "%TEMP%/utf-check-1512-3-91-0.jnk" has 65546 bytes.
22944 Starts with UTF-8 BOM: no
22945 Starts with UTF-16 BOM: no
22946 Looks like UTF-8: no
22947 Has flag LOOK_NUL: yes
22948 Has flag LOOK_CR: no
@@ -22954,11 +22954,11 @@
22954 Has flag LOOK_INVALID: yes
22955 Has flag LOOK_ODD: no
22956 Has flag LOOK_SHORT: no}
22957
22958 utf-check 1513 utf-check-1513-3-91-1.jnk \
22959 {File "%TEMP%/utf-check-1513-3-91-1.jnk" has 65547 bytes.
22960 Starts with UTF-8 BOM: no
22961 Starts with UTF-16 BOM: no
22962 Looks like UTF-8: no
22963 Has flag LOOK_NUL: yes
22964 Has flag LOOK_CR: no
@@ -22970,11 +22970,11 @@
22970 Has flag LOOK_INVALID: yes
22971 Has flag LOOK_ODD: no
22972 Has flag LOOK_SHORT: no}
22973
22974 utf-check 1514 utf-check-1514-3-92-0.jnk \
22975 {File "%TEMP%/utf-check-1514-3-92-0.jnk" has 65572 bytes.
22976 Starts with UTF-8 BOM: no
22977 Starts with UTF-16 BOM: no
22978 Looks like UTF-8: no
22979 Has flag LOOK_NUL: yes
22980 Has flag LOOK_CR: no
@@ -22986,11 +22986,11 @@
22986 Has flag LOOK_INVALID: yes
22987 Has flag LOOK_ODD: no
22988 Has flag LOOK_SHORT: no}
22989
22990 utf-check 1515 utf-check-1515-3-92-1.jnk \
22991 {File "%TEMP%/utf-check-1515-3-92-1.jnk" has 65573 bytes.
22992 Starts with UTF-8 BOM: no
22993 Starts with UTF-16 BOM: no
22994 Looks like UTF-8: no
22995 Has flag LOOK_NUL: yes
22996 Has flag LOOK_CR: no
@@ -23002,11 +23002,11 @@
23002 Has flag LOOK_INVALID: yes
23003 Has flag LOOK_ODD: no
23004 Has flag LOOK_SHORT: no}
23005
23006 utf-check 1516 utf-check-1516-3-93-0.jnk \
23007 {File "%TEMP%/utf-check-1516-3-93-0.jnk" has 65574 bytes.
23008 Starts with UTF-8 BOM: no
23009 Starts with UTF-16 BOM: no
23010 Looks like UTF-8: no
23011 Has flag LOOK_NUL: yes
23012 Has flag LOOK_CR: no
@@ -23018,11 +23018,11 @@
23018 Has flag LOOK_INVALID: yes
23019 Has flag LOOK_ODD: no
23020 Has flag LOOK_SHORT: no}
23021
23022 utf-check 1517 utf-check-1517-3-93-1.jnk \
23023 {File "%TEMP%/utf-check-1517-3-93-1.jnk" has 65575 bytes.
23024 Starts with UTF-8 BOM: no
23025 Starts with UTF-16 BOM: no
23026 Looks like UTF-8: no
23027 Has flag LOOK_NUL: yes
23028 Has flag LOOK_CR: no
@@ -23034,11 +23034,11 @@
23034 Has flag LOOK_INVALID: yes
23035 Has flag LOOK_ODD: no
23036 Has flag LOOK_SHORT: no}
23037
23038 utf-check 1518 utf-check-1518-3-94-0.jnk \
23039 {File "%TEMP%/utf-check-1518-3-94-0.jnk" has 65574 bytes.
23040 Starts with UTF-8 BOM: no
23041 Starts with UTF-16 BOM: no
23042 Looks like UTF-8: no
23043 Has flag LOOK_NUL: yes
23044 Has flag LOOK_CR: no
@@ -23050,11 +23050,11 @@
23050 Has flag LOOK_INVALID: yes
23051 Has flag LOOK_ODD: no
23052 Has flag LOOK_SHORT: no}
23053
23054 utf-check 1519 utf-check-1519-3-94-1.jnk \
23055 {File "%TEMP%/utf-check-1519-3-94-1.jnk" has 65575 bytes.
23056 Starts with UTF-8 BOM: no
23057 Starts with UTF-16 BOM: no
23058 Looks like UTF-8: no
23059 Has flag LOOK_NUL: yes
23060 Has flag LOOK_CR: no
@@ -23066,11 +23066,11 @@
23066 Has flag LOOK_INVALID: yes
23067 Has flag LOOK_ODD: no
23068 Has flag LOOK_SHORT: no}
23069
23070 utf-check 1520 utf-check-1520-3-95-0.jnk \
23071 {File "%TEMP%/utf-check-1520-3-95-0.jnk" has 65576 bytes.
23072 Starts with UTF-8 BOM: no
23073 Starts with UTF-16 BOM: no
23074 Looks like UTF-8: no
23075 Has flag LOOK_NUL: yes
23076 Has flag LOOK_CR: no
@@ -23082,11 +23082,11 @@
23082 Has flag LOOK_INVALID: yes
23083 Has flag LOOK_ODD: no
23084 Has flag LOOK_SHORT: no}
23085
23086 utf-check 1521 utf-check-1521-3-95-1.jnk \
23087 {File "%TEMP%/utf-check-1521-3-95-1.jnk" has 65577 bytes.
23088 Starts with UTF-8 BOM: no
23089 Starts with UTF-16 BOM: no
23090 Looks like UTF-8: no
23091 Has flag LOOK_NUL: yes
23092 Has flag LOOK_CR: no
@@ -23098,11 +23098,11 @@
23098 Has flag LOOK_INVALID: yes
23099 Has flag LOOK_ODD: no
23100 Has flag LOOK_SHORT: no}
23101
23102 utf-check 1522 utf-check-1522-3-96-0.jnk \
23103 {File "%TEMP%/utf-check-1522-3-96-0.jnk" has 65542 bytes.
23104 Starts with UTF-8 BOM: no
23105 Starts with UTF-16 BOM: no
23106 Looks like UTF-8: no
23107 Has flag LOOK_NUL: yes
23108 Has flag LOOK_CR: no
@@ -23114,11 +23114,11 @@
23114 Has flag LOOK_INVALID: yes
23115 Has flag LOOK_ODD: no
23116 Has flag LOOK_SHORT: no}
23117
23118 utf-check 1523 utf-check-1523-3-96-1.jnk \
23119 {File "%TEMP%/utf-check-1523-3-96-1.jnk" has 65543 bytes.
23120 Starts with UTF-8 BOM: no
23121 Starts with UTF-16 BOM: no
23122 Looks like UTF-8: no
23123 Has flag LOOK_NUL: yes
23124 Has flag LOOK_CR: no
@@ -23130,11 +23130,11 @@
23130 Has flag LOOK_INVALID: yes
23131 Has flag LOOK_ODD: no
23132 Has flag LOOK_SHORT: no}
23133
23134 utf-check 1524 utf-check-1524-3-97-0.jnk \
23135 {File "%TEMP%/utf-check-1524-3-97-0.jnk" has 65544 bytes.
23136 Starts with UTF-8 BOM: no
23137 Starts with UTF-16 BOM: no
23138 Looks like UTF-8: no
23139 Has flag LOOK_NUL: yes
23140 Has flag LOOK_CR: no
@@ -23146,11 +23146,11 @@
23146 Has flag LOOK_INVALID: yes
23147 Has flag LOOK_ODD: no
23148 Has flag LOOK_SHORT: no}
23149
23150 utf-check 1525 utf-check-1525-3-97-1.jnk \
23151 {File "%TEMP%/utf-check-1525-3-97-1.jnk" has 65545 bytes.
23152 Starts with UTF-8 BOM: no
23153 Starts with UTF-16 BOM: no
23154 Looks like UTF-8: no
23155 Has flag LOOK_NUL: yes
23156 Has flag LOOK_CR: no
@@ -23162,11 +23162,11 @@
23162 Has flag LOOK_INVALID: yes
23163 Has flag LOOK_ODD: no
23164 Has flag LOOK_SHORT: no}
23165
23166 utf-check 1526 utf-check-1526-3-98-0.jnk \
23167 {File "%TEMP%/utf-check-1526-3-98-0.jnk" has 65544 bytes.
23168 Starts with UTF-8 BOM: no
23169 Starts with UTF-16 BOM: no
23170 Looks like UTF-8: no
23171 Has flag LOOK_NUL: yes
23172 Has flag LOOK_CR: no
@@ -23178,11 +23178,11 @@
23178 Has flag LOOK_INVALID: yes
23179 Has flag LOOK_ODD: no
23180 Has flag LOOK_SHORT: no}
23181
23182 utf-check 1527 utf-check-1527-3-98-1.jnk \
23183 {File "%TEMP%/utf-check-1527-3-98-1.jnk" has 65545 bytes.
23184 Starts with UTF-8 BOM: no
23185 Starts with UTF-16 BOM: no
23186 Looks like UTF-8: no
23187 Has flag LOOK_NUL: yes
23188 Has flag LOOK_CR: no
@@ -23194,11 +23194,11 @@
23194 Has flag LOOK_INVALID: yes
23195 Has flag LOOK_ODD: no
23196 Has flag LOOK_SHORT: no}
23197
23198 utf-check 1528 utf-check-1528-3-99-0.jnk \
23199 {File "%TEMP%/utf-check-1528-3-99-0.jnk" has 65546 bytes.
23200 Starts with UTF-8 BOM: no
23201 Starts with UTF-16 BOM: no
23202 Looks like UTF-8: no
23203 Has flag LOOK_NUL: yes
23204 Has flag LOOK_CR: no
@@ -23210,11 +23210,11 @@
23210 Has flag LOOK_INVALID: yes
23211 Has flag LOOK_ODD: no
23212 Has flag LOOK_SHORT: no}
23213
23214 utf-check 1529 utf-check-1529-3-99-1.jnk \
23215 {File "%TEMP%/utf-check-1529-3-99-1.jnk" has 65547 bytes.
23216 Starts with UTF-8 BOM: no
23217 Starts with UTF-16 BOM: no
23218 Looks like UTF-8: no
23219 Has flag LOOK_NUL: yes
23220 Has flag LOOK_CR: no
@@ -23226,11 +23226,11 @@
23226 Has flag LOOK_INVALID: yes
23227 Has flag LOOK_ODD: no
23228 Has flag LOOK_SHORT: no}
23229
23230 utf-check 1530 utf-check-1530-3-100-0.jnk \
23231 {File "%TEMP%/utf-check-1530-3-100-0.jnk" has 65572 bytes.
23232 Starts with UTF-8 BOM: no
23233 Starts with UTF-16 BOM: no
23234 Looks like UTF-8: no
23235 Has flag LOOK_NUL: yes
23236 Has flag LOOK_CR: no
@@ -23242,11 +23242,11 @@
23242 Has flag LOOK_INVALID: yes
23243 Has flag LOOK_ODD: no
23244 Has flag LOOK_SHORT: no}
23245
23246 utf-check 1531 utf-check-1531-3-100-1.jnk \
23247 {File "%TEMP%/utf-check-1531-3-100-1.jnk" has 65573 bytes.
23248 Starts with UTF-8 BOM: no
23249 Starts with UTF-16 BOM: no
23250 Looks like UTF-8: no
23251 Has flag LOOK_NUL: yes
23252 Has flag LOOK_CR: no
@@ -23258,11 +23258,11 @@
23258 Has flag LOOK_INVALID: yes
23259 Has flag LOOK_ODD: no
23260 Has flag LOOK_SHORT: no}
23261
23262 utf-check 1532 utf-check-1532-3-101-0.jnk \
23263 {File "%TEMP%/utf-check-1532-3-101-0.jnk" has 65574 bytes.
23264 Starts with UTF-8 BOM: no
23265 Starts with UTF-16 BOM: no
23266 Looks like UTF-8: no
23267 Has flag LOOK_NUL: yes
23268 Has flag LOOK_CR: no
@@ -23274,11 +23274,11 @@
23274 Has flag LOOK_INVALID: yes
23275 Has flag LOOK_ODD: no
23276 Has flag LOOK_SHORT: no}
23277
23278 utf-check 1533 utf-check-1533-3-101-1.jnk \
23279 {File "%TEMP%/utf-check-1533-3-101-1.jnk" has 65575 bytes.
23280 Starts with UTF-8 BOM: no
23281 Starts with UTF-16 BOM: no
23282 Looks like UTF-8: no
23283 Has flag LOOK_NUL: yes
23284 Has flag LOOK_CR: no
@@ -23290,11 +23290,11 @@
23290 Has flag LOOK_INVALID: yes
23291 Has flag LOOK_ODD: no
23292 Has flag LOOK_SHORT: no}
23293
23294 utf-check 1534 utf-check-1534-3-102-0.jnk \
23295 {File "%TEMP%/utf-check-1534-3-102-0.jnk" has 65574 bytes.
23296 Starts with UTF-8 BOM: no
23297 Starts with UTF-16 BOM: no
23298 Looks like UTF-8: no
23299 Has flag LOOK_NUL: yes
23300 Has flag LOOK_CR: no
@@ -23306,11 +23306,11 @@
23306 Has flag LOOK_INVALID: yes
23307 Has flag LOOK_ODD: no
23308 Has flag LOOK_SHORT: no}
23309
23310 utf-check 1535 utf-check-1535-3-102-1.jnk \
23311 {File "%TEMP%/utf-check-1535-3-102-1.jnk" has 65575 bytes.
23312 Starts with UTF-8 BOM: no
23313 Starts with UTF-16 BOM: no
23314 Looks like UTF-8: no
23315 Has flag LOOK_NUL: yes
23316 Has flag LOOK_CR: no
@@ -23322,11 +23322,11 @@
23322 Has flag LOOK_INVALID: yes
23323 Has flag LOOK_ODD: no
23324 Has flag LOOK_SHORT: no}
23325
23326 utf-check 1536 utf-check-1536-3-103-0.jnk \
23327 {File "%TEMP%/utf-check-1536-3-103-0.jnk" has 65576 bytes.
23328 Starts with UTF-8 BOM: no
23329 Starts with UTF-16 BOM: no
23330 Looks like UTF-8: no
23331 Has flag LOOK_NUL: yes
23332 Has flag LOOK_CR: no
@@ -23338,11 +23338,11 @@
23338 Has flag LOOK_INVALID: yes
23339 Has flag LOOK_ODD: no
23340 Has flag LOOK_SHORT: no}
23341
23342 utf-check 1537 utf-check-1537-3-103-1.jnk \
23343 {File "%TEMP%/utf-check-1537-3-103-1.jnk" has 65577 bytes.
23344 Starts with UTF-8 BOM: no
23345 Starts with UTF-16 BOM: no
23346 Looks like UTF-8: no
23347 Has flag LOOK_NUL: yes
23348 Has flag LOOK_CR: no
@@ -23354,11 +23354,11 @@
23354 Has flag LOOK_INVALID: yes
23355 Has flag LOOK_ODD: no
23356 Has flag LOOK_SHORT: no}
23357
23358 utf-check 1538 utf-check-1538-3-104-0.jnk \
23359 {File "%TEMP%/utf-check-1538-3-104-0.jnk" has 65544 bytes.
23360 Starts with UTF-8 BOM: no
23361 Starts with UTF-16 BOM: no
23362 Looks like UTF-8: no
23363 Has flag LOOK_NUL: yes
23364 Has flag LOOK_CR: no
@@ -23370,11 +23370,11 @@
23370 Has flag LOOK_INVALID: yes
23371 Has flag LOOK_ODD: no
23372 Has flag LOOK_SHORT: no}
23373
23374 utf-check 1539 utf-check-1539-3-104-1.jnk \
23375 {File "%TEMP%/utf-check-1539-3-104-1.jnk" has 65545 bytes.
23376 Starts with UTF-8 BOM: no
23377 Starts with UTF-16 BOM: no
23378 Looks like UTF-8: no
23379 Has flag LOOK_NUL: yes
23380 Has flag LOOK_CR: no
@@ -23386,11 +23386,11 @@
23386 Has flag LOOK_INVALID: yes
23387 Has flag LOOK_ODD: no
23388 Has flag LOOK_SHORT: no}
23389
23390 utf-check 1540 utf-check-1540-3-105-0.jnk \
23391 {File "%TEMP%/utf-check-1540-3-105-0.jnk" has 65546 bytes.
23392 Starts with UTF-8 BOM: no
23393 Starts with UTF-16 BOM: no
23394 Looks like UTF-8: no
23395 Has flag LOOK_NUL: yes
23396 Has flag LOOK_CR: no
@@ -23402,11 +23402,11 @@
23402 Has flag LOOK_INVALID: yes
23403 Has flag LOOK_ODD: no
23404 Has flag LOOK_SHORT: no}
23405
23406 utf-check 1541 utf-check-1541-3-105-1.jnk \
23407 {File "%TEMP%/utf-check-1541-3-105-1.jnk" has 65547 bytes.
23408 Starts with UTF-8 BOM: no
23409 Starts with UTF-16 BOM: no
23410 Looks like UTF-8: no
23411 Has flag LOOK_NUL: yes
23412 Has flag LOOK_CR: no
@@ -23418,11 +23418,11 @@
23418 Has flag LOOK_INVALID: yes
23419 Has flag LOOK_ODD: no
23420 Has flag LOOK_SHORT: no}
23421
23422 utf-check 1542 utf-check-1542-3-106-0.jnk \
23423 {File "%TEMP%/utf-check-1542-3-106-0.jnk" has 65546 bytes.
23424 Starts with UTF-8 BOM: no
23425 Starts with UTF-16 BOM: no
23426 Looks like UTF-8: no
23427 Has flag LOOK_NUL: yes
23428 Has flag LOOK_CR: no
@@ -23434,11 +23434,11 @@
23434 Has flag LOOK_INVALID: yes
23435 Has flag LOOK_ODD: no
23436 Has flag LOOK_SHORT: no}
23437
23438 utf-check 1543 utf-check-1543-3-106-1.jnk \
23439 {File "%TEMP%/utf-check-1543-3-106-1.jnk" has 65547 bytes.
23440 Starts with UTF-8 BOM: no
23441 Starts with UTF-16 BOM: no
23442 Looks like UTF-8: no
23443 Has flag LOOK_NUL: yes
23444 Has flag LOOK_CR: no
@@ -23450,11 +23450,11 @@
23450 Has flag LOOK_INVALID: yes
23451 Has flag LOOK_ODD: no
23452 Has flag LOOK_SHORT: no}
23453
23454 utf-check 1544 utf-check-1544-3-107-0.jnk \
23455 {File "%TEMP%/utf-check-1544-3-107-0.jnk" has 65548 bytes.
23456 Starts with UTF-8 BOM: no
23457 Starts with UTF-16 BOM: no
23458 Looks like UTF-8: no
23459 Has flag LOOK_NUL: yes
23460 Has flag LOOK_CR: no
@@ -23466,11 +23466,11 @@
23466 Has flag LOOK_INVALID: yes
23467 Has flag LOOK_ODD: no
23468 Has flag LOOK_SHORT: no}
23469
23470 utf-check 1545 utf-check-1545-3-107-1.jnk \
23471 {File "%TEMP%/utf-check-1545-3-107-1.jnk" has 65549 bytes.
23472 Starts with UTF-8 BOM: no
23473 Starts with UTF-16 BOM: no
23474 Looks like UTF-8: no
23475 Has flag LOOK_NUL: yes
23476 Has flag LOOK_CR: no
@@ -23482,11 +23482,11 @@
23482 Has flag LOOK_INVALID: yes
23483 Has flag LOOK_ODD: no
23484 Has flag LOOK_SHORT: no}
23485
23486 utf-check 1546 utf-check-1546-3-108-0.jnk \
23487 {File "%TEMP%/utf-check-1546-3-108-0.jnk" has 65574 bytes.
23488 Starts with UTF-8 BOM: no
23489 Starts with UTF-16 BOM: no
23490 Looks like UTF-8: no
23491 Has flag LOOK_NUL: yes
23492 Has flag LOOK_CR: no
@@ -23498,11 +23498,11 @@
23498 Has flag LOOK_INVALID: yes
23499 Has flag LOOK_ODD: no
23500 Has flag LOOK_SHORT: no}
23501
23502 utf-check 1547 utf-check-1547-3-108-1.jnk \
23503 {File "%TEMP%/utf-check-1547-3-108-1.jnk" has 65575 bytes.
23504 Starts with UTF-8 BOM: no
23505 Starts with UTF-16 BOM: no
23506 Looks like UTF-8: no
23507 Has flag LOOK_NUL: yes
23508 Has flag LOOK_CR: no
@@ -23514,11 +23514,11 @@
23514 Has flag LOOK_INVALID: yes
23515 Has flag LOOK_ODD: no
23516 Has flag LOOK_SHORT: no}
23517
23518 utf-check 1548 utf-check-1548-3-109-0.jnk \
23519 {File "%TEMP%/utf-check-1548-3-109-0.jnk" has 65576 bytes.
23520 Starts with UTF-8 BOM: no
23521 Starts with UTF-16 BOM: no
23522 Looks like UTF-8: no
23523 Has flag LOOK_NUL: yes
23524 Has flag LOOK_CR: no
@@ -23530,11 +23530,11 @@
23530 Has flag LOOK_INVALID: yes
23531 Has flag LOOK_ODD: no
23532 Has flag LOOK_SHORT: no}
23533
23534 utf-check 1549 utf-check-1549-3-109-1.jnk \
23535 {File "%TEMP%/utf-check-1549-3-109-1.jnk" has 65577 bytes.
23536 Starts with UTF-8 BOM: no
23537 Starts with UTF-16 BOM: no
23538 Looks like UTF-8: no
23539 Has flag LOOK_NUL: yes
23540 Has flag LOOK_CR: no
@@ -23546,11 +23546,11 @@
23546 Has flag LOOK_INVALID: yes
23547 Has flag LOOK_ODD: no
23548 Has flag LOOK_SHORT: no}
23549
23550 utf-check 1550 utf-check-1550-3-110-0.jnk \
23551 {File "%TEMP%/utf-check-1550-3-110-0.jnk" has 65576 bytes.
23552 Starts with UTF-8 BOM: no
23553 Starts with UTF-16 BOM: no
23554 Looks like UTF-8: no
23555 Has flag LOOK_NUL: yes
23556 Has flag LOOK_CR: no
@@ -23562,11 +23562,11 @@
23562 Has flag LOOK_INVALID: yes
23563 Has flag LOOK_ODD: no
23564 Has flag LOOK_SHORT: no}
23565
23566 utf-check 1551 utf-check-1551-3-110-1.jnk \
23567 {File "%TEMP%/utf-check-1551-3-110-1.jnk" has 65577 bytes.
23568 Starts with UTF-8 BOM: no
23569 Starts with UTF-16 BOM: no
23570 Looks like UTF-8: no
23571 Has flag LOOK_NUL: yes
23572 Has flag LOOK_CR: no
@@ -23578,11 +23578,11 @@
23578 Has flag LOOK_INVALID: yes
23579 Has flag LOOK_ODD: no
23580 Has flag LOOK_SHORT: no}
23581
23582 utf-check 1552 utf-check-1552-3-111-0.jnk \
23583 {File "%TEMP%/utf-check-1552-3-111-0.jnk" has 65578 bytes.
23584 Starts with UTF-8 BOM: no
23585 Starts with UTF-16 BOM: no
23586 Looks like UTF-8: no
23587 Has flag LOOK_NUL: yes
23588 Has flag LOOK_CR: no
@@ -23594,11 +23594,11 @@
23594 Has flag LOOK_INVALID: yes
23595 Has flag LOOK_ODD: no
23596 Has flag LOOK_SHORT: no}
23597
23598 utf-check 1553 utf-check-1553-3-111-1.jnk \
23599 {File "%TEMP%/utf-check-1553-3-111-1.jnk" has 65579 bytes.
23600 Starts with UTF-8 BOM: no
23601 Starts with UTF-16 BOM: no
23602 Looks like UTF-8: no
23603 Has flag LOOK_NUL: yes
23604 Has flag LOOK_CR: no
23605
--- win/Makefile.PellesCGMake
+++ win/Makefile.PellesCGMake
@@ -83,17 +83,17 @@
8383
8484
# define the SQLite files, which need special flags on compile
8585
SQLITESRC=sqlite3.c
8686
ORIGSQLITESRC=$(foreach sf,$(SQLITESRC),$(SRCDIR)$(sf))
8787
SQLITEOBJ=$(foreach sf,$(SQLITESRC),$(sf:.c=.obj))
88
-SQLITEDEFINES=-DNDEBUG=1 -DSQLITE_DQS=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_GET_TABLE -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_TRUSTED_SCHEMA=0 -DSQLITE_WIN32_NO_ANSI
88
+SQLITEDEFINES=-DNDEBUG=1 -DSQLITE_DQS=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_TRUSTED_SCHEMA=0 -DSQLITE_WIN32_NO_ANSI
8989
9090
# define the SQLite shell files, which need special flags on compile
9191
SQLITESHELLSRC=shell.c
9292
ORIGSQLITESHELLSRC=$(foreach sf,$(SQLITESHELLSRC),$(SRCDIR)$(sf))
9393
SQLITESHELLOBJ=$(foreach sf,$(SQLITESHELLSRC),$(sf:.c=.obj))
94
-SQLITESHELLDEFINES=-DNDEBUG=1 -DSQLITE_DQS=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_GET_TABLE -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_TRUSTED_SCHEMA=0 -Dmain=sqlite3_shell -DSQLITE_SHELL_IS_UTF8=1 -DSQLITE_OMIT_LOAD_EXTENSION=1 -DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) -DSQLITE_SHELL_DBNAME_PROC=sqlcmd_get_dbname -DSQLITE_SHELL_INIT_PROC=sqlcmd_init_proc -Daccess=file_access -Dsystem=fossil_system -Dgetenv=fossil_getenv -Dfopen=fossil_fopen
94
+SQLITESHELLDEFINES=-DNDEBUG=1 -DSQLITE_DQS=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_TRUSTED_SCHEMA=0 -Dmain=sqlite3_shell -DSQLITE_SHELL_IS_UTF8=1 -DSQLITE_OMIT_LOAD_EXTENSION=1 -DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) -DSQLITE_SHELL_DBNAME_PROC=sqlcmd_get_dbname -DSQLITE_SHELL_INIT_PROC=sqlcmd_init_proc -Daccess=file_access -Dsystem=fossil_system -Dgetenv=fossil_getenv -Dfopen=fossil_fopen
9595
9696
# define the th scripting files, which need special flags on compile
9797
THSRC=th.c th_lang.c
9898
ORIGTHSRC=$(foreach sf,$(THSRC),$(SRCDIR)$(sf))
9999
THOBJ=$(foreach sf,$(THSRC),$(sf:.c=.obj))
100100
--- win/Makefile.PellesCGMake
+++ win/Makefile.PellesCGMake
@@ -83,17 +83,17 @@
83
84 # define the SQLite files, which need special flags on compile
85 SQLITESRC=sqlite3.c
86 ORIGSQLITESRC=$(foreach sf,$(SQLITESRC),$(SRCDIR)$(sf))
87 SQLITEOBJ=$(foreach sf,$(SQLITESRC),$(sf:.c=.obj))
88 SQLITEDEFINES=-DNDEBUG=1 -DSQLITE_DQS=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_GET_TABLE -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_TRUSTED_SCHEMA=0 -DSQLITE_WIN32_NO_ANSI
89
90 # define the SQLite shell files, which need special flags on compile
91 SQLITESHELLSRC=shell.c
92 ORIGSQLITESHELLSRC=$(foreach sf,$(SQLITESHELLSRC),$(SRCDIR)$(sf))
93 SQLITESHELLOBJ=$(foreach sf,$(SQLITESHELLSRC),$(sf:.c=.obj))
94 SQLITESHELLDEFINES=-DNDEBUG=1 -DSQLITE_DQS=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_GET_TABLE -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_TRUSTED_SCHEMA=0 -Dmain=sqlite3_shell -DSQLITE_SHELL_IS_UTF8=1 -DSQLITE_OMIT_LOAD_EXTENSION=1 -DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) -DSQLITE_SHELL_DBNAME_PROC=sqlcmd_get_dbname -DSQLITE_SHELL_INIT_PROC=sqlcmd_init_proc -Daccess=file_access -Dsystem=fossil_system -Dgetenv=fossil_getenv -Dfopen=fossil_fopen
95
96 # define the th scripting files, which need special flags on compile
97 THSRC=th.c th_lang.c
98 ORIGTHSRC=$(foreach sf,$(THSRC),$(SRCDIR)$(sf))
99 THOBJ=$(foreach sf,$(THSRC),$(sf:.c=.obj))
100
--- win/Makefile.PellesCGMake
+++ win/Makefile.PellesCGMake
@@ -83,17 +83,17 @@
83
84 # define the SQLite files, which need special flags on compile
85 SQLITESRC=sqlite3.c
86 ORIGSQLITESRC=$(foreach sf,$(SQLITESRC),$(SRCDIR)$(sf))
87 SQLITEOBJ=$(foreach sf,$(SQLITESRC),$(sf:.c=.obj))
88 SQLITEDEFINES=-DNDEBUG=1 -DSQLITE_DQS=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_TRUSTED_SCHEMA=0 -DSQLITE_WIN32_NO_ANSI
89
90 # define the SQLite shell files, which need special flags on compile
91 SQLITESHELLSRC=shell.c
92 ORIGSQLITESHELLSRC=$(foreach sf,$(SQLITESHELLSRC),$(SRCDIR)$(sf))
93 SQLITESHELLOBJ=$(foreach sf,$(SQLITESHELLSRC),$(sf:.c=.obj))
94 SQLITESHELLDEFINES=-DNDEBUG=1 -DSQLITE_DQS=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_TRUSTED_SCHEMA=0 -Dmain=sqlite3_shell -DSQLITE_SHELL_IS_UTF8=1 -DSQLITE_OMIT_LOAD_EXTENSION=1 -DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) -DSQLITE_SHELL_DBNAME_PROC=sqlcmd_get_dbname -DSQLITE_SHELL_INIT_PROC=sqlcmd_init_proc -Daccess=file_access -Dsystem=fossil_system -Dgetenv=fossil_getenv -Dfopen=fossil_fopen
95
96 # define the th scripting files, which need special flags on compile
97 THSRC=th.c th_lang.c
98 ORIGTHSRC=$(foreach sf,$(THSRC),$(SRCDIR)$(sf))
99 THOBJ=$(foreach sf,$(THSRC),$(sf:.c=.obj))
100
--- win/Makefile.PellesCGMake
+++ win/Makefile.PellesCGMake
@@ -83,17 +83,17 @@
8383
8484
# define the SQLite files, which need special flags on compile
8585
SQLITESRC=sqlite3.c
8686
ORIGSQLITESRC=$(foreach sf,$(SQLITESRC),$(SRCDIR)$(sf))
8787
SQLITEOBJ=$(foreach sf,$(SQLITESRC),$(sf:.c=.obj))
88
-SQLITEDEFINES=-DNDEBUG=1 -DSQLITE_DQS=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_GET_TABLE -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_TRUSTED_SCHEMA=0 -DSQLITE_WIN32_NO_ANSI
88
+SQLITEDEFINES=-DNDEBUG=1 -DSQLITE_DQS=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_TRUSTED_SCHEMA=0 -DSQLITE_WIN32_NO_ANSI
8989
9090
# define the SQLite shell files, which need special flags on compile
9191
SQLITESHELLSRC=shell.c
9292
ORIGSQLITESHELLSRC=$(foreach sf,$(SQLITESHELLSRC),$(SRCDIR)$(sf))
9393
SQLITESHELLOBJ=$(foreach sf,$(SQLITESHELLSRC),$(sf:.c=.obj))
94
-SQLITESHELLDEFINES=-DNDEBUG=1 -DSQLITE_DQS=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_GET_TABLE -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_TRUSTED_SCHEMA=0 -Dmain=sqlite3_shell -DSQLITE_SHELL_IS_UTF8=1 -DSQLITE_OMIT_LOAD_EXTENSION=1 -DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) -DSQLITE_SHELL_DBNAME_PROC=sqlcmd_get_dbname -DSQLITE_SHELL_INIT_PROC=sqlcmd_init_proc -Daccess=file_access -Dsystem=fossil_system -Dgetenv=fossil_getenv -Dfopen=fossil_fopen
94
+SQLITESHELLDEFINES=-DNDEBUG=1 -DSQLITE_DQS=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_TRUSTED_SCHEMA=0 -Dmain=sqlite3_shell -DSQLITE_SHELL_IS_UTF8=1 -DSQLITE_OMIT_LOAD_EXTENSION=1 -DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) -DSQLITE_SHELL_DBNAME_PROC=sqlcmd_get_dbname -DSQLITE_SHELL_INIT_PROC=sqlcmd_init_proc -Daccess=file_access -Dsystem=fossil_system -Dgetenv=fossil_getenv -Dfopen=fossil_fopen
9595
9696
# define the th scripting files, which need special flags on compile
9797
THSRC=th.c th_lang.c
9898
ORIGTHSRC=$(foreach sf,$(THSRC),$(SRCDIR)$(sf))
9999
THOBJ=$(foreach sf,$(THSRC),$(sf:.c=.obj))
100100
--- win/Makefile.PellesCGMake
+++ win/Makefile.PellesCGMake
@@ -83,17 +83,17 @@
83
84 # define the SQLite files, which need special flags on compile
85 SQLITESRC=sqlite3.c
86 ORIGSQLITESRC=$(foreach sf,$(SQLITESRC),$(SRCDIR)$(sf))
87 SQLITEOBJ=$(foreach sf,$(SQLITESRC),$(sf:.c=.obj))
88 SQLITEDEFINES=-DNDEBUG=1 -DSQLITE_DQS=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_GET_TABLE -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_TRUSTED_SCHEMA=0 -DSQLITE_WIN32_NO_ANSI
89
90 # define the SQLite shell files, which need special flags on compile
91 SQLITESHELLSRC=shell.c
92 ORIGSQLITESHELLSRC=$(foreach sf,$(SQLITESHELLSRC),$(SRCDIR)$(sf))
93 SQLITESHELLOBJ=$(foreach sf,$(SQLITESHELLSRC),$(sf:.c=.obj))
94 SQLITESHELLDEFINES=-DNDEBUG=1 -DSQLITE_DQS=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_GET_TABLE -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_TRUSTED_SCHEMA=0 -Dmain=sqlite3_shell -DSQLITE_SHELL_IS_UTF8=1 -DSQLITE_OMIT_LOAD_EXTENSION=1 -DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) -DSQLITE_SHELL_DBNAME_PROC=sqlcmd_get_dbname -DSQLITE_SHELL_INIT_PROC=sqlcmd_init_proc -Daccess=file_access -Dsystem=fossil_system -Dgetenv=fossil_getenv -Dfopen=fossil_fopen
95
96 # define the th scripting files, which need special flags on compile
97 THSRC=th.c th_lang.c
98 ORIGTHSRC=$(foreach sf,$(THSRC),$(SRCDIR)$(sf))
99 THOBJ=$(foreach sf,$(THSRC),$(sf:.c=.obj))
100
--- win/Makefile.PellesCGMake
+++ win/Makefile.PellesCGMake
@@ -83,17 +83,17 @@
83
84 # define the SQLite files, which need special flags on compile
85 SQLITESRC=sqlite3.c
86 ORIGSQLITESRC=$(foreach sf,$(SQLITESRC),$(SRCDIR)$(sf))
87 SQLITEOBJ=$(foreach sf,$(SQLITESRC),$(sf:.c=.obj))
88 SQLITEDEFINES=-DNDEBUG=1 -DSQLITE_DQS=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_TRUSTED_SCHEMA=0 -DSQLITE_WIN32_NO_ANSI
89
90 # define the SQLite shell files, which need special flags on compile
91 SQLITESHELLSRC=shell.c
92 ORIGSQLITESHELLSRC=$(foreach sf,$(SQLITESHELLSRC),$(SRCDIR)$(sf))
93 SQLITESHELLOBJ=$(foreach sf,$(SQLITESHELLSRC),$(sf:.c=.obj))
94 SQLITESHELLDEFINES=-DNDEBUG=1 -DSQLITE_DQS=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_TRUSTED_SCHEMA=0 -Dmain=sqlite3_shell -DSQLITE_SHELL_IS_UTF8=1 -DSQLITE_OMIT_LOAD_EXTENSION=1 -DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) -DSQLITE_SHELL_DBNAME_PROC=sqlcmd_get_dbname -DSQLITE_SHELL_INIT_PROC=sqlcmd_init_proc -Daccess=file_access -Dsystem=fossil_system -Dgetenv=fossil_getenv -Dfopen=fossil_fopen
95
96 # define the th scripting files, which need special flags on compile
97 THSRC=th.c th_lang.c
98 ORIGTHSRC=$(foreach sf,$(THSRC),$(SRCDIR)$(sf))
99 THOBJ=$(foreach sf,$(THSRC),$(sf:.c=.obj))
100
+12 -7
--- win/Makefile.dmc
+++ win/Makefile.dmc
@@ -24,17 +24,17 @@
2424
CFLAGS = -o
2525
BCC = $(DMDIR)\bin\dmc $(CFLAGS)
2626
TCC = $(DMDIR)\bin\dmc $(CFLAGS) $(DMCDEF) $(SSL) $(INCL)
2727
LIBS = $(DMDIR)\extra\lib\ zlib wsock32 advapi32 dnsapi
2828
29
-SQLITE_OPTIONS = -DNDEBUG=1 -DSQLITE_DQS=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_GET_TABLE -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_TRUSTED_SCHEMA=0
29
+SQLITE_OPTIONS = -DNDEBUG=1 -DSQLITE_DQS=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_TRUSTED_SCHEMA=0
3030
31
-SHELL_OPTIONS = -DNDEBUG=1 -DSQLITE_DQS=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_GET_TABLE -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_TRUSTED_SCHEMA=0 -Dmain=sqlite3_shell -DSQLITE_SHELL_IS_UTF8=1 -DSQLITE_OMIT_LOAD_EXTENSION=1 -DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) -DSQLITE_SHELL_DBNAME_PROC=sqlcmd_get_dbname -DSQLITE_SHELL_INIT_PROC=sqlcmd_init_proc -Daccess=file_access -Dsystem=fossil_system -Dgetenv=fossil_getenv -Dfopen=fossil_fopen
31
+SHELL_OPTIONS = -DNDEBUG=1 -DSQLITE_DQS=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_TRUSTED_SCHEMA=0 -Dmain=sqlite3_shell -DSQLITE_SHELL_IS_UTF8=1 -DSQLITE_OMIT_LOAD_EXTENSION=1 -DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) -DSQLITE_SHELL_DBNAME_PROC=sqlcmd_get_dbname -DSQLITE_SHELL_INIT_PROC=sqlcmd_init_proc -Daccess=file_access -Dsystem=fossil_system -Dgetenv=fossil_getenv -Dfopen=fossil_fopen
3232
33
-SRC = add_.c alerts_.c allrepo_.c attach_.c backlink_.c backoffice_.c bag_.c bisect_.c blob_.c branch_.c browse_.c builtin_.c bundle_.c cache_.c capabilities_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c cookies_.c db_.c delta_.c deltacmd_.c deltafunc_.c descendants_.c diff_.c diffcmd_.c dispatch_.c doc_.c encode_.c etag_.c event_.c export_.c extcgi_.c file_.c fileedit_.c finfo_.c foci_.c forum_.c fshell_.c fusefs_.c fuzz_.c glob_.c graph_.c gzip_.c hname_.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 piechart_.c pivot_.c popen_.c pqueue_.c printf_.c publish_.c purge_.c rebuild_.c regexp_.c repolist_.c report_.c rss_.c schema_.c search_.c security_audit_.c setup_.c setupuser_.c sha1_.c sha1hard_.c sha3_.c shun_.c sitemap_.c skins_.c smtp_.c sqlcmd_.c stash_.c stat_.c statrep_.c style_.c sync_.c tag_.c tar_.c terminal_.c th_main_.c timeline_.c tkt_.c tktsetup_.c undo_.c unicode_.c unversioned_.c update_.c url_.c user_.c utf8_.c util_.c verify_.c vfile_.c webmail_.c wiki_.c wikiformat_.c winfile_.c winhttp_.c wysiwyg_.c xfer_.c xfersetup_.c zip_.c
33
+SRC = add_.c ajax_.c alerts_.c allrepo_.c attach_.c backlink_.c backoffice_.c bag_.c bisect_.c blob_.c branch_.c browse_.c builtin_.c bundle_.c cache_.c capabilities_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c cookies_.c db_.c delta_.c deltacmd_.c deltafunc_.c descendants_.c diff_.c diffcmd_.c dispatch_.c doc_.c encode_.c etag_.c event_.c export_.c extcgi_.c file_.c fileedit_.c finfo_.c foci_.c forum_.c fshell_.c fusefs_.c fuzz_.c glob_.c graph_.c gzip_.c hname_.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 piechart_.c pivot_.c popen_.c pqueue_.c printf_.c publish_.c purge_.c rebuild_.c regexp_.c repolist_.c report_.c rss_.c schema_.c search_.c security_audit_.c setup_.c setupuser_.c sha1_.c sha1hard_.c sha3_.c shun_.c sitemap_.c skins_.c smtp_.c sqlcmd_.c stash_.c stat_.c statrep_.c style_.c sync_.c tag_.c tar_.c terminal_.c th_main_.c timeline_.c tkt_.c tktsetup_.c undo_.c unicode_.c unversioned_.c update_.c url_.c user_.c utf8_.c util_.c verify_.c vfile_.c webmail_.c wiki_.c wikiformat_.c winfile_.c winhttp_.c wysiwyg_.c xfer_.c xfersetup_.c zip_.c
3434
35
-OBJ = $(OBJDIR)\add$O $(OBJDIR)\alerts$O $(OBJDIR)\allrepo$O $(OBJDIR)\attach$O $(OBJDIR)\backlink$O $(OBJDIR)\backoffice$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)\capabilities$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)\cookies$O $(OBJDIR)\db$O $(OBJDIR)\delta$O $(OBJDIR)\deltacmd$O $(OBJDIR)\deltafunc$O $(OBJDIR)\descendants$O $(OBJDIR)\diff$O $(OBJDIR)\diffcmd$O $(OBJDIR)\dispatch$O $(OBJDIR)\doc$O $(OBJDIR)\encode$O $(OBJDIR)\etag$O $(OBJDIR)\event$O $(OBJDIR)\export$O $(OBJDIR)\extcgi$O $(OBJDIR)\file$O $(OBJDIR)\fileedit$O $(OBJDIR)\finfo$O $(OBJDIR)\foci$O $(OBJDIR)\forum$O $(OBJDIR)\fshell$O $(OBJDIR)\fusefs$O $(OBJDIR)\fuzz$O $(OBJDIR)\glob$O $(OBJDIR)\graph$O $(OBJDIR)\gzip$O $(OBJDIR)\hname$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)\piechart$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)\repolist$O $(OBJDIR)\report$O $(OBJDIR)\rss$O $(OBJDIR)\schema$O $(OBJDIR)\search$O $(OBJDIR)\security_audit$O $(OBJDIR)\setup$O $(OBJDIR)\setupuser$O $(OBJDIR)\sha1$O $(OBJDIR)\sha1hard$O $(OBJDIR)\sha3$O $(OBJDIR)\shun$O $(OBJDIR)\sitemap$O $(OBJDIR)\skins$O $(OBJDIR)\smtp$O $(OBJDIR)\sqlcmd$O $(OBJDIR)\stash$O $(OBJDIR)\stat$O $(OBJDIR)\statrep$O $(OBJDIR)\style$O $(OBJDIR)\sync$O $(OBJDIR)\tag$O $(OBJDIR)\tar$O $(OBJDIR)\terminal$O $(OBJDIR)\th_main$O $(OBJDIR)\timeline$O $(OBJDIR)\tkt$O $(OBJDIR)\tktsetup$O $(OBJDIR)\undo$O $(OBJDIR)\unicode$O $(OBJDIR)\unversioned$O $(OBJDIR)\update$O $(OBJDIR)\url$O $(OBJDIR)\user$O $(OBJDIR)\utf8$O $(OBJDIR)\util$O $(OBJDIR)\verify$O $(OBJDIR)\vfile$O $(OBJDIR)\webmail$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)\ajax$O $(OBJDIR)\alerts$O $(OBJDIR)\allrepo$O $(OBJDIR)\attach$O $(OBJDIR)\backlink$O $(OBJDIR)\backoffice$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)\capabilities$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)\cookies$O $(OBJDIR)\db$O $(OBJDIR)\delta$O $(OBJDIR)\deltacmd$O $(OBJDIR)\deltafunc$O $(OBJDIR)\descendants$O $(OBJDIR)\diff$O $(OBJDIR)\diffcmd$O $(OBJDIR)\dispatch$O $(OBJDIR)\doc$O $(OBJDIR)\encode$O $(OBJDIR)\etag$O $(OBJDIR)\event$O $(OBJDIR)\export$O $(OBJDIR)\extcgi$O $(OBJDIR)\file$O $(OBJDIR)\fileedit$O $(OBJDIR)\finfo$O $(OBJDIR)\foci$O $(OBJDIR)\forum$O $(OBJDIR)\fshell$O $(OBJDIR)\fusefs$O $(OBJDIR)\fuzz$O $(OBJDIR)\glob$O $(OBJDIR)\graph$O $(OBJDIR)\gzip$O $(OBJDIR)\hname$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)\piechart$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)\repolist$O $(OBJDIR)\report$O $(OBJDIR)\rss$O $(OBJDIR)\schema$O $(OBJDIR)\search$O $(OBJDIR)\security_audit$O $(OBJDIR)\setup$O $(OBJDIR)\setupuser$O $(OBJDIR)\sha1$O $(OBJDIR)\sha1hard$O $(OBJDIR)\sha3$O $(OBJDIR)\shun$O $(OBJDIR)\sitemap$O $(OBJDIR)\skins$O $(OBJDIR)\smtp$O $(OBJDIR)\sqlcmd$O $(OBJDIR)\stash$O $(OBJDIR)\stat$O $(OBJDIR)\statrep$O $(OBJDIR)\style$O $(OBJDIR)\sync$O $(OBJDIR)\tag$O $(OBJDIR)\tar$O $(OBJDIR)\terminal$O $(OBJDIR)\th_main$O $(OBJDIR)\timeline$O $(OBJDIR)\tkt$O $(OBJDIR)\tktsetup$O $(OBJDIR)\undo$O $(OBJDIR)\unicode$O $(OBJDIR)\unversioned$O $(OBJDIR)\update$O $(OBJDIR)\url$O $(OBJDIR)\user$O $(OBJDIR)\utf8$O $(OBJDIR)\util$O $(OBJDIR)\verify$O $(OBJDIR)\vfile$O $(OBJDIR)\webmail$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 alerts allrepo attach backlink backoffice bag bisect blob branch browse builtin bundle cache capabilities captcha cgi checkin checkout clearsign clone comformat configure content cookies db delta deltacmd deltafunc descendants diff diffcmd dispatch doc encode etag event export extcgi file fileedit finfo foci forum fshell fusefs fuzz glob graph gzip hname 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 piechart pivot popen pqueue printf publish purge rebuild regexp repolist report rss schema search security_audit setup setupuser sha1 sha1hard sha3 shun sitemap skins smtp sqlcmd stash stat statrep style sync tag tar terminal th_main timeline tkt tktsetup undo unicode unversioned update url user utf8 util verify vfile webmail wiki wikiformat winfile winhttp wysiwyg xfer xfersetup zip shell sqlite3 th th_lang > $@
54
+ +echo add ajax alerts allrepo attach backlink backoffice bag bisect blob branch browse builtin bundle cache capabilities captcha cgi checkin checkout clearsign clone comformat configure content cookies db delta deltacmd deltafunc descendants diff diffcmd dispatch doc encode etag event export extcgi file fileedit finfo foci forum fshell fusefs fuzz glob graph gzip hname 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 piechart pivot popen pqueue printf publish purge rebuild regexp repolist report rss schema search security_audit setup setupuser sha1 sha1hard sha3 shun sitemap skins smtp sqlcmd stash stat statrep style sync tag tar terminal th_main timeline tkt tktsetup undo unicode unversioned update url user utf8 util verify vfile webmail 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 >> $@
@@ -122,16 +122,21 @@
122122
$(OBJDIR)\json_timeline$O : $(SRCDIR)\json_detail.h
123123
$(OBJDIR)\json_user$O : $(SRCDIR)\json_detail.h
124124
$(OBJDIR)\json_wiki$O : $(SRCDIR)\json_detail.h
125125
126126
127
-
128127
$(OBJDIR)\add$O : add_.c add.h
129128
$(TCC) -o$@ -c add_.c
130129
131130
add_.c : $(SRCDIR)\add.c
132131
+translate$E $** > $@
132
+
133
+$(OBJDIR)\ajax$O : ajax_.c ajax.h
134
+ $(TCC) -o$@ -c ajax_.c
135
+
136
+ajax_.c : $(SRCDIR)\ajax.c
137
+ +translate$E $** > $@
133138
134139
$(OBJDIR)\alerts$O : alerts_.c alerts.h
135140
$(TCC) -o$@ -c alerts_.c
136141
137142
alerts_.c : $(SRCDIR)\alerts.c
@@ -976,7 +981,7 @@
976981
977982
zip_.c : $(SRCDIR)\zip.c
978983
+translate$E $** > $@
979984
980985
headers: makeheaders$E page_index.h builtin_data.h VERSION.h
981
- +makeheaders$E add_.c:add.h alerts_.c:alerts.h allrepo_.c:allrepo.h attach_.c:attach.h backlink_.c:backlink.h backoffice_.c:backoffice.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 capabilities_.c:capabilities.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 cookies_.c:cookies.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h deltafunc_.c:deltafunc.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h dispatch_.c:dispatch.h doc_.c:doc.h encode_.c:encode.h etag_.c:etag.h event_.c:event.h export_.c:export.h extcgi_.c:extcgi.h file_.c:file.h fileedit_.c:fileedit.h finfo_.c:finfo.h foci_.c:foci.h forum_.c:forum.h fshell_.c:fshell.h fusefs_.c:fusefs.h fuzz_.c:fuzz.h glob_.c:glob.h graph_.c:graph.h gzip_.c:gzip.h hname_.c:hname.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 piechart_.c:piechart.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 repolist_.c:repolist.h report_.c:report.h rss_.c:rss.h schema_.c:schema.h search_.c:search.h security_audit_.c:security_audit.h setup_.c:setup.h setupuser_.c:setupuser.h sha1_.c:sha1.h sha1hard_.c:sha1hard.h sha3_.c:sha3.h shun_.c:shun.h sitemap_.c:sitemap.h skins_.c:skins.h smtp_.c:smtp.h sqlcmd_.c:sqlcmd.h stash_.c:stash.h stat_.c:stat.h statrep_.c:statrep.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tar_.c:tar.h terminal_.c:terminal.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 unversioned_.c:unversioned.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 webmail_.c:webmail.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
986
+ +makeheaders$E add_.c:add.h ajax_.c:ajax.h alerts_.c:alerts.h allrepo_.c:allrepo.h attach_.c:attach.h backlink_.c:backlink.h backoffice_.c:backoffice.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 capabilities_.c:capabilities.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 cookies_.c:cookies.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h deltafunc_.c:deltafunc.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h dispatch_.c:dispatch.h doc_.c:doc.h encode_.c:encode.h etag_.c:etag.h event_.c:event.h export_.c:export.h extcgi_.c:extcgi.h file_.c:file.h fileedit_.c:fileedit.h finfo_.c:finfo.h foci_.c:foci.h forum_.c:forum.h fshell_.c:fshell.h fusefs_.c:fusefs.h fuzz_.c:fuzz.h glob_.c:glob.h graph_.c:graph.h gzip_.c:gzip.h hname_.c:hname.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 piechart_.c:piechart.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 repolist_.c:repolist.h report_.c:report.h rss_.c:rss.h schema_.c:schema.h search_.c:search.h security_audit_.c:security_audit.h setup_.c:setup.h setupuser_.c:setupuser.h sha1_.c:sha1.h sha1hard_.c:sha1hard.h sha3_.c:sha3.h shun_.c:shun.h sitemap_.c:sitemap.h skins_.c:skins.h smtp_.c:smtp.h sqlcmd_.c:sqlcmd.h stash_.c:stash.h stat_.c:stat.h statrep_.c:statrep.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tar_.c:tar.h terminal_.c:terminal.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 unversioned_.c:unversioned.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 webmail_.c:webmail.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
982987
@copy /Y nul: headers
983988
--- win/Makefile.dmc
+++ win/Makefile.dmc
@@ -24,17 +24,17 @@
24 CFLAGS = -o
25 BCC = $(DMDIR)\bin\dmc $(CFLAGS)
26 TCC = $(DMDIR)\bin\dmc $(CFLAGS) $(DMCDEF) $(SSL) $(INCL)
27 LIBS = $(DMDIR)\extra\lib\ zlib wsock32 advapi32 dnsapi
28
29 SQLITE_OPTIONS = -DNDEBUG=1 -DSQLITE_DQS=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_GET_TABLE -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_TRUSTED_SCHEMA=0
30
31 SHELL_OPTIONS = -DNDEBUG=1 -DSQLITE_DQS=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_GET_TABLE -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_TRUSTED_SCHEMA=0 -Dmain=sqlite3_shell -DSQLITE_SHELL_IS_UTF8=1 -DSQLITE_OMIT_LOAD_EXTENSION=1 -DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) -DSQLITE_SHELL_DBNAME_PROC=sqlcmd_get_dbname -DSQLITE_SHELL_INIT_PROC=sqlcmd_init_proc -Daccess=file_access -Dsystem=fossil_system -Dgetenv=fossil_getenv -Dfopen=fossil_fopen
32
33 SRC = add_.c alerts_.c allrepo_.c attach_.c backlink_.c backoffice_.c bag_.c bisect_.c blob_.c branch_.c browse_.c builtin_.c bundle_.c cache_.c capabilities_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c cookies_.c db_.c delta_.c deltacmd_.c deltafunc_.c descendants_.c diff_.c diffcmd_.c dispatch_.c doc_.c encode_.c etag_.c event_.c export_.c extcgi_.c file_.c fileedit_.c finfo_.c foci_.c forum_.c fshell_.c fusefs_.c fuzz_.c glob_.c graph_.c gzip_.c hname_.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 piechart_.c pivot_.c popen_.c pqueue_.c printf_.c publish_.c purge_.c rebuild_.c regexp_.c repolist_.c report_.c rss_.c schema_.c search_.c security_audit_.c setup_.c setupuser_.c sha1_.c sha1hard_.c sha3_.c shun_.c sitemap_.c skins_.c smtp_.c sqlcmd_.c stash_.c stat_.c statrep_.c style_.c sync_.c tag_.c tar_.c terminal_.c th_main_.c timeline_.c tkt_.c tktsetup_.c undo_.c unicode_.c unversioned_.c update_.c url_.c user_.c utf8_.c util_.c verify_.c vfile_.c webmail_.c wiki_.c wikiformat_.c winfile_.c winhttp_.c wysiwyg_.c xfer_.c xfersetup_.c zip_.c
34
35 OBJ = $(OBJDIR)\add$O $(OBJDIR)\alerts$O $(OBJDIR)\allrepo$O $(OBJDIR)\attach$O $(OBJDIR)\backlink$O $(OBJDIR)\backoffice$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)\capabilities$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)\cookies$O $(OBJDIR)\db$O $(OBJDIR)\delta$O $(OBJDIR)\deltacmd$O $(OBJDIR)\deltafunc$O $(OBJDIR)\descendants$O $(OBJDIR)\diff$O $(OBJDIR)\diffcmd$O $(OBJDIR)\dispatch$O $(OBJDIR)\doc$O $(OBJDIR)\encode$O $(OBJDIR)\etag$O $(OBJDIR)\event$O $(OBJDIR)\export$O $(OBJDIR)\extcgi$O $(OBJDIR)\file$O $(OBJDIR)\fileedit$O $(OBJDIR)\finfo$O $(OBJDIR)\foci$O $(OBJDIR)\forum$O $(OBJDIR)\fshell$O $(OBJDIR)\fusefs$O $(OBJDIR)\fuzz$O $(OBJDIR)\glob$O $(OBJDIR)\graph$O $(OBJDIR)\gzip$O $(OBJDIR)\hname$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)\piechart$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)\repolist$O $(OBJDIR)\report$O $(OBJDIR)\rss$O $(OBJDIR)\schema$O $(OBJDIR)\search$O $(OBJDIR)\security_audit$O $(OBJDIR)\setup$O $(OBJDIR)\setupuser$O $(OBJDIR)\sha1$O $(OBJDIR)\sha1hard$O $(OBJDIR)\sha3$O $(OBJDIR)\shun$O $(OBJDIR)\sitemap$O $(OBJDIR)\skins$O $(OBJDIR)\smtp$O $(OBJDIR)\sqlcmd$O $(OBJDIR)\stash$O $(OBJDIR)\stat$O $(OBJDIR)\statrep$O $(OBJDIR)\style$O $(OBJDIR)\sync$O $(OBJDIR)\tag$O $(OBJDIR)\tar$O $(OBJDIR)\terminal$O $(OBJDIR)\th_main$O $(OBJDIR)\timeline$O $(OBJDIR)\tkt$O $(OBJDIR)\tktsetup$O $(OBJDIR)\undo$O $(OBJDIR)\unicode$O $(OBJDIR)\unversioned$O $(OBJDIR)\update$O $(OBJDIR)\url$O $(OBJDIR)\user$O $(OBJDIR)\utf8$O $(OBJDIR)\util$O $(OBJDIR)\verify$O $(OBJDIR)\vfile$O $(OBJDIR)\webmail$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 alerts allrepo attach backlink backoffice bag bisect blob branch browse builtin bundle cache capabilities captcha cgi checkin checkout clearsign clone comformat configure content cookies db delta deltacmd deltafunc descendants diff diffcmd dispatch doc encode etag event export extcgi file fileedit finfo foci forum fshell fusefs fuzz glob graph gzip hname 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 piechart pivot popen pqueue printf publish purge rebuild regexp repolist report rss schema search security_audit setup setupuser sha1 sha1hard sha3 shun sitemap skins smtp sqlcmd stash stat statrep style sync tag tar terminal th_main timeline tkt tktsetup undo unicode unversioned update url user utf8 util verify vfile webmail 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 >> $@
@@ -122,16 +122,21 @@
122 $(OBJDIR)\json_timeline$O : $(SRCDIR)\json_detail.h
123 $(OBJDIR)\json_user$O : $(SRCDIR)\json_detail.h
124 $(OBJDIR)\json_wiki$O : $(SRCDIR)\json_detail.h
125
126
127
128 $(OBJDIR)\add$O : add_.c add.h
129 $(TCC) -o$@ -c add_.c
130
131 add_.c : $(SRCDIR)\add.c
132 +translate$E $** > $@
 
 
 
 
 
 
133
134 $(OBJDIR)\alerts$O : alerts_.c alerts.h
135 $(TCC) -o$@ -c alerts_.c
136
137 alerts_.c : $(SRCDIR)\alerts.c
@@ -976,7 +981,7 @@
976
977 zip_.c : $(SRCDIR)\zip.c
978 +translate$E $** > $@
979
980 headers: makeheaders$E page_index.h builtin_data.h VERSION.h
981 +makeheaders$E add_.c:add.h alerts_.c:alerts.h allrepo_.c:allrepo.h attach_.c:attach.h backlink_.c:backlink.h backoffice_.c:backoffice.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 capabilities_.c:capabilities.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 cookies_.c:cookies.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h deltafunc_.c:deltafunc.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h dispatch_.c:dispatch.h doc_.c:doc.h encode_.c:encode.h etag_.c:etag.h event_.c:event.h export_.c:export.h extcgi_.c:extcgi.h file_.c:file.h fileedit_.c:fileedit.h finfo_.c:finfo.h foci_.c:foci.h forum_.c:forum.h fshell_.c:fshell.h fusefs_.c:fusefs.h fuzz_.c:fuzz.h glob_.c:glob.h graph_.c:graph.h gzip_.c:gzip.h hname_.c:hname.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 piechart_.c:piechart.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 repolist_.c:repolist.h report_.c:report.h rss_.c:rss.h schema_.c:schema.h search_.c:search.h security_audit_.c:security_audit.h setup_.c:setup.h setupuser_.c:setupuser.h sha1_.c:sha1.h sha1hard_.c:sha1hard.h sha3_.c:sha3.h shun_.c:shun.h sitemap_.c:sitemap.h skins_.c:skins.h smtp_.c:smtp.h sqlcmd_.c:sqlcmd.h stash_.c:stash.h stat_.c:stat.h statrep_.c:statrep.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tar_.c:tar.h terminal_.c:terminal.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 unversioned_.c:unversioned.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 webmail_.c:webmail.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
982 @copy /Y nul: headers
983
--- win/Makefile.dmc
+++ win/Makefile.dmc
@@ -24,17 +24,17 @@
24 CFLAGS = -o
25 BCC = $(DMDIR)\bin\dmc $(CFLAGS)
26 TCC = $(DMDIR)\bin\dmc $(CFLAGS) $(DMCDEF) $(SSL) $(INCL)
27 LIBS = $(DMDIR)\extra\lib\ zlib wsock32 advapi32 dnsapi
28
29 SQLITE_OPTIONS = -DNDEBUG=1 -DSQLITE_DQS=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_TRUSTED_SCHEMA=0
30
31 SHELL_OPTIONS = -DNDEBUG=1 -DSQLITE_DQS=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_TRUSTED_SCHEMA=0 -Dmain=sqlite3_shell -DSQLITE_SHELL_IS_UTF8=1 -DSQLITE_OMIT_LOAD_EXTENSION=1 -DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) -DSQLITE_SHELL_DBNAME_PROC=sqlcmd_get_dbname -DSQLITE_SHELL_INIT_PROC=sqlcmd_init_proc -Daccess=file_access -Dsystem=fossil_system -Dgetenv=fossil_getenv -Dfopen=fossil_fopen
32
33 SRC = add_.c ajax_.c alerts_.c allrepo_.c attach_.c backlink_.c backoffice_.c bag_.c bisect_.c blob_.c branch_.c browse_.c builtin_.c bundle_.c cache_.c capabilities_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c cookies_.c db_.c delta_.c deltacmd_.c deltafunc_.c descendants_.c diff_.c diffcmd_.c dispatch_.c doc_.c encode_.c etag_.c event_.c export_.c extcgi_.c file_.c fileedit_.c finfo_.c foci_.c forum_.c fshell_.c fusefs_.c fuzz_.c glob_.c graph_.c gzip_.c hname_.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 piechart_.c pivot_.c popen_.c pqueue_.c printf_.c publish_.c purge_.c rebuild_.c regexp_.c repolist_.c report_.c rss_.c schema_.c search_.c security_audit_.c setup_.c setupuser_.c sha1_.c sha1hard_.c sha3_.c shun_.c sitemap_.c skins_.c smtp_.c sqlcmd_.c stash_.c stat_.c statrep_.c style_.c sync_.c tag_.c tar_.c terminal_.c th_main_.c timeline_.c tkt_.c tktsetup_.c undo_.c unicode_.c unversioned_.c update_.c url_.c user_.c utf8_.c util_.c verify_.c vfile_.c webmail_.c wiki_.c wikiformat_.c winfile_.c winhttp_.c wysiwyg_.c xfer_.c xfersetup_.c zip_.c
34
35 OBJ = $(OBJDIR)\add$O $(OBJDIR)\ajax$O $(OBJDIR)\alerts$O $(OBJDIR)\allrepo$O $(OBJDIR)\attach$O $(OBJDIR)\backlink$O $(OBJDIR)\backoffice$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)\capabilities$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)\cookies$O $(OBJDIR)\db$O $(OBJDIR)\delta$O $(OBJDIR)\deltacmd$O $(OBJDIR)\deltafunc$O $(OBJDIR)\descendants$O $(OBJDIR)\diff$O $(OBJDIR)\diffcmd$O $(OBJDIR)\dispatch$O $(OBJDIR)\doc$O $(OBJDIR)\encode$O $(OBJDIR)\etag$O $(OBJDIR)\event$O $(OBJDIR)\export$O $(OBJDIR)\extcgi$O $(OBJDIR)\file$O $(OBJDIR)\fileedit$O $(OBJDIR)\finfo$O $(OBJDIR)\foci$O $(OBJDIR)\forum$O $(OBJDIR)\fshell$O $(OBJDIR)\fusefs$O $(OBJDIR)\fuzz$O $(OBJDIR)\glob$O $(OBJDIR)\graph$O $(OBJDIR)\gzip$O $(OBJDIR)\hname$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)\piechart$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)\repolist$O $(OBJDIR)\report$O $(OBJDIR)\rss$O $(OBJDIR)\schema$O $(OBJDIR)\search$O $(OBJDIR)\security_audit$O $(OBJDIR)\setup$O $(OBJDIR)\setupuser$O $(OBJDIR)\sha1$O $(OBJDIR)\sha1hard$O $(OBJDIR)\sha3$O $(OBJDIR)\shun$O $(OBJDIR)\sitemap$O $(OBJDIR)\skins$O $(OBJDIR)\smtp$O $(OBJDIR)\sqlcmd$O $(OBJDIR)\stash$O $(OBJDIR)\stat$O $(OBJDIR)\statrep$O $(OBJDIR)\style$O $(OBJDIR)\sync$O $(OBJDIR)\tag$O $(OBJDIR)\tar$O $(OBJDIR)\terminal$O $(OBJDIR)\th_main$O $(OBJDIR)\timeline$O $(OBJDIR)\tkt$O $(OBJDIR)\tktsetup$O $(OBJDIR)\undo$O $(OBJDIR)\unicode$O $(OBJDIR)\unversioned$O $(OBJDIR)\update$O $(OBJDIR)\url$O $(OBJDIR)\user$O $(OBJDIR)\utf8$O $(OBJDIR)\util$O $(OBJDIR)\verify$O $(OBJDIR)\vfile$O $(OBJDIR)\webmail$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 ajax alerts allrepo attach backlink backoffice bag bisect blob branch browse builtin bundle cache capabilities captcha cgi checkin checkout clearsign clone comformat configure content cookies db delta deltacmd deltafunc descendants diff diffcmd dispatch doc encode etag event export extcgi file fileedit finfo foci forum fshell fusefs fuzz glob graph gzip hname 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 piechart pivot popen pqueue printf publish purge rebuild regexp repolist report rss schema search security_audit setup setupuser sha1 sha1hard sha3 shun sitemap skins smtp sqlcmd stash stat statrep style sync tag tar terminal th_main timeline tkt tktsetup undo unicode unversioned update url user utf8 util verify vfile webmail 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 >> $@
@@ -122,16 +122,21 @@
122 $(OBJDIR)\json_timeline$O : $(SRCDIR)\json_detail.h
123 $(OBJDIR)\json_user$O : $(SRCDIR)\json_detail.h
124 $(OBJDIR)\json_wiki$O : $(SRCDIR)\json_detail.h
125
126
 
127 $(OBJDIR)\add$O : add_.c add.h
128 $(TCC) -o$@ -c add_.c
129
130 add_.c : $(SRCDIR)\add.c
131 +translate$E $** > $@
132
133 $(OBJDIR)\ajax$O : ajax_.c ajax.h
134 $(TCC) -o$@ -c ajax_.c
135
136 ajax_.c : $(SRCDIR)\ajax.c
137 +translate$E $** > $@
138
139 $(OBJDIR)\alerts$O : alerts_.c alerts.h
140 $(TCC) -o$@ -c alerts_.c
141
142 alerts_.c : $(SRCDIR)\alerts.c
@@ -976,7 +981,7 @@
981
982 zip_.c : $(SRCDIR)\zip.c
983 +translate$E $** > $@
984
985 headers: makeheaders$E page_index.h builtin_data.h VERSION.h
986 +makeheaders$E add_.c:add.h ajax_.c:ajax.h alerts_.c:alerts.h allrepo_.c:allrepo.h attach_.c:attach.h backlink_.c:backlink.h backoffice_.c:backoffice.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 capabilities_.c:capabilities.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 cookies_.c:cookies.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h deltafunc_.c:deltafunc.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h dispatch_.c:dispatch.h doc_.c:doc.h encode_.c:encode.h etag_.c:etag.h event_.c:event.h export_.c:export.h extcgi_.c:extcgi.h file_.c:file.h fileedit_.c:fileedit.h finfo_.c:finfo.h foci_.c:foci.h forum_.c:forum.h fshell_.c:fshell.h fusefs_.c:fusefs.h fuzz_.c:fuzz.h glob_.c:glob.h graph_.c:graph.h gzip_.c:gzip.h hname_.c:hname.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 piechart_.c:piechart.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 repolist_.c:repolist.h report_.c:report.h rss_.c:rss.h schema_.c:schema.h search_.c:search.h security_audit_.c:security_audit.h setup_.c:setup.h setupuser_.c:setupuser.h sha1_.c:sha1.h sha1hard_.c:sha1hard.h sha3_.c:sha3.h shun_.c:shun.h sitemap_.c:sitemap.h skins_.c:skins.h smtp_.c:smtp.h sqlcmd_.c:sqlcmd.h stash_.c:stash.h stat_.c:stat.h statrep_.c:statrep.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tar_.c:tar.h terminal_.c:terminal.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 unversioned_.c:unversioned.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 webmail_.c:webmail.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
987 @copy /Y nul: headers
988
+12 -7
--- win/Makefile.dmc
+++ win/Makefile.dmc
@@ -24,17 +24,17 @@
2424
CFLAGS = -o
2525
BCC = $(DMDIR)\bin\dmc $(CFLAGS)
2626
TCC = $(DMDIR)\bin\dmc $(CFLAGS) $(DMCDEF) $(SSL) $(INCL)
2727
LIBS = $(DMDIR)\extra\lib\ zlib wsock32 advapi32 dnsapi
2828
29
-SQLITE_OPTIONS = -DNDEBUG=1 -DSQLITE_DQS=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_GET_TABLE -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_TRUSTED_SCHEMA=0
29
+SQLITE_OPTIONS = -DNDEBUG=1 -DSQLITE_DQS=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_TRUSTED_SCHEMA=0
3030
31
-SHELL_OPTIONS = -DNDEBUG=1 -DSQLITE_DQS=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_GET_TABLE -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_TRUSTED_SCHEMA=0 -Dmain=sqlite3_shell -DSQLITE_SHELL_IS_UTF8=1 -DSQLITE_OMIT_LOAD_EXTENSION=1 -DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) -DSQLITE_SHELL_DBNAME_PROC=sqlcmd_get_dbname -DSQLITE_SHELL_INIT_PROC=sqlcmd_init_proc -Daccess=file_access -Dsystem=fossil_system -Dgetenv=fossil_getenv -Dfopen=fossil_fopen
31
+SHELL_OPTIONS = -DNDEBUG=1 -DSQLITE_DQS=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_TRUSTED_SCHEMA=0 -Dmain=sqlite3_shell -DSQLITE_SHELL_IS_UTF8=1 -DSQLITE_OMIT_LOAD_EXTENSION=1 -DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) -DSQLITE_SHELL_DBNAME_PROC=sqlcmd_get_dbname -DSQLITE_SHELL_INIT_PROC=sqlcmd_init_proc -Daccess=file_access -Dsystem=fossil_system -Dgetenv=fossil_getenv -Dfopen=fossil_fopen
3232
33
-SRC = add_.c alerts_.c allrepo_.c attach_.c backlink_.c backoffice_.c bag_.c bisect_.c blob_.c branch_.c browse_.c builtin_.c bundle_.c cache_.c capabilities_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c cookies_.c db_.c delta_.c deltacmd_.c deltafunc_.c descendants_.c diff_.c diffcmd_.c dispatch_.c doc_.c encode_.c etag_.c event_.c export_.c extcgi_.c file_.c fileedit_.c finfo_.c foci_.c forum_.c fshell_.c fusefs_.c fuzz_.c glob_.c graph_.c gzip_.c hname_.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 piechart_.c pivot_.c popen_.c pqueue_.c printf_.c publish_.c purge_.c rebuild_.c regexp_.c repolist_.c report_.c rss_.c schema_.c search_.c security_audit_.c setup_.c setupuser_.c sha1_.c sha1hard_.c sha3_.c shun_.c sitemap_.c skins_.c smtp_.c sqlcmd_.c stash_.c stat_.c statrep_.c style_.c sync_.c tag_.c tar_.c terminal_.c th_main_.c timeline_.c tkt_.c tktsetup_.c undo_.c unicode_.c unversioned_.c update_.c url_.c user_.c utf8_.c util_.c verify_.c vfile_.c webmail_.c wiki_.c wikiformat_.c winfile_.c winhttp_.c wysiwyg_.c xfer_.c xfersetup_.c zip_.c
33
+SRC = add_.c ajax_.c alerts_.c allrepo_.c attach_.c backlink_.c backoffice_.c bag_.c bisect_.c blob_.c branch_.c browse_.c builtin_.c bundle_.c cache_.c capabilities_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c cookies_.c db_.c delta_.c deltacmd_.c deltafunc_.c descendants_.c diff_.c diffcmd_.c dispatch_.c doc_.c encode_.c etag_.c event_.c export_.c extcgi_.c file_.c fileedit_.c finfo_.c foci_.c forum_.c fshell_.c fusefs_.c fuzz_.c glob_.c graph_.c gzip_.c hname_.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 piechart_.c pivot_.c popen_.c pqueue_.c printf_.c publish_.c purge_.c rebuild_.c regexp_.c repolist_.c report_.c rss_.c schema_.c search_.c security_audit_.c setup_.c setupuser_.c sha1_.c sha1hard_.c sha3_.c shun_.c sitemap_.c skins_.c smtp_.c sqlcmd_.c stash_.c stat_.c statrep_.c style_.c sync_.c tag_.c tar_.c terminal_.c th_main_.c timeline_.c tkt_.c tktsetup_.c undo_.c unicode_.c unversioned_.c update_.c url_.c user_.c utf8_.c util_.c verify_.c vfile_.c webmail_.c wiki_.c wikiformat_.c winfile_.c winhttp_.c wysiwyg_.c xfer_.c xfersetup_.c zip_.c
3434
35
-OBJ = $(OBJDIR)\add$O $(OBJDIR)\alerts$O $(OBJDIR)\allrepo$O $(OBJDIR)\attach$O $(OBJDIR)\backlink$O $(OBJDIR)\backoffice$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)\capabilities$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)\cookies$O $(OBJDIR)\db$O $(OBJDIR)\delta$O $(OBJDIR)\deltacmd$O $(OBJDIR)\deltafunc$O $(OBJDIR)\descendants$O $(OBJDIR)\diff$O $(OBJDIR)\diffcmd$O $(OBJDIR)\dispatch$O $(OBJDIR)\doc$O $(OBJDIR)\encode$O $(OBJDIR)\etag$O $(OBJDIR)\event$O $(OBJDIR)\export$O $(OBJDIR)\extcgi$O $(OBJDIR)\file$O $(OBJDIR)\fileedit$O $(OBJDIR)\finfo$O $(OBJDIR)\foci$O $(OBJDIR)\forum$O $(OBJDIR)\fshell$O $(OBJDIR)\fusefs$O $(OBJDIR)\fuzz$O $(OBJDIR)\glob$O $(OBJDIR)\graph$O $(OBJDIR)\gzip$O $(OBJDIR)\hname$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)\piechart$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)\repolist$O $(OBJDIR)\report$O $(OBJDIR)\rss$O $(OBJDIR)\schema$O $(OBJDIR)\search$O $(OBJDIR)\security_audit$O $(OBJDIR)\setup$O $(OBJDIR)\setupuser$O $(OBJDIR)\sha1$O $(OBJDIR)\sha1hard$O $(OBJDIR)\sha3$O $(OBJDIR)\shun$O $(OBJDIR)\sitemap$O $(OBJDIR)\skins$O $(OBJDIR)\smtp$O $(OBJDIR)\sqlcmd$O $(OBJDIR)\stash$O $(OBJDIR)\stat$O $(OBJDIR)\statrep$O $(OBJDIR)\style$O $(OBJDIR)\sync$O $(OBJDIR)\tag$O $(OBJDIR)\tar$O $(OBJDIR)\terminal$O $(OBJDIR)\th_main$O $(OBJDIR)\timeline$O $(OBJDIR)\tkt$O $(OBJDIR)\tktsetup$O $(OBJDIR)\undo$O $(OBJDIR)\unicode$O $(OBJDIR)\unversioned$O $(OBJDIR)\update$O $(OBJDIR)\url$O $(OBJDIR)\user$O $(OBJDIR)\utf8$O $(OBJDIR)\util$O $(OBJDIR)\verify$O $(OBJDIR)\vfile$O $(OBJDIR)\webmail$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)\ajax$O $(OBJDIR)\alerts$O $(OBJDIR)\allrepo$O $(OBJDIR)\attach$O $(OBJDIR)\backlink$O $(OBJDIR)\backoffice$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)\capabilities$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)\cookies$O $(OBJDIR)\db$O $(OBJDIR)\delta$O $(OBJDIR)\deltacmd$O $(OBJDIR)\deltafunc$O $(OBJDIR)\descendants$O $(OBJDIR)\diff$O $(OBJDIR)\diffcmd$O $(OBJDIR)\dispatch$O $(OBJDIR)\doc$O $(OBJDIR)\encode$O $(OBJDIR)\etag$O $(OBJDIR)\event$O $(OBJDIR)\export$O $(OBJDIR)\extcgi$O $(OBJDIR)\file$O $(OBJDIR)\fileedit$O $(OBJDIR)\finfo$O $(OBJDIR)\foci$O $(OBJDIR)\forum$O $(OBJDIR)\fshell$O $(OBJDIR)\fusefs$O $(OBJDIR)\fuzz$O $(OBJDIR)\glob$O $(OBJDIR)\graph$O $(OBJDIR)\gzip$O $(OBJDIR)\hname$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)\piechart$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)\repolist$O $(OBJDIR)\report$O $(OBJDIR)\rss$O $(OBJDIR)\schema$O $(OBJDIR)\search$O $(OBJDIR)\security_audit$O $(OBJDIR)\setup$O $(OBJDIR)\setupuser$O $(OBJDIR)\sha1$O $(OBJDIR)\sha1hard$O $(OBJDIR)\sha3$O $(OBJDIR)\shun$O $(OBJDIR)\sitemap$O $(OBJDIR)\skins$O $(OBJDIR)\smtp$O $(OBJDIR)\sqlcmd$O $(OBJDIR)\stash$O $(OBJDIR)\stat$O $(OBJDIR)\statrep$O $(OBJDIR)\style$O $(OBJDIR)\sync$O $(OBJDIR)\tag$O $(OBJDIR)\tar$O $(OBJDIR)\terminal$O $(OBJDIR)\th_main$O $(OBJDIR)\timeline$O $(OBJDIR)\tkt$O $(OBJDIR)\tktsetup$O $(OBJDIR)\undo$O $(OBJDIR)\unicode$O $(OBJDIR)\unversioned$O $(OBJDIR)\update$O $(OBJDIR)\url$O $(OBJDIR)\user$O $(OBJDIR)\utf8$O $(OBJDIR)\util$O $(OBJDIR)\verify$O $(OBJDIR)\vfile$O $(OBJDIR)\webmail$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 alerts allrepo attach backlink backoffice bag bisect blob branch browse builtin bundle cache capabilities captcha cgi checkin checkout clearsign clone comformat configure content cookies db delta deltacmd deltafunc descendants diff diffcmd dispatch doc encode etag event export extcgi file fileedit finfo foci forum fshell fusefs fuzz glob graph gzip hname 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 piechart pivot popen pqueue printf publish purge rebuild regexp repolist report rss schema search security_audit setup setupuser sha1 sha1hard sha3 shun sitemap skins smtp sqlcmd stash stat statrep style sync tag tar terminal th_main timeline tkt tktsetup undo unicode unversioned update url user utf8 util verify vfile webmail wiki wikiformat winfile winhttp wysiwyg xfer xfersetup zip shell sqlite3 th th_lang > $@
54
+ +echo add ajax alerts allrepo attach backlink backoffice bag bisect blob branch browse builtin bundle cache capabilities captcha cgi checkin checkout clearsign clone comformat configure content cookies db delta deltacmd deltafunc descendants diff diffcmd dispatch doc encode etag event export extcgi file fileedit finfo foci forum fshell fusefs fuzz glob graph gzip hname 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 piechart pivot popen pqueue printf publish purge rebuild regexp repolist report rss schema search security_audit setup setupuser sha1 sha1hard sha3 shun sitemap skins smtp sqlcmd stash stat statrep style sync tag tar terminal th_main timeline tkt tktsetup undo unicode unversioned update url user utf8 util verify vfile webmail 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 >> $@
@@ -122,16 +122,21 @@
122122
$(OBJDIR)\json_timeline$O : $(SRCDIR)\json_detail.h
123123
$(OBJDIR)\json_user$O : $(SRCDIR)\json_detail.h
124124
$(OBJDIR)\json_wiki$O : $(SRCDIR)\json_detail.h
125125
126126
127
-
128127
$(OBJDIR)\add$O : add_.c add.h
129128
$(TCC) -o$@ -c add_.c
130129
131130
add_.c : $(SRCDIR)\add.c
132131
+translate$E $** > $@
132
+
133
+$(OBJDIR)\ajax$O : ajax_.c ajax.h
134
+ $(TCC) -o$@ -c ajax_.c
135
+
136
+ajax_.c : $(SRCDIR)\ajax.c
137
+ +translate$E $** > $@
133138
134139
$(OBJDIR)\alerts$O : alerts_.c alerts.h
135140
$(TCC) -o$@ -c alerts_.c
136141
137142
alerts_.c : $(SRCDIR)\alerts.c
@@ -976,7 +981,7 @@
976981
977982
zip_.c : $(SRCDIR)\zip.c
978983
+translate$E $** > $@
979984
980985
headers: makeheaders$E page_index.h builtin_data.h VERSION.h
981
- +makeheaders$E add_.c:add.h alerts_.c:alerts.h allrepo_.c:allrepo.h attach_.c:attach.h backlink_.c:backlink.h backoffice_.c:backoffice.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 capabilities_.c:capabilities.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 cookies_.c:cookies.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h deltafunc_.c:deltafunc.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h dispatch_.c:dispatch.h doc_.c:doc.h encode_.c:encode.h etag_.c:etag.h event_.c:event.h export_.c:export.h extcgi_.c:extcgi.h file_.c:file.h fileedit_.c:fileedit.h finfo_.c:finfo.h foci_.c:foci.h forum_.c:forum.h fshell_.c:fshell.h fusefs_.c:fusefs.h fuzz_.c:fuzz.h glob_.c:glob.h graph_.c:graph.h gzip_.c:gzip.h hname_.c:hname.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 piechart_.c:piechart.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 repolist_.c:repolist.h report_.c:report.h rss_.c:rss.h schema_.c:schema.h search_.c:search.h security_audit_.c:security_audit.h setup_.c:setup.h setupuser_.c:setupuser.h sha1_.c:sha1.h sha1hard_.c:sha1hard.h sha3_.c:sha3.h shun_.c:shun.h sitemap_.c:sitemap.h skins_.c:skins.h smtp_.c:smtp.h sqlcmd_.c:sqlcmd.h stash_.c:stash.h stat_.c:stat.h statrep_.c:statrep.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tar_.c:tar.h terminal_.c:terminal.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 unversioned_.c:unversioned.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 webmail_.c:webmail.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
986
+ +makeheaders$E add_.c:add.h ajax_.c:ajax.h alerts_.c:alerts.h allrepo_.c:allrepo.h attach_.c:attach.h backlink_.c:backlink.h backoffice_.c:backoffice.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 capabilities_.c:capabilities.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 cookies_.c:cookies.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h deltafunc_.c:deltafunc.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h dispatch_.c:dispatch.h doc_.c:doc.h encode_.c:encode.h etag_.c:etag.h event_.c:event.h export_.c:export.h extcgi_.c:extcgi.h file_.c:file.h fileedit_.c:fileedit.h finfo_.c:finfo.h foci_.c:foci.h forum_.c:forum.h fshell_.c:fshell.h fusefs_.c:fusefs.h fuzz_.c:fuzz.h glob_.c:glob.h graph_.c:graph.h gzip_.c:gzip.h hname_.c:hname.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 piechart_.c:piechart.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 repolist_.c:repolist.h report_.c:report.h rss_.c:rss.h schema_.c:schema.h search_.c:search.h security_audit_.c:security_audit.h setup_.c:setup.h setupuser_.c:setupuser.h sha1_.c:sha1.h sha1hard_.c:sha1hard.h sha3_.c:sha3.h shun_.c:shun.h sitemap_.c:sitemap.h skins_.c:skins.h smtp_.c:smtp.h sqlcmd_.c:sqlcmd.h stash_.c:stash.h stat_.c:stat.h statrep_.c:statrep.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tar_.c:tar.h terminal_.c:terminal.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 unversioned_.c:unversioned.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 webmail_.c:webmail.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
982987
@copy /Y nul: headers
983988
--- win/Makefile.dmc
+++ win/Makefile.dmc
@@ -24,17 +24,17 @@
24 CFLAGS = -o
25 BCC = $(DMDIR)\bin\dmc $(CFLAGS)
26 TCC = $(DMDIR)\bin\dmc $(CFLAGS) $(DMCDEF) $(SSL) $(INCL)
27 LIBS = $(DMDIR)\extra\lib\ zlib wsock32 advapi32 dnsapi
28
29 SQLITE_OPTIONS = -DNDEBUG=1 -DSQLITE_DQS=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_GET_TABLE -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_TRUSTED_SCHEMA=0
30
31 SHELL_OPTIONS = -DNDEBUG=1 -DSQLITE_DQS=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_GET_TABLE -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_TRUSTED_SCHEMA=0 -Dmain=sqlite3_shell -DSQLITE_SHELL_IS_UTF8=1 -DSQLITE_OMIT_LOAD_EXTENSION=1 -DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) -DSQLITE_SHELL_DBNAME_PROC=sqlcmd_get_dbname -DSQLITE_SHELL_INIT_PROC=sqlcmd_init_proc -Daccess=file_access -Dsystem=fossil_system -Dgetenv=fossil_getenv -Dfopen=fossil_fopen
32
33 SRC = add_.c alerts_.c allrepo_.c attach_.c backlink_.c backoffice_.c bag_.c bisect_.c blob_.c branch_.c browse_.c builtin_.c bundle_.c cache_.c capabilities_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c cookies_.c db_.c delta_.c deltacmd_.c deltafunc_.c descendants_.c diff_.c diffcmd_.c dispatch_.c doc_.c encode_.c etag_.c event_.c export_.c extcgi_.c file_.c fileedit_.c finfo_.c foci_.c forum_.c fshell_.c fusefs_.c fuzz_.c glob_.c graph_.c gzip_.c hname_.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 piechart_.c pivot_.c popen_.c pqueue_.c printf_.c publish_.c purge_.c rebuild_.c regexp_.c repolist_.c report_.c rss_.c schema_.c search_.c security_audit_.c setup_.c setupuser_.c sha1_.c sha1hard_.c sha3_.c shun_.c sitemap_.c skins_.c smtp_.c sqlcmd_.c stash_.c stat_.c statrep_.c style_.c sync_.c tag_.c tar_.c terminal_.c th_main_.c timeline_.c tkt_.c tktsetup_.c undo_.c unicode_.c unversioned_.c update_.c url_.c user_.c utf8_.c util_.c verify_.c vfile_.c webmail_.c wiki_.c wikiformat_.c winfile_.c winhttp_.c wysiwyg_.c xfer_.c xfersetup_.c zip_.c
34
35 OBJ = $(OBJDIR)\add$O $(OBJDIR)\alerts$O $(OBJDIR)\allrepo$O $(OBJDIR)\attach$O $(OBJDIR)\backlink$O $(OBJDIR)\backoffice$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)\capabilities$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)\cookies$O $(OBJDIR)\db$O $(OBJDIR)\delta$O $(OBJDIR)\deltacmd$O $(OBJDIR)\deltafunc$O $(OBJDIR)\descendants$O $(OBJDIR)\diff$O $(OBJDIR)\diffcmd$O $(OBJDIR)\dispatch$O $(OBJDIR)\doc$O $(OBJDIR)\encode$O $(OBJDIR)\etag$O $(OBJDIR)\event$O $(OBJDIR)\export$O $(OBJDIR)\extcgi$O $(OBJDIR)\file$O $(OBJDIR)\fileedit$O $(OBJDIR)\finfo$O $(OBJDIR)\foci$O $(OBJDIR)\forum$O $(OBJDIR)\fshell$O $(OBJDIR)\fusefs$O $(OBJDIR)\fuzz$O $(OBJDIR)\glob$O $(OBJDIR)\graph$O $(OBJDIR)\gzip$O $(OBJDIR)\hname$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)\piechart$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)\repolist$O $(OBJDIR)\report$O $(OBJDIR)\rss$O $(OBJDIR)\schema$O $(OBJDIR)\search$O $(OBJDIR)\security_audit$O $(OBJDIR)\setup$O $(OBJDIR)\setupuser$O $(OBJDIR)\sha1$O $(OBJDIR)\sha1hard$O $(OBJDIR)\sha3$O $(OBJDIR)\shun$O $(OBJDIR)\sitemap$O $(OBJDIR)\skins$O $(OBJDIR)\smtp$O $(OBJDIR)\sqlcmd$O $(OBJDIR)\stash$O $(OBJDIR)\stat$O $(OBJDIR)\statrep$O $(OBJDIR)\style$O $(OBJDIR)\sync$O $(OBJDIR)\tag$O $(OBJDIR)\tar$O $(OBJDIR)\terminal$O $(OBJDIR)\th_main$O $(OBJDIR)\timeline$O $(OBJDIR)\tkt$O $(OBJDIR)\tktsetup$O $(OBJDIR)\undo$O $(OBJDIR)\unicode$O $(OBJDIR)\unversioned$O $(OBJDIR)\update$O $(OBJDIR)\url$O $(OBJDIR)\user$O $(OBJDIR)\utf8$O $(OBJDIR)\util$O $(OBJDIR)\verify$O $(OBJDIR)\vfile$O $(OBJDIR)\webmail$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 alerts allrepo attach backlink backoffice bag bisect blob branch browse builtin bundle cache capabilities captcha cgi checkin checkout clearsign clone comformat configure content cookies db delta deltacmd deltafunc descendants diff diffcmd dispatch doc encode etag event export extcgi file fileedit finfo foci forum fshell fusefs fuzz glob graph gzip hname 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 piechart pivot popen pqueue printf publish purge rebuild regexp repolist report rss schema search security_audit setup setupuser sha1 sha1hard sha3 shun sitemap skins smtp sqlcmd stash stat statrep style sync tag tar terminal th_main timeline tkt tktsetup undo unicode unversioned update url user utf8 util verify vfile webmail 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 >> $@
@@ -122,16 +122,21 @@
122 $(OBJDIR)\json_timeline$O : $(SRCDIR)\json_detail.h
123 $(OBJDIR)\json_user$O : $(SRCDIR)\json_detail.h
124 $(OBJDIR)\json_wiki$O : $(SRCDIR)\json_detail.h
125
126
127
128 $(OBJDIR)\add$O : add_.c add.h
129 $(TCC) -o$@ -c add_.c
130
131 add_.c : $(SRCDIR)\add.c
132 +translate$E $** > $@
 
 
 
 
 
 
133
134 $(OBJDIR)\alerts$O : alerts_.c alerts.h
135 $(TCC) -o$@ -c alerts_.c
136
137 alerts_.c : $(SRCDIR)\alerts.c
@@ -976,7 +981,7 @@
976
977 zip_.c : $(SRCDIR)\zip.c
978 +translate$E $** > $@
979
980 headers: makeheaders$E page_index.h builtin_data.h VERSION.h
981 +makeheaders$E add_.c:add.h alerts_.c:alerts.h allrepo_.c:allrepo.h attach_.c:attach.h backlink_.c:backlink.h backoffice_.c:backoffice.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 capabilities_.c:capabilities.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 cookies_.c:cookies.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h deltafunc_.c:deltafunc.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h dispatch_.c:dispatch.h doc_.c:doc.h encode_.c:encode.h etag_.c:etag.h event_.c:event.h export_.c:export.h extcgi_.c:extcgi.h file_.c:file.h fileedit_.c:fileedit.h finfo_.c:finfo.h foci_.c:foci.h forum_.c:forum.h fshell_.c:fshell.h fusefs_.c:fusefs.h fuzz_.c:fuzz.h glob_.c:glob.h graph_.c:graph.h gzip_.c:gzip.h hname_.c:hname.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 piechart_.c:piechart.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 repolist_.c:repolist.h report_.c:report.h rss_.c:rss.h schema_.c:schema.h search_.c:search.h security_audit_.c:security_audit.h setup_.c:setup.h setupuser_.c:setupuser.h sha1_.c:sha1.h sha1hard_.c:sha1hard.h sha3_.c:sha3.h shun_.c:shun.h sitemap_.c:sitemap.h skins_.c:skins.h smtp_.c:smtp.h sqlcmd_.c:sqlcmd.h stash_.c:stash.h stat_.c:stat.h statrep_.c:statrep.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tar_.c:tar.h terminal_.c:terminal.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 unversioned_.c:unversioned.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 webmail_.c:webmail.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
982 @copy /Y nul: headers
983
--- win/Makefile.dmc
+++ win/Makefile.dmc
@@ -24,17 +24,17 @@
24 CFLAGS = -o
25 BCC = $(DMDIR)\bin\dmc $(CFLAGS)
26 TCC = $(DMDIR)\bin\dmc $(CFLAGS) $(DMCDEF) $(SSL) $(INCL)
27 LIBS = $(DMDIR)\extra\lib\ zlib wsock32 advapi32 dnsapi
28
29 SQLITE_OPTIONS = -DNDEBUG=1 -DSQLITE_DQS=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_TRUSTED_SCHEMA=0
30
31 SHELL_OPTIONS = -DNDEBUG=1 -DSQLITE_DQS=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_TRUSTED_SCHEMA=0 -Dmain=sqlite3_shell -DSQLITE_SHELL_IS_UTF8=1 -DSQLITE_OMIT_LOAD_EXTENSION=1 -DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) -DSQLITE_SHELL_DBNAME_PROC=sqlcmd_get_dbname -DSQLITE_SHELL_INIT_PROC=sqlcmd_init_proc -Daccess=file_access -Dsystem=fossil_system -Dgetenv=fossil_getenv -Dfopen=fossil_fopen
32
33 SRC = add_.c ajax_.c alerts_.c allrepo_.c attach_.c backlink_.c backoffice_.c bag_.c bisect_.c blob_.c branch_.c browse_.c builtin_.c bundle_.c cache_.c capabilities_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c cookies_.c db_.c delta_.c deltacmd_.c deltafunc_.c descendants_.c diff_.c diffcmd_.c dispatch_.c doc_.c encode_.c etag_.c event_.c export_.c extcgi_.c file_.c fileedit_.c finfo_.c foci_.c forum_.c fshell_.c fusefs_.c fuzz_.c glob_.c graph_.c gzip_.c hname_.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 piechart_.c pivot_.c popen_.c pqueue_.c printf_.c publish_.c purge_.c rebuild_.c regexp_.c repolist_.c report_.c rss_.c schema_.c search_.c security_audit_.c setup_.c setupuser_.c sha1_.c sha1hard_.c sha3_.c shun_.c sitemap_.c skins_.c smtp_.c sqlcmd_.c stash_.c stat_.c statrep_.c style_.c sync_.c tag_.c tar_.c terminal_.c th_main_.c timeline_.c tkt_.c tktsetup_.c undo_.c unicode_.c unversioned_.c update_.c url_.c user_.c utf8_.c util_.c verify_.c vfile_.c webmail_.c wiki_.c wikiformat_.c winfile_.c winhttp_.c wysiwyg_.c xfer_.c xfersetup_.c zip_.c
34
35 OBJ = $(OBJDIR)\add$O $(OBJDIR)\ajax$O $(OBJDIR)\alerts$O $(OBJDIR)\allrepo$O $(OBJDIR)\attach$O $(OBJDIR)\backlink$O $(OBJDIR)\backoffice$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)\capabilities$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)\cookies$O $(OBJDIR)\db$O $(OBJDIR)\delta$O $(OBJDIR)\deltacmd$O $(OBJDIR)\deltafunc$O $(OBJDIR)\descendants$O $(OBJDIR)\diff$O $(OBJDIR)\diffcmd$O $(OBJDIR)\dispatch$O $(OBJDIR)\doc$O $(OBJDIR)\encode$O $(OBJDIR)\etag$O $(OBJDIR)\event$O $(OBJDIR)\export$O $(OBJDIR)\extcgi$O $(OBJDIR)\file$O $(OBJDIR)\fileedit$O $(OBJDIR)\finfo$O $(OBJDIR)\foci$O $(OBJDIR)\forum$O $(OBJDIR)\fshell$O $(OBJDIR)\fusefs$O $(OBJDIR)\fuzz$O $(OBJDIR)\glob$O $(OBJDIR)\graph$O $(OBJDIR)\gzip$O $(OBJDIR)\hname$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)\piechart$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)\repolist$O $(OBJDIR)\report$O $(OBJDIR)\rss$O $(OBJDIR)\schema$O $(OBJDIR)\search$O $(OBJDIR)\security_audit$O $(OBJDIR)\setup$O $(OBJDIR)\setupuser$O $(OBJDIR)\sha1$O $(OBJDIR)\sha1hard$O $(OBJDIR)\sha3$O $(OBJDIR)\shun$O $(OBJDIR)\sitemap$O $(OBJDIR)\skins$O $(OBJDIR)\smtp$O $(OBJDIR)\sqlcmd$O $(OBJDIR)\stash$O $(OBJDIR)\stat$O $(OBJDIR)\statrep$O $(OBJDIR)\style$O $(OBJDIR)\sync$O $(OBJDIR)\tag$O $(OBJDIR)\tar$O $(OBJDIR)\terminal$O $(OBJDIR)\th_main$O $(OBJDIR)\timeline$O $(OBJDIR)\tkt$O $(OBJDIR)\tktsetup$O $(OBJDIR)\undo$O $(OBJDIR)\unicode$O $(OBJDIR)\unversioned$O $(OBJDIR)\update$O $(OBJDIR)\url$O $(OBJDIR)\user$O $(OBJDIR)\utf8$O $(OBJDIR)\util$O $(OBJDIR)\verify$O $(OBJDIR)\vfile$O $(OBJDIR)\webmail$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 ajax alerts allrepo attach backlink backoffice bag bisect blob branch browse builtin bundle cache capabilities captcha cgi checkin checkout clearsign clone comformat configure content cookies db delta deltacmd deltafunc descendants diff diffcmd dispatch doc encode etag event export extcgi file fileedit finfo foci forum fshell fusefs fuzz glob graph gzip hname 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 piechart pivot popen pqueue printf publish purge rebuild regexp repolist report rss schema search security_audit setup setupuser sha1 sha1hard sha3 shun sitemap skins smtp sqlcmd stash stat statrep style sync tag tar terminal th_main timeline tkt tktsetup undo unicode unversioned update url user utf8 util verify vfile webmail 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 >> $@
@@ -122,16 +122,21 @@
122 $(OBJDIR)\json_timeline$O : $(SRCDIR)\json_detail.h
123 $(OBJDIR)\json_user$O : $(SRCDIR)\json_detail.h
124 $(OBJDIR)\json_wiki$O : $(SRCDIR)\json_detail.h
125
126
 
127 $(OBJDIR)\add$O : add_.c add.h
128 $(TCC) -o$@ -c add_.c
129
130 add_.c : $(SRCDIR)\add.c
131 +translate$E $** > $@
132
133 $(OBJDIR)\ajax$O : ajax_.c ajax.h
134 $(TCC) -o$@ -c ajax_.c
135
136 ajax_.c : $(SRCDIR)\ajax.c
137 +translate$E $** > $@
138
139 $(OBJDIR)\alerts$O : alerts_.c alerts.h
140 $(TCC) -o$@ -c alerts_.c
141
142 alerts_.c : $(SRCDIR)\alerts.c
@@ -976,7 +981,7 @@
981
982 zip_.c : $(SRCDIR)\zip.c
983 +translate$E $** > $@
984
985 headers: makeheaders$E page_index.h builtin_data.h VERSION.h
986 +makeheaders$E add_.c:add.h ajax_.c:ajax.h alerts_.c:alerts.h allrepo_.c:allrepo.h attach_.c:attach.h backlink_.c:backlink.h backoffice_.c:backoffice.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 capabilities_.c:capabilities.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 cookies_.c:cookies.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h deltafunc_.c:deltafunc.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h dispatch_.c:dispatch.h doc_.c:doc.h encode_.c:encode.h etag_.c:etag.h event_.c:event.h export_.c:export.h extcgi_.c:extcgi.h file_.c:file.h fileedit_.c:fileedit.h finfo_.c:finfo.h foci_.c:foci.h forum_.c:forum.h fshell_.c:fshell.h fusefs_.c:fusefs.h fuzz_.c:fuzz.h glob_.c:glob.h graph_.c:graph.h gzip_.c:gzip.h hname_.c:hname.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 piechart_.c:piechart.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 repolist_.c:repolist.h report_.c:report.h rss_.c:rss.h schema_.c:schema.h search_.c:search.h security_audit_.c:security_audit.h setup_.c:setup.h setupuser_.c:setupuser.h sha1_.c:sha1.h sha1hard_.c:sha1hard.h sha3_.c:sha3.h shun_.c:shun.h sitemap_.c:sitemap.h skins_.c:skins.h smtp_.c:smtp.h sqlcmd_.c:sqlcmd.h stash_.c:stash.h stat_.c:stat.h statrep_.c:statrep.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tar_.c:tar.h terminal_.c:terminal.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 unversioned_.c:unversioned.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 webmail_.c:webmail.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
987 @copy /Y nul: headers
988
--- win/Makefile.mingw
+++ win/Makefile.mingw
@@ -437,10 +437,11 @@
437437
XBCC = $(BCC) $(CFLAGS)
438438
XTCC = $(TCC) $(CFLAGS) -I. -I$(SRCDIR)
439439
440440
SRC = \
441441
$(SRCDIR)/add.c \
442
+ $(SRCDIR)/ajax.c \
442443
$(SRCDIR)/alerts.c \
443444
$(SRCDIR)/allrepo.c \
444445
$(SRCDIR)/attach.c \
445446
$(SRCDIR)/backlink.c \
446447
$(SRCDIR)/backoffice.c \
@@ -682,10 +683,11 @@
682683
$(SRCDIR)/useredit.js \
683684
$(SRCDIR)/wiki.wiki
684685
685686
TRANS_SRC = \
686687
$(OBJDIR)/add_.c \
688
+ $(OBJDIR)/ajax_.c \
687689
$(OBJDIR)/alerts_.c \
688690
$(OBJDIR)/allrepo_.c \
689691
$(OBJDIR)/attach_.c \
690692
$(OBJDIR)/backlink_.c \
691693
$(OBJDIR)/backoffice_.c \
@@ -826,10 +828,11 @@
826828
$(OBJDIR)/xfersetup_.c \
827829
$(OBJDIR)/zip_.c
828830
829831
OBJ = \
830832
$(OBJDIR)/add.o \
833
+ $(OBJDIR)/ajax.o \
831834
$(OBJDIR)/alerts.o \
832835
$(OBJDIR)/allrepo.o \
833836
$(OBJDIR)/attach.o \
834837
$(OBJDIR)/backlink.o \
835838
$(OBJDIR)/backoffice.o \
@@ -1182,10 +1185,11 @@
11821185
$(OBJDIR)/builtin_data.h: $(MKBUILTIN) $(EXTRA_FILES)
11831186
$(MKBUILTIN) --prefix $(SRCDIR)/ $(EXTRA_FILES) >$@
11841187
11851188
$(OBJDIR)/headers: $(OBJDIR)/page_index.h $(OBJDIR)/builtin_data.h $(MAKEHEADERS) $(OBJDIR)/VERSION.h
11861189
$(MAKEHEADERS) $(OBJDIR)/add_.c:$(OBJDIR)/add.h \
1190
+ $(OBJDIR)/ajax_.c:$(OBJDIR)/ajax.h \
11871191
$(OBJDIR)/alerts_.c:$(OBJDIR)/alerts.h \
11881192
$(OBJDIR)/allrepo_.c:$(OBJDIR)/allrepo.h \
11891193
$(OBJDIR)/attach_.c:$(OBJDIR)/attach.h \
11901194
$(OBJDIR)/backlink_.c:$(OBJDIR)/backlink.h \
11911195
$(OBJDIR)/backoffice_.c:$(OBJDIR)/backoffice.h \
@@ -1339,10 +1343,18 @@
13391343
13401344
$(OBJDIR)/add.o: $(OBJDIR)/add_.c $(OBJDIR)/add.h $(SRCDIR)/config.h
13411345
$(XTCC) -o $(OBJDIR)/add.o -c $(OBJDIR)/add_.c
13421346
13431347
$(OBJDIR)/add.h: $(OBJDIR)/headers
1348
+
1349
+$(OBJDIR)/ajax_.c: $(SRCDIR)/ajax.c $(TRANSLATE)
1350
+ $(TRANSLATE) $(SRCDIR)/ajax.c >$@
1351
+
1352
+$(OBJDIR)/ajax.o: $(OBJDIR)/ajax_.c $(OBJDIR)/ajax.h $(SRCDIR)/config.h
1353
+ $(XTCC) -o $(OBJDIR)/ajax.o -c $(OBJDIR)/ajax_.c
1354
+
1355
+$(OBJDIR)/ajax.h: $(OBJDIR)/headers
13441356
13451357
$(OBJDIR)/alerts_.c: $(SRCDIR)/alerts.c $(TRANSLATE)
13461358
$(TRANSLATE) $(SRCDIR)/alerts.c >$@
13471359
13481360
$(OBJDIR)/alerts.o: $(OBJDIR)/alerts_.c $(OBJDIR)/alerts.h $(SRCDIR)/config.h
@@ -2478,11 +2490,10 @@
24782490
-DSQLITE_DEFAULT_MEMSTATUS=0 \
24792491
-DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 \
24802492
-DSQLITE_LIKE_DOESNT_MATCH_BLOBS \
24812493
-DSQLITE_OMIT_DECLTYPE \
24822494
-DSQLITE_OMIT_DEPRECATED \
2483
- -DSQLITE_OMIT_GET_TABLE \
24842495
-DSQLITE_OMIT_PROGRESS_CALLBACK \
24852496
-DSQLITE_OMIT_SHARED_CACHE \
24862497
-DSQLITE_OMIT_LOAD_EXTENSION \
24872498
-DSQLITE_MAX_EXPR_DEPTH=0 \
24882499
-DSQLITE_USE_ALLOCA \
@@ -2509,11 +2520,10 @@
25092520
-DSQLITE_DEFAULT_MEMSTATUS=0 \
25102521
-DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 \
25112522
-DSQLITE_LIKE_DOESNT_MATCH_BLOBS \
25122523
-DSQLITE_OMIT_DECLTYPE \
25132524
-DSQLITE_OMIT_DEPRECATED \
2514
- -DSQLITE_OMIT_GET_TABLE \
25152525
-DSQLITE_OMIT_PROGRESS_CALLBACK \
25162526
-DSQLITE_OMIT_SHARED_CACHE \
25172527
-DSQLITE_OMIT_LOAD_EXTENSION \
25182528
-DSQLITE_MAX_EXPR_DEPTH=0 \
25192529
-DSQLITE_USE_ALLOCA \
25202530
--- win/Makefile.mingw
+++ win/Makefile.mingw
@@ -437,10 +437,11 @@
437 XBCC = $(BCC) $(CFLAGS)
438 XTCC = $(TCC) $(CFLAGS) -I. -I$(SRCDIR)
439
440 SRC = \
441 $(SRCDIR)/add.c \
 
442 $(SRCDIR)/alerts.c \
443 $(SRCDIR)/allrepo.c \
444 $(SRCDIR)/attach.c \
445 $(SRCDIR)/backlink.c \
446 $(SRCDIR)/backoffice.c \
@@ -682,10 +683,11 @@
682 $(SRCDIR)/useredit.js \
683 $(SRCDIR)/wiki.wiki
684
685 TRANS_SRC = \
686 $(OBJDIR)/add_.c \
 
687 $(OBJDIR)/alerts_.c \
688 $(OBJDIR)/allrepo_.c \
689 $(OBJDIR)/attach_.c \
690 $(OBJDIR)/backlink_.c \
691 $(OBJDIR)/backoffice_.c \
@@ -826,10 +828,11 @@
826 $(OBJDIR)/xfersetup_.c \
827 $(OBJDIR)/zip_.c
828
829 OBJ = \
830 $(OBJDIR)/add.o \
 
831 $(OBJDIR)/alerts.o \
832 $(OBJDIR)/allrepo.o \
833 $(OBJDIR)/attach.o \
834 $(OBJDIR)/backlink.o \
835 $(OBJDIR)/backoffice.o \
@@ -1182,10 +1185,11 @@
1182 $(OBJDIR)/builtin_data.h: $(MKBUILTIN) $(EXTRA_FILES)
1183 $(MKBUILTIN) --prefix $(SRCDIR)/ $(EXTRA_FILES) >$@
1184
1185 $(OBJDIR)/headers: $(OBJDIR)/page_index.h $(OBJDIR)/builtin_data.h $(MAKEHEADERS) $(OBJDIR)/VERSION.h
1186 $(MAKEHEADERS) $(OBJDIR)/add_.c:$(OBJDIR)/add.h \
 
1187 $(OBJDIR)/alerts_.c:$(OBJDIR)/alerts.h \
1188 $(OBJDIR)/allrepo_.c:$(OBJDIR)/allrepo.h \
1189 $(OBJDIR)/attach_.c:$(OBJDIR)/attach.h \
1190 $(OBJDIR)/backlink_.c:$(OBJDIR)/backlink.h \
1191 $(OBJDIR)/backoffice_.c:$(OBJDIR)/backoffice.h \
@@ -1339,10 +1343,18 @@
1339
1340 $(OBJDIR)/add.o: $(OBJDIR)/add_.c $(OBJDIR)/add.h $(SRCDIR)/config.h
1341 $(XTCC) -o $(OBJDIR)/add.o -c $(OBJDIR)/add_.c
1342
1343 $(OBJDIR)/add.h: $(OBJDIR)/headers
 
 
 
 
 
 
 
 
1344
1345 $(OBJDIR)/alerts_.c: $(SRCDIR)/alerts.c $(TRANSLATE)
1346 $(TRANSLATE) $(SRCDIR)/alerts.c >$@
1347
1348 $(OBJDIR)/alerts.o: $(OBJDIR)/alerts_.c $(OBJDIR)/alerts.h $(SRCDIR)/config.h
@@ -2478,11 +2490,10 @@
2478 -DSQLITE_DEFAULT_MEMSTATUS=0 \
2479 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 \
2480 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS \
2481 -DSQLITE_OMIT_DECLTYPE \
2482 -DSQLITE_OMIT_DEPRECATED \
2483 -DSQLITE_OMIT_GET_TABLE \
2484 -DSQLITE_OMIT_PROGRESS_CALLBACK \
2485 -DSQLITE_OMIT_SHARED_CACHE \
2486 -DSQLITE_OMIT_LOAD_EXTENSION \
2487 -DSQLITE_MAX_EXPR_DEPTH=0 \
2488 -DSQLITE_USE_ALLOCA \
@@ -2509,11 +2520,10 @@
2509 -DSQLITE_DEFAULT_MEMSTATUS=0 \
2510 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 \
2511 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS \
2512 -DSQLITE_OMIT_DECLTYPE \
2513 -DSQLITE_OMIT_DEPRECATED \
2514 -DSQLITE_OMIT_GET_TABLE \
2515 -DSQLITE_OMIT_PROGRESS_CALLBACK \
2516 -DSQLITE_OMIT_SHARED_CACHE \
2517 -DSQLITE_OMIT_LOAD_EXTENSION \
2518 -DSQLITE_MAX_EXPR_DEPTH=0 \
2519 -DSQLITE_USE_ALLOCA \
2520
--- win/Makefile.mingw
+++ win/Makefile.mingw
@@ -437,10 +437,11 @@
437 XBCC = $(BCC) $(CFLAGS)
438 XTCC = $(TCC) $(CFLAGS) -I. -I$(SRCDIR)
439
440 SRC = \
441 $(SRCDIR)/add.c \
442 $(SRCDIR)/ajax.c \
443 $(SRCDIR)/alerts.c \
444 $(SRCDIR)/allrepo.c \
445 $(SRCDIR)/attach.c \
446 $(SRCDIR)/backlink.c \
447 $(SRCDIR)/backoffice.c \
@@ -682,10 +683,11 @@
683 $(SRCDIR)/useredit.js \
684 $(SRCDIR)/wiki.wiki
685
686 TRANS_SRC = \
687 $(OBJDIR)/add_.c \
688 $(OBJDIR)/ajax_.c \
689 $(OBJDIR)/alerts_.c \
690 $(OBJDIR)/allrepo_.c \
691 $(OBJDIR)/attach_.c \
692 $(OBJDIR)/backlink_.c \
693 $(OBJDIR)/backoffice_.c \
@@ -826,10 +828,11 @@
828 $(OBJDIR)/xfersetup_.c \
829 $(OBJDIR)/zip_.c
830
831 OBJ = \
832 $(OBJDIR)/add.o \
833 $(OBJDIR)/ajax.o \
834 $(OBJDIR)/alerts.o \
835 $(OBJDIR)/allrepo.o \
836 $(OBJDIR)/attach.o \
837 $(OBJDIR)/backlink.o \
838 $(OBJDIR)/backoffice.o \
@@ -1182,10 +1185,11 @@
1185 $(OBJDIR)/builtin_data.h: $(MKBUILTIN) $(EXTRA_FILES)
1186 $(MKBUILTIN) --prefix $(SRCDIR)/ $(EXTRA_FILES) >$@
1187
1188 $(OBJDIR)/headers: $(OBJDIR)/page_index.h $(OBJDIR)/builtin_data.h $(MAKEHEADERS) $(OBJDIR)/VERSION.h
1189 $(MAKEHEADERS) $(OBJDIR)/add_.c:$(OBJDIR)/add.h \
1190 $(OBJDIR)/ajax_.c:$(OBJDIR)/ajax.h \
1191 $(OBJDIR)/alerts_.c:$(OBJDIR)/alerts.h \
1192 $(OBJDIR)/allrepo_.c:$(OBJDIR)/allrepo.h \
1193 $(OBJDIR)/attach_.c:$(OBJDIR)/attach.h \
1194 $(OBJDIR)/backlink_.c:$(OBJDIR)/backlink.h \
1195 $(OBJDIR)/backoffice_.c:$(OBJDIR)/backoffice.h \
@@ -1339,10 +1343,18 @@
1343
1344 $(OBJDIR)/add.o: $(OBJDIR)/add_.c $(OBJDIR)/add.h $(SRCDIR)/config.h
1345 $(XTCC) -o $(OBJDIR)/add.o -c $(OBJDIR)/add_.c
1346
1347 $(OBJDIR)/add.h: $(OBJDIR)/headers
1348
1349 $(OBJDIR)/ajax_.c: $(SRCDIR)/ajax.c $(TRANSLATE)
1350 $(TRANSLATE) $(SRCDIR)/ajax.c >$@
1351
1352 $(OBJDIR)/ajax.o: $(OBJDIR)/ajax_.c $(OBJDIR)/ajax.h $(SRCDIR)/config.h
1353 $(XTCC) -o $(OBJDIR)/ajax.o -c $(OBJDIR)/ajax_.c
1354
1355 $(OBJDIR)/ajax.h: $(OBJDIR)/headers
1356
1357 $(OBJDIR)/alerts_.c: $(SRCDIR)/alerts.c $(TRANSLATE)
1358 $(TRANSLATE) $(SRCDIR)/alerts.c >$@
1359
1360 $(OBJDIR)/alerts.o: $(OBJDIR)/alerts_.c $(OBJDIR)/alerts.h $(SRCDIR)/config.h
@@ -2478,11 +2490,10 @@
2490 -DSQLITE_DEFAULT_MEMSTATUS=0 \
2491 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 \
2492 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS \
2493 -DSQLITE_OMIT_DECLTYPE \
2494 -DSQLITE_OMIT_DEPRECATED \
 
2495 -DSQLITE_OMIT_PROGRESS_CALLBACK \
2496 -DSQLITE_OMIT_SHARED_CACHE \
2497 -DSQLITE_OMIT_LOAD_EXTENSION \
2498 -DSQLITE_MAX_EXPR_DEPTH=0 \
2499 -DSQLITE_USE_ALLOCA \
@@ -2509,11 +2520,10 @@
2520 -DSQLITE_DEFAULT_MEMSTATUS=0 \
2521 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 \
2522 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS \
2523 -DSQLITE_OMIT_DECLTYPE \
2524 -DSQLITE_OMIT_DEPRECATED \
 
2525 -DSQLITE_OMIT_PROGRESS_CALLBACK \
2526 -DSQLITE_OMIT_SHARED_CACHE \
2527 -DSQLITE_OMIT_LOAD_EXTENSION \
2528 -DSQLITE_MAX_EXPR_DEPTH=0 \
2529 -DSQLITE_USE_ALLOCA \
2530
--- win/Makefile.mingw
+++ win/Makefile.mingw
@@ -437,10 +437,11 @@
437437
XBCC = $(BCC) $(CFLAGS)
438438
XTCC = $(TCC) $(CFLAGS) -I. -I$(SRCDIR)
439439
440440
SRC = \
441441
$(SRCDIR)/add.c \
442
+ $(SRCDIR)/ajax.c \
442443
$(SRCDIR)/alerts.c \
443444
$(SRCDIR)/allrepo.c \
444445
$(SRCDIR)/attach.c \
445446
$(SRCDIR)/backlink.c \
446447
$(SRCDIR)/backoffice.c \
@@ -682,10 +683,11 @@
682683
$(SRCDIR)/useredit.js \
683684
$(SRCDIR)/wiki.wiki
684685
685686
TRANS_SRC = \
686687
$(OBJDIR)/add_.c \
688
+ $(OBJDIR)/ajax_.c \
687689
$(OBJDIR)/alerts_.c \
688690
$(OBJDIR)/allrepo_.c \
689691
$(OBJDIR)/attach_.c \
690692
$(OBJDIR)/backlink_.c \
691693
$(OBJDIR)/backoffice_.c \
@@ -826,10 +828,11 @@
826828
$(OBJDIR)/xfersetup_.c \
827829
$(OBJDIR)/zip_.c
828830
829831
OBJ = \
830832
$(OBJDIR)/add.o \
833
+ $(OBJDIR)/ajax.o \
831834
$(OBJDIR)/alerts.o \
832835
$(OBJDIR)/allrepo.o \
833836
$(OBJDIR)/attach.o \
834837
$(OBJDIR)/backlink.o \
835838
$(OBJDIR)/backoffice.o \
@@ -1182,10 +1185,11 @@
11821185
$(OBJDIR)/builtin_data.h: $(MKBUILTIN) $(EXTRA_FILES)
11831186
$(MKBUILTIN) --prefix $(SRCDIR)/ $(EXTRA_FILES) >$@
11841187
11851188
$(OBJDIR)/headers: $(OBJDIR)/page_index.h $(OBJDIR)/builtin_data.h $(MAKEHEADERS) $(OBJDIR)/VERSION.h
11861189
$(MAKEHEADERS) $(OBJDIR)/add_.c:$(OBJDIR)/add.h \
1190
+ $(OBJDIR)/ajax_.c:$(OBJDIR)/ajax.h \
11871191
$(OBJDIR)/alerts_.c:$(OBJDIR)/alerts.h \
11881192
$(OBJDIR)/allrepo_.c:$(OBJDIR)/allrepo.h \
11891193
$(OBJDIR)/attach_.c:$(OBJDIR)/attach.h \
11901194
$(OBJDIR)/backlink_.c:$(OBJDIR)/backlink.h \
11911195
$(OBJDIR)/backoffice_.c:$(OBJDIR)/backoffice.h \
@@ -1339,10 +1343,18 @@
13391343
13401344
$(OBJDIR)/add.o: $(OBJDIR)/add_.c $(OBJDIR)/add.h $(SRCDIR)/config.h
13411345
$(XTCC) -o $(OBJDIR)/add.o -c $(OBJDIR)/add_.c
13421346
13431347
$(OBJDIR)/add.h: $(OBJDIR)/headers
1348
+
1349
+$(OBJDIR)/ajax_.c: $(SRCDIR)/ajax.c $(TRANSLATE)
1350
+ $(TRANSLATE) $(SRCDIR)/ajax.c >$@
1351
+
1352
+$(OBJDIR)/ajax.o: $(OBJDIR)/ajax_.c $(OBJDIR)/ajax.h $(SRCDIR)/config.h
1353
+ $(XTCC) -o $(OBJDIR)/ajax.o -c $(OBJDIR)/ajax_.c
1354
+
1355
+$(OBJDIR)/ajax.h: $(OBJDIR)/headers
13441356
13451357
$(OBJDIR)/alerts_.c: $(SRCDIR)/alerts.c $(TRANSLATE)
13461358
$(TRANSLATE) $(SRCDIR)/alerts.c >$@
13471359
13481360
$(OBJDIR)/alerts.o: $(OBJDIR)/alerts_.c $(OBJDIR)/alerts.h $(SRCDIR)/config.h
@@ -2478,11 +2490,10 @@
24782490
-DSQLITE_DEFAULT_MEMSTATUS=0 \
24792491
-DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 \
24802492
-DSQLITE_LIKE_DOESNT_MATCH_BLOBS \
24812493
-DSQLITE_OMIT_DECLTYPE \
24822494
-DSQLITE_OMIT_DEPRECATED \
2483
- -DSQLITE_OMIT_GET_TABLE \
24842495
-DSQLITE_OMIT_PROGRESS_CALLBACK \
24852496
-DSQLITE_OMIT_SHARED_CACHE \
24862497
-DSQLITE_OMIT_LOAD_EXTENSION \
24872498
-DSQLITE_MAX_EXPR_DEPTH=0 \
24882499
-DSQLITE_USE_ALLOCA \
@@ -2509,11 +2520,10 @@
25092520
-DSQLITE_DEFAULT_MEMSTATUS=0 \
25102521
-DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 \
25112522
-DSQLITE_LIKE_DOESNT_MATCH_BLOBS \
25122523
-DSQLITE_OMIT_DECLTYPE \
25132524
-DSQLITE_OMIT_DEPRECATED \
2514
- -DSQLITE_OMIT_GET_TABLE \
25152525
-DSQLITE_OMIT_PROGRESS_CALLBACK \
25162526
-DSQLITE_OMIT_SHARED_CACHE \
25172527
-DSQLITE_OMIT_LOAD_EXTENSION \
25182528
-DSQLITE_MAX_EXPR_DEPTH=0 \
25192529
-DSQLITE_USE_ALLOCA \
25202530
--- win/Makefile.mingw
+++ win/Makefile.mingw
@@ -437,10 +437,11 @@
437 XBCC = $(BCC) $(CFLAGS)
438 XTCC = $(TCC) $(CFLAGS) -I. -I$(SRCDIR)
439
440 SRC = \
441 $(SRCDIR)/add.c \
 
442 $(SRCDIR)/alerts.c \
443 $(SRCDIR)/allrepo.c \
444 $(SRCDIR)/attach.c \
445 $(SRCDIR)/backlink.c \
446 $(SRCDIR)/backoffice.c \
@@ -682,10 +683,11 @@
682 $(SRCDIR)/useredit.js \
683 $(SRCDIR)/wiki.wiki
684
685 TRANS_SRC = \
686 $(OBJDIR)/add_.c \
 
687 $(OBJDIR)/alerts_.c \
688 $(OBJDIR)/allrepo_.c \
689 $(OBJDIR)/attach_.c \
690 $(OBJDIR)/backlink_.c \
691 $(OBJDIR)/backoffice_.c \
@@ -826,10 +828,11 @@
826 $(OBJDIR)/xfersetup_.c \
827 $(OBJDIR)/zip_.c
828
829 OBJ = \
830 $(OBJDIR)/add.o \
 
831 $(OBJDIR)/alerts.o \
832 $(OBJDIR)/allrepo.o \
833 $(OBJDIR)/attach.o \
834 $(OBJDIR)/backlink.o \
835 $(OBJDIR)/backoffice.o \
@@ -1182,10 +1185,11 @@
1182 $(OBJDIR)/builtin_data.h: $(MKBUILTIN) $(EXTRA_FILES)
1183 $(MKBUILTIN) --prefix $(SRCDIR)/ $(EXTRA_FILES) >$@
1184
1185 $(OBJDIR)/headers: $(OBJDIR)/page_index.h $(OBJDIR)/builtin_data.h $(MAKEHEADERS) $(OBJDIR)/VERSION.h
1186 $(MAKEHEADERS) $(OBJDIR)/add_.c:$(OBJDIR)/add.h \
 
1187 $(OBJDIR)/alerts_.c:$(OBJDIR)/alerts.h \
1188 $(OBJDIR)/allrepo_.c:$(OBJDIR)/allrepo.h \
1189 $(OBJDIR)/attach_.c:$(OBJDIR)/attach.h \
1190 $(OBJDIR)/backlink_.c:$(OBJDIR)/backlink.h \
1191 $(OBJDIR)/backoffice_.c:$(OBJDIR)/backoffice.h \
@@ -1339,10 +1343,18 @@
1339
1340 $(OBJDIR)/add.o: $(OBJDIR)/add_.c $(OBJDIR)/add.h $(SRCDIR)/config.h
1341 $(XTCC) -o $(OBJDIR)/add.o -c $(OBJDIR)/add_.c
1342
1343 $(OBJDIR)/add.h: $(OBJDIR)/headers
 
 
 
 
 
 
 
 
1344
1345 $(OBJDIR)/alerts_.c: $(SRCDIR)/alerts.c $(TRANSLATE)
1346 $(TRANSLATE) $(SRCDIR)/alerts.c >$@
1347
1348 $(OBJDIR)/alerts.o: $(OBJDIR)/alerts_.c $(OBJDIR)/alerts.h $(SRCDIR)/config.h
@@ -2478,11 +2490,10 @@
2478 -DSQLITE_DEFAULT_MEMSTATUS=0 \
2479 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 \
2480 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS \
2481 -DSQLITE_OMIT_DECLTYPE \
2482 -DSQLITE_OMIT_DEPRECATED \
2483 -DSQLITE_OMIT_GET_TABLE \
2484 -DSQLITE_OMIT_PROGRESS_CALLBACK \
2485 -DSQLITE_OMIT_SHARED_CACHE \
2486 -DSQLITE_OMIT_LOAD_EXTENSION \
2487 -DSQLITE_MAX_EXPR_DEPTH=0 \
2488 -DSQLITE_USE_ALLOCA \
@@ -2509,11 +2520,10 @@
2509 -DSQLITE_DEFAULT_MEMSTATUS=0 \
2510 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 \
2511 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS \
2512 -DSQLITE_OMIT_DECLTYPE \
2513 -DSQLITE_OMIT_DEPRECATED \
2514 -DSQLITE_OMIT_GET_TABLE \
2515 -DSQLITE_OMIT_PROGRESS_CALLBACK \
2516 -DSQLITE_OMIT_SHARED_CACHE \
2517 -DSQLITE_OMIT_LOAD_EXTENSION \
2518 -DSQLITE_MAX_EXPR_DEPTH=0 \
2519 -DSQLITE_USE_ALLOCA \
2520
--- win/Makefile.mingw
+++ win/Makefile.mingw
@@ -437,10 +437,11 @@
437 XBCC = $(BCC) $(CFLAGS)
438 XTCC = $(TCC) $(CFLAGS) -I. -I$(SRCDIR)
439
440 SRC = \
441 $(SRCDIR)/add.c \
442 $(SRCDIR)/ajax.c \
443 $(SRCDIR)/alerts.c \
444 $(SRCDIR)/allrepo.c \
445 $(SRCDIR)/attach.c \
446 $(SRCDIR)/backlink.c \
447 $(SRCDIR)/backoffice.c \
@@ -682,10 +683,11 @@
683 $(SRCDIR)/useredit.js \
684 $(SRCDIR)/wiki.wiki
685
686 TRANS_SRC = \
687 $(OBJDIR)/add_.c \
688 $(OBJDIR)/ajax_.c \
689 $(OBJDIR)/alerts_.c \
690 $(OBJDIR)/allrepo_.c \
691 $(OBJDIR)/attach_.c \
692 $(OBJDIR)/backlink_.c \
693 $(OBJDIR)/backoffice_.c \
@@ -826,10 +828,11 @@
828 $(OBJDIR)/xfersetup_.c \
829 $(OBJDIR)/zip_.c
830
831 OBJ = \
832 $(OBJDIR)/add.o \
833 $(OBJDIR)/ajax.o \
834 $(OBJDIR)/alerts.o \
835 $(OBJDIR)/allrepo.o \
836 $(OBJDIR)/attach.o \
837 $(OBJDIR)/backlink.o \
838 $(OBJDIR)/backoffice.o \
@@ -1182,10 +1185,11 @@
1185 $(OBJDIR)/builtin_data.h: $(MKBUILTIN) $(EXTRA_FILES)
1186 $(MKBUILTIN) --prefix $(SRCDIR)/ $(EXTRA_FILES) >$@
1187
1188 $(OBJDIR)/headers: $(OBJDIR)/page_index.h $(OBJDIR)/builtin_data.h $(MAKEHEADERS) $(OBJDIR)/VERSION.h
1189 $(MAKEHEADERS) $(OBJDIR)/add_.c:$(OBJDIR)/add.h \
1190 $(OBJDIR)/ajax_.c:$(OBJDIR)/ajax.h \
1191 $(OBJDIR)/alerts_.c:$(OBJDIR)/alerts.h \
1192 $(OBJDIR)/allrepo_.c:$(OBJDIR)/allrepo.h \
1193 $(OBJDIR)/attach_.c:$(OBJDIR)/attach.h \
1194 $(OBJDIR)/backlink_.c:$(OBJDIR)/backlink.h \
1195 $(OBJDIR)/backoffice_.c:$(OBJDIR)/backoffice.h \
@@ -1339,10 +1343,18 @@
1343
1344 $(OBJDIR)/add.o: $(OBJDIR)/add_.c $(OBJDIR)/add.h $(SRCDIR)/config.h
1345 $(XTCC) -o $(OBJDIR)/add.o -c $(OBJDIR)/add_.c
1346
1347 $(OBJDIR)/add.h: $(OBJDIR)/headers
1348
1349 $(OBJDIR)/ajax_.c: $(SRCDIR)/ajax.c $(TRANSLATE)
1350 $(TRANSLATE) $(SRCDIR)/ajax.c >$@
1351
1352 $(OBJDIR)/ajax.o: $(OBJDIR)/ajax_.c $(OBJDIR)/ajax.h $(SRCDIR)/config.h
1353 $(XTCC) -o $(OBJDIR)/ajax.o -c $(OBJDIR)/ajax_.c
1354
1355 $(OBJDIR)/ajax.h: $(OBJDIR)/headers
1356
1357 $(OBJDIR)/alerts_.c: $(SRCDIR)/alerts.c $(TRANSLATE)
1358 $(TRANSLATE) $(SRCDIR)/alerts.c >$@
1359
1360 $(OBJDIR)/alerts.o: $(OBJDIR)/alerts_.c $(OBJDIR)/alerts.h $(SRCDIR)/config.h
@@ -2478,11 +2490,10 @@
2490 -DSQLITE_DEFAULT_MEMSTATUS=0 \
2491 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 \
2492 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS \
2493 -DSQLITE_OMIT_DECLTYPE \
2494 -DSQLITE_OMIT_DEPRECATED \
 
2495 -DSQLITE_OMIT_PROGRESS_CALLBACK \
2496 -DSQLITE_OMIT_SHARED_CACHE \
2497 -DSQLITE_OMIT_LOAD_EXTENSION \
2498 -DSQLITE_MAX_EXPR_DEPTH=0 \
2499 -DSQLITE_USE_ALLOCA \
@@ -2509,11 +2520,10 @@
2520 -DSQLITE_DEFAULT_MEMSTATUS=0 \
2521 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 \
2522 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS \
2523 -DSQLITE_OMIT_DECLTYPE \
2524 -DSQLITE_OMIT_DEPRECATED \
 
2525 -DSQLITE_OMIT_PROGRESS_CALLBACK \
2526 -DSQLITE_OMIT_SHARED_CACHE \
2527 -DSQLITE_OMIT_LOAD_EXTENSION \
2528 -DSQLITE_MAX_EXPR_DEPTH=0 \
2529 -DSQLITE_USE_ALLOCA \
2530
--- win/Makefile.mingw.mistachkin
+++ win/Makefile.mingw.mistachkin
@@ -476,10 +476,11 @@
476476
$(SRCDIR)/etag.c \
477477
$(SRCDIR)/event.c \
478478
$(SRCDIR)/export.c \
479479
$(SRCDIR)/extcgi.c \
480480
$(SRCDIR)/file.c \
481
+ $(SRCDIR)/fileedit.c \
481482
$(SRCDIR)/finfo.c \
482483
$(SRCDIR)/foci.c \
483484
$(SRCDIR)/forum.c \
484485
$(SRCDIR)/fshell.c \
485486
$(SRCDIR)/fusefs.c \
@@ -640,10 +641,17 @@
640641
$(SRCDIR)/accordion.js \
641642
$(SRCDIR)/ci_edit.js \
642643
$(SRCDIR)/copybtn.js \
643644
$(SRCDIR)/diff.tcl \
644645
$(SRCDIR)/forum.js \
646
+ $(SRCDIR)/fossil.bootstrap.js \
647
+ $(SRCDIR)/fossil.confirmer.js \
648
+ $(SRCDIR)/fossil.dom.js \
649
+ $(SRCDIR)/fossil.fetch.js \
650
+ $(SRCDIR)/fossil.page.fileedit.js \
651
+ $(SRCDIR)/fossil.storage.js \
652
+ $(SRCDIR)/fossil.tabs.js \
645653
$(SRCDIR)/graph.js \
646654
$(SRCDIR)/href.js \
647655
$(SRCDIR)/login.js \
648656
$(SRCDIR)/markdown.md \
649657
$(SRCDIR)/menu.js \
@@ -665,10 +673,12 @@
665673
$(SRCDIR)/sounds/b.wav \
666674
$(SRCDIR)/sounds/c.wav \
667675
$(SRCDIR)/sounds/d.wav \
668676
$(SRCDIR)/sounds/e.wav \
669677
$(SRCDIR)/sounds/f.wav \
678
+ $(SRCDIR)/style.admin_log.css \
679
+ $(SRCDIR)/style.fileedit.css \
670680
$(SRCDIR)/tree.js \
671681
$(SRCDIR)/useredit.js \
672682
$(SRCDIR)/wiki.wiki
673683
674684
TRANS_SRC = \
@@ -710,10 +720,11 @@
710720
$(OBJDIR)/etag_.c \
711721
$(OBJDIR)/event_.c \
712722
$(OBJDIR)/export_.c \
713723
$(OBJDIR)/extcgi_.c \
714724
$(OBJDIR)/file_.c \
725
+ $(OBJDIR)/fileedit_.c \
715726
$(OBJDIR)/finfo_.c \
716727
$(OBJDIR)/foci_.c \
717728
$(OBJDIR)/forum_.c \
718729
$(OBJDIR)/fshell_.c \
719730
$(OBJDIR)/fusefs_.c \
@@ -853,10 +864,11 @@
853864
$(OBJDIR)/etag.o \
854865
$(OBJDIR)/event.o \
855866
$(OBJDIR)/export.o \
856867
$(OBJDIR)/extcgi.o \
857868
$(OBJDIR)/file.o \
869
+ $(OBJDIR)/fileedit.o \
858870
$(OBJDIR)/finfo.o \
859871
$(OBJDIR)/foci.o \
860872
$(OBJDIR)/forum.o \
861873
$(OBJDIR)/fshell.o \
862874
$(OBJDIR)/fusefs.o \
@@ -1216,10 +1228,11 @@
12161228
$(OBJDIR)/etag_.c:$(OBJDIR)/etag.h \
12171229
$(OBJDIR)/event_.c:$(OBJDIR)/event.h \
12181230
$(OBJDIR)/export_.c:$(OBJDIR)/export.h \
12191231
$(OBJDIR)/extcgi_.c:$(OBJDIR)/extcgi.h \
12201232
$(OBJDIR)/file_.c:$(OBJDIR)/file.h \
1233
+ $(OBJDIR)/fileedit_.c:$(OBJDIR)/fileedit.h \
12211234
$(OBJDIR)/finfo_.c:$(OBJDIR)/finfo.h \
12221235
$(OBJDIR)/foci_.c:$(OBJDIR)/foci.h \
12231236
$(OBJDIR)/forum_.c:$(OBJDIR)/forum.h \
12241237
$(OBJDIR)/fshell_.c:$(OBJDIR)/fshell.h \
12251238
$(OBJDIR)/fusefs_.c:$(OBJDIR)/fusefs.h \
@@ -1645,10 +1658,18 @@
16451658
16461659
$(OBJDIR)/file.o: $(OBJDIR)/file_.c $(OBJDIR)/file.h $(SRCDIR)/config.h
16471660
$(XTCC) -o $(OBJDIR)/file.o -c $(OBJDIR)/file_.c
16481661
16491662
$(OBJDIR)/file.h: $(OBJDIR)/headers
1663
+
1664
+$(OBJDIR)/fileedit_.c: $(SRCDIR)/fileedit.c $(TRANSLATE)
1665
+ $(TRANSLATE) $(SRCDIR)/fileedit.c >$@
1666
+
1667
+$(OBJDIR)/fileedit.o: $(OBJDIR)/fileedit_.c $(OBJDIR)/fileedit.h $(SRCDIR)/config.h
1668
+ $(XTCC) -o $(OBJDIR)/fileedit.o -c $(OBJDIR)/fileedit_.c
1669
+
1670
+$(OBJDIR)/fileedit.h: $(OBJDIR)/headers
16501671
16511672
$(OBJDIR)/finfo_.c: $(SRCDIR)/finfo.c $(TRANSLATE)
16521673
$(TRANSLATE) $(SRCDIR)/finfo.c >$@
16531674
16541675
$(OBJDIR)/finfo.o: $(OBJDIR)/finfo_.c $(OBJDIR)/finfo.h $(SRCDIR)/config.h
@@ -2464,11 +2485,10 @@
24642485
-DSQLITE_DEFAULT_MEMSTATUS=0 \
24652486
-DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 \
24662487
-DSQLITE_LIKE_DOESNT_MATCH_BLOBS \
24672488
-DSQLITE_OMIT_DECLTYPE \
24682489
-DSQLITE_OMIT_DEPRECATED \
2469
- -DSQLITE_OMIT_GET_TABLE \
24702490
-DSQLITE_OMIT_PROGRESS_CALLBACK \
24712491
-DSQLITE_OMIT_SHARED_CACHE \
24722492
-DSQLITE_OMIT_LOAD_EXTENSION \
24732493
-DSQLITE_MAX_EXPR_DEPTH=0 \
24742494
-DSQLITE_USE_ALLOCA \
@@ -2495,11 +2515,10 @@
24952515
-DSQLITE_DEFAULT_MEMSTATUS=0 \
24962516
-DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 \
24972517
-DSQLITE_LIKE_DOESNT_MATCH_BLOBS \
24982518
-DSQLITE_OMIT_DECLTYPE \
24992519
-DSQLITE_OMIT_DEPRECATED \
2500
- -DSQLITE_OMIT_GET_TABLE \
25012520
-DSQLITE_OMIT_PROGRESS_CALLBACK \
25022521
-DSQLITE_OMIT_SHARED_CACHE \
25032522
-DSQLITE_OMIT_LOAD_EXTENSION \
25042523
-DSQLITE_MAX_EXPR_DEPTH=0 \
25052524
-DSQLITE_USE_ALLOCA \
25062525
--- win/Makefile.mingw.mistachkin
+++ win/Makefile.mingw.mistachkin
@@ -476,10 +476,11 @@
476 $(SRCDIR)/etag.c \
477 $(SRCDIR)/event.c \
478 $(SRCDIR)/export.c \
479 $(SRCDIR)/extcgi.c \
480 $(SRCDIR)/file.c \
 
481 $(SRCDIR)/finfo.c \
482 $(SRCDIR)/foci.c \
483 $(SRCDIR)/forum.c \
484 $(SRCDIR)/fshell.c \
485 $(SRCDIR)/fusefs.c \
@@ -640,10 +641,17 @@
640 $(SRCDIR)/accordion.js \
641 $(SRCDIR)/ci_edit.js \
642 $(SRCDIR)/copybtn.js \
643 $(SRCDIR)/diff.tcl \
644 $(SRCDIR)/forum.js \
 
 
 
 
 
 
 
645 $(SRCDIR)/graph.js \
646 $(SRCDIR)/href.js \
647 $(SRCDIR)/login.js \
648 $(SRCDIR)/markdown.md \
649 $(SRCDIR)/menu.js \
@@ -665,10 +673,12 @@
665 $(SRCDIR)/sounds/b.wav \
666 $(SRCDIR)/sounds/c.wav \
667 $(SRCDIR)/sounds/d.wav \
668 $(SRCDIR)/sounds/e.wav \
669 $(SRCDIR)/sounds/f.wav \
 
 
670 $(SRCDIR)/tree.js \
671 $(SRCDIR)/useredit.js \
672 $(SRCDIR)/wiki.wiki
673
674 TRANS_SRC = \
@@ -710,10 +720,11 @@
710 $(OBJDIR)/etag_.c \
711 $(OBJDIR)/event_.c \
712 $(OBJDIR)/export_.c \
713 $(OBJDIR)/extcgi_.c \
714 $(OBJDIR)/file_.c \
 
715 $(OBJDIR)/finfo_.c \
716 $(OBJDIR)/foci_.c \
717 $(OBJDIR)/forum_.c \
718 $(OBJDIR)/fshell_.c \
719 $(OBJDIR)/fusefs_.c \
@@ -853,10 +864,11 @@
853 $(OBJDIR)/etag.o \
854 $(OBJDIR)/event.o \
855 $(OBJDIR)/export.o \
856 $(OBJDIR)/extcgi.o \
857 $(OBJDIR)/file.o \
 
858 $(OBJDIR)/finfo.o \
859 $(OBJDIR)/foci.o \
860 $(OBJDIR)/forum.o \
861 $(OBJDIR)/fshell.o \
862 $(OBJDIR)/fusefs.o \
@@ -1216,10 +1228,11 @@
1216 $(OBJDIR)/etag_.c:$(OBJDIR)/etag.h \
1217 $(OBJDIR)/event_.c:$(OBJDIR)/event.h \
1218 $(OBJDIR)/export_.c:$(OBJDIR)/export.h \
1219 $(OBJDIR)/extcgi_.c:$(OBJDIR)/extcgi.h \
1220 $(OBJDIR)/file_.c:$(OBJDIR)/file.h \
 
1221 $(OBJDIR)/finfo_.c:$(OBJDIR)/finfo.h \
1222 $(OBJDIR)/foci_.c:$(OBJDIR)/foci.h \
1223 $(OBJDIR)/forum_.c:$(OBJDIR)/forum.h \
1224 $(OBJDIR)/fshell_.c:$(OBJDIR)/fshell.h \
1225 $(OBJDIR)/fusefs_.c:$(OBJDIR)/fusefs.h \
@@ -1645,10 +1658,18 @@
1645
1646 $(OBJDIR)/file.o: $(OBJDIR)/file_.c $(OBJDIR)/file.h $(SRCDIR)/config.h
1647 $(XTCC) -o $(OBJDIR)/file.o -c $(OBJDIR)/file_.c
1648
1649 $(OBJDIR)/file.h: $(OBJDIR)/headers
 
 
 
 
 
 
 
 
1650
1651 $(OBJDIR)/finfo_.c: $(SRCDIR)/finfo.c $(TRANSLATE)
1652 $(TRANSLATE) $(SRCDIR)/finfo.c >$@
1653
1654 $(OBJDIR)/finfo.o: $(OBJDIR)/finfo_.c $(OBJDIR)/finfo.h $(SRCDIR)/config.h
@@ -2464,11 +2485,10 @@
2464 -DSQLITE_DEFAULT_MEMSTATUS=0 \
2465 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 \
2466 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS \
2467 -DSQLITE_OMIT_DECLTYPE \
2468 -DSQLITE_OMIT_DEPRECATED \
2469 -DSQLITE_OMIT_GET_TABLE \
2470 -DSQLITE_OMIT_PROGRESS_CALLBACK \
2471 -DSQLITE_OMIT_SHARED_CACHE \
2472 -DSQLITE_OMIT_LOAD_EXTENSION \
2473 -DSQLITE_MAX_EXPR_DEPTH=0 \
2474 -DSQLITE_USE_ALLOCA \
@@ -2495,11 +2515,10 @@
2495 -DSQLITE_DEFAULT_MEMSTATUS=0 \
2496 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 \
2497 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS \
2498 -DSQLITE_OMIT_DECLTYPE \
2499 -DSQLITE_OMIT_DEPRECATED \
2500 -DSQLITE_OMIT_GET_TABLE \
2501 -DSQLITE_OMIT_PROGRESS_CALLBACK \
2502 -DSQLITE_OMIT_SHARED_CACHE \
2503 -DSQLITE_OMIT_LOAD_EXTENSION \
2504 -DSQLITE_MAX_EXPR_DEPTH=0 \
2505 -DSQLITE_USE_ALLOCA \
2506
--- win/Makefile.mingw.mistachkin
+++ win/Makefile.mingw.mistachkin
@@ -476,10 +476,11 @@
476 $(SRCDIR)/etag.c \
477 $(SRCDIR)/event.c \
478 $(SRCDIR)/export.c \
479 $(SRCDIR)/extcgi.c \
480 $(SRCDIR)/file.c \
481 $(SRCDIR)/fileedit.c \
482 $(SRCDIR)/finfo.c \
483 $(SRCDIR)/foci.c \
484 $(SRCDIR)/forum.c \
485 $(SRCDIR)/fshell.c \
486 $(SRCDIR)/fusefs.c \
@@ -640,10 +641,17 @@
641 $(SRCDIR)/accordion.js \
642 $(SRCDIR)/ci_edit.js \
643 $(SRCDIR)/copybtn.js \
644 $(SRCDIR)/diff.tcl \
645 $(SRCDIR)/forum.js \
646 $(SRCDIR)/fossil.bootstrap.js \
647 $(SRCDIR)/fossil.confirmer.js \
648 $(SRCDIR)/fossil.dom.js \
649 $(SRCDIR)/fossil.fetch.js \
650 $(SRCDIR)/fossil.page.fileedit.js \
651 $(SRCDIR)/fossil.storage.js \
652 $(SRCDIR)/fossil.tabs.js \
653 $(SRCDIR)/graph.js \
654 $(SRCDIR)/href.js \
655 $(SRCDIR)/login.js \
656 $(SRCDIR)/markdown.md \
657 $(SRCDIR)/menu.js \
@@ -665,10 +673,12 @@
673 $(SRCDIR)/sounds/b.wav \
674 $(SRCDIR)/sounds/c.wav \
675 $(SRCDIR)/sounds/d.wav \
676 $(SRCDIR)/sounds/e.wav \
677 $(SRCDIR)/sounds/f.wav \
678 $(SRCDIR)/style.admin_log.css \
679 $(SRCDIR)/style.fileedit.css \
680 $(SRCDIR)/tree.js \
681 $(SRCDIR)/useredit.js \
682 $(SRCDIR)/wiki.wiki
683
684 TRANS_SRC = \
@@ -710,10 +720,11 @@
720 $(OBJDIR)/etag_.c \
721 $(OBJDIR)/event_.c \
722 $(OBJDIR)/export_.c \
723 $(OBJDIR)/extcgi_.c \
724 $(OBJDIR)/file_.c \
725 $(OBJDIR)/fileedit_.c \
726 $(OBJDIR)/finfo_.c \
727 $(OBJDIR)/foci_.c \
728 $(OBJDIR)/forum_.c \
729 $(OBJDIR)/fshell_.c \
730 $(OBJDIR)/fusefs_.c \
@@ -853,10 +864,11 @@
864 $(OBJDIR)/etag.o \
865 $(OBJDIR)/event.o \
866 $(OBJDIR)/export.o \
867 $(OBJDIR)/extcgi.o \
868 $(OBJDIR)/file.o \
869 $(OBJDIR)/fileedit.o \
870 $(OBJDIR)/finfo.o \
871 $(OBJDIR)/foci.o \
872 $(OBJDIR)/forum.o \
873 $(OBJDIR)/fshell.o \
874 $(OBJDIR)/fusefs.o \
@@ -1216,10 +1228,11 @@
1228 $(OBJDIR)/etag_.c:$(OBJDIR)/etag.h \
1229 $(OBJDIR)/event_.c:$(OBJDIR)/event.h \
1230 $(OBJDIR)/export_.c:$(OBJDIR)/export.h \
1231 $(OBJDIR)/extcgi_.c:$(OBJDIR)/extcgi.h \
1232 $(OBJDIR)/file_.c:$(OBJDIR)/file.h \
1233 $(OBJDIR)/fileedit_.c:$(OBJDIR)/fileedit.h \
1234 $(OBJDIR)/finfo_.c:$(OBJDIR)/finfo.h \
1235 $(OBJDIR)/foci_.c:$(OBJDIR)/foci.h \
1236 $(OBJDIR)/forum_.c:$(OBJDIR)/forum.h \
1237 $(OBJDIR)/fshell_.c:$(OBJDIR)/fshell.h \
1238 $(OBJDIR)/fusefs_.c:$(OBJDIR)/fusefs.h \
@@ -1645,10 +1658,18 @@
1658
1659 $(OBJDIR)/file.o: $(OBJDIR)/file_.c $(OBJDIR)/file.h $(SRCDIR)/config.h
1660 $(XTCC) -o $(OBJDIR)/file.o -c $(OBJDIR)/file_.c
1661
1662 $(OBJDIR)/file.h: $(OBJDIR)/headers
1663
1664 $(OBJDIR)/fileedit_.c: $(SRCDIR)/fileedit.c $(TRANSLATE)
1665 $(TRANSLATE) $(SRCDIR)/fileedit.c >$@
1666
1667 $(OBJDIR)/fileedit.o: $(OBJDIR)/fileedit_.c $(OBJDIR)/fileedit.h $(SRCDIR)/config.h
1668 $(XTCC) -o $(OBJDIR)/fileedit.o -c $(OBJDIR)/fileedit_.c
1669
1670 $(OBJDIR)/fileedit.h: $(OBJDIR)/headers
1671
1672 $(OBJDIR)/finfo_.c: $(SRCDIR)/finfo.c $(TRANSLATE)
1673 $(TRANSLATE) $(SRCDIR)/finfo.c >$@
1674
1675 $(OBJDIR)/finfo.o: $(OBJDIR)/finfo_.c $(OBJDIR)/finfo.h $(SRCDIR)/config.h
@@ -2464,11 +2485,10 @@
2485 -DSQLITE_DEFAULT_MEMSTATUS=0 \
2486 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 \
2487 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS \
2488 -DSQLITE_OMIT_DECLTYPE \
2489 -DSQLITE_OMIT_DEPRECATED \
 
2490 -DSQLITE_OMIT_PROGRESS_CALLBACK \
2491 -DSQLITE_OMIT_SHARED_CACHE \
2492 -DSQLITE_OMIT_LOAD_EXTENSION \
2493 -DSQLITE_MAX_EXPR_DEPTH=0 \
2494 -DSQLITE_USE_ALLOCA \
@@ -2495,11 +2515,10 @@
2515 -DSQLITE_DEFAULT_MEMSTATUS=0 \
2516 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 \
2517 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS \
2518 -DSQLITE_OMIT_DECLTYPE \
2519 -DSQLITE_OMIT_DEPRECATED \
 
2520 -DSQLITE_OMIT_PROGRESS_CALLBACK \
2521 -DSQLITE_OMIT_SHARED_CACHE \
2522 -DSQLITE_OMIT_LOAD_EXTENSION \
2523 -DSQLITE_MAX_EXPR_DEPTH=0 \
2524 -DSQLITE_USE_ALLOCA \
2525
+1820 -1674
--- win/Makefile.msc
+++ win/Makefile.msc
@@ -1,39 +1,52 @@
11
#
22
##############################################################################
33
# WARNING: DO NOT EDIT, AUTOMATICALLY GENERATED FILE (SEE "src/makemake.tcl")
44
##############################################################################
55
#
6
-# This Makefile will only function correctly if used from a sub-directory
7
-# that is a direct child of the top-level directory for this project.
8
-#
9
-!if !exist("..\.fossil-settings")
10
-!error "Please change the current directory to the one containing this file."
11
-!endif
12
-
136
#
147
# This file is automatically generated. Instead of editing this
158
# file, edit "makemake.tcl" then run "tclsh makemake.tcl"
169
# to regenerate this file.
1710
#
1811
B = ..
19
-SRCDIR = $B\src
20
-OBJDIR = .
21
-OX = .
12
+SRCDIR = $(B)\src
13
+T = .
14
+OBJDIR = $(T)
15
+OX = $(OBJDIR)
2216
O = .obj
2317
E = .exe
2418
P = .pdb
2519
26
-# Perl is only necessary if OpenSSL support is enabled and it must
27
-# be built from source code. The PERLDIR variable should point to
28
-# the directory containing the main Perl binary (i.e. "perl.exe").
29
-PERLDIR = C:\Perl\bin
20
+INSTALLDIR = .
21
+!ifdef DESTDIR
22
+INSTALLDIR = $(DESTDIR)\$(INSTALLDIR)
23
+!endif
24
+
25
+# When building out of source, this Makefile needs to know the path to the base
26
+# top-level directory for this project. Pass it on NMAKE command line via make
27
+# variable B:
28
+# NMAKE /f "path\to\this\Makefile" B="path/to/fossil/root"
29
+#
30
+# NOTE: Make sure B path has no trailing backslash, UNIX-style path is OK too.
31
+#
32
+!if !exist("$(B)\.fossil-settings")
33
+!error Please specify path to project base directory: B="path/to/fossil"
34
+!endif
35
+
36
+# Perl is only necessary if OpenSSL support is enabled and it is built from
37
+# source code. The PERLDIR environment variable, if it exists, should point
38
+# to the directory containing the main Perl executable specified here (i.e.
39
+# "perl.exe").
3040
PERL = perl.exe
3141
3242
# Enable debugging symbols?
3343
!ifndef DEBUG
3444
DEBUG = 0
45
+!endif
46
+!ifdef FOSSIL_DEBUG
47
+DEBUG = 1
3548
!endif
3649
3750
# Build the OpenSSL libraries?
3851
!ifndef FOSSIL_BUILD_SSL
3952
FOSSIL_BUILD_SSL = 0
@@ -150,27 +163,30 @@
150163
ZLIB = zdll.lib
151164
!else
152165
ZLIB = zlib.lib
153166
!endif
154167
155
-INCL = /I. /I$(SRCDIR) /I$B\win\include
168
+INCL = /I. /I"$(OX)" /I"$(SRCDIR)" /I"$(B)\win\include"
156169
157170
!if $(FOSSIL_ENABLE_MINIZ)==0
158
-INCL = $(INCL) /I$(ZINCDIR)
171
+INCL = $(INCL) /I"$(ZINCDIR)"
159172
!endif
160173
161174
!if $(FOSSIL_ENABLE_SSL)!=0
162
-INCL = $(INCL) /I$(SSLINCDIR)
175
+INCL = $(INCL) /I"$(SSLINCDIR)"
163176
!endif
164177
165178
!if $(FOSSIL_ENABLE_TCL)!=0
166
-INCL = $(INCL) /I$(TCLINCDIR)
179
+INCL = $(INCL) /I"$(TCLINCDIR)"
167180
!endif
168181
169182
CFLAGS = /nologo
170183
LDFLAGS =
171184
185
+CFLAGS = $(CFLAGS) /D_CRT_SECURE_NO_DEPRECATE /D_CRT_SECURE_NO_WARNINGS
186
+CFLAGS = $(CFLAGS) /D_CRT_NONSTDC_NO_DEPRECATE /D_CRT_NONSTDC_NO_WARNINGS
187
+
172188
!if $(FOSSIL_DYNAMIC_BUILD)!=0
173189
LDFLAGS = $(LDFLAGS) /MANIFEST
174190
!else
175191
LDFLAGS = $(LDFLAGS) /NODEFAULTLIB:msvcrt /MANIFEST:NO
176192
!endif
@@ -199,11 +215,11 @@
199215
CRTFLAGS = /MT
200216
!endif
201217
!endif
202218
203219
!if $(DEBUG)!=0
204
-CFLAGS = $(CFLAGS) /Zi $(CRTFLAGS) /Od
220
+CFLAGS = $(CFLAGS) /Zi $(CRTFLAGS) /Od /DFOSSIL_DEBUG
205221
LDFLAGS = $(LDFLAGS) /DEBUG
206222
!else
207223
CFLAGS = $(CFLAGS) $(CRTFLAGS) /O2
208224
!endif
209225
@@ -219,11 +235,11 @@
219235
RCC = $(RCC) /DFOSSIL_DYNAMIC_BUILD=1
220236
!endif
221237
222238
!if $(FOSSIL_ENABLE_MINIZ)==0
223239
LIBS = $(LIBS) $(ZLIB)
224
-LIBDIR = $(LIBDIR) /LIBPATH:$(ZLIBDIR)
240
+LIBDIR = $(LIBDIR) /LIBPATH:"$(ZLIBDIR)"
225241
!endif
226242
227243
!if $(FOSSIL_ENABLE_MINIZ)!=0
228244
TCC = $(TCC) /DFOSSIL_ENABLE_MINIZ=1
229245
RCC = $(RCC) /DFOSSIL_ENABLE_MINIZ=1
@@ -236,11 +252,11 @@
236252
237253
!if $(FOSSIL_ENABLE_SSL)!=0
238254
TCC = $(TCC) /DFOSSIL_ENABLE_SSL=1
239255
RCC = $(RCC) /DFOSSIL_ENABLE_SSL=1
240256
LIBS = $(LIBS) $(SSLLIB)
241
-LIBDIR = $(LIBDIR) /LIBPATH:$(SSLLIBDIR)
257
+LIBDIR = $(LIBDIR) /LIBPATH:"$(SSLLIBDIR)"
242258
!endif
243259
244260
!if $(FOSSIL_ENABLE_EXEC_REL_PATHS)!=0
245261
TCC = $(TCC) /DFOSSIL_ENABLE_EXEC_REL_PATHS=1
246262
RCC = $(RCC) /DFOSSIL_ENABLE_EXEC_REL_PATHS=1
@@ -283,11 +299,10 @@
283299
/DSQLITE_DEFAULT_MEMSTATUS=0 \
284300
/DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 \
285301
/DSQLITE_LIKE_DOESNT_MATCH_BLOBS \
286302
/DSQLITE_OMIT_DECLTYPE \
287303
/DSQLITE_OMIT_DEPRECATED \
288
- /DSQLITE_OMIT_GET_TABLE \
289304
/DSQLITE_OMIT_PROGRESS_CALLBACK \
290305
/DSQLITE_OMIT_SHARED_CACHE \
291306
/DSQLITE_OMIT_LOAD_EXTENSION \
292307
/DSQLITE_MAX_EXPR_DEPTH=0 \
293308
/DSQLITE_USE_ALLOCA \
@@ -311,11 +326,10 @@
311326
/DSQLITE_DEFAULT_MEMSTATUS=0 \
312327
/DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 \
313328
/DSQLITE_LIKE_DOESNT_MATCH_BLOBS \
314329
/DSQLITE_OMIT_DECLTYPE \
315330
/DSQLITE_OMIT_DEPRECATED \
316
- /DSQLITE_OMIT_GET_TABLE \
317331
/DSQLITE_OMIT_PROGRESS_CALLBACK \
318332
/DSQLITE_OMIT_SHARED_CACHE \
319333
/DSQLITE_OMIT_LOAD_EXTENSION \
320334
/DSQLITE_MAX_EXPR_DEPTH=0 \
321335
/DSQLITE_USE_ALLOCA \
@@ -344,405 +358,407 @@
344358
345359
MINIZ_OPTIONS = /DMINIZ_NO_STDIO \
346360
/DMINIZ_NO_TIME \
347361
/DMINIZ_NO_ARCHIVE_APIS
348362
349
-SRC = add_.c \
350
- alerts_.c \
351
- allrepo_.c \
352
- attach_.c \
353
- backlink_.c \
354
- backoffice_.c \
355
- bag_.c \
356
- bisect_.c \
357
- blob_.c \
358
- branch_.c \
359
- browse_.c \
360
- builtin_.c \
361
- bundle_.c \
362
- cache_.c \
363
- capabilities_.c \
364
- captcha_.c \
365
- cgi_.c \
366
- checkin_.c \
367
- checkout_.c \
368
- clearsign_.c \
369
- clone_.c \
370
- comformat_.c \
371
- configure_.c \
372
- content_.c \
373
- cookies_.c \
374
- db_.c \
375
- delta_.c \
376
- deltacmd_.c \
377
- deltafunc_.c \
378
- descendants_.c \
379
- diff_.c \
380
- diffcmd_.c \
381
- dispatch_.c \
382
- doc_.c \
383
- encode_.c \
384
- etag_.c \
385
- event_.c \
386
- export_.c \
387
- extcgi_.c \
388
- file_.c \
389
- fileedit_.c \
390
- finfo_.c \
391
- foci_.c \
392
- forum_.c \
393
- fshell_.c \
394
- fusefs_.c \
395
- fuzz_.c \
396
- glob_.c \
397
- graph_.c \
398
- gzip_.c \
399
- hname_.c \
400
- http_.c \
401
- http_socket_.c \
402
- http_ssl_.c \
403
- http_transport_.c \
404
- import_.c \
405
- info_.c \
406
- json_.c \
407
- json_artifact_.c \
408
- json_branch_.c \
409
- json_config_.c \
410
- json_diff_.c \
411
- json_dir_.c \
412
- json_finfo_.c \
413
- json_login_.c \
414
- json_query_.c \
415
- json_report_.c \
416
- json_status_.c \
417
- json_tag_.c \
418
- json_timeline_.c \
419
- json_user_.c \
420
- json_wiki_.c \
421
- leaf_.c \
422
- loadctrl_.c \
423
- login_.c \
424
- lookslike_.c \
425
- main_.c \
426
- manifest_.c \
427
- markdown_.c \
428
- markdown_html_.c \
429
- md5_.c \
430
- merge_.c \
431
- merge3_.c \
432
- moderate_.c \
433
- name_.c \
434
- path_.c \
435
- piechart_.c \
436
- pivot_.c \
437
- popen_.c \
438
- pqueue_.c \
439
- printf_.c \
440
- publish_.c \
441
- purge_.c \
442
- rebuild_.c \
443
- regexp_.c \
444
- repolist_.c \
445
- report_.c \
446
- rss_.c \
447
- schema_.c \
448
- search_.c \
449
- security_audit_.c \
450
- setup_.c \
451
- setupuser_.c \
452
- sha1_.c \
453
- sha1hard_.c \
454
- sha3_.c \
455
- shun_.c \
456
- sitemap_.c \
457
- skins_.c \
458
- smtp_.c \
459
- sqlcmd_.c \
460
- stash_.c \
461
- stat_.c \
462
- statrep_.c \
463
- style_.c \
464
- sync_.c \
465
- tag_.c \
466
- tar_.c \
467
- terminal_.c \
468
- th_main_.c \
469
- timeline_.c \
470
- tkt_.c \
471
- tktsetup_.c \
472
- undo_.c \
473
- unicode_.c \
474
- unversioned_.c \
475
- update_.c \
476
- url_.c \
477
- user_.c \
478
- utf8_.c \
479
- util_.c \
480
- verify_.c \
481
- vfile_.c \
482
- webmail_.c \
483
- wiki_.c \
484
- wikiformat_.c \
485
- winfile_.c \
486
- winhttp_.c \
487
- wysiwyg_.c \
488
- xfer_.c \
489
- xfersetup_.c \
490
- zip_.c
491
-
492
-EXTRA_FILES = $(SRCDIR)\..\skins\aht\details.txt \
493
- $(SRCDIR)\..\skins\ardoise\css.txt \
494
- $(SRCDIR)\..\skins\ardoise\details.txt \
495
- $(SRCDIR)\..\skins\ardoise\footer.txt \
496
- $(SRCDIR)\..\skins\ardoise\header.txt \
497
- $(SRCDIR)\..\skins\black_and_white\css.txt \
498
- $(SRCDIR)\..\skins\black_and_white\details.txt \
499
- $(SRCDIR)\..\skins\black_and_white\footer.txt \
500
- $(SRCDIR)\..\skins\black_and_white\header.txt \
501
- $(SRCDIR)\..\skins\blitz\css.txt \
502
- $(SRCDIR)\..\skins\blitz\details.txt \
503
- $(SRCDIR)\..\skins\blitz\footer.txt \
504
- $(SRCDIR)\..\skins\blitz\header.txt \
505
- $(SRCDIR)\..\skins\blitz\ticket.txt \
506
- $(SRCDIR)\..\skins\blitz_no_logo\css.txt \
507
- $(SRCDIR)\..\skins\blitz_no_logo\details.txt \
508
- $(SRCDIR)\..\skins\blitz_no_logo\footer.txt \
509
- $(SRCDIR)\..\skins\blitz_no_logo\header.txt \
510
- $(SRCDIR)\..\skins\blitz_no_logo\ticket.txt \
511
- $(SRCDIR)\..\skins\bootstrap\css.txt \
512
- $(SRCDIR)\..\skins\bootstrap\details.txt \
513
- $(SRCDIR)\..\skins\bootstrap\footer.txt \
514
- $(SRCDIR)\..\skins\bootstrap\header.txt \
515
- $(SRCDIR)\..\skins\default\css.txt \
516
- $(SRCDIR)\..\skins\default\details.txt \
517
- $(SRCDIR)\..\skins\default\footer.txt \
518
- $(SRCDIR)\..\skins\default\header.txt \
519
- $(SRCDIR)\..\skins\default\js.txt \
520
- $(SRCDIR)\..\skins\eagle\css.txt \
521
- $(SRCDIR)\..\skins\eagle\details.txt \
522
- $(SRCDIR)\..\skins\eagle\footer.txt \
523
- $(SRCDIR)\..\skins\eagle\header.txt \
524
- $(SRCDIR)\..\skins\enhanced1\css.txt \
525
- $(SRCDIR)\..\skins\enhanced1\details.txt \
526
- $(SRCDIR)\..\skins\enhanced1\footer.txt \
527
- $(SRCDIR)\..\skins\enhanced1\header.txt \
528
- $(SRCDIR)\..\skins\khaki\css.txt \
529
- $(SRCDIR)\..\skins\khaki\details.txt \
530
- $(SRCDIR)\..\skins\khaki\footer.txt \
531
- $(SRCDIR)\..\skins\khaki\header.txt \
532
- $(SRCDIR)\..\skins\original\css.txt \
533
- $(SRCDIR)\..\skins\original\details.txt \
534
- $(SRCDIR)\..\skins\original\footer.txt \
535
- $(SRCDIR)\..\skins\original\header.txt \
536
- $(SRCDIR)\..\skins\plain_gray\css.txt \
537
- $(SRCDIR)\..\skins\plain_gray\details.txt \
538
- $(SRCDIR)\..\skins\plain_gray\footer.txt \
539
- $(SRCDIR)\..\skins\plain_gray\header.txt \
540
- $(SRCDIR)\..\skins\rounded1\css.txt \
541
- $(SRCDIR)\..\skins\rounded1\details.txt \
542
- $(SRCDIR)\..\skins\rounded1\footer.txt \
543
- $(SRCDIR)\..\skins\rounded1\header.txt \
544
- $(SRCDIR)\..\skins\xekri\css.txt \
545
- $(SRCDIR)\..\skins\xekri\details.txt \
546
- $(SRCDIR)\..\skins\xekri\footer.txt \
547
- $(SRCDIR)\..\skins\xekri\header.txt \
548
- $(SRCDIR)\accordion.js \
549
- $(SRCDIR)\ci_edit.js \
550
- $(SRCDIR)\copybtn.js \
551
- $(SRCDIR)\default.css \
552
- $(SRCDIR)\diff.tcl \
553
- $(SRCDIR)\forum.js \
554
- $(SRCDIR)\fossil.bootstrap.js \
555
- $(SRCDIR)\fossil.confirmer.js \
556
- $(SRCDIR)\fossil.dom.js \
557
- $(SRCDIR)\fossil.fetch.js \
558
- $(SRCDIR)\fossil.page.fileedit.js \
559
- $(SRCDIR)\fossil.storage.js \
560
- $(SRCDIR)\fossil.tabs.js \
561
- $(SRCDIR)\graph.js \
562
- $(SRCDIR)\href.js \
563
- $(SRCDIR)\login.js \
564
- $(SRCDIR)\markdown.md \
565
- $(SRCDIR)\menu.js \
566
- $(SRCDIR)\sbsdiff.js \
567
- $(SRCDIR)\scroll.js \
568
- $(SRCDIR)\skin.js \
569
- $(SRCDIR)\sorttable.js \
570
- $(SRCDIR)\sounds\0.wav \
571
- $(SRCDIR)\sounds\1.wav \
572
- $(SRCDIR)\sounds\2.wav \
573
- $(SRCDIR)\sounds\3.wav \
574
- $(SRCDIR)\sounds\4.wav \
575
- $(SRCDIR)\sounds\5.wav \
576
- $(SRCDIR)\sounds\6.wav \
577
- $(SRCDIR)\sounds\7.wav \
578
- $(SRCDIR)\sounds\8.wav \
579
- $(SRCDIR)\sounds\9.wav \
580
- $(SRCDIR)\sounds\a.wav \
581
- $(SRCDIR)\sounds\b.wav \
582
- $(SRCDIR)\sounds\c.wav \
583
- $(SRCDIR)\sounds\d.wav \
584
- $(SRCDIR)\sounds\e.wav \
585
- $(SRCDIR)\sounds\f.wav \
586
- $(SRCDIR)\style.admin_log.css \
587
- $(SRCDIR)\style.fileedit.css \
588
- $(SRCDIR)\tree.js \
589
- $(SRCDIR)\useredit.js \
590
- $(SRCDIR)\wiki.wiki
591
-
592
-OBJ = $(OX)\add$O \
593
- $(OX)\alerts$O \
594
- $(OX)\allrepo$O \
595
- $(OX)\attach$O \
596
- $(OX)\backlink$O \
597
- $(OX)\backoffice$O \
598
- $(OX)\bag$O \
599
- $(OX)\bisect$O \
600
- $(OX)\blob$O \
601
- $(OX)\branch$O \
602
- $(OX)\browse$O \
603
- $(OX)\builtin$O \
604
- $(OX)\bundle$O \
605
- $(OX)\cache$O \
606
- $(OX)\capabilities$O \
607
- $(OX)\captcha$O \
608
- $(OX)\cgi$O \
609
- $(OX)\checkin$O \
610
- $(OX)\checkout$O \
611
- $(OX)\clearsign$O \
612
- $(OX)\clone$O \
613
- $(OX)\comformat$O \
614
- $(OX)\configure$O \
615
- $(OX)\content$O \
616
- $(OX)\cookies$O \
617
- $(OX)\cson_amalgamation$O \
618
- $(OX)\db$O \
619
- $(OX)\delta$O \
620
- $(OX)\deltacmd$O \
621
- $(OX)\deltafunc$O \
622
- $(OX)\descendants$O \
623
- $(OX)\diff$O \
624
- $(OX)\diffcmd$O \
625
- $(OX)\dispatch$O \
626
- $(OX)\doc$O \
627
- $(OX)\encode$O \
628
- $(OX)\etag$O \
629
- $(OX)\event$O \
630
- $(OX)\export$O \
631
- $(OX)\extcgi$O \
632
- $(OX)\file$O \
633
- $(OX)\fileedit$O \
634
- $(OX)\finfo$O \
635
- $(OX)\foci$O \
636
- $(OX)\forum$O \
637
- $(OX)\fshell$O \
638
- $(OX)\fusefs$O \
639
- $(OX)\fuzz$O \
640
- $(OX)\glob$O \
641
- $(OX)\graph$O \
642
- $(OX)\gzip$O \
643
- $(OX)\hname$O \
644
- $(OX)\http$O \
645
- $(OX)\http_socket$O \
646
- $(OX)\http_ssl$O \
647
- $(OX)\http_transport$O \
648
- $(OX)\import$O \
649
- $(OX)\info$O \
650
- $(OX)\json$O \
651
- $(OX)\json_artifact$O \
652
- $(OX)\json_branch$O \
653
- $(OX)\json_config$O \
654
- $(OX)\json_diff$O \
655
- $(OX)\json_dir$O \
656
- $(OX)\json_finfo$O \
657
- $(OX)\json_login$O \
658
- $(OX)\json_query$O \
659
- $(OX)\json_report$O \
660
- $(OX)\json_status$O \
661
- $(OX)\json_tag$O \
662
- $(OX)\json_timeline$O \
663
- $(OX)\json_user$O \
664
- $(OX)\json_wiki$O \
665
- $(OX)\leaf$O \
666
- $(OX)\loadctrl$O \
667
- $(OX)\login$O \
668
- $(OX)\lookslike$O \
669
- $(OX)\main$O \
670
- $(OX)\manifest$O \
671
- $(OX)\markdown$O \
672
- $(OX)\markdown_html$O \
673
- $(OX)\md5$O \
674
- $(OX)\merge$O \
675
- $(OX)\merge3$O \
676
- $(OX)\moderate$O \
677
- $(OX)\name$O \
678
- $(OX)\path$O \
679
- $(OX)\piechart$O \
680
- $(OX)\pivot$O \
681
- $(OX)\popen$O \
682
- $(OX)\pqueue$O \
683
- $(OX)\printf$O \
684
- $(OX)\publish$O \
685
- $(OX)\purge$O \
686
- $(OX)\rebuild$O \
687
- $(OX)\regexp$O \
688
- $(OX)\repolist$O \
689
- $(OX)\report$O \
690
- $(OX)\rss$O \
691
- $(OX)\schema$O \
692
- $(OX)\search$O \
693
- $(OX)\security_audit$O \
694
- $(OX)\setup$O \
695
- $(OX)\setupuser$O \
696
- $(OX)\sha1$O \
697
- $(OX)\sha1hard$O \
698
- $(OX)\sha3$O \
699
- $(OX)\shell$O \
700
- $(OX)\shun$O \
701
- $(OX)\sitemap$O \
702
- $(OX)\skins$O \
703
- $(OX)\smtp$O \
704
- $(OX)\sqlcmd$O \
705
- $(OX)\sqlite3$O \
706
- $(OX)\stash$O \
707
- $(OX)\stat$O \
708
- $(OX)\statrep$O \
709
- $(OX)\style$O \
710
- $(OX)\sync$O \
711
- $(OX)\tag$O \
712
- $(OX)\tar$O \
713
- $(OX)\terminal$O \
714
- $(OX)\th$O \
715
- $(OX)\th_lang$O \
716
- $(OX)\th_main$O \
717
- $(OX)\th_tcl$O \
718
- $(OX)\timeline$O \
719
- $(OX)\tkt$O \
720
- $(OX)\tktsetup$O \
721
- $(OX)\undo$O \
722
- $(OX)\unicode$O \
723
- $(OX)\unversioned$O \
724
- $(OX)\update$O \
725
- $(OX)\url$O \
726
- $(OX)\user$O \
727
- $(OX)\utf8$O \
728
- $(OX)\util$O \
729
- $(OX)\verify$O \
730
- $(OX)\vfile$O \
731
- $(OX)\webmail$O \
732
- $(OX)\wiki$O \
733
- $(OX)\wikiformat$O \
734
- $(OX)\winfile$O \
735
- $(OX)\winhttp$O \
736
- $(OX)\wysiwyg$O \
737
- $(OX)\xfer$O \
738
- $(OX)\xfersetup$O \
739
- $(OX)\zip$O \
363
+SRC = "$(OX)\add_.c" \
364
+ "$(OX)\ajax_.c" \
365
+ "$(OX)\alerts_.c" \
366
+ "$(OX)\allrepo_.c" \
367
+ "$(OX)\attach_.c" \
368
+ "$(OX)\backlink_.c" \
369
+ "$(OX)\backoffice_.c" \
370
+ "$(OX)\bag_.c" \
371
+ "$(OX)\bisect_.c" \
372
+ "$(OX)\blob_.c" \
373
+ "$(OX)\branch_.c" \
374
+ "$(OX)\browse_.c" \
375
+ "$(OX)\builtin_.c" \
376
+ "$(OX)\bundle_.c" \
377
+ "$(OX)\cache_.c" \
378
+ "$(OX)\capabilities_.c" \
379
+ "$(OX)\captcha_.c" \
380
+ "$(OX)\cgi_.c" \
381
+ "$(OX)\checkin_.c" \
382
+ "$(OX)\checkout_.c" \
383
+ "$(OX)\clearsign_.c" \
384
+ "$(OX)\clone_.c" \
385
+ "$(OX)\comformat_.c" \
386
+ "$(OX)\configure_.c" \
387
+ "$(OX)\content_.c" \
388
+ "$(OX)\cookies_.c" \
389
+ "$(OX)\db_.c" \
390
+ "$(OX)\delta_.c" \
391
+ "$(OX)\deltacmd_.c" \
392
+ "$(OX)\deltafunc_.c" \
393
+ "$(OX)\descendants_.c" \
394
+ "$(OX)\diff_.c" \
395
+ "$(OX)\diffcmd_.c" \
396
+ "$(OX)\dispatch_.c" \
397
+ "$(OX)\doc_.c" \
398
+ "$(OX)\encode_.c" \
399
+ "$(OX)\etag_.c" \
400
+ "$(OX)\event_.c" \
401
+ "$(OX)\export_.c" \
402
+ "$(OX)\extcgi_.c" \
403
+ "$(OX)\file_.c" \
404
+ "$(OX)\fileedit_.c" \
405
+ "$(OX)\finfo_.c" \
406
+ "$(OX)\foci_.c" \
407
+ "$(OX)\forum_.c" \
408
+ "$(OX)\fshell_.c" \
409
+ "$(OX)\fusefs_.c" \
410
+ "$(OX)\fuzz_.c" \
411
+ "$(OX)\glob_.c" \
412
+ "$(OX)\graph_.c" \
413
+ "$(OX)\gzip_.c" \
414
+ "$(OX)\hname_.c" \
415
+ "$(OX)\http_.c" \
416
+ "$(OX)\http_socket_.c" \
417
+ "$(OX)\http_ssl_.c" \
418
+ "$(OX)\http_transport_.c" \
419
+ "$(OX)\import_.c" \
420
+ "$(OX)\info_.c" \
421
+ "$(OX)\json_.c" \
422
+ "$(OX)\json_artifact_.c" \
423
+ "$(OX)\json_branch_.c" \
424
+ "$(OX)\json_config_.c" \
425
+ "$(OX)\json_diff_.c" \
426
+ "$(OX)\json_dir_.c" \
427
+ "$(OX)\json_finfo_.c" \
428
+ "$(OX)\json_login_.c" \
429
+ "$(OX)\json_query_.c" \
430
+ "$(OX)\json_report_.c" \
431
+ "$(OX)\json_status_.c" \
432
+ "$(OX)\json_tag_.c" \
433
+ "$(OX)\json_timeline_.c" \
434
+ "$(OX)\json_user_.c" \
435
+ "$(OX)\json_wiki_.c" \
436
+ "$(OX)\leaf_.c" \
437
+ "$(OX)\loadctrl_.c" \
438
+ "$(OX)\login_.c" \
439
+ "$(OX)\lookslike_.c" \
440
+ "$(OX)\main_.c" \
441
+ "$(OX)\manifest_.c" \
442
+ "$(OX)\markdown_.c" \
443
+ "$(OX)\markdown_html_.c" \
444
+ "$(OX)\md5_.c" \
445
+ "$(OX)\merge_.c" \
446
+ "$(OX)\merge3_.c" \
447
+ "$(OX)\moderate_.c" \
448
+ "$(OX)\name_.c" \
449
+ "$(OX)\path_.c" \
450
+ "$(OX)\piechart_.c" \
451
+ "$(OX)\pivot_.c" \
452
+ "$(OX)\popen_.c" \
453
+ "$(OX)\pqueue_.c" \
454
+ "$(OX)\printf_.c" \
455
+ "$(OX)\publish_.c" \
456
+ "$(OX)\purge_.c" \
457
+ "$(OX)\rebuild_.c" \
458
+ "$(OX)\regexp_.c" \
459
+ "$(OX)\repolist_.c" \
460
+ "$(OX)\report_.c" \
461
+ "$(OX)\rss_.c" \
462
+ "$(OX)\schema_.c" \
463
+ "$(OX)\search_.c" \
464
+ "$(OX)\security_audit_.c" \
465
+ "$(OX)\setup_.c" \
466
+ "$(OX)\setupuser_.c" \
467
+ "$(OX)\sha1_.c" \
468
+ "$(OX)\sha1hard_.c" \
469
+ "$(OX)\sha3_.c" \
470
+ "$(OX)\shun_.c" \
471
+ "$(OX)\sitemap_.c" \
472
+ "$(OX)\skins_.c" \
473
+ "$(OX)\smtp_.c" \
474
+ "$(OX)\sqlcmd_.c" \
475
+ "$(OX)\stash_.c" \
476
+ "$(OX)\stat_.c" \
477
+ "$(OX)\statrep_.c" \
478
+ "$(OX)\style_.c" \
479
+ "$(OX)\sync_.c" \
480
+ "$(OX)\tag_.c" \
481
+ "$(OX)\tar_.c" \
482
+ "$(OX)\terminal_.c" \
483
+ "$(OX)\th_main_.c" \
484
+ "$(OX)\timeline_.c" \
485
+ "$(OX)\tkt_.c" \
486
+ "$(OX)\tktsetup_.c" \
487
+ "$(OX)\undo_.c" \
488
+ "$(OX)\unicode_.c" \
489
+ "$(OX)\unversioned_.c" \
490
+ "$(OX)\update_.c" \
491
+ "$(OX)\url_.c" \
492
+ "$(OX)\user_.c" \
493
+ "$(OX)\utf8_.c" \
494
+ "$(OX)\util_.c" \
495
+ "$(OX)\verify_.c" \
496
+ "$(OX)\vfile_.c" \
497
+ "$(OX)\webmail_.c" \
498
+ "$(OX)\wiki_.c" \
499
+ "$(OX)\wikiformat_.c" \
500
+ "$(OX)\winfile_.c" \
501
+ "$(OX)\winhttp_.c" \
502
+ "$(OX)\wysiwyg_.c" \
503
+ "$(OX)\xfer_.c" \
504
+ "$(OX)\xfersetup_.c" \
505
+ "$(OX)\zip_.c"
506
+
507
+EXTRA_FILES = "$(SRCDIR)\..\skins\aht\details.txt" \
508
+ "$(SRCDIR)\..\skins\ardoise\css.txt" \
509
+ "$(SRCDIR)\..\skins\ardoise\details.txt" \
510
+ "$(SRCDIR)\..\skins\ardoise\footer.txt" \
511
+ "$(SRCDIR)\..\skins\ardoise\header.txt" \
512
+ "$(SRCDIR)\..\skins\black_and_white\css.txt" \
513
+ "$(SRCDIR)\..\skins\black_and_white\details.txt" \
514
+ "$(SRCDIR)\..\skins\black_and_white\footer.txt" \
515
+ "$(SRCDIR)\..\skins\black_and_white\header.txt" \
516
+ "$(SRCDIR)\..\skins\blitz\css.txt" \
517
+ "$(SRCDIR)\..\skins\blitz\details.txt" \
518
+ "$(SRCDIR)\..\skins\blitz\footer.txt" \
519
+ "$(SRCDIR)\..\skins\blitz\header.txt" \
520
+ "$(SRCDIR)\..\skins\blitz\ticket.txt" \
521
+ "$(SRCDIR)\..\skins\blitz_no_logo\css.txt" \
522
+ "$(SRCDIR)\..\skins\blitz_no_logo\details.txt" \
523
+ "$(SRCDIR)\..\skins\blitz_no_logo\footer.txt" \
524
+ "$(SRCDIR)\..\skins\blitz_no_logo\header.txt" \
525
+ "$(SRCDIR)\..\skins\blitz_no_logo\ticket.txt" \
526
+ "$(SRCDIR)\..\skins\bootstrap\css.txt" \
527
+ "$(SRCDIR)\..\skins\bootstrap\details.txt" \
528
+ "$(SRCDIR)\..\skins\bootstrap\footer.txt" \
529
+ "$(SRCDIR)\..\skins\bootstrap\header.txt" \
530
+ "$(SRCDIR)\..\skins\default\css.txt" \
531
+ "$(SRCDIR)\..\skins\default\details.txt" \
532
+ "$(SRCDIR)\..\skins\default\footer.txt" \
533
+ "$(SRCDIR)\..\skins\default\header.txt" \
534
+ "$(SRCDIR)\..\skins\default\js.txt" \
535
+ "$(SRCDIR)\..\skins\eagle\css.txt" \
536
+ "$(SRCDIR)\..\skins\eagle\details.txt" \
537
+ "$(SRCDIR)\..\skins\eagle\footer.txt" \
538
+ "$(SRCDIR)\..\skins\eagle\header.txt" \
539
+ "$(SRCDIR)\..\skins\enhanced1\css.txt" \
540
+ "$(SRCDIR)\..\skins\enhanced1\details.txt" \
541
+ "$(SRCDIR)\..\skins\enhanced1\footer.txt" \
542
+ "$(SRCDIR)\..\skins\enhanced1\header.txt" \
543
+ "$(SRCDIR)\..\skins\khaki\css.txt" \
544
+ "$(SRCDIR)\..\skins\khaki\details.txt" \
545
+ "$(SRCDIR)\..\skins\khaki\footer.txt" \
546
+ "$(SRCDIR)\..\skins\khaki\header.txt" \
547
+ "$(SRCDIR)\..\skins\original\css.txt" \
548
+ "$(SRCDIR)\..\skins\original\details.txt" \
549
+ "$(SRCDIR)\..\skins\original\footer.txt" \
550
+ "$(SRCDIR)\..\skins\original\header.txt" \
551
+ "$(SRCDIR)\..\skins\plain_gray\css.txt" \
552
+ "$(SRCDIR)\..\skins\plain_gray\details.txt" \
553
+ "$(SRCDIR)\..\skins\plain_gray\footer.txt" \
554
+ "$(SRCDIR)\..\skins\plain_gray\header.txt" \
555
+ "$(SRCDIR)\..\skins\rounded1\css.txt" \
556
+ "$(SRCDIR)\..\skins\rounded1\details.txt" \
557
+ "$(SRCDIR)\..\skins\rounded1\footer.txt" \
558
+ "$(SRCDIR)\..\skins\rounded1\header.txt" \
559
+ "$(SRCDIR)\..\skins\xekri\css.txt" \
560
+ "$(SRCDIR)\..\skins\xekri\details.txt" \
561
+ "$(SRCDIR)\..\skins\xekri\footer.txt" \
562
+ "$(SRCDIR)\..\skins\xekri\header.txt" \
563
+ "$(SRCDIR)\accordion.js" \
564
+ "$(SRCDIR)\ci_edit.js" \
565
+ "$(SRCDIR)\copybtn.js" \
566
+ "$(SRCDIR)\default.css" \
567
+ "$(SRCDIR)\diff.tcl" \
568
+ "$(SRCDIR)\forum.js" \
569
+ "$(SRCDIR)\fossil.bootstrap.js" \
570
+ "$(SRCDIR)\fossil.confirmer.js" \
571
+ "$(SRCDIR)\fossil.dom.js" \
572
+ "$(SRCDIR)\fossil.fetch.js" \
573
+ "$(SRCDIR)\fossil.page.fileedit.js" \
574
+ "$(SRCDIR)\fossil.storage.js" \
575
+ "$(SRCDIR)\fossil.tabs.js" \
576
+ "$(SRCDIR)\graph.js" \
577
+ "$(SRCDIR)\href.js" \
578
+ "$(SRCDIR)\login.js" \
579
+ "$(SRCDIR)\markdown.md" \
580
+ "$(SRCDIR)\menu.js" \
581
+ "$(SRCDIR)\sbsdiff.js" \
582
+ "$(SRCDIR)\scroll.js" \
583
+ "$(SRCDIR)\skin.js" \
584
+ "$(SRCDIR)\sorttable.js" \
585
+ "$(SRCDIR)\sounds\0.wav" \
586
+ "$(SRCDIR)\sounds\1.wav" \
587
+ "$(SRCDIR)\sounds\2.wav" \
588
+ "$(SRCDIR)\sounds\3.wav" \
589
+ "$(SRCDIR)\sounds\4.wav" \
590
+ "$(SRCDIR)\sounds\5.wav" \
591
+ "$(SRCDIR)\sounds\6.wav" \
592
+ "$(SRCDIR)\sounds\7.wav" \
593
+ "$(SRCDIR)\sounds\8.wav" \
594
+ "$(SRCDIR)\sounds\9.wav" \
595
+ "$(SRCDIR)\sounds\a.wav" \
596
+ "$(SRCDIR)\sounds\b.wav" \
597
+ "$(SRCDIR)\sounds\c.wav" \
598
+ "$(SRCDIR)\sounds\d.wav" \
599
+ "$(SRCDIR)\sounds\e.wav" \
600
+ "$(SRCDIR)\sounds\f.wav" \
601
+ "$(SRCDIR)\style.admin_log.css" \
602
+ "$(SRCDIR)\style.fileedit.css" \
603
+ "$(SRCDIR)\tree.js" \
604
+ "$(SRCDIR)\useredit.js" \
605
+ "$(SRCDIR)\wiki.wiki"
606
+
607
+OBJ = "$(OX)\add$O" \
608
+ "$(OX)\ajax$O" \
609
+ "$(OX)\alerts$O" \
610
+ "$(OX)\allrepo$O" \
611
+ "$(OX)\attach$O" \
612
+ "$(OX)\backlink$O" \
613
+ "$(OX)\backoffice$O" \
614
+ "$(OX)\bag$O" \
615
+ "$(OX)\bisect$O" \
616
+ "$(OX)\blob$O" \
617
+ "$(OX)\branch$O" \
618
+ "$(OX)\browse$O" \
619
+ "$(OX)\builtin$O" \
620
+ "$(OX)\bundle$O" \
621
+ "$(OX)\cache$O" \
622
+ "$(OX)\capabilities$O" \
623
+ "$(OX)\captcha$O" \
624
+ "$(OX)\cgi$O" \
625
+ "$(OX)\checkin$O" \
626
+ "$(OX)\checkout$O" \
627
+ "$(OX)\clearsign$O" \
628
+ "$(OX)\clone$O" \
629
+ "$(OX)\comformat$O" \
630
+ "$(OX)\configure$O" \
631
+ "$(OX)\content$O" \
632
+ "$(OX)\cookies$O" \
633
+ "$(OX)\cson_amalgamation$O" \
634
+ "$(OX)\db$O" \
635
+ "$(OX)\delta$O" \
636
+ "$(OX)\deltacmd$O" \
637
+ "$(OX)\deltafunc$O" \
638
+ "$(OX)\descendants$O" \
639
+ "$(OX)\diff$O" \
640
+ "$(OX)\diffcmd$O" \
641
+ "$(OX)\dispatch$O" \
642
+ "$(OX)\doc$O" \
643
+ "$(OX)\encode$O" \
644
+ "$(OX)\etag$O" \
645
+ "$(OX)\event$O" \
646
+ "$(OX)\export$O" \
647
+ "$(OX)\extcgi$O" \
648
+ "$(OX)\file$O" \
649
+ "$(OX)\fileedit$O" \
650
+ "$(OX)\finfo$O" \
651
+ "$(OX)\foci$O" \
652
+ "$(OX)\forum$O" \
653
+ "$(OX)\fshell$O" \
654
+ "$(OX)\fusefs$O" \
655
+ "$(OX)\fuzz$O" \
656
+ "$(OX)\glob$O" \
657
+ "$(OX)\graph$O" \
658
+ "$(OX)\gzip$O" \
659
+ "$(OX)\hname$O" \
660
+ "$(OX)\http$O" \
661
+ "$(OX)\http_socket$O" \
662
+ "$(OX)\http_ssl$O" \
663
+ "$(OX)\http_transport$O" \
664
+ "$(OX)\import$O" \
665
+ "$(OX)\info$O" \
666
+ "$(OX)\json$O" \
667
+ "$(OX)\json_artifact$O" \
668
+ "$(OX)\json_branch$O" \
669
+ "$(OX)\json_config$O" \
670
+ "$(OX)\json_diff$O" \
671
+ "$(OX)\json_dir$O" \
672
+ "$(OX)\json_finfo$O" \
673
+ "$(OX)\json_login$O" \
674
+ "$(OX)\json_query$O" \
675
+ "$(OX)\json_report$O" \
676
+ "$(OX)\json_status$O" \
677
+ "$(OX)\json_tag$O" \
678
+ "$(OX)\json_timeline$O" \
679
+ "$(OX)\json_user$O" \
680
+ "$(OX)\json_wiki$O" \
681
+ "$(OX)\leaf$O" \
682
+ "$(OX)\loadctrl$O" \
683
+ "$(OX)\login$O" \
684
+ "$(OX)\lookslike$O" \
685
+ "$(OX)\main$O" \
686
+ "$(OX)\manifest$O" \
687
+ "$(OX)\markdown$O" \
688
+ "$(OX)\markdown_html$O" \
689
+ "$(OX)\md5$O" \
690
+ "$(OX)\merge$O" \
691
+ "$(OX)\merge3$O" \
692
+ "$(OX)\moderate$O" \
693
+ "$(OX)\name$O" \
694
+ "$(OX)\path$O" \
695
+ "$(OX)\piechart$O" \
696
+ "$(OX)\pivot$O" \
697
+ "$(OX)\popen$O" \
698
+ "$(OX)\pqueue$O" \
699
+ "$(OX)\printf$O" \
700
+ "$(OX)\publish$O" \
701
+ "$(OX)\purge$O" \
702
+ "$(OX)\rebuild$O" \
703
+ "$(OX)\regexp$O" \
704
+ "$(OX)\repolist$O" \
705
+ "$(OX)\report$O" \
706
+ "$(OX)\rss$O" \
707
+ "$(OX)\schema$O" \
708
+ "$(OX)\search$O" \
709
+ "$(OX)\security_audit$O" \
710
+ "$(OX)\setup$O" \
711
+ "$(OX)\setupuser$O" \
712
+ "$(OX)\sha1$O" \
713
+ "$(OX)\sha1hard$O" \
714
+ "$(OX)\sha3$O" \
715
+ "$(OX)\shell$O" \
716
+ "$(OX)\shun$O" \
717
+ "$(OX)\sitemap$O" \
718
+ "$(OX)\skins$O" \
719
+ "$(OX)\smtp$O" \
720
+ "$(OX)\sqlcmd$O" \
721
+ "$(OX)\sqlite3$O" \
722
+ "$(OX)\stash$O" \
723
+ "$(OX)\stat$O" \
724
+ "$(OX)\statrep$O" \
725
+ "$(OX)\style$O" \
726
+ "$(OX)\sync$O" \
727
+ "$(OX)\tag$O" \
728
+ "$(OX)\tar$O" \
729
+ "$(OX)\terminal$O" \
730
+ "$(OX)\th$O" \
731
+ "$(OX)\th_lang$O" \
732
+ "$(OX)\th_main$O" \
733
+ "$(OX)\th_tcl$O" \
734
+ "$(OX)\timeline$O" \
735
+ "$(OX)\tkt$O" \
736
+ "$(OX)\tktsetup$O" \
737
+ "$(OX)\undo$O" \
738
+ "$(OX)\unicode$O" \
739
+ "$(OX)\unversioned$O" \
740
+ "$(OX)\update$O" \
741
+ "$(OX)\url$O" \
742
+ "$(OX)\user$O" \
743
+ "$(OX)\utf8$O" \
744
+ "$(OX)\util$O" \
745
+ "$(OX)\verify$O" \
746
+ "$(OX)\vfile$O" \
747
+ "$(OX)\webmail$O" \
748
+ "$(OX)\wiki$O" \
749
+ "$(OX)\wikiformat$O" \
750
+ "$(OX)\winfile$O" \
751
+ "$(OX)\winhttp$O" \
752
+ "$(OX)\wysiwyg$O" \
753
+ "$(OX)\xfer$O" \
754
+ "$(OX)\xfersetup$O" \
755
+ "$(OX)\zip$O" \
740756
!if $(FOSSIL_ENABLE_MINIZ)!=0
741
- $(OX)\miniz$O \
757
+ "$(OX)\miniz$O" \
742758
!endif
743
- $(OX)\fossil.res
759
+ "$(OX)\fossil.res"
744760
745761
746762
!ifndef BASEAPPNAME
747763
BASEAPPNAME = fossil
748764
!endif
@@ -749,32 +765,52 @@
749765
750766
APPNAME = $(OX)\$(BASEAPPNAME)$(E)
751767
PDBNAME = $(OX)\$(BASEAPPNAME)$(P)
752768
APPTARGETS =
753769
754
-all: $(OX) $(APPNAME)
770
+all: "$(OX)" "$(APPNAME)"
771
+
772
+$(BASEAPPNAME): "$(APPNAME)"
773
+
774
+$(BASEAPPNAME)$(E): "$(APPNAME)"
775
+
776
+install: "$(APPNAME)"
777
+ echo F | xcopy /Y "$(APPNAME)" "$(INSTALLDIR)"\*
778
+!if $(DEBUG)!=0
779
+ echo F | xcopy /Y "$(PDBNAME)" "$(INSTALLDIR)"\*
780
+!endif
781
+
782
+$(OX):
783
+ @-mkdir $@
755784
756785
zlib:
757786
@echo Building zlib from "$(ZLIBDIR)"...
758787
!if $(FOSSIL_ENABLE_WINXP)!=0
759788
@pushd "$(ZLIBDIR)" && $(MAKE) /f win32\Makefile.msc $(ZLIB) "CC=cl $(XPCFLAGS)" "LD=link $(XPLDFLAGS)" && popd
760789
!else
761790
@pushd "$(ZLIBDIR)" && $(MAKE) /f win32\Makefile.msc $(ZLIB) && popd
762791
!endif
763792
793
+clean-zlib:
794
+ @pushd "$(ZLIBDIR)" && $(MAKE) /f win32\Makefile.msc clean && popd
795
+
764796
!if $(FOSSIL_ENABLE_SSL)!=0
765797
openssl:
766798
@echo Building OpenSSL from "$(SSLDIR)"...
767
-!if "$(PERLDIR)" != ""
768
- @set PATH=$(PERLDIR);$(PATH)
799
+!ifdef PERLDIR
800
+ @pushd "$(SSLDIR)" && "$(PERLDIR)\$(PERL)" Configure $(SSLCONFIG) && popd
801
+!else
802
+ @pushd "$(SSLDIR)" && "$(PERL)" Configure $(SSLCONFIG) && popd
769803
!endif
770
- @pushd "$(SSLDIR)" && $(PERL) Configure $(SSLCONFIG) && popd
771804
!if $(FOSSIL_ENABLE_WINXP)!=0
772805
@pushd "$(SSLDIR)" && $(MAKE) "CC=cl $(XPCFLAGS)" "LFLAGS=$(XPLDFLAGS)" && popd
773806
!else
774807
@pushd "$(SSLDIR)" && $(MAKE) && popd
775808
!endif
809
+
810
+clean-openssl:
811
+ @pushd "$(SSLDIR)" && $(MAKE) clean && popd
776812
!endif
777813
778814
!if $(FOSSIL_ENABLE_MINIZ)==0
779815
!if $(FOSSIL_BUILD_ZLIB)!=0
780816
APPTARGETS = $(APPTARGETS) zlib
@@ -785,191 +821,188 @@
785821
!if $(FOSSIL_BUILD_SSL)!=0
786822
APPTARGETS = $(APPTARGETS) openssl
787823
!endif
788824
!endif
789825
790
-$(APPNAME) : $(APPTARGETS) translate$E mkindex$E codecheck1$E headers $(OBJ) $(OX)\linkopts
791
- cd $(OX)
792
- codecheck1$E $(SRC)
793
- link $(LDFLAGS) /OUT:$@ $(LIBDIR) Wsetargv.obj fossil.res @linkopts
794
- if exist [email protected] \
795
- $(MTC) -nologo -manifest [email protected] -outputresource:$@;1
796
-
797
-$(OX)\linkopts: $B\win\Makefile.msc
798
- echo $(OX)\add.obj > $@
799
- echo $(OX)\alerts.obj >> $@
800
- echo $(OX)\allrepo.obj >> $@
801
- echo $(OX)\attach.obj >> $@
802
- echo $(OX)\backlink.obj >> $@
803
- echo $(OX)\backoffice.obj >> $@
804
- echo $(OX)\bag.obj >> $@
805
- echo $(OX)\bisect.obj >> $@
806
- echo $(OX)\blob.obj >> $@
807
- echo $(OX)\branch.obj >> $@
808
- echo $(OX)\browse.obj >> $@
809
- echo $(OX)\builtin.obj >> $@
810
- echo $(OX)\bundle.obj >> $@
811
- echo $(OX)\cache.obj >> $@
812
- echo $(OX)\capabilities.obj >> $@
813
- echo $(OX)\captcha.obj >> $@
814
- echo $(OX)\cgi.obj >> $@
815
- echo $(OX)\checkin.obj >> $@
816
- echo $(OX)\checkout.obj >> $@
817
- echo $(OX)\clearsign.obj >> $@
818
- echo $(OX)\clone.obj >> $@
819
- echo $(OX)\comformat.obj >> $@
820
- echo $(OX)\configure.obj >> $@
821
- echo $(OX)\content.obj >> $@
822
- echo $(OX)\cookies.obj >> $@
823
- echo $(OX)\cson_amalgamation.obj >> $@
824
- echo $(OX)\db.obj >> $@
825
- echo $(OX)\delta.obj >> $@
826
- echo $(OX)\deltacmd.obj >> $@
827
- echo $(OX)\deltafunc.obj >> $@
828
- echo $(OX)\descendants.obj >> $@
829
- echo $(OX)\diff.obj >> $@
830
- echo $(OX)\diffcmd.obj >> $@
831
- echo $(OX)\dispatch.obj >> $@
832
- echo $(OX)\doc.obj >> $@
833
- echo $(OX)\encode.obj >> $@
834
- echo $(OX)\etag.obj >> $@
835
- echo $(OX)\event.obj >> $@
836
- echo $(OX)\export.obj >> $@
837
- echo $(OX)\extcgi.obj >> $@
838
- echo $(OX)\file.obj >> $@
839
- echo $(OX)\fileedit.obj >> $@
840
- echo $(OX)\finfo.obj >> $@
841
- echo $(OX)\foci.obj >> $@
842
- echo $(OX)\forum.obj >> $@
843
- echo $(OX)\fshell.obj >> $@
844
- echo $(OX)\fusefs.obj >> $@
845
- echo $(OX)\fuzz.obj >> $@
846
- echo $(OX)\glob.obj >> $@
847
- echo $(OX)\graph.obj >> $@
848
- echo $(OX)\gzip.obj >> $@
849
- echo $(OX)\hname.obj >> $@
850
- echo $(OX)\http.obj >> $@
851
- echo $(OX)\http_socket.obj >> $@
852
- echo $(OX)\http_ssl.obj >> $@
853
- echo $(OX)\http_transport.obj >> $@
854
- echo $(OX)\import.obj >> $@
855
- echo $(OX)\info.obj >> $@
856
- echo $(OX)\json.obj >> $@
857
- echo $(OX)\json_artifact.obj >> $@
858
- echo $(OX)\json_branch.obj >> $@
859
- echo $(OX)\json_config.obj >> $@
860
- echo $(OX)\json_diff.obj >> $@
861
- echo $(OX)\json_dir.obj >> $@
862
- echo $(OX)\json_finfo.obj >> $@
863
- echo $(OX)\json_login.obj >> $@
864
- echo $(OX)\json_query.obj >> $@
865
- echo $(OX)\json_report.obj >> $@
866
- echo $(OX)\json_status.obj >> $@
867
- echo $(OX)\json_tag.obj >> $@
868
- echo $(OX)\json_timeline.obj >> $@
869
- echo $(OX)\json_user.obj >> $@
870
- echo $(OX)\json_wiki.obj >> $@
871
- echo $(OX)\leaf.obj >> $@
872
- echo $(OX)\loadctrl.obj >> $@
873
- echo $(OX)\login.obj >> $@
874
- echo $(OX)\lookslike.obj >> $@
875
- echo $(OX)\main.obj >> $@
876
- echo $(OX)\manifest.obj >> $@
877
- echo $(OX)\markdown.obj >> $@
878
- echo $(OX)\markdown_html.obj >> $@
879
- echo $(OX)\md5.obj >> $@
880
- echo $(OX)\merge.obj >> $@
881
- echo $(OX)\merge3.obj >> $@
882
- echo $(OX)\moderate.obj >> $@
883
- echo $(OX)\name.obj >> $@
884
- echo $(OX)\path.obj >> $@
885
- echo $(OX)\piechart.obj >> $@
886
- echo $(OX)\pivot.obj >> $@
887
- echo $(OX)\popen.obj >> $@
888
- echo $(OX)\pqueue.obj >> $@
889
- echo $(OX)\printf.obj >> $@
890
- echo $(OX)\publish.obj >> $@
891
- echo $(OX)\purge.obj >> $@
892
- echo $(OX)\rebuild.obj >> $@
893
- echo $(OX)\regexp.obj >> $@
894
- echo $(OX)\repolist.obj >> $@
895
- echo $(OX)\report.obj >> $@
896
- echo $(OX)\rss.obj >> $@
897
- echo $(OX)\schema.obj >> $@
898
- echo $(OX)\search.obj >> $@
899
- echo $(OX)\security_audit.obj >> $@
900
- echo $(OX)\setup.obj >> $@
901
- echo $(OX)\setupuser.obj >> $@
902
- echo $(OX)\sha1.obj >> $@
903
- echo $(OX)\sha1hard.obj >> $@
904
- echo $(OX)\sha3.obj >> $@
905
- echo $(OX)\shell.obj >> $@
906
- echo $(OX)\shun.obj >> $@
907
- echo $(OX)\sitemap.obj >> $@
908
- echo $(OX)\skins.obj >> $@
909
- echo $(OX)\smtp.obj >> $@
910
- echo $(OX)\sqlcmd.obj >> $@
911
- echo $(OX)\sqlite3.obj >> $@
912
- echo $(OX)\stash.obj >> $@
913
- echo $(OX)\stat.obj >> $@
914
- echo $(OX)\statrep.obj >> $@
915
- echo $(OX)\style.obj >> $@
916
- echo $(OX)\sync.obj >> $@
917
- echo $(OX)\tag.obj >> $@
918
- echo $(OX)\tar.obj >> $@
919
- echo $(OX)\terminal.obj >> $@
920
- echo $(OX)\th.obj >> $@
921
- echo $(OX)\th_lang.obj >> $@
922
- echo $(OX)\th_main.obj >> $@
923
- echo $(OX)\th_tcl.obj >> $@
924
- echo $(OX)\timeline.obj >> $@
925
- echo $(OX)\tkt.obj >> $@
926
- echo $(OX)\tktsetup.obj >> $@
927
- echo $(OX)\undo.obj >> $@
928
- echo $(OX)\unicode.obj >> $@
929
- echo $(OX)\unversioned.obj >> $@
930
- echo $(OX)\update.obj >> $@
931
- echo $(OX)\url.obj >> $@
932
- echo $(OX)\user.obj >> $@
933
- echo $(OX)\utf8.obj >> $@
934
- echo $(OX)\util.obj >> $@
935
- echo $(OX)\verify.obj >> $@
936
- echo $(OX)\vfile.obj >> $@
937
- echo $(OX)\webmail.obj >> $@
938
- echo $(OX)\wiki.obj >> $@
939
- echo $(OX)\wikiformat.obj >> $@
940
- echo $(OX)\winfile.obj >> $@
941
- echo $(OX)\winhttp.obj >> $@
942
- echo $(OX)\wysiwyg.obj >> $@
943
- echo $(OX)\xfer.obj >> $@
944
- echo $(OX)\xfersetup.obj >> $@
945
- echo $(OX)\zip.obj >> $@
826
+"$(APPNAME)" : $(APPTARGETS) "$(OBJDIR)\translate$E" "$(OBJDIR)\mkindex$E" "$(OBJDIR)\codecheck1$E" "$(OX)\headers" $(OBJ) "$(OX)\linkopts"
827
+ "$(OBJDIR)\codecheck1$E" $(SRC)
828
+ link $(LDFLAGS) /OUT:$@ /PDB:$(@D)\ $(LIBDIR) Wsetargv.obj "$(OX)\fossil.res" @"$(OX)\linkopts"
829
+ if exist "$(B)\win\fossil.exe.manifest" \
830
+ $(MTC) -nologo -manifest "$(B)\win\fossil.exe.manifest" -outputresource:$@;1
831
+
832
+"$(OX)\linkopts": "$(B)\win\Makefile.msc"
833
+ echo "$(OX)\add.obj" > $@
834
+ echo "$(OX)\ajax.obj" >> $@
835
+ echo "$(OX)\alerts.obj" >> $@
836
+ echo "$(OX)\allrepo.obj" >> $@
837
+ echo "$(OX)\attach.obj" >> $@
838
+ echo "$(OX)\backlink.obj" >> $@
839
+ echo "$(OX)\backoffice.obj" >> $@
840
+ echo "$(OX)\bag.obj" >> $@
841
+ echo "$(OX)\bisect.obj" >> $@
842
+ echo "$(OX)\blob.obj" >> $@
843
+ echo "$(OX)\branch.obj" >> $@
844
+ echo "$(OX)\browse.obj" >> $@
845
+ echo "$(OX)\builtin.obj" >> $@
846
+ echo "$(OX)\bundle.obj" >> $@
847
+ echo "$(OX)\cache.obj" >> $@
848
+ echo "$(OX)\capabilities.obj" >> $@
849
+ echo "$(OX)\captcha.obj" >> $@
850
+ echo "$(OX)\cgi.obj" >> $@
851
+ echo "$(OX)\checkin.obj" >> $@
852
+ echo "$(OX)\checkout.obj" >> $@
853
+ echo "$(OX)\clearsign.obj" >> $@
854
+ echo "$(OX)\clone.obj" >> $@
855
+ echo "$(OX)\comformat.obj" >> $@
856
+ echo "$(OX)\configure.obj" >> $@
857
+ echo "$(OX)\content.obj" >> $@
858
+ echo "$(OX)\cookies.obj" >> $@
859
+ echo "$(OX)\cson_amalgamation.obj" >> $@
860
+ echo "$(OX)\db.obj" >> $@
861
+ echo "$(OX)\delta.obj" >> $@
862
+ echo "$(OX)\deltacmd.obj" >> $@
863
+ echo "$(OX)\deltafunc.obj" >> $@
864
+ echo "$(OX)\descendants.obj" >> $@
865
+ echo "$(OX)\diff.obj" >> $@
866
+ echo "$(OX)\diffcmd.obj" >> $@
867
+ echo "$(OX)\dispatch.obj" >> $@
868
+ echo "$(OX)\doc.obj" >> $@
869
+ echo "$(OX)\encode.obj" >> $@
870
+ echo "$(OX)\etag.obj" >> $@
871
+ echo "$(OX)\event.obj" >> $@
872
+ echo "$(OX)\export.obj" >> $@
873
+ echo "$(OX)\extcgi.obj" >> $@
874
+ echo "$(OX)\file.obj" >> $@
875
+ echo "$(OX)\fileedit.obj" >> $@
876
+ echo "$(OX)\finfo.obj" >> $@
877
+ echo "$(OX)\foci.obj" >> $@
878
+ echo "$(OX)\forum.obj" >> $@
879
+ echo "$(OX)\fshell.obj" >> $@
880
+ echo "$(OX)\fusefs.obj" >> $@
881
+ echo "$(OX)\fuzz.obj" >> $@
882
+ echo "$(OX)\glob.obj" >> $@
883
+ echo "$(OX)\graph.obj" >> $@
884
+ echo "$(OX)\gzip.obj" >> $@
885
+ echo "$(OX)\hname.obj" >> $@
886
+ echo "$(OX)\http.obj" >> $@
887
+ echo "$(OX)\http_socket.obj" >> $@
888
+ echo "$(OX)\http_ssl.obj" >> $@
889
+ echo "$(OX)\http_transport.obj" >> $@
890
+ echo "$(OX)\import.obj" >> $@
891
+ echo "$(OX)\info.obj" >> $@
892
+ echo "$(OX)\json.obj" >> $@
893
+ echo "$(OX)\json_artifact.obj" >> $@
894
+ echo "$(OX)\json_branch.obj" >> $@
895
+ echo "$(OX)\json_config.obj" >> $@
896
+ echo "$(OX)\json_diff.obj" >> $@
897
+ echo "$(OX)\json_dir.obj" >> $@
898
+ echo "$(OX)\json_finfo.obj" >> $@
899
+ echo "$(OX)\json_login.obj" >> $@
900
+ echo "$(OX)\json_query.obj" >> $@
901
+ echo "$(OX)\json_report.obj" >> $@
902
+ echo "$(OX)\json_status.obj" >> $@
903
+ echo "$(OX)\json_tag.obj" >> $@
904
+ echo "$(OX)\json_timeline.obj" >> $@
905
+ echo "$(OX)\json_user.obj" >> $@
906
+ echo "$(OX)\json_wiki.obj" >> $@
907
+ echo "$(OX)\leaf.obj" >> $@
908
+ echo "$(OX)\loadctrl.obj" >> $@
909
+ echo "$(OX)\login.obj" >> $@
910
+ echo "$(OX)\lookslike.obj" >> $@
911
+ echo "$(OX)\main.obj" >> $@
912
+ echo "$(OX)\manifest.obj" >> $@
913
+ echo "$(OX)\markdown.obj" >> $@
914
+ echo "$(OX)\markdown_html.obj" >> $@
915
+ echo "$(OX)\md5.obj" >> $@
916
+ echo "$(OX)\merge.obj" >> $@
917
+ echo "$(OX)\merge3.obj" >> $@
918
+ echo "$(OX)\moderate.obj" >> $@
919
+ echo "$(OX)\name.obj" >> $@
920
+ echo "$(OX)\path.obj" >> $@
921
+ echo "$(OX)\piechart.obj" >> $@
922
+ echo "$(OX)\pivot.obj" >> $@
923
+ echo "$(OX)\popen.obj" >> $@
924
+ echo "$(OX)\pqueue.obj" >> $@
925
+ echo "$(OX)\printf.obj" >> $@
926
+ echo "$(OX)\publish.obj" >> $@
927
+ echo "$(OX)\purge.obj" >> $@
928
+ echo "$(OX)\rebuild.obj" >> $@
929
+ echo "$(OX)\regexp.obj" >> $@
930
+ echo "$(OX)\repolist.obj" >> $@
931
+ echo "$(OX)\report.obj" >> $@
932
+ echo "$(OX)\rss.obj" >> $@
933
+ echo "$(OX)\schema.obj" >> $@
934
+ echo "$(OX)\search.obj" >> $@
935
+ echo "$(OX)\security_audit.obj" >> $@
936
+ echo "$(OX)\setup.obj" >> $@
937
+ echo "$(OX)\setupuser.obj" >> $@
938
+ echo "$(OX)\sha1.obj" >> $@
939
+ echo "$(OX)\sha1hard.obj" >> $@
940
+ echo "$(OX)\sha3.obj" >> $@
941
+ echo "$(OX)\shell.obj" >> $@
942
+ echo "$(OX)\shun.obj" >> $@
943
+ echo "$(OX)\sitemap.obj" >> $@
944
+ echo "$(OX)\skins.obj" >> $@
945
+ echo "$(OX)\smtp.obj" >> $@
946
+ echo "$(OX)\sqlcmd.obj" >> $@
947
+ echo "$(OX)\sqlite3.obj" >> $@
948
+ echo "$(OX)\stash.obj" >> $@
949
+ echo "$(OX)\stat.obj" >> $@
950
+ echo "$(OX)\statrep.obj" >> $@
951
+ echo "$(OX)\style.obj" >> $@
952
+ echo "$(OX)\sync.obj" >> $@
953
+ echo "$(OX)\tag.obj" >> $@
954
+ echo "$(OX)\tar.obj" >> $@
955
+ echo "$(OX)\terminal.obj" >> $@
956
+ echo "$(OX)\th.obj" >> $@
957
+ echo "$(OX)\th_lang.obj" >> $@
958
+ echo "$(OX)\th_main.obj" >> $@
959
+ echo "$(OX)\th_tcl.obj" >> $@
960
+ echo "$(OX)\timeline.obj" >> $@
961
+ echo "$(OX)\tkt.obj" >> $@
962
+ echo "$(OX)\tktsetup.obj" >> $@
963
+ echo "$(OX)\undo.obj" >> $@
964
+ echo "$(OX)\unicode.obj" >> $@
965
+ echo "$(OX)\unversioned.obj" >> $@
966
+ echo "$(OX)\update.obj" >> $@
967
+ echo "$(OX)\url.obj" >> $@
968
+ echo "$(OX)\user.obj" >> $@
969
+ echo "$(OX)\utf8.obj" >> $@
970
+ echo "$(OX)\util.obj" >> $@
971
+ echo "$(OX)\verify.obj" >> $@
972
+ echo "$(OX)\vfile.obj" >> $@
973
+ echo "$(OX)\webmail.obj" >> $@
974
+ echo "$(OX)\wiki.obj" >> $@
975
+ echo "$(OX)\wikiformat.obj" >> $@
976
+ echo "$(OX)\winfile.obj" >> $@
977
+ echo "$(OX)\winhttp.obj" >> $@
978
+ echo "$(OX)\wysiwyg.obj" >> $@
979
+ echo "$(OX)\xfer.obj" >> $@
980
+ echo "$(OX)\xfersetup.obj" >> $@
981
+ echo "$(OX)\zip.obj" >> $@
946982
!if $(FOSSIL_ENABLE_MINIZ)!=0
947
- echo $(OX)\miniz.obj >> $@
983
+ echo "$(OX)\miniz.obj" >> $@
948984
!endif
949985
echo $(LIBS) >> $@
950986
951
-$(OX):
952
- @-mkdir $@
953
-
954
-translate$E: $(SRCDIR)\translate.c
955
- $(BCC) $**
956
-
957
-makeheaders$E: $(SRCDIR)\makeheaders.c
958
- $(BCC) $**
959
-
960
-mkindex$E: $(SRCDIR)\mkindex.c
961
- $(BCC) $**
962
-
963
-mkbuiltin$E: $(SRCDIR)\mkbuiltin.c
964
- $(BCC) $**
965
-
966
-mkversion$E: $(SRCDIR)\mkversion.c
967
- $(BCC) $**
968
-
969
-codecheck1$E: $(SRCDIR)\codecheck1.c
970
- $(BCC) $**
987
+"$(OBJDIR)\translate$E": "$(SRCDIR)\translate.c"
988
+ $(BCC) /Fe$@ /Fo$(@D)\ /Fd$(@D)\ $**
989
+
990
+"$(OBJDIR)\makeheaders$E": "$(SRCDIR)\makeheaders.c"
991
+ $(BCC) /Fe$@ /Fo$(@D)\ /Fd$(@D)\ $**
992
+
993
+"$(OBJDIR)\mkindex$E": "$(SRCDIR)\mkindex.c"
994
+ $(BCC) /Fe$@ /Fo$(@D)\ /Fd$(@D)\ $**
995
+
996
+"$(OBJDIR)\mkbuiltin$E": "$(SRCDIR)\mkbuiltin.c"
997
+ $(BCC) /Fe$@ /Fo$(@D)\ /Fd$(@D)\ $**
998
+
999
+"$(OBJDIR)\mkversion$E": "$(SRCDIR)\mkversion.c"
1000
+ $(BCC) /Fe$@ /Fo$(@D)\ /Fd$(@D)\ $**
1001
+
1002
+"$(OBJDIR)\codecheck1$E": "$(SRCDIR)\codecheck1.c"
1003
+ $(BCC) /Fe$@ /Fo$(@D)\ /Fd$(@D)\ $**
9711004
9721005
!if $(USE_SEE)!=0
9731006
SEE_FLAGS = /DSQLITE_HAS_CODEC=1 /DSQLITE_SHELL_DBKEY_PROC=fossil_key
9741007
SQLITE3_SHELL_SRC = $(SRCDIR)\shell-see.c
9751008
SQLITE3_SRC = $(SRCDIR)\sqlite3-see.c
@@ -977,1082 +1010,1195 @@
9771010
SEE_FLAGS =
9781011
SQLITE3_SHELL_SRC = $(SRCDIR)\shell.c
9791012
SQLITE3_SRC = $(SRCDIR)\sqlite3.c
9801013
!endif
9811014
982
-$(OX)\shell$O : $(SQLITE3_SHELL_SRC) $B\win\Makefile.msc
983
- $(TCC) /Fo$@ $(SHELL_OPTIONS) $(SQLITE_OPTIONS) $(SHELL_CFLAGS) $(SEE_FLAGS) -c $(SQLITE3_SHELL_SRC)
984
-
985
-$(OX)\sqlite3$O : $(SQLITE3_SRC) $B\win\Makefile.msc
986
- $(TCC) /Fo$@ -c $(SQLITE_OPTIONS) $(SQLITE_CFLAGS) $(SEE_FLAGS) $(SQLITE3_SRC)
987
-
988
-$(OX)\th$O : $(SRCDIR)\th.c
989
- $(TCC) /Fo$@ -c $**
990
-
991
-$(OX)\th_lang$O : $(SRCDIR)\th_lang.c
992
- $(TCC) /Fo$@ -c $**
993
-
994
-$(OX)\th_tcl$O : $(SRCDIR)\th_tcl.c
995
- $(TCC) /Fo$@ -c $**
996
-
997
-$(OX)\miniz$O : $(SRCDIR)\miniz.c
998
- $(TCC) /Fo$@ -c $(MINIZ_OPTIONS) $(SRCDIR)\miniz.c
999
-
1000
-VERSION.h : mkversion$E $B\manifest.uuid $B\manifest $B\VERSION
1001
- $** > $@
1002
-
1003
-$(OX)\cson_amalgamation$O : $(SRCDIR)\cson_amalgamation.c
1004
- $(TCC) /Fo$@ /c $**
1005
-
1006
-page_index.h: mkindex$E $(SRC)
1007
- $** > $@
1008
-
1009
-builtin_data.h: mkbuiltin$E $(EXTRA_FILES)
1010
- mkbuiltin$E --prefix $(SRCDIR)/ $(EXTRA_FILES) > $@
1011
-
1012
-clean:
1013
- -del $(OX)\*.obj 2>NUL
1014
- -del *.obj 2>NUL
1015
- -del *_.c 2>NUL
1016
- -del *.h 2>NUL
1017
- -del *.ilk 2>NUL
1018
- -del *.map 2>NUL
1019
- -del *.res 2>NUL
1020
- -del headers 2>NUL
1021
- -del linkopts 2>NUL
1022
- -del vc*.pdb 2>NUL
1023
-
1024
-realclean: clean
1025
- -del $(APPNAME) 2>NUL
1026
- -del $(PDBNAME) 2>NUL
1027
- -del translate$E 2>NUL
1028
- -del translate$P 2>NUL
1029
- -del mkindex$E 2>NUL
1030
- -del mkindex$P 2>NUL
1031
- -del makeheaders$E 2>NUL
1032
- -del makeheaders$P 2>NUL
1033
- -del mkversion$E 2>NUL
1034
- -del mkversion$P 2>NUL
1035
- -del codecheck1$E 2>NUL
1036
- -del codecheck1$P 2>NUL
1037
- -del mkbuiltin$E 2>NUL
1038
- -del mkbuiltin$P 2>NUL
1039
-
1040
-$(OBJDIR)\json$O : $(SRCDIR)\json_detail.h
1041
-$(OBJDIR)\json_artifact$O : $(SRCDIR)\json_detail.h
1042
-$(OBJDIR)\json_branch$O : $(SRCDIR)\json_detail.h
1043
-$(OBJDIR)\json_config$O : $(SRCDIR)\json_detail.h
1044
-$(OBJDIR)\json_diff$O : $(SRCDIR)\json_detail.h
1045
-$(OBJDIR)\json_dir$O : $(SRCDIR)\json_detail.h
1046
-$(OBJDIR)\json_finfo$O : $(SRCDIR)\json_detail.h
1047
-$(OBJDIR)\json_login$O : $(SRCDIR)\json_detail.h
1048
-$(OBJDIR)\json_query$O : $(SRCDIR)\json_detail.h
1049
-$(OBJDIR)\json_report$O : $(SRCDIR)\json_detail.h
1050
-$(OBJDIR)\json_status$O : $(SRCDIR)\json_detail.h
1051
-$(OBJDIR)\json_tag$O : $(SRCDIR)\json_detail.h
1052
-$(OBJDIR)\json_timeline$O : $(SRCDIR)\json_detail.h
1053
-$(OBJDIR)\json_user$O : $(SRCDIR)\json_detail.h
1054
-$(OBJDIR)\json_wiki$O : $(SRCDIR)\json_detail.h
1055
-
1056
-$(OX)\add$O : add_.c add.h
1057
- $(TCC) /Fo$@ -c add_.c
1058
-
1059
-add_.c : $(SRCDIR)\add.c
1060
- translate$E $** > $@
1061
-
1062
-$(OX)\alerts$O : alerts_.c alerts.h
1063
- $(TCC) /Fo$@ -c alerts_.c
1064
-
1065
-alerts_.c : $(SRCDIR)\alerts.c
1066
- translate$E $** > $@
1067
-
1068
-$(OX)\allrepo$O : allrepo_.c allrepo.h
1069
- $(TCC) /Fo$@ -c allrepo_.c
1070
-
1071
-allrepo_.c : $(SRCDIR)\allrepo.c
1072
- translate$E $** > $@
1073
-
1074
-$(OX)\attach$O : attach_.c attach.h
1075
- $(TCC) /Fo$@ -c attach_.c
1076
-
1077
-attach_.c : $(SRCDIR)\attach.c
1078
- translate$E $** > $@
1079
-
1080
-$(OX)\backlink$O : backlink_.c backlink.h
1081
- $(TCC) /Fo$@ -c backlink_.c
1082
-
1083
-backlink_.c : $(SRCDIR)\backlink.c
1084
- translate$E $** > $@
1085
-
1086
-$(OX)\backoffice$O : backoffice_.c backoffice.h
1087
- $(TCC) /Fo$@ -c backoffice_.c
1088
-
1089
-backoffice_.c : $(SRCDIR)\backoffice.c
1090
- translate$E $** > $@
1091
-
1092
-$(OX)\bag$O : bag_.c bag.h
1093
- $(TCC) /Fo$@ -c bag_.c
1094
-
1095
-bag_.c : $(SRCDIR)\bag.c
1096
- translate$E $** > $@
1097
-
1098
-$(OX)\bisect$O : bisect_.c bisect.h
1099
- $(TCC) /Fo$@ -c bisect_.c
1100
-
1101
-bisect_.c : $(SRCDIR)\bisect.c
1102
- translate$E $** > $@
1103
-
1104
-$(OX)\blob$O : blob_.c blob.h
1105
- $(TCC) /Fo$@ -c blob_.c
1106
-
1107
-blob_.c : $(SRCDIR)\blob.c
1108
- translate$E $** > $@
1109
-
1110
-$(OX)\branch$O : branch_.c branch.h
1111
- $(TCC) /Fo$@ -c branch_.c
1112
-
1113
-branch_.c : $(SRCDIR)\branch.c
1114
- translate$E $** > $@
1115
-
1116
-$(OX)\browse$O : browse_.c browse.h
1117
- $(TCC) /Fo$@ -c browse_.c
1118
-
1119
-browse_.c : $(SRCDIR)\browse.c
1120
- translate$E $** > $@
1121
-
1122
-$(OX)\builtin$O : builtin_.c builtin.h
1123
- $(TCC) /Fo$@ -c builtin_.c
1124
-
1125
-builtin_.c : $(SRCDIR)\builtin.c
1126
- translate$E $** > $@
1127
-
1128
-$(OX)\bundle$O : bundle_.c bundle.h
1129
- $(TCC) /Fo$@ -c bundle_.c
1130
-
1131
-bundle_.c : $(SRCDIR)\bundle.c
1132
- translate$E $** > $@
1133
-
1134
-$(OX)\cache$O : cache_.c cache.h
1135
- $(TCC) /Fo$@ -c cache_.c
1136
-
1137
-cache_.c : $(SRCDIR)\cache.c
1138
- translate$E $** > $@
1139
-
1140
-$(OX)\capabilities$O : capabilities_.c capabilities.h
1141
- $(TCC) /Fo$@ -c capabilities_.c
1142
-
1143
-capabilities_.c : $(SRCDIR)\capabilities.c
1144
- translate$E $** > $@
1145
-
1146
-$(OX)\captcha$O : captcha_.c captcha.h
1147
- $(TCC) /Fo$@ -c captcha_.c
1148
-
1149
-captcha_.c : $(SRCDIR)\captcha.c
1150
- translate$E $** > $@
1151
-
1152
-$(OX)\cgi$O : cgi_.c cgi.h
1153
- $(TCC) /Fo$@ -c cgi_.c
1154
-
1155
-cgi_.c : $(SRCDIR)\cgi.c
1156
- translate$E $** > $@
1157
-
1158
-$(OX)\checkin$O : checkin_.c checkin.h
1159
- $(TCC) /Fo$@ -c checkin_.c
1160
-
1161
-checkin_.c : $(SRCDIR)\checkin.c
1162
- translate$E $** > $@
1163
-
1164
-$(OX)\checkout$O : checkout_.c checkout.h
1165
- $(TCC) /Fo$@ -c checkout_.c
1166
-
1167
-checkout_.c : $(SRCDIR)\checkout.c
1168
- translate$E $** > $@
1169
-
1170
-$(OX)\clearsign$O : clearsign_.c clearsign.h
1171
- $(TCC) /Fo$@ -c clearsign_.c
1172
-
1173
-clearsign_.c : $(SRCDIR)\clearsign.c
1174
- translate$E $** > $@
1175
-
1176
-$(OX)\clone$O : clone_.c clone.h
1177
- $(TCC) /Fo$@ -c clone_.c
1178
-
1179
-clone_.c : $(SRCDIR)\clone.c
1180
- translate$E $** > $@
1181
-
1182
-$(OX)\comformat$O : comformat_.c comformat.h
1183
- $(TCC) /Fo$@ -c comformat_.c
1184
-
1185
-comformat_.c : $(SRCDIR)\comformat.c
1186
- translate$E $** > $@
1187
-
1188
-$(OX)\configure$O : configure_.c configure.h
1189
- $(TCC) /Fo$@ -c configure_.c
1190
-
1191
-configure_.c : $(SRCDIR)\configure.c
1192
- translate$E $** > $@
1193
-
1194
-$(OX)\content$O : content_.c content.h
1195
- $(TCC) /Fo$@ -c content_.c
1196
-
1197
-content_.c : $(SRCDIR)\content.c
1198
- translate$E $** > $@
1199
-
1200
-$(OX)\cookies$O : cookies_.c cookies.h
1201
- $(TCC) /Fo$@ -c cookies_.c
1202
-
1203
-cookies_.c : $(SRCDIR)\cookies.c
1204
- translate$E $** > $@
1205
-
1206
-$(OX)\db$O : db_.c db.h
1207
- $(TCC) /Fo$@ -c db_.c
1208
-
1209
-db_.c : $(SRCDIR)\db.c
1210
- translate$E $** > $@
1211
-
1212
-$(OX)\delta$O : delta_.c delta.h
1213
- $(TCC) /Fo$@ -c delta_.c
1214
-
1215
-delta_.c : $(SRCDIR)\delta.c
1216
- translate$E $** > $@
1217
-
1218
-$(OX)\deltacmd$O : deltacmd_.c deltacmd.h
1219
- $(TCC) /Fo$@ -c deltacmd_.c
1220
-
1221
-deltacmd_.c : $(SRCDIR)\deltacmd.c
1222
- translate$E $** > $@
1223
-
1224
-$(OX)\deltafunc$O : deltafunc_.c deltafunc.h
1225
- $(TCC) /Fo$@ -c deltafunc_.c
1226
-
1227
-deltafunc_.c : $(SRCDIR)\deltafunc.c
1228
- translate$E $** > $@
1229
-
1230
-$(OX)\descendants$O : descendants_.c descendants.h
1231
- $(TCC) /Fo$@ -c descendants_.c
1232
-
1233
-descendants_.c : $(SRCDIR)\descendants.c
1234
- translate$E $** > $@
1235
-
1236
-$(OX)\diff$O : diff_.c diff.h
1237
- $(TCC) /Fo$@ -c diff_.c
1238
-
1239
-diff_.c : $(SRCDIR)\diff.c
1240
- translate$E $** > $@
1241
-
1242
-$(OX)\diffcmd$O : diffcmd_.c diffcmd.h
1243
- $(TCC) /Fo$@ -c diffcmd_.c
1244
-
1245
-diffcmd_.c : $(SRCDIR)\diffcmd.c
1246
- translate$E $** > $@
1247
-
1248
-$(OX)\dispatch$O : dispatch_.c dispatch.h
1249
- $(TCC) /Fo$@ -c dispatch_.c
1250
-
1251
-dispatch_.c : $(SRCDIR)\dispatch.c
1252
- translate$E $** > $@
1253
-
1254
-$(OX)\doc$O : doc_.c doc.h
1255
- $(TCC) /Fo$@ -c doc_.c
1256
-
1257
-doc_.c : $(SRCDIR)\doc.c
1258
- translate$E $** > $@
1259
-
1260
-$(OX)\encode$O : encode_.c encode.h
1261
- $(TCC) /Fo$@ -c encode_.c
1262
-
1263
-encode_.c : $(SRCDIR)\encode.c
1264
- translate$E $** > $@
1265
-
1266
-$(OX)\etag$O : etag_.c etag.h
1267
- $(TCC) /Fo$@ -c etag_.c
1268
-
1269
-etag_.c : $(SRCDIR)\etag.c
1270
- translate$E $** > $@
1271
-
1272
-$(OX)\event$O : event_.c event.h
1273
- $(TCC) /Fo$@ -c event_.c
1274
-
1275
-event_.c : $(SRCDIR)\event.c
1276
- translate$E $** > $@
1277
-
1278
-$(OX)\export$O : export_.c export.h
1279
- $(TCC) /Fo$@ -c export_.c
1280
-
1281
-export_.c : $(SRCDIR)\export.c
1282
- translate$E $** > $@
1283
-
1284
-$(OX)\extcgi$O : extcgi_.c extcgi.h
1285
- $(TCC) /Fo$@ -c extcgi_.c
1286
-
1287
-extcgi_.c : $(SRCDIR)\extcgi.c
1288
- translate$E $** > $@
1289
-
1290
-$(OX)\file$O : file_.c file.h
1291
- $(TCC) /Fo$@ -c file_.c
1292
-
1293
-file_.c : $(SRCDIR)\file.c
1294
- translate$E $** > $@
1295
-
1296
-$(OX)\fileedit$O : fileedit_.c fileedit.h
1297
- $(TCC) /Fo$@ -c fileedit_.c
1298
-
1299
-fileedit_.c : $(SRCDIR)\fileedit.c
1300
- translate$E $** > $@
1301
-
1302
-$(OX)\finfo$O : finfo_.c finfo.h
1303
- $(TCC) /Fo$@ -c finfo_.c
1304
-
1305
-finfo_.c : $(SRCDIR)\finfo.c
1306
- translate$E $** > $@
1307
-
1308
-$(OX)\foci$O : foci_.c foci.h
1309
- $(TCC) /Fo$@ -c foci_.c
1310
-
1311
-foci_.c : $(SRCDIR)\foci.c
1312
- translate$E $** > $@
1313
-
1314
-$(OX)\forum$O : forum_.c forum.h
1315
- $(TCC) /Fo$@ -c forum_.c
1316
-
1317
-forum_.c : $(SRCDIR)\forum.c
1318
- translate$E $** > $@
1319
-
1320
-$(OX)\fshell$O : fshell_.c fshell.h
1321
- $(TCC) /Fo$@ -c fshell_.c
1322
-
1323
-fshell_.c : $(SRCDIR)\fshell.c
1324
- translate$E $** > $@
1325
-
1326
-$(OX)\fusefs$O : fusefs_.c fusefs.h
1327
- $(TCC) /Fo$@ -c fusefs_.c
1328
-
1329
-fusefs_.c : $(SRCDIR)\fusefs.c
1330
- translate$E $** > $@
1331
-
1332
-$(OX)\fuzz$O : fuzz_.c fuzz.h
1333
- $(TCC) /Fo$@ -c fuzz_.c
1334
-
1335
-fuzz_.c : $(SRCDIR)\fuzz.c
1336
- translate$E $** > $@
1337
-
1338
-$(OX)\glob$O : glob_.c glob.h
1339
- $(TCC) /Fo$@ -c glob_.c
1340
-
1341
-glob_.c : $(SRCDIR)\glob.c
1342
- translate$E $** > $@
1343
-
1344
-$(OX)\graph$O : graph_.c graph.h
1345
- $(TCC) /Fo$@ -c graph_.c
1346
-
1347
-graph_.c : $(SRCDIR)\graph.c
1348
- translate$E $** > $@
1349
-
1350
-$(OX)\gzip$O : gzip_.c gzip.h
1351
- $(TCC) /Fo$@ -c gzip_.c
1352
-
1353
-gzip_.c : $(SRCDIR)\gzip.c
1354
- translate$E $** > $@
1355
-
1356
-$(OX)\hname$O : hname_.c hname.h
1357
- $(TCC) /Fo$@ -c hname_.c
1358
-
1359
-hname_.c : $(SRCDIR)\hname.c
1360
- translate$E $** > $@
1361
-
1362
-$(OX)\http$O : http_.c http.h
1363
- $(TCC) /Fo$@ -c http_.c
1364
-
1365
-http_.c : $(SRCDIR)\http.c
1366
- translate$E $** > $@
1367
-
1368
-$(OX)\http_socket$O : http_socket_.c http_socket.h
1369
- $(TCC) /Fo$@ -c http_socket_.c
1370
-
1371
-http_socket_.c : $(SRCDIR)\http_socket.c
1372
- translate$E $** > $@
1373
-
1374
-$(OX)\http_ssl$O : http_ssl_.c http_ssl.h
1375
- $(TCC) /Fo$@ -c http_ssl_.c
1376
-
1377
-http_ssl_.c : $(SRCDIR)\http_ssl.c
1378
- translate$E $** > $@
1379
-
1380
-$(OX)\http_transport$O : http_transport_.c http_transport.h
1381
- $(TCC) /Fo$@ -c http_transport_.c
1382
-
1383
-http_transport_.c : $(SRCDIR)\http_transport.c
1384
- translate$E $** > $@
1385
-
1386
-$(OX)\import$O : import_.c import.h
1387
- $(TCC) /Fo$@ -c import_.c
1388
-
1389
-import_.c : $(SRCDIR)\import.c
1390
- translate$E $** > $@
1391
-
1392
-$(OX)\info$O : info_.c info.h
1393
- $(TCC) /Fo$@ -c info_.c
1394
-
1395
-info_.c : $(SRCDIR)\info.c
1396
- translate$E $** > $@
1397
-
1398
-$(OX)\json$O : json_.c json.h
1399
- $(TCC) /Fo$@ -c json_.c
1400
-
1401
-json_.c : $(SRCDIR)\json.c
1402
- translate$E $** > $@
1403
-
1404
-$(OX)\json_artifact$O : json_artifact_.c json_artifact.h
1405
- $(TCC) /Fo$@ -c json_artifact_.c
1406
-
1407
-json_artifact_.c : $(SRCDIR)\json_artifact.c
1408
- translate$E $** > $@
1409
-
1410
-$(OX)\json_branch$O : json_branch_.c json_branch.h
1411
- $(TCC) /Fo$@ -c json_branch_.c
1412
-
1413
-json_branch_.c : $(SRCDIR)\json_branch.c
1414
- translate$E $** > $@
1415
-
1416
-$(OX)\json_config$O : json_config_.c json_config.h
1417
- $(TCC) /Fo$@ -c json_config_.c
1418
-
1419
-json_config_.c : $(SRCDIR)\json_config.c
1420
- translate$E $** > $@
1421
-
1422
-$(OX)\json_diff$O : json_diff_.c json_diff.h
1423
- $(TCC) /Fo$@ -c json_diff_.c
1424
-
1425
-json_diff_.c : $(SRCDIR)\json_diff.c
1426
- translate$E $** > $@
1427
-
1428
-$(OX)\json_dir$O : json_dir_.c json_dir.h
1429
- $(TCC) /Fo$@ -c json_dir_.c
1430
-
1431
-json_dir_.c : $(SRCDIR)\json_dir.c
1432
- translate$E $** > $@
1433
-
1434
-$(OX)\json_finfo$O : json_finfo_.c json_finfo.h
1435
- $(TCC) /Fo$@ -c json_finfo_.c
1436
-
1437
-json_finfo_.c : $(SRCDIR)\json_finfo.c
1438
- translate$E $** > $@
1439
-
1440
-$(OX)\json_login$O : json_login_.c json_login.h
1441
- $(TCC) /Fo$@ -c json_login_.c
1442
-
1443
-json_login_.c : $(SRCDIR)\json_login.c
1444
- translate$E $** > $@
1445
-
1446
-$(OX)\json_query$O : json_query_.c json_query.h
1447
- $(TCC) /Fo$@ -c json_query_.c
1448
-
1449
-json_query_.c : $(SRCDIR)\json_query.c
1450
- translate$E $** > $@
1451
-
1452
-$(OX)\json_report$O : json_report_.c json_report.h
1453
- $(TCC) /Fo$@ -c json_report_.c
1454
-
1455
-json_report_.c : $(SRCDIR)\json_report.c
1456
- translate$E $** > $@
1457
-
1458
-$(OX)\json_status$O : json_status_.c json_status.h
1459
- $(TCC) /Fo$@ -c json_status_.c
1460
-
1461
-json_status_.c : $(SRCDIR)\json_status.c
1462
- translate$E $** > $@
1463
-
1464
-$(OX)\json_tag$O : json_tag_.c json_tag.h
1465
- $(TCC) /Fo$@ -c json_tag_.c
1466
-
1467
-json_tag_.c : $(SRCDIR)\json_tag.c
1468
- translate$E $** > $@
1469
-
1470
-$(OX)\json_timeline$O : json_timeline_.c json_timeline.h
1471
- $(TCC) /Fo$@ -c json_timeline_.c
1472
-
1473
-json_timeline_.c : $(SRCDIR)\json_timeline.c
1474
- translate$E $** > $@
1475
-
1476
-$(OX)\json_user$O : json_user_.c json_user.h
1477
- $(TCC) /Fo$@ -c json_user_.c
1478
-
1479
-json_user_.c : $(SRCDIR)\json_user.c
1480
- translate$E $** > $@
1481
-
1482
-$(OX)\json_wiki$O : json_wiki_.c json_wiki.h
1483
- $(TCC) /Fo$@ -c json_wiki_.c
1484
-
1485
-json_wiki_.c : $(SRCDIR)\json_wiki.c
1486
- translate$E $** > $@
1487
-
1488
-$(OX)\leaf$O : leaf_.c leaf.h
1489
- $(TCC) /Fo$@ -c leaf_.c
1490
-
1491
-leaf_.c : $(SRCDIR)\leaf.c
1492
- translate$E $** > $@
1493
-
1494
-$(OX)\loadctrl$O : loadctrl_.c loadctrl.h
1495
- $(TCC) /Fo$@ -c loadctrl_.c
1496
-
1497
-loadctrl_.c : $(SRCDIR)\loadctrl.c
1498
- translate$E $** > $@
1499
-
1500
-$(OX)\login$O : login_.c login.h
1501
- $(TCC) /Fo$@ -c login_.c
1502
-
1503
-login_.c : $(SRCDIR)\login.c
1504
- translate$E $** > $@
1505
-
1506
-$(OX)\lookslike$O : lookslike_.c lookslike.h
1507
- $(TCC) /Fo$@ -c lookslike_.c
1508
-
1509
-lookslike_.c : $(SRCDIR)\lookslike.c
1510
- translate$E $** > $@
1511
-
1512
-$(OX)\main$O : main_.c main.h
1513
- $(TCC) /Fo$@ -c main_.c
1514
-
1515
-main_.c : $(SRCDIR)\main.c
1516
- translate$E $** > $@
1517
-
1518
-$(OX)\manifest$O : manifest_.c manifest.h
1519
- $(TCC) /Fo$@ -c manifest_.c
1520
-
1521
-manifest_.c : $(SRCDIR)\manifest.c
1522
- translate$E $** > $@
1523
-
1524
-$(OX)\markdown$O : markdown_.c markdown.h
1525
- $(TCC) /Fo$@ -c markdown_.c
1526
-
1527
-markdown_.c : $(SRCDIR)\markdown.c
1528
- translate$E $** > $@
1529
-
1530
-$(OX)\markdown_html$O : markdown_html_.c markdown_html.h
1531
- $(TCC) /Fo$@ -c markdown_html_.c
1532
-
1533
-markdown_html_.c : $(SRCDIR)\markdown_html.c
1534
- translate$E $** > $@
1535
-
1536
-$(OX)\md5$O : md5_.c md5.h
1537
- $(TCC) /Fo$@ -c md5_.c
1538
-
1539
-md5_.c : $(SRCDIR)\md5.c
1540
- translate$E $** > $@
1541
-
1542
-$(OX)\merge$O : merge_.c merge.h
1543
- $(TCC) /Fo$@ -c merge_.c
1544
-
1545
-merge_.c : $(SRCDIR)\merge.c
1546
- translate$E $** > $@
1547
-
1548
-$(OX)\merge3$O : merge3_.c merge3.h
1549
- $(TCC) /Fo$@ -c merge3_.c
1550
-
1551
-merge3_.c : $(SRCDIR)\merge3.c
1552
- translate$E $** > $@
1553
-
1554
-$(OX)\moderate$O : moderate_.c moderate.h
1555
- $(TCC) /Fo$@ -c moderate_.c
1556
-
1557
-moderate_.c : $(SRCDIR)\moderate.c
1558
- translate$E $** > $@
1559
-
1560
-$(OX)\name$O : name_.c name.h
1561
- $(TCC) /Fo$@ -c name_.c
1562
-
1563
-name_.c : $(SRCDIR)\name.c
1564
- translate$E $** > $@
1565
-
1566
-$(OX)\path$O : path_.c path.h
1567
- $(TCC) /Fo$@ -c path_.c
1568
-
1569
-path_.c : $(SRCDIR)\path.c
1570
- translate$E $** > $@
1571
-
1572
-$(OX)\piechart$O : piechart_.c piechart.h
1573
- $(TCC) /Fo$@ -c piechart_.c
1574
-
1575
-piechart_.c : $(SRCDIR)\piechart.c
1576
- translate$E $** > $@
1577
-
1578
-$(OX)\pivot$O : pivot_.c pivot.h
1579
- $(TCC) /Fo$@ -c pivot_.c
1580
-
1581
-pivot_.c : $(SRCDIR)\pivot.c
1582
- translate$E $** > $@
1583
-
1584
-$(OX)\popen$O : popen_.c popen.h
1585
- $(TCC) /Fo$@ -c popen_.c
1586
-
1587
-popen_.c : $(SRCDIR)\popen.c
1588
- translate$E $** > $@
1589
-
1590
-$(OX)\pqueue$O : pqueue_.c pqueue.h
1591
- $(TCC) /Fo$@ -c pqueue_.c
1592
-
1593
-pqueue_.c : $(SRCDIR)\pqueue.c
1594
- translate$E $** > $@
1595
-
1596
-$(OX)\printf$O : printf_.c printf.h
1597
- $(TCC) /Fo$@ -c printf_.c
1598
-
1599
-printf_.c : $(SRCDIR)\printf.c
1600
- translate$E $** > $@
1601
-
1602
-$(OX)\publish$O : publish_.c publish.h
1603
- $(TCC) /Fo$@ -c publish_.c
1604
-
1605
-publish_.c : $(SRCDIR)\publish.c
1606
- translate$E $** > $@
1607
-
1608
-$(OX)\purge$O : purge_.c purge.h
1609
- $(TCC) /Fo$@ -c purge_.c
1610
-
1611
-purge_.c : $(SRCDIR)\purge.c
1612
- translate$E $** > $@
1613
-
1614
-$(OX)\rebuild$O : rebuild_.c rebuild.h
1615
- $(TCC) /Fo$@ -c rebuild_.c
1616
-
1617
-rebuild_.c : $(SRCDIR)\rebuild.c
1618
- translate$E $** > $@
1619
-
1620
-$(OX)\regexp$O : regexp_.c regexp.h
1621
- $(TCC) /Fo$@ -c regexp_.c
1622
-
1623
-regexp_.c : $(SRCDIR)\regexp.c
1624
- translate$E $** > $@
1625
-
1626
-$(OX)\repolist$O : repolist_.c repolist.h
1627
- $(TCC) /Fo$@ -c repolist_.c
1628
-
1629
-repolist_.c : $(SRCDIR)\repolist.c
1630
- translate$E $** > $@
1631
-
1632
-$(OX)\report$O : report_.c report.h
1633
- $(TCC) /Fo$@ -c report_.c
1634
-
1635
-report_.c : $(SRCDIR)\report.c
1636
- translate$E $** > $@
1637
-
1638
-$(OX)\rss$O : rss_.c rss.h
1639
- $(TCC) /Fo$@ -c rss_.c
1640
-
1641
-rss_.c : $(SRCDIR)\rss.c
1642
- translate$E $** > $@
1643
-
1644
-$(OX)\schema$O : schema_.c schema.h
1645
- $(TCC) /Fo$@ -c schema_.c
1646
-
1647
-schema_.c : $(SRCDIR)\schema.c
1648
- translate$E $** > $@
1649
-
1650
-$(OX)\search$O : search_.c search.h
1651
- $(TCC) /Fo$@ -c search_.c
1652
-
1653
-search_.c : $(SRCDIR)\search.c
1654
- translate$E $** > $@
1655
-
1656
-$(OX)\security_audit$O : security_audit_.c security_audit.h
1657
- $(TCC) /Fo$@ -c security_audit_.c
1658
-
1659
-security_audit_.c : $(SRCDIR)\security_audit.c
1660
- translate$E $** > $@
1661
-
1662
-$(OX)\setup$O : setup_.c setup.h
1663
- $(TCC) /Fo$@ -c setup_.c
1664
-
1665
-setup_.c : $(SRCDIR)\setup.c
1666
- translate$E $** > $@
1667
-
1668
-$(OX)\setupuser$O : setupuser_.c setupuser.h
1669
- $(TCC) /Fo$@ -c setupuser_.c
1670
-
1671
-setupuser_.c : $(SRCDIR)\setupuser.c
1672
- translate$E $** > $@
1673
-
1674
-$(OX)\sha1$O : sha1_.c sha1.h
1675
- $(TCC) /Fo$@ -c sha1_.c
1676
-
1677
-sha1_.c : $(SRCDIR)\sha1.c
1678
- translate$E $** > $@
1679
-
1680
-$(OX)\sha1hard$O : sha1hard_.c sha1hard.h
1681
- $(TCC) /Fo$@ -c sha1hard_.c
1682
-
1683
-sha1hard_.c : $(SRCDIR)\sha1hard.c
1684
- translate$E $** > $@
1685
-
1686
-$(OX)\sha3$O : sha3_.c sha3.h
1687
- $(TCC) /Fo$@ -c sha3_.c
1688
-
1689
-sha3_.c : $(SRCDIR)\sha3.c
1690
- translate$E $** > $@
1691
-
1692
-$(OX)\shun$O : shun_.c shun.h
1693
- $(TCC) /Fo$@ -c shun_.c
1694
-
1695
-shun_.c : $(SRCDIR)\shun.c
1696
- translate$E $** > $@
1697
-
1698
-$(OX)\sitemap$O : sitemap_.c sitemap.h
1699
- $(TCC) /Fo$@ -c sitemap_.c
1700
-
1701
-sitemap_.c : $(SRCDIR)\sitemap.c
1702
- translate$E $** > $@
1703
-
1704
-$(OX)\skins$O : skins_.c skins.h
1705
- $(TCC) /Fo$@ -c skins_.c
1706
-
1707
-skins_.c : $(SRCDIR)\skins.c
1708
- translate$E $** > $@
1709
-
1710
-$(OX)\smtp$O : smtp_.c smtp.h
1711
- $(TCC) /Fo$@ -c smtp_.c
1712
-
1713
-smtp_.c : $(SRCDIR)\smtp.c
1714
- translate$E $** > $@
1715
-
1716
-$(OX)\sqlcmd$O : sqlcmd_.c sqlcmd.h
1717
- $(TCC) /Fo$@ -c sqlcmd_.c
1718
-
1719
-sqlcmd_.c : $(SRCDIR)\sqlcmd.c
1720
- translate$E $** > $@
1721
-
1722
-$(OX)\stash$O : stash_.c stash.h
1723
- $(TCC) /Fo$@ -c stash_.c
1724
-
1725
-stash_.c : $(SRCDIR)\stash.c
1726
- translate$E $** > $@
1727
-
1728
-$(OX)\stat$O : stat_.c stat.h
1729
- $(TCC) /Fo$@ -c stat_.c
1730
-
1731
-stat_.c : $(SRCDIR)\stat.c
1732
- translate$E $** > $@
1733
-
1734
-$(OX)\statrep$O : statrep_.c statrep.h
1735
- $(TCC) /Fo$@ -c statrep_.c
1736
-
1737
-statrep_.c : $(SRCDIR)\statrep.c
1738
- translate$E $** > $@
1739
-
1740
-$(OX)\style$O : style_.c style.h
1741
- $(TCC) /Fo$@ -c style_.c
1742
-
1743
-style_.c : $(SRCDIR)\style.c
1744
- translate$E $** > $@
1745
-
1746
-$(OX)\sync$O : sync_.c sync.h
1747
- $(TCC) /Fo$@ -c sync_.c
1748
-
1749
-sync_.c : $(SRCDIR)\sync.c
1750
- translate$E $** > $@
1751
-
1752
-$(OX)\tag$O : tag_.c tag.h
1753
- $(TCC) /Fo$@ -c tag_.c
1754
-
1755
-tag_.c : $(SRCDIR)\tag.c
1756
- translate$E $** > $@
1757
-
1758
-$(OX)\tar$O : tar_.c tar.h
1759
- $(TCC) /Fo$@ -c tar_.c
1760
-
1761
-tar_.c : $(SRCDIR)\tar.c
1762
- translate$E $** > $@
1763
-
1764
-$(OX)\terminal$O : terminal_.c terminal.h
1765
- $(TCC) /Fo$@ -c terminal_.c
1766
-
1767
-terminal_.c : $(SRCDIR)\terminal.c
1768
- translate$E $** > $@
1769
-
1770
-$(OX)\th_main$O : th_main_.c th_main.h
1771
- $(TCC) /Fo$@ -c th_main_.c
1772
-
1773
-th_main_.c : $(SRCDIR)\th_main.c
1774
- translate$E $** > $@
1775
-
1776
-$(OX)\timeline$O : timeline_.c timeline.h
1777
- $(TCC) /Fo$@ -c timeline_.c
1778
-
1779
-timeline_.c : $(SRCDIR)\timeline.c
1780
- translate$E $** > $@
1781
-
1782
-$(OX)\tkt$O : tkt_.c tkt.h
1783
- $(TCC) /Fo$@ -c tkt_.c
1784
-
1785
-tkt_.c : $(SRCDIR)\tkt.c
1786
- translate$E $** > $@
1787
-
1788
-$(OX)\tktsetup$O : tktsetup_.c tktsetup.h
1789
- $(TCC) /Fo$@ -c tktsetup_.c
1790
-
1791
-tktsetup_.c : $(SRCDIR)\tktsetup.c
1792
- translate$E $** > $@
1793
-
1794
-$(OX)\undo$O : undo_.c undo.h
1795
- $(TCC) /Fo$@ -c undo_.c
1796
-
1797
-undo_.c : $(SRCDIR)\undo.c
1798
- translate$E $** > $@
1799
-
1800
-$(OX)\unicode$O : unicode_.c unicode.h
1801
- $(TCC) /Fo$@ -c unicode_.c
1802
-
1803
-unicode_.c : $(SRCDIR)\unicode.c
1804
- translate$E $** > $@
1805
-
1806
-$(OX)\unversioned$O : unversioned_.c unversioned.h
1807
- $(TCC) /Fo$@ -c unversioned_.c
1808
-
1809
-unversioned_.c : $(SRCDIR)\unversioned.c
1810
- translate$E $** > $@
1811
-
1812
-$(OX)\update$O : update_.c update.h
1813
- $(TCC) /Fo$@ -c update_.c
1814
-
1815
-update_.c : $(SRCDIR)\update.c
1816
- translate$E $** > $@
1817
-
1818
-$(OX)\url$O : url_.c url.h
1819
- $(TCC) /Fo$@ -c url_.c
1820
-
1821
-url_.c : $(SRCDIR)\url.c
1822
- translate$E $** > $@
1823
-
1824
-$(OX)\user$O : user_.c user.h
1825
- $(TCC) /Fo$@ -c user_.c
1826
-
1827
-user_.c : $(SRCDIR)\user.c
1828
- translate$E $** > $@
1829
-
1830
-$(OX)\utf8$O : utf8_.c utf8.h
1831
- $(TCC) /Fo$@ -c utf8_.c
1832
-
1833
-utf8_.c : $(SRCDIR)\utf8.c
1834
- translate$E $** > $@
1835
-
1836
-$(OX)\util$O : util_.c util.h
1837
- $(TCC) /Fo$@ -c util_.c
1838
-
1839
-util_.c : $(SRCDIR)\util.c
1840
- translate$E $** > $@
1841
-
1842
-$(OX)\verify$O : verify_.c verify.h
1843
- $(TCC) /Fo$@ -c verify_.c
1844
-
1845
-verify_.c : $(SRCDIR)\verify.c
1846
- translate$E $** > $@
1847
-
1848
-$(OX)\vfile$O : vfile_.c vfile.h
1849
- $(TCC) /Fo$@ -c vfile_.c
1850
-
1851
-vfile_.c : $(SRCDIR)\vfile.c
1852
- translate$E $** > $@
1853
-
1854
-$(OX)\webmail$O : webmail_.c webmail.h
1855
- $(TCC) /Fo$@ -c webmail_.c
1856
-
1857
-webmail_.c : $(SRCDIR)\webmail.c
1858
- translate$E $** > $@
1859
-
1860
-$(OX)\wiki$O : wiki_.c wiki.h
1861
- $(TCC) /Fo$@ -c wiki_.c
1862
-
1863
-wiki_.c : $(SRCDIR)\wiki.c
1864
- translate$E $** > $@
1865
-
1866
-$(OX)\wikiformat$O : wikiformat_.c wikiformat.h
1867
- $(TCC) /Fo$@ -c wikiformat_.c
1868
-
1869
-wikiformat_.c : $(SRCDIR)\wikiformat.c
1870
- translate$E $** > $@
1871
-
1872
-$(OX)\winfile$O : winfile_.c winfile.h
1873
- $(TCC) /Fo$@ -c winfile_.c
1874
-
1875
-winfile_.c : $(SRCDIR)\winfile.c
1876
- translate$E $** > $@
1877
-
1878
-$(OX)\winhttp$O : winhttp_.c winhttp.h
1879
- $(TCC) /Fo$@ -c winhttp_.c
1880
-
1881
-winhttp_.c : $(SRCDIR)\winhttp.c
1882
- translate$E $** > $@
1883
-
1884
-$(OX)\wysiwyg$O : wysiwyg_.c wysiwyg.h
1885
- $(TCC) /Fo$@ -c wysiwyg_.c
1886
-
1887
-wysiwyg_.c : $(SRCDIR)\wysiwyg.c
1888
- translate$E $** > $@
1889
-
1890
-$(OX)\xfer$O : xfer_.c xfer.h
1891
- $(TCC) /Fo$@ -c xfer_.c
1892
-
1893
-xfer_.c : $(SRCDIR)\xfer.c
1894
- translate$E $** > $@
1895
-
1896
-$(OX)\xfersetup$O : xfersetup_.c xfersetup.h
1897
- $(TCC) /Fo$@ -c xfersetup_.c
1898
-
1899
-xfersetup_.c : $(SRCDIR)\xfersetup.c
1900
- translate$E $** > $@
1901
-
1902
-$(OX)\zip$O : zip_.c zip.h
1903
- $(TCC) /Fo$@ -c zip_.c
1904
-
1905
-zip_.c : $(SRCDIR)\zip.c
1906
- translate$E $** > $@
1907
-
1908
-fossil.res : $B\win\fossil.rc
1909
- $(RCC) /fo $@ $**
1910
-
1911
-headers: makeheaders$E page_index.h builtin_data.h VERSION.h
1912
- makeheaders$E add_.c:add.h \
1913
- alerts_.c:alerts.h \
1914
- allrepo_.c:allrepo.h \
1915
- attach_.c:attach.h \
1916
- backlink_.c:backlink.h \
1917
- backoffice_.c:backoffice.h \
1918
- bag_.c:bag.h \
1919
- bisect_.c:bisect.h \
1920
- blob_.c:blob.h \
1921
- branch_.c:branch.h \
1922
- browse_.c:browse.h \
1923
- builtin_.c:builtin.h \
1924
- bundle_.c:bundle.h \
1925
- cache_.c:cache.h \
1926
- capabilities_.c:capabilities.h \
1927
- captcha_.c:captcha.h \
1928
- cgi_.c:cgi.h \
1929
- checkin_.c:checkin.h \
1930
- checkout_.c:checkout.h \
1931
- clearsign_.c:clearsign.h \
1932
- clone_.c:clone.h \
1933
- comformat_.c:comformat.h \
1934
- configure_.c:configure.h \
1935
- content_.c:content.h \
1936
- cookies_.c:cookies.h \
1937
- db_.c:db.h \
1938
- delta_.c:delta.h \
1939
- deltacmd_.c:deltacmd.h \
1940
- deltafunc_.c:deltafunc.h \
1941
- descendants_.c:descendants.h \
1942
- diff_.c:diff.h \
1943
- diffcmd_.c:diffcmd.h \
1944
- dispatch_.c:dispatch.h \
1945
- doc_.c:doc.h \
1946
- encode_.c:encode.h \
1947
- etag_.c:etag.h \
1948
- event_.c:event.h \
1949
- export_.c:export.h \
1950
- extcgi_.c:extcgi.h \
1951
- file_.c:file.h \
1952
- fileedit_.c:fileedit.h \
1953
- finfo_.c:finfo.h \
1954
- foci_.c:foci.h \
1955
- forum_.c:forum.h \
1956
- fshell_.c:fshell.h \
1957
- fusefs_.c:fusefs.h \
1958
- fuzz_.c:fuzz.h \
1959
- glob_.c:glob.h \
1960
- graph_.c:graph.h \
1961
- gzip_.c:gzip.h \
1962
- hname_.c:hname.h \
1963
- http_.c:http.h \
1964
- http_socket_.c:http_socket.h \
1965
- http_ssl_.c:http_ssl.h \
1966
- http_transport_.c:http_transport.h \
1967
- import_.c:import.h \
1968
- info_.c:info.h \
1969
- json_.c:json.h \
1970
- json_artifact_.c:json_artifact.h \
1971
- json_branch_.c:json_branch.h \
1972
- json_config_.c:json_config.h \
1973
- json_diff_.c:json_diff.h \
1974
- json_dir_.c:json_dir.h \
1975
- json_finfo_.c:json_finfo.h \
1976
- json_login_.c:json_login.h \
1977
- json_query_.c:json_query.h \
1978
- json_report_.c:json_report.h \
1979
- json_status_.c:json_status.h \
1980
- json_tag_.c:json_tag.h \
1981
- json_timeline_.c:json_timeline.h \
1982
- json_user_.c:json_user.h \
1983
- json_wiki_.c:json_wiki.h \
1984
- leaf_.c:leaf.h \
1985
- loadctrl_.c:loadctrl.h \
1986
- login_.c:login.h \
1987
- lookslike_.c:lookslike.h \
1988
- main_.c:main.h \
1989
- manifest_.c:manifest.h \
1990
- markdown_.c:markdown.h \
1991
- markdown_html_.c:markdown_html.h \
1992
- md5_.c:md5.h \
1993
- merge_.c:merge.h \
1994
- merge3_.c:merge3.h \
1995
- moderate_.c:moderate.h \
1996
- name_.c:name.h \
1997
- path_.c:path.h \
1998
- piechart_.c:piechart.h \
1999
- pivot_.c:pivot.h \
2000
- popen_.c:popen.h \
2001
- pqueue_.c:pqueue.h \
2002
- printf_.c:printf.h \
2003
- publish_.c:publish.h \
2004
- purge_.c:purge.h \
2005
- rebuild_.c:rebuild.h \
2006
- regexp_.c:regexp.h \
2007
- repolist_.c:repolist.h \
2008
- report_.c:report.h \
2009
- rss_.c:rss.h \
2010
- schema_.c:schema.h \
2011
- search_.c:search.h \
2012
- security_audit_.c:security_audit.h \
2013
- setup_.c:setup.h \
2014
- setupuser_.c:setupuser.h \
2015
- sha1_.c:sha1.h \
2016
- sha1hard_.c:sha1hard.h \
2017
- sha3_.c:sha3.h \
2018
- shun_.c:shun.h \
2019
- sitemap_.c:sitemap.h \
2020
- skins_.c:skins.h \
2021
- smtp_.c:smtp.h \
2022
- sqlcmd_.c:sqlcmd.h \
2023
- stash_.c:stash.h \
2024
- stat_.c:stat.h \
2025
- statrep_.c:statrep.h \
2026
- style_.c:style.h \
2027
- sync_.c:sync.h \
2028
- tag_.c:tag.h \
2029
- tar_.c:tar.h \
2030
- terminal_.c:terminal.h \
2031
- th_main_.c:th_main.h \
2032
- timeline_.c:timeline.h \
2033
- tkt_.c:tkt.h \
2034
- tktsetup_.c:tktsetup.h \
2035
- undo_.c:undo.h \
2036
- unicode_.c:unicode.h \
2037
- unversioned_.c:unversioned.h \
2038
- update_.c:update.h \
2039
- url_.c:url.h \
2040
- user_.c:user.h \
2041
- utf8_.c:utf8.h \
2042
- util_.c:util.h \
2043
- verify_.c:verify.h \
2044
- vfile_.c:vfile.h \
2045
- webmail_.c:webmail.h \
2046
- wiki_.c:wiki.h \
2047
- wikiformat_.c:wikiformat.h \
2048
- winfile_.c:winfile.h \
2049
- winhttp_.c:winhttp.h \
2050
- wysiwyg_.c:wysiwyg.h \
2051
- xfer_.c:xfer.h \
2052
- xfersetup_.c:xfersetup.h \
2053
- zip_.c:zip.h \
2054
- $(SRCDIR)\sqlite3.h \
2055
- $(SRCDIR)\th.h \
2056
- VERSION.h \
2057
- $(SRCDIR)\cson_amalgamation.h
2058
- @copy /Y nul: headers
1015
+"$(OX)\shell$O" : "$(SQLITE3_SHELL_SRC)" "$(B)\win\Makefile.msc"
1016
+ $(TCC) /Fo$@ /Fd$(@D)\ $(SHELL_OPTIONS) $(SQLITE_OPTIONS) $(SHELL_CFLAGS) $(SEE_FLAGS) -c "$(SQLITE3_SHELL_SRC)"
1017
+
1018
+"$(OX)\sqlite3$O" : "$(SQLITE3_SRC)" "$(B)\win\Makefile.msc"
1019
+ $(TCC) /Fo$@ /Fd$(@D)\ -c $(SQLITE_OPTIONS) $(SQLITE_CFLAGS) $(SEE_FLAGS) "$(SQLITE3_SRC)"
1020
+
1021
+"$(OX)\th$O" : "$(SRCDIR)\th.c"
1022
+ $(TCC) /Fo$@ /Fd$(@D)\ -c $**
1023
+
1024
+"$(OX)\th_lang$O" : "$(SRCDIR)\th_lang.c"
1025
+ $(TCC) /Fo$@ /Fd$(@D)\ -c $**
1026
+
1027
+"$(OX)\th_tcl$O" : "$(SRCDIR)\th_tcl.c"
1028
+ $(TCC) /Fo$@ /Fd$(@D)\ -c $**
1029
+
1030
+"$(OX)\miniz$O" : "$(SRCDIR)\miniz.c"
1031
+ $(TCC) /Fo$@ /Fd$(@D)\ -c $(MINIZ_OPTIONS) $**
1032
+
1033
+"$(OX)\VERSION.h" : "$(OBJDIR)\mkversion$E" "$(B)\manifest.uuid" "$(B)\manifest" "$(B)\VERSION"
1034
+ $** > $@
1035
+
1036
+"$(OX)\cson_amalgamation$O" : "$(SRCDIR)\cson_amalgamation.c"
1037
+ $(TCC) /Fo$@ /Fd$(@D)\ -c $**
1038
+
1039
+"$(OX)\page_index.h": "$(OBJDIR)\mkindex$E" $(SRC)
1040
+ $** > $@
1041
+
1042
+"$(OX)\builtin_data.h": "$(OBJDIR)\mkbuiltin$E" "$(OX)\builtin_data.reslist"
1043
+ "$(OBJDIR)\mkbuiltin$E" --prefix "$(SRCDIR)/" --reslist "$(OX)\builtin_data.reslist" > $@
1044
+
1045
+cleanx:
1046
+ -del "$(OX)\*.obj" 2>NUL
1047
+ -del "$(OBJDIR)\*.obj" 2>NUL
1048
+ -del "$(OX)\*_.c" 2>NUL
1049
+ -del "$(OX)\*.h" 2>NUL
1050
+ -del "$(OX)\*.ilk" 2>NUL
1051
+ -del "$(OX)\*.map" 2>NUL
1052
+ -del "$(OX)\*.res" 2>NUL
1053
+ -del "$(OX)\*.reslist" 2>NUL
1054
+ -del "$(OX)\headers" 2>NUL
1055
+ -del "$(OX)\linkopts" 2>NUL
1056
+ -del "$(OX)\vc*.pdb" 2>NUL
1057
+
1058
+clean: cleanx
1059
+ -del "$(APPNAME)" 2>NUL
1060
+ -del "$(PDBNAME)" 2>NUL
1061
+ -del "$(OBJDIR)\translate$E" 2>NUL
1062
+ -del "$(OBJDIR)\translate$P" 2>NUL
1063
+ -del "$(OBJDIR)\mkindex$E" 2>NUL
1064
+ -del "$(OBJDIR)\mkindex$P" 2>NUL
1065
+ -del "$(OBJDIR)\makeheaders$E" 2>NUL
1066
+ -del "$(OBJDIR)\makeheaders$P" 2>NUL
1067
+ -del "$(OBJDIR)\mkversion$E" 2>NUL
1068
+ -del "$(OBJDIR)\mkversion$P" 2>NUL
1069
+ -del "$(OBJDIR)\mkcss$E" 2>NUL
1070
+ -del "$(OBJDIR)\mkcss$P" 2>NUL
1071
+ -del "$(OBJDIR)\codecheck1$E" 2>NUL
1072
+ -del "$(OBJDIR)\codecheck1$P" 2>NUL
1073
+ -del "$(OBJDIR)\mkbuiltin$E" 2>NUL
1074
+ -del "$(OBJDIR)\mkbuiltin$P" 2>NUL
1075
+
1076
+realclean: clean
1077
+
1078
+"$(OBJDIR)\json$O" : "$(SRCDIR)\json_detail.h"
1079
+"$(OBJDIR)\json_artifact$O" : "$(SRCDIR)\json_detail.h"
1080
+"$(OBJDIR)\json_branch$O" : "$(SRCDIR)\json_detail.h"
1081
+"$(OBJDIR)\json_config$O" : "$(SRCDIR)\json_detail.h"
1082
+"$(OBJDIR)\json_diff$O" : "$(SRCDIR)\json_detail.h"
1083
+"$(OBJDIR)\json_dir$O" : "$(SRCDIR)\json_detail.h"
1084
+"$(OBJDIR)\json_finfo$O" : "$(SRCDIR)\json_detail.h"
1085
+"$(OBJDIR)\json_login$O" : "$(SRCDIR)\json_detail.h"
1086
+"$(OBJDIR)\json_query$O" : "$(SRCDIR)\json_detail.h"
1087
+"$(OBJDIR)\json_report$O" : "$(SRCDIR)\json_detail.h"
1088
+"$(OBJDIR)\json_status$O" : "$(SRCDIR)\json_detail.h"
1089
+"$(OBJDIR)\json_tag$O" : "$(SRCDIR)\json_detail.h"
1090
+"$(OBJDIR)\json_timeline$O" : "$(SRCDIR)\json_detail.h"
1091
+"$(OBJDIR)\json_user$O" : "$(SRCDIR)\json_detail.h"
1092
+"$(OBJDIR)\json_wiki$O" : "$(SRCDIR)\json_detail.h"
1093
+
1094
+"$(OX)\builtin_data.reslist": $(EXTRA_FILES) "$(B)\win\Makefile.msc"
1095
+ echo "$(SRCDIR)\../skins/aht/details.txt" > $@
1096
+ echo "$(SRCDIR)\../skins/ardoise/css.txt" >> $@
1097
+ echo "$(SRCDIR)\../skins/ardoise/details.txt" >> $@
1098
+ echo "$(SRCDIR)\../skins/ardoise/footer.txt" >> $@
1099
+ echo "$(SRCDIR)\../skins/ardoise/header.txt" >> $@
1100
+ echo "$(SRCDIR)\../skins/black_and_white/css.txt" >> $@
1101
+ echo "$(SRCDIR)\../skins/black_and_white/details.txt" >> $@
1102
+ echo "$(SRCDIR)\../skins/black_and_white/footer.txt" >> $@
1103
+ echo "$(SRCDIR)\../skins/black_and_white/header.txt" >> $@
1104
+ echo "$(SRCDIR)\../skins/blitz/css.txt" >> $@
1105
+ echo "$(SRCDIR)\../skins/blitz/details.txt" >> $@
1106
+ echo "$(SRCDIR)\../skins/blitz/footer.txt" >> $@
1107
+ echo "$(SRCDIR)\../skins/blitz/header.txt" >> $@
1108
+ echo "$(SRCDIR)\../skins/blitz/ticket.txt" >> $@
1109
+ echo "$(SRCDIR)\../skins/blitz_no_logo/css.txt" >> $@
1110
+ echo "$(SRCDIR)\../skins/blitz_no_logo/details.txt" >> $@
1111
+ echo "$(SRCDIR)\../skins/blitz_no_logo/footer.txt" >> $@
1112
+ echo "$(SRCDIR)\../skins/blitz_no_logo/header.txt" >> $@
1113
+ echo "$(SRCDIR)\../skins/blitz_no_logo/ticket.txt" >> $@
1114
+ echo "$(SRCDIR)\../skins/bootstrap/css.txt" >> $@
1115
+ echo "$(SRCDIR)\../skins/bootstrap/details.txt" >> $@
1116
+ echo "$(SRCDIR)\../skins/bootstrap/footer.txt" >> $@
1117
+ echo "$(SRCDIR)\../skins/bootstrap/header.txt" >> $@
1118
+ echo "$(SRCDIR)\../skins/default/css.txt" >> $@
1119
+ echo "$(SRCDIR)\../skins/default/details.txt" >> $@
1120
+ echo "$(SRCDIR)\../skins/default/footer.txt" >> $@
1121
+ echo "$(SRCDIR)\../skins/default/header.txt" >> $@
1122
+ echo "$(SRCDIR)\../skins/default/js.txt" >> $@
1123
+ echo "$(SRCDIR)\../skins/eagle/css.txt" >> $@
1124
+ echo "$(SRCDIR)\../skins/eagle/details.txt" >> $@
1125
+ echo "$(SRCDIR)\../skins/eagle/footer.txt" >> $@
1126
+ echo "$(SRCDIR)\../skins/eagle/header.txt" >> $@
1127
+ echo "$(SRCDIR)\../skins/enhanced1/css.txt" >> $@
1128
+ echo "$(SRCDIR)\../skins/enhanced1/details.txt" >> $@
1129
+ echo "$(SRCDIR)\../skins/enhanced1/footer.txt" >> $@
1130
+ echo "$(SRCDIR)\../skins/enhanced1/header.txt" >> $@
1131
+ echo "$(SRCDIR)\../skins/khaki/css.txt" >> $@
1132
+ echo "$(SRCDIR)\../skins/khaki/details.txt" >> $@
1133
+ echo "$(SRCDIR)\../skins/khaki/footer.txt" >> $@
1134
+ echo "$(SRCDIR)\../skins/khaki/header.txt" >> $@
1135
+ echo "$(SRCDIR)\../skins/original/css.txt" >> $@
1136
+ echo "$(SRCDIR)\../skins/original/details.txt" >> $@
1137
+ echo "$(SRCDIR)\../skins/original/footer.txt" >> $@
1138
+ echo "$(SRCDIR)\../skins/original/header.txt" >> $@
1139
+ echo "$(SRCDIR)\../skins/plain_gray/css.txt" >> $@
1140
+ echo "$(SRCDIR)\../skins/plain_gray/details.txt" >> $@
1141
+ echo "$(SRCDIR)\../skins/plain_gray/footer.txt" >> $@
1142
+ echo "$(SRCDIR)\../skins/plain_gray/header.txt" >> $@
1143
+ echo "$(SRCDIR)\../skins/rounded1/css.txt" >> $@
1144
+ echo "$(SRCDIR)\../skins/rounded1/details.txt" >> $@
1145
+ echo "$(SRCDIR)\../skins/rounded1/footer.txt" >> $@
1146
+ echo "$(SRCDIR)\../skins/rounded1/header.txt" >> $@
1147
+ echo "$(SRCDIR)\../skins/xekri/css.txt" >> $@
1148
+ echo "$(SRCDIR)\../skins/xekri/details.txt" >> $@
1149
+ echo "$(SRCDIR)\../skins/xekri/footer.txt" >> $@
1150
+ echo "$(SRCDIR)\../skins/xekri/header.txt" >> $@
1151
+ echo "$(SRCDIR)\accordion.js" >> $@
1152
+ echo "$(SRCDIR)\ci_edit.js" >> $@
1153
+ echo "$(SRCDIR)\copybtn.js" >> $@
1154
+ echo "$(SRCDIR)\default.css" >> $@
1155
+ echo "$(SRCDIR)\diff.tcl" >> $@
1156
+ echo "$(SRCDIR)\forum.js" >> $@
1157
+ echo "$(SRCDIR)\fossil.bootstrap.js" >> $@
1158
+ echo "$(SRCDIR)\fossil.confirmer.js" >> $@
1159
+ echo "$(SRCDIR)\fossil.dom.js" >> $@
1160
+ echo "$(SRCDIR)\fossil.fetch.js" >> $@
1161
+ echo "$(SRCDIR)\fossil.page.fileedit.js" >> $@
1162
+ echo "$(SRCDIR)\fossil.storage.js" >> $@
1163
+ echo "$(SRCDIR)\fossil.tabs.js" >> $@
1164
+ echo "$(SRCDIR)\graph.js" >> $@
1165
+ echo "$(SRCDIR)\href.js" >> $@
1166
+ echo "$(SRCDIR)\login.js" >> $@
1167
+ echo "$(SRCDIR)\markdown.md" >> $@
1168
+ echo "$(SRCDIR)\menu.js" >> $@
1169
+ echo "$(SRCDIR)\sbsdiff.js" >> $@
1170
+ echo "$(SRCDIR)\scroll.js" >> $@
1171
+ echo "$(SRCDIR)\skin.js" >> $@
1172
+ echo "$(SRCDIR)\sorttable.js" >> $@
1173
+ echo "$(SRCDIR)\sounds/0.wav" >> $@
1174
+ echo "$(SRCDIR)\sounds/1.wav" >> $@
1175
+ echo "$(SRCDIR)\sounds/2.wav" >> $@
1176
+ echo "$(SRCDIR)\sounds/3.wav" >> $@
1177
+ echo "$(SRCDIR)\sounds/4.wav" >> $@
1178
+ echo "$(SRCDIR)\sounds/5.wav" >> $@
1179
+ echo "$(SRCDIR)\sounds/6.wav" >> $@
1180
+ echo "$(SRCDIR)\sounds/7.wav" >> $@
1181
+ echo "$(SRCDIR)\sounds/8.wav" >> $@
1182
+ echo "$(SRCDIR)\sounds/9.wav" >> $@
1183
+ echo "$(SRCDIR)\sounds/a.wav" >> $@
1184
+ echo "$(SRCDIR)\sounds/b.wav" >> $@
1185
+ echo "$(SRCDIR)\sounds/c.wav" >> $@
1186
+ echo "$(SRCDIR)\sounds/d.wav" >> $@
1187
+ echo "$(SRCDIR)\sounds/e.wav" >> $@
1188
+ echo "$(SRCDIR)\sounds/f.wav" >> $@
1189
+ echo "$(SRCDIR)\style.admin_log.css" >> $@
1190
+ echo "$(SRCDIR)\style.fileedit.css" >> $@
1191
+ echo "$(SRCDIR)\tree.js" >> $@
1192
+ echo "$(SRCDIR)\useredit.js" >> $@
1193
+ echo "$(SRCDIR)\wiki.wiki" >> $@
1194
+
1195
+"$(OX)\add$O" : "$(OX)\add_.c" "$(OX)\add.h"
1196
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\add_.c"
1197
+
1198
+"$(OX)\add_.c" : "$(SRCDIR)\add.c"
1199
+ "$(OBJDIR)\translate$E" $** > $@
1200
+
1201
+"$(OX)\ajax$O" : "$(OX)\ajax_.c" "$(OX)\ajax.h"
1202
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\ajax_.c"
1203
+
1204
+"$(OX)\ajax_.c" : "$(SRCDIR)\ajax.c"
1205
+ "$(OBJDIR)\translate$E" $** > $@
1206
+
1207
+"$(OX)\alerts$O" : "$(OX)\alerts_.c" "$(OX)\alerts.h"
1208
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\alerts_.c"
1209
+
1210
+"$(OX)\alerts_.c" : "$(SRCDIR)\alerts.c"
1211
+ "$(OBJDIR)\translate$E" $** > $@
1212
+
1213
+"$(OX)\allrepo$O" : "$(OX)\allrepo_.c" "$(OX)\allrepo.h"
1214
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\allrepo_.c"
1215
+
1216
+"$(OX)\allrepo_.c" : "$(SRCDIR)\allrepo.c"
1217
+ "$(OBJDIR)\translate$E" $** > $@
1218
+
1219
+"$(OX)\attach$O" : "$(OX)\attach_.c" "$(OX)\attach.h"
1220
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\attach_.c"
1221
+
1222
+"$(OX)\attach_.c" : "$(SRCDIR)\attach.c"
1223
+ "$(OBJDIR)\translate$E" $** > $@
1224
+
1225
+"$(OX)\backlink$O" : "$(OX)\backlink_.c" "$(OX)\backlink.h"
1226
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\backlink_.c"
1227
+
1228
+"$(OX)\backlink_.c" : "$(SRCDIR)\backlink.c"
1229
+ "$(OBJDIR)\translate$E" $** > $@
1230
+
1231
+"$(OX)\backoffice$O" : "$(OX)\backoffice_.c" "$(OX)\backoffice.h"
1232
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\backoffice_.c"
1233
+
1234
+"$(OX)\backoffice_.c" : "$(SRCDIR)\backoffice.c"
1235
+ "$(OBJDIR)\translate$E" $** > $@
1236
+
1237
+"$(OX)\bag$O" : "$(OX)\bag_.c" "$(OX)\bag.h"
1238
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\bag_.c"
1239
+
1240
+"$(OX)\bag_.c" : "$(SRCDIR)\bag.c"
1241
+ "$(OBJDIR)\translate$E" $** > $@
1242
+
1243
+"$(OX)\bisect$O" : "$(OX)\bisect_.c" "$(OX)\bisect.h"
1244
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\bisect_.c"
1245
+
1246
+"$(OX)\bisect_.c" : "$(SRCDIR)\bisect.c"
1247
+ "$(OBJDIR)\translate$E" $** > $@
1248
+
1249
+"$(OX)\blob$O" : "$(OX)\blob_.c" "$(OX)\blob.h"
1250
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\blob_.c"
1251
+
1252
+"$(OX)\blob_.c" : "$(SRCDIR)\blob.c"
1253
+ "$(OBJDIR)\translate$E" $** > $@
1254
+
1255
+"$(OX)\branch$O" : "$(OX)\branch_.c" "$(OX)\branch.h"
1256
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\branch_.c"
1257
+
1258
+"$(OX)\branch_.c" : "$(SRCDIR)\branch.c"
1259
+ "$(OBJDIR)\translate$E" $** > $@
1260
+
1261
+"$(OX)\browse$O" : "$(OX)\browse_.c" "$(OX)\browse.h"
1262
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\browse_.c"
1263
+
1264
+"$(OX)\browse_.c" : "$(SRCDIR)\browse.c"
1265
+ "$(OBJDIR)\translate$E" $** > $@
1266
+
1267
+"$(OX)\builtin$O" : "$(OX)\builtin_.c" "$(OX)\builtin.h"
1268
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\builtin_.c"
1269
+
1270
+"$(OX)\builtin_.c" : "$(SRCDIR)\builtin.c"
1271
+ "$(OBJDIR)\translate$E" $** > $@
1272
+
1273
+"$(OX)\bundle$O" : "$(OX)\bundle_.c" "$(OX)\bundle.h"
1274
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\bundle_.c"
1275
+
1276
+"$(OX)\bundle_.c" : "$(SRCDIR)\bundle.c"
1277
+ "$(OBJDIR)\translate$E" $** > $@
1278
+
1279
+"$(OX)\cache$O" : "$(OX)\cache_.c" "$(OX)\cache.h"
1280
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\cache_.c"
1281
+
1282
+"$(OX)\cache_.c" : "$(SRCDIR)\cache.c"
1283
+ "$(OBJDIR)\translate$E" $** > $@
1284
+
1285
+"$(OX)\capabilities$O" : "$(OX)\capabilities_.c" "$(OX)\capabilities.h"
1286
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\capabilities_.c"
1287
+
1288
+"$(OX)\capabilities_.c" : "$(SRCDIR)\capabilities.c"
1289
+ "$(OBJDIR)\translate$E" $** > $@
1290
+
1291
+"$(OX)\captcha$O" : "$(OX)\captcha_.c" "$(OX)\captcha.h"
1292
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\captcha_.c"
1293
+
1294
+"$(OX)\captcha_.c" : "$(SRCDIR)\captcha.c"
1295
+ "$(OBJDIR)\translate$E" $** > $@
1296
+
1297
+"$(OX)\cgi$O" : "$(OX)\cgi_.c" "$(OX)\cgi.h"
1298
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\cgi_.c"
1299
+
1300
+"$(OX)\cgi_.c" : "$(SRCDIR)\cgi.c"
1301
+ "$(OBJDIR)\translate$E" $** > $@
1302
+
1303
+"$(OX)\checkin$O" : "$(OX)\checkin_.c" "$(OX)\checkin.h"
1304
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\checkin_.c"
1305
+
1306
+"$(OX)\checkin_.c" : "$(SRCDIR)\checkin.c"
1307
+ "$(OBJDIR)\translate$E" $** > $@
1308
+
1309
+"$(OX)\checkout$O" : "$(OX)\checkout_.c" "$(OX)\checkout.h"
1310
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\checkout_.c"
1311
+
1312
+"$(OX)\checkout_.c" : "$(SRCDIR)\checkout.c"
1313
+ "$(OBJDIR)\translate$E" $** > $@
1314
+
1315
+"$(OX)\clearsign$O" : "$(OX)\clearsign_.c" "$(OX)\clearsign.h"
1316
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\clearsign_.c"
1317
+
1318
+"$(OX)\clearsign_.c" : "$(SRCDIR)\clearsign.c"
1319
+ "$(OBJDIR)\translate$E" $** > $@
1320
+
1321
+"$(OX)\clone$O" : "$(OX)\clone_.c" "$(OX)\clone.h"
1322
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\clone_.c"
1323
+
1324
+"$(OX)\clone_.c" : "$(SRCDIR)\clone.c"
1325
+ "$(OBJDIR)\translate$E" $** > $@
1326
+
1327
+"$(OX)\comformat$O" : "$(OX)\comformat_.c" "$(OX)\comformat.h"
1328
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\comformat_.c"
1329
+
1330
+"$(OX)\comformat_.c" : "$(SRCDIR)\comformat.c"
1331
+ "$(OBJDIR)\translate$E" $** > $@
1332
+
1333
+"$(OX)\configure$O" : "$(OX)\configure_.c" "$(OX)\configure.h"
1334
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\configure_.c"
1335
+
1336
+"$(OX)\configure_.c" : "$(SRCDIR)\configure.c"
1337
+ "$(OBJDIR)\translate$E" $** > $@
1338
+
1339
+"$(OX)\content$O" : "$(OX)\content_.c" "$(OX)\content.h"
1340
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\content_.c"
1341
+
1342
+"$(OX)\content_.c" : "$(SRCDIR)\content.c"
1343
+ "$(OBJDIR)\translate$E" $** > $@
1344
+
1345
+"$(OX)\cookies$O" : "$(OX)\cookies_.c" "$(OX)\cookies.h"
1346
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\cookies_.c"
1347
+
1348
+"$(OX)\cookies_.c" : "$(SRCDIR)\cookies.c"
1349
+ "$(OBJDIR)\translate$E" $** > $@
1350
+
1351
+"$(OX)\db$O" : "$(OX)\db_.c" "$(OX)\db.h"
1352
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\db_.c"
1353
+
1354
+"$(OX)\db_.c" : "$(SRCDIR)\db.c"
1355
+ "$(OBJDIR)\translate$E" $** > $@
1356
+
1357
+"$(OX)\delta$O" : "$(OX)\delta_.c" "$(OX)\delta.h"
1358
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\delta_.c"
1359
+
1360
+"$(OX)\delta_.c" : "$(SRCDIR)\delta.c"
1361
+ "$(OBJDIR)\translate$E" $** > $@
1362
+
1363
+"$(OX)\deltacmd$O" : "$(OX)\deltacmd_.c" "$(OX)\deltacmd.h"
1364
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\deltacmd_.c"
1365
+
1366
+"$(OX)\deltacmd_.c" : "$(SRCDIR)\deltacmd.c"
1367
+ "$(OBJDIR)\translate$E" $** > $@
1368
+
1369
+"$(OX)\deltafunc$O" : "$(OX)\deltafunc_.c" "$(OX)\deltafunc.h"
1370
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\deltafunc_.c"
1371
+
1372
+"$(OX)\deltafunc_.c" : "$(SRCDIR)\deltafunc.c"
1373
+ "$(OBJDIR)\translate$E" $** > $@
1374
+
1375
+"$(OX)\descendants$O" : "$(OX)\descendants_.c" "$(OX)\descendants.h"
1376
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\descendants_.c"
1377
+
1378
+"$(OX)\descendants_.c" : "$(SRCDIR)\descendants.c"
1379
+ "$(OBJDIR)\translate$E" $** > $@
1380
+
1381
+"$(OX)\diff$O" : "$(OX)\diff_.c" "$(OX)\diff.h"
1382
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\diff_.c"
1383
+
1384
+"$(OX)\diff_.c" : "$(SRCDIR)\diff.c"
1385
+ "$(OBJDIR)\translate$E" $** > $@
1386
+
1387
+"$(OX)\diffcmd$O" : "$(OX)\diffcmd_.c" "$(OX)\diffcmd.h"
1388
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\diffcmd_.c"
1389
+
1390
+"$(OX)\diffcmd_.c" : "$(SRCDIR)\diffcmd.c"
1391
+ "$(OBJDIR)\translate$E" $** > $@
1392
+
1393
+"$(OX)\dispatch$O" : "$(OX)\dispatch_.c" "$(OX)\dispatch.h"
1394
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\dispatch_.c"
1395
+
1396
+"$(OX)\dispatch_.c" : "$(SRCDIR)\dispatch.c"
1397
+ "$(OBJDIR)\translate$E" $** > $@
1398
+
1399
+"$(OX)\doc$O" : "$(OX)\doc_.c" "$(OX)\doc.h"
1400
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\doc_.c"
1401
+
1402
+"$(OX)\doc_.c" : "$(SRCDIR)\doc.c"
1403
+ "$(OBJDIR)\translate$E" $** > $@
1404
+
1405
+"$(OX)\encode$O" : "$(OX)\encode_.c" "$(OX)\encode.h"
1406
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\encode_.c"
1407
+
1408
+"$(OX)\encode_.c" : "$(SRCDIR)\encode.c"
1409
+ "$(OBJDIR)\translate$E" $** > $@
1410
+
1411
+"$(OX)\etag$O" : "$(OX)\etag_.c" "$(OX)\etag.h"
1412
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\etag_.c"
1413
+
1414
+"$(OX)\etag_.c" : "$(SRCDIR)\etag.c"
1415
+ "$(OBJDIR)\translate$E" $** > $@
1416
+
1417
+"$(OX)\event$O" : "$(OX)\event_.c" "$(OX)\event.h"
1418
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\event_.c"
1419
+
1420
+"$(OX)\event_.c" : "$(SRCDIR)\event.c"
1421
+ "$(OBJDIR)\translate$E" $** > $@
1422
+
1423
+"$(OX)\export$O" : "$(OX)\export_.c" "$(OX)\export.h"
1424
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\export_.c"
1425
+
1426
+"$(OX)\export_.c" : "$(SRCDIR)\export.c"
1427
+ "$(OBJDIR)\translate$E" $** > $@
1428
+
1429
+"$(OX)\extcgi$O" : "$(OX)\extcgi_.c" "$(OX)\extcgi.h"
1430
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\extcgi_.c"
1431
+
1432
+"$(OX)\extcgi_.c" : "$(SRCDIR)\extcgi.c"
1433
+ "$(OBJDIR)\translate$E" $** > $@
1434
+
1435
+"$(OX)\file$O" : "$(OX)\file_.c" "$(OX)\file.h"
1436
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\file_.c"
1437
+
1438
+"$(OX)\file_.c" : "$(SRCDIR)\file.c"
1439
+ "$(OBJDIR)\translate$E" $** > $@
1440
+
1441
+"$(OX)\fileedit$O" : "$(OX)\fileedit_.c" "$(OX)\fileedit.h"
1442
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\fileedit_.c"
1443
+
1444
+"$(OX)\fileedit_.c" : "$(SRCDIR)\fileedit.c"
1445
+ "$(OBJDIR)\translate$E" $** > $@
1446
+
1447
+"$(OX)\finfo$O" : "$(OX)\finfo_.c" "$(OX)\finfo.h"
1448
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\finfo_.c"
1449
+
1450
+"$(OX)\finfo_.c" : "$(SRCDIR)\finfo.c"
1451
+ "$(OBJDIR)\translate$E" $** > $@
1452
+
1453
+"$(OX)\foci$O" : "$(OX)\foci_.c" "$(OX)\foci.h"
1454
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\foci_.c"
1455
+
1456
+"$(OX)\foci_.c" : "$(SRCDIR)\foci.c"
1457
+ "$(OBJDIR)\translate$E" $** > $@
1458
+
1459
+"$(OX)\forum$O" : "$(OX)\forum_.c" "$(OX)\forum.h"
1460
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\forum_.c"
1461
+
1462
+"$(OX)\forum_.c" : "$(SRCDIR)\forum.c"
1463
+ "$(OBJDIR)\translate$E" $** > $@
1464
+
1465
+"$(OX)\fshell$O" : "$(OX)\fshell_.c" "$(OX)\fshell.h"
1466
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\fshell_.c"
1467
+
1468
+"$(OX)\fshell_.c" : "$(SRCDIR)\fshell.c"
1469
+ "$(OBJDIR)\translate$E" $** > $@
1470
+
1471
+"$(OX)\fusefs$O" : "$(OX)\fusefs_.c" "$(OX)\fusefs.h"
1472
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\fusefs_.c"
1473
+
1474
+"$(OX)\fusefs_.c" : "$(SRCDIR)\fusefs.c"
1475
+ "$(OBJDIR)\translate$E" $** > $@
1476
+
1477
+"$(OX)\fuzz$O" : "$(OX)\fuzz_.c" "$(OX)\fuzz.h"
1478
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\fuzz_.c"
1479
+
1480
+"$(OX)\fuzz_.c" : "$(SRCDIR)\fuzz.c"
1481
+ "$(OBJDIR)\translate$E" $** > $@
1482
+
1483
+"$(OX)\glob$O" : "$(OX)\glob_.c" "$(OX)\glob.h"
1484
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\glob_.c"
1485
+
1486
+"$(OX)\glob_.c" : "$(SRCDIR)\glob.c"
1487
+ "$(OBJDIR)\translate$E" $** > $@
1488
+
1489
+"$(OX)\graph$O" : "$(OX)\graph_.c" "$(OX)\graph.h"
1490
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\graph_.c"
1491
+
1492
+"$(OX)\graph_.c" : "$(SRCDIR)\graph.c"
1493
+ "$(OBJDIR)\translate$E" $** > $@
1494
+
1495
+"$(OX)\gzip$O" : "$(OX)\gzip_.c" "$(OX)\gzip.h"
1496
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\gzip_.c"
1497
+
1498
+"$(OX)\gzip_.c" : "$(SRCDIR)\gzip.c"
1499
+ "$(OBJDIR)\translate$E" $** > $@
1500
+
1501
+"$(OX)\hname$O" : "$(OX)\hname_.c" "$(OX)\hname.h"
1502
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\hname_.c"
1503
+
1504
+"$(OX)\hname_.c" : "$(SRCDIR)\hname.c"
1505
+ "$(OBJDIR)\translate$E" $** > $@
1506
+
1507
+"$(OX)\http$O" : "$(OX)\http_.c" "$(OX)\http.h"
1508
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\http_.c"
1509
+
1510
+"$(OX)\http_.c" : "$(SRCDIR)\http.c"
1511
+ "$(OBJDIR)\translate$E" $** > $@
1512
+
1513
+"$(OX)\http_socket$O" : "$(OX)\http_socket_.c" "$(OX)\http_socket.h"
1514
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\http_socket_.c"
1515
+
1516
+"$(OX)\http_socket_.c" : "$(SRCDIR)\http_socket.c"
1517
+ "$(OBJDIR)\translate$E" $** > $@
1518
+
1519
+"$(OX)\http_ssl$O" : "$(OX)\http_ssl_.c" "$(OX)\http_ssl.h"
1520
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\http_ssl_.c"
1521
+
1522
+"$(OX)\http_ssl_.c" : "$(SRCDIR)\http_ssl.c"
1523
+ "$(OBJDIR)\translate$E" $** > $@
1524
+
1525
+"$(OX)\http_transport$O" : "$(OX)\http_transport_.c" "$(OX)\http_transport.h"
1526
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\http_transport_.c"
1527
+
1528
+"$(OX)\http_transport_.c" : "$(SRCDIR)\http_transport.c"
1529
+ "$(OBJDIR)\translate$E" $** > $@
1530
+
1531
+"$(OX)\import$O" : "$(OX)\import_.c" "$(OX)\import.h"
1532
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\import_.c"
1533
+
1534
+"$(OX)\import_.c" : "$(SRCDIR)\import.c"
1535
+ "$(OBJDIR)\translate$E" $** > $@
1536
+
1537
+"$(OX)\info$O" : "$(OX)\info_.c" "$(OX)\info.h"
1538
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\info_.c"
1539
+
1540
+"$(OX)\info_.c" : "$(SRCDIR)\info.c"
1541
+ "$(OBJDIR)\translate$E" $** > $@
1542
+
1543
+"$(OX)\json$O" : "$(OX)\json_.c" "$(OX)\json.h"
1544
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_.c"
1545
+
1546
+"$(OX)\json_.c" : "$(SRCDIR)\json.c"
1547
+ "$(OBJDIR)\translate$E" $** > $@
1548
+
1549
+"$(OX)\json_artifact$O" : "$(OX)\json_artifact_.c" "$(OX)\json_artifact.h"
1550
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_artifact_.c"
1551
+
1552
+"$(OX)\json_artifact_.c" : "$(SRCDIR)\json_artifact.c"
1553
+ "$(OBJDIR)\translate$E" $** > $@
1554
+
1555
+"$(OX)\json_branch$O" : "$(OX)\json_branch_.c" "$(OX)\json_branch.h"
1556
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_branch_.c"
1557
+
1558
+"$(OX)\json_branch_.c" : "$(SRCDIR)\json_branch.c"
1559
+ "$(OBJDIR)\translate$E" $** > $@
1560
+
1561
+"$(OX)\json_config$O" : "$(OX)\json_config_.c" "$(OX)\json_config.h"
1562
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_config_.c"
1563
+
1564
+"$(OX)\json_config_.c" : "$(SRCDIR)\json_config.c"
1565
+ "$(OBJDIR)\translate$E" $** > $@
1566
+
1567
+"$(OX)\json_diff$O" : "$(OX)\json_diff_.c" "$(OX)\json_diff.h"
1568
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_diff_.c"
1569
+
1570
+"$(OX)\json_diff_.c" : "$(SRCDIR)\json_diff.c"
1571
+ "$(OBJDIR)\translate$E" $** > $@
1572
+
1573
+"$(OX)\json_dir$O" : "$(OX)\json_dir_.c" "$(OX)\json_dir.h"
1574
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_dir_.c"
1575
+
1576
+"$(OX)\json_dir_.c" : "$(SRCDIR)\json_dir.c"
1577
+ "$(OBJDIR)\translate$E" $** > $@
1578
+
1579
+"$(OX)\json_finfo$O" : "$(OX)\json_finfo_.c" "$(OX)\json_finfo.h"
1580
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_finfo_.c"
1581
+
1582
+"$(OX)\json_finfo_.c" : "$(SRCDIR)\json_finfo.c"
1583
+ "$(OBJDIR)\translate$E" $** > $@
1584
+
1585
+"$(OX)\json_login$O" : "$(OX)\json_login_.c" "$(OX)\json_login.h"
1586
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_login_.c"
1587
+
1588
+"$(OX)\json_login_.c" : "$(SRCDIR)\json_login.c"
1589
+ "$(OBJDIR)\translate$E" $** > $@
1590
+
1591
+"$(OX)\json_query$O" : "$(OX)\json_query_.c" "$(OX)\json_query.h"
1592
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_query_.c"
1593
+
1594
+"$(OX)\json_query_.c" : "$(SRCDIR)\json_query.c"
1595
+ "$(OBJDIR)\translate$E" $** > $@
1596
+
1597
+"$(OX)\json_report$O" : "$(OX)\json_report_.c" "$(OX)\json_report.h"
1598
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_report_.c"
1599
+
1600
+"$(OX)\json_report_.c" : "$(SRCDIR)\json_report.c"
1601
+ "$(OBJDIR)\translate$E" $** > $@
1602
+
1603
+"$(OX)\json_status$O" : "$(OX)\json_status_.c" "$(OX)\json_status.h"
1604
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_status_.c"
1605
+
1606
+"$(OX)\json_status_.c" : "$(SRCDIR)\json_status.c"
1607
+ "$(OBJDIR)\translate$E" $** > $@
1608
+
1609
+"$(OX)\json_tag$O" : "$(OX)\json_tag_.c" "$(OX)\json_tag.h"
1610
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_tag_.c"
1611
+
1612
+"$(OX)\json_tag_.c" : "$(SRCDIR)\json_tag.c"
1613
+ "$(OBJDIR)\translate$E" $** > $@
1614
+
1615
+"$(OX)\json_timeline$O" : "$(OX)\json_timeline_.c" "$(OX)\json_timeline.h"
1616
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_timeline_.c"
1617
+
1618
+"$(OX)\json_timeline_.c" : "$(SRCDIR)\json_timeline.c"
1619
+ "$(OBJDIR)\translate$E" $** > $@
1620
+
1621
+"$(OX)\json_user$O" : "$(OX)\json_user_.c" "$(OX)\json_user.h"
1622
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_user_.c"
1623
+
1624
+"$(OX)\json_user_.c" : "$(SRCDIR)\json_user.c"
1625
+ "$(OBJDIR)\translate$E" $** > $@
1626
+
1627
+"$(OX)\json_wiki$O" : "$(OX)\json_wiki_.c" "$(OX)\json_wiki.h"
1628
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_wiki_.c"
1629
+
1630
+"$(OX)\json_wiki_.c" : "$(SRCDIR)\json_wiki.c"
1631
+ "$(OBJDIR)\translate$E" $** > $@
1632
+
1633
+"$(OX)\leaf$O" : "$(OX)\leaf_.c" "$(OX)\leaf.h"
1634
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\leaf_.c"
1635
+
1636
+"$(OX)\leaf_.c" : "$(SRCDIR)\leaf.c"
1637
+ "$(OBJDIR)\translate$E" $** > $@
1638
+
1639
+"$(OX)\loadctrl$O" : "$(OX)\loadctrl_.c" "$(OX)\loadctrl.h"
1640
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\loadctrl_.c"
1641
+
1642
+"$(OX)\loadctrl_.c" : "$(SRCDIR)\loadctrl.c"
1643
+ "$(OBJDIR)\translate$E" $** > $@
1644
+
1645
+"$(OX)\login$O" : "$(OX)\login_.c" "$(OX)\login.h"
1646
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\login_.c"
1647
+
1648
+"$(OX)\login_.c" : "$(SRCDIR)\login.c"
1649
+ "$(OBJDIR)\translate$E" $** > $@
1650
+
1651
+"$(OX)\lookslike$O" : "$(OX)\lookslike_.c" "$(OX)\lookslike.h"
1652
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\lookslike_.c"
1653
+
1654
+"$(OX)\lookslike_.c" : "$(SRCDIR)\lookslike.c"
1655
+ "$(OBJDIR)\translate$E" $** > $@
1656
+
1657
+"$(OX)\main$O" : "$(OX)\main_.c" "$(OX)\main.h"
1658
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\main_.c"
1659
+
1660
+"$(OX)\main_.c" : "$(SRCDIR)\main.c"
1661
+ "$(OBJDIR)\translate$E" $** > $@
1662
+
1663
+"$(OX)\manifest$O" : "$(OX)\manifest_.c" "$(OX)\manifest.h"
1664
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\manifest_.c"
1665
+
1666
+"$(OX)\manifest_.c" : "$(SRCDIR)\manifest.c"
1667
+ "$(OBJDIR)\translate$E" $** > $@
1668
+
1669
+"$(OX)\markdown$O" : "$(OX)\markdown_.c" "$(OX)\markdown.h"
1670
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\markdown_.c"
1671
+
1672
+"$(OX)\markdown_.c" : "$(SRCDIR)\markdown.c"
1673
+ "$(OBJDIR)\translate$E" $** > $@
1674
+
1675
+"$(OX)\markdown_html$O" : "$(OX)\markdown_html_.c" "$(OX)\markdown_html.h"
1676
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\markdown_html_.c"
1677
+
1678
+"$(OX)\markdown_html_.c" : "$(SRCDIR)\markdown_html.c"
1679
+ "$(OBJDIR)\translate$E" $** > $@
1680
+
1681
+"$(OX)\md5$O" : "$(OX)\md5_.c" "$(OX)\md5.h"
1682
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\md5_.c"
1683
+
1684
+"$(OX)\md5_.c" : "$(SRCDIR)\md5.c"
1685
+ "$(OBJDIR)\translate$E" $** > $@
1686
+
1687
+"$(OX)\merge$O" : "$(OX)\merge_.c" "$(OX)\merge.h"
1688
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\merge_.c"
1689
+
1690
+"$(OX)\merge_.c" : "$(SRCDIR)\merge.c"
1691
+ "$(OBJDIR)\translate$E" $** > $@
1692
+
1693
+"$(OX)\merge3$O" : "$(OX)\merge3_.c" "$(OX)\merge3.h"
1694
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\merge3_.c"
1695
+
1696
+"$(OX)\merge3_.c" : "$(SRCDIR)\merge3.c"
1697
+ "$(OBJDIR)\translate$E" $** > $@
1698
+
1699
+"$(OX)\moderate$O" : "$(OX)\moderate_.c" "$(OX)\moderate.h"
1700
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\moderate_.c"
1701
+
1702
+"$(OX)\moderate_.c" : "$(SRCDIR)\moderate.c"
1703
+ "$(OBJDIR)\translate$E" $** > $@
1704
+
1705
+"$(OX)\name$O" : "$(OX)\name_.c" "$(OX)\name.h"
1706
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\name_.c"
1707
+
1708
+"$(OX)\name_.c" : "$(SRCDIR)\name.c"
1709
+ "$(OBJDIR)\translate$E" $** > $@
1710
+
1711
+"$(OX)\path$O" : "$(OX)\path_.c" "$(OX)\path.h"
1712
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\path_.c"
1713
+
1714
+"$(OX)\path_.c" : "$(SRCDIR)\path.c"
1715
+ "$(OBJDIR)\translate$E" $** > $@
1716
+
1717
+"$(OX)\piechart$O" : "$(OX)\piechart_.c" "$(OX)\piechart.h"
1718
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\piechart_.c"
1719
+
1720
+"$(OX)\piechart_.c" : "$(SRCDIR)\piechart.c"
1721
+ "$(OBJDIR)\translate$E" $** > $@
1722
+
1723
+"$(OX)\pivot$O" : "$(OX)\pivot_.c" "$(OX)\pivot.h"
1724
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\pivot_.c"
1725
+
1726
+"$(OX)\pivot_.c" : "$(SRCDIR)\pivot.c"
1727
+ "$(OBJDIR)\translate$E" $** > $@
1728
+
1729
+"$(OX)\popen$O" : "$(OX)\popen_.c" "$(OX)\popen.h"
1730
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\popen_.c"
1731
+
1732
+"$(OX)\popen_.c" : "$(SRCDIR)\popen.c"
1733
+ "$(OBJDIR)\translate$E" $** > $@
1734
+
1735
+"$(OX)\pqueue$O" : "$(OX)\pqueue_.c" "$(OX)\pqueue.h"
1736
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\pqueue_.c"
1737
+
1738
+"$(OX)\pqueue_.c" : "$(SRCDIR)\pqueue.c"
1739
+ "$(OBJDIR)\translate$E" $** > $@
1740
+
1741
+"$(OX)\printf$O" : "$(OX)\printf_.c" "$(OX)\printf.h"
1742
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\printf_.c"
1743
+
1744
+"$(OX)\printf_.c" : "$(SRCDIR)\printf.c"
1745
+ "$(OBJDIR)\translate$E" $** > $@
1746
+
1747
+"$(OX)\publish$O" : "$(OX)\publish_.c" "$(OX)\publish.h"
1748
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\publish_.c"
1749
+
1750
+"$(OX)\publish_.c" : "$(SRCDIR)\publish.c"
1751
+ "$(OBJDIR)\translate$E" $** > $@
1752
+
1753
+"$(OX)\purge$O" : "$(OX)\purge_.c" "$(OX)\purge.h"
1754
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\purge_.c"
1755
+
1756
+"$(OX)\purge_.c" : "$(SRCDIR)\purge.c"
1757
+ "$(OBJDIR)\translate$E" $** > $@
1758
+
1759
+"$(OX)\rebuild$O" : "$(OX)\rebuild_.c" "$(OX)\rebuild.h"
1760
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\rebuild_.c"
1761
+
1762
+"$(OX)\rebuild_.c" : "$(SRCDIR)\rebuild.c"
1763
+ "$(OBJDIR)\translate$E" $** > $@
1764
+
1765
+"$(OX)\regexp$O" : "$(OX)\regexp_.c" "$(OX)\regexp.h"
1766
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\regexp_.c"
1767
+
1768
+"$(OX)\regexp_.c" : "$(SRCDIR)\regexp.c"
1769
+ "$(OBJDIR)\translate$E" $** > $@
1770
+
1771
+"$(OX)\repolist$O" : "$(OX)\repolist_.c" "$(OX)\repolist.h"
1772
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\repolist_.c"
1773
+
1774
+"$(OX)\repolist_.c" : "$(SRCDIR)\repolist.c"
1775
+ "$(OBJDIR)\translate$E" $** > $@
1776
+
1777
+"$(OX)\report$O" : "$(OX)\report_.c" "$(OX)\report.h"
1778
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\report_.c"
1779
+
1780
+"$(OX)\report_.c" : "$(SRCDIR)\report.c"
1781
+ "$(OBJDIR)\translate$E" $** > $@
1782
+
1783
+"$(OX)\rss$O" : "$(OX)\rss_.c" "$(OX)\rss.h"
1784
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\rss_.c"
1785
+
1786
+"$(OX)\rss_.c" : "$(SRCDIR)\rss.c"
1787
+ "$(OBJDIR)\translate$E" $** > $@
1788
+
1789
+"$(OX)\schema$O" : "$(OX)\schema_.c" "$(OX)\schema.h"
1790
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\schema_.c"
1791
+
1792
+"$(OX)\schema_.c" : "$(SRCDIR)\schema.c"
1793
+ "$(OBJDIR)\translate$E" $** > $@
1794
+
1795
+"$(OX)\search$O" : "$(OX)\search_.c" "$(OX)\search.h"
1796
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\search_.c"
1797
+
1798
+"$(OX)\search_.c" : "$(SRCDIR)\search.c"
1799
+ "$(OBJDIR)\translate$E" $** > $@
1800
+
1801
+"$(OX)\security_audit$O" : "$(OX)\security_audit_.c" "$(OX)\security_audit.h"
1802
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\security_audit_.c"
1803
+
1804
+"$(OX)\security_audit_.c" : "$(SRCDIR)\security_audit.c"
1805
+ "$(OBJDIR)\translate$E" $** > $@
1806
+
1807
+"$(OX)\setup$O" : "$(OX)\setup_.c" "$(OX)\setup.h"
1808
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\setup_.c"
1809
+
1810
+"$(OX)\setup_.c" : "$(SRCDIR)\setup.c"
1811
+ "$(OBJDIR)\translate$E" $** > $@
1812
+
1813
+"$(OX)\setupuser$O" : "$(OX)\setupuser_.c" "$(OX)\setupuser.h"
1814
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\setupuser_.c"
1815
+
1816
+"$(OX)\setupuser_.c" : "$(SRCDIR)\setupuser.c"
1817
+ "$(OBJDIR)\translate$E" $** > $@
1818
+
1819
+"$(OX)\sha1$O" : "$(OX)\sha1_.c" "$(OX)\sha1.h"
1820
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\sha1_.c"
1821
+
1822
+"$(OX)\sha1_.c" : "$(SRCDIR)\sha1.c"
1823
+ "$(OBJDIR)\translate$E" $** > $@
1824
+
1825
+"$(OX)\sha1hard$O" : "$(OX)\sha1hard_.c" "$(OX)\sha1hard.h"
1826
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\sha1hard_.c"
1827
+
1828
+"$(OX)\sha1hard_.c" : "$(SRCDIR)\sha1hard.c"
1829
+ "$(OBJDIR)\translate$E" $** > $@
1830
+
1831
+"$(OX)\sha3$O" : "$(OX)\sha3_.c" "$(OX)\sha3.h"
1832
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\sha3_.c"
1833
+
1834
+"$(OX)\sha3_.c" : "$(SRCDIR)\sha3.c"
1835
+ "$(OBJDIR)\translate$E" $** > $@
1836
+
1837
+"$(OX)\shun$O" : "$(OX)\shun_.c" "$(OX)\shun.h"
1838
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\shun_.c"
1839
+
1840
+"$(OX)\shun_.c" : "$(SRCDIR)\shun.c"
1841
+ "$(OBJDIR)\translate$E" $** > $@
1842
+
1843
+"$(OX)\sitemap$O" : "$(OX)\sitemap_.c" "$(OX)\sitemap.h"
1844
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\sitemap_.c"
1845
+
1846
+"$(OX)\sitemap_.c" : "$(SRCDIR)\sitemap.c"
1847
+ "$(OBJDIR)\translate$E" $** > $@
1848
+
1849
+"$(OX)\skins$O" : "$(OX)\skins_.c" "$(OX)\skins.h"
1850
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\skins_.c"
1851
+
1852
+"$(OX)\skins_.c" : "$(SRCDIR)\skins.c"
1853
+ "$(OBJDIR)\translate$E" $** > $@
1854
+
1855
+"$(OX)\smtp$O" : "$(OX)\smtp_.c" "$(OX)\smtp.h"
1856
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\smtp_.c"
1857
+
1858
+"$(OX)\smtp_.c" : "$(SRCDIR)\smtp.c"
1859
+ "$(OBJDIR)\translate$E" $** > $@
1860
+
1861
+"$(OX)\sqlcmd$O" : "$(OX)\sqlcmd_.c" "$(OX)\sqlcmd.h"
1862
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\sqlcmd_.c"
1863
+
1864
+"$(OX)\sqlcmd_.c" : "$(SRCDIR)\sqlcmd.c"
1865
+ "$(OBJDIR)\translate$E" $** > $@
1866
+
1867
+"$(OX)\stash$O" : "$(OX)\stash_.c" "$(OX)\stash.h"
1868
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\stash_.c"
1869
+
1870
+"$(OX)\stash_.c" : "$(SRCDIR)\stash.c"
1871
+ "$(OBJDIR)\translate$E" $** > $@
1872
+
1873
+"$(OX)\stat$O" : "$(OX)\stat_.c" "$(OX)\stat.h"
1874
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\stat_.c"
1875
+
1876
+"$(OX)\stat_.c" : "$(SRCDIR)\stat.c"
1877
+ "$(OBJDIR)\translate$E" $** > $@
1878
+
1879
+"$(OX)\statrep$O" : "$(OX)\statrep_.c" "$(OX)\statrep.h"
1880
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\statrep_.c"
1881
+
1882
+"$(OX)\statrep_.c" : "$(SRCDIR)\statrep.c"
1883
+ "$(OBJDIR)\translate$E" $** > $@
1884
+
1885
+"$(OX)\style$O" : "$(OX)\style_.c" "$(OX)\style.h"
1886
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\style_.c"
1887
+
1888
+"$(OX)\style_.c" : "$(SRCDIR)\style.c"
1889
+ "$(OBJDIR)\translate$E" $** > $@
1890
+
1891
+"$(OX)\sync$O" : "$(OX)\sync_.c" "$(OX)\sync.h"
1892
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\sync_.c"
1893
+
1894
+"$(OX)\sync_.c" : "$(SRCDIR)\sync.c"
1895
+ "$(OBJDIR)\translate$E" $** > $@
1896
+
1897
+"$(OX)\tag$O" : "$(OX)\tag_.c" "$(OX)\tag.h"
1898
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\tag_.c"
1899
+
1900
+"$(OX)\tag_.c" : "$(SRCDIR)\tag.c"
1901
+ "$(OBJDIR)\translate$E" $** > $@
1902
+
1903
+"$(OX)\tar$O" : "$(OX)\tar_.c" "$(OX)\tar.h"
1904
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\tar_.c"
1905
+
1906
+"$(OX)\tar_.c" : "$(SRCDIR)\tar.c"
1907
+ "$(OBJDIR)\translate$E" $** > $@
1908
+
1909
+"$(OX)\terminal$O" : "$(OX)\terminal_.c" "$(OX)\terminal.h"
1910
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\terminal_.c"
1911
+
1912
+"$(OX)\terminal_.c" : "$(SRCDIR)\terminal.c"
1913
+ "$(OBJDIR)\translate$E" $** > $@
1914
+
1915
+"$(OX)\th_main$O" : "$(OX)\th_main_.c" "$(OX)\th_main.h"
1916
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\th_main_.c"
1917
+
1918
+"$(OX)\th_main_.c" : "$(SRCDIR)\th_main.c"
1919
+ "$(OBJDIR)\translate$E" $** > $@
1920
+
1921
+"$(OX)\timeline$O" : "$(OX)\timeline_.c" "$(OX)\timeline.h"
1922
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\timeline_.c"
1923
+
1924
+"$(OX)\timeline_.c" : "$(SRCDIR)\timeline.c"
1925
+ "$(OBJDIR)\translate$E" $** > $@
1926
+
1927
+"$(OX)\tkt$O" : "$(OX)\tkt_.c" "$(OX)\tkt.h"
1928
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\tkt_.c"
1929
+
1930
+"$(OX)\tkt_.c" : "$(SRCDIR)\tkt.c"
1931
+ "$(OBJDIR)\translate$E" $** > $@
1932
+
1933
+"$(OX)\tktsetup$O" : "$(OX)\tktsetup_.c" "$(OX)\tktsetup.h"
1934
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\tktsetup_.c"
1935
+
1936
+"$(OX)\tktsetup_.c" : "$(SRCDIR)\tktsetup.c"
1937
+ "$(OBJDIR)\translate$E" $** > $@
1938
+
1939
+"$(OX)\undo$O" : "$(OX)\undo_.c" "$(OX)\undo.h"
1940
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\undo_.c"
1941
+
1942
+"$(OX)\undo_.c" : "$(SRCDIR)\undo.c"
1943
+ "$(OBJDIR)\translate$E" $** > $@
1944
+
1945
+"$(OX)\unicode$O" : "$(OX)\unicode_.c" "$(OX)\unicode.h"
1946
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\unicode_.c"
1947
+
1948
+"$(OX)\unicode_.c" : "$(SRCDIR)\unicode.c"
1949
+ "$(OBJDIR)\translate$E" $** > $@
1950
+
1951
+"$(OX)\unversioned$O" : "$(OX)\unversioned_.c" "$(OX)\unversioned.h"
1952
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\unversioned_.c"
1953
+
1954
+"$(OX)\unversioned_.c" : "$(SRCDIR)\unversioned.c"
1955
+ "$(OBJDIR)\translate$E" $** > $@
1956
+
1957
+"$(OX)\update$O" : "$(OX)\update_.c" "$(OX)\update.h"
1958
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\update_.c"
1959
+
1960
+"$(OX)\update_.c" : "$(SRCDIR)\update.c"
1961
+ "$(OBJDIR)\translate$E" $** > $@
1962
+
1963
+"$(OX)\url$O" : "$(OX)\url_.c" "$(OX)\url.h"
1964
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\url_.c"
1965
+
1966
+"$(OX)\url_.c" : "$(SRCDIR)\url.c"
1967
+ "$(OBJDIR)\translate$E" $** > $@
1968
+
1969
+"$(OX)\user$O" : "$(OX)\user_.c" "$(OX)\user.h"
1970
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\user_.c"
1971
+
1972
+"$(OX)\user_.c" : "$(SRCDIR)\user.c"
1973
+ "$(OBJDIR)\translate$E" $** > $@
1974
+
1975
+"$(OX)\utf8$O" : "$(OX)\utf8_.c" "$(OX)\utf8.h"
1976
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\utf8_.c"
1977
+
1978
+"$(OX)\utf8_.c" : "$(SRCDIR)\utf8.c"
1979
+ "$(OBJDIR)\translate$E" $** > $@
1980
+
1981
+"$(OX)\util$O" : "$(OX)\util_.c" "$(OX)\util.h"
1982
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\util_.c"
1983
+
1984
+"$(OX)\util_.c" : "$(SRCDIR)\util.c"
1985
+ "$(OBJDIR)\translate$E" $** > $@
1986
+
1987
+"$(OX)\verify$O" : "$(OX)\verify_.c" "$(OX)\verify.h"
1988
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\verify_.c"
1989
+
1990
+"$(OX)\verify_.c" : "$(SRCDIR)\verify.c"
1991
+ "$(OBJDIR)\translate$E" $** > $@
1992
+
1993
+"$(OX)\vfile$O" : "$(OX)\vfile_.c" "$(OX)\vfile.h"
1994
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\vfile_.c"
1995
+
1996
+"$(OX)\vfile_.c" : "$(SRCDIR)\vfile.c"
1997
+ "$(OBJDIR)\translate$E" $** > $@
1998
+
1999
+"$(OX)\webmail$O" : "$(OX)\webmail_.c" "$(OX)\webmail.h"
2000
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\webmail_.c"
2001
+
2002
+"$(OX)\webmail_.c" : "$(SRCDIR)\webmail.c"
2003
+ "$(OBJDIR)\translate$E" $** > $@
2004
+
2005
+"$(OX)\wiki$O" : "$(OX)\wiki_.c" "$(OX)\wiki.h"
2006
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\wiki_.c"
2007
+
2008
+"$(OX)\wiki_.c" : "$(SRCDIR)\wiki.c"
2009
+ "$(OBJDIR)\translate$E" $** > $@
2010
+
2011
+"$(OX)\wikiformat$O" : "$(OX)\wikiformat_.c" "$(OX)\wikiformat.h"
2012
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\wikiformat_.c"
2013
+
2014
+"$(OX)\wikiformat_.c" : "$(SRCDIR)\wikiformat.c"
2015
+ "$(OBJDIR)\translate$E" $** > $@
2016
+
2017
+"$(OX)\winfile$O" : "$(OX)\winfile_.c" "$(OX)\winfile.h"
2018
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\winfile_.c"
2019
+
2020
+"$(OX)\winfile_.c" : "$(SRCDIR)\winfile.c"
2021
+ "$(OBJDIR)\translate$E" $** > $@
2022
+
2023
+"$(OX)\winhttp$O" : "$(OX)\winhttp_.c" "$(OX)\winhttp.h"
2024
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\winhttp_.c"
2025
+
2026
+"$(OX)\winhttp_.c" : "$(SRCDIR)\winhttp.c"
2027
+ "$(OBJDIR)\translate$E" $** > $@
2028
+
2029
+"$(OX)\wysiwyg$O" : "$(OX)\wysiwyg_.c" "$(OX)\wysiwyg.h"
2030
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\wysiwyg_.c"
2031
+
2032
+"$(OX)\wysiwyg_.c" : "$(SRCDIR)\wysiwyg.c"
2033
+ "$(OBJDIR)\translate$E" $** > $@
2034
+
2035
+"$(OX)\xfer$O" : "$(OX)\xfer_.c" "$(OX)\xfer.h"
2036
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\xfer_.c"
2037
+
2038
+"$(OX)\xfer_.c" : "$(SRCDIR)\xfer.c"
2039
+ "$(OBJDIR)\translate$E" $** > $@
2040
+
2041
+"$(OX)\xfersetup$O" : "$(OX)\xfersetup_.c" "$(OX)\xfersetup.h"
2042
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\xfersetup_.c"
2043
+
2044
+"$(OX)\xfersetup_.c" : "$(SRCDIR)\xfersetup.c"
2045
+ "$(OBJDIR)\translate$E" $** > $@
2046
+
2047
+"$(OX)\zip$O" : "$(OX)\zip_.c" "$(OX)\zip.h"
2048
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\zip_.c"
2049
+
2050
+"$(OX)\zip_.c" : "$(SRCDIR)\zip.c"
2051
+ "$(OBJDIR)\translate$E" $** > $@
2052
+
2053
+"$(OX)\fossil.res" : "$(B)\win\fossil.rc"
2054
+ $(RCC) /fo $@ $**
2055
+
2056
+"$(OX)\headers": "$(OBJDIR)\makeheaders$E" "$(OX)\page_index.h" "$(OX)\builtin_data.h" "$(OX)\default_css.h" "$(OX)\VERSION.h"
2057
+ "$(OBJDIR)\makeheaders$E" "$(OX)\add_.c":"$(OX)\add.h" \
2058
+ "$(OX)\ajax_.c":"$(OX)\ajax.h" \
2059
+ "$(OX)\alerts_.c":"$(OX)\alerts.h" \
2060
+ "$(OX)\allrepo_.c":"$(OX)\allrepo.h" \
2061
+ "$(OX)\attach_.c":"$(OX)\attach.h" \
2062
+ "$(OX)\backlink_.c":"$(OX)\backlink.h" \
2063
+ "$(OX)\backoffice_.c":"$(OX)\backoffice.h" \
2064
+ "$(OX)\bag_.c":"$(OX)\bag.h" \
2065
+ "$(OX)\bisect_.c":"$(OX)\bisect.h" \
2066
+ "$(OX)\blob_.c":"$(OX)\blob.h" \
2067
+ "$(OX)\branch_.c":"$(OX)\branch.h" \
2068
+ "$(OX)\browse_.c":"$(OX)\browse.h" \
2069
+ "$(OX)\builtin_.c":"$(OX)\builtin.h" \
2070
+ "$(OX)\bundle_.c":"$(OX)\bundle.h" \
2071
+ "$(OX)\cache_.c":"$(OX)\cache.h" \
2072
+ "$(OX)\capabilities_.c":"$(OX)\capabilities.h" \
2073
+ "$(OX)\captcha_.c":"$(OX)\captcha.h" \
2074
+ "$(OX)\cgi_.c":"$(OX)\cgi.h" \
2075
+ "$(OX)\checkin_.c":"$(OX)\checkin.h" \
2076
+ "$(OX)\checkout_.c":"$(OX)\checkout.h" \
2077
+ "$(OX)\clearsign_.c":"$(OX)\clearsign.h" \
2078
+ "$(OX)\clone_.c":"$(OX)\clone.h" \
2079
+ "$(OX)\comformat_.c":"$(OX)\comformat.h" \
2080
+ "$(OX)\configure_.c":"$(OX)\configure.h" \
2081
+ "$(OX)\content_.c":"$(OX)\content.h" \
2082
+ "$(OX)\cookies_.c":"$(OX)\cookies.h" \
2083
+ "$(OX)\db_.c":"$(OX)\db.h" \
2084
+ "$(OX)\delta_.c":"$(OX)\delta.h" \
2085
+ "$(OX)\deltacmd_.c":"$(OX)\deltacmd.h" \
2086
+ "$(OX)\deltafunc_.c":"$(OX)\deltafunc.h" \
2087
+ "$(OX)\descendants_.c":"$(OX)\descendants.h" \
2088
+ "$(OX)\diff_.c":"$(OX)\diff.h" \
2089
+ "$(OX)\diffcmd_.c":"$(OX)\diffcmd.h" \
2090
+ "$(OX)\dispatch_.c":"$(OX)\dispatch.h" \
2091
+ "$(OX)\doc_.c":"$(OX)\doc.h" \
2092
+ "$(OX)\encode_.c":"$(OX)\encode.h" \
2093
+ "$(OX)\etag_.c":"$(OX)\etag.h" \
2094
+ "$(OX)\event_.c":"$(OX)\event.h" \
2095
+ "$(OX)\export_.c":"$(OX)\export.h" \
2096
+ "$(OX)\extcgi_.c":"$(OX)\extcgi.h" \
2097
+ "$(OX)\file_.c":"$(OX)\file.h" \
2098
+ "$(OX)\fileedit_.c":"$(OX)\fileedit.h" \
2099
+ "$(OX)\finfo_.c":"$(OX)\finfo.h" \
2100
+ "$(OX)\foci_.c":"$(OX)\foci.h" \
2101
+ "$(OX)\forum_.c":"$(OX)\forum.h" \
2102
+ "$(OX)\fshell_.c":"$(OX)\fshell.h" \
2103
+ "$(OX)\fusefs_.c":"$(OX)\fusefs.h" \
2104
+ "$(OX)\fuzz_.c":"$(OX)\fuzz.h" \
2105
+ "$(OX)\glob_.c":"$(OX)\glob.h" \
2106
+ "$(OX)\graph_.c":"$(OX)\graph.h" \
2107
+ "$(OX)\gzip_.c":"$(OX)\gzip.h" \
2108
+ "$(OX)\hname_.c":"$(OX)\hname.h" \
2109
+ "$(OX)\http_.c":"$(OX)\http.h" \
2110
+ "$(OX)\http_socket_.c":"$(OX)\http_socket.h" \
2111
+ "$(OX)\http_ssl_.c":"$(OX)\http_ssl.h" \
2112
+ "$(OX)\http_transport_.c":"$(OX)\http_transport.h" \
2113
+ "$(OX)\import_.c":"$(OX)\import.h" \
2114
+ "$(OX)\info_.c":"$(OX)\info.h" \
2115
+ "$(OX)\json_.c":"$(OX)\json.h" \
2116
+ "$(OX)\json_artifact_.c":"$(OX)\json_artifact.h" \
2117
+ "$(OX)\json_branch_.c":"$(OX)\json_branch.h" \
2118
+ "$(OX)\json_config_.c":"$(OX)\json_config.h" \
2119
+ "$(OX)\json_diff_.c":"$(OX)\json_diff.h" \
2120
+ "$(OX)\json_dir_.c":"$(OX)\json_dir.h" \
2121
+ "$(OX)\json_finfo_.c":"$(OX)\json_finfo.h" \
2122
+ "$(OX)\json_login_.c":"$(OX)\json_login.h" \
2123
+ "$(OX)\json_query_.c":"$(OX)\json_query.h" \
2124
+ "$(OX)\json_report_.c":"$(OX)\json_report.h" \
2125
+ "$(OX)\json_status_.c":"$(OX)\json_status.h" \
2126
+ "$(OX)\json_tag_.c":"$(OX)\json_tag.h" \
2127
+ "$(OX)\json_timeline_.c":"$(OX)\json_timeline.h" \
2128
+ "$(OX)\json_user_.c":"$(OX)\json_user.h" \
2129
+ "$(OX)\json_wiki_.c":"$(OX)\json_wiki.h" \
2130
+ "$(OX)\leaf_.c":"$(OX)\leaf.h" \
2131
+ "$(OX)\loadctrl_.c":"$(OX)\loadctrl.h" \
2132
+ "$(OX)\login_.c":"$(OX)\login.h" \
2133
+ "$(OX)\lookslike_.c":"$(OX)\lookslike.h" \
2134
+ "$(OX)\main_.c":"$(OX)\main.h" \
2135
+ "$(OX)\manifest_.c":"$(OX)\manifest.h" \
2136
+ "$(OX)\markdown_.c":"$(OX)\markdown.h" \
2137
+ "$(OX)\markdown_html_.c":"$(OX)\markdown_html.h" \
2138
+ "$(OX)\md5_.c":"$(OX)\md5.h" \
2139
+ "$(OX)\merge_.c":"$(OX)\merge.h" \
2140
+ "$(OX)\merge3_.c":"$(OX)\merge3.h" \
2141
+ "$(OX)\moderate_.c":"$(OX)\moderate.h" \
2142
+ "$(OX)\name_.c":"$(OX)\name.h" \
2143
+ "$(OX)\path_.c":"$(OX)\path.h" \
2144
+ "$(OX)\piechart_.c":"$(OX)\piechart.h" \
2145
+ "$(OX)\pivot_.c":"$(OX)\pivot.h" \
2146
+ "$(OX)\popen_.c":"$(OX)\popen.h" \
2147
+ "$(OX)\pqueue_.c":"$(OX)\pqueue.h" \
2148
+ "$(OX)\printf_.c":"$(OX)\printf.h" \
2149
+ "$(OX)\publish_.c":"$(OX)\publish.h" \
2150
+ "$(OX)\purge_.c":"$(OX)\purge.h" \
2151
+ "$(OX)\rebuild_.c":"$(OX)\rebuild.h" \
2152
+ "$(OX)\regexp_.c":"$(OX)\regexp.h" \
2153
+ "$(OX)\repolist_.c":"$(OX)\repolist.h" \
2154
+ "$(OX)\report_.c":"$(OX)\report.h" \
2155
+ "$(OX)\rss_.c":"$(OX)\rss.h" \
2156
+ "$(OX)\schema_.c":"$(OX)\schema.h" \
2157
+ "$(OX)\search_.c":"$(OX)\search.h" \
2158
+ "$(OX)\security_audit_.c":"$(OX)\security_audit.h" \
2159
+ "$(OX)\setup_.c":"$(OX)\setup.h" \
2160
+ "$(OX)\setupuser_.c":"$(OX)\setupuser.h" \
2161
+ "$(OX)\sha1_.c":"$(OX)\sha1.h" \
2162
+ "$(OX)\sha1hard_.c":"$(OX)\sha1hard.h" \
2163
+ "$(OX)\sha3_.c":"$(OX)\sha3.h" \
2164
+ "$(OX)\shun_.c":"$(OX)\shun.h" \
2165
+ "$(OX)\sitemap_.c":"$(OX)\sitemap.h" \
2166
+ "$(OX)\skins_.c":"$(OX)\skins.h" \
2167
+ "$(OX)\smtp_.c":"$(OX)\smtp.h" \
2168
+ "$(OX)\sqlcmd_.c":"$(OX)\sqlcmd.h" \
2169
+ "$(OX)\stash_.c":"$(OX)\stash.h" \
2170
+ "$(OX)\stat_.c":"$(OX)\stat.h" \
2171
+ "$(OX)\statrep_.c":"$(OX)\statrep.h" \
2172
+ "$(OX)\style_.c":"$(OX)\style.h" \
2173
+ "$(OX)\sync_.c":"$(OX)\sync.h" \
2174
+ "$(OX)\tag_.c":"$(OX)\tag.h" \
2175
+ "$(OX)\tar_.c":"$(OX)\tar.h" \
2176
+ "$(OX)\terminal_.c":"$(OX)\terminal.h" \
2177
+ "$(OX)\th_main_.c":"$(OX)\th_main.h" \
2178
+ "$(OX)\timeline_.c":"$(OX)\timeline.h" \
2179
+ "$(OX)\tkt_.c":"$(OX)\tkt.h" \
2180
+ "$(OX)\tktsetup_.c":"$(OX)\tktsetup.h" \
2181
+ "$(OX)\undo_.c":"$(OX)\undo.h" \
2182
+ "$(OX)\unicode_.c":"$(OX)\unicode.h" \
2183
+ "$(OX)\unversioned_.c":"$(OX)\unversioned.h" \
2184
+ "$(OX)\update_.c":"$(OX)\update.h" \
2185
+ "$(OX)\url_.c":"$(OX)\url.h" \
2186
+ "$(OX)\user_.c":"$(OX)\user.h" \
2187
+ "$(OX)\utf8_.c":"$(OX)\utf8.h" \
2188
+ "$(OX)\util_.c":"$(OX)\util.h" \
2189
+ "$(OX)\verify_.c":"$(OX)\verify.h" \
2190
+ "$(OX)\vfile_.c":"$(OX)\vfile.h" \
2191
+ "$(OX)\webmail_.c":"$(OX)\webmail.h" \
2192
+ "$(OX)\wiki_.c":"$(OX)\wiki.h" \
2193
+ "$(OX)\wikiformat_.c":"$(OX)\wikiformat.h" \
2194
+ "$(OX)\winfile_.c":"$(OX)\winfile.h" \
2195
+ "$(OX)\winhttp_.c":"$(OX)\winhttp.h" \
2196
+ "$(OX)\wysiwyg_.c":"$(OX)\wysiwyg.h" \
2197
+ "$(OX)\xfer_.c":"$(OX)\xfer.h" \
2198
+ "$(OX)\xfersetup_.c":"$(OX)\xfersetup.h" \
2199
+ "$(OX)\zip_.c":"$(OX)\zip.h" \
2200
+ "$(SRCDIR)\sqlite3.h" \
2201
+ "$(SRCDIR)\th.h" \
2202
+ "$(OX)\VERSION.h" \
2203
+ "$(SRCDIR)\cson_amalgamation.h"
2204
+ @copy /Y nul: $@
20592205
--- win/Makefile.msc
+++ win/Makefile.msc
@@ -1,39 +1,52 @@
1 #
2 ##############################################################################
3 # WARNING: DO NOT EDIT, AUTOMATICALLY GENERATED FILE (SEE "src/makemake.tcl")
4 ##############################################################################
5 #
6 # This Makefile will only function correctly if used from a sub-directory
7 # that is a direct child of the top-level directory for this project.
8 #
9 !if !exist("..\.fossil-settings")
10 !error "Please change the current directory to the one containing this file."
11 !endif
12
13 #
14 # This file is automatically generated. Instead of editing this
15 # file, edit "makemake.tcl" then run "tclsh makemake.tcl"
16 # to regenerate this file.
17 #
18 B = ..
19 SRCDIR = $B\src
20 OBJDIR = .
21 OX = .
 
22 O = .obj
23 E = .exe
24 P = .pdb
25
26 # Perl is only necessary if OpenSSL support is enabled and it must
27 # be built from source code. The PERLDIR variable should point to
28 # the directory containing the main Perl binary (i.e. "perl.exe").
29 PERLDIR = C:\Perl\bin
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30 PERL = perl.exe
31
32 # Enable debugging symbols?
33 !ifndef DEBUG
34 DEBUG = 0
 
 
 
35 !endif
36
37 # Build the OpenSSL libraries?
38 !ifndef FOSSIL_BUILD_SSL
39 FOSSIL_BUILD_SSL = 0
@@ -150,27 +163,30 @@
150 ZLIB = zdll.lib
151 !else
152 ZLIB = zlib.lib
153 !endif
154
155 INCL = /I. /I$(SRCDIR) /I$B\win\include
156
157 !if $(FOSSIL_ENABLE_MINIZ)==0
158 INCL = $(INCL) /I$(ZINCDIR)
159 !endif
160
161 !if $(FOSSIL_ENABLE_SSL)!=0
162 INCL = $(INCL) /I$(SSLINCDIR)
163 !endif
164
165 !if $(FOSSIL_ENABLE_TCL)!=0
166 INCL = $(INCL) /I$(TCLINCDIR)
167 !endif
168
169 CFLAGS = /nologo
170 LDFLAGS =
171
 
 
 
172 !if $(FOSSIL_DYNAMIC_BUILD)!=0
173 LDFLAGS = $(LDFLAGS) /MANIFEST
174 !else
175 LDFLAGS = $(LDFLAGS) /NODEFAULTLIB:msvcrt /MANIFEST:NO
176 !endif
@@ -199,11 +215,11 @@
199 CRTFLAGS = /MT
200 !endif
201 !endif
202
203 !if $(DEBUG)!=0
204 CFLAGS = $(CFLAGS) /Zi $(CRTFLAGS) /Od
205 LDFLAGS = $(LDFLAGS) /DEBUG
206 !else
207 CFLAGS = $(CFLAGS) $(CRTFLAGS) /O2
208 !endif
209
@@ -219,11 +235,11 @@
219 RCC = $(RCC) /DFOSSIL_DYNAMIC_BUILD=1
220 !endif
221
222 !if $(FOSSIL_ENABLE_MINIZ)==0
223 LIBS = $(LIBS) $(ZLIB)
224 LIBDIR = $(LIBDIR) /LIBPATH:$(ZLIBDIR)
225 !endif
226
227 !if $(FOSSIL_ENABLE_MINIZ)!=0
228 TCC = $(TCC) /DFOSSIL_ENABLE_MINIZ=1
229 RCC = $(RCC) /DFOSSIL_ENABLE_MINIZ=1
@@ -236,11 +252,11 @@
236
237 !if $(FOSSIL_ENABLE_SSL)!=0
238 TCC = $(TCC) /DFOSSIL_ENABLE_SSL=1
239 RCC = $(RCC) /DFOSSIL_ENABLE_SSL=1
240 LIBS = $(LIBS) $(SSLLIB)
241 LIBDIR = $(LIBDIR) /LIBPATH:$(SSLLIBDIR)
242 !endif
243
244 !if $(FOSSIL_ENABLE_EXEC_REL_PATHS)!=0
245 TCC = $(TCC) /DFOSSIL_ENABLE_EXEC_REL_PATHS=1
246 RCC = $(RCC) /DFOSSIL_ENABLE_EXEC_REL_PATHS=1
@@ -283,11 +299,10 @@
283 /DSQLITE_DEFAULT_MEMSTATUS=0 \
284 /DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 \
285 /DSQLITE_LIKE_DOESNT_MATCH_BLOBS \
286 /DSQLITE_OMIT_DECLTYPE \
287 /DSQLITE_OMIT_DEPRECATED \
288 /DSQLITE_OMIT_GET_TABLE \
289 /DSQLITE_OMIT_PROGRESS_CALLBACK \
290 /DSQLITE_OMIT_SHARED_CACHE \
291 /DSQLITE_OMIT_LOAD_EXTENSION \
292 /DSQLITE_MAX_EXPR_DEPTH=0 \
293 /DSQLITE_USE_ALLOCA \
@@ -311,11 +326,10 @@
311 /DSQLITE_DEFAULT_MEMSTATUS=0 \
312 /DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 \
313 /DSQLITE_LIKE_DOESNT_MATCH_BLOBS \
314 /DSQLITE_OMIT_DECLTYPE \
315 /DSQLITE_OMIT_DEPRECATED \
316 /DSQLITE_OMIT_GET_TABLE \
317 /DSQLITE_OMIT_PROGRESS_CALLBACK \
318 /DSQLITE_OMIT_SHARED_CACHE \
319 /DSQLITE_OMIT_LOAD_EXTENSION \
320 /DSQLITE_MAX_EXPR_DEPTH=0 \
321 /DSQLITE_USE_ALLOCA \
@@ -344,405 +358,407 @@
344
345 MINIZ_OPTIONS = /DMINIZ_NO_STDIO \
346 /DMINIZ_NO_TIME \
347 /DMINIZ_NO_ARCHIVE_APIS
348
349 SRC = add_.c \
350 alerts_.c \
351 allrepo_.c \
352 attach_.c \
353 backlink_.c \
354 backoffice_.c \
355 bag_.c \
356 bisect_.c \
357 blob_.c \
358 branch_.c \
359 browse_.c \
360 builtin_.c \
361 bundle_.c \
362 cache_.c \
363 capabilities_.c \
364 captcha_.c \
365 cgi_.c \
366 checkin_.c \
367 checkout_.c \
368 clearsign_.c \
369 clone_.c \
370 comformat_.c \
371 configure_.c \
372 content_.c \
373 cookies_.c \
374 db_.c \
375 delta_.c \
376 deltacmd_.c \
377 deltafunc_.c \
378 descendants_.c \
379 diff_.c \
380 diffcmd_.c \
381 dispatch_.c \
382 doc_.c \
383 encode_.c \
384 etag_.c \
385 event_.c \
386 export_.c \
387 extcgi_.c \
388 file_.c \
389 fileedit_.c \
390 finfo_.c \
391 foci_.c \
392 forum_.c \
393 fshell_.c \
394 fusefs_.c \
395 fuzz_.c \
396 glob_.c \
397 graph_.c \
398 gzip_.c \
399 hname_.c \
400 http_.c \
401 http_socket_.c \
402 http_ssl_.c \
403 http_transport_.c \
404 import_.c \
405 info_.c \
406 json_.c \
407 json_artifact_.c \
408 json_branch_.c \
409 json_config_.c \
410 json_diff_.c \
411 json_dir_.c \
412 json_finfo_.c \
413 json_login_.c \
414 json_query_.c \
415 json_report_.c \
416 json_status_.c \
417 json_tag_.c \
418 json_timeline_.c \
419 json_user_.c \
420 json_wiki_.c \
421 leaf_.c \
422 loadctrl_.c \
423 login_.c \
424 lookslike_.c \
425 main_.c \
426 manifest_.c \
427 markdown_.c \
428 markdown_html_.c \
429 md5_.c \
430 merge_.c \
431 merge3_.c \
432 moderate_.c \
433 name_.c \
434 path_.c \
435 piechart_.c \
436 pivot_.c \
437 popen_.c \
438 pqueue_.c \
439 printf_.c \
440 publish_.c \
441 purge_.c \
442 rebuild_.c \
443 regexp_.c \
444 repolist_.c \
445 report_.c \
446 rss_.c \
447 schema_.c \
448 search_.c \
449 security_audit_.c \
450 setup_.c \
451 setupuser_.c \
452 sha1_.c \
453 sha1hard_.c \
454 sha3_.c \
455 shun_.c \
456 sitemap_.c \
457 skins_.c \
458 smtp_.c \
459 sqlcmd_.c \
460 stash_.c \
461 stat_.c \
462 statrep_.c \
463 style_.c \
464 sync_.c \
465 tag_.c \
466 tar_.c \
467 terminal_.c \
468 th_main_.c \
469 timeline_.c \
470 tkt_.c \
471 tktsetup_.c \
472 undo_.c \
473 unicode_.c \
474 unversioned_.c \
475 update_.c \
476 url_.c \
477 user_.c \
478 utf8_.c \
479 util_.c \
480 verify_.c \
481 vfile_.c \
482 webmail_.c \
483 wiki_.c \
484 wikiformat_.c \
485 winfile_.c \
486 winhttp_.c \
487 wysiwyg_.c \
488 xfer_.c \
489 xfersetup_.c \
490 zip_.c
491
492 EXTRA_FILES = $(SRCDIR)\..\skins\aht\details.txt \
493 $(SRCDIR)\..\skins\ardoise\css.txt \
494 $(SRCDIR)\..\skins\ardoise\details.txt \
495 $(SRCDIR)\..\skins\ardoise\footer.txt \
496 $(SRCDIR)\..\skins\ardoise\header.txt \
497 $(SRCDIR)\..\skins\black_and_white\css.txt \
498 $(SRCDIR)\..\skins\black_and_white\details.txt \
499 $(SRCDIR)\..\skins\black_and_white\footer.txt \
500 $(SRCDIR)\..\skins\black_and_white\header.txt \
501 $(SRCDIR)\..\skins\blitz\css.txt \
502 $(SRCDIR)\..\skins\blitz\details.txt \
503 $(SRCDIR)\..\skins\blitz\footer.txt \
504 $(SRCDIR)\..\skins\blitz\header.txt \
505 $(SRCDIR)\..\skins\blitz\ticket.txt \
506 $(SRCDIR)\..\skins\blitz_no_logo\css.txt \
507 $(SRCDIR)\..\skins\blitz_no_logo\details.txt \
508 $(SRCDIR)\..\skins\blitz_no_logo\footer.txt \
509 $(SRCDIR)\..\skins\blitz_no_logo\header.txt \
510 $(SRCDIR)\..\skins\blitz_no_logo\ticket.txt \
511 $(SRCDIR)\..\skins\bootstrap\css.txt \
512 $(SRCDIR)\..\skins\bootstrap\details.txt \
513 $(SRCDIR)\..\skins\bootstrap\footer.txt \
514 $(SRCDIR)\..\skins\bootstrap\header.txt \
515 $(SRCDIR)\..\skins\default\css.txt \
516 $(SRCDIR)\..\skins\default\details.txt \
517 $(SRCDIR)\..\skins\default\footer.txt \
518 $(SRCDIR)\..\skins\default\header.txt \
519 $(SRCDIR)\..\skins\default\js.txt \
520 $(SRCDIR)\..\skins\eagle\css.txt \
521 $(SRCDIR)\..\skins\eagle\details.txt \
522 $(SRCDIR)\..\skins\eagle\footer.txt \
523 $(SRCDIR)\..\skins\eagle\header.txt \
524 $(SRCDIR)\..\skins\enhanced1\css.txt \
525 $(SRCDIR)\..\skins\enhanced1\details.txt \
526 $(SRCDIR)\..\skins\enhanced1\footer.txt \
527 $(SRCDIR)\..\skins\enhanced1\header.txt \
528 $(SRCDIR)\..\skins\khaki\css.txt \
529 $(SRCDIR)\..\skins\khaki\details.txt \
530 $(SRCDIR)\..\skins\khaki\footer.txt \
531 $(SRCDIR)\..\skins\khaki\header.txt \
532 $(SRCDIR)\..\skins\original\css.txt \
533 $(SRCDIR)\..\skins\original\details.txt \
534 $(SRCDIR)\..\skins\original\footer.txt \
535 $(SRCDIR)\..\skins\original\header.txt \
536 $(SRCDIR)\..\skins\plain_gray\css.txt \
537 $(SRCDIR)\..\skins\plain_gray\details.txt \
538 $(SRCDIR)\..\skins\plain_gray\footer.txt \
539 $(SRCDIR)\..\skins\plain_gray\header.txt \
540 $(SRCDIR)\..\skins\rounded1\css.txt \
541 $(SRCDIR)\..\skins\rounded1\details.txt \
542 $(SRCDIR)\..\skins\rounded1\footer.txt \
543 $(SRCDIR)\..\skins\rounded1\header.txt \
544 $(SRCDIR)\..\skins\xekri\css.txt \
545 $(SRCDIR)\..\skins\xekri\details.txt \
546 $(SRCDIR)\..\skins\xekri\footer.txt \
547 $(SRCDIR)\..\skins\xekri\header.txt \
548 $(SRCDIR)\accordion.js \
549 $(SRCDIR)\ci_edit.js \
550 $(SRCDIR)\copybtn.js \
551 $(SRCDIR)\default.css \
552 $(SRCDIR)\diff.tcl \
553 $(SRCDIR)\forum.js \
554 $(SRCDIR)\fossil.bootstrap.js \
555 $(SRCDIR)\fossil.confirmer.js \
556 $(SRCDIR)\fossil.dom.js \
557 $(SRCDIR)\fossil.fetch.js \
558 $(SRCDIR)\fossil.page.fileedit.js \
559 $(SRCDIR)\fossil.storage.js \
560 $(SRCDIR)\fossil.tabs.js \
561 $(SRCDIR)\graph.js \
562 $(SRCDIR)\href.js \
563 $(SRCDIR)\login.js \
564 $(SRCDIR)\markdown.md \
565 $(SRCDIR)\menu.js \
566 $(SRCDIR)\sbsdiff.js \
567 $(SRCDIR)\scroll.js \
568 $(SRCDIR)\skin.js \
569 $(SRCDIR)\sorttable.js \
570 $(SRCDIR)\sounds\0.wav \
571 $(SRCDIR)\sounds\1.wav \
572 $(SRCDIR)\sounds\2.wav \
573 $(SRCDIR)\sounds\3.wav \
574 $(SRCDIR)\sounds\4.wav \
575 $(SRCDIR)\sounds\5.wav \
576 $(SRCDIR)\sounds\6.wav \
577 $(SRCDIR)\sounds\7.wav \
578 $(SRCDIR)\sounds\8.wav \
579 $(SRCDIR)\sounds\9.wav \
580 $(SRCDIR)\sounds\a.wav \
581 $(SRCDIR)\sounds\b.wav \
582 $(SRCDIR)\sounds\c.wav \
583 $(SRCDIR)\sounds\d.wav \
584 $(SRCDIR)\sounds\e.wav \
585 $(SRCDIR)\sounds\f.wav \
586 $(SRCDIR)\style.admin_log.css \
587 $(SRCDIR)\style.fileedit.css \
588 $(SRCDIR)\tree.js \
589 $(SRCDIR)\useredit.js \
590 $(SRCDIR)\wiki.wiki
591
592 OBJ = $(OX)\add$O \
593 $(OX)\alerts$O \
594 $(OX)\allrepo$O \
595 $(OX)\attach$O \
596 $(OX)\backlink$O \
597 $(OX)\backoffice$O \
598 $(OX)\bag$O \
599 $(OX)\bisect$O \
600 $(OX)\blob$O \
601 $(OX)\branch$O \
602 $(OX)\browse$O \
603 $(OX)\builtin$O \
604 $(OX)\bundle$O \
605 $(OX)\cache$O \
606 $(OX)\capabilities$O \
607 $(OX)\captcha$O \
608 $(OX)\cgi$O \
609 $(OX)\checkin$O \
610 $(OX)\checkout$O \
611 $(OX)\clearsign$O \
612 $(OX)\clone$O \
613 $(OX)\comformat$O \
614 $(OX)\configure$O \
615 $(OX)\content$O \
616 $(OX)\cookies$O \
617 $(OX)\cson_amalgamation$O \
618 $(OX)\db$O \
619 $(OX)\delta$O \
620 $(OX)\deltacmd$O \
621 $(OX)\deltafunc$O \
622 $(OX)\descendants$O \
623 $(OX)\diff$O \
624 $(OX)\diffcmd$O \
625 $(OX)\dispatch$O \
626 $(OX)\doc$O \
627 $(OX)\encode$O \
628 $(OX)\etag$O \
629 $(OX)\event$O \
630 $(OX)\export$O \
631 $(OX)\extcgi$O \
632 $(OX)\file$O \
633 $(OX)\fileedit$O \
634 $(OX)\finfo$O \
635 $(OX)\foci$O \
636 $(OX)\forum$O \
637 $(OX)\fshell$O \
638 $(OX)\fusefs$O \
639 $(OX)\fuzz$O \
640 $(OX)\glob$O \
641 $(OX)\graph$O \
642 $(OX)\gzip$O \
643 $(OX)\hname$O \
644 $(OX)\http$O \
645 $(OX)\http_socket$O \
646 $(OX)\http_ssl$O \
647 $(OX)\http_transport$O \
648 $(OX)\import$O \
649 $(OX)\info$O \
650 $(OX)\json$O \
651 $(OX)\json_artifact$O \
652 $(OX)\json_branch$O \
653 $(OX)\json_config$O \
654 $(OX)\json_diff$O \
655 $(OX)\json_dir$O \
656 $(OX)\json_finfo$O \
657 $(OX)\json_login$O \
658 $(OX)\json_query$O \
659 $(OX)\json_report$O \
660 $(OX)\json_status$O \
661 $(OX)\json_tag$O \
662 $(OX)\json_timeline$O \
663 $(OX)\json_user$O \
664 $(OX)\json_wiki$O \
665 $(OX)\leaf$O \
666 $(OX)\loadctrl$O \
667 $(OX)\login$O \
668 $(OX)\lookslike$O \
669 $(OX)\main$O \
670 $(OX)\manifest$O \
671 $(OX)\markdown$O \
672 $(OX)\markdown_html$O \
673 $(OX)\md5$O \
674 $(OX)\merge$O \
675 $(OX)\merge3$O \
676 $(OX)\moderate$O \
677 $(OX)\name$O \
678 $(OX)\path$O \
679 $(OX)\piechart$O \
680 $(OX)\pivot$O \
681 $(OX)\popen$O \
682 $(OX)\pqueue$O \
683 $(OX)\printf$O \
684 $(OX)\publish$O \
685 $(OX)\purge$O \
686 $(OX)\rebuild$O \
687 $(OX)\regexp$O \
688 $(OX)\repolist$O \
689 $(OX)\report$O \
690 $(OX)\rss$O \
691 $(OX)\schema$O \
692 $(OX)\search$O \
693 $(OX)\security_audit$O \
694 $(OX)\setup$O \
695 $(OX)\setupuser$O \
696 $(OX)\sha1$O \
697 $(OX)\sha1hard$O \
698 $(OX)\sha3$O \
699 $(OX)\shell$O \
700 $(OX)\shun$O \
701 $(OX)\sitemap$O \
702 $(OX)\skins$O \
703 $(OX)\smtp$O \
704 $(OX)\sqlcmd$O \
705 $(OX)\sqlite3$O \
706 $(OX)\stash$O \
707 $(OX)\stat$O \
708 $(OX)\statrep$O \
709 $(OX)\style$O \
710 $(OX)\sync$O \
711 $(OX)\tag$O \
712 $(OX)\tar$O \
713 $(OX)\terminal$O \
714 $(OX)\th$O \
715 $(OX)\th_lang$O \
716 $(OX)\th_main$O \
717 $(OX)\th_tcl$O \
718 $(OX)\timeline$O \
719 $(OX)\tkt$O \
720 $(OX)\tktsetup$O \
721 $(OX)\undo$O \
722 $(OX)\unicode$O \
723 $(OX)\unversioned$O \
724 $(OX)\update$O \
725 $(OX)\url$O \
726 $(OX)\user$O \
727 $(OX)\utf8$O \
728 $(OX)\util$O \
729 $(OX)\verify$O \
730 $(OX)\vfile$O \
731 $(OX)\webmail$O \
732 $(OX)\wiki$O \
733 $(OX)\wikiformat$O \
734 $(OX)\winfile$O \
735 $(OX)\winhttp$O \
736 $(OX)\wysiwyg$O \
737 $(OX)\xfer$O \
738 $(OX)\xfersetup$O \
739 $(OX)\zip$O \
 
 
740 !if $(FOSSIL_ENABLE_MINIZ)!=0
741 $(OX)\miniz$O \
742 !endif
743 $(OX)\fossil.res
744
745
746 !ifndef BASEAPPNAME
747 BASEAPPNAME = fossil
748 !endif
@@ -749,32 +765,52 @@
749
750 APPNAME = $(OX)\$(BASEAPPNAME)$(E)
751 PDBNAME = $(OX)\$(BASEAPPNAME)$(P)
752 APPTARGETS =
753
754 all: $(OX) $(APPNAME)
 
 
 
 
 
 
 
 
 
 
 
 
 
755
756 zlib:
757 @echo Building zlib from "$(ZLIBDIR)"...
758 !if $(FOSSIL_ENABLE_WINXP)!=0
759 @pushd "$(ZLIBDIR)" && $(MAKE) /f win32\Makefile.msc $(ZLIB) "CC=cl $(XPCFLAGS)" "LD=link $(XPLDFLAGS)" && popd
760 !else
761 @pushd "$(ZLIBDIR)" && $(MAKE) /f win32\Makefile.msc $(ZLIB) && popd
762 !endif
763
 
 
 
764 !if $(FOSSIL_ENABLE_SSL)!=0
765 openssl:
766 @echo Building OpenSSL from "$(SSLDIR)"...
767 !if "$(PERLDIR)" != ""
768 @set PATH=$(PERLDIR);$(PATH)
 
 
769 !endif
770 @pushd "$(SSLDIR)" && $(PERL) Configure $(SSLCONFIG) && popd
771 !if $(FOSSIL_ENABLE_WINXP)!=0
772 @pushd "$(SSLDIR)" && $(MAKE) "CC=cl $(XPCFLAGS)" "LFLAGS=$(XPLDFLAGS)" && popd
773 !else
774 @pushd "$(SSLDIR)" && $(MAKE) && popd
775 !endif
 
 
 
776 !endif
777
778 !if $(FOSSIL_ENABLE_MINIZ)==0
779 !if $(FOSSIL_BUILD_ZLIB)!=0
780 APPTARGETS = $(APPTARGETS) zlib
@@ -785,191 +821,188 @@
785 !if $(FOSSIL_BUILD_SSL)!=0
786 APPTARGETS = $(APPTARGETS) openssl
787 !endif
788 !endif
789
790 $(APPNAME) : $(APPTARGETS) translate$E mkindex$E codecheck1$E headers $(OBJ) $(OX)\linkopts
791 cd $(OX)
792 codecheck1$E $(SRC)
793 link $(LDFLAGS) /OUT:$@ $(LIBDIR) Wsetargv.obj fossil.res @linkopts
794 if exist [email protected] \
795 $(MTC) -nologo -manifest [email protected] -outputresource:$@;1
796
797 $(OX)\linkopts: $B\win\Makefile.msc
798 echo $(OX)\add.obj > $@
799 echo $(OX)\alerts.obj >> $@
800 echo $(OX)\allrepo.obj >> $@
801 echo $(OX)\attach.obj >> $@
802 echo $(OX)\backlink.obj >> $@
803 echo $(OX)\backoffice.obj >> $@
804 echo $(OX)\bag.obj >> $@
805 echo $(OX)\bisect.obj >> $@
806 echo $(OX)\blob.obj >> $@
807 echo $(OX)\branch.obj >> $@
808 echo $(OX)\browse.obj >> $@
809 echo $(OX)\builtin.obj >> $@
810 echo $(OX)\bundle.obj >> $@
811 echo $(OX)\cache.obj >> $@
812 echo $(OX)\capabilities.obj >> $@
813 echo $(OX)\captcha.obj >> $@
814 echo $(OX)\cgi.obj >> $@
815 echo $(OX)\checkin.obj >> $@
816 echo $(OX)\checkout.obj >> $@
817 echo $(OX)\clearsign.obj >> $@
818 echo $(OX)\clone.obj >> $@
819 echo $(OX)\comformat.obj >> $@
820 echo $(OX)\configure.obj >> $@
821 echo $(OX)\content.obj >> $@
822 echo $(OX)\cookies.obj >> $@
823 echo $(OX)\cson_amalgamation.obj >> $@
824 echo $(OX)\db.obj >> $@
825 echo $(OX)\delta.obj >> $@
826 echo $(OX)\deltacmd.obj >> $@
827 echo $(OX)\deltafunc.obj >> $@
828 echo $(OX)\descendants.obj >> $@
829 echo $(OX)\diff.obj >> $@
830 echo $(OX)\diffcmd.obj >> $@
831 echo $(OX)\dispatch.obj >> $@
832 echo $(OX)\doc.obj >> $@
833 echo $(OX)\encode.obj >> $@
834 echo $(OX)\etag.obj >> $@
835 echo $(OX)\event.obj >> $@
836 echo $(OX)\export.obj >> $@
837 echo $(OX)\extcgi.obj >> $@
838 echo $(OX)\file.obj >> $@
839 echo $(OX)\fileedit.obj >> $@
840 echo $(OX)\finfo.obj >> $@
841 echo $(OX)\foci.obj >> $@
842 echo $(OX)\forum.obj >> $@
843 echo $(OX)\fshell.obj >> $@
844 echo $(OX)\fusefs.obj >> $@
845 echo $(OX)\fuzz.obj >> $@
846 echo $(OX)\glob.obj >> $@
847 echo $(OX)\graph.obj >> $@
848 echo $(OX)\gzip.obj >> $@
849 echo $(OX)\hname.obj >> $@
850 echo $(OX)\http.obj >> $@
851 echo $(OX)\http_socket.obj >> $@
852 echo $(OX)\http_ssl.obj >> $@
853 echo $(OX)\http_transport.obj >> $@
854 echo $(OX)\import.obj >> $@
855 echo $(OX)\info.obj >> $@
856 echo $(OX)\json.obj >> $@
857 echo $(OX)\json_artifact.obj >> $@
858 echo $(OX)\json_branch.obj >> $@
859 echo $(OX)\json_config.obj >> $@
860 echo $(OX)\json_diff.obj >> $@
861 echo $(OX)\json_dir.obj >> $@
862 echo $(OX)\json_finfo.obj >> $@
863 echo $(OX)\json_login.obj >> $@
864 echo $(OX)\json_query.obj >> $@
865 echo $(OX)\json_report.obj >> $@
866 echo $(OX)\json_status.obj >> $@
867 echo $(OX)\json_tag.obj >> $@
868 echo $(OX)\json_timeline.obj >> $@
869 echo $(OX)\json_user.obj >> $@
870 echo $(OX)\json_wiki.obj >> $@
871 echo $(OX)\leaf.obj >> $@
872 echo $(OX)\loadctrl.obj >> $@
873 echo $(OX)\login.obj >> $@
874 echo $(OX)\lookslike.obj >> $@
875 echo $(OX)\main.obj >> $@
876 echo $(OX)\manifest.obj >> $@
877 echo $(OX)\markdown.obj >> $@
878 echo $(OX)\markdown_html.obj >> $@
879 echo $(OX)\md5.obj >> $@
880 echo $(OX)\merge.obj >> $@
881 echo $(OX)\merge3.obj >> $@
882 echo $(OX)\moderate.obj >> $@
883 echo $(OX)\name.obj >> $@
884 echo $(OX)\path.obj >> $@
885 echo $(OX)\piechart.obj >> $@
886 echo $(OX)\pivot.obj >> $@
887 echo $(OX)\popen.obj >> $@
888 echo $(OX)\pqueue.obj >> $@
889 echo $(OX)\printf.obj >> $@
890 echo $(OX)\publish.obj >> $@
891 echo $(OX)\purge.obj >> $@
892 echo $(OX)\rebuild.obj >> $@
893 echo $(OX)\regexp.obj >> $@
894 echo $(OX)\repolist.obj >> $@
895 echo $(OX)\report.obj >> $@
896 echo $(OX)\rss.obj >> $@
897 echo $(OX)\schema.obj >> $@
898 echo $(OX)\search.obj >> $@
899 echo $(OX)\security_audit.obj >> $@
900 echo $(OX)\setup.obj >> $@
901 echo $(OX)\setupuser.obj >> $@
902 echo $(OX)\sha1.obj >> $@
903 echo $(OX)\sha1hard.obj >> $@
904 echo $(OX)\sha3.obj >> $@
905 echo $(OX)\shell.obj >> $@
906 echo $(OX)\shun.obj >> $@
907 echo $(OX)\sitemap.obj >> $@
908 echo $(OX)\skins.obj >> $@
909 echo $(OX)\smtp.obj >> $@
910 echo $(OX)\sqlcmd.obj >> $@
911 echo $(OX)\sqlite3.obj >> $@
912 echo $(OX)\stash.obj >> $@
913 echo $(OX)\stat.obj >> $@
914 echo $(OX)\statrep.obj >> $@
915 echo $(OX)\style.obj >> $@
916 echo $(OX)\sync.obj >> $@
917 echo $(OX)\tag.obj >> $@
918 echo $(OX)\tar.obj >> $@
919 echo $(OX)\terminal.obj >> $@
920 echo $(OX)\th.obj >> $@
921 echo $(OX)\th_lang.obj >> $@
922 echo $(OX)\th_main.obj >> $@
923 echo $(OX)\th_tcl.obj >> $@
924 echo $(OX)\timeline.obj >> $@
925 echo $(OX)\tkt.obj >> $@
926 echo $(OX)\tktsetup.obj >> $@
927 echo $(OX)\undo.obj >> $@
928 echo $(OX)\unicode.obj >> $@
929 echo $(OX)\unversioned.obj >> $@
930 echo $(OX)\update.obj >> $@
931 echo $(OX)\url.obj >> $@
932 echo $(OX)\user.obj >> $@
933 echo $(OX)\utf8.obj >> $@
934 echo $(OX)\util.obj >> $@
935 echo $(OX)\verify.obj >> $@
936 echo $(OX)\vfile.obj >> $@
937 echo $(OX)\webmail.obj >> $@
938 echo $(OX)\wiki.obj >> $@
939 echo $(OX)\wikiformat.obj >> $@
940 echo $(OX)\winfile.obj >> $@
941 echo $(OX)\winhttp.obj >> $@
942 echo $(OX)\wysiwyg.obj >> $@
943 echo $(OX)\xfer.obj >> $@
944 echo $(OX)\xfersetup.obj >> $@
945 echo $(OX)\zip.obj >> $@
946 !if $(FOSSIL_ENABLE_MINIZ)!=0
947 echo $(OX)\miniz.obj >> $@
948 !endif
949 echo $(LIBS) >> $@
950
951 $(OX):
952 @-mkdir $@
953
954 translate$E: $(SRCDIR)\translate.c
955 $(BCC) $**
956
957 makeheaders$E: $(SRCDIR)\makeheaders.c
958 $(BCC) $**
959
960 mkindex$E: $(SRCDIR)\mkindex.c
961 $(BCC) $**
962
963 mkbuiltin$E: $(SRCDIR)\mkbuiltin.c
964 $(BCC) $**
965
966 mkversion$E: $(SRCDIR)\mkversion.c
967 $(BCC) $**
968
969 codecheck1$E: $(SRCDIR)\codecheck1.c
970 $(BCC) $**
971
972 !if $(USE_SEE)!=0
973 SEE_FLAGS = /DSQLITE_HAS_CODEC=1 /DSQLITE_SHELL_DBKEY_PROC=fossil_key
974 SQLITE3_SHELL_SRC = $(SRCDIR)\shell-see.c
975 SQLITE3_SRC = $(SRCDIR)\sqlite3-see.c
@@ -977,1082 +1010,1195 @@
977 SEE_FLAGS =
978 SQLITE3_SHELL_SRC = $(SRCDIR)\shell.c
979 SQLITE3_SRC = $(SRCDIR)\sqlite3.c
980 !endif
981
982 $(OX)\shell$O : $(SQLITE3_SHELL_SRC) $B\win\Makefile.msc
983 $(TCC) /Fo$@ $(SHELL_OPTIONS) $(SQLITE_OPTIONS) $(SHELL_CFLAGS) $(SEE_FLAGS) -c $(SQLITE3_SHELL_SRC)
984
985 $(OX)\sqlite3$O : $(SQLITE3_SRC) $B\win\Makefile.msc
986 $(TCC) /Fo$@ -c $(SQLITE_OPTIONS) $(SQLITE_CFLAGS) $(SEE_FLAGS) $(SQLITE3_SRC)
987
988 $(OX)\th$O : $(SRCDIR)\th.c
989 $(TCC) /Fo$@ -c $**
990
991 $(OX)\th_lang$O : $(SRCDIR)\th_lang.c
992 $(TCC) /Fo$@ -c $**
993
994 $(OX)\th_tcl$O : $(SRCDIR)\th_tcl.c
995 $(TCC) /Fo$@ -c $**
996
997 $(OX)\miniz$O : $(SRCDIR)\miniz.c
998 $(TCC) /Fo$@ -c $(MINIZ_OPTIONS) $(SRCDIR)\miniz.c
999
1000 VERSION.h : mkversion$E $B\manifest.uuid $B\manifest $B\VERSION
1001 $** > $@
1002
1003 $(OX)\cson_amalgamation$O : $(SRCDIR)\cson_amalgamation.c
1004 $(TCC) /Fo$@ /c $**
1005
1006 page_index.h: mkindex$E $(SRC)
1007 $** > $@
1008
1009 builtin_data.h: mkbuiltin$E $(EXTRA_FILES)
1010 mkbuiltin$E --prefix $(SRCDIR)/ $(EXTRA_FILES) > $@
1011
1012 clean:
1013 -del $(OX)\*.obj 2>NUL
1014 -del *.obj 2>NUL
1015 -del *_.c 2>NUL
1016 -del *.h 2>NUL
1017 -del *.ilk 2>NUL
1018 -del *.map 2>NUL
1019 -del *.res 2>NUL
1020 -del headers 2>NUL
1021 -del linkopts 2>NUL
1022 -del vc*.pdb 2>NUL
1023
1024 realclean: clean
1025 -del $(APPNAME) 2>NUL
1026 -del $(PDBNAME) 2>NUL
1027 -del translate$E 2>NUL
1028 -del translate$P 2>NUL
1029 -del mkindex$E 2>NUL
1030 -del mkindex$P 2>NUL
1031 -del makeheaders$E 2>NUL
1032 -del makeheaders$P 2>NUL
1033 -del mkversion$E 2>NUL
1034 -del mkversion$P 2>NUL
1035 -del codecheck1$E 2>NUL
1036 -del codecheck1$P 2>NUL
1037 -del mkbuiltin$E 2>NUL
1038 -del mkbuiltin$P 2>NUL
1039
1040 $(OBJDIR)\json$O : $(SRCDIR)\json_detail.h
1041 $(OBJDIR)\json_artifact$O : $(SRCDIR)\json_detail.h
1042 $(OBJDIR)\json_branch$O : $(SRCDIR)\json_detail.h
1043 $(OBJDIR)\json_config$O : $(SRCDIR)\json_detail.h
1044 $(OBJDIR)\json_diff$O : $(SRCDIR)\json_detail.h
1045 $(OBJDIR)\json_dir$O : $(SRCDIR)\json_detail.h
1046 $(OBJDIR)\json_finfo$O : $(SRCDIR)\json_detail.h
1047 $(OBJDIR)\json_login$O : $(SRCDIR)\json_detail.h
1048 $(OBJDIR)\json_query$O : $(SRCDIR)\json_detail.h
1049 $(OBJDIR)\json_report$O : $(SRCDIR)\json_detail.h
1050 $(OBJDIR)\json_status$O : $(SRCDIR)\json_detail.h
1051 $(OBJDIR)\json_tag$O : $(SRCDIR)\json_detail.h
1052 $(OBJDIR)\json_timeline$O : $(SRCDIR)\json_detail.h
1053 $(OBJDIR)\json_user$O : $(SRCDIR)\json_detail.h
1054 $(OBJDIR)\json_wiki$O : $(SRCDIR)\json_detail.h
1055
1056 $(OX)\add$O : add_.c add.h
1057 $(TCC) /Fo$@ -c add_.c
1058
1059 add_.c : $(SRCDIR)\add.c
1060 translate$E $** > $@
1061
1062 $(OX)\alerts$O : alerts_.c alerts.h
1063 $(TCC) /Fo$@ -c alerts_.c
1064
1065 alerts_.c : $(SRCDIR)\alerts.c
1066 translate$E $** > $@
1067
1068 $(OX)\allrepo$O : allrepo_.c allrepo.h
1069 $(TCC) /Fo$@ -c allrepo_.c
1070
1071 allrepo_.c : $(SRCDIR)\allrepo.c
1072 translate$E $** > $@
1073
1074 $(OX)\attach$O : attach_.c attach.h
1075 $(TCC) /Fo$@ -c attach_.c
1076
1077 attach_.c : $(SRCDIR)\attach.c
1078 translate$E $** > $@
1079
1080 $(OX)\backlink$O : backlink_.c backlink.h
1081 $(TCC) /Fo$@ -c backlink_.c
1082
1083 backlink_.c : $(SRCDIR)\backlink.c
1084 translate$E $** > $@
1085
1086 $(OX)\backoffice$O : backoffice_.c backoffice.h
1087 $(TCC) /Fo$@ -c backoffice_.c
1088
1089 backoffice_.c : $(SRCDIR)\backoffice.c
1090 translate$E $** > $@
1091
1092 $(OX)\bag$O : bag_.c bag.h
1093 $(TCC) /Fo$@ -c bag_.c
1094
1095 bag_.c : $(SRCDIR)\bag.c
1096 translate$E $** > $@
1097
1098 $(OX)\bisect$O : bisect_.c bisect.h
1099 $(TCC) /Fo$@ -c bisect_.c
1100
1101 bisect_.c : $(SRCDIR)\bisect.c
1102 translate$E $** > $@
1103
1104 $(OX)\blob$O : blob_.c blob.h
1105 $(TCC) /Fo$@ -c blob_.c
1106
1107 blob_.c : $(SRCDIR)\blob.c
1108 translate$E $** > $@
1109
1110 $(OX)\branch$O : branch_.c branch.h
1111 $(TCC) /Fo$@ -c branch_.c
1112
1113 branch_.c : $(SRCDIR)\branch.c
1114 translate$E $** > $@
1115
1116 $(OX)\browse$O : browse_.c browse.h
1117 $(TCC) /Fo$@ -c browse_.c
1118
1119 browse_.c : $(SRCDIR)\browse.c
1120 translate$E $** > $@
1121
1122 $(OX)\builtin$O : builtin_.c builtin.h
1123 $(TCC) /Fo$@ -c builtin_.c
1124
1125 builtin_.c : $(SRCDIR)\builtin.c
1126 translate$E $** > $@
1127
1128 $(OX)\bundle$O : bundle_.c bundle.h
1129 $(TCC) /Fo$@ -c bundle_.c
1130
1131 bundle_.c : $(SRCDIR)\bundle.c
1132 translate$E $** > $@
1133
1134 $(OX)\cache$O : cache_.c cache.h
1135 $(TCC) /Fo$@ -c cache_.c
1136
1137 cache_.c : $(SRCDIR)\cache.c
1138 translate$E $** > $@
1139
1140 $(OX)\capabilities$O : capabilities_.c capabilities.h
1141 $(TCC) /Fo$@ -c capabilities_.c
1142
1143 capabilities_.c : $(SRCDIR)\capabilities.c
1144 translate$E $** > $@
1145
1146 $(OX)\captcha$O : captcha_.c captcha.h
1147 $(TCC) /Fo$@ -c captcha_.c
1148
1149 captcha_.c : $(SRCDIR)\captcha.c
1150 translate$E $** > $@
1151
1152 $(OX)\cgi$O : cgi_.c cgi.h
1153 $(TCC) /Fo$@ -c cgi_.c
1154
1155 cgi_.c : $(SRCDIR)\cgi.c
1156 translate$E $** > $@
1157
1158 $(OX)\checkin$O : checkin_.c checkin.h
1159 $(TCC) /Fo$@ -c checkin_.c
1160
1161 checkin_.c : $(SRCDIR)\checkin.c
1162 translate$E $** > $@
1163
1164 $(OX)\checkout$O : checkout_.c checkout.h
1165 $(TCC) /Fo$@ -c checkout_.c
1166
1167 checkout_.c : $(SRCDIR)\checkout.c
1168 translate$E $** > $@
1169
1170 $(OX)\clearsign$O : clearsign_.c clearsign.h
1171 $(TCC) /Fo$@ -c clearsign_.c
1172
1173 clearsign_.c : $(SRCDIR)\clearsign.c
1174 translate$E $** > $@
1175
1176 $(OX)\clone$O : clone_.c clone.h
1177 $(TCC) /Fo$@ -c clone_.c
1178
1179 clone_.c : $(SRCDIR)\clone.c
1180 translate$E $** > $@
1181
1182 $(OX)\comformat$O : comformat_.c comformat.h
1183 $(TCC) /Fo$@ -c comformat_.c
1184
1185 comformat_.c : $(SRCDIR)\comformat.c
1186 translate$E $** > $@
1187
1188 $(OX)\configure$O : configure_.c configure.h
1189 $(TCC) /Fo$@ -c configure_.c
1190
1191 configure_.c : $(SRCDIR)\configure.c
1192 translate$E $** > $@
1193
1194 $(OX)\content$O : content_.c content.h
1195 $(TCC) /Fo$@ -c content_.c
1196
1197 content_.c : $(SRCDIR)\content.c
1198 translate$E $** > $@
1199
1200 $(OX)\cookies$O : cookies_.c cookies.h
1201 $(TCC) /Fo$@ -c cookies_.c
1202
1203 cookies_.c : $(SRCDIR)\cookies.c
1204 translate$E $** > $@
1205
1206 $(OX)\db$O : db_.c db.h
1207 $(TCC) /Fo$@ -c db_.c
1208
1209 db_.c : $(SRCDIR)\db.c
1210 translate$E $** > $@
1211
1212 $(OX)\delta$O : delta_.c delta.h
1213 $(TCC) /Fo$@ -c delta_.c
1214
1215 delta_.c : $(SRCDIR)\delta.c
1216 translate$E $** > $@
1217
1218 $(OX)\deltacmd$O : deltacmd_.c deltacmd.h
1219 $(TCC) /Fo$@ -c deltacmd_.c
1220
1221 deltacmd_.c : $(SRCDIR)\deltacmd.c
1222 translate$E $** > $@
1223
1224 $(OX)\deltafunc$O : deltafunc_.c deltafunc.h
1225 $(TCC) /Fo$@ -c deltafunc_.c
1226
1227 deltafunc_.c : $(SRCDIR)\deltafunc.c
1228 translate$E $** > $@
1229
1230 $(OX)\descendants$O : descendants_.c descendants.h
1231 $(TCC) /Fo$@ -c descendants_.c
1232
1233 descendants_.c : $(SRCDIR)\descendants.c
1234 translate$E $** > $@
1235
1236 $(OX)\diff$O : diff_.c diff.h
1237 $(TCC) /Fo$@ -c diff_.c
1238
1239 diff_.c : $(SRCDIR)\diff.c
1240 translate$E $** > $@
1241
1242 $(OX)\diffcmd$O : diffcmd_.c diffcmd.h
1243 $(TCC) /Fo$@ -c diffcmd_.c
1244
1245 diffcmd_.c : $(SRCDIR)\diffcmd.c
1246 translate$E $** > $@
1247
1248 $(OX)\dispatch$O : dispatch_.c dispatch.h
1249 $(TCC) /Fo$@ -c dispatch_.c
1250
1251 dispatch_.c : $(SRCDIR)\dispatch.c
1252 translate$E $** > $@
1253
1254 $(OX)\doc$O : doc_.c doc.h
1255 $(TCC) /Fo$@ -c doc_.c
1256
1257 doc_.c : $(SRCDIR)\doc.c
1258 translate$E $** > $@
1259
1260 $(OX)\encode$O : encode_.c encode.h
1261 $(TCC) /Fo$@ -c encode_.c
1262
1263 encode_.c : $(SRCDIR)\encode.c
1264 translate$E $** > $@
1265
1266 $(OX)\etag$O : etag_.c etag.h
1267 $(TCC) /Fo$@ -c etag_.c
1268
1269 etag_.c : $(SRCDIR)\etag.c
1270 translate$E $** > $@
1271
1272 $(OX)\event$O : event_.c event.h
1273 $(TCC) /Fo$@ -c event_.c
1274
1275 event_.c : $(SRCDIR)\event.c
1276 translate$E $** > $@
1277
1278 $(OX)\export$O : export_.c export.h
1279 $(TCC) /Fo$@ -c export_.c
1280
1281 export_.c : $(SRCDIR)\export.c
1282 translate$E $** > $@
1283
1284 $(OX)\extcgi$O : extcgi_.c extcgi.h
1285 $(TCC) /Fo$@ -c extcgi_.c
1286
1287 extcgi_.c : $(SRCDIR)\extcgi.c
1288 translate$E $** > $@
1289
1290 $(OX)\file$O : file_.c file.h
1291 $(TCC) /Fo$@ -c file_.c
1292
1293 file_.c : $(SRCDIR)\file.c
1294 translate$E $** > $@
1295
1296 $(OX)\fileedit$O : fileedit_.c fileedit.h
1297 $(TCC) /Fo$@ -c fileedit_.c
1298
1299 fileedit_.c : $(SRCDIR)\fileedit.c
1300 translate$E $** > $@
1301
1302 $(OX)\finfo$O : finfo_.c finfo.h
1303 $(TCC) /Fo$@ -c finfo_.c
1304
1305 finfo_.c : $(SRCDIR)\finfo.c
1306 translate$E $** > $@
1307
1308 $(OX)\foci$O : foci_.c foci.h
1309 $(TCC) /Fo$@ -c foci_.c
1310
1311 foci_.c : $(SRCDIR)\foci.c
1312 translate$E $** > $@
1313
1314 $(OX)\forum$O : forum_.c forum.h
1315 $(TCC) /Fo$@ -c forum_.c
1316
1317 forum_.c : $(SRCDIR)\forum.c
1318 translate$E $** > $@
1319
1320 $(OX)\fshell$O : fshell_.c fshell.h
1321 $(TCC) /Fo$@ -c fshell_.c
1322
1323 fshell_.c : $(SRCDIR)\fshell.c
1324 translate$E $** > $@
1325
1326 $(OX)\fusefs$O : fusefs_.c fusefs.h
1327 $(TCC) /Fo$@ -c fusefs_.c
1328
1329 fusefs_.c : $(SRCDIR)\fusefs.c
1330 translate$E $** > $@
1331
1332 $(OX)\fuzz$O : fuzz_.c fuzz.h
1333 $(TCC) /Fo$@ -c fuzz_.c
1334
1335 fuzz_.c : $(SRCDIR)\fuzz.c
1336 translate$E $** > $@
1337
1338 $(OX)\glob$O : glob_.c glob.h
1339 $(TCC) /Fo$@ -c glob_.c
1340
1341 glob_.c : $(SRCDIR)\glob.c
1342 translate$E $** > $@
1343
1344 $(OX)\graph$O : graph_.c graph.h
1345 $(TCC) /Fo$@ -c graph_.c
1346
1347 graph_.c : $(SRCDIR)\graph.c
1348 translate$E $** > $@
1349
1350 $(OX)\gzip$O : gzip_.c gzip.h
1351 $(TCC) /Fo$@ -c gzip_.c
1352
1353 gzip_.c : $(SRCDIR)\gzip.c
1354 translate$E $** > $@
1355
1356 $(OX)\hname$O : hname_.c hname.h
1357 $(TCC) /Fo$@ -c hname_.c
1358
1359 hname_.c : $(SRCDIR)\hname.c
1360 translate$E $** > $@
1361
1362 $(OX)\http$O : http_.c http.h
1363 $(TCC) /Fo$@ -c http_.c
1364
1365 http_.c : $(SRCDIR)\http.c
1366 translate$E $** > $@
1367
1368 $(OX)\http_socket$O : http_socket_.c http_socket.h
1369 $(TCC) /Fo$@ -c http_socket_.c
1370
1371 http_socket_.c : $(SRCDIR)\http_socket.c
1372 translate$E $** > $@
1373
1374 $(OX)\http_ssl$O : http_ssl_.c http_ssl.h
1375 $(TCC) /Fo$@ -c http_ssl_.c
1376
1377 http_ssl_.c : $(SRCDIR)\http_ssl.c
1378 translate$E $** > $@
1379
1380 $(OX)\http_transport$O : http_transport_.c http_transport.h
1381 $(TCC) /Fo$@ -c http_transport_.c
1382
1383 http_transport_.c : $(SRCDIR)\http_transport.c
1384 translate$E $** > $@
1385
1386 $(OX)\import$O : import_.c import.h
1387 $(TCC) /Fo$@ -c import_.c
1388
1389 import_.c : $(SRCDIR)\import.c
1390 translate$E $** > $@
1391
1392 $(OX)\info$O : info_.c info.h
1393 $(TCC) /Fo$@ -c info_.c
1394
1395 info_.c : $(SRCDIR)\info.c
1396 translate$E $** > $@
1397
1398 $(OX)\json$O : json_.c json.h
1399 $(TCC) /Fo$@ -c json_.c
1400
1401 json_.c : $(SRCDIR)\json.c
1402 translate$E $** > $@
1403
1404 $(OX)\json_artifact$O : json_artifact_.c json_artifact.h
1405 $(TCC) /Fo$@ -c json_artifact_.c
1406
1407 json_artifact_.c : $(SRCDIR)\json_artifact.c
1408 translate$E $** > $@
1409
1410 $(OX)\json_branch$O : json_branch_.c json_branch.h
1411 $(TCC) /Fo$@ -c json_branch_.c
1412
1413 json_branch_.c : $(SRCDIR)\json_branch.c
1414 translate$E $** > $@
1415
1416 $(OX)\json_config$O : json_config_.c json_config.h
1417 $(TCC) /Fo$@ -c json_config_.c
1418
1419 json_config_.c : $(SRCDIR)\json_config.c
1420 translate$E $** > $@
1421
1422 $(OX)\json_diff$O : json_diff_.c json_diff.h
1423 $(TCC) /Fo$@ -c json_diff_.c
1424
1425 json_diff_.c : $(SRCDIR)\json_diff.c
1426 translate$E $** > $@
1427
1428 $(OX)\json_dir$O : json_dir_.c json_dir.h
1429 $(TCC) /Fo$@ -c json_dir_.c
1430
1431 json_dir_.c : $(SRCDIR)\json_dir.c
1432 translate$E $** > $@
1433
1434 $(OX)\json_finfo$O : json_finfo_.c json_finfo.h
1435 $(TCC) /Fo$@ -c json_finfo_.c
1436
1437 json_finfo_.c : $(SRCDIR)\json_finfo.c
1438 translate$E $** > $@
1439
1440 $(OX)\json_login$O : json_login_.c json_login.h
1441 $(TCC) /Fo$@ -c json_login_.c
1442
1443 json_login_.c : $(SRCDIR)\json_login.c
1444 translate$E $** > $@
1445
1446 $(OX)\json_query$O : json_query_.c json_query.h
1447 $(TCC) /Fo$@ -c json_query_.c
1448
1449 json_query_.c : $(SRCDIR)\json_query.c
1450 translate$E $** > $@
1451
1452 $(OX)\json_report$O : json_report_.c json_report.h
1453 $(TCC) /Fo$@ -c json_report_.c
1454
1455 json_report_.c : $(SRCDIR)\json_report.c
1456 translate$E $** > $@
1457
1458 $(OX)\json_status$O : json_status_.c json_status.h
1459 $(TCC) /Fo$@ -c json_status_.c
1460
1461 json_status_.c : $(SRCDIR)\json_status.c
1462 translate$E $** > $@
1463
1464 $(OX)\json_tag$O : json_tag_.c json_tag.h
1465 $(TCC) /Fo$@ -c json_tag_.c
1466
1467 json_tag_.c : $(SRCDIR)\json_tag.c
1468 translate$E $** > $@
1469
1470 $(OX)\json_timeline$O : json_timeline_.c json_timeline.h
1471 $(TCC) /Fo$@ -c json_timeline_.c
1472
1473 json_timeline_.c : $(SRCDIR)\json_timeline.c
1474 translate$E $** > $@
1475
1476 $(OX)\json_user$O : json_user_.c json_user.h
1477 $(TCC) /Fo$@ -c json_user_.c
1478
1479 json_user_.c : $(SRCDIR)\json_user.c
1480 translate$E $** > $@
1481
1482 $(OX)\json_wiki$O : json_wiki_.c json_wiki.h
1483 $(TCC) /Fo$@ -c json_wiki_.c
1484
1485 json_wiki_.c : $(SRCDIR)\json_wiki.c
1486 translate$E $** > $@
1487
1488 $(OX)\leaf$O : leaf_.c leaf.h
1489 $(TCC) /Fo$@ -c leaf_.c
1490
1491 leaf_.c : $(SRCDIR)\leaf.c
1492 translate$E $** > $@
1493
1494 $(OX)\loadctrl$O : loadctrl_.c loadctrl.h
1495 $(TCC) /Fo$@ -c loadctrl_.c
1496
1497 loadctrl_.c : $(SRCDIR)\loadctrl.c
1498 translate$E $** > $@
1499
1500 $(OX)\login$O : login_.c login.h
1501 $(TCC) /Fo$@ -c login_.c
1502
1503 login_.c : $(SRCDIR)\login.c
1504 translate$E $** > $@
1505
1506 $(OX)\lookslike$O : lookslike_.c lookslike.h
1507 $(TCC) /Fo$@ -c lookslike_.c
1508
1509 lookslike_.c : $(SRCDIR)\lookslike.c
1510 translate$E $** > $@
1511
1512 $(OX)\main$O : main_.c main.h
1513 $(TCC) /Fo$@ -c main_.c
1514
1515 main_.c : $(SRCDIR)\main.c
1516 translate$E $** > $@
1517
1518 $(OX)\manifest$O : manifest_.c manifest.h
1519 $(TCC) /Fo$@ -c manifest_.c
1520
1521 manifest_.c : $(SRCDIR)\manifest.c
1522 translate$E $** > $@
1523
1524 $(OX)\markdown$O : markdown_.c markdown.h
1525 $(TCC) /Fo$@ -c markdown_.c
1526
1527 markdown_.c : $(SRCDIR)\markdown.c
1528 translate$E $** > $@
1529
1530 $(OX)\markdown_html$O : markdown_html_.c markdown_html.h
1531 $(TCC) /Fo$@ -c markdown_html_.c
1532
1533 markdown_html_.c : $(SRCDIR)\markdown_html.c
1534 translate$E $** > $@
1535
1536 $(OX)\md5$O : md5_.c md5.h
1537 $(TCC) /Fo$@ -c md5_.c
1538
1539 md5_.c : $(SRCDIR)\md5.c
1540 translate$E $** > $@
1541
1542 $(OX)\merge$O : merge_.c merge.h
1543 $(TCC) /Fo$@ -c merge_.c
1544
1545 merge_.c : $(SRCDIR)\merge.c
1546 translate$E $** > $@
1547
1548 $(OX)\merge3$O : merge3_.c merge3.h
1549 $(TCC) /Fo$@ -c merge3_.c
1550
1551 merge3_.c : $(SRCDIR)\merge3.c
1552 translate$E $** > $@
1553
1554 $(OX)\moderate$O : moderate_.c moderate.h
1555 $(TCC) /Fo$@ -c moderate_.c
1556
1557 moderate_.c : $(SRCDIR)\moderate.c
1558 translate$E $** > $@
1559
1560 $(OX)\name$O : name_.c name.h
1561 $(TCC) /Fo$@ -c name_.c
1562
1563 name_.c : $(SRCDIR)\name.c
1564 translate$E $** > $@
1565
1566 $(OX)\path$O : path_.c path.h
1567 $(TCC) /Fo$@ -c path_.c
1568
1569 path_.c : $(SRCDIR)\path.c
1570 translate$E $** > $@
1571
1572 $(OX)\piechart$O : piechart_.c piechart.h
1573 $(TCC) /Fo$@ -c piechart_.c
1574
1575 piechart_.c : $(SRCDIR)\piechart.c
1576 translate$E $** > $@
1577
1578 $(OX)\pivot$O : pivot_.c pivot.h
1579 $(TCC) /Fo$@ -c pivot_.c
1580
1581 pivot_.c : $(SRCDIR)\pivot.c
1582 translate$E $** > $@
1583
1584 $(OX)\popen$O : popen_.c popen.h
1585 $(TCC) /Fo$@ -c popen_.c
1586
1587 popen_.c : $(SRCDIR)\popen.c
1588 translate$E $** > $@
1589
1590 $(OX)\pqueue$O : pqueue_.c pqueue.h
1591 $(TCC) /Fo$@ -c pqueue_.c
1592
1593 pqueue_.c : $(SRCDIR)\pqueue.c
1594 translate$E $** > $@
1595
1596 $(OX)\printf$O : printf_.c printf.h
1597 $(TCC) /Fo$@ -c printf_.c
1598
1599 printf_.c : $(SRCDIR)\printf.c
1600 translate$E $** > $@
1601
1602 $(OX)\publish$O : publish_.c publish.h
1603 $(TCC) /Fo$@ -c publish_.c
1604
1605 publish_.c : $(SRCDIR)\publish.c
1606 translate$E $** > $@
1607
1608 $(OX)\purge$O : purge_.c purge.h
1609 $(TCC) /Fo$@ -c purge_.c
1610
1611 purge_.c : $(SRCDIR)\purge.c
1612 translate$E $** > $@
1613
1614 $(OX)\rebuild$O : rebuild_.c rebuild.h
1615 $(TCC) /Fo$@ -c rebuild_.c
1616
1617 rebuild_.c : $(SRCDIR)\rebuild.c
1618 translate$E $** > $@
1619
1620 $(OX)\regexp$O : regexp_.c regexp.h
1621 $(TCC) /Fo$@ -c regexp_.c
1622
1623 regexp_.c : $(SRCDIR)\regexp.c
1624 translate$E $** > $@
1625
1626 $(OX)\repolist$O : repolist_.c repolist.h
1627 $(TCC) /Fo$@ -c repolist_.c
1628
1629 repolist_.c : $(SRCDIR)\repolist.c
1630 translate$E $** > $@
1631
1632 $(OX)\report$O : report_.c report.h
1633 $(TCC) /Fo$@ -c report_.c
1634
1635 report_.c : $(SRCDIR)\report.c
1636 translate$E $** > $@
1637
1638 $(OX)\rss$O : rss_.c rss.h
1639 $(TCC) /Fo$@ -c rss_.c
1640
1641 rss_.c : $(SRCDIR)\rss.c
1642 translate$E $** > $@
1643
1644 $(OX)\schema$O : schema_.c schema.h
1645 $(TCC) /Fo$@ -c schema_.c
1646
1647 schema_.c : $(SRCDIR)\schema.c
1648 translate$E $** > $@
1649
1650 $(OX)\search$O : search_.c search.h
1651 $(TCC) /Fo$@ -c search_.c
1652
1653 search_.c : $(SRCDIR)\search.c
1654 translate$E $** > $@
1655
1656 $(OX)\security_audit$O : security_audit_.c security_audit.h
1657 $(TCC) /Fo$@ -c security_audit_.c
1658
1659 security_audit_.c : $(SRCDIR)\security_audit.c
1660 translate$E $** > $@
1661
1662 $(OX)\setup$O : setup_.c setup.h
1663 $(TCC) /Fo$@ -c setup_.c
1664
1665 setup_.c : $(SRCDIR)\setup.c
1666 translate$E $** > $@
1667
1668 $(OX)\setupuser$O : setupuser_.c setupuser.h
1669 $(TCC) /Fo$@ -c setupuser_.c
1670
1671 setupuser_.c : $(SRCDIR)\setupuser.c
1672 translate$E $** > $@
1673
1674 $(OX)\sha1$O : sha1_.c sha1.h
1675 $(TCC) /Fo$@ -c sha1_.c
1676
1677 sha1_.c : $(SRCDIR)\sha1.c
1678 translate$E $** > $@
1679
1680 $(OX)\sha1hard$O : sha1hard_.c sha1hard.h
1681 $(TCC) /Fo$@ -c sha1hard_.c
1682
1683 sha1hard_.c : $(SRCDIR)\sha1hard.c
1684 translate$E $** > $@
1685
1686 $(OX)\sha3$O : sha3_.c sha3.h
1687 $(TCC) /Fo$@ -c sha3_.c
1688
1689 sha3_.c : $(SRCDIR)\sha3.c
1690 translate$E $** > $@
1691
1692 $(OX)\shun$O : shun_.c shun.h
1693 $(TCC) /Fo$@ -c shun_.c
1694
1695 shun_.c : $(SRCDIR)\shun.c
1696 translate$E $** > $@
1697
1698 $(OX)\sitemap$O : sitemap_.c sitemap.h
1699 $(TCC) /Fo$@ -c sitemap_.c
1700
1701 sitemap_.c : $(SRCDIR)\sitemap.c
1702 translate$E $** > $@
1703
1704 $(OX)\skins$O : skins_.c skins.h
1705 $(TCC) /Fo$@ -c skins_.c
1706
1707 skins_.c : $(SRCDIR)\skins.c
1708 translate$E $** > $@
1709
1710 $(OX)\smtp$O : smtp_.c smtp.h
1711 $(TCC) /Fo$@ -c smtp_.c
1712
1713 smtp_.c : $(SRCDIR)\smtp.c
1714 translate$E $** > $@
1715
1716 $(OX)\sqlcmd$O : sqlcmd_.c sqlcmd.h
1717 $(TCC) /Fo$@ -c sqlcmd_.c
1718
1719 sqlcmd_.c : $(SRCDIR)\sqlcmd.c
1720 translate$E $** > $@
1721
1722 $(OX)\stash$O : stash_.c stash.h
1723 $(TCC) /Fo$@ -c stash_.c
1724
1725 stash_.c : $(SRCDIR)\stash.c
1726 translate$E $** > $@
1727
1728 $(OX)\stat$O : stat_.c stat.h
1729 $(TCC) /Fo$@ -c stat_.c
1730
1731 stat_.c : $(SRCDIR)\stat.c
1732 translate$E $** > $@
1733
1734 $(OX)\statrep$O : statrep_.c statrep.h
1735 $(TCC) /Fo$@ -c statrep_.c
1736
1737 statrep_.c : $(SRCDIR)\statrep.c
1738 translate$E $** > $@
1739
1740 $(OX)\style$O : style_.c style.h
1741 $(TCC) /Fo$@ -c style_.c
1742
1743 style_.c : $(SRCDIR)\style.c
1744 translate$E $** > $@
1745
1746 $(OX)\sync$O : sync_.c sync.h
1747 $(TCC) /Fo$@ -c sync_.c
1748
1749 sync_.c : $(SRCDIR)\sync.c
1750 translate$E $** > $@
1751
1752 $(OX)\tag$O : tag_.c tag.h
1753 $(TCC) /Fo$@ -c tag_.c
1754
1755 tag_.c : $(SRCDIR)\tag.c
1756 translate$E $** > $@
1757
1758 $(OX)\tar$O : tar_.c tar.h
1759 $(TCC) /Fo$@ -c tar_.c
1760
1761 tar_.c : $(SRCDIR)\tar.c
1762 translate$E $** > $@
1763
1764 $(OX)\terminal$O : terminal_.c terminal.h
1765 $(TCC) /Fo$@ -c terminal_.c
1766
1767 terminal_.c : $(SRCDIR)\terminal.c
1768 translate$E $** > $@
1769
1770 $(OX)\th_main$O : th_main_.c th_main.h
1771 $(TCC) /Fo$@ -c th_main_.c
1772
1773 th_main_.c : $(SRCDIR)\th_main.c
1774 translate$E $** > $@
1775
1776 $(OX)\timeline$O : timeline_.c timeline.h
1777 $(TCC) /Fo$@ -c timeline_.c
1778
1779 timeline_.c : $(SRCDIR)\timeline.c
1780 translate$E $** > $@
1781
1782 $(OX)\tkt$O : tkt_.c tkt.h
1783 $(TCC) /Fo$@ -c tkt_.c
1784
1785 tkt_.c : $(SRCDIR)\tkt.c
1786 translate$E $** > $@
1787
1788 $(OX)\tktsetup$O : tktsetup_.c tktsetup.h
1789 $(TCC) /Fo$@ -c tktsetup_.c
1790
1791 tktsetup_.c : $(SRCDIR)\tktsetup.c
1792 translate$E $** > $@
1793
1794 $(OX)\undo$O : undo_.c undo.h
1795 $(TCC) /Fo$@ -c undo_.c
1796
1797 undo_.c : $(SRCDIR)\undo.c
1798 translate$E $** > $@
1799
1800 $(OX)\unicode$O : unicode_.c unicode.h
1801 $(TCC) /Fo$@ -c unicode_.c
1802
1803 unicode_.c : $(SRCDIR)\unicode.c
1804 translate$E $** > $@
1805
1806 $(OX)\unversioned$O : unversioned_.c unversioned.h
1807 $(TCC) /Fo$@ -c unversioned_.c
1808
1809 unversioned_.c : $(SRCDIR)\unversioned.c
1810 translate$E $** > $@
1811
1812 $(OX)\update$O : update_.c update.h
1813 $(TCC) /Fo$@ -c update_.c
1814
1815 update_.c : $(SRCDIR)\update.c
1816 translate$E $** > $@
1817
1818 $(OX)\url$O : url_.c url.h
1819 $(TCC) /Fo$@ -c url_.c
1820
1821 url_.c : $(SRCDIR)\url.c
1822 translate$E $** > $@
1823
1824 $(OX)\user$O : user_.c user.h
1825 $(TCC) /Fo$@ -c user_.c
1826
1827 user_.c : $(SRCDIR)\user.c
1828 translate$E $** > $@
1829
1830 $(OX)\utf8$O : utf8_.c utf8.h
1831 $(TCC) /Fo$@ -c utf8_.c
1832
1833 utf8_.c : $(SRCDIR)\utf8.c
1834 translate$E $** > $@
1835
1836 $(OX)\util$O : util_.c util.h
1837 $(TCC) /Fo$@ -c util_.c
1838
1839 util_.c : $(SRCDIR)\util.c
1840 translate$E $** > $@
1841
1842 $(OX)\verify$O : verify_.c verify.h
1843 $(TCC) /Fo$@ -c verify_.c
1844
1845 verify_.c : $(SRCDIR)\verify.c
1846 translate$E $** > $@
1847
1848 $(OX)\vfile$O : vfile_.c vfile.h
1849 $(TCC) /Fo$@ -c vfile_.c
1850
1851 vfile_.c : $(SRCDIR)\vfile.c
1852 translate$E $** > $@
1853
1854 $(OX)\webmail$O : webmail_.c webmail.h
1855 $(TCC) /Fo$@ -c webmail_.c
1856
1857 webmail_.c : $(SRCDIR)\webmail.c
1858 translate$E $** > $@
1859
1860 $(OX)\wiki$O : wiki_.c wiki.h
1861 $(TCC) /Fo$@ -c wiki_.c
1862
1863 wiki_.c : $(SRCDIR)\wiki.c
1864 translate$E $** > $@
1865
1866 $(OX)\wikiformat$O : wikiformat_.c wikiformat.h
1867 $(TCC) /Fo$@ -c wikiformat_.c
1868
1869 wikiformat_.c : $(SRCDIR)\wikiformat.c
1870 translate$E $** > $@
1871
1872 $(OX)\winfile$O : winfile_.c winfile.h
1873 $(TCC) /Fo$@ -c winfile_.c
1874
1875 winfile_.c : $(SRCDIR)\winfile.c
1876 translate$E $** > $@
1877
1878 $(OX)\winhttp$O : winhttp_.c winhttp.h
1879 $(TCC) /Fo$@ -c winhttp_.c
1880
1881 winhttp_.c : $(SRCDIR)\winhttp.c
1882 translate$E $** > $@
1883
1884 $(OX)\wysiwyg$O : wysiwyg_.c wysiwyg.h
1885 $(TCC) /Fo$@ -c wysiwyg_.c
1886
1887 wysiwyg_.c : $(SRCDIR)\wysiwyg.c
1888 translate$E $** > $@
1889
1890 $(OX)\xfer$O : xfer_.c xfer.h
1891 $(TCC) /Fo$@ -c xfer_.c
1892
1893 xfer_.c : $(SRCDIR)\xfer.c
1894 translate$E $** > $@
1895
1896 $(OX)\xfersetup$O : xfersetup_.c xfersetup.h
1897 $(TCC) /Fo$@ -c xfersetup_.c
1898
1899 xfersetup_.c : $(SRCDIR)\xfersetup.c
1900 translate$E $** > $@
1901
1902 $(OX)\zip$O : zip_.c zip.h
1903 $(TCC) /Fo$@ -c zip_.c
1904
1905 zip_.c : $(SRCDIR)\zip.c
1906 translate$E $** > $@
1907
1908 fossil.res : $B\win\fossil.rc
1909 $(RCC) /fo $@ $**
1910
1911 headers: makeheaders$E page_index.h builtin_data.h VERSION.h
1912 makeheaders$E add_.c:add.h \
1913 alerts_.c:alerts.h \
1914 allrepo_.c:allrepo.h \
1915 attach_.c:attach.h \
1916 backlink_.c:backlink.h \
1917 backoffice_.c:backoffice.h \
1918 bag_.c:bag.h \
1919 bisect_.c:bisect.h \
1920 blob_.c:blob.h \
1921 branch_.c:branch.h \
1922 browse_.c:browse.h \
1923 builtin_.c:builtin.h \
1924 bundle_.c:bundle.h \
1925 cache_.c:cache.h \
1926 capabilities_.c:capabilities.h \
1927 captcha_.c:captcha.h \
1928 cgi_.c:cgi.h \
1929 checkin_.c:checkin.h \
1930 checkout_.c:checkout.h \
1931 clearsign_.c:clearsign.h \
1932 clone_.c:clone.h \
1933 comformat_.c:comformat.h \
1934 configure_.c:configure.h \
1935 content_.c:content.h \
1936 cookies_.c:cookies.h \
1937 db_.c:db.h \
1938 delta_.c:delta.h \
1939 deltacmd_.c:deltacmd.h \
1940 deltafunc_.c:deltafunc.h \
1941 descendants_.c:descendants.h \
1942 diff_.c:diff.h \
1943 diffcmd_.c:diffcmd.h \
1944 dispatch_.c:dispatch.h \
1945 doc_.c:doc.h \
1946 encode_.c:encode.h \
1947 etag_.c:etag.h \
1948 event_.c:event.h \
1949 export_.c:export.h \
1950 extcgi_.c:extcgi.h \
1951 file_.c:file.h \
1952 fileedit_.c:fileedit.h \
1953 finfo_.c:finfo.h \
1954 foci_.c:foci.h \
1955 forum_.c:forum.h \
1956 fshell_.c:fshell.h \
1957 fusefs_.c:fusefs.h \
1958 fuzz_.c:fuzz.h \
1959 glob_.c:glob.h \
1960 graph_.c:graph.h \
1961 gzip_.c:gzip.h \
1962 hname_.c:hname.h \
1963 http_.c:http.h \
1964 http_socket_.c:http_socket.h \
1965 http_ssl_.c:http_ssl.h \
1966 http_transport_.c:http_transport.h \
1967 import_.c:import.h \
1968 info_.c:info.h \
1969 json_.c:json.h \
1970 json_artifact_.c:json_artifact.h \
1971 json_branch_.c:json_branch.h \
1972 json_config_.c:json_config.h \
1973 json_diff_.c:json_diff.h \
1974 json_dir_.c:json_dir.h \
1975 json_finfo_.c:json_finfo.h \
1976 json_login_.c:json_login.h \
1977 json_query_.c:json_query.h \
1978 json_report_.c:json_report.h \
1979 json_status_.c:json_status.h \
1980 json_tag_.c:json_tag.h \
1981 json_timeline_.c:json_timeline.h \
1982 json_user_.c:json_user.h \
1983 json_wiki_.c:json_wiki.h \
1984 leaf_.c:leaf.h \
1985 loadctrl_.c:loadctrl.h \
1986 login_.c:login.h \
1987 lookslike_.c:lookslike.h \
1988 main_.c:main.h \
1989 manifest_.c:manifest.h \
1990 markdown_.c:markdown.h \
1991 markdown_html_.c:markdown_html.h \
1992 md5_.c:md5.h \
1993 merge_.c:merge.h \
1994 merge3_.c:merge3.h \
1995 moderate_.c:moderate.h \
1996 name_.c:name.h \
1997 path_.c:path.h \
1998 piechart_.c:piechart.h \
1999 pivot_.c:pivot.h \
2000 popen_.c:popen.h \
2001 pqueue_.c:pqueue.h \
2002 printf_.c:printf.h \
2003 publish_.c:publish.h \
2004 purge_.c:purge.h \
2005 rebuild_.c:rebuild.h \
2006 regexp_.c:regexp.h \
2007 repolist_.c:repolist.h \
2008 report_.c:report.h \
2009 rss_.c:rss.h \
2010 schema_.c:schema.h \
2011 search_.c:search.h \
2012 security_audit_.c:security_audit.h \
2013 setup_.c:setup.h \
2014 setupuser_.c:setupuser.h \
2015 sha1_.c:sha1.h \
2016 sha1hard_.c:sha1hard.h \
2017 sha3_.c:sha3.h \
2018 shun_.c:shun.h \
2019 sitemap_.c:sitemap.h \
2020 skins_.c:skins.h \
2021 smtp_.c:smtp.h \
2022 sqlcmd_.c:sqlcmd.h \
2023 stash_.c:stash.h \
2024 stat_.c:stat.h \
2025 statrep_.c:statrep.h \
2026 style_.c:style.h \
2027 sync_.c:sync.h \
2028 tag_.c:tag.h \
2029 tar_.c:tar.h \
2030 terminal_.c:terminal.h \
2031 th_main_.c:th_main.h \
2032 timeline_.c:timeline.h \
2033 tkt_.c:tkt.h \
2034 tktsetup_.c:tktsetup.h \
2035 undo_.c:undo.h \
2036 unicode_.c:unicode.h \
2037 unversioned_.c:unversioned.h \
2038 update_.c:update.h \
2039 url_.c:url.h \
2040 user_.c:user.h \
2041 utf8_.c:utf8.h \
2042 util_.c:util.h \
2043 verify_.c:verify.h \
2044 vfile_.c:vfile.h \
2045 webmail_.c:webmail.h \
2046 wiki_.c:wiki.h \
2047 wikiformat_.c:wikiformat.h \
2048 winfile_.c:winfile.h \
2049 winhttp_.c:winhttp.h \
2050 wysiwyg_.c:wysiwyg.h \
2051 xfer_.c:xfer.h \
2052 xfersetup_.c:xfersetup.h \
2053 zip_.c:zip.h \
2054 $(SRCDIR)\sqlite3.h \
2055 $(SRCDIR)\th.h \
2056 VERSION.h \
2057 $(SRCDIR)\cson_amalgamation.h
2058 @copy /Y nul: headers
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2059
--- win/Makefile.msc
+++ win/Makefile.msc
@@ -1,39 +1,52 @@
1 #
2 ##############################################################################
3 # WARNING: DO NOT EDIT, AUTOMATICALLY GENERATED FILE (SEE "src/makemake.tcl")
4 ##############################################################################
5 #
 
 
 
 
 
 
 
6 #
7 # This file is automatically generated. Instead of editing this
8 # file, edit "makemake.tcl" then run "tclsh makemake.tcl"
9 # to regenerate this file.
10 #
11 B = ..
12 SRCDIR = $(B)\src
13 T = .
14 OBJDIR = $(T)
15 OX = $(OBJDIR)
16 O = .obj
17 E = .exe
18 P = .pdb
19
20 INSTALLDIR = .
21 !ifdef DESTDIR
22 INSTALLDIR = $(DESTDIR)\$(INSTALLDIR)
23 !endif
24
25 # When building out of source, this Makefile needs to know the path to the base
26 # top-level directory for this project. Pass it on NMAKE command line via make
27 # variable B:
28 # NMAKE /f "path\to\this\Makefile" B="path/to/fossil/root"
29 #
30 # NOTE: Make sure B path has no trailing backslash, UNIX-style path is OK too.
31 #
32 !if !exist("$(B)\.fossil-settings")
33 !error Please specify path to project base directory: B="path/to/fossil"
34 !endif
35
36 # Perl is only necessary if OpenSSL support is enabled and it is built from
37 # source code. The PERLDIR environment variable, if it exists, should point
38 # to the directory containing the main Perl executable specified here (i.e.
39 # "perl.exe").
40 PERL = perl.exe
41
42 # Enable debugging symbols?
43 !ifndef DEBUG
44 DEBUG = 0
45 !endif
46 !ifdef FOSSIL_DEBUG
47 DEBUG = 1
48 !endif
49
50 # Build the OpenSSL libraries?
51 !ifndef FOSSIL_BUILD_SSL
52 FOSSIL_BUILD_SSL = 0
@@ -150,27 +163,30 @@
163 ZLIB = zdll.lib
164 !else
165 ZLIB = zlib.lib
166 !endif
167
168 INCL = /I. /I"$(OX)" /I"$(SRCDIR)" /I"$(B)\win\include"
169
170 !if $(FOSSIL_ENABLE_MINIZ)==0
171 INCL = $(INCL) /I"$(ZINCDIR)"
172 !endif
173
174 !if $(FOSSIL_ENABLE_SSL)!=0
175 INCL = $(INCL) /I"$(SSLINCDIR)"
176 !endif
177
178 !if $(FOSSIL_ENABLE_TCL)!=0
179 INCL = $(INCL) /I"$(TCLINCDIR)"
180 !endif
181
182 CFLAGS = /nologo
183 LDFLAGS =
184
185 CFLAGS = $(CFLAGS) /D_CRT_SECURE_NO_DEPRECATE /D_CRT_SECURE_NO_WARNINGS
186 CFLAGS = $(CFLAGS) /D_CRT_NONSTDC_NO_DEPRECATE /D_CRT_NONSTDC_NO_WARNINGS
187
188 !if $(FOSSIL_DYNAMIC_BUILD)!=0
189 LDFLAGS = $(LDFLAGS) /MANIFEST
190 !else
191 LDFLAGS = $(LDFLAGS) /NODEFAULTLIB:msvcrt /MANIFEST:NO
192 !endif
@@ -199,11 +215,11 @@
215 CRTFLAGS = /MT
216 !endif
217 !endif
218
219 !if $(DEBUG)!=0
220 CFLAGS = $(CFLAGS) /Zi $(CRTFLAGS) /Od /DFOSSIL_DEBUG
221 LDFLAGS = $(LDFLAGS) /DEBUG
222 !else
223 CFLAGS = $(CFLAGS) $(CRTFLAGS) /O2
224 !endif
225
@@ -219,11 +235,11 @@
235 RCC = $(RCC) /DFOSSIL_DYNAMIC_BUILD=1
236 !endif
237
238 !if $(FOSSIL_ENABLE_MINIZ)==0
239 LIBS = $(LIBS) $(ZLIB)
240 LIBDIR = $(LIBDIR) /LIBPATH:"$(ZLIBDIR)"
241 !endif
242
243 !if $(FOSSIL_ENABLE_MINIZ)!=0
244 TCC = $(TCC) /DFOSSIL_ENABLE_MINIZ=1
245 RCC = $(RCC) /DFOSSIL_ENABLE_MINIZ=1
@@ -236,11 +252,11 @@
252
253 !if $(FOSSIL_ENABLE_SSL)!=0
254 TCC = $(TCC) /DFOSSIL_ENABLE_SSL=1
255 RCC = $(RCC) /DFOSSIL_ENABLE_SSL=1
256 LIBS = $(LIBS) $(SSLLIB)
257 LIBDIR = $(LIBDIR) /LIBPATH:"$(SSLLIBDIR)"
258 !endif
259
260 !if $(FOSSIL_ENABLE_EXEC_REL_PATHS)!=0
261 TCC = $(TCC) /DFOSSIL_ENABLE_EXEC_REL_PATHS=1
262 RCC = $(RCC) /DFOSSIL_ENABLE_EXEC_REL_PATHS=1
@@ -283,11 +299,10 @@
299 /DSQLITE_DEFAULT_MEMSTATUS=0 \
300 /DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 \
301 /DSQLITE_LIKE_DOESNT_MATCH_BLOBS \
302 /DSQLITE_OMIT_DECLTYPE \
303 /DSQLITE_OMIT_DEPRECATED \
 
304 /DSQLITE_OMIT_PROGRESS_CALLBACK \
305 /DSQLITE_OMIT_SHARED_CACHE \
306 /DSQLITE_OMIT_LOAD_EXTENSION \
307 /DSQLITE_MAX_EXPR_DEPTH=0 \
308 /DSQLITE_USE_ALLOCA \
@@ -311,11 +326,10 @@
326 /DSQLITE_DEFAULT_MEMSTATUS=0 \
327 /DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 \
328 /DSQLITE_LIKE_DOESNT_MATCH_BLOBS \
329 /DSQLITE_OMIT_DECLTYPE \
330 /DSQLITE_OMIT_DEPRECATED \
 
331 /DSQLITE_OMIT_PROGRESS_CALLBACK \
332 /DSQLITE_OMIT_SHARED_CACHE \
333 /DSQLITE_OMIT_LOAD_EXTENSION \
334 /DSQLITE_MAX_EXPR_DEPTH=0 \
335 /DSQLITE_USE_ALLOCA \
@@ -344,405 +358,407 @@
358
359 MINIZ_OPTIONS = /DMINIZ_NO_STDIO \
360 /DMINIZ_NO_TIME \
361 /DMINIZ_NO_ARCHIVE_APIS
362
363 SRC = "$(OX)\add_.c" \
364 "$(OX)\ajax_.c" \
365 "$(OX)\alerts_.c" \
366 "$(OX)\allrepo_.c" \
367 "$(OX)\attach_.c" \
368 "$(OX)\backlink_.c" \
369 "$(OX)\backoffice_.c" \
370 "$(OX)\bag_.c" \
371 "$(OX)\bisect_.c" \
372 "$(OX)\blob_.c" \
373 "$(OX)\branch_.c" \
374 "$(OX)\browse_.c" \
375 "$(OX)\builtin_.c" \
376 "$(OX)\bundle_.c" \
377 "$(OX)\cache_.c" \
378 "$(OX)\capabilities_.c" \
379 "$(OX)\captcha_.c" \
380 "$(OX)\cgi_.c" \
381 "$(OX)\checkin_.c" \
382 "$(OX)\checkout_.c" \
383 "$(OX)\clearsign_.c" \
384 "$(OX)\clone_.c" \
385 "$(OX)\comformat_.c" \
386 "$(OX)\configure_.c" \
387 "$(OX)\content_.c" \
388 "$(OX)\cookies_.c" \
389 "$(OX)\db_.c" \
390 "$(OX)\delta_.c" \
391 "$(OX)\deltacmd_.c" \
392 "$(OX)\deltafunc_.c" \
393 "$(OX)\descendants_.c" \
394 "$(OX)\diff_.c" \
395 "$(OX)\diffcmd_.c" \
396 "$(OX)\dispatch_.c" \
397 "$(OX)\doc_.c" \
398 "$(OX)\encode_.c" \
399 "$(OX)\etag_.c" \
400 "$(OX)\event_.c" \
401 "$(OX)\export_.c" \
402 "$(OX)\extcgi_.c" \
403 "$(OX)\file_.c" \
404 "$(OX)\fileedit_.c" \
405 "$(OX)\finfo_.c" \
406 "$(OX)\foci_.c" \
407 "$(OX)\forum_.c" \
408 "$(OX)\fshell_.c" \
409 "$(OX)\fusefs_.c" \
410 "$(OX)\fuzz_.c" \
411 "$(OX)\glob_.c" \
412 "$(OX)\graph_.c" \
413 "$(OX)\gzip_.c" \
414 "$(OX)\hname_.c" \
415 "$(OX)\http_.c" \
416 "$(OX)\http_socket_.c" \
417 "$(OX)\http_ssl_.c" \
418 "$(OX)\http_transport_.c" \
419 "$(OX)\import_.c" \
420 "$(OX)\info_.c" \
421 "$(OX)\json_.c" \
422 "$(OX)\json_artifact_.c" \
423 "$(OX)\json_branch_.c" \
424 "$(OX)\json_config_.c" \
425 "$(OX)\json_diff_.c" \
426 "$(OX)\json_dir_.c" \
427 "$(OX)\json_finfo_.c" \
428 "$(OX)\json_login_.c" \
429 "$(OX)\json_query_.c" \
430 "$(OX)\json_report_.c" \
431 "$(OX)\json_status_.c" \
432 "$(OX)\json_tag_.c" \
433 "$(OX)\json_timeline_.c" \
434 "$(OX)\json_user_.c" \
435 "$(OX)\json_wiki_.c" \
436 "$(OX)\leaf_.c" \
437 "$(OX)\loadctrl_.c" \
438 "$(OX)\login_.c" \
439 "$(OX)\lookslike_.c" \
440 "$(OX)\main_.c" \
441 "$(OX)\manifest_.c" \
442 "$(OX)\markdown_.c" \
443 "$(OX)\markdown_html_.c" \
444 "$(OX)\md5_.c" \
445 "$(OX)\merge_.c" \
446 "$(OX)\merge3_.c" \
447 "$(OX)\moderate_.c" \
448 "$(OX)\name_.c" \
449 "$(OX)\path_.c" \
450 "$(OX)\piechart_.c" \
451 "$(OX)\pivot_.c" \
452 "$(OX)\popen_.c" \
453 "$(OX)\pqueue_.c" \
454 "$(OX)\printf_.c" \
455 "$(OX)\publish_.c" \
456 "$(OX)\purge_.c" \
457 "$(OX)\rebuild_.c" \
458 "$(OX)\regexp_.c" \
459 "$(OX)\repolist_.c" \
460 "$(OX)\report_.c" \
461 "$(OX)\rss_.c" \
462 "$(OX)\schema_.c" \
463 "$(OX)\search_.c" \
464 "$(OX)\security_audit_.c" \
465 "$(OX)\setup_.c" \
466 "$(OX)\setupuser_.c" \
467 "$(OX)\sha1_.c" \
468 "$(OX)\sha1hard_.c" \
469 "$(OX)\sha3_.c" \
470 "$(OX)\shun_.c" \
471 "$(OX)\sitemap_.c" \
472 "$(OX)\skins_.c" \
473 "$(OX)\smtp_.c" \
474 "$(OX)\sqlcmd_.c" \
475 "$(OX)\stash_.c" \
476 "$(OX)\stat_.c" \
477 "$(OX)\statrep_.c" \
478 "$(OX)\style_.c" \
479 "$(OX)\sync_.c" \
480 "$(OX)\tag_.c" \
481 "$(OX)\tar_.c" \
482 "$(OX)\terminal_.c" \
483 "$(OX)\th_main_.c" \
484 "$(OX)\timeline_.c" \
485 "$(OX)\tkt_.c" \
486 "$(OX)\tktsetup_.c" \
487 "$(OX)\undo_.c" \
488 "$(OX)\unicode_.c" \
489 "$(OX)\unversioned_.c" \
490 "$(OX)\update_.c" \
491 "$(OX)\url_.c" \
492 "$(OX)\user_.c" \
493 "$(OX)\utf8_.c" \
494 "$(OX)\util_.c" \
495 "$(OX)\verify_.c" \
496 "$(OX)\vfile_.c" \
497 "$(OX)\webmail_.c" \
498 "$(OX)\wiki_.c" \
499 "$(OX)\wikiformat_.c" \
500 "$(OX)\winfile_.c" \
501 "$(OX)\winhttp_.c" \
502 "$(OX)\wysiwyg_.c" \
503 "$(OX)\xfer_.c" \
504 "$(OX)\xfersetup_.c" \
505 "$(OX)\zip_.c"
506
507 EXTRA_FILES = "$(SRCDIR)\..\skins\aht\details.txt" \
508 "$(SRCDIR)\..\skins\ardoise\css.txt" \
509 "$(SRCDIR)\..\skins\ardoise\details.txt" \
510 "$(SRCDIR)\..\skins\ardoise\footer.txt" \
511 "$(SRCDIR)\..\skins\ardoise\header.txt" \
512 "$(SRCDIR)\..\skins\black_and_white\css.txt" \
513 "$(SRCDIR)\..\skins\black_and_white\details.txt" \
514 "$(SRCDIR)\..\skins\black_and_white\footer.txt" \
515 "$(SRCDIR)\..\skins\black_and_white\header.txt" \
516 "$(SRCDIR)\..\skins\blitz\css.txt" \
517 "$(SRCDIR)\..\skins\blitz\details.txt" \
518 "$(SRCDIR)\..\skins\blitz\footer.txt" \
519 "$(SRCDIR)\..\skins\blitz\header.txt" \
520 "$(SRCDIR)\..\skins\blitz\ticket.txt" \
521 "$(SRCDIR)\..\skins\blitz_no_logo\css.txt" \
522 "$(SRCDIR)\..\skins\blitz_no_logo\details.txt" \
523 "$(SRCDIR)\..\skins\blitz_no_logo\footer.txt" \
524 "$(SRCDIR)\..\skins\blitz_no_logo\header.txt" \
525 "$(SRCDIR)\..\skins\blitz_no_logo\ticket.txt" \
526 "$(SRCDIR)\..\skins\bootstrap\css.txt" \
527 "$(SRCDIR)\..\skins\bootstrap\details.txt" \
528 "$(SRCDIR)\..\skins\bootstrap\footer.txt" \
529 "$(SRCDIR)\..\skins\bootstrap\header.txt" \
530 "$(SRCDIR)\..\skins\default\css.txt" \
531 "$(SRCDIR)\..\skins\default\details.txt" \
532 "$(SRCDIR)\..\skins\default\footer.txt" \
533 "$(SRCDIR)\..\skins\default\header.txt" \
534 "$(SRCDIR)\..\skins\default\js.txt" \
535 "$(SRCDIR)\..\skins\eagle\css.txt" \
536 "$(SRCDIR)\..\skins\eagle\details.txt" \
537 "$(SRCDIR)\..\skins\eagle\footer.txt" \
538 "$(SRCDIR)\..\skins\eagle\header.txt" \
539 "$(SRCDIR)\..\skins\enhanced1\css.txt" \
540 "$(SRCDIR)\..\skins\enhanced1\details.txt" \
541 "$(SRCDIR)\..\skins\enhanced1\footer.txt" \
542 "$(SRCDIR)\..\skins\enhanced1\header.txt" \
543 "$(SRCDIR)\..\skins\khaki\css.txt" \
544 "$(SRCDIR)\..\skins\khaki\details.txt" \
545 "$(SRCDIR)\..\skins\khaki\footer.txt" \
546 "$(SRCDIR)\..\skins\khaki\header.txt" \
547 "$(SRCDIR)\..\skins\original\css.txt" \
548 "$(SRCDIR)\..\skins\original\details.txt" \
549 "$(SRCDIR)\..\skins\original\footer.txt" \
550 "$(SRCDIR)\..\skins\original\header.txt" \
551 "$(SRCDIR)\..\skins\plain_gray\css.txt" \
552 "$(SRCDIR)\..\skins\plain_gray\details.txt" \
553 "$(SRCDIR)\..\skins\plain_gray\footer.txt" \
554 "$(SRCDIR)\..\skins\plain_gray\header.txt" \
555 "$(SRCDIR)\..\skins\rounded1\css.txt" \
556 "$(SRCDIR)\..\skins\rounded1\details.txt" \
557 "$(SRCDIR)\..\skins\rounded1\footer.txt" \
558 "$(SRCDIR)\..\skins\rounded1\header.txt" \
559 "$(SRCDIR)\..\skins\xekri\css.txt" \
560 "$(SRCDIR)\..\skins\xekri\details.txt" \
561 "$(SRCDIR)\..\skins\xekri\footer.txt" \
562 "$(SRCDIR)\..\skins\xekri\header.txt" \
563 "$(SRCDIR)\accordion.js" \
564 "$(SRCDIR)\ci_edit.js" \
565 "$(SRCDIR)\copybtn.js" \
566 "$(SRCDIR)\default.css" \
567 "$(SRCDIR)\diff.tcl" \
568 "$(SRCDIR)\forum.js" \
569 "$(SRCDIR)\fossil.bootstrap.js" \
570 "$(SRCDIR)\fossil.confirmer.js" \
571 "$(SRCDIR)\fossil.dom.js" \
572 "$(SRCDIR)\fossil.fetch.js" \
573 "$(SRCDIR)\fossil.page.fileedit.js" \
574 "$(SRCDIR)\fossil.storage.js" \
575 "$(SRCDIR)\fossil.tabs.js" \
576 "$(SRCDIR)\graph.js" \
577 "$(SRCDIR)\href.js" \
578 "$(SRCDIR)\login.js" \
579 "$(SRCDIR)\markdown.md" \
580 "$(SRCDIR)\menu.js" \
581 "$(SRCDIR)\sbsdiff.js" \
582 "$(SRCDIR)\scroll.js" \
583 "$(SRCDIR)\skin.js" \
584 "$(SRCDIR)\sorttable.js" \
585 "$(SRCDIR)\sounds\0.wav" \
586 "$(SRCDIR)\sounds\1.wav" \
587 "$(SRCDIR)\sounds\2.wav" \
588 "$(SRCDIR)\sounds\3.wav" \
589 "$(SRCDIR)\sounds\4.wav" \
590 "$(SRCDIR)\sounds\5.wav" \
591 "$(SRCDIR)\sounds\6.wav" \
592 "$(SRCDIR)\sounds\7.wav" \
593 "$(SRCDIR)\sounds\8.wav" \
594 "$(SRCDIR)\sounds\9.wav" \
595 "$(SRCDIR)\sounds\a.wav" \
596 "$(SRCDIR)\sounds\b.wav" \
597 "$(SRCDIR)\sounds\c.wav" \
598 "$(SRCDIR)\sounds\d.wav" \
599 "$(SRCDIR)\sounds\e.wav" \
600 "$(SRCDIR)\sounds\f.wav" \
601 "$(SRCDIR)\style.admin_log.css" \
602 "$(SRCDIR)\style.fileedit.css" \
603 "$(SRCDIR)\tree.js" \
604 "$(SRCDIR)\useredit.js" \
605 "$(SRCDIR)\wiki.wiki"
606
607 OBJ = "$(OX)\add$O" \
608 "$(OX)\ajax$O" \
609 "$(OX)\alerts$O" \
610 "$(OX)\allrepo$O" \
611 "$(OX)\attach$O" \
612 "$(OX)\backlink$O" \
613 "$(OX)\backoffice$O" \
614 "$(OX)\bag$O" \
615 "$(OX)\bisect$O" \
616 "$(OX)\blob$O" \
617 "$(OX)\branch$O" \
618 "$(OX)\browse$O" \
619 "$(OX)\builtin$O" \
620 "$(OX)\bundle$O" \
621 "$(OX)\cache$O" \
622 "$(OX)\capabilities$O" \
623 "$(OX)\captcha$O" \
624 "$(OX)\cgi$O" \
625 "$(OX)\checkin$O" \
626 "$(OX)\checkout$O" \
627 "$(OX)\clearsign$O" \
628 "$(OX)\clone$O" \
629 "$(OX)\comformat$O" \
630 "$(OX)\configure$O" \
631 "$(OX)\content$O" \
632 "$(OX)\cookies$O" \
633 "$(OX)\cson_amalgamation$O" \
634 "$(OX)\db$O" \
635 "$(OX)\delta$O" \
636 "$(OX)\deltacmd$O" \
637 "$(OX)\deltafunc$O" \
638 "$(OX)\descendants$O" \
639 "$(OX)\diff$O" \
640 "$(OX)\diffcmd$O" \
641 "$(OX)\dispatch$O" \
642 "$(OX)\doc$O" \
643 "$(OX)\encode$O" \
644 "$(OX)\etag$O" \
645 "$(OX)\event$O" \
646 "$(OX)\export$O" \
647 "$(OX)\extcgi$O" \
648 "$(OX)\file$O" \
649 "$(OX)\fileedit$O" \
650 "$(OX)\finfo$O" \
651 "$(OX)\foci$O" \
652 "$(OX)\forum$O" \
653 "$(OX)\fshell$O" \
654 "$(OX)\fusefs$O" \
655 "$(OX)\fuzz$O" \
656 "$(OX)\glob$O" \
657 "$(OX)\graph$O" \
658 "$(OX)\gzip$O" \
659 "$(OX)\hname$O" \
660 "$(OX)\http$O" \
661 "$(OX)\http_socket$O" \
662 "$(OX)\http_ssl$O" \
663 "$(OX)\http_transport$O" \
664 "$(OX)\import$O" \
665 "$(OX)\info$O" \
666 "$(OX)\json$O" \
667 "$(OX)\json_artifact$O" \
668 "$(OX)\json_branch$O" \
669 "$(OX)\json_config$O" \
670 "$(OX)\json_diff$O" \
671 "$(OX)\json_dir$O" \
672 "$(OX)\json_finfo$O" \
673 "$(OX)\json_login$O" \
674 "$(OX)\json_query$O" \
675 "$(OX)\json_report$O" \
676 "$(OX)\json_status$O" \
677 "$(OX)\json_tag$O" \
678 "$(OX)\json_timeline$O" \
679 "$(OX)\json_user$O" \
680 "$(OX)\json_wiki$O" \
681 "$(OX)\leaf$O" \
682 "$(OX)\loadctrl$O" \
683 "$(OX)\login$O" \
684 "$(OX)\lookslike$O" \
685 "$(OX)\main$O" \
686 "$(OX)\manifest$O" \
687 "$(OX)\markdown$O" \
688 "$(OX)\markdown_html$O" \
689 "$(OX)\md5$O" \
690 "$(OX)\merge$O" \
691 "$(OX)\merge3$O" \
692 "$(OX)\moderate$O" \
693 "$(OX)\name$O" \
694 "$(OX)\path$O" \
695 "$(OX)\piechart$O" \
696 "$(OX)\pivot$O" \
697 "$(OX)\popen$O" \
698 "$(OX)\pqueue$O" \
699 "$(OX)\printf$O" \
700 "$(OX)\publish$O" \
701 "$(OX)\purge$O" \
702 "$(OX)\rebuild$O" \
703 "$(OX)\regexp$O" \
704 "$(OX)\repolist$O" \
705 "$(OX)\report$O" \
706 "$(OX)\rss$O" \
707 "$(OX)\schema$O" \
708 "$(OX)\search$O" \
709 "$(OX)\security_audit$O" \
710 "$(OX)\setup$O" \
711 "$(OX)\setupuser$O" \
712 "$(OX)\sha1$O" \
713 "$(OX)\sha1hard$O" \
714 "$(OX)\sha3$O" \
715 "$(OX)\shell$O" \
716 "$(OX)\shun$O" \
717 "$(OX)\sitemap$O" \
718 "$(OX)\skins$O" \
719 "$(OX)\smtp$O" \
720 "$(OX)\sqlcmd$O" \
721 "$(OX)\sqlite3$O" \
722 "$(OX)\stash$O" \
723 "$(OX)\stat$O" \
724 "$(OX)\statrep$O" \
725 "$(OX)\style$O" \
726 "$(OX)\sync$O" \
727 "$(OX)\tag$O" \
728 "$(OX)\tar$O" \
729 "$(OX)\terminal$O" \
730 "$(OX)\th$O" \
731 "$(OX)\th_lang$O" \
732 "$(OX)\th_main$O" \
733 "$(OX)\th_tcl$O" \
734 "$(OX)\timeline$O" \
735 "$(OX)\tkt$O" \
736 "$(OX)\tktsetup$O" \
737 "$(OX)\undo$O" \
738 "$(OX)\unicode$O" \
739 "$(OX)\unversioned$O" \
740 "$(OX)\update$O" \
741 "$(OX)\url$O" \
742 "$(OX)\user$O" \
743 "$(OX)\utf8$O" \
744 "$(OX)\util$O" \
745 "$(OX)\verify$O" \
746 "$(OX)\vfile$O" \
747 "$(OX)\webmail$O" \
748 "$(OX)\wiki$O" \
749 "$(OX)\wikiformat$O" \
750 "$(OX)\winfile$O" \
751 "$(OX)\winhttp$O" \
752 "$(OX)\wysiwyg$O" \
753 "$(OX)\xfer$O" \
754 "$(OX)\xfersetup$O" \
755 "$(OX)\zip$O" \
756 !if $(FOSSIL_ENABLE_MINIZ)!=0
757 "$(OX)\miniz$O" \
758 !endif
759 "$(OX)\fossil.res"
760
761
762 !ifndef BASEAPPNAME
763 BASEAPPNAME = fossil
764 !endif
@@ -749,32 +765,52 @@
765
766 APPNAME = $(OX)\$(BASEAPPNAME)$(E)
767 PDBNAME = $(OX)\$(BASEAPPNAME)$(P)
768 APPTARGETS =
769
770 all: "$(OX)" "$(APPNAME)"
771
772 $(BASEAPPNAME): "$(APPNAME)"
773
774 $(BASEAPPNAME)$(E): "$(APPNAME)"
775
776 install: "$(APPNAME)"
777 echo F | xcopy /Y "$(APPNAME)" "$(INSTALLDIR)"\*
778 !if $(DEBUG)!=0
779 echo F | xcopy /Y "$(PDBNAME)" "$(INSTALLDIR)"\*
780 !endif
781
782 $(OX):
783 @-mkdir $@
784
785 zlib:
786 @echo Building zlib from "$(ZLIBDIR)"...
787 !if $(FOSSIL_ENABLE_WINXP)!=0
788 @pushd "$(ZLIBDIR)" && $(MAKE) /f win32\Makefile.msc $(ZLIB) "CC=cl $(XPCFLAGS)" "LD=link $(XPLDFLAGS)" && popd
789 !else
790 @pushd "$(ZLIBDIR)" && $(MAKE) /f win32\Makefile.msc $(ZLIB) && popd
791 !endif
792
793 clean-zlib:
794 @pushd "$(ZLIBDIR)" && $(MAKE) /f win32\Makefile.msc clean && popd
795
796 !if $(FOSSIL_ENABLE_SSL)!=0
797 openssl:
798 @echo Building OpenSSL from "$(SSLDIR)"...
799 !ifdef PERLDIR
800 @pushd "$(SSLDIR)" && "$(PERLDIR)\$(PERL)" Configure $(SSLCONFIG) && popd
801 !else
802 @pushd "$(SSLDIR)" && "$(PERL)" Configure $(SSLCONFIG) && popd
803 !endif
 
804 !if $(FOSSIL_ENABLE_WINXP)!=0
805 @pushd "$(SSLDIR)" && $(MAKE) "CC=cl $(XPCFLAGS)" "LFLAGS=$(XPLDFLAGS)" && popd
806 !else
807 @pushd "$(SSLDIR)" && $(MAKE) && popd
808 !endif
809
810 clean-openssl:
811 @pushd "$(SSLDIR)" && $(MAKE) clean && popd
812 !endif
813
814 !if $(FOSSIL_ENABLE_MINIZ)==0
815 !if $(FOSSIL_BUILD_ZLIB)!=0
816 APPTARGETS = $(APPTARGETS) zlib
@@ -785,191 +821,188 @@
821 !if $(FOSSIL_BUILD_SSL)!=0
822 APPTARGETS = $(APPTARGETS) openssl
823 !endif
824 !endif
825
826 "$(APPNAME)" : $(APPTARGETS) "$(OBJDIR)\translate$E" "$(OBJDIR)\mkindex$E" "$(OBJDIR)\codecheck1$E" "$(OX)\headers" $(OBJ) "$(OX)\linkopts"
827 "$(OBJDIR)\codecheck1$E" $(SRC)
828 link $(LDFLAGS) /OUT:$@ /PDB:$(@D)\ $(LIBDIR) Wsetargv.obj "$(OX)\fossil.res" @"$(OX)\linkopts"
829 if exist "$(B)\win\fossil.exe.manifest" \
830 $(MTC) -nologo -manifest "$(B)\win\fossil.exe.manifest" -outputresource:$@;1
831
832 "$(OX)\linkopts": "$(B)\win\Makefile.msc"
833 echo "$(OX)\add.obj" > $@
834 echo "$(OX)\ajax.obj" >> $@
835 echo "$(OX)\alerts.obj" >> $@
836 echo "$(OX)\allrepo.obj" >> $@
837 echo "$(OX)\attach.obj" >> $@
838 echo "$(OX)\backlink.obj" >> $@
839 echo "$(OX)\backoffice.obj" >> $@
840 echo "$(OX)\bag.obj" >> $@
841 echo "$(OX)\bisect.obj" >> $@
842 echo "$(OX)\blob.obj" >> $@
843 echo "$(OX)\branch.obj" >> $@
844 echo "$(OX)\browse.obj" >> $@
845 echo "$(OX)\builtin.obj" >> $@
846 echo "$(OX)\bundle.obj" >> $@
847 echo "$(OX)\cache.obj" >> $@
848 echo "$(OX)\capabilities.obj" >> $@
849 echo "$(OX)\captcha.obj" >> $@
850 echo "$(OX)\cgi.obj" >> $@
851 echo "$(OX)\checkin.obj" >> $@
852 echo "$(OX)\checkout.obj" >> $@
853 echo "$(OX)\clearsign.obj" >> $@
854 echo "$(OX)\clone.obj" >> $@
855 echo "$(OX)\comformat.obj" >> $@
856 echo "$(OX)\configure.obj" >> $@
857 echo "$(OX)\content.obj" >> $@
858 echo "$(OX)\cookies.obj" >> $@
859 echo "$(OX)\cson_amalgamation.obj" >> $@
860 echo "$(OX)\db.obj" >> $@
861 echo "$(OX)\delta.obj" >> $@
862 echo "$(OX)\deltacmd.obj" >> $@
863 echo "$(OX)\deltafunc.obj" >> $@
864 echo "$(OX)\descendants.obj" >> $@
865 echo "$(OX)\diff.obj" >> $@
866 echo "$(OX)\diffcmd.obj" >> $@
867 echo "$(OX)\dispatch.obj" >> $@
868 echo "$(OX)\doc.obj" >> $@
869 echo "$(OX)\encode.obj" >> $@
870 echo "$(OX)\etag.obj" >> $@
871 echo "$(OX)\event.obj" >> $@
872 echo "$(OX)\export.obj" >> $@
873 echo "$(OX)\extcgi.obj" >> $@
874 echo "$(OX)\file.obj" >> $@
875 echo "$(OX)\fileedit.obj" >> $@
876 echo "$(OX)\finfo.obj" >> $@
877 echo "$(OX)\foci.obj" >> $@
878 echo "$(OX)\forum.obj" >> $@
879 echo "$(OX)\fshell.obj" >> $@
880 echo "$(OX)\fusefs.obj" >> $@
881 echo "$(OX)\fuzz.obj" >> $@
882 echo "$(OX)\glob.obj" >> $@
883 echo "$(OX)\graph.obj" >> $@
884 echo "$(OX)\gzip.obj" >> $@
885 echo "$(OX)\hname.obj" >> $@
886 echo "$(OX)\http.obj" >> $@
887 echo "$(OX)\http_socket.obj" >> $@
888 echo "$(OX)\http_ssl.obj" >> $@
889 echo "$(OX)\http_transport.obj" >> $@
890 echo "$(OX)\import.obj" >> $@
891 echo "$(OX)\info.obj" >> $@
892 echo "$(OX)\json.obj" >> $@
893 echo "$(OX)\json_artifact.obj" >> $@
894 echo "$(OX)\json_branch.obj" >> $@
895 echo "$(OX)\json_config.obj" >> $@
896 echo "$(OX)\json_diff.obj" >> $@
897 echo "$(OX)\json_dir.obj" >> $@
898 echo "$(OX)\json_finfo.obj" >> $@
899 echo "$(OX)\json_login.obj" >> $@
900 echo "$(OX)\json_query.obj" >> $@
901 echo "$(OX)\json_report.obj" >> $@
902 echo "$(OX)\json_status.obj" >> $@
903 echo "$(OX)\json_tag.obj" >> $@
904 echo "$(OX)\json_timeline.obj" >> $@
905 echo "$(OX)\json_user.obj" >> $@
906 echo "$(OX)\json_wiki.obj" >> $@
907 echo "$(OX)\leaf.obj" >> $@
908 echo "$(OX)\loadctrl.obj" >> $@
909 echo "$(OX)\login.obj" >> $@
910 echo "$(OX)\lookslike.obj" >> $@
911 echo "$(OX)\main.obj" >> $@
912 echo "$(OX)\manifest.obj" >> $@
913 echo "$(OX)\markdown.obj" >> $@
914 echo "$(OX)\markdown_html.obj" >> $@
915 echo "$(OX)\md5.obj" >> $@
916 echo "$(OX)\merge.obj" >> $@
917 echo "$(OX)\merge3.obj" >> $@
918 echo "$(OX)\moderate.obj" >> $@
919 echo "$(OX)\name.obj" >> $@
920 echo "$(OX)\path.obj" >> $@
921 echo "$(OX)\piechart.obj" >> $@
922 echo "$(OX)\pivot.obj" >> $@
923 echo "$(OX)\popen.obj" >> $@
924 echo "$(OX)\pqueue.obj" >> $@
925 echo "$(OX)\printf.obj" >> $@
926 echo "$(OX)\publish.obj" >> $@
927 echo "$(OX)\purge.obj" >> $@
928 echo "$(OX)\rebuild.obj" >> $@
929 echo "$(OX)\regexp.obj" >> $@
930 echo "$(OX)\repolist.obj" >> $@
931 echo "$(OX)\report.obj" >> $@
932 echo "$(OX)\rss.obj" >> $@
933 echo "$(OX)\schema.obj" >> $@
934 echo "$(OX)\search.obj" >> $@
935 echo "$(OX)\security_audit.obj" >> $@
936 echo "$(OX)\setup.obj" >> $@
937 echo "$(OX)\setupuser.obj" >> $@
938 echo "$(OX)\sha1.obj" >> $@
939 echo "$(OX)\sha1hard.obj" >> $@
940 echo "$(OX)\sha3.obj" >> $@
941 echo "$(OX)\shell.obj" >> $@
942 echo "$(OX)\shun.obj" >> $@
943 echo "$(OX)\sitemap.obj" >> $@
944 echo "$(OX)\skins.obj" >> $@
945 echo "$(OX)\smtp.obj" >> $@
946 echo "$(OX)\sqlcmd.obj" >> $@
947 echo "$(OX)\sqlite3.obj" >> $@
948 echo "$(OX)\stash.obj" >> $@
949 echo "$(OX)\stat.obj" >> $@
950 echo "$(OX)\statrep.obj" >> $@
951 echo "$(OX)\style.obj" >> $@
952 echo "$(OX)\sync.obj" >> $@
953 echo "$(OX)\tag.obj" >> $@
954 echo "$(OX)\tar.obj" >> $@
955 echo "$(OX)\terminal.obj" >> $@
956 echo "$(OX)\th.obj" >> $@
957 echo "$(OX)\th_lang.obj" >> $@
958 echo "$(OX)\th_main.obj" >> $@
959 echo "$(OX)\th_tcl.obj" >> $@
960 echo "$(OX)\timeline.obj" >> $@
961 echo "$(OX)\tkt.obj" >> $@
962 echo "$(OX)\tktsetup.obj" >> $@
963 echo "$(OX)\undo.obj" >> $@
964 echo "$(OX)\unicode.obj" >> $@
965 echo "$(OX)\unversioned.obj" >> $@
966 echo "$(OX)\update.obj" >> $@
967 echo "$(OX)\url.obj" >> $@
968 echo "$(OX)\user.obj" >> $@
969 echo "$(OX)\utf8.obj" >> $@
970 echo "$(OX)\util.obj" >> $@
971 echo "$(OX)\verify.obj" >> $@
972 echo "$(OX)\vfile.obj" >> $@
973 echo "$(OX)\webmail.obj" >> $@
974 echo "$(OX)\wiki.obj" >> $@
975 echo "$(OX)\wikiformat.obj" >> $@
976 echo "$(OX)\winfile.obj" >> $@
977 echo "$(OX)\winhttp.obj" >> $@
978 echo "$(OX)\wysiwyg.obj" >> $@
979 echo "$(OX)\xfer.obj" >> $@
980 echo "$(OX)\xfersetup.obj" >> $@
981 echo "$(OX)\zip.obj" >> $@
982 !if $(FOSSIL_ENABLE_MINIZ)!=0
983 echo "$(OX)\miniz.obj" >> $@
984 !endif
985 echo $(LIBS) >> $@
986
987 "$(OBJDIR)\translate$E": "$(SRCDIR)\translate.c"
988 $(BCC) /Fe$@ /Fo$(@D)\ /Fd$(@D)\ $**
989
990 "$(OBJDIR)\makeheaders$E": "$(SRCDIR)\makeheaders.c"
991 $(BCC) /Fe$@ /Fo$(@D)\ /Fd$(@D)\ $**
992
993 "$(OBJDIR)\mkindex$E": "$(SRCDIR)\mkindex.c"
994 $(BCC) /Fe$@ /Fo$(@D)\ /Fd$(@D)\ $**
995
996 "$(OBJDIR)\mkbuiltin$E": "$(SRCDIR)\mkbuiltin.c"
997 $(BCC) /Fe$@ /Fo$(@D)\ /Fd$(@D)\ $**
998
999 "$(OBJDIR)\mkversion$E": "$(SRCDIR)\mkversion.c"
1000 $(BCC) /Fe$@ /Fo$(@D)\ /Fd$(@D)\ $**
1001
1002 "$(OBJDIR)\codecheck1$E": "$(SRCDIR)\codecheck1.c"
1003 $(BCC) /Fe$@ /Fo$(@D)\ /Fd$(@D)\ $**
 
 
 
1004
1005 !if $(USE_SEE)!=0
1006 SEE_FLAGS = /DSQLITE_HAS_CODEC=1 /DSQLITE_SHELL_DBKEY_PROC=fossil_key
1007 SQLITE3_SHELL_SRC = $(SRCDIR)\shell-see.c
1008 SQLITE3_SRC = $(SRCDIR)\sqlite3-see.c
@@ -977,1082 +1010,1195 @@
1010 SEE_FLAGS =
1011 SQLITE3_SHELL_SRC = $(SRCDIR)\shell.c
1012 SQLITE3_SRC = $(SRCDIR)\sqlite3.c
1013 !endif
1014
1015 "$(OX)\shell$O" : "$(SQLITE3_SHELL_SRC)" "$(B)\win\Makefile.msc"
1016 $(TCC) /Fo$@ /Fd$(@D)\ $(SHELL_OPTIONS) $(SQLITE_OPTIONS) $(SHELL_CFLAGS) $(SEE_FLAGS) -c "$(SQLITE3_SHELL_SRC)"
1017
1018 "$(OX)\sqlite3$O" : "$(SQLITE3_SRC)" "$(B)\win\Makefile.msc"
1019 $(TCC) /Fo$@ /Fd$(@D)\ -c $(SQLITE_OPTIONS) $(SQLITE_CFLAGS) $(SEE_FLAGS) "$(SQLITE3_SRC)"
1020
1021 "$(OX)\th$O" : "$(SRCDIR)\th.c"
1022 $(TCC) /Fo$@ /Fd$(@D)\ -c $**
1023
1024 "$(OX)\th_lang$O" : "$(SRCDIR)\th_lang.c"
1025 $(TCC) /Fo$@ /Fd$(@D)\ -c $**
1026
1027 "$(OX)\th_tcl$O" : "$(SRCDIR)\th_tcl.c"
1028 $(TCC) /Fo$@ /Fd$(@D)\ -c $**
1029
1030 "$(OX)\miniz$O" : "$(SRCDIR)\miniz.c"
1031 $(TCC) /Fo$@ /Fd$(@D)\ -c $(MINIZ_OPTIONS) $**
1032
1033 "$(OX)\VERSION.h" : "$(OBJDIR)\mkversion$E" "$(B)\manifest.uuid" "$(B)\manifest" "$(B)\VERSION"
1034 $** > $@
1035
1036 "$(OX)\cson_amalgamation$O" : "$(SRCDIR)\cson_amalgamation.c"
1037 $(TCC) /Fo$@ /Fd$(@D)\ -c $**
1038
1039 "$(OX)\page_index.h": "$(OBJDIR)\mkindex$E" $(SRC)
1040 $** > $@
1041
1042 "$(OX)\builtin_data.h": "$(OBJDIR)\mkbuiltin$E" "$(OX)\builtin_data.reslist"
1043 "$(OBJDIR)\mkbuiltin$E" --prefix "$(SRCDIR)/" --reslist "$(OX)\builtin_data.reslist" > $@
1044
1045 cleanx:
1046 -del "$(OX)\*.obj" 2>NUL
1047 -del "$(OBJDIR)\*.obj" 2>NUL
1048 -del "$(OX)\*_.c" 2>NUL
1049 -del "$(OX)\*.h" 2>NUL
1050 -del "$(OX)\*.ilk" 2>NUL
1051 -del "$(OX)\*.map" 2>NUL
1052 -del "$(OX)\*.res" 2>NUL
1053 -del "$(OX)\*.reslist" 2>NUL
1054 -del "$(OX)\headers" 2>NUL
1055 -del "$(OX)\linkopts" 2>NUL
1056 -del "$(OX)\vc*.pdb" 2>NUL
1057
1058 clean: cleanx
1059 -del "$(APPNAME)" 2>NUL
1060 -del "$(PDBNAME)" 2>NUL
1061 -del "$(OBJDIR)\translate$E" 2>NUL
1062 -del "$(OBJDIR)\translate$P" 2>NUL
1063 -del "$(OBJDIR)\mkindex$E" 2>NUL
1064 -del "$(OBJDIR)\mkindex$P" 2>NUL
1065 -del "$(OBJDIR)\makeheaders$E" 2>NUL
1066 -del "$(OBJDIR)\makeheaders$P" 2>NUL
1067 -del "$(OBJDIR)\mkversion$E" 2>NUL
1068 -del "$(OBJDIR)\mkversion$P" 2>NUL
1069 -del "$(OBJDIR)\mkcss$E" 2>NUL
1070 -del "$(OBJDIR)\mkcss$P" 2>NUL
1071 -del "$(OBJDIR)\codecheck1$E" 2>NUL
1072 -del "$(OBJDIR)\codecheck1$P" 2>NUL
1073 -del "$(OBJDIR)\mkbuiltin$E" 2>NUL
1074 -del "$(OBJDIR)\mkbuiltin$P" 2>NUL
1075
1076 realclean: clean
1077
1078 "$(OBJDIR)\json$O" : "$(SRCDIR)\json_detail.h"
1079 "$(OBJDIR)\json_artifact$O" : "$(SRCDIR)\json_detail.h"
1080 "$(OBJDIR)\json_branch$O" : "$(SRCDIR)\json_detail.h"
1081 "$(OBJDIR)\json_config$O" : "$(SRCDIR)\json_detail.h"
1082 "$(OBJDIR)\json_diff$O" : "$(SRCDIR)\json_detail.h"
1083 "$(OBJDIR)\json_dir$O" : "$(SRCDIR)\json_detail.h"
1084 "$(OBJDIR)\json_finfo$O" : "$(SRCDIR)\json_detail.h"
1085 "$(OBJDIR)\json_login$O" : "$(SRCDIR)\json_detail.h"
1086 "$(OBJDIR)\json_query$O" : "$(SRCDIR)\json_detail.h"
1087 "$(OBJDIR)\json_report$O" : "$(SRCDIR)\json_detail.h"
1088 "$(OBJDIR)\json_status$O" : "$(SRCDIR)\json_detail.h"
1089 "$(OBJDIR)\json_tag$O" : "$(SRCDIR)\json_detail.h"
1090 "$(OBJDIR)\json_timeline$O" : "$(SRCDIR)\json_detail.h"
1091 "$(OBJDIR)\json_user$O" : "$(SRCDIR)\json_detail.h"
1092 "$(OBJDIR)\json_wiki$O" : "$(SRCDIR)\json_detail.h"
1093
1094 "$(OX)\builtin_data.reslist": $(EXTRA_FILES) "$(B)\win\Makefile.msc"
1095 echo "$(SRCDIR)\../skins/aht/details.txt" > $@
1096 echo "$(SRCDIR)\../skins/ardoise/css.txt" >> $@
1097 echo "$(SRCDIR)\../skins/ardoise/details.txt" >> $@
1098 echo "$(SRCDIR)\../skins/ardoise/footer.txt" >> $@
1099 echo "$(SRCDIR)\../skins/ardoise/header.txt" >> $@
1100 echo "$(SRCDIR)\../skins/black_and_white/css.txt" >> $@
1101 echo "$(SRCDIR)\../skins/black_and_white/details.txt" >> $@
1102 echo "$(SRCDIR)\../skins/black_and_white/footer.txt" >> $@
1103 echo "$(SRCDIR)\../skins/black_and_white/header.txt" >> $@
1104 echo "$(SRCDIR)\../skins/blitz/css.txt" >> $@
1105 echo "$(SRCDIR)\../skins/blitz/details.txt" >> $@
1106 echo "$(SRCDIR)\../skins/blitz/footer.txt" >> $@
1107 echo "$(SRCDIR)\../skins/blitz/header.txt" >> $@
1108 echo "$(SRCDIR)\../skins/blitz/ticket.txt" >> $@
1109 echo "$(SRCDIR)\../skins/blitz_no_logo/css.txt" >> $@
1110 echo "$(SRCDIR)\../skins/blitz_no_logo/details.txt" >> $@
1111 echo "$(SRCDIR)\../skins/blitz_no_logo/footer.txt" >> $@
1112 echo "$(SRCDIR)\../skins/blitz_no_logo/header.txt" >> $@
1113 echo "$(SRCDIR)\../skins/blitz_no_logo/ticket.txt" >> $@
1114 echo "$(SRCDIR)\../skins/bootstrap/css.txt" >> $@
1115 echo "$(SRCDIR)\../skins/bootstrap/details.txt" >> $@
1116 echo "$(SRCDIR)\../skins/bootstrap/footer.txt" >> $@
1117 echo "$(SRCDIR)\../skins/bootstrap/header.txt" >> $@
1118 echo "$(SRCDIR)\../skins/default/css.txt" >> $@
1119 echo "$(SRCDIR)\../skins/default/details.txt" >> $@
1120 echo "$(SRCDIR)\../skins/default/footer.txt" >> $@
1121 echo "$(SRCDIR)\../skins/default/header.txt" >> $@
1122 echo "$(SRCDIR)\../skins/default/js.txt" >> $@
1123 echo "$(SRCDIR)\../skins/eagle/css.txt" >> $@
1124 echo "$(SRCDIR)\../skins/eagle/details.txt" >> $@
1125 echo "$(SRCDIR)\../skins/eagle/footer.txt" >> $@
1126 echo "$(SRCDIR)\../skins/eagle/header.txt" >> $@
1127 echo "$(SRCDIR)\../skins/enhanced1/css.txt" >> $@
1128 echo "$(SRCDIR)\../skins/enhanced1/details.txt" >> $@
1129 echo "$(SRCDIR)\../skins/enhanced1/footer.txt" >> $@
1130 echo "$(SRCDIR)\../skins/enhanced1/header.txt" >> $@
1131 echo "$(SRCDIR)\../skins/khaki/css.txt" >> $@
1132 echo "$(SRCDIR)\../skins/khaki/details.txt" >> $@
1133 echo "$(SRCDIR)\../skins/khaki/footer.txt" >> $@
1134 echo "$(SRCDIR)\../skins/khaki/header.txt" >> $@
1135 echo "$(SRCDIR)\../skins/original/css.txt" >> $@
1136 echo "$(SRCDIR)\../skins/original/details.txt" >> $@
1137 echo "$(SRCDIR)\../skins/original/footer.txt" >> $@
1138 echo "$(SRCDIR)\../skins/original/header.txt" >> $@
1139 echo "$(SRCDIR)\../skins/plain_gray/css.txt" >> $@
1140 echo "$(SRCDIR)\../skins/plain_gray/details.txt" >> $@
1141 echo "$(SRCDIR)\../skins/plain_gray/footer.txt" >> $@
1142 echo "$(SRCDIR)\../skins/plain_gray/header.txt" >> $@
1143 echo "$(SRCDIR)\../skins/rounded1/css.txt" >> $@
1144 echo "$(SRCDIR)\../skins/rounded1/details.txt" >> $@
1145 echo "$(SRCDIR)\../skins/rounded1/footer.txt" >> $@
1146 echo "$(SRCDIR)\../skins/rounded1/header.txt" >> $@
1147 echo "$(SRCDIR)\../skins/xekri/css.txt" >> $@
1148 echo "$(SRCDIR)\../skins/xekri/details.txt" >> $@
1149 echo "$(SRCDIR)\../skins/xekri/footer.txt" >> $@
1150 echo "$(SRCDIR)\../skins/xekri/header.txt" >> $@
1151 echo "$(SRCDIR)\accordion.js" >> $@
1152 echo "$(SRCDIR)\ci_edit.js" >> $@
1153 echo "$(SRCDIR)\copybtn.js" >> $@
1154 echo "$(SRCDIR)\default.css" >> $@
1155 echo "$(SRCDIR)\diff.tcl" >> $@
1156 echo "$(SRCDIR)\forum.js" >> $@
1157 echo "$(SRCDIR)\fossil.bootstrap.js" >> $@
1158 echo "$(SRCDIR)\fossil.confirmer.js" >> $@
1159 echo "$(SRCDIR)\fossil.dom.js" >> $@
1160 echo "$(SRCDIR)\fossil.fetch.js" >> $@
1161 echo "$(SRCDIR)\fossil.page.fileedit.js" >> $@
1162 echo "$(SRCDIR)\fossil.storage.js" >> $@
1163 echo "$(SRCDIR)\fossil.tabs.js" >> $@
1164 echo "$(SRCDIR)\graph.js" >> $@
1165 echo "$(SRCDIR)\href.js" >> $@
1166 echo "$(SRCDIR)\login.js" >> $@
1167 echo "$(SRCDIR)\markdown.md" >> $@
1168 echo "$(SRCDIR)\menu.js" >> $@
1169 echo "$(SRCDIR)\sbsdiff.js" >> $@
1170 echo "$(SRCDIR)\scroll.js" >> $@
1171 echo "$(SRCDIR)\skin.js" >> $@
1172 echo "$(SRCDIR)\sorttable.js" >> $@
1173 echo "$(SRCDIR)\sounds/0.wav" >> $@
1174 echo "$(SRCDIR)\sounds/1.wav" >> $@
1175 echo "$(SRCDIR)\sounds/2.wav" >> $@
1176 echo "$(SRCDIR)\sounds/3.wav" >> $@
1177 echo "$(SRCDIR)\sounds/4.wav" >> $@
1178 echo "$(SRCDIR)\sounds/5.wav" >> $@
1179 echo "$(SRCDIR)\sounds/6.wav" >> $@
1180 echo "$(SRCDIR)\sounds/7.wav" >> $@
1181 echo "$(SRCDIR)\sounds/8.wav" >> $@
1182 echo "$(SRCDIR)\sounds/9.wav" >> $@
1183 echo "$(SRCDIR)\sounds/a.wav" >> $@
1184 echo "$(SRCDIR)\sounds/b.wav" >> $@
1185 echo "$(SRCDIR)\sounds/c.wav" >> $@
1186 echo "$(SRCDIR)\sounds/d.wav" >> $@
1187 echo "$(SRCDIR)\sounds/e.wav" >> $@
1188 echo "$(SRCDIR)\sounds/f.wav" >> $@
1189 echo "$(SRCDIR)\style.admin_log.css" >> $@
1190 echo "$(SRCDIR)\style.fileedit.css" >> $@
1191 echo "$(SRCDIR)\tree.js" >> $@
1192 echo "$(SRCDIR)\useredit.js" >> $@
1193 echo "$(SRCDIR)\wiki.wiki" >> $@
1194
1195 "$(OX)\add$O" : "$(OX)\add_.c" "$(OX)\add.h"
1196 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\add_.c"
1197
1198 "$(OX)\add_.c" : "$(SRCDIR)\add.c"
1199 "$(OBJDIR)\translate$E" $** > $@
1200
1201 "$(OX)\ajax$O" : "$(OX)\ajax_.c" "$(OX)\ajax.h"
1202 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\ajax_.c"
1203
1204 "$(OX)\ajax_.c" : "$(SRCDIR)\ajax.c"
1205 "$(OBJDIR)\translate$E" $** > $@
1206
1207 "$(OX)\alerts$O" : "$(OX)\alerts_.c" "$(OX)\alerts.h"
1208 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\alerts_.c"
1209
1210 "$(OX)\alerts_.c" : "$(SRCDIR)\alerts.c"
1211 "$(OBJDIR)\translate$E" $** > $@
1212
1213 "$(OX)\allrepo$O" : "$(OX)\allrepo_.c" "$(OX)\allrepo.h"
1214 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\allrepo_.c"
1215
1216 "$(OX)\allrepo_.c" : "$(SRCDIR)\allrepo.c"
1217 "$(OBJDIR)\translate$E" $** > $@
1218
1219 "$(OX)\attach$O" : "$(OX)\attach_.c" "$(OX)\attach.h"
1220 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\attach_.c"
1221
1222 "$(OX)\attach_.c" : "$(SRCDIR)\attach.c"
1223 "$(OBJDIR)\translate$E" $** > $@
1224
1225 "$(OX)\backlink$O" : "$(OX)\backlink_.c" "$(OX)\backlink.h"
1226 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\backlink_.c"
1227
1228 "$(OX)\backlink_.c" : "$(SRCDIR)\backlink.c"
1229 "$(OBJDIR)\translate$E" $** > $@
1230
1231 "$(OX)\backoffice$O" : "$(OX)\backoffice_.c" "$(OX)\backoffice.h"
1232 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\backoffice_.c"
1233
1234 "$(OX)\backoffice_.c" : "$(SRCDIR)\backoffice.c"
1235 "$(OBJDIR)\translate$E" $** > $@
1236
1237 "$(OX)\bag$O" : "$(OX)\bag_.c" "$(OX)\bag.h"
1238 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\bag_.c"
1239
1240 "$(OX)\bag_.c" : "$(SRCDIR)\bag.c"
1241 "$(OBJDIR)\translate$E" $** > $@
1242
1243 "$(OX)\bisect$O" : "$(OX)\bisect_.c" "$(OX)\bisect.h"
1244 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\bisect_.c"
1245
1246 "$(OX)\bisect_.c" : "$(SRCDIR)\bisect.c"
1247 "$(OBJDIR)\translate$E" $** > $@
1248
1249 "$(OX)\blob$O" : "$(OX)\blob_.c" "$(OX)\blob.h"
1250 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\blob_.c"
1251
1252 "$(OX)\blob_.c" : "$(SRCDIR)\blob.c"
1253 "$(OBJDIR)\translate$E" $** > $@
1254
1255 "$(OX)\branch$O" : "$(OX)\branch_.c" "$(OX)\branch.h"
1256 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\branch_.c"
1257
1258 "$(OX)\branch_.c" : "$(SRCDIR)\branch.c"
1259 "$(OBJDIR)\translate$E" $** > $@
1260
1261 "$(OX)\browse$O" : "$(OX)\browse_.c" "$(OX)\browse.h"
1262 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\browse_.c"
1263
1264 "$(OX)\browse_.c" : "$(SRCDIR)\browse.c"
1265 "$(OBJDIR)\translate$E" $** > $@
1266
1267 "$(OX)\builtin$O" : "$(OX)\builtin_.c" "$(OX)\builtin.h"
1268 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\builtin_.c"
1269
1270 "$(OX)\builtin_.c" : "$(SRCDIR)\builtin.c"
1271 "$(OBJDIR)\translate$E" $** > $@
1272
1273 "$(OX)\bundle$O" : "$(OX)\bundle_.c" "$(OX)\bundle.h"
1274 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\bundle_.c"
1275
1276 "$(OX)\bundle_.c" : "$(SRCDIR)\bundle.c"
1277 "$(OBJDIR)\translate$E" $** > $@
1278
1279 "$(OX)\cache$O" : "$(OX)\cache_.c" "$(OX)\cache.h"
1280 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\cache_.c"
1281
1282 "$(OX)\cache_.c" : "$(SRCDIR)\cache.c"
1283 "$(OBJDIR)\translate$E" $** > $@
1284
1285 "$(OX)\capabilities$O" : "$(OX)\capabilities_.c" "$(OX)\capabilities.h"
1286 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\capabilities_.c"
1287
1288 "$(OX)\capabilities_.c" : "$(SRCDIR)\capabilities.c"
1289 "$(OBJDIR)\translate$E" $** > $@
1290
1291 "$(OX)\captcha$O" : "$(OX)\captcha_.c" "$(OX)\captcha.h"
1292 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\captcha_.c"
1293
1294 "$(OX)\captcha_.c" : "$(SRCDIR)\captcha.c"
1295 "$(OBJDIR)\translate$E" $** > $@
1296
1297 "$(OX)\cgi$O" : "$(OX)\cgi_.c" "$(OX)\cgi.h"
1298 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\cgi_.c"
1299
1300 "$(OX)\cgi_.c" : "$(SRCDIR)\cgi.c"
1301 "$(OBJDIR)\translate$E" $** > $@
1302
1303 "$(OX)\checkin$O" : "$(OX)\checkin_.c" "$(OX)\checkin.h"
1304 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\checkin_.c"
1305
1306 "$(OX)\checkin_.c" : "$(SRCDIR)\checkin.c"
1307 "$(OBJDIR)\translate$E" $** > $@
1308
1309 "$(OX)\checkout$O" : "$(OX)\checkout_.c" "$(OX)\checkout.h"
1310 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\checkout_.c"
1311
1312 "$(OX)\checkout_.c" : "$(SRCDIR)\checkout.c"
1313 "$(OBJDIR)\translate$E" $** > $@
1314
1315 "$(OX)\clearsign$O" : "$(OX)\clearsign_.c" "$(OX)\clearsign.h"
1316 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\clearsign_.c"
1317
1318 "$(OX)\clearsign_.c" : "$(SRCDIR)\clearsign.c"
1319 "$(OBJDIR)\translate$E" $** > $@
1320
1321 "$(OX)\clone$O" : "$(OX)\clone_.c" "$(OX)\clone.h"
1322 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\clone_.c"
1323
1324 "$(OX)\clone_.c" : "$(SRCDIR)\clone.c"
1325 "$(OBJDIR)\translate$E" $** > $@
1326
1327 "$(OX)\comformat$O" : "$(OX)\comformat_.c" "$(OX)\comformat.h"
1328 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\comformat_.c"
1329
1330 "$(OX)\comformat_.c" : "$(SRCDIR)\comformat.c"
1331 "$(OBJDIR)\translate$E" $** > $@
1332
1333 "$(OX)\configure$O" : "$(OX)\configure_.c" "$(OX)\configure.h"
1334 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\configure_.c"
1335
1336 "$(OX)\configure_.c" : "$(SRCDIR)\configure.c"
1337 "$(OBJDIR)\translate$E" $** > $@
1338
1339 "$(OX)\content$O" : "$(OX)\content_.c" "$(OX)\content.h"
1340 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\content_.c"
1341
1342 "$(OX)\content_.c" : "$(SRCDIR)\content.c"
1343 "$(OBJDIR)\translate$E" $** > $@
1344
1345 "$(OX)\cookies$O" : "$(OX)\cookies_.c" "$(OX)\cookies.h"
1346 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\cookies_.c"
1347
1348 "$(OX)\cookies_.c" : "$(SRCDIR)\cookies.c"
1349 "$(OBJDIR)\translate$E" $** > $@
1350
1351 "$(OX)\db$O" : "$(OX)\db_.c" "$(OX)\db.h"
1352 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\db_.c"
1353
1354 "$(OX)\db_.c" : "$(SRCDIR)\db.c"
1355 "$(OBJDIR)\translate$E" $** > $@
1356
1357 "$(OX)\delta$O" : "$(OX)\delta_.c" "$(OX)\delta.h"
1358 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\delta_.c"
1359
1360 "$(OX)\delta_.c" : "$(SRCDIR)\delta.c"
1361 "$(OBJDIR)\translate$E" $** > $@
1362
1363 "$(OX)\deltacmd$O" : "$(OX)\deltacmd_.c" "$(OX)\deltacmd.h"
1364 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\deltacmd_.c"
1365
1366 "$(OX)\deltacmd_.c" : "$(SRCDIR)\deltacmd.c"
1367 "$(OBJDIR)\translate$E" $** > $@
1368
1369 "$(OX)\deltafunc$O" : "$(OX)\deltafunc_.c" "$(OX)\deltafunc.h"
1370 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\deltafunc_.c"
1371
1372 "$(OX)\deltafunc_.c" : "$(SRCDIR)\deltafunc.c"
1373 "$(OBJDIR)\translate$E" $** > $@
1374
1375 "$(OX)\descendants$O" : "$(OX)\descendants_.c" "$(OX)\descendants.h"
1376 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\descendants_.c"
1377
1378 "$(OX)\descendants_.c" : "$(SRCDIR)\descendants.c"
1379 "$(OBJDIR)\translate$E" $** > $@
1380
1381 "$(OX)\diff$O" : "$(OX)\diff_.c" "$(OX)\diff.h"
1382 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\diff_.c"
1383
1384 "$(OX)\diff_.c" : "$(SRCDIR)\diff.c"
1385 "$(OBJDIR)\translate$E" $** > $@
1386
1387 "$(OX)\diffcmd$O" : "$(OX)\diffcmd_.c" "$(OX)\diffcmd.h"
1388 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\diffcmd_.c"
1389
1390 "$(OX)\diffcmd_.c" : "$(SRCDIR)\diffcmd.c"
1391 "$(OBJDIR)\translate$E" $** > $@
1392
1393 "$(OX)\dispatch$O" : "$(OX)\dispatch_.c" "$(OX)\dispatch.h"
1394 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\dispatch_.c"
1395
1396 "$(OX)\dispatch_.c" : "$(SRCDIR)\dispatch.c"
1397 "$(OBJDIR)\translate$E" $** > $@
1398
1399 "$(OX)\doc$O" : "$(OX)\doc_.c" "$(OX)\doc.h"
1400 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\doc_.c"
1401
1402 "$(OX)\doc_.c" : "$(SRCDIR)\doc.c"
1403 "$(OBJDIR)\translate$E" $** > $@
1404
1405 "$(OX)\encode$O" : "$(OX)\encode_.c" "$(OX)\encode.h"
1406 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\encode_.c"
1407
1408 "$(OX)\encode_.c" : "$(SRCDIR)\encode.c"
1409 "$(OBJDIR)\translate$E" $** > $@
1410
1411 "$(OX)\etag$O" : "$(OX)\etag_.c" "$(OX)\etag.h"
1412 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\etag_.c"
1413
1414 "$(OX)\etag_.c" : "$(SRCDIR)\etag.c"
1415 "$(OBJDIR)\translate$E" $** > $@
1416
1417 "$(OX)\event$O" : "$(OX)\event_.c" "$(OX)\event.h"
1418 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\event_.c"
1419
1420 "$(OX)\event_.c" : "$(SRCDIR)\event.c"
1421 "$(OBJDIR)\translate$E" $** > $@
1422
1423 "$(OX)\export$O" : "$(OX)\export_.c" "$(OX)\export.h"
1424 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\export_.c"
1425
1426 "$(OX)\export_.c" : "$(SRCDIR)\export.c"
1427 "$(OBJDIR)\translate$E" $** > $@
1428
1429 "$(OX)\extcgi$O" : "$(OX)\extcgi_.c" "$(OX)\extcgi.h"
1430 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\extcgi_.c"
1431
1432 "$(OX)\extcgi_.c" : "$(SRCDIR)\extcgi.c"
1433 "$(OBJDIR)\translate$E" $** > $@
1434
1435 "$(OX)\file$O" : "$(OX)\file_.c" "$(OX)\file.h"
1436 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\file_.c"
1437
1438 "$(OX)\file_.c" : "$(SRCDIR)\file.c"
1439 "$(OBJDIR)\translate$E" $** > $@
1440
1441 "$(OX)\fileedit$O" : "$(OX)\fileedit_.c" "$(OX)\fileedit.h"
1442 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\fileedit_.c"
1443
1444 "$(OX)\fileedit_.c" : "$(SRCDIR)\fileedit.c"
1445 "$(OBJDIR)\translate$E" $** > $@
1446
1447 "$(OX)\finfo$O" : "$(OX)\finfo_.c" "$(OX)\finfo.h"
1448 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\finfo_.c"
1449
1450 "$(OX)\finfo_.c" : "$(SRCDIR)\finfo.c"
1451 "$(OBJDIR)\translate$E" $** > $@
1452
1453 "$(OX)\foci$O" : "$(OX)\foci_.c" "$(OX)\foci.h"
1454 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\foci_.c"
1455
1456 "$(OX)\foci_.c" : "$(SRCDIR)\foci.c"
1457 "$(OBJDIR)\translate$E" $** > $@
1458
1459 "$(OX)\forum$O" : "$(OX)\forum_.c" "$(OX)\forum.h"
1460 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\forum_.c"
1461
1462 "$(OX)\forum_.c" : "$(SRCDIR)\forum.c"
1463 "$(OBJDIR)\translate$E" $** > $@
1464
1465 "$(OX)\fshell$O" : "$(OX)\fshell_.c" "$(OX)\fshell.h"
1466 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\fshell_.c"
1467
1468 "$(OX)\fshell_.c" : "$(SRCDIR)\fshell.c"
1469 "$(OBJDIR)\translate$E" $** > $@
1470
1471 "$(OX)\fusefs$O" : "$(OX)\fusefs_.c" "$(OX)\fusefs.h"
1472 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\fusefs_.c"
1473
1474 "$(OX)\fusefs_.c" : "$(SRCDIR)\fusefs.c"
1475 "$(OBJDIR)\translate$E" $** > $@
1476
1477 "$(OX)\fuzz$O" : "$(OX)\fuzz_.c" "$(OX)\fuzz.h"
1478 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\fuzz_.c"
1479
1480 "$(OX)\fuzz_.c" : "$(SRCDIR)\fuzz.c"
1481 "$(OBJDIR)\translate$E" $** > $@
1482
1483 "$(OX)\glob$O" : "$(OX)\glob_.c" "$(OX)\glob.h"
1484 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\glob_.c"
1485
1486 "$(OX)\glob_.c" : "$(SRCDIR)\glob.c"
1487 "$(OBJDIR)\translate$E" $** > $@
1488
1489 "$(OX)\graph$O" : "$(OX)\graph_.c" "$(OX)\graph.h"
1490 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\graph_.c"
1491
1492 "$(OX)\graph_.c" : "$(SRCDIR)\graph.c"
1493 "$(OBJDIR)\translate$E" $** > $@
1494
1495 "$(OX)\gzip$O" : "$(OX)\gzip_.c" "$(OX)\gzip.h"
1496 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\gzip_.c"
1497
1498 "$(OX)\gzip_.c" : "$(SRCDIR)\gzip.c"
1499 "$(OBJDIR)\translate$E" $** > $@
1500
1501 "$(OX)\hname$O" : "$(OX)\hname_.c" "$(OX)\hname.h"
1502 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\hname_.c"
1503
1504 "$(OX)\hname_.c" : "$(SRCDIR)\hname.c"
1505 "$(OBJDIR)\translate$E" $** > $@
1506
1507 "$(OX)\http$O" : "$(OX)\http_.c" "$(OX)\http.h"
1508 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\http_.c"
1509
1510 "$(OX)\http_.c" : "$(SRCDIR)\http.c"
1511 "$(OBJDIR)\translate$E" $** > $@
1512
1513 "$(OX)\http_socket$O" : "$(OX)\http_socket_.c" "$(OX)\http_socket.h"
1514 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\http_socket_.c"
1515
1516 "$(OX)\http_socket_.c" : "$(SRCDIR)\http_socket.c"
1517 "$(OBJDIR)\translate$E" $** > $@
1518
1519 "$(OX)\http_ssl$O" : "$(OX)\http_ssl_.c" "$(OX)\http_ssl.h"
1520 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\http_ssl_.c"
1521
1522 "$(OX)\http_ssl_.c" : "$(SRCDIR)\http_ssl.c"
1523 "$(OBJDIR)\translate$E" $** > $@
1524
1525 "$(OX)\http_transport$O" : "$(OX)\http_transport_.c" "$(OX)\http_transport.h"
1526 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\http_transport_.c"
1527
1528 "$(OX)\http_transport_.c" : "$(SRCDIR)\http_transport.c"
1529 "$(OBJDIR)\translate$E" $** > $@
1530
1531 "$(OX)\import$O" : "$(OX)\import_.c" "$(OX)\import.h"
1532 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\import_.c"
1533
1534 "$(OX)\import_.c" : "$(SRCDIR)\import.c"
1535 "$(OBJDIR)\translate$E" $** > $@
1536
1537 "$(OX)\info$O" : "$(OX)\info_.c" "$(OX)\info.h"
1538 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\info_.c"
1539
1540 "$(OX)\info_.c" : "$(SRCDIR)\info.c"
1541 "$(OBJDIR)\translate$E" $** > $@
1542
1543 "$(OX)\json$O" : "$(OX)\json_.c" "$(OX)\json.h"
1544 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_.c"
1545
1546 "$(OX)\json_.c" : "$(SRCDIR)\json.c"
1547 "$(OBJDIR)\translate$E" $** > $@
1548
1549 "$(OX)\json_artifact$O" : "$(OX)\json_artifact_.c" "$(OX)\json_artifact.h"
1550 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_artifact_.c"
1551
1552 "$(OX)\json_artifact_.c" : "$(SRCDIR)\json_artifact.c"
1553 "$(OBJDIR)\translate$E" $** > $@
1554
1555 "$(OX)\json_branch$O" : "$(OX)\json_branch_.c" "$(OX)\json_branch.h"
1556 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_branch_.c"
1557
1558 "$(OX)\json_branch_.c" : "$(SRCDIR)\json_branch.c"
1559 "$(OBJDIR)\translate$E" $** > $@
1560
1561 "$(OX)\json_config$O" : "$(OX)\json_config_.c" "$(OX)\json_config.h"
1562 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_config_.c"
1563
1564 "$(OX)\json_config_.c" : "$(SRCDIR)\json_config.c"
1565 "$(OBJDIR)\translate$E" $** > $@
1566
1567 "$(OX)\json_diff$O" : "$(OX)\json_diff_.c" "$(OX)\json_diff.h"
1568 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_diff_.c"
1569
1570 "$(OX)\json_diff_.c" : "$(SRCDIR)\json_diff.c"
1571 "$(OBJDIR)\translate$E" $** > $@
1572
1573 "$(OX)\json_dir$O" : "$(OX)\json_dir_.c" "$(OX)\json_dir.h"
1574 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_dir_.c"
1575
1576 "$(OX)\json_dir_.c" : "$(SRCDIR)\json_dir.c"
1577 "$(OBJDIR)\translate$E" $** > $@
1578
1579 "$(OX)\json_finfo$O" : "$(OX)\json_finfo_.c" "$(OX)\json_finfo.h"
1580 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_finfo_.c"
1581
1582 "$(OX)\json_finfo_.c" : "$(SRCDIR)\json_finfo.c"
1583 "$(OBJDIR)\translate$E" $** > $@
1584
1585 "$(OX)\json_login$O" : "$(OX)\json_login_.c" "$(OX)\json_login.h"
1586 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_login_.c"
1587
1588 "$(OX)\json_login_.c" : "$(SRCDIR)\json_login.c"
1589 "$(OBJDIR)\translate$E" $** > $@
1590
1591 "$(OX)\json_query$O" : "$(OX)\json_query_.c" "$(OX)\json_query.h"
1592 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_query_.c"
1593
1594 "$(OX)\json_query_.c" : "$(SRCDIR)\json_query.c"
1595 "$(OBJDIR)\translate$E" $** > $@
1596
1597 "$(OX)\json_report$O" : "$(OX)\json_report_.c" "$(OX)\json_report.h"
1598 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_report_.c"
1599
1600 "$(OX)\json_report_.c" : "$(SRCDIR)\json_report.c"
1601 "$(OBJDIR)\translate$E" $** > $@
1602
1603 "$(OX)\json_status$O" : "$(OX)\json_status_.c" "$(OX)\json_status.h"
1604 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_status_.c"
1605
1606 "$(OX)\json_status_.c" : "$(SRCDIR)\json_status.c"
1607 "$(OBJDIR)\translate$E" $** > $@
1608
1609 "$(OX)\json_tag$O" : "$(OX)\json_tag_.c" "$(OX)\json_tag.h"
1610 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_tag_.c"
1611
1612 "$(OX)\json_tag_.c" : "$(SRCDIR)\json_tag.c"
1613 "$(OBJDIR)\translate$E" $** > $@
1614
1615 "$(OX)\json_timeline$O" : "$(OX)\json_timeline_.c" "$(OX)\json_timeline.h"
1616 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_timeline_.c"
1617
1618 "$(OX)\json_timeline_.c" : "$(SRCDIR)\json_timeline.c"
1619 "$(OBJDIR)\translate$E" $** > $@
1620
1621 "$(OX)\json_user$O" : "$(OX)\json_user_.c" "$(OX)\json_user.h"
1622 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_user_.c"
1623
1624 "$(OX)\json_user_.c" : "$(SRCDIR)\json_user.c"
1625 "$(OBJDIR)\translate$E" $** > $@
1626
1627 "$(OX)\json_wiki$O" : "$(OX)\json_wiki_.c" "$(OX)\json_wiki.h"
1628 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_wiki_.c"
1629
1630 "$(OX)\json_wiki_.c" : "$(SRCDIR)\json_wiki.c"
1631 "$(OBJDIR)\translate$E" $** > $@
1632
1633 "$(OX)\leaf$O" : "$(OX)\leaf_.c" "$(OX)\leaf.h"
1634 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\leaf_.c"
1635
1636 "$(OX)\leaf_.c" : "$(SRCDIR)\leaf.c"
1637 "$(OBJDIR)\translate$E" $** > $@
1638
1639 "$(OX)\loadctrl$O" : "$(OX)\loadctrl_.c" "$(OX)\loadctrl.h"
1640 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\loadctrl_.c"
1641
1642 "$(OX)\loadctrl_.c" : "$(SRCDIR)\loadctrl.c"
1643 "$(OBJDIR)\translate$E" $** > $@
1644
1645 "$(OX)\login$O" : "$(OX)\login_.c" "$(OX)\login.h"
1646 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\login_.c"
1647
1648 "$(OX)\login_.c" : "$(SRCDIR)\login.c"
1649 "$(OBJDIR)\translate$E" $** > $@
1650
1651 "$(OX)\lookslike$O" : "$(OX)\lookslike_.c" "$(OX)\lookslike.h"
1652 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\lookslike_.c"
1653
1654 "$(OX)\lookslike_.c" : "$(SRCDIR)\lookslike.c"
1655 "$(OBJDIR)\translate$E" $** > $@
1656
1657 "$(OX)\main$O" : "$(OX)\main_.c" "$(OX)\main.h"
1658 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\main_.c"
1659
1660 "$(OX)\main_.c" : "$(SRCDIR)\main.c"
1661 "$(OBJDIR)\translate$E" $** > $@
1662
1663 "$(OX)\manifest$O" : "$(OX)\manifest_.c" "$(OX)\manifest.h"
1664 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\manifest_.c"
1665
1666 "$(OX)\manifest_.c" : "$(SRCDIR)\manifest.c"
1667 "$(OBJDIR)\translate$E" $** > $@
1668
1669 "$(OX)\markdown$O" : "$(OX)\markdown_.c" "$(OX)\markdown.h"
1670 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\markdown_.c"
1671
1672 "$(OX)\markdown_.c" : "$(SRCDIR)\markdown.c"
1673 "$(OBJDIR)\translate$E" $** > $@
1674
1675 "$(OX)\markdown_html$O" : "$(OX)\markdown_html_.c" "$(OX)\markdown_html.h"
1676 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\markdown_html_.c"
1677
1678 "$(OX)\markdown_html_.c" : "$(SRCDIR)\markdown_html.c"
1679 "$(OBJDIR)\translate$E" $** > $@
1680
1681 "$(OX)\md5$O" : "$(OX)\md5_.c" "$(OX)\md5.h"
1682 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\md5_.c"
1683
1684 "$(OX)\md5_.c" : "$(SRCDIR)\md5.c"
1685 "$(OBJDIR)\translate$E" $** > $@
1686
1687 "$(OX)\merge$O" : "$(OX)\merge_.c" "$(OX)\merge.h"
1688 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\merge_.c"
1689
1690 "$(OX)\merge_.c" : "$(SRCDIR)\merge.c"
1691 "$(OBJDIR)\translate$E" $** > $@
1692
1693 "$(OX)\merge3$O" : "$(OX)\merge3_.c" "$(OX)\merge3.h"
1694 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\merge3_.c"
1695
1696 "$(OX)\merge3_.c" : "$(SRCDIR)\merge3.c"
1697 "$(OBJDIR)\translate$E" $** > $@
1698
1699 "$(OX)\moderate$O" : "$(OX)\moderate_.c" "$(OX)\moderate.h"
1700 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\moderate_.c"
1701
1702 "$(OX)\moderate_.c" : "$(SRCDIR)\moderate.c"
1703 "$(OBJDIR)\translate$E" $** > $@
1704
1705 "$(OX)\name$O" : "$(OX)\name_.c" "$(OX)\name.h"
1706 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\name_.c"
1707
1708 "$(OX)\name_.c" : "$(SRCDIR)\name.c"
1709 "$(OBJDIR)\translate$E" $** > $@
1710
1711 "$(OX)\path$O" : "$(OX)\path_.c" "$(OX)\path.h"
1712 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\path_.c"
1713
1714 "$(OX)\path_.c" : "$(SRCDIR)\path.c"
1715 "$(OBJDIR)\translate$E" $** > $@
1716
1717 "$(OX)\piechart$O" : "$(OX)\piechart_.c" "$(OX)\piechart.h"
1718 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\piechart_.c"
1719
1720 "$(OX)\piechart_.c" : "$(SRCDIR)\piechart.c"
1721 "$(OBJDIR)\translate$E" $** > $@
1722
1723 "$(OX)\pivot$O" : "$(OX)\pivot_.c" "$(OX)\pivot.h"
1724 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\pivot_.c"
1725
1726 "$(OX)\pivot_.c" : "$(SRCDIR)\pivot.c"
1727 "$(OBJDIR)\translate$E" $** > $@
1728
1729 "$(OX)\popen$O" : "$(OX)\popen_.c" "$(OX)\popen.h"
1730 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\popen_.c"
1731
1732 "$(OX)\popen_.c" : "$(SRCDIR)\popen.c"
1733 "$(OBJDIR)\translate$E" $** > $@
1734
1735 "$(OX)\pqueue$O" : "$(OX)\pqueue_.c" "$(OX)\pqueue.h"
1736 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\pqueue_.c"
1737
1738 "$(OX)\pqueue_.c" : "$(SRCDIR)\pqueue.c"
1739 "$(OBJDIR)\translate$E" $** > $@
1740
1741 "$(OX)\printf$O" : "$(OX)\printf_.c" "$(OX)\printf.h"
1742 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\printf_.c"
1743
1744 "$(OX)\printf_.c" : "$(SRCDIR)\printf.c"
1745 "$(OBJDIR)\translate$E" $** > $@
1746
1747 "$(OX)\publish$O" : "$(OX)\publish_.c" "$(OX)\publish.h"
1748 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\publish_.c"
1749
1750 "$(OX)\publish_.c" : "$(SRCDIR)\publish.c"
1751 "$(OBJDIR)\translate$E" $** > $@
1752
1753 "$(OX)\purge$O" : "$(OX)\purge_.c" "$(OX)\purge.h"
1754 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\purge_.c"
1755
1756 "$(OX)\purge_.c" : "$(SRCDIR)\purge.c"
1757 "$(OBJDIR)\translate$E" $** > $@
1758
1759 "$(OX)\rebuild$O" : "$(OX)\rebuild_.c" "$(OX)\rebuild.h"
1760 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\rebuild_.c"
1761
1762 "$(OX)\rebuild_.c" : "$(SRCDIR)\rebuild.c"
1763 "$(OBJDIR)\translate$E" $** > $@
1764
1765 "$(OX)\regexp$O" : "$(OX)\regexp_.c" "$(OX)\regexp.h"
1766 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\regexp_.c"
1767
1768 "$(OX)\regexp_.c" : "$(SRCDIR)\regexp.c"
1769 "$(OBJDIR)\translate$E" $** > $@
1770
1771 "$(OX)\repolist$O" : "$(OX)\repolist_.c" "$(OX)\repolist.h"
1772 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\repolist_.c"
1773
1774 "$(OX)\repolist_.c" : "$(SRCDIR)\repolist.c"
1775 "$(OBJDIR)\translate$E" $** > $@
1776
1777 "$(OX)\report$O" : "$(OX)\report_.c" "$(OX)\report.h"
1778 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\report_.c"
1779
1780 "$(OX)\report_.c" : "$(SRCDIR)\report.c"
1781 "$(OBJDIR)\translate$E" $** > $@
1782
1783 "$(OX)\rss$O" : "$(OX)\rss_.c" "$(OX)\rss.h"
1784 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\rss_.c"
1785
1786 "$(OX)\rss_.c" : "$(SRCDIR)\rss.c"
1787 "$(OBJDIR)\translate$E" $** > $@
1788
1789 "$(OX)\schema$O" : "$(OX)\schema_.c" "$(OX)\schema.h"
1790 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\schema_.c"
1791
1792 "$(OX)\schema_.c" : "$(SRCDIR)\schema.c"
1793 "$(OBJDIR)\translate$E" $** > $@
1794
1795 "$(OX)\search$O" : "$(OX)\search_.c" "$(OX)\search.h"
1796 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\search_.c"
1797
1798 "$(OX)\search_.c" : "$(SRCDIR)\search.c"
1799 "$(OBJDIR)\translate$E" $** > $@
1800
1801 "$(OX)\security_audit$O" : "$(OX)\security_audit_.c" "$(OX)\security_audit.h"
1802 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\security_audit_.c"
1803
1804 "$(OX)\security_audit_.c" : "$(SRCDIR)\security_audit.c"
1805 "$(OBJDIR)\translate$E" $** > $@
1806
1807 "$(OX)\setup$O" : "$(OX)\setup_.c" "$(OX)\setup.h"
1808 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\setup_.c"
1809
1810 "$(OX)\setup_.c" : "$(SRCDIR)\setup.c"
1811 "$(OBJDIR)\translate$E" $** > $@
1812
1813 "$(OX)\setupuser$O" : "$(OX)\setupuser_.c" "$(OX)\setupuser.h"
1814 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\setupuser_.c"
1815
1816 "$(OX)\setupuser_.c" : "$(SRCDIR)\setupuser.c"
1817 "$(OBJDIR)\translate$E" $** > $@
1818
1819 "$(OX)\sha1$O" : "$(OX)\sha1_.c" "$(OX)\sha1.h"
1820 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\sha1_.c"
1821
1822 "$(OX)\sha1_.c" : "$(SRCDIR)\sha1.c"
1823 "$(OBJDIR)\translate$E" $** > $@
1824
1825 "$(OX)\sha1hard$O" : "$(OX)\sha1hard_.c" "$(OX)\sha1hard.h"
1826 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\sha1hard_.c"
1827
1828 "$(OX)\sha1hard_.c" : "$(SRCDIR)\sha1hard.c"
1829 "$(OBJDIR)\translate$E" $** > $@
1830
1831 "$(OX)\sha3$O" : "$(OX)\sha3_.c" "$(OX)\sha3.h"
1832 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\sha3_.c"
1833
1834 "$(OX)\sha3_.c" : "$(SRCDIR)\sha3.c"
1835 "$(OBJDIR)\translate$E" $** > $@
1836
1837 "$(OX)\shun$O" : "$(OX)\shun_.c" "$(OX)\shun.h"
1838 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\shun_.c"
1839
1840 "$(OX)\shun_.c" : "$(SRCDIR)\shun.c"
1841 "$(OBJDIR)\translate$E" $** > $@
1842
1843 "$(OX)\sitemap$O" : "$(OX)\sitemap_.c" "$(OX)\sitemap.h"
1844 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\sitemap_.c"
1845
1846 "$(OX)\sitemap_.c" : "$(SRCDIR)\sitemap.c"
1847 "$(OBJDIR)\translate$E" $** > $@
1848
1849 "$(OX)\skins$O" : "$(OX)\skins_.c" "$(OX)\skins.h"
1850 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\skins_.c"
1851
1852 "$(OX)\skins_.c" : "$(SRCDIR)\skins.c"
1853 "$(OBJDIR)\translate$E" $** > $@
1854
1855 "$(OX)\smtp$O" : "$(OX)\smtp_.c" "$(OX)\smtp.h"
1856 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\smtp_.c"
1857
1858 "$(OX)\smtp_.c" : "$(SRCDIR)\smtp.c"
1859 "$(OBJDIR)\translate$E" $** > $@
1860
1861 "$(OX)\sqlcmd$O" : "$(OX)\sqlcmd_.c" "$(OX)\sqlcmd.h"
1862 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\sqlcmd_.c"
1863
1864 "$(OX)\sqlcmd_.c" : "$(SRCDIR)\sqlcmd.c"
1865 "$(OBJDIR)\translate$E" $** > $@
1866
1867 "$(OX)\stash$O" : "$(OX)\stash_.c" "$(OX)\stash.h"
1868 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\stash_.c"
1869
1870 "$(OX)\stash_.c" : "$(SRCDIR)\stash.c"
1871 "$(OBJDIR)\translate$E" $** > $@
1872
1873 "$(OX)\stat$O" : "$(OX)\stat_.c" "$(OX)\stat.h"
1874 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\stat_.c"
1875
1876 "$(OX)\stat_.c" : "$(SRCDIR)\stat.c"
1877 "$(OBJDIR)\translate$E" $** > $@
1878
1879 "$(OX)\statrep$O" : "$(OX)\statrep_.c" "$(OX)\statrep.h"
1880 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\statrep_.c"
1881
1882 "$(OX)\statrep_.c" : "$(SRCDIR)\statrep.c"
1883 "$(OBJDIR)\translate$E" $** > $@
1884
1885 "$(OX)\style$O" : "$(OX)\style_.c" "$(OX)\style.h"
1886 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\style_.c"
1887
1888 "$(OX)\style_.c" : "$(SRCDIR)\style.c"
1889 "$(OBJDIR)\translate$E" $** > $@
1890
1891 "$(OX)\sync$O" : "$(OX)\sync_.c" "$(OX)\sync.h"
1892 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\sync_.c"
1893
1894 "$(OX)\sync_.c" : "$(SRCDIR)\sync.c"
1895 "$(OBJDIR)\translate$E" $** > $@
1896
1897 "$(OX)\tag$O" : "$(OX)\tag_.c" "$(OX)\tag.h"
1898 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\tag_.c"
1899
1900 "$(OX)\tag_.c" : "$(SRCDIR)\tag.c"
1901 "$(OBJDIR)\translate$E" $** > $@
1902
1903 "$(OX)\tar$O" : "$(OX)\tar_.c" "$(OX)\tar.h"
1904 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\tar_.c"
1905
1906 "$(OX)\tar_.c" : "$(SRCDIR)\tar.c"
1907 "$(OBJDIR)\translate$E" $** > $@
1908
1909 "$(OX)\terminal$O" : "$(OX)\terminal_.c" "$(OX)\terminal.h"
1910 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\terminal_.c"
1911
1912 "$(OX)\terminal_.c" : "$(SRCDIR)\terminal.c"
1913 "$(OBJDIR)\translate$E" $** > $@
1914
1915 "$(OX)\th_main$O" : "$(OX)\th_main_.c" "$(OX)\th_main.h"
1916 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\th_main_.c"
1917
1918 "$(OX)\th_main_.c" : "$(SRCDIR)\th_main.c"
1919 "$(OBJDIR)\translate$E" $** > $@
1920
1921 "$(OX)\timeline$O" : "$(OX)\timeline_.c" "$(OX)\timeline.h"
1922 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\timeline_.c"
1923
1924 "$(OX)\timeline_.c" : "$(SRCDIR)\timeline.c"
1925 "$(OBJDIR)\translate$E" $** > $@
1926
1927 "$(OX)\tkt$O" : "$(OX)\tkt_.c" "$(OX)\tkt.h"
1928 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\tkt_.c"
1929
1930 "$(OX)\tkt_.c" : "$(SRCDIR)\tkt.c"
1931 "$(OBJDIR)\translate$E" $** > $@
1932
1933 "$(OX)\tktsetup$O" : "$(OX)\tktsetup_.c" "$(OX)\tktsetup.h"
1934 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\tktsetup_.c"
1935
1936 "$(OX)\tktsetup_.c" : "$(SRCDIR)\tktsetup.c"
1937 "$(OBJDIR)\translate$E" $** > $@
1938
1939 "$(OX)\undo$O" : "$(OX)\undo_.c" "$(OX)\undo.h"
1940 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\undo_.c"
1941
1942 "$(OX)\undo_.c" : "$(SRCDIR)\undo.c"
1943 "$(OBJDIR)\translate$E" $** > $@
1944
1945 "$(OX)\unicode$O" : "$(OX)\unicode_.c" "$(OX)\unicode.h"
1946 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\unicode_.c"
1947
1948 "$(OX)\unicode_.c" : "$(SRCDIR)\unicode.c"
1949 "$(OBJDIR)\translate$E" $** > $@
1950
1951 "$(OX)\unversioned$O" : "$(OX)\unversioned_.c" "$(OX)\unversioned.h"
1952 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\unversioned_.c"
1953
1954 "$(OX)\unversioned_.c" : "$(SRCDIR)\unversioned.c"
1955 "$(OBJDIR)\translate$E" $** > $@
1956
1957 "$(OX)\update$O" : "$(OX)\update_.c" "$(OX)\update.h"
1958 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\update_.c"
1959
1960 "$(OX)\update_.c" : "$(SRCDIR)\update.c"
1961 "$(OBJDIR)\translate$E" $** > $@
1962
1963 "$(OX)\url$O" : "$(OX)\url_.c" "$(OX)\url.h"
1964 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\url_.c"
1965
1966 "$(OX)\url_.c" : "$(SRCDIR)\url.c"
1967 "$(OBJDIR)\translate$E" $** > $@
1968
1969 "$(OX)\user$O" : "$(OX)\user_.c" "$(OX)\user.h"
1970 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\user_.c"
1971
1972 "$(OX)\user_.c" : "$(SRCDIR)\user.c"
1973 "$(OBJDIR)\translate$E" $** > $@
1974
1975 "$(OX)\utf8$O" : "$(OX)\utf8_.c" "$(OX)\utf8.h"
1976 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\utf8_.c"
1977
1978 "$(OX)\utf8_.c" : "$(SRCDIR)\utf8.c"
1979 "$(OBJDIR)\translate$E" $** > $@
1980
1981 "$(OX)\util$O" : "$(OX)\util_.c" "$(OX)\util.h"
1982 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\util_.c"
1983
1984 "$(OX)\util_.c" : "$(SRCDIR)\util.c"
1985 "$(OBJDIR)\translate$E" $** > $@
1986
1987 "$(OX)\verify$O" : "$(OX)\verify_.c" "$(OX)\verify.h"
1988 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\verify_.c"
1989
1990 "$(OX)\verify_.c" : "$(SRCDIR)\verify.c"
1991 "$(OBJDIR)\translate$E" $** > $@
1992
1993 "$(OX)\vfile$O" : "$(OX)\vfile_.c" "$(OX)\vfile.h"
1994 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\vfile_.c"
1995
1996 "$(OX)\vfile_.c" : "$(SRCDIR)\vfile.c"
1997 "$(OBJDIR)\translate$E" $** > $@
1998
1999 "$(OX)\webmail$O" : "$(OX)\webmail_.c" "$(OX)\webmail.h"
2000 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\webmail_.c"
2001
2002 "$(OX)\webmail_.c" : "$(SRCDIR)\webmail.c"
2003 "$(OBJDIR)\translate$E" $** > $@
2004
2005 "$(OX)\wiki$O" : "$(OX)\wiki_.c" "$(OX)\wiki.h"
2006 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\wiki_.c"
2007
2008 "$(OX)\wiki_.c" : "$(SRCDIR)\wiki.c"
2009 "$(OBJDIR)\translate$E" $** > $@
2010
2011 "$(OX)\wikiformat$O" : "$(OX)\wikiformat_.c" "$(OX)\wikiformat.h"
2012 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\wikiformat_.c"
2013
2014 "$(OX)\wikiformat_.c" : "$(SRCDIR)\wikiformat.c"
2015 "$(OBJDIR)\translate$E" $** > $@
2016
2017 "$(OX)\winfile$O" : "$(OX)\winfile_.c" "$(OX)\winfile.h"
2018 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\winfile_.c"
2019
2020 "$(OX)\winfile_.c" : "$(SRCDIR)\winfile.c"
2021 "$(OBJDIR)\translate$E" $** > $@
2022
2023 "$(OX)\winhttp$O" : "$(OX)\winhttp_.c" "$(OX)\winhttp.h"
2024 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\winhttp_.c"
2025
2026 "$(OX)\winhttp_.c" : "$(SRCDIR)\winhttp.c"
2027 "$(OBJDIR)\translate$E" $** > $@
2028
2029 "$(OX)\wysiwyg$O" : "$(OX)\wysiwyg_.c" "$(OX)\wysiwyg.h"
2030 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\wysiwyg_.c"
2031
2032 "$(OX)\wysiwyg_.c" : "$(SRCDIR)\wysiwyg.c"
2033 "$(OBJDIR)\translate$E" $** > $@
2034
2035 "$(OX)\xfer$O" : "$(OX)\xfer_.c" "$(OX)\xfer.h"
2036 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\xfer_.c"
2037
2038 "$(OX)\xfer_.c" : "$(SRCDIR)\xfer.c"
2039 "$(OBJDIR)\translate$E" $** > $@
2040
2041 "$(OX)\xfersetup$O" : "$(OX)\xfersetup_.c" "$(OX)\xfersetup.h"
2042 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\xfersetup_.c"
2043
2044 "$(OX)\xfersetup_.c" : "$(SRCDIR)\xfersetup.c"
2045 "$(OBJDIR)\translate$E" $** > $@
2046
2047 "$(OX)\zip$O" : "$(OX)\zip_.c" "$(OX)\zip.h"
2048 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\zip_.c"
2049
2050 "$(OX)\zip_.c" : "$(SRCDIR)\zip.c"
2051 "$(OBJDIR)\translate$E" $** > $@
2052
2053 "$(OX)\fossil.res" : "$(B)\win\fossil.rc"
2054 $(RCC) /fo $@ $**
2055
2056 "$(OX)\headers": "$(OBJDIR)\makeheaders$E" "$(OX)\page_index.h" "$(OX)\builtin_data.h" "$(OX)\default_css.h" "$(OX)\VERSION.h"
2057 "$(OBJDIR)\makeheaders$E" "$(OX)\add_.c":"$(OX)\add.h" \
2058 "$(OX)\ajax_.c":"$(OX)\ajax.h" \
2059 "$(OX)\alerts_.c":"$(OX)\alerts.h" \
2060 "$(OX)\allrepo_.c":"$(OX)\allrepo.h" \
2061 "$(OX)\attach_.c":"$(OX)\attach.h" \
2062 "$(OX)\backlink_.c":"$(OX)\backlink.h" \
2063 "$(OX)\backoffice_.c":"$(OX)\backoffice.h" \
2064 "$(OX)\bag_.c":"$(OX)\bag.h" \
2065 "$(OX)\bisect_.c":"$(OX)\bisect.h" \
2066 "$(OX)\blob_.c":"$(OX)\blob.h" \
2067 "$(OX)\branch_.c":"$(OX)\branch.h" \
2068 "$(OX)\browse_.c":"$(OX)\browse.h" \
2069 "$(OX)\builtin_.c":"$(OX)\builtin.h" \
2070 "$(OX)\bundle_.c":"$(OX)\bundle.h" \
2071 "$(OX)\cache_.c":"$(OX)\cache.h" \
2072 "$(OX)\capabilities_.c":"$(OX)\capabilities.h" \
2073 "$(OX)\captcha_.c":"$(OX)\captcha.h" \
2074 "$(OX)\cgi_.c":"$(OX)\cgi.h" \
2075 "$(OX)\checkin_.c":"$(OX)\checkin.h" \
2076 "$(OX)\checkout_.c":"$(OX)\checkout.h" \
2077 "$(OX)\clearsign_.c":"$(OX)\clearsign.h" \
2078 "$(OX)\clone_.c":"$(OX)\clone.h" \
2079 "$(OX)\comformat_.c":"$(OX)\comformat.h" \
2080 "$(OX)\configure_.c":"$(OX)\configure.h" \
2081 "$(OX)\content_.c":"$(OX)\content.h" \
2082 "$(OX)\cookies_.c":"$(OX)\cookies.h" \
2083 "$(OX)\db_.c":"$(OX)\db.h" \
2084 "$(OX)\delta_.c":"$(OX)\delta.h" \
2085 "$(OX)\deltacmd_.c":"$(OX)\deltacmd.h" \
2086 "$(OX)\deltafunc_.c":"$(OX)\deltafunc.h" \
2087 "$(OX)\descendants_.c":"$(OX)\descendants.h" \
2088 "$(OX)\diff_.c":"$(OX)\diff.h" \
2089 "$(OX)\diffcmd_.c":"$(OX)\diffcmd.h" \
2090 "$(OX)\dispatch_.c":"$(OX)\dispatch.h" \
2091 "$(OX)\doc_.c":"$(OX)\doc.h" \
2092 "$(OX)\encode_.c":"$(OX)\encode.h" \
2093 "$(OX)\etag_.c":"$(OX)\etag.h" \
2094 "$(OX)\event_.c":"$(OX)\event.h" \
2095 "$(OX)\export_.c":"$(OX)\export.h" \
2096 "$(OX)\extcgi_.c":"$(OX)\extcgi.h" \
2097 "$(OX)\file_.c":"$(OX)\file.h" \
2098 "$(OX)\fileedit_.c":"$(OX)\fileedit.h" \
2099 "$(OX)\finfo_.c":"$(OX)\finfo.h" \
2100 "$(OX)\foci_.c":"$(OX)\foci.h" \
2101 "$(OX)\forum_.c":"$(OX)\forum.h" \
2102 "$(OX)\fshell_.c":"$(OX)\fshell.h" \
2103 "$(OX)\fusefs_.c":"$(OX)\fusefs.h" \
2104 "$(OX)\fuzz_.c":"$(OX)\fuzz.h" \
2105 "$(OX)\glob_.c":"$(OX)\glob.h" \
2106 "$(OX)\graph_.c":"$(OX)\graph.h" \
2107 "$(OX)\gzip_.c":"$(OX)\gzip.h" \
2108 "$(OX)\hname_.c":"$(OX)\hname.h" \
2109 "$(OX)\http_.c":"$(OX)\http.h" \
2110 "$(OX)\http_socket_.c":"$(OX)\http_socket.h" \
2111 "$(OX)\http_ssl_.c":"$(OX)\http_ssl.h" \
2112 "$(OX)\http_transport_.c":"$(OX)\http_transport.h" \
2113 "$(OX)\import_.c":"$(OX)\import.h" \
2114 "$(OX)\info_.c":"$(OX)\info.h" \
2115 "$(OX)\json_.c":"$(OX)\json.h" \
2116 "$(OX)\json_artifact_.c":"$(OX)\json_artifact.h" \
2117 "$(OX)\json_branch_.c":"$(OX)\json_branch.h" \
2118 "$(OX)\json_config_.c":"$(OX)\json_config.h" \
2119 "$(OX)\json_diff_.c":"$(OX)\json_diff.h" \
2120 "$(OX)\json_dir_.c":"$(OX)\json_dir.h" \
2121 "$(OX)\json_finfo_.c":"$(OX)\json_finfo.h" \
2122 "$(OX)\json_login_.c":"$(OX)\json_login.h" \
2123 "$(OX)\json_query_.c":"$(OX)\json_query.h" \
2124 "$(OX)\json_report_.c":"$(OX)\json_report.h" \
2125 "$(OX)\json_status_.c":"$(OX)\json_status.h" \
2126 "$(OX)\json_tag_.c":"$(OX)\json_tag.h" \
2127 "$(OX)\json_timeline_.c":"$(OX)\json_timeline.h" \
2128 "$(OX)\json_user_.c":"$(OX)\json_user.h" \
2129 "$(OX)\json_wiki_.c":"$(OX)\json_wiki.h" \
2130 "$(OX)\leaf_.c":"$(OX)\leaf.h" \
2131 "$(OX)\loadctrl_.c":"$(OX)\loadctrl.h" \
2132 "$(OX)\login_.c":"$(OX)\login.h" \
2133 "$(OX)\lookslike_.c":"$(OX)\lookslike.h" \
2134 "$(OX)\main_.c":"$(OX)\main.h" \
2135 "$(OX)\manifest_.c":"$(OX)\manifest.h" \
2136 "$(OX)\markdown_.c":"$(OX)\markdown.h" \
2137 "$(OX)\markdown_html_.c":"$(OX)\markdown_html.h" \
2138 "$(OX)\md5_.c":"$(OX)\md5.h" \
2139 "$(OX)\merge_.c":"$(OX)\merge.h" \
2140 "$(OX)\merge3_.c":"$(OX)\merge3.h" \
2141 "$(OX)\moderate_.c":"$(OX)\moderate.h" \
2142 "$(OX)\name_.c":"$(OX)\name.h" \
2143 "$(OX)\path_.c":"$(OX)\path.h" \
2144 "$(OX)\piechart_.c":"$(OX)\piechart.h" \
2145 "$(OX)\pivot_.c":"$(OX)\pivot.h" \
2146 "$(OX)\popen_.c":"$(OX)\popen.h" \
2147 "$(OX)\pqueue_.c":"$(OX)\pqueue.h" \
2148 "$(OX)\printf_.c":"$(OX)\printf.h" \
2149 "$(OX)\publish_.c":"$(OX)\publish.h" \
2150 "$(OX)\purge_.c":"$(OX)\purge.h" \
2151 "$(OX)\rebuild_.c":"$(OX)\rebuild.h" \
2152 "$(OX)\regexp_.c":"$(OX)\regexp.h" \
2153 "$(OX)\repolist_.c":"$(OX)\repolist.h" \
2154 "$(OX)\report_.c":"$(OX)\report.h" \
2155 "$(OX)\rss_.c":"$(OX)\rss.h" \
2156 "$(OX)\schema_.c":"$(OX)\schema.h" \
2157 "$(OX)\search_.c":"$(OX)\search.h" \
2158 "$(OX)\security_audit_.c":"$(OX)\security_audit.h" \
2159 "$(OX)\setup_.c":"$(OX)\setup.h" \
2160 "$(OX)\setupuser_.c":"$(OX)\setupuser.h" \
2161 "$(OX)\sha1_.c":"$(OX)\sha1.h" \
2162 "$(OX)\sha1hard_.c":"$(OX)\sha1hard.h" \
2163 "$(OX)\sha3_.c":"$(OX)\sha3.h" \
2164 "$(OX)\shun_.c":"$(OX)\shun.h" \
2165 "$(OX)\sitemap_.c":"$(OX)\sitemap.h" \
2166 "$(OX)\skins_.c":"$(OX)\skins.h" \
2167 "$(OX)\smtp_.c":"$(OX)\smtp.h" \
2168 "$(OX)\sqlcmd_.c":"$(OX)\sqlcmd.h" \
2169 "$(OX)\stash_.c":"$(OX)\stash.h" \
2170 "$(OX)\stat_.c":"$(OX)\stat.h" \
2171 "$(OX)\statrep_.c":"$(OX)\statrep.h" \
2172 "$(OX)\style_.c":"$(OX)\style.h" \
2173 "$(OX)\sync_.c":"$(OX)\sync.h" \
2174 "$(OX)\tag_.c":"$(OX)\tag.h" \
2175 "$(OX)\tar_.c":"$(OX)\tar.h" \
2176 "$(OX)\terminal_.c":"$(OX)\terminal.h" \
2177 "$(OX)\th_main_.c":"$(OX)\th_main.h" \
2178 "$(OX)\timeline_.c":"$(OX)\timeline.h" \
2179 "$(OX)\tkt_.c":"$(OX)\tkt.h" \
2180 "$(OX)\tktsetup_.c":"$(OX)\tktsetup.h" \
2181 "$(OX)\undo_.c":"$(OX)\undo.h" \
2182 "$(OX)\unicode_.c":"$(OX)\unicode.h" \
2183 "$(OX)\unversioned_.c":"$(OX)\unversioned.h" \
2184 "$(OX)\update_.c":"$(OX)\update.h" \
2185 "$(OX)\url_.c":"$(OX)\url.h" \
2186 "$(OX)\user_.c":"$(OX)\user.h" \
2187 "$(OX)\utf8_.c":"$(OX)\utf8.h" \
2188 "$(OX)\util_.c":"$(OX)\util.h" \
2189 "$(OX)\verify_.c":"$(OX)\verify.h" \
2190 "$(OX)\vfile_.c":"$(OX)\vfile.h" \
2191 "$(OX)\webmail_.c":"$(OX)\webmail.h" \
2192 "$(OX)\wiki_.c":"$(OX)\wiki.h" \
2193 "$(OX)\wikiformat_.c":"$(OX)\wikiformat.h" \
2194 "$(OX)\winfile_.c":"$(OX)\winfile.h" \
2195 "$(OX)\winhttp_.c":"$(OX)\winhttp.h" \
2196 "$(OX)\wysiwyg_.c":"$(OX)\wysiwyg.h" \
2197 "$(OX)\xfer_.c":"$(OX)\xfer.h" \
2198 "$(OX)\xfersetup_.c":"$(OX)\xfersetup.h" \
2199 "$(OX)\zip_.c":"$(OX)\zip.h" \
2200 "$(SRCDIR)\sqlite3.h" \
2201 "$(SRCDIR)\th.h" \
2202 "$(OX)\VERSION.h" \
2203 "$(SRCDIR)\cson_amalgamation.h"
2204 @copy /Y nul: $@
2205
+1820 -1674
--- win/Makefile.msc
+++ win/Makefile.msc
@@ -1,39 +1,52 @@
11
#
22
##############################################################################
33
# WARNING: DO NOT EDIT, AUTOMATICALLY GENERATED FILE (SEE "src/makemake.tcl")
44
##############################################################################
55
#
6
-# This Makefile will only function correctly if used from a sub-directory
7
-# that is a direct child of the top-level directory for this project.
8
-#
9
-!if !exist("..\.fossil-settings")
10
-!error "Please change the current directory to the one containing this file."
11
-!endif
12
-
136
#
147
# This file is automatically generated. Instead of editing this
158
# file, edit "makemake.tcl" then run "tclsh makemake.tcl"
169
# to regenerate this file.
1710
#
1811
B = ..
19
-SRCDIR = $B\src
20
-OBJDIR = .
21
-OX = .
12
+SRCDIR = $(B)\src
13
+T = .
14
+OBJDIR = $(T)
15
+OX = $(OBJDIR)
2216
O = .obj
2317
E = .exe
2418
P = .pdb
2519
26
-# Perl is only necessary if OpenSSL support is enabled and it must
27
-# be built from source code. The PERLDIR variable should point to
28
-# the directory containing the main Perl binary (i.e. "perl.exe").
29
-PERLDIR = C:\Perl\bin
20
+INSTALLDIR = .
21
+!ifdef DESTDIR
22
+INSTALLDIR = $(DESTDIR)\$(INSTALLDIR)
23
+!endif
24
+
25
+# When building out of source, this Makefile needs to know the path to the base
26
+# top-level directory for this project. Pass it on NMAKE command line via make
27
+# variable B:
28
+# NMAKE /f "path\to\this\Makefile" B="path/to/fossil/root"
29
+#
30
+# NOTE: Make sure B path has no trailing backslash, UNIX-style path is OK too.
31
+#
32
+!if !exist("$(B)\.fossil-settings")
33
+!error Please specify path to project base directory: B="path/to/fossil"
34
+!endif
35
+
36
+# Perl is only necessary if OpenSSL support is enabled and it is built from
37
+# source code. The PERLDIR environment variable, if it exists, should point
38
+# to the directory containing the main Perl executable specified here (i.e.
39
+# "perl.exe").
3040
PERL = perl.exe
3141
3242
# Enable debugging symbols?
3343
!ifndef DEBUG
3444
DEBUG = 0
45
+!endif
46
+!ifdef FOSSIL_DEBUG
47
+DEBUG = 1
3548
!endif
3649
3750
# Build the OpenSSL libraries?
3851
!ifndef FOSSIL_BUILD_SSL
3952
FOSSIL_BUILD_SSL = 0
@@ -150,27 +163,30 @@
150163
ZLIB = zdll.lib
151164
!else
152165
ZLIB = zlib.lib
153166
!endif
154167
155
-INCL = /I. /I$(SRCDIR) /I$B\win\include
168
+INCL = /I. /I"$(OX)" /I"$(SRCDIR)" /I"$(B)\win\include"
156169
157170
!if $(FOSSIL_ENABLE_MINIZ)==0
158
-INCL = $(INCL) /I$(ZINCDIR)
171
+INCL = $(INCL) /I"$(ZINCDIR)"
159172
!endif
160173
161174
!if $(FOSSIL_ENABLE_SSL)!=0
162
-INCL = $(INCL) /I$(SSLINCDIR)
175
+INCL = $(INCL) /I"$(SSLINCDIR)"
163176
!endif
164177
165178
!if $(FOSSIL_ENABLE_TCL)!=0
166
-INCL = $(INCL) /I$(TCLINCDIR)
179
+INCL = $(INCL) /I"$(TCLINCDIR)"
167180
!endif
168181
169182
CFLAGS = /nologo
170183
LDFLAGS =
171184
185
+CFLAGS = $(CFLAGS) /D_CRT_SECURE_NO_DEPRECATE /D_CRT_SECURE_NO_WARNINGS
186
+CFLAGS = $(CFLAGS) /D_CRT_NONSTDC_NO_DEPRECATE /D_CRT_NONSTDC_NO_WARNINGS
187
+
172188
!if $(FOSSIL_DYNAMIC_BUILD)!=0
173189
LDFLAGS = $(LDFLAGS) /MANIFEST
174190
!else
175191
LDFLAGS = $(LDFLAGS) /NODEFAULTLIB:msvcrt /MANIFEST:NO
176192
!endif
@@ -199,11 +215,11 @@
199215
CRTFLAGS = /MT
200216
!endif
201217
!endif
202218
203219
!if $(DEBUG)!=0
204
-CFLAGS = $(CFLAGS) /Zi $(CRTFLAGS) /Od
220
+CFLAGS = $(CFLAGS) /Zi $(CRTFLAGS) /Od /DFOSSIL_DEBUG
205221
LDFLAGS = $(LDFLAGS) /DEBUG
206222
!else
207223
CFLAGS = $(CFLAGS) $(CRTFLAGS) /O2
208224
!endif
209225
@@ -219,11 +235,11 @@
219235
RCC = $(RCC) /DFOSSIL_DYNAMIC_BUILD=1
220236
!endif
221237
222238
!if $(FOSSIL_ENABLE_MINIZ)==0
223239
LIBS = $(LIBS) $(ZLIB)
224
-LIBDIR = $(LIBDIR) /LIBPATH:$(ZLIBDIR)
240
+LIBDIR = $(LIBDIR) /LIBPATH:"$(ZLIBDIR)"
225241
!endif
226242
227243
!if $(FOSSIL_ENABLE_MINIZ)!=0
228244
TCC = $(TCC) /DFOSSIL_ENABLE_MINIZ=1
229245
RCC = $(RCC) /DFOSSIL_ENABLE_MINIZ=1
@@ -236,11 +252,11 @@
236252
237253
!if $(FOSSIL_ENABLE_SSL)!=0
238254
TCC = $(TCC) /DFOSSIL_ENABLE_SSL=1
239255
RCC = $(RCC) /DFOSSIL_ENABLE_SSL=1
240256
LIBS = $(LIBS) $(SSLLIB)
241
-LIBDIR = $(LIBDIR) /LIBPATH:$(SSLLIBDIR)
257
+LIBDIR = $(LIBDIR) /LIBPATH:"$(SSLLIBDIR)"
242258
!endif
243259
244260
!if $(FOSSIL_ENABLE_EXEC_REL_PATHS)!=0
245261
TCC = $(TCC) /DFOSSIL_ENABLE_EXEC_REL_PATHS=1
246262
RCC = $(RCC) /DFOSSIL_ENABLE_EXEC_REL_PATHS=1
@@ -283,11 +299,10 @@
283299
/DSQLITE_DEFAULT_MEMSTATUS=0 \
284300
/DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 \
285301
/DSQLITE_LIKE_DOESNT_MATCH_BLOBS \
286302
/DSQLITE_OMIT_DECLTYPE \
287303
/DSQLITE_OMIT_DEPRECATED \
288
- /DSQLITE_OMIT_GET_TABLE \
289304
/DSQLITE_OMIT_PROGRESS_CALLBACK \
290305
/DSQLITE_OMIT_SHARED_CACHE \
291306
/DSQLITE_OMIT_LOAD_EXTENSION \
292307
/DSQLITE_MAX_EXPR_DEPTH=0 \
293308
/DSQLITE_USE_ALLOCA \
@@ -311,11 +326,10 @@
311326
/DSQLITE_DEFAULT_MEMSTATUS=0 \
312327
/DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 \
313328
/DSQLITE_LIKE_DOESNT_MATCH_BLOBS \
314329
/DSQLITE_OMIT_DECLTYPE \
315330
/DSQLITE_OMIT_DEPRECATED \
316
- /DSQLITE_OMIT_GET_TABLE \
317331
/DSQLITE_OMIT_PROGRESS_CALLBACK \
318332
/DSQLITE_OMIT_SHARED_CACHE \
319333
/DSQLITE_OMIT_LOAD_EXTENSION \
320334
/DSQLITE_MAX_EXPR_DEPTH=0 \
321335
/DSQLITE_USE_ALLOCA \
@@ -344,405 +358,407 @@
344358
345359
MINIZ_OPTIONS = /DMINIZ_NO_STDIO \
346360
/DMINIZ_NO_TIME \
347361
/DMINIZ_NO_ARCHIVE_APIS
348362
349
-SRC = add_.c \
350
- alerts_.c \
351
- allrepo_.c \
352
- attach_.c \
353
- backlink_.c \
354
- backoffice_.c \
355
- bag_.c \
356
- bisect_.c \
357
- blob_.c \
358
- branch_.c \
359
- browse_.c \
360
- builtin_.c \
361
- bundle_.c \
362
- cache_.c \
363
- capabilities_.c \
364
- captcha_.c \
365
- cgi_.c \
366
- checkin_.c \
367
- checkout_.c \
368
- clearsign_.c \
369
- clone_.c \
370
- comformat_.c \
371
- configure_.c \
372
- content_.c \
373
- cookies_.c \
374
- db_.c \
375
- delta_.c \
376
- deltacmd_.c \
377
- deltafunc_.c \
378
- descendants_.c \
379
- diff_.c \
380
- diffcmd_.c \
381
- dispatch_.c \
382
- doc_.c \
383
- encode_.c \
384
- etag_.c \
385
- event_.c \
386
- export_.c \
387
- extcgi_.c \
388
- file_.c \
389
- fileedit_.c \
390
- finfo_.c \
391
- foci_.c \
392
- forum_.c \
393
- fshell_.c \
394
- fusefs_.c \
395
- fuzz_.c \
396
- glob_.c \
397
- graph_.c \
398
- gzip_.c \
399
- hname_.c \
400
- http_.c \
401
- http_socket_.c \
402
- http_ssl_.c \
403
- http_transport_.c \
404
- import_.c \
405
- info_.c \
406
- json_.c \
407
- json_artifact_.c \
408
- json_branch_.c \
409
- json_config_.c \
410
- json_diff_.c \
411
- json_dir_.c \
412
- json_finfo_.c \
413
- json_login_.c \
414
- json_query_.c \
415
- json_report_.c \
416
- json_status_.c \
417
- json_tag_.c \
418
- json_timeline_.c \
419
- json_user_.c \
420
- json_wiki_.c \
421
- leaf_.c \
422
- loadctrl_.c \
423
- login_.c \
424
- lookslike_.c \
425
- main_.c \
426
- manifest_.c \
427
- markdown_.c \
428
- markdown_html_.c \
429
- md5_.c \
430
- merge_.c \
431
- merge3_.c \
432
- moderate_.c \
433
- name_.c \
434
- path_.c \
435
- piechart_.c \
436
- pivot_.c \
437
- popen_.c \
438
- pqueue_.c \
439
- printf_.c \
440
- publish_.c \
441
- purge_.c \
442
- rebuild_.c \
443
- regexp_.c \
444
- repolist_.c \
445
- report_.c \
446
- rss_.c \
447
- schema_.c \
448
- search_.c \
449
- security_audit_.c \
450
- setup_.c \
451
- setupuser_.c \
452
- sha1_.c \
453
- sha1hard_.c \
454
- sha3_.c \
455
- shun_.c \
456
- sitemap_.c \
457
- skins_.c \
458
- smtp_.c \
459
- sqlcmd_.c \
460
- stash_.c \
461
- stat_.c \
462
- statrep_.c \
463
- style_.c \
464
- sync_.c \
465
- tag_.c \
466
- tar_.c \
467
- terminal_.c \
468
- th_main_.c \
469
- timeline_.c \
470
- tkt_.c \
471
- tktsetup_.c \
472
- undo_.c \
473
- unicode_.c \
474
- unversioned_.c \
475
- update_.c \
476
- url_.c \
477
- user_.c \
478
- utf8_.c \
479
- util_.c \
480
- verify_.c \
481
- vfile_.c \
482
- webmail_.c \
483
- wiki_.c \
484
- wikiformat_.c \
485
- winfile_.c \
486
- winhttp_.c \
487
- wysiwyg_.c \
488
- xfer_.c \
489
- xfersetup_.c \
490
- zip_.c
491
-
492
-EXTRA_FILES = $(SRCDIR)\..\skins\aht\details.txt \
493
- $(SRCDIR)\..\skins\ardoise\css.txt \
494
- $(SRCDIR)\..\skins\ardoise\details.txt \
495
- $(SRCDIR)\..\skins\ardoise\footer.txt \
496
- $(SRCDIR)\..\skins\ardoise\header.txt \
497
- $(SRCDIR)\..\skins\black_and_white\css.txt \
498
- $(SRCDIR)\..\skins\black_and_white\details.txt \
499
- $(SRCDIR)\..\skins\black_and_white\footer.txt \
500
- $(SRCDIR)\..\skins\black_and_white\header.txt \
501
- $(SRCDIR)\..\skins\blitz\css.txt \
502
- $(SRCDIR)\..\skins\blitz\details.txt \
503
- $(SRCDIR)\..\skins\blitz\footer.txt \
504
- $(SRCDIR)\..\skins\blitz\header.txt \
505
- $(SRCDIR)\..\skins\blitz\ticket.txt \
506
- $(SRCDIR)\..\skins\blitz_no_logo\css.txt \
507
- $(SRCDIR)\..\skins\blitz_no_logo\details.txt \
508
- $(SRCDIR)\..\skins\blitz_no_logo\footer.txt \
509
- $(SRCDIR)\..\skins\blitz_no_logo\header.txt \
510
- $(SRCDIR)\..\skins\blitz_no_logo\ticket.txt \
511
- $(SRCDIR)\..\skins\bootstrap\css.txt \
512
- $(SRCDIR)\..\skins\bootstrap\details.txt \
513
- $(SRCDIR)\..\skins\bootstrap\footer.txt \
514
- $(SRCDIR)\..\skins\bootstrap\header.txt \
515
- $(SRCDIR)\..\skins\default\css.txt \
516
- $(SRCDIR)\..\skins\default\details.txt \
517
- $(SRCDIR)\..\skins\default\footer.txt \
518
- $(SRCDIR)\..\skins\default\header.txt \
519
- $(SRCDIR)\..\skins\default\js.txt \
520
- $(SRCDIR)\..\skins\eagle\css.txt \
521
- $(SRCDIR)\..\skins\eagle\details.txt \
522
- $(SRCDIR)\..\skins\eagle\footer.txt \
523
- $(SRCDIR)\..\skins\eagle\header.txt \
524
- $(SRCDIR)\..\skins\enhanced1\css.txt \
525
- $(SRCDIR)\..\skins\enhanced1\details.txt \
526
- $(SRCDIR)\..\skins\enhanced1\footer.txt \
527
- $(SRCDIR)\..\skins\enhanced1\header.txt \
528
- $(SRCDIR)\..\skins\khaki\css.txt \
529
- $(SRCDIR)\..\skins\khaki\details.txt \
530
- $(SRCDIR)\..\skins\khaki\footer.txt \
531
- $(SRCDIR)\..\skins\khaki\header.txt \
532
- $(SRCDIR)\..\skins\original\css.txt \
533
- $(SRCDIR)\..\skins\original\details.txt \
534
- $(SRCDIR)\..\skins\original\footer.txt \
535
- $(SRCDIR)\..\skins\original\header.txt \
536
- $(SRCDIR)\..\skins\plain_gray\css.txt \
537
- $(SRCDIR)\..\skins\plain_gray\details.txt \
538
- $(SRCDIR)\..\skins\plain_gray\footer.txt \
539
- $(SRCDIR)\..\skins\plain_gray\header.txt \
540
- $(SRCDIR)\..\skins\rounded1\css.txt \
541
- $(SRCDIR)\..\skins\rounded1\details.txt \
542
- $(SRCDIR)\..\skins\rounded1\footer.txt \
543
- $(SRCDIR)\..\skins\rounded1\header.txt \
544
- $(SRCDIR)\..\skins\xekri\css.txt \
545
- $(SRCDIR)\..\skins\xekri\details.txt \
546
- $(SRCDIR)\..\skins\xekri\footer.txt \
547
- $(SRCDIR)\..\skins\xekri\header.txt \
548
- $(SRCDIR)\accordion.js \
549
- $(SRCDIR)\ci_edit.js \
550
- $(SRCDIR)\copybtn.js \
551
- $(SRCDIR)\default.css \
552
- $(SRCDIR)\diff.tcl \
553
- $(SRCDIR)\forum.js \
554
- $(SRCDIR)\fossil.bootstrap.js \
555
- $(SRCDIR)\fossil.confirmer.js \
556
- $(SRCDIR)\fossil.dom.js \
557
- $(SRCDIR)\fossil.fetch.js \
558
- $(SRCDIR)\fossil.page.fileedit.js \
559
- $(SRCDIR)\fossil.storage.js \
560
- $(SRCDIR)\fossil.tabs.js \
561
- $(SRCDIR)\graph.js \
562
- $(SRCDIR)\href.js \
563
- $(SRCDIR)\login.js \
564
- $(SRCDIR)\markdown.md \
565
- $(SRCDIR)\menu.js \
566
- $(SRCDIR)\sbsdiff.js \
567
- $(SRCDIR)\scroll.js \
568
- $(SRCDIR)\skin.js \
569
- $(SRCDIR)\sorttable.js \
570
- $(SRCDIR)\sounds\0.wav \
571
- $(SRCDIR)\sounds\1.wav \
572
- $(SRCDIR)\sounds\2.wav \
573
- $(SRCDIR)\sounds\3.wav \
574
- $(SRCDIR)\sounds\4.wav \
575
- $(SRCDIR)\sounds\5.wav \
576
- $(SRCDIR)\sounds\6.wav \
577
- $(SRCDIR)\sounds\7.wav \
578
- $(SRCDIR)\sounds\8.wav \
579
- $(SRCDIR)\sounds\9.wav \
580
- $(SRCDIR)\sounds\a.wav \
581
- $(SRCDIR)\sounds\b.wav \
582
- $(SRCDIR)\sounds\c.wav \
583
- $(SRCDIR)\sounds\d.wav \
584
- $(SRCDIR)\sounds\e.wav \
585
- $(SRCDIR)\sounds\f.wav \
586
- $(SRCDIR)\style.admin_log.css \
587
- $(SRCDIR)\style.fileedit.css \
588
- $(SRCDIR)\tree.js \
589
- $(SRCDIR)\useredit.js \
590
- $(SRCDIR)\wiki.wiki
591
-
592
-OBJ = $(OX)\add$O \
593
- $(OX)\alerts$O \
594
- $(OX)\allrepo$O \
595
- $(OX)\attach$O \
596
- $(OX)\backlink$O \
597
- $(OX)\backoffice$O \
598
- $(OX)\bag$O \
599
- $(OX)\bisect$O \
600
- $(OX)\blob$O \
601
- $(OX)\branch$O \
602
- $(OX)\browse$O \
603
- $(OX)\builtin$O \
604
- $(OX)\bundle$O \
605
- $(OX)\cache$O \
606
- $(OX)\capabilities$O \
607
- $(OX)\captcha$O \
608
- $(OX)\cgi$O \
609
- $(OX)\checkin$O \
610
- $(OX)\checkout$O \
611
- $(OX)\clearsign$O \
612
- $(OX)\clone$O \
613
- $(OX)\comformat$O \
614
- $(OX)\configure$O \
615
- $(OX)\content$O \
616
- $(OX)\cookies$O \
617
- $(OX)\cson_amalgamation$O \
618
- $(OX)\db$O \
619
- $(OX)\delta$O \
620
- $(OX)\deltacmd$O \
621
- $(OX)\deltafunc$O \
622
- $(OX)\descendants$O \
623
- $(OX)\diff$O \
624
- $(OX)\diffcmd$O \
625
- $(OX)\dispatch$O \
626
- $(OX)\doc$O \
627
- $(OX)\encode$O \
628
- $(OX)\etag$O \
629
- $(OX)\event$O \
630
- $(OX)\export$O \
631
- $(OX)\extcgi$O \
632
- $(OX)\file$O \
633
- $(OX)\fileedit$O \
634
- $(OX)\finfo$O \
635
- $(OX)\foci$O \
636
- $(OX)\forum$O \
637
- $(OX)\fshell$O \
638
- $(OX)\fusefs$O \
639
- $(OX)\fuzz$O \
640
- $(OX)\glob$O \
641
- $(OX)\graph$O \
642
- $(OX)\gzip$O \
643
- $(OX)\hname$O \
644
- $(OX)\http$O \
645
- $(OX)\http_socket$O \
646
- $(OX)\http_ssl$O \
647
- $(OX)\http_transport$O \
648
- $(OX)\import$O \
649
- $(OX)\info$O \
650
- $(OX)\json$O \
651
- $(OX)\json_artifact$O \
652
- $(OX)\json_branch$O \
653
- $(OX)\json_config$O \
654
- $(OX)\json_diff$O \
655
- $(OX)\json_dir$O \
656
- $(OX)\json_finfo$O \
657
- $(OX)\json_login$O \
658
- $(OX)\json_query$O \
659
- $(OX)\json_report$O \
660
- $(OX)\json_status$O \
661
- $(OX)\json_tag$O \
662
- $(OX)\json_timeline$O \
663
- $(OX)\json_user$O \
664
- $(OX)\json_wiki$O \
665
- $(OX)\leaf$O \
666
- $(OX)\loadctrl$O \
667
- $(OX)\login$O \
668
- $(OX)\lookslike$O \
669
- $(OX)\main$O \
670
- $(OX)\manifest$O \
671
- $(OX)\markdown$O \
672
- $(OX)\markdown_html$O \
673
- $(OX)\md5$O \
674
- $(OX)\merge$O \
675
- $(OX)\merge3$O \
676
- $(OX)\moderate$O \
677
- $(OX)\name$O \
678
- $(OX)\path$O \
679
- $(OX)\piechart$O \
680
- $(OX)\pivot$O \
681
- $(OX)\popen$O \
682
- $(OX)\pqueue$O \
683
- $(OX)\printf$O \
684
- $(OX)\publish$O \
685
- $(OX)\purge$O \
686
- $(OX)\rebuild$O \
687
- $(OX)\regexp$O \
688
- $(OX)\repolist$O \
689
- $(OX)\report$O \
690
- $(OX)\rss$O \
691
- $(OX)\schema$O \
692
- $(OX)\search$O \
693
- $(OX)\security_audit$O \
694
- $(OX)\setup$O \
695
- $(OX)\setupuser$O \
696
- $(OX)\sha1$O \
697
- $(OX)\sha1hard$O \
698
- $(OX)\sha3$O \
699
- $(OX)\shell$O \
700
- $(OX)\shun$O \
701
- $(OX)\sitemap$O \
702
- $(OX)\skins$O \
703
- $(OX)\smtp$O \
704
- $(OX)\sqlcmd$O \
705
- $(OX)\sqlite3$O \
706
- $(OX)\stash$O \
707
- $(OX)\stat$O \
708
- $(OX)\statrep$O \
709
- $(OX)\style$O \
710
- $(OX)\sync$O \
711
- $(OX)\tag$O \
712
- $(OX)\tar$O \
713
- $(OX)\terminal$O \
714
- $(OX)\th$O \
715
- $(OX)\th_lang$O \
716
- $(OX)\th_main$O \
717
- $(OX)\th_tcl$O \
718
- $(OX)\timeline$O \
719
- $(OX)\tkt$O \
720
- $(OX)\tktsetup$O \
721
- $(OX)\undo$O \
722
- $(OX)\unicode$O \
723
- $(OX)\unversioned$O \
724
- $(OX)\update$O \
725
- $(OX)\url$O \
726
- $(OX)\user$O \
727
- $(OX)\utf8$O \
728
- $(OX)\util$O \
729
- $(OX)\verify$O \
730
- $(OX)\vfile$O \
731
- $(OX)\webmail$O \
732
- $(OX)\wiki$O \
733
- $(OX)\wikiformat$O \
734
- $(OX)\winfile$O \
735
- $(OX)\winhttp$O \
736
- $(OX)\wysiwyg$O \
737
- $(OX)\xfer$O \
738
- $(OX)\xfersetup$O \
739
- $(OX)\zip$O \
363
+SRC = "$(OX)\add_.c" \
364
+ "$(OX)\ajax_.c" \
365
+ "$(OX)\alerts_.c" \
366
+ "$(OX)\allrepo_.c" \
367
+ "$(OX)\attach_.c" \
368
+ "$(OX)\backlink_.c" \
369
+ "$(OX)\backoffice_.c" \
370
+ "$(OX)\bag_.c" \
371
+ "$(OX)\bisect_.c" \
372
+ "$(OX)\blob_.c" \
373
+ "$(OX)\branch_.c" \
374
+ "$(OX)\browse_.c" \
375
+ "$(OX)\builtin_.c" \
376
+ "$(OX)\bundle_.c" \
377
+ "$(OX)\cache_.c" \
378
+ "$(OX)\capabilities_.c" \
379
+ "$(OX)\captcha_.c" \
380
+ "$(OX)\cgi_.c" \
381
+ "$(OX)\checkin_.c" \
382
+ "$(OX)\checkout_.c" \
383
+ "$(OX)\clearsign_.c" \
384
+ "$(OX)\clone_.c" \
385
+ "$(OX)\comformat_.c" \
386
+ "$(OX)\configure_.c" \
387
+ "$(OX)\content_.c" \
388
+ "$(OX)\cookies_.c" \
389
+ "$(OX)\db_.c" \
390
+ "$(OX)\delta_.c" \
391
+ "$(OX)\deltacmd_.c" \
392
+ "$(OX)\deltafunc_.c" \
393
+ "$(OX)\descendants_.c" \
394
+ "$(OX)\diff_.c" \
395
+ "$(OX)\diffcmd_.c" \
396
+ "$(OX)\dispatch_.c" \
397
+ "$(OX)\doc_.c" \
398
+ "$(OX)\encode_.c" \
399
+ "$(OX)\etag_.c" \
400
+ "$(OX)\event_.c" \
401
+ "$(OX)\export_.c" \
402
+ "$(OX)\extcgi_.c" \
403
+ "$(OX)\file_.c" \
404
+ "$(OX)\fileedit_.c" \
405
+ "$(OX)\finfo_.c" \
406
+ "$(OX)\foci_.c" \
407
+ "$(OX)\forum_.c" \
408
+ "$(OX)\fshell_.c" \
409
+ "$(OX)\fusefs_.c" \
410
+ "$(OX)\fuzz_.c" \
411
+ "$(OX)\glob_.c" \
412
+ "$(OX)\graph_.c" \
413
+ "$(OX)\gzip_.c" \
414
+ "$(OX)\hname_.c" \
415
+ "$(OX)\http_.c" \
416
+ "$(OX)\http_socket_.c" \
417
+ "$(OX)\http_ssl_.c" \
418
+ "$(OX)\http_transport_.c" \
419
+ "$(OX)\import_.c" \
420
+ "$(OX)\info_.c" \
421
+ "$(OX)\json_.c" \
422
+ "$(OX)\json_artifact_.c" \
423
+ "$(OX)\json_branch_.c" \
424
+ "$(OX)\json_config_.c" \
425
+ "$(OX)\json_diff_.c" \
426
+ "$(OX)\json_dir_.c" \
427
+ "$(OX)\json_finfo_.c" \
428
+ "$(OX)\json_login_.c" \
429
+ "$(OX)\json_query_.c" \
430
+ "$(OX)\json_report_.c" \
431
+ "$(OX)\json_status_.c" \
432
+ "$(OX)\json_tag_.c" \
433
+ "$(OX)\json_timeline_.c" \
434
+ "$(OX)\json_user_.c" \
435
+ "$(OX)\json_wiki_.c" \
436
+ "$(OX)\leaf_.c" \
437
+ "$(OX)\loadctrl_.c" \
438
+ "$(OX)\login_.c" \
439
+ "$(OX)\lookslike_.c" \
440
+ "$(OX)\main_.c" \
441
+ "$(OX)\manifest_.c" \
442
+ "$(OX)\markdown_.c" \
443
+ "$(OX)\markdown_html_.c" \
444
+ "$(OX)\md5_.c" \
445
+ "$(OX)\merge_.c" \
446
+ "$(OX)\merge3_.c" \
447
+ "$(OX)\moderate_.c" \
448
+ "$(OX)\name_.c" \
449
+ "$(OX)\path_.c" \
450
+ "$(OX)\piechart_.c" \
451
+ "$(OX)\pivot_.c" \
452
+ "$(OX)\popen_.c" \
453
+ "$(OX)\pqueue_.c" \
454
+ "$(OX)\printf_.c" \
455
+ "$(OX)\publish_.c" \
456
+ "$(OX)\purge_.c" \
457
+ "$(OX)\rebuild_.c" \
458
+ "$(OX)\regexp_.c" \
459
+ "$(OX)\repolist_.c" \
460
+ "$(OX)\report_.c" \
461
+ "$(OX)\rss_.c" \
462
+ "$(OX)\schema_.c" \
463
+ "$(OX)\search_.c" \
464
+ "$(OX)\security_audit_.c" \
465
+ "$(OX)\setup_.c" \
466
+ "$(OX)\setupuser_.c" \
467
+ "$(OX)\sha1_.c" \
468
+ "$(OX)\sha1hard_.c" \
469
+ "$(OX)\sha3_.c" \
470
+ "$(OX)\shun_.c" \
471
+ "$(OX)\sitemap_.c" \
472
+ "$(OX)\skins_.c" \
473
+ "$(OX)\smtp_.c" \
474
+ "$(OX)\sqlcmd_.c" \
475
+ "$(OX)\stash_.c" \
476
+ "$(OX)\stat_.c" \
477
+ "$(OX)\statrep_.c" \
478
+ "$(OX)\style_.c" \
479
+ "$(OX)\sync_.c" \
480
+ "$(OX)\tag_.c" \
481
+ "$(OX)\tar_.c" \
482
+ "$(OX)\terminal_.c" \
483
+ "$(OX)\th_main_.c" \
484
+ "$(OX)\timeline_.c" \
485
+ "$(OX)\tkt_.c" \
486
+ "$(OX)\tktsetup_.c" \
487
+ "$(OX)\undo_.c" \
488
+ "$(OX)\unicode_.c" \
489
+ "$(OX)\unversioned_.c" \
490
+ "$(OX)\update_.c" \
491
+ "$(OX)\url_.c" \
492
+ "$(OX)\user_.c" \
493
+ "$(OX)\utf8_.c" \
494
+ "$(OX)\util_.c" \
495
+ "$(OX)\verify_.c" \
496
+ "$(OX)\vfile_.c" \
497
+ "$(OX)\webmail_.c" \
498
+ "$(OX)\wiki_.c" \
499
+ "$(OX)\wikiformat_.c" \
500
+ "$(OX)\winfile_.c" \
501
+ "$(OX)\winhttp_.c" \
502
+ "$(OX)\wysiwyg_.c" \
503
+ "$(OX)\xfer_.c" \
504
+ "$(OX)\xfersetup_.c" \
505
+ "$(OX)\zip_.c"
506
+
507
+EXTRA_FILES = "$(SRCDIR)\..\skins\aht\details.txt" \
508
+ "$(SRCDIR)\..\skins\ardoise\css.txt" \
509
+ "$(SRCDIR)\..\skins\ardoise\details.txt" \
510
+ "$(SRCDIR)\..\skins\ardoise\footer.txt" \
511
+ "$(SRCDIR)\..\skins\ardoise\header.txt" \
512
+ "$(SRCDIR)\..\skins\black_and_white\css.txt" \
513
+ "$(SRCDIR)\..\skins\black_and_white\details.txt" \
514
+ "$(SRCDIR)\..\skins\black_and_white\footer.txt" \
515
+ "$(SRCDIR)\..\skins\black_and_white\header.txt" \
516
+ "$(SRCDIR)\..\skins\blitz\css.txt" \
517
+ "$(SRCDIR)\..\skins\blitz\details.txt" \
518
+ "$(SRCDIR)\..\skins\blitz\footer.txt" \
519
+ "$(SRCDIR)\..\skins\blitz\header.txt" \
520
+ "$(SRCDIR)\..\skins\blitz\ticket.txt" \
521
+ "$(SRCDIR)\..\skins\blitz_no_logo\css.txt" \
522
+ "$(SRCDIR)\..\skins\blitz_no_logo\details.txt" \
523
+ "$(SRCDIR)\..\skins\blitz_no_logo\footer.txt" \
524
+ "$(SRCDIR)\..\skins\blitz_no_logo\header.txt" \
525
+ "$(SRCDIR)\..\skins\blitz_no_logo\ticket.txt" \
526
+ "$(SRCDIR)\..\skins\bootstrap\css.txt" \
527
+ "$(SRCDIR)\..\skins\bootstrap\details.txt" \
528
+ "$(SRCDIR)\..\skins\bootstrap\footer.txt" \
529
+ "$(SRCDIR)\..\skins\bootstrap\header.txt" \
530
+ "$(SRCDIR)\..\skins\default\css.txt" \
531
+ "$(SRCDIR)\..\skins\default\details.txt" \
532
+ "$(SRCDIR)\..\skins\default\footer.txt" \
533
+ "$(SRCDIR)\..\skins\default\header.txt" \
534
+ "$(SRCDIR)\..\skins\default\js.txt" \
535
+ "$(SRCDIR)\..\skins\eagle\css.txt" \
536
+ "$(SRCDIR)\..\skins\eagle\details.txt" \
537
+ "$(SRCDIR)\..\skins\eagle\footer.txt" \
538
+ "$(SRCDIR)\..\skins\eagle\header.txt" \
539
+ "$(SRCDIR)\..\skins\enhanced1\css.txt" \
540
+ "$(SRCDIR)\..\skins\enhanced1\details.txt" \
541
+ "$(SRCDIR)\..\skins\enhanced1\footer.txt" \
542
+ "$(SRCDIR)\..\skins\enhanced1\header.txt" \
543
+ "$(SRCDIR)\..\skins\khaki\css.txt" \
544
+ "$(SRCDIR)\..\skins\khaki\details.txt" \
545
+ "$(SRCDIR)\..\skins\khaki\footer.txt" \
546
+ "$(SRCDIR)\..\skins\khaki\header.txt" \
547
+ "$(SRCDIR)\..\skins\original\css.txt" \
548
+ "$(SRCDIR)\..\skins\original\details.txt" \
549
+ "$(SRCDIR)\..\skins\original\footer.txt" \
550
+ "$(SRCDIR)\..\skins\original\header.txt" \
551
+ "$(SRCDIR)\..\skins\plain_gray\css.txt" \
552
+ "$(SRCDIR)\..\skins\plain_gray\details.txt" \
553
+ "$(SRCDIR)\..\skins\plain_gray\footer.txt" \
554
+ "$(SRCDIR)\..\skins\plain_gray\header.txt" \
555
+ "$(SRCDIR)\..\skins\rounded1\css.txt" \
556
+ "$(SRCDIR)\..\skins\rounded1\details.txt" \
557
+ "$(SRCDIR)\..\skins\rounded1\footer.txt" \
558
+ "$(SRCDIR)\..\skins\rounded1\header.txt" \
559
+ "$(SRCDIR)\..\skins\xekri\css.txt" \
560
+ "$(SRCDIR)\..\skins\xekri\details.txt" \
561
+ "$(SRCDIR)\..\skins\xekri\footer.txt" \
562
+ "$(SRCDIR)\..\skins\xekri\header.txt" \
563
+ "$(SRCDIR)\accordion.js" \
564
+ "$(SRCDIR)\ci_edit.js" \
565
+ "$(SRCDIR)\copybtn.js" \
566
+ "$(SRCDIR)\default.css" \
567
+ "$(SRCDIR)\diff.tcl" \
568
+ "$(SRCDIR)\forum.js" \
569
+ "$(SRCDIR)\fossil.bootstrap.js" \
570
+ "$(SRCDIR)\fossil.confirmer.js" \
571
+ "$(SRCDIR)\fossil.dom.js" \
572
+ "$(SRCDIR)\fossil.fetch.js" \
573
+ "$(SRCDIR)\fossil.page.fileedit.js" \
574
+ "$(SRCDIR)\fossil.storage.js" \
575
+ "$(SRCDIR)\fossil.tabs.js" \
576
+ "$(SRCDIR)\graph.js" \
577
+ "$(SRCDIR)\href.js" \
578
+ "$(SRCDIR)\login.js" \
579
+ "$(SRCDIR)\markdown.md" \
580
+ "$(SRCDIR)\menu.js" \
581
+ "$(SRCDIR)\sbsdiff.js" \
582
+ "$(SRCDIR)\scroll.js" \
583
+ "$(SRCDIR)\skin.js" \
584
+ "$(SRCDIR)\sorttable.js" \
585
+ "$(SRCDIR)\sounds\0.wav" \
586
+ "$(SRCDIR)\sounds\1.wav" \
587
+ "$(SRCDIR)\sounds\2.wav" \
588
+ "$(SRCDIR)\sounds\3.wav" \
589
+ "$(SRCDIR)\sounds\4.wav" \
590
+ "$(SRCDIR)\sounds\5.wav" \
591
+ "$(SRCDIR)\sounds\6.wav" \
592
+ "$(SRCDIR)\sounds\7.wav" \
593
+ "$(SRCDIR)\sounds\8.wav" \
594
+ "$(SRCDIR)\sounds\9.wav" \
595
+ "$(SRCDIR)\sounds\a.wav" \
596
+ "$(SRCDIR)\sounds\b.wav" \
597
+ "$(SRCDIR)\sounds\c.wav" \
598
+ "$(SRCDIR)\sounds\d.wav" \
599
+ "$(SRCDIR)\sounds\e.wav" \
600
+ "$(SRCDIR)\sounds\f.wav" \
601
+ "$(SRCDIR)\style.admin_log.css" \
602
+ "$(SRCDIR)\style.fileedit.css" \
603
+ "$(SRCDIR)\tree.js" \
604
+ "$(SRCDIR)\useredit.js" \
605
+ "$(SRCDIR)\wiki.wiki"
606
+
607
+OBJ = "$(OX)\add$O" \
608
+ "$(OX)\ajax$O" \
609
+ "$(OX)\alerts$O" \
610
+ "$(OX)\allrepo$O" \
611
+ "$(OX)\attach$O" \
612
+ "$(OX)\backlink$O" \
613
+ "$(OX)\backoffice$O" \
614
+ "$(OX)\bag$O" \
615
+ "$(OX)\bisect$O" \
616
+ "$(OX)\blob$O" \
617
+ "$(OX)\branch$O" \
618
+ "$(OX)\browse$O" \
619
+ "$(OX)\builtin$O" \
620
+ "$(OX)\bundle$O" \
621
+ "$(OX)\cache$O" \
622
+ "$(OX)\capabilities$O" \
623
+ "$(OX)\captcha$O" \
624
+ "$(OX)\cgi$O" \
625
+ "$(OX)\checkin$O" \
626
+ "$(OX)\checkout$O" \
627
+ "$(OX)\clearsign$O" \
628
+ "$(OX)\clone$O" \
629
+ "$(OX)\comformat$O" \
630
+ "$(OX)\configure$O" \
631
+ "$(OX)\content$O" \
632
+ "$(OX)\cookies$O" \
633
+ "$(OX)\cson_amalgamation$O" \
634
+ "$(OX)\db$O" \
635
+ "$(OX)\delta$O" \
636
+ "$(OX)\deltacmd$O" \
637
+ "$(OX)\deltafunc$O" \
638
+ "$(OX)\descendants$O" \
639
+ "$(OX)\diff$O" \
640
+ "$(OX)\diffcmd$O" \
641
+ "$(OX)\dispatch$O" \
642
+ "$(OX)\doc$O" \
643
+ "$(OX)\encode$O" \
644
+ "$(OX)\etag$O" \
645
+ "$(OX)\event$O" \
646
+ "$(OX)\export$O" \
647
+ "$(OX)\extcgi$O" \
648
+ "$(OX)\file$O" \
649
+ "$(OX)\fileedit$O" \
650
+ "$(OX)\finfo$O" \
651
+ "$(OX)\foci$O" \
652
+ "$(OX)\forum$O" \
653
+ "$(OX)\fshell$O" \
654
+ "$(OX)\fusefs$O" \
655
+ "$(OX)\fuzz$O" \
656
+ "$(OX)\glob$O" \
657
+ "$(OX)\graph$O" \
658
+ "$(OX)\gzip$O" \
659
+ "$(OX)\hname$O" \
660
+ "$(OX)\http$O" \
661
+ "$(OX)\http_socket$O" \
662
+ "$(OX)\http_ssl$O" \
663
+ "$(OX)\http_transport$O" \
664
+ "$(OX)\import$O" \
665
+ "$(OX)\info$O" \
666
+ "$(OX)\json$O" \
667
+ "$(OX)\json_artifact$O" \
668
+ "$(OX)\json_branch$O" \
669
+ "$(OX)\json_config$O" \
670
+ "$(OX)\json_diff$O" \
671
+ "$(OX)\json_dir$O" \
672
+ "$(OX)\json_finfo$O" \
673
+ "$(OX)\json_login$O" \
674
+ "$(OX)\json_query$O" \
675
+ "$(OX)\json_report$O" \
676
+ "$(OX)\json_status$O" \
677
+ "$(OX)\json_tag$O" \
678
+ "$(OX)\json_timeline$O" \
679
+ "$(OX)\json_user$O" \
680
+ "$(OX)\json_wiki$O" \
681
+ "$(OX)\leaf$O" \
682
+ "$(OX)\loadctrl$O" \
683
+ "$(OX)\login$O" \
684
+ "$(OX)\lookslike$O" \
685
+ "$(OX)\main$O" \
686
+ "$(OX)\manifest$O" \
687
+ "$(OX)\markdown$O" \
688
+ "$(OX)\markdown_html$O" \
689
+ "$(OX)\md5$O" \
690
+ "$(OX)\merge$O" \
691
+ "$(OX)\merge3$O" \
692
+ "$(OX)\moderate$O" \
693
+ "$(OX)\name$O" \
694
+ "$(OX)\path$O" \
695
+ "$(OX)\piechart$O" \
696
+ "$(OX)\pivot$O" \
697
+ "$(OX)\popen$O" \
698
+ "$(OX)\pqueue$O" \
699
+ "$(OX)\printf$O" \
700
+ "$(OX)\publish$O" \
701
+ "$(OX)\purge$O" \
702
+ "$(OX)\rebuild$O" \
703
+ "$(OX)\regexp$O" \
704
+ "$(OX)\repolist$O" \
705
+ "$(OX)\report$O" \
706
+ "$(OX)\rss$O" \
707
+ "$(OX)\schema$O" \
708
+ "$(OX)\search$O" \
709
+ "$(OX)\security_audit$O" \
710
+ "$(OX)\setup$O" \
711
+ "$(OX)\setupuser$O" \
712
+ "$(OX)\sha1$O" \
713
+ "$(OX)\sha1hard$O" \
714
+ "$(OX)\sha3$O" \
715
+ "$(OX)\shell$O" \
716
+ "$(OX)\shun$O" \
717
+ "$(OX)\sitemap$O" \
718
+ "$(OX)\skins$O" \
719
+ "$(OX)\smtp$O" \
720
+ "$(OX)\sqlcmd$O" \
721
+ "$(OX)\sqlite3$O" \
722
+ "$(OX)\stash$O" \
723
+ "$(OX)\stat$O" \
724
+ "$(OX)\statrep$O" \
725
+ "$(OX)\style$O" \
726
+ "$(OX)\sync$O" \
727
+ "$(OX)\tag$O" \
728
+ "$(OX)\tar$O" \
729
+ "$(OX)\terminal$O" \
730
+ "$(OX)\th$O" \
731
+ "$(OX)\th_lang$O" \
732
+ "$(OX)\th_main$O" \
733
+ "$(OX)\th_tcl$O" \
734
+ "$(OX)\timeline$O" \
735
+ "$(OX)\tkt$O" \
736
+ "$(OX)\tktsetup$O" \
737
+ "$(OX)\undo$O" \
738
+ "$(OX)\unicode$O" \
739
+ "$(OX)\unversioned$O" \
740
+ "$(OX)\update$O" \
741
+ "$(OX)\url$O" \
742
+ "$(OX)\user$O" \
743
+ "$(OX)\utf8$O" \
744
+ "$(OX)\util$O" \
745
+ "$(OX)\verify$O" \
746
+ "$(OX)\vfile$O" \
747
+ "$(OX)\webmail$O" \
748
+ "$(OX)\wiki$O" \
749
+ "$(OX)\wikiformat$O" \
750
+ "$(OX)\winfile$O" \
751
+ "$(OX)\winhttp$O" \
752
+ "$(OX)\wysiwyg$O" \
753
+ "$(OX)\xfer$O" \
754
+ "$(OX)\xfersetup$O" \
755
+ "$(OX)\zip$O" \
740756
!if $(FOSSIL_ENABLE_MINIZ)!=0
741
- $(OX)\miniz$O \
757
+ "$(OX)\miniz$O" \
742758
!endif
743
- $(OX)\fossil.res
759
+ "$(OX)\fossil.res"
744760
745761
746762
!ifndef BASEAPPNAME
747763
BASEAPPNAME = fossil
748764
!endif
@@ -749,32 +765,52 @@
749765
750766
APPNAME = $(OX)\$(BASEAPPNAME)$(E)
751767
PDBNAME = $(OX)\$(BASEAPPNAME)$(P)
752768
APPTARGETS =
753769
754
-all: $(OX) $(APPNAME)
770
+all: "$(OX)" "$(APPNAME)"
771
+
772
+$(BASEAPPNAME): "$(APPNAME)"
773
+
774
+$(BASEAPPNAME)$(E): "$(APPNAME)"
775
+
776
+install: "$(APPNAME)"
777
+ echo F | xcopy /Y "$(APPNAME)" "$(INSTALLDIR)"\*
778
+!if $(DEBUG)!=0
779
+ echo F | xcopy /Y "$(PDBNAME)" "$(INSTALLDIR)"\*
780
+!endif
781
+
782
+$(OX):
783
+ @-mkdir $@
755784
756785
zlib:
757786
@echo Building zlib from "$(ZLIBDIR)"...
758787
!if $(FOSSIL_ENABLE_WINXP)!=0
759788
@pushd "$(ZLIBDIR)" && $(MAKE) /f win32\Makefile.msc $(ZLIB) "CC=cl $(XPCFLAGS)" "LD=link $(XPLDFLAGS)" && popd
760789
!else
761790
@pushd "$(ZLIBDIR)" && $(MAKE) /f win32\Makefile.msc $(ZLIB) && popd
762791
!endif
763792
793
+clean-zlib:
794
+ @pushd "$(ZLIBDIR)" && $(MAKE) /f win32\Makefile.msc clean && popd
795
+
764796
!if $(FOSSIL_ENABLE_SSL)!=0
765797
openssl:
766798
@echo Building OpenSSL from "$(SSLDIR)"...
767
-!if "$(PERLDIR)" != ""
768
- @set PATH=$(PERLDIR);$(PATH)
799
+!ifdef PERLDIR
800
+ @pushd "$(SSLDIR)" && "$(PERLDIR)\$(PERL)" Configure $(SSLCONFIG) && popd
801
+!else
802
+ @pushd "$(SSLDIR)" && "$(PERL)" Configure $(SSLCONFIG) && popd
769803
!endif
770
- @pushd "$(SSLDIR)" && $(PERL) Configure $(SSLCONFIG) && popd
771804
!if $(FOSSIL_ENABLE_WINXP)!=0
772805
@pushd "$(SSLDIR)" && $(MAKE) "CC=cl $(XPCFLAGS)" "LFLAGS=$(XPLDFLAGS)" && popd
773806
!else
774807
@pushd "$(SSLDIR)" && $(MAKE) && popd
775808
!endif
809
+
810
+clean-openssl:
811
+ @pushd "$(SSLDIR)" && $(MAKE) clean && popd
776812
!endif
777813
778814
!if $(FOSSIL_ENABLE_MINIZ)==0
779815
!if $(FOSSIL_BUILD_ZLIB)!=0
780816
APPTARGETS = $(APPTARGETS) zlib
@@ -785,191 +821,188 @@
785821
!if $(FOSSIL_BUILD_SSL)!=0
786822
APPTARGETS = $(APPTARGETS) openssl
787823
!endif
788824
!endif
789825
790
-$(APPNAME) : $(APPTARGETS) translate$E mkindex$E codecheck1$E headers $(OBJ) $(OX)\linkopts
791
- cd $(OX)
792
- codecheck1$E $(SRC)
793
- link $(LDFLAGS) /OUT:$@ $(LIBDIR) Wsetargv.obj fossil.res @linkopts
794
- if exist [email protected] \
795
- $(MTC) -nologo -manifest [email protected] -outputresource:$@;1
796
-
797
-$(OX)\linkopts: $B\win\Makefile.msc
798
- echo $(OX)\add.obj > $@
799
- echo $(OX)\alerts.obj >> $@
800
- echo $(OX)\allrepo.obj >> $@
801
- echo $(OX)\attach.obj >> $@
802
- echo $(OX)\backlink.obj >> $@
803
- echo $(OX)\backoffice.obj >> $@
804
- echo $(OX)\bag.obj >> $@
805
- echo $(OX)\bisect.obj >> $@
806
- echo $(OX)\blob.obj >> $@
807
- echo $(OX)\branch.obj >> $@
808
- echo $(OX)\browse.obj >> $@
809
- echo $(OX)\builtin.obj >> $@
810
- echo $(OX)\bundle.obj >> $@
811
- echo $(OX)\cache.obj >> $@
812
- echo $(OX)\capabilities.obj >> $@
813
- echo $(OX)\captcha.obj >> $@
814
- echo $(OX)\cgi.obj >> $@
815
- echo $(OX)\checkin.obj >> $@
816
- echo $(OX)\checkout.obj >> $@
817
- echo $(OX)\clearsign.obj >> $@
818
- echo $(OX)\clone.obj >> $@
819
- echo $(OX)\comformat.obj >> $@
820
- echo $(OX)\configure.obj >> $@
821
- echo $(OX)\content.obj >> $@
822
- echo $(OX)\cookies.obj >> $@
823
- echo $(OX)\cson_amalgamation.obj >> $@
824
- echo $(OX)\db.obj >> $@
825
- echo $(OX)\delta.obj >> $@
826
- echo $(OX)\deltacmd.obj >> $@
827
- echo $(OX)\deltafunc.obj >> $@
828
- echo $(OX)\descendants.obj >> $@
829
- echo $(OX)\diff.obj >> $@
830
- echo $(OX)\diffcmd.obj >> $@
831
- echo $(OX)\dispatch.obj >> $@
832
- echo $(OX)\doc.obj >> $@
833
- echo $(OX)\encode.obj >> $@
834
- echo $(OX)\etag.obj >> $@
835
- echo $(OX)\event.obj >> $@
836
- echo $(OX)\export.obj >> $@
837
- echo $(OX)\extcgi.obj >> $@
838
- echo $(OX)\file.obj >> $@
839
- echo $(OX)\fileedit.obj >> $@
840
- echo $(OX)\finfo.obj >> $@
841
- echo $(OX)\foci.obj >> $@
842
- echo $(OX)\forum.obj >> $@
843
- echo $(OX)\fshell.obj >> $@
844
- echo $(OX)\fusefs.obj >> $@
845
- echo $(OX)\fuzz.obj >> $@
846
- echo $(OX)\glob.obj >> $@
847
- echo $(OX)\graph.obj >> $@
848
- echo $(OX)\gzip.obj >> $@
849
- echo $(OX)\hname.obj >> $@
850
- echo $(OX)\http.obj >> $@
851
- echo $(OX)\http_socket.obj >> $@
852
- echo $(OX)\http_ssl.obj >> $@
853
- echo $(OX)\http_transport.obj >> $@
854
- echo $(OX)\import.obj >> $@
855
- echo $(OX)\info.obj >> $@
856
- echo $(OX)\json.obj >> $@
857
- echo $(OX)\json_artifact.obj >> $@
858
- echo $(OX)\json_branch.obj >> $@
859
- echo $(OX)\json_config.obj >> $@
860
- echo $(OX)\json_diff.obj >> $@
861
- echo $(OX)\json_dir.obj >> $@
862
- echo $(OX)\json_finfo.obj >> $@
863
- echo $(OX)\json_login.obj >> $@
864
- echo $(OX)\json_query.obj >> $@
865
- echo $(OX)\json_report.obj >> $@
866
- echo $(OX)\json_status.obj >> $@
867
- echo $(OX)\json_tag.obj >> $@
868
- echo $(OX)\json_timeline.obj >> $@
869
- echo $(OX)\json_user.obj >> $@
870
- echo $(OX)\json_wiki.obj >> $@
871
- echo $(OX)\leaf.obj >> $@
872
- echo $(OX)\loadctrl.obj >> $@
873
- echo $(OX)\login.obj >> $@
874
- echo $(OX)\lookslike.obj >> $@
875
- echo $(OX)\main.obj >> $@
876
- echo $(OX)\manifest.obj >> $@
877
- echo $(OX)\markdown.obj >> $@
878
- echo $(OX)\markdown_html.obj >> $@
879
- echo $(OX)\md5.obj >> $@
880
- echo $(OX)\merge.obj >> $@
881
- echo $(OX)\merge3.obj >> $@
882
- echo $(OX)\moderate.obj >> $@
883
- echo $(OX)\name.obj >> $@
884
- echo $(OX)\path.obj >> $@
885
- echo $(OX)\piechart.obj >> $@
886
- echo $(OX)\pivot.obj >> $@
887
- echo $(OX)\popen.obj >> $@
888
- echo $(OX)\pqueue.obj >> $@
889
- echo $(OX)\printf.obj >> $@
890
- echo $(OX)\publish.obj >> $@
891
- echo $(OX)\purge.obj >> $@
892
- echo $(OX)\rebuild.obj >> $@
893
- echo $(OX)\regexp.obj >> $@
894
- echo $(OX)\repolist.obj >> $@
895
- echo $(OX)\report.obj >> $@
896
- echo $(OX)\rss.obj >> $@
897
- echo $(OX)\schema.obj >> $@
898
- echo $(OX)\search.obj >> $@
899
- echo $(OX)\security_audit.obj >> $@
900
- echo $(OX)\setup.obj >> $@
901
- echo $(OX)\setupuser.obj >> $@
902
- echo $(OX)\sha1.obj >> $@
903
- echo $(OX)\sha1hard.obj >> $@
904
- echo $(OX)\sha3.obj >> $@
905
- echo $(OX)\shell.obj >> $@
906
- echo $(OX)\shun.obj >> $@
907
- echo $(OX)\sitemap.obj >> $@
908
- echo $(OX)\skins.obj >> $@
909
- echo $(OX)\smtp.obj >> $@
910
- echo $(OX)\sqlcmd.obj >> $@
911
- echo $(OX)\sqlite3.obj >> $@
912
- echo $(OX)\stash.obj >> $@
913
- echo $(OX)\stat.obj >> $@
914
- echo $(OX)\statrep.obj >> $@
915
- echo $(OX)\style.obj >> $@
916
- echo $(OX)\sync.obj >> $@
917
- echo $(OX)\tag.obj >> $@
918
- echo $(OX)\tar.obj >> $@
919
- echo $(OX)\terminal.obj >> $@
920
- echo $(OX)\th.obj >> $@
921
- echo $(OX)\th_lang.obj >> $@
922
- echo $(OX)\th_main.obj >> $@
923
- echo $(OX)\th_tcl.obj >> $@
924
- echo $(OX)\timeline.obj >> $@
925
- echo $(OX)\tkt.obj >> $@
926
- echo $(OX)\tktsetup.obj >> $@
927
- echo $(OX)\undo.obj >> $@
928
- echo $(OX)\unicode.obj >> $@
929
- echo $(OX)\unversioned.obj >> $@
930
- echo $(OX)\update.obj >> $@
931
- echo $(OX)\url.obj >> $@
932
- echo $(OX)\user.obj >> $@
933
- echo $(OX)\utf8.obj >> $@
934
- echo $(OX)\util.obj >> $@
935
- echo $(OX)\verify.obj >> $@
936
- echo $(OX)\vfile.obj >> $@
937
- echo $(OX)\webmail.obj >> $@
938
- echo $(OX)\wiki.obj >> $@
939
- echo $(OX)\wikiformat.obj >> $@
940
- echo $(OX)\winfile.obj >> $@
941
- echo $(OX)\winhttp.obj >> $@
942
- echo $(OX)\wysiwyg.obj >> $@
943
- echo $(OX)\xfer.obj >> $@
944
- echo $(OX)\xfersetup.obj >> $@
945
- echo $(OX)\zip.obj >> $@
826
+"$(APPNAME)" : $(APPTARGETS) "$(OBJDIR)\translate$E" "$(OBJDIR)\mkindex$E" "$(OBJDIR)\codecheck1$E" "$(OX)\headers" $(OBJ) "$(OX)\linkopts"
827
+ "$(OBJDIR)\codecheck1$E" $(SRC)
828
+ link $(LDFLAGS) /OUT:$@ /PDB:$(@D)\ $(LIBDIR) Wsetargv.obj "$(OX)\fossil.res" @"$(OX)\linkopts"
829
+ if exist "$(B)\win\fossil.exe.manifest" \
830
+ $(MTC) -nologo -manifest "$(B)\win\fossil.exe.manifest" -outputresource:$@;1
831
+
832
+"$(OX)\linkopts": "$(B)\win\Makefile.msc"
833
+ echo "$(OX)\add.obj" > $@
834
+ echo "$(OX)\ajax.obj" >> $@
835
+ echo "$(OX)\alerts.obj" >> $@
836
+ echo "$(OX)\allrepo.obj" >> $@
837
+ echo "$(OX)\attach.obj" >> $@
838
+ echo "$(OX)\backlink.obj" >> $@
839
+ echo "$(OX)\backoffice.obj" >> $@
840
+ echo "$(OX)\bag.obj" >> $@
841
+ echo "$(OX)\bisect.obj" >> $@
842
+ echo "$(OX)\blob.obj" >> $@
843
+ echo "$(OX)\branch.obj" >> $@
844
+ echo "$(OX)\browse.obj" >> $@
845
+ echo "$(OX)\builtin.obj" >> $@
846
+ echo "$(OX)\bundle.obj" >> $@
847
+ echo "$(OX)\cache.obj" >> $@
848
+ echo "$(OX)\capabilities.obj" >> $@
849
+ echo "$(OX)\captcha.obj" >> $@
850
+ echo "$(OX)\cgi.obj" >> $@
851
+ echo "$(OX)\checkin.obj" >> $@
852
+ echo "$(OX)\checkout.obj" >> $@
853
+ echo "$(OX)\clearsign.obj" >> $@
854
+ echo "$(OX)\clone.obj" >> $@
855
+ echo "$(OX)\comformat.obj" >> $@
856
+ echo "$(OX)\configure.obj" >> $@
857
+ echo "$(OX)\content.obj" >> $@
858
+ echo "$(OX)\cookies.obj" >> $@
859
+ echo "$(OX)\cson_amalgamation.obj" >> $@
860
+ echo "$(OX)\db.obj" >> $@
861
+ echo "$(OX)\delta.obj" >> $@
862
+ echo "$(OX)\deltacmd.obj" >> $@
863
+ echo "$(OX)\deltafunc.obj" >> $@
864
+ echo "$(OX)\descendants.obj" >> $@
865
+ echo "$(OX)\diff.obj" >> $@
866
+ echo "$(OX)\diffcmd.obj" >> $@
867
+ echo "$(OX)\dispatch.obj" >> $@
868
+ echo "$(OX)\doc.obj" >> $@
869
+ echo "$(OX)\encode.obj" >> $@
870
+ echo "$(OX)\etag.obj" >> $@
871
+ echo "$(OX)\event.obj" >> $@
872
+ echo "$(OX)\export.obj" >> $@
873
+ echo "$(OX)\extcgi.obj" >> $@
874
+ echo "$(OX)\file.obj" >> $@
875
+ echo "$(OX)\fileedit.obj" >> $@
876
+ echo "$(OX)\finfo.obj" >> $@
877
+ echo "$(OX)\foci.obj" >> $@
878
+ echo "$(OX)\forum.obj" >> $@
879
+ echo "$(OX)\fshell.obj" >> $@
880
+ echo "$(OX)\fusefs.obj" >> $@
881
+ echo "$(OX)\fuzz.obj" >> $@
882
+ echo "$(OX)\glob.obj" >> $@
883
+ echo "$(OX)\graph.obj" >> $@
884
+ echo "$(OX)\gzip.obj" >> $@
885
+ echo "$(OX)\hname.obj" >> $@
886
+ echo "$(OX)\http.obj" >> $@
887
+ echo "$(OX)\http_socket.obj" >> $@
888
+ echo "$(OX)\http_ssl.obj" >> $@
889
+ echo "$(OX)\http_transport.obj" >> $@
890
+ echo "$(OX)\import.obj" >> $@
891
+ echo "$(OX)\info.obj" >> $@
892
+ echo "$(OX)\json.obj" >> $@
893
+ echo "$(OX)\json_artifact.obj" >> $@
894
+ echo "$(OX)\json_branch.obj" >> $@
895
+ echo "$(OX)\json_config.obj" >> $@
896
+ echo "$(OX)\json_diff.obj" >> $@
897
+ echo "$(OX)\json_dir.obj" >> $@
898
+ echo "$(OX)\json_finfo.obj" >> $@
899
+ echo "$(OX)\json_login.obj" >> $@
900
+ echo "$(OX)\json_query.obj" >> $@
901
+ echo "$(OX)\json_report.obj" >> $@
902
+ echo "$(OX)\json_status.obj" >> $@
903
+ echo "$(OX)\json_tag.obj" >> $@
904
+ echo "$(OX)\json_timeline.obj" >> $@
905
+ echo "$(OX)\json_user.obj" >> $@
906
+ echo "$(OX)\json_wiki.obj" >> $@
907
+ echo "$(OX)\leaf.obj" >> $@
908
+ echo "$(OX)\loadctrl.obj" >> $@
909
+ echo "$(OX)\login.obj" >> $@
910
+ echo "$(OX)\lookslike.obj" >> $@
911
+ echo "$(OX)\main.obj" >> $@
912
+ echo "$(OX)\manifest.obj" >> $@
913
+ echo "$(OX)\markdown.obj" >> $@
914
+ echo "$(OX)\markdown_html.obj" >> $@
915
+ echo "$(OX)\md5.obj" >> $@
916
+ echo "$(OX)\merge.obj" >> $@
917
+ echo "$(OX)\merge3.obj" >> $@
918
+ echo "$(OX)\moderate.obj" >> $@
919
+ echo "$(OX)\name.obj" >> $@
920
+ echo "$(OX)\path.obj" >> $@
921
+ echo "$(OX)\piechart.obj" >> $@
922
+ echo "$(OX)\pivot.obj" >> $@
923
+ echo "$(OX)\popen.obj" >> $@
924
+ echo "$(OX)\pqueue.obj" >> $@
925
+ echo "$(OX)\printf.obj" >> $@
926
+ echo "$(OX)\publish.obj" >> $@
927
+ echo "$(OX)\purge.obj" >> $@
928
+ echo "$(OX)\rebuild.obj" >> $@
929
+ echo "$(OX)\regexp.obj" >> $@
930
+ echo "$(OX)\repolist.obj" >> $@
931
+ echo "$(OX)\report.obj" >> $@
932
+ echo "$(OX)\rss.obj" >> $@
933
+ echo "$(OX)\schema.obj" >> $@
934
+ echo "$(OX)\search.obj" >> $@
935
+ echo "$(OX)\security_audit.obj" >> $@
936
+ echo "$(OX)\setup.obj" >> $@
937
+ echo "$(OX)\setupuser.obj" >> $@
938
+ echo "$(OX)\sha1.obj" >> $@
939
+ echo "$(OX)\sha1hard.obj" >> $@
940
+ echo "$(OX)\sha3.obj" >> $@
941
+ echo "$(OX)\shell.obj" >> $@
942
+ echo "$(OX)\shun.obj" >> $@
943
+ echo "$(OX)\sitemap.obj" >> $@
944
+ echo "$(OX)\skins.obj" >> $@
945
+ echo "$(OX)\smtp.obj" >> $@
946
+ echo "$(OX)\sqlcmd.obj" >> $@
947
+ echo "$(OX)\sqlite3.obj" >> $@
948
+ echo "$(OX)\stash.obj" >> $@
949
+ echo "$(OX)\stat.obj" >> $@
950
+ echo "$(OX)\statrep.obj" >> $@
951
+ echo "$(OX)\style.obj" >> $@
952
+ echo "$(OX)\sync.obj" >> $@
953
+ echo "$(OX)\tag.obj" >> $@
954
+ echo "$(OX)\tar.obj" >> $@
955
+ echo "$(OX)\terminal.obj" >> $@
956
+ echo "$(OX)\th.obj" >> $@
957
+ echo "$(OX)\th_lang.obj" >> $@
958
+ echo "$(OX)\th_main.obj" >> $@
959
+ echo "$(OX)\th_tcl.obj" >> $@
960
+ echo "$(OX)\timeline.obj" >> $@
961
+ echo "$(OX)\tkt.obj" >> $@
962
+ echo "$(OX)\tktsetup.obj" >> $@
963
+ echo "$(OX)\undo.obj" >> $@
964
+ echo "$(OX)\unicode.obj" >> $@
965
+ echo "$(OX)\unversioned.obj" >> $@
966
+ echo "$(OX)\update.obj" >> $@
967
+ echo "$(OX)\url.obj" >> $@
968
+ echo "$(OX)\user.obj" >> $@
969
+ echo "$(OX)\utf8.obj" >> $@
970
+ echo "$(OX)\util.obj" >> $@
971
+ echo "$(OX)\verify.obj" >> $@
972
+ echo "$(OX)\vfile.obj" >> $@
973
+ echo "$(OX)\webmail.obj" >> $@
974
+ echo "$(OX)\wiki.obj" >> $@
975
+ echo "$(OX)\wikiformat.obj" >> $@
976
+ echo "$(OX)\winfile.obj" >> $@
977
+ echo "$(OX)\winhttp.obj" >> $@
978
+ echo "$(OX)\wysiwyg.obj" >> $@
979
+ echo "$(OX)\xfer.obj" >> $@
980
+ echo "$(OX)\xfersetup.obj" >> $@
981
+ echo "$(OX)\zip.obj" >> $@
946982
!if $(FOSSIL_ENABLE_MINIZ)!=0
947
- echo $(OX)\miniz.obj >> $@
983
+ echo "$(OX)\miniz.obj" >> $@
948984
!endif
949985
echo $(LIBS) >> $@
950986
951
-$(OX):
952
- @-mkdir $@
953
-
954
-translate$E: $(SRCDIR)\translate.c
955
- $(BCC) $**
956
-
957
-makeheaders$E: $(SRCDIR)\makeheaders.c
958
- $(BCC) $**
959
-
960
-mkindex$E: $(SRCDIR)\mkindex.c
961
- $(BCC) $**
962
-
963
-mkbuiltin$E: $(SRCDIR)\mkbuiltin.c
964
- $(BCC) $**
965
-
966
-mkversion$E: $(SRCDIR)\mkversion.c
967
- $(BCC) $**
968
-
969
-codecheck1$E: $(SRCDIR)\codecheck1.c
970
- $(BCC) $**
987
+"$(OBJDIR)\translate$E": "$(SRCDIR)\translate.c"
988
+ $(BCC) /Fe$@ /Fo$(@D)\ /Fd$(@D)\ $**
989
+
990
+"$(OBJDIR)\makeheaders$E": "$(SRCDIR)\makeheaders.c"
991
+ $(BCC) /Fe$@ /Fo$(@D)\ /Fd$(@D)\ $**
992
+
993
+"$(OBJDIR)\mkindex$E": "$(SRCDIR)\mkindex.c"
994
+ $(BCC) /Fe$@ /Fo$(@D)\ /Fd$(@D)\ $**
995
+
996
+"$(OBJDIR)\mkbuiltin$E": "$(SRCDIR)\mkbuiltin.c"
997
+ $(BCC) /Fe$@ /Fo$(@D)\ /Fd$(@D)\ $**
998
+
999
+"$(OBJDIR)\mkversion$E": "$(SRCDIR)\mkversion.c"
1000
+ $(BCC) /Fe$@ /Fo$(@D)\ /Fd$(@D)\ $**
1001
+
1002
+"$(OBJDIR)\codecheck1$E": "$(SRCDIR)\codecheck1.c"
1003
+ $(BCC) /Fe$@ /Fo$(@D)\ /Fd$(@D)\ $**
9711004
9721005
!if $(USE_SEE)!=0
9731006
SEE_FLAGS = /DSQLITE_HAS_CODEC=1 /DSQLITE_SHELL_DBKEY_PROC=fossil_key
9741007
SQLITE3_SHELL_SRC = $(SRCDIR)\shell-see.c
9751008
SQLITE3_SRC = $(SRCDIR)\sqlite3-see.c
@@ -977,1082 +1010,1195 @@
9771010
SEE_FLAGS =
9781011
SQLITE3_SHELL_SRC = $(SRCDIR)\shell.c
9791012
SQLITE3_SRC = $(SRCDIR)\sqlite3.c
9801013
!endif
9811014
982
-$(OX)\shell$O : $(SQLITE3_SHELL_SRC) $B\win\Makefile.msc
983
- $(TCC) /Fo$@ $(SHELL_OPTIONS) $(SQLITE_OPTIONS) $(SHELL_CFLAGS) $(SEE_FLAGS) -c $(SQLITE3_SHELL_SRC)
984
-
985
-$(OX)\sqlite3$O : $(SQLITE3_SRC) $B\win\Makefile.msc
986
- $(TCC) /Fo$@ -c $(SQLITE_OPTIONS) $(SQLITE_CFLAGS) $(SEE_FLAGS) $(SQLITE3_SRC)
987
-
988
-$(OX)\th$O : $(SRCDIR)\th.c
989
- $(TCC) /Fo$@ -c $**
990
-
991
-$(OX)\th_lang$O : $(SRCDIR)\th_lang.c
992
- $(TCC) /Fo$@ -c $**
993
-
994
-$(OX)\th_tcl$O : $(SRCDIR)\th_tcl.c
995
- $(TCC) /Fo$@ -c $**
996
-
997
-$(OX)\miniz$O : $(SRCDIR)\miniz.c
998
- $(TCC) /Fo$@ -c $(MINIZ_OPTIONS) $(SRCDIR)\miniz.c
999
-
1000
-VERSION.h : mkversion$E $B\manifest.uuid $B\manifest $B\VERSION
1001
- $** > $@
1002
-
1003
-$(OX)\cson_amalgamation$O : $(SRCDIR)\cson_amalgamation.c
1004
- $(TCC) /Fo$@ /c $**
1005
-
1006
-page_index.h: mkindex$E $(SRC)
1007
- $** > $@
1008
-
1009
-builtin_data.h: mkbuiltin$E $(EXTRA_FILES)
1010
- mkbuiltin$E --prefix $(SRCDIR)/ $(EXTRA_FILES) > $@
1011
-
1012
-clean:
1013
- -del $(OX)\*.obj 2>NUL
1014
- -del *.obj 2>NUL
1015
- -del *_.c 2>NUL
1016
- -del *.h 2>NUL
1017
- -del *.ilk 2>NUL
1018
- -del *.map 2>NUL
1019
- -del *.res 2>NUL
1020
- -del headers 2>NUL
1021
- -del linkopts 2>NUL
1022
- -del vc*.pdb 2>NUL
1023
-
1024
-realclean: clean
1025
- -del $(APPNAME) 2>NUL
1026
- -del $(PDBNAME) 2>NUL
1027
- -del translate$E 2>NUL
1028
- -del translate$P 2>NUL
1029
- -del mkindex$E 2>NUL
1030
- -del mkindex$P 2>NUL
1031
- -del makeheaders$E 2>NUL
1032
- -del makeheaders$P 2>NUL
1033
- -del mkversion$E 2>NUL
1034
- -del mkversion$P 2>NUL
1035
- -del codecheck1$E 2>NUL
1036
- -del codecheck1$P 2>NUL
1037
- -del mkbuiltin$E 2>NUL
1038
- -del mkbuiltin$P 2>NUL
1039
-
1040
-$(OBJDIR)\json$O : $(SRCDIR)\json_detail.h
1041
-$(OBJDIR)\json_artifact$O : $(SRCDIR)\json_detail.h
1042
-$(OBJDIR)\json_branch$O : $(SRCDIR)\json_detail.h
1043
-$(OBJDIR)\json_config$O : $(SRCDIR)\json_detail.h
1044
-$(OBJDIR)\json_diff$O : $(SRCDIR)\json_detail.h
1045
-$(OBJDIR)\json_dir$O : $(SRCDIR)\json_detail.h
1046
-$(OBJDIR)\json_finfo$O : $(SRCDIR)\json_detail.h
1047
-$(OBJDIR)\json_login$O : $(SRCDIR)\json_detail.h
1048
-$(OBJDIR)\json_query$O : $(SRCDIR)\json_detail.h
1049
-$(OBJDIR)\json_report$O : $(SRCDIR)\json_detail.h
1050
-$(OBJDIR)\json_status$O : $(SRCDIR)\json_detail.h
1051
-$(OBJDIR)\json_tag$O : $(SRCDIR)\json_detail.h
1052
-$(OBJDIR)\json_timeline$O : $(SRCDIR)\json_detail.h
1053
-$(OBJDIR)\json_user$O : $(SRCDIR)\json_detail.h
1054
-$(OBJDIR)\json_wiki$O : $(SRCDIR)\json_detail.h
1055
-
1056
-$(OX)\add$O : add_.c add.h
1057
- $(TCC) /Fo$@ -c add_.c
1058
-
1059
-add_.c : $(SRCDIR)\add.c
1060
- translate$E $** > $@
1061
-
1062
-$(OX)\alerts$O : alerts_.c alerts.h
1063
- $(TCC) /Fo$@ -c alerts_.c
1064
-
1065
-alerts_.c : $(SRCDIR)\alerts.c
1066
- translate$E $** > $@
1067
-
1068
-$(OX)\allrepo$O : allrepo_.c allrepo.h
1069
- $(TCC) /Fo$@ -c allrepo_.c
1070
-
1071
-allrepo_.c : $(SRCDIR)\allrepo.c
1072
- translate$E $** > $@
1073
-
1074
-$(OX)\attach$O : attach_.c attach.h
1075
- $(TCC) /Fo$@ -c attach_.c
1076
-
1077
-attach_.c : $(SRCDIR)\attach.c
1078
- translate$E $** > $@
1079
-
1080
-$(OX)\backlink$O : backlink_.c backlink.h
1081
- $(TCC) /Fo$@ -c backlink_.c
1082
-
1083
-backlink_.c : $(SRCDIR)\backlink.c
1084
- translate$E $** > $@
1085
-
1086
-$(OX)\backoffice$O : backoffice_.c backoffice.h
1087
- $(TCC) /Fo$@ -c backoffice_.c
1088
-
1089
-backoffice_.c : $(SRCDIR)\backoffice.c
1090
- translate$E $** > $@
1091
-
1092
-$(OX)\bag$O : bag_.c bag.h
1093
- $(TCC) /Fo$@ -c bag_.c
1094
-
1095
-bag_.c : $(SRCDIR)\bag.c
1096
- translate$E $** > $@
1097
-
1098
-$(OX)\bisect$O : bisect_.c bisect.h
1099
- $(TCC) /Fo$@ -c bisect_.c
1100
-
1101
-bisect_.c : $(SRCDIR)\bisect.c
1102
- translate$E $** > $@
1103
-
1104
-$(OX)\blob$O : blob_.c blob.h
1105
- $(TCC) /Fo$@ -c blob_.c
1106
-
1107
-blob_.c : $(SRCDIR)\blob.c
1108
- translate$E $** > $@
1109
-
1110
-$(OX)\branch$O : branch_.c branch.h
1111
- $(TCC) /Fo$@ -c branch_.c
1112
-
1113
-branch_.c : $(SRCDIR)\branch.c
1114
- translate$E $** > $@
1115
-
1116
-$(OX)\browse$O : browse_.c browse.h
1117
- $(TCC) /Fo$@ -c browse_.c
1118
-
1119
-browse_.c : $(SRCDIR)\browse.c
1120
- translate$E $** > $@
1121
-
1122
-$(OX)\builtin$O : builtin_.c builtin.h
1123
- $(TCC) /Fo$@ -c builtin_.c
1124
-
1125
-builtin_.c : $(SRCDIR)\builtin.c
1126
- translate$E $** > $@
1127
-
1128
-$(OX)\bundle$O : bundle_.c bundle.h
1129
- $(TCC) /Fo$@ -c bundle_.c
1130
-
1131
-bundle_.c : $(SRCDIR)\bundle.c
1132
- translate$E $** > $@
1133
-
1134
-$(OX)\cache$O : cache_.c cache.h
1135
- $(TCC) /Fo$@ -c cache_.c
1136
-
1137
-cache_.c : $(SRCDIR)\cache.c
1138
- translate$E $** > $@
1139
-
1140
-$(OX)\capabilities$O : capabilities_.c capabilities.h
1141
- $(TCC) /Fo$@ -c capabilities_.c
1142
-
1143
-capabilities_.c : $(SRCDIR)\capabilities.c
1144
- translate$E $** > $@
1145
-
1146
-$(OX)\captcha$O : captcha_.c captcha.h
1147
- $(TCC) /Fo$@ -c captcha_.c
1148
-
1149
-captcha_.c : $(SRCDIR)\captcha.c
1150
- translate$E $** > $@
1151
-
1152
-$(OX)\cgi$O : cgi_.c cgi.h
1153
- $(TCC) /Fo$@ -c cgi_.c
1154
-
1155
-cgi_.c : $(SRCDIR)\cgi.c
1156
- translate$E $** > $@
1157
-
1158
-$(OX)\checkin$O : checkin_.c checkin.h
1159
- $(TCC) /Fo$@ -c checkin_.c
1160
-
1161
-checkin_.c : $(SRCDIR)\checkin.c
1162
- translate$E $** > $@
1163
-
1164
-$(OX)\checkout$O : checkout_.c checkout.h
1165
- $(TCC) /Fo$@ -c checkout_.c
1166
-
1167
-checkout_.c : $(SRCDIR)\checkout.c
1168
- translate$E $** > $@
1169
-
1170
-$(OX)\clearsign$O : clearsign_.c clearsign.h
1171
- $(TCC) /Fo$@ -c clearsign_.c
1172
-
1173
-clearsign_.c : $(SRCDIR)\clearsign.c
1174
- translate$E $** > $@
1175
-
1176
-$(OX)\clone$O : clone_.c clone.h
1177
- $(TCC) /Fo$@ -c clone_.c
1178
-
1179
-clone_.c : $(SRCDIR)\clone.c
1180
- translate$E $** > $@
1181
-
1182
-$(OX)\comformat$O : comformat_.c comformat.h
1183
- $(TCC) /Fo$@ -c comformat_.c
1184
-
1185
-comformat_.c : $(SRCDIR)\comformat.c
1186
- translate$E $** > $@
1187
-
1188
-$(OX)\configure$O : configure_.c configure.h
1189
- $(TCC) /Fo$@ -c configure_.c
1190
-
1191
-configure_.c : $(SRCDIR)\configure.c
1192
- translate$E $** > $@
1193
-
1194
-$(OX)\content$O : content_.c content.h
1195
- $(TCC) /Fo$@ -c content_.c
1196
-
1197
-content_.c : $(SRCDIR)\content.c
1198
- translate$E $** > $@
1199
-
1200
-$(OX)\cookies$O : cookies_.c cookies.h
1201
- $(TCC) /Fo$@ -c cookies_.c
1202
-
1203
-cookies_.c : $(SRCDIR)\cookies.c
1204
- translate$E $** > $@
1205
-
1206
-$(OX)\db$O : db_.c db.h
1207
- $(TCC) /Fo$@ -c db_.c
1208
-
1209
-db_.c : $(SRCDIR)\db.c
1210
- translate$E $** > $@
1211
-
1212
-$(OX)\delta$O : delta_.c delta.h
1213
- $(TCC) /Fo$@ -c delta_.c
1214
-
1215
-delta_.c : $(SRCDIR)\delta.c
1216
- translate$E $** > $@
1217
-
1218
-$(OX)\deltacmd$O : deltacmd_.c deltacmd.h
1219
- $(TCC) /Fo$@ -c deltacmd_.c
1220
-
1221
-deltacmd_.c : $(SRCDIR)\deltacmd.c
1222
- translate$E $** > $@
1223
-
1224
-$(OX)\deltafunc$O : deltafunc_.c deltafunc.h
1225
- $(TCC) /Fo$@ -c deltafunc_.c
1226
-
1227
-deltafunc_.c : $(SRCDIR)\deltafunc.c
1228
- translate$E $** > $@
1229
-
1230
-$(OX)\descendants$O : descendants_.c descendants.h
1231
- $(TCC) /Fo$@ -c descendants_.c
1232
-
1233
-descendants_.c : $(SRCDIR)\descendants.c
1234
- translate$E $** > $@
1235
-
1236
-$(OX)\diff$O : diff_.c diff.h
1237
- $(TCC) /Fo$@ -c diff_.c
1238
-
1239
-diff_.c : $(SRCDIR)\diff.c
1240
- translate$E $** > $@
1241
-
1242
-$(OX)\diffcmd$O : diffcmd_.c diffcmd.h
1243
- $(TCC) /Fo$@ -c diffcmd_.c
1244
-
1245
-diffcmd_.c : $(SRCDIR)\diffcmd.c
1246
- translate$E $** > $@
1247
-
1248
-$(OX)\dispatch$O : dispatch_.c dispatch.h
1249
- $(TCC) /Fo$@ -c dispatch_.c
1250
-
1251
-dispatch_.c : $(SRCDIR)\dispatch.c
1252
- translate$E $** > $@
1253
-
1254
-$(OX)\doc$O : doc_.c doc.h
1255
- $(TCC) /Fo$@ -c doc_.c
1256
-
1257
-doc_.c : $(SRCDIR)\doc.c
1258
- translate$E $** > $@
1259
-
1260
-$(OX)\encode$O : encode_.c encode.h
1261
- $(TCC) /Fo$@ -c encode_.c
1262
-
1263
-encode_.c : $(SRCDIR)\encode.c
1264
- translate$E $** > $@
1265
-
1266
-$(OX)\etag$O : etag_.c etag.h
1267
- $(TCC) /Fo$@ -c etag_.c
1268
-
1269
-etag_.c : $(SRCDIR)\etag.c
1270
- translate$E $** > $@
1271
-
1272
-$(OX)\event$O : event_.c event.h
1273
- $(TCC) /Fo$@ -c event_.c
1274
-
1275
-event_.c : $(SRCDIR)\event.c
1276
- translate$E $** > $@
1277
-
1278
-$(OX)\export$O : export_.c export.h
1279
- $(TCC) /Fo$@ -c export_.c
1280
-
1281
-export_.c : $(SRCDIR)\export.c
1282
- translate$E $** > $@
1283
-
1284
-$(OX)\extcgi$O : extcgi_.c extcgi.h
1285
- $(TCC) /Fo$@ -c extcgi_.c
1286
-
1287
-extcgi_.c : $(SRCDIR)\extcgi.c
1288
- translate$E $** > $@
1289
-
1290
-$(OX)\file$O : file_.c file.h
1291
- $(TCC) /Fo$@ -c file_.c
1292
-
1293
-file_.c : $(SRCDIR)\file.c
1294
- translate$E $** > $@
1295
-
1296
-$(OX)\fileedit$O : fileedit_.c fileedit.h
1297
- $(TCC) /Fo$@ -c fileedit_.c
1298
-
1299
-fileedit_.c : $(SRCDIR)\fileedit.c
1300
- translate$E $** > $@
1301
-
1302
-$(OX)\finfo$O : finfo_.c finfo.h
1303
- $(TCC) /Fo$@ -c finfo_.c
1304
-
1305
-finfo_.c : $(SRCDIR)\finfo.c
1306
- translate$E $** > $@
1307
-
1308
-$(OX)\foci$O : foci_.c foci.h
1309
- $(TCC) /Fo$@ -c foci_.c
1310
-
1311
-foci_.c : $(SRCDIR)\foci.c
1312
- translate$E $** > $@
1313
-
1314
-$(OX)\forum$O : forum_.c forum.h
1315
- $(TCC) /Fo$@ -c forum_.c
1316
-
1317
-forum_.c : $(SRCDIR)\forum.c
1318
- translate$E $** > $@
1319
-
1320
-$(OX)\fshell$O : fshell_.c fshell.h
1321
- $(TCC) /Fo$@ -c fshell_.c
1322
-
1323
-fshell_.c : $(SRCDIR)\fshell.c
1324
- translate$E $** > $@
1325
-
1326
-$(OX)\fusefs$O : fusefs_.c fusefs.h
1327
- $(TCC) /Fo$@ -c fusefs_.c
1328
-
1329
-fusefs_.c : $(SRCDIR)\fusefs.c
1330
- translate$E $** > $@
1331
-
1332
-$(OX)\fuzz$O : fuzz_.c fuzz.h
1333
- $(TCC) /Fo$@ -c fuzz_.c
1334
-
1335
-fuzz_.c : $(SRCDIR)\fuzz.c
1336
- translate$E $** > $@
1337
-
1338
-$(OX)\glob$O : glob_.c glob.h
1339
- $(TCC) /Fo$@ -c glob_.c
1340
-
1341
-glob_.c : $(SRCDIR)\glob.c
1342
- translate$E $** > $@
1343
-
1344
-$(OX)\graph$O : graph_.c graph.h
1345
- $(TCC) /Fo$@ -c graph_.c
1346
-
1347
-graph_.c : $(SRCDIR)\graph.c
1348
- translate$E $** > $@
1349
-
1350
-$(OX)\gzip$O : gzip_.c gzip.h
1351
- $(TCC) /Fo$@ -c gzip_.c
1352
-
1353
-gzip_.c : $(SRCDIR)\gzip.c
1354
- translate$E $** > $@
1355
-
1356
-$(OX)\hname$O : hname_.c hname.h
1357
- $(TCC) /Fo$@ -c hname_.c
1358
-
1359
-hname_.c : $(SRCDIR)\hname.c
1360
- translate$E $** > $@
1361
-
1362
-$(OX)\http$O : http_.c http.h
1363
- $(TCC) /Fo$@ -c http_.c
1364
-
1365
-http_.c : $(SRCDIR)\http.c
1366
- translate$E $** > $@
1367
-
1368
-$(OX)\http_socket$O : http_socket_.c http_socket.h
1369
- $(TCC) /Fo$@ -c http_socket_.c
1370
-
1371
-http_socket_.c : $(SRCDIR)\http_socket.c
1372
- translate$E $** > $@
1373
-
1374
-$(OX)\http_ssl$O : http_ssl_.c http_ssl.h
1375
- $(TCC) /Fo$@ -c http_ssl_.c
1376
-
1377
-http_ssl_.c : $(SRCDIR)\http_ssl.c
1378
- translate$E $** > $@
1379
-
1380
-$(OX)\http_transport$O : http_transport_.c http_transport.h
1381
- $(TCC) /Fo$@ -c http_transport_.c
1382
-
1383
-http_transport_.c : $(SRCDIR)\http_transport.c
1384
- translate$E $** > $@
1385
-
1386
-$(OX)\import$O : import_.c import.h
1387
- $(TCC) /Fo$@ -c import_.c
1388
-
1389
-import_.c : $(SRCDIR)\import.c
1390
- translate$E $** > $@
1391
-
1392
-$(OX)\info$O : info_.c info.h
1393
- $(TCC) /Fo$@ -c info_.c
1394
-
1395
-info_.c : $(SRCDIR)\info.c
1396
- translate$E $** > $@
1397
-
1398
-$(OX)\json$O : json_.c json.h
1399
- $(TCC) /Fo$@ -c json_.c
1400
-
1401
-json_.c : $(SRCDIR)\json.c
1402
- translate$E $** > $@
1403
-
1404
-$(OX)\json_artifact$O : json_artifact_.c json_artifact.h
1405
- $(TCC) /Fo$@ -c json_artifact_.c
1406
-
1407
-json_artifact_.c : $(SRCDIR)\json_artifact.c
1408
- translate$E $** > $@
1409
-
1410
-$(OX)\json_branch$O : json_branch_.c json_branch.h
1411
- $(TCC) /Fo$@ -c json_branch_.c
1412
-
1413
-json_branch_.c : $(SRCDIR)\json_branch.c
1414
- translate$E $** > $@
1415
-
1416
-$(OX)\json_config$O : json_config_.c json_config.h
1417
- $(TCC) /Fo$@ -c json_config_.c
1418
-
1419
-json_config_.c : $(SRCDIR)\json_config.c
1420
- translate$E $** > $@
1421
-
1422
-$(OX)\json_diff$O : json_diff_.c json_diff.h
1423
- $(TCC) /Fo$@ -c json_diff_.c
1424
-
1425
-json_diff_.c : $(SRCDIR)\json_diff.c
1426
- translate$E $** > $@
1427
-
1428
-$(OX)\json_dir$O : json_dir_.c json_dir.h
1429
- $(TCC) /Fo$@ -c json_dir_.c
1430
-
1431
-json_dir_.c : $(SRCDIR)\json_dir.c
1432
- translate$E $** > $@
1433
-
1434
-$(OX)\json_finfo$O : json_finfo_.c json_finfo.h
1435
- $(TCC) /Fo$@ -c json_finfo_.c
1436
-
1437
-json_finfo_.c : $(SRCDIR)\json_finfo.c
1438
- translate$E $** > $@
1439
-
1440
-$(OX)\json_login$O : json_login_.c json_login.h
1441
- $(TCC) /Fo$@ -c json_login_.c
1442
-
1443
-json_login_.c : $(SRCDIR)\json_login.c
1444
- translate$E $** > $@
1445
-
1446
-$(OX)\json_query$O : json_query_.c json_query.h
1447
- $(TCC) /Fo$@ -c json_query_.c
1448
-
1449
-json_query_.c : $(SRCDIR)\json_query.c
1450
- translate$E $** > $@
1451
-
1452
-$(OX)\json_report$O : json_report_.c json_report.h
1453
- $(TCC) /Fo$@ -c json_report_.c
1454
-
1455
-json_report_.c : $(SRCDIR)\json_report.c
1456
- translate$E $** > $@
1457
-
1458
-$(OX)\json_status$O : json_status_.c json_status.h
1459
- $(TCC) /Fo$@ -c json_status_.c
1460
-
1461
-json_status_.c : $(SRCDIR)\json_status.c
1462
- translate$E $** > $@
1463
-
1464
-$(OX)\json_tag$O : json_tag_.c json_tag.h
1465
- $(TCC) /Fo$@ -c json_tag_.c
1466
-
1467
-json_tag_.c : $(SRCDIR)\json_tag.c
1468
- translate$E $** > $@
1469
-
1470
-$(OX)\json_timeline$O : json_timeline_.c json_timeline.h
1471
- $(TCC) /Fo$@ -c json_timeline_.c
1472
-
1473
-json_timeline_.c : $(SRCDIR)\json_timeline.c
1474
- translate$E $** > $@
1475
-
1476
-$(OX)\json_user$O : json_user_.c json_user.h
1477
- $(TCC) /Fo$@ -c json_user_.c
1478
-
1479
-json_user_.c : $(SRCDIR)\json_user.c
1480
- translate$E $** > $@
1481
-
1482
-$(OX)\json_wiki$O : json_wiki_.c json_wiki.h
1483
- $(TCC) /Fo$@ -c json_wiki_.c
1484
-
1485
-json_wiki_.c : $(SRCDIR)\json_wiki.c
1486
- translate$E $** > $@
1487
-
1488
-$(OX)\leaf$O : leaf_.c leaf.h
1489
- $(TCC) /Fo$@ -c leaf_.c
1490
-
1491
-leaf_.c : $(SRCDIR)\leaf.c
1492
- translate$E $** > $@
1493
-
1494
-$(OX)\loadctrl$O : loadctrl_.c loadctrl.h
1495
- $(TCC) /Fo$@ -c loadctrl_.c
1496
-
1497
-loadctrl_.c : $(SRCDIR)\loadctrl.c
1498
- translate$E $** > $@
1499
-
1500
-$(OX)\login$O : login_.c login.h
1501
- $(TCC) /Fo$@ -c login_.c
1502
-
1503
-login_.c : $(SRCDIR)\login.c
1504
- translate$E $** > $@
1505
-
1506
-$(OX)\lookslike$O : lookslike_.c lookslike.h
1507
- $(TCC) /Fo$@ -c lookslike_.c
1508
-
1509
-lookslike_.c : $(SRCDIR)\lookslike.c
1510
- translate$E $** > $@
1511
-
1512
-$(OX)\main$O : main_.c main.h
1513
- $(TCC) /Fo$@ -c main_.c
1514
-
1515
-main_.c : $(SRCDIR)\main.c
1516
- translate$E $** > $@
1517
-
1518
-$(OX)\manifest$O : manifest_.c manifest.h
1519
- $(TCC) /Fo$@ -c manifest_.c
1520
-
1521
-manifest_.c : $(SRCDIR)\manifest.c
1522
- translate$E $** > $@
1523
-
1524
-$(OX)\markdown$O : markdown_.c markdown.h
1525
- $(TCC) /Fo$@ -c markdown_.c
1526
-
1527
-markdown_.c : $(SRCDIR)\markdown.c
1528
- translate$E $** > $@
1529
-
1530
-$(OX)\markdown_html$O : markdown_html_.c markdown_html.h
1531
- $(TCC) /Fo$@ -c markdown_html_.c
1532
-
1533
-markdown_html_.c : $(SRCDIR)\markdown_html.c
1534
- translate$E $** > $@
1535
-
1536
-$(OX)\md5$O : md5_.c md5.h
1537
- $(TCC) /Fo$@ -c md5_.c
1538
-
1539
-md5_.c : $(SRCDIR)\md5.c
1540
- translate$E $** > $@
1541
-
1542
-$(OX)\merge$O : merge_.c merge.h
1543
- $(TCC) /Fo$@ -c merge_.c
1544
-
1545
-merge_.c : $(SRCDIR)\merge.c
1546
- translate$E $** > $@
1547
-
1548
-$(OX)\merge3$O : merge3_.c merge3.h
1549
- $(TCC) /Fo$@ -c merge3_.c
1550
-
1551
-merge3_.c : $(SRCDIR)\merge3.c
1552
- translate$E $** > $@
1553
-
1554
-$(OX)\moderate$O : moderate_.c moderate.h
1555
- $(TCC) /Fo$@ -c moderate_.c
1556
-
1557
-moderate_.c : $(SRCDIR)\moderate.c
1558
- translate$E $** > $@
1559
-
1560
-$(OX)\name$O : name_.c name.h
1561
- $(TCC) /Fo$@ -c name_.c
1562
-
1563
-name_.c : $(SRCDIR)\name.c
1564
- translate$E $** > $@
1565
-
1566
-$(OX)\path$O : path_.c path.h
1567
- $(TCC) /Fo$@ -c path_.c
1568
-
1569
-path_.c : $(SRCDIR)\path.c
1570
- translate$E $** > $@
1571
-
1572
-$(OX)\piechart$O : piechart_.c piechart.h
1573
- $(TCC) /Fo$@ -c piechart_.c
1574
-
1575
-piechart_.c : $(SRCDIR)\piechart.c
1576
- translate$E $** > $@
1577
-
1578
-$(OX)\pivot$O : pivot_.c pivot.h
1579
- $(TCC) /Fo$@ -c pivot_.c
1580
-
1581
-pivot_.c : $(SRCDIR)\pivot.c
1582
- translate$E $** > $@
1583
-
1584
-$(OX)\popen$O : popen_.c popen.h
1585
- $(TCC) /Fo$@ -c popen_.c
1586
-
1587
-popen_.c : $(SRCDIR)\popen.c
1588
- translate$E $** > $@
1589
-
1590
-$(OX)\pqueue$O : pqueue_.c pqueue.h
1591
- $(TCC) /Fo$@ -c pqueue_.c
1592
-
1593
-pqueue_.c : $(SRCDIR)\pqueue.c
1594
- translate$E $** > $@
1595
-
1596
-$(OX)\printf$O : printf_.c printf.h
1597
- $(TCC) /Fo$@ -c printf_.c
1598
-
1599
-printf_.c : $(SRCDIR)\printf.c
1600
- translate$E $** > $@
1601
-
1602
-$(OX)\publish$O : publish_.c publish.h
1603
- $(TCC) /Fo$@ -c publish_.c
1604
-
1605
-publish_.c : $(SRCDIR)\publish.c
1606
- translate$E $** > $@
1607
-
1608
-$(OX)\purge$O : purge_.c purge.h
1609
- $(TCC) /Fo$@ -c purge_.c
1610
-
1611
-purge_.c : $(SRCDIR)\purge.c
1612
- translate$E $** > $@
1613
-
1614
-$(OX)\rebuild$O : rebuild_.c rebuild.h
1615
- $(TCC) /Fo$@ -c rebuild_.c
1616
-
1617
-rebuild_.c : $(SRCDIR)\rebuild.c
1618
- translate$E $** > $@
1619
-
1620
-$(OX)\regexp$O : regexp_.c regexp.h
1621
- $(TCC) /Fo$@ -c regexp_.c
1622
-
1623
-regexp_.c : $(SRCDIR)\regexp.c
1624
- translate$E $** > $@
1625
-
1626
-$(OX)\repolist$O : repolist_.c repolist.h
1627
- $(TCC) /Fo$@ -c repolist_.c
1628
-
1629
-repolist_.c : $(SRCDIR)\repolist.c
1630
- translate$E $** > $@
1631
-
1632
-$(OX)\report$O : report_.c report.h
1633
- $(TCC) /Fo$@ -c report_.c
1634
-
1635
-report_.c : $(SRCDIR)\report.c
1636
- translate$E $** > $@
1637
-
1638
-$(OX)\rss$O : rss_.c rss.h
1639
- $(TCC) /Fo$@ -c rss_.c
1640
-
1641
-rss_.c : $(SRCDIR)\rss.c
1642
- translate$E $** > $@
1643
-
1644
-$(OX)\schema$O : schema_.c schema.h
1645
- $(TCC) /Fo$@ -c schema_.c
1646
-
1647
-schema_.c : $(SRCDIR)\schema.c
1648
- translate$E $** > $@
1649
-
1650
-$(OX)\search$O : search_.c search.h
1651
- $(TCC) /Fo$@ -c search_.c
1652
-
1653
-search_.c : $(SRCDIR)\search.c
1654
- translate$E $** > $@
1655
-
1656
-$(OX)\security_audit$O : security_audit_.c security_audit.h
1657
- $(TCC) /Fo$@ -c security_audit_.c
1658
-
1659
-security_audit_.c : $(SRCDIR)\security_audit.c
1660
- translate$E $** > $@
1661
-
1662
-$(OX)\setup$O : setup_.c setup.h
1663
- $(TCC) /Fo$@ -c setup_.c
1664
-
1665
-setup_.c : $(SRCDIR)\setup.c
1666
- translate$E $** > $@
1667
-
1668
-$(OX)\setupuser$O : setupuser_.c setupuser.h
1669
- $(TCC) /Fo$@ -c setupuser_.c
1670
-
1671
-setupuser_.c : $(SRCDIR)\setupuser.c
1672
- translate$E $** > $@
1673
-
1674
-$(OX)\sha1$O : sha1_.c sha1.h
1675
- $(TCC) /Fo$@ -c sha1_.c
1676
-
1677
-sha1_.c : $(SRCDIR)\sha1.c
1678
- translate$E $** > $@
1679
-
1680
-$(OX)\sha1hard$O : sha1hard_.c sha1hard.h
1681
- $(TCC) /Fo$@ -c sha1hard_.c
1682
-
1683
-sha1hard_.c : $(SRCDIR)\sha1hard.c
1684
- translate$E $** > $@
1685
-
1686
-$(OX)\sha3$O : sha3_.c sha3.h
1687
- $(TCC) /Fo$@ -c sha3_.c
1688
-
1689
-sha3_.c : $(SRCDIR)\sha3.c
1690
- translate$E $** > $@
1691
-
1692
-$(OX)\shun$O : shun_.c shun.h
1693
- $(TCC) /Fo$@ -c shun_.c
1694
-
1695
-shun_.c : $(SRCDIR)\shun.c
1696
- translate$E $** > $@
1697
-
1698
-$(OX)\sitemap$O : sitemap_.c sitemap.h
1699
- $(TCC) /Fo$@ -c sitemap_.c
1700
-
1701
-sitemap_.c : $(SRCDIR)\sitemap.c
1702
- translate$E $** > $@
1703
-
1704
-$(OX)\skins$O : skins_.c skins.h
1705
- $(TCC) /Fo$@ -c skins_.c
1706
-
1707
-skins_.c : $(SRCDIR)\skins.c
1708
- translate$E $** > $@
1709
-
1710
-$(OX)\smtp$O : smtp_.c smtp.h
1711
- $(TCC) /Fo$@ -c smtp_.c
1712
-
1713
-smtp_.c : $(SRCDIR)\smtp.c
1714
- translate$E $** > $@
1715
-
1716
-$(OX)\sqlcmd$O : sqlcmd_.c sqlcmd.h
1717
- $(TCC) /Fo$@ -c sqlcmd_.c
1718
-
1719
-sqlcmd_.c : $(SRCDIR)\sqlcmd.c
1720
- translate$E $** > $@
1721
-
1722
-$(OX)\stash$O : stash_.c stash.h
1723
- $(TCC) /Fo$@ -c stash_.c
1724
-
1725
-stash_.c : $(SRCDIR)\stash.c
1726
- translate$E $** > $@
1727
-
1728
-$(OX)\stat$O : stat_.c stat.h
1729
- $(TCC) /Fo$@ -c stat_.c
1730
-
1731
-stat_.c : $(SRCDIR)\stat.c
1732
- translate$E $** > $@
1733
-
1734
-$(OX)\statrep$O : statrep_.c statrep.h
1735
- $(TCC) /Fo$@ -c statrep_.c
1736
-
1737
-statrep_.c : $(SRCDIR)\statrep.c
1738
- translate$E $** > $@
1739
-
1740
-$(OX)\style$O : style_.c style.h
1741
- $(TCC) /Fo$@ -c style_.c
1742
-
1743
-style_.c : $(SRCDIR)\style.c
1744
- translate$E $** > $@
1745
-
1746
-$(OX)\sync$O : sync_.c sync.h
1747
- $(TCC) /Fo$@ -c sync_.c
1748
-
1749
-sync_.c : $(SRCDIR)\sync.c
1750
- translate$E $** > $@
1751
-
1752
-$(OX)\tag$O : tag_.c tag.h
1753
- $(TCC) /Fo$@ -c tag_.c
1754
-
1755
-tag_.c : $(SRCDIR)\tag.c
1756
- translate$E $** > $@
1757
-
1758
-$(OX)\tar$O : tar_.c tar.h
1759
- $(TCC) /Fo$@ -c tar_.c
1760
-
1761
-tar_.c : $(SRCDIR)\tar.c
1762
- translate$E $** > $@
1763
-
1764
-$(OX)\terminal$O : terminal_.c terminal.h
1765
- $(TCC) /Fo$@ -c terminal_.c
1766
-
1767
-terminal_.c : $(SRCDIR)\terminal.c
1768
- translate$E $** > $@
1769
-
1770
-$(OX)\th_main$O : th_main_.c th_main.h
1771
- $(TCC) /Fo$@ -c th_main_.c
1772
-
1773
-th_main_.c : $(SRCDIR)\th_main.c
1774
- translate$E $** > $@
1775
-
1776
-$(OX)\timeline$O : timeline_.c timeline.h
1777
- $(TCC) /Fo$@ -c timeline_.c
1778
-
1779
-timeline_.c : $(SRCDIR)\timeline.c
1780
- translate$E $** > $@
1781
-
1782
-$(OX)\tkt$O : tkt_.c tkt.h
1783
- $(TCC) /Fo$@ -c tkt_.c
1784
-
1785
-tkt_.c : $(SRCDIR)\tkt.c
1786
- translate$E $** > $@
1787
-
1788
-$(OX)\tktsetup$O : tktsetup_.c tktsetup.h
1789
- $(TCC) /Fo$@ -c tktsetup_.c
1790
-
1791
-tktsetup_.c : $(SRCDIR)\tktsetup.c
1792
- translate$E $** > $@
1793
-
1794
-$(OX)\undo$O : undo_.c undo.h
1795
- $(TCC) /Fo$@ -c undo_.c
1796
-
1797
-undo_.c : $(SRCDIR)\undo.c
1798
- translate$E $** > $@
1799
-
1800
-$(OX)\unicode$O : unicode_.c unicode.h
1801
- $(TCC) /Fo$@ -c unicode_.c
1802
-
1803
-unicode_.c : $(SRCDIR)\unicode.c
1804
- translate$E $** > $@
1805
-
1806
-$(OX)\unversioned$O : unversioned_.c unversioned.h
1807
- $(TCC) /Fo$@ -c unversioned_.c
1808
-
1809
-unversioned_.c : $(SRCDIR)\unversioned.c
1810
- translate$E $** > $@
1811
-
1812
-$(OX)\update$O : update_.c update.h
1813
- $(TCC) /Fo$@ -c update_.c
1814
-
1815
-update_.c : $(SRCDIR)\update.c
1816
- translate$E $** > $@
1817
-
1818
-$(OX)\url$O : url_.c url.h
1819
- $(TCC) /Fo$@ -c url_.c
1820
-
1821
-url_.c : $(SRCDIR)\url.c
1822
- translate$E $** > $@
1823
-
1824
-$(OX)\user$O : user_.c user.h
1825
- $(TCC) /Fo$@ -c user_.c
1826
-
1827
-user_.c : $(SRCDIR)\user.c
1828
- translate$E $** > $@
1829
-
1830
-$(OX)\utf8$O : utf8_.c utf8.h
1831
- $(TCC) /Fo$@ -c utf8_.c
1832
-
1833
-utf8_.c : $(SRCDIR)\utf8.c
1834
- translate$E $** > $@
1835
-
1836
-$(OX)\util$O : util_.c util.h
1837
- $(TCC) /Fo$@ -c util_.c
1838
-
1839
-util_.c : $(SRCDIR)\util.c
1840
- translate$E $** > $@
1841
-
1842
-$(OX)\verify$O : verify_.c verify.h
1843
- $(TCC) /Fo$@ -c verify_.c
1844
-
1845
-verify_.c : $(SRCDIR)\verify.c
1846
- translate$E $** > $@
1847
-
1848
-$(OX)\vfile$O : vfile_.c vfile.h
1849
- $(TCC) /Fo$@ -c vfile_.c
1850
-
1851
-vfile_.c : $(SRCDIR)\vfile.c
1852
- translate$E $** > $@
1853
-
1854
-$(OX)\webmail$O : webmail_.c webmail.h
1855
- $(TCC) /Fo$@ -c webmail_.c
1856
-
1857
-webmail_.c : $(SRCDIR)\webmail.c
1858
- translate$E $** > $@
1859
-
1860
-$(OX)\wiki$O : wiki_.c wiki.h
1861
- $(TCC) /Fo$@ -c wiki_.c
1862
-
1863
-wiki_.c : $(SRCDIR)\wiki.c
1864
- translate$E $** > $@
1865
-
1866
-$(OX)\wikiformat$O : wikiformat_.c wikiformat.h
1867
- $(TCC) /Fo$@ -c wikiformat_.c
1868
-
1869
-wikiformat_.c : $(SRCDIR)\wikiformat.c
1870
- translate$E $** > $@
1871
-
1872
-$(OX)\winfile$O : winfile_.c winfile.h
1873
- $(TCC) /Fo$@ -c winfile_.c
1874
-
1875
-winfile_.c : $(SRCDIR)\winfile.c
1876
- translate$E $** > $@
1877
-
1878
-$(OX)\winhttp$O : winhttp_.c winhttp.h
1879
- $(TCC) /Fo$@ -c winhttp_.c
1880
-
1881
-winhttp_.c : $(SRCDIR)\winhttp.c
1882
- translate$E $** > $@
1883
-
1884
-$(OX)\wysiwyg$O : wysiwyg_.c wysiwyg.h
1885
- $(TCC) /Fo$@ -c wysiwyg_.c
1886
-
1887
-wysiwyg_.c : $(SRCDIR)\wysiwyg.c
1888
- translate$E $** > $@
1889
-
1890
-$(OX)\xfer$O : xfer_.c xfer.h
1891
- $(TCC) /Fo$@ -c xfer_.c
1892
-
1893
-xfer_.c : $(SRCDIR)\xfer.c
1894
- translate$E $** > $@
1895
-
1896
-$(OX)\xfersetup$O : xfersetup_.c xfersetup.h
1897
- $(TCC) /Fo$@ -c xfersetup_.c
1898
-
1899
-xfersetup_.c : $(SRCDIR)\xfersetup.c
1900
- translate$E $** > $@
1901
-
1902
-$(OX)\zip$O : zip_.c zip.h
1903
- $(TCC) /Fo$@ -c zip_.c
1904
-
1905
-zip_.c : $(SRCDIR)\zip.c
1906
- translate$E $** > $@
1907
-
1908
-fossil.res : $B\win\fossil.rc
1909
- $(RCC) /fo $@ $**
1910
-
1911
-headers: makeheaders$E page_index.h builtin_data.h VERSION.h
1912
- makeheaders$E add_.c:add.h \
1913
- alerts_.c:alerts.h \
1914
- allrepo_.c:allrepo.h \
1915
- attach_.c:attach.h \
1916
- backlink_.c:backlink.h \
1917
- backoffice_.c:backoffice.h \
1918
- bag_.c:bag.h \
1919
- bisect_.c:bisect.h \
1920
- blob_.c:blob.h \
1921
- branch_.c:branch.h \
1922
- browse_.c:browse.h \
1923
- builtin_.c:builtin.h \
1924
- bundle_.c:bundle.h \
1925
- cache_.c:cache.h \
1926
- capabilities_.c:capabilities.h \
1927
- captcha_.c:captcha.h \
1928
- cgi_.c:cgi.h \
1929
- checkin_.c:checkin.h \
1930
- checkout_.c:checkout.h \
1931
- clearsign_.c:clearsign.h \
1932
- clone_.c:clone.h \
1933
- comformat_.c:comformat.h \
1934
- configure_.c:configure.h \
1935
- content_.c:content.h \
1936
- cookies_.c:cookies.h \
1937
- db_.c:db.h \
1938
- delta_.c:delta.h \
1939
- deltacmd_.c:deltacmd.h \
1940
- deltafunc_.c:deltafunc.h \
1941
- descendants_.c:descendants.h \
1942
- diff_.c:diff.h \
1943
- diffcmd_.c:diffcmd.h \
1944
- dispatch_.c:dispatch.h \
1945
- doc_.c:doc.h \
1946
- encode_.c:encode.h \
1947
- etag_.c:etag.h \
1948
- event_.c:event.h \
1949
- export_.c:export.h \
1950
- extcgi_.c:extcgi.h \
1951
- file_.c:file.h \
1952
- fileedit_.c:fileedit.h \
1953
- finfo_.c:finfo.h \
1954
- foci_.c:foci.h \
1955
- forum_.c:forum.h \
1956
- fshell_.c:fshell.h \
1957
- fusefs_.c:fusefs.h \
1958
- fuzz_.c:fuzz.h \
1959
- glob_.c:glob.h \
1960
- graph_.c:graph.h \
1961
- gzip_.c:gzip.h \
1962
- hname_.c:hname.h \
1963
- http_.c:http.h \
1964
- http_socket_.c:http_socket.h \
1965
- http_ssl_.c:http_ssl.h \
1966
- http_transport_.c:http_transport.h \
1967
- import_.c:import.h \
1968
- info_.c:info.h \
1969
- json_.c:json.h \
1970
- json_artifact_.c:json_artifact.h \
1971
- json_branch_.c:json_branch.h \
1972
- json_config_.c:json_config.h \
1973
- json_diff_.c:json_diff.h \
1974
- json_dir_.c:json_dir.h \
1975
- json_finfo_.c:json_finfo.h \
1976
- json_login_.c:json_login.h \
1977
- json_query_.c:json_query.h \
1978
- json_report_.c:json_report.h \
1979
- json_status_.c:json_status.h \
1980
- json_tag_.c:json_tag.h \
1981
- json_timeline_.c:json_timeline.h \
1982
- json_user_.c:json_user.h \
1983
- json_wiki_.c:json_wiki.h \
1984
- leaf_.c:leaf.h \
1985
- loadctrl_.c:loadctrl.h \
1986
- login_.c:login.h \
1987
- lookslike_.c:lookslike.h \
1988
- main_.c:main.h \
1989
- manifest_.c:manifest.h \
1990
- markdown_.c:markdown.h \
1991
- markdown_html_.c:markdown_html.h \
1992
- md5_.c:md5.h \
1993
- merge_.c:merge.h \
1994
- merge3_.c:merge3.h \
1995
- moderate_.c:moderate.h \
1996
- name_.c:name.h \
1997
- path_.c:path.h \
1998
- piechart_.c:piechart.h \
1999
- pivot_.c:pivot.h \
2000
- popen_.c:popen.h \
2001
- pqueue_.c:pqueue.h \
2002
- printf_.c:printf.h \
2003
- publish_.c:publish.h \
2004
- purge_.c:purge.h \
2005
- rebuild_.c:rebuild.h \
2006
- regexp_.c:regexp.h \
2007
- repolist_.c:repolist.h \
2008
- report_.c:report.h \
2009
- rss_.c:rss.h \
2010
- schema_.c:schema.h \
2011
- search_.c:search.h \
2012
- security_audit_.c:security_audit.h \
2013
- setup_.c:setup.h \
2014
- setupuser_.c:setupuser.h \
2015
- sha1_.c:sha1.h \
2016
- sha1hard_.c:sha1hard.h \
2017
- sha3_.c:sha3.h \
2018
- shun_.c:shun.h \
2019
- sitemap_.c:sitemap.h \
2020
- skins_.c:skins.h \
2021
- smtp_.c:smtp.h \
2022
- sqlcmd_.c:sqlcmd.h \
2023
- stash_.c:stash.h \
2024
- stat_.c:stat.h \
2025
- statrep_.c:statrep.h \
2026
- style_.c:style.h \
2027
- sync_.c:sync.h \
2028
- tag_.c:tag.h \
2029
- tar_.c:tar.h \
2030
- terminal_.c:terminal.h \
2031
- th_main_.c:th_main.h \
2032
- timeline_.c:timeline.h \
2033
- tkt_.c:tkt.h \
2034
- tktsetup_.c:tktsetup.h \
2035
- undo_.c:undo.h \
2036
- unicode_.c:unicode.h \
2037
- unversioned_.c:unversioned.h \
2038
- update_.c:update.h \
2039
- url_.c:url.h \
2040
- user_.c:user.h \
2041
- utf8_.c:utf8.h \
2042
- util_.c:util.h \
2043
- verify_.c:verify.h \
2044
- vfile_.c:vfile.h \
2045
- webmail_.c:webmail.h \
2046
- wiki_.c:wiki.h \
2047
- wikiformat_.c:wikiformat.h \
2048
- winfile_.c:winfile.h \
2049
- winhttp_.c:winhttp.h \
2050
- wysiwyg_.c:wysiwyg.h \
2051
- xfer_.c:xfer.h \
2052
- xfersetup_.c:xfersetup.h \
2053
- zip_.c:zip.h \
2054
- $(SRCDIR)\sqlite3.h \
2055
- $(SRCDIR)\th.h \
2056
- VERSION.h \
2057
- $(SRCDIR)\cson_amalgamation.h
2058
- @copy /Y nul: headers
1015
+"$(OX)\shell$O" : "$(SQLITE3_SHELL_SRC)" "$(B)\win\Makefile.msc"
1016
+ $(TCC) /Fo$@ /Fd$(@D)\ $(SHELL_OPTIONS) $(SQLITE_OPTIONS) $(SHELL_CFLAGS) $(SEE_FLAGS) -c "$(SQLITE3_SHELL_SRC)"
1017
+
1018
+"$(OX)\sqlite3$O" : "$(SQLITE3_SRC)" "$(B)\win\Makefile.msc"
1019
+ $(TCC) /Fo$@ /Fd$(@D)\ -c $(SQLITE_OPTIONS) $(SQLITE_CFLAGS) $(SEE_FLAGS) "$(SQLITE3_SRC)"
1020
+
1021
+"$(OX)\th$O" : "$(SRCDIR)\th.c"
1022
+ $(TCC) /Fo$@ /Fd$(@D)\ -c $**
1023
+
1024
+"$(OX)\th_lang$O" : "$(SRCDIR)\th_lang.c"
1025
+ $(TCC) /Fo$@ /Fd$(@D)\ -c $**
1026
+
1027
+"$(OX)\th_tcl$O" : "$(SRCDIR)\th_tcl.c"
1028
+ $(TCC) /Fo$@ /Fd$(@D)\ -c $**
1029
+
1030
+"$(OX)\miniz$O" : "$(SRCDIR)\miniz.c"
1031
+ $(TCC) /Fo$@ /Fd$(@D)\ -c $(MINIZ_OPTIONS) $**
1032
+
1033
+"$(OX)\VERSION.h" : "$(OBJDIR)\mkversion$E" "$(B)\manifest.uuid" "$(B)\manifest" "$(B)\VERSION"
1034
+ $** > $@
1035
+
1036
+"$(OX)\cson_amalgamation$O" : "$(SRCDIR)\cson_amalgamation.c"
1037
+ $(TCC) /Fo$@ /Fd$(@D)\ -c $**
1038
+
1039
+"$(OX)\page_index.h": "$(OBJDIR)\mkindex$E" $(SRC)
1040
+ $** > $@
1041
+
1042
+"$(OX)\builtin_data.h": "$(OBJDIR)\mkbuiltin$E" "$(OX)\builtin_data.reslist"
1043
+ "$(OBJDIR)\mkbuiltin$E" --prefix "$(SRCDIR)/" --reslist "$(OX)\builtin_data.reslist" > $@
1044
+
1045
+cleanx:
1046
+ -del "$(OX)\*.obj" 2>NUL
1047
+ -del "$(OBJDIR)\*.obj" 2>NUL
1048
+ -del "$(OX)\*_.c" 2>NUL
1049
+ -del "$(OX)\*.h" 2>NUL
1050
+ -del "$(OX)\*.ilk" 2>NUL
1051
+ -del "$(OX)\*.map" 2>NUL
1052
+ -del "$(OX)\*.res" 2>NUL
1053
+ -del "$(OX)\*.reslist" 2>NUL
1054
+ -del "$(OX)\headers" 2>NUL
1055
+ -del "$(OX)\linkopts" 2>NUL
1056
+ -del "$(OX)\vc*.pdb" 2>NUL
1057
+
1058
+clean: cleanx
1059
+ -del "$(APPNAME)" 2>NUL
1060
+ -del "$(PDBNAME)" 2>NUL
1061
+ -del "$(OBJDIR)\translate$E" 2>NUL
1062
+ -del "$(OBJDIR)\translate$P" 2>NUL
1063
+ -del "$(OBJDIR)\mkindex$E" 2>NUL
1064
+ -del "$(OBJDIR)\mkindex$P" 2>NUL
1065
+ -del "$(OBJDIR)\makeheaders$E" 2>NUL
1066
+ -del "$(OBJDIR)\makeheaders$P" 2>NUL
1067
+ -del "$(OBJDIR)\mkversion$E" 2>NUL
1068
+ -del "$(OBJDIR)\mkversion$P" 2>NUL
1069
+ -del "$(OBJDIR)\mkcss$E" 2>NUL
1070
+ -del "$(OBJDIR)\mkcss$P" 2>NUL
1071
+ -del "$(OBJDIR)\codecheck1$E" 2>NUL
1072
+ -del "$(OBJDIR)\codecheck1$P" 2>NUL
1073
+ -del "$(OBJDIR)\mkbuiltin$E" 2>NUL
1074
+ -del "$(OBJDIR)\mkbuiltin$P" 2>NUL
1075
+
1076
+realclean: clean
1077
+
1078
+"$(OBJDIR)\json$O" : "$(SRCDIR)\json_detail.h"
1079
+"$(OBJDIR)\json_artifact$O" : "$(SRCDIR)\json_detail.h"
1080
+"$(OBJDIR)\json_branch$O" : "$(SRCDIR)\json_detail.h"
1081
+"$(OBJDIR)\json_config$O" : "$(SRCDIR)\json_detail.h"
1082
+"$(OBJDIR)\json_diff$O" : "$(SRCDIR)\json_detail.h"
1083
+"$(OBJDIR)\json_dir$O" : "$(SRCDIR)\json_detail.h"
1084
+"$(OBJDIR)\json_finfo$O" : "$(SRCDIR)\json_detail.h"
1085
+"$(OBJDIR)\json_login$O" : "$(SRCDIR)\json_detail.h"
1086
+"$(OBJDIR)\json_query$O" : "$(SRCDIR)\json_detail.h"
1087
+"$(OBJDIR)\json_report$O" : "$(SRCDIR)\json_detail.h"
1088
+"$(OBJDIR)\json_status$O" : "$(SRCDIR)\json_detail.h"
1089
+"$(OBJDIR)\json_tag$O" : "$(SRCDIR)\json_detail.h"
1090
+"$(OBJDIR)\json_timeline$O" : "$(SRCDIR)\json_detail.h"
1091
+"$(OBJDIR)\json_user$O" : "$(SRCDIR)\json_detail.h"
1092
+"$(OBJDIR)\json_wiki$O" : "$(SRCDIR)\json_detail.h"
1093
+
1094
+"$(OX)\builtin_data.reslist": $(EXTRA_FILES) "$(B)\win\Makefile.msc"
1095
+ echo "$(SRCDIR)\../skins/aht/details.txt" > $@
1096
+ echo "$(SRCDIR)\../skins/ardoise/css.txt" >> $@
1097
+ echo "$(SRCDIR)\../skins/ardoise/details.txt" >> $@
1098
+ echo "$(SRCDIR)\../skins/ardoise/footer.txt" >> $@
1099
+ echo "$(SRCDIR)\../skins/ardoise/header.txt" >> $@
1100
+ echo "$(SRCDIR)\../skins/black_and_white/css.txt" >> $@
1101
+ echo "$(SRCDIR)\../skins/black_and_white/details.txt" >> $@
1102
+ echo "$(SRCDIR)\../skins/black_and_white/footer.txt" >> $@
1103
+ echo "$(SRCDIR)\../skins/black_and_white/header.txt" >> $@
1104
+ echo "$(SRCDIR)\../skins/blitz/css.txt" >> $@
1105
+ echo "$(SRCDIR)\../skins/blitz/details.txt" >> $@
1106
+ echo "$(SRCDIR)\../skins/blitz/footer.txt" >> $@
1107
+ echo "$(SRCDIR)\../skins/blitz/header.txt" >> $@
1108
+ echo "$(SRCDIR)\../skins/blitz/ticket.txt" >> $@
1109
+ echo "$(SRCDIR)\../skins/blitz_no_logo/css.txt" >> $@
1110
+ echo "$(SRCDIR)\../skins/blitz_no_logo/details.txt" >> $@
1111
+ echo "$(SRCDIR)\../skins/blitz_no_logo/footer.txt" >> $@
1112
+ echo "$(SRCDIR)\../skins/blitz_no_logo/header.txt" >> $@
1113
+ echo "$(SRCDIR)\../skins/blitz_no_logo/ticket.txt" >> $@
1114
+ echo "$(SRCDIR)\../skins/bootstrap/css.txt" >> $@
1115
+ echo "$(SRCDIR)\../skins/bootstrap/details.txt" >> $@
1116
+ echo "$(SRCDIR)\../skins/bootstrap/footer.txt" >> $@
1117
+ echo "$(SRCDIR)\../skins/bootstrap/header.txt" >> $@
1118
+ echo "$(SRCDIR)\../skins/default/css.txt" >> $@
1119
+ echo "$(SRCDIR)\../skins/default/details.txt" >> $@
1120
+ echo "$(SRCDIR)\../skins/default/footer.txt" >> $@
1121
+ echo "$(SRCDIR)\../skins/default/header.txt" >> $@
1122
+ echo "$(SRCDIR)\../skins/default/js.txt" >> $@
1123
+ echo "$(SRCDIR)\../skins/eagle/css.txt" >> $@
1124
+ echo "$(SRCDIR)\../skins/eagle/details.txt" >> $@
1125
+ echo "$(SRCDIR)\../skins/eagle/footer.txt" >> $@
1126
+ echo "$(SRCDIR)\../skins/eagle/header.txt" >> $@
1127
+ echo "$(SRCDIR)\../skins/enhanced1/css.txt" >> $@
1128
+ echo "$(SRCDIR)\../skins/enhanced1/details.txt" >> $@
1129
+ echo "$(SRCDIR)\../skins/enhanced1/footer.txt" >> $@
1130
+ echo "$(SRCDIR)\../skins/enhanced1/header.txt" >> $@
1131
+ echo "$(SRCDIR)\../skins/khaki/css.txt" >> $@
1132
+ echo "$(SRCDIR)\../skins/khaki/details.txt" >> $@
1133
+ echo "$(SRCDIR)\../skins/khaki/footer.txt" >> $@
1134
+ echo "$(SRCDIR)\../skins/khaki/header.txt" >> $@
1135
+ echo "$(SRCDIR)\../skins/original/css.txt" >> $@
1136
+ echo "$(SRCDIR)\../skins/original/details.txt" >> $@
1137
+ echo "$(SRCDIR)\../skins/original/footer.txt" >> $@
1138
+ echo "$(SRCDIR)\../skins/original/header.txt" >> $@
1139
+ echo "$(SRCDIR)\../skins/plain_gray/css.txt" >> $@
1140
+ echo "$(SRCDIR)\../skins/plain_gray/details.txt" >> $@
1141
+ echo "$(SRCDIR)\../skins/plain_gray/footer.txt" >> $@
1142
+ echo "$(SRCDIR)\../skins/plain_gray/header.txt" >> $@
1143
+ echo "$(SRCDIR)\../skins/rounded1/css.txt" >> $@
1144
+ echo "$(SRCDIR)\../skins/rounded1/details.txt" >> $@
1145
+ echo "$(SRCDIR)\../skins/rounded1/footer.txt" >> $@
1146
+ echo "$(SRCDIR)\../skins/rounded1/header.txt" >> $@
1147
+ echo "$(SRCDIR)\../skins/xekri/css.txt" >> $@
1148
+ echo "$(SRCDIR)\../skins/xekri/details.txt" >> $@
1149
+ echo "$(SRCDIR)\../skins/xekri/footer.txt" >> $@
1150
+ echo "$(SRCDIR)\../skins/xekri/header.txt" >> $@
1151
+ echo "$(SRCDIR)\accordion.js" >> $@
1152
+ echo "$(SRCDIR)\ci_edit.js" >> $@
1153
+ echo "$(SRCDIR)\copybtn.js" >> $@
1154
+ echo "$(SRCDIR)\default.css" >> $@
1155
+ echo "$(SRCDIR)\diff.tcl" >> $@
1156
+ echo "$(SRCDIR)\forum.js" >> $@
1157
+ echo "$(SRCDIR)\fossil.bootstrap.js" >> $@
1158
+ echo "$(SRCDIR)\fossil.confirmer.js" >> $@
1159
+ echo "$(SRCDIR)\fossil.dom.js" >> $@
1160
+ echo "$(SRCDIR)\fossil.fetch.js" >> $@
1161
+ echo "$(SRCDIR)\fossil.page.fileedit.js" >> $@
1162
+ echo "$(SRCDIR)\fossil.storage.js" >> $@
1163
+ echo "$(SRCDIR)\fossil.tabs.js" >> $@
1164
+ echo "$(SRCDIR)\graph.js" >> $@
1165
+ echo "$(SRCDIR)\href.js" >> $@
1166
+ echo "$(SRCDIR)\login.js" >> $@
1167
+ echo "$(SRCDIR)\markdown.md" >> $@
1168
+ echo "$(SRCDIR)\menu.js" >> $@
1169
+ echo "$(SRCDIR)\sbsdiff.js" >> $@
1170
+ echo "$(SRCDIR)\scroll.js" >> $@
1171
+ echo "$(SRCDIR)\skin.js" >> $@
1172
+ echo "$(SRCDIR)\sorttable.js" >> $@
1173
+ echo "$(SRCDIR)\sounds/0.wav" >> $@
1174
+ echo "$(SRCDIR)\sounds/1.wav" >> $@
1175
+ echo "$(SRCDIR)\sounds/2.wav" >> $@
1176
+ echo "$(SRCDIR)\sounds/3.wav" >> $@
1177
+ echo "$(SRCDIR)\sounds/4.wav" >> $@
1178
+ echo "$(SRCDIR)\sounds/5.wav" >> $@
1179
+ echo "$(SRCDIR)\sounds/6.wav" >> $@
1180
+ echo "$(SRCDIR)\sounds/7.wav" >> $@
1181
+ echo "$(SRCDIR)\sounds/8.wav" >> $@
1182
+ echo "$(SRCDIR)\sounds/9.wav" >> $@
1183
+ echo "$(SRCDIR)\sounds/a.wav" >> $@
1184
+ echo "$(SRCDIR)\sounds/b.wav" >> $@
1185
+ echo "$(SRCDIR)\sounds/c.wav" >> $@
1186
+ echo "$(SRCDIR)\sounds/d.wav" >> $@
1187
+ echo "$(SRCDIR)\sounds/e.wav" >> $@
1188
+ echo "$(SRCDIR)\sounds/f.wav" >> $@
1189
+ echo "$(SRCDIR)\style.admin_log.css" >> $@
1190
+ echo "$(SRCDIR)\style.fileedit.css" >> $@
1191
+ echo "$(SRCDIR)\tree.js" >> $@
1192
+ echo "$(SRCDIR)\useredit.js" >> $@
1193
+ echo "$(SRCDIR)\wiki.wiki" >> $@
1194
+
1195
+"$(OX)\add$O" : "$(OX)\add_.c" "$(OX)\add.h"
1196
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\add_.c"
1197
+
1198
+"$(OX)\add_.c" : "$(SRCDIR)\add.c"
1199
+ "$(OBJDIR)\translate$E" $** > $@
1200
+
1201
+"$(OX)\ajax$O" : "$(OX)\ajax_.c" "$(OX)\ajax.h"
1202
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\ajax_.c"
1203
+
1204
+"$(OX)\ajax_.c" : "$(SRCDIR)\ajax.c"
1205
+ "$(OBJDIR)\translate$E" $** > $@
1206
+
1207
+"$(OX)\alerts$O" : "$(OX)\alerts_.c" "$(OX)\alerts.h"
1208
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\alerts_.c"
1209
+
1210
+"$(OX)\alerts_.c" : "$(SRCDIR)\alerts.c"
1211
+ "$(OBJDIR)\translate$E" $** > $@
1212
+
1213
+"$(OX)\allrepo$O" : "$(OX)\allrepo_.c" "$(OX)\allrepo.h"
1214
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\allrepo_.c"
1215
+
1216
+"$(OX)\allrepo_.c" : "$(SRCDIR)\allrepo.c"
1217
+ "$(OBJDIR)\translate$E" $** > $@
1218
+
1219
+"$(OX)\attach$O" : "$(OX)\attach_.c" "$(OX)\attach.h"
1220
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\attach_.c"
1221
+
1222
+"$(OX)\attach_.c" : "$(SRCDIR)\attach.c"
1223
+ "$(OBJDIR)\translate$E" $** > $@
1224
+
1225
+"$(OX)\backlink$O" : "$(OX)\backlink_.c" "$(OX)\backlink.h"
1226
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\backlink_.c"
1227
+
1228
+"$(OX)\backlink_.c" : "$(SRCDIR)\backlink.c"
1229
+ "$(OBJDIR)\translate$E" $** > $@
1230
+
1231
+"$(OX)\backoffice$O" : "$(OX)\backoffice_.c" "$(OX)\backoffice.h"
1232
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\backoffice_.c"
1233
+
1234
+"$(OX)\backoffice_.c" : "$(SRCDIR)\backoffice.c"
1235
+ "$(OBJDIR)\translate$E" $** > $@
1236
+
1237
+"$(OX)\bag$O" : "$(OX)\bag_.c" "$(OX)\bag.h"
1238
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\bag_.c"
1239
+
1240
+"$(OX)\bag_.c" : "$(SRCDIR)\bag.c"
1241
+ "$(OBJDIR)\translate$E" $** > $@
1242
+
1243
+"$(OX)\bisect$O" : "$(OX)\bisect_.c" "$(OX)\bisect.h"
1244
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\bisect_.c"
1245
+
1246
+"$(OX)\bisect_.c" : "$(SRCDIR)\bisect.c"
1247
+ "$(OBJDIR)\translate$E" $** > $@
1248
+
1249
+"$(OX)\blob$O" : "$(OX)\blob_.c" "$(OX)\blob.h"
1250
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\blob_.c"
1251
+
1252
+"$(OX)\blob_.c" : "$(SRCDIR)\blob.c"
1253
+ "$(OBJDIR)\translate$E" $** > $@
1254
+
1255
+"$(OX)\branch$O" : "$(OX)\branch_.c" "$(OX)\branch.h"
1256
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\branch_.c"
1257
+
1258
+"$(OX)\branch_.c" : "$(SRCDIR)\branch.c"
1259
+ "$(OBJDIR)\translate$E" $** > $@
1260
+
1261
+"$(OX)\browse$O" : "$(OX)\browse_.c" "$(OX)\browse.h"
1262
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\browse_.c"
1263
+
1264
+"$(OX)\browse_.c" : "$(SRCDIR)\browse.c"
1265
+ "$(OBJDIR)\translate$E" $** > $@
1266
+
1267
+"$(OX)\builtin$O" : "$(OX)\builtin_.c" "$(OX)\builtin.h"
1268
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\builtin_.c"
1269
+
1270
+"$(OX)\builtin_.c" : "$(SRCDIR)\builtin.c"
1271
+ "$(OBJDIR)\translate$E" $** > $@
1272
+
1273
+"$(OX)\bundle$O" : "$(OX)\bundle_.c" "$(OX)\bundle.h"
1274
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\bundle_.c"
1275
+
1276
+"$(OX)\bundle_.c" : "$(SRCDIR)\bundle.c"
1277
+ "$(OBJDIR)\translate$E" $** > $@
1278
+
1279
+"$(OX)\cache$O" : "$(OX)\cache_.c" "$(OX)\cache.h"
1280
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\cache_.c"
1281
+
1282
+"$(OX)\cache_.c" : "$(SRCDIR)\cache.c"
1283
+ "$(OBJDIR)\translate$E" $** > $@
1284
+
1285
+"$(OX)\capabilities$O" : "$(OX)\capabilities_.c" "$(OX)\capabilities.h"
1286
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\capabilities_.c"
1287
+
1288
+"$(OX)\capabilities_.c" : "$(SRCDIR)\capabilities.c"
1289
+ "$(OBJDIR)\translate$E" $** > $@
1290
+
1291
+"$(OX)\captcha$O" : "$(OX)\captcha_.c" "$(OX)\captcha.h"
1292
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\captcha_.c"
1293
+
1294
+"$(OX)\captcha_.c" : "$(SRCDIR)\captcha.c"
1295
+ "$(OBJDIR)\translate$E" $** > $@
1296
+
1297
+"$(OX)\cgi$O" : "$(OX)\cgi_.c" "$(OX)\cgi.h"
1298
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\cgi_.c"
1299
+
1300
+"$(OX)\cgi_.c" : "$(SRCDIR)\cgi.c"
1301
+ "$(OBJDIR)\translate$E" $** > $@
1302
+
1303
+"$(OX)\checkin$O" : "$(OX)\checkin_.c" "$(OX)\checkin.h"
1304
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\checkin_.c"
1305
+
1306
+"$(OX)\checkin_.c" : "$(SRCDIR)\checkin.c"
1307
+ "$(OBJDIR)\translate$E" $** > $@
1308
+
1309
+"$(OX)\checkout$O" : "$(OX)\checkout_.c" "$(OX)\checkout.h"
1310
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\checkout_.c"
1311
+
1312
+"$(OX)\checkout_.c" : "$(SRCDIR)\checkout.c"
1313
+ "$(OBJDIR)\translate$E" $** > $@
1314
+
1315
+"$(OX)\clearsign$O" : "$(OX)\clearsign_.c" "$(OX)\clearsign.h"
1316
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\clearsign_.c"
1317
+
1318
+"$(OX)\clearsign_.c" : "$(SRCDIR)\clearsign.c"
1319
+ "$(OBJDIR)\translate$E" $** > $@
1320
+
1321
+"$(OX)\clone$O" : "$(OX)\clone_.c" "$(OX)\clone.h"
1322
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\clone_.c"
1323
+
1324
+"$(OX)\clone_.c" : "$(SRCDIR)\clone.c"
1325
+ "$(OBJDIR)\translate$E" $** > $@
1326
+
1327
+"$(OX)\comformat$O" : "$(OX)\comformat_.c" "$(OX)\comformat.h"
1328
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\comformat_.c"
1329
+
1330
+"$(OX)\comformat_.c" : "$(SRCDIR)\comformat.c"
1331
+ "$(OBJDIR)\translate$E" $** > $@
1332
+
1333
+"$(OX)\configure$O" : "$(OX)\configure_.c" "$(OX)\configure.h"
1334
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\configure_.c"
1335
+
1336
+"$(OX)\configure_.c" : "$(SRCDIR)\configure.c"
1337
+ "$(OBJDIR)\translate$E" $** > $@
1338
+
1339
+"$(OX)\content$O" : "$(OX)\content_.c" "$(OX)\content.h"
1340
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\content_.c"
1341
+
1342
+"$(OX)\content_.c" : "$(SRCDIR)\content.c"
1343
+ "$(OBJDIR)\translate$E" $** > $@
1344
+
1345
+"$(OX)\cookies$O" : "$(OX)\cookies_.c" "$(OX)\cookies.h"
1346
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\cookies_.c"
1347
+
1348
+"$(OX)\cookies_.c" : "$(SRCDIR)\cookies.c"
1349
+ "$(OBJDIR)\translate$E" $** > $@
1350
+
1351
+"$(OX)\db$O" : "$(OX)\db_.c" "$(OX)\db.h"
1352
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\db_.c"
1353
+
1354
+"$(OX)\db_.c" : "$(SRCDIR)\db.c"
1355
+ "$(OBJDIR)\translate$E" $** > $@
1356
+
1357
+"$(OX)\delta$O" : "$(OX)\delta_.c" "$(OX)\delta.h"
1358
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\delta_.c"
1359
+
1360
+"$(OX)\delta_.c" : "$(SRCDIR)\delta.c"
1361
+ "$(OBJDIR)\translate$E" $** > $@
1362
+
1363
+"$(OX)\deltacmd$O" : "$(OX)\deltacmd_.c" "$(OX)\deltacmd.h"
1364
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\deltacmd_.c"
1365
+
1366
+"$(OX)\deltacmd_.c" : "$(SRCDIR)\deltacmd.c"
1367
+ "$(OBJDIR)\translate$E" $** > $@
1368
+
1369
+"$(OX)\deltafunc$O" : "$(OX)\deltafunc_.c" "$(OX)\deltafunc.h"
1370
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\deltafunc_.c"
1371
+
1372
+"$(OX)\deltafunc_.c" : "$(SRCDIR)\deltafunc.c"
1373
+ "$(OBJDIR)\translate$E" $** > $@
1374
+
1375
+"$(OX)\descendants$O" : "$(OX)\descendants_.c" "$(OX)\descendants.h"
1376
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\descendants_.c"
1377
+
1378
+"$(OX)\descendants_.c" : "$(SRCDIR)\descendants.c"
1379
+ "$(OBJDIR)\translate$E" $** > $@
1380
+
1381
+"$(OX)\diff$O" : "$(OX)\diff_.c" "$(OX)\diff.h"
1382
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\diff_.c"
1383
+
1384
+"$(OX)\diff_.c" : "$(SRCDIR)\diff.c"
1385
+ "$(OBJDIR)\translate$E" $** > $@
1386
+
1387
+"$(OX)\diffcmd$O" : "$(OX)\diffcmd_.c" "$(OX)\diffcmd.h"
1388
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\diffcmd_.c"
1389
+
1390
+"$(OX)\diffcmd_.c" : "$(SRCDIR)\diffcmd.c"
1391
+ "$(OBJDIR)\translate$E" $** > $@
1392
+
1393
+"$(OX)\dispatch$O" : "$(OX)\dispatch_.c" "$(OX)\dispatch.h"
1394
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\dispatch_.c"
1395
+
1396
+"$(OX)\dispatch_.c" : "$(SRCDIR)\dispatch.c"
1397
+ "$(OBJDIR)\translate$E" $** > $@
1398
+
1399
+"$(OX)\doc$O" : "$(OX)\doc_.c" "$(OX)\doc.h"
1400
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\doc_.c"
1401
+
1402
+"$(OX)\doc_.c" : "$(SRCDIR)\doc.c"
1403
+ "$(OBJDIR)\translate$E" $** > $@
1404
+
1405
+"$(OX)\encode$O" : "$(OX)\encode_.c" "$(OX)\encode.h"
1406
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\encode_.c"
1407
+
1408
+"$(OX)\encode_.c" : "$(SRCDIR)\encode.c"
1409
+ "$(OBJDIR)\translate$E" $** > $@
1410
+
1411
+"$(OX)\etag$O" : "$(OX)\etag_.c" "$(OX)\etag.h"
1412
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\etag_.c"
1413
+
1414
+"$(OX)\etag_.c" : "$(SRCDIR)\etag.c"
1415
+ "$(OBJDIR)\translate$E" $** > $@
1416
+
1417
+"$(OX)\event$O" : "$(OX)\event_.c" "$(OX)\event.h"
1418
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\event_.c"
1419
+
1420
+"$(OX)\event_.c" : "$(SRCDIR)\event.c"
1421
+ "$(OBJDIR)\translate$E" $** > $@
1422
+
1423
+"$(OX)\export$O" : "$(OX)\export_.c" "$(OX)\export.h"
1424
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\export_.c"
1425
+
1426
+"$(OX)\export_.c" : "$(SRCDIR)\export.c"
1427
+ "$(OBJDIR)\translate$E" $** > $@
1428
+
1429
+"$(OX)\extcgi$O" : "$(OX)\extcgi_.c" "$(OX)\extcgi.h"
1430
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\extcgi_.c"
1431
+
1432
+"$(OX)\extcgi_.c" : "$(SRCDIR)\extcgi.c"
1433
+ "$(OBJDIR)\translate$E" $** > $@
1434
+
1435
+"$(OX)\file$O" : "$(OX)\file_.c" "$(OX)\file.h"
1436
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\file_.c"
1437
+
1438
+"$(OX)\file_.c" : "$(SRCDIR)\file.c"
1439
+ "$(OBJDIR)\translate$E" $** > $@
1440
+
1441
+"$(OX)\fileedit$O" : "$(OX)\fileedit_.c" "$(OX)\fileedit.h"
1442
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\fileedit_.c"
1443
+
1444
+"$(OX)\fileedit_.c" : "$(SRCDIR)\fileedit.c"
1445
+ "$(OBJDIR)\translate$E" $** > $@
1446
+
1447
+"$(OX)\finfo$O" : "$(OX)\finfo_.c" "$(OX)\finfo.h"
1448
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\finfo_.c"
1449
+
1450
+"$(OX)\finfo_.c" : "$(SRCDIR)\finfo.c"
1451
+ "$(OBJDIR)\translate$E" $** > $@
1452
+
1453
+"$(OX)\foci$O" : "$(OX)\foci_.c" "$(OX)\foci.h"
1454
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\foci_.c"
1455
+
1456
+"$(OX)\foci_.c" : "$(SRCDIR)\foci.c"
1457
+ "$(OBJDIR)\translate$E" $** > $@
1458
+
1459
+"$(OX)\forum$O" : "$(OX)\forum_.c" "$(OX)\forum.h"
1460
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\forum_.c"
1461
+
1462
+"$(OX)\forum_.c" : "$(SRCDIR)\forum.c"
1463
+ "$(OBJDIR)\translate$E" $** > $@
1464
+
1465
+"$(OX)\fshell$O" : "$(OX)\fshell_.c" "$(OX)\fshell.h"
1466
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\fshell_.c"
1467
+
1468
+"$(OX)\fshell_.c" : "$(SRCDIR)\fshell.c"
1469
+ "$(OBJDIR)\translate$E" $** > $@
1470
+
1471
+"$(OX)\fusefs$O" : "$(OX)\fusefs_.c" "$(OX)\fusefs.h"
1472
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\fusefs_.c"
1473
+
1474
+"$(OX)\fusefs_.c" : "$(SRCDIR)\fusefs.c"
1475
+ "$(OBJDIR)\translate$E" $** > $@
1476
+
1477
+"$(OX)\fuzz$O" : "$(OX)\fuzz_.c" "$(OX)\fuzz.h"
1478
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\fuzz_.c"
1479
+
1480
+"$(OX)\fuzz_.c" : "$(SRCDIR)\fuzz.c"
1481
+ "$(OBJDIR)\translate$E" $** > $@
1482
+
1483
+"$(OX)\glob$O" : "$(OX)\glob_.c" "$(OX)\glob.h"
1484
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\glob_.c"
1485
+
1486
+"$(OX)\glob_.c" : "$(SRCDIR)\glob.c"
1487
+ "$(OBJDIR)\translate$E" $** > $@
1488
+
1489
+"$(OX)\graph$O" : "$(OX)\graph_.c" "$(OX)\graph.h"
1490
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\graph_.c"
1491
+
1492
+"$(OX)\graph_.c" : "$(SRCDIR)\graph.c"
1493
+ "$(OBJDIR)\translate$E" $** > $@
1494
+
1495
+"$(OX)\gzip$O" : "$(OX)\gzip_.c" "$(OX)\gzip.h"
1496
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\gzip_.c"
1497
+
1498
+"$(OX)\gzip_.c" : "$(SRCDIR)\gzip.c"
1499
+ "$(OBJDIR)\translate$E" $** > $@
1500
+
1501
+"$(OX)\hname$O" : "$(OX)\hname_.c" "$(OX)\hname.h"
1502
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\hname_.c"
1503
+
1504
+"$(OX)\hname_.c" : "$(SRCDIR)\hname.c"
1505
+ "$(OBJDIR)\translate$E" $** > $@
1506
+
1507
+"$(OX)\http$O" : "$(OX)\http_.c" "$(OX)\http.h"
1508
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\http_.c"
1509
+
1510
+"$(OX)\http_.c" : "$(SRCDIR)\http.c"
1511
+ "$(OBJDIR)\translate$E" $** > $@
1512
+
1513
+"$(OX)\http_socket$O" : "$(OX)\http_socket_.c" "$(OX)\http_socket.h"
1514
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\http_socket_.c"
1515
+
1516
+"$(OX)\http_socket_.c" : "$(SRCDIR)\http_socket.c"
1517
+ "$(OBJDIR)\translate$E" $** > $@
1518
+
1519
+"$(OX)\http_ssl$O" : "$(OX)\http_ssl_.c" "$(OX)\http_ssl.h"
1520
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\http_ssl_.c"
1521
+
1522
+"$(OX)\http_ssl_.c" : "$(SRCDIR)\http_ssl.c"
1523
+ "$(OBJDIR)\translate$E" $** > $@
1524
+
1525
+"$(OX)\http_transport$O" : "$(OX)\http_transport_.c" "$(OX)\http_transport.h"
1526
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\http_transport_.c"
1527
+
1528
+"$(OX)\http_transport_.c" : "$(SRCDIR)\http_transport.c"
1529
+ "$(OBJDIR)\translate$E" $** > $@
1530
+
1531
+"$(OX)\import$O" : "$(OX)\import_.c" "$(OX)\import.h"
1532
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\import_.c"
1533
+
1534
+"$(OX)\import_.c" : "$(SRCDIR)\import.c"
1535
+ "$(OBJDIR)\translate$E" $** > $@
1536
+
1537
+"$(OX)\info$O" : "$(OX)\info_.c" "$(OX)\info.h"
1538
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\info_.c"
1539
+
1540
+"$(OX)\info_.c" : "$(SRCDIR)\info.c"
1541
+ "$(OBJDIR)\translate$E" $** > $@
1542
+
1543
+"$(OX)\json$O" : "$(OX)\json_.c" "$(OX)\json.h"
1544
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_.c"
1545
+
1546
+"$(OX)\json_.c" : "$(SRCDIR)\json.c"
1547
+ "$(OBJDIR)\translate$E" $** > $@
1548
+
1549
+"$(OX)\json_artifact$O" : "$(OX)\json_artifact_.c" "$(OX)\json_artifact.h"
1550
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_artifact_.c"
1551
+
1552
+"$(OX)\json_artifact_.c" : "$(SRCDIR)\json_artifact.c"
1553
+ "$(OBJDIR)\translate$E" $** > $@
1554
+
1555
+"$(OX)\json_branch$O" : "$(OX)\json_branch_.c" "$(OX)\json_branch.h"
1556
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_branch_.c"
1557
+
1558
+"$(OX)\json_branch_.c" : "$(SRCDIR)\json_branch.c"
1559
+ "$(OBJDIR)\translate$E" $** > $@
1560
+
1561
+"$(OX)\json_config$O" : "$(OX)\json_config_.c" "$(OX)\json_config.h"
1562
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_config_.c"
1563
+
1564
+"$(OX)\json_config_.c" : "$(SRCDIR)\json_config.c"
1565
+ "$(OBJDIR)\translate$E" $** > $@
1566
+
1567
+"$(OX)\json_diff$O" : "$(OX)\json_diff_.c" "$(OX)\json_diff.h"
1568
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_diff_.c"
1569
+
1570
+"$(OX)\json_diff_.c" : "$(SRCDIR)\json_diff.c"
1571
+ "$(OBJDIR)\translate$E" $** > $@
1572
+
1573
+"$(OX)\json_dir$O" : "$(OX)\json_dir_.c" "$(OX)\json_dir.h"
1574
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_dir_.c"
1575
+
1576
+"$(OX)\json_dir_.c" : "$(SRCDIR)\json_dir.c"
1577
+ "$(OBJDIR)\translate$E" $** > $@
1578
+
1579
+"$(OX)\json_finfo$O" : "$(OX)\json_finfo_.c" "$(OX)\json_finfo.h"
1580
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_finfo_.c"
1581
+
1582
+"$(OX)\json_finfo_.c" : "$(SRCDIR)\json_finfo.c"
1583
+ "$(OBJDIR)\translate$E" $** > $@
1584
+
1585
+"$(OX)\json_login$O" : "$(OX)\json_login_.c" "$(OX)\json_login.h"
1586
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_login_.c"
1587
+
1588
+"$(OX)\json_login_.c" : "$(SRCDIR)\json_login.c"
1589
+ "$(OBJDIR)\translate$E" $** > $@
1590
+
1591
+"$(OX)\json_query$O" : "$(OX)\json_query_.c" "$(OX)\json_query.h"
1592
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_query_.c"
1593
+
1594
+"$(OX)\json_query_.c" : "$(SRCDIR)\json_query.c"
1595
+ "$(OBJDIR)\translate$E" $** > $@
1596
+
1597
+"$(OX)\json_report$O" : "$(OX)\json_report_.c" "$(OX)\json_report.h"
1598
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_report_.c"
1599
+
1600
+"$(OX)\json_report_.c" : "$(SRCDIR)\json_report.c"
1601
+ "$(OBJDIR)\translate$E" $** > $@
1602
+
1603
+"$(OX)\json_status$O" : "$(OX)\json_status_.c" "$(OX)\json_status.h"
1604
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_status_.c"
1605
+
1606
+"$(OX)\json_status_.c" : "$(SRCDIR)\json_status.c"
1607
+ "$(OBJDIR)\translate$E" $** > $@
1608
+
1609
+"$(OX)\json_tag$O" : "$(OX)\json_tag_.c" "$(OX)\json_tag.h"
1610
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_tag_.c"
1611
+
1612
+"$(OX)\json_tag_.c" : "$(SRCDIR)\json_tag.c"
1613
+ "$(OBJDIR)\translate$E" $** > $@
1614
+
1615
+"$(OX)\json_timeline$O" : "$(OX)\json_timeline_.c" "$(OX)\json_timeline.h"
1616
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_timeline_.c"
1617
+
1618
+"$(OX)\json_timeline_.c" : "$(SRCDIR)\json_timeline.c"
1619
+ "$(OBJDIR)\translate$E" $** > $@
1620
+
1621
+"$(OX)\json_user$O" : "$(OX)\json_user_.c" "$(OX)\json_user.h"
1622
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_user_.c"
1623
+
1624
+"$(OX)\json_user_.c" : "$(SRCDIR)\json_user.c"
1625
+ "$(OBJDIR)\translate$E" $** > $@
1626
+
1627
+"$(OX)\json_wiki$O" : "$(OX)\json_wiki_.c" "$(OX)\json_wiki.h"
1628
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_wiki_.c"
1629
+
1630
+"$(OX)\json_wiki_.c" : "$(SRCDIR)\json_wiki.c"
1631
+ "$(OBJDIR)\translate$E" $** > $@
1632
+
1633
+"$(OX)\leaf$O" : "$(OX)\leaf_.c" "$(OX)\leaf.h"
1634
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\leaf_.c"
1635
+
1636
+"$(OX)\leaf_.c" : "$(SRCDIR)\leaf.c"
1637
+ "$(OBJDIR)\translate$E" $** > $@
1638
+
1639
+"$(OX)\loadctrl$O" : "$(OX)\loadctrl_.c" "$(OX)\loadctrl.h"
1640
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\loadctrl_.c"
1641
+
1642
+"$(OX)\loadctrl_.c" : "$(SRCDIR)\loadctrl.c"
1643
+ "$(OBJDIR)\translate$E" $** > $@
1644
+
1645
+"$(OX)\login$O" : "$(OX)\login_.c" "$(OX)\login.h"
1646
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\login_.c"
1647
+
1648
+"$(OX)\login_.c" : "$(SRCDIR)\login.c"
1649
+ "$(OBJDIR)\translate$E" $** > $@
1650
+
1651
+"$(OX)\lookslike$O" : "$(OX)\lookslike_.c" "$(OX)\lookslike.h"
1652
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\lookslike_.c"
1653
+
1654
+"$(OX)\lookslike_.c" : "$(SRCDIR)\lookslike.c"
1655
+ "$(OBJDIR)\translate$E" $** > $@
1656
+
1657
+"$(OX)\main$O" : "$(OX)\main_.c" "$(OX)\main.h"
1658
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\main_.c"
1659
+
1660
+"$(OX)\main_.c" : "$(SRCDIR)\main.c"
1661
+ "$(OBJDIR)\translate$E" $** > $@
1662
+
1663
+"$(OX)\manifest$O" : "$(OX)\manifest_.c" "$(OX)\manifest.h"
1664
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\manifest_.c"
1665
+
1666
+"$(OX)\manifest_.c" : "$(SRCDIR)\manifest.c"
1667
+ "$(OBJDIR)\translate$E" $** > $@
1668
+
1669
+"$(OX)\markdown$O" : "$(OX)\markdown_.c" "$(OX)\markdown.h"
1670
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\markdown_.c"
1671
+
1672
+"$(OX)\markdown_.c" : "$(SRCDIR)\markdown.c"
1673
+ "$(OBJDIR)\translate$E" $** > $@
1674
+
1675
+"$(OX)\markdown_html$O" : "$(OX)\markdown_html_.c" "$(OX)\markdown_html.h"
1676
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\markdown_html_.c"
1677
+
1678
+"$(OX)\markdown_html_.c" : "$(SRCDIR)\markdown_html.c"
1679
+ "$(OBJDIR)\translate$E" $** > $@
1680
+
1681
+"$(OX)\md5$O" : "$(OX)\md5_.c" "$(OX)\md5.h"
1682
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\md5_.c"
1683
+
1684
+"$(OX)\md5_.c" : "$(SRCDIR)\md5.c"
1685
+ "$(OBJDIR)\translate$E" $** > $@
1686
+
1687
+"$(OX)\merge$O" : "$(OX)\merge_.c" "$(OX)\merge.h"
1688
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\merge_.c"
1689
+
1690
+"$(OX)\merge_.c" : "$(SRCDIR)\merge.c"
1691
+ "$(OBJDIR)\translate$E" $** > $@
1692
+
1693
+"$(OX)\merge3$O" : "$(OX)\merge3_.c" "$(OX)\merge3.h"
1694
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\merge3_.c"
1695
+
1696
+"$(OX)\merge3_.c" : "$(SRCDIR)\merge3.c"
1697
+ "$(OBJDIR)\translate$E" $** > $@
1698
+
1699
+"$(OX)\moderate$O" : "$(OX)\moderate_.c" "$(OX)\moderate.h"
1700
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\moderate_.c"
1701
+
1702
+"$(OX)\moderate_.c" : "$(SRCDIR)\moderate.c"
1703
+ "$(OBJDIR)\translate$E" $** > $@
1704
+
1705
+"$(OX)\name$O" : "$(OX)\name_.c" "$(OX)\name.h"
1706
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\name_.c"
1707
+
1708
+"$(OX)\name_.c" : "$(SRCDIR)\name.c"
1709
+ "$(OBJDIR)\translate$E" $** > $@
1710
+
1711
+"$(OX)\path$O" : "$(OX)\path_.c" "$(OX)\path.h"
1712
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\path_.c"
1713
+
1714
+"$(OX)\path_.c" : "$(SRCDIR)\path.c"
1715
+ "$(OBJDIR)\translate$E" $** > $@
1716
+
1717
+"$(OX)\piechart$O" : "$(OX)\piechart_.c" "$(OX)\piechart.h"
1718
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\piechart_.c"
1719
+
1720
+"$(OX)\piechart_.c" : "$(SRCDIR)\piechart.c"
1721
+ "$(OBJDIR)\translate$E" $** > $@
1722
+
1723
+"$(OX)\pivot$O" : "$(OX)\pivot_.c" "$(OX)\pivot.h"
1724
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\pivot_.c"
1725
+
1726
+"$(OX)\pivot_.c" : "$(SRCDIR)\pivot.c"
1727
+ "$(OBJDIR)\translate$E" $** > $@
1728
+
1729
+"$(OX)\popen$O" : "$(OX)\popen_.c" "$(OX)\popen.h"
1730
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\popen_.c"
1731
+
1732
+"$(OX)\popen_.c" : "$(SRCDIR)\popen.c"
1733
+ "$(OBJDIR)\translate$E" $** > $@
1734
+
1735
+"$(OX)\pqueue$O" : "$(OX)\pqueue_.c" "$(OX)\pqueue.h"
1736
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\pqueue_.c"
1737
+
1738
+"$(OX)\pqueue_.c" : "$(SRCDIR)\pqueue.c"
1739
+ "$(OBJDIR)\translate$E" $** > $@
1740
+
1741
+"$(OX)\printf$O" : "$(OX)\printf_.c" "$(OX)\printf.h"
1742
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\printf_.c"
1743
+
1744
+"$(OX)\printf_.c" : "$(SRCDIR)\printf.c"
1745
+ "$(OBJDIR)\translate$E" $** > $@
1746
+
1747
+"$(OX)\publish$O" : "$(OX)\publish_.c" "$(OX)\publish.h"
1748
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\publish_.c"
1749
+
1750
+"$(OX)\publish_.c" : "$(SRCDIR)\publish.c"
1751
+ "$(OBJDIR)\translate$E" $** > $@
1752
+
1753
+"$(OX)\purge$O" : "$(OX)\purge_.c" "$(OX)\purge.h"
1754
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\purge_.c"
1755
+
1756
+"$(OX)\purge_.c" : "$(SRCDIR)\purge.c"
1757
+ "$(OBJDIR)\translate$E" $** > $@
1758
+
1759
+"$(OX)\rebuild$O" : "$(OX)\rebuild_.c" "$(OX)\rebuild.h"
1760
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\rebuild_.c"
1761
+
1762
+"$(OX)\rebuild_.c" : "$(SRCDIR)\rebuild.c"
1763
+ "$(OBJDIR)\translate$E" $** > $@
1764
+
1765
+"$(OX)\regexp$O" : "$(OX)\regexp_.c" "$(OX)\regexp.h"
1766
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\regexp_.c"
1767
+
1768
+"$(OX)\regexp_.c" : "$(SRCDIR)\regexp.c"
1769
+ "$(OBJDIR)\translate$E" $** > $@
1770
+
1771
+"$(OX)\repolist$O" : "$(OX)\repolist_.c" "$(OX)\repolist.h"
1772
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\repolist_.c"
1773
+
1774
+"$(OX)\repolist_.c" : "$(SRCDIR)\repolist.c"
1775
+ "$(OBJDIR)\translate$E" $** > $@
1776
+
1777
+"$(OX)\report$O" : "$(OX)\report_.c" "$(OX)\report.h"
1778
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\report_.c"
1779
+
1780
+"$(OX)\report_.c" : "$(SRCDIR)\report.c"
1781
+ "$(OBJDIR)\translate$E" $** > $@
1782
+
1783
+"$(OX)\rss$O" : "$(OX)\rss_.c" "$(OX)\rss.h"
1784
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\rss_.c"
1785
+
1786
+"$(OX)\rss_.c" : "$(SRCDIR)\rss.c"
1787
+ "$(OBJDIR)\translate$E" $** > $@
1788
+
1789
+"$(OX)\schema$O" : "$(OX)\schema_.c" "$(OX)\schema.h"
1790
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\schema_.c"
1791
+
1792
+"$(OX)\schema_.c" : "$(SRCDIR)\schema.c"
1793
+ "$(OBJDIR)\translate$E" $** > $@
1794
+
1795
+"$(OX)\search$O" : "$(OX)\search_.c" "$(OX)\search.h"
1796
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\search_.c"
1797
+
1798
+"$(OX)\search_.c" : "$(SRCDIR)\search.c"
1799
+ "$(OBJDIR)\translate$E" $** > $@
1800
+
1801
+"$(OX)\security_audit$O" : "$(OX)\security_audit_.c" "$(OX)\security_audit.h"
1802
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\security_audit_.c"
1803
+
1804
+"$(OX)\security_audit_.c" : "$(SRCDIR)\security_audit.c"
1805
+ "$(OBJDIR)\translate$E" $** > $@
1806
+
1807
+"$(OX)\setup$O" : "$(OX)\setup_.c" "$(OX)\setup.h"
1808
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\setup_.c"
1809
+
1810
+"$(OX)\setup_.c" : "$(SRCDIR)\setup.c"
1811
+ "$(OBJDIR)\translate$E" $** > $@
1812
+
1813
+"$(OX)\setupuser$O" : "$(OX)\setupuser_.c" "$(OX)\setupuser.h"
1814
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\setupuser_.c"
1815
+
1816
+"$(OX)\setupuser_.c" : "$(SRCDIR)\setupuser.c"
1817
+ "$(OBJDIR)\translate$E" $** > $@
1818
+
1819
+"$(OX)\sha1$O" : "$(OX)\sha1_.c" "$(OX)\sha1.h"
1820
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\sha1_.c"
1821
+
1822
+"$(OX)\sha1_.c" : "$(SRCDIR)\sha1.c"
1823
+ "$(OBJDIR)\translate$E" $** > $@
1824
+
1825
+"$(OX)\sha1hard$O" : "$(OX)\sha1hard_.c" "$(OX)\sha1hard.h"
1826
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\sha1hard_.c"
1827
+
1828
+"$(OX)\sha1hard_.c" : "$(SRCDIR)\sha1hard.c"
1829
+ "$(OBJDIR)\translate$E" $** > $@
1830
+
1831
+"$(OX)\sha3$O" : "$(OX)\sha3_.c" "$(OX)\sha3.h"
1832
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\sha3_.c"
1833
+
1834
+"$(OX)\sha3_.c" : "$(SRCDIR)\sha3.c"
1835
+ "$(OBJDIR)\translate$E" $** > $@
1836
+
1837
+"$(OX)\shun$O" : "$(OX)\shun_.c" "$(OX)\shun.h"
1838
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\shun_.c"
1839
+
1840
+"$(OX)\shun_.c" : "$(SRCDIR)\shun.c"
1841
+ "$(OBJDIR)\translate$E" $** > $@
1842
+
1843
+"$(OX)\sitemap$O" : "$(OX)\sitemap_.c" "$(OX)\sitemap.h"
1844
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\sitemap_.c"
1845
+
1846
+"$(OX)\sitemap_.c" : "$(SRCDIR)\sitemap.c"
1847
+ "$(OBJDIR)\translate$E" $** > $@
1848
+
1849
+"$(OX)\skins$O" : "$(OX)\skins_.c" "$(OX)\skins.h"
1850
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\skins_.c"
1851
+
1852
+"$(OX)\skins_.c" : "$(SRCDIR)\skins.c"
1853
+ "$(OBJDIR)\translate$E" $** > $@
1854
+
1855
+"$(OX)\smtp$O" : "$(OX)\smtp_.c" "$(OX)\smtp.h"
1856
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\smtp_.c"
1857
+
1858
+"$(OX)\smtp_.c" : "$(SRCDIR)\smtp.c"
1859
+ "$(OBJDIR)\translate$E" $** > $@
1860
+
1861
+"$(OX)\sqlcmd$O" : "$(OX)\sqlcmd_.c" "$(OX)\sqlcmd.h"
1862
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\sqlcmd_.c"
1863
+
1864
+"$(OX)\sqlcmd_.c" : "$(SRCDIR)\sqlcmd.c"
1865
+ "$(OBJDIR)\translate$E" $** > $@
1866
+
1867
+"$(OX)\stash$O" : "$(OX)\stash_.c" "$(OX)\stash.h"
1868
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\stash_.c"
1869
+
1870
+"$(OX)\stash_.c" : "$(SRCDIR)\stash.c"
1871
+ "$(OBJDIR)\translate$E" $** > $@
1872
+
1873
+"$(OX)\stat$O" : "$(OX)\stat_.c" "$(OX)\stat.h"
1874
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\stat_.c"
1875
+
1876
+"$(OX)\stat_.c" : "$(SRCDIR)\stat.c"
1877
+ "$(OBJDIR)\translate$E" $** > $@
1878
+
1879
+"$(OX)\statrep$O" : "$(OX)\statrep_.c" "$(OX)\statrep.h"
1880
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\statrep_.c"
1881
+
1882
+"$(OX)\statrep_.c" : "$(SRCDIR)\statrep.c"
1883
+ "$(OBJDIR)\translate$E" $** > $@
1884
+
1885
+"$(OX)\style$O" : "$(OX)\style_.c" "$(OX)\style.h"
1886
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\style_.c"
1887
+
1888
+"$(OX)\style_.c" : "$(SRCDIR)\style.c"
1889
+ "$(OBJDIR)\translate$E" $** > $@
1890
+
1891
+"$(OX)\sync$O" : "$(OX)\sync_.c" "$(OX)\sync.h"
1892
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\sync_.c"
1893
+
1894
+"$(OX)\sync_.c" : "$(SRCDIR)\sync.c"
1895
+ "$(OBJDIR)\translate$E" $** > $@
1896
+
1897
+"$(OX)\tag$O" : "$(OX)\tag_.c" "$(OX)\tag.h"
1898
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\tag_.c"
1899
+
1900
+"$(OX)\tag_.c" : "$(SRCDIR)\tag.c"
1901
+ "$(OBJDIR)\translate$E" $** > $@
1902
+
1903
+"$(OX)\tar$O" : "$(OX)\tar_.c" "$(OX)\tar.h"
1904
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\tar_.c"
1905
+
1906
+"$(OX)\tar_.c" : "$(SRCDIR)\tar.c"
1907
+ "$(OBJDIR)\translate$E" $** > $@
1908
+
1909
+"$(OX)\terminal$O" : "$(OX)\terminal_.c" "$(OX)\terminal.h"
1910
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\terminal_.c"
1911
+
1912
+"$(OX)\terminal_.c" : "$(SRCDIR)\terminal.c"
1913
+ "$(OBJDIR)\translate$E" $** > $@
1914
+
1915
+"$(OX)\th_main$O" : "$(OX)\th_main_.c" "$(OX)\th_main.h"
1916
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\th_main_.c"
1917
+
1918
+"$(OX)\th_main_.c" : "$(SRCDIR)\th_main.c"
1919
+ "$(OBJDIR)\translate$E" $** > $@
1920
+
1921
+"$(OX)\timeline$O" : "$(OX)\timeline_.c" "$(OX)\timeline.h"
1922
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\timeline_.c"
1923
+
1924
+"$(OX)\timeline_.c" : "$(SRCDIR)\timeline.c"
1925
+ "$(OBJDIR)\translate$E" $** > $@
1926
+
1927
+"$(OX)\tkt$O" : "$(OX)\tkt_.c" "$(OX)\tkt.h"
1928
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\tkt_.c"
1929
+
1930
+"$(OX)\tkt_.c" : "$(SRCDIR)\tkt.c"
1931
+ "$(OBJDIR)\translate$E" $** > $@
1932
+
1933
+"$(OX)\tktsetup$O" : "$(OX)\tktsetup_.c" "$(OX)\tktsetup.h"
1934
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\tktsetup_.c"
1935
+
1936
+"$(OX)\tktsetup_.c" : "$(SRCDIR)\tktsetup.c"
1937
+ "$(OBJDIR)\translate$E" $** > $@
1938
+
1939
+"$(OX)\undo$O" : "$(OX)\undo_.c" "$(OX)\undo.h"
1940
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\undo_.c"
1941
+
1942
+"$(OX)\undo_.c" : "$(SRCDIR)\undo.c"
1943
+ "$(OBJDIR)\translate$E" $** > $@
1944
+
1945
+"$(OX)\unicode$O" : "$(OX)\unicode_.c" "$(OX)\unicode.h"
1946
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\unicode_.c"
1947
+
1948
+"$(OX)\unicode_.c" : "$(SRCDIR)\unicode.c"
1949
+ "$(OBJDIR)\translate$E" $** > $@
1950
+
1951
+"$(OX)\unversioned$O" : "$(OX)\unversioned_.c" "$(OX)\unversioned.h"
1952
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\unversioned_.c"
1953
+
1954
+"$(OX)\unversioned_.c" : "$(SRCDIR)\unversioned.c"
1955
+ "$(OBJDIR)\translate$E" $** > $@
1956
+
1957
+"$(OX)\update$O" : "$(OX)\update_.c" "$(OX)\update.h"
1958
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\update_.c"
1959
+
1960
+"$(OX)\update_.c" : "$(SRCDIR)\update.c"
1961
+ "$(OBJDIR)\translate$E" $** > $@
1962
+
1963
+"$(OX)\url$O" : "$(OX)\url_.c" "$(OX)\url.h"
1964
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\url_.c"
1965
+
1966
+"$(OX)\url_.c" : "$(SRCDIR)\url.c"
1967
+ "$(OBJDIR)\translate$E" $** > $@
1968
+
1969
+"$(OX)\user$O" : "$(OX)\user_.c" "$(OX)\user.h"
1970
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\user_.c"
1971
+
1972
+"$(OX)\user_.c" : "$(SRCDIR)\user.c"
1973
+ "$(OBJDIR)\translate$E" $** > $@
1974
+
1975
+"$(OX)\utf8$O" : "$(OX)\utf8_.c" "$(OX)\utf8.h"
1976
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\utf8_.c"
1977
+
1978
+"$(OX)\utf8_.c" : "$(SRCDIR)\utf8.c"
1979
+ "$(OBJDIR)\translate$E" $** > $@
1980
+
1981
+"$(OX)\util$O" : "$(OX)\util_.c" "$(OX)\util.h"
1982
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\util_.c"
1983
+
1984
+"$(OX)\util_.c" : "$(SRCDIR)\util.c"
1985
+ "$(OBJDIR)\translate$E" $** > $@
1986
+
1987
+"$(OX)\verify$O" : "$(OX)\verify_.c" "$(OX)\verify.h"
1988
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\verify_.c"
1989
+
1990
+"$(OX)\verify_.c" : "$(SRCDIR)\verify.c"
1991
+ "$(OBJDIR)\translate$E" $** > $@
1992
+
1993
+"$(OX)\vfile$O" : "$(OX)\vfile_.c" "$(OX)\vfile.h"
1994
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\vfile_.c"
1995
+
1996
+"$(OX)\vfile_.c" : "$(SRCDIR)\vfile.c"
1997
+ "$(OBJDIR)\translate$E" $** > $@
1998
+
1999
+"$(OX)\webmail$O" : "$(OX)\webmail_.c" "$(OX)\webmail.h"
2000
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\webmail_.c"
2001
+
2002
+"$(OX)\webmail_.c" : "$(SRCDIR)\webmail.c"
2003
+ "$(OBJDIR)\translate$E" $** > $@
2004
+
2005
+"$(OX)\wiki$O" : "$(OX)\wiki_.c" "$(OX)\wiki.h"
2006
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\wiki_.c"
2007
+
2008
+"$(OX)\wiki_.c" : "$(SRCDIR)\wiki.c"
2009
+ "$(OBJDIR)\translate$E" $** > $@
2010
+
2011
+"$(OX)\wikiformat$O" : "$(OX)\wikiformat_.c" "$(OX)\wikiformat.h"
2012
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\wikiformat_.c"
2013
+
2014
+"$(OX)\wikiformat_.c" : "$(SRCDIR)\wikiformat.c"
2015
+ "$(OBJDIR)\translate$E" $** > $@
2016
+
2017
+"$(OX)\winfile$O" : "$(OX)\winfile_.c" "$(OX)\winfile.h"
2018
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\winfile_.c"
2019
+
2020
+"$(OX)\winfile_.c" : "$(SRCDIR)\winfile.c"
2021
+ "$(OBJDIR)\translate$E" $** > $@
2022
+
2023
+"$(OX)\winhttp$O" : "$(OX)\winhttp_.c" "$(OX)\winhttp.h"
2024
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\winhttp_.c"
2025
+
2026
+"$(OX)\winhttp_.c" : "$(SRCDIR)\winhttp.c"
2027
+ "$(OBJDIR)\translate$E" $** > $@
2028
+
2029
+"$(OX)\wysiwyg$O" : "$(OX)\wysiwyg_.c" "$(OX)\wysiwyg.h"
2030
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\wysiwyg_.c"
2031
+
2032
+"$(OX)\wysiwyg_.c" : "$(SRCDIR)\wysiwyg.c"
2033
+ "$(OBJDIR)\translate$E" $** > $@
2034
+
2035
+"$(OX)\xfer$O" : "$(OX)\xfer_.c" "$(OX)\xfer.h"
2036
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\xfer_.c"
2037
+
2038
+"$(OX)\xfer_.c" : "$(SRCDIR)\xfer.c"
2039
+ "$(OBJDIR)\translate$E" $** > $@
2040
+
2041
+"$(OX)\xfersetup$O" : "$(OX)\xfersetup_.c" "$(OX)\xfersetup.h"
2042
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\xfersetup_.c"
2043
+
2044
+"$(OX)\xfersetup_.c" : "$(SRCDIR)\xfersetup.c"
2045
+ "$(OBJDIR)\translate$E" $** > $@
2046
+
2047
+"$(OX)\zip$O" : "$(OX)\zip_.c" "$(OX)\zip.h"
2048
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\zip_.c"
2049
+
2050
+"$(OX)\zip_.c" : "$(SRCDIR)\zip.c"
2051
+ "$(OBJDIR)\translate$E" $** > $@
2052
+
2053
+"$(OX)\fossil.res" : "$(B)\win\fossil.rc"
2054
+ $(RCC) /fo $@ $**
2055
+
2056
+"$(OX)\headers": "$(OBJDIR)\makeheaders$E" "$(OX)\page_index.h" "$(OX)\builtin_data.h" "$(OX)\default_css.h" "$(OX)\VERSION.h"
2057
+ "$(OBJDIR)\makeheaders$E" "$(OX)\add_.c":"$(OX)\add.h" \
2058
+ "$(OX)\ajax_.c":"$(OX)\ajax.h" \
2059
+ "$(OX)\alerts_.c":"$(OX)\alerts.h" \
2060
+ "$(OX)\allrepo_.c":"$(OX)\allrepo.h" \
2061
+ "$(OX)\attach_.c":"$(OX)\attach.h" \
2062
+ "$(OX)\backlink_.c":"$(OX)\backlink.h" \
2063
+ "$(OX)\backoffice_.c":"$(OX)\backoffice.h" \
2064
+ "$(OX)\bag_.c":"$(OX)\bag.h" \
2065
+ "$(OX)\bisect_.c":"$(OX)\bisect.h" \
2066
+ "$(OX)\blob_.c":"$(OX)\blob.h" \
2067
+ "$(OX)\branch_.c":"$(OX)\branch.h" \
2068
+ "$(OX)\browse_.c":"$(OX)\browse.h" \
2069
+ "$(OX)\builtin_.c":"$(OX)\builtin.h" \
2070
+ "$(OX)\bundle_.c":"$(OX)\bundle.h" \
2071
+ "$(OX)\cache_.c":"$(OX)\cache.h" \
2072
+ "$(OX)\capabilities_.c":"$(OX)\capabilities.h" \
2073
+ "$(OX)\captcha_.c":"$(OX)\captcha.h" \
2074
+ "$(OX)\cgi_.c":"$(OX)\cgi.h" \
2075
+ "$(OX)\checkin_.c":"$(OX)\checkin.h" \
2076
+ "$(OX)\checkout_.c":"$(OX)\checkout.h" \
2077
+ "$(OX)\clearsign_.c":"$(OX)\clearsign.h" \
2078
+ "$(OX)\clone_.c":"$(OX)\clone.h" \
2079
+ "$(OX)\comformat_.c":"$(OX)\comformat.h" \
2080
+ "$(OX)\configure_.c":"$(OX)\configure.h" \
2081
+ "$(OX)\content_.c":"$(OX)\content.h" \
2082
+ "$(OX)\cookies_.c":"$(OX)\cookies.h" \
2083
+ "$(OX)\db_.c":"$(OX)\db.h" \
2084
+ "$(OX)\delta_.c":"$(OX)\delta.h" \
2085
+ "$(OX)\deltacmd_.c":"$(OX)\deltacmd.h" \
2086
+ "$(OX)\deltafunc_.c":"$(OX)\deltafunc.h" \
2087
+ "$(OX)\descendants_.c":"$(OX)\descendants.h" \
2088
+ "$(OX)\diff_.c":"$(OX)\diff.h" \
2089
+ "$(OX)\diffcmd_.c":"$(OX)\diffcmd.h" \
2090
+ "$(OX)\dispatch_.c":"$(OX)\dispatch.h" \
2091
+ "$(OX)\doc_.c":"$(OX)\doc.h" \
2092
+ "$(OX)\encode_.c":"$(OX)\encode.h" \
2093
+ "$(OX)\etag_.c":"$(OX)\etag.h" \
2094
+ "$(OX)\event_.c":"$(OX)\event.h" \
2095
+ "$(OX)\export_.c":"$(OX)\export.h" \
2096
+ "$(OX)\extcgi_.c":"$(OX)\extcgi.h" \
2097
+ "$(OX)\file_.c":"$(OX)\file.h" \
2098
+ "$(OX)\fileedit_.c":"$(OX)\fileedit.h" \
2099
+ "$(OX)\finfo_.c":"$(OX)\finfo.h" \
2100
+ "$(OX)\foci_.c":"$(OX)\foci.h" \
2101
+ "$(OX)\forum_.c":"$(OX)\forum.h" \
2102
+ "$(OX)\fshell_.c":"$(OX)\fshell.h" \
2103
+ "$(OX)\fusefs_.c":"$(OX)\fusefs.h" \
2104
+ "$(OX)\fuzz_.c":"$(OX)\fuzz.h" \
2105
+ "$(OX)\glob_.c":"$(OX)\glob.h" \
2106
+ "$(OX)\graph_.c":"$(OX)\graph.h" \
2107
+ "$(OX)\gzip_.c":"$(OX)\gzip.h" \
2108
+ "$(OX)\hname_.c":"$(OX)\hname.h" \
2109
+ "$(OX)\http_.c":"$(OX)\http.h" \
2110
+ "$(OX)\http_socket_.c":"$(OX)\http_socket.h" \
2111
+ "$(OX)\http_ssl_.c":"$(OX)\http_ssl.h" \
2112
+ "$(OX)\http_transport_.c":"$(OX)\http_transport.h" \
2113
+ "$(OX)\import_.c":"$(OX)\import.h" \
2114
+ "$(OX)\info_.c":"$(OX)\info.h" \
2115
+ "$(OX)\json_.c":"$(OX)\json.h" \
2116
+ "$(OX)\json_artifact_.c":"$(OX)\json_artifact.h" \
2117
+ "$(OX)\json_branch_.c":"$(OX)\json_branch.h" \
2118
+ "$(OX)\json_config_.c":"$(OX)\json_config.h" \
2119
+ "$(OX)\json_diff_.c":"$(OX)\json_diff.h" \
2120
+ "$(OX)\json_dir_.c":"$(OX)\json_dir.h" \
2121
+ "$(OX)\json_finfo_.c":"$(OX)\json_finfo.h" \
2122
+ "$(OX)\json_login_.c":"$(OX)\json_login.h" \
2123
+ "$(OX)\json_query_.c":"$(OX)\json_query.h" \
2124
+ "$(OX)\json_report_.c":"$(OX)\json_report.h" \
2125
+ "$(OX)\json_status_.c":"$(OX)\json_status.h" \
2126
+ "$(OX)\json_tag_.c":"$(OX)\json_tag.h" \
2127
+ "$(OX)\json_timeline_.c":"$(OX)\json_timeline.h" \
2128
+ "$(OX)\json_user_.c":"$(OX)\json_user.h" \
2129
+ "$(OX)\json_wiki_.c":"$(OX)\json_wiki.h" \
2130
+ "$(OX)\leaf_.c":"$(OX)\leaf.h" \
2131
+ "$(OX)\loadctrl_.c":"$(OX)\loadctrl.h" \
2132
+ "$(OX)\login_.c":"$(OX)\login.h" \
2133
+ "$(OX)\lookslike_.c":"$(OX)\lookslike.h" \
2134
+ "$(OX)\main_.c":"$(OX)\main.h" \
2135
+ "$(OX)\manifest_.c":"$(OX)\manifest.h" \
2136
+ "$(OX)\markdown_.c":"$(OX)\markdown.h" \
2137
+ "$(OX)\markdown_html_.c":"$(OX)\markdown_html.h" \
2138
+ "$(OX)\md5_.c":"$(OX)\md5.h" \
2139
+ "$(OX)\merge_.c":"$(OX)\merge.h" \
2140
+ "$(OX)\merge3_.c":"$(OX)\merge3.h" \
2141
+ "$(OX)\moderate_.c":"$(OX)\moderate.h" \
2142
+ "$(OX)\name_.c":"$(OX)\name.h" \
2143
+ "$(OX)\path_.c":"$(OX)\path.h" \
2144
+ "$(OX)\piechart_.c":"$(OX)\piechart.h" \
2145
+ "$(OX)\pivot_.c":"$(OX)\pivot.h" \
2146
+ "$(OX)\popen_.c":"$(OX)\popen.h" \
2147
+ "$(OX)\pqueue_.c":"$(OX)\pqueue.h" \
2148
+ "$(OX)\printf_.c":"$(OX)\printf.h" \
2149
+ "$(OX)\publish_.c":"$(OX)\publish.h" \
2150
+ "$(OX)\purge_.c":"$(OX)\purge.h" \
2151
+ "$(OX)\rebuild_.c":"$(OX)\rebuild.h" \
2152
+ "$(OX)\regexp_.c":"$(OX)\regexp.h" \
2153
+ "$(OX)\repolist_.c":"$(OX)\repolist.h" \
2154
+ "$(OX)\report_.c":"$(OX)\report.h" \
2155
+ "$(OX)\rss_.c":"$(OX)\rss.h" \
2156
+ "$(OX)\schema_.c":"$(OX)\schema.h" \
2157
+ "$(OX)\search_.c":"$(OX)\search.h" \
2158
+ "$(OX)\security_audit_.c":"$(OX)\security_audit.h" \
2159
+ "$(OX)\setup_.c":"$(OX)\setup.h" \
2160
+ "$(OX)\setupuser_.c":"$(OX)\setupuser.h" \
2161
+ "$(OX)\sha1_.c":"$(OX)\sha1.h" \
2162
+ "$(OX)\sha1hard_.c":"$(OX)\sha1hard.h" \
2163
+ "$(OX)\sha3_.c":"$(OX)\sha3.h" \
2164
+ "$(OX)\shun_.c":"$(OX)\shun.h" \
2165
+ "$(OX)\sitemap_.c":"$(OX)\sitemap.h" \
2166
+ "$(OX)\skins_.c":"$(OX)\skins.h" \
2167
+ "$(OX)\smtp_.c":"$(OX)\smtp.h" \
2168
+ "$(OX)\sqlcmd_.c":"$(OX)\sqlcmd.h" \
2169
+ "$(OX)\stash_.c":"$(OX)\stash.h" \
2170
+ "$(OX)\stat_.c":"$(OX)\stat.h" \
2171
+ "$(OX)\statrep_.c":"$(OX)\statrep.h" \
2172
+ "$(OX)\style_.c":"$(OX)\style.h" \
2173
+ "$(OX)\sync_.c":"$(OX)\sync.h" \
2174
+ "$(OX)\tag_.c":"$(OX)\tag.h" \
2175
+ "$(OX)\tar_.c":"$(OX)\tar.h" \
2176
+ "$(OX)\terminal_.c":"$(OX)\terminal.h" \
2177
+ "$(OX)\th_main_.c":"$(OX)\th_main.h" \
2178
+ "$(OX)\timeline_.c":"$(OX)\timeline.h" \
2179
+ "$(OX)\tkt_.c":"$(OX)\tkt.h" \
2180
+ "$(OX)\tktsetup_.c":"$(OX)\tktsetup.h" \
2181
+ "$(OX)\undo_.c":"$(OX)\undo.h" \
2182
+ "$(OX)\unicode_.c":"$(OX)\unicode.h" \
2183
+ "$(OX)\unversioned_.c":"$(OX)\unversioned.h" \
2184
+ "$(OX)\update_.c":"$(OX)\update.h" \
2185
+ "$(OX)\url_.c":"$(OX)\url.h" \
2186
+ "$(OX)\user_.c":"$(OX)\user.h" \
2187
+ "$(OX)\utf8_.c":"$(OX)\utf8.h" \
2188
+ "$(OX)\util_.c":"$(OX)\util.h" \
2189
+ "$(OX)\verify_.c":"$(OX)\verify.h" \
2190
+ "$(OX)\vfile_.c":"$(OX)\vfile.h" \
2191
+ "$(OX)\webmail_.c":"$(OX)\webmail.h" \
2192
+ "$(OX)\wiki_.c":"$(OX)\wiki.h" \
2193
+ "$(OX)\wikiformat_.c":"$(OX)\wikiformat.h" \
2194
+ "$(OX)\winfile_.c":"$(OX)\winfile.h" \
2195
+ "$(OX)\winhttp_.c":"$(OX)\winhttp.h" \
2196
+ "$(OX)\wysiwyg_.c":"$(OX)\wysiwyg.h" \
2197
+ "$(OX)\xfer_.c":"$(OX)\xfer.h" \
2198
+ "$(OX)\xfersetup_.c":"$(OX)\xfersetup.h" \
2199
+ "$(OX)\zip_.c":"$(OX)\zip.h" \
2200
+ "$(SRCDIR)\sqlite3.h" \
2201
+ "$(SRCDIR)\th.h" \
2202
+ "$(OX)\VERSION.h" \
2203
+ "$(SRCDIR)\cson_amalgamation.h"
2204
+ @copy /Y nul: $@
20592205
--- win/Makefile.msc
+++ win/Makefile.msc
@@ -1,39 +1,52 @@
1 #
2 ##############################################################################
3 # WARNING: DO NOT EDIT, AUTOMATICALLY GENERATED FILE (SEE "src/makemake.tcl")
4 ##############################################################################
5 #
6 # This Makefile will only function correctly if used from a sub-directory
7 # that is a direct child of the top-level directory for this project.
8 #
9 !if !exist("..\.fossil-settings")
10 !error "Please change the current directory to the one containing this file."
11 !endif
12
13 #
14 # This file is automatically generated. Instead of editing this
15 # file, edit "makemake.tcl" then run "tclsh makemake.tcl"
16 # to regenerate this file.
17 #
18 B = ..
19 SRCDIR = $B\src
20 OBJDIR = .
21 OX = .
 
22 O = .obj
23 E = .exe
24 P = .pdb
25
26 # Perl is only necessary if OpenSSL support is enabled and it must
27 # be built from source code. The PERLDIR variable should point to
28 # the directory containing the main Perl binary (i.e. "perl.exe").
29 PERLDIR = C:\Perl\bin
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30 PERL = perl.exe
31
32 # Enable debugging symbols?
33 !ifndef DEBUG
34 DEBUG = 0
 
 
 
35 !endif
36
37 # Build the OpenSSL libraries?
38 !ifndef FOSSIL_BUILD_SSL
39 FOSSIL_BUILD_SSL = 0
@@ -150,27 +163,30 @@
150 ZLIB = zdll.lib
151 !else
152 ZLIB = zlib.lib
153 !endif
154
155 INCL = /I. /I$(SRCDIR) /I$B\win\include
156
157 !if $(FOSSIL_ENABLE_MINIZ)==0
158 INCL = $(INCL) /I$(ZINCDIR)
159 !endif
160
161 !if $(FOSSIL_ENABLE_SSL)!=0
162 INCL = $(INCL) /I$(SSLINCDIR)
163 !endif
164
165 !if $(FOSSIL_ENABLE_TCL)!=0
166 INCL = $(INCL) /I$(TCLINCDIR)
167 !endif
168
169 CFLAGS = /nologo
170 LDFLAGS =
171
 
 
 
172 !if $(FOSSIL_DYNAMIC_BUILD)!=0
173 LDFLAGS = $(LDFLAGS) /MANIFEST
174 !else
175 LDFLAGS = $(LDFLAGS) /NODEFAULTLIB:msvcrt /MANIFEST:NO
176 !endif
@@ -199,11 +215,11 @@
199 CRTFLAGS = /MT
200 !endif
201 !endif
202
203 !if $(DEBUG)!=0
204 CFLAGS = $(CFLAGS) /Zi $(CRTFLAGS) /Od
205 LDFLAGS = $(LDFLAGS) /DEBUG
206 !else
207 CFLAGS = $(CFLAGS) $(CRTFLAGS) /O2
208 !endif
209
@@ -219,11 +235,11 @@
219 RCC = $(RCC) /DFOSSIL_DYNAMIC_BUILD=1
220 !endif
221
222 !if $(FOSSIL_ENABLE_MINIZ)==0
223 LIBS = $(LIBS) $(ZLIB)
224 LIBDIR = $(LIBDIR) /LIBPATH:$(ZLIBDIR)
225 !endif
226
227 !if $(FOSSIL_ENABLE_MINIZ)!=0
228 TCC = $(TCC) /DFOSSIL_ENABLE_MINIZ=1
229 RCC = $(RCC) /DFOSSIL_ENABLE_MINIZ=1
@@ -236,11 +252,11 @@
236
237 !if $(FOSSIL_ENABLE_SSL)!=0
238 TCC = $(TCC) /DFOSSIL_ENABLE_SSL=1
239 RCC = $(RCC) /DFOSSIL_ENABLE_SSL=1
240 LIBS = $(LIBS) $(SSLLIB)
241 LIBDIR = $(LIBDIR) /LIBPATH:$(SSLLIBDIR)
242 !endif
243
244 !if $(FOSSIL_ENABLE_EXEC_REL_PATHS)!=0
245 TCC = $(TCC) /DFOSSIL_ENABLE_EXEC_REL_PATHS=1
246 RCC = $(RCC) /DFOSSIL_ENABLE_EXEC_REL_PATHS=1
@@ -283,11 +299,10 @@
283 /DSQLITE_DEFAULT_MEMSTATUS=0 \
284 /DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 \
285 /DSQLITE_LIKE_DOESNT_MATCH_BLOBS \
286 /DSQLITE_OMIT_DECLTYPE \
287 /DSQLITE_OMIT_DEPRECATED \
288 /DSQLITE_OMIT_GET_TABLE \
289 /DSQLITE_OMIT_PROGRESS_CALLBACK \
290 /DSQLITE_OMIT_SHARED_CACHE \
291 /DSQLITE_OMIT_LOAD_EXTENSION \
292 /DSQLITE_MAX_EXPR_DEPTH=0 \
293 /DSQLITE_USE_ALLOCA \
@@ -311,11 +326,10 @@
311 /DSQLITE_DEFAULT_MEMSTATUS=0 \
312 /DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 \
313 /DSQLITE_LIKE_DOESNT_MATCH_BLOBS \
314 /DSQLITE_OMIT_DECLTYPE \
315 /DSQLITE_OMIT_DEPRECATED \
316 /DSQLITE_OMIT_GET_TABLE \
317 /DSQLITE_OMIT_PROGRESS_CALLBACK \
318 /DSQLITE_OMIT_SHARED_CACHE \
319 /DSQLITE_OMIT_LOAD_EXTENSION \
320 /DSQLITE_MAX_EXPR_DEPTH=0 \
321 /DSQLITE_USE_ALLOCA \
@@ -344,405 +358,407 @@
344
345 MINIZ_OPTIONS = /DMINIZ_NO_STDIO \
346 /DMINIZ_NO_TIME \
347 /DMINIZ_NO_ARCHIVE_APIS
348
349 SRC = add_.c \
350 alerts_.c \
351 allrepo_.c \
352 attach_.c \
353 backlink_.c \
354 backoffice_.c \
355 bag_.c \
356 bisect_.c \
357 blob_.c \
358 branch_.c \
359 browse_.c \
360 builtin_.c \
361 bundle_.c \
362 cache_.c \
363 capabilities_.c \
364 captcha_.c \
365 cgi_.c \
366 checkin_.c \
367 checkout_.c \
368 clearsign_.c \
369 clone_.c \
370 comformat_.c \
371 configure_.c \
372 content_.c \
373 cookies_.c \
374 db_.c \
375 delta_.c \
376 deltacmd_.c \
377 deltafunc_.c \
378 descendants_.c \
379 diff_.c \
380 diffcmd_.c \
381 dispatch_.c \
382 doc_.c \
383 encode_.c \
384 etag_.c \
385 event_.c \
386 export_.c \
387 extcgi_.c \
388 file_.c \
389 fileedit_.c \
390 finfo_.c \
391 foci_.c \
392 forum_.c \
393 fshell_.c \
394 fusefs_.c \
395 fuzz_.c \
396 glob_.c \
397 graph_.c \
398 gzip_.c \
399 hname_.c \
400 http_.c \
401 http_socket_.c \
402 http_ssl_.c \
403 http_transport_.c \
404 import_.c \
405 info_.c \
406 json_.c \
407 json_artifact_.c \
408 json_branch_.c \
409 json_config_.c \
410 json_diff_.c \
411 json_dir_.c \
412 json_finfo_.c \
413 json_login_.c \
414 json_query_.c \
415 json_report_.c \
416 json_status_.c \
417 json_tag_.c \
418 json_timeline_.c \
419 json_user_.c \
420 json_wiki_.c \
421 leaf_.c \
422 loadctrl_.c \
423 login_.c \
424 lookslike_.c \
425 main_.c \
426 manifest_.c \
427 markdown_.c \
428 markdown_html_.c \
429 md5_.c \
430 merge_.c \
431 merge3_.c \
432 moderate_.c \
433 name_.c \
434 path_.c \
435 piechart_.c \
436 pivot_.c \
437 popen_.c \
438 pqueue_.c \
439 printf_.c \
440 publish_.c \
441 purge_.c \
442 rebuild_.c \
443 regexp_.c \
444 repolist_.c \
445 report_.c \
446 rss_.c \
447 schema_.c \
448 search_.c \
449 security_audit_.c \
450 setup_.c \
451 setupuser_.c \
452 sha1_.c \
453 sha1hard_.c \
454 sha3_.c \
455 shun_.c \
456 sitemap_.c \
457 skins_.c \
458 smtp_.c \
459 sqlcmd_.c \
460 stash_.c \
461 stat_.c \
462 statrep_.c \
463 style_.c \
464 sync_.c \
465 tag_.c \
466 tar_.c \
467 terminal_.c \
468 th_main_.c \
469 timeline_.c \
470 tkt_.c \
471 tktsetup_.c \
472 undo_.c \
473 unicode_.c \
474 unversioned_.c \
475 update_.c \
476 url_.c \
477 user_.c \
478 utf8_.c \
479 util_.c \
480 verify_.c \
481 vfile_.c \
482 webmail_.c \
483 wiki_.c \
484 wikiformat_.c \
485 winfile_.c \
486 winhttp_.c \
487 wysiwyg_.c \
488 xfer_.c \
489 xfersetup_.c \
490 zip_.c
491
492 EXTRA_FILES = $(SRCDIR)\..\skins\aht\details.txt \
493 $(SRCDIR)\..\skins\ardoise\css.txt \
494 $(SRCDIR)\..\skins\ardoise\details.txt \
495 $(SRCDIR)\..\skins\ardoise\footer.txt \
496 $(SRCDIR)\..\skins\ardoise\header.txt \
497 $(SRCDIR)\..\skins\black_and_white\css.txt \
498 $(SRCDIR)\..\skins\black_and_white\details.txt \
499 $(SRCDIR)\..\skins\black_and_white\footer.txt \
500 $(SRCDIR)\..\skins\black_and_white\header.txt \
501 $(SRCDIR)\..\skins\blitz\css.txt \
502 $(SRCDIR)\..\skins\blitz\details.txt \
503 $(SRCDIR)\..\skins\blitz\footer.txt \
504 $(SRCDIR)\..\skins\blitz\header.txt \
505 $(SRCDIR)\..\skins\blitz\ticket.txt \
506 $(SRCDIR)\..\skins\blitz_no_logo\css.txt \
507 $(SRCDIR)\..\skins\blitz_no_logo\details.txt \
508 $(SRCDIR)\..\skins\blitz_no_logo\footer.txt \
509 $(SRCDIR)\..\skins\blitz_no_logo\header.txt \
510 $(SRCDIR)\..\skins\blitz_no_logo\ticket.txt \
511 $(SRCDIR)\..\skins\bootstrap\css.txt \
512 $(SRCDIR)\..\skins\bootstrap\details.txt \
513 $(SRCDIR)\..\skins\bootstrap\footer.txt \
514 $(SRCDIR)\..\skins\bootstrap\header.txt \
515 $(SRCDIR)\..\skins\default\css.txt \
516 $(SRCDIR)\..\skins\default\details.txt \
517 $(SRCDIR)\..\skins\default\footer.txt \
518 $(SRCDIR)\..\skins\default\header.txt \
519 $(SRCDIR)\..\skins\default\js.txt \
520 $(SRCDIR)\..\skins\eagle\css.txt \
521 $(SRCDIR)\..\skins\eagle\details.txt \
522 $(SRCDIR)\..\skins\eagle\footer.txt \
523 $(SRCDIR)\..\skins\eagle\header.txt \
524 $(SRCDIR)\..\skins\enhanced1\css.txt \
525 $(SRCDIR)\..\skins\enhanced1\details.txt \
526 $(SRCDIR)\..\skins\enhanced1\footer.txt \
527 $(SRCDIR)\..\skins\enhanced1\header.txt \
528 $(SRCDIR)\..\skins\khaki\css.txt \
529 $(SRCDIR)\..\skins\khaki\details.txt \
530 $(SRCDIR)\..\skins\khaki\footer.txt \
531 $(SRCDIR)\..\skins\khaki\header.txt \
532 $(SRCDIR)\..\skins\original\css.txt \
533 $(SRCDIR)\..\skins\original\details.txt \
534 $(SRCDIR)\..\skins\original\footer.txt \
535 $(SRCDIR)\..\skins\original\header.txt \
536 $(SRCDIR)\..\skins\plain_gray\css.txt \
537 $(SRCDIR)\..\skins\plain_gray\details.txt \
538 $(SRCDIR)\..\skins\plain_gray\footer.txt \
539 $(SRCDIR)\..\skins\plain_gray\header.txt \
540 $(SRCDIR)\..\skins\rounded1\css.txt \
541 $(SRCDIR)\..\skins\rounded1\details.txt \
542 $(SRCDIR)\..\skins\rounded1\footer.txt \
543 $(SRCDIR)\..\skins\rounded1\header.txt \
544 $(SRCDIR)\..\skins\xekri\css.txt \
545 $(SRCDIR)\..\skins\xekri\details.txt \
546 $(SRCDIR)\..\skins\xekri\footer.txt \
547 $(SRCDIR)\..\skins\xekri\header.txt \
548 $(SRCDIR)\accordion.js \
549 $(SRCDIR)\ci_edit.js \
550 $(SRCDIR)\copybtn.js \
551 $(SRCDIR)\default.css \
552 $(SRCDIR)\diff.tcl \
553 $(SRCDIR)\forum.js \
554 $(SRCDIR)\fossil.bootstrap.js \
555 $(SRCDIR)\fossil.confirmer.js \
556 $(SRCDIR)\fossil.dom.js \
557 $(SRCDIR)\fossil.fetch.js \
558 $(SRCDIR)\fossil.page.fileedit.js \
559 $(SRCDIR)\fossil.storage.js \
560 $(SRCDIR)\fossil.tabs.js \
561 $(SRCDIR)\graph.js \
562 $(SRCDIR)\href.js \
563 $(SRCDIR)\login.js \
564 $(SRCDIR)\markdown.md \
565 $(SRCDIR)\menu.js \
566 $(SRCDIR)\sbsdiff.js \
567 $(SRCDIR)\scroll.js \
568 $(SRCDIR)\skin.js \
569 $(SRCDIR)\sorttable.js \
570 $(SRCDIR)\sounds\0.wav \
571 $(SRCDIR)\sounds\1.wav \
572 $(SRCDIR)\sounds\2.wav \
573 $(SRCDIR)\sounds\3.wav \
574 $(SRCDIR)\sounds\4.wav \
575 $(SRCDIR)\sounds\5.wav \
576 $(SRCDIR)\sounds\6.wav \
577 $(SRCDIR)\sounds\7.wav \
578 $(SRCDIR)\sounds\8.wav \
579 $(SRCDIR)\sounds\9.wav \
580 $(SRCDIR)\sounds\a.wav \
581 $(SRCDIR)\sounds\b.wav \
582 $(SRCDIR)\sounds\c.wav \
583 $(SRCDIR)\sounds\d.wav \
584 $(SRCDIR)\sounds\e.wav \
585 $(SRCDIR)\sounds\f.wav \
586 $(SRCDIR)\style.admin_log.css \
587 $(SRCDIR)\style.fileedit.css \
588 $(SRCDIR)\tree.js \
589 $(SRCDIR)\useredit.js \
590 $(SRCDIR)\wiki.wiki
591
592 OBJ = $(OX)\add$O \
593 $(OX)\alerts$O \
594 $(OX)\allrepo$O \
595 $(OX)\attach$O \
596 $(OX)\backlink$O \
597 $(OX)\backoffice$O \
598 $(OX)\bag$O \
599 $(OX)\bisect$O \
600 $(OX)\blob$O \
601 $(OX)\branch$O \
602 $(OX)\browse$O \
603 $(OX)\builtin$O \
604 $(OX)\bundle$O \
605 $(OX)\cache$O \
606 $(OX)\capabilities$O \
607 $(OX)\captcha$O \
608 $(OX)\cgi$O \
609 $(OX)\checkin$O \
610 $(OX)\checkout$O \
611 $(OX)\clearsign$O \
612 $(OX)\clone$O \
613 $(OX)\comformat$O \
614 $(OX)\configure$O \
615 $(OX)\content$O \
616 $(OX)\cookies$O \
617 $(OX)\cson_amalgamation$O \
618 $(OX)\db$O \
619 $(OX)\delta$O \
620 $(OX)\deltacmd$O \
621 $(OX)\deltafunc$O \
622 $(OX)\descendants$O \
623 $(OX)\diff$O \
624 $(OX)\diffcmd$O \
625 $(OX)\dispatch$O \
626 $(OX)\doc$O \
627 $(OX)\encode$O \
628 $(OX)\etag$O \
629 $(OX)\event$O \
630 $(OX)\export$O \
631 $(OX)\extcgi$O \
632 $(OX)\file$O \
633 $(OX)\fileedit$O \
634 $(OX)\finfo$O \
635 $(OX)\foci$O \
636 $(OX)\forum$O \
637 $(OX)\fshell$O \
638 $(OX)\fusefs$O \
639 $(OX)\fuzz$O \
640 $(OX)\glob$O \
641 $(OX)\graph$O \
642 $(OX)\gzip$O \
643 $(OX)\hname$O \
644 $(OX)\http$O \
645 $(OX)\http_socket$O \
646 $(OX)\http_ssl$O \
647 $(OX)\http_transport$O \
648 $(OX)\import$O \
649 $(OX)\info$O \
650 $(OX)\json$O \
651 $(OX)\json_artifact$O \
652 $(OX)\json_branch$O \
653 $(OX)\json_config$O \
654 $(OX)\json_diff$O \
655 $(OX)\json_dir$O \
656 $(OX)\json_finfo$O \
657 $(OX)\json_login$O \
658 $(OX)\json_query$O \
659 $(OX)\json_report$O \
660 $(OX)\json_status$O \
661 $(OX)\json_tag$O \
662 $(OX)\json_timeline$O \
663 $(OX)\json_user$O \
664 $(OX)\json_wiki$O \
665 $(OX)\leaf$O \
666 $(OX)\loadctrl$O \
667 $(OX)\login$O \
668 $(OX)\lookslike$O \
669 $(OX)\main$O \
670 $(OX)\manifest$O \
671 $(OX)\markdown$O \
672 $(OX)\markdown_html$O \
673 $(OX)\md5$O \
674 $(OX)\merge$O \
675 $(OX)\merge3$O \
676 $(OX)\moderate$O \
677 $(OX)\name$O \
678 $(OX)\path$O \
679 $(OX)\piechart$O \
680 $(OX)\pivot$O \
681 $(OX)\popen$O \
682 $(OX)\pqueue$O \
683 $(OX)\printf$O \
684 $(OX)\publish$O \
685 $(OX)\purge$O \
686 $(OX)\rebuild$O \
687 $(OX)\regexp$O \
688 $(OX)\repolist$O \
689 $(OX)\report$O \
690 $(OX)\rss$O \
691 $(OX)\schema$O \
692 $(OX)\search$O \
693 $(OX)\security_audit$O \
694 $(OX)\setup$O \
695 $(OX)\setupuser$O \
696 $(OX)\sha1$O \
697 $(OX)\sha1hard$O \
698 $(OX)\sha3$O \
699 $(OX)\shell$O \
700 $(OX)\shun$O \
701 $(OX)\sitemap$O \
702 $(OX)\skins$O \
703 $(OX)\smtp$O \
704 $(OX)\sqlcmd$O \
705 $(OX)\sqlite3$O \
706 $(OX)\stash$O \
707 $(OX)\stat$O \
708 $(OX)\statrep$O \
709 $(OX)\style$O \
710 $(OX)\sync$O \
711 $(OX)\tag$O \
712 $(OX)\tar$O \
713 $(OX)\terminal$O \
714 $(OX)\th$O \
715 $(OX)\th_lang$O \
716 $(OX)\th_main$O \
717 $(OX)\th_tcl$O \
718 $(OX)\timeline$O \
719 $(OX)\tkt$O \
720 $(OX)\tktsetup$O \
721 $(OX)\undo$O \
722 $(OX)\unicode$O \
723 $(OX)\unversioned$O \
724 $(OX)\update$O \
725 $(OX)\url$O \
726 $(OX)\user$O \
727 $(OX)\utf8$O \
728 $(OX)\util$O \
729 $(OX)\verify$O \
730 $(OX)\vfile$O \
731 $(OX)\webmail$O \
732 $(OX)\wiki$O \
733 $(OX)\wikiformat$O \
734 $(OX)\winfile$O \
735 $(OX)\winhttp$O \
736 $(OX)\wysiwyg$O \
737 $(OX)\xfer$O \
738 $(OX)\xfersetup$O \
739 $(OX)\zip$O \
 
 
740 !if $(FOSSIL_ENABLE_MINIZ)!=0
741 $(OX)\miniz$O \
742 !endif
743 $(OX)\fossil.res
744
745
746 !ifndef BASEAPPNAME
747 BASEAPPNAME = fossil
748 !endif
@@ -749,32 +765,52 @@
749
750 APPNAME = $(OX)\$(BASEAPPNAME)$(E)
751 PDBNAME = $(OX)\$(BASEAPPNAME)$(P)
752 APPTARGETS =
753
754 all: $(OX) $(APPNAME)
 
 
 
 
 
 
 
 
 
 
 
 
 
755
756 zlib:
757 @echo Building zlib from "$(ZLIBDIR)"...
758 !if $(FOSSIL_ENABLE_WINXP)!=0
759 @pushd "$(ZLIBDIR)" && $(MAKE) /f win32\Makefile.msc $(ZLIB) "CC=cl $(XPCFLAGS)" "LD=link $(XPLDFLAGS)" && popd
760 !else
761 @pushd "$(ZLIBDIR)" && $(MAKE) /f win32\Makefile.msc $(ZLIB) && popd
762 !endif
763
 
 
 
764 !if $(FOSSIL_ENABLE_SSL)!=0
765 openssl:
766 @echo Building OpenSSL from "$(SSLDIR)"...
767 !if "$(PERLDIR)" != ""
768 @set PATH=$(PERLDIR);$(PATH)
 
 
769 !endif
770 @pushd "$(SSLDIR)" && $(PERL) Configure $(SSLCONFIG) && popd
771 !if $(FOSSIL_ENABLE_WINXP)!=0
772 @pushd "$(SSLDIR)" && $(MAKE) "CC=cl $(XPCFLAGS)" "LFLAGS=$(XPLDFLAGS)" && popd
773 !else
774 @pushd "$(SSLDIR)" && $(MAKE) && popd
775 !endif
 
 
 
776 !endif
777
778 !if $(FOSSIL_ENABLE_MINIZ)==0
779 !if $(FOSSIL_BUILD_ZLIB)!=0
780 APPTARGETS = $(APPTARGETS) zlib
@@ -785,191 +821,188 @@
785 !if $(FOSSIL_BUILD_SSL)!=0
786 APPTARGETS = $(APPTARGETS) openssl
787 !endif
788 !endif
789
790 $(APPNAME) : $(APPTARGETS) translate$E mkindex$E codecheck1$E headers $(OBJ) $(OX)\linkopts
791 cd $(OX)
792 codecheck1$E $(SRC)
793 link $(LDFLAGS) /OUT:$@ $(LIBDIR) Wsetargv.obj fossil.res @linkopts
794 if exist [email protected] \
795 $(MTC) -nologo -manifest [email protected] -outputresource:$@;1
796
797 $(OX)\linkopts: $B\win\Makefile.msc
798 echo $(OX)\add.obj > $@
799 echo $(OX)\alerts.obj >> $@
800 echo $(OX)\allrepo.obj >> $@
801 echo $(OX)\attach.obj >> $@
802 echo $(OX)\backlink.obj >> $@
803 echo $(OX)\backoffice.obj >> $@
804 echo $(OX)\bag.obj >> $@
805 echo $(OX)\bisect.obj >> $@
806 echo $(OX)\blob.obj >> $@
807 echo $(OX)\branch.obj >> $@
808 echo $(OX)\browse.obj >> $@
809 echo $(OX)\builtin.obj >> $@
810 echo $(OX)\bundle.obj >> $@
811 echo $(OX)\cache.obj >> $@
812 echo $(OX)\capabilities.obj >> $@
813 echo $(OX)\captcha.obj >> $@
814 echo $(OX)\cgi.obj >> $@
815 echo $(OX)\checkin.obj >> $@
816 echo $(OX)\checkout.obj >> $@
817 echo $(OX)\clearsign.obj >> $@
818 echo $(OX)\clone.obj >> $@
819 echo $(OX)\comformat.obj >> $@
820 echo $(OX)\configure.obj >> $@
821 echo $(OX)\content.obj >> $@
822 echo $(OX)\cookies.obj >> $@
823 echo $(OX)\cson_amalgamation.obj >> $@
824 echo $(OX)\db.obj >> $@
825 echo $(OX)\delta.obj >> $@
826 echo $(OX)\deltacmd.obj >> $@
827 echo $(OX)\deltafunc.obj >> $@
828 echo $(OX)\descendants.obj >> $@
829 echo $(OX)\diff.obj >> $@
830 echo $(OX)\diffcmd.obj >> $@
831 echo $(OX)\dispatch.obj >> $@
832 echo $(OX)\doc.obj >> $@
833 echo $(OX)\encode.obj >> $@
834 echo $(OX)\etag.obj >> $@
835 echo $(OX)\event.obj >> $@
836 echo $(OX)\export.obj >> $@
837 echo $(OX)\extcgi.obj >> $@
838 echo $(OX)\file.obj >> $@
839 echo $(OX)\fileedit.obj >> $@
840 echo $(OX)\finfo.obj >> $@
841 echo $(OX)\foci.obj >> $@
842 echo $(OX)\forum.obj >> $@
843 echo $(OX)\fshell.obj >> $@
844 echo $(OX)\fusefs.obj >> $@
845 echo $(OX)\fuzz.obj >> $@
846 echo $(OX)\glob.obj >> $@
847 echo $(OX)\graph.obj >> $@
848 echo $(OX)\gzip.obj >> $@
849 echo $(OX)\hname.obj >> $@
850 echo $(OX)\http.obj >> $@
851 echo $(OX)\http_socket.obj >> $@
852 echo $(OX)\http_ssl.obj >> $@
853 echo $(OX)\http_transport.obj >> $@
854 echo $(OX)\import.obj >> $@
855 echo $(OX)\info.obj >> $@
856 echo $(OX)\json.obj >> $@
857 echo $(OX)\json_artifact.obj >> $@
858 echo $(OX)\json_branch.obj >> $@
859 echo $(OX)\json_config.obj >> $@
860 echo $(OX)\json_diff.obj >> $@
861 echo $(OX)\json_dir.obj >> $@
862 echo $(OX)\json_finfo.obj >> $@
863 echo $(OX)\json_login.obj >> $@
864 echo $(OX)\json_query.obj >> $@
865 echo $(OX)\json_report.obj >> $@
866 echo $(OX)\json_status.obj >> $@
867 echo $(OX)\json_tag.obj >> $@
868 echo $(OX)\json_timeline.obj >> $@
869 echo $(OX)\json_user.obj >> $@
870 echo $(OX)\json_wiki.obj >> $@
871 echo $(OX)\leaf.obj >> $@
872 echo $(OX)\loadctrl.obj >> $@
873 echo $(OX)\login.obj >> $@
874 echo $(OX)\lookslike.obj >> $@
875 echo $(OX)\main.obj >> $@
876 echo $(OX)\manifest.obj >> $@
877 echo $(OX)\markdown.obj >> $@
878 echo $(OX)\markdown_html.obj >> $@
879 echo $(OX)\md5.obj >> $@
880 echo $(OX)\merge.obj >> $@
881 echo $(OX)\merge3.obj >> $@
882 echo $(OX)\moderate.obj >> $@
883 echo $(OX)\name.obj >> $@
884 echo $(OX)\path.obj >> $@
885 echo $(OX)\piechart.obj >> $@
886 echo $(OX)\pivot.obj >> $@
887 echo $(OX)\popen.obj >> $@
888 echo $(OX)\pqueue.obj >> $@
889 echo $(OX)\printf.obj >> $@
890 echo $(OX)\publish.obj >> $@
891 echo $(OX)\purge.obj >> $@
892 echo $(OX)\rebuild.obj >> $@
893 echo $(OX)\regexp.obj >> $@
894 echo $(OX)\repolist.obj >> $@
895 echo $(OX)\report.obj >> $@
896 echo $(OX)\rss.obj >> $@
897 echo $(OX)\schema.obj >> $@
898 echo $(OX)\search.obj >> $@
899 echo $(OX)\security_audit.obj >> $@
900 echo $(OX)\setup.obj >> $@
901 echo $(OX)\setupuser.obj >> $@
902 echo $(OX)\sha1.obj >> $@
903 echo $(OX)\sha1hard.obj >> $@
904 echo $(OX)\sha3.obj >> $@
905 echo $(OX)\shell.obj >> $@
906 echo $(OX)\shun.obj >> $@
907 echo $(OX)\sitemap.obj >> $@
908 echo $(OX)\skins.obj >> $@
909 echo $(OX)\smtp.obj >> $@
910 echo $(OX)\sqlcmd.obj >> $@
911 echo $(OX)\sqlite3.obj >> $@
912 echo $(OX)\stash.obj >> $@
913 echo $(OX)\stat.obj >> $@
914 echo $(OX)\statrep.obj >> $@
915 echo $(OX)\style.obj >> $@
916 echo $(OX)\sync.obj >> $@
917 echo $(OX)\tag.obj >> $@
918 echo $(OX)\tar.obj >> $@
919 echo $(OX)\terminal.obj >> $@
920 echo $(OX)\th.obj >> $@
921 echo $(OX)\th_lang.obj >> $@
922 echo $(OX)\th_main.obj >> $@
923 echo $(OX)\th_tcl.obj >> $@
924 echo $(OX)\timeline.obj >> $@
925 echo $(OX)\tkt.obj >> $@
926 echo $(OX)\tktsetup.obj >> $@
927 echo $(OX)\undo.obj >> $@
928 echo $(OX)\unicode.obj >> $@
929 echo $(OX)\unversioned.obj >> $@
930 echo $(OX)\update.obj >> $@
931 echo $(OX)\url.obj >> $@
932 echo $(OX)\user.obj >> $@
933 echo $(OX)\utf8.obj >> $@
934 echo $(OX)\util.obj >> $@
935 echo $(OX)\verify.obj >> $@
936 echo $(OX)\vfile.obj >> $@
937 echo $(OX)\webmail.obj >> $@
938 echo $(OX)\wiki.obj >> $@
939 echo $(OX)\wikiformat.obj >> $@
940 echo $(OX)\winfile.obj >> $@
941 echo $(OX)\winhttp.obj >> $@
942 echo $(OX)\wysiwyg.obj >> $@
943 echo $(OX)\xfer.obj >> $@
944 echo $(OX)\xfersetup.obj >> $@
945 echo $(OX)\zip.obj >> $@
946 !if $(FOSSIL_ENABLE_MINIZ)!=0
947 echo $(OX)\miniz.obj >> $@
948 !endif
949 echo $(LIBS) >> $@
950
951 $(OX):
952 @-mkdir $@
953
954 translate$E: $(SRCDIR)\translate.c
955 $(BCC) $**
956
957 makeheaders$E: $(SRCDIR)\makeheaders.c
958 $(BCC) $**
959
960 mkindex$E: $(SRCDIR)\mkindex.c
961 $(BCC) $**
962
963 mkbuiltin$E: $(SRCDIR)\mkbuiltin.c
964 $(BCC) $**
965
966 mkversion$E: $(SRCDIR)\mkversion.c
967 $(BCC) $**
968
969 codecheck1$E: $(SRCDIR)\codecheck1.c
970 $(BCC) $**
971
972 !if $(USE_SEE)!=0
973 SEE_FLAGS = /DSQLITE_HAS_CODEC=1 /DSQLITE_SHELL_DBKEY_PROC=fossil_key
974 SQLITE3_SHELL_SRC = $(SRCDIR)\shell-see.c
975 SQLITE3_SRC = $(SRCDIR)\sqlite3-see.c
@@ -977,1082 +1010,1195 @@
977 SEE_FLAGS =
978 SQLITE3_SHELL_SRC = $(SRCDIR)\shell.c
979 SQLITE3_SRC = $(SRCDIR)\sqlite3.c
980 !endif
981
982 $(OX)\shell$O : $(SQLITE3_SHELL_SRC) $B\win\Makefile.msc
983 $(TCC) /Fo$@ $(SHELL_OPTIONS) $(SQLITE_OPTIONS) $(SHELL_CFLAGS) $(SEE_FLAGS) -c $(SQLITE3_SHELL_SRC)
984
985 $(OX)\sqlite3$O : $(SQLITE3_SRC) $B\win\Makefile.msc
986 $(TCC) /Fo$@ -c $(SQLITE_OPTIONS) $(SQLITE_CFLAGS) $(SEE_FLAGS) $(SQLITE3_SRC)
987
988 $(OX)\th$O : $(SRCDIR)\th.c
989 $(TCC) /Fo$@ -c $**
990
991 $(OX)\th_lang$O : $(SRCDIR)\th_lang.c
992 $(TCC) /Fo$@ -c $**
993
994 $(OX)\th_tcl$O : $(SRCDIR)\th_tcl.c
995 $(TCC) /Fo$@ -c $**
996
997 $(OX)\miniz$O : $(SRCDIR)\miniz.c
998 $(TCC) /Fo$@ -c $(MINIZ_OPTIONS) $(SRCDIR)\miniz.c
999
1000 VERSION.h : mkversion$E $B\manifest.uuid $B\manifest $B\VERSION
1001 $** > $@
1002
1003 $(OX)\cson_amalgamation$O : $(SRCDIR)\cson_amalgamation.c
1004 $(TCC) /Fo$@ /c $**
1005
1006 page_index.h: mkindex$E $(SRC)
1007 $** > $@
1008
1009 builtin_data.h: mkbuiltin$E $(EXTRA_FILES)
1010 mkbuiltin$E --prefix $(SRCDIR)/ $(EXTRA_FILES) > $@
1011
1012 clean:
1013 -del $(OX)\*.obj 2>NUL
1014 -del *.obj 2>NUL
1015 -del *_.c 2>NUL
1016 -del *.h 2>NUL
1017 -del *.ilk 2>NUL
1018 -del *.map 2>NUL
1019 -del *.res 2>NUL
1020 -del headers 2>NUL
1021 -del linkopts 2>NUL
1022 -del vc*.pdb 2>NUL
1023
1024 realclean: clean
1025 -del $(APPNAME) 2>NUL
1026 -del $(PDBNAME) 2>NUL
1027 -del translate$E 2>NUL
1028 -del translate$P 2>NUL
1029 -del mkindex$E 2>NUL
1030 -del mkindex$P 2>NUL
1031 -del makeheaders$E 2>NUL
1032 -del makeheaders$P 2>NUL
1033 -del mkversion$E 2>NUL
1034 -del mkversion$P 2>NUL
1035 -del codecheck1$E 2>NUL
1036 -del codecheck1$P 2>NUL
1037 -del mkbuiltin$E 2>NUL
1038 -del mkbuiltin$P 2>NUL
1039
1040 $(OBJDIR)\json$O : $(SRCDIR)\json_detail.h
1041 $(OBJDIR)\json_artifact$O : $(SRCDIR)\json_detail.h
1042 $(OBJDIR)\json_branch$O : $(SRCDIR)\json_detail.h
1043 $(OBJDIR)\json_config$O : $(SRCDIR)\json_detail.h
1044 $(OBJDIR)\json_diff$O : $(SRCDIR)\json_detail.h
1045 $(OBJDIR)\json_dir$O : $(SRCDIR)\json_detail.h
1046 $(OBJDIR)\json_finfo$O : $(SRCDIR)\json_detail.h
1047 $(OBJDIR)\json_login$O : $(SRCDIR)\json_detail.h
1048 $(OBJDIR)\json_query$O : $(SRCDIR)\json_detail.h
1049 $(OBJDIR)\json_report$O : $(SRCDIR)\json_detail.h
1050 $(OBJDIR)\json_status$O : $(SRCDIR)\json_detail.h
1051 $(OBJDIR)\json_tag$O : $(SRCDIR)\json_detail.h
1052 $(OBJDIR)\json_timeline$O : $(SRCDIR)\json_detail.h
1053 $(OBJDIR)\json_user$O : $(SRCDIR)\json_detail.h
1054 $(OBJDIR)\json_wiki$O : $(SRCDIR)\json_detail.h
1055
1056 $(OX)\add$O : add_.c add.h
1057 $(TCC) /Fo$@ -c add_.c
1058
1059 add_.c : $(SRCDIR)\add.c
1060 translate$E $** > $@
1061
1062 $(OX)\alerts$O : alerts_.c alerts.h
1063 $(TCC) /Fo$@ -c alerts_.c
1064
1065 alerts_.c : $(SRCDIR)\alerts.c
1066 translate$E $** > $@
1067
1068 $(OX)\allrepo$O : allrepo_.c allrepo.h
1069 $(TCC) /Fo$@ -c allrepo_.c
1070
1071 allrepo_.c : $(SRCDIR)\allrepo.c
1072 translate$E $** > $@
1073
1074 $(OX)\attach$O : attach_.c attach.h
1075 $(TCC) /Fo$@ -c attach_.c
1076
1077 attach_.c : $(SRCDIR)\attach.c
1078 translate$E $** > $@
1079
1080 $(OX)\backlink$O : backlink_.c backlink.h
1081 $(TCC) /Fo$@ -c backlink_.c
1082
1083 backlink_.c : $(SRCDIR)\backlink.c
1084 translate$E $** > $@
1085
1086 $(OX)\backoffice$O : backoffice_.c backoffice.h
1087 $(TCC) /Fo$@ -c backoffice_.c
1088
1089 backoffice_.c : $(SRCDIR)\backoffice.c
1090 translate$E $** > $@
1091
1092 $(OX)\bag$O : bag_.c bag.h
1093 $(TCC) /Fo$@ -c bag_.c
1094
1095 bag_.c : $(SRCDIR)\bag.c
1096 translate$E $** > $@
1097
1098 $(OX)\bisect$O : bisect_.c bisect.h
1099 $(TCC) /Fo$@ -c bisect_.c
1100
1101 bisect_.c : $(SRCDIR)\bisect.c
1102 translate$E $** > $@
1103
1104 $(OX)\blob$O : blob_.c blob.h
1105 $(TCC) /Fo$@ -c blob_.c
1106
1107 blob_.c : $(SRCDIR)\blob.c
1108 translate$E $** > $@
1109
1110 $(OX)\branch$O : branch_.c branch.h
1111 $(TCC) /Fo$@ -c branch_.c
1112
1113 branch_.c : $(SRCDIR)\branch.c
1114 translate$E $** > $@
1115
1116 $(OX)\browse$O : browse_.c browse.h
1117 $(TCC) /Fo$@ -c browse_.c
1118
1119 browse_.c : $(SRCDIR)\browse.c
1120 translate$E $** > $@
1121
1122 $(OX)\builtin$O : builtin_.c builtin.h
1123 $(TCC) /Fo$@ -c builtin_.c
1124
1125 builtin_.c : $(SRCDIR)\builtin.c
1126 translate$E $** > $@
1127
1128 $(OX)\bundle$O : bundle_.c bundle.h
1129 $(TCC) /Fo$@ -c bundle_.c
1130
1131 bundle_.c : $(SRCDIR)\bundle.c
1132 translate$E $** > $@
1133
1134 $(OX)\cache$O : cache_.c cache.h
1135 $(TCC) /Fo$@ -c cache_.c
1136
1137 cache_.c : $(SRCDIR)\cache.c
1138 translate$E $** > $@
1139
1140 $(OX)\capabilities$O : capabilities_.c capabilities.h
1141 $(TCC) /Fo$@ -c capabilities_.c
1142
1143 capabilities_.c : $(SRCDIR)\capabilities.c
1144 translate$E $** > $@
1145
1146 $(OX)\captcha$O : captcha_.c captcha.h
1147 $(TCC) /Fo$@ -c captcha_.c
1148
1149 captcha_.c : $(SRCDIR)\captcha.c
1150 translate$E $** > $@
1151
1152 $(OX)\cgi$O : cgi_.c cgi.h
1153 $(TCC) /Fo$@ -c cgi_.c
1154
1155 cgi_.c : $(SRCDIR)\cgi.c
1156 translate$E $** > $@
1157
1158 $(OX)\checkin$O : checkin_.c checkin.h
1159 $(TCC) /Fo$@ -c checkin_.c
1160
1161 checkin_.c : $(SRCDIR)\checkin.c
1162 translate$E $** > $@
1163
1164 $(OX)\checkout$O : checkout_.c checkout.h
1165 $(TCC) /Fo$@ -c checkout_.c
1166
1167 checkout_.c : $(SRCDIR)\checkout.c
1168 translate$E $** > $@
1169
1170 $(OX)\clearsign$O : clearsign_.c clearsign.h
1171 $(TCC) /Fo$@ -c clearsign_.c
1172
1173 clearsign_.c : $(SRCDIR)\clearsign.c
1174 translate$E $** > $@
1175
1176 $(OX)\clone$O : clone_.c clone.h
1177 $(TCC) /Fo$@ -c clone_.c
1178
1179 clone_.c : $(SRCDIR)\clone.c
1180 translate$E $** > $@
1181
1182 $(OX)\comformat$O : comformat_.c comformat.h
1183 $(TCC) /Fo$@ -c comformat_.c
1184
1185 comformat_.c : $(SRCDIR)\comformat.c
1186 translate$E $** > $@
1187
1188 $(OX)\configure$O : configure_.c configure.h
1189 $(TCC) /Fo$@ -c configure_.c
1190
1191 configure_.c : $(SRCDIR)\configure.c
1192 translate$E $** > $@
1193
1194 $(OX)\content$O : content_.c content.h
1195 $(TCC) /Fo$@ -c content_.c
1196
1197 content_.c : $(SRCDIR)\content.c
1198 translate$E $** > $@
1199
1200 $(OX)\cookies$O : cookies_.c cookies.h
1201 $(TCC) /Fo$@ -c cookies_.c
1202
1203 cookies_.c : $(SRCDIR)\cookies.c
1204 translate$E $** > $@
1205
1206 $(OX)\db$O : db_.c db.h
1207 $(TCC) /Fo$@ -c db_.c
1208
1209 db_.c : $(SRCDIR)\db.c
1210 translate$E $** > $@
1211
1212 $(OX)\delta$O : delta_.c delta.h
1213 $(TCC) /Fo$@ -c delta_.c
1214
1215 delta_.c : $(SRCDIR)\delta.c
1216 translate$E $** > $@
1217
1218 $(OX)\deltacmd$O : deltacmd_.c deltacmd.h
1219 $(TCC) /Fo$@ -c deltacmd_.c
1220
1221 deltacmd_.c : $(SRCDIR)\deltacmd.c
1222 translate$E $** > $@
1223
1224 $(OX)\deltafunc$O : deltafunc_.c deltafunc.h
1225 $(TCC) /Fo$@ -c deltafunc_.c
1226
1227 deltafunc_.c : $(SRCDIR)\deltafunc.c
1228 translate$E $** > $@
1229
1230 $(OX)\descendants$O : descendants_.c descendants.h
1231 $(TCC) /Fo$@ -c descendants_.c
1232
1233 descendants_.c : $(SRCDIR)\descendants.c
1234 translate$E $** > $@
1235
1236 $(OX)\diff$O : diff_.c diff.h
1237 $(TCC) /Fo$@ -c diff_.c
1238
1239 diff_.c : $(SRCDIR)\diff.c
1240 translate$E $** > $@
1241
1242 $(OX)\diffcmd$O : diffcmd_.c diffcmd.h
1243 $(TCC) /Fo$@ -c diffcmd_.c
1244
1245 diffcmd_.c : $(SRCDIR)\diffcmd.c
1246 translate$E $** > $@
1247
1248 $(OX)\dispatch$O : dispatch_.c dispatch.h
1249 $(TCC) /Fo$@ -c dispatch_.c
1250
1251 dispatch_.c : $(SRCDIR)\dispatch.c
1252 translate$E $** > $@
1253
1254 $(OX)\doc$O : doc_.c doc.h
1255 $(TCC) /Fo$@ -c doc_.c
1256
1257 doc_.c : $(SRCDIR)\doc.c
1258 translate$E $** > $@
1259
1260 $(OX)\encode$O : encode_.c encode.h
1261 $(TCC) /Fo$@ -c encode_.c
1262
1263 encode_.c : $(SRCDIR)\encode.c
1264 translate$E $** > $@
1265
1266 $(OX)\etag$O : etag_.c etag.h
1267 $(TCC) /Fo$@ -c etag_.c
1268
1269 etag_.c : $(SRCDIR)\etag.c
1270 translate$E $** > $@
1271
1272 $(OX)\event$O : event_.c event.h
1273 $(TCC) /Fo$@ -c event_.c
1274
1275 event_.c : $(SRCDIR)\event.c
1276 translate$E $** > $@
1277
1278 $(OX)\export$O : export_.c export.h
1279 $(TCC) /Fo$@ -c export_.c
1280
1281 export_.c : $(SRCDIR)\export.c
1282 translate$E $** > $@
1283
1284 $(OX)\extcgi$O : extcgi_.c extcgi.h
1285 $(TCC) /Fo$@ -c extcgi_.c
1286
1287 extcgi_.c : $(SRCDIR)\extcgi.c
1288 translate$E $** > $@
1289
1290 $(OX)\file$O : file_.c file.h
1291 $(TCC) /Fo$@ -c file_.c
1292
1293 file_.c : $(SRCDIR)\file.c
1294 translate$E $** > $@
1295
1296 $(OX)\fileedit$O : fileedit_.c fileedit.h
1297 $(TCC) /Fo$@ -c fileedit_.c
1298
1299 fileedit_.c : $(SRCDIR)\fileedit.c
1300 translate$E $** > $@
1301
1302 $(OX)\finfo$O : finfo_.c finfo.h
1303 $(TCC) /Fo$@ -c finfo_.c
1304
1305 finfo_.c : $(SRCDIR)\finfo.c
1306 translate$E $** > $@
1307
1308 $(OX)\foci$O : foci_.c foci.h
1309 $(TCC) /Fo$@ -c foci_.c
1310
1311 foci_.c : $(SRCDIR)\foci.c
1312 translate$E $** > $@
1313
1314 $(OX)\forum$O : forum_.c forum.h
1315 $(TCC) /Fo$@ -c forum_.c
1316
1317 forum_.c : $(SRCDIR)\forum.c
1318 translate$E $** > $@
1319
1320 $(OX)\fshell$O : fshell_.c fshell.h
1321 $(TCC) /Fo$@ -c fshell_.c
1322
1323 fshell_.c : $(SRCDIR)\fshell.c
1324 translate$E $** > $@
1325
1326 $(OX)\fusefs$O : fusefs_.c fusefs.h
1327 $(TCC) /Fo$@ -c fusefs_.c
1328
1329 fusefs_.c : $(SRCDIR)\fusefs.c
1330 translate$E $** > $@
1331
1332 $(OX)\fuzz$O : fuzz_.c fuzz.h
1333 $(TCC) /Fo$@ -c fuzz_.c
1334
1335 fuzz_.c : $(SRCDIR)\fuzz.c
1336 translate$E $** > $@
1337
1338 $(OX)\glob$O : glob_.c glob.h
1339 $(TCC) /Fo$@ -c glob_.c
1340
1341 glob_.c : $(SRCDIR)\glob.c
1342 translate$E $** > $@
1343
1344 $(OX)\graph$O : graph_.c graph.h
1345 $(TCC) /Fo$@ -c graph_.c
1346
1347 graph_.c : $(SRCDIR)\graph.c
1348 translate$E $** > $@
1349
1350 $(OX)\gzip$O : gzip_.c gzip.h
1351 $(TCC) /Fo$@ -c gzip_.c
1352
1353 gzip_.c : $(SRCDIR)\gzip.c
1354 translate$E $** > $@
1355
1356 $(OX)\hname$O : hname_.c hname.h
1357 $(TCC) /Fo$@ -c hname_.c
1358
1359 hname_.c : $(SRCDIR)\hname.c
1360 translate$E $** > $@
1361
1362 $(OX)\http$O : http_.c http.h
1363 $(TCC) /Fo$@ -c http_.c
1364
1365 http_.c : $(SRCDIR)\http.c
1366 translate$E $** > $@
1367
1368 $(OX)\http_socket$O : http_socket_.c http_socket.h
1369 $(TCC) /Fo$@ -c http_socket_.c
1370
1371 http_socket_.c : $(SRCDIR)\http_socket.c
1372 translate$E $** > $@
1373
1374 $(OX)\http_ssl$O : http_ssl_.c http_ssl.h
1375 $(TCC) /Fo$@ -c http_ssl_.c
1376
1377 http_ssl_.c : $(SRCDIR)\http_ssl.c
1378 translate$E $** > $@
1379
1380 $(OX)\http_transport$O : http_transport_.c http_transport.h
1381 $(TCC) /Fo$@ -c http_transport_.c
1382
1383 http_transport_.c : $(SRCDIR)\http_transport.c
1384 translate$E $** > $@
1385
1386 $(OX)\import$O : import_.c import.h
1387 $(TCC) /Fo$@ -c import_.c
1388
1389 import_.c : $(SRCDIR)\import.c
1390 translate$E $** > $@
1391
1392 $(OX)\info$O : info_.c info.h
1393 $(TCC) /Fo$@ -c info_.c
1394
1395 info_.c : $(SRCDIR)\info.c
1396 translate$E $** > $@
1397
1398 $(OX)\json$O : json_.c json.h
1399 $(TCC) /Fo$@ -c json_.c
1400
1401 json_.c : $(SRCDIR)\json.c
1402 translate$E $** > $@
1403
1404 $(OX)\json_artifact$O : json_artifact_.c json_artifact.h
1405 $(TCC) /Fo$@ -c json_artifact_.c
1406
1407 json_artifact_.c : $(SRCDIR)\json_artifact.c
1408 translate$E $** > $@
1409
1410 $(OX)\json_branch$O : json_branch_.c json_branch.h
1411 $(TCC) /Fo$@ -c json_branch_.c
1412
1413 json_branch_.c : $(SRCDIR)\json_branch.c
1414 translate$E $** > $@
1415
1416 $(OX)\json_config$O : json_config_.c json_config.h
1417 $(TCC) /Fo$@ -c json_config_.c
1418
1419 json_config_.c : $(SRCDIR)\json_config.c
1420 translate$E $** > $@
1421
1422 $(OX)\json_diff$O : json_diff_.c json_diff.h
1423 $(TCC) /Fo$@ -c json_diff_.c
1424
1425 json_diff_.c : $(SRCDIR)\json_diff.c
1426 translate$E $** > $@
1427
1428 $(OX)\json_dir$O : json_dir_.c json_dir.h
1429 $(TCC) /Fo$@ -c json_dir_.c
1430
1431 json_dir_.c : $(SRCDIR)\json_dir.c
1432 translate$E $** > $@
1433
1434 $(OX)\json_finfo$O : json_finfo_.c json_finfo.h
1435 $(TCC) /Fo$@ -c json_finfo_.c
1436
1437 json_finfo_.c : $(SRCDIR)\json_finfo.c
1438 translate$E $** > $@
1439
1440 $(OX)\json_login$O : json_login_.c json_login.h
1441 $(TCC) /Fo$@ -c json_login_.c
1442
1443 json_login_.c : $(SRCDIR)\json_login.c
1444 translate$E $** > $@
1445
1446 $(OX)\json_query$O : json_query_.c json_query.h
1447 $(TCC) /Fo$@ -c json_query_.c
1448
1449 json_query_.c : $(SRCDIR)\json_query.c
1450 translate$E $** > $@
1451
1452 $(OX)\json_report$O : json_report_.c json_report.h
1453 $(TCC) /Fo$@ -c json_report_.c
1454
1455 json_report_.c : $(SRCDIR)\json_report.c
1456 translate$E $** > $@
1457
1458 $(OX)\json_status$O : json_status_.c json_status.h
1459 $(TCC) /Fo$@ -c json_status_.c
1460
1461 json_status_.c : $(SRCDIR)\json_status.c
1462 translate$E $** > $@
1463
1464 $(OX)\json_tag$O : json_tag_.c json_tag.h
1465 $(TCC) /Fo$@ -c json_tag_.c
1466
1467 json_tag_.c : $(SRCDIR)\json_tag.c
1468 translate$E $** > $@
1469
1470 $(OX)\json_timeline$O : json_timeline_.c json_timeline.h
1471 $(TCC) /Fo$@ -c json_timeline_.c
1472
1473 json_timeline_.c : $(SRCDIR)\json_timeline.c
1474 translate$E $** > $@
1475
1476 $(OX)\json_user$O : json_user_.c json_user.h
1477 $(TCC) /Fo$@ -c json_user_.c
1478
1479 json_user_.c : $(SRCDIR)\json_user.c
1480 translate$E $** > $@
1481
1482 $(OX)\json_wiki$O : json_wiki_.c json_wiki.h
1483 $(TCC) /Fo$@ -c json_wiki_.c
1484
1485 json_wiki_.c : $(SRCDIR)\json_wiki.c
1486 translate$E $** > $@
1487
1488 $(OX)\leaf$O : leaf_.c leaf.h
1489 $(TCC) /Fo$@ -c leaf_.c
1490
1491 leaf_.c : $(SRCDIR)\leaf.c
1492 translate$E $** > $@
1493
1494 $(OX)\loadctrl$O : loadctrl_.c loadctrl.h
1495 $(TCC) /Fo$@ -c loadctrl_.c
1496
1497 loadctrl_.c : $(SRCDIR)\loadctrl.c
1498 translate$E $** > $@
1499
1500 $(OX)\login$O : login_.c login.h
1501 $(TCC) /Fo$@ -c login_.c
1502
1503 login_.c : $(SRCDIR)\login.c
1504 translate$E $** > $@
1505
1506 $(OX)\lookslike$O : lookslike_.c lookslike.h
1507 $(TCC) /Fo$@ -c lookslike_.c
1508
1509 lookslike_.c : $(SRCDIR)\lookslike.c
1510 translate$E $** > $@
1511
1512 $(OX)\main$O : main_.c main.h
1513 $(TCC) /Fo$@ -c main_.c
1514
1515 main_.c : $(SRCDIR)\main.c
1516 translate$E $** > $@
1517
1518 $(OX)\manifest$O : manifest_.c manifest.h
1519 $(TCC) /Fo$@ -c manifest_.c
1520
1521 manifest_.c : $(SRCDIR)\manifest.c
1522 translate$E $** > $@
1523
1524 $(OX)\markdown$O : markdown_.c markdown.h
1525 $(TCC) /Fo$@ -c markdown_.c
1526
1527 markdown_.c : $(SRCDIR)\markdown.c
1528 translate$E $** > $@
1529
1530 $(OX)\markdown_html$O : markdown_html_.c markdown_html.h
1531 $(TCC) /Fo$@ -c markdown_html_.c
1532
1533 markdown_html_.c : $(SRCDIR)\markdown_html.c
1534 translate$E $** > $@
1535
1536 $(OX)\md5$O : md5_.c md5.h
1537 $(TCC) /Fo$@ -c md5_.c
1538
1539 md5_.c : $(SRCDIR)\md5.c
1540 translate$E $** > $@
1541
1542 $(OX)\merge$O : merge_.c merge.h
1543 $(TCC) /Fo$@ -c merge_.c
1544
1545 merge_.c : $(SRCDIR)\merge.c
1546 translate$E $** > $@
1547
1548 $(OX)\merge3$O : merge3_.c merge3.h
1549 $(TCC) /Fo$@ -c merge3_.c
1550
1551 merge3_.c : $(SRCDIR)\merge3.c
1552 translate$E $** > $@
1553
1554 $(OX)\moderate$O : moderate_.c moderate.h
1555 $(TCC) /Fo$@ -c moderate_.c
1556
1557 moderate_.c : $(SRCDIR)\moderate.c
1558 translate$E $** > $@
1559
1560 $(OX)\name$O : name_.c name.h
1561 $(TCC) /Fo$@ -c name_.c
1562
1563 name_.c : $(SRCDIR)\name.c
1564 translate$E $** > $@
1565
1566 $(OX)\path$O : path_.c path.h
1567 $(TCC) /Fo$@ -c path_.c
1568
1569 path_.c : $(SRCDIR)\path.c
1570 translate$E $** > $@
1571
1572 $(OX)\piechart$O : piechart_.c piechart.h
1573 $(TCC) /Fo$@ -c piechart_.c
1574
1575 piechart_.c : $(SRCDIR)\piechart.c
1576 translate$E $** > $@
1577
1578 $(OX)\pivot$O : pivot_.c pivot.h
1579 $(TCC) /Fo$@ -c pivot_.c
1580
1581 pivot_.c : $(SRCDIR)\pivot.c
1582 translate$E $** > $@
1583
1584 $(OX)\popen$O : popen_.c popen.h
1585 $(TCC) /Fo$@ -c popen_.c
1586
1587 popen_.c : $(SRCDIR)\popen.c
1588 translate$E $** > $@
1589
1590 $(OX)\pqueue$O : pqueue_.c pqueue.h
1591 $(TCC) /Fo$@ -c pqueue_.c
1592
1593 pqueue_.c : $(SRCDIR)\pqueue.c
1594 translate$E $** > $@
1595
1596 $(OX)\printf$O : printf_.c printf.h
1597 $(TCC) /Fo$@ -c printf_.c
1598
1599 printf_.c : $(SRCDIR)\printf.c
1600 translate$E $** > $@
1601
1602 $(OX)\publish$O : publish_.c publish.h
1603 $(TCC) /Fo$@ -c publish_.c
1604
1605 publish_.c : $(SRCDIR)\publish.c
1606 translate$E $** > $@
1607
1608 $(OX)\purge$O : purge_.c purge.h
1609 $(TCC) /Fo$@ -c purge_.c
1610
1611 purge_.c : $(SRCDIR)\purge.c
1612 translate$E $** > $@
1613
1614 $(OX)\rebuild$O : rebuild_.c rebuild.h
1615 $(TCC) /Fo$@ -c rebuild_.c
1616
1617 rebuild_.c : $(SRCDIR)\rebuild.c
1618 translate$E $** > $@
1619
1620 $(OX)\regexp$O : regexp_.c regexp.h
1621 $(TCC) /Fo$@ -c regexp_.c
1622
1623 regexp_.c : $(SRCDIR)\regexp.c
1624 translate$E $** > $@
1625
1626 $(OX)\repolist$O : repolist_.c repolist.h
1627 $(TCC) /Fo$@ -c repolist_.c
1628
1629 repolist_.c : $(SRCDIR)\repolist.c
1630 translate$E $** > $@
1631
1632 $(OX)\report$O : report_.c report.h
1633 $(TCC) /Fo$@ -c report_.c
1634
1635 report_.c : $(SRCDIR)\report.c
1636 translate$E $** > $@
1637
1638 $(OX)\rss$O : rss_.c rss.h
1639 $(TCC) /Fo$@ -c rss_.c
1640
1641 rss_.c : $(SRCDIR)\rss.c
1642 translate$E $** > $@
1643
1644 $(OX)\schema$O : schema_.c schema.h
1645 $(TCC) /Fo$@ -c schema_.c
1646
1647 schema_.c : $(SRCDIR)\schema.c
1648 translate$E $** > $@
1649
1650 $(OX)\search$O : search_.c search.h
1651 $(TCC) /Fo$@ -c search_.c
1652
1653 search_.c : $(SRCDIR)\search.c
1654 translate$E $** > $@
1655
1656 $(OX)\security_audit$O : security_audit_.c security_audit.h
1657 $(TCC) /Fo$@ -c security_audit_.c
1658
1659 security_audit_.c : $(SRCDIR)\security_audit.c
1660 translate$E $** > $@
1661
1662 $(OX)\setup$O : setup_.c setup.h
1663 $(TCC) /Fo$@ -c setup_.c
1664
1665 setup_.c : $(SRCDIR)\setup.c
1666 translate$E $** > $@
1667
1668 $(OX)\setupuser$O : setupuser_.c setupuser.h
1669 $(TCC) /Fo$@ -c setupuser_.c
1670
1671 setupuser_.c : $(SRCDIR)\setupuser.c
1672 translate$E $** > $@
1673
1674 $(OX)\sha1$O : sha1_.c sha1.h
1675 $(TCC) /Fo$@ -c sha1_.c
1676
1677 sha1_.c : $(SRCDIR)\sha1.c
1678 translate$E $** > $@
1679
1680 $(OX)\sha1hard$O : sha1hard_.c sha1hard.h
1681 $(TCC) /Fo$@ -c sha1hard_.c
1682
1683 sha1hard_.c : $(SRCDIR)\sha1hard.c
1684 translate$E $** > $@
1685
1686 $(OX)\sha3$O : sha3_.c sha3.h
1687 $(TCC) /Fo$@ -c sha3_.c
1688
1689 sha3_.c : $(SRCDIR)\sha3.c
1690 translate$E $** > $@
1691
1692 $(OX)\shun$O : shun_.c shun.h
1693 $(TCC) /Fo$@ -c shun_.c
1694
1695 shun_.c : $(SRCDIR)\shun.c
1696 translate$E $** > $@
1697
1698 $(OX)\sitemap$O : sitemap_.c sitemap.h
1699 $(TCC) /Fo$@ -c sitemap_.c
1700
1701 sitemap_.c : $(SRCDIR)\sitemap.c
1702 translate$E $** > $@
1703
1704 $(OX)\skins$O : skins_.c skins.h
1705 $(TCC) /Fo$@ -c skins_.c
1706
1707 skins_.c : $(SRCDIR)\skins.c
1708 translate$E $** > $@
1709
1710 $(OX)\smtp$O : smtp_.c smtp.h
1711 $(TCC) /Fo$@ -c smtp_.c
1712
1713 smtp_.c : $(SRCDIR)\smtp.c
1714 translate$E $** > $@
1715
1716 $(OX)\sqlcmd$O : sqlcmd_.c sqlcmd.h
1717 $(TCC) /Fo$@ -c sqlcmd_.c
1718
1719 sqlcmd_.c : $(SRCDIR)\sqlcmd.c
1720 translate$E $** > $@
1721
1722 $(OX)\stash$O : stash_.c stash.h
1723 $(TCC) /Fo$@ -c stash_.c
1724
1725 stash_.c : $(SRCDIR)\stash.c
1726 translate$E $** > $@
1727
1728 $(OX)\stat$O : stat_.c stat.h
1729 $(TCC) /Fo$@ -c stat_.c
1730
1731 stat_.c : $(SRCDIR)\stat.c
1732 translate$E $** > $@
1733
1734 $(OX)\statrep$O : statrep_.c statrep.h
1735 $(TCC) /Fo$@ -c statrep_.c
1736
1737 statrep_.c : $(SRCDIR)\statrep.c
1738 translate$E $** > $@
1739
1740 $(OX)\style$O : style_.c style.h
1741 $(TCC) /Fo$@ -c style_.c
1742
1743 style_.c : $(SRCDIR)\style.c
1744 translate$E $** > $@
1745
1746 $(OX)\sync$O : sync_.c sync.h
1747 $(TCC) /Fo$@ -c sync_.c
1748
1749 sync_.c : $(SRCDIR)\sync.c
1750 translate$E $** > $@
1751
1752 $(OX)\tag$O : tag_.c tag.h
1753 $(TCC) /Fo$@ -c tag_.c
1754
1755 tag_.c : $(SRCDIR)\tag.c
1756 translate$E $** > $@
1757
1758 $(OX)\tar$O : tar_.c tar.h
1759 $(TCC) /Fo$@ -c tar_.c
1760
1761 tar_.c : $(SRCDIR)\tar.c
1762 translate$E $** > $@
1763
1764 $(OX)\terminal$O : terminal_.c terminal.h
1765 $(TCC) /Fo$@ -c terminal_.c
1766
1767 terminal_.c : $(SRCDIR)\terminal.c
1768 translate$E $** > $@
1769
1770 $(OX)\th_main$O : th_main_.c th_main.h
1771 $(TCC) /Fo$@ -c th_main_.c
1772
1773 th_main_.c : $(SRCDIR)\th_main.c
1774 translate$E $** > $@
1775
1776 $(OX)\timeline$O : timeline_.c timeline.h
1777 $(TCC) /Fo$@ -c timeline_.c
1778
1779 timeline_.c : $(SRCDIR)\timeline.c
1780 translate$E $** > $@
1781
1782 $(OX)\tkt$O : tkt_.c tkt.h
1783 $(TCC) /Fo$@ -c tkt_.c
1784
1785 tkt_.c : $(SRCDIR)\tkt.c
1786 translate$E $** > $@
1787
1788 $(OX)\tktsetup$O : tktsetup_.c tktsetup.h
1789 $(TCC) /Fo$@ -c tktsetup_.c
1790
1791 tktsetup_.c : $(SRCDIR)\tktsetup.c
1792 translate$E $** > $@
1793
1794 $(OX)\undo$O : undo_.c undo.h
1795 $(TCC) /Fo$@ -c undo_.c
1796
1797 undo_.c : $(SRCDIR)\undo.c
1798 translate$E $** > $@
1799
1800 $(OX)\unicode$O : unicode_.c unicode.h
1801 $(TCC) /Fo$@ -c unicode_.c
1802
1803 unicode_.c : $(SRCDIR)\unicode.c
1804 translate$E $** > $@
1805
1806 $(OX)\unversioned$O : unversioned_.c unversioned.h
1807 $(TCC) /Fo$@ -c unversioned_.c
1808
1809 unversioned_.c : $(SRCDIR)\unversioned.c
1810 translate$E $** > $@
1811
1812 $(OX)\update$O : update_.c update.h
1813 $(TCC) /Fo$@ -c update_.c
1814
1815 update_.c : $(SRCDIR)\update.c
1816 translate$E $** > $@
1817
1818 $(OX)\url$O : url_.c url.h
1819 $(TCC) /Fo$@ -c url_.c
1820
1821 url_.c : $(SRCDIR)\url.c
1822 translate$E $** > $@
1823
1824 $(OX)\user$O : user_.c user.h
1825 $(TCC) /Fo$@ -c user_.c
1826
1827 user_.c : $(SRCDIR)\user.c
1828 translate$E $** > $@
1829
1830 $(OX)\utf8$O : utf8_.c utf8.h
1831 $(TCC) /Fo$@ -c utf8_.c
1832
1833 utf8_.c : $(SRCDIR)\utf8.c
1834 translate$E $** > $@
1835
1836 $(OX)\util$O : util_.c util.h
1837 $(TCC) /Fo$@ -c util_.c
1838
1839 util_.c : $(SRCDIR)\util.c
1840 translate$E $** > $@
1841
1842 $(OX)\verify$O : verify_.c verify.h
1843 $(TCC) /Fo$@ -c verify_.c
1844
1845 verify_.c : $(SRCDIR)\verify.c
1846 translate$E $** > $@
1847
1848 $(OX)\vfile$O : vfile_.c vfile.h
1849 $(TCC) /Fo$@ -c vfile_.c
1850
1851 vfile_.c : $(SRCDIR)\vfile.c
1852 translate$E $** > $@
1853
1854 $(OX)\webmail$O : webmail_.c webmail.h
1855 $(TCC) /Fo$@ -c webmail_.c
1856
1857 webmail_.c : $(SRCDIR)\webmail.c
1858 translate$E $** > $@
1859
1860 $(OX)\wiki$O : wiki_.c wiki.h
1861 $(TCC) /Fo$@ -c wiki_.c
1862
1863 wiki_.c : $(SRCDIR)\wiki.c
1864 translate$E $** > $@
1865
1866 $(OX)\wikiformat$O : wikiformat_.c wikiformat.h
1867 $(TCC) /Fo$@ -c wikiformat_.c
1868
1869 wikiformat_.c : $(SRCDIR)\wikiformat.c
1870 translate$E $** > $@
1871
1872 $(OX)\winfile$O : winfile_.c winfile.h
1873 $(TCC) /Fo$@ -c winfile_.c
1874
1875 winfile_.c : $(SRCDIR)\winfile.c
1876 translate$E $** > $@
1877
1878 $(OX)\winhttp$O : winhttp_.c winhttp.h
1879 $(TCC) /Fo$@ -c winhttp_.c
1880
1881 winhttp_.c : $(SRCDIR)\winhttp.c
1882 translate$E $** > $@
1883
1884 $(OX)\wysiwyg$O : wysiwyg_.c wysiwyg.h
1885 $(TCC) /Fo$@ -c wysiwyg_.c
1886
1887 wysiwyg_.c : $(SRCDIR)\wysiwyg.c
1888 translate$E $** > $@
1889
1890 $(OX)\xfer$O : xfer_.c xfer.h
1891 $(TCC) /Fo$@ -c xfer_.c
1892
1893 xfer_.c : $(SRCDIR)\xfer.c
1894 translate$E $** > $@
1895
1896 $(OX)\xfersetup$O : xfersetup_.c xfersetup.h
1897 $(TCC) /Fo$@ -c xfersetup_.c
1898
1899 xfersetup_.c : $(SRCDIR)\xfersetup.c
1900 translate$E $** > $@
1901
1902 $(OX)\zip$O : zip_.c zip.h
1903 $(TCC) /Fo$@ -c zip_.c
1904
1905 zip_.c : $(SRCDIR)\zip.c
1906 translate$E $** > $@
1907
1908 fossil.res : $B\win\fossil.rc
1909 $(RCC) /fo $@ $**
1910
1911 headers: makeheaders$E page_index.h builtin_data.h VERSION.h
1912 makeheaders$E add_.c:add.h \
1913 alerts_.c:alerts.h \
1914 allrepo_.c:allrepo.h \
1915 attach_.c:attach.h \
1916 backlink_.c:backlink.h \
1917 backoffice_.c:backoffice.h \
1918 bag_.c:bag.h \
1919 bisect_.c:bisect.h \
1920 blob_.c:blob.h \
1921 branch_.c:branch.h \
1922 browse_.c:browse.h \
1923 builtin_.c:builtin.h \
1924 bundle_.c:bundle.h \
1925 cache_.c:cache.h \
1926 capabilities_.c:capabilities.h \
1927 captcha_.c:captcha.h \
1928 cgi_.c:cgi.h \
1929 checkin_.c:checkin.h \
1930 checkout_.c:checkout.h \
1931 clearsign_.c:clearsign.h \
1932 clone_.c:clone.h \
1933 comformat_.c:comformat.h \
1934 configure_.c:configure.h \
1935 content_.c:content.h \
1936 cookies_.c:cookies.h \
1937 db_.c:db.h \
1938 delta_.c:delta.h \
1939 deltacmd_.c:deltacmd.h \
1940 deltafunc_.c:deltafunc.h \
1941 descendants_.c:descendants.h \
1942 diff_.c:diff.h \
1943 diffcmd_.c:diffcmd.h \
1944 dispatch_.c:dispatch.h \
1945 doc_.c:doc.h \
1946 encode_.c:encode.h \
1947 etag_.c:etag.h \
1948 event_.c:event.h \
1949 export_.c:export.h \
1950 extcgi_.c:extcgi.h \
1951 file_.c:file.h \
1952 fileedit_.c:fileedit.h \
1953 finfo_.c:finfo.h \
1954 foci_.c:foci.h \
1955 forum_.c:forum.h \
1956 fshell_.c:fshell.h \
1957 fusefs_.c:fusefs.h \
1958 fuzz_.c:fuzz.h \
1959 glob_.c:glob.h \
1960 graph_.c:graph.h \
1961 gzip_.c:gzip.h \
1962 hname_.c:hname.h \
1963 http_.c:http.h \
1964 http_socket_.c:http_socket.h \
1965 http_ssl_.c:http_ssl.h \
1966 http_transport_.c:http_transport.h \
1967 import_.c:import.h \
1968 info_.c:info.h \
1969 json_.c:json.h \
1970 json_artifact_.c:json_artifact.h \
1971 json_branch_.c:json_branch.h \
1972 json_config_.c:json_config.h \
1973 json_diff_.c:json_diff.h \
1974 json_dir_.c:json_dir.h \
1975 json_finfo_.c:json_finfo.h \
1976 json_login_.c:json_login.h \
1977 json_query_.c:json_query.h \
1978 json_report_.c:json_report.h \
1979 json_status_.c:json_status.h \
1980 json_tag_.c:json_tag.h \
1981 json_timeline_.c:json_timeline.h \
1982 json_user_.c:json_user.h \
1983 json_wiki_.c:json_wiki.h \
1984 leaf_.c:leaf.h \
1985 loadctrl_.c:loadctrl.h \
1986 login_.c:login.h \
1987 lookslike_.c:lookslike.h \
1988 main_.c:main.h \
1989 manifest_.c:manifest.h \
1990 markdown_.c:markdown.h \
1991 markdown_html_.c:markdown_html.h \
1992 md5_.c:md5.h \
1993 merge_.c:merge.h \
1994 merge3_.c:merge3.h \
1995 moderate_.c:moderate.h \
1996 name_.c:name.h \
1997 path_.c:path.h \
1998 piechart_.c:piechart.h \
1999 pivot_.c:pivot.h \
2000 popen_.c:popen.h \
2001 pqueue_.c:pqueue.h \
2002 printf_.c:printf.h \
2003 publish_.c:publish.h \
2004 purge_.c:purge.h \
2005 rebuild_.c:rebuild.h \
2006 regexp_.c:regexp.h \
2007 repolist_.c:repolist.h \
2008 report_.c:report.h \
2009 rss_.c:rss.h \
2010 schema_.c:schema.h \
2011 search_.c:search.h \
2012 security_audit_.c:security_audit.h \
2013 setup_.c:setup.h \
2014 setupuser_.c:setupuser.h \
2015 sha1_.c:sha1.h \
2016 sha1hard_.c:sha1hard.h \
2017 sha3_.c:sha3.h \
2018 shun_.c:shun.h \
2019 sitemap_.c:sitemap.h \
2020 skins_.c:skins.h \
2021 smtp_.c:smtp.h \
2022 sqlcmd_.c:sqlcmd.h \
2023 stash_.c:stash.h \
2024 stat_.c:stat.h \
2025 statrep_.c:statrep.h \
2026 style_.c:style.h \
2027 sync_.c:sync.h \
2028 tag_.c:tag.h \
2029 tar_.c:tar.h \
2030 terminal_.c:terminal.h \
2031 th_main_.c:th_main.h \
2032 timeline_.c:timeline.h \
2033 tkt_.c:tkt.h \
2034 tktsetup_.c:tktsetup.h \
2035 undo_.c:undo.h \
2036 unicode_.c:unicode.h \
2037 unversioned_.c:unversioned.h \
2038 update_.c:update.h \
2039 url_.c:url.h \
2040 user_.c:user.h \
2041 utf8_.c:utf8.h \
2042 util_.c:util.h \
2043 verify_.c:verify.h \
2044 vfile_.c:vfile.h \
2045 webmail_.c:webmail.h \
2046 wiki_.c:wiki.h \
2047 wikiformat_.c:wikiformat.h \
2048 winfile_.c:winfile.h \
2049 winhttp_.c:winhttp.h \
2050 wysiwyg_.c:wysiwyg.h \
2051 xfer_.c:xfer.h \
2052 xfersetup_.c:xfersetup.h \
2053 zip_.c:zip.h \
2054 $(SRCDIR)\sqlite3.h \
2055 $(SRCDIR)\th.h \
2056 VERSION.h \
2057 $(SRCDIR)\cson_amalgamation.h
2058 @copy /Y nul: headers
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2059
--- win/Makefile.msc
+++ win/Makefile.msc
@@ -1,39 +1,52 @@
1 #
2 ##############################################################################
3 # WARNING: DO NOT EDIT, AUTOMATICALLY GENERATED FILE (SEE "src/makemake.tcl")
4 ##############################################################################
5 #
 
 
 
 
 
 
 
6 #
7 # This file is automatically generated. Instead of editing this
8 # file, edit "makemake.tcl" then run "tclsh makemake.tcl"
9 # to regenerate this file.
10 #
11 B = ..
12 SRCDIR = $(B)\src
13 T = .
14 OBJDIR = $(T)
15 OX = $(OBJDIR)
16 O = .obj
17 E = .exe
18 P = .pdb
19
20 INSTALLDIR = .
21 !ifdef DESTDIR
22 INSTALLDIR = $(DESTDIR)\$(INSTALLDIR)
23 !endif
24
25 # When building out of source, this Makefile needs to know the path to the base
26 # top-level directory for this project. Pass it on NMAKE command line via make
27 # variable B:
28 # NMAKE /f "path\to\this\Makefile" B="path/to/fossil/root"
29 #
30 # NOTE: Make sure B path has no trailing backslash, UNIX-style path is OK too.
31 #
32 !if !exist("$(B)\.fossil-settings")
33 !error Please specify path to project base directory: B="path/to/fossil"
34 !endif
35
36 # Perl is only necessary if OpenSSL support is enabled and it is built from
37 # source code. The PERLDIR environment variable, if it exists, should point
38 # to the directory containing the main Perl executable specified here (i.e.
39 # "perl.exe").
40 PERL = perl.exe
41
42 # Enable debugging symbols?
43 !ifndef DEBUG
44 DEBUG = 0
45 !endif
46 !ifdef FOSSIL_DEBUG
47 DEBUG = 1
48 !endif
49
50 # Build the OpenSSL libraries?
51 !ifndef FOSSIL_BUILD_SSL
52 FOSSIL_BUILD_SSL = 0
@@ -150,27 +163,30 @@
163 ZLIB = zdll.lib
164 !else
165 ZLIB = zlib.lib
166 !endif
167
168 INCL = /I. /I"$(OX)" /I"$(SRCDIR)" /I"$(B)\win\include"
169
170 !if $(FOSSIL_ENABLE_MINIZ)==0
171 INCL = $(INCL) /I"$(ZINCDIR)"
172 !endif
173
174 !if $(FOSSIL_ENABLE_SSL)!=0
175 INCL = $(INCL) /I"$(SSLINCDIR)"
176 !endif
177
178 !if $(FOSSIL_ENABLE_TCL)!=0
179 INCL = $(INCL) /I"$(TCLINCDIR)"
180 !endif
181
182 CFLAGS = /nologo
183 LDFLAGS =
184
185 CFLAGS = $(CFLAGS) /D_CRT_SECURE_NO_DEPRECATE /D_CRT_SECURE_NO_WARNINGS
186 CFLAGS = $(CFLAGS) /D_CRT_NONSTDC_NO_DEPRECATE /D_CRT_NONSTDC_NO_WARNINGS
187
188 !if $(FOSSIL_DYNAMIC_BUILD)!=0
189 LDFLAGS = $(LDFLAGS) /MANIFEST
190 !else
191 LDFLAGS = $(LDFLAGS) /NODEFAULTLIB:msvcrt /MANIFEST:NO
192 !endif
@@ -199,11 +215,11 @@
215 CRTFLAGS = /MT
216 !endif
217 !endif
218
219 !if $(DEBUG)!=0
220 CFLAGS = $(CFLAGS) /Zi $(CRTFLAGS) /Od /DFOSSIL_DEBUG
221 LDFLAGS = $(LDFLAGS) /DEBUG
222 !else
223 CFLAGS = $(CFLAGS) $(CRTFLAGS) /O2
224 !endif
225
@@ -219,11 +235,11 @@
235 RCC = $(RCC) /DFOSSIL_DYNAMIC_BUILD=1
236 !endif
237
238 !if $(FOSSIL_ENABLE_MINIZ)==0
239 LIBS = $(LIBS) $(ZLIB)
240 LIBDIR = $(LIBDIR) /LIBPATH:"$(ZLIBDIR)"
241 !endif
242
243 !if $(FOSSIL_ENABLE_MINIZ)!=0
244 TCC = $(TCC) /DFOSSIL_ENABLE_MINIZ=1
245 RCC = $(RCC) /DFOSSIL_ENABLE_MINIZ=1
@@ -236,11 +252,11 @@
252
253 !if $(FOSSIL_ENABLE_SSL)!=0
254 TCC = $(TCC) /DFOSSIL_ENABLE_SSL=1
255 RCC = $(RCC) /DFOSSIL_ENABLE_SSL=1
256 LIBS = $(LIBS) $(SSLLIB)
257 LIBDIR = $(LIBDIR) /LIBPATH:"$(SSLLIBDIR)"
258 !endif
259
260 !if $(FOSSIL_ENABLE_EXEC_REL_PATHS)!=0
261 TCC = $(TCC) /DFOSSIL_ENABLE_EXEC_REL_PATHS=1
262 RCC = $(RCC) /DFOSSIL_ENABLE_EXEC_REL_PATHS=1
@@ -283,11 +299,10 @@
299 /DSQLITE_DEFAULT_MEMSTATUS=0 \
300 /DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 \
301 /DSQLITE_LIKE_DOESNT_MATCH_BLOBS \
302 /DSQLITE_OMIT_DECLTYPE \
303 /DSQLITE_OMIT_DEPRECATED \
 
304 /DSQLITE_OMIT_PROGRESS_CALLBACK \
305 /DSQLITE_OMIT_SHARED_CACHE \
306 /DSQLITE_OMIT_LOAD_EXTENSION \
307 /DSQLITE_MAX_EXPR_DEPTH=0 \
308 /DSQLITE_USE_ALLOCA \
@@ -311,11 +326,10 @@
326 /DSQLITE_DEFAULT_MEMSTATUS=0 \
327 /DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 \
328 /DSQLITE_LIKE_DOESNT_MATCH_BLOBS \
329 /DSQLITE_OMIT_DECLTYPE \
330 /DSQLITE_OMIT_DEPRECATED \
 
331 /DSQLITE_OMIT_PROGRESS_CALLBACK \
332 /DSQLITE_OMIT_SHARED_CACHE \
333 /DSQLITE_OMIT_LOAD_EXTENSION \
334 /DSQLITE_MAX_EXPR_DEPTH=0 \
335 /DSQLITE_USE_ALLOCA \
@@ -344,405 +358,407 @@
358
359 MINIZ_OPTIONS = /DMINIZ_NO_STDIO \
360 /DMINIZ_NO_TIME \
361 /DMINIZ_NO_ARCHIVE_APIS
362
363 SRC = "$(OX)\add_.c" \
364 "$(OX)\ajax_.c" \
365 "$(OX)\alerts_.c" \
366 "$(OX)\allrepo_.c" \
367 "$(OX)\attach_.c" \
368 "$(OX)\backlink_.c" \
369 "$(OX)\backoffice_.c" \
370 "$(OX)\bag_.c" \
371 "$(OX)\bisect_.c" \
372 "$(OX)\blob_.c" \
373 "$(OX)\branch_.c" \
374 "$(OX)\browse_.c" \
375 "$(OX)\builtin_.c" \
376 "$(OX)\bundle_.c" \
377 "$(OX)\cache_.c" \
378 "$(OX)\capabilities_.c" \
379 "$(OX)\captcha_.c" \
380 "$(OX)\cgi_.c" \
381 "$(OX)\checkin_.c" \
382 "$(OX)\checkout_.c" \
383 "$(OX)\clearsign_.c" \
384 "$(OX)\clone_.c" \
385 "$(OX)\comformat_.c" \
386 "$(OX)\configure_.c" \
387 "$(OX)\content_.c" \
388 "$(OX)\cookies_.c" \
389 "$(OX)\db_.c" \
390 "$(OX)\delta_.c" \
391 "$(OX)\deltacmd_.c" \
392 "$(OX)\deltafunc_.c" \
393 "$(OX)\descendants_.c" \
394 "$(OX)\diff_.c" \
395 "$(OX)\diffcmd_.c" \
396 "$(OX)\dispatch_.c" \
397 "$(OX)\doc_.c" \
398 "$(OX)\encode_.c" \
399 "$(OX)\etag_.c" \
400 "$(OX)\event_.c" \
401 "$(OX)\export_.c" \
402 "$(OX)\extcgi_.c" \
403 "$(OX)\file_.c" \
404 "$(OX)\fileedit_.c" \
405 "$(OX)\finfo_.c" \
406 "$(OX)\foci_.c" \
407 "$(OX)\forum_.c" \
408 "$(OX)\fshell_.c" \
409 "$(OX)\fusefs_.c" \
410 "$(OX)\fuzz_.c" \
411 "$(OX)\glob_.c" \
412 "$(OX)\graph_.c" \
413 "$(OX)\gzip_.c" \
414 "$(OX)\hname_.c" \
415 "$(OX)\http_.c" \
416 "$(OX)\http_socket_.c" \
417 "$(OX)\http_ssl_.c" \
418 "$(OX)\http_transport_.c" \
419 "$(OX)\import_.c" \
420 "$(OX)\info_.c" \
421 "$(OX)\json_.c" \
422 "$(OX)\json_artifact_.c" \
423 "$(OX)\json_branch_.c" \
424 "$(OX)\json_config_.c" \
425 "$(OX)\json_diff_.c" \
426 "$(OX)\json_dir_.c" \
427 "$(OX)\json_finfo_.c" \
428 "$(OX)\json_login_.c" \
429 "$(OX)\json_query_.c" \
430 "$(OX)\json_report_.c" \
431 "$(OX)\json_status_.c" \
432 "$(OX)\json_tag_.c" \
433 "$(OX)\json_timeline_.c" \
434 "$(OX)\json_user_.c" \
435 "$(OX)\json_wiki_.c" \
436 "$(OX)\leaf_.c" \
437 "$(OX)\loadctrl_.c" \
438 "$(OX)\login_.c" \
439 "$(OX)\lookslike_.c" \
440 "$(OX)\main_.c" \
441 "$(OX)\manifest_.c" \
442 "$(OX)\markdown_.c" \
443 "$(OX)\markdown_html_.c" \
444 "$(OX)\md5_.c" \
445 "$(OX)\merge_.c" \
446 "$(OX)\merge3_.c" \
447 "$(OX)\moderate_.c" \
448 "$(OX)\name_.c" \
449 "$(OX)\path_.c" \
450 "$(OX)\piechart_.c" \
451 "$(OX)\pivot_.c" \
452 "$(OX)\popen_.c" \
453 "$(OX)\pqueue_.c" \
454 "$(OX)\printf_.c" \
455 "$(OX)\publish_.c" \
456 "$(OX)\purge_.c" \
457 "$(OX)\rebuild_.c" \
458 "$(OX)\regexp_.c" \
459 "$(OX)\repolist_.c" \
460 "$(OX)\report_.c" \
461 "$(OX)\rss_.c" \
462 "$(OX)\schema_.c" \
463 "$(OX)\search_.c" \
464 "$(OX)\security_audit_.c" \
465 "$(OX)\setup_.c" \
466 "$(OX)\setupuser_.c" \
467 "$(OX)\sha1_.c" \
468 "$(OX)\sha1hard_.c" \
469 "$(OX)\sha3_.c" \
470 "$(OX)\shun_.c" \
471 "$(OX)\sitemap_.c" \
472 "$(OX)\skins_.c" \
473 "$(OX)\smtp_.c" \
474 "$(OX)\sqlcmd_.c" \
475 "$(OX)\stash_.c" \
476 "$(OX)\stat_.c" \
477 "$(OX)\statrep_.c" \
478 "$(OX)\style_.c" \
479 "$(OX)\sync_.c" \
480 "$(OX)\tag_.c" \
481 "$(OX)\tar_.c" \
482 "$(OX)\terminal_.c" \
483 "$(OX)\th_main_.c" \
484 "$(OX)\timeline_.c" \
485 "$(OX)\tkt_.c" \
486 "$(OX)\tktsetup_.c" \
487 "$(OX)\undo_.c" \
488 "$(OX)\unicode_.c" \
489 "$(OX)\unversioned_.c" \
490 "$(OX)\update_.c" \
491 "$(OX)\url_.c" \
492 "$(OX)\user_.c" \
493 "$(OX)\utf8_.c" \
494 "$(OX)\util_.c" \
495 "$(OX)\verify_.c" \
496 "$(OX)\vfile_.c" \
497 "$(OX)\webmail_.c" \
498 "$(OX)\wiki_.c" \
499 "$(OX)\wikiformat_.c" \
500 "$(OX)\winfile_.c" \
501 "$(OX)\winhttp_.c" \
502 "$(OX)\wysiwyg_.c" \
503 "$(OX)\xfer_.c" \
504 "$(OX)\xfersetup_.c" \
505 "$(OX)\zip_.c"
506
507 EXTRA_FILES = "$(SRCDIR)\..\skins\aht\details.txt" \
508 "$(SRCDIR)\..\skins\ardoise\css.txt" \
509 "$(SRCDIR)\..\skins\ardoise\details.txt" \
510 "$(SRCDIR)\..\skins\ardoise\footer.txt" \
511 "$(SRCDIR)\..\skins\ardoise\header.txt" \
512 "$(SRCDIR)\..\skins\black_and_white\css.txt" \
513 "$(SRCDIR)\..\skins\black_and_white\details.txt" \
514 "$(SRCDIR)\..\skins\black_and_white\footer.txt" \
515 "$(SRCDIR)\..\skins\black_and_white\header.txt" \
516 "$(SRCDIR)\..\skins\blitz\css.txt" \
517 "$(SRCDIR)\..\skins\blitz\details.txt" \
518 "$(SRCDIR)\..\skins\blitz\footer.txt" \
519 "$(SRCDIR)\..\skins\blitz\header.txt" \
520 "$(SRCDIR)\..\skins\blitz\ticket.txt" \
521 "$(SRCDIR)\..\skins\blitz_no_logo\css.txt" \
522 "$(SRCDIR)\..\skins\blitz_no_logo\details.txt" \
523 "$(SRCDIR)\..\skins\blitz_no_logo\footer.txt" \
524 "$(SRCDIR)\..\skins\blitz_no_logo\header.txt" \
525 "$(SRCDIR)\..\skins\blitz_no_logo\ticket.txt" \
526 "$(SRCDIR)\..\skins\bootstrap\css.txt" \
527 "$(SRCDIR)\..\skins\bootstrap\details.txt" \
528 "$(SRCDIR)\..\skins\bootstrap\footer.txt" \
529 "$(SRCDIR)\..\skins\bootstrap\header.txt" \
530 "$(SRCDIR)\..\skins\default\css.txt" \
531 "$(SRCDIR)\..\skins\default\details.txt" \
532 "$(SRCDIR)\..\skins\default\footer.txt" \
533 "$(SRCDIR)\..\skins\default\header.txt" \
534 "$(SRCDIR)\..\skins\default\js.txt" \
535 "$(SRCDIR)\..\skins\eagle\css.txt" \
536 "$(SRCDIR)\..\skins\eagle\details.txt" \
537 "$(SRCDIR)\..\skins\eagle\footer.txt" \
538 "$(SRCDIR)\..\skins\eagle\header.txt" \
539 "$(SRCDIR)\..\skins\enhanced1\css.txt" \
540 "$(SRCDIR)\..\skins\enhanced1\details.txt" \
541 "$(SRCDIR)\..\skins\enhanced1\footer.txt" \
542 "$(SRCDIR)\..\skins\enhanced1\header.txt" \
543 "$(SRCDIR)\..\skins\khaki\css.txt" \
544 "$(SRCDIR)\..\skins\khaki\details.txt" \
545 "$(SRCDIR)\..\skins\khaki\footer.txt" \
546 "$(SRCDIR)\..\skins\khaki\header.txt" \
547 "$(SRCDIR)\..\skins\original\css.txt" \
548 "$(SRCDIR)\..\skins\original\details.txt" \
549 "$(SRCDIR)\..\skins\original\footer.txt" \
550 "$(SRCDIR)\..\skins\original\header.txt" \
551 "$(SRCDIR)\..\skins\plain_gray\css.txt" \
552 "$(SRCDIR)\..\skins\plain_gray\details.txt" \
553 "$(SRCDIR)\..\skins\plain_gray\footer.txt" \
554 "$(SRCDIR)\..\skins\plain_gray\header.txt" \
555 "$(SRCDIR)\..\skins\rounded1\css.txt" \
556 "$(SRCDIR)\..\skins\rounded1\details.txt" \
557 "$(SRCDIR)\..\skins\rounded1\footer.txt" \
558 "$(SRCDIR)\..\skins\rounded1\header.txt" \
559 "$(SRCDIR)\..\skins\xekri\css.txt" \
560 "$(SRCDIR)\..\skins\xekri\details.txt" \
561 "$(SRCDIR)\..\skins\xekri\footer.txt" \
562 "$(SRCDIR)\..\skins\xekri\header.txt" \
563 "$(SRCDIR)\accordion.js" \
564 "$(SRCDIR)\ci_edit.js" \
565 "$(SRCDIR)\copybtn.js" \
566 "$(SRCDIR)\default.css" \
567 "$(SRCDIR)\diff.tcl" \
568 "$(SRCDIR)\forum.js" \
569 "$(SRCDIR)\fossil.bootstrap.js" \
570 "$(SRCDIR)\fossil.confirmer.js" \
571 "$(SRCDIR)\fossil.dom.js" \
572 "$(SRCDIR)\fossil.fetch.js" \
573 "$(SRCDIR)\fossil.page.fileedit.js" \
574 "$(SRCDIR)\fossil.storage.js" \
575 "$(SRCDIR)\fossil.tabs.js" \
576 "$(SRCDIR)\graph.js" \
577 "$(SRCDIR)\href.js" \
578 "$(SRCDIR)\login.js" \
579 "$(SRCDIR)\markdown.md" \
580 "$(SRCDIR)\menu.js" \
581 "$(SRCDIR)\sbsdiff.js" \
582 "$(SRCDIR)\scroll.js" \
583 "$(SRCDIR)\skin.js" \
584 "$(SRCDIR)\sorttable.js" \
585 "$(SRCDIR)\sounds\0.wav" \
586 "$(SRCDIR)\sounds\1.wav" \
587 "$(SRCDIR)\sounds\2.wav" \
588 "$(SRCDIR)\sounds\3.wav" \
589 "$(SRCDIR)\sounds\4.wav" \
590 "$(SRCDIR)\sounds\5.wav" \
591 "$(SRCDIR)\sounds\6.wav" \
592 "$(SRCDIR)\sounds\7.wav" \
593 "$(SRCDIR)\sounds\8.wav" \
594 "$(SRCDIR)\sounds\9.wav" \
595 "$(SRCDIR)\sounds\a.wav" \
596 "$(SRCDIR)\sounds\b.wav" \
597 "$(SRCDIR)\sounds\c.wav" \
598 "$(SRCDIR)\sounds\d.wav" \
599 "$(SRCDIR)\sounds\e.wav" \
600 "$(SRCDIR)\sounds\f.wav" \
601 "$(SRCDIR)\style.admin_log.css" \
602 "$(SRCDIR)\style.fileedit.css" \
603 "$(SRCDIR)\tree.js" \
604 "$(SRCDIR)\useredit.js" \
605 "$(SRCDIR)\wiki.wiki"
606
607 OBJ = "$(OX)\add$O" \
608 "$(OX)\ajax$O" \
609 "$(OX)\alerts$O" \
610 "$(OX)\allrepo$O" \
611 "$(OX)\attach$O" \
612 "$(OX)\backlink$O" \
613 "$(OX)\backoffice$O" \
614 "$(OX)\bag$O" \
615 "$(OX)\bisect$O" \
616 "$(OX)\blob$O" \
617 "$(OX)\branch$O" \
618 "$(OX)\browse$O" \
619 "$(OX)\builtin$O" \
620 "$(OX)\bundle$O" \
621 "$(OX)\cache$O" \
622 "$(OX)\capabilities$O" \
623 "$(OX)\captcha$O" \
624 "$(OX)\cgi$O" \
625 "$(OX)\checkin$O" \
626 "$(OX)\checkout$O" \
627 "$(OX)\clearsign$O" \
628 "$(OX)\clone$O" \
629 "$(OX)\comformat$O" \
630 "$(OX)\configure$O" \
631 "$(OX)\content$O" \
632 "$(OX)\cookies$O" \
633 "$(OX)\cson_amalgamation$O" \
634 "$(OX)\db$O" \
635 "$(OX)\delta$O" \
636 "$(OX)\deltacmd$O" \
637 "$(OX)\deltafunc$O" \
638 "$(OX)\descendants$O" \
639 "$(OX)\diff$O" \
640 "$(OX)\diffcmd$O" \
641 "$(OX)\dispatch$O" \
642 "$(OX)\doc$O" \
643 "$(OX)\encode$O" \
644 "$(OX)\etag$O" \
645 "$(OX)\event$O" \
646 "$(OX)\export$O" \
647 "$(OX)\extcgi$O" \
648 "$(OX)\file$O" \
649 "$(OX)\fileedit$O" \
650 "$(OX)\finfo$O" \
651 "$(OX)\foci$O" \
652 "$(OX)\forum$O" \
653 "$(OX)\fshell$O" \
654 "$(OX)\fusefs$O" \
655 "$(OX)\fuzz$O" \
656 "$(OX)\glob$O" \
657 "$(OX)\graph$O" \
658 "$(OX)\gzip$O" \
659 "$(OX)\hname$O" \
660 "$(OX)\http$O" \
661 "$(OX)\http_socket$O" \
662 "$(OX)\http_ssl$O" \
663 "$(OX)\http_transport$O" \
664 "$(OX)\import$O" \
665 "$(OX)\info$O" \
666 "$(OX)\json$O" \
667 "$(OX)\json_artifact$O" \
668 "$(OX)\json_branch$O" \
669 "$(OX)\json_config$O" \
670 "$(OX)\json_diff$O" \
671 "$(OX)\json_dir$O" \
672 "$(OX)\json_finfo$O" \
673 "$(OX)\json_login$O" \
674 "$(OX)\json_query$O" \
675 "$(OX)\json_report$O" \
676 "$(OX)\json_status$O" \
677 "$(OX)\json_tag$O" \
678 "$(OX)\json_timeline$O" \
679 "$(OX)\json_user$O" \
680 "$(OX)\json_wiki$O" \
681 "$(OX)\leaf$O" \
682 "$(OX)\loadctrl$O" \
683 "$(OX)\login$O" \
684 "$(OX)\lookslike$O" \
685 "$(OX)\main$O" \
686 "$(OX)\manifest$O" \
687 "$(OX)\markdown$O" \
688 "$(OX)\markdown_html$O" \
689 "$(OX)\md5$O" \
690 "$(OX)\merge$O" \
691 "$(OX)\merge3$O" \
692 "$(OX)\moderate$O" \
693 "$(OX)\name$O" \
694 "$(OX)\path$O" \
695 "$(OX)\piechart$O" \
696 "$(OX)\pivot$O" \
697 "$(OX)\popen$O" \
698 "$(OX)\pqueue$O" \
699 "$(OX)\printf$O" \
700 "$(OX)\publish$O" \
701 "$(OX)\purge$O" \
702 "$(OX)\rebuild$O" \
703 "$(OX)\regexp$O" \
704 "$(OX)\repolist$O" \
705 "$(OX)\report$O" \
706 "$(OX)\rss$O" \
707 "$(OX)\schema$O" \
708 "$(OX)\search$O" \
709 "$(OX)\security_audit$O" \
710 "$(OX)\setup$O" \
711 "$(OX)\setupuser$O" \
712 "$(OX)\sha1$O" \
713 "$(OX)\sha1hard$O" \
714 "$(OX)\sha3$O" \
715 "$(OX)\shell$O" \
716 "$(OX)\shun$O" \
717 "$(OX)\sitemap$O" \
718 "$(OX)\skins$O" \
719 "$(OX)\smtp$O" \
720 "$(OX)\sqlcmd$O" \
721 "$(OX)\sqlite3$O" \
722 "$(OX)\stash$O" \
723 "$(OX)\stat$O" \
724 "$(OX)\statrep$O" \
725 "$(OX)\style$O" \
726 "$(OX)\sync$O" \
727 "$(OX)\tag$O" \
728 "$(OX)\tar$O" \
729 "$(OX)\terminal$O" \
730 "$(OX)\th$O" \
731 "$(OX)\th_lang$O" \
732 "$(OX)\th_main$O" \
733 "$(OX)\th_tcl$O" \
734 "$(OX)\timeline$O" \
735 "$(OX)\tkt$O" \
736 "$(OX)\tktsetup$O" \
737 "$(OX)\undo$O" \
738 "$(OX)\unicode$O" \
739 "$(OX)\unversioned$O" \
740 "$(OX)\update$O" \
741 "$(OX)\url$O" \
742 "$(OX)\user$O" \
743 "$(OX)\utf8$O" \
744 "$(OX)\util$O" \
745 "$(OX)\verify$O" \
746 "$(OX)\vfile$O" \
747 "$(OX)\webmail$O" \
748 "$(OX)\wiki$O" \
749 "$(OX)\wikiformat$O" \
750 "$(OX)\winfile$O" \
751 "$(OX)\winhttp$O" \
752 "$(OX)\wysiwyg$O" \
753 "$(OX)\xfer$O" \
754 "$(OX)\xfersetup$O" \
755 "$(OX)\zip$O" \
756 !if $(FOSSIL_ENABLE_MINIZ)!=0
757 "$(OX)\miniz$O" \
758 !endif
759 "$(OX)\fossil.res"
760
761
762 !ifndef BASEAPPNAME
763 BASEAPPNAME = fossil
764 !endif
@@ -749,32 +765,52 @@
765
766 APPNAME = $(OX)\$(BASEAPPNAME)$(E)
767 PDBNAME = $(OX)\$(BASEAPPNAME)$(P)
768 APPTARGETS =
769
770 all: "$(OX)" "$(APPNAME)"
771
772 $(BASEAPPNAME): "$(APPNAME)"
773
774 $(BASEAPPNAME)$(E): "$(APPNAME)"
775
776 install: "$(APPNAME)"
777 echo F | xcopy /Y "$(APPNAME)" "$(INSTALLDIR)"\*
778 !if $(DEBUG)!=0
779 echo F | xcopy /Y "$(PDBNAME)" "$(INSTALLDIR)"\*
780 !endif
781
782 $(OX):
783 @-mkdir $@
784
785 zlib:
786 @echo Building zlib from "$(ZLIBDIR)"...
787 !if $(FOSSIL_ENABLE_WINXP)!=0
788 @pushd "$(ZLIBDIR)" && $(MAKE) /f win32\Makefile.msc $(ZLIB) "CC=cl $(XPCFLAGS)" "LD=link $(XPLDFLAGS)" && popd
789 !else
790 @pushd "$(ZLIBDIR)" && $(MAKE) /f win32\Makefile.msc $(ZLIB) && popd
791 !endif
792
793 clean-zlib:
794 @pushd "$(ZLIBDIR)" && $(MAKE) /f win32\Makefile.msc clean && popd
795
796 !if $(FOSSIL_ENABLE_SSL)!=0
797 openssl:
798 @echo Building OpenSSL from "$(SSLDIR)"...
799 !ifdef PERLDIR
800 @pushd "$(SSLDIR)" && "$(PERLDIR)\$(PERL)" Configure $(SSLCONFIG) && popd
801 !else
802 @pushd "$(SSLDIR)" && "$(PERL)" Configure $(SSLCONFIG) && popd
803 !endif
 
804 !if $(FOSSIL_ENABLE_WINXP)!=0
805 @pushd "$(SSLDIR)" && $(MAKE) "CC=cl $(XPCFLAGS)" "LFLAGS=$(XPLDFLAGS)" && popd
806 !else
807 @pushd "$(SSLDIR)" && $(MAKE) && popd
808 !endif
809
810 clean-openssl:
811 @pushd "$(SSLDIR)" && $(MAKE) clean && popd
812 !endif
813
814 !if $(FOSSIL_ENABLE_MINIZ)==0
815 !if $(FOSSIL_BUILD_ZLIB)!=0
816 APPTARGETS = $(APPTARGETS) zlib
@@ -785,191 +821,188 @@
821 !if $(FOSSIL_BUILD_SSL)!=0
822 APPTARGETS = $(APPTARGETS) openssl
823 !endif
824 !endif
825
826 "$(APPNAME)" : $(APPTARGETS) "$(OBJDIR)\translate$E" "$(OBJDIR)\mkindex$E" "$(OBJDIR)\codecheck1$E" "$(OX)\headers" $(OBJ) "$(OX)\linkopts"
827 "$(OBJDIR)\codecheck1$E" $(SRC)
828 link $(LDFLAGS) /OUT:$@ /PDB:$(@D)\ $(LIBDIR) Wsetargv.obj "$(OX)\fossil.res" @"$(OX)\linkopts"
829 if exist "$(B)\win\fossil.exe.manifest" \
830 $(MTC) -nologo -manifest "$(B)\win\fossil.exe.manifest" -outputresource:$@;1
831
832 "$(OX)\linkopts": "$(B)\win\Makefile.msc"
833 echo "$(OX)\add.obj" > $@
834 echo "$(OX)\ajax.obj" >> $@
835 echo "$(OX)\alerts.obj" >> $@
836 echo "$(OX)\allrepo.obj" >> $@
837 echo "$(OX)\attach.obj" >> $@
838 echo "$(OX)\backlink.obj" >> $@
839 echo "$(OX)\backoffice.obj" >> $@
840 echo "$(OX)\bag.obj" >> $@
841 echo "$(OX)\bisect.obj" >> $@
842 echo "$(OX)\blob.obj" >> $@
843 echo "$(OX)\branch.obj" >> $@
844 echo "$(OX)\browse.obj" >> $@
845 echo "$(OX)\builtin.obj" >> $@
846 echo "$(OX)\bundle.obj" >> $@
847 echo "$(OX)\cache.obj" >> $@
848 echo "$(OX)\capabilities.obj" >> $@
849 echo "$(OX)\captcha.obj" >> $@
850 echo "$(OX)\cgi.obj" >> $@
851 echo "$(OX)\checkin.obj" >> $@
852 echo "$(OX)\checkout.obj" >> $@
853 echo "$(OX)\clearsign.obj" >> $@
854 echo "$(OX)\clone.obj" >> $@
855 echo "$(OX)\comformat.obj" >> $@
856 echo "$(OX)\configure.obj" >> $@
857 echo "$(OX)\content.obj" >> $@
858 echo "$(OX)\cookies.obj" >> $@
859 echo "$(OX)\cson_amalgamation.obj" >> $@
860 echo "$(OX)\db.obj" >> $@
861 echo "$(OX)\delta.obj" >> $@
862 echo "$(OX)\deltacmd.obj" >> $@
863 echo "$(OX)\deltafunc.obj" >> $@
864 echo "$(OX)\descendants.obj" >> $@
865 echo "$(OX)\diff.obj" >> $@
866 echo "$(OX)\diffcmd.obj" >> $@
867 echo "$(OX)\dispatch.obj" >> $@
868 echo "$(OX)\doc.obj" >> $@
869 echo "$(OX)\encode.obj" >> $@
870 echo "$(OX)\etag.obj" >> $@
871 echo "$(OX)\event.obj" >> $@
872 echo "$(OX)\export.obj" >> $@
873 echo "$(OX)\extcgi.obj" >> $@
874 echo "$(OX)\file.obj" >> $@
875 echo "$(OX)\fileedit.obj" >> $@
876 echo "$(OX)\finfo.obj" >> $@
877 echo "$(OX)\foci.obj" >> $@
878 echo "$(OX)\forum.obj" >> $@
879 echo "$(OX)\fshell.obj" >> $@
880 echo "$(OX)\fusefs.obj" >> $@
881 echo "$(OX)\fuzz.obj" >> $@
882 echo "$(OX)\glob.obj" >> $@
883 echo "$(OX)\graph.obj" >> $@
884 echo "$(OX)\gzip.obj" >> $@
885 echo "$(OX)\hname.obj" >> $@
886 echo "$(OX)\http.obj" >> $@
887 echo "$(OX)\http_socket.obj" >> $@
888 echo "$(OX)\http_ssl.obj" >> $@
889 echo "$(OX)\http_transport.obj" >> $@
890 echo "$(OX)\import.obj" >> $@
891 echo "$(OX)\info.obj" >> $@
892 echo "$(OX)\json.obj" >> $@
893 echo "$(OX)\json_artifact.obj" >> $@
894 echo "$(OX)\json_branch.obj" >> $@
895 echo "$(OX)\json_config.obj" >> $@
896 echo "$(OX)\json_diff.obj" >> $@
897 echo "$(OX)\json_dir.obj" >> $@
898 echo "$(OX)\json_finfo.obj" >> $@
899 echo "$(OX)\json_login.obj" >> $@
900 echo "$(OX)\json_query.obj" >> $@
901 echo "$(OX)\json_report.obj" >> $@
902 echo "$(OX)\json_status.obj" >> $@
903 echo "$(OX)\json_tag.obj" >> $@
904 echo "$(OX)\json_timeline.obj" >> $@
905 echo "$(OX)\json_user.obj" >> $@
906 echo "$(OX)\json_wiki.obj" >> $@
907 echo "$(OX)\leaf.obj" >> $@
908 echo "$(OX)\loadctrl.obj" >> $@
909 echo "$(OX)\login.obj" >> $@
910 echo "$(OX)\lookslike.obj" >> $@
911 echo "$(OX)\main.obj" >> $@
912 echo "$(OX)\manifest.obj" >> $@
913 echo "$(OX)\markdown.obj" >> $@
914 echo "$(OX)\markdown_html.obj" >> $@
915 echo "$(OX)\md5.obj" >> $@
916 echo "$(OX)\merge.obj" >> $@
917 echo "$(OX)\merge3.obj" >> $@
918 echo "$(OX)\moderate.obj" >> $@
919 echo "$(OX)\name.obj" >> $@
920 echo "$(OX)\path.obj" >> $@
921 echo "$(OX)\piechart.obj" >> $@
922 echo "$(OX)\pivot.obj" >> $@
923 echo "$(OX)\popen.obj" >> $@
924 echo "$(OX)\pqueue.obj" >> $@
925 echo "$(OX)\printf.obj" >> $@
926 echo "$(OX)\publish.obj" >> $@
927 echo "$(OX)\purge.obj" >> $@
928 echo "$(OX)\rebuild.obj" >> $@
929 echo "$(OX)\regexp.obj" >> $@
930 echo "$(OX)\repolist.obj" >> $@
931 echo "$(OX)\report.obj" >> $@
932 echo "$(OX)\rss.obj" >> $@
933 echo "$(OX)\schema.obj" >> $@
934 echo "$(OX)\search.obj" >> $@
935 echo "$(OX)\security_audit.obj" >> $@
936 echo "$(OX)\setup.obj" >> $@
937 echo "$(OX)\setupuser.obj" >> $@
938 echo "$(OX)\sha1.obj" >> $@
939 echo "$(OX)\sha1hard.obj" >> $@
940 echo "$(OX)\sha3.obj" >> $@
941 echo "$(OX)\shell.obj" >> $@
942 echo "$(OX)\shun.obj" >> $@
943 echo "$(OX)\sitemap.obj" >> $@
944 echo "$(OX)\skins.obj" >> $@
945 echo "$(OX)\smtp.obj" >> $@
946 echo "$(OX)\sqlcmd.obj" >> $@
947 echo "$(OX)\sqlite3.obj" >> $@
948 echo "$(OX)\stash.obj" >> $@
949 echo "$(OX)\stat.obj" >> $@
950 echo "$(OX)\statrep.obj" >> $@
951 echo "$(OX)\style.obj" >> $@
952 echo "$(OX)\sync.obj" >> $@
953 echo "$(OX)\tag.obj" >> $@
954 echo "$(OX)\tar.obj" >> $@
955 echo "$(OX)\terminal.obj" >> $@
956 echo "$(OX)\th.obj" >> $@
957 echo "$(OX)\th_lang.obj" >> $@
958 echo "$(OX)\th_main.obj" >> $@
959 echo "$(OX)\th_tcl.obj" >> $@
960 echo "$(OX)\timeline.obj" >> $@
961 echo "$(OX)\tkt.obj" >> $@
962 echo "$(OX)\tktsetup.obj" >> $@
963 echo "$(OX)\undo.obj" >> $@
964 echo "$(OX)\unicode.obj" >> $@
965 echo "$(OX)\unversioned.obj" >> $@
966 echo "$(OX)\update.obj" >> $@
967 echo "$(OX)\url.obj" >> $@
968 echo "$(OX)\user.obj" >> $@
969 echo "$(OX)\utf8.obj" >> $@
970 echo "$(OX)\util.obj" >> $@
971 echo "$(OX)\verify.obj" >> $@
972 echo "$(OX)\vfile.obj" >> $@
973 echo "$(OX)\webmail.obj" >> $@
974 echo "$(OX)\wiki.obj" >> $@
975 echo "$(OX)\wikiformat.obj" >> $@
976 echo "$(OX)\winfile.obj" >> $@
977 echo "$(OX)\winhttp.obj" >> $@
978 echo "$(OX)\wysiwyg.obj" >> $@
979 echo "$(OX)\xfer.obj" >> $@
980 echo "$(OX)\xfersetup.obj" >> $@
981 echo "$(OX)\zip.obj" >> $@
982 !if $(FOSSIL_ENABLE_MINIZ)!=0
983 echo "$(OX)\miniz.obj" >> $@
984 !endif
985 echo $(LIBS) >> $@
986
987 "$(OBJDIR)\translate$E": "$(SRCDIR)\translate.c"
988 $(BCC) /Fe$@ /Fo$(@D)\ /Fd$(@D)\ $**
989
990 "$(OBJDIR)\makeheaders$E": "$(SRCDIR)\makeheaders.c"
991 $(BCC) /Fe$@ /Fo$(@D)\ /Fd$(@D)\ $**
992
993 "$(OBJDIR)\mkindex$E": "$(SRCDIR)\mkindex.c"
994 $(BCC) /Fe$@ /Fo$(@D)\ /Fd$(@D)\ $**
995
996 "$(OBJDIR)\mkbuiltin$E": "$(SRCDIR)\mkbuiltin.c"
997 $(BCC) /Fe$@ /Fo$(@D)\ /Fd$(@D)\ $**
998
999 "$(OBJDIR)\mkversion$E": "$(SRCDIR)\mkversion.c"
1000 $(BCC) /Fe$@ /Fo$(@D)\ /Fd$(@D)\ $**
1001
1002 "$(OBJDIR)\codecheck1$E": "$(SRCDIR)\codecheck1.c"
1003 $(BCC) /Fe$@ /Fo$(@D)\ /Fd$(@D)\ $**
 
 
 
1004
1005 !if $(USE_SEE)!=0
1006 SEE_FLAGS = /DSQLITE_HAS_CODEC=1 /DSQLITE_SHELL_DBKEY_PROC=fossil_key
1007 SQLITE3_SHELL_SRC = $(SRCDIR)\shell-see.c
1008 SQLITE3_SRC = $(SRCDIR)\sqlite3-see.c
@@ -977,1082 +1010,1195 @@
1010 SEE_FLAGS =
1011 SQLITE3_SHELL_SRC = $(SRCDIR)\shell.c
1012 SQLITE3_SRC = $(SRCDIR)\sqlite3.c
1013 !endif
1014
1015 "$(OX)\shell$O" : "$(SQLITE3_SHELL_SRC)" "$(B)\win\Makefile.msc"
1016 $(TCC) /Fo$@ /Fd$(@D)\ $(SHELL_OPTIONS) $(SQLITE_OPTIONS) $(SHELL_CFLAGS) $(SEE_FLAGS) -c "$(SQLITE3_SHELL_SRC)"
1017
1018 "$(OX)\sqlite3$O" : "$(SQLITE3_SRC)" "$(B)\win\Makefile.msc"
1019 $(TCC) /Fo$@ /Fd$(@D)\ -c $(SQLITE_OPTIONS) $(SQLITE_CFLAGS) $(SEE_FLAGS) "$(SQLITE3_SRC)"
1020
1021 "$(OX)\th$O" : "$(SRCDIR)\th.c"
1022 $(TCC) /Fo$@ /Fd$(@D)\ -c $**
1023
1024 "$(OX)\th_lang$O" : "$(SRCDIR)\th_lang.c"
1025 $(TCC) /Fo$@ /Fd$(@D)\ -c $**
1026
1027 "$(OX)\th_tcl$O" : "$(SRCDIR)\th_tcl.c"
1028 $(TCC) /Fo$@ /Fd$(@D)\ -c $**
1029
1030 "$(OX)\miniz$O" : "$(SRCDIR)\miniz.c"
1031 $(TCC) /Fo$@ /Fd$(@D)\ -c $(MINIZ_OPTIONS) $**
1032
1033 "$(OX)\VERSION.h" : "$(OBJDIR)\mkversion$E" "$(B)\manifest.uuid" "$(B)\manifest" "$(B)\VERSION"
1034 $** > $@
1035
1036 "$(OX)\cson_amalgamation$O" : "$(SRCDIR)\cson_amalgamation.c"
1037 $(TCC) /Fo$@ /Fd$(@D)\ -c $**
1038
1039 "$(OX)\page_index.h": "$(OBJDIR)\mkindex$E" $(SRC)
1040 $** > $@
1041
1042 "$(OX)\builtin_data.h": "$(OBJDIR)\mkbuiltin$E" "$(OX)\builtin_data.reslist"
1043 "$(OBJDIR)\mkbuiltin$E" --prefix "$(SRCDIR)/" --reslist "$(OX)\builtin_data.reslist" > $@
1044
1045 cleanx:
1046 -del "$(OX)\*.obj" 2>NUL
1047 -del "$(OBJDIR)\*.obj" 2>NUL
1048 -del "$(OX)\*_.c" 2>NUL
1049 -del "$(OX)\*.h" 2>NUL
1050 -del "$(OX)\*.ilk" 2>NUL
1051 -del "$(OX)\*.map" 2>NUL
1052 -del "$(OX)\*.res" 2>NUL
1053 -del "$(OX)\*.reslist" 2>NUL
1054 -del "$(OX)\headers" 2>NUL
1055 -del "$(OX)\linkopts" 2>NUL
1056 -del "$(OX)\vc*.pdb" 2>NUL
1057
1058 clean: cleanx
1059 -del "$(APPNAME)" 2>NUL
1060 -del "$(PDBNAME)" 2>NUL
1061 -del "$(OBJDIR)\translate$E" 2>NUL
1062 -del "$(OBJDIR)\translate$P" 2>NUL
1063 -del "$(OBJDIR)\mkindex$E" 2>NUL
1064 -del "$(OBJDIR)\mkindex$P" 2>NUL
1065 -del "$(OBJDIR)\makeheaders$E" 2>NUL
1066 -del "$(OBJDIR)\makeheaders$P" 2>NUL
1067 -del "$(OBJDIR)\mkversion$E" 2>NUL
1068 -del "$(OBJDIR)\mkversion$P" 2>NUL
1069 -del "$(OBJDIR)\mkcss$E" 2>NUL
1070 -del "$(OBJDIR)\mkcss$P" 2>NUL
1071 -del "$(OBJDIR)\codecheck1$E" 2>NUL
1072 -del "$(OBJDIR)\codecheck1$P" 2>NUL
1073 -del "$(OBJDIR)\mkbuiltin$E" 2>NUL
1074 -del "$(OBJDIR)\mkbuiltin$P" 2>NUL
1075
1076 realclean: clean
1077
1078 "$(OBJDIR)\json$O" : "$(SRCDIR)\json_detail.h"
1079 "$(OBJDIR)\json_artifact$O" : "$(SRCDIR)\json_detail.h"
1080 "$(OBJDIR)\json_branch$O" : "$(SRCDIR)\json_detail.h"
1081 "$(OBJDIR)\json_config$O" : "$(SRCDIR)\json_detail.h"
1082 "$(OBJDIR)\json_diff$O" : "$(SRCDIR)\json_detail.h"
1083 "$(OBJDIR)\json_dir$O" : "$(SRCDIR)\json_detail.h"
1084 "$(OBJDIR)\json_finfo$O" : "$(SRCDIR)\json_detail.h"
1085 "$(OBJDIR)\json_login$O" : "$(SRCDIR)\json_detail.h"
1086 "$(OBJDIR)\json_query$O" : "$(SRCDIR)\json_detail.h"
1087 "$(OBJDIR)\json_report$O" : "$(SRCDIR)\json_detail.h"
1088 "$(OBJDIR)\json_status$O" : "$(SRCDIR)\json_detail.h"
1089 "$(OBJDIR)\json_tag$O" : "$(SRCDIR)\json_detail.h"
1090 "$(OBJDIR)\json_timeline$O" : "$(SRCDIR)\json_detail.h"
1091 "$(OBJDIR)\json_user$O" : "$(SRCDIR)\json_detail.h"
1092 "$(OBJDIR)\json_wiki$O" : "$(SRCDIR)\json_detail.h"
1093
1094 "$(OX)\builtin_data.reslist": $(EXTRA_FILES) "$(B)\win\Makefile.msc"
1095 echo "$(SRCDIR)\../skins/aht/details.txt" > $@
1096 echo "$(SRCDIR)\../skins/ardoise/css.txt" >> $@
1097 echo "$(SRCDIR)\../skins/ardoise/details.txt" >> $@
1098 echo "$(SRCDIR)\../skins/ardoise/footer.txt" >> $@
1099 echo "$(SRCDIR)\../skins/ardoise/header.txt" >> $@
1100 echo "$(SRCDIR)\../skins/black_and_white/css.txt" >> $@
1101 echo "$(SRCDIR)\../skins/black_and_white/details.txt" >> $@
1102 echo "$(SRCDIR)\../skins/black_and_white/footer.txt" >> $@
1103 echo "$(SRCDIR)\../skins/black_and_white/header.txt" >> $@
1104 echo "$(SRCDIR)\../skins/blitz/css.txt" >> $@
1105 echo "$(SRCDIR)\../skins/blitz/details.txt" >> $@
1106 echo "$(SRCDIR)\../skins/blitz/footer.txt" >> $@
1107 echo "$(SRCDIR)\../skins/blitz/header.txt" >> $@
1108 echo "$(SRCDIR)\../skins/blitz/ticket.txt" >> $@
1109 echo "$(SRCDIR)\../skins/blitz_no_logo/css.txt" >> $@
1110 echo "$(SRCDIR)\../skins/blitz_no_logo/details.txt" >> $@
1111 echo "$(SRCDIR)\../skins/blitz_no_logo/footer.txt" >> $@
1112 echo "$(SRCDIR)\../skins/blitz_no_logo/header.txt" >> $@
1113 echo "$(SRCDIR)\../skins/blitz_no_logo/ticket.txt" >> $@
1114 echo "$(SRCDIR)\../skins/bootstrap/css.txt" >> $@
1115 echo "$(SRCDIR)\../skins/bootstrap/details.txt" >> $@
1116 echo "$(SRCDIR)\../skins/bootstrap/footer.txt" >> $@
1117 echo "$(SRCDIR)\../skins/bootstrap/header.txt" >> $@
1118 echo "$(SRCDIR)\../skins/default/css.txt" >> $@
1119 echo "$(SRCDIR)\../skins/default/details.txt" >> $@
1120 echo "$(SRCDIR)\../skins/default/footer.txt" >> $@
1121 echo "$(SRCDIR)\../skins/default/header.txt" >> $@
1122 echo "$(SRCDIR)\../skins/default/js.txt" >> $@
1123 echo "$(SRCDIR)\../skins/eagle/css.txt" >> $@
1124 echo "$(SRCDIR)\../skins/eagle/details.txt" >> $@
1125 echo "$(SRCDIR)\../skins/eagle/footer.txt" >> $@
1126 echo "$(SRCDIR)\../skins/eagle/header.txt" >> $@
1127 echo "$(SRCDIR)\../skins/enhanced1/css.txt" >> $@
1128 echo "$(SRCDIR)\../skins/enhanced1/details.txt" >> $@
1129 echo "$(SRCDIR)\../skins/enhanced1/footer.txt" >> $@
1130 echo "$(SRCDIR)\../skins/enhanced1/header.txt" >> $@
1131 echo "$(SRCDIR)\../skins/khaki/css.txt" >> $@
1132 echo "$(SRCDIR)\../skins/khaki/details.txt" >> $@
1133 echo "$(SRCDIR)\../skins/khaki/footer.txt" >> $@
1134 echo "$(SRCDIR)\../skins/khaki/header.txt" >> $@
1135 echo "$(SRCDIR)\../skins/original/css.txt" >> $@
1136 echo "$(SRCDIR)\../skins/original/details.txt" >> $@
1137 echo "$(SRCDIR)\../skins/original/footer.txt" >> $@
1138 echo "$(SRCDIR)\../skins/original/header.txt" >> $@
1139 echo "$(SRCDIR)\../skins/plain_gray/css.txt" >> $@
1140 echo "$(SRCDIR)\../skins/plain_gray/details.txt" >> $@
1141 echo "$(SRCDIR)\../skins/plain_gray/footer.txt" >> $@
1142 echo "$(SRCDIR)\../skins/plain_gray/header.txt" >> $@
1143 echo "$(SRCDIR)\../skins/rounded1/css.txt" >> $@
1144 echo "$(SRCDIR)\../skins/rounded1/details.txt" >> $@
1145 echo "$(SRCDIR)\../skins/rounded1/footer.txt" >> $@
1146 echo "$(SRCDIR)\../skins/rounded1/header.txt" >> $@
1147 echo "$(SRCDIR)\../skins/xekri/css.txt" >> $@
1148 echo "$(SRCDIR)\../skins/xekri/details.txt" >> $@
1149 echo "$(SRCDIR)\../skins/xekri/footer.txt" >> $@
1150 echo "$(SRCDIR)\../skins/xekri/header.txt" >> $@
1151 echo "$(SRCDIR)\accordion.js" >> $@
1152 echo "$(SRCDIR)\ci_edit.js" >> $@
1153 echo "$(SRCDIR)\copybtn.js" >> $@
1154 echo "$(SRCDIR)\default.css" >> $@
1155 echo "$(SRCDIR)\diff.tcl" >> $@
1156 echo "$(SRCDIR)\forum.js" >> $@
1157 echo "$(SRCDIR)\fossil.bootstrap.js" >> $@
1158 echo "$(SRCDIR)\fossil.confirmer.js" >> $@
1159 echo "$(SRCDIR)\fossil.dom.js" >> $@
1160 echo "$(SRCDIR)\fossil.fetch.js" >> $@
1161 echo "$(SRCDIR)\fossil.page.fileedit.js" >> $@
1162 echo "$(SRCDIR)\fossil.storage.js" >> $@
1163 echo "$(SRCDIR)\fossil.tabs.js" >> $@
1164 echo "$(SRCDIR)\graph.js" >> $@
1165 echo "$(SRCDIR)\href.js" >> $@
1166 echo "$(SRCDIR)\login.js" >> $@
1167 echo "$(SRCDIR)\markdown.md" >> $@
1168 echo "$(SRCDIR)\menu.js" >> $@
1169 echo "$(SRCDIR)\sbsdiff.js" >> $@
1170 echo "$(SRCDIR)\scroll.js" >> $@
1171 echo "$(SRCDIR)\skin.js" >> $@
1172 echo "$(SRCDIR)\sorttable.js" >> $@
1173 echo "$(SRCDIR)\sounds/0.wav" >> $@
1174 echo "$(SRCDIR)\sounds/1.wav" >> $@
1175 echo "$(SRCDIR)\sounds/2.wav" >> $@
1176 echo "$(SRCDIR)\sounds/3.wav" >> $@
1177 echo "$(SRCDIR)\sounds/4.wav" >> $@
1178 echo "$(SRCDIR)\sounds/5.wav" >> $@
1179 echo "$(SRCDIR)\sounds/6.wav" >> $@
1180 echo "$(SRCDIR)\sounds/7.wav" >> $@
1181 echo "$(SRCDIR)\sounds/8.wav" >> $@
1182 echo "$(SRCDIR)\sounds/9.wav" >> $@
1183 echo "$(SRCDIR)\sounds/a.wav" >> $@
1184 echo "$(SRCDIR)\sounds/b.wav" >> $@
1185 echo "$(SRCDIR)\sounds/c.wav" >> $@
1186 echo "$(SRCDIR)\sounds/d.wav" >> $@
1187 echo "$(SRCDIR)\sounds/e.wav" >> $@
1188 echo "$(SRCDIR)\sounds/f.wav" >> $@
1189 echo "$(SRCDIR)\style.admin_log.css" >> $@
1190 echo "$(SRCDIR)\style.fileedit.css" >> $@
1191 echo "$(SRCDIR)\tree.js" >> $@
1192 echo "$(SRCDIR)\useredit.js" >> $@
1193 echo "$(SRCDIR)\wiki.wiki" >> $@
1194
1195 "$(OX)\add$O" : "$(OX)\add_.c" "$(OX)\add.h"
1196 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\add_.c"
1197
1198 "$(OX)\add_.c" : "$(SRCDIR)\add.c"
1199 "$(OBJDIR)\translate$E" $** > $@
1200
1201 "$(OX)\ajax$O" : "$(OX)\ajax_.c" "$(OX)\ajax.h"
1202 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\ajax_.c"
1203
1204 "$(OX)\ajax_.c" : "$(SRCDIR)\ajax.c"
1205 "$(OBJDIR)\translate$E" $** > $@
1206
1207 "$(OX)\alerts$O" : "$(OX)\alerts_.c" "$(OX)\alerts.h"
1208 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\alerts_.c"
1209
1210 "$(OX)\alerts_.c" : "$(SRCDIR)\alerts.c"
1211 "$(OBJDIR)\translate$E" $** > $@
1212
1213 "$(OX)\allrepo$O" : "$(OX)\allrepo_.c" "$(OX)\allrepo.h"
1214 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\allrepo_.c"
1215
1216 "$(OX)\allrepo_.c" : "$(SRCDIR)\allrepo.c"
1217 "$(OBJDIR)\translate$E" $** > $@
1218
1219 "$(OX)\attach$O" : "$(OX)\attach_.c" "$(OX)\attach.h"
1220 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\attach_.c"
1221
1222 "$(OX)\attach_.c" : "$(SRCDIR)\attach.c"
1223 "$(OBJDIR)\translate$E" $** > $@
1224
1225 "$(OX)\backlink$O" : "$(OX)\backlink_.c" "$(OX)\backlink.h"
1226 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\backlink_.c"
1227
1228 "$(OX)\backlink_.c" : "$(SRCDIR)\backlink.c"
1229 "$(OBJDIR)\translate$E" $** > $@
1230
1231 "$(OX)\backoffice$O" : "$(OX)\backoffice_.c" "$(OX)\backoffice.h"
1232 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\backoffice_.c"
1233
1234 "$(OX)\backoffice_.c" : "$(SRCDIR)\backoffice.c"
1235 "$(OBJDIR)\translate$E" $** > $@
1236
1237 "$(OX)\bag$O" : "$(OX)\bag_.c" "$(OX)\bag.h"
1238 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\bag_.c"
1239
1240 "$(OX)\bag_.c" : "$(SRCDIR)\bag.c"
1241 "$(OBJDIR)\translate$E" $** > $@
1242
1243 "$(OX)\bisect$O" : "$(OX)\bisect_.c" "$(OX)\bisect.h"
1244 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\bisect_.c"
1245
1246 "$(OX)\bisect_.c" : "$(SRCDIR)\bisect.c"
1247 "$(OBJDIR)\translate$E" $** > $@
1248
1249 "$(OX)\blob$O" : "$(OX)\blob_.c" "$(OX)\blob.h"
1250 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\blob_.c"
1251
1252 "$(OX)\blob_.c" : "$(SRCDIR)\blob.c"
1253 "$(OBJDIR)\translate$E" $** > $@
1254
1255 "$(OX)\branch$O" : "$(OX)\branch_.c" "$(OX)\branch.h"
1256 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\branch_.c"
1257
1258 "$(OX)\branch_.c" : "$(SRCDIR)\branch.c"
1259 "$(OBJDIR)\translate$E" $** > $@
1260
1261 "$(OX)\browse$O" : "$(OX)\browse_.c" "$(OX)\browse.h"
1262 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\browse_.c"
1263
1264 "$(OX)\browse_.c" : "$(SRCDIR)\browse.c"
1265 "$(OBJDIR)\translate$E" $** > $@
1266
1267 "$(OX)\builtin$O" : "$(OX)\builtin_.c" "$(OX)\builtin.h"
1268 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\builtin_.c"
1269
1270 "$(OX)\builtin_.c" : "$(SRCDIR)\builtin.c"
1271 "$(OBJDIR)\translate$E" $** > $@
1272
1273 "$(OX)\bundle$O" : "$(OX)\bundle_.c" "$(OX)\bundle.h"
1274 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\bundle_.c"
1275
1276 "$(OX)\bundle_.c" : "$(SRCDIR)\bundle.c"
1277 "$(OBJDIR)\translate$E" $** > $@
1278
1279 "$(OX)\cache$O" : "$(OX)\cache_.c" "$(OX)\cache.h"
1280 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\cache_.c"
1281
1282 "$(OX)\cache_.c" : "$(SRCDIR)\cache.c"
1283 "$(OBJDIR)\translate$E" $** > $@
1284
1285 "$(OX)\capabilities$O" : "$(OX)\capabilities_.c" "$(OX)\capabilities.h"
1286 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\capabilities_.c"
1287
1288 "$(OX)\capabilities_.c" : "$(SRCDIR)\capabilities.c"
1289 "$(OBJDIR)\translate$E" $** > $@
1290
1291 "$(OX)\captcha$O" : "$(OX)\captcha_.c" "$(OX)\captcha.h"
1292 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\captcha_.c"
1293
1294 "$(OX)\captcha_.c" : "$(SRCDIR)\captcha.c"
1295 "$(OBJDIR)\translate$E" $** > $@
1296
1297 "$(OX)\cgi$O" : "$(OX)\cgi_.c" "$(OX)\cgi.h"
1298 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\cgi_.c"
1299
1300 "$(OX)\cgi_.c" : "$(SRCDIR)\cgi.c"
1301 "$(OBJDIR)\translate$E" $** > $@
1302
1303 "$(OX)\checkin$O" : "$(OX)\checkin_.c" "$(OX)\checkin.h"
1304 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\checkin_.c"
1305
1306 "$(OX)\checkin_.c" : "$(SRCDIR)\checkin.c"
1307 "$(OBJDIR)\translate$E" $** > $@
1308
1309 "$(OX)\checkout$O" : "$(OX)\checkout_.c" "$(OX)\checkout.h"
1310 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\checkout_.c"
1311
1312 "$(OX)\checkout_.c" : "$(SRCDIR)\checkout.c"
1313 "$(OBJDIR)\translate$E" $** > $@
1314
1315 "$(OX)\clearsign$O" : "$(OX)\clearsign_.c" "$(OX)\clearsign.h"
1316 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\clearsign_.c"
1317
1318 "$(OX)\clearsign_.c" : "$(SRCDIR)\clearsign.c"
1319 "$(OBJDIR)\translate$E" $** > $@
1320
1321 "$(OX)\clone$O" : "$(OX)\clone_.c" "$(OX)\clone.h"
1322 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\clone_.c"
1323
1324 "$(OX)\clone_.c" : "$(SRCDIR)\clone.c"
1325 "$(OBJDIR)\translate$E" $** > $@
1326
1327 "$(OX)\comformat$O" : "$(OX)\comformat_.c" "$(OX)\comformat.h"
1328 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\comformat_.c"
1329
1330 "$(OX)\comformat_.c" : "$(SRCDIR)\comformat.c"
1331 "$(OBJDIR)\translate$E" $** > $@
1332
1333 "$(OX)\configure$O" : "$(OX)\configure_.c" "$(OX)\configure.h"
1334 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\configure_.c"
1335
1336 "$(OX)\configure_.c" : "$(SRCDIR)\configure.c"
1337 "$(OBJDIR)\translate$E" $** > $@
1338
1339 "$(OX)\content$O" : "$(OX)\content_.c" "$(OX)\content.h"
1340 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\content_.c"
1341
1342 "$(OX)\content_.c" : "$(SRCDIR)\content.c"
1343 "$(OBJDIR)\translate$E" $** > $@
1344
1345 "$(OX)\cookies$O" : "$(OX)\cookies_.c" "$(OX)\cookies.h"
1346 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\cookies_.c"
1347
1348 "$(OX)\cookies_.c" : "$(SRCDIR)\cookies.c"
1349 "$(OBJDIR)\translate$E" $** > $@
1350
1351 "$(OX)\db$O" : "$(OX)\db_.c" "$(OX)\db.h"
1352 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\db_.c"
1353
1354 "$(OX)\db_.c" : "$(SRCDIR)\db.c"
1355 "$(OBJDIR)\translate$E" $** > $@
1356
1357 "$(OX)\delta$O" : "$(OX)\delta_.c" "$(OX)\delta.h"
1358 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\delta_.c"
1359
1360 "$(OX)\delta_.c" : "$(SRCDIR)\delta.c"
1361 "$(OBJDIR)\translate$E" $** > $@
1362
1363 "$(OX)\deltacmd$O" : "$(OX)\deltacmd_.c" "$(OX)\deltacmd.h"
1364 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\deltacmd_.c"
1365
1366 "$(OX)\deltacmd_.c" : "$(SRCDIR)\deltacmd.c"
1367 "$(OBJDIR)\translate$E" $** > $@
1368
1369 "$(OX)\deltafunc$O" : "$(OX)\deltafunc_.c" "$(OX)\deltafunc.h"
1370 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\deltafunc_.c"
1371
1372 "$(OX)\deltafunc_.c" : "$(SRCDIR)\deltafunc.c"
1373 "$(OBJDIR)\translate$E" $** > $@
1374
1375 "$(OX)\descendants$O" : "$(OX)\descendants_.c" "$(OX)\descendants.h"
1376 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\descendants_.c"
1377
1378 "$(OX)\descendants_.c" : "$(SRCDIR)\descendants.c"
1379 "$(OBJDIR)\translate$E" $** > $@
1380
1381 "$(OX)\diff$O" : "$(OX)\diff_.c" "$(OX)\diff.h"
1382 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\diff_.c"
1383
1384 "$(OX)\diff_.c" : "$(SRCDIR)\diff.c"
1385 "$(OBJDIR)\translate$E" $** > $@
1386
1387 "$(OX)\diffcmd$O" : "$(OX)\diffcmd_.c" "$(OX)\diffcmd.h"
1388 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\diffcmd_.c"
1389
1390 "$(OX)\diffcmd_.c" : "$(SRCDIR)\diffcmd.c"
1391 "$(OBJDIR)\translate$E" $** > $@
1392
1393 "$(OX)\dispatch$O" : "$(OX)\dispatch_.c" "$(OX)\dispatch.h"
1394 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\dispatch_.c"
1395
1396 "$(OX)\dispatch_.c" : "$(SRCDIR)\dispatch.c"
1397 "$(OBJDIR)\translate$E" $** > $@
1398
1399 "$(OX)\doc$O" : "$(OX)\doc_.c" "$(OX)\doc.h"
1400 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\doc_.c"
1401
1402 "$(OX)\doc_.c" : "$(SRCDIR)\doc.c"
1403 "$(OBJDIR)\translate$E" $** > $@
1404
1405 "$(OX)\encode$O" : "$(OX)\encode_.c" "$(OX)\encode.h"
1406 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\encode_.c"
1407
1408 "$(OX)\encode_.c" : "$(SRCDIR)\encode.c"
1409 "$(OBJDIR)\translate$E" $** > $@
1410
1411 "$(OX)\etag$O" : "$(OX)\etag_.c" "$(OX)\etag.h"
1412 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\etag_.c"
1413
1414 "$(OX)\etag_.c" : "$(SRCDIR)\etag.c"
1415 "$(OBJDIR)\translate$E" $** > $@
1416
1417 "$(OX)\event$O" : "$(OX)\event_.c" "$(OX)\event.h"
1418 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\event_.c"
1419
1420 "$(OX)\event_.c" : "$(SRCDIR)\event.c"
1421 "$(OBJDIR)\translate$E" $** > $@
1422
1423 "$(OX)\export$O" : "$(OX)\export_.c" "$(OX)\export.h"
1424 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\export_.c"
1425
1426 "$(OX)\export_.c" : "$(SRCDIR)\export.c"
1427 "$(OBJDIR)\translate$E" $** > $@
1428
1429 "$(OX)\extcgi$O" : "$(OX)\extcgi_.c" "$(OX)\extcgi.h"
1430 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\extcgi_.c"
1431
1432 "$(OX)\extcgi_.c" : "$(SRCDIR)\extcgi.c"
1433 "$(OBJDIR)\translate$E" $** > $@
1434
1435 "$(OX)\file$O" : "$(OX)\file_.c" "$(OX)\file.h"
1436 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\file_.c"
1437
1438 "$(OX)\file_.c" : "$(SRCDIR)\file.c"
1439 "$(OBJDIR)\translate$E" $** > $@
1440
1441 "$(OX)\fileedit$O" : "$(OX)\fileedit_.c" "$(OX)\fileedit.h"
1442 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\fileedit_.c"
1443
1444 "$(OX)\fileedit_.c" : "$(SRCDIR)\fileedit.c"
1445 "$(OBJDIR)\translate$E" $** > $@
1446
1447 "$(OX)\finfo$O" : "$(OX)\finfo_.c" "$(OX)\finfo.h"
1448 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\finfo_.c"
1449
1450 "$(OX)\finfo_.c" : "$(SRCDIR)\finfo.c"
1451 "$(OBJDIR)\translate$E" $** > $@
1452
1453 "$(OX)\foci$O" : "$(OX)\foci_.c" "$(OX)\foci.h"
1454 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\foci_.c"
1455
1456 "$(OX)\foci_.c" : "$(SRCDIR)\foci.c"
1457 "$(OBJDIR)\translate$E" $** > $@
1458
1459 "$(OX)\forum$O" : "$(OX)\forum_.c" "$(OX)\forum.h"
1460 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\forum_.c"
1461
1462 "$(OX)\forum_.c" : "$(SRCDIR)\forum.c"
1463 "$(OBJDIR)\translate$E" $** > $@
1464
1465 "$(OX)\fshell$O" : "$(OX)\fshell_.c" "$(OX)\fshell.h"
1466 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\fshell_.c"
1467
1468 "$(OX)\fshell_.c" : "$(SRCDIR)\fshell.c"
1469 "$(OBJDIR)\translate$E" $** > $@
1470
1471 "$(OX)\fusefs$O" : "$(OX)\fusefs_.c" "$(OX)\fusefs.h"
1472 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\fusefs_.c"
1473
1474 "$(OX)\fusefs_.c" : "$(SRCDIR)\fusefs.c"
1475 "$(OBJDIR)\translate$E" $** > $@
1476
1477 "$(OX)\fuzz$O" : "$(OX)\fuzz_.c" "$(OX)\fuzz.h"
1478 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\fuzz_.c"
1479
1480 "$(OX)\fuzz_.c" : "$(SRCDIR)\fuzz.c"
1481 "$(OBJDIR)\translate$E" $** > $@
1482
1483 "$(OX)\glob$O" : "$(OX)\glob_.c" "$(OX)\glob.h"
1484 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\glob_.c"
1485
1486 "$(OX)\glob_.c" : "$(SRCDIR)\glob.c"
1487 "$(OBJDIR)\translate$E" $** > $@
1488
1489 "$(OX)\graph$O" : "$(OX)\graph_.c" "$(OX)\graph.h"
1490 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\graph_.c"
1491
1492 "$(OX)\graph_.c" : "$(SRCDIR)\graph.c"
1493 "$(OBJDIR)\translate$E" $** > $@
1494
1495 "$(OX)\gzip$O" : "$(OX)\gzip_.c" "$(OX)\gzip.h"
1496 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\gzip_.c"
1497
1498 "$(OX)\gzip_.c" : "$(SRCDIR)\gzip.c"
1499 "$(OBJDIR)\translate$E" $** > $@
1500
1501 "$(OX)\hname$O" : "$(OX)\hname_.c" "$(OX)\hname.h"
1502 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\hname_.c"
1503
1504 "$(OX)\hname_.c" : "$(SRCDIR)\hname.c"
1505 "$(OBJDIR)\translate$E" $** > $@
1506
1507 "$(OX)\http$O" : "$(OX)\http_.c" "$(OX)\http.h"
1508 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\http_.c"
1509
1510 "$(OX)\http_.c" : "$(SRCDIR)\http.c"
1511 "$(OBJDIR)\translate$E" $** > $@
1512
1513 "$(OX)\http_socket$O" : "$(OX)\http_socket_.c" "$(OX)\http_socket.h"
1514 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\http_socket_.c"
1515
1516 "$(OX)\http_socket_.c" : "$(SRCDIR)\http_socket.c"
1517 "$(OBJDIR)\translate$E" $** > $@
1518
1519 "$(OX)\http_ssl$O" : "$(OX)\http_ssl_.c" "$(OX)\http_ssl.h"
1520 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\http_ssl_.c"
1521
1522 "$(OX)\http_ssl_.c" : "$(SRCDIR)\http_ssl.c"
1523 "$(OBJDIR)\translate$E" $** > $@
1524
1525 "$(OX)\http_transport$O" : "$(OX)\http_transport_.c" "$(OX)\http_transport.h"
1526 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\http_transport_.c"
1527
1528 "$(OX)\http_transport_.c" : "$(SRCDIR)\http_transport.c"
1529 "$(OBJDIR)\translate$E" $** > $@
1530
1531 "$(OX)\import$O" : "$(OX)\import_.c" "$(OX)\import.h"
1532 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\import_.c"
1533
1534 "$(OX)\import_.c" : "$(SRCDIR)\import.c"
1535 "$(OBJDIR)\translate$E" $** > $@
1536
1537 "$(OX)\info$O" : "$(OX)\info_.c" "$(OX)\info.h"
1538 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\info_.c"
1539
1540 "$(OX)\info_.c" : "$(SRCDIR)\info.c"
1541 "$(OBJDIR)\translate$E" $** > $@
1542
1543 "$(OX)\json$O" : "$(OX)\json_.c" "$(OX)\json.h"
1544 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_.c"
1545
1546 "$(OX)\json_.c" : "$(SRCDIR)\json.c"
1547 "$(OBJDIR)\translate$E" $** > $@
1548
1549 "$(OX)\json_artifact$O" : "$(OX)\json_artifact_.c" "$(OX)\json_artifact.h"
1550 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_artifact_.c"
1551
1552 "$(OX)\json_artifact_.c" : "$(SRCDIR)\json_artifact.c"
1553 "$(OBJDIR)\translate$E" $** > $@
1554
1555 "$(OX)\json_branch$O" : "$(OX)\json_branch_.c" "$(OX)\json_branch.h"
1556 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_branch_.c"
1557
1558 "$(OX)\json_branch_.c" : "$(SRCDIR)\json_branch.c"
1559 "$(OBJDIR)\translate$E" $** > $@
1560
1561 "$(OX)\json_config$O" : "$(OX)\json_config_.c" "$(OX)\json_config.h"
1562 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_config_.c"
1563
1564 "$(OX)\json_config_.c" : "$(SRCDIR)\json_config.c"
1565 "$(OBJDIR)\translate$E" $** > $@
1566
1567 "$(OX)\json_diff$O" : "$(OX)\json_diff_.c" "$(OX)\json_diff.h"
1568 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_diff_.c"
1569
1570 "$(OX)\json_diff_.c" : "$(SRCDIR)\json_diff.c"
1571 "$(OBJDIR)\translate$E" $** > $@
1572
1573 "$(OX)\json_dir$O" : "$(OX)\json_dir_.c" "$(OX)\json_dir.h"
1574 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_dir_.c"
1575
1576 "$(OX)\json_dir_.c" : "$(SRCDIR)\json_dir.c"
1577 "$(OBJDIR)\translate$E" $** > $@
1578
1579 "$(OX)\json_finfo$O" : "$(OX)\json_finfo_.c" "$(OX)\json_finfo.h"
1580 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_finfo_.c"
1581
1582 "$(OX)\json_finfo_.c" : "$(SRCDIR)\json_finfo.c"
1583 "$(OBJDIR)\translate$E" $** > $@
1584
1585 "$(OX)\json_login$O" : "$(OX)\json_login_.c" "$(OX)\json_login.h"
1586 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_login_.c"
1587
1588 "$(OX)\json_login_.c" : "$(SRCDIR)\json_login.c"
1589 "$(OBJDIR)\translate$E" $** > $@
1590
1591 "$(OX)\json_query$O" : "$(OX)\json_query_.c" "$(OX)\json_query.h"
1592 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_query_.c"
1593
1594 "$(OX)\json_query_.c" : "$(SRCDIR)\json_query.c"
1595 "$(OBJDIR)\translate$E" $** > $@
1596
1597 "$(OX)\json_report$O" : "$(OX)\json_report_.c" "$(OX)\json_report.h"
1598 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_report_.c"
1599
1600 "$(OX)\json_report_.c" : "$(SRCDIR)\json_report.c"
1601 "$(OBJDIR)\translate$E" $** > $@
1602
1603 "$(OX)\json_status$O" : "$(OX)\json_status_.c" "$(OX)\json_status.h"
1604 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_status_.c"
1605
1606 "$(OX)\json_status_.c" : "$(SRCDIR)\json_status.c"
1607 "$(OBJDIR)\translate$E" $** > $@
1608
1609 "$(OX)\json_tag$O" : "$(OX)\json_tag_.c" "$(OX)\json_tag.h"
1610 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_tag_.c"
1611
1612 "$(OX)\json_tag_.c" : "$(SRCDIR)\json_tag.c"
1613 "$(OBJDIR)\translate$E" $** > $@
1614
1615 "$(OX)\json_timeline$O" : "$(OX)\json_timeline_.c" "$(OX)\json_timeline.h"
1616 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_timeline_.c"
1617
1618 "$(OX)\json_timeline_.c" : "$(SRCDIR)\json_timeline.c"
1619 "$(OBJDIR)\translate$E" $** > $@
1620
1621 "$(OX)\json_user$O" : "$(OX)\json_user_.c" "$(OX)\json_user.h"
1622 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_user_.c"
1623
1624 "$(OX)\json_user_.c" : "$(SRCDIR)\json_user.c"
1625 "$(OBJDIR)\translate$E" $** > $@
1626
1627 "$(OX)\json_wiki$O" : "$(OX)\json_wiki_.c" "$(OX)\json_wiki.h"
1628 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\json_wiki_.c"
1629
1630 "$(OX)\json_wiki_.c" : "$(SRCDIR)\json_wiki.c"
1631 "$(OBJDIR)\translate$E" $** > $@
1632
1633 "$(OX)\leaf$O" : "$(OX)\leaf_.c" "$(OX)\leaf.h"
1634 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\leaf_.c"
1635
1636 "$(OX)\leaf_.c" : "$(SRCDIR)\leaf.c"
1637 "$(OBJDIR)\translate$E" $** > $@
1638
1639 "$(OX)\loadctrl$O" : "$(OX)\loadctrl_.c" "$(OX)\loadctrl.h"
1640 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\loadctrl_.c"
1641
1642 "$(OX)\loadctrl_.c" : "$(SRCDIR)\loadctrl.c"
1643 "$(OBJDIR)\translate$E" $** > $@
1644
1645 "$(OX)\login$O" : "$(OX)\login_.c" "$(OX)\login.h"
1646 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\login_.c"
1647
1648 "$(OX)\login_.c" : "$(SRCDIR)\login.c"
1649 "$(OBJDIR)\translate$E" $** > $@
1650
1651 "$(OX)\lookslike$O" : "$(OX)\lookslike_.c" "$(OX)\lookslike.h"
1652 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\lookslike_.c"
1653
1654 "$(OX)\lookslike_.c" : "$(SRCDIR)\lookslike.c"
1655 "$(OBJDIR)\translate$E" $** > $@
1656
1657 "$(OX)\main$O" : "$(OX)\main_.c" "$(OX)\main.h"
1658 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\main_.c"
1659
1660 "$(OX)\main_.c" : "$(SRCDIR)\main.c"
1661 "$(OBJDIR)\translate$E" $** > $@
1662
1663 "$(OX)\manifest$O" : "$(OX)\manifest_.c" "$(OX)\manifest.h"
1664 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\manifest_.c"
1665
1666 "$(OX)\manifest_.c" : "$(SRCDIR)\manifest.c"
1667 "$(OBJDIR)\translate$E" $** > $@
1668
1669 "$(OX)\markdown$O" : "$(OX)\markdown_.c" "$(OX)\markdown.h"
1670 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\markdown_.c"
1671
1672 "$(OX)\markdown_.c" : "$(SRCDIR)\markdown.c"
1673 "$(OBJDIR)\translate$E" $** > $@
1674
1675 "$(OX)\markdown_html$O" : "$(OX)\markdown_html_.c" "$(OX)\markdown_html.h"
1676 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\markdown_html_.c"
1677
1678 "$(OX)\markdown_html_.c" : "$(SRCDIR)\markdown_html.c"
1679 "$(OBJDIR)\translate$E" $** > $@
1680
1681 "$(OX)\md5$O" : "$(OX)\md5_.c" "$(OX)\md5.h"
1682 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\md5_.c"
1683
1684 "$(OX)\md5_.c" : "$(SRCDIR)\md5.c"
1685 "$(OBJDIR)\translate$E" $** > $@
1686
1687 "$(OX)\merge$O" : "$(OX)\merge_.c" "$(OX)\merge.h"
1688 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\merge_.c"
1689
1690 "$(OX)\merge_.c" : "$(SRCDIR)\merge.c"
1691 "$(OBJDIR)\translate$E" $** > $@
1692
1693 "$(OX)\merge3$O" : "$(OX)\merge3_.c" "$(OX)\merge3.h"
1694 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\merge3_.c"
1695
1696 "$(OX)\merge3_.c" : "$(SRCDIR)\merge3.c"
1697 "$(OBJDIR)\translate$E" $** > $@
1698
1699 "$(OX)\moderate$O" : "$(OX)\moderate_.c" "$(OX)\moderate.h"
1700 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\moderate_.c"
1701
1702 "$(OX)\moderate_.c" : "$(SRCDIR)\moderate.c"
1703 "$(OBJDIR)\translate$E" $** > $@
1704
1705 "$(OX)\name$O" : "$(OX)\name_.c" "$(OX)\name.h"
1706 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\name_.c"
1707
1708 "$(OX)\name_.c" : "$(SRCDIR)\name.c"
1709 "$(OBJDIR)\translate$E" $** > $@
1710
1711 "$(OX)\path$O" : "$(OX)\path_.c" "$(OX)\path.h"
1712 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\path_.c"
1713
1714 "$(OX)\path_.c" : "$(SRCDIR)\path.c"
1715 "$(OBJDIR)\translate$E" $** > $@
1716
1717 "$(OX)\piechart$O" : "$(OX)\piechart_.c" "$(OX)\piechart.h"
1718 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\piechart_.c"
1719
1720 "$(OX)\piechart_.c" : "$(SRCDIR)\piechart.c"
1721 "$(OBJDIR)\translate$E" $** > $@
1722
1723 "$(OX)\pivot$O" : "$(OX)\pivot_.c" "$(OX)\pivot.h"
1724 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\pivot_.c"
1725
1726 "$(OX)\pivot_.c" : "$(SRCDIR)\pivot.c"
1727 "$(OBJDIR)\translate$E" $** > $@
1728
1729 "$(OX)\popen$O" : "$(OX)\popen_.c" "$(OX)\popen.h"
1730 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\popen_.c"
1731
1732 "$(OX)\popen_.c" : "$(SRCDIR)\popen.c"
1733 "$(OBJDIR)\translate$E" $** > $@
1734
1735 "$(OX)\pqueue$O" : "$(OX)\pqueue_.c" "$(OX)\pqueue.h"
1736 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\pqueue_.c"
1737
1738 "$(OX)\pqueue_.c" : "$(SRCDIR)\pqueue.c"
1739 "$(OBJDIR)\translate$E" $** > $@
1740
1741 "$(OX)\printf$O" : "$(OX)\printf_.c" "$(OX)\printf.h"
1742 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\printf_.c"
1743
1744 "$(OX)\printf_.c" : "$(SRCDIR)\printf.c"
1745 "$(OBJDIR)\translate$E" $** > $@
1746
1747 "$(OX)\publish$O" : "$(OX)\publish_.c" "$(OX)\publish.h"
1748 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\publish_.c"
1749
1750 "$(OX)\publish_.c" : "$(SRCDIR)\publish.c"
1751 "$(OBJDIR)\translate$E" $** > $@
1752
1753 "$(OX)\purge$O" : "$(OX)\purge_.c" "$(OX)\purge.h"
1754 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\purge_.c"
1755
1756 "$(OX)\purge_.c" : "$(SRCDIR)\purge.c"
1757 "$(OBJDIR)\translate$E" $** > $@
1758
1759 "$(OX)\rebuild$O" : "$(OX)\rebuild_.c" "$(OX)\rebuild.h"
1760 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\rebuild_.c"
1761
1762 "$(OX)\rebuild_.c" : "$(SRCDIR)\rebuild.c"
1763 "$(OBJDIR)\translate$E" $** > $@
1764
1765 "$(OX)\regexp$O" : "$(OX)\regexp_.c" "$(OX)\regexp.h"
1766 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\regexp_.c"
1767
1768 "$(OX)\regexp_.c" : "$(SRCDIR)\regexp.c"
1769 "$(OBJDIR)\translate$E" $** > $@
1770
1771 "$(OX)\repolist$O" : "$(OX)\repolist_.c" "$(OX)\repolist.h"
1772 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\repolist_.c"
1773
1774 "$(OX)\repolist_.c" : "$(SRCDIR)\repolist.c"
1775 "$(OBJDIR)\translate$E" $** > $@
1776
1777 "$(OX)\report$O" : "$(OX)\report_.c" "$(OX)\report.h"
1778 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\report_.c"
1779
1780 "$(OX)\report_.c" : "$(SRCDIR)\report.c"
1781 "$(OBJDIR)\translate$E" $** > $@
1782
1783 "$(OX)\rss$O" : "$(OX)\rss_.c" "$(OX)\rss.h"
1784 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\rss_.c"
1785
1786 "$(OX)\rss_.c" : "$(SRCDIR)\rss.c"
1787 "$(OBJDIR)\translate$E" $** > $@
1788
1789 "$(OX)\schema$O" : "$(OX)\schema_.c" "$(OX)\schema.h"
1790 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\schema_.c"
1791
1792 "$(OX)\schema_.c" : "$(SRCDIR)\schema.c"
1793 "$(OBJDIR)\translate$E" $** > $@
1794
1795 "$(OX)\search$O" : "$(OX)\search_.c" "$(OX)\search.h"
1796 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\search_.c"
1797
1798 "$(OX)\search_.c" : "$(SRCDIR)\search.c"
1799 "$(OBJDIR)\translate$E" $** > $@
1800
1801 "$(OX)\security_audit$O" : "$(OX)\security_audit_.c" "$(OX)\security_audit.h"
1802 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\security_audit_.c"
1803
1804 "$(OX)\security_audit_.c" : "$(SRCDIR)\security_audit.c"
1805 "$(OBJDIR)\translate$E" $** > $@
1806
1807 "$(OX)\setup$O" : "$(OX)\setup_.c" "$(OX)\setup.h"
1808 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\setup_.c"
1809
1810 "$(OX)\setup_.c" : "$(SRCDIR)\setup.c"
1811 "$(OBJDIR)\translate$E" $** > $@
1812
1813 "$(OX)\setupuser$O" : "$(OX)\setupuser_.c" "$(OX)\setupuser.h"
1814 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\setupuser_.c"
1815
1816 "$(OX)\setupuser_.c" : "$(SRCDIR)\setupuser.c"
1817 "$(OBJDIR)\translate$E" $** > $@
1818
1819 "$(OX)\sha1$O" : "$(OX)\sha1_.c" "$(OX)\sha1.h"
1820 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\sha1_.c"
1821
1822 "$(OX)\sha1_.c" : "$(SRCDIR)\sha1.c"
1823 "$(OBJDIR)\translate$E" $** > $@
1824
1825 "$(OX)\sha1hard$O" : "$(OX)\sha1hard_.c" "$(OX)\sha1hard.h"
1826 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\sha1hard_.c"
1827
1828 "$(OX)\sha1hard_.c" : "$(SRCDIR)\sha1hard.c"
1829 "$(OBJDIR)\translate$E" $** > $@
1830
1831 "$(OX)\sha3$O" : "$(OX)\sha3_.c" "$(OX)\sha3.h"
1832 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\sha3_.c"
1833
1834 "$(OX)\sha3_.c" : "$(SRCDIR)\sha3.c"
1835 "$(OBJDIR)\translate$E" $** > $@
1836
1837 "$(OX)\shun$O" : "$(OX)\shun_.c" "$(OX)\shun.h"
1838 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\shun_.c"
1839
1840 "$(OX)\shun_.c" : "$(SRCDIR)\shun.c"
1841 "$(OBJDIR)\translate$E" $** > $@
1842
1843 "$(OX)\sitemap$O" : "$(OX)\sitemap_.c" "$(OX)\sitemap.h"
1844 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\sitemap_.c"
1845
1846 "$(OX)\sitemap_.c" : "$(SRCDIR)\sitemap.c"
1847 "$(OBJDIR)\translate$E" $** > $@
1848
1849 "$(OX)\skins$O" : "$(OX)\skins_.c" "$(OX)\skins.h"
1850 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\skins_.c"
1851
1852 "$(OX)\skins_.c" : "$(SRCDIR)\skins.c"
1853 "$(OBJDIR)\translate$E" $** > $@
1854
1855 "$(OX)\smtp$O" : "$(OX)\smtp_.c" "$(OX)\smtp.h"
1856 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\smtp_.c"
1857
1858 "$(OX)\smtp_.c" : "$(SRCDIR)\smtp.c"
1859 "$(OBJDIR)\translate$E" $** > $@
1860
1861 "$(OX)\sqlcmd$O" : "$(OX)\sqlcmd_.c" "$(OX)\sqlcmd.h"
1862 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\sqlcmd_.c"
1863
1864 "$(OX)\sqlcmd_.c" : "$(SRCDIR)\sqlcmd.c"
1865 "$(OBJDIR)\translate$E" $** > $@
1866
1867 "$(OX)\stash$O" : "$(OX)\stash_.c" "$(OX)\stash.h"
1868 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\stash_.c"
1869
1870 "$(OX)\stash_.c" : "$(SRCDIR)\stash.c"
1871 "$(OBJDIR)\translate$E" $** > $@
1872
1873 "$(OX)\stat$O" : "$(OX)\stat_.c" "$(OX)\stat.h"
1874 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\stat_.c"
1875
1876 "$(OX)\stat_.c" : "$(SRCDIR)\stat.c"
1877 "$(OBJDIR)\translate$E" $** > $@
1878
1879 "$(OX)\statrep$O" : "$(OX)\statrep_.c" "$(OX)\statrep.h"
1880 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\statrep_.c"
1881
1882 "$(OX)\statrep_.c" : "$(SRCDIR)\statrep.c"
1883 "$(OBJDIR)\translate$E" $** > $@
1884
1885 "$(OX)\style$O" : "$(OX)\style_.c" "$(OX)\style.h"
1886 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\style_.c"
1887
1888 "$(OX)\style_.c" : "$(SRCDIR)\style.c"
1889 "$(OBJDIR)\translate$E" $** > $@
1890
1891 "$(OX)\sync$O" : "$(OX)\sync_.c" "$(OX)\sync.h"
1892 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\sync_.c"
1893
1894 "$(OX)\sync_.c" : "$(SRCDIR)\sync.c"
1895 "$(OBJDIR)\translate$E" $** > $@
1896
1897 "$(OX)\tag$O" : "$(OX)\tag_.c" "$(OX)\tag.h"
1898 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\tag_.c"
1899
1900 "$(OX)\tag_.c" : "$(SRCDIR)\tag.c"
1901 "$(OBJDIR)\translate$E" $** > $@
1902
1903 "$(OX)\tar$O" : "$(OX)\tar_.c" "$(OX)\tar.h"
1904 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\tar_.c"
1905
1906 "$(OX)\tar_.c" : "$(SRCDIR)\tar.c"
1907 "$(OBJDIR)\translate$E" $** > $@
1908
1909 "$(OX)\terminal$O" : "$(OX)\terminal_.c" "$(OX)\terminal.h"
1910 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\terminal_.c"
1911
1912 "$(OX)\terminal_.c" : "$(SRCDIR)\terminal.c"
1913 "$(OBJDIR)\translate$E" $** > $@
1914
1915 "$(OX)\th_main$O" : "$(OX)\th_main_.c" "$(OX)\th_main.h"
1916 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\th_main_.c"
1917
1918 "$(OX)\th_main_.c" : "$(SRCDIR)\th_main.c"
1919 "$(OBJDIR)\translate$E" $** > $@
1920
1921 "$(OX)\timeline$O" : "$(OX)\timeline_.c" "$(OX)\timeline.h"
1922 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\timeline_.c"
1923
1924 "$(OX)\timeline_.c" : "$(SRCDIR)\timeline.c"
1925 "$(OBJDIR)\translate$E" $** > $@
1926
1927 "$(OX)\tkt$O" : "$(OX)\tkt_.c" "$(OX)\tkt.h"
1928 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\tkt_.c"
1929
1930 "$(OX)\tkt_.c" : "$(SRCDIR)\tkt.c"
1931 "$(OBJDIR)\translate$E" $** > $@
1932
1933 "$(OX)\tktsetup$O" : "$(OX)\tktsetup_.c" "$(OX)\tktsetup.h"
1934 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\tktsetup_.c"
1935
1936 "$(OX)\tktsetup_.c" : "$(SRCDIR)\tktsetup.c"
1937 "$(OBJDIR)\translate$E" $** > $@
1938
1939 "$(OX)\undo$O" : "$(OX)\undo_.c" "$(OX)\undo.h"
1940 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\undo_.c"
1941
1942 "$(OX)\undo_.c" : "$(SRCDIR)\undo.c"
1943 "$(OBJDIR)\translate$E" $** > $@
1944
1945 "$(OX)\unicode$O" : "$(OX)\unicode_.c" "$(OX)\unicode.h"
1946 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\unicode_.c"
1947
1948 "$(OX)\unicode_.c" : "$(SRCDIR)\unicode.c"
1949 "$(OBJDIR)\translate$E" $** > $@
1950
1951 "$(OX)\unversioned$O" : "$(OX)\unversioned_.c" "$(OX)\unversioned.h"
1952 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\unversioned_.c"
1953
1954 "$(OX)\unversioned_.c" : "$(SRCDIR)\unversioned.c"
1955 "$(OBJDIR)\translate$E" $** > $@
1956
1957 "$(OX)\update$O" : "$(OX)\update_.c" "$(OX)\update.h"
1958 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\update_.c"
1959
1960 "$(OX)\update_.c" : "$(SRCDIR)\update.c"
1961 "$(OBJDIR)\translate$E" $** > $@
1962
1963 "$(OX)\url$O" : "$(OX)\url_.c" "$(OX)\url.h"
1964 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\url_.c"
1965
1966 "$(OX)\url_.c" : "$(SRCDIR)\url.c"
1967 "$(OBJDIR)\translate$E" $** > $@
1968
1969 "$(OX)\user$O" : "$(OX)\user_.c" "$(OX)\user.h"
1970 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\user_.c"
1971
1972 "$(OX)\user_.c" : "$(SRCDIR)\user.c"
1973 "$(OBJDIR)\translate$E" $** > $@
1974
1975 "$(OX)\utf8$O" : "$(OX)\utf8_.c" "$(OX)\utf8.h"
1976 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\utf8_.c"
1977
1978 "$(OX)\utf8_.c" : "$(SRCDIR)\utf8.c"
1979 "$(OBJDIR)\translate$E" $** > $@
1980
1981 "$(OX)\util$O" : "$(OX)\util_.c" "$(OX)\util.h"
1982 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\util_.c"
1983
1984 "$(OX)\util_.c" : "$(SRCDIR)\util.c"
1985 "$(OBJDIR)\translate$E" $** > $@
1986
1987 "$(OX)\verify$O" : "$(OX)\verify_.c" "$(OX)\verify.h"
1988 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\verify_.c"
1989
1990 "$(OX)\verify_.c" : "$(SRCDIR)\verify.c"
1991 "$(OBJDIR)\translate$E" $** > $@
1992
1993 "$(OX)\vfile$O" : "$(OX)\vfile_.c" "$(OX)\vfile.h"
1994 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\vfile_.c"
1995
1996 "$(OX)\vfile_.c" : "$(SRCDIR)\vfile.c"
1997 "$(OBJDIR)\translate$E" $** > $@
1998
1999 "$(OX)\webmail$O" : "$(OX)\webmail_.c" "$(OX)\webmail.h"
2000 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\webmail_.c"
2001
2002 "$(OX)\webmail_.c" : "$(SRCDIR)\webmail.c"
2003 "$(OBJDIR)\translate$E" $** > $@
2004
2005 "$(OX)\wiki$O" : "$(OX)\wiki_.c" "$(OX)\wiki.h"
2006 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\wiki_.c"
2007
2008 "$(OX)\wiki_.c" : "$(SRCDIR)\wiki.c"
2009 "$(OBJDIR)\translate$E" $** > $@
2010
2011 "$(OX)\wikiformat$O" : "$(OX)\wikiformat_.c" "$(OX)\wikiformat.h"
2012 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\wikiformat_.c"
2013
2014 "$(OX)\wikiformat_.c" : "$(SRCDIR)\wikiformat.c"
2015 "$(OBJDIR)\translate$E" $** > $@
2016
2017 "$(OX)\winfile$O" : "$(OX)\winfile_.c" "$(OX)\winfile.h"
2018 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\winfile_.c"
2019
2020 "$(OX)\winfile_.c" : "$(SRCDIR)\winfile.c"
2021 "$(OBJDIR)\translate$E" $** > $@
2022
2023 "$(OX)\winhttp$O" : "$(OX)\winhttp_.c" "$(OX)\winhttp.h"
2024 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\winhttp_.c"
2025
2026 "$(OX)\winhttp_.c" : "$(SRCDIR)\winhttp.c"
2027 "$(OBJDIR)\translate$E" $** > $@
2028
2029 "$(OX)\wysiwyg$O" : "$(OX)\wysiwyg_.c" "$(OX)\wysiwyg.h"
2030 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\wysiwyg_.c"
2031
2032 "$(OX)\wysiwyg_.c" : "$(SRCDIR)\wysiwyg.c"
2033 "$(OBJDIR)\translate$E" $** > $@
2034
2035 "$(OX)\xfer$O" : "$(OX)\xfer_.c" "$(OX)\xfer.h"
2036 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\xfer_.c"
2037
2038 "$(OX)\xfer_.c" : "$(SRCDIR)\xfer.c"
2039 "$(OBJDIR)\translate$E" $** > $@
2040
2041 "$(OX)\xfersetup$O" : "$(OX)\xfersetup_.c" "$(OX)\xfersetup.h"
2042 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\xfersetup_.c"
2043
2044 "$(OX)\xfersetup_.c" : "$(SRCDIR)\xfersetup.c"
2045 "$(OBJDIR)\translate$E" $** > $@
2046
2047 "$(OX)\zip$O" : "$(OX)\zip_.c" "$(OX)\zip.h"
2048 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\zip_.c"
2049
2050 "$(OX)\zip_.c" : "$(SRCDIR)\zip.c"
2051 "$(OBJDIR)\translate$E" $** > $@
2052
2053 "$(OX)\fossil.res" : "$(B)\win\fossil.rc"
2054 $(RCC) /fo $@ $**
2055
2056 "$(OX)\headers": "$(OBJDIR)\makeheaders$E" "$(OX)\page_index.h" "$(OX)\builtin_data.h" "$(OX)\default_css.h" "$(OX)\VERSION.h"
2057 "$(OBJDIR)\makeheaders$E" "$(OX)\add_.c":"$(OX)\add.h" \
2058 "$(OX)\ajax_.c":"$(OX)\ajax.h" \
2059 "$(OX)\alerts_.c":"$(OX)\alerts.h" \
2060 "$(OX)\allrepo_.c":"$(OX)\allrepo.h" \
2061 "$(OX)\attach_.c":"$(OX)\attach.h" \
2062 "$(OX)\backlink_.c":"$(OX)\backlink.h" \
2063 "$(OX)\backoffice_.c":"$(OX)\backoffice.h" \
2064 "$(OX)\bag_.c":"$(OX)\bag.h" \
2065 "$(OX)\bisect_.c":"$(OX)\bisect.h" \
2066 "$(OX)\blob_.c":"$(OX)\blob.h" \
2067 "$(OX)\branch_.c":"$(OX)\branch.h" \
2068 "$(OX)\browse_.c":"$(OX)\browse.h" \
2069 "$(OX)\builtin_.c":"$(OX)\builtin.h" \
2070 "$(OX)\bundle_.c":"$(OX)\bundle.h" \
2071 "$(OX)\cache_.c":"$(OX)\cache.h" \
2072 "$(OX)\capabilities_.c":"$(OX)\capabilities.h" \
2073 "$(OX)\captcha_.c":"$(OX)\captcha.h" \
2074 "$(OX)\cgi_.c":"$(OX)\cgi.h" \
2075 "$(OX)\checkin_.c":"$(OX)\checkin.h" \
2076 "$(OX)\checkout_.c":"$(OX)\checkout.h" \
2077 "$(OX)\clearsign_.c":"$(OX)\clearsign.h" \
2078 "$(OX)\clone_.c":"$(OX)\clone.h" \
2079 "$(OX)\comformat_.c":"$(OX)\comformat.h" \
2080 "$(OX)\configure_.c":"$(OX)\configure.h" \
2081 "$(OX)\content_.c":"$(OX)\content.h" \
2082 "$(OX)\cookies_.c":"$(OX)\cookies.h" \
2083 "$(OX)\db_.c":"$(OX)\db.h" \
2084 "$(OX)\delta_.c":"$(OX)\delta.h" \
2085 "$(OX)\deltacmd_.c":"$(OX)\deltacmd.h" \
2086 "$(OX)\deltafunc_.c":"$(OX)\deltafunc.h" \
2087 "$(OX)\descendants_.c":"$(OX)\descendants.h" \
2088 "$(OX)\diff_.c":"$(OX)\diff.h" \
2089 "$(OX)\diffcmd_.c":"$(OX)\diffcmd.h" \
2090 "$(OX)\dispatch_.c":"$(OX)\dispatch.h" \
2091 "$(OX)\doc_.c":"$(OX)\doc.h" \
2092 "$(OX)\encode_.c":"$(OX)\encode.h" \
2093 "$(OX)\etag_.c":"$(OX)\etag.h" \
2094 "$(OX)\event_.c":"$(OX)\event.h" \
2095 "$(OX)\export_.c":"$(OX)\export.h" \
2096 "$(OX)\extcgi_.c":"$(OX)\extcgi.h" \
2097 "$(OX)\file_.c":"$(OX)\file.h" \
2098 "$(OX)\fileedit_.c":"$(OX)\fileedit.h" \
2099 "$(OX)\finfo_.c":"$(OX)\finfo.h" \
2100 "$(OX)\foci_.c":"$(OX)\foci.h" \
2101 "$(OX)\forum_.c":"$(OX)\forum.h" \
2102 "$(OX)\fshell_.c":"$(OX)\fshell.h" \
2103 "$(OX)\fusefs_.c":"$(OX)\fusefs.h" \
2104 "$(OX)\fuzz_.c":"$(OX)\fuzz.h" \
2105 "$(OX)\glob_.c":"$(OX)\glob.h" \
2106 "$(OX)\graph_.c":"$(OX)\graph.h" \
2107 "$(OX)\gzip_.c":"$(OX)\gzip.h" \
2108 "$(OX)\hname_.c":"$(OX)\hname.h" \
2109 "$(OX)\http_.c":"$(OX)\http.h" \
2110 "$(OX)\http_socket_.c":"$(OX)\http_socket.h" \
2111 "$(OX)\http_ssl_.c":"$(OX)\http_ssl.h" \
2112 "$(OX)\http_transport_.c":"$(OX)\http_transport.h" \
2113 "$(OX)\import_.c":"$(OX)\import.h" \
2114 "$(OX)\info_.c":"$(OX)\info.h" \
2115 "$(OX)\json_.c":"$(OX)\json.h" \
2116 "$(OX)\json_artifact_.c":"$(OX)\json_artifact.h" \
2117 "$(OX)\json_branch_.c":"$(OX)\json_branch.h" \
2118 "$(OX)\json_config_.c":"$(OX)\json_config.h" \
2119 "$(OX)\json_diff_.c":"$(OX)\json_diff.h" \
2120 "$(OX)\json_dir_.c":"$(OX)\json_dir.h" \
2121 "$(OX)\json_finfo_.c":"$(OX)\json_finfo.h" \
2122 "$(OX)\json_login_.c":"$(OX)\json_login.h" \
2123 "$(OX)\json_query_.c":"$(OX)\json_query.h" \
2124 "$(OX)\json_report_.c":"$(OX)\json_report.h" \
2125 "$(OX)\json_status_.c":"$(OX)\json_status.h" \
2126 "$(OX)\json_tag_.c":"$(OX)\json_tag.h" \
2127 "$(OX)\json_timeline_.c":"$(OX)\json_timeline.h" \
2128 "$(OX)\json_user_.c":"$(OX)\json_user.h" \
2129 "$(OX)\json_wiki_.c":"$(OX)\json_wiki.h" \
2130 "$(OX)\leaf_.c":"$(OX)\leaf.h" \
2131 "$(OX)\loadctrl_.c":"$(OX)\loadctrl.h" \
2132 "$(OX)\login_.c":"$(OX)\login.h" \
2133 "$(OX)\lookslike_.c":"$(OX)\lookslike.h" \
2134 "$(OX)\main_.c":"$(OX)\main.h" \
2135 "$(OX)\manifest_.c":"$(OX)\manifest.h" \
2136 "$(OX)\markdown_.c":"$(OX)\markdown.h" \
2137 "$(OX)\markdown_html_.c":"$(OX)\markdown_html.h" \
2138 "$(OX)\md5_.c":"$(OX)\md5.h" \
2139 "$(OX)\merge_.c":"$(OX)\merge.h" \
2140 "$(OX)\merge3_.c":"$(OX)\merge3.h" \
2141 "$(OX)\moderate_.c":"$(OX)\moderate.h" \
2142 "$(OX)\name_.c":"$(OX)\name.h" \
2143 "$(OX)\path_.c":"$(OX)\path.h" \
2144 "$(OX)\piechart_.c":"$(OX)\piechart.h" \
2145 "$(OX)\pivot_.c":"$(OX)\pivot.h" \
2146 "$(OX)\popen_.c":"$(OX)\popen.h" \
2147 "$(OX)\pqueue_.c":"$(OX)\pqueue.h" \
2148 "$(OX)\printf_.c":"$(OX)\printf.h" \
2149 "$(OX)\publish_.c":"$(OX)\publish.h" \
2150 "$(OX)\purge_.c":"$(OX)\purge.h" \
2151 "$(OX)\rebuild_.c":"$(OX)\rebuild.h" \
2152 "$(OX)\regexp_.c":"$(OX)\regexp.h" \
2153 "$(OX)\repolist_.c":"$(OX)\repolist.h" \
2154 "$(OX)\report_.c":"$(OX)\report.h" \
2155 "$(OX)\rss_.c":"$(OX)\rss.h" \
2156 "$(OX)\schema_.c":"$(OX)\schema.h" \
2157 "$(OX)\search_.c":"$(OX)\search.h" \
2158 "$(OX)\security_audit_.c":"$(OX)\security_audit.h" \
2159 "$(OX)\setup_.c":"$(OX)\setup.h" \
2160 "$(OX)\setupuser_.c":"$(OX)\setupuser.h" \
2161 "$(OX)\sha1_.c":"$(OX)\sha1.h" \
2162 "$(OX)\sha1hard_.c":"$(OX)\sha1hard.h" \
2163 "$(OX)\sha3_.c":"$(OX)\sha3.h" \
2164 "$(OX)\shun_.c":"$(OX)\shun.h" \
2165 "$(OX)\sitemap_.c":"$(OX)\sitemap.h" \
2166 "$(OX)\skins_.c":"$(OX)\skins.h" \
2167 "$(OX)\smtp_.c":"$(OX)\smtp.h" \
2168 "$(OX)\sqlcmd_.c":"$(OX)\sqlcmd.h" \
2169 "$(OX)\stash_.c":"$(OX)\stash.h" \
2170 "$(OX)\stat_.c":"$(OX)\stat.h" \
2171 "$(OX)\statrep_.c":"$(OX)\statrep.h" \
2172 "$(OX)\style_.c":"$(OX)\style.h" \
2173 "$(OX)\sync_.c":"$(OX)\sync.h" \
2174 "$(OX)\tag_.c":"$(OX)\tag.h" \
2175 "$(OX)\tar_.c":"$(OX)\tar.h" \
2176 "$(OX)\terminal_.c":"$(OX)\terminal.h" \
2177 "$(OX)\th_main_.c":"$(OX)\th_main.h" \
2178 "$(OX)\timeline_.c":"$(OX)\timeline.h" \
2179 "$(OX)\tkt_.c":"$(OX)\tkt.h" \
2180 "$(OX)\tktsetup_.c":"$(OX)\tktsetup.h" \
2181 "$(OX)\undo_.c":"$(OX)\undo.h" \
2182 "$(OX)\unicode_.c":"$(OX)\unicode.h" \
2183 "$(OX)\unversioned_.c":"$(OX)\unversioned.h" \
2184 "$(OX)\update_.c":"$(OX)\update.h" \
2185 "$(OX)\url_.c":"$(OX)\url.h" \
2186 "$(OX)\user_.c":"$(OX)\user.h" \
2187 "$(OX)\utf8_.c":"$(OX)\utf8.h" \
2188 "$(OX)\util_.c":"$(OX)\util.h" \
2189 "$(OX)\verify_.c":"$(OX)\verify.h" \
2190 "$(OX)\vfile_.c":"$(OX)\vfile.h" \
2191 "$(OX)\webmail_.c":"$(OX)\webmail.h" \
2192 "$(OX)\wiki_.c":"$(OX)\wiki.h" \
2193 "$(OX)\wikiformat_.c":"$(OX)\wikiformat.h" \
2194 "$(OX)\winfile_.c":"$(OX)\winfile.h" \
2195 "$(OX)\winhttp_.c":"$(OX)\winhttp.h" \
2196 "$(OX)\wysiwyg_.c":"$(OX)\wysiwyg.h" \
2197 "$(OX)\xfer_.c":"$(OX)\xfer.h" \
2198 "$(OX)\xfersetup_.c":"$(OX)\xfersetup.h" \
2199 "$(OX)\zip_.c":"$(OX)\zip.h" \
2200 "$(SRCDIR)\sqlite3.h" \
2201 "$(SRCDIR)\th.h" \
2202 "$(OX)\VERSION.h" \
2203 "$(SRCDIR)\cson_amalgamation.h"
2204 @copy /Y nul: $@
2205
+58 -13
--- win/buildmsvc.bat
+++ win/buildmsvc.bat
@@ -183,11 +183,28 @@
183183
%_VECHO% VcInstallDir = '%VCINSTALLDIR%'
184184
185185
REM
186186
REM NOTE: Attempt to create the build output directory, if necessary.
187187
REM
188
-IF NOT DEFINED BUILDDIR (
188
+IF DEFINED BUILDDIR (
189
+ IF DEFINED BUILDSUFFIX (
190
+ CALL :fn_FindVarInVar BUILDSUFFIX BUILDDIR
191
+
192
+ IF ERRORLEVEL 1 (
193
+ REM
194
+ REM NOTE: The build suffix is already present, do nothing.
195
+ REM
196
+ ) ELSE (
197
+ REM
198
+ REM NOTE: The build suffix is not present, add it now.
199
+ REM
200
+ SET BUILDDIR=%BUILDDIR%%BUILDSUFFIX%
201
+ )
202
+
203
+ CALL :fn_ResetErrorLevel
204
+ )
205
+) ELSE (
189206
SET BUILDDIR=%ROOT%\msvcbld%BUILDSUFFIX%
190207
)
191208
192209
%_VECHO% BuildSuffix = '%BUILDSUFFIX%'
193210
%_VECHO% BuildDir = '%BUILDDIR%'
@@ -201,18 +218,20 @@
201218
)
202219
)
203220
204221
REM
205222
REM NOTE: Attempt to change to the created build output directory so that
206
-REM the generated files will be placed there.
223
+REM the generated files will be placed there, if needed.
207224
REM
208225
%__ECHO2% PUSHD "%BUILDDIR%"
209226
210227
IF ERRORLEVEL 1 (
211228
ECHO Could not change to directory "%BUILDDIR%".
212229
GOTO errors
213230
)
231
+
232
+SET NEED_POPD=1
214233
215234
REM
216235
REM NOTE: If requested, setup the build environment to refer to the Windows
217236
REM SDK v7.1A, which is required if the binaries are being built with
218237
REM Visual Studio 201x and need to work on Windows XP.
@@ -223,30 +242,38 @@
223242
)
224243
225244
%_VECHO% Path = '%PATH%'
226245
%_VECHO% Include = '%INCLUDE%'
227246
%_VECHO% Lib = '%LIB%'
247
+%_VECHO% Tools = '%TOOLS%'
248
+%_VECHO% Root = '%ROOT%'
228249
%_VECHO% NmakeArgs = '%NMAKE_ARGS%'
229250
230251
REM
231252
REM NOTE: Attempt to execute NMAKE for the Fossil MSVC makefile, passing
232253
REM anything extra from our command line along (e.g. extra options).
254
+REM Also, pass the base directory of the Fossil source tree as this
255
+REM allows an out-of-source-tree build.
233256
REM
234
-%__ECHO% nmake /f "%TOOLS%\Makefile.msc" %NMAKE_ARGS% %*
257
+%__ECHO% nmake /f "%TOOLS%\Makefile.msc" B="%ROOT%" %NMAKE_ARGS% %*
235258
236259
IF ERRORLEVEL 1 (
237260
GOTO errors
238261
)
239262
240263
REM
241
-REM NOTE: Attempt to restore the previously saved directory.
264
+REM NOTE: Attempt to restore the previously saved directory, if needed.
242265
REM
243
-%__ECHO2% POPD
266
+IF DEFINED NEED_POPD (
267
+ %__ECHO2% POPD
268
+
269
+ IF ERRORLEVEL 1 (
270
+ ECHO Could not restore directory.
271
+ GOTO errors
272
+ )
244273
245
-IF ERRORLEVEL 1 (
246
- ECHO Could not restore directory.
247
- GOTO errors
274
+ CALL :fn_UnsetVariable NEED_POPD
248275
)
249276
250277
GOTO no_errors
251278
252279
:fn_UseV110Sdk71A
@@ -256,18 +283,36 @@
256283
:set_v110Sdk71A_x86
257284
SET PFILES_SDK71A=%ProgramFiles%
258285
:set_v110Sdk71A_done
259286
SET PATH=%PFILES_SDK71A%\Microsoft SDKs\Windows\7.1A\Bin;%PATH%
260287
SET INCLUDE=%PFILES_SDK71A%\Microsoft SDKs\Windows\7.1A\Include;%INCLUDE%
261
- IF "%PLATFORM%" == "x64" (
262
- SET LIB=%PFILES_SDK71A%\Microsoft SDKs\Windows\7.1A\Lib\x64;%LIB%
263
- ) ELSE (
264
- SET LIB=%PFILES_SDK71A%\Microsoft SDKs\Windows\7.1A\Lib;%LIB%
265
- )
288
+ IF "%PLATFORM%" == "x64" GOTO set_v110Sdk71A_lib_x64
289
+ SET LIB=%PFILES_SDK71A%\Microsoft SDKs\Windows\7.1A\Lib;%LIB%
290
+ GOTO set_v110Sdk71A_lib_done
291
+ :set_v110Sdk71A_lib_x64
292
+ SET LIB=%PFILES_SDK71A%\Microsoft SDKs\Windows\7.1A\Lib\x64;%LIB%
293
+ :set_v110Sdk71A_lib_done
266294
CALL :fn_UnsetVariable PFILES_SDK71A
267295
SET NMAKE_ARGS=%NMAKE_ARGS% FOSSIL_ENABLE_WINXP=1
268296
GOTO :EOF
297
+
298
+:fn_FindVarInVar
299
+ IF NOT DEFINED %1 GOTO :EOF
300
+ IF NOT DEFINED %2 GOTO :EOF
301
+ SETLOCAL
302
+ CALL :fn_UnsetVariable VALUE
303
+ SET __ECHO_CMD=ECHO %%%2%% ^^^| FIND /I "%%%1%%"
304
+ FOR /F "delims=" %%V IN ('%__ECHO_CMD%') DO (
305
+ SET VALUE=%%V
306
+ )
307
+ IF DEFINED VALUE (
308
+ CALL :fn_SetErrorLevel
309
+ ) ELSE (
310
+ CALL :fn_ResetErrorLevel
311
+ )
312
+ ENDLOCAL
313
+ GOTO :EOF
269314
270315
:fn_UnsetVariable
271316
SETLOCAL
272317
SET VALUE=%1
273318
IF DEFINED VALUE (
274319
--- win/buildmsvc.bat
+++ win/buildmsvc.bat
@@ -183,11 +183,28 @@
183 %_VECHO% VcInstallDir = '%VCINSTALLDIR%'
184
185 REM
186 REM NOTE: Attempt to create the build output directory, if necessary.
187 REM
188 IF NOT DEFINED BUILDDIR (
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
189 SET BUILDDIR=%ROOT%\msvcbld%BUILDSUFFIX%
190 )
191
192 %_VECHO% BuildSuffix = '%BUILDSUFFIX%'
193 %_VECHO% BuildDir = '%BUILDDIR%'
@@ -201,18 +218,20 @@
201 )
202 )
203
204 REM
205 REM NOTE: Attempt to change to the created build output directory so that
206 REM the generated files will be placed there.
207 REM
208 %__ECHO2% PUSHD "%BUILDDIR%"
209
210 IF ERRORLEVEL 1 (
211 ECHO Could not change to directory "%BUILDDIR%".
212 GOTO errors
213 )
 
 
214
215 REM
216 REM NOTE: If requested, setup the build environment to refer to the Windows
217 REM SDK v7.1A, which is required if the binaries are being built with
218 REM Visual Studio 201x and need to work on Windows XP.
@@ -223,30 +242,38 @@
223 )
224
225 %_VECHO% Path = '%PATH%'
226 %_VECHO% Include = '%INCLUDE%'
227 %_VECHO% Lib = '%LIB%'
 
 
228 %_VECHO% NmakeArgs = '%NMAKE_ARGS%'
229
230 REM
231 REM NOTE: Attempt to execute NMAKE for the Fossil MSVC makefile, passing
232 REM anything extra from our command line along (e.g. extra options).
 
 
233 REM
234 %__ECHO% nmake /f "%TOOLS%\Makefile.msc" %NMAKE_ARGS% %*
235
236 IF ERRORLEVEL 1 (
237 GOTO errors
238 )
239
240 REM
241 REM NOTE: Attempt to restore the previously saved directory.
242 REM
243 %__ECHO2% POPD
 
 
 
 
 
 
244
245 IF ERRORLEVEL 1 (
246 ECHO Could not restore directory.
247 GOTO errors
248 )
249
250 GOTO no_errors
251
252 :fn_UseV110Sdk71A
@@ -256,18 +283,36 @@
256 :set_v110Sdk71A_x86
257 SET PFILES_SDK71A=%ProgramFiles%
258 :set_v110Sdk71A_done
259 SET PATH=%PFILES_SDK71A%\Microsoft SDKs\Windows\7.1A\Bin;%PATH%
260 SET INCLUDE=%PFILES_SDK71A%\Microsoft SDKs\Windows\7.1A\Include;%INCLUDE%
261 IF "%PLATFORM%" == "x64" (
262 SET LIB=%PFILES_SDK71A%\Microsoft SDKs\Windows\7.1A\Lib\x64;%LIB%
263 ) ELSE (
264 SET LIB=%PFILES_SDK71A%\Microsoft SDKs\Windows\7.1A\Lib;%LIB%
265 )
 
266 CALL :fn_UnsetVariable PFILES_SDK71A
267 SET NMAKE_ARGS=%NMAKE_ARGS% FOSSIL_ENABLE_WINXP=1
268 GOTO :EOF
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
269
270 :fn_UnsetVariable
271 SETLOCAL
272 SET VALUE=%1
273 IF DEFINED VALUE (
274
--- win/buildmsvc.bat
+++ win/buildmsvc.bat
@@ -183,11 +183,28 @@
183 %_VECHO% VcInstallDir = '%VCINSTALLDIR%'
184
185 REM
186 REM NOTE: Attempt to create the build output directory, if necessary.
187 REM
188 IF DEFINED BUILDDIR (
189 IF DEFINED BUILDSUFFIX (
190 CALL :fn_FindVarInVar BUILDSUFFIX BUILDDIR
191
192 IF ERRORLEVEL 1 (
193 REM
194 REM NOTE: The build suffix is already present, do nothing.
195 REM
196 ) ELSE (
197 REM
198 REM NOTE: The build suffix is not present, add it now.
199 REM
200 SET BUILDDIR=%BUILDDIR%%BUILDSUFFIX%
201 )
202
203 CALL :fn_ResetErrorLevel
204 )
205 ) ELSE (
206 SET BUILDDIR=%ROOT%\msvcbld%BUILDSUFFIX%
207 )
208
209 %_VECHO% BuildSuffix = '%BUILDSUFFIX%'
210 %_VECHO% BuildDir = '%BUILDDIR%'
@@ -201,18 +218,20 @@
218 )
219 )
220
221 REM
222 REM NOTE: Attempt to change to the created build output directory so that
223 REM the generated files will be placed there, if needed.
224 REM
225 %__ECHO2% PUSHD "%BUILDDIR%"
226
227 IF ERRORLEVEL 1 (
228 ECHO Could not change to directory "%BUILDDIR%".
229 GOTO errors
230 )
231
232 SET NEED_POPD=1
233
234 REM
235 REM NOTE: If requested, setup the build environment to refer to the Windows
236 REM SDK v7.1A, which is required if the binaries are being built with
237 REM Visual Studio 201x and need to work on Windows XP.
@@ -223,30 +242,38 @@
242 )
243
244 %_VECHO% Path = '%PATH%'
245 %_VECHO% Include = '%INCLUDE%'
246 %_VECHO% Lib = '%LIB%'
247 %_VECHO% Tools = '%TOOLS%'
248 %_VECHO% Root = '%ROOT%'
249 %_VECHO% NmakeArgs = '%NMAKE_ARGS%'
250
251 REM
252 REM NOTE: Attempt to execute NMAKE for the Fossil MSVC makefile, passing
253 REM anything extra from our command line along (e.g. extra options).
254 REM Also, pass the base directory of the Fossil source tree as this
255 REM allows an out-of-source-tree build.
256 REM
257 %__ECHO% nmake /f "%TOOLS%\Makefile.msc" B="%ROOT%" %NMAKE_ARGS% %*
258
259 IF ERRORLEVEL 1 (
260 GOTO errors
261 )
262
263 REM
264 REM NOTE: Attempt to restore the previously saved directory, if needed.
265 REM
266 IF DEFINED NEED_POPD (
267 %__ECHO2% POPD
268
269 IF ERRORLEVEL 1 (
270 ECHO Could not restore directory.
271 GOTO errors
272 )
273
274 CALL :fn_UnsetVariable NEED_POPD
 
 
275 )
276
277 GOTO no_errors
278
279 :fn_UseV110Sdk71A
@@ -256,18 +283,36 @@
283 :set_v110Sdk71A_x86
284 SET PFILES_SDK71A=%ProgramFiles%
285 :set_v110Sdk71A_done
286 SET PATH=%PFILES_SDK71A%\Microsoft SDKs\Windows\7.1A\Bin;%PATH%
287 SET INCLUDE=%PFILES_SDK71A%\Microsoft SDKs\Windows\7.1A\Include;%INCLUDE%
288 IF "%PLATFORM%" == "x64" GOTO set_v110Sdk71A_lib_x64
289 SET LIB=%PFILES_SDK71A%\Microsoft SDKs\Windows\7.1A\Lib;%LIB%
290 GOTO set_v110Sdk71A_lib_done
291 :set_v110Sdk71A_lib_x64
292 SET LIB=%PFILES_SDK71A%\Microsoft SDKs\Windows\7.1A\Lib\x64;%LIB%
293 :set_v110Sdk71A_lib_done
294 CALL :fn_UnsetVariable PFILES_SDK71A
295 SET NMAKE_ARGS=%NMAKE_ARGS% FOSSIL_ENABLE_WINXP=1
296 GOTO :EOF
297
298 :fn_FindVarInVar
299 IF NOT DEFINED %1 GOTO :EOF
300 IF NOT DEFINED %2 GOTO :EOF
301 SETLOCAL
302 CALL :fn_UnsetVariable VALUE
303 SET __ECHO_CMD=ECHO %%%2%% ^^^| FIND /I "%%%1%%"
304 FOR /F "delims=" %%V IN ('%__ECHO_CMD%') DO (
305 SET VALUE=%%V
306 )
307 IF DEFINED VALUE (
308 CALL :fn_SetErrorLevel
309 ) ELSE (
310 CALL :fn_ResetErrorLevel
311 )
312 ENDLOCAL
313 GOTO :EOF
314
315 :fn_UnsetVariable
316 SETLOCAL
317 SET VALUE=%1
318 IF DEFINED VALUE (
319
--- www/changes.wiki
+++ www/changes.wiki
@@ -1,17 +1,33 @@
11
<title>Change Log</title>
22
33
<a name='v2_12'></a>
44
<h2>Changes for Version 2.12 (pending)</h2>
55
6
+ * Security fix in the "fossil git export" command. New "safety-nets"
7
+ added to prevent future problems.
8
+ * Enhancements to the graph display for cases when there are
9
+ many merges into a single check-in.
10
+ [/info/2d75e87b760c0a9?diff=0|Example]
11
+ * The markdown-to-html translator can prevent unsafe HTML
12
+ (for example: &lt;script&gt;) on user pages like forum and
13
+ tickets and wiki, at the administrators option. On by
14
+ default.
15
+ [https://www.fossil-scm.org/forum/forumpost/3714e6568f|Example].
16
+ * Enhance the [/help?cmd=revert|fossil revert] command so that it
17
+ is able to revert all files beneath a directory.
618
* Added <tt>--reset</tt> flag to the "[/help?cmd=add|fossil add]",
719
"[/help?cmd=rm|fossil rm]", and
820
"[/help?cmd=addremove|fossil addremove]" commands.
921
* Editing forum posts now applies delta compression to the edits.
1022
* Added the [/help?cmd=/fileedit|/fileedit page], which allows
1123
editing of text files online. Requires explicit activation by
1224
a setup user.
25
+ * Update the built-in SQLite so that the
26
+ "[/help?cmd=sql|fossil sql]" command supports new output
27
+ modes ".mode box" and ".mode json".
28
+ * Delta compression now applied to forum edits.
1329
1430
<a name='v2_11'></a>
1531
<h2>Changes for Version 2.11 (2020-05-25)</h2>
1632
1733
* Support [/md_rules|Markdown] in the default ticket configuration.
1834
--- www/changes.wiki
+++ www/changes.wiki
@@ -1,17 +1,33 @@
1 <title>Change Log</title>
2
3 <a name='v2_12'></a>
4 <h2>Changes for Version 2.12 (pending)</h2>
5
 
 
 
 
 
 
 
 
 
 
 
 
6 * Added <tt>--reset</tt> flag to the "[/help?cmd=add|fossil add]",
7 "[/help?cmd=rm|fossil rm]", and
8 "[/help?cmd=addremove|fossil addremove]" commands.
9 * Editing forum posts now applies delta compression to the edits.
10 * Added the [/help?cmd=/fileedit|/fileedit page], which allows
11 editing of text files online. Requires explicit activation by
12 a setup user.
 
 
 
 
13
14 <a name='v2_11'></a>
15 <h2>Changes for Version 2.11 (2020-05-25)</h2>
16
17 * Support [/md_rules|Markdown] in the default ticket configuration.
18
--- www/changes.wiki
+++ www/changes.wiki
@@ -1,17 +1,33 @@
1 <title>Change Log</title>
2
3 <a name='v2_12'></a>
4 <h2>Changes for Version 2.12 (pending)</h2>
5
6 * Security fix in the "fossil git export" command. New "safety-nets"
7 added to prevent future problems.
8 * Enhancements to the graph display for cases when there are
9 many merges into a single check-in.
10 [/info/2d75e87b760c0a9?diff=0|Example]
11 * The markdown-to-html translator can prevent unsafe HTML
12 (for example: &lt;script&gt;) on user pages like forum and
13 tickets and wiki, at the administrators option. On by
14 default.
15 [https://www.fossil-scm.org/forum/forumpost/3714e6568f|Example].
16 * Enhance the [/help?cmd=revert|fossil revert] command so that it
17 is able to revert all files beneath a directory.
18 * Added <tt>--reset</tt> flag to the "[/help?cmd=add|fossil add]",
19 "[/help?cmd=rm|fossil rm]", and
20 "[/help?cmd=addremove|fossil addremove]" commands.
21 * Editing forum posts now applies delta compression to the edits.
22 * Added the [/help?cmd=/fileedit|/fileedit page], which allows
23 editing of text files online. Requires explicit activation by
24 a setup user.
25 * Update the built-in SQLite so that the
26 "[/help?cmd=sql|fossil sql]" command supports new output
27 modes ".mode box" and ".mode json".
28 * Delta compression now applied to forum edits.
29
30 <a name='v2_11'></a>
31 <h2>Changes for Version 2.11 (2020-05-25)</h2>
32
33 * Support [/md_rules|Markdown] in the default ticket configuration.
34
--- www/fossil-v-git.wiki
+++ www/fossil-v-git.wiki
@@ -40,22 +40,22 @@
4040
<td>VCS, tickets, wiki, docs, notes, forum, UI,
4141
[https://en.wikipedia.org/wiki/Role-based_access_control|RBAC]</td>
4242
<td><a href="#features">2.1&nbsp;&darr;</a></td>
4343
</tr>
4444
<tr>
45
- <td>Sprawling, incoherent, and inefficient</td>
45
+ <td>Sprawling and inefficient</td>
4646
<td>Self-contained and efficient</td>
4747
<td><a href="#efficient">2.2&nbsp;&darr;</a></td>
4848
</tr>
4949
<tr>
50
- <td>Ad-hoc pile-of-files key/value database</td>
50
+ <td>One-off custom pile-of-files data store</td>
5151
<td>[https://sqlite.org/famous.html|The most popular database in the world]</td>
5252
<td><a href="#durable">2.3&nbsp;&darr;</a></td>
5353
</tr>
5454
<tr>
55
- <td>Portable to POSIX systems only</td>
56
- <td>Runs just about anywhere</td>
55
+ <td>Runs natively on POSIX systems only</td>
56
+ <td>Native on common desktop & server platforms</td>
5757
<td><a href="#portable">2.4&nbsp;&darr;</a></td>
5858
</tr>
5959
<tr>
6060
<td>Bazaar-style development</td>
6161
<td>Cathedral-style development</td>
6262
--- www/fossil-v-git.wiki
+++ www/fossil-v-git.wiki
@@ -40,22 +40,22 @@
40 <td>VCS, tickets, wiki, docs, notes, forum, UI,
41 [https://en.wikipedia.org/wiki/Role-based_access_control|RBAC]</td>
42 <td><a href="#features">2.1&nbsp;&darr;</a></td>
43 </tr>
44 <tr>
45 <td>Sprawling, incoherent, and inefficient</td>
46 <td>Self-contained and efficient</td>
47 <td><a href="#efficient">2.2&nbsp;&darr;</a></td>
48 </tr>
49 <tr>
50 <td>Ad-hoc pile-of-files key/value database</td>
51 <td>[https://sqlite.org/famous.html|The most popular database in the world]</td>
52 <td><a href="#durable">2.3&nbsp;&darr;</a></td>
53 </tr>
54 <tr>
55 <td>Portable to POSIX systems only</td>
56 <td>Runs just about anywhere</td>
57 <td><a href="#portable">2.4&nbsp;&darr;</a></td>
58 </tr>
59 <tr>
60 <td>Bazaar-style development</td>
61 <td>Cathedral-style development</td>
62
--- www/fossil-v-git.wiki
+++ www/fossil-v-git.wiki
@@ -40,22 +40,22 @@
40 <td>VCS, tickets, wiki, docs, notes, forum, UI,
41 [https://en.wikipedia.org/wiki/Role-based_access_control|RBAC]</td>
42 <td><a href="#features">2.1&nbsp;&darr;</a></td>
43 </tr>
44 <tr>
45 <td>Sprawling and inefficient</td>
46 <td>Self-contained and efficient</td>
47 <td><a href="#efficient">2.2&nbsp;&darr;</a></td>
48 </tr>
49 <tr>
50 <td>One-off custom pile-of-files data store</td>
51 <td>[https://sqlite.org/famous.html|The most popular database in the world]</td>
52 <td><a href="#durable">2.3&nbsp;&darr;</a></td>
53 </tr>
54 <tr>
55 <td>Runs natively on POSIX systems only</td>
56 <td>Native on common desktop & server platforms</td>
57 <td><a href="#portable">2.4&nbsp;&darr;</a></td>
58 </tr>
59 <tr>
60 <td>Bazaar-style development</td>
61 <td>Cathedral-style development</td>
62
+2 -2
--- www/index.wiki
+++ www/index.wiki
@@ -83,14 +83,14 @@
8383
the repository are consistent prior to each commit.
8484
8585
8. <b>Free and Open-Source</b> - Uses the [../COPYRIGHT-BSD2.txt|2-clause BSD license].
8686
8787
<hr>
88
-<h3>[/timeline?t=release|Latest Release]: 2.11 (2020-05-26)</h3>
88
+<h3>[/timeline?t=release|Latest Release]: 2.11.1 (2020-06-08)</h3>
8989
9090
* [/uv/download.html|Download]
91
- * [./changes.wiki#v2_10|Change Summary]
91
+ * [./changes.wiki#v2_11|Change Summary]
9292
9393
<hr>
9494
<h3>Quick Start</h3>
9595
9696
1. [/uv/download.html|Download] or install using a package manager or
9797
--- www/index.wiki
+++ www/index.wiki
@@ -83,14 +83,14 @@
83 the repository are consistent prior to each commit.
84
85 8. <b>Free and Open-Source</b> - Uses the [../COPYRIGHT-BSD2.txt|2-clause BSD license].
86
87 <hr>
88 <h3>[/timeline?t=release|Latest Release]: 2.11 (2020-05-26)</h3>
89
90 * [/uv/download.html|Download]
91 * [./changes.wiki#v2_10|Change Summary]
92
93 <hr>
94 <h3>Quick Start</h3>
95
96 1. [/uv/download.html|Download] or install using a package manager or
97
--- www/index.wiki
+++ www/index.wiki
@@ -83,14 +83,14 @@
83 the repository are consistent prior to each commit.
84
85 8. <b>Free and Open-Source</b> - Uses the [../COPYRIGHT-BSD2.txt|2-clause BSD license].
86
87 <hr>
88 <h3>[/timeline?t=release|Latest Release]: 2.11.1 (2020-06-08)</h3>
89
90 * [/uv/download.html|Download]
91 * [./changes.wiki#v2_11|Change Summary]
92
93 <hr>
94 <h3>Quick Start</h3>
95
96 1. [/uv/download.html|Download] or install using a package manager or
97
--- www/makefile.wiki
+++ www/makefile.wiki
@@ -297,9 +297,35 @@
297297
dependences are used.
298298
299299
Fossil includes a copy of [https://github.com/richgel999/miniz | miniz]
300300
which can be used as an alternative to zlib.
301301
302
-<h1>7.0 See Also</h1>
302
+<h1>7.0 Debugging</h1>
303
+
304
+Debug mode is controlled via FOSSIL_DEBUG preprocessor macro which could be
305
+set explicitly at the make command for the target platform.
306
+
307
+However, in practice it is instead recommended to add a respective configure
308
+option for the target platform and then perform a clean build. This way the
309
+Debug flags are consistently applied across the whole build process. For
310
+example, use these Debug flags in addition to other flags passed to the
311
+configure scripts:
312
+
313
+On Linux, *NIX and similar platforms:
314
+<blockquote><pre>
315
+./configure --fossil-debug
316
+</pre></blockquote>
317
+
318
+On Windows:
319
+<blockquote><pre>
320
+win\buildmsvc.bat FOSSIL_DEBUG=1
321
+</pre></blockquote>
322
+
323
+The resulting fossil binary could then be loaded into a platform-specific
324
+debugger. Source files displayed in the debugger correspond to the ones
325
+generated from the translation stage of the build process, that is what was
326
+actually compiled into the object files.
327
+
328
+<h1>8.0 See Also</h1>
303329
304330
* [./tech_overview.wiki | A Technical Overview Of Fossil]
305331
* [./adding_code.wiki | How To Add Features To Fossil]
306332
--- www/makefile.wiki
+++ www/makefile.wiki
@@ -297,9 +297,35 @@
297 dependences are used.
298
299 Fossil includes a copy of [https://github.com/richgel999/miniz | miniz]
300 which can be used as an alternative to zlib.
301
302 <h1>7.0 See Also</h1>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
303
304 * [./tech_overview.wiki | A Technical Overview Of Fossil]
305 * [./adding_code.wiki | How To Add Features To Fossil]
306
--- www/makefile.wiki
+++ www/makefile.wiki
@@ -297,9 +297,35 @@
297 dependences are used.
298
299 Fossil includes a copy of [https://github.com/richgel999/miniz | miniz]
300 which can be used as an alternative to zlib.
301
302 <h1>7.0 Debugging</h1>
303
304 Debug mode is controlled via FOSSIL_DEBUG preprocessor macro which could be
305 set explicitly at the make command for the target platform.
306
307 However, in practice it is instead recommended to add a respective configure
308 option for the target platform and then perform a clean build. This way the
309 Debug flags are consistently applied across the whole build process. For
310 example, use these Debug flags in addition to other flags passed to the
311 configure scripts:
312
313 On Linux, *NIX and similar platforms:
314 <blockquote><pre>
315 ./configure --fossil-debug
316 </pre></blockquote>
317
318 On Windows:
319 <blockquote><pre>
320 win\buildmsvc.bat FOSSIL_DEBUG=1
321 </pre></blockquote>
322
323 The resulting fossil binary could then be loaded into a platform-specific
324 debugger. Source files displayed in the debugger correspond to the ones
325 generated from the translation stage of the build process, that is what was
326 actually compiled into the object files.
327
328 <h1>8.0 See Also</h1>
329
330 * [./tech_overview.wiki | A Technical Overview Of Fossil]
331 * [./adding_code.wiki | How To Add Features To Fossil]
332
+15 -15
--- www/selfcheck.wiki
+++ www/selfcheck.wiki
@@ -13,11 +13,11 @@
1313
part to the defensive measures described here, no data has been
1414
lost. The integrity checks are doing their job well.</p>
1515
1616
<h2>Atomic Check-ins With Rollback</h2>
1717
18
-The fossil repository is stored in an
18
+The Fossil repository is stored in an
1919
<a href="http://www.sqlite.org/">SQLite</a> database file.
2020
([./tech_overview.wiki | Addition information] about the repository
2121
file format.)
2222
SQLite is very mature and stable and has been in wide-spread use for many
2323
years, so we are confident it will not cause repository
@@ -25,46 +25,46 @@
2525
databases do not corrupt even if a program or system crash or power
2626
failure occurs in the middle of the update. If some kind of crash
2727
does occur in the middle of a change, then all the changes are rolled
2828
back the next time that the database is accessed.
2929
30
-A check-in operation in fossil makes many changes to the repository
30
+A check-in operation in Fossil makes many changes to the repository
3131
database. But all these changes happen within a single transaction.
3232
If something goes wrong in the middle of the commit, even if that something
3333
is a power failure or OS crash, then the transaction
3434
is rolled back and the database is unchanged.
3535
3636
<h2>Verification Of Delta Encodings Prior To Transaction Commit</h2>
3737
38
-The content files that comprise the global state of a fossil repository
38
+The content files that comprise the global state of a Fossil repository
3939
are stored in the repository as a tree. The leaves of the tree are
4040
stored as zlib-compressed BLOBs. Interior nodes are deltas from their
4141
descendants. A lot of encoding is going on. There is
4242
zlib-compression which is relatively well-tested but still might
4343
cause corruption if used improperly. And there is the relatively
44
-new delta-encoding mechanism designed expressly for fossil. We want
44
+new [./delta_encoder_algorithm.wiki | delta-encoding mechanism] designed expressly for Fossil. We want
4545
to make sure that bugs in these encoding mechanisms do not lead to
4646
loss of data.
4747
4848
To increase our confidence that everything in the repository is
49
-recoverable, fossil makes sure it can extract an exact replica
49
+recoverable, Fossil makes sure it can extract an exact replica
5050
of every content file that it changes just prior to transaction
5151
commit. So during the course of check-in (or other repository
5252
operation) many different files
5353
in the repository might be modified. Some files are simply
5454
compressed. Other files are delta encoded and then compressed.
55
-While all this is going on, fossil makes a record of every file
55
+While all this is going on, Fossil makes a record of every file
5656
and the SHA1 or SHA3-256 hash of the original content of that
57
-file. Then just before transaction commit, fossil re-extracts
57
+file. Then just before transaction commit, Fossil re-extracts
5858
the original content of all files that were written, recomputes
5959
the hash, and verifies that the recomputed hash still matches.
6060
If anything does not match up, an error
6161
message is printed and the transaction rolls back.
6262
63
-So, in other words, fossil always checks to make sure it can
63
+So, in other words, Fossil always checks to make sure it can
6464
re-extract a file before it commits a change to that file.
65
-Hence bugs in fossil are unlikely to corrupt the repository in
65
+Hence bugs in Fossil are unlikely to corrupt the repository in
6666
a way that prevents us from extracting historical versions of
6767
files.
6868
6969
<h2>Checksum Over All Files In A Check-in</h2>
7070
@@ -80,11 +80,11 @@
8080
algorithm implementation.
8181
8282
8383
<h2>Checksums On Structural Artifacts And Deltas</h2>
8484
85
-Every [./fileformat.wiki | structural artifact] in a fossil repository
85
+Every [./fileformat.wiki | structural artifact] in a Fossil repository
8686
contains a "Z-card" bearing an MD5 checksum over the rest of the
8787
artifact. Any mismatch causes the structural artifact to be ignored.
8888
8989
The [./delta_format.wiki | file delta format] includes a 32-bit
9090
checksum of the target file. Whenever a file is reconstructed from
@@ -93,17 +93,17 @@
9393
9494
<h2>Reliability Versus Performance</h2>
9595
9696
Some version control systems make a big deal out of being "high performance"
9797
or the "fastest version control system". Fossil makes no such claims and has
98
-no such ambition. Indeed, profiling indicates that fossil bears a
98
+no such ambition. Indeed, profiling indicates that Fossil bears a
9999
substantial performance cost for
100100
doing all of the checksumming and verification outlined above.
101101
Fossil takes the philosophy of the
102102
<a href="http://en.wikipedia.org/wiki/The_Tortoise_and_the_Hare">tortoise</a>:
103103
reliability is more important than raw speed. The developers of
104
-fossil see no merit in getting the wrong answer quickly.
104
+Fossil see no merit in getting the wrong answer quickly.
105105
106
-Fossil may not be the fastest versioning system, but it is "fast enough".
107
-Fossil runs quickly enough to stay out of the developers way.
108
-Most operations complete in milliseconds, faster that you can press
106
+Fossil may not be the fastest versioning system, but it is <i>fast enough</i>.
107
+Fossil runs quickly enough to stay out of the developer's way.
108
+Most operations complete in milliseconds, faster than you can press
109109
the "Enter" key.
110110
--- www/selfcheck.wiki
+++ www/selfcheck.wiki
@@ -13,11 +13,11 @@
13 part to the defensive measures described here, no data has been
14 lost. The integrity checks are doing their job well.</p>
15
16 <h2>Atomic Check-ins With Rollback</h2>
17
18 The fossil repository is stored in an
19 <a href="http://www.sqlite.org/">SQLite</a> database file.
20 ([./tech_overview.wiki | Addition information] about the repository
21 file format.)
22 SQLite is very mature and stable and has been in wide-spread use for many
23 years, so we are confident it will not cause repository
@@ -25,46 +25,46 @@
25 databases do not corrupt even if a program or system crash or power
26 failure occurs in the middle of the update. If some kind of crash
27 does occur in the middle of a change, then all the changes are rolled
28 back the next time that the database is accessed.
29
30 A check-in operation in fossil makes many changes to the repository
31 database. But all these changes happen within a single transaction.
32 If something goes wrong in the middle of the commit, even if that something
33 is a power failure or OS crash, then the transaction
34 is rolled back and the database is unchanged.
35
36 <h2>Verification Of Delta Encodings Prior To Transaction Commit</h2>
37
38 The content files that comprise the global state of a fossil repository
39 are stored in the repository as a tree. The leaves of the tree are
40 stored as zlib-compressed BLOBs. Interior nodes are deltas from their
41 descendants. A lot of encoding is going on. There is
42 zlib-compression which is relatively well-tested but still might
43 cause corruption if used improperly. And there is the relatively
44 new delta-encoding mechanism designed expressly for fossil. We want
45 to make sure that bugs in these encoding mechanisms do not lead to
46 loss of data.
47
48 To increase our confidence that everything in the repository is
49 recoverable, fossil makes sure it can extract an exact replica
50 of every content file that it changes just prior to transaction
51 commit. So during the course of check-in (or other repository
52 operation) many different files
53 in the repository might be modified. Some files are simply
54 compressed. Other files are delta encoded and then compressed.
55 While all this is going on, fossil makes a record of every file
56 and the SHA1 or SHA3-256 hash of the original content of that
57 file. Then just before transaction commit, fossil re-extracts
58 the original content of all files that were written, recomputes
59 the hash, and verifies that the recomputed hash still matches.
60 If anything does not match up, an error
61 message is printed and the transaction rolls back.
62
63 So, in other words, fossil always checks to make sure it can
64 re-extract a file before it commits a change to that file.
65 Hence bugs in fossil are unlikely to corrupt the repository in
66 a way that prevents us from extracting historical versions of
67 files.
68
69 <h2>Checksum Over All Files In A Check-in</h2>
70
@@ -80,11 +80,11 @@
80 algorithm implementation.
81
82
83 <h2>Checksums On Structural Artifacts And Deltas</h2>
84
85 Every [./fileformat.wiki | structural artifact] in a fossil repository
86 contains a "Z-card" bearing an MD5 checksum over the rest of the
87 artifact. Any mismatch causes the structural artifact to be ignored.
88
89 The [./delta_format.wiki | file delta format] includes a 32-bit
90 checksum of the target file. Whenever a file is reconstructed from
@@ -93,17 +93,17 @@
93
94 <h2>Reliability Versus Performance</h2>
95
96 Some version control systems make a big deal out of being "high performance"
97 or the "fastest version control system". Fossil makes no such claims and has
98 no such ambition. Indeed, profiling indicates that fossil bears a
99 substantial performance cost for
100 doing all of the checksumming and verification outlined above.
101 Fossil takes the philosophy of the
102 <a href="http://en.wikipedia.org/wiki/The_Tortoise_and_the_Hare">tortoise</a>:
103 reliability is more important than raw speed. The developers of
104 fossil see no merit in getting the wrong answer quickly.
105
106 Fossil may not be the fastest versioning system, but it is "fast enough".
107 Fossil runs quickly enough to stay out of the developers way.
108 Most operations complete in milliseconds, faster that you can press
109 the "Enter" key.
110
--- www/selfcheck.wiki
+++ www/selfcheck.wiki
@@ -13,11 +13,11 @@
13 part to the defensive measures described here, no data has been
14 lost. The integrity checks are doing their job well.</p>
15
16 <h2>Atomic Check-ins With Rollback</h2>
17
18 The Fossil repository is stored in an
19 <a href="http://www.sqlite.org/">SQLite</a> database file.
20 ([./tech_overview.wiki | Addition information] about the repository
21 file format.)
22 SQLite is very mature and stable and has been in wide-spread use for many
23 years, so we are confident it will not cause repository
@@ -25,46 +25,46 @@
25 databases do not corrupt even if a program or system crash or power
26 failure occurs in the middle of the update. If some kind of crash
27 does occur in the middle of a change, then all the changes are rolled
28 back the next time that the database is accessed.
29
30 A check-in operation in Fossil makes many changes to the repository
31 database. But all these changes happen within a single transaction.
32 If something goes wrong in the middle of the commit, even if that something
33 is a power failure or OS crash, then the transaction
34 is rolled back and the database is unchanged.
35
36 <h2>Verification Of Delta Encodings Prior To Transaction Commit</h2>
37
38 The content files that comprise the global state of a Fossil repository
39 are stored in the repository as a tree. The leaves of the tree are
40 stored as zlib-compressed BLOBs. Interior nodes are deltas from their
41 descendants. A lot of encoding is going on. There is
42 zlib-compression which is relatively well-tested but still might
43 cause corruption if used improperly. And there is the relatively
44 new [./delta_encoder_algorithm.wiki | delta-encoding mechanism] designed expressly for Fossil. We want
45 to make sure that bugs in these encoding mechanisms do not lead to
46 loss of data.
47
48 To increase our confidence that everything in the repository is
49 recoverable, Fossil makes sure it can extract an exact replica
50 of every content file that it changes just prior to transaction
51 commit. So during the course of check-in (or other repository
52 operation) many different files
53 in the repository might be modified. Some files are simply
54 compressed. Other files are delta encoded and then compressed.
55 While all this is going on, Fossil makes a record of every file
56 and the SHA1 or SHA3-256 hash of the original content of that
57 file. Then just before transaction commit, Fossil re-extracts
58 the original content of all files that were written, recomputes
59 the hash, and verifies that the recomputed hash still matches.
60 If anything does not match up, an error
61 message is printed and the transaction rolls back.
62
63 So, in other words, Fossil always checks to make sure it can
64 re-extract a file before it commits a change to that file.
65 Hence bugs in Fossil are unlikely to corrupt the repository in
66 a way that prevents us from extracting historical versions of
67 files.
68
69 <h2>Checksum Over All Files In A Check-in</h2>
70
@@ -80,11 +80,11 @@
80 algorithm implementation.
81
82
83 <h2>Checksums On Structural Artifacts And Deltas</h2>
84
85 Every [./fileformat.wiki | structural artifact] in a Fossil repository
86 contains a "Z-card" bearing an MD5 checksum over the rest of the
87 artifact. Any mismatch causes the structural artifact to be ignored.
88
89 The [./delta_format.wiki | file delta format] includes a 32-bit
90 checksum of the target file. Whenever a file is reconstructed from
@@ -93,17 +93,17 @@
93
94 <h2>Reliability Versus Performance</h2>
95
96 Some version control systems make a big deal out of being "high performance"
97 or the "fastest version control system". Fossil makes no such claims and has
98 no such ambition. Indeed, profiling indicates that Fossil bears a
99 substantial performance cost for
100 doing all of the checksumming and verification outlined above.
101 Fossil takes the philosophy of the
102 <a href="http://en.wikipedia.org/wiki/The_Tortoise_and_the_Hare">tortoise</a>:
103 reliability is more important than raw speed. The developers of
104 Fossil see no merit in getting the wrong answer quickly.
105
106 Fossil may not be the fastest versioning system, but it is <i>fast enough</i>.
107 Fossil runs quickly enough to stay out of the developer's way.
108 Most operations complete in milliseconds, faster than you can press
109 the "Enter" key.
110
--- www/server/debian/nginx.md
+++ www/server/debian/nginx.md
@@ -109,19 +109,15 @@
109109
110110
## <a name="scgi"></a>Running Fossil in SCGI Mode
111111
112112
For the following nginx configuration to work, it needs to contact a
113113
Fossil instance speaking the SCGI protocol. There are [many ways](../)
114
-to set that up. For Debian type systems, we primarily recommend
115
-following [our systemd user service guide](service.md).
116
-
117
-Another option would be to customize [the `fslsrv` shell
118
-script](/file/tools/fslsrv) that ships with Fossil as an example of
119
-launching multiple Fossil instances in the background to serve multiple
120
-URLs.
121
-
122
-However you do it, you need to match up the TCP port numbers between it
114
+to set that up. For Debian type systems, we recommend
115
+following [our systemd system service guide](service.md).
116
+
117
+There are other ways to arrange for Fossil to run as a service backing
118
+nginx, but however you do it, you need to match up the TCP port numbers between it
123119
and those in the nginx configuration below.
124120
125121
126122
## <a name="config"></a>Configuration
127123
128124
--- www/server/debian/nginx.md
+++ www/server/debian/nginx.md
@@ -109,19 +109,15 @@
109
110 ## <a name="scgi"></a>Running Fossil in SCGI Mode
111
112 For the following nginx configuration to work, it needs to contact a
113 Fossil instance speaking the SCGI protocol. There are [many ways](../)
114 to set that up. For Debian type systems, we primarily recommend
115 following [our systemd user service guide](service.md).
116
117 Another option would be to customize [the `fslsrv` shell
118 script](/file/tools/fslsrv) that ships with Fossil as an example of
119 launching multiple Fossil instances in the background to serve multiple
120 URLs.
121
122 However you do it, you need to match up the TCP port numbers between it
123 and those in the nginx configuration below.
124
125
126 ## <a name="config"></a>Configuration
127
128
--- www/server/debian/nginx.md
+++ www/server/debian/nginx.md
@@ -109,19 +109,15 @@
109
110 ## <a name="scgi"></a>Running Fossil in SCGI Mode
111
112 For the following nginx configuration to work, it needs to contact a
113 Fossil instance speaking the SCGI protocol. There are [many ways](../)
114 to set that up. For Debian type systems, we recommend
115 following [our systemd system service guide](service.md).
116
117 There are other ways to arrange for Fossil to run as a service backing
118 nginx, but however you do it, you need to match up the TCP port numbers between it
 
 
 
 
119 and those in the nginx configuration below.
120
121
122 ## <a name="config"></a>Configuration
123
124
--- www/server/debian/service.md
+++ www/server/debian/service.md
@@ -43,17 +43,23 @@
4343
WantedBy=sockets.target
4444
WantedBy=multi-user.target
4545
```
4646
4747
Unlike with `inetd` and `xinetd`, we don’t need to tell `systemd` which
48
-user and group to run this service as, because we’ve installed it as a
49
-user service under the account we’re logged into.
48
+user and group to run this service as, because we’ve installed it
49
+under the account we’re logged into, which `systemd` will use as the
50
+service’s owner.
5051
5152
We’ve told `systemd` that we want automatic service restarts with
5253
back-off logic, making this much more robust than the by-hand launches
5354
of `fossil` in the platform-independent Fossil server instructions. The
5455
service will stay up until we explicitly tell it to shut down.
56
+
57
+A simple and useful modification to the above scheme is to add the
58
+`--scgi` and `--localhost` flags to the `ExecStart` line to replace the
59
+use of `fslsrv` in [the generic SCGI instructions](../any/scgi.md),
60
+giving a much more robust configuration.
5561
5662
Because we’ve set this up as a user service, the commands you give to
5763
manipulate the service vary somewhat from the sort you’re more likely to
5864
find online:
5965
@@ -69,14 +75,40 @@
6975
7076
This scheme isolates the permissions needed by the Fossil server, which
7177
reduces the amount of damage it can do if there is ever a
7278
remotely-triggerable security flaw found in Fossil.
7379
74
-A simple and useful modification to the above scheme is to add the
75
-`--scgi` and `--localhost` flags to the `ExecStart` line to replace the
76
-use of `fslsrv` in [the generic SCGI instructions](../any/scgi.md),
77
-giving a much more robust configuration.
80
+On some `systemd` based OSes, user services only run while that user is
81
+logged in interactively. This is common on systems aiming to provide
82
+desktop environments, where this is the behavior you often want. To
83
+allow background services to continue to run after logout, say:
84
+
85
+ $ sudo loginctl enable-linger $USER
86
+
87
+You can paste the command just like that into your terminal, since
88
+`$USER` will expand to your login name.
89
+
90
+
91
+
92
+### System Service Alternative
93
+
94
+Another workaround for the problem with user services above is to
95
+install the service as a system service instead. This is a better path
96
+when you are proxying Fossil with a system-level service, such as
97
+[nginx](./nginx.md).
98
+
99
+There are just a small set of changes required:
100
+
101
+1. Install the unit file to one of the persistent system-level unit
102
+ file directories. Typically, these are:
103
+
104
+ /etc/systemd/system
105
+ /lib/systemd/system
106
+
107
+2. Add `User` and `Group` directives to the `[Service]` section so
108
+ Fossil runs as a normal user, preferrably one with access only to
109
+ the Fossil repo files, rather than running as `root`.
78110
79111
80112
## Socket Activation
81113
82114
Another useful method to serve a Fossil repo via `systemd` is via a
83115
--- www/server/debian/service.md
+++ www/server/debian/service.md
@@ -43,17 +43,23 @@
43 WantedBy=sockets.target
44 WantedBy=multi-user.target
45 ```
46
47 Unlike with `inetd` and `xinetd`, we don’t need to tell `systemd` which
48 user and group to run this service as, because we’ve installed it as a
49 user service under the account we’re logged into.
 
50
51 We’ve told `systemd` that we want automatic service restarts with
52 back-off logic, making this much more robust than the by-hand launches
53 of `fossil` in the platform-independent Fossil server instructions. The
54 service will stay up until we explicitly tell it to shut down.
 
 
 
 
 
55
56 Because we’ve set this up as a user service, the commands you give to
57 manipulate the service vary somewhat from the sort you’re more likely to
58 find online:
59
@@ -69,14 +75,40 @@
69
70 This scheme isolates the permissions needed by the Fossil server, which
71 reduces the amount of damage it can do if there is ever a
72 remotely-triggerable security flaw found in Fossil.
73
74 A simple and useful modification to the above scheme is to add the
75 `--scgi` and `--localhost` flags to the `ExecStart` line to replace the
76 use of `fslsrv` in [the generic SCGI instructions](../any/scgi.md),
77 giving a much more robust configuration.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
78
79
80 ## Socket Activation
81
82 Another useful method to serve a Fossil repo via `systemd` is via a
83
--- www/server/debian/service.md
+++ www/server/debian/service.md
@@ -43,17 +43,23 @@
43 WantedBy=sockets.target
44 WantedBy=multi-user.target
45 ```
46
47 Unlike with `inetd` and `xinetd`, we don’t need to tell `systemd` which
48 user and group to run this service as, because we’ve installed it
49 under the account we’re logged into, which `systemd` will use as the
50 service’s owner.
51
52 We’ve told `systemd` that we want automatic service restarts with
53 back-off logic, making this much more robust than the by-hand launches
54 of `fossil` in the platform-independent Fossil server instructions. The
55 service will stay up until we explicitly tell it to shut down.
56
57 A simple and useful modification to the above scheme is to add the
58 `--scgi` and `--localhost` flags to the `ExecStart` line to replace the
59 use of `fslsrv` in [the generic SCGI instructions](../any/scgi.md),
60 giving a much more robust configuration.
61
62 Because we’ve set this up as a user service, the commands you give to
63 manipulate the service vary somewhat from the sort you’re more likely to
64 find online:
65
@@ -69,14 +75,40 @@
75
76 This scheme isolates the permissions needed by the Fossil server, which
77 reduces the amount of damage it can do if there is ever a
78 remotely-triggerable security flaw found in Fossil.
79
80 On some `systemd` based OSes, user services only run while that user is
81 logged in interactively. This is common on systems aiming to provide
82 desktop environments, where this is the behavior you often want. To
83 allow background services to continue to run after logout, say:
84
85 $ sudo loginctl enable-linger $USER
86
87 You can paste the command just like that into your terminal, since
88 `$USER` will expand to your login name.
89
90
91
92 ### System Service Alternative
93
94 Another workaround for the problem with user services above is to
95 install the service as a system service instead. This is a better path
96 when you are proxying Fossil with a system-level service, such as
97 [nginx](./nginx.md).
98
99 There are just a small set of changes required:
100
101 1. Install the unit file to one of the persistent system-level unit
102 file directories. Typically, these are:
103
104 /etc/systemd/system
105 /lib/systemd/system
106
107 2. Add `User` and `Group` directives to the `[Service]` section so
108 Fossil runs as a normal user, preferrably one with access only to
109 the Fossil repo files, rather than running as `root`.
110
111
112 ## Socket Activation
113
114 Another useful method to serve a Fossil repo via `systemd` is via a
115
+25 -34
--- www/webpage-ex.md
+++ www/webpage-ex.md
@@ -2,112 +2,103 @@
22
=================
33
44
Here are just a few examples of the many web pages supported
55
by Fossil. Follow hyperlinks on the examples below to see many
66
other examples.
7
-<style>
8
-.exbtn {
9
- border: 1px solid #000;
10
- margin: 1ex;
11
- border-radius: 1ex;
12
- padding: 0 1ex;
13
- background-color: #eee;
14
-}
15
-</style>
167
178
* <a target='_blank' class='exbtn'
18
- href='$ROOT/timeline?y=ci&n=100'>Example</a>
9
+ href='$ROOT/timeline?y=ci&n=100'>(Example)</a> &rarr;
1910
100 most recent check-ins.
2011
2112
* <a target='_blank' class='exbtn'
22
- href='$ROOT/finfo?name=src/file.c'>Example</a>
13
+ href='$ROOT/finfo?name=src/file.c'>(Example)</a> &rarr;
2314
All changes to the <b>src/file.c</b> source file.
2415
2516
* <a target='_blank' class='exbtn'
26
- href='$ROOT/timeline?n=200&uf=0c3c2d086a'>Example</a>
17
+ href='$ROOT/timeline?n=200&uf=0c3c2d086a'>(Example)</a> &rarr;
2718
All check-ins using a particular version of the <b>src/file.c</b>
2819
source file.
2920
3021
* <a target='_blank' class='exbtn'
31
- href='$ROOT/timeline?n=11&y=ci&c=2014-01-01'>Example</a>
22
+ href='$ROOT/timeline?n=11&y=ci&c=2014-01-01'>(Example)</a> &rarr;
3223
Check-ins proximate to an historical point in time (2014-01-01).
3324
3425
* <a target='_blank' class='exbtn'
35
- href='$ROOT/timeline?n=11&y=ci&c=2014-01-01&v=1'>Example</a>
26
+ href='$ROOT/timeline?n=11&y=ci&c=2014-01-01&v=1'>(Example)</a> &rarr;
3627
The previous example augmented with file changes.
3728
3829
* <a target='_blank' class='exbtn'
39
- href='$ROOT/timeline?n=25&y=ci&a=1970-01-01'>Example</a>
30
+ href='$ROOT/timeline?n=25&y=ci&a=1970-01-01'>(Example)</a> &rarr;
4031
First 25 check-ins after 1970-01-01. (The first 25 check-ins of
4132
the project.)
4233
4334
* <a target='_blank' class='exbtn'
44
- href='$ROOT/timeline?n=200&r=svn-import'>Example</a>
35
+ href='$ROOT/timeline?n=200&r=svn-import'>(Example)</a> &rarr;
4536
All check-ins of the "svn-import" branch together with check-ins
4637
that merge with that branch.
4738
4839
* <a target='_blank' class='exbtn'
49
- href='$ROOT/timeline?n=200&t=svn-import'>Example</a>
40
+ href='$ROOT/timeline?n=200&t=svn-import'>(Example)</a> &rarr;
5041
All check-ins of the "svn-import" branch only.
5142
5243
* <a target='_blank' class='exbtn'
53
- href='$ROOT/timeline?n=100&y=ci&ubg'>Example</a>
44
+ href='$ROOT/timeline?n=100&y=ci&ubg'>(Example)</a> &rarr;
5445
100 most recent check-ins color coded by committer rather than by branch.
5546
5647
* <a target='_blank' class='exbtn'
57
- href='$ROOT/timeline?from=version-1.27&to=version-1.28'>Example</a>
48
+ href='$ROOT/timeline?from=version-1.27&to=version-1.28'>(Example)</a> &rarr;
5849
All check-ins on the most direct path from
5950
version-1.27 to version-1.28
6051
6152
* <a target='_blank' class='exbtn'
62
- href='$ROOT/timeline?namechng'>Example</a>
53
+ href='$ROOT/timeline?namechng'>(Example)</a> &rarr;
6354
Show check-ins that contain file name changes
6455
6556
* <a target='_blank' class='exbtn'
66
- href='$ROOT/timeline?u=drh&c=2014-01-08&y=ci'>Example</a>
57
+ href='$ROOT/timeline?u=drh&c=2014-01-08&y=ci'>(Example)</a> &rarr;
6758
Show check-ins circa 2014-01-08 by user "drh".
6859
6960
* <a target='_blank' class='exbtn'
70
- href='$ROOT/timeline?from=version-1.34&to=version-1.35&chng=src/timeline.c,src/doc.c'>Example</a>
61
+ href='$ROOT/timeline?from=version-1.34&to=version-1.35&chng=src/timeline.c,src/doc.c'>(Example)</a> &rarr;
7162
Show all check-ins between version-1.34 and version-1.35 that make
7263
changes to either of the files src/timeline.c or src/doc.c.
7364
7465
<big><b>&rarr;</b></big> (Hint: In the pages above, click the graph nodes
7566
for any two check-ins or files to see a diff.)
7667
<big><b>&larr;</b></big>
7768
7869
* <a target='_blank' class='exbtn'
79
- href='$ROOT/search?s=interesting+pages'>Example</a>
70
+ href='$ROOT/search?s=interesting+pages'>(Example)</a> &rarr;
8071
Full-text search for "interesting pages".
8172
8273
* <a target='_blank' class='exbtn'
83
- href='$ROOT/tree?ci=daff9d20621&type=tree'>Example</a>
74
+ href='$ROOT/tree?ci=daff9d20621&type=tree'>(Example)</a> &rarr;
8475
All files for a particular check-in (daff9d20621480)
8576
8677
* <a target='_blank' class='exbtn'
87
- href='$ROOT/tree?ci=trunk&type=tree&mtime=1'>Example</a>
78
+ href='$ROOT/tree?ci=trunk&type=tree&mtime=1'>(Example)</a> &rarr;
8879
All files for the latest check-in on a branch (trunk) sorted by
8980
last modification time.
9081
9182
* <a target='_blank' class='exbtn'
92
- href='$ROOT/fileage?name=svn-import'>Example</a>
83
+ href='$ROOT/fileage?name=svn-import'>(Example)</a> &rarr;
9384
Age of all files in the latest checking for branch "svn-import".
9485
9586
* <a target='_blank' class='exbtn'
96
- href='$ROOT/brlist'>Example</a>
87
+ href='$ROOT/brlist'>(Example)</a> &rarr;
9788
Table of branches. (Click on column headers to sort.)
9889
9990
* <a target='_blank' class='exbtn'
100
- href='$ROOT/stat'>Example</a>
91
+ href='$ROOT/stat'>(Example)</a> &rarr;
10192
Overall repository status.
10293
10394
* <a target='_blank' class='exbtn'
104
- href='$ROOT/reports?type=ci&view=byuser'>Example</a>
95
+ href='$ROOT/reports?type=ci&view=byuser'>(Example)</a> &rarr;
10596
Number of check-ins per committer.
10697
10798
* <a target='_blank' class='exbtn'
108
- href='$ROOT/reports?view=byfile'>Example</a>
99
+ href='$ROOT/reports?view=byfile'>(Example)</a> &rarr;
109100
Number of check-ins for each source file.
110101
(Click on column headers to sort.)
111102
112103
* <a target='_blank' class='exbtn'
113104
href='$ROOT/blame?checkin=5260fbf63287&filename=src/rss.c&limit=-1'>
@@ -114,19 +105,19 @@
114105
Example</a>
115106
Most recent change to each line of a particular source file in a
116107
particular check-in.
117108
118109
* <a target='_blank' class='exbtn'
119
- href='$ROOT/taglist'>Example</a>
110
+ href='$ROOT/taglist'>(Example)</a> &rarr;
120111
List of tags on check-ins.
121112
122113
* <a target='_blank' class='exbtn'
123
- href='$ROOT/bigbloblist'>Example</a>
114
+ href='$ROOT/bigbloblist'>(Example)</a> &rarr;
124115
The largest objects in the repository.
125116
126117
* <a target='_blank' class='exbtn'
127
- href='$ROOT/hash-collisions'>Example</a>
118
+ href='$ROOT/hash-collisions'>(Example)</a> &rarr;
128119
Hash prefix collisions
129120
130121
* <a target='_blank' class='exbtn'
131
- href='$ROOT/sitemap'>Example</a>
122
+ href='$ROOT/sitemap'>(Example)</a> &rarr;
132123
The "sitemap" containing links to many other pages
133124
--- www/webpage-ex.md
+++ www/webpage-ex.md
@@ -2,112 +2,103 @@
2 =================
3
4 Here are just a few examples of the many web pages supported
5 by Fossil. Follow hyperlinks on the examples below to see many
6 other examples.
7 <style>
8 .exbtn {
9 border: 1px solid #000;
10 margin: 1ex;
11 border-radius: 1ex;
12 padding: 0 1ex;
13 background-color: #eee;
14 }
15 </style>
16
17 * <a target='_blank' class='exbtn'
18 href='$ROOT/timeline?y=ci&n=100'>Example</a>
19 100 most recent check-ins.
20
21 * <a target='_blank' class='exbtn'
22 href='$ROOT/finfo?name=src/file.c'>Example</a>
23 All changes to the <b>src/file.c</b> source file.
24
25 * <a target='_blank' class='exbtn'
26 href='$ROOT/timeline?n=200&uf=0c3c2d086a'>Example</a>
27 All check-ins using a particular version of the <b>src/file.c</b>
28 source file.
29
30 * <a target='_blank' class='exbtn'
31 href='$ROOT/timeline?n=11&y=ci&c=2014-01-01'>Example</a>
32 Check-ins proximate to an historical point in time (2014-01-01).
33
34 * <a target='_blank' class='exbtn'
35 href='$ROOT/timeline?n=11&y=ci&c=2014-01-01&v=1'>Example</a>
36 The previous example augmented with file changes.
37
38 * <a target='_blank' class='exbtn'
39 href='$ROOT/timeline?n=25&y=ci&a=1970-01-01'>Example</a>
40 First 25 check-ins after 1970-01-01. (The first 25 check-ins of
41 the project.)
42
43 * <a target='_blank' class='exbtn'
44 href='$ROOT/timeline?n=200&r=svn-import'>Example</a>
45 All check-ins of the "svn-import" branch together with check-ins
46 that merge with that branch.
47
48 * <a target='_blank' class='exbtn'
49 href='$ROOT/timeline?n=200&t=svn-import'>Example</a>
50 All check-ins of the "svn-import" branch only.
51
52 * <a target='_blank' class='exbtn'
53 href='$ROOT/timeline?n=100&y=ci&ubg'>Example</a>
54 100 most recent check-ins color coded by committer rather than by branch.
55
56 * <a target='_blank' class='exbtn'
57 href='$ROOT/timeline?from=version-1.27&to=version-1.28'>Example</a>
58 All check-ins on the most direct path from
59 version-1.27 to version-1.28
60
61 * <a target='_blank' class='exbtn'
62 href='$ROOT/timeline?namechng'>Example</a>
63 Show check-ins that contain file name changes
64
65 * <a target='_blank' class='exbtn'
66 href='$ROOT/timeline?u=drh&c=2014-01-08&y=ci'>Example</a>
67 Show check-ins circa 2014-01-08 by user "drh".
68
69 * <a target='_blank' class='exbtn'
70 href='$ROOT/timeline?from=version-1.34&to=version-1.35&chng=src/timeline.c,src/doc.c'>Example</a>
71 Show all check-ins between version-1.34 and version-1.35 that make
72 changes to either of the files src/timeline.c or src/doc.c.
73
74 <big><b>&rarr;</b></big> (Hint: In the pages above, click the graph nodes
75 for any two check-ins or files to see a diff.)
76 <big><b>&larr;</b></big>
77
78 * <a target='_blank' class='exbtn'
79 href='$ROOT/search?s=interesting+pages'>Example</a>
80 Full-text search for "interesting pages".
81
82 * <a target='_blank' class='exbtn'
83 href='$ROOT/tree?ci=daff9d20621&type=tree'>Example</a>
84 All files for a particular check-in (daff9d20621480)
85
86 * <a target='_blank' class='exbtn'
87 href='$ROOT/tree?ci=trunk&type=tree&mtime=1'>Example</a>
88 All files for the latest check-in on a branch (trunk) sorted by
89 last modification time.
90
91 * <a target='_blank' class='exbtn'
92 href='$ROOT/fileage?name=svn-import'>Example</a>
93 Age of all files in the latest checking for branch "svn-import".
94
95 * <a target='_blank' class='exbtn'
96 href='$ROOT/brlist'>Example</a>
97 Table of branches. (Click on column headers to sort.)
98
99 * <a target='_blank' class='exbtn'
100 href='$ROOT/stat'>Example</a>
101 Overall repository status.
102
103 * <a target='_blank' class='exbtn'
104 href='$ROOT/reports?type=ci&view=byuser'>Example</a>
105 Number of check-ins per committer.
106
107 * <a target='_blank' class='exbtn'
108 href='$ROOT/reports?view=byfile'>Example</a>
109 Number of check-ins for each source file.
110 (Click on column headers to sort.)
111
112 * <a target='_blank' class='exbtn'
113 href='$ROOT/blame?checkin=5260fbf63287&filename=src/rss.c&limit=-1'>
@@ -114,19 +105,19 @@
114 Example</a>
115 Most recent change to each line of a particular source file in a
116 particular check-in.
117
118 * <a target='_blank' class='exbtn'
119 href='$ROOT/taglist'>Example</a>
120 List of tags on check-ins.
121
122 * <a target='_blank' class='exbtn'
123 href='$ROOT/bigbloblist'>Example</a>
124 The largest objects in the repository.
125
126 * <a target='_blank' class='exbtn'
127 href='$ROOT/hash-collisions'>Example</a>
128 Hash prefix collisions
129
130 * <a target='_blank' class='exbtn'
131 href='$ROOT/sitemap'>Example</a>
132 The "sitemap" containing links to many other pages
133
--- www/webpage-ex.md
+++ www/webpage-ex.md
@@ -2,112 +2,103 @@
2 =================
3
4 Here are just a few examples of the many web pages supported
5 by Fossil. Follow hyperlinks on the examples below to see many
6 other examples.
 
 
 
 
 
 
 
 
 
7
8 * <a target='_blank' class='exbtn'
9 href='$ROOT/timeline?y=ci&n=100'>(Example)</a> &rarr;
10 100 most recent check-ins.
11
12 * <a target='_blank' class='exbtn'
13 href='$ROOT/finfo?name=src/file.c'>(Example)</a> &rarr;
14 All changes to the <b>src/file.c</b> source file.
15
16 * <a target='_blank' class='exbtn'
17 href='$ROOT/timeline?n=200&uf=0c3c2d086a'>(Example)</a> &rarr;
18 All check-ins using a particular version of the <b>src/file.c</b>
19 source file.
20
21 * <a target='_blank' class='exbtn'
22 href='$ROOT/timeline?n=11&y=ci&c=2014-01-01'>(Example)</a> &rarr;
23 Check-ins proximate to an historical point in time (2014-01-01).
24
25 * <a target='_blank' class='exbtn'
26 href='$ROOT/timeline?n=11&y=ci&c=2014-01-01&v=1'>(Example)</a> &rarr;
27 The previous example augmented with file changes.
28
29 * <a target='_blank' class='exbtn'
30 href='$ROOT/timeline?n=25&y=ci&a=1970-01-01'>(Example)</a> &rarr;
31 First 25 check-ins after 1970-01-01. (The first 25 check-ins of
32 the project.)
33
34 * <a target='_blank' class='exbtn'
35 href='$ROOT/timeline?n=200&r=svn-import'>(Example)</a> &rarr;
36 All check-ins of the "svn-import" branch together with check-ins
37 that merge with that branch.
38
39 * <a target='_blank' class='exbtn'
40 href='$ROOT/timeline?n=200&t=svn-import'>(Example)</a> &rarr;
41 All check-ins of the "svn-import" branch only.
42
43 * <a target='_blank' class='exbtn'
44 href='$ROOT/timeline?n=100&y=ci&ubg'>(Example)</a> &rarr;
45 100 most recent check-ins color coded by committer rather than by branch.
46
47 * <a target='_blank' class='exbtn'
48 href='$ROOT/timeline?from=version-1.27&to=version-1.28'>(Example)</a> &rarr;
49 All check-ins on the most direct path from
50 version-1.27 to version-1.28
51
52 * <a target='_blank' class='exbtn'
53 href='$ROOT/timeline?namechng'>(Example)</a> &rarr;
54 Show check-ins that contain file name changes
55
56 * <a target='_blank' class='exbtn'
57 href='$ROOT/timeline?u=drh&c=2014-01-08&y=ci'>(Example)</a> &rarr;
58 Show check-ins circa 2014-01-08 by user "drh".
59
60 * <a target='_blank' class='exbtn'
61 href='$ROOT/timeline?from=version-1.34&to=version-1.35&chng=src/timeline.c,src/doc.c'>(Example)</a> &rarr;
62 Show all check-ins between version-1.34 and version-1.35 that make
63 changes to either of the files src/timeline.c or src/doc.c.
64
65 <big><b>&rarr;</b></big> (Hint: In the pages above, click the graph nodes
66 for any two check-ins or files to see a diff.)
67 <big><b>&larr;</b></big>
68
69 * <a target='_blank' class='exbtn'
70 href='$ROOT/search?s=interesting+pages'>(Example)</a> &rarr;
71 Full-text search for "interesting pages".
72
73 * <a target='_blank' class='exbtn'
74 href='$ROOT/tree?ci=daff9d20621&type=tree'>(Example)</a> &rarr;
75 All files for a particular check-in (daff9d20621480)
76
77 * <a target='_blank' class='exbtn'
78 href='$ROOT/tree?ci=trunk&type=tree&mtime=1'>(Example)</a> &rarr;
79 All files for the latest check-in on a branch (trunk) sorted by
80 last modification time.
81
82 * <a target='_blank' class='exbtn'
83 href='$ROOT/fileage?name=svn-import'>(Example)</a> &rarr;
84 Age of all files in the latest checking for branch "svn-import".
85
86 * <a target='_blank' class='exbtn'
87 href='$ROOT/brlist'>(Example)</a> &rarr;
88 Table of branches. (Click on column headers to sort.)
89
90 * <a target='_blank' class='exbtn'
91 href='$ROOT/stat'>(Example)</a> &rarr;
92 Overall repository status.
93
94 * <a target='_blank' class='exbtn'
95 href='$ROOT/reports?type=ci&view=byuser'>(Example)</a> &rarr;
96 Number of check-ins per committer.
97
98 * <a target='_blank' class='exbtn'
99 href='$ROOT/reports?view=byfile'>(Example)</a> &rarr;
100 Number of check-ins for each source file.
101 (Click on column headers to sort.)
102
103 * <a target='_blank' class='exbtn'
104 href='$ROOT/blame?checkin=5260fbf63287&filename=src/rss.c&limit=-1'>
@@ -114,19 +105,19 @@
105 Example</a>
106 Most recent change to each line of a particular source file in a
107 particular check-in.
108
109 * <a target='_blank' class='exbtn'
110 href='$ROOT/taglist'>(Example)</a> &rarr;
111 List of tags on check-ins.
112
113 * <a target='_blank' class='exbtn'
114 href='$ROOT/bigbloblist'>(Example)</a> &rarr;
115 The largest objects in the repository.
116
117 * <a target='_blank' class='exbtn'
118 href='$ROOT/hash-collisions'>(Example)</a> &rarr;
119 Hash prefix collisions
120
121 * <a target='_blank' class='exbtn'
122 href='$ROOT/sitemap'>(Example)</a> &rarr;
123 The "sitemap" containing links to many other pages
124

Keyboard Shortcuts

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