Fossil SCM
Improvements to handling of backlinks: (1) Fossil now scans for backlinks in Markdown formatted ticket changes in addition to Fossil-Wiki formatted changes. (2) Wiki is scanned for backlinks, including wiki associated with check-ins and branches. (3) Much of the backlink code is gathered together into a single new "backlink.c" source file. (4) There are improvements to the timeline display of wiki changes. Ticket [a3572c6a5b47cd5a].
Commit
ae1dac83d6bc4a3e41aa3d19c366b4966223c89c46420d324e2ed1406376382d
Parent
b4beadb5078a034…
15 files changed
+6
+1
-1
-65
+12
+1
+56
-13
+13
-1
+1
-1
+17
-1
+32
-6
+8
-6
+3
-21
+10
-4
+12
+10
+6
| --- a/src/backlink.c | ||
| +++ b/src/backlink.c | ||
| @@ -0,0 +1,6 @@ | ||
| 1 | +/* | |
| 2 | +** Copyright (c) 2020 D. Richard Hipp | |
| 3 | +** | |
| 4 | +** This program is free software; you can redistribute it and/or | |
| 5 | +** modify it under the terms of the Simplified BSD License (also | |
| 6 | +** known as the "2-Clau |
| --- a/src/backlink.c | |
| +++ b/src/backlink.c | |
| @@ -0,0 +1,6 @@ | |
| --- a/src/backlink.c | |
| +++ b/src/backlink.c | |
| @@ -0,0 +1,6 @@ | |
| 1 | /* |
| 2 | ** Copyright (c) 2020 D. Richard Hipp |
| 3 | ** |
| 4 | ** This program is free software; you can redistribute it and/or |
| 5 | ** modify it under the terms of the Simplified BSD License (also |
| 6 | ** known as the "2-Clau |
M
src/db.c
+1
-1
| --- src/db.c | ||
| +++ src/db.c | ||
| @@ -2310,11 +2310,11 @@ | ||
| 2310 | 2310 | ** SQL functions for debugging. |
| 2311 | 2311 | ** |
| 2312 | 2312 | ** The print() function writes its arguments on stdout, but only |
| 2313 | 2313 | ** if the -sqlprint command-line option is turned on. |
| 2314 | 2314 | */ |
| 2315 | -LOCAL void db_sql_print( | |
| 2315 | +void db_sql_print( | |
| 2316 | 2316 | sqlite3_context *context, |
| 2317 | 2317 | int argc, |
| 2318 | 2318 | sqlite3_value **argv |
| 2319 | 2319 | ){ |
| 2320 | 2320 | int i; |
| 2321 | 2321 |
| --- src/db.c | |
| +++ src/db.c | |
| @@ -2310,11 +2310,11 @@ | |
| 2310 | ** SQL functions for debugging. |
| 2311 | ** |
| 2312 | ** The print() function writes its arguments on stdout, but only |
| 2313 | ** if the -sqlprint command-line option is turned on. |
| 2314 | */ |
| 2315 | LOCAL void db_sql_print( |
| 2316 | sqlite3_context *context, |
| 2317 | int argc, |
| 2318 | sqlite3_value **argv |
| 2319 | ){ |
| 2320 | int i; |
| 2321 |
| --- src/db.c | |
| +++ src/db.c | |
| @@ -2310,11 +2310,11 @@ | |
| 2310 | ** SQL functions for debugging. |
| 2311 | ** |
| 2312 | ** The print() function writes its arguments on stdout, but only |
| 2313 | ** if the -sqlprint command-line option is turned on. |
| 2314 | */ |
| 2315 | void db_sql_print( |
| 2316 | sqlite3_context *context, |
| 2317 | int argc, |
| 2318 | sqlite3_value **argv |
| 2319 | ){ |
| 2320 | int i; |
| 2321 |
-65
| --- src/info.c | ||
| +++ src/info.c | ||
| @@ -302,75 +302,10 @@ | ||
| 302 | 302 | |TIMELINE_CHPICK, |
| 303 | 303 | 0, 0, 0, rid, rid2, 0); |
| 304 | 304 | db_finalize(&q); |
| 305 | 305 | } |
| 306 | 306 | |
| 307 | -/* | |
| 308 | -** Show a graph all wiki, tickets, and check-ins that refer to object zUuid. | |
| 309 | -** | |
| 310 | -** If zLabel is not NULL and the graph is not empty, then output zLabel as | |
| 311 | -** a prefix to the graph. | |
| 312 | -*/ | |
| 313 | -void render_backlink_graph(const char *zUuid, const char *zLabel){ | |
| 314 | - Blob sql; | |
| 315 | - Stmt q; | |
| 316 | - char *zGlob; | |
| 317 | - zGlob = mprintf("%.5s*", zUuid); | |
| 318 | - db_multi_exec( | |
| 319 | - "CREATE TEMP TABLE IF NOT EXISTS ok(rid INTEGER PRIMARY KEY);" | |
| 320 | - "DELETE FROM ok;" | |
| 321 | - "INSERT OR IGNORE INTO ok" | |
| 322 | - " SELECT srcid FROM backlink" | |
| 323 | - " WHERE target GLOB %Q" | |
| 324 | - " AND %Q GLOB (target || '*');", | |
| 325 | - zGlob, zUuid | |
| 326 | - ); | |
| 327 | - if( !db_exists("SELECT 1 FROM ok") ) return; | |
| 328 | - if( zLabel ) cgi_printf("%s", zLabel); | |
| 329 | - blob_zero(&sql); | |
| 330 | - blob_append(&sql, timeline_query_for_www(), -1); | |
| 331 | - blob_append_sql(&sql, " AND event.objid IN ok ORDER BY mtime DESC"); | |
| 332 | - db_prepare(&q, "%s", blob_sql_text(&sql)); | |
| 333 | - www_print_timeline(&q, TIMELINE_DISJOINT|TIMELINE_GRAPH|TIMELINE_NOSCROLL, | |
| 334 | - 0, 0, 0, 0, 0, 0); | |
| 335 | - db_finalize(&q); | |
| 336 | -} | |
| 337 | - | |
| 338 | -/* | |
| 339 | -** WEBPAGE: test-backlinks | |
| 340 | -** | |
| 341 | -** Show a timeline of all check-ins and other events that have entries | |
| 342 | -** in the backlink table. This is used for testing the rendering | |
| 343 | -** of the "References" section of the /info page. | |
| 344 | -*/ | |
| 345 | -void backlink_timeline_page(void){ | |
| 346 | - Blob sql; | |
| 347 | - Stmt q; | |
| 348 | - | |
| 349 | - login_check_credentials(); | |
| 350 | - if( !g.perm.Read || !g.perm.RdTkt || !g.perm.RdWiki ){ | |
| 351 | - login_needed(g.anon.Read && g.anon.RdTkt && g.anon.RdWiki); | |
| 352 | - return; | |
| 353 | - } | |
| 354 | - style_header("Backlink Timeline (Internal Testing Use)"); | |
| 355 | - db_multi_exec( | |
| 356 | - "CREATE TEMP TABLE IF NOT EXISTS ok(rid INTEGER PRIMARY KEY);" | |
| 357 | - "DELETE FROM ok;" | |
| 358 | - "INSERT OR IGNORE INTO ok" | |
| 359 | - " SELECT blob.rid FROM backlink, blob" | |
| 360 | - " WHERE blob.uuid BETWEEN backlink.target AND (backlink.target||'x')" | |
| 361 | - ); | |
| 362 | - blob_zero(&sql); | |
| 363 | - blob_append(&sql, timeline_query_for_www(), -1); | |
| 364 | - blob_append_sql(&sql, " AND event.objid IN ok ORDER BY mtime DESC"); | |
| 365 | - db_prepare(&q, "%s", blob_sql_text(&sql)); | |
| 366 | - www_print_timeline(&q, TIMELINE_DISJOINT|TIMELINE_GRAPH|TIMELINE_NOSCROLL, | |
| 367 | - 0, 0, 0, 0, 0, 0); | |
| 368 | - db_finalize(&q); | |
| 369 | - style_footer(); | |
| 370 | -} | |
| 371 | - | |
| 372 | 307 | |
| 373 | 308 | /* |
| 374 | 309 | ** Append the difference between artifacts to the output |
| 375 | 310 | */ |
| 376 | 311 | static void append_diff( |
| 377 | 312 |
| --- src/info.c | |
| +++ src/info.c | |
| @@ -302,75 +302,10 @@ | |
| 302 | |TIMELINE_CHPICK, |
| 303 | 0, 0, 0, rid, rid2, 0); |
| 304 | db_finalize(&q); |
| 305 | } |
| 306 | |
| 307 | /* |
| 308 | ** Show a graph all wiki, tickets, and check-ins that refer to object zUuid. |
| 309 | ** |
| 310 | ** If zLabel is not NULL and the graph is not empty, then output zLabel as |
| 311 | ** a prefix to the graph. |
| 312 | */ |
| 313 | void render_backlink_graph(const char *zUuid, const char *zLabel){ |
| 314 | Blob sql; |
| 315 | Stmt q; |
| 316 | char *zGlob; |
| 317 | zGlob = mprintf("%.5s*", zUuid); |
| 318 | db_multi_exec( |
| 319 | "CREATE TEMP TABLE IF NOT EXISTS ok(rid INTEGER PRIMARY KEY);" |
| 320 | "DELETE FROM ok;" |
| 321 | "INSERT OR IGNORE INTO ok" |
| 322 | " SELECT srcid FROM backlink" |
| 323 | " WHERE target GLOB %Q" |
| 324 | " AND %Q GLOB (target || '*');", |
| 325 | zGlob, zUuid |
| 326 | ); |
| 327 | if( !db_exists("SELECT 1 FROM ok") ) return; |
| 328 | if( zLabel ) cgi_printf("%s", zLabel); |
| 329 | blob_zero(&sql); |
| 330 | blob_append(&sql, timeline_query_for_www(), -1); |
| 331 | blob_append_sql(&sql, " AND event.objid IN ok ORDER BY mtime DESC"); |
| 332 | db_prepare(&q, "%s", blob_sql_text(&sql)); |
| 333 | www_print_timeline(&q, TIMELINE_DISJOINT|TIMELINE_GRAPH|TIMELINE_NOSCROLL, |
| 334 | 0, 0, 0, 0, 0, 0); |
| 335 | db_finalize(&q); |
| 336 | } |
| 337 | |
| 338 | /* |
| 339 | ** WEBPAGE: test-backlinks |
| 340 | ** |
| 341 | ** Show a timeline of all check-ins and other events that have entries |
| 342 | ** in the backlink table. This is used for testing the rendering |
| 343 | ** of the "References" section of the /info page. |
| 344 | */ |
| 345 | void backlink_timeline_page(void){ |
| 346 | Blob sql; |
| 347 | Stmt q; |
| 348 | |
| 349 | login_check_credentials(); |
| 350 | if( !g.perm.Read || !g.perm.RdTkt || !g.perm.RdWiki ){ |
| 351 | login_needed(g.anon.Read && g.anon.RdTkt && g.anon.RdWiki); |
| 352 | return; |
| 353 | } |
| 354 | style_header("Backlink Timeline (Internal Testing Use)"); |
| 355 | db_multi_exec( |
| 356 | "CREATE TEMP TABLE IF NOT EXISTS ok(rid INTEGER PRIMARY KEY);" |
| 357 | "DELETE FROM ok;" |
| 358 | "INSERT OR IGNORE INTO ok" |
| 359 | " SELECT blob.rid FROM backlink, blob" |
| 360 | " WHERE blob.uuid BETWEEN backlink.target AND (backlink.target||'x')" |
| 361 | ); |
| 362 | blob_zero(&sql); |
| 363 | blob_append(&sql, timeline_query_for_www(), -1); |
| 364 | blob_append_sql(&sql, " AND event.objid IN ok ORDER BY mtime DESC"); |
| 365 | db_prepare(&q, "%s", blob_sql_text(&sql)); |
| 366 | www_print_timeline(&q, TIMELINE_DISJOINT|TIMELINE_GRAPH|TIMELINE_NOSCROLL, |
| 367 | 0, 0, 0, 0, 0, 0); |
| 368 | db_finalize(&q); |
| 369 | style_footer(); |
| 370 | } |
| 371 | |
| 372 | |
| 373 | /* |
| 374 | ** Append the difference between artifacts to the output |
| 375 | */ |
| 376 | static void append_diff( |
| 377 |
| --- src/info.c | |
| +++ src/info.c | |
| @@ -302,75 +302,10 @@ | |
| 302 | |TIMELINE_CHPICK, |
| 303 | 0, 0, 0, rid, rid2, 0); |
| 304 | db_finalize(&q); |
| 305 | } |
| 306 | |
| 307 | |
| 308 | /* |
| 309 | ** Append the difference between artifacts to the output |
| 310 | */ |
| 311 | static void append_diff( |
| 312 |
+12
| --- src/main.mk | ||
| +++ src/main.mk | ||
| @@ -18,10 +18,11 @@ | ||
| 18 | 18 | SRC = \ |
| 19 | 19 | $(SRCDIR)/add.c \ |
| 20 | 20 | $(SRCDIR)/alerts.c \ |
| 21 | 21 | $(SRCDIR)/allrepo.c \ |
| 22 | 22 | $(SRCDIR)/attach.c \ |
| 23 | + $(SRCDIR)/backlink.c \ | |
| 23 | 24 | $(SRCDIR)/backoffice.c \ |
| 24 | 25 | $(SRCDIR)/bag.c \ |
| 25 | 26 | $(SRCDIR)/bisect.c \ |
| 26 | 27 | $(SRCDIR)/blob.c \ |
| 27 | 28 | $(SRCDIR)/branch.c \ |
| @@ -250,10 +251,11 @@ | ||
| 250 | 251 | TRANS_SRC = \ |
| 251 | 252 | $(OBJDIR)/add_.c \ |
| 252 | 253 | $(OBJDIR)/alerts_.c \ |
| 253 | 254 | $(OBJDIR)/allrepo_.c \ |
| 254 | 255 | $(OBJDIR)/attach_.c \ |
| 256 | + $(OBJDIR)/backlink_.c \ | |
| 255 | 257 | $(OBJDIR)/backoffice_.c \ |
| 256 | 258 | $(OBJDIR)/bag_.c \ |
| 257 | 259 | $(OBJDIR)/bisect_.c \ |
| 258 | 260 | $(OBJDIR)/blob_.c \ |
| 259 | 261 | $(OBJDIR)/branch_.c \ |
| @@ -391,10 +393,11 @@ | ||
| 391 | 393 | OBJ = \ |
| 392 | 394 | $(OBJDIR)/add.o \ |
| 393 | 395 | $(OBJDIR)/alerts.o \ |
| 394 | 396 | $(OBJDIR)/allrepo.o \ |
| 395 | 397 | $(OBJDIR)/attach.o \ |
| 398 | + $(OBJDIR)/backlink.o \ | |
| 396 | 399 | $(OBJDIR)/backoffice.o \ |
| 397 | 400 | $(OBJDIR)/bag.o \ |
| 398 | 401 | $(OBJDIR)/bisect.o \ |
| 399 | 402 | $(OBJDIR)/blob.o \ |
| 400 | 403 | $(OBJDIR)/branch.o \ |
| @@ -727,10 +730,11 @@ | ||
| 727 | 730 | $(OBJDIR)/headers: $(OBJDIR)/page_index.h $(OBJDIR)/builtin_data.h $(OBJDIR)/default_css.h $(OBJDIR)/makeheaders $(OBJDIR)/VERSION.h |
| 728 | 731 | $(OBJDIR)/makeheaders $(OBJDIR)/add_.c:$(OBJDIR)/add.h \ |
| 729 | 732 | $(OBJDIR)/alerts_.c:$(OBJDIR)/alerts.h \ |
| 730 | 733 | $(OBJDIR)/allrepo_.c:$(OBJDIR)/allrepo.h \ |
| 731 | 734 | $(OBJDIR)/attach_.c:$(OBJDIR)/attach.h \ |
| 735 | + $(OBJDIR)/backlink_.c:$(OBJDIR)/backlink.h \ | |
| 732 | 736 | $(OBJDIR)/backoffice_.c:$(OBJDIR)/backoffice.h \ |
| 733 | 737 | $(OBJDIR)/bag_.c:$(OBJDIR)/bag.h \ |
| 734 | 738 | $(OBJDIR)/bisect_.c:$(OBJDIR)/bisect.h \ |
| 735 | 739 | $(OBJDIR)/blob_.c:$(OBJDIR)/blob.h \ |
| 736 | 740 | $(OBJDIR)/branch_.c:$(OBJDIR)/branch.h \ |
| @@ -900,10 +904,18 @@ | ||
| 900 | 904 | |
| 901 | 905 | $(OBJDIR)/attach.o: $(OBJDIR)/attach_.c $(OBJDIR)/attach.h $(SRCDIR)/config.h |
| 902 | 906 | $(XTCC) -o $(OBJDIR)/attach.o -c $(OBJDIR)/attach_.c |
| 903 | 907 | |
| 904 | 908 | $(OBJDIR)/attach.h: $(OBJDIR)/headers |
| 909 | + | |
| 910 | +$(OBJDIR)/backlink_.c: $(SRCDIR)/backlink.c $(OBJDIR)/translate | |
| 911 | + $(OBJDIR)/translate $(SRCDIR)/backlink.c >$@ | |
| 912 | + | |
| 913 | +$(OBJDIR)/backlink.o: $(OBJDIR)/backlink_.c $(OBJDIR)/backlink.h $(SRCDIR)/config.h | |
| 914 | + $(XTCC) -o $(OBJDIR)/backlink.o -c $(OBJDIR)/backlink_.c | |
| 915 | + | |
| 916 | +$(OBJDIR)/backlink.h: $(OBJDIR)/headers | |
| 905 | 917 | |
| 906 | 918 | $(OBJDIR)/backoffice_.c: $(SRCDIR)/backoffice.c $(OBJDIR)/translate |
| 907 | 919 | $(OBJDIR)/translate $(SRCDIR)/backoffice.c >$@ |
| 908 | 920 | |
| 909 | 921 | $(OBJDIR)/backoffice.o: $(OBJDIR)/backoffice_.c $(OBJDIR)/backoffice.h $(SRCDIR)/config.h |
| 910 | 922 |
| --- src/main.mk | |
| +++ src/main.mk | |
| @@ -18,10 +18,11 @@ | |
| 18 | SRC = \ |
| 19 | $(SRCDIR)/add.c \ |
| 20 | $(SRCDIR)/alerts.c \ |
| 21 | $(SRCDIR)/allrepo.c \ |
| 22 | $(SRCDIR)/attach.c \ |
| 23 | $(SRCDIR)/backoffice.c \ |
| 24 | $(SRCDIR)/bag.c \ |
| 25 | $(SRCDIR)/bisect.c \ |
| 26 | $(SRCDIR)/blob.c \ |
| 27 | $(SRCDIR)/branch.c \ |
| @@ -250,10 +251,11 @@ | |
| 250 | TRANS_SRC = \ |
| 251 | $(OBJDIR)/add_.c \ |
| 252 | $(OBJDIR)/alerts_.c \ |
| 253 | $(OBJDIR)/allrepo_.c \ |
| 254 | $(OBJDIR)/attach_.c \ |
| 255 | $(OBJDIR)/backoffice_.c \ |
| 256 | $(OBJDIR)/bag_.c \ |
| 257 | $(OBJDIR)/bisect_.c \ |
| 258 | $(OBJDIR)/blob_.c \ |
| 259 | $(OBJDIR)/branch_.c \ |
| @@ -391,10 +393,11 @@ | |
| 391 | OBJ = \ |
| 392 | $(OBJDIR)/add.o \ |
| 393 | $(OBJDIR)/alerts.o \ |
| 394 | $(OBJDIR)/allrepo.o \ |
| 395 | $(OBJDIR)/attach.o \ |
| 396 | $(OBJDIR)/backoffice.o \ |
| 397 | $(OBJDIR)/bag.o \ |
| 398 | $(OBJDIR)/bisect.o \ |
| 399 | $(OBJDIR)/blob.o \ |
| 400 | $(OBJDIR)/branch.o \ |
| @@ -727,10 +730,11 @@ | |
| 727 | $(OBJDIR)/headers: $(OBJDIR)/page_index.h $(OBJDIR)/builtin_data.h $(OBJDIR)/default_css.h $(OBJDIR)/makeheaders $(OBJDIR)/VERSION.h |
| 728 | $(OBJDIR)/makeheaders $(OBJDIR)/add_.c:$(OBJDIR)/add.h \ |
| 729 | $(OBJDIR)/alerts_.c:$(OBJDIR)/alerts.h \ |
| 730 | $(OBJDIR)/allrepo_.c:$(OBJDIR)/allrepo.h \ |
| 731 | $(OBJDIR)/attach_.c:$(OBJDIR)/attach.h \ |
| 732 | $(OBJDIR)/backoffice_.c:$(OBJDIR)/backoffice.h \ |
| 733 | $(OBJDIR)/bag_.c:$(OBJDIR)/bag.h \ |
| 734 | $(OBJDIR)/bisect_.c:$(OBJDIR)/bisect.h \ |
| 735 | $(OBJDIR)/blob_.c:$(OBJDIR)/blob.h \ |
| 736 | $(OBJDIR)/branch_.c:$(OBJDIR)/branch.h \ |
| @@ -900,10 +904,18 @@ | |
| 900 | |
| 901 | $(OBJDIR)/attach.o: $(OBJDIR)/attach_.c $(OBJDIR)/attach.h $(SRCDIR)/config.h |
| 902 | $(XTCC) -o $(OBJDIR)/attach.o -c $(OBJDIR)/attach_.c |
| 903 | |
| 904 | $(OBJDIR)/attach.h: $(OBJDIR)/headers |
| 905 | |
| 906 | $(OBJDIR)/backoffice_.c: $(SRCDIR)/backoffice.c $(OBJDIR)/translate |
| 907 | $(OBJDIR)/translate $(SRCDIR)/backoffice.c >$@ |
| 908 | |
| 909 | $(OBJDIR)/backoffice.o: $(OBJDIR)/backoffice_.c $(OBJDIR)/backoffice.h $(SRCDIR)/config.h |
| 910 |
| --- src/main.mk | |
| +++ src/main.mk | |
| @@ -18,10 +18,11 @@ | |
| 18 | SRC = \ |
| 19 | $(SRCDIR)/add.c \ |
| 20 | $(SRCDIR)/alerts.c \ |
| 21 | $(SRCDIR)/allrepo.c \ |
| 22 | $(SRCDIR)/attach.c \ |
| 23 | $(SRCDIR)/backlink.c \ |
| 24 | $(SRCDIR)/backoffice.c \ |
| 25 | $(SRCDIR)/bag.c \ |
| 26 | $(SRCDIR)/bisect.c \ |
| 27 | $(SRCDIR)/blob.c \ |
| 28 | $(SRCDIR)/branch.c \ |
| @@ -250,10 +251,11 @@ | |
| 251 | TRANS_SRC = \ |
| 252 | $(OBJDIR)/add_.c \ |
| 253 | $(OBJDIR)/alerts_.c \ |
| 254 | $(OBJDIR)/allrepo_.c \ |
| 255 | $(OBJDIR)/attach_.c \ |
| 256 | $(OBJDIR)/backlink_.c \ |
| 257 | $(OBJDIR)/backoffice_.c \ |
| 258 | $(OBJDIR)/bag_.c \ |
| 259 | $(OBJDIR)/bisect_.c \ |
| 260 | $(OBJDIR)/blob_.c \ |
| 261 | $(OBJDIR)/branch_.c \ |
| @@ -391,10 +393,11 @@ | |
| 393 | OBJ = \ |
| 394 | $(OBJDIR)/add.o \ |
| 395 | $(OBJDIR)/alerts.o \ |
| 396 | $(OBJDIR)/allrepo.o \ |
| 397 | $(OBJDIR)/attach.o \ |
| 398 | $(OBJDIR)/backlink.o \ |
| 399 | $(OBJDIR)/backoffice.o \ |
| 400 | $(OBJDIR)/bag.o \ |
| 401 | $(OBJDIR)/bisect.o \ |
| 402 | $(OBJDIR)/blob.o \ |
| 403 | $(OBJDIR)/branch.o \ |
| @@ -727,10 +730,11 @@ | |
| 730 | $(OBJDIR)/headers: $(OBJDIR)/page_index.h $(OBJDIR)/builtin_data.h $(OBJDIR)/default_css.h $(OBJDIR)/makeheaders $(OBJDIR)/VERSION.h |
| 731 | $(OBJDIR)/makeheaders $(OBJDIR)/add_.c:$(OBJDIR)/add.h \ |
| 732 | $(OBJDIR)/alerts_.c:$(OBJDIR)/alerts.h \ |
| 733 | $(OBJDIR)/allrepo_.c:$(OBJDIR)/allrepo.h \ |
| 734 | $(OBJDIR)/attach_.c:$(OBJDIR)/attach.h \ |
| 735 | $(OBJDIR)/backlink_.c:$(OBJDIR)/backlink.h \ |
| 736 | $(OBJDIR)/backoffice_.c:$(OBJDIR)/backoffice.h \ |
| 737 | $(OBJDIR)/bag_.c:$(OBJDIR)/bag.h \ |
| 738 | $(OBJDIR)/bisect_.c:$(OBJDIR)/bisect.h \ |
| 739 | $(OBJDIR)/blob_.c:$(OBJDIR)/blob.h \ |
| 740 | $(OBJDIR)/branch_.c:$(OBJDIR)/branch.h \ |
| @@ -900,10 +904,18 @@ | |
| 904 | |
| 905 | $(OBJDIR)/attach.o: $(OBJDIR)/attach_.c $(OBJDIR)/attach.h $(SRCDIR)/config.h |
| 906 | $(XTCC) -o $(OBJDIR)/attach.o -c $(OBJDIR)/attach_.c |
| 907 | |
| 908 | $(OBJDIR)/attach.h: $(OBJDIR)/headers |
| 909 | |
| 910 | $(OBJDIR)/backlink_.c: $(SRCDIR)/backlink.c $(OBJDIR)/translate |
| 911 | $(OBJDIR)/translate $(SRCDIR)/backlink.c >$@ |
| 912 | |
| 913 | $(OBJDIR)/backlink.o: $(OBJDIR)/backlink_.c $(OBJDIR)/backlink.h $(SRCDIR)/config.h |
| 914 | $(XTCC) -o $(OBJDIR)/backlink.o -c $(OBJDIR)/backlink_.c |
| 915 | |
| 916 | $(OBJDIR)/backlink.h: $(OBJDIR)/headers |
| 917 | |
| 918 | $(OBJDIR)/backoffice_.c: $(SRCDIR)/backoffice.c $(OBJDIR)/translate |
| 919 | $(OBJDIR)/translate $(SRCDIR)/backoffice.c >$@ |
| 920 | |
| 921 | $(OBJDIR)/backoffice.o: $(OBJDIR)/backoffice_.c $(OBJDIR)/backoffice.h $(SRCDIR)/config.h |
| 922 |
+1
| --- src/makemake.tcl | ||
| +++ src/makemake.tcl | ||
| @@ -29,10 +29,11 @@ | ||
| 29 | 29 | set src { |
| 30 | 30 | add |
| 31 | 31 | alerts |
| 32 | 32 | allrepo |
| 33 | 33 | attach |
| 34 | + backlink | |
| 34 | 35 | backoffice |
| 35 | 36 | bag |
| 36 | 37 | bisect |
| 37 | 38 | blob |
| 38 | 39 | branch |
| 39 | 40 |
| --- src/makemake.tcl | |
| +++ src/makemake.tcl | |
| @@ -29,10 +29,11 @@ | |
| 29 | set src { |
| 30 | add |
| 31 | alerts |
| 32 | allrepo |
| 33 | attach |
| 34 | backoffice |
| 35 | bag |
| 36 | bisect |
| 37 | blob |
| 38 | branch |
| 39 |
| --- src/makemake.tcl | |
| +++ src/makemake.tcl | |
| @@ -29,10 +29,11 @@ | |
| 29 | set src { |
| 30 | add |
| 31 | alerts |
| 32 | allrepo |
| 33 | attach |
| 34 | backlink |
| 35 | backoffice |
| 36 | bag |
| 37 | bisect |
| 38 | blob |
| 39 | branch |
| 40 |
+56
-13
| --- src/manifest.c | ||
| +++ src/manifest.c | ||
| @@ -1828,19 +1828,30 @@ | ||
| 1828 | 1828 | void manifest_crosslink_begin(void){ |
| 1829 | 1829 | assert( manifest_crosslink_busy==0 ); |
| 1830 | 1830 | manifest_crosslink_busy = 1; |
| 1831 | 1831 | db_begin_transaction(); |
| 1832 | 1832 | db_multi_exec( |
| 1833 | - "CREATE TEMP TABLE pending_tkt(uuid TEXT UNIQUE);" | |
| 1833 | + "CREATE TEMP TABLE pending_xlink(id TEXT PRIMARY KEY)WITHOUT ROWID;" | |
| 1834 | 1834 | "CREATE TEMP TABLE time_fudge(" |
| 1835 | 1835 | " mid INTEGER PRIMARY KEY," /* The rid of a manifest */ |
| 1836 | 1836 | " m1 REAL," /* The timestamp on mid */ |
| 1837 | 1837 | " cid INTEGER," /* A child or mid */ |
| 1838 | 1838 | " m2 REAL" /* Timestamp on the child */ |
| 1839 | 1839 | ");" |
| 1840 | 1840 | ); |
| 1841 | 1841 | } |
| 1842 | + | |
| 1843 | +/* | |
| 1844 | +** Add a new entry to the pending_xlink table. | |
| 1845 | +*/ | |
| 1846 | +static void add_pending_crosslink(char cType, const char *zId){ | |
| 1847 | + assert( manifest_crosslink_busy==1 ); | |
| 1848 | + db_multi_exec( | |
| 1849 | + "INSERT OR IGNORE INTO pending_xlink VALUES('%c%q')", | |
| 1850 | + cType, zId | |
| 1851 | + ); | |
| 1852 | +} | |
| 1842 | 1853 | |
| 1843 | 1854 | #if INTERFACE |
| 1844 | 1855 | /* Timestamps might be adjusted slightly to ensure that check-ins appear |
| 1845 | 1856 | ** on the timeline in chronological order. This is the maximum amount |
| 1846 | 1857 | ** of the adjustment window, in days. |
| @@ -1879,20 +1890,28 @@ | ||
| 1879 | 1890 | int rid = db_column_int(&q,0); |
| 1880 | 1891 | const char *zValue = db_column_text(&q,1); |
| 1881 | 1892 | manifest_reparent_checkin(rid, zValue); |
| 1882 | 1893 | } |
| 1883 | 1894 | db_finalize(&q); |
| 1884 | - db_prepare(&q, "SELECT uuid FROM pending_tkt"); | |
| 1895 | + db_prepare(&q, "SELECT id FROM pending_xlink"); | |
| 1885 | 1896 | while( db_step(&q)==SQLITE_ROW ){ |
| 1886 | - const char *zUuid = db_column_text(&q, 0); | |
| 1887 | - ticket_rebuild_entry(zUuid); | |
| 1888 | - if( permitHooks && rc==TH_OK ){ | |
| 1889 | - rc = xfer_run_script(zScript, zUuid, 0); | |
| 1897 | + const char *zId = db_column_text(&q, 0); | |
| 1898 | + char cType; | |
| 1899 | + if( zId==0 || zId[0]==0 ) continue; | |
| 1900 | + cType = zId[0]; | |
| 1901 | + zId++; | |
| 1902 | + if( cType=='t' ){ | |
| 1903 | + ticket_rebuild_entry(zId); | |
| 1904 | + if( permitHooks && rc==TH_OK ){ | |
| 1905 | + rc = xfer_run_script(zScript, zId, 0); | |
| 1906 | + } | |
| 1907 | + }else if( cType=='w' ){ | |
| 1908 | + backlink_wiki_refresh(zId); | |
| 1890 | 1909 | } |
| 1891 | 1910 | } |
| 1892 | 1911 | db_finalize(&q); |
| 1893 | - db_multi_exec("DROP TABLE pending_tkt"); | |
| 1912 | + db_multi_exec("DROP TABLE pending_xlink"); | |
| 1894 | 1913 | |
| 1895 | 1914 | /* If multiple check-ins happen close together in time, adjust their |
| 1896 | 1915 | ** times by a few milliseconds to make sure they appear in chronological |
| 1897 | 1916 | ** order. |
| 1898 | 1917 | */ |
| @@ -2162,11 +2181,11 @@ | ||
| 2162 | 2181 | TAG_USER, rid, |
| 2163 | 2182 | TAG_COMMENT, rid, p->rDate |
| 2164 | 2183 | ); |
| 2165 | 2184 | zCom = db_text(0, "SELECT coalesce(ecomment, comment) FROM event" |
| 2166 | 2185 | " WHERE rowid=last_insert_rowid()"); |
| 2167 | - wiki_extract_links(zCom, rid, 0, p->rDate, 1, WIKI_INLINE); | |
| 2186 | + backlink_extract(zCom, 0, rid, BKLNK_COMMENT, p->rDate, 1); | |
| 2168 | 2187 | fossil_free(zCom); |
| 2169 | 2188 | |
| 2170 | 2189 | /* If this is a delta-manifest, record the fact that this repository |
| 2171 | 2190 | ** contains delta manifests, to free the "commit" logic to generate |
| 2172 | 2191 | ** new delta manifests. |
| @@ -2227,10 +2246,11 @@ | ||
| 2227 | 2246 | if( p->type==CFTYPE_WIKI ){ |
| 2228 | 2247 | char *zTag = mprintf("wiki-%s", p->zWikiTitle); |
| 2229 | 2248 | int tagid = tag_findid(zTag, 1); |
| 2230 | 2249 | int prior; |
| 2231 | 2250 | char *zComment; |
| 2251 | + const char *zPrefix; | |
| 2232 | 2252 | int nWiki; |
| 2233 | 2253 | char zLength[40]; |
| 2234 | 2254 | while( fossil_isspace(p->zWiki[0]) ) p->zWiki++; |
| 2235 | 2255 | nWiki = strlen(p->zWiki); |
| 2236 | 2256 | sqlite3_snprintf(sizeof(zLength), zLength, "%d", nWiki); |
| @@ -2243,16 +2263,40 @@ | ||
| 2243 | 2263 | tagid, p->rDate |
| 2244 | 2264 | ); |
| 2245 | 2265 | if( prior ){ |
| 2246 | 2266 | content_deltify(prior, &rid, 1, 0); |
| 2247 | 2267 | } |
| 2248 | - if( nWiki>0 ){ | |
| 2249 | - zComment = mprintf("Changes to wiki page [%h]", p->zWikiTitle); | |
| 2268 | + if( nWiki<=0 ){ | |
| 2269 | + zPrefix = "Deleted"; | |
| 2270 | + }else if( !prior ){ | |
| 2271 | + zPrefix = "Added"; | |
| 2250 | 2272 | }else{ |
| 2251 | - zComment = mprintf("Deleted wiki page [%h]", p->zWikiTitle); | |
| 2273 | + zPrefix = "Changes to"; | |
| 2274 | + } | |
| 2275 | + switch( wiki_page_type(p->zWikiTitle) ){ | |
| 2276 | + case WIKITYPE_CHECKIN: { | |
| 2277 | + zComment = mprintf("%s wiki for check-in [%S]", zPrefix, | |
| 2278 | + p->zWikiTitle+8); | |
| 2279 | + break; | |
| 2280 | + } | |
| 2281 | + case WIKITYPE_BRANCH: { | |
| 2282 | + zComment = mprintf("%s wiki for branch [/timeline?r=%t|%h]", | |
| 2283 | + zPrefix, p->zWikiTitle+7, p->zWikiTitle+7); | |
| 2284 | + break; | |
| 2285 | + } | |
| 2286 | + case WIKITYPE_TAG: { | |
| 2287 | + zComment = mprintf("%s wiki for tag [/timeline?t=%t|%h]", | |
| 2288 | + zPrefix, p->zWikiTitle+4, p->zWikiTitle+4); | |
| 2289 | + break; | |
| 2290 | + } | |
| 2291 | + default: { | |
| 2292 | + zComment = mprintf("%s wiki page [%h]", zPrefix, p->zWikiTitle); | |
| 2293 | + break; | |
| 2294 | + } | |
| 2252 | 2295 | } |
| 2253 | 2296 | search_doc_touch('w',rid,p->zWikiTitle); |
| 2297 | + add_pending_crosslink('w',p->zWikiTitle); | |
| 2254 | 2298 | db_multi_exec( |
| 2255 | 2299 | "REPLACE INTO event(type,mtime,objid,user,comment," |
| 2256 | 2300 | " bgcolor,euser,ecomment)" |
| 2257 | 2301 | "VALUES('w',%.17g,%d,%Q,%Q," |
| 2258 | 2302 | " (SELECT value FROM tagxref WHERE tagid=%d AND rid=%d AND tagtype>1)," |
| @@ -2349,12 +2393,11 @@ | ||
| 2349 | 2393 | Stmt qatt; |
| 2350 | 2394 | assert( manifest_crosslink_busy==1 ); |
| 2351 | 2395 | zTag = mprintf("tkt-%s", p->zTicketUuid); |
| 2352 | 2396 | tag_insert(zTag, 1, 0, rid, p->rDate, rid); |
| 2353 | 2397 | fossil_free(zTag); |
| 2354 | - db_multi_exec("INSERT OR IGNORE INTO pending_tkt VALUES(%Q)", | |
| 2355 | - p->zTicketUuid); | |
| 2398 | + add_pending_crosslink('t',p->zTicketUuid); | |
| 2356 | 2399 | /* Locate and update comment for any attachments */ |
| 2357 | 2400 | db_prepare(&qatt, |
| 2358 | 2401 | "SELECT attachid, src, target, filename FROM attachment" |
| 2359 | 2402 | " WHERE target=%Q", |
| 2360 | 2403 | p->zTicketUuid |
| 2361 | 2404 |
| --- src/manifest.c | |
| +++ src/manifest.c | |
| @@ -1828,19 +1828,30 @@ | |
| 1828 | void manifest_crosslink_begin(void){ |
| 1829 | assert( manifest_crosslink_busy==0 ); |
| 1830 | manifest_crosslink_busy = 1; |
| 1831 | db_begin_transaction(); |
| 1832 | db_multi_exec( |
| 1833 | "CREATE TEMP TABLE pending_tkt(uuid TEXT UNIQUE);" |
| 1834 | "CREATE TEMP TABLE time_fudge(" |
| 1835 | " mid INTEGER PRIMARY KEY," /* The rid of a manifest */ |
| 1836 | " m1 REAL," /* The timestamp on mid */ |
| 1837 | " cid INTEGER," /* A child or mid */ |
| 1838 | " m2 REAL" /* Timestamp on the child */ |
| 1839 | ");" |
| 1840 | ); |
| 1841 | } |
| 1842 | |
| 1843 | #if INTERFACE |
| 1844 | /* Timestamps might be adjusted slightly to ensure that check-ins appear |
| 1845 | ** on the timeline in chronological order. This is the maximum amount |
| 1846 | ** of the adjustment window, in days. |
| @@ -1879,20 +1890,28 @@ | |
| 1879 | int rid = db_column_int(&q,0); |
| 1880 | const char *zValue = db_column_text(&q,1); |
| 1881 | manifest_reparent_checkin(rid, zValue); |
| 1882 | } |
| 1883 | db_finalize(&q); |
| 1884 | db_prepare(&q, "SELECT uuid FROM pending_tkt"); |
| 1885 | while( db_step(&q)==SQLITE_ROW ){ |
| 1886 | const char *zUuid = db_column_text(&q, 0); |
| 1887 | ticket_rebuild_entry(zUuid); |
| 1888 | if( permitHooks && rc==TH_OK ){ |
| 1889 | rc = xfer_run_script(zScript, zUuid, 0); |
| 1890 | } |
| 1891 | } |
| 1892 | db_finalize(&q); |
| 1893 | db_multi_exec("DROP TABLE pending_tkt"); |
| 1894 | |
| 1895 | /* If multiple check-ins happen close together in time, adjust their |
| 1896 | ** times by a few milliseconds to make sure they appear in chronological |
| 1897 | ** order. |
| 1898 | */ |
| @@ -2162,11 +2181,11 @@ | |
| 2162 | TAG_USER, rid, |
| 2163 | TAG_COMMENT, rid, p->rDate |
| 2164 | ); |
| 2165 | zCom = db_text(0, "SELECT coalesce(ecomment, comment) FROM event" |
| 2166 | " WHERE rowid=last_insert_rowid()"); |
| 2167 | wiki_extract_links(zCom, rid, 0, p->rDate, 1, WIKI_INLINE); |
| 2168 | fossil_free(zCom); |
| 2169 | |
| 2170 | /* If this is a delta-manifest, record the fact that this repository |
| 2171 | ** contains delta manifests, to free the "commit" logic to generate |
| 2172 | ** new delta manifests. |
| @@ -2227,10 +2246,11 @@ | |
| 2227 | if( p->type==CFTYPE_WIKI ){ |
| 2228 | char *zTag = mprintf("wiki-%s", p->zWikiTitle); |
| 2229 | int tagid = tag_findid(zTag, 1); |
| 2230 | int prior; |
| 2231 | char *zComment; |
| 2232 | int nWiki; |
| 2233 | char zLength[40]; |
| 2234 | while( fossil_isspace(p->zWiki[0]) ) p->zWiki++; |
| 2235 | nWiki = strlen(p->zWiki); |
| 2236 | sqlite3_snprintf(sizeof(zLength), zLength, "%d", nWiki); |
| @@ -2243,16 +2263,40 @@ | |
| 2243 | tagid, p->rDate |
| 2244 | ); |
| 2245 | if( prior ){ |
| 2246 | content_deltify(prior, &rid, 1, 0); |
| 2247 | } |
| 2248 | if( nWiki>0 ){ |
| 2249 | zComment = mprintf("Changes to wiki page [%h]", p->zWikiTitle); |
| 2250 | }else{ |
| 2251 | zComment = mprintf("Deleted wiki page [%h]", p->zWikiTitle); |
| 2252 | } |
| 2253 | search_doc_touch('w',rid,p->zWikiTitle); |
| 2254 | db_multi_exec( |
| 2255 | "REPLACE INTO event(type,mtime,objid,user,comment," |
| 2256 | " bgcolor,euser,ecomment)" |
| 2257 | "VALUES('w',%.17g,%d,%Q,%Q," |
| 2258 | " (SELECT value FROM tagxref WHERE tagid=%d AND rid=%d AND tagtype>1)," |
| @@ -2349,12 +2393,11 @@ | |
| 2349 | Stmt qatt; |
| 2350 | assert( manifest_crosslink_busy==1 ); |
| 2351 | zTag = mprintf("tkt-%s", p->zTicketUuid); |
| 2352 | tag_insert(zTag, 1, 0, rid, p->rDate, rid); |
| 2353 | fossil_free(zTag); |
| 2354 | db_multi_exec("INSERT OR IGNORE INTO pending_tkt VALUES(%Q)", |
| 2355 | p->zTicketUuid); |
| 2356 | /* Locate and update comment for any attachments */ |
| 2357 | db_prepare(&qatt, |
| 2358 | "SELECT attachid, src, target, filename FROM attachment" |
| 2359 | " WHERE target=%Q", |
| 2360 | p->zTicketUuid |
| 2361 |
| --- src/manifest.c | |
| +++ src/manifest.c | |
| @@ -1828,19 +1828,30 @@ | |
| 1828 | void manifest_crosslink_begin(void){ |
| 1829 | assert( manifest_crosslink_busy==0 ); |
| 1830 | manifest_crosslink_busy = 1; |
| 1831 | db_begin_transaction(); |
| 1832 | db_multi_exec( |
| 1833 | "CREATE TEMP TABLE pending_xlink(id TEXT PRIMARY KEY)WITHOUT ROWID;" |
| 1834 | "CREATE TEMP TABLE time_fudge(" |
| 1835 | " mid INTEGER PRIMARY KEY," /* The rid of a manifest */ |
| 1836 | " m1 REAL," /* The timestamp on mid */ |
| 1837 | " cid INTEGER," /* A child or mid */ |
| 1838 | " m2 REAL" /* Timestamp on the child */ |
| 1839 | ");" |
| 1840 | ); |
| 1841 | } |
| 1842 | |
| 1843 | /* |
| 1844 | ** Add a new entry to the pending_xlink table. |
| 1845 | */ |
| 1846 | static void add_pending_crosslink(char cType, const char *zId){ |
| 1847 | assert( manifest_crosslink_busy==1 ); |
| 1848 | db_multi_exec( |
| 1849 | "INSERT OR IGNORE INTO pending_xlink VALUES('%c%q')", |
| 1850 | cType, zId |
| 1851 | ); |
| 1852 | } |
| 1853 | |
| 1854 | #if INTERFACE |
| 1855 | /* Timestamps might be adjusted slightly to ensure that check-ins appear |
| 1856 | ** on the timeline in chronological order. This is the maximum amount |
| 1857 | ** of the adjustment window, in days. |
| @@ -1879,20 +1890,28 @@ | |
| 1890 | int rid = db_column_int(&q,0); |
| 1891 | const char *zValue = db_column_text(&q,1); |
| 1892 | manifest_reparent_checkin(rid, zValue); |
| 1893 | } |
| 1894 | db_finalize(&q); |
| 1895 | db_prepare(&q, "SELECT id FROM pending_xlink"); |
| 1896 | while( db_step(&q)==SQLITE_ROW ){ |
| 1897 | const char *zId = db_column_text(&q, 0); |
| 1898 | char cType; |
| 1899 | if( zId==0 || zId[0]==0 ) continue; |
| 1900 | cType = zId[0]; |
| 1901 | zId++; |
| 1902 | if( cType=='t' ){ |
| 1903 | ticket_rebuild_entry(zId); |
| 1904 | if( permitHooks && rc==TH_OK ){ |
| 1905 | rc = xfer_run_script(zScript, zId, 0); |
| 1906 | } |
| 1907 | }else if( cType=='w' ){ |
| 1908 | backlink_wiki_refresh(zId); |
| 1909 | } |
| 1910 | } |
| 1911 | db_finalize(&q); |
| 1912 | db_multi_exec("DROP TABLE pending_xlink"); |
| 1913 | |
| 1914 | /* If multiple check-ins happen close together in time, adjust their |
| 1915 | ** times by a few milliseconds to make sure they appear in chronological |
| 1916 | ** order. |
| 1917 | */ |
| @@ -2162,11 +2181,11 @@ | |
| 2181 | TAG_USER, rid, |
| 2182 | TAG_COMMENT, rid, p->rDate |
| 2183 | ); |
| 2184 | zCom = db_text(0, "SELECT coalesce(ecomment, comment) FROM event" |
| 2185 | " WHERE rowid=last_insert_rowid()"); |
| 2186 | backlink_extract(zCom, 0, rid, BKLNK_COMMENT, p->rDate, 1); |
| 2187 | fossil_free(zCom); |
| 2188 | |
| 2189 | /* If this is a delta-manifest, record the fact that this repository |
| 2190 | ** contains delta manifests, to free the "commit" logic to generate |
| 2191 | ** new delta manifests. |
| @@ -2227,10 +2246,11 @@ | |
| 2246 | if( p->type==CFTYPE_WIKI ){ |
| 2247 | char *zTag = mprintf("wiki-%s", p->zWikiTitle); |
| 2248 | int tagid = tag_findid(zTag, 1); |
| 2249 | int prior; |
| 2250 | char *zComment; |
| 2251 | const char *zPrefix; |
| 2252 | int nWiki; |
| 2253 | char zLength[40]; |
| 2254 | while( fossil_isspace(p->zWiki[0]) ) p->zWiki++; |
| 2255 | nWiki = strlen(p->zWiki); |
| 2256 | sqlite3_snprintf(sizeof(zLength), zLength, "%d", nWiki); |
| @@ -2243,16 +2263,40 @@ | |
| 2263 | tagid, p->rDate |
| 2264 | ); |
| 2265 | if( prior ){ |
| 2266 | content_deltify(prior, &rid, 1, 0); |
| 2267 | } |
| 2268 | if( nWiki<=0 ){ |
| 2269 | zPrefix = "Deleted"; |
| 2270 | }else if( !prior ){ |
| 2271 | zPrefix = "Added"; |
| 2272 | }else{ |
| 2273 | zPrefix = "Changes to"; |
| 2274 | } |
| 2275 | switch( wiki_page_type(p->zWikiTitle) ){ |
| 2276 | case WIKITYPE_CHECKIN: { |
| 2277 | zComment = mprintf("%s wiki for check-in [%S]", zPrefix, |
| 2278 | p->zWikiTitle+8); |
| 2279 | break; |
| 2280 | } |
| 2281 | case WIKITYPE_BRANCH: { |
| 2282 | zComment = mprintf("%s wiki for branch [/timeline?r=%t|%h]", |
| 2283 | zPrefix, p->zWikiTitle+7, p->zWikiTitle+7); |
| 2284 | break; |
| 2285 | } |
| 2286 | case WIKITYPE_TAG: { |
| 2287 | zComment = mprintf("%s wiki for tag [/timeline?t=%t|%h]", |
| 2288 | zPrefix, p->zWikiTitle+4, p->zWikiTitle+4); |
| 2289 | break; |
| 2290 | } |
| 2291 | default: { |
| 2292 | zComment = mprintf("%s wiki page [%h]", zPrefix, p->zWikiTitle); |
| 2293 | break; |
| 2294 | } |
| 2295 | } |
| 2296 | search_doc_touch('w',rid,p->zWikiTitle); |
| 2297 | add_pending_crosslink('w',p->zWikiTitle); |
| 2298 | db_multi_exec( |
| 2299 | "REPLACE INTO event(type,mtime,objid,user,comment," |
| 2300 | " bgcolor,euser,ecomment)" |
| 2301 | "VALUES('w',%.17g,%d,%Q,%Q," |
| 2302 | " (SELECT value FROM tagxref WHERE tagid=%d AND rid=%d AND tagtype>1)," |
| @@ -2349,12 +2393,11 @@ | |
| 2393 | Stmt qatt; |
| 2394 | assert( manifest_crosslink_busy==1 ); |
| 2395 | zTag = mprintf("tkt-%s", p->zTicketUuid); |
| 2396 | tag_insert(zTag, 1, 0, rid, p->rDate, rid); |
| 2397 | fossil_free(zTag); |
| 2398 | add_pending_crosslink('t',p->zTicketUuid); |
| 2399 | /* Locate and update comment for any attachments */ |
| 2400 | db_prepare(&qatt, |
| 2401 | "SELECT attachid, src, target, filename FROM attachment" |
| 2402 | " WHERE target=%Q", |
| 2403 | p->zTicketUuid |
| 2404 |
+13
-1
| --- src/schema.c | ||
| +++ src/schema.c | ||
| @@ -407,11 +407,11 @@ | ||
| 407 | 407 | @ -- the following table for that hyperlink. This table is used to |
| 408 | 408 | @ -- facilitate the display of "back links". |
| 409 | 409 | @ -- |
| 410 | 410 | @ CREATE TABLE backlink( |
| 411 | 411 | @ target TEXT, -- Where the hyperlink points to |
| 412 | -@ srctype INT, -- 0: check-in 1: ticket 2: wiki | |
| 412 | +@ srctype INT, -- 0=comment 1=ticket 2=wiki. See BKLNK_* below. | |
| 413 | 413 | @ srcid INT, -- EVENT.OBJID for the source document |
| 414 | 414 | @ mtime TIMESTAMP, -- time that the hyperlink was added. Julian day. |
| 415 | 415 | @ UNIQUE(target, srctype, srcid) |
| 416 | 416 | @ ); |
| 417 | 417 | @ CREATE INDEX backlink_src ON backlink(srcid, srctype); |
| @@ -476,10 +476,22 @@ | ||
| 476 | 476 | @ PRIMARY KEY(parentid, childid) |
| 477 | 477 | @ ) WITHOUT ROWID; |
| 478 | 478 | @ CREATE INDEX cherrypick_cid ON cherrypick(childid); |
| 479 | 479 | ; |
| 480 | 480 | |
| 481 | +/* | |
| 482 | +** Allowed values for backlink.srctype | |
| 483 | +*/ | |
| 484 | +#if INTERFACE | |
| 485 | +# define BKLNK_COMMENT 0 /* Check-in comment */ | |
| 486 | +# define BKLNK_TICKET 1 /* Ticket body or title */ | |
| 487 | +# define BKLNK_WIKI 2 /* Wiki */ | |
| 488 | +# define BKLNK_EVENT 3 /* Technote */ | |
| 489 | +# define BKLNK_FORUM 4 /* Forum post */ | |
| 490 | +# define ValidBklnk(X) (X>=0 && X<=4) /* True if backlink.srctype is valid */ | |
| 491 | +#endif | |
| 492 | + | |
| 481 | 493 | /* |
| 482 | 494 | ** Predefined tagid values |
| 483 | 495 | */ |
| 484 | 496 | #if INTERFACE |
| 485 | 497 | # define TAG_BGCOLOR 1 /* Set the background color for display */ |
| 486 | 498 |
| --- src/schema.c | |
| +++ src/schema.c | |
| @@ -407,11 +407,11 @@ | |
| 407 | @ -- the following table for that hyperlink. This table is used to |
| 408 | @ -- facilitate the display of "back links". |
| 409 | @ -- |
| 410 | @ CREATE TABLE backlink( |
| 411 | @ target TEXT, -- Where the hyperlink points to |
| 412 | @ srctype INT, -- 0: check-in 1: ticket 2: wiki |
| 413 | @ srcid INT, -- EVENT.OBJID for the source document |
| 414 | @ mtime TIMESTAMP, -- time that the hyperlink was added. Julian day. |
| 415 | @ UNIQUE(target, srctype, srcid) |
| 416 | @ ); |
| 417 | @ CREATE INDEX backlink_src ON backlink(srcid, srctype); |
| @@ -476,10 +476,22 @@ | |
| 476 | @ PRIMARY KEY(parentid, childid) |
| 477 | @ ) WITHOUT ROWID; |
| 478 | @ CREATE INDEX cherrypick_cid ON cherrypick(childid); |
| 479 | ; |
| 480 | |
| 481 | /* |
| 482 | ** Predefined tagid values |
| 483 | */ |
| 484 | #if INTERFACE |
| 485 | # define TAG_BGCOLOR 1 /* Set the background color for display */ |
| 486 |
| --- src/schema.c | |
| +++ src/schema.c | |
| @@ -407,11 +407,11 @@ | |
| 407 | @ -- the following table for that hyperlink. This table is used to |
| 408 | @ -- facilitate the display of "back links". |
| 409 | @ -- |
| 410 | @ CREATE TABLE backlink( |
| 411 | @ target TEXT, -- Where the hyperlink points to |
| 412 | @ srctype INT, -- 0=comment 1=ticket 2=wiki. See BKLNK_* below. |
| 413 | @ srcid INT, -- EVENT.OBJID for the source document |
| 414 | @ mtime TIMESTAMP, -- time that the hyperlink was added. Julian day. |
| 415 | @ UNIQUE(target, srctype, srcid) |
| 416 | @ ); |
| 417 | @ CREATE INDEX backlink_src ON backlink(srcid, srctype); |
| @@ -476,10 +476,22 @@ | |
| 476 | @ PRIMARY KEY(parentid, childid) |
| 477 | @ ) WITHOUT ROWID; |
| 478 | @ CREATE INDEX cherrypick_cid ON cherrypick(childid); |
| 479 | ; |
| 480 | |
| 481 | /* |
| 482 | ** Allowed values for backlink.srctype |
| 483 | */ |
| 484 | #if INTERFACE |
| 485 | # define BKLNK_COMMENT 0 /* Check-in comment */ |
| 486 | # define BKLNK_TICKET 1 /* Ticket body or title */ |
| 487 | # define BKLNK_WIKI 2 /* Wiki */ |
| 488 | # define BKLNK_EVENT 3 /* Technote */ |
| 489 | # define BKLNK_FORUM 4 /* Forum post */ |
| 490 | # define ValidBklnk(X) (X>=0 && X<=4) /* True if backlink.srctype is valid */ |
| 491 | #endif |
| 492 | |
| 493 | /* |
| 494 | ** Predefined tagid values |
| 495 | */ |
| 496 | #if INTERFACE |
| 497 | # define TAG_BGCOLOR 1 /* Set the background color for display */ |
| 498 |
+1
-1
| --- src/tag.c | ||
| +++ src/tag.c | ||
| @@ -220,11 +220,11 @@ | ||
| 220 | 220 | if( zCol ){ |
| 221 | 221 | db_multi_exec("UPDATE event SET \"%w\"=%Q WHERE objid=%d", |
| 222 | 222 | zCol, zValue, rid); |
| 223 | 223 | if( tagid==TAG_COMMENT ){ |
| 224 | 224 | char *zCopy = mprintf("%s", zValue); |
| 225 | - wiki_extract_links(zCopy, rid, 0, mtime, 1, WIKI_INLINE); | |
| 225 | + backlink_extract(zCopy, 0, rid, BKLNK_COMMENT, mtime, 1); | |
| 226 | 226 | free(zCopy); |
| 227 | 227 | } |
| 228 | 228 | } |
| 229 | 229 | if( tagid==TAG_DATE ){ |
| 230 | 230 | db_multi_exec("UPDATE event " |
| 231 | 231 |
| --- src/tag.c | |
| +++ src/tag.c | |
| @@ -220,11 +220,11 @@ | |
| 220 | if( zCol ){ |
| 221 | db_multi_exec("UPDATE event SET \"%w\"=%Q WHERE objid=%d", |
| 222 | zCol, zValue, rid); |
| 223 | if( tagid==TAG_COMMENT ){ |
| 224 | char *zCopy = mprintf("%s", zValue); |
| 225 | wiki_extract_links(zCopy, rid, 0, mtime, 1, WIKI_INLINE); |
| 226 | free(zCopy); |
| 227 | } |
| 228 | } |
| 229 | if( tagid==TAG_DATE ){ |
| 230 | db_multi_exec("UPDATE event " |
| 231 |
| --- src/tag.c | |
| +++ src/tag.c | |
| @@ -220,11 +220,11 @@ | |
| 220 | if( zCol ){ |
| 221 | db_multi_exec("UPDATE event SET \"%w\"=%Q WHERE objid=%d", |
| 222 | zCol, zValue, rid); |
| 223 | if( tagid==TAG_COMMENT ){ |
| 224 | char *zCopy = mprintf("%s", zValue); |
| 225 | backlink_extract(zCopy, 0, rid, BKLNK_COMMENT, mtime, 1); |
| 226 | free(zCopy); |
| 227 | } |
| 228 | } |
| 229 | if( tagid==TAG_DATE ){ |
| 230 | db_multi_exec("UPDATE event " |
| 231 |
+17
-1
| --- src/timeline.c | ||
| +++ src/timeline.c | ||
| @@ -116,10 +116,11 @@ | ||
| 116 | 116 | #define TIMELINE_CHPICK 0x0400000 /* Show cherrypick merges */ |
| 117 | 117 | #define TIMELINE_FILLGAPS 0x0800000 /* Dotted lines for missing nodes */ |
| 118 | 118 | #define TIMELINE_XMERGE 0x1000000 /* Omit merges from off-graph nodes */ |
| 119 | 119 | #define TIMELINE_NOTKT 0x2000000 /* Omit extra ticket classes */ |
| 120 | 120 | #define TIMELINE_FORUMTXT 0x4000000 /* Render all forum messages */ |
| 121 | +#define TIMELINE_REFS 0x8000000 /* Output intended for References tab */ | |
| 121 | 122 | #endif |
| 122 | 123 | |
| 123 | 124 | /* |
| 124 | 125 | ** Hash a string and use the hash to determine a background color. |
| 125 | 126 | */ |
| @@ -560,12 +561,27 @@ | ||
| 560 | 561 | } |
| 561 | 562 | if( zType[0]!='c' ){ |
| 562 | 563 | /* Comments for anything other than a check-in are generated by |
| 563 | 564 | ** "fossil rebuild" and expect to be rendered as text/x-fossil-wiki */ |
| 564 | 565 | if( zType[0]=='w' ){ |
| 566 | + const char *zCom = blob_str(&comment); | |
| 567 | + char *zWiki; | |
| 565 | 568 | wiki_hyperlink_override(zUuid); |
| 566 | - wiki_convert(&comment, 0, WIKI_INLINE); | |
| 569 | + if( (tmFlags & TIMELINE_REFS)!=0 | |
| 570 | + && (zWiki = strstr(zCom,"wiki"))!=0 | |
| 571 | + ){ | |
| 572 | + /* The TIMELINE_REFS flag causes timeline comments of the | |
| 573 | + ** form "Changes to wiki..." or "Added wiki" to be changed | |
| 574 | + ** into just "Wiki..." */ | |
| 575 | + Blob rcom; | |
| 576 | + blob_init(&rcom, 0, 0); | |
| 577 | + blob_appendf(&rcom, "W%s", zWiki+1); | |
| 578 | + wiki_convert(&rcom, 0, WIKI_INLINE); | |
| 579 | + blob_reset(&rcom); | |
| 580 | + }else{ | |
| 581 | + wiki_convert(&comment, 0, WIKI_INLINE); | |
| 582 | + } | |
| 567 | 583 | wiki_hyperlink_override(0); |
| 568 | 584 | }else{ |
| 569 | 585 | wiki_convert(&comment, 0, WIKI_INLINE); |
| 570 | 586 | } |
| 571 | 587 | }else{ |
| 572 | 588 |
| --- src/timeline.c | |
| +++ src/timeline.c | |
| @@ -116,10 +116,11 @@ | |
| 116 | #define TIMELINE_CHPICK 0x0400000 /* Show cherrypick merges */ |
| 117 | #define TIMELINE_FILLGAPS 0x0800000 /* Dotted lines for missing nodes */ |
| 118 | #define TIMELINE_XMERGE 0x1000000 /* Omit merges from off-graph nodes */ |
| 119 | #define TIMELINE_NOTKT 0x2000000 /* Omit extra ticket classes */ |
| 120 | #define TIMELINE_FORUMTXT 0x4000000 /* Render all forum messages */ |
| 121 | #endif |
| 122 | |
| 123 | /* |
| 124 | ** Hash a string and use the hash to determine a background color. |
| 125 | */ |
| @@ -560,12 +561,27 @@ | |
| 560 | } |
| 561 | if( zType[0]!='c' ){ |
| 562 | /* Comments for anything other than a check-in are generated by |
| 563 | ** "fossil rebuild" and expect to be rendered as text/x-fossil-wiki */ |
| 564 | if( zType[0]=='w' ){ |
| 565 | wiki_hyperlink_override(zUuid); |
| 566 | wiki_convert(&comment, 0, WIKI_INLINE); |
| 567 | wiki_hyperlink_override(0); |
| 568 | }else{ |
| 569 | wiki_convert(&comment, 0, WIKI_INLINE); |
| 570 | } |
| 571 | }else{ |
| 572 |
| --- src/timeline.c | |
| +++ src/timeline.c | |
| @@ -116,10 +116,11 @@ | |
| 116 | #define TIMELINE_CHPICK 0x0400000 /* Show cherrypick merges */ |
| 117 | #define TIMELINE_FILLGAPS 0x0800000 /* Dotted lines for missing nodes */ |
| 118 | #define TIMELINE_XMERGE 0x1000000 /* Omit merges from off-graph nodes */ |
| 119 | #define TIMELINE_NOTKT 0x2000000 /* Omit extra ticket classes */ |
| 120 | #define TIMELINE_FORUMTXT 0x4000000 /* Render all forum messages */ |
| 121 | #define TIMELINE_REFS 0x8000000 /* Output intended for References tab */ |
| 122 | #endif |
| 123 | |
| 124 | /* |
| 125 | ** Hash a string and use the hash to determine a background color. |
| 126 | */ |
| @@ -560,12 +561,27 @@ | |
| 561 | } |
| 562 | if( zType[0]!='c' ){ |
| 563 | /* Comments for anything other than a check-in are generated by |
| 564 | ** "fossil rebuild" and expect to be rendered as text/x-fossil-wiki */ |
| 565 | if( zType[0]=='w' ){ |
| 566 | const char *zCom = blob_str(&comment); |
| 567 | char *zWiki; |
| 568 | wiki_hyperlink_override(zUuid); |
| 569 | if( (tmFlags & TIMELINE_REFS)!=0 |
| 570 | && (zWiki = strstr(zCom,"wiki"))!=0 |
| 571 | ){ |
| 572 | /* The TIMELINE_REFS flag causes timeline comments of the |
| 573 | ** form "Changes to wiki..." or "Added wiki" to be changed |
| 574 | ** into just "Wiki..." */ |
| 575 | Blob rcom; |
| 576 | blob_init(&rcom, 0, 0); |
| 577 | blob_appendf(&rcom, "W%s", zWiki+1); |
| 578 | wiki_convert(&rcom, 0, WIKI_INLINE); |
| 579 | blob_reset(&rcom); |
| 580 | }else{ |
| 581 | wiki_convert(&comment, 0, WIKI_INLINE); |
| 582 | } |
| 583 | wiki_hyperlink_override(0); |
| 584 | }else{ |
| 585 | wiki_convert(&comment, 0, WIKI_INLINE); |
| 586 | } |
| 587 | }else{ |
| 588 |
+32
-6
| --- src/tkt.c | ||
| +++ src/tkt.c | ||
| @@ -194,10 +194,11 @@ | ||
| 194 | 194 | static int ticket_insert(const Manifest *p, int rid, int tktid){ |
| 195 | 195 | Blob sql1, sql2, sql3; |
| 196 | 196 | Stmt q; |
| 197 | 197 | int i, j; |
| 198 | 198 | char *aUsed; |
| 199 | + const char *zMimetype = 0; | |
| 199 | 200 | |
| 200 | 201 | if( tktid==0 ){ |
| 201 | 202 | db_multi_exec("INSERT INTO ticket(tkt_uuid, tkt_mtime) " |
| 202 | 203 | "VALUES(%Q, 0)", p->zTicketUuid); |
| 203 | 204 | tktid = db_last_insert_rowid(); |
| @@ -233,12 +234,22 @@ | ||
| 233 | 234 | zUsedByName++; |
| 234 | 235 | } |
| 235 | 236 | blob_append_sql(&sql2, ",\"%w\"", zUsedByName); |
| 236 | 237 | blob_append_sql(&sql3, ",%Q", p->aField[i].zValue); |
| 237 | 238 | } |
| 238 | - if( rid>0 ){ | |
| 239 | - wiki_extract_links(p->aField[i].zValue, rid, 1, p->rDate, i==0, 0); | |
| 239 | + if( strcmp(zBaseName,"mimetype")==0 ){ | |
| 240 | + zMimetype = p->aField[i].zValue; | |
| 241 | + } | |
| 242 | + } | |
| 243 | + if( rid>0 ){ | |
| 244 | + for(i=0; i<p->nField; i++){ | |
| 245 | + const char *zName = p->aField[i].zName; | |
| 246 | + const char *zBaseName = zName[0]=='+' ? zName+1 : zName; | |
| 247 | + j = fieldId(zBaseName); | |
| 248 | + if( j<0 ) continue; | |
| 249 | + backlink_extract(p->aField[i].zValue, zMimetype, rid, BKLNK_TICKET, | |
| 250 | + p->rDate, i==0); | |
| 240 | 251 | } |
| 241 | 252 | } |
| 242 | 253 | blob_append_sql(&sql1, " WHERE tkt_id=%d", tktid); |
| 243 | 254 | db_prepare(&q, "%s", blob_sql_text(&sql1)); |
| 244 | 255 | db_bind_double(&q, ":mtime", p->rDate); |
| @@ -845,10 +856,14 @@ | ||
| 845 | 856 | } |
| 846 | 857 | |
| 847 | 858 | /* |
| 848 | 859 | ** Draw a timeline for a ticket with tag.tagid given by the tagid |
| 849 | 860 | ** parameter. |
| 861 | +** | |
| 862 | +** If zType[0]=='c' then only show check-ins associated with the | |
| 863 | +** ticket. For any other value of zType, show all events associated | |
| 864 | +** with the ticket. | |
| 850 | 865 | */ |
| 851 | 866 | void tkt_draw_timeline(int tagid, const char *zType){ |
| 852 | 867 | Stmt q; |
| 853 | 868 | char *zFullUuid; |
| 854 | 869 | char *zSQL; |
| @@ -855,20 +870,26 @@ | ||
| 855 | 870 | zFullUuid = db_text(0, "SELECT substr(tagname, 5) FROM tag WHERE tagid=%d", |
| 856 | 871 | tagid); |
| 857 | 872 | if( zType[0]=='c' ){ |
| 858 | 873 | zSQL = mprintf( |
| 859 | 874 | "%s AND event.objid IN " |
| 860 | - " (SELECT srcid FROM backlink WHERE target GLOB '%.4s*' " | |
| 875 | + " (SELECT srcid FROM backlink WHERE target GLOB '%.4s*' " | |
| 876 | + "AND srctype=0 " | |
| 861 | 877 | "AND '%s' GLOB (target||'*')) " |
| 862 | 878 | "ORDER BY mtime DESC", |
| 863 | 879 | timeline_query_for_www(), zFullUuid, zFullUuid |
| 864 | 880 | ); |
| 865 | 881 | }else{ |
| 866 | 882 | zSQL = mprintf( |
| 867 | 883 | "%s AND event.objid IN " |
| 868 | 884 | " (SELECT rid FROM tagxref WHERE tagid=%d" |
| 869 | - " UNION SELECT srcid FROM backlink" | |
| 885 | + " UNION" | |
| 886 | + " SELECT CASE srctype WHEN 2 THEN" | |
| 887 | + " (SELECT rid FROM tagxref WHERE tagid=backlink.srcid" | |
| 888 | + " ORDER BY mtime DESC LIMIT 1)" | |
| 889 | + " ELSE srcid END" | |
| 890 | + " FROM backlink" | |
| 870 | 891 | " WHERE target GLOB '%.4s*'" |
| 871 | 892 | " AND '%s' GLOB (target||'*')" |
| 872 | 893 | " UNION SELECT attachid FROM attachment" |
| 873 | 894 | " WHERE target=%Q) " |
| 874 | 895 | "ORDER BY mtime DESC", |
| @@ -875,21 +896,26 @@ | ||
| 875 | 896 | timeline_query_for_www(), tagid, zFullUuid, zFullUuid, zFullUuid |
| 876 | 897 | ); |
| 877 | 898 | } |
| 878 | 899 | db_prepare(&q, "%z", zSQL/*safe-for-%s*/); |
| 879 | 900 | www_print_timeline(&q, |
| 880 | - TIMELINE_ARTID | TIMELINE_DISJOINT | TIMELINE_GRAPH | TIMELINE_NOTKT, | |
| 901 | + TIMELINE_ARTID | TIMELINE_DISJOINT | TIMELINE_GRAPH | TIMELINE_NOTKT | | |
| 902 | + TIMELINE_REFS, | |
| 881 | 903 | 0, 0, 0, 0, 0, 0); |
| 882 | 904 | db_finalize(&q); |
| 883 | 905 | fossil_free(zFullUuid); |
| 884 | 906 | } |
| 885 | 907 | |
| 886 | 908 | /* |
| 887 | 909 | ** WEBPAGE: tkttimeline |
| 888 | -** URL: /tkttimeline?name=TICKETUUID&y=TYPE | |
| 910 | +** URL: /tkttimeline/TICKETUUID | |
| 889 | 911 | ** |
| 890 | 912 | ** Show the change history for a single ticket in timeline format. |
| 913 | +** | |
| 914 | +** Query parameters: | |
| 915 | +** | |
| 916 | +** y=ci Show only check-ins associated with the ticket | |
| 891 | 917 | */ |
| 892 | 918 | void tkttimeline_page(void){ |
| 893 | 919 | char *zTitle; |
| 894 | 920 | const char *zUuid; |
| 895 | 921 | int tagid; |
| 896 | 922 |
| --- src/tkt.c | |
| +++ src/tkt.c | |
| @@ -194,10 +194,11 @@ | |
| 194 | static int ticket_insert(const Manifest *p, int rid, int tktid){ |
| 195 | Blob sql1, sql2, sql3; |
| 196 | Stmt q; |
| 197 | int i, j; |
| 198 | char *aUsed; |
| 199 | |
| 200 | if( tktid==0 ){ |
| 201 | db_multi_exec("INSERT INTO ticket(tkt_uuid, tkt_mtime) " |
| 202 | "VALUES(%Q, 0)", p->zTicketUuid); |
| 203 | tktid = db_last_insert_rowid(); |
| @@ -233,12 +234,22 @@ | |
| 233 | zUsedByName++; |
| 234 | } |
| 235 | blob_append_sql(&sql2, ",\"%w\"", zUsedByName); |
| 236 | blob_append_sql(&sql3, ",%Q", p->aField[i].zValue); |
| 237 | } |
| 238 | if( rid>0 ){ |
| 239 | wiki_extract_links(p->aField[i].zValue, rid, 1, p->rDate, i==0, 0); |
| 240 | } |
| 241 | } |
| 242 | blob_append_sql(&sql1, " WHERE tkt_id=%d", tktid); |
| 243 | db_prepare(&q, "%s", blob_sql_text(&sql1)); |
| 244 | db_bind_double(&q, ":mtime", p->rDate); |
| @@ -845,10 +856,14 @@ | |
| 845 | } |
| 846 | |
| 847 | /* |
| 848 | ** Draw a timeline for a ticket with tag.tagid given by the tagid |
| 849 | ** parameter. |
| 850 | */ |
| 851 | void tkt_draw_timeline(int tagid, const char *zType){ |
| 852 | Stmt q; |
| 853 | char *zFullUuid; |
| 854 | char *zSQL; |
| @@ -855,20 +870,26 @@ | |
| 855 | zFullUuid = db_text(0, "SELECT substr(tagname, 5) FROM tag WHERE tagid=%d", |
| 856 | tagid); |
| 857 | if( zType[0]=='c' ){ |
| 858 | zSQL = mprintf( |
| 859 | "%s AND event.objid IN " |
| 860 | " (SELECT srcid FROM backlink WHERE target GLOB '%.4s*' " |
| 861 | "AND '%s' GLOB (target||'*')) " |
| 862 | "ORDER BY mtime DESC", |
| 863 | timeline_query_for_www(), zFullUuid, zFullUuid |
| 864 | ); |
| 865 | }else{ |
| 866 | zSQL = mprintf( |
| 867 | "%s AND event.objid IN " |
| 868 | " (SELECT rid FROM tagxref WHERE tagid=%d" |
| 869 | " UNION SELECT srcid FROM backlink" |
| 870 | " WHERE target GLOB '%.4s*'" |
| 871 | " AND '%s' GLOB (target||'*')" |
| 872 | " UNION SELECT attachid FROM attachment" |
| 873 | " WHERE target=%Q) " |
| 874 | "ORDER BY mtime DESC", |
| @@ -875,21 +896,26 @@ | |
| 875 | timeline_query_for_www(), tagid, zFullUuid, zFullUuid, zFullUuid |
| 876 | ); |
| 877 | } |
| 878 | db_prepare(&q, "%z", zSQL/*safe-for-%s*/); |
| 879 | www_print_timeline(&q, |
| 880 | TIMELINE_ARTID | TIMELINE_DISJOINT | TIMELINE_GRAPH | TIMELINE_NOTKT, |
| 881 | 0, 0, 0, 0, 0, 0); |
| 882 | db_finalize(&q); |
| 883 | fossil_free(zFullUuid); |
| 884 | } |
| 885 | |
| 886 | /* |
| 887 | ** WEBPAGE: tkttimeline |
| 888 | ** URL: /tkttimeline?name=TICKETUUID&y=TYPE |
| 889 | ** |
| 890 | ** Show the change history for a single ticket in timeline format. |
| 891 | */ |
| 892 | void tkttimeline_page(void){ |
| 893 | char *zTitle; |
| 894 | const char *zUuid; |
| 895 | int tagid; |
| 896 |
| --- src/tkt.c | |
| +++ src/tkt.c | |
| @@ -194,10 +194,11 @@ | |
| 194 | static int ticket_insert(const Manifest *p, int rid, int tktid){ |
| 195 | Blob sql1, sql2, sql3; |
| 196 | Stmt q; |
| 197 | int i, j; |
| 198 | char *aUsed; |
| 199 | const char *zMimetype = 0; |
| 200 | |
| 201 | if( tktid==0 ){ |
| 202 | db_multi_exec("INSERT INTO ticket(tkt_uuid, tkt_mtime) " |
| 203 | "VALUES(%Q, 0)", p->zTicketUuid); |
| 204 | tktid = db_last_insert_rowid(); |
| @@ -233,12 +234,22 @@ | |
| 234 | zUsedByName++; |
| 235 | } |
| 236 | blob_append_sql(&sql2, ",\"%w\"", zUsedByName); |
| 237 | blob_append_sql(&sql3, ",%Q", p->aField[i].zValue); |
| 238 | } |
| 239 | if( strcmp(zBaseName,"mimetype")==0 ){ |
| 240 | zMimetype = p->aField[i].zValue; |
| 241 | } |
| 242 | } |
| 243 | if( rid>0 ){ |
| 244 | for(i=0; i<p->nField; i++){ |
| 245 | const char *zName = p->aField[i].zName; |
| 246 | const char *zBaseName = zName[0]=='+' ? zName+1 : zName; |
| 247 | j = fieldId(zBaseName); |
| 248 | if( j<0 ) continue; |
| 249 | backlink_extract(p->aField[i].zValue, zMimetype, rid, BKLNK_TICKET, |
| 250 | p->rDate, i==0); |
| 251 | } |
| 252 | } |
| 253 | blob_append_sql(&sql1, " WHERE tkt_id=%d", tktid); |
| 254 | db_prepare(&q, "%s", blob_sql_text(&sql1)); |
| 255 | db_bind_double(&q, ":mtime", p->rDate); |
| @@ -845,10 +856,14 @@ | |
| 856 | } |
| 857 | |
| 858 | /* |
| 859 | ** Draw a timeline for a ticket with tag.tagid given by the tagid |
| 860 | ** parameter. |
| 861 | ** |
| 862 | ** If zType[0]=='c' then only show check-ins associated with the |
| 863 | ** ticket. For any other value of zType, show all events associated |
| 864 | ** with the ticket. |
| 865 | */ |
| 866 | void tkt_draw_timeline(int tagid, const char *zType){ |
| 867 | Stmt q; |
| 868 | char *zFullUuid; |
| 869 | char *zSQL; |
| @@ -855,20 +870,26 @@ | |
| 870 | zFullUuid = db_text(0, "SELECT substr(tagname, 5) FROM tag WHERE tagid=%d", |
| 871 | tagid); |
| 872 | if( zType[0]=='c' ){ |
| 873 | zSQL = mprintf( |
| 874 | "%s AND event.objid IN " |
| 875 | " (SELECT srcid FROM backlink WHERE target GLOB '%.4s*' " |
| 876 | "AND srctype=0 " |
| 877 | "AND '%s' GLOB (target||'*')) " |
| 878 | "ORDER BY mtime DESC", |
| 879 | timeline_query_for_www(), zFullUuid, zFullUuid |
| 880 | ); |
| 881 | }else{ |
| 882 | zSQL = mprintf( |
| 883 | "%s AND event.objid IN " |
| 884 | " (SELECT rid FROM tagxref WHERE tagid=%d" |
| 885 | " UNION" |
| 886 | " SELECT CASE srctype WHEN 2 THEN" |
| 887 | " (SELECT rid FROM tagxref WHERE tagid=backlink.srcid" |
| 888 | " ORDER BY mtime DESC LIMIT 1)" |
| 889 | " ELSE srcid END" |
| 890 | " FROM backlink" |
| 891 | " WHERE target GLOB '%.4s*'" |
| 892 | " AND '%s' GLOB (target||'*')" |
| 893 | " UNION SELECT attachid FROM attachment" |
| 894 | " WHERE target=%Q) " |
| 895 | "ORDER BY mtime DESC", |
| @@ -875,21 +896,26 @@ | |
| 896 | timeline_query_for_www(), tagid, zFullUuid, zFullUuid, zFullUuid |
| 897 | ); |
| 898 | } |
| 899 | db_prepare(&q, "%z", zSQL/*safe-for-%s*/); |
| 900 | www_print_timeline(&q, |
| 901 | TIMELINE_ARTID | TIMELINE_DISJOINT | TIMELINE_GRAPH | TIMELINE_NOTKT | |
| 902 | TIMELINE_REFS, |
| 903 | 0, 0, 0, 0, 0, 0); |
| 904 | db_finalize(&q); |
| 905 | fossil_free(zFullUuid); |
| 906 | } |
| 907 | |
| 908 | /* |
| 909 | ** WEBPAGE: tkttimeline |
| 910 | ** URL: /tkttimeline/TICKETUUID |
| 911 | ** |
| 912 | ** Show the change history for a single ticket in timeline format. |
| 913 | ** |
| 914 | ** Query parameters: |
| 915 | ** |
| 916 | ** y=ci Show only check-ins associated with the ticket |
| 917 | */ |
| 918 | void tkttimeline_page(void){ |
| 919 | char *zTitle; |
| 920 | const char *zUuid; |
| 921 | int tagid; |
| 922 |
+8
-6
| --- src/wiki.c | ||
| +++ src/wiki.c | ||
| @@ -365,20 +365,22 @@ | ||
| 365 | 365 | search_screen(SRCH_WIKI, 0); |
| 366 | 366 | style_footer(); |
| 367 | 367 | } |
| 368 | 368 | |
| 369 | 369 | /* Return values from wiki_page_type() */ |
| 370 | -#define WIKITYPE_UNKNOWN (-1) | |
| 371 | -#define WIKITYPE_NORMAL 0 | |
| 372 | -#define WIKITYPE_BRANCH 1 | |
| 373 | -#define WIKITYPE_CHECKIN 2 | |
| 374 | -#define WIKITYPE_TAG 3 | |
| 370 | +#if INTERFACE | |
| 371 | +# define WIKITYPE_UNKNOWN (-1) | |
| 372 | +# define WIKITYPE_NORMAL 0 | |
| 373 | +# define WIKITYPE_BRANCH 1 | |
| 374 | +# define WIKITYPE_CHECKIN 2 | |
| 375 | +# define WIKITYPE_TAG 3 | |
| 376 | +#endif | |
| 375 | 377 | |
| 376 | 378 | /* |
| 377 | 379 | ** Figure out what type of wiki page we are dealing with. |
| 378 | 380 | */ |
| 379 | -static int wiki_page_type(const char *zPageName){ | |
| 381 | +int wiki_page_type(const char *zPageName){ | |
| 380 | 382 | if( db_get_boolean("wiki-about",1)==0 ){ |
| 381 | 383 | return WIKITYPE_NORMAL; |
| 382 | 384 | }else |
| 383 | 385 | if( sqlite3_strglob("checkin/*", zPageName)==0 |
| 384 | 386 | && db_exists("SELECT 1 FROM blob WHERE uuid=%Q",zPageName+8) |
| 385 | 387 |
| --- src/wiki.c | |
| +++ src/wiki.c | |
| @@ -365,20 +365,22 @@ | |
| 365 | search_screen(SRCH_WIKI, 0); |
| 366 | style_footer(); |
| 367 | } |
| 368 | |
| 369 | /* Return values from wiki_page_type() */ |
| 370 | #define WIKITYPE_UNKNOWN (-1) |
| 371 | #define WIKITYPE_NORMAL 0 |
| 372 | #define WIKITYPE_BRANCH 1 |
| 373 | #define WIKITYPE_CHECKIN 2 |
| 374 | #define WIKITYPE_TAG 3 |
| 375 | |
| 376 | /* |
| 377 | ** Figure out what type of wiki page we are dealing with. |
| 378 | */ |
| 379 | static int wiki_page_type(const char *zPageName){ |
| 380 | if( db_get_boolean("wiki-about",1)==0 ){ |
| 381 | return WIKITYPE_NORMAL; |
| 382 | }else |
| 383 | if( sqlite3_strglob("checkin/*", zPageName)==0 |
| 384 | && db_exists("SELECT 1 FROM blob WHERE uuid=%Q",zPageName+8) |
| 385 |
| --- src/wiki.c | |
| +++ src/wiki.c | |
| @@ -365,20 +365,22 @@ | |
| 365 | search_screen(SRCH_WIKI, 0); |
| 366 | style_footer(); |
| 367 | } |
| 368 | |
| 369 | /* Return values from wiki_page_type() */ |
| 370 | #if INTERFACE |
| 371 | # define WIKITYPE_UNKNOWN (-1) |
| 372 | # define WIKITYPE_NORMAL 0 |
| 373 | # define WIKITYPE_BRANCH 1 |
| 374 | # define WIKITYPE_CHECKIN 2 |
| 375 | # define WIKITYPE_TAG 3 |
| 376 | #endif |
| 377 | |
| 378 | /* |
| 379 | ** Figure out what type of wiki page we are dealing with. |
| 380 | */ |
| 381 | int wiki_page_type(const char *zPageName){ |
| 382 | if( db_get_boolean("wiki-about",1)==0 ){ |
| 383 | return WIKITYPE_NORMAL; |
| 384 | }else |
| 385 | if( sqlite3_strglob("checkin/*", zPageName)==0 |
| 386 | && db_exists("SELECT 1 FROM blob WHERE uuid=%Q",zPageName+8) |
| 387 |
+3
-21
| --- src/wikiformat.c | ||
| +++ src/wikiformat.c | ||
| @@ -1869,14 +1869,11 @@ | ||
| 1869 | 1869 | ** name. For each such hyperlink found, add an entry to the |
| 1870 | 1870 | ** backlink table. |
| 1871 | 1871 | */ |
| 1872 | 1872 | void wiki_extract_links( |
| 1873 | 1873 | char *z, /* The wiki text from which to extract links */ |
| 1874 | - int srcid, /* srcid field for new BACKLINK table entries */ | |
| 1875 | - int srctype, /* srctype field for new BACKLINK table entries */ | |
| 1876 | - double mtime, /* mtime field for new BACKLINK table entries */ | |
| 1877 | - int replaceFlag, /* True first delete prior BACKLINK entries */ | |
| 1874 | + Backlink *pBklnk, /* Backlink extraction context */ | |
| 1878 | 1875 | int flags /* wiki parsing flags */ |
| 1879 | 1876 | ){ |
| 1880 | 1877 | Renderer renderer; |
| 1881 | 1878 | int tokenType; |
| 1882 | 1879 | ParsedMarkup markup; |
| @@ -1892,14 +1889,10 @@ | ||
| 1892 | 1889 | if( wikiUsesHtml() ){ |
| 1893 | 1890 | renderer.state |= WIKI_HTMLONLY; |
| 1894 | 1891 | wikiHtmlOnly = 1; |
| 1895 | 1892 | } |
| 1896 | 1893 | inlineOnly = (renderer.state & INLINE_MARKUP_ONLY)!=0; |
| 1897 | - if( replaceFlag ){ | |
| 1898 | - db_multi_exec("DELETE FROM backlink WHERE srctype=%d AND srcid=%d", | |
| 1899 | - srctype, srcid); | |
| 1900 | - } | |
| 1901 | 1894 | |
| 1902 | 1895 | while( z[0] ){ |
| 1903 | 1896 | if( wikiHtmlOnly ){ |
| 1904 | 1897 | n = nextRawToken(z, &renderer, &tokenType); |
| 1905 | 1898 | }else{ |
| @@ -1906,27 +1899,16 @@ | ||
| 1906 | 1899 | n = nextWikiToken(z, &renderer, &tokenType); |
| 1907 | 1900 | } |
| 1908 | 1901 | switch( tokenType ){ |
| 1909 | 1902 | case TOKEN_LINK: { |
| 1910 | 1903 | char *zTarget; |
| 1911 | - int i, c; | |
| 1912 | - char zLink[HNAME_MAX+4]; | |
| 1904 | + int i; | |
| 1913 | 1905 | |
| 1914 | 1906 | zTarget = &z[1]; |
| 1915 | 1907 | for(i=0; zTarget[i] && zTarget[i]!='|' && zTarget[i]!=']'; i++){} |
| 1916 | 1908 | while(i>1 && zTarget[i-1]==' '){ i--; } |
| 1917 | - c = zTarget[i]; | |
| 1918 | - zTarget[i] = 0; | |
| 1919 | - if( is_valid_hname(zTarget) ){ | |
| 1920 | - memcpy(zLink, zTarget, i+1); | |
| 1921 | - canonical16(zLink, i); | |
| 1922 | - db_multi_exec( | |
| 1923 | - "REPLACE INTO backlink(target,srctype,srcid,mtime)" | |
| 1924 | - "VALUES(%Q,%d,%d,%g)", zLink, srctype, srcid, mtime | |
| 1925 | - ); | |
| 1926 | - } | |
| 1927 | - zTarget[i] = c; | |
| 1909 | + backlink_create(pBklnk, zTarget, i); | |
| 1928 | 1910 | break; |
| 1929 | 1911 | } |
| 1930 | 1912 | case TOKEN_MARKUP: { |
| 1931 | 1913 | const char *zId; |
| 1932 | 1914 | int iDiv; |
| 1933 | 1915 |
| --- src/wikiformat.c | |
| +++ src/wikiformat.c | |
| @@ -1869,14 +1869,11 @@ | |
| 1869 | ** name. For each such hyperlink found, add an entry to the |
| 1870 | ** backlink table. |
| 1871 | */ |
| 1872 | void wiki_extract_links( |
| 1873 | char *z, /* The wiki text from which to extract links */ |
| 1874 | int srcid, /* srcid field for new BACKLINK table entries */ |
| 1875 | int srctype, /* srctype field for new BACKLINK table entries */ |
| 1876 | double mtime, /* mtime field for new BACKLINK table entries */ |
| 1877 | int replaceFlag, /* True first delete prior BACKLINK entries */ |
| 1878 | int flags /* wiki parsing flags */ |
| 1879 | ){ |
| 1880 | Renderer renderer; |
| 1881 | int tokenType; |
| 1882 | ParsedMarkup markup; |
| @@ -1892,14 +1889,10 @@ | |
| 1892 | if( wikiUsesHtml() ){ |
| 1893 | renderer.state |= WIKI_HTMLONLY; |
| 1894 | wikiHtmlOnly = 1; |
| 1895 | } |
| 1896 | inlineOnly = (renderer.state & INLINE_MARKUP_ONLY)!=0; |
| 1897 | if( replaceFlag ){ |
| 1898 | db_multi_exec("DELETE FROM backlink WHERE srctype=%d AND srcid=%d", |
| 1899 | srctype, srcid); |
| 1900 | } |
| 1901 | |
| 1902 | while( z[0] ){ |
| 1903 | if( wikiHtmlOnly ){ |
| 1904 | n = nextRawToken(z, &renderer, &tokenType); |
| 1905 | }else{ |
| @@ -1906,27 +1899,16 @@ | |
| 1906 | n = nextWikiToken(z, &renderer, &tokenType); |
| 1907 | } |
| 1908 | switch( tokenType ){ |
| 1909 | case TOKEN_LINK: { |
| 1910 | char *zTarget; |
| 1911 | int i, c; |
| 1912 | char zLink[HNAME_MAX+4]; |
| 1913 | |
| 1914 | zTarget = &z[1]; |
| 1915 | for(i=0; zTarget[i] && zTarget[i]!='|' && zTarget[i]!=']'; i++){} |
| 1916 | while(i>1 && zTarget[i-1]==' '){ i--; } |
| 1917 | c = zTarget[i]; |
| 1918 | zTarget[i] = 0; |
| 1919 | if( is_valid_hname(zTarget) ){ |
| 1920 | memcpy(zLink, zTarget, i+1); |
| 1921 | canonical16(zLink, i); |
| 1922 | db_multi_exec( |
| 1923 | "REPLACE INTO backlink(target,srctype,srcid,mtime)" |
| 1924 | "VALUES(%Q,%d,%d,%g)", zLink, srctype, srcid, mtime |
| 1925 | ); |
| 1926 | } |
| 1927 | zTarget[i] = c; |
| 1928 | break; |
| 1929 | } |
| 1930 | case TOKEN_MARKUP: { |
| 1931 | const char *zId; |
| 1932 | int iDiv; |
| 1933 |
| --- src/wikiformat.c | |
| +++ src/wikiformat.c | |
| @@ -1869,14 +1869,11 @@ | |
| 1869 | ** name. For each such hyperlink found, add an entry to the |
| 1870 | ** backlink table. |
| 1871 | */ |
| 1872 | void wiki_extract_links( |
| 1873 | char *z, /* The wiki text from which to extract links */ |
| 1874 | Backlink *pBklnk, /* Backlink extraction context */ |
| 1875 | int flags /* wiki parsing flags */ |
| 1876 | ){ |
| 1877 | Renderer renderer; |
| 1878 | int tokenType; |
| 1879 | ParsedMarkup markup; |
| @@ -1892,14 +1889,10 @@ | |
| 1889 | if( wikiUsesHtml() ){ |
| 1890 | renderer.state |= WIKI_HTMLONLY; |
| 1891 | wikiHtmlOnly = 1; |
| 1892 | } |
| 1893 | inlineOnly = (renderer.state & INLINE_MARKUP_ONLY)!=0; |
| 1894 | |
| 1895 | while( z[0] ){ |
| 1896 | if( wikiHtmlOnly ){ |
| 1897 | n = nextRawToken(z, &renderer, &tokenType); |
| 1898 | }else{ |
| @@ -1906,27 +1899,16 @@ | |
| 1899 | n = nextWikiToken(z, &renderer, &tokenType); |
| 1900 | } |
| 1901 | switch( tokenType ){ |
| 1902 | case TOKEN_LINK: { |
| 1903 | char *zTarget; |
| 1904 | int i; |
| 1905 | |
| 1906 | zTarget = &z[1]; |
| 1907 | for(i=0; zTarget[i] && zTarget[i]!='|' && zTarget[i]!=']'; i++){} |
| 1908 | while(i>1 && zTarget[i-1]==' '){ i--; } |
| 1909 | backlink_create(pBklnk, zTarget, i); |
| 1910 | break; |
| 1911 | } |
| 1912 | case TOKEN_MARKUP: { |
| 1913 | const char *zId; |
| 1914 | int iDiv; |
| 1915 |
+10
-4
| --- win/Makefile.dmc | ||
| +++ win/Makefile.dmc | ||
| @@ -28,13 +28,13 @@ | ||
| 28 | 28 | |
| 29 | 29 | SQLITE_OPTIONS = -DNDEBUG=1 -DSQLITE_DQS=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_GET_TABLE -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_TRUSTED_SCHEMA=0 |
| 30 | 30 | |
| 31 | 31 | SHELL_OPTIONS = -DNDEBUG=1 -DSQLITE_DQS=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_GET_TABLE -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_TRUSTED_SCHEMA=0 -Dmain=sqlite3_shell -DSQLITE_SHELL_IS_UTF8=1 -DSQLITE_OMIT_LOAD_EXTENSION=1 -DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) -DSQLITE_SHELL_DBNAME_PROC=sqlcmd_get_dbname -DSQLITE_SHELL_INIT_PROC=sqlcmd_init_proc -Daccess=file_access -Dsystem=fossil_system -Dgetenv=fossil_getenv -Dfopen=fossil_fopen |
| 32 | 32 | |
| 33 | -SRC = add_.c alerts_.c allrepo_.c attach_.c backoffice_.c bag_.c bisect_.c blob_.c branch_.c browse_.c builtin_.c bundle_.c cache_.c capabilities_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c cookies_.c db_.c delta_.c deltacmd_.c deltafunc_.c descendants_.c diff_.c diffcmd_.c dispatch_.c doc_.c encode_.c etag_.c event_.c export_.c extcgi_.c file_.c finfo_.c foci_.c forum_.c fshell_.c fusefs_.c fuzz_.c glob_.c graph_.c gzip_.c hname_.c http_.c http_socket_.c http_ssl_.c http_transport_.c import_.c info_.c json_.c json_artifact_.c json_branch_.c json_config_.c json_diff_.c json_dir_.c json_finfo_.c json_login_.c json_query_.c json_report_.c json_status_.c json_tag_.c json_timeline_.c json_user_.c json_wiki_.c leaf_.c loadctrl_.c login_.c lookslike_.c main_.c manifest_.c markdown_.c markdown_html_.c md5_.c merge_.c merge3_.c moderate_.c name_.c path_.c piechart_.c pivot_.c popen_.c pqueue_.c printf_.c publish_.c purge_.c rebuild_.c regexp_.c repolist_.c report_.c rss_.c schema_.c search_.c security_audit_.c setup_.c setupuser_.c sha1_.c sha1hard_.c sha3_.c shun_.c sitemap_.c skins_.c smtp_.c sqlcmd_.c stash_.c stat_.c statrep_.c style_.c sync_.c tag_.c tar_.c th_main_.c timeline_.c tkt_.c tktsetup_.c undo_.c unicode_.c unversioned_.c update_.c url_.c user_.c utf8_.c util_.c verify_.c vfile_.c webmail_.c wiki_.c wikiformat_.c winfile_.c winhttp_.c wysiwyg_.c xfer_.c xfersetup_.c zip_.c | |
| 33 | +SRC = add_.c alerts_.c allrepo_.c attach_.c backlink_.c backoffice_.c bag_.c bisect_.c blob_.c branch_.c browse_.c builtin_.c bundle_.c cache_.c capabilities_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c cookies_.c db_.c delta_.c deltacmd_.c deltafunc_.c descendants_.c diff_.c diffcmd_.c dispatch_.c doc_.c encode_.c etag_.c event_.c export_.c extcgi_.c file_.c finfo_.c foci_.c forum_.c fshell_.c fusefs_.c fuzz_.c glob_.c graph_.c gzip_.c hname_.c http_.c http_socket_.c http_ssl_.c http_transport_.c import_.c info_.c json_.c json_artifact_.c json_branch_.c json_config_.c json_diff_.c json_dir_.c json_finfo_.c json_login_.c json_query_.c json_report_.c json_status_.c json_tag_.c json_timeline_.c json_user_.c json_wiki_.c leaf_.c loadctrl_.c login_.c lookslike_.c main_.c manifest_.c markdown_.c markdown_html_.c md5_.c merge_.c merge3_.c moderate_.c name_.c path_.c piechart_.c pivot_.c popen_.c pqueue_.c printf_.c publish_.c purge_.c rebuild_.c regexp_.c repolist_.c report_.c rss_.c schema_.c search_.c security_audit_.c setup_.c setupuser_.c sha1_.c sha1hard_.c sha3_.c shun_.c sitemap_.c skins_.c smtp_.c sqlcmd_.c stash_.c stat_.c statrep_.c style_.c sync_.c tag_.c tar_.c th_main_.c timeline_.c tkt_.c tktsetup_.c undo_.c unicode_.c unversioned_.c update_.c url_.c user_.c utf8_.c util_.c verify_.c vfile_.c webmail_.c wiki_.c wikiformat_.c winfile_.c winhttp_.c wysiwyg_.c xfer_.c xfersetup_.c zip_.c | |
| 34 | 34 | |
| 35 | -OBJ = $(OBJDIR)\add$O $(OBJDIR)\alerts$O $(OBJDIR)\allrepo$O $(OBJDIR)\attach$O $(OBJDIR)\backoffice$O $(OBJDIR)\bag$O $(OBJDIR)\bisect$O $(OBJDIR)\blob$O $(OBJDIR)\branch$O $(OBJDIR)\browse$O $(OBJDIR)\builtin$O $(OBJDIR)\bundle$O $(OBJDIR)\cache$O $(OBJDIR)\capabilities$O $(OBJDIR)\captcha$O $(OBJDIR)\cgi$O $(OBJDIR)\checkin$O $(OBJDIR)\checkout$O $(OBJDIR)\clearsign$O $(OBJDIR)\clone$O $(OBJDIR)\comformat$O $(OBJDIR)\configure$O $(OBJDIR)\content$O $(OBJDIR)\cookies$O $(OBJDIR)\db$O $(OBJDIR)\delta$O $(OBJDIR)\deltacmd$O $(OBJDIR)\deltafunc$O $(OBJDIR)\descendants$O $(OBJDIR)\diff$O $(OBJDIR)\diffcmd$O $(OBJDIR)\dispatch$O $(OBJDIR)\doc$O $(OBJDIR)\encode$O $(OBJDIR)\etag$O $(OBJDIR)\event$O $(OBJDIR)\export$O $(OBJDIR)\extcgi$O $(OBJDIR)\file$O $(OBJDIR)\finfo$O $(OBJDIR)\foci$O $(OBJDIR)\forum$O $(OBJDIR)\fshell$O $(OBJDIR)\fusefs$O $(OBJDIR)\fuzz$O $(OBJDIR)\glob$O $(OBJDIR)\graph$O $(OBJDIR)\gzip$O $(OBJDIR)\hname$O $(OBJDIR)\http$O $(OBJDIR)\http_socket$O $(OBJDIR)\http_ssl$O $(OBJDIR)\http_transport$O $(OBJDIR)\import$O $(OBJDIR)\info$O $(OBJDIR)\json$O $(OBJDIR)\json_artifact$O $(OBJDIR)\json_branch$O $(OBJDIR)\json_config$O $(OBJDIR)\json_diff$O $(OBJDIR)\json_dir$O $(OBJDIR)\json_finfo$O $(OBJDIR)\json_login$O $(OBJDIR)\json_query$O $(OBJDIR)\json_report$O $(OBJDIR)\json_status$O $(OBJDIR)\json_tag$O $(OBJDIR)\json_timeline$O $(OBJDIR)\json_user$O $(OBJDIR)\json_wiki$O $(OBJDIR)\leaf$O $(OBJDIR)\loadctrl$O $(OBJDIR)\login$O $(OBJDIR)\lookslike$O $(OBJDIR)\main$O $(OBJDIR)\manifest$O $(OBJDIR)\markdown$O $(OBJDIR)\markdown_html$O $(OBJDIR)\md5$O $(OBJDIR)\merge$O $(OBJDIR)\merge3$O $(OBJDIR)\moderate$O $(OBJDIR)\name$O $(OBJDIR)\path$O $(OBJDIR)\piechart$O $(OBJDIR)\pivot$O $(OBJDIR)\popen$O $(OBJDIR)\pqueue$O $(OBJDIR)\printf$O $(OBJDIR)\publish$O $(OBJDIR)\purge$O $(OBJDIR)\rebuild$O $(OBJDIR)\regexp$O $(OBJDIR)\repolist$O $(OBJDIR)\report$O $(OBJDIR)\rss$O $(OBJDIR)\schema$O $(OBJDIR)\search$O $(OBJDIR)\security_audit$O $(OBJDIR)\setup$O $(OBJDIR)\setupuser$O $(OBJDIR)\sha1$O $(OBJDIR)\sha1hard$O $(OBJDIR)\sha3$O $(OBJDIR)\shun$O $(OBJDIR)\sitemap$O $(OBJDIR)\skins$O $(OBJDIR)\smtp$O $(OBJDIR)\sqlcmd$O $(OBJDIR)\stash$O $(OBJDIR)\stat$O $(OBJDIR)\statrep$O $(OBJDIR)\style$O $(OBJDIR)\sync$O $(OBJDIR)\tag$O $(OBJDIR)\tar$O $(OBJDIR)\th_main$O $(OBJDIR)\timeline$O $(OBJDIR)\tkt$O $(OBJDIR)\tktsetup$O $(OBJDIR)\undo$O $(OBJDIR)\unicode$O $(OBJDIR)\unversioned$O $(OBJDIR)\update$O $(OBJDIR)\url$O $(OBJDIR)\user$O $(OBJDIR)\utf8$O $(OBJDIR)\util$O $(OBJDIR)\verify$O $(OBJDIR)\vfile$O $(OBJDIR)\webmail$O $(OBJDIR)\wiki$O $(OBJDIR)\wikiformat$O $(OBJDIR)\winfile$O $(OBJDIR)\winhttp$O $(OBJDIR)\wysiwyg$O $(OBJDIR)\xfer$O $(OBJDIR)\xfersetup$O $(OBJDIR)\zip$O $(OBJDIR)\shell$O $(OBJDIR)\sqlite3$O $(OBJDIR)\th$O $(OBJDIR)\th_lang$O | |
| 35 | +OBJ = $(OBJDIR)\add$O $(OBJDIR)\alerts$O $(OBJDIR)\allrepo$O $(OBJDIR)\attach$O $(OBJDIR)\backlink$O $(OBJDIR)\backoffice$O $(OBJDIR)\bag$O $(OBJDIR)\bisect$O $(OBJDIR)\blob$O $(OBJDIR)\branch$O $(OBJDIR)\browse$O $(OBJDIR)\builtin$O $(OBJDIR)\bundle$O $(OBJDIR)\cache$O $(OBJDIR)\capabilities$O $(OBJDIR)\captcha$O $(OBJDIR)\cgi$O $(OBJDIR)\checkin$O $(OBJDIR)\checkout$O $(OBJDIR)\clearsign$O $(OBJDIR)\clone$O $(OBJDIR)\comformat$O $(OBJDIR)\configure$O $(OBJDIR)\content$O $(OBJDIR)\cookies$O $(OBJDIR)\db$O $(OBJDIR)\delta$O $(OBJDIR)\deltacmd$O $(OBJDIR)\deltafunc$O $(OBJDIR)\descendants$O $(OBJDIR)\diff$O $(OBJDIR)\diffcmd$O $(OBJDIR)\dispatch$O $(OBJDIR)\doc$O $(OBJDIR)\encode$O $(OBJDIR)\etag$O $(OBJDIR)\event$O $(OBJDIR)\export$O $(OBJDIR)\extcgi$O $(OBJDIR)\file$O $(OBJDIR)\finfo$O $(OBJDIR)\foci$O $(OBJDIR)\forum$O $(OBJDIR)\fshell$O $(OBJDIR)\fusefs$O $(OBJDIR)\fuzz$O $(OBJDIR)\glob$O $(OBJDIR)\graph$O $(OBJDIR)\gzip$O $(OBJDIR)\hname$O $(OBJDIR)\http$O $(OBJDIR)\http_socket$O $(OBJDIR)\http_ssl$O $(OBJDIR)\http_transport$O $(OBJDIR)\import$O $(OBJDIR)\info$O $(OBJDIR)\json$O $(OBJDIR)\json_artifact$O $(OBJDIR)\json_branch$O $(OBJDIR)\json_config$O $(OBJDIR)\json_diff$O $(OBJDIR)\json_dir$O $(OBJDIR)\json_finfo$O $(OBJDIR)\json_login$O $(OBJDIR)\json_query$O $(OBJDIR)\json_report$O $(OBJDIR)\json_status$O $(OBJDIR)\json_tag$O $(OBJDIR)\json_timeline$O $(OBJDIR)\json_user$O $(OBJDIR)\json_wiki$O $(OBJDIR)\leaf$O $(OBJDIR)\loadctrl$O $(OBJDIR)\login$O $(OBJDIR)\lookslike$O $(OBJDIR)\main$O $(OBJDIR)\manifest$O $(OBJDIR)\markdown$O $(OBJDIR)\markdown_html$O $(OBJDIR)\md5$O $(OBJDIR)\merge$O $(OBJDIR)\merge3$O $(OBJDIR)\moderate$O $(OBJDIR)\name$O $(OBJDIR)\path$O $(OBJDIR)\piechart$O $(OBJDIR)\pivot$O $(OBJDIR)\popen$O $(OBJDIR)\pqueue$O $(OBJDIR)\printf$O $(OBJDIR)\publish$O $(OBJDIR)\purge$O $(OBJDIR)\rebuild$O $(OBJDIR)\regexp$O $(OBJDIR)\repolist$O $(OBJDIR)\report$O $(OBJDIR)\rss$O $(OBJDIR)\schema$O $(OBJDIR)\search$O $(OBJDIR)\security_audit$O $(OBJDIR)\setup$O $(OBJDIR)\setupuser$O $(OBJDIR)\sha1$O $(OBJDIR)\sha1hard$O $(OBJDIR)\sha3$O $(OBJDIR)\shun$O $(OBJDIR)\sitemap$O $(OBJDIR)\skins$O $(OBJDIR)\smtp$O $(OBJDIR)\sqlcmd$O $(OBJDIR)\stash$O $(OBJDIR)\stat$O $(OBJDIR)\statrep$O $(OBJDIR)\style$O $(OBJDIR)\sync$O $(OBJDIR)\tag$O $(OBJDIR)\tar$O $(OBJDIR)\th_main$O $(OBJDIR)\timeline$O $(OBJDIR)\tkt$O $(OBJDIR)\tktsetup$O $(OBJDIR)\undo$O $(OBJDIR)\unicode$O $(OBJDIR)\unversioned$O $(OBJDIR)\update$O $(OBJDIR)\url$O $(OBJDIR)\user$O $(OBJDIR)\utf8$O $(OBJDIR)\util$O $(OBJDIR)\verify$O $(OBJDIR)\vfile$O $(OBJDIR)\webmail$O $(OBJDIR)\wiki$O $(OBJDIR)\wikiformat$O $(OBJDIR)\winfile$O $(OBJDIR)\winhttp$O $(OBJDIR)\wysiwyg$O $(OBJDIR)\xfer$O $(OBJDIR)\xfersetup$O $(OBJDIR)\zip$O $(OBJDIR)\shell$O $(OBJDIR)\sqlite3$O $(OBJDIR)\th$O $(OBJDIR)\th_lang$O | |
| 36 | 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 alerts allrepo attach backoffice bag bisect blob branch browse builtin bundle cache capabilities captcha cgi checkin checkout clearsign clone comformat configure content cookies db delta deltacmd deltafunc descendants diff diffcmd dispatch doc encode etag event export extcgi file finfo foci forum fshell fusefs fuzz glob graph gzip hname http http_socket http_ssl http_transport import info json json_artifact json_branch json_config json_diff json_dir json_finfo json_login json_query json_report json_status json_tag json_timeline json_user json_wiki leaf loadctrl login lookslike main manifest markdown markdown_html md5 merge merge3 moderate name path piechart pivot popen pqueue printf publish purge rebuild regexp repolist report rss schema search security_audit setup setupuser sha1 sha1hard sha3 shun sitemap skins smtp sqlcmd stash stat statrep style sync tag tar th_main timeline tkt tktsetup undo unicode unversioned update url user utf8 util verify vfile webmail wiki wikiformat winfile winhttp wysiwyg xfer xfersetup zip shell sqlite3 th th_lang > $@ | |
| 54 | + +echo add alerts allrepo attach backlink backoffice bag bisect blob branch browse builtin bundle cache capabilities captcha cgi checkin checkout clearsign clone comformat configure content cookies db delta deltacmd deltafunc descendants diff diffcmd dispatch doc encode etag event export extcgi file finfo foci forum fshell fusefs fuzz glob graph gzip hname http http_socket http_ssl http_transport import info json json_artifact json_branch json_config json_diff json_dir json_finfo json_login json_query json_report json_status json_tag json_timeline json_user json_wiki leaf loadctrl login lookslike main manifest markdown markdown_html md5 merge merge3 moderate name path piechart pivot popen pqueue printf publish purge rebuild regexp repolist report rss schema search security_audit setup setupuser sha1 sha1hard sha3 shun sitemap skins smtp sqlcmd stash stat statrep style sync tag tar th_main timeline tkt tktsetup undo unicode unversioned update url user utf8 util verify vfile webmail wiki wikiformat winfile winhttp wysiwyg xfer xfersetup zip shell sqlite3 th th_lang > $@ | |
| 55 | 55 | +echo fossil >> $@ |
| 56 | 56 | +echo fossil >> $@ |
| 57 | 57 | +echo $(LIBS) >> $@ |
| 58 | 58 | +echo. >> $@ |
| 59 | 59 | +echo fossil >> $@ |
| @@ -152,10 +152,16 @@ | ||
| 152 | 152 | $(OBJDIR)\attach$O : attach_.c attach.h |
| 153 | 153 | $(TCC) -o$@ -c attach_.c |
| 154 | 154 | |
| 155 | 155 | attach_.c : $(SRCDIR)\attach.c |
| 156 | 156 | +translate$E $** > $@ |
| 157 | + | |
| 158 | +$(OBJDIR)\backlink$O : backlink_.c backlink.h | |
| 159 | + $(TCC) -o$@ -c backlink_.c | |
| 160 | + | |
| 161 | +backlink_.c : $(SRCDIR)\backlink.c | |
| 162 | + +translate$E $** > $@ | |
| 157 | 163 | |
| 158 | 164 | $(OBJDIR)\backoffice$O : backoffice_.c backoffice.h |
| 159 | 165 | $(TCC) -o$@ -c backoffice_.c |
| 160 | 166 | |
| 161 | 167 | backoffice_.c : $(SRCDIR)\backoffice.c |
| @@ -964,7 +970,7 @@ | ||
| 964 | 970 | |
| 965 | 971 | zip_.c : $(SRCDIR)\zip.c |
| 966 | 972 | +translate$E $** > $@ |
| 967 | 973 | |
| 968 | 974 | headers: makeheaders$E page_index.h builtin_data.h default_css.h VERSION.h |
| 969 | - +makeheaders$E add_.c:add.h alerts_.c:alerts.h allrepo_.c:allrepo.h attach_.c:attach.h backoffice_.c:backoffice.h bag_.c:bag.h bisect_.c:bisect.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.h builtin_.c:builtin.h bundle_.c:bundle.h cache_.c:cache.h capabilities_.c:capabilities.h captcha_.c:captcha.h cgi_.c:cgi.h checkin_.c:checkin.h checkout_.c:checkout.h clearsign_.c:clearsign.h clone_.c:clone.h comformat_.c:comformat.h configure_.c:configure.h content_.c:content.h cookies_.c:cookies.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h deltafunc_.c:deltafunc.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h dispatch_.c:dispatch.h doc_.c:doc.h encode_.c:encode.h etag_.c:etag.h event_.c:event.h export_.c:export.h extcgi_.c:extcgi.h file_.c:file.h finfo_.c:finfo.h foci_.c:foci.h forum_.c:forum.h fshell_.c:fshell.h fusefs_.c:fusefs.h fuzz_.c:fuzz.h glob_.c:glob.h graph_.c:graph.h gzip_.c:gzip.h hname_.c:hname.h http_.c:http.h http_socket_.c:http_socket.h http_ssl_.c:http_ssl.h http_transport_.c:http_transport.h import_.c:import.h info_.c:info.h json_.c:json.h json_artifact_.c:json_artifact.h json_branch_.c:json_branch.h json_config_.c:json_config.h json_diff_.c:json_diff.h json_dir_.c:json_dir.h json_finfo_.c:json_finfo.h json_login_.c:json_login.h json_query_.c:json_query.h json_report_.c:json_report.h json_status_.c:json_status.h json_tag_.c:json_tag.h json_timeline_.c:json_timeline.h json_user_.c:json_user.h json_wiki_.c:json_wiki.h leaf_.c:leaf.h loadctrl_.c:loadctrl.h login_.c:login.h lookslike_.c:lookslike.h main_.c:main.h manifest_.c:manifest.h markdown_.c:markdown.h markdown_html_.c:markdown_html.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h moderate_.c:moderate.h name_.c:name.h path_.c:path.h piechart_.c:piechart.h pivot_.c:pivot.h popen_.c:popen.h pqueue_.c:pqueue.h printf_.c:printf.h publish_.c:publish.h purge_.c:purge.h rebuild_.c:rebuild.h regexp_.c:regexp.h repolist_.c:repolist.h report_.c:report.h rss_.c:rss.h schema_.c:schema.h search_.c:search.h security_audit_.c:security_audit.h setup_.c:setup.h setupuser_.c:setupuser.h sha1_.c:sha1.h sha1hard_.c:sha1hard.h sha3_.c:sha3.h shun_.c:shun.h sitemap_.c:sitemap.h skins_.c:skins.h smtp_.c:smtp.h sqlcmd_.c:sqlcmd.h stash_.c:stash.h stat_.c:stat.h statrep_.c:statrep.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tar_.c:tar.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktsetup_.c:tktsetup.h undo_.c:undo.h unicode_.c:unicode.h unversioned_.c:unversioned.h update_.c:update.h url_.c:url.h user_.c:user.h utf8_.c:utf8.h util_.c:util.h verify_.c:verify.h vfile_.c:vfile.h webmail_.c:webmail.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h winfile_.c:winfile.h winhttp_.c:winhttp.h wysiwyg_.c:wysiwyg.h xfer_.c:xfer.h xfersetup_.c:xfersetup.h zip_.c:zip.h $(SRCDIR)\sqlite3.h $(SRCDIR)\th.h VERSION.h $(SRCDIR)\cson_amalgamation.h | |
| 975 | + +makeheaders$E add_.c:add.h alerts_.c:alerts.h allrepo_.c:allrepo.h attach_.c:attach.h backlink_.c:backlink.h backoffice_.c:backoffice.h bag_.c:bag.h bisect_.c:bisect.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.h builtin_.c:builtin.h bundle_.c:bundle.h cache_.c:cache.h capabilities_.c:capabilities.h captcha_.c:captcha.h cgi_.c:cgi.h checkin_.c:checkin.h checkout_.c:checkout.h clearsign_.c:clearsign.h clone_.c:clone.h comformat_.c:comformat.h configure_.c:configure.h content_.c:content.h cookies_.c:cookies.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h deltafunc_.c:deltafunc.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h dispatch_.c:dispatch.h doc_.c:doc.h encode_.c:encode.h etag_.c:etag.h event_.c:event.h export_.c:export.h extcgi_.c:extcgi.h file_.c:file.h finfo_.c:finfo.h foci_.c:foci.h forum_.c:forum.h fshell_.c:fshell.h fusefs_.c:fusefs.h fuzz_.c:fuzz.h glob_.c:glob.h graph_.c:graph.h gzip_.c:gzip.h hname_.c:hname.h http_.c:http.h http_socket_.c:http_socket.h http_ssl_.c:http_ssl.h http_transport_.c:http_transport.h import_.c:import.h info_.c:info.h json_.c:json.h json_artifact_.c:json_artifact.h json_branch_.c:json_branch.h json_config_.c:json_config.h json_diff_.c:json_diff.h json_dir_.c:json_dir.h json_finfo_.c:json_finfo.h json_login_.c:json_login.h json_query_.c:json_query.h json_report_.c:json_report.h json_status_.c:json_status.h json_tag_.c:json_tag.h json_timeline_.c:json_timeline.h json_user_.c:json_user.h json_wiki_.c:json_wiki.h leaf_.c:leaf.h loadctrl_.c:loadctrl.h login_.c:login.h lookslike_.c:lookslike.h main_.c:main.h manifest_.c:manifest.h markdown_.c:markdown.h markdown_html_.c:markdown_html.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h moderate_.c:moderate.h name_.c:name.h path_.c:path.h piechart_.c:piechart.h pivot_.c:pivot.h popen_.c:popen.h pqueue_.c:pqueue.h printf_.c:printf.h publish_.c:publish.h purge_.c:purge.h rebuild_.c:rebuild.h regexp_.c:regexp.h repolist_.c:repolist.h report_.c:report.h rss_.c:rss.h schema_.c:schema.h search_.c:search.h security_audit_.c:security_audit.h setup_.c:setup.h setupuser_.c:setupuser.h sha1_.c:sha1.h sha1hard_.c:sha1hard.h sha3_.c:sha3.h shun_.c:shun.h sitemap_.c:sitemap.h skins_.c:skins.h smtp_.c:smtp.h sqlcmd_.c:sqlcmd.h stash_.c:stash.h stat_.c:stat.h statrep_.c:statrep.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tar_.c:tar.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktsetup_.c:tktsetup.h undo_.c:undo.h unicode_.c:unicode.h unversioned_.c:unversioned.h update_.c:update.h url_.c:url.h user_.c:user.h utf8_.c:utf8.h util_.c:util.h verify_.c:verify.h vfile_.c:vfile.h webmail_.c:webmail.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h winfile_.c:winfile.h winhttp_.c:winhttp.h wysiwyg_.c:wysiwyg.h xfer_.c:xfer.h xfersetup_.c:xfersetup.h zip_.c:zip.h $(SRCDIR)\sqlite3.h $(SRCDIR)\th.h VERSION.h $(SRCDIR)\cson_amalgamation.h | |
| 970 | 976 | @copy /Y nul: headers |
| 971 | 977 |
| --- win/Makefile.dmc | |
| +++ win/Makefile.dmc | |
| @@ -28,13 +28,13 @@ | |
| 28 | |
| 29 | SQLITE_OPTIONS = -DNDEBUG=1 -DSQLITE_DQS=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_GET_TABLE -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_TRUSTED_SCHEMA=0 |
| 30 | |
| 31 | SHELL_OPTIONS = -DNDEBUG=1 -DSQLITE_DQS=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_GET_TABLE -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_TRUSTED_SCHEMA=0 -Dmain=sqlite3_shell -DSQLITE_SHELL_IS_UTF8=1 -DSQLITE_OMIT_LOAD_EXTENSION=1 -DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) -DSQLITE_SHELL_DBNAME_PROC=sqlcmd_get_dbname -DSQLITE_SHELL_INIT_PROC=sqlcmd_init_proc -Daccess=file_access -Dsystem=fossil_system -Dgetenv=fossil_getenv -Dfopen=fossil_fopen |
| 32 | |
| 33 | SRC = add_.c alerts_.c allrepo_.c attach_.c backoffice_.c bag_.c bisect_.c blob_.c branch_.c browse_.c builtin_.c bundle_.c cache_.c capabilities_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c cookies_.c db_.c delta_.c deltacmd_.c deltafunc_.c descendants_.c diff_.c diffcmd_.c dispatch_.c doc_.c encode_.c etag_.c event_.c export_.c extcgi_.c file_.c finfo_.c foci_.c forum_.c fshell_.c fusefs_.c fuzz_.c glob_.c graph_.c gzip_.c hname_.c http_.c http_socket_.c http_ssl_.c http_transport_.c import_.c info_.c json_.c json_artifact_.c json_branch_.c json_config_.c json_diff_.c json_dir_.c json_finfo_.c json_login_.c json_query_.c json_report_.c json_status_.c json_tag_.c json_timeline_.c json_user_.c json_wiki_.c leaf_.c loadctrl_.c login_.c lookslike_.c main_.c manifest_.c markdown_.c markdown_html_.c md5_.c merge_.c merge3_.c moderate_.c name_.c path_.c piechart_.c pivot_.c popen_.c pqueue_.c printf_.c publish_.c purge_.c rebuild_.c regexp_.c repolist_.c report_.c rss_.c schema_.c search_.c security_audit_.c setup_.c setupuser_.c sha1_.c sha1hard_.c sha3_.c shun_.c sitemap_.c skins_.c smtp_.c sqlcmd_.c stash_.c stat_.c statrep_.c style_.c sync_.c tag_.c tar_.c th_main_.c timeline_.c tkt_.c tktsetup_.c undo_.c unicode_.c unversioned_.c update_.c url_.c user_.c utf8_.c util_.c verify_.c vfile_.c webmail_.c wiki_.c wikiformat_.c winfile_.c winhttp_.c wysiwyg_.c xfer_.c xfersetup_.c zip_.c |
| 34 | |
| 35 | OBJ = $(OBJDIR)\add$O $(OBJDIR)\alerts$O $(OBJDIR)\allrepo$O $(OBJDIR)\attach$O $(OBJDIR)\backoffice$O $(OBJDIR)\bag$O $(OBJDIR)\bisect$O $(OBJDIR)\blob$O $(OBJDIR)\branch$O $(OBJDIR)\browse$O $(OBJDIR)\builtin$O $(OBJDIR)\bundle$O $(OBJDIR)\cache$O $(OBJDIR)\capabilities$O $(OBJDIR)\captcha$O $(OBJDIR)\cgi$O $(OBJDIR)\checkin$O $(OBJDIR)\checkout$O $(OBJDIR)\clearsign$O $(OBJDIR)\clone$O $(OBJDIR)\comformat$O $(OBJDIR)\configure$O $(OBJDIR)\content$O $(OBJDIR)\cookies$O $(OBJDIR)\db$O $(OBJDIR)\delta$O $(OBJDIR)\deltacmd$O $(OBJDIR)\deltafunc$O $(OBJDIR)\descendants$O $(OBJDIR)\diff$O $(OBJDIR)\diffcmd$O $(OBJDIR)\dispatch$O $(OBJDIR)\doc$O $(OBJDIR)\encode$O $(OBJDIR)\etag$O $(OBJDIR)\event$O $(OBJDIR)\export$O $(OBJDIR)\extcgi$O $(OBJDIR)\file$O $(OBJDIR)\finfo$O $(OBJDIR)\foci$O $(OBJDIR)\forum$O $(OBJDIR)\fshell$O $(OBJDIR)\fusefs$O $(OBJDIR)\fuzz$O $(OBJDIR)\glob$O $(OBJDIR)\graph$O $(OBJDIR)\gzip$O $(OBJDIR)\hname$O $(OBJDIR)\http$O $(OBJDIR)\http_socket$O $(OBJDIR)\http_ssl$O $(OBJDIR)\http_transport$O $(OBJDIR)\import$O $(OBJDIR)\info$O $(OBJDIR)\json$O $(OBJDIR)\json_artifact$O $(OBJDIR)\json_branch$O $(OBJDIR)\json_config$O $(OBJDIR)\json_diff$O $(OBJDIR)\json_dir$O $(OBJDIR)\json_finfo$O $(OBJDIR)\json_login$O $(OBJDIR)\json_query$O $(OBJDIR)\json_report$O $(OBJDIR)\json_status$O $(OBJDIR)\json_tag$O $(OBJDIR)\json_timeline$O $(OBJDIR)\json_user$O $(OBJDIR)\json_wiki$O $(OBJDIR)\leaf$O $(OBJDIR)\loadctrl$O $(OBJDIR)\login$O $(OBJDIR)\lookslike$O $(OBJDIR)\main$O $(OBJDIR)\manifest$O $(OBJDIR)\markdown$O $(OBJDIR)\markdown_html$O $(OBJDIR)\md5$O $(OBJDIR)\merge$O $(OBJDIR)\merge3$O $(OBJDIR)\moderate$O $(OBJDIR)\name$O $(OBJDIR)\path$O $(OBJDIR)\piechart$O $(OBJDIR)\pivot$O $(OBJDIR)\popen$O $(OBJDIR)\pqueue$O $(OBJDIR)\printf$O $(OBJDIR)\publish$O $(OBJDIR)\purge$O $(OBJDIR)\rebuild$O $(OBJDIR)\regexp$O $(OBJDIR)\repolist$O $(OBJDIR)\report$O $(OBJDIR)\rss$O $(OBJDIR)\schema$O $(OBJDIR)\search$O $(OBJDIR)\security_audit$O $(OBJDIR)\setup$O $(OBJDIR)\setupuser$O $(OBJDIR)\sha1$O $(OBJDIR)\sha1hard$O $(OBJDIR)\sha3$O $(OBJDIR)\shun$O $(OBJDIR)\sitemap$O $(OBJDIR)\skins$O $(OBJDIR)\smtp$O $(OBJDIR)\sqlcmd$O $(OBJDIR)\stash$O $(OBJDIR)\stat$O $(OBJDIR)\statrep$O $(OBJDIR)\style$O $(OBJDIR)\sync$O $(OBJDIR)\tag$O $(OBJDIR)\tar$O $(OBJDIR)\th_main$O $(OBJDIR)\timeline$O $(OBJDIR)\tkt$O $(OBJDIR)\tktsetup$O $(OBJDIR)\undo$O $(OBJDIR)\unicode$O $(OBJDIR)\unversioned$O $(OBJDIR)\update$O $(OBJDIR)\url$O $(OBJDIR)\user$O $(OBJDIR)\utf8$O $(OBJDIR)\util$O $(OBJDIR)\verify$O $(OBJDIR)\vfile$O $(OBJDIR)\webmail$O $(OBJDIR)\wiki$O $(OBJDIR)\wikiformat$O $(OBJDIR)\winfile$O $(OBJDIR)\winhttp$O $(OBJDIR)\wysiwyg$O $(OBJDIR)\xfer$O $(OBJDIR)\xfersetup$O $(OBJDIR)\zip$O $(OBJDIR)\shell$O $(OBJDIR)\sqlite3$O $(OBJDIR)\th$O $(OBJDIR)\th_lang$O |
| 36 | |
| 37 | |
| 38 | RC=$(DMDIR)\bin\rcc |
| 39 | RCFLAGS=-32 -w1 -I$(SRCDIR) /D__DMC__ |
| 40 | |
| @@ -49,11 +49,11 @@ | |
| 49 | |
| 50 | $(OBJDIR)\fossil.res: $B\win\fossil.rc |
| 51 | $(RC) $(RCFLAGS) -o$@ $** |
| 52 | |
| 53 | $(OBJDIR)\link: $B\win\Makefile.dmc $(OBJDIR)\fossil.res |
| 54 | +echo add alerts allrepo attach backoffice bag bisect blob branch browse builtin bundle cache capabilities captcha cgi checkin checkout clearsign clone comformat configure content cookies db delta deltacmd deltafunc descendants diff diffcmd dispatch doc encode etag event export extcgi file finfo foci forum fshell fusefs fuzz glob graph gzip hname http http_socket http_ssl http_transport import info json json_artifact json_branch json_config json_diff json_dir json_finfo json_login json_query json_report json_status json_tag json_timeline json_user json_wiki leaf loadctrl login lookslike main manifest markdown markdown_html md5 merge merge3 moderate name path piechart pivot popen pqueue printf publish purge rebuild regexp repolist report rss schema search security_audit setup setupuser sha1 sha1hard sha3 shun sitemap skins smtp sqlcmd stash stat statrep style sync tag tar th_main timeline tkt tktsetup undo unicode unversioned update url user utf8 util verify vfile webmail wiki wikiformat winfile winhttp wysiwyg xfer xfersetup zip shell sqlite3 th th_lang > $@ |
| 55 | +echo fossil >> $@ |
| 56 | +echo fossil >> $@ |
| 57 | +echo $(LIBS) >> $@ |
| 58 | +echo. >> $@ |
| 59 | +echo fossil >> $@ |
| @@ -152,10 +152,16 @@ | |
| 152 | $(OBJDIR)\attach$O : attach_.c attach.h |
| 153 | $(TCC) -o$@ -c attach_.c |
| 154 | |
| 155 | attach_.c : $(SRCDIR)\attach.c |
| 156 | +translate$E $** > $@ |
| 157 | |
| 158 | $(OBJDIR)\backoffice$O : backoffice_.c backoffice.h |
| 159 | $(TCC) -o$@ -c backoffice_.c |
| 160 | |
| 161 | backoffice_.c : $(SRCDIR)\backoffice.c |
| @@ -964,7 +970,7 @@ | |
| 964 | |
| 965 | zip_.c : $(SRCDIR)\zip.c |
| 966 | +translate$E $** > $@ |
| 967 | |
| 968 | headers: makeheaders$E page_index.h builtin_data.h default_css.h VERSION.h |
| 969 | +makeheaders$E add_.c:add.h alerts_.c:alerts.h allrepo_.c:allrepo.h attach_.c:attach.h backoffice_.c:backoffice.h bag_.c:bag.h bisect_.c:bisect.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.h builtin_.c:builtin.h bundle_.c:bundle.h cache_.c:cache.h capabilities_.c:capabilities.h captcha_.c:captcha.h cgi_.c:cgi.h checkin_.c:checkin.h checkout_.c:checkout.h clearsign_.c:clearsign.h clone_.c:clone.h comformat_.c:comformat.h configure_.c:configure.h content_.c:content.h cookies_.c:cookies.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h deltafunc_.c:deltafunc.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h dispatch_.c:dispatch.h doc_.c:doc.h encode_.c:encode.h etag_.c:etag.h event_.c:event.h export_.c:export.h extcgi_.c:extcgi.h file_.c:file.h finfo_.c:finfo.h foci_.c:foci.h forum_.c:forum.h fshell_.c:fshell.h fusefs_.c:fusefs.h fuzz_.c:fuzz.h glob_.c:glob.h graph_.c:graph.h gzip_.c:gzip.h hname_.c:hname.h http_.c:http.h http_socket_.c:http_socket.h http_ssl_.c:http_ssl.h http_transport_.c:http_transport.h import_.c:import.h info_.c:info.h json_.c:json.h json_artifact_.c:json_artifact.h json_branch_.c:json_branch.h json_config_.c:json_config.h json_diff_.c:json_diff.h json_dir_.c:json_dir.h json_finfo_.c:json_finfo.h json_login_.c:json_login.h json_query_.c:json_query.h json_report_.c:json_report.h json_status_.c:json_status.h json_tag_.c:json_tag.h json_timeline_.c:json_timeline.h json_user_.c:json_user.h json_wiki_.c:json_wiki.h leaf_.c:leaf.h loadctrl_.c:loadctrl.h login_.c:login.h lookslike_.c:lookslike.h main_.c:main.h manifest_.c:manifest.h markdown_.c:markdown.h markdown_html_.c:markdown_html.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h moderate_.c:moderate.h name_.c:name.h path_.c:path.h piechart_.c:piechart.h pivot_.c:pivot.h popen_.c:popen.h pqueue_.c:pqueue.h printf_.c:printf.h publish_.c:publish.h purge_.c:purge.h rebuild_.c:rebuild.h regexp_.c:regexp.h repolist_.c:repolist.h report_.c:report.h rss_.c:rss.h schema_.c:schema.h search_.c:search.h security_audit_.c:security_audit.h setup_.c:setup.h setupuser_.c:setupuser.h sha1_.c:sha1.h sha1hard_.c:sha1hard.h sha3_.c:sha3.h shun_.c:shun.h sitemap_.c:sitemap.h skins_.c:skins.h smtp_.c:smtp.h sqlcmd_.c:sqlcmd.h stash_.c:stash.h stat_.c:stat.h statrep_.c:statrep.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tar_.c:tar.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktsetup_.c:tktsetup.h undo_.c:undo.h unicode_.c:unicode.h unversioned_.c:unversioned.h update_.c:update.h url_.c:url.h user_.c:user.h utf8_.c:utf8.h util_.c:util.h verify_.c:verify.h vfile_.c:vfile.h webmail_.c:webmail.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h winfile_.c:winfile.h winhttp_.c:winhttp.h wysiwyg_.c:wysiwyg.h xfer_.c:xfer.h xfersetup_.c:xfersetup.h zip_.c:zip.h $(SRCDIR)\sqlite3.h $(SRCDIR)\th.h VERSION.h $(SRCDIR)\cson_amalgamation.h |
| 970 | @copy /Y nul: headers |
| 971 |
| --- win/Makefile.dmc | |
| +++ win/Makefile.dmc | |
| @@ -28,13 +28,13 @@ | |
| 28 | |
| 29 | SQLITE_OPTIONS = -DNDEBUG=1 -DSQLITE_DQS=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_GET_TABLE -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_TRUSTED_SCHEMA=0 |
| 30 | |
| 31 | SHELL_OPTIONS = -DNDEBUG=1 -DSQLITE_DQS=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_GET_TABLE -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_TRUSTED_SCHEMA=0 -Dmain=sqlite3_shell -DSQLITE_SHELL_IS_UTF8=1 -DSQLITE_OMIT_LOAD_EXTENSION=1 -DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) -DSQLITE_SHELL_DBNAME_PROC=sqlcmd_get_dbname -DSQLITE_SHELL_INIT_PROC=sqlcmd_init_proc -Daccess=file_access -Dsystem=fossil_system -Dgetenv=fossil_getenv -Dfopen=fossil_fopen |
| 32 | |
| 33 | SRC = add_.c alerts_.c allrepo_.c attach_.c backlink_.c backoffice_.c bag_.c bisect_.c blob_.c branch_.c browse_.c builtin_.c bundle_.c cache_.c capabilities_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c cookies_.c db_.c delta_.c deltacmd_.c deltafunc_.c descendants_.c diff_.c diffcmd_.c dispatch_.c doc_.c encode_.c etag_.c event_.c export_.c extcgi_.c file_.c finfo_.c foci_.c forum_.c fshell_.c fusefs_.c fuzz_.c glob_.c graph_.c gzip_.c hname_.c http_.c http_socket_.c http_ssl_.c http_transport_.c import_.c info_.c json_.c json_artifact_.c json_branch_.c json_config_.c json_diff_.c json_dir_.c json_finfo_.c json_login_.c json_query_.c json_report_.c json_status_.c json_tag_.c json_timeline_.c json_user_.c json_wiki_.c leaf_.c loadctrl_.c login_.c lookslike_.c main_.c manifest_.c markdown_.c markdown_html_.c md5_.c merge_.c merge3_.c moderate_.c name_.c path_.c piechart_.c pivot_.c popen_.c pqueue_.c printf_.c publish_.c purge_.c rebuild_.c regexp_.c repolist_.c report_.c rss_.c schema_.c search_.c security_audit_.c setup_.c setupuser_.c sha1_.c sha1hard_.c sha3_.c shun_.c sitemap_.c skins_.c smtp_.c sqlcmd_.c stash_.c stat_.c statrep_.c style_.c sync_.c tag_.c tar_.c th_main_.c timeline_.c tkt_.c tktsetup_.c undo_.c unicode_.c unversioned_.c update_.c url_.c user_.c utf8_.c util_.c verify_.c vfile_.c webmail_.c wiki_.c wikiformat_.c winfile_.c winhttp_.c wysiwyg_.c xfer_.c xfersetup_.c zip_.c |
| 34 | |
| 35 | OBJ = $(OBJDIR)\add$O $(OBJDIR)\alerts$O $(OBJDIR)\allrepo$O $(OBJDIR)\attach$O $(OBJDIR)\backlink$O $(OBJDIR)\backoffice$O $(OBJDIR)\bag$O $(OBJDIR)\bisect$O $(OBJDIR)\blob$O $(OBJDIR)\branch$O $(OBJDIR)\browse$O $(OBJDIR)\builtin$O $(OBJDIR)\bundle$O $(OBJDIR)\cache$O $(OBJDIR)\capabilities$O $(OBJDIR)\captcha$O $(OBJDIR)\cgi$O $(OBJDIR)\checkin$O $(OBJDIR)\checkout$O $(OBJDIR)\clearsign$O $(OBJDIR)\clone$O $(OBJDIR)\comformat$O $(OBJDIR)\configure$O $(OBJDIR)\content$O $(OBJDIR)\cookies$O $(OBJDIR)\db$O $(OBJDIR)\delta$O $(OBJDIR)\deltacmd$O $(OBJDIR)\deltafunc$O $(OBJDIR)\descendants$O $(OBJDIR)\diff$O $(OBJDIR)\diffcmd$O $(OBJDIR)\dispatch$O $(OBJDIR)\doc$O $(OBJDIR)\encode$O $(OBJDIR)\etag$O $(OBJDIR)\event$O $(OBJDIR)\export$O $(OBJDIR)\extcgi$O $(OBJDIR)\file$O $(OBJDIR)\finfo$O $(OBJDIR)\foci$O $(OBJDIR)\forum$O $(OBJDIR)\fshell$O $(OBJDIR)\fusefs$O $(OBJDIR)\fuzz$O $(OBJDIR)\glob$O $(OBJDIR)\graph$O $(OBJDIR)\gzip$O $(OBJDIR)\hname$O $(OBJDIR)\http$O $(OBJDIR)\http_socket$O $(OBJDIR)\http_ssl$O $(OBJDIR)\http_transport$O $(OBJDIR)\import$O $(OBJDIR)\info$O $(OBJDIR)\json$O $(OBJDIR)\json_artifact$O $(OBJDIR)\json_branch$O $(OBJDIR)\json_config$O $(OBJDIR)\json_diff$O $(OBJDIR)\json_dir$O $(OBJDIR)\json_finfo$O $(OBJDIR)\json_login$O $(OBJDIR)\json_query$O $(OBJDIR)\json_report$O $(OBJDIR)\json_status$O $(OBJDIR)\json_tag$O $(OBJDIR)\json_timeline$O $(OBJDIR)\json_user$O $(OBJDIR)\json_wiki$O $(OBJDIR)\leaf$O $(OBJDIR)\loadctrl$O $(OBJDIR)\login$O $(OBJDIR)\lookslike$O $(OBJDIR)\main$O $(OBJDIR)\manifest$O $(OBJDIR)\markdown$O $(OBJDIR)\markdown_html$O $(OBJDIR)\md5$O $(OBJDIR)\merge$O $(OBJDIR)\merge3$O $(OBJDIR)\moderate$O $(OBJDIR)\name$O $(OBJDIR)\path$O $(OBJDIR)\piechart$O $(OBJDIR)\pivot$O $(OBJDIR)\popen$O $(OBJDIR)\pqueue$O $(OBJDIR)\printf$O $(OBJDIR)\publish$O $(OBJDIR)\purge$O $(OBJDIR)\rebuild$O $(OBJDIR)\regexp$O $(OBJDIR)\repolist$O $(OBJDIR)\report$O $(OBJDIR)\rss$O $(OBJDIR)\schema$O $(OBJDIR)\search$O $(OBJDIR)\security_audit$O $(OBJDIR)\setup$O $(OBJDIR)\setupuser$O $(OBJDIR)\sha1$O $(OBJDIR)\sha1hard$O $(OBJDIR)\sha3$O $(OBJDIR)\shun$O $(OBJDIR)\sitemap$O $(OBJDIR)\skins$O $(OBJDIR)\smtp$O $(OBJDIR)\sqlcmd$O $(OBJDIR)\stash$O $(OBJDIR)\stat$O $(OBJDIR)\statrep$O $(OBJDIR)\style$O $(OBJDIR)\sync$O $(OBJDIR)\tag$O $(OBJDIR)\tar$O $(OBJDIR)\th_main$O $(OBJDIR)\timeline$O $(OBJDIR)\tkt$O $(OBJDIR)\tktsetup$O $(OBJDIR)\undo$O $(OBJDIR)\unicode$O $(OBJDIR)\unversioned$O $(OBJDIR)\update$O $(OBJDIR)\url$O $(OBJDIR)\user$O $(OBJDIR)\utf8$O $(OBJDIR)\util$O $(OBJDIR)\verify$O $(OBJDIR)\vfile$O $(OBJDIR)\webmail$O $(OBJDIR)\wiki$O $(OBJDIR)\wikiformat$O $(OBJDIR)\winfile$O $(OBJDIR)\winhttp$O $(OBJDIR)\wysiwyg$O $(OBJDIR)\xfer$O $(OBJDIR)\xfersetup$O $(OBJDIR)\zip$O $(OBJDIR)\shell$O $(OBJDIR)\sqlite3$O $(OBJDIR)\th$O $(OBJDIR)\th_lang$O |
| 36 | |
| 37 | |
| 38 | RC=$(DMDIR)\bin\rcc |
| 39 | RCFLAGS=-32 -w1 -I$(SRCDIR) /D__DMC__ |
| 40 | |
| @@ -49,11 +49,11 @@ | |
| 49 | |
| 50 | $(OBJDIR)\fossil.res: $B\win\fossil.rc |
| 51 | $(RC) $(RCFLAGS) -o$@ $** |
| 52 | |
| 53 | $(OBJDIR)\link: $B\win\Makefile.dmc $(OBJDIR)\fossil.res |
| 54 | +echo add alerts allrepo attach backlink backoffice bag bisect blob branch browse builtin bundle cache capabilities captcha cgi checkin checkout clearsign clone comformat configure content cookies db delta deltacmd deltafunc descendants diff diffcmd dispatch doc encode etag event export extcgi file finfo foci forum fshell fusefs fuzz glob graph gzip hname http http_socket http_ssl http_transport import info json json_artifact json_branch json_config json_diff json_dir json_finfo json_login json_query json_report json_status json_tag json_timeline json_user json_wiki leaf loadctrl login lookslike main manifest markdown markdown_html md5 merge merge3 moderate name path piechart pivot popen pqueue printf publish purge rebuild regexp repolist report rss schema search security_audit setup setupuser sha1 sha1hard sha3 shun sitemap skins smtp sqlcmd stash stat statrep style sync tag tar th_main timeline tkt tktsetup undo unicode unversioned update url user utf8 util verify vfile webmail wiki wikiformat winfile winhttp wysiwyg xfer xfersetup zip shell sqlite3 th th_lang > $@ |
| 55 | +echo fossil >> $@ |
| 56 | +echo fossil >> $@ |
| 57 | +echo $(LIBS) >> $@ |
| 58 | +echo. >> $@ |
| 59 | +echo fossil >> $@ |
| @@ -152,10 +152,16 @@ | |
| 152 | $(OBJDIR)\attach$O : attach_.c attach.h |
| 153 | $(TCC) -o$@ -c attach_.c |
| 154 | |
| 155 | attach_.c : $(SRCDIR)\attach.c |
| 156 | +translate$E $** > $@ |
| 157 | |
| 158 | $(OBJDIR)\backlink$O : backlink_.c backlink.h |
| 159 | $(TCC) -o$@ -c backlink_.c |
| 160 | |
| 161 | backlink_.c : $(SRCDIR)\backlink.c |
| 162 | +translate$E $** > $@ |
| 163 | |
| 164 | $(OBJDIR)\backoffice$O : backoffice_.c backoffice.h |
| 165 | $(TCC) -o$@ -c backoffice_.c |
| 166 | |
| 167 | backoffice_.c : $(SRCDIR)\backoffice.c |
| @@ -964,7 +970,7 @@ | |
| 970 | |
| 971 | zip_.c : $(SRCDIR)\zip.c |
| 972 | +translate$E $** > $@ |
| 973 | |
| 974 | headers: makeheaders$E page_index.h builtin_data.h default_css.h VERSION.h |
| 975 | +makeheaders$E add_.c:add.h alerts_.c:alerts.h allrepo_.c:allrepo.h attach_.c:attach.h backlink_.c:backlink.h backoffice_.c:backoffice.h bag_.c:bag.h bisect_.c:bisect.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.h builtin_.c:builtin.h bundle_.c:bundle.h cache_.c:cache.h capabilities_.c:capabilities.h captcha_.c:captcha.h cgi_.c:cgi.h checkin_.c:checkin.h checkout_.c:checkout.h clearsign_.c:clearsign.h clone_.c:clone.h comformat_.c:comformat.h configure_.c:configure.h content_.c:content.h cookies_.c:cookies.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h deltafunc_.c:deltafunc.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h dispatch_.c:dispatch.h doc_.c:doc.h encode_.c:encode.h etag_.c:etag.h event_.c:event.h export_.c:export.h extcgi_.c:extcgi.h file_.c:file.h finfo_.c:finfo.h foci_.c:foci.h forum_.c:forum.h fshell_.c:fshell.h fusefs_.c:fusefs.h fuzz_.c:fuzz.h glob_.c:glob.h graph_.c:graph.h gzip_.c:gzip.h hname_.c:hname.h http_.c:http.h http_socket_.c:http_socket.h http_ssl_.c:http_ssl.h http_transport_.c:http_transport.h import_.c:import.h info_.c:info.h json_.c:json.h json_artifact_.c:json_artifact.h json_branch_.c:json_branch.h json_config_.c:json_config.h json_diff_.c:json_diff.h json_dir_.c:json_dir.h json_finfo_.c:json_finfo.h json_login_.c:json_login.h json_query_.c:json_query.h json_report_.c:json_report.h json_status_.c:json_status.h json_tag_.c:json_tag.h json_timeline_.c:json_timeline.h json_user_.c:json_user.h json_wiki_.c:json_wiki.h leaf_.c:leaf.h loadctrl_.c:loadctrl.h login_.c:login.h lookslike_.c:lookslike.h main_.c:main.h manifest_.c:manifest.h markdown_.c:markdown.h markdown_html_.c:markdown_html.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h moderate_.c:moderate.h name_.c:name.h path_.c:path.h piechart_.c:piechart.h pivot_.c:pivot.h popen_.c:popen.h pqueue_.c:pqueue.h printf_.c:printf.h publish_.c:publish.h purge_.c:purge.h rebuild_.c:rebuild.h regexp_.c:regexp.h repolist_.c:repolist.h report_.c:report.h rss_.c:rss.h schema_.c:schema.h search_.c:search.h security_audit_.c:security_audit.h setup_.c:setup.h setupuser_.c:setupuser.h sha1_.c:sha1.h sha1hard_.c:sha1hard.h sha3_.c:sha3.h shun_.c:shun.h sitemap_.c:sitemap.h skins_.c:skins.h smtp_.c:smtp.h sqlcmd_.c:sqlcmd.h stash_.c:stash.h stat_.c:stat.h statrep_.c:statrep.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tar_.c:tar.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktsetup_.c:tktsetup.h undo_.c:undo.h unicode_.c:unicode.h unversioned_.c:unversioned.h update_.c:update.h url_.c:url.h user_.c:user.h utf8_.c:utf8.h util_.c:util.h verify_.c:verify.h vfile_.c:vfile.h webmail_.c:webmail.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h winfile_.c:winfile.h winhttp_.c:winhttp.h wysiwyg_.c:wysiwyg.h xfer_.c:xfer.h xfersetup_.c:xfersetup.h zip_.c:zip.h $(SRCDIR)\sqlite3.h $(SRCDIR)\th.h VERSION.h $(SRCDIR)\cson_amalgamation.h |
| 976 | @copy /Y nul: headers |
| 977 |
+12
| --- win/Makefile.mingw | ||
| +++ win/Makefile.mingw | ||
| @@ -440,10 +440,11 @@ | ||
| 440 | 440 | SRC = \ |
| 441 | 441 | $(SRCDIR)/add.c \ |
| 442 | 442 | $(SRCDIR)/alerts.c \ |
| 443 | 443 | $(SRCDIR)/allrepo.c \ |
| 444 | 444 | $(SRCDIR)/attach.c \ |
| 445 | + $(SRCDIR)/backlink.c \ | |
| 445 | 446 | $(SRCDIR)/backoffice.c \ |
| 446 | 447 | $(SRCDIR)/bag.c \ |
| 447 | 448 | $(SRCDIR)/bisect.c \ |
| 448 | 449 | $(SRCDIR)/blob.c \ |
| 449 | 450 | $(SRCDIR)/branch.c \ |
| @@ -672,10 +673,11 @@ | ||
| 672 | 673 | TRANS_SRC = \ |
| 673 | 674 | $(OBJDIR)/add_.c \ |
| 674 | 675 | $(OBJDIR)/alerts_.c \ |
| 675 | 676 | $(OBJDIR)/allrepo_.c \ |
| 676 | 677 | $(OBJDIR)/attach_.c \ |
| 678 | + $(OBJDIR)/backlink_.c \ | |
| 677 | 679 | $(OBJDIR)/backoffice_.c \ |
| 678 | 680 | $(OBJDIR)/bag_.c \ |
| 679 | 681 | $(OBJDIR)/bisect_.c \ |
| 680 | 682 | $(OBJDIR)/blob_.c \ |
| 681 | 683 | $(OBJDIR)/branch_.c \ |
| @@ -813,10 +815,11 @@ | ||
| 813 | 815 | OBJ = \ |
| 814 | 816 | $(OBJDIR)/add.o \ |
| 815 | 817 | $(OBJDIR)/alerts.o \ |
| 816 | 818 | $(OBJDIR)/allrepo.o \ |
| 817 | 819 | $(OBJDIR)/attach.o \ |
| 820 | + $(OBJDIR)/backlink.o \ | |
| 818 | 821 | $(OBJDIR)/backoffice.o \ |
| 819 | 822 | $(OBJDIR)/bag.o \ |
| 820 | 823 | $(OBJDIR)/bisect.o \ |
| 821 | 824 | $(OBJDIR)/blob.o \ |
| 822 | 825 | $(OBJDIR)/branch.o \ |
| @@ -1174,10 +1177,11 @@ | ||
| 1174 | 1177 | $(OBJDIR)/headers: $(OBJDIR)/page_index.h $(OBJDIR)/builtin_data.h $(OBJDIR)/default_css.h $(MAKEHEADERS) $(OBJDIR)/VERSION.h |
| 1175 | 1178 | $(MAKEHEADERS) $(OBJDIR)/add_.c:$(OBJDIR)/add.h \ |
| 1176 | 1179 | $(OBJDIR)/alerts_.c:$(OBJDIR)/alerts.h \ |
| 1177 | 1180 | $(OBJDIR)/allrepo_.c:$(OBJDIR)/allrepo.h \ |
| 1178 | 1181 | $(OBJDIR)/attach_.c:$(OBJDIR)/attach.h \ |
| 1182 | + $(OBJDIR)/backlink_.c:$(OBJDIR)/backlink.h \ | |
| 1179 | 1183 | $(OBJDIR)/backoffice_.c:$(OBJDIR)/backoffice.h \ |
| 1180 | 1184 | $(OBJDIR)/bag_.c:$(OBJDIR)/bag.h \ |
| 1181 | 1185 | $(OBJDIR)/bisect_.c:$(OBJDIR)/bisect.h \ |
| 1182 | 1186 | $(OBJDIR)/blob_.c:$(OBJDIR)/blob.h \ |
| 1183 | 1187 | $(OBJDIR)/branch_.c:$(OBJDIR)/branch.h \ |
| @@ -1349,10 +1353,18 @@ | ||
| 1349 | 1353 | |
| 1350 | 1354 | $(OBJDIR)/attach.o: $(OBJDIR)/attach_.c $(OBJDIR)/attach.h $(SRCDIR)/config.h |
| 1351 | 1355 | $(XTCC) -o $(OBJDIR)/attach.o -c $(OBJDIR)/attach_.c |
| 1352 | 1356 | |
| 1353 | 1357 | $(OBJDIR)/attach.h: $(OBJDIR)/headers |
| 1358 | + | |
| 1359 | +$(OBJDIR)/backlink_.c: $(SRCDIR)/backlink.c $(TRANSLATE) | |
| 1360 | + $(TRANSLATE) $(SRCDIR)/backlink.c >$@ | |
| 1361 | + | |
| 1362 | +$(OBJDIR)/backlink.o: $(OBJDIR)/backlink_.c $(OBJDIR)/backlink.h $(SRCDIR)/config.h | |
| 1363 | + $(XTCC) -o $(OBJDIR)/backlink.o -c $(OBJDIR)/backlink_.c | |
| 1364 | + | |
| 1365 | +$(OBJDIR)/backlink.h: $(OBJDIR)/headers | |
| 1354 | 1366 | |
| 1355 | 1367 | $(OBJDIR)/backoffice_.c: $(SRCDIR)/backoffice.c $(TRANSLATE) |
| 1356 | 1368 | $(TRANSLATE) $(SRCDIR)/backoffice.c >$@ |
| 1357 | 1369 | |
| 1358 | 1370 | $(OBJDIR)/backoffice.o: $(OBJDIR)/backoffice_.c $(OBJDIR)/backoffice.h $(SRCDIR)/config.h |
| 1359 | 1371 |
| --- win/Makefile.mingw | |
| +++ win/Makefile.mingw | |
| @@ -440,10 +440,11 @@ | |
| 440 | SRC = \ |
| 441 | $(SRCDIR)/add.c \ |
| 442 | $(SRCDIR)/alerts.c \ |
| 443 | $(SRCDIR)/allrepo.c \ |
| 444 | $(SRCDIR)/attach.c \ |
| 445 | $(SRCDIR)/backoffice.c \ |
| 446 | $(SRCDIR)/bag.c \ |
| 447 | $(SRCDIR)/bisect.c \ |
| 448 | $(SRCDIR)/blob.c \ |
| 449 | $(SRCDIR)/branch.c \ |
| @@ -672,10 +673,11 @@ | |
| 672 | TRANS_SRC = \ |
| 673 | $(OBJDIR)/add_.c \ |
| 674 | $(OBJDIR)/alerts_.c \ |
| 675 | $(OBJDIR)/allrepo_.c \ |
| 676 | $(OBJDIR)/attach_.c \ |
| 677 | $(OBJDIR)/backoffice_.c \ |
| 678 | $(OBJDIR)/bag_.c \ |
| 679 | $(OBJDIR)/bisect_.c \ |
| 680 | $(OBJDIR)/blob_.c \ |
| 681 | $(OBJDIR)/branch_.c \ |
| @@ -813,10 +815,11 @@ | |
| 813 | OBJ = \ |
| 814 | $(OBJDIR)/add.o \ |
| 815 | $(OBJDIR)/alerts.o \ |
| 816 | $(OBJDIR)/allrepo.o \ |
| 817 | $(OBJDIR)/attach.o \ |
| 818 | $(OBJDIR)/backoffice.o \ |
| 819 | $(OBJDIR)/bag.o \ |
| 820 | $(OBJDIR)/bisect.o \ |
| 821 | $(OBJDIR)/blob.o \ |
| 822 | $(OBJDIR)/branch.o \ |
| @@ -1174,10 +1177,11 @@ | |
| 1174 | $(OBJDIR)/headers: $(OBJDIR)/page_index.h $(OBJDIR)/builtin_data.h $(OBJDIR)/default_css.h $(MAKEHEADERS) $(OBJDIR)/VERSION.h |
| 1175 | $(MAKEHEADERS) $(OBJDIR)/add_.c:$(OBJDIR)/add.h \ |
| 1176 | $(OBJDIR)/alerts_.c:$(OBJDIR)/alerts.h \ |
| 1177 | $(OBJDIR)/allrepo_.c:$(OBJDIR)/allrepo.h \ |
| 1178 | $(OBJDIR)/attach_.c:$(OBJDIR)/attach.h \ |
| 1179 | $(OBJDIR)/backoffice_.c:$(OBJDIR)/backoffice.h \ |
| 1180 | $(OBJDIR)/bag_.c:$(OBJDIR)/bag.h \ |
| 1181 | $(OBJDIR)/bisect_.c:$(OBJDIR)/bisect.h \ |
| 1182 | $(OBJDIR)/blob_.c:$(OBJDIR)/blob.h \ |
| 1183 | $(OBJDIR)/branch_.c:$(OBJDIR)/branch.h \ |
| @@ -1349,10 +1353,18 @@ | |
| 1349 | |
| 1350 | $(OBJDIR)/attach.o: $(OBJDIR)/attach_.c $(OBJDIR)/attach.h $(SRCDIR)/config.h |
| 1351 | $(XTCC) -o $(OBJDIR)/attach.o -c $(OBJDIR)/attach_.c |
| 1352 | |
| 1353 | $(OBJDIR)/attach.h: $(OBJDIR)/headers |
| 1354 | |
| 1355 | $(OBJDIR)/backoffice_.c: $(SRCDIR)/backoffice.c $(TRANSLATE) |
| 1356 | $(TRANSLATE) $(SRCDIR)/backoffice.c >$@ |
| 1357 | |
| 1358 | $(OBJDIR)/backoffice.o: $(OBJDIR)/backoffice_.c $(OBJDIR)/backoffice.h $(SRCDIR)/config.h |
| 1359 |
| --- win/Makefile.mingw | |
| +++ win/Makefile.mingw | |
| @@ -440,10 +440,11 @@ | |
| 440 | SRC = \ |
| 441 | $(SRCDIR)/add.c \ |
| 442 | $(SRCDIR)/alerts.c \ |
| 443 | $(SRCDIR)/allrepo.c \ |
| 444 | $(SRCDIR)/attach.c \ |
| 445 | $(SRCDIR)/backlink.c \ |
| 446 | $(SRCDIR)/backoffice.c \ |
| 447 | $(SRCDIR)/bag.c \ |
| 448 | $(SRCDIR)/bisect.c \ |
| 449 | $(SRCDIR)/blob.c \ |
| 450 | $(SRCDIR)/branch.c \ |
| @@ -672,10 +673,11 @@ | |
| 673 | TRANS_SRC = \ |
| 674 | $(OBJDIR)/add_.c \ |
| 675 | $(OBJDIR)/alerts_.c \ |
| 676 | $(OBJDIR)/allrepo_.c \ |
| 677 | $(OBJDIR)/attach_.c \ |
| 678 | $(OBJDIR)/backlink_.c \ |
| 679 | $(OBJDIR)/backoffice_.c \ |
| 680 | $(OBJDIR)/bag_.c \ |
| 681 | $(OBJDIR)/bisect_.c \ |
| 682 | $(OBJDIR)/blob_.c \ |
| 683 | $(OBJDIR)/branch_.c \ |
| @@ -813,10 +815,11 @@ | |
| 815 | OBJ = \ |
| 816 | $(OBJDIR)/add.o \ |
| 817 | $(OBJDIR)/alerts.o \ |
| 818 | $(OBJDIR)/allrepo.o \ |
| 819 | $(OBJDIR)/attach.o \ |
| 820 | $(OBJDIR)/backlink.o \ |
| 821 | $(OBJDIR)/backoffice.o \ |
| 822 | $(OBJDIR)/bag.o \ |
| 823 | $(OBJDIR)/bisect.o \ |
| 824 | $(OBJDIR)/blob.o \ |
| 825 | $(OBJDIR)/branch.o \ |
| @@ -1174,10 +1177,11 @@ | |
| 1177 | $(OBJDIR)/headers: $(OBJDIR)/page_index.h $(OBJDIR)/builtin_data.h $(OBJDIR)/default_css.h $(MAKEHEADERS) $(OBJDIR)/VERSION.h |
| 1178 | $(MAKEHEADERS) $(OBJDIR)/add_.c:$(OBJDIR)/add.h \ |
| 1179 | $(OBJDIR)/alerts_.c:$(OBJDIR)/alerts.h \ |
| 1180 | $(OBJDIR)/allrepo_.c:$(OBJDIR)/allrepo.h \ |
| 1181 | $(OBJDIR)/attach_.c:$(OBJDIR)/attach.h \ |
| 1182 | $(OBJDIR)/backlink_.c:$(OBJDIR)/backlink.h \ |
| 1183 | $(OBJDIR)/backoffice_.c:$(OBJDIR)/backoffice.h \ |
| 1184 | $(OBJDIR)/bag_.c:$(OBJDIR)/bag.h \ |
| 1185 | $(OBJDIR)/bisect_.c:$(OBJDIR)/bisect.h \ |
| 1186 | $(OBJDIR)/blob_.c:$(OBJDIR)/blob.h \ |
| 1187 | $(OBJDIR)/branch_.c:$(OBJDIR)/branch.h \ |
| @@ -1349,10 +1353,18 @@ | |
| 1353 | |
| 1354 | $(OBJDIR)/attach.o: $(OBJDIR)/attach_.c $(OBJDIR)/attach.h $(SRCDIR)/config.h |
| 1355 | $(XTCC) -o $(OBJDIR)/attach.o -c $(OBJDIR)/attach_.c |
| 1356 | |
| 1357 | $(OBJDIR)/attach.h: $(OBJDIR)/headers |
| 1358 | |
| 1359 | $(OBJDIR)/backlink_.c: $(SRCDIR)/backlink.c $(TRANSLATE) |
| 1360 | $(TRANSLATE) $(SRCDIR)/backlink.c >$@ |
| 1361 | |
| 1362 | $(OBJDIR)/backlink.o: $(OBJDIR)/backlink_.c $(OBJDIR)/backlink.h $(SRCDIR)/config.h |
| 1363 | $(XTCC) -o $(OBJDIR)/backlink.o -c $(OBJDIR)/backlink_.c |
| 1364 | |
| 1365 | $(OBJDIR)/backlink.h: $(OBJDIR)/headers |
| 1366 | |
| 1367 | $(OBJDIR)/backoffice_.c: $(SRCDIR)/backoffice.c $(TRANSLATE) |
| 1368 | $(TRANSLATE) $(SRCDIR)/backoffice.c >$@ |
| 1369 | |
| 1370 | $(OBJDIR)/backoffice.o: $(OBJDIR)/backoffice_.c $(OBJDIR)/backoffice.h $(SRCDIR)/config.h |
| 1371 |
+10
| --- win/Makefile.msc | ||
| +++ win/Makefile.msc | ||
| @@ -348,10 +348,11 @@ | ||
| 348 | 348 | |
| 349 | 349 | SRC = add_.c \ |
| 350 | 350 | alerts_.c \ |
| 351 | 351 | allrepo_.c \ |
| 352 | 352 | attach_.c \ |
| 353 | + backlink_.c \ | |
| 353 | 354 | backoffice_.c \ |
| 354 | 355 | bag_.c \ |
| 355 | 356 | bisect_.c \ |
| 356 | 357 | blob_.c \ |
| 357 | 358 | branch_.c \ |
| @@ -578,10 +579,11 @@ | ||
| 578 | 579 | |
| 579 | 580 | OBJ = $(OX)\add$O \ |
| 580 | 581 | $(OX)\alerts$O \ |
| 581 | 582 | $(OX)\allrepo$O \ |
| 582 | 583 | $(OX)\attach$O \ |
| 584 | + $(OX)\backlink$O \ | |
| 583 | 585 | $(OX)\backoffice$O \ |
| 584 | 586 | $(OX)\bag$O \ |
| 585 | 587 | $(OX)\bisect$O \ |
| 586 | 588 | $(OX)\blob$O \ |
| 587 | 589 | $(OX)\branch$O \ |
| @@ -781,10 +783,11 @@ | ||
| 781 | 783 | $(OX)\linkopts: $B\win\Makefile.msc |
| 782 | 784 | echo $(OX)\add.obj > $@ |
| 783 | 785 | echo $(OX)\alerts.obj >> $@ |
| 784 | 786 | echo $(OX)\allrepo.obj >> $@ |
| 785 | 787 | echo $(OX)\attach.obj >> $@ |
| 788 | + echo $(OX)\backlink.obj >> $@ | |
| 786 | 789 | echo $(OX)\backoffice.obj >> $@ |
| 787 | 790 | echo $(OX)\bag.obj >> $@ |
| 788 | 791 | echo $(OX)\bisect.obj >> $@ |
| 789 | 792 | echo $(OX)\blob.obj >> $@ |
| 790 | 793 | echo $(OX)\branch.obj >> $@ |
| @@ -1063,10 +1066,16 @@ | ||
| 1063 | 1066 | $(OX)\attach$O : attach_.c attach.h |
| 1064 | 1067 | $(TCC) /Fo$@ -c attach_.c |
| 1065 | 1068 | |
| 1066 | 1069 | attach_.c : $(SRCDIR)\attach.c |
| 1067 | 1070 | translate$E $** > $@ |
| 1071 | + | |
| 1072 | +$(OX)\backlink$O : backlink_.c backlink.h | |
| 1073 | + $(TCC) /Fo$@ -c backlink_.c | |
| 1074 | + | |
| 1075 | +backlink_.c : $(SRCDIR)\backlink.c | |
| 1076 | + translate$E $** > $@ | |
| 1068 | 1077 | |
| 1069 | 1078 | $(OX)\backoffice$O : backoffice_.c backoffice.h |
| 1070 | 1079 | $(TCC) /Fo$@ -c backoffice_.c |
| 1071 | 1080 | |
| 1072 | 1081 | backoffice_.c : $(SRCDIR)\backoffice.c |
| @@ -1882,10 +1891,11 @@ | ||
| 1882 | 1891 | headers: makeheaders$E page_index.h builtin_data.h default_css.h VERSION.h |
| 1883 | 1892 | makeheaders$E add_.c:add.h \ |
| 1884 | 1893 | alerts_.c:alerts.h \ |
| 1885 | 1894 | allrepo_.c:allrepo.h \ |
| 1886 | 1895 | attach_.c:attach.h \ |
| 1896 | + backlink_.c:backlink.h \ | |
| 1887 | 1897 | backoffice_.c:backoffice.h \ |
| 1888 | 1898 | bag_.c:bag.h \ |
| 1889 | 1899 | bisect_.c:bisect.h \ |
| 1890 | 1900 | blob_.c:blob.h \ |
| 1891 | 1901 | branch_.c:branch.h \ |
| 1892 | 1902 |
| --- win/Makefile.msc | |
| +++ win/Makefile.msc | |
| @@ -348,10 +348,11 @@ | |
| 348 | |
| 349 | SRC = add_.c \ |
| 350 | alerts_.c \ |
| 351 | allrepo_.c \ |
| 352 | attach_.c \ |
| 353 | backoffice_.c \ |
| 354 | bag_.c \ |
| 355 | bisect_.c \ |
| 356 | blob_.c \ |
| 357 | branch_.c \ |
| @@ -578,10 +579,11 @@ | |
| 578 | |
| 579 | OBJ = $(OX)\add$O \ |
| 580 | $(OX)\alerts$O \ |
| 581 | $(OX)\allrepo$O \ |
| 582 | $(OX)\attach$O \ |
| 583 | $(OX)\backoffice$O \ |
| 584 | $(OX)\bag$O \ |
| 585 | $(OX)\bisect$O \ |
| 586 | $(OX)\blob$O \ |
| 587 | $(OX)\branch$O \ |
| @@ -781,10 +783,11 @@ | |
| 781 | $(OX)\linkopts: $B\win\Makefile.msc |
| 782 | echo $(OX)\add.obj > $@ |
| 783 | echo $(OX)\alerts.obj >> $@ |
| 784 | echo $(OX)\allrepo.obj >> $@ |
| 785 | echo $(OX)\attach.obj >> $@ |
| 786 | echo $(OX)\backoffice.obj >> $@ |
| 787 | echo $(OX)\bag.obj >> $@ |
| 788 | echo $(OX)\bisect.obj >> $@ |
| 789 | echo $(OX)\blob.obj >> $@ |
| 790 | echo $(OX)\branch.obj >> $@ |
| @@ -1063,10 +1066,16 @@ | |
| 1063 | $(OX)\attach$O : attach_.c attach.h |
| 1064 | $(TCC) /Fo$@ -c attach_.c |
| 1065 | |
| 1066 | attach_.c : $(SRCDIR)\attach.c |
| 1067 | translate$E $** > $@ |
| 1068 | |
| 1069 | $(OX)\backoffice$O : backoffice_.c backoffice.h |
| 1070 | $(TCC) /Fo$@ -c backoffice_.c |
| 1071 | |
| 1072 | backoffice_.c : $(SRCDIR)\backoffice.c |
| @@ -1882,10 +1891,11 @@ | |
| 1882 | headers: makeheaders$E page_index.h builtin_data.h default_css.h VERSION.h |
| 1883 | makeheaders$E add_.c:add.h \ |
| 1884 | alerts_.c:alerts.h \ |
| 1885 | allrepo_.c:allrepo.h \ |
| 1886 | attach_.c:attach.h \ |
| 1887 | backoffice_.c:backoffice.h \ |
| 1888 | bag_.c:bag.h \ |
| 1889 | bisect_.c:bisect.h \ |
| 1890 | blob_.c:blob.h \ |
| 1891 | branch_.c:branch.h \ |
| 1892 |
| --- win/Makefile.msc | |
| +++ win/Makefile.msc | |
| @@ -348,10 +348,11 @@ | |
| 348 | |
| 349 | SRC = add_.c \ |
| 350 | alerts_.c \ |
| 351 | allrepo_.c \ |
| 352 | attach_.c \ |
| 353 | backlink_.c \ |
| 354 | backoffice_.c \ |
| 355 | bag_.c \ |
| 356 | bisect_.c \ |
| 357 | blob_.c \ |
| 358 | branch_.c \ |
| @@ -578,10 +579,11 @@ | |
| 579 | |
| 580 | OBJ = $(OX)\add$O \ |
| 581 | $(OX)\alerts$O \ |
| 582 | $(OX)\allrepo$O \ |
| 583 | $(OX)\attach$O \ |
| 584 | $(OX)\backlink$O \ |
| 585 | $(OX)\backoffice$O \ |
| 586 | $(OX)\bag$O \ |
| 587 | $(OX)\bisect$O \ |
| 588 | $(OX)\blob$O \ |
| 589 | $(OX)\branch$O \ |
| @@ -781,10 +783,11 @@ | |
| 783 | $(OX)\linkopts: $B\win\Makefile.msc |
| 784 | echo $(OX)\add.obj > $@ |
| 785 | echo $(OX)\alerts.obj >> $@ |
| 786 | echo $(OX)\allrepo.obj >> $@ |
| 787 | echo $(OX)\attach.obj >> $@ |
| 788 | echo $(OX)\backlink.obj >> $@ |
| 789 | echo $(OX)\backoffice.obj >> $@ |
| 790 | echo $(OX)\bag.obj >> $@ |
| 791 | echo $(OX)\bisect.obj >> $@ |
| 792 | echo $(OX)\blob.obj >> $@ |
| 793 | echo $(OX)\branch.obj >> $@ |
| @@ -1063,10 +1066,16 @@ | |
| 1066 | $(OX)\attach$O : attach_.c attach.h |
| 1067 | $(TCC) /Fo$@ -c attach_.c |
| 1068 | |
| 1069 | attach_.c : $(SRCDIR)\attach.c |
| 1070 | translate$E $** > $@ |
| 1071 | |
| 1072 | $(OX)\backlink$O : backlink_.c backlink.h |
| 1073 | $(TCC) /Fo$@ -c backlink_.c |
| 1074 | |
| 1075 | backlink_.c : $(SRCDIR)\backlink.c |
| 1076 | translate$E $** > $@ |
| 1077 | |
| 1078 | $(OX)\backoffice$O : backoffice_.c backoffice.h |
| 1079 | $(TCC) /Fo$@ -c backoffice_.c |
| 1080 | |
| 1081 | backoffice_.c : $(SRCDIR)\backoffice.c |
| @@ -1882,10 +1891,11 @@ | |
| 1891 | headers: makeheaders$E page_index.h builtin_data.h default_css.h VERSION.h |
| 1892 | makeheaders$E add_.c:add.h \ |
| 1893 | alerts_.c:alerts.h \ |
| 1894 | allrepo_.c:allrepo.h \ |
| 1895 | attach_.c:attach.h \ |
| 1896 | backlink_.c:backlink.h \ |
| 1897 | backoffice_.c:backoffice.h \ |
| 1898 | bag_.c:bag.h \ |
| 1899 | bisect_.c:bisect.h \ |
| 1900 | blob_.c:blob.h \ |
| 1901 | branch_.c:branch.h \ |
| 1902 |