Fossil SCM
Add support for ETags cache control.
Commit
7383450dd58adf3150f8309fff0b4cef26e7a3ff5ae85eca32a7bee99c536f86
Parent
203d82d80e67c64…
13 files changed
+10
-77
+10
-7
+113
+12
+1
+16
+10
-1
+1
+5
-1
+1
+10
-4
+12
+10
+10
-77
| --- src/cgi.c | ||
| +++ src/cgi.c | ||
| @@ -228,62 +228,10 @@ | ||
| 228 | 228 | "Set-Cookie: %s=%t; Path=%s; HttpOnly;%s Version=1\r\n", |
| 229 | 229 | zName, zValue, zPath, zSecure); |
| 230 | 230 | } |
| 231 | 231 | } |
| 232 | 232 | |
| 233 | -#if 0 | |
| 234 | -/* | |
| 235 | -** Add an ETag header line | |
| 236 | -*/ | |
| 237 | -static char *cgi_add_etag(char *zTxt, int nLen){ | |
| 238 | - MD5Context ctx; | |
| 239 | - unsigned char digest[16]; | |
| 240 | - int i, j; | |
| 241 | - char zETag[64]; | |
| 242 | - | |
| 243 | - MD5Init(&ctx); | |
| 244 | - MD5Update(&ctx,zTxt,nLen); | |
| 245 | - MD5Final(digest,&ctx); | |
| 246 | - for(j=i=0; i<16; i++,j+=2){ | |
| 247 | - bprintf(&zETag[j],sizeof(zETag)-j,"%02x",(int)digest[i]); | |
| 248 | - } | |
| 249 | - blob_appendf(&extraHeader, "ETag: %s\r\n", zETag); | |
| 250 | - return fossil_strdup(zETag); | |
| 251 | -} | |
| 252 | - | |
| 253 | -/* | |
| 254 | -** Do some cache control stuff. First, we generate an ETag and include it in | |
| 255 | -** the response headers. Second, we do whatever is necessary to determine if | |
| 256 | -** the request was asking about caching and whether we need to send back the | |
| 257 | -** response body. If we shouldn't send a body, return non-zero. | |
| 258 | -** | |
| 259 | -** Currently, we just check the ETag against any If-None-Match header. | |
| 260 | -** | |
| 261 | -** FIXME: In some cases (attachments, file contents) we could check | |
| 262 | -** If-Modified-Since headers and always include Last-Modified in responses. | |
| 263 | -*/ | |
| 264 | -static int check_cache_control(void){ | |
| 265 | - /* FIXME: there's some gotchas wth cookies and some headers. */ | |
| 266 | - char *zETag = cgi_add_etag(blob_buffer(&cgiContent),blob_size(&cgiContent)); | |
| 267 | - char *zMatch = P("HTTP_IF_NONE_MATCH"); | |
| 268 | - | |
| 269 | - if( zETag!=0 && zMatch!=0 ) { | |
| 270 | - char *zBuf = fossil_strdup(zMatch); | |
| 271 | - if( zBuf!=0 ){ | |
| 272 | - char *zTok = 0; | |
| 273 | - char *zPos; | |
| 274 | - for( zTok = strtok_r(zBuf, ",\"",&zPos); | |
| 275 | - zTok && fossil_stricmp(zTok,zETag); | |
| 276 | - zTok = strtok_r(0, ",\"",&zPos)){} | |
| 277 | - fossil_free(zBuf); | |
| 278 | - if(zTok) return 1; | |
| 279 | - } | |
| 280 | - } | |
| 281 | - | |
| 282 | - return 0; | |
| 283 | -} | |
| 284 | -#endif | |
| 285 | 233 | |
| 286 | 234 | /* |
| 287 | 235 | ** Return true if the response should be sent with Content-Encoding: gzip. |
| 288 | 236 | */ |
| 289 | 237 | static int is_gzippable(void){ |
| @@ -301,29 +249,28 @@ | ||
| 301 | 249 | if( iReplyStatus<=0 ){ |
| 302 | 250 | iReplyStatus = 200; |
| 303 | 251 | zReplyStatus = "OK"; |
| 304 | 252 | } |
| 305 | 253 | |
| 306 | -#if 0 | |
| 307 | - if( iReplyStatus==200 && check_cache_control() ) { | |
| 308 | - /* change the status to "unchanged" and we can skip sending the | |
| 309 | - ** actual response body. Obviously we only do this when we _have_ a | |
| 310 | - ** body (code 200). | |
| 311 | - */ | |
| 312 | - iReplyStatus = 304; | |
| 313 | - zReplyStatus = "Not Modified"; | |
| 314 | - } | |
| 315 | -#endif | |
| 316 | - | |
| 317 | 254 | if( g.fullHttpReply ){ |
| 318 | 255 | fprintf(g.httpOut, "HTTP/1.0 %d %s\r\n", iReplyStatus, zReplyStatus); |
| 319 | 256 | fprintf(g.httpOut, "Date: %s\r\n", cgi_rfc822_datestamp(time(0))); |
| 320 | 257 | fprintf(g.httpOut, "Connection: close\r\n"); |
| 321 | 258 | fprintf(g.httpOut, "X-UA-Compatible: IE=edge\r\n"); |
| 322 | 259 | }else{ |
| 323 | 260 | fprintf(g.httpOut, "Status: %d %s\r\n", iReplyStatus, zReplyStatus); |
| 324 | 261 | } |
| 262 | + if( g.isConst ){ | |
| 263 | + /* isConst means that the reply is guaranteed to be invariant, even | |
| 264 | + ** after configuration changes and/or Fossil binary recompiles. */ | |
| 265 | + fprintf(g.httpOut, "Cache-Control: max-age=31536000\r\n"); | |
| 266 | + }else if( etag_tag()!=0 ){ | |
| 267 | + fprintf(g.httpOut, "ETag: %s\r\n", etag_tag()); | |
| 268 | + fprintf(g.httpOut, "Cache-Control: max-age=%d\r\n", etag_maxage()); | |
| 269 | + }else{ | |
| 270 | + fprintf(g.httpOut, "Cache-control: no-cache\r\n"); | |
| 271 | + } | |
| 325 | 272 | |
| 326 | 273 | if( blob_size(&extraHeader)>0 ){ |
| 327 | 274 | fprintf(g.httpOut, "%s", blob_buffer(&extraHeader)); |
| 328 | 275 | } |
| 329 | 276 | |
| @@ -343,24 +290,10 @@ | ||
| 343 | 290 | ** |
| 344 | 291 | ** These headers are probably best added by the web server hosting fossil as |
| 345 | 292 | ** a CGI script. |
| 346 | 293 | */ |
| 347 | 294 | |
| 348 | - if( g.isConst ){ | |
| 349 | - /* constant means that the input URL will _never_ generate anything | |
| 350 | - ** else. In the case of attachments, the contents won't change because | |
| 351 | - ** an attempt to change them generates a new attachment number. In the | |
| 352 | - ** case of most /getfile calls for specific versions, the only way the | |
| 353 | - ** content changes is if someone breaks the SCM. And if that happens, a | |
| 354 | - ** stale cache is the least of the problem. So we provide an Expires | |
| 355 | - ** header set to a reasonable period (default: one week). | |
| 356 | - */ | |
| 357 | - fprintf(g.httpOut, "Cache-control: max-age=28800\r\n"); | |
| 358 | - }else{ | |
| 359 | - fprintf(g.httpOut, "Cache-control: no-cache\r\n"); | |
| 360 | - } | |
| 361 | - | |
| 362 | 295 | /* Content intended for logged in users should only be cached in |
| 363 | 296 | ** the browser, not some shared location. |
| 364 | 297 | */ |
| 365 | 298 | fprintf(g.httpOut, "Content-Type: %s; charset=utf-8\r\n", zContentType); |
| 366 | 299 | if( fossil_strcmp(zContentType,"application/x-fossil")==0 ){ |
| 367 | 300 |
| --- src/cgi.c | |
| +++ src/cgi.c | |
| @@ -228,62 +228,10 @@ | |
| 228 | "Set-Cookie: %s=%t; Path=%s; HttpOnly;%s Version=1\r\n", |
| 229 | zName, zValue, zPath, zSecure); |
| 230 | } |
| 231 | } |
| 232 | |
| 233 | #if 0 |
| 234 | /* |
| 235 | ** Add an ETag header line |
| 236 | */ |
| 237 | static char *cgi_add_etag(char *zTxt, int nLen){ |
| 238 | MD5Context ctx; |
| 239 | unsigned char digest[16]; |
| 240 | int i, j; |
| 241 | char zETag[64]; |
| 242 | |
| 243 | MD5Init(&ctx); |
| 244 | MD5Update(&ctx,zTxt,nLen); |
| 245 | MD5Final(digest,&ctx); |
| 246 | for(j=i=0; i<16; i++,j+=2){ |
| 247 | bprintf(&zETag[j],sizeof(zETag)-j,"%02x",(int)digest[i]); |
| 248 | } |
| 249 | blob_appendf(&extraHeader, "ETag: %s\r\n", zETag); |
| 250 | return fossil_strdup(zETag); |
| 251 | } |
| 252 | |
| 253 | /* |
| 254 | ** Do some cache control stuff. First, we generate an ETag and include it in |
| 255 | ** the response headers. Second, we do whatever is necessary to determine if |
| 256 | ** the request was asking about caching and whether we need to send back the |
| 257 | ** response body. If we shouldn't send a body, return non-zero. |
| 258 | ** |
| 259 | ** Currently, we just check the ETag against any If-None-Match header. |
| 260 | ** |
| 261 | ** FIXME: In some cases (attachments, file contents) we could check |
| 262 | ** If-Modified-Since headers and always include Last-Modified in responses. |
| 263 | */ |
| 264 | static int check_cache_control(void){ |
| 265 | /* FIXME: there's some gotchas wth cookies and some headers. */ |
| 266 | char *zETag = cgi_add_etag(blob_buffer(&cgiContent),blob_size(&cgiContent)); |
| 267 | char *zMatch = P("HTTP_IF_NONE_MATCH"); |
| 268 | |
| 269 | if( zETag!=0 && zMatch!=0 ) { |
| 270 | char *zBuf = fossil_strdup(zMatch); |
| 271 | if( zBuf!=0 ){ |
| 272 | char *zTok = 0; |
| 273 | char *zPos; |
| 274 | for( zTok = strtok_r(zBuf, ",\"",&zPos); |
| 275 | zTok && fossil_stricmp(zTok,zETag); |
| 276 | zTok = strtok_r(0, ",\"",&zPos)){} |
| 277 | fossil_free(zBuf); |
| 278 | if(zTok) return 1; |
| 279 | } |
| 280 | } |
| 281 | |
| 282 | return 0; |
| 283 | } |
| 284 | #endif |
| 285 | |
| 286 | /* |
| 287 | ** Return true if the response should be sent with Content-Encoding: gzip. |
| 288 | */ |
| 289 | static int is_gzippable(void){ |
| @@ -301,29 +249,28 @@ | |
| 301 | if( iReplyStatus<=0 ){ |
| 302 | iReplyStatus = 200; |
| 303 | zReplyStatus = "OK"; |
| 304 | } |
| 305 | |
| 306 | #if 0 |
| 307 | if( iReplyStatus==200 && check_cache_control() ) { |
| 308 | /* change the status to "unchanged" and we can skip sending the |
| 309 | ** actual response body. Obviously we only do this when we _have_ a |
| 310 | ** body (code 200). |
| 311 | */ |
| 312 | iReplyStatus = 304; |
| 313 | zReplyStatus = "Not Modified"; |
| 314 | } |
| 315 | #endif |
| 316 | |
| 317 | if( g.fullHttpReply ){ |
| 318 | fprintf(g.httpOut, "HTTP/1.0 %d %s\r\n", iReplyStatus, zReplyStatus); |
| 319 | fprintf(g.httpOut, "Date: %s\r\n", cgi_rfc822_datestamp(time(0))); |
| 320 | fprintf(g.httpOut, "Connection: close\r\n"); |
| 321 | fprintf(g.httpOut, "X-UA-Compatible: IE=edge\r\n"); |
| 322 | }else{ |
| 323 | fprintf(g.httpOut, "Status: %d %s\r\n", iReplyStatus, zReplyStatus); |
| 324 | } |
| 325 | |
| 326 | if( blob_size(&extraHeader)>0 ){ |
| 327 | fprintf(g.httpOut, "%s", blob_buffer(&extraHeader)); |
| 328 | } |
| 329 | |
| @@ -343,24 +290,10 @@ | |
| 343 | ** |
| 344 | ** These headers are probably best added by the web server hosting fossil as |
| 345 | ** a CGI script. |
| 346 | */ |
| 347 | |
| 348 | if( g.isConst ){ |
| 349 | /* constant means that the input URL will _never_ generate anything |
| 350 | ** else. In the case of attachments, the contents won't change because |
| 351 | ** an attempt to change them generates a new attachment number. In the |
| 352 | ** case of most /getfile calls for specific versions, the only way the |
| 353 | ** content changes is if someone breaks the SCM. And if that happens, a |
| 354 | ** stale cache is the least of the problem. So we provide an Expires |
| 355 | ** header set to a reasonable period (default: one week). |
| 356 | */ |
| 357 | fprintf(g.httpOut, "Cache-control: max-age=28800\r\n"); |
| 358 | }else{ |
| 359 | fprintf(g.httpOut, "Cache-control: no-cache\r\n"); |
| 360 | } |
| 361 | |
| 362 | /* Content intended for logged in users should only be cached in |
| 363 | ** the browser, not some shared location. |
| 364 | */ |
| 365 | fprintf(g.httpOut, "Content-Type: %s; charset=utf-8\r\n", zContentType); |
| 366 | if( fossil_strcmp(zContentType,"application/x-fossil")==0 ){ |
| 367 |
| --- src/cgi.c | |
| +++ src/cgi.c | |
| @@ -228,62 +228,10 @@ | |
| 228 | "Set-Cookie: %s=%t; Path=%s; HttpOnly;%s Version=1\r\n", |
| 229 | zName, zValue, zPath, zSecure); |
| 230 | } |
| 231 | } |
| 232 | |
| 233 | |
| 234 | /* |
| 235 | ** Return true if the response should be sent with Content-Encoding: gzip. |
| 236 | */ |
| 237 | static int is_gzippable(void){ |
| @@ -301,29 +249,28 @@ | |
| 249 | if( iReplyStatus<=0 ){ |
| 250 | iReplyStatus = 200; |
| 251 | zReplyStatus = "OK"; |
| 252 | } |
| 253 | |
| 254 | if( g.fullHttpReply ){ |
| 255 | fprintf(g.httpOut, "HTTP/1.0 %d %s\r\n", iReplyStatus, zReplyStatus); |
| 256 | fprintf(g.httpOut, "Date: %s\r\n", cgi_rfc822_datestamp(time(0))); |
| 257 | fprintf(g.httpOut, "Connection: close\r\n"); |
| 258 | fprintf(g.httpOut, "X-UA-Compatible: IE=edge\r\n"); |
| 259 | }else{ |
| 260 | fprintf(g.httpOut, "Status: %d %s\r\n", iReplyStatus, zReplyStatus); |
| 261 | } |
| 262 | if( g.isConst ){ |
| 263 | /* isConst means that the reply is guaranteed to be invariant, even |
| 264 | ** after configuration changes and/or Fossil binary recompiles. */ |
| 265 | fprintf(g.httpOut, "Cache-Control: max-age=31536000\r\n"); |
| 266 | }else if( etag_tag()!=0 ){ |
| 267 | fprintf(g.httpOut, "ETag: %s\r\n", etag_tag()); |
| 268 | fprintf(g.httpOut, "Cache-Control: max-age=%d\r\n", etag_maxage()); |
| 269 | }else{ |
| 270 | fprintf(g.httpOut, "Cache-control: no-cache\r\n"); |
| 271 | } |
| 272 | |
| 273 | if( blob_size(&extraHeader)>0 ){ |
| 274 | fprintf(g.httpOut, "%s", blob_buffer(&extraHeader)); |
| 275 | } |
| 276 | |
| @@ -343,24 +290,10 @@ | |
| 290 | ** |
| 291 | ** These headers are probably best added by the web server hosting fossil as |
| 292 | ** a CGI script. |
| 293 | */ |
| 294 | |
| 295 | /* Content intended for logged in users should only be cached in |
| 296 | ** the browser, not some shared location. |
| 297 | */ |
| 298 | fprintf(g.httpOut, "Content-Type: %s; charset=utf-8\r\n", zContentType); |
| 299 | if( fossil_strcmp(zContentType,"application/x-fossil")==0 ){ |
| 300 |
+10
-7
| --- src/doc.c | ||
| +++ src/doc.c | ||
| @@ -639,15 +639,18 @@ | ||
| 639 | 639 | }else{ |
| 640 | 640 | goto doc_not_found; |
| 641 | 641 | } |
| 642 | 642 | } |
| 643 | 643 | if( isUV ){ |
| 644 | - if( db_table_exists("repository","unversioned") | |
| 645 | - && unversioned_content(zName, &filebody)==0 | |
| 646 | - ){ | |
| 647 | - rid = 1; | |
| 648 | - zDfltTitle = zName; | |
| 644 | + if( db_table_exists("repository","unversioned") ){ | |
| 645 | + char *zHash; | |
| 646 | + zHash = db_text(0, "SELECT hash FROM unversioned WHERE name=%Q",zName); | |
| 647 | + etag_check(ETAG_HASH, zHash); | |
| 648 | + if( unversioned_content(zName, &filebody)==0 ){ | |
| 649 | + rid = 1; | |
| 650 | + zDfltTitle = zName; | |
| 651 | + } | |
| 649 | 652 | } |
| 650 | 653 | }else if( fossil_strcmp(zCheckin,"ckout")==0 ){ |
| 651 | 654 | /* Read from the local checkout */ |
| 652 | 655 | char *zFullpath; |
| 653 | 656 | db_must_be_within_tree(); |
| @@ -839,19 +842,19 @@ | ||
| 839 | 842 | */ |
| 840 | 843 | void logo_page(void){ |
| 841 | 844 | Blob logo; |
| 842 | 845 | char *zMime; |
| 843 | 846 | |
| 847 | + etag_check(ETAG_CONFIG, 0); | |
| 844 | 848 | zMime = db_get("logo-mimetype", "image/gif"); |
| 845 | 849 | blob_zero(&logo); |
| 846 | 850 | db_blob(&logo, "SELECT value FROM config WHERE name='logo-image'"); |
| 847 | 851 | if( blob_size(&logo)==0 ){ |
| 848 | 852 | blob_init(&logo, (char*)aLogo, sizeof(aLogo)); |
| 849 | 853 | } |
| 850 | 854 | cgi_set_content_type(zMime); |
| 851 | 855 | cgi_set_content(&logo); |
| 852 | - g.isConst = 1; | |
| 853 | 856 | } |
| 854 | 857 | |
| 855 | 858 | /* |
| 856 | 859 | ** The default background image: a 16x16 white GIF |
| 857 | 860 | */ |
| @@ -873,19 +876,19 @@ | ||
| 873 | 876 | */ |
| 874 | 877 | void background_page(void){ |
| 875 | 878 | Blob bgimg; |
| 876 | 879 | char *zMime; |
| 877 | 880 | |
| 881 | + etag_check(ETAG_CONFIG, 0); | |
| 878 | 882 | zMime = db_get("background-mimetype", "image/gif"); |
| 879 | 883 | blob_zero(&bgimg); |
| 880 | 884 | db_blob(&bgimg, "SELECT value FROM config WHERE name='background-image'"); |
| 881 | 885 | if( blob_size(&bgimg)==0 ){ |
| 882 | 886 | blob_init(&bgimg, (char*)aBackground, sizeof(aBackground)); |
| 883 | 887 | } |
| 884 | 888 | cgi_set_content_type(zMime); |
| 885 | 889 | cgi_set_content(&bgimg); |
| 886 | - g.isConst = 1; | |
| 887 | 890 | } |
| 888 | 891 | |
| 889 | 892 | |
| 890 | 893 | /* |
| 891 | 894 | ** WEBPAGE: docsrch |
| 892 | 895 | |
| 893 | 896 | ADDED src/etag.c |
| --- src/doc.c | |
| +++ src/doc.c | |
| @@ -639,15 +639,18 @@ | |
| 639 | }else{ |
| 640 | goto doc_not_found; |
| 641 | } |
| 642 | } |
| 643 | if( isUV ){ |
| 644 | if( db_table_exists("repository","unversioned") |
| 645 | && unversioned_content(zName, &filebody)==0 |
| 646 | ){ |
| 647 | rid = 1; |
| 648 | zDfltTitle = zName; |
| 649 | } |
| 650 | }else if( fossil_strcmp(zCheckin,"ckout")==0 ){ |
| 651 | /* Read from the local checkout */ |
| 652 | char *zFullpath; |
| 653 | db_must_be_within_tree(); |
| @@ -839,19 +842,19 @@ | |
| 839 | */ |
| 840 | void logo_page(void){ |
| 841 | Blob logo; |
| 842 | char *zMime; |
| 843 | |
| 844 | zMime = db_get("logo-mimetype", "image/gif"); |
| 845 | blob_zero(&logo); |
| 846 | db_blob(&logo, "SELECT value FROM config WHERE name='logo-image'"); |
| 847 | if( blob_size(&logo)==0 ){ |
| 848 | blob_init(&logo, (char*)aLogo, sizeof(aLogo)); |
| 849 | } |
| 850 | cgi_set_content_type(zMime); |
| 851 | cgi_set_content(&logo); |
| 852 | g.isConst = 1; |
| 853 | } |
| 854 | |
| 855 | /* |
| 856 | ** The default background image: a 16x16 white GIF |
| 857 | */ |
| @@ -873,19 +876,19 @@ | |
| 873 | */ |
| 874 | void background_page(void){ |
| 875 | Blob bgimg; |
| 876 | char *zMime; |
| 877 | |
| 878 | zMime = db_get("background-mimetype", "image/gif"); |
| 879 | blob_zero(&bgimg); |
| 880 | db_blob(&bgimg, "SELECT value FROM config WHERE name='background-image'"); |
| 881 | if( blob_size(&bgimg)==0 ){ |
| 882 | blob_init(&bgimg, (char*)aBackground, sizeof(aBackground)); |
| 883 | } |
| 884 | cgi_set_content_type(zMime); |
| 885 | cgi_set_content(&bgimg); |
| 886 | g.isConst = 1; |
| 887 | } |
| 888 | |
| 889 | |
| 890 | /* |
| 891 | ** WEBPAGE: docsrch |
| 892 | |
| 893 | DDED src/etag.c |
| --- src/doc.c | |
| +++ src/doc.c | |
| @@ -639,15 +639,18 @@ | |
| 639 | }else{ |
| 640 | goto doc_not_found; |
| 641 | } |
| 642 | } |
| 643 | if( isUV ){ |
| 644 | if( db_table_exists("repository","unversioned") ){ |
| 645 | char *zHash; |
| 646 | zHash = db_text(0, "SELECT hash FROM unversioned WHERE name=%Q",zName); |
| 647 | etag_check(ETAG_HASH, zHash); |
| 648 | if( unversioned_content(zName, &filebody)==0 ){ |
| 649 | rid = 1; |
| 650 | zDfltTitle = zName; |
| 651 | } |
| 652 | } |
| 653 | }else if( fossil_strcmp(zCheckin,"ckout")==0 ){ |
| 654 | /* Read from the local checkout */ |
| 655 | char *zFullpath; |
| 656 | db_must_be_within_tree(); |
| @@ -839,19 +842,19 @@ | |
| 842 | */ |
| 843 | void logo_page(void){ |
| 844 | Blob logo; |
| 845 | char *zMime; |
| 846 | |
| 847 | etag_check(ETAG_CONFIG, 0); |
| 848 | zMime = db_get("logo-mimetype", "image/gif"); |
| 849 | blob_zero(&logo); |
| 850 | db_blob(&logo, "SELECT value FROM config WHERE name='logo-image'"); |
| 851 | if( blob_size(&logo)==0 ){ |
| 852 | blob_init(&logo, (char*)aLogo, sizeof(aLogo)); |
| 853 | } |
| 854 | cgi_set_content_type(zMime); |
| 855 | cgi_set_content(&logo); |
| 856 | } |
| 857 | |
| 858 | /* |
| 859 | ** The default background image: a 16x16 white GIF |
| 860 | */ |
| @@ -873,19 +876,19 @@ | |
| 876 | */ |
| 877 | void background_page(void){ |
| 878 | Blob bgimg; |
| 879 | char *zMime; |
| 880 | |
| 881 | etag_check(ETAG_CONFIG, 0); |
| 882 | zMime = db_get("background-mimetype", "image/gif"); |
| 883 | blob_zero(&bgimg); |
| 884 | db_blob(&bgimg, "SELECT value FROM config WHERE name='background-image'"); |
| 885 | if( blob_size(&bgimg)==0 ){ |
| 886 | blob_init(&bgimg, (char*)aBackground, sizeof(aBackground)); |
| 887 | } |
| 888 | cgi_set_content_type(zMime); |
| 889 | cgi_set_content(&bgimg); |
| 890 | } |
| 891 | |
| 892 | |
| 893 | /* |
| 894 | ** WEBPAGE: docsrch |
| 895 | |
| 896 | DDED src/etag.c |
+113
| --- a/src/etag.c | ||
| +++ b/src/etag.c | ||
| @@ -0,0 +1,113 @@ | ||
| 1 | +/* | |
| 2 | +** Copyright (c) 2018 iMaxAge = 86400;MATCH"); | |
| 3 | + if( zIfNoneMatch==0 ) return; | |
| 4 | + * | |
| 5 | +** Copyright (c) 2018 D. Richard Hipp | |
| 6 | +** | |
| 7 | +** This program is free software; you can redistribute it and/or | |
| 8 | +** modif Simplified BSD License (also | |
| 9 | +** known as the "2-Clause License" or "FreeBSD License".) | |
| 10 | +** | |
| 11 | +** This program is distributed in the hope that it will be useful, | |
| 12 | +** but without any warranty; without even the implied warranty of | |
| 13 | +** merchantability or fitness for a particular purpose. | |
| 14 | +** | |
| 15 | +** Author contact information: | |
| 16 | +** [email protected] | |
| 17 | +** http://www.hwaci.com/drh/ | |
| 18 | +** | |
| 19 | +******************************************************************************* | |
| 20 | +** | |
| 21 | +** This file implements ETags: cache control for Fossil | |
| 22 | +** | |
| 23 | +** An ETag is a hash that encodes attributes which must be the same for | |
| 24 | +** the page to continue to be valid. Attributes that might be contained | |
| 25 | +** in the ETag include: | |
| 26 | +** | |
| 27 | +** (1) The mtime on the Fossil executable | |
| 28 | +** (2) The last change to the CONFIG table | |
| 29 | +** ( | |
| 30 | +** Item in the ETag. The other7) The name user as determined by the login cookie | |
| 31 | +** | |
| 32 | +** Item (1) is always included in the ETag. The other elements are | |
| 33 | +** optional. Bec************************************** | |
| 34 | +** | |
| 35 | +** This file implements ETags: casqlite3_int64 mtime; cache control for Fossil | |
| 36 | +** | |
| 37 | +** An ETag is a hash that encodes attributes which must be the same for | |
| 38 | +** the page to continue to be valid. Attmtime of the executable as pa; | |
| 39 | +mtime: %lld\n", mtime); | |
| 40 | +zBuf, -can redistribute it and/or | |
| 41 | +** modif Simplified BSD License (also | |
| 42 | +** known as the "2-Clause License" or "FreeBSD License".) | |
| 43 | +** | |
| 44 | +** This program is distributed in the hope thMaxAelse) 2018 iMaxAge = 86400;MATCH"); | |
| 45 | + if( zIfNoneMatch==0 ) return; | |
| 46 | + * | |
| 47 | +** Copyright (c) 2018 D. Richard Hipp | |
| 48 | +** | |
| 49 | +** This program is free software; you can redistribute it and/or | |
| 50 | +** modif Simplified BSD License (also | |
| 51 | +** known as the "2-Clause License" or "/* | |
| 52 | +** Copyright (c) 2018 iMaxAge = 86400;MATCH"); | |
| 53 | + if( zIfNoneMatch==0 ) return; | |
| 54 | + * | |
| 55 | +** Copyright (c) 2018 D. Richard Hipp | |
| 56 | +** | |
| 57 | +** This program is free software; you can redistribute it and/or | |
| 58 | +** modif Simplified BSD License (also | |
| 59 | +** known as the "2-Clause License" or "FreeBSD License".) | |
| 60 | +** | |
| 61 | +** This program is distributed in the hope that it will be useful, | |
| 62 | +** but without any warranty; without even the implied warranty of | |
| 63 | +** merchantability or fitness for a particular purpoaxAge = 86400;MATCH"); | |
| 64 | + if( zIfNoneMatch==0 ) return; | |
| 65 | + * | |
| 66 | +** Copyright (c) 2018 D. Richard Hipp | |
| 67 | +** | |
| 68 | +** This program is free software; you can redistribute it and/or | |
| 69 | +** modif Simplified BSD License (also | |
| 70 | +** known as the "2-Clause License" or "FreeBSD License".) | |
| 71 | +** | |
| 72 | +** This program is distributed in the hope that it will be useful, | |
| 73 | +** but without any warranty; without even the implied warranty of | |
| 74 | +** merchantability or fitness for a particular purpose. | |
| 75 | +** | |
| 76 | +** Author contact information: | |
| 77 | +** [email protected] | |
| 78 | +** http://www.hwaci.com/drh/ | |
| 79 | +** | |
| 80 | +******************************************************************************* | |
| 81 | +** | |
| 82 | +** This file implements ETags: cache control for Fossil | |
| 83 | +** | |
| 84 | +** An ETag is a hash that encodes attributes which must be the same for | |
| 85 | +** the page to continue to be valid. Attributes that might be contained | |
| 86 | +** in the ETag include: | |
| 87 | +** | |
| 88 | +** (1) The mtime on the Fossil executable | |
| 89 | +** (2) The last change to the CONFIG table | |
| 90 | +** ( | |
| 91 | +** Item in the ETag. The other7) The name user as determined by the login cookie | |
| 92 | +** | |
| 93 | +** Item (1) is always included in the ETag. The other elements are | |
| 94 | +** optional. Bec************************************** | |
| 95 | +** | |
| 96 | +** This file implements ETags: casqlite3_int64 mtime; cache control for Fossil | |
| 97 | +** | |
| 98 | +** An ETag is a hash that encodes attributes which must be the same for | |
| 99 | +** the page to continue to be valid. Attmtime of the executable as pa; | |
| 100 | +mtime: %lld\n", mtime); | |
| 101 | +zBuf, -can redistribute it and/or | |
| 102 | +** modif Simplified BSD License (also | |
| 103 | +** known as the "2-Clause License" or "FreeBSD License".) | |
| 104 | +** | |
| 105 | +** This program is distributed in the hope thMaxAelse) 2018 iMaxAge = 86400;MATCH"); | |
| 106 | + if( zIfNoneMatch==0 ) return; | |
| 107 | + * | |
| 108 | +** Copyright (c) 2018 D. Richard Hipp | |
| 109 | +** | |
| 110 | +** This program is free software; you can redistribute it and/or | |
| 111 | +** modif Simplified BSD License (also | |
| 112 | +** known as the "2-Clause License" or "FreeBSD License".) | |
| 113 | +** |
| --- a/src/etag.c | |
| +++ b/src/etag.c | |
| @@ -0,0 +1,113 @@ | |
| --- a/src/etag.c | |
| +++ b/src/etag.c | |
| @@ -0,0 +1,113 @@ | |
| 1 | /* |
| 2 | ** Copyright (c) 2018 iMaxAge = 86400;MATCH"); |
| 3 | if( zIfNoneMatch==0 ) return; |
| 4 | * |
| 5 | ** Copyright (c) 2018 D. Richard Hipp |
| 6 | ** |
| 7 | ** This program is free software; you can redistribute it and/or |
| 8 | ** modif Simplified BSD License (also |
| 9 | ** known as the "2-Clause License" or "FreeBSD License".) |
| 10 | ** |
| 11 | ** This program is distributed in the hope that it will be useful, |
| 12 | ** but without any warranty; without even the implied warranty of |
| 13 | ** merchantability or fitness for a particular purpose. |
| 14 | ** |
| 15 | ** Author contact information: |
| 16 | ** [email protected] |
| 17 | ** http://www.hwaci.com/drh/ |
| 18 | ** |
| 19 | ******************************************************************************* |
| 20 | ** |
| 21 | ** This file implements ETags: cache control for Fossil |
| 22 | ** |
| 23 | ** An ETag is a hash that encodes attributes which must be the same for |
| 24 | ** the page to continue to be valid. Attributes that might be contained |
| 25 | ** in the ETag include: |
| 26 | ** |
| 27 | ** (1) The mtime on the Fossil executable |
| 28 | ** (2) The last change to the CONFIG table |
| 29 | ** ( |
| 30 | ** Item in the ETag. The other7) The name user as determined by the login cookie |
| 31 | ** |
| 32 | ** Item (1) is always included in the ETag. The other elements are |
| 33 | ** optional. Bec************************************** |
| 34 | ** |
| 35 | ** This file implements ETags: casqlite3_int64 mtime; cache control for Fossil |
| 36 | ** |
| 37 | ** An ETag is a hash that encodes attributes which must be the same for |
| 38 | ** the page to continue to be valid. Attmtime of the executable as pa; |
| 39 | mtime: %lld\n", mtime); |
| 40 | zBuf, -can redistribute it and/or |
| 41 | ** modif Simplified BSD License (also |
| 42 | ** known as the "2-Clause License" or "FreeBSD License".) |
| 43 | ** |
| 44 | ** This program is distributed in the hope thMaxAelse) 2018 iMaxAge = 86400;MATCH"); |
| 45 | if( zIfNoneMatch==0 ) return; |
| 46 | * |
| 47 | ** Copyright (c) 2018 D. Richard Hipp |
| 48 | ** |
| 49 | ** This program is free software; you can redistribute it and/or |
| 50 | ** modif Simplified BSD License (also |
| 51 | ** known as the "2-Clause License" or "/* |
| 52 | ** Copyright (c) 2018 iMaxAge = 86400;MATCH"); |
| 53 | if( zIfNoneMatch==0 ) return; |
| 54 | * |
| 55 | ** Copyright (c) 2018 D. Richard Hipp |
| 56 | ** |
| 57 | ** This program is free software; you can redistribute it and/or |
| 58 | ** modif Simplified BSD License (also |
| 59 | ** known as the "2-Clause License" or "FreeBSD License".) |
| 60 | ** |
| 61 | ** This program is distributed in the hope that it will be useful, |
| 62 | ** but without any warranty; without even the implied warranty of |
| 63 | ** merchantability or fitness for a particular purpoaxAge = 86400;MATCH"); |
| 64 | if( zIfNoneMatch==0 ) return; |
| 65 | * |
| 66 | ** Copyright (c) 2018 D. Richard Hipp |
| 67 | ** |
| 68 | ** This program is free software; you can redistribute it and/or |
| 69 | ** modif Simplified BSD License (also |
| 70 | ** known as the "2-Clause License" or "FreeBSD License".) |
| 71 | ** |
| 72 | ** This program is distributed in the hope that it will be useful, |
| 73 | ** but without any warranty; without even the implied warranty of |
| 74 | ** merchantability or fitness for a particular purpose. |
| 75 | ** |
| 76 | ** Author contact information: |
| 77 | ** [email protected] |
| 78 | ** http://www.hwaci.com/drh/ |
| 79 | ** |
| 80 | ******************************************************************************* |
| 81 | ** |
| 82 | ** This file implements ETags: cache control for Fossil |
| 83 | ** |
| 84 | ** An ETag is a hash that encodes attributes which must be the same for |
| 85 | ** the page to continue to be valid. Attributes that might be contained |
| 86 | ** in the ETag include: |
| 87 | ** |
| 88 | ** (1) The mtime on the Fossil executable |
| 89 | ** (2) The last change to the CONFIG table |
| 90 | ** ( |
| 91 | ** Item in the ETag. The other7) The name user as determined by the login cookie |
| 92 | ** |
| 93 | ** Item (1) is always included in the ETag. The other elements are |
| 94 | ** optional. Bec************************************** |
| 95 | ** |
| 96 | ** This file implements ETags: casqlite3_int64 mtime; cache control for Fossil |
| 97 | ** |
| 98 | ** An ETag is a hash that encodes attributes which must be the same for |
| 99 | ** the page to continue to be valid. Attmtime of the executable as pa; |
| 100 | mtime: %lld\n", mtime); |
| 101 | zBuf, -can redistribute it and/or |
| 102 | ** modif Simplified BSD License (also |
| 103 | ** known as the "2-Clause License" or "FreeBSD License".) |
| 104 | ** |
| 105 | ** This program is distributed in the hope thMaxAelse) 2018 iMaxAge = 86400;MATCH"); |
| 106 | if( zIfNoneMatch==0 ) return; |
| 107 | * |
| 108 | ** Copyright (c) 2018 D. Richard Hipp |
| 109 | ** |
| 110 | ** This program is free software; you can redistribute it and/or |
| 111 | ** modif Simplified BSD License (also |
| 112 | ** known as the "2-Clause License" or "FreeBSD License".) |
| 113 | ** |
+12
| --- src/main.mk | ||
| +++ src/main.mk | ||
| @@ -43,10 +43,11 @@ | ||
| 43 | 43 | $(SRCDIR)/diff.c \ |
| 44 | 44 | $(SRCDIR)/diffcmd.c \ |
| 45 | 45 | $(SRCDIR)/dispatch.c \ |
| 46 | 46 | $(SRCDIR)/doc.c \ |
| 47 | 47 | $(SRCDIR)/encode.c \ |
| 48 | + $(SRCDIR)/etag.c \ | |
| 48 | 49 | $(SRCDIR)/event.c \ |
| 49 | 50 | $(SRCDIR)/export.c \ |
| 50 | 51 | $(SRCDIR)/file.c \ |
| 51 | 52 | $(SRCDIR)/finfo.c \ |
| 52 | 53 | $(SRCDIR)/foci.c \ |
| @@ -243,10 +244,11 @@ | ||
| 243 | 244 | $(OBJDIR)/diff_.c \ |
| 244 | 245 | $(OBJDIR)/diffcmd_.c \ |
| 245 | 246 | $(OBJDIR)/dispatch_.c \ |
| 246 | 247 | $(OBJDIR)/doc_.c \ |
| 247 | 248 | $(OBJDIR)/encode_.c \ |
| 249 | + $(OBJDIR)/etag_.c \ | |
| 248 | 250 | $(OBJDIR)/event_.c \ |
| 249 | 251 | $(OBJDIR)/export_.c \ |
| 250 | 252 | $(OBJDIR)/file_.c \ |
| 251 | 253 | $(OBJDIR)/finfo_.c \ |
| 252 | 254 | $(OBJDIR)/foci_.c \ |
| @@ -372,10 +374,11 @@ | ||
| 372 | 374 | $(OBJDIR)/diff.o \ |
| 373 | 375 | $(OBJDIR)/diffcmd.o \ |
| 374 | 376 | $(OBJDIR)/dispatch.o \ |
| 375 | 377 | $(OBJDIR)/doc.o \ |
| 376 | 378 | $(OBJDIR)/encode.o \ |
| 379 | + $(OBJDIR)/etag.o \ | |
| 377 | 380 | $(OBJDIR)/event.o \ |
| 378 | 381 | $(OBJDIR)/export.o \ |
| 379 | 382 | $(OBJDIR)/file.o \ |
| 380 | 383 | $(OBJDIR)/finfo.o \ |
| 381 | 384 | $(OBJDIR)/foci.o \ |
| @@ -673,10 +676,11 @@ | ||
| 673 | 676 | $(OBJDIR)/diff_.c:$(OBJDIR)/diff.h \ |
| 674 | 677 | $(OBJDIR)/diffcmd_.c:$(OBJDIR)/diffcmd.h \ |
| 675 | 678 | $(OBJDIR)/dispatch_.c:$(OBJDIR)/dispatch.h \ |
| 676 | 679 | $(OBJDIR)/doc_.c:$(OBJDIR)/doc.h \ |
| 677 | 680 | $(OBJDIR)/encode_.c:$(OBJDIR)/encode.h \ |
| 681 | + $(OBJDIR)/etag_.c:$(OBJDIR)/etag.h \ | |
| 678 | 682 | $(OBJDIR)/event_.c:$(OBJDIR)/event.h \ |
| 679 | 683 | $(OBJDIR)/export_.c:$(OBJDIR)/export.h \ |
| 680 | 684 | $(OBJDIR)/file_.c:$(OBJDIR)/file.h \ |
| 681 | 685 | $(OBJDIR)/finfo_.c:$(OBJDIR)/finfo.h \ |
| 682 | 686 | $(OBJDIR)/foci_.c:$(OBJDIR)/foci.h \ |
| @@ -1016,10 +1020,18 @@ | ||
| 1016 | 1020 | |
| 1017 | 1021 | $(OBJDIR)/encode.o: $(OBJDIR)/encode_.c $(OBJDIR)/encode.h $(SRCDIR)/config.h |
| 1018 | 1022 | $(XTCC) -o $(OBJDIR)/encode.o -c $(OBJDIR)/encode_.c |
| 1019 | 1023 | |
| 1020 | 1024 | $(OBJDIR)/encode.h: $(OBJDIR)/headers |
| 1025 | + | |
| 1026 | +$(OBJDIR)/etag_.c: $(SRCDIR)/etag.c $(OBJDIR)/translate | |
| 1027 | + $(OBJDIR)/translate $(SRCDIR)/etag.c >$@ | |
| 1028 | + | |
| 1029 | +$(OBJDIR)/etag.o: $(OBJDIR)/etag_.c $(OBJDIR)/etag.h $(SRCDIR)/config.h | |
| 1030 | + $(XTCC) -o $(OBJDIR)/etag.o -c $(OBJDIR)/etag_.c | |
| 1031 | + | |
| 1032 | +$(OBJDIR)/etag.h: $(OBJDIR)/headers | |
| 1021 | 1033 | |
| 1022 | 1034 | $(OBJDIR)/event_.c: $(SRCDIR)/event.c $(OBJDIR)/translate |
| 1023 | 1035 | $(OBJDIR)/translate $(SRCDIR)/event.c >$@ |
| 1024 | 1036 | |
| 1025 | 1037 | $(OBJDIR)/event.o: $(OBJDIR)/event_.c $(OBJDIR)/event.h $(SRCDIR)/config.h |
| 1026 | 1038 |
| --- src/main.mk | |
| +++ src/main.mk | |
| @@ -43,10 +43,11 @@ | |
| 43 | $(SRCDIR)/diff.c \ |
| 44 | $(SRCDIR)/diffcmd.c \ |
| 45 | $(SRCDIR)/dispatch.c \ |
| 46 | $(SRCDIR)/doc.c \ |
| 47 | $(SRCDIR)/encode.c \ |
| 48 | $(SRCDIR)/event.c \ |
| 49 | $(SRCDIR)/export.c \ |
| 50 | $(SRCDIR)/file.c \ |
| 51 | $(SRCDIR)/finfo.c \ |
| 52 | $(SRCDIR)/foci.c \ |
| @@ -243,10 +244,11 @@ | |
| 243 | $(OBJDIR)/diff_.c \ |
| 244 | $(OBJDIR)/diffcmd_.c \ |
| 245 | $(OBJDIR)/dispatch_.c \ |
| 246 | $(OBJDIR)/doc_.c \ |
| 247 | $(OBJDIR)/encode_.c \ |
| 248 | $(OBJDIR)/event_.c \ |
| 249 | $(OBJDIR)/export_.c \ |
| 250 | $(OBJDIR)/file_.c \ |
| 251 | $(OBJDIR)/finfo_.c \ |
| 252 | $(OBJDIR)/foci_.c \ |
| @@ -372,10 +374,11 @@ | |
| 372 | $(OBJDIR)/diff.o \ |
| 373 | $(OBJDIR)/diffcmd.o \ |
| 374 | $(OBJDIR)/dispatch.o \ |
| 375 | $(OBJDIR)/doc.o \ |
| 376 | $(OBJDIR)/encode.o \ |
| 377 | $(OBJDIR)/event.o \ |
| 378 | $(OBJDIR)/export.o \ |
| 379 | $(OBJDIR)/file.o \ |
| 380 | $(OBJDIR)/finfo.o \ |
| 381 | $(OBJDIR)/foci.o \ |
| @@ -673,10 +676,11 @@ | |
| 673 | $(OBJDIR)/diff_.c:$(OBJDIR)/diff.h \ |
| 674 | $(OBJDIR)/diffcmd_.c:$(OBJDIR)/diffcmd.h \ |
| 675 | $(OBJDIR)/dispatch_.c:$(OBJDIR)/dispatch.h \ |
| 676 | $(OBJDIR)/doc_.c:$(OBJDIR)/doc.h \ |
| 677 | $(OBJDIR)/encode_.c:$(OBJDIR)/encode.h \ |
| 678 | $(OBJDIR)/event_.c:$(OBJDIR)/event.h \ |
| 679 | $(OBJDIR)/export_.c:$(OBJDIR)/export.h \ |
| 680 | $(OBJDIR)/file_.c:$(OBJDIR)/file.h \ |
| 681 | $(OBJDIR)/finfo_.c:$(OBJDIR)/finfo.h \ |
| 682 | $(OBJDIR)/foci_.c:$(OBJDIR)/foci.h \ |
| @@ -1016,10 +1020,18 @@ | |
| 1016 | |
| 1017 | $(OBJDIR)/encode.o: $(OBJDIR)/encode_.c $(OBJDIR)/encode.h $(SRCDIR)/config.h |
| 1018 | $(XTCC) -o $(OBJDIR)/encode.o -c $(OBJDIR)/encode_.c |
| 1019 | |
| 1020 | $(OBJDIR)/encode.h: $(OBJDIR)/headers |
| 1021 | |
| 1022 | $(OBJDIR)/event_.c: $(SRCDIR)/event.c $(OBJDIR)/translate |
| 1023 | $(OBJDIR)/translate $(SRCDIR)/event.c >$@ |
| 1024 | |
| 1025 | $(OBJDIR)/event.o: $(OBJDIR)/event_.c $(OBJDIR)/event.h $(SRCDIR)/config.h |
| 1026 |
| --- src/main.mk | |
| +++ src/main.mk | |
| @@ -43,10 +43,11 @@ | |
| 43 | $(SRCDIR)/diff.c \ |
| 44 | $(SRCDIR)/diffcmd.c \ |
| 45 | $(SRCDIR)/dispatch.c \ |
| 46 | $(SRCDIR)/doc.c \ |
| 47 | $(SRCDIR)/encode.c \ |
| 48 | $(SRCDIR)/etag.c \ |
| 49 | $(SRCDIR)/event.c \ |
| 50 | $(SRCDIR)/export.c \ |
| 51 | $(SRCDIR)/file.c \ |
| 52 | $(SRCDIR)/finfo.c \ |
| 53 | $(SRCDIR)/foci.c \ |
| @@ -243,10 +244,11 @@ | |
| 244 | $(OBJDIR)/diff_.c \ |
| 245 | $(OBJDIR)/diffcmd_.c \ |
| 246 | $(OBJDIR)/dispatch_.c \ |
| 247 | $(OBJDIR)/doc_.c \ |
| 248 | $(OBJDIR)/encode_.c \ |
| 249 | $(OBJDIR)/etag_.c \ |
| 250 | $(OBJDIR)/event_.c \ |
| 251 | $(OBJDIR)/export_.c \ |
| 252 | $(OBJDIR)/file_.c \ |
| 253 | $(OBJDIR)/finfo_.c \ |
| 254 | $(OBJDIR)/foci_.c \ |
| @@ -372,10 +374,11 @@ | |
| 374 | $(OBJDIR)/diff.o \ |
| 375 | $(OBJDIR)/diffcmd.o \ |
| 376 | $(OBJDIR)/dispatch.o \ |
| 377 | $(OBJDIR)/doc.o \ |
| 378 | $(OBJDIR)/encode.o \ |
| 379 | $(OBJDIR)/etag.o \ |
| 380 | $(OBJDIR)/event.o \ |
| 381 | $(OBJDIR)/export.o \ |
| 382 | $(OBJDIR)/file.o \ |
| 383 | $(OBJDIR)/finfo.o \ |
| 384 | $(OBJDIR)/foci.o \ |
| @@ -673,10 +676,11 @@ | |
| 676 | $(OBJDIR)/diff_.c:$(OBJDIR)/diff.h \ |
| 677 | $(OBJDIR)/diffcmd_.c:$(OBJDIR)/diffcmd.h \ |
| 678 | $(OBJDIR)/dispatch_.c:$(OBJDIR)/dispatch.h \ |
| 679 | $(OBJDIR)/doc_.c:$(OBJDIR)/doc.h \ |
| 680 | $(OBJDIR)/encode_.c:$(OBJDIR)/encode.h \ |
| 681 | $(OBJDIR)/etag_.c:$(OBJDIR)/etag.h \ |
| 682 | $(OBJDIR)/event_.c:$(OBJDIR)/event.h \ |
| 683 | $(OBJDIR)/export_.c:$(OBJDIR)/export.h \ |
| 684 | $(OBJDIR)/file_.c:$(OBJDIR)/file.h \ |
| 685 | $(OBJDIR)/finfo_.c:$(OBJDIR)/finfo.h \ |
| 686 | $(OBJDIR)/foci_.c:$(OBJDIR)/foci.h \ |
| @@ -1016,10 +1020,18 @@ | |
| 1020 | |
| 1021 | $(OBJDIR)/encode.o: $(OBJDIR)/encode_.c $(OBJDIR)/encode.h $(SRCDIR)/config.h |
| 1022 | $(XTCC) -o $(OBJDIR)/encode.o -c $(OBJDIR)/encode_.c |
| 1023 | |
| 1024 | $(OBJDIR)/encode.h: $(OBJDIR)/headers |
| 1025 | |
| 1026 | $(OBJDIR)/etag_.c: $(SRCDIR)/etag.c $(OBJDIR)/translate |
| 1027 | $(OBJDIR)/translate $(SRCDIR)/etag.c >$@ |
| 1028 | |
| 1029 | $(OBJDIR)/etag.o: $(OBJDIR)/etag_.c $(OBJDIR)/etag.h $(SRCDIR)/config.h |
| 1030 | $(XTCC) -o $(OBJDIR)/etag.o -c $(OBJDIR)/etag_.c |
| 1031 | |
| 1032 | $(OBJDIR)/etag.h: $(OBJDIR)/headers |
| 1033 | |
| 1034 | $(OBJDIR)/event_.c: $(SRCDIR)/event.c $(OBJDIR)/translate |
| 1035 | $(OBJDIR)/translate $(SRCDIR)/event.c >$@ |
| 1036 | |
| 1037 | $(OBJDIR)/event.o: $(OBJDIR)/event_.c $(OBJDIR)/event.h $(SRCDIR)/config.h |
| 1038 |
+1
| --- src/makemake.tcl | ||
| +++ src/makemake.tcl | ||
| @@ -55,10 +55,11 @@ | ||
| 55 | 55 | diff |
| 56 | 56 | diffcmd |
| 57 | 57 | dispatch |
| 58 | 58 | doc |
| 59 | 59 | encode |
| 60 | + etag | |
| 60 | 61 | event |
| 61 | 62 | export |
| 62 | 63 | file |
| 63 | 64 | finfo |
| 64 | 65 | foci |
| 65 | 66 |
| --- src/makemake.tcl | |
| +++ src/makemake.tcl | |
| @@ -55,10 +55,11 @@ | |
| 55 | diff |
| 56 | diffcmd |
| 57 | dispatch |
| 58 | doc |
| 59 | encode |
| 60 | event |
| 61 | export |
| 62 | file |
| 63 | finfo |
| 64 | foci |
| 65 |
| --- src/makemake.tcl | |
| +++ src/makemake.tcl | |
| @@ -55,10 +55,11 @@ | |
| 55 | diff |
| 56 | diffcmd |
| 57 | dispatch |
| 58 | doc |
| 59 | encode |
| 60 | etag |
| 61 | event |
| 62 | export |
| 63 | file |
| 64 | finfo |
| 65 | foci |
| 66 |
+16
| --- src/setup.c | ||
| +++ src/setup.c | ||
| @@ -18,10 +18,25 @@ | ||
| 18 | 18 | ** Implementation of the Setup page |
| 19 | 19 | */ |
| 20 | 20 | #include "config.h" |
| 21 | 21 | #include <assert.h> |
| 22 | 22 | #include "setup.h" |
| 23 | + | |
| 24 | +/* | |
| 25 | +** Increment the "cfgcnt" variable, so that ETags will know that | |
| 26 | +** the configuration has changed. | |
| 27 | +*/ | |
| 28 | +void setup_incr_cfgcnt(void){ | |
| 29 | + static int once = 1; | |
| 30 | + if( once ){ | |
| 31 | + once = 0; | |
| 32 | + db_multi_exec("UPDATE config SET value=value+1 WHERE name='cfgcnt'"); | |
| 33 | + if( db_changes()==0 ){ | |
| 34 | + db_multi_exec("INSERT INTO config(name,value) VALUES('cfgcnt',1)"); | |
| 35 | + } | |
| 36 | + } | |
| 37 | +} | |
| 23 | 38 | |
| 24 | 39 | /* |
| 25 | 40 | ** Output a single entry for a menu generated using an HTML table. |
| 26 | 41 | ** If zLink is not NULL or an empty string, then it is the page that |
| 27 | 42 | ** the menu entry will hyperlink to. If zLink is NULL or "", then |
| @@ -496,10 +511,11 @@ | ||
| 496 | 511 | db_multi_exec( |
| 497 | 512 | "REPLACE INTO user(uid,login,info,pw,cap,mtime) " |
| 498 | 513 | "VALUES(nullif(%d,0),%Q,%Q,%Q,%Q,now())", |
| 499 | 514 | uid, zLogin, P("info"), zPw, zCap |
| 500 | 515 | ); |
| 516 | + setup_incr_cfgcnt(); | |
| 501 | 517 | admin_log( "Updated user [%q] with capabilities [%q].", |
| 502 | 518 | zLogin, zCap ); |
| 503 | 519 | if( atoi(PD("all","0"))>0 ){ |
| 504 | 520 | Blob sql; |
| 505 | 521 | char *zErr = 0; |
| 506 | 522 |
| --- src/setup.c | |
| +++ src/setup.c | |
| @@ -18,10 +18,25 @@ | |
| 18 | ** Implementation of the Setup page |
| 19 | */ |
| 20 | #include "config.h" |
| 21 | #include <assert.h> |
| 22 | #include "setup.h" |
| 23 | |
| 24 | /* |
| 25 | ** Output a single entry for a menu generated using an HTML table. |
| 26 | ** If zLink is not NULL or an empty string, then it is the page that |
| 27 | ** the menu entry will hyperlink to. If zLink is NULL or "", then |
| @@ -496,10 +511,11 @@ | |
| 496 | db_multi_exec( |
| 497 | "REPLACE INTO user(uid,login,info,pw,cap,mtime) " |
| 498 | "VALUES(nullif(%d,0),%Q,%Q,%Q,%Q,now())", |
| 499 | uid, zLogin, P("info"), zPw, zCap |
| 500 | ); |
| 501 | admin_log( "Updated user [%q] with capabilities [%q].", |
| 502 | zLogin, zCap ); |
| 503 | if( atoi(PD("all","0"))>0 ){ |
| 504 | Blob sql; |
| 505 | char *zErr = 0; |
| 506 |
| --- src/setup.c | |
| +++ src/setup.c | |
| @@ -18,10 +18,25 @@ | |
| 18 | ** Implementation of the Setup page |
| 19 | */ |
| 20 | #include "config.h" |
| 21 | #include <assert.h> |
| 22 | #include "setup.h" |
| 23 | |
| 24 | /* |
| 25 | ** Increment the "cfgcnt" variable, so that ETags will know that |
| 26 | ** the configuration has changed. |
| 27 | */ |
| 28 | void setup_incr_cfgcnt(void){ |
| 29 | static int once = 1; |
| 30 | if( once ){ |
| 31 | once = 0; |
| 32 | db_multi_exec("UPDATE config SET value=value+1 WHERE name='cfgcnt'"); |
| 33 | if( db_changes()==0 ){ |
| 34 | db_multi_exec("INSERT INTO config(name,value) VALUES('cfgcnt',1)"); |
| 35 | } |
| 36 | } |
| 37 | } |
| 38 | |
| 39 | /* |
| 40 | ** Output a single entry for a menu generated using an HTML table. |
| 41 | ** If zLink is not NULL or an empty string, then it is the page that |
| 42 | ** the menu entry will hyperlink to. If zLink is NULL or "", then |
| @@ -496,10 +511,11 @@ | |
| 511 | db_multi_exec( |
| 512 | "REPLACE INTO user(uid,login,info,pw,cap,mtime) " |
| 513 | "VALUES(nullif(%d,0),%Q,%Q,%Q,%Q,now())", |
| 514 | uid, zLogin, P("info"), zPw, zCap |
| 515 | ); |
| 516 | setup_incr_cfgcnt(); |
| 517 | admin_log( "Updated user [%q] with capabilities [%q].", |
| 518 | zLogin, zCap ); |
| 519 | if( atoi(PD("all","0"))>0 ){ |
| 520 | Blob sql; |
| 521 | char *zErr = 0; |
| 522 |
+10
-1
| --- src/style.c | ||
| +++ src/style.c | ||
| @@ -833,15 +833,20 @@ | ||
| 833 | 833 | ** WEBPAGE: builtin |
| 834 | 834 | ** URL: builtin/FILENAME |
| 835 | 835 | ** |
| 836 | 836 | ** Return the built-in text given by FILENAME. This is used internally |
| 837 | 837 | ** by many Fossil web pages to load built-in javascript files. |
| 838 | +** | |
| 839 | +** If the id= query parameter is present, then Fossil assumes that the | |
| 840 | +** result is immutable and sets a very large cache retention time (1 year). | |
| 838 | 841 | */ |
| 839 | 842 | void page_builtin_text(void){ |
| 840 | 843 | Blob out; |
| 841 | 844 | const char *zName = P("name"); |
| 842 | 845 | const char *zTxt = 0; |
| 846 | + const char *zId = P("id"); | |
| 847 | + int nId; | |
| 843 | 848 | if( zName ) zTxt = builtin_text(zName); |
| 844 | 849 | if( zTxt==0 ){ |
| 845 | 850 | cgi_set_status(404, "Not Found"); |
| 846 | 851 | @ File "%h(zName)" not found |
| 847 | 852 | return; |
| @@ -848,14 +853,18 @@ | ||
| 848 | 853 | } |
| 849 | 854 | if( sqlite3_strglob("*.js", zName)==0 ){ |
| 850 | 855 | cgi_set_content_type("application/javascript"); |
| 851 | 856 | }else{ |
| 852 | 857 | cgi_set_content_type("text/plain"); |
| 858 | + } | |
| 859 | + if( zId && (nId = (int)strlen(zId))>=8 && strncmp(zId,MANIFEST_UUID,nId)==0 ){ | |
| 860 | + g.isConst = 1; | |
| 861 | + }else{ | |
| 862 | + etag_check(0,0); | |
| 853 | 863 | } |
| 854 | 864 | blob_init(&out, zTxt, -1); |
| 855 | 865 | cgi_set_content(&out); |
| 856 | - g.isConst = 1; | |
| 857 | 866 | } |
| 858 | 867 | |
| 859 | 868 | |
| 860 | 869 | /* |
| 861 | 870 | ** WEBPAGE: test_env |
| 862 | 871 |
| --- src/style.c | |
| +++ src/style.c | |
| @@ -833,15 +833,20 @@ | |
| 833 | ** WEBPAGE: builtin |
| 834 | ** URL: builtin/FILENAME |
| 835 | ** |
| 836 | ** Return the built-in text given by FILENAME. This is used internally |
| 837 | ** by many Fossil web pages to load built-in javascript files. |
| 838 | */ |
| 839 | void page_builtin_text(void){ |
| 840 | Blob out; |
| 841 | const char *zName = P("name"); |
| 842 | const char *zTxt = 0; |
| 843 | if( zName ) zTxt = builtin_text(zName); |
| 844 | if( zTxt==0 ){ |
| 845 | cgi_set_status(404, "Not Found"); |
| 846 | @ File "%h(zName)" not found |
| 847 | return; |
| @@ -848,14 +853,18 @@ | |
| 848 | } |
| 849 | if( sqlite3_strglob("*.js", zName)==0 ){ |
| 850 | cgi_set_content_type("application/javascript"); |
| 851 | }else{ |
| 852 | cgi_set_content_type("text/plain"); |
| 853 | } |
| 854 | blob_init(&out, zTxt, -1); |
| 855 | cgi_set_content(&out); |
| 856 | g.isConst = 1; |
| 857 | } |
| 858 | |
| 859 | |
| 860 | /* |
| 861 | ** WEBPAGE: test_env |
| 862 |
| --- src/style.c | |
| +++ src/style.c | |
| @@ -833,15 +833,20 @@ | |
| 833 | ** WEBPAGE: builtin |
| 834 | ** URL: builtin/FILENAME |
| 835 | ** |
| 836 | ** Return the built-in text given by FILENAME. This is used internally |
| 837 | ** by many Fossil web pages to load built-in javascript files. |
| 838 | ** |
| 839 | ** If the id= query parameter is present, then Fossil assumes that the |
| 840 | ** result is immutable and sets a very large cache retention time (1 year). |
| 841 | */ |
| 842 | void page_builtin_text(void){ |
| 843 | Blob out; |
| 844 | const char *zName = P("name"); |
| 845 | const char *zTxt = 0; |
| 846 | const char *zId = P("id"); |
| 847 | int nId; |
| 848 | if( zName ) zTxt = builtin_text(zName); |
| 849 | if( zTxt==0 ){ |
| 850 | cgi_set_status(404, "Not Found"); |
| 851 | @ File "%h(zName)" not found |
| 852 | return; |
| @@ -848,14 +853,18 @@ | |
| 853 | } |
| 854 | if( sqlite3_strglob("*.js", zName)==0 ){ |
| 855 | cgi_set_content_type("application/javascript"); |
| 856 | }else{ |
| 857 | cgi_set_content_type("text/plain"); |
| 858 | } |
| 859 | if( zId && (nId = (int)strlen(zId))>=8 && strncmp(zId,MANIFEST_UUID,nId)==0 ){ |
| 860 | g.isConst = 1; |
| 861 | }else{ |
| 862 | etag_check(0,0); |
| 863 | } |
| 864 | blob_init(&out, zTxt, -1); |
| 865 | cgi_set_content(&out); |
| 866 | } |
| 867 | |
| 868 | |
| 869 | /* |
| 870 | ** WEBPAGE: test_env |
| 871 |
+1
| --- src/tar.c | ||
| +++ src/tar.c | ||
| @@ -731,10 +731,11 @@ | ||
| 731 | 731 | blob_appendf(&cacheKey, "/tarball/%z", rid_to_uuid(rid)); |
| 732 | 732 | blob_appendf(&cacheKey, "/%q", zName); |
| 733 | 733 | if( zInclude ) blob_appendf(&cacheKey, ",in=%Q", zInclude); |
| 734 | 734 | if( zExclude ) blob_appendf(&cacheKey, ",ex=%Q", zExclude); |
| 735 | 735 | zKey = blob_str(&cacheKey); |
| 736 | + etag_check(ETAG_HASH, zKey); | |
| 736 | 737 | |
| 737 | 738 | if( P("debug")!=0 ){ |
| 738 | 739 | style_header("Tarball Generator Debug Screen"); |
| 739 | 740 | @ zName = "%h(zName)"<br /> |
| 740 | 741 | @ rid = %d(rid)<br /> |
| 741 | 742 |
| --- src/tar.c | |
| +++ src/tar.c | |
| @@ -731,10 +731,11 @@ | |
| 731 | blob_appendf(&cacheKey, "/tarball/%z", rid_to_uuid(rid)); |
| 732 | blob_appendf(&cacheKey, "/%q", zName); |
| 733 | if( zInclude ) blob_appendf(&cacheKey, ",in=%Q", zInclude); |
| 734 | if( zExclude ) blob_appendf(&cacheKey, ",ex=%Q", zExclude); |
| 735 | zKey = blob_str(&cacheKey); |
| 736 | |
| 737 | if( P("debug")!=0 ){ |
| 738 | style_header("Tarball Generator Debug Screen"); |
| 739 | @ zName = "%h(zName)"<br /> |
| 740 | @ rid = %d(rid)<br /> |
| 741 |
| --- src/tar.c | |
| +++ src/tar.c | |
| @@ -731,10 +731,11 @@ | |
| 731 | blob_appendf(&cacheKey, "/tarball/%z", rid_to_uuid(rid)); |
| 732 | blob_appendf(&cacheKey, "/%q", zName); |
| 733 | if( zInclude ) blob_appendf(&cacheKey, ",in=%Q", zInclude); |
| 734 | if( zExclude ) blob_appendf(&cacheKey, ",ex=%Q", zExclude); |
| 735 | zKey = blob_str(&cacheKey); |
| 736 | etag_check(ETAG_HASH, zKey); |
| 737 | |
| 738 | if( P("debug")!=0 ){ |
| 739 | style_header("Tarball Generator Debug Screen"); |
| 740 | @ zName = "%h(zName)"<br /> |
| 741 | @ rid = %d(rid)<br /> |
| 742 |
+5
-1
| --- src/unversioned.c | ||
| +++ src/unversioned.c | ||
| @@ -153,11 +153,15 @@ | ||
| 153 | 153 | ** 2: zName exists and is the same as zHash but has a older mtime |
| 154 | 154 | ** 3: zName exists and is identical to mtime/zHash in all respects. |
| 155 | 155 | ** 4: zName exists and is the same as zHash but has a newer mtime. |
| 156 | 156 | ** 5: zName exists and should override the mtime/zHash remote. |
| 157 | 157 | */ |
| 158 | -int unversioned_status(const char *zName, sqlite3_int64 mtime, const char *zHash){ | |
| 158 | +int unversioned_status( | |
| 159 | + const char *zName, | |
| 160 | + sqlite3_int64 mtime, | |
| 161 | + const char *zHash | |
| 162 | +){ | |
| 159 | 163 | int iStatus = 0; |
| 160 | 164 | Stmt q; |
| 161 | 165 | db_prepare(&q, "SELECT mtime, hash FROM unversioned WHERE name=%Q", zName); |
| 162 | 166 | if( db_step(&q)==SQLITE_ROW ){ |
| 163 | 167 | const char *zLocalHash = db_column_text(&q, 1); |
| 164 | 168 |
| --- src/unversioned.c | |
| +++ src/unversioned.c | |
| @@ -153,11 +153,15 @@ | |
| 153 | ** 2: zName exists and is the same as zHash but has a older mtime |
| 154 | ** 3: zName exists and is identical to mtime/zHash in all respects. |
| 155 | ** 4: zName exists and is the same as zHash but has a newer mtime. |
| 156 | ** 5: zName exists and should override the mtime/zHash remote. |
| 157 | */ |
| 158 | int unversioned_status(const char *zName, sqlite3_int64 mtime, const char *zHash){ |
| 159 | int iStatus = 0; |
| 160 | Stmt q; |
| 161 | db_prepare(&q, "SELECT mtime, hash FROM unversioned WHERE name=%Q", zName); |
| 162 | if( db_step(&q)==SQLITE_ROW ){ |
| 163 | const char *zLocalHash = db_column_text(&q, 1); |
| 164 |
| --- src/unversioned.c | |
| +++ src/unversioned.c | |
| @@ -153,11 +153,15 @@ | |
| 153 | ** 2: zName exists and is the same as zHash but has a older mtime |
| 154 | ** 3: zName exists and is identical to mtime/zHash in all respects. |
| 155 | ** 4: zName exists and is the same as zHash but has a newer mtime. |
| 156 | ** 5: zName exists and should override the mtime/zHash remote. |
| 157 | */ |
| 158 | int unversioned_status( |
| 159 | const char *zName, |
| 160 | sqlite3_int64 mtime, |
| 161 | const char *zHash |
| 162 | ){ |
| 163 | int iStatus = 0; |
| 164 | Stmt q; |
| 165 | db_prepare(&q, "SELECT mtime, hash FROM unversioned WHERE name=%Q", zName); |
| 166 | if( db_step(&q)==SQLITE_ROW ){ |
| 167 | const char *zLocalHash = db_column_text(&q, 1); |
| 168 |
+1
| --- src/zip.c | ||
| +++ src/zip.c | ||
| @@ -932,10 +932,11 @@ | ||
| 932 | 932 | blob_appendf(&cacheKey, "/%s/%z", g.zPath, rid_to_uuid(rid)); |
| 933 | 933 | blob_appendf(&cacheKey, "/%q", zName); |
| 934 | 934 | if( zInclude ) blob_appendf(&cacheKey, ",in=%Q", zInclude); |
| 935 | 935 | if( zExclude ) blob_appendf(&cacheKey, ",ex=%Q", zExclude); |
| 936 | 936 | zKey = blob_str(&cacheKey); |
| 937 | + etag_check(ETAG_HASH, zKey); | |
| 937 | 938 | |
| 938 | 939 | if( P("debug")!=0 ){ |
| 939 | 940 | style_header("%s Archive Generator Debug Screen", zType); |
| 940 | 941 | @ zName = "%h(zName)"<br /> |
| 941 | 942 | @ rid = %d(rid)<br /> |
| 942 | 943 |
| --- src/zip.c | |
| +++ src/zip.c | |
| @@ -932,10 +932,11 @@ | |
| 932 | blob_appendf(&cacheKey, "/%s/%z", g.zPath, rid_to_uuid(rid)); |
| 933 | blob_appendf(&cacheKey, "/%q", zName); |
| 934 | if( zInclude ) blob_appendf(&cacheKey, ",in=%Q", zInclude); |
| 935 | if( zExclude ) blob_appendf(&cacheKey, ",ex=%Q", zExclude); |
| 936 | zKey = blob_str(&cacheKey); |
| 937 | |
| 938 | if( P("debug")!=0 ){ |
| 939 | style_header("%s Archive Generator Debug Screen", zType); |
| 940 | @ zName = "%h(zName)"<br /> |
| 941 | @ rid = %d(rid)<br /> |
| 942 |
| --- src/zip.c | |
| +++ src/zip.c | |
| @@ -932,10 +932,11 @@ | |
| 932 | blob_appendf(&cacheKey, "/%s/%z", g.zPath, rid_to_uuid(rid)); |
| 933 | blob_appendf(&cacheKey, "/%q", zName); |
| 934 | if( zInclude ) blob_appendf(&cacheKey, ",in=%Q", zInclude); |
| 935 | if( zExclude ) blob_appendf(&cacheKey, ",ex=%Q", zExclude); |
| 936 | zKey = blob_str(&cacheKey); |
| 937 | etag_check(ETAG_HASH, zKey); |
| 938 | |
| 939 | if( P("debug")!=0 ){ |
| 940 | style_header("%s Archive Generator Debug Screen", zType); |
| 941 | @ zName = "%h(zName)"<br /> |
| 942 | @ rid = %d(rid)<br /> |
| 943 |
+10
-4
| --- win/Makefile.dmc | ||
| +++ win/Makefile.dmc | ||
| @@ -28,13 +28,13 @@ | ||
| 28 | 28 | |
| 29 | 29 | SQLITE_OPTIONS = -DNDEBUG=1 -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_FTS3_PARENTHESIS -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_USE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB |
| 30 | 30 | |
| 31 | 31 | SHELL_OPTIONS = -Dmain=sqlite3_shell -DSQLITE_SHELL_IS_UTF8=1 -DSQLITE_OMIT_LOAD_EXTENSION=1 -DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) -DSQLITE_SHELL_DBNAME_PROC=fossil_open -Daccess=file_access -Dsystem=fossil_system -Dgetenv=fossil_getenv -Dfopen=fossil_fopen |
| 32 | 32 | |
| 33 | -SRC = add_.c allrepo_.c attach_.c bag_.c bisect_.c blob_.c branch_.c browse_.c builtin_.c bundle_.c cache_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c cookies_.c db_.c delta_.c deltacmd_.c descendants_.c diff_.c diffcmd_.c dispatch_.c doc_.c encode_.c event_.c export_.c file_.c finfo_.c foci_.c fshell_.c fusefs_.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 report_.c rss_.c schema_.c search_.c security_audit_.c setup_.c sha1_.c sha1hard_.c sha3_.c shun_.c sitemap_.c skins_.c sqlcmd_.c stash_.c stat_.c statrep_.c style_.c sync_.c tag_.c tar_.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 wiki_.c wikiformat_.c winfile_.c winhttp_.c wysiwyg_.c xfer_.c xfersetup_.c zip_.c | |
| 33 | +SRC = add_.c allrepo_.c attach_.c bag_.c bisect_.c blob_.c branch_.c browse_.c builtin_.c bundle_.c cache_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c cookies_.c db_.c delta_.c deltacmd_.c descendants_.c diff_.c diffcmd_.c dispatch_.c doc_.c encode_.c etag_.c event_.c export_.c file_.c finfo_.c foci_.c fshell_.c fusefs_.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 report_.c rss_.c schema_.c search_.c security_audit_.c setup_.c sha1_.c sha1hard_.c sha3_.c shun_.c sitemap_.c skins_.c sqlcmd_.c stash_.c stat_.c statrep_.c style_.c sync_.c tag_.c tar_.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 wiki_.c wikiformat_.c winfile_.c winhttp_.c wysiwyg_.c xfer_.c xfersetup_.c zip_.c | |
| 34 | 34 | |
| 35 | -OBJ = $(OBJDIR)\add$O $(OBJDIR)\allrepo$O $(OBJDIR)\attach$O $(OBJDIR)\bag$O $(OBJDIR)\bisect$O $(OBJDIR)\blob$O $(OBJDIR)\branch$O $(OBJDIR)\browse$O $(OBJDIR)\builtin$O $(OBJDIR)\bundle$O $(OBJDIR)\cache$O $(OBJDIR)\captcha$O $(OBJDIR)\cgi$O $(OBJDIR)\checkin$O $(OBJDIR)\checkout$O $(OBJDIR)\clearsign$O $(OBJDIR)\clone$O $(OBJDIR)\comformat$O $(OBJDIR)\configure$O $(OBJDIR)\content$O $(OBJDIR)\cookies$O $(OBJDIR)\db$O $(OBJDIR)\delta$O $(OBJDIR)\deltacmd$O $(OBJDIR)\descendants$O $(OBJDIR)\diff$O $(OBJDIR)\diffcmd$O $(OBJDIR)\dispatch$O $(OBJDIR)\doc$O $(OBJDIR)\encode$O $(OBJDIR)\event$O $(OBJDIR)\export$O $(OBJDIR)\file$O $(OBJDIR)\finfo$O $(OBJDIR)\foci$O $(OBJDIR)\fshell$O $(OBJDIR)\fusefs$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)\report$O $(OBJDIR)\rss$O $(OBJDIR)\schema$O $(OBJDIR)\search$O $(OBJDIR)\security_audit$O $(OBJDIR)\setup$O $(OBJDIR)\sha1$O $(OBJDIR)\sha1hard$O $(OBJDIR)\sha3$O $(OBJDIR)\shun$O $(OBJDIR)\sitemap$O $(OBJDIR)\skins$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)\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)\wiki$O $(OBJDIR)\wikiformat$O $(OBJDIR)\winfile$O $(OBJDIR)\winhttp$O $(OBJDIR)\wysiwyg$O $(OBJDIR)\xfer$O $(OBJDIR)\xfersetup$O $(OBJDIR)\zip$O $(OBJDIR)\shell$O $(OBJDIR)\sqlite3$O $(OBJDIR)\th$O $(OBJDIR)\th_lang$O | |
| 35 | +OBJ = $(OBJDIR)\add$O $(OBJDIR)\allrepo$O $(OBJDIR)\attach$O $(OBJDIR)\bag$O $(OBJDIR)\bisect$O $(OBJDIR)\blob$O $(OBJDIR)\branch$O $(OBJDIR)\browse$O $(OBJDIR)\builtin$O $(OBJDIR)\bundle$O $(OBJDIR)\cache$O $(OBJDIR)\captcha$O $(OBJDIR)\cgi$O $(OBJDIR)\checkin$O $(OBJDIR)\checkout$O $(OBJDIR)\clearsign$O $(OBJDIR)\clone$O $(OBJDIR)\comformat$O $(OBJDIR)\configure$O $(OBJDIR)\content$O $(OBJDIR)\cookies$O $(OBJDIR)\db$O $(OBJDIR)\delta$O $(OBJDIR)\deltacmd$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)\file$O $(OBJDIR)\finfo$O $(OBJDIR)\foci$O $(OBJDIR)\fshell$O $(OBJDIR)\fusefs$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)\report$O $(OBJDIR)\rss$O $(OBJDIR)\schema$O $(OBJDIR)\search$O $(OBJDIR)\security_audit$O $(OBJDIR)\setup$O $(OBJDIR)\sha1$O $(OBJDIR)\sha1hard$O $(OBJDIR)\sha3$O $(OBJDIR)\shun$O $(OBJDIR)\sitemap$O $(OBJDIR)\skins$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)\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)\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 | 36 | |
| 37 | 37 | |
| 38 | 38 | RC=$(DMDIR)\bin\rcc |
| 39 | 39 | RCFLAGS=-32 -w1 -I$(SRCDIR) /D__DMC__ |
| 40 | 40 | |
| @@ -49,11 +49,11 @@ | ||
| 49 | 49 | |
| 50 | 50 | $(OBJDIR)\fossil.res: $B\win\fossil.rc |
| 51 | 51 | $(RC) $(RCFLAGS) -o$@ $** |
| 52 | 52 | |
| 53 | 53 | $(OBJDIR)\link: $B\win\Makefile.dmc $(OBJDIR)\fossil.res |
| 54 | - +echo add allrepo attach bag bisect blob branch browse builtin bundle cache captcha cgi checkin checkout clearsign clone comformat configure content cookies db delta deltacmd descendants diff diffcmd dispatch doc encode event export file finfo foci fshell fusefs 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 report rss schema search security_audit setup sha1 sha1hard sha3 shun sitemap skins sqlcmd stash stat statrep style sync tag tar th_main timeline tkt tktsetup undo unicode unversioned update url user utf8 util verify vfile wiki wikiformat winfile winhttp wysiwyg xfer xfersetup zip shell sqlite3 th th_lang > $@ | |
| 54 | + +echo add allrepo attach bag bisect blob branch browse builtin bundle cache captcha cgi checkin checkout clearsign clone comformat configure content cookies db delta deltacmd descendants diff diffcmd dispatch doc encode etag event export file finfo foci fshell fusefs 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 report rss schema search security_audit setup sha1 sha1hard sha3 shun sitemap skins sqlcmd stash stat statrep style sync tag tar th_main timeline tkt tktsetup undo unicode unversioned update url user utf8 util verify vfile wiki wikiformat winfile winhttp wysiwyg xfer xfersetup zip shell sqlite3 th th_lang > $@ | |
| 55 | 55 | +echo fossil >> $@ |
| 56 | 56 | +echo fossil >> $@ |
| 57 | 57 | +echo $(LIBS) >> $@ |
| 58 | 58 | +echo. >> $@ |
| 59 | 59 | +echo fossil >> $@ |
| @@ -308,10 +308,16 @@ | ||
| 308 | 308 | $(OBJDIR)\encode$O : encode_.c encode.h |
| 309 | 309 | $(TCC) -o$@ -c encode_.c |
| 310 | 310 | |
| 311 | 311 | encode_.c : $(SRCDIR)\encode.c |
| 312 | 312 | +translate$E $** > $@ |
| 313 | + | |
| 314 | +$(OBJDIR)\etag$O : etag_.c etag.h | |
| 315 | + $(TCC) -o$@ -c etag_.c | |
| 316 | + | |
| 317 | +etag_.c : $(SRCDIR)\etag.c | |
| 318 | + +translate$E $** > $@ | |
| 313 | 319 | |
| 314 | 320 | $(OBJDIR)\event$O : event_.c event.h |
| 315 | 321 | $(TCC) -o$@ -c event_.c |
| 316 | 322 | |
| 317 | 323 | event_.c : $(SRCDIR)\event.c |
| @@ -892,7 +898,7 @@ | ||
| 892 | 898 | |
| 893 | 899 | zip_.c : $(SRCDIR)\zip.c |
| 894 | 900 | +translate$E $** > $@ |
| 895 | 901 | |
| 896 | 902 | headers: makeheaders$E page_index.h builtin_data.h default_css.h VERSION.h |
| 897 | - +makeheaders$E add_.c:add.h allrepo_.c:allrepo.h attach_.c:attach.h bag_.c:bag.h bisect_.c:bisect.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.h builtin_.c:builtin.h bundle_.c:bundle.h cache_.c:cache.h captcha_.c:captcha.h cgi_.c:cgi.h checkin_.c:checkin.h checkout_.c:checkout.h clearsign_.c:clearsign.h clone_.c:clone.h comformat_.c:comformat.h configure_.c:configure.h content_.c:content.h cookies_.c:cookies.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h dispatch_.c:dispatch.h doc_.c:doc.h encode_.c:encode.h event_.c:event.h export_.c:export.h file_.c:file.h finfo_.c:finfo.h foci_.c:foci.h fshell_.c:fshell.h fusefs_.c:fusefs.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 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 sha1_.c:sha1.h sha1hard_.c:sha1hard.h sha3_.c:sha3.h shun_.c:shun.h sitemap_.c:sitemap.h skins_.c:skins.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 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 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 | |
| 903 | + +makeheaders$E add_.c:add.h allrepo_.c:allrepo.h attach_.c:attach.h bag_.c:bag.h bisect_.c:bisect.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.h builtin_.c:builtin.h bundle_.c:bundle.h cache_.c:cache.h captcha_.c:captcha.h cgi_.c:cgi.h checkin_.c:checkin.h checkout_.c:checkout.h clearsign_.c:clearsign.h clone_.c:clone.h comformat_.c:comformat.h configure_.c:configure.h content_.c:content.h cookies_.c:cookies.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h dispatch_.c:dispatch.h doc_.c:doc.h encode_.c:encode.h etag_.c:etag.h event_.c:event.h export_.c:export.h file_.c:file.h finfo_.c:finfo.h foci_.c:foci.h fshell_.c:fshell.h fusefs_.c:fusefs.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 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 sha1_.c:sha1.h sha1hard_.c:sha1hard.h sha3_.c:sha3.h shun_.c:shun.h sitemap_.c:sitemap.h skins_.c:skins.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 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 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 | |
| 898 | 904 | @copy /Y nul: headers |
| 899 | 905 |
| --- win/Makefile.dmc | |
| +++ win/Makefile.dmc | |
| @@ -28,13 +28,13 @@ | |
| 28 | |
| 29 | SQLITE_OPTIONS = -DNDEBUG=1 -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_FTS3_PARENTHESIS -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_USE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB |
| 30 | |
| 31 | SHELL_OPTIONS = -Dmain=sqlite3_shell -DSQLITE_SHELL_IS_UTF8=1 -DSQLITE_OMIT_LOAD_EXTENSION=1 -DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) -DSQLITE_SHELL_DBNAME_PROC=fossil_open -Daccess=file_access -Dsystem=fossil_system -Dgetenv=fossil_getenv -Dfopen=fossil_fopen |
| 32 | |
| 33 | SRC = add_.c allrepo_.c attach_.c bag_.c bisect_.c blob_.c branch_.c browse_.c builtin_.c bundle_.c cache_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c cookies_.c db_.c delta_.c deltacmd_.c descendants_.c diff_.c diffcmd_.c dispatch_.c doc_.c encode_.c event_.c export_.c file_.c finfo_.c foci_.c fshell_.c fusefs_.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 report_.c rss_.c schema_.c search_.c security_audit_.c setup_.c sha1_.c sha1hard_.c sha3_.c shun_.c sitemap_.c skins_.c sqlcmd_.c stash_.c stat_.c statrep_.c style_.c sync_.c tag_.c tar_.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 wiki_.c wikiformat_.c winfile_.c winhttp_.c wysiwyg_.c xfer_.c xfersetup_.c zip_.c |
| 34 | |
| 35 | OBJ = $(OBJDIR)\add$O $(OBJDIR)\allrepo$O $(OBJDIR)\attach$O $(OBJDIR)\bag$O $(OBJDIR)\bisect$O $(OBJDIR)\blob$O $(OBJDIR)\branch$O $(OBJDIR)\browse$O $(OBJDIR)\builtin$O $(OBJDIR)\bundle$O $(OBJDIR)\cache$O $(OBJDIR)\captcha$O $(OBJDIR)\cgi$O $(OBJDIR)\checkin$O $(OBJDIR)\checkout$O $(OBJDIR)\clearsign$O $(OBJDIR)\clone$O $(OBJDIR)\comformat$O $(OBJDIR)\configure$O $(OBJDIR)\content$O $(OBJDIR)\cookies$O $(OBJDIR)\db$O $(OBJDIR)\delta$O $(OBJDIR)\deltacmd$O $(OBJDIR)\descendants$O $(OBJDIR)\diff$O $(OBJDIR)\diffcmd$O $(OBJDIR)\dispatch$O $(OBJDIR)\doc$O $(OBJDIR)\encode$O $(OBJDIR)\event$O $(OBJDIR)\export$O $(OBJDIR)\file$O $(OBJDIR)\finfo$O $(OBJDIR)\foci$O $(OBJDIR)\fshell$O $(OBJDIR)\fusefs$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)\report$O $(OBJDIR)\rss$O $(OBJDIR)\schema$O $(OBJDIR)\search$O $(OBJDIR)\security_audit$O $(OBJDIR)\setup$O $(OBJDIR)\sha1$O $(OBJDIR)\sha1hard$O $(OBJDIR)\sha3$O $(OBJDIR)\shun$O $(OBJDIR)\sitemap$O $(OBJDIR)\skins$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)\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)\wiki$O $(OBJDIR)\wikiformat$O $(OBJDIR)\winfile$O $(OBJDIR)\winhttp$O $(OBJDIR)\wysiwyg$O $(OBJDIR)\xfer$O $(OBJDIR)\xfersetup$O $(OBJDIR)\zip$O $(OBJDIR)\shell$O $(OBJDIR)\sqlite3$O $(OBJDIR)\th$O $(OBJDIR)\th_lang$O |
| 36 | |
| 37 | |
| 38 | RC=$(DMDIR)\bin\rcc |
| 39 | RCFLAGS=-32 -w1 -I$(SRCDIR) /D__DMC__ |
| 40 | |
| @@ -49,11 +49,11 @@ | |
| 49 | |
| 50 | $(OBJDIR)\fossil.res: $B\win\fossil.rc |
| 51 | $(RC) $(RCFLAGS) -o$@ $** |
| 52 | |
| 53 | $(OBJDIR)\link: $B\win\Makefile.dmc $(OBJDIR)\fossil.res |
| 54 | +echo add allrepo attach bag bisect blob branch browse builtin bundle cache captcha cgi checkin checkout clearsign clone comformat configure content cookies db delta deltacmd descendants diff diffcmd dispatch doc encode event export file finfo foci fshell fusefs 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 report rss schema search security_audit setup sha1 sha1hard sha3 shun sitemap skins sqlcmd stash stat statrep style sync tag tar th_main timeline tkt tktsetup undo unicode unversioned update url user utf8 util verify vfile wiki wikiformat winfile winhttp wysiwyg xfer xfersetup zip shell sqlite3 th th_lang > $@ |
| 55 | +echo fossil >> $@ |
| 56 | +echo fossil >> $@ |
| 57 | +echo $(LIBS) >> $@ |
| 58 | +echo. >> $@ |
| 59 | +echo fossil >> $@ |
| @@ -308,10 +308,16 @@ | |
| 308 | $(OBJDIR)\encode$O : encode_.c encode.h |
| 309 | $(TCC) -o$@ -c encode_.c |
| 310 | |
| 311 | encode_.c : $(SRCDIR)\encode.c |
| 312 | +translate$E $** > $@ |
| 313 | |
| 314 | $(OBJDIR)\event$O : event_.c event.h |
| 315 | $(TCC) -o$@ -c event_.c |
| 316 | |
| 317 | event_.c : $(SRCDIR)\event.c |
| @@ -892,7 +898,7 @@ | |
| 892 | |
| 893 | zip_.c : $(SRCDIR)\zip.c |
| 894 | +translate$E $** > $@ |
| 895 | |
| 896 | headers: makeheaders$E page_index.h builtin_data.h default_css.h VERSION.h |
| 897 | +makeheaders$E add_.c:add.h allrepo_.c:allrepo.h attach_.c:attach.h bag_.c:bag.h bisect_.c:bisect.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.h builtin_.c:builtin.h bundle_.c:bundle.h cache_.c:cache.h captcha_.c:captcha.h cgi_.c:cgi.h checkin_.c:checkin.h checkout_.c:checkout.h clearsign_.c:clearsign.h clone_.c:clone.h comformat_.c:comformat.h configure_.c:configure.h content_.c:content.h cookies_.c:cookies.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h dispatch_.c:dispatch.h doc_.c:doc.h encode_.c:encode.h event_.c:event.h export_.c:export.h file_.c:file.h finfo_.c:finfo.h foci_.c:foci.h fshell_.c:fshell.h fusefs_.c:fusefs.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 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 sha1_.c:sha1.h sha1hard_.c:sha1hard.h sha3_.c:sha3.h shun_.c:shun.h sitemap_.c:sitemap.h skins_.c:skins.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 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 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 |
| 898 | @copy /Y nul: headers |
| 899 |
| --- win/Makefile.dmc | |
| +++ win/Makefile.dmc | |
| @@ -28,13 +28,13 @@ | |
| 28 | |
| 29 | SQLITE_OPTIONS = -DNDEBUG=1 -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_FTS3_PARENTHESIS -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_USE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB |
| 30 | |
| 31 | SHELL_OPTIONS = -Dmain=sqlite3_shell -DSQLITE_SHELL_IS_UTF8=1 -DSQLITE_OMIT_LOAD_EXTENSION=1 -DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) -DSQLITE_SHELL_DBNAME_PROC=fossil_open -Daccess=file_access -Dsystem=fossil_system -Dgetenv=fossil_getenv -Dfopen=fossil_fopen |
| 32 | |
| 33 | SRC = add_.c allrepo_.c attach_.c bag_.c bisect_.c blob_.c branch_.c browse_.c builtin_.c bundle_.c cache_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c cookies_.c db_.c delta_.c deltacmd_.c descendants_.c diff_.c diffcmd_.c dispatch_.c doc_.c encode_.c etag_.c event_.c export_.c file_.c finfo_.c foci_.c fshell_.c fusefs_.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 report_.c rss_.c schema_.c search_.c security_audit_.c setup_.c sha1_.c sha1hard_.c sha3_.c shun_.c sitemap_.c skins_.c sqlcmd_.c stash_.c stat_.c statrep_.c style_.c sync_.c tag_.c tar_.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 wiki_.c wikiformat_.c winfile_.c winhttp_.c wysiwyg_.c xfer_.c xfersetup_.c zip_.c |
| 34 | |
| 35 | OBJ = $(OBJDIR)\add$O $(OBJDIR)\allrepo$O $(OBJDIR)\attach$O $(OBJDIR)\bag$O $(OBJDIR)\bisect$O $(OBJDIR)\blob$O $(OBJDIR)\branch$O $(OBJDIR)\browse$O $(OBJDIR)\builtin$O $(OBJDIR)\bundle$O $(OBJDIR)\cache$O $(OBJDIR)\captcha$O $(OBJDIR)\cgi$O $(OBJDIR)\checkin$O $(OBJDIR)\checkout$O $(OBJDIR)\clearsign$O $(OBJDIR)\clone$O $(OBJDIR)\comformat$O $(OBJDIR)\configure$O $(OBJDIR)\content$O $(OBJDIR)\cookies$O $(OBJDIR)\db$O $(OBJDIR)\delta$O $(OBJDIR)\deltacmd$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)\file$O $(OBJDIR)\finfo$O $(OBJDIR)\foci$O $(OBJDIR)\fshell$O $(OBJDIR)\fusefs$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)\report$O $(OBJDIR)\rss$O $(OBJDIR)\schema$O $(OBJDIR)\search$O $(OBJDIR)\security_audit$O $(OBJDIR)\setup$O $(OBJDIR)\sha1$O $(OBJDIR)\sha1hard$O $(OBJDIR)\sha3$O $(OBJDIR)\shun$O $(OBJDIR)\sitemap$O $(OBJDIR)\skins$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)\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)\wiki$O $(OBJDIR)\wikiformat$O $(OBJDIR)\winfile$O $(OBJDIR)\winhttp$O $(OBJDIR)\wysiwyg$O $(OBJDIR)\xfer$O $(OBJDIR)\xfersetup$O $(OBJDIR)\zip$O $(OBJDIR)\shell$O $(OBJDIR)\sqlite3$O $(OBJDIR)\th$O $(OBJDIR)\th_lang$O |
| 36 | |
| 37 | |
| 38 | RC=$(DMDIR)\bin\rcc |
| 39 | RCFLAGS=-32 -w1 -I$(SRCDIR) /D__DMC__ |
| 40 | |
| @@ -49,11 +49,11 @@ | |
| 49 | |
| 50 | $(OBJDIR)\fossil.res: $B\win\fossil.rc |
| 51 | $(RC) $(RCFLAGS) -o$@ $** |
| 52 | |
| 53 | $(OBJDIR)\link: $B\win\Makefile.dmc $(OBJDIR)\fossil.res |
| 54 | +echo add allrepo attach bag bisect blob branch browse builtin bundle cache captcha cgi checkin checkout clearsign clone comformat configure content cookies db delta deltacmd descendants diff diffcmd dispatch doc encode etag event export file finfo foci fshell fusefs 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 report rss schema search security_audit setup sha1 sha1hard sha3 shun sitemap skins sqlcmd stash stat statrep style sync tag tar th_main timeline tkt tktsetup undo unicode unversioned update url user utf8 util verify vfile wiki wikiformat winfile winhttp wysiwyg xfer xfersetup zip shell sqlite3 th th_lang > $@ |
| 55 | +echo fossil >> $@ |
| 56 | +echo fossil >> $@ |
| 57 | +echo $(LIBS) >> $@ |
| 58 | +echo. >> $@ |
| 59 | +echo fossil >> $@ |
| @@ -308,10 +308,16 @@ | |
| 308 | $(OBJDIR)\encode$O : encode_.c encode.h |
| 309 | $(TCC) -o$@ -c encode_.c |
| 310 | |
| 311 | encode_.c : $(SRCDIR)\encode.c |
| 312 | +translate$E $** > $@ |
| 313 | |
| 314 | $(OBJDIR)\etag$O : etag_.c etag.h |
| 315 | $(TCC) -o$@ -c etag_.c |
| 316 | |
| 317 | etag_.c : $(SRCDIR)\etag.c |
| 318 | +translate$E $** > $@ |
| 319 | |
| 320 | $(OBJDIR)\event$O : event_.c event.h |
| 321 | $(TCC) -o$@ -c event_.c |
| 322 | |
| 323 | event_.c : $(SRCDIR)\event.c |
| @@ -892,7 +898,7 @@ | |
| 898 | |
| 899 | zip_.c : $(SRCDIR)\zip.c |
| 900 | +translate$E $** > $@ |
| 901 | |
| 902 | headers: makeheaders$E page_index.h builtin_data.h default_css.h VERSION.h |
| 903 | +makeheaders$E add_.c:add.h allrepo_.c:allrepo.h attach_.c:attach.h bag_.c:bag.h bisect_.c:bisect.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.h builtin_.c:builtin.h bundle_.c:bundle.h cache_.c:cache.h captcha_.c:captcha.h cgi_.c:cgi.h checkin_.c:checkin.h checkout_.c:checkout.h clearsign_.c:clearsign.h clone_.c:clone.h comformat_.c:comformat.h configure_.c:configure.h content_.c:content.h cookies_.c:cookies.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h dispatch_.c:dispatch.h doc_.c:doc.h encode_.c:encode.h etag_.c:etag.h event_.c:event.h export_.c:export.h file_.c:file.h finfo_.c:finfo.h foci_.c:foci.h fshell_.c:fshell.h fusefs_.c:fusefs.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 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 sha1_.c:sha1.h sha1hard_.c:sha1hard.h sha3_.c:sha3.h shun_.c:shun.h sitemap_.c:sitemap.h skins_.c:skins.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 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 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 |
| 904 | @copy /Y nul: headers |
| 905 |
+12
| --- win/Makefile.mingw | ||
| +++ win/Makefile.mingw | ||
| @@ -452,10 +452,11 @@ | ||
| 452 | 452 | $(SRCDIR)/diff.c \ |
| 453 | 453 | $(SRCDIR)/diffcmd.c \ |
| 454 | 454 | $(SRCDIR)/dispatch.c \ |
| 455 | 455 | $(SRCDIR)/doc.c \ |
| 456 | 456 | $(SRCDIR)/encode.c \ |
| 457 | + $(SRCDIR)/etag.c \ | |
| 457 | 458 | $(SRCDIR)/event.c \ |
| 458 | 459 | $(SRCDIR)/export.c \ |
| 459 | 460 | $(SRCDIR)/file.c \ |
| 460 | 461 | $(SRCDIR)/finfo.c \ |
| 461 | 462 | $(SRCDIR)/foci.c \ |
| @@ -652,10 +653,11 @@ | ||
| 652 | 653 | $(OBJDIR)/diff_.c \ |
| 653 | 654 | $(OBJDIR)/diffcmd_.c \ |
| 654 | 655 | $(OBJDIR)/dispatch_.c \ |
| 655 | 656 | $(OBJDIR)/doc_.c \ |
| 656 | 657 | $(OBJDIR)/encode_.c \ |
| 658 | + $(OBJDIR)/etag_.c \ | |
| 657 | 659 | $(OBJDIR)/event_.c \ |
| 658 | 660 | $(OBJDIR)/export_.c \ |
| 659 | 661 | $(OBJDIR)/file_.c \ |
| 660 | 662 | $(OBJDIR)/finfo_.c \ |
| 661 | 663 | $(OBJDIR)/foci_.c \ |
| @@ -781,10 +783,11 @@ | ||
| 781 | 783 | $(OBJDIR)/diff.o \ |
| 782 | 784 | $(OBJDIR)/diffcmd.o \ |
| 783 | 785 | $(OBJDIR)/dispatch.o \ |
| 784 | 786 | $(OBJDIR)/doc.o \ |
| 785 | 787 | $(OBJDIR)/encode.o \ |
| 788 | + $(OBJDIR)/etag.o \ | |
| 786 | 789 | $(OBJDIR)/event.o \ |
| 787 | 790 | $(OBJDIR)/export.o \ |
| 788 | 791 | $(OBJDIR)/file.o \ |
| 789 | 792 | $(OBJDIR)/finfo.o \ |
| 790 | 793 | $(OBJDIR)/foci.o \ |
| @@ -1129,10 +1132,11 @@ | ||
| 1129 | 1132 | $(OBJDIR)/diff_.c:$(OBJDIR)/diff.h \ |
| 1130 | 1133 | $(OBJDIR)/diffcmd_.c:$(OBJDIR)/diffcmd.h \ |
| 1131 | 1134 | $(OBJDIR)/dispatch_.c:$(OBJDIR)/dispatch.h \ |
| 1132 | 1135 | $(OBJDIR)/doc_.c:$(OBJDIR)/doc.h \ |
| 1133 | 1136 | $(OBJDIR)/encode_.c:$(OBJDIR)/encode.h \ |
| 1137 | + $(OBJDIR)/etag_.c:$(OBJDIR)/etag.h \ | |
| 1134 | 1138 | $(OBJDIR)/event_.c:$(OBJDIR)/event.h \ |
| 1135 | 1139 | $(OBJDIR)/export_.c:$(OBJDIR)/export.h \ |
| 1136 | 1140 | $(OBJDIR)/file_.c:$(OBJDIR)/file.h \ |
| 1137 | 1141 | $(OBJDIR)/finfo_.c:$(OBJDIR)/finfo.h \ |
| 1138 | 1142 | $(OBJDIR)/foci_.c:$(OBJDIR)/foci.h \ |
| @@ -1474,10 +1478,18 @@ | ||
| 1474 | 1478 | |
| 1475 | 1479 | $(OBJDIR)/encode.o: $(OBJDIR)/encode_.c $(OBJDIR)/encode.h $(SRCDIR)/config.h |
| 1476 | 1480 | $(XTCC) -o $(OBJDIR)/encode.o -c $(OBJDIR)/encode_.c |
| 1477 | 1481 | |
| 1478 | 1482 | $(OBJDIR)/encode.h: $(OBJDIR)/headers |
| 1483 | + | |
| 1484 | +$(OBJDIR)/etag_.c: $(SRCDIR)/etag.c $(TRANSLATE) | |
| 1485 | + $(TRANSLATE) $(SRCDIR)/etag.c >$@ | |
| 1486 | + | |
| 1487 | +$(OBJDIR)/etag.o: $(OBJDIR)/etag_.c $(OBJDIR)/etag.h $(SRCDIR)/config.h | |
| 1488 | + $(XTCC) -o $(OBJDIR)/etag.o -c $(OBJDIR)/etag_.c | |
| 1489 | + | |
| 1490 | +$(OBJDIR)/etag.h: $(OBJDIR)/headers | |
| 1479 | 1491 | |
| 1480 | 1492 | $(OBJDIR)/event_.c: $(SRCDIR)/event.c $(TRANSLATE) |
| 1481 | 1493 | $(TRANSLATE) $(SRCDIR)/event.c >$@ |
| 1482 | 1494 | |
| 1483 | 1495 | $(OBJDIR)/event.o: $(OBJDIR)/event_.c $(OBJDIR)/event.h $(SRCDIR)/config.h |
| 1484 | 1496 |
| --- win/Makefile.mingw | |
| +++ win/Makefile.mingw | |
| @@ -452,10 +452,11 @@ | |
| 452 | $(SRCDIR)/diff.c \ |
| 453 | $(SRCDIR)/diffcmd.c \ |
| 454 | $(SRCDIR)/dispatch.c \ |
| 455 | $(SRCDIR)/doc.c \ |
| 456 | $(SRCDIR)/encode.c \ |
| 457 | $(SRCDIR)/event.c \ |
| 458 | $(SRCDIR)/export.c \ |
| 459 | $(SRCDIR)/file.c \ |
| 460 | $(SRCDIR)/finfo.c \ |
| 461 | $(SRCDIR)/foci.c \ |
| @@ -652,10 +653,11 @@ | |
| 652 | $(OBJDIR)/diff_.c \ |
| 653 | $(OBJDIR)/diffcmd_.c \ |
| 654 | $(OBJDIR)/dispatch_.c \ |
| 655 | $(OBJDIR)/doc_.c \ |
| 656 | $(OBJDIR)/encode_.c \ |
| 657 | $(OBJDIR)/event_.c \ |
| 658 | $(OBJDIR)/export_.c \ |
| 659 | $(OBJDIR)/file_.c \ |
| 660 | $(OBJDIR)/finfo_.c \ |
| 661 | $(OBJDIR)/foci_.c \ |
| @@ -781,10 +783,11 @@ | |
| 781 | $(OBJDIR)/diff.o \ |
| 782 | $(OBJDIR)/diffcmd.o \ |
| 783 | $(OBJDIR)/dispatch.o \ |
| 784 | $(OBJDIR)/doc.o \ |
| 785 | $(OBJDIR)/encode.o \ |
| 786 | $(OBJDIR)/event.o \ |
| 787 | $(OBJDIR)/export.o \ |
| 788 | $(OBJDIR)/file.o \ |
| 789 | $(OBJDIR)/finfo.o \ |
| 790 | $(OBJDIR)/foci.o \ |
| @@ -1129,10 +1132,11 @@ | |
| 1129 | $(OBJDIR)/diff_.c:$(OBJDIR)/diff.h \ |
| 1130 | $(OBJDIR)/diffcmd_.c:$(OBJDIR)/diffcmd.h \ |
| 1131 | $(OBJDIR)/dispatch_.c:$(OBJDIR)/dispatch.h \ |
| 1132 | $(OBJDIR)/doc_.c:$(OBJDIR)/doc.h \ |
| 1133 | $(OBJDIR)/encode_.c:$(OBJDIR)/encode.h \ |
| 1134 | $(OBJDIR)/event_.c:$(OBJDIR)/event.h \ |
| 1135 | $(OBJDIR)/export_.c:$(OBJDIR)/export.h \ |
| 1136 | $(OBJDIR)/file_.c:$(OBJDIR)/file.h \ |
| 1137 | $(OBJDIR)/finfo_.c:$(OBJDIR)/finfo.h \ |
| 1138 | $(OBJDIR)/foci_.c:$(OBJDIR)/foci.h \ |
| @@ -1474,10 +1478,18 @@ | |
| 1474 | |
| 1475 | $(OBJDIR)/encode.o: $(OBJDIR)/encode_.c $(OBJDIR)/encode.h $(SRCDIR)/config.h |
| 1476 | $(XTCC) -o $(OBJDIR)/encode.o -c $(OBJDIR)/encode_.c |
| 1477 | |
| 1478 | $(OBJDIR)/encode.h: $(OBJDIR)/headers |
| 1479 | |
| 1480 | $(OBJDIR)/event_.c: $(SRCDIR)/event.c $(TRANSLATE) |
| 1481 | $(TRANSLATE) $(SRCDIR)/event.c >$@ |
| 1482 | |
| 1483 | $(OBJDIR)/event.o: $(OBJDIR)/event_.c $(OBJDIR)/event.h $(SRCDIR)/config.h |
| 1484 |
| --- win/Makefile.mingw | |
| +++ win/Makefile.mingw | |
| @@ -452,10 +452,11 @@ | |
| 452 | $(SRCDIR)/diff.c \ |
| 453 | $(SRCDIR)/diffcmd.c \ |
| 454 | $(SRCDIR)/dispatch.c \ |
| 455 | $(SRCDIR)/doc.c \ |
| 456 | $(SRCDIR)/encode.c \ |
| 457 | $(SRCDIR)/etag.c \ |
| 458 | $(SRCDIR)/event.c \ |
| 459 | $(SRCDIR)/export.c \ |
| 460 | $(SRCDIR)/file.c \ |
| 461 | $(SRCDIR)/finfo.c \ |
| 462 | $(SRCDIR)/foci.c \ |
| @@ -652,10 +653,11 @@ | |
| 653 | $(OBJDIR)/diff_.c \ |
| 654 | $(OBJDIR)/diffcmd_.c \ |
| 655 | $(OBJDIR)/dispatch_.c \ |
| 656 | $(OBJDIR)/doc_.c \ |
| 657 | $(OBJDIR)/encode_.c \ |
| 658 | $(OBJDIR)/etag_.c \ |
| 659 | $(OBJDIR)/event_.c \ |
| 660 | $(OBJDIR)/export_.c \ |
| 661 | $(OBJDIR)/file_.c \ |
| 662 | $(OBJDIR)/finfo_.c \ |
| 663 | $(OBJDIR)/foci_.c \ |
| @@ -781,10 +783,11 @@ | |
| 783 | $(OBJDIR)/diff.o \ |
| 784 | $(OBJDIR)/diffcmd.o \ |
| 785 | $(OBJDIR)/dispatch.o \ |
| 786 | $(OBJDIR)/doc.o \ |
| 787 | $(OBJDIR)/encode.o \ |
| 788 | $(OBJDIR)/etag.o \ |
| 789 | $(OBJDIR)/event.o \ |
| 790 | $(OBJDIR)/export.o \ |
| 791 | $(OBJDIR)/file.o \ |
| 792 | $(OBJDIR)/finfo.o \ |
| 793 | $(OBJDIR)/foci.o \ |
| @@ -1129,10 +1132,11 @@ | |
| 1132 | $(OBJDIR)/diff_.c:$(OBJDIR)/diff.h \ |
| 1133 | $(OBJDIR)/diffcmd_.c:$(OBJDIR)/diffcmd.h \ |
| 1134 | $(OBJDIR)/dispatch_.c:$(OBJDIR)/dispatch.h \ |
| 1135 | $(OBJDIR)/doc_.c:$(OBJDIR)/doc.h \ |
| 1136 | $(OBJDIR)/encode_.c:$(OBJDIR)/encode.h \ |
| 1137 | $(OBJDIR)/etag_.c:$(OBJDIR)/etag.h \ |
| 1138 | $(OBJDIR)/event_.c:$(OBJDIR)/event.h \ |
| 1139 | $(OBJDIR)/export_.c:$(OBJDIR)/export.h \ |
| 1140 | $(OBJDIR)/file_.c:$(OBJDIR)/file.h \ |
| 1141 | $(OBJDIR)/finfo_.c:$(OBJDIR)/finfo.h \ |
| 1142 | $(OBJDIR)/foci_.c:$(OBJDIR)/foci.h \ |
| @@ -1474,10 +1478,18 @@ | |
| 1478 | |
| 1479 | $(OBJDIR)/encode.o: $(OBJDIR)/encode_.c $(OBJDIR)/encode.h $(SRCDIR)/config.h |
| 1480 | $(XTCC) -o $(OBJDIR)/encode.o -c $(OBJDIR)/encode_.c |
| 1481 | |
| 1482 | $(OBJDIR)/encode.h: $(OBJDIR)/headers |
| 1483 | |
| 1484 | $(OBJDIR)/etag_.c: $(SRCDIR)/etag.c $(TRANSLATE) |
| 1485 | $(TRANSLATE) $(SRCDIR)/etag.c >$@ |
| 1486 | |
| 1487 | $(OBJDIR)/etag.o: $(OBJDIR)/etag_.c $(OBJDIR)/etag.h $(SRCDIR)/config.h |
| 1488 | $(XTCC) -o $(OBJDIR)/etag.o -c $(OBJDIR)/etag_.c |
| 1489 | |
| 1490 | $(OBJDIR)/etag.h: $(OBJDIR)/headers |
| 1491 | |
| 1492 | $(OBJDIR)/event_.c: $(SRCDIR)/event.c $(TRANSLATE) |
| 1493 | $(TRANSLATE) $(SRCDIR)/event.c >$@ |
| 1494 | |
| 1495 | $(OBJDIR)/event.o: $(OBJDIR)/event_.c $(OBJDIR)/event.h $(SRCDIR)/config.h |
| 1496 |
+10
| --- win/Makefile.msc | ||
| +++ win/Makefile.msc | ||
| @@ -382,10 +382,11 @@ | ||
| 382 | 382 | diff_.c \ |
| 383 | 383 | diffcmd_.c \ |
| 384 | 384 | dispatch_.c \ |
| 385 | 385 | doc_.c \ |
| 386 | 386 | encode_.c \ |
| 387 | + etag_.c \ | |
| 387 | 388 | event_.c \ |
| 388 | 389 | export_.c \ |
| 389 | 390 | file_.c \ |
| 390 | 391 | finfo_.c \ |
| 391 | 392 | foci_.c \ |
| @@ -581,10 +582,11 @@ | ||
| 581 | 582 | $(OX)\diff$O \ |
| 582 | 583 | $(OX)\diffcmd$O \ |
| 583 | 584 | $(OX)\dispatch$O \ |
| 584 | 585 | $(OX)\doc$O \ |
| 585 | 586 | $(OX)\encode$O \ |
| 587 | + $(OX)\etag$O \ | |
| 586 | 588 | $(OX)\event$O \ |
| 587 | 589 | $(OX)\export$O \ |
| 588 | 590 | $(OX)\file$O \ |
| 589 | 591 | $(OX)\finfo$O \ |
| 590 | 592 | $(OX)\foci$O \ |
| @@ -769,10 +771,11 @@ | ||
| 769 | 771 | echo $(OX)\diff.obj >> $@ |
| 770 | 772 | echo $(OX)\diffcmd.obj >> $@ |
| 771 | 773 | echo $(OX)\dispatch.obj >> $@ |
| 772 | 774 | echo $(OX)\doc.obj >> $@ |
| 773 | 775 | echo $(OX)\encode.obj >> $@ |
| 776 | + echo $(OX)\etag.obj >> $@ | |
| 774 | 777 | echo $(OX)\event.obj >> $@ |
| 775 | 778 | echo $(OX)\export.obj >> $@ |
| 776 | 779 | echo $(OX)\file.obj >> $@ |
| 777 | 780 | echo $(OX)\finfo.obj >> $@ |
| 778 | 781 | echo $(OX)\foci.obj >> $@ |
| @@ -1168,10 +1171,16 @@ | ||
| 1168 | 1171 | $(OX)\encode$O : encode_.c encode.h |
| 1169 | 1172 | $(TCC) /Fo$@ -c encode_.c |
| 1170 | 1173 | |
| 1171 | 1174 | encode_.c : $(SRCDIR)\encode.c |
| 1172 | 1175 | translate$E $** > $@ |
| 1176 | + | |
| 1177 | +$(OX)\etag$O : etag_.c etag.h | |
| 1178 | + $(TCC) /Fo$@ -c etag_.c | |
| 1179 | + | |
| 1180 | +etag_.c : $(SRCDIR)\etag.c | |
| 1181 | + translate$E $** > $@ | |
| 1173 | 1182 | |
| 1174 | 1183 | $(OX)\event$O : event_.c event.h |
| 1175 | 1184 | $(TCC) /Fo$@ -c event_.c |
| 1176 | 1185 | |
| 1177 | 1186 | event_.c : $(SRCDIR)\event.c |
| @@ -1785,10 +1794,11 @@ | ||
| 1785 | 1794 | diff_.c:diff.h \ |
| 1786 | 1795 | diffcmd_.c:diffcmd.h \ |
| 1787 | 1796 | dispatch_.c:dispatch.h \ |
| 1788 | 1797 | doc_.c:doc.h \ |
| 1789 | 1798 | encode_.c:encode.h \ |
| 1799 | + etag_.c:etag.h \ | |
| 1790 | 1800 | event_.c:event.h \ |
| 1791 | 1801 | export_.c:export.h \ |
| 1792 | 1802 | file_.c:file.h \ |
| 1793 | 1803 | finfo_.c:finfo.h \ |
| 1794 | 1804 | foci_.c:foci.h \ |
| 1795 | 1805 |
| --- win/Makefile.msc | |
| +++ win/Makefile.msc | |
| @@ -382,10 +382,11 @@ | |
| 382 | diff_.c \ |
| 383 | diffcmd_.c \ |
| 384 | dispatch_.c \ |
| 385 | doc_.c \ |
| 386 | encode_.c \ |
| 387 | event_.c \ |
| 388 | export_.c \ |
| 389 | file_.c \ |
| 390 | finfo_.c \ |
| 391 | foci_.c \ |
| @@ -581,10 +582,11 @@ | |
| 581 | $(OX)\diff$O \ |
| 582 | $(OX)\diffcmd$O \ |
| 583 | $(OX)\dispatch$O \ |
| 584 | $(OX)\doc$O \ |
| 585 | $(OX)\encode$O \ |
| 586 | $(OX)\event$O \ |
| 587 | $(OX)\export$O \ |
| 588 | $(OX)\file$O \ |
| 589 | $(OX)\finfo$O \ |
| 590 | $(OX)\foci$O \ |
| @@ -769,10 +771,11 @@ | |
| 769 | echo $(OX)\diff.obj >> $@ |
| 770 | echo $(OX)\diffcmd.obj >> $@ |
| 771 | echo $(OX)\dispatch.obj >> $@ |
| 772 | echo $(OX)\doc.obj >> $@ |
| 773 | echo $(OX)\encode.obj >> $@ |
| 774 | echo $(OX)\event.obj >> $@ |
| 775 | echo $(OX)\export.obj >> $@ |
| 776 | echo $(OX)\file.obj >> $@ |
| 777 | echo $(OX)\finfo.obj >> $@ |
| 778 | echo $(OX)\foci.obj >> $@ |
| @@ -1168,10 +1171,16 @@ | |
| 1168 | $(OX)\encode$O : encode_.c encode.h |
| 1169 | $(TCC) /Fo$@ -c encode_.c |
| 1170 | |
| 1171 | encode_.c : $(SRCDIR)\encode.c |
| 1172 | translate$E $** > $@ |
| 1173 | |
| 1174 | $(OX)\event$O : event_.c event.h |
| 1175 | $(TCC) /Fo$@ -c event_.c |
| 1176 | |
| 1177 | event_.c : $(SRCDIR)\event.c |
| @@ -1785,10 +1794,11 @@ | |
| 1785 | diff_.c:diff.h \ |
| 1786 | diffcmd_.c:diffcmd.h \ |
| 1787 | dispatch_.c:dispatch.h \ |
| 1788 | doc_.c:doc.h \ |
| 1789 | encode_.c:encode.h \ |
| 1790 | event_.c:event.h \ |
| 1791 | export_.c:export.h \ |
| 1792 | file_.c:file.h \ |
| 1793 | finfo_.c:finfo.h \ |
| 1794 | foci_.c:foci.h \ |
| 1795 |
| --- win/Makefile.msc | |
| +++ win/Makefile.msc | |
| @@ -382,10 +382,11 @@ | |
| 382 | diff_.c \ |
| 383 | diffcmd_.c \ |
| 384 | dispatch_.c \ |
| 385 | doc_.c \ |
| 386 | encode_.c \ |
| 387 | etag_.c \ |
| 388 | event_.c \ |
| 389 | export_.c \ |
| 390 | file_.c \ |
| 391 | finfo_.c \ |
| 392 | foci_.c \ |
| @@ -581,10 +582,11 @@ | |
| 582 | $(OX)\diff$O \ |
| 583 | $(OX)\diffcmd$O \ |
| 584 | $(OX)\dispatch$O \ |
| 585 | $(OX)\doc$O \ |
| 586 | $(OX)\encode$O \ |
| 587 | $(OX)\etag$O \ |
| 588 | $(OX)\event$O \ |
| 589 | $(OX)\export$O \ |
| 590 | $(OX)\file$O \ |
| 591 | $(OX)\finfo$O \ |
| 592 | $(OX)\foci$O \ |
| @@ -769,10 +771,11 @@ | |
| 771 | echo $(OX)\diff.obj >> $@ |
| 772 | echo $(OX)\diffcmd.obj >> $@ |
| 773 | echo $(OX)\dispatch.obj >> $@ |
| 774 | echo $(OX)\doc.obj >> $@ |
| 775 | echo $(OX)\encode.obj >> $@ |
| 776 | echo $(OX)\etag.obj >> $@ |
| 777 | echo $(OX)\event.obj >> $@ |
| 778 | echo $(OX)\export.obj >> $@ |
| 779 | echo $(OX)\file.obj >> $@ |
| 780 | echo $(OX)\finfo.obj >> $@ |
| 781 | echo $(OX)\foci.obj >> $@ |
| @@ -1168,10 +1171,16 @@ | |
| 1171 | $(OX)\encode$O : encode_.c encode.h |
| 1172 | $(TCC) /Fo$@ -c encode_.c |
| 1173 | |
| 1174 | encode_.c : $(SRCDIR)\encode.c |
| 1175 | translate$E $** > $@ |
| 1176 | |
| 1177 | $(OX)\etag$O : etag_.c etag.h |
| 1178 | $(TCC) /Fo$@ -c etag_.c |
| 1179 | |
| 1180 | etag_.c : $(SRCDIR)\etag.c |
| 1181 | translate$E $** > $@ |
| 1182 | |
| 1183 | $(OX)\event$O : event_.c event.h |
| 1184 | $(TCC) /Fo$@ -c event_.c |
| 1185 | |
| 1186 | event_.c : $(SRCDIR)\event.c |
| @@ -1785,10 +1794,11 @@ | |
| 1794 | diff_.c:diff.h \ |
| 1795 | diffcmd_.c:diffcmd.h \ |
| 1796 | dispatch_.c:dispatch.h \ |
| 1797 | doc_.c:doc.h \ |
| 1798 | encode_.c:encode.h \ |
| 1799 | etag_.c:etag.h \ |
| 1800 | event_.c:event.h \ |
| 1801 | export_.c:export.h \ |
| 1802 | file_.c:file.h \ |
| 1803 | finfo_.c:finfo.h \ |
| 1804 | foci_.c:foci.h \ |
| 1805 |