Fossil SCM

When /timeline selects specific branches using r=, t=, rl=, tl= or similar, then try to show the selected branches at the left margin. To help accomplish this, the code that computes branch name matching by various algorithms (GLOB, LIKE, REGEXP, LIST) is factored out into a new source file "match.c".

drh 2024-12-23 20:08 trunk
Commit e89ea2c93c38fe1cd2b7746694ecddca26dae9e510d40f1fe9ffdb670c4879f0
+9 -6
--- src/graph.c
+++ src/graph.c
@@ -495,11 +495,15 @@
495495
**
496496
** TIMELINE_DISJOINT: Omit descenders
497497
** TIMELINE_FILLGAPS: Use step-children
498498
** TIMELINE_XMERGE: Omit off-graph merge lines
499499
*/
500
-void graph_finish(GraphContext *p, const char *zLeftBranch, u32 tmFlags){
500
+void graph_finish(
501
+ GraphContext *p, /* The graph to be laid out */
502
+ Matcher *pLeftBranch, /* Compares true for left-most branch */
503
+ u32 tmFlags /* TIMELINE flags */
504
+){
501505
GraphRow *pRow, *pDesc, *pDup, *pLoop, *pParent;
502506
int i, j;
503507
u64 mask;
504508
int hasDup = 0; /* True if one or more isDup entries */
505509
const char *zTrunk;
@@ -963,12 +967,12 @@
963967
}
964968
}
965969
966970
/*
967971
** Compute the rail mapping that tries to put the branch named
968
- ** zLeftBranch at the left margin. Other branches that merge
969
- ** with zLeftBranch are to the right with merge rails in between.
972
+ ** pLeftBranch at the left margin. Other branches that merge
973
+ ** with pLeftBranch are to the right with merge rails in between.
970974
**
971975
** aMap[X]=Y means that the X-th rail is drawn as the Y-th rail.
972976
**
973977
** Do not move rails around if there are timewarps, because that can
974978
** seriously mess up the display of timewarps. Timewarps should be
@@ -988,14 +992,13 @@
988992
**
989993
** 0x01 A rail that merges with the preferred branch
990994
*/
991995
u8 aPriority[GR_MAX_RAIL];
992996
memset(aPriority, 0, p->mxRail+1);
993
- if( zLeftBranch ){
994
- char *zLeft = persistBranchName(p, zLeftBranch);
997
+ if( pLeftBranch ){
995998
for(pRow=p->pFirst; pRow; pRow=pRow->pNext){
996
- if( pRow->zBranch==zLeft ){
999
+ if( match_text(pLeftBranch, pRow->zBranch) ){
9971000
aPriority[pRow->iRail] |= 4;
9981001
for(i=0; i<=p->mxRail; i++){
9991002
if( pRow->mergeIn[i] ) aPriority[i] |= 1;
10001003
}
10011004
if( pRow->mergeOut>=0 ) aPriority[pRow->mergeOut] |= 1;
10021005
--- src/graph.c
+++ src/graph.c
@@ -495,11 +495,15 @@
495 **
496 ** TIMELINE_DISJOINT: Omit descenders
497 ** TIMELINE_FILLGAPS: Use step-children
498 ** TIMELINE_XMERGE: Omit off-graph merge lines
499 */
500 void graph_finish(GraphContext *p, const char *zLeftBranch, u32 tmFlags){
 
 
 
 
501 GraphRow *pRow, *pDesc, *pDup, *pLoop, *pParent;
502 int i, j;
503 u64 mask;
504 int hasDup = 0; /* True if one or more isDup entries */
505 const char *zTrunk;
@@ -963,12 +967,12 @@
963 }
964 }
965
966 /*
967 ** Compute the rail mapping that tries to put the branch named
968 ** zLeftBranch at the left margin. Other branches that merge
969 ** with zLeftBranch are to the right with merge rails in between.
970 **
971 ** aMap[X]=Y means that the X-th rail is drawn as the Y-th rail.
972 **
973 ** Do not move rails around if there are timewarps, because that can
974 ** seriously mess up the display of timewarps. Timewarps should be
@@ -988,14 +992,13 @@
988 **
989 ** 0x01 A rail that merges with the preferred branch
990 */
991 u8 aPriority[GR_MAX_RAIL];
992 memset(aPriority, 0, p->mxRail+1);
993 if( zLeftBranch ){
994 char *zLeft = persistBranchName(p, zLeftBranch);
995 for(pRow=p->pFirst; pRow; pRow=pRow->pNext){
996 if( pRow->zBranch==zLeft ){
997 aPriority[pRow->iRail] |= 4;
998 for(i=0; i<=p->mxRail; i++){
999 if( pRow->mergeIn[i] ) aPriority[i] |= 1;
1000 }
1001 if( pRow->mergeOut>=0 ) aPriority[pRow->mergeOut] |= 1;
1002
--- src/graph.c
+++ src/graph.c
@@ -495,11 +495,15 @@
495 **
496 ** TIMELINE_DISJOINT: Omit descenders
497 ** TIMELINE_FILLGAPS: Use step-children
498 ** TIMELINE_XMERGE: Omit off-graph merge lines
499 */
500 void graph_finish(
501 GraphContext *p, /* The graph to be laid out */
502 Matcher *pLeftBranch, /* Compares true for left-most branch */
503 u32 tmFlags /* TIMELINE flags */
504 ){
505 GraphRow *pRow, *pDesc, *pDup, *pLoop, *pParent;
506 int i, j;
507 u64 mask;
508 int hasDup = 0; /* True if one or more isDup entries */
509 const char *zTrunk;
@@ -963,12 +967,12 @@
967 }
968 }
969
970 /*
971 ** Compute the rail mapping that tries to put the branch named
972 ** pLeftBranch at the left margin. Other branches that merge
973 ** with pLeftBranch are to the right with merge rails in between.
974 **
975 ** aMap[X]=Y means that the X-th rail is drawn as the Y-th rail.
976 **
977 ** Do not move rails around if there are timewarps, because that can
978 ** seriously mess up the display of timewarps. Timewarps should be
@@ -988,14 +992,13 @@
992 **
993 ** 0x01 A rail that merges with the preferred branch
994 */
995 u8 aPriority[GR_MAX_RAIL];
996 memset(aPriority, 0, p->mxRail+1);
997 if( pLeftBranch ){
 
998 for(pRow=p->pFirst; pRow; pRow=pRow->pNext){
999 if( match_text(pLeftBranch, pRow->zBranch) ){
1000 aPriority[pRow->iRail] |= 4;
1001 for(i=0; i<=p->mxRail; i++){
1002 if( pRow->mergeIn[i] ) aPriority[i] |= 1;
1003 }
1004 if( pRow->mergeOut>=0 ) aPriority[pRow->mergeOut] |= 1;
1005
+12
--- src/main.mk
+++ src/main.mk
@@ -99,10 +99,11 @@
9999
$(SRCDIR)/lookslike.c \
100100
$(SRCDIR)/main.c \
101101
$(SRCDIR)/manifest.c \
102102
$(SRCDIR)/markdown.c \
103103
$(SRCDIR)/markdown_html.c \
104
+ $(SRCDIR)/match.c \
104105
$(SRCDIR)/md5.c \
105106
$(SRCDIR)/merge.c \
106107
$(SRCDIR)/merge3.c \
107108
$(SRCDIR)/moderate.c \
108109
$(SRCDIR)/name.c \
@@ -364,10 +365,11 @@
364365
$(OBJDIR)/lookslike_.c \
365366
$(OBJDIR)/main_.c \
366367
$(OBJDIR)/manifest_.c \
367368
$(OBJDIR)/markdown_.c \
368369
$(OBJDIR)/markdown_html_.c \
370
+ $(OBJDIR)/match_.c \
369371
$(OBJDIR)/md5_.c \
370372
$(OBJDIR)/merge_.c \
371373
$(OBJDIR)/merge3_.c \
372374
$(OBJDIR)/moderate_.c \
373375
$(OBJDIR)/name_.c \
@@ -513,10 +515,11 @@
513515
$(OBJDIR)/lookslike.o \
514516
$(OBJDIR)/main.o \
515517
$(OBJDIR)/manifest.o \
516518
$(OBJDIR)/markdown.o \
517519
$(OBJDIR)/markdown_html.o \
520
+ $(OBJDIR)/match.o \
518521
$(OBJDIR)/md5.o \
519522
$(OBJDIR)/merge.o \
520523
$(OBJDIR)/merge3.o \
521524
$(OBJDIR)/moderate.o \
522525
$(OBJDIR)/name.o \
@@ -848,10 +851,11 @@
848851
$(OBJDIR)/lookslike_.c:$(OBJDIR)/lookslike.h \
849852
$(OBJDIR)/main_.c:$(OBJDIR)/main.h \
850853
$(OBJDIR)/manifest_.c:$(OBJDIR)/manifest.h \
851854
$(OBJDIR)/markdown_.c:$(OBJDIR)/markdown.h \
852855
$(OBJDIR)/markdown_html_.c:$(OBJDIR)/markdown_html.h \
856
+ $(OBJDIR)/match_.c:$(OBJDIR)/match.h \
853857
$(OBJDIR)/md5_.c:$(OBJDIR)/md5.h \
854858
$(OBJDIR)/merge_.c:$(OBJDIR)/merge.h \
855859
$(OBJDIR)/merge3_.c:$(OBJDIR)/merge3.h \
856860
$(OBJDIR)/moderate_.c:$(OBJDIR)/moderate.h \
857861
$(OBJDIR)/name_.c:$(OBJDIR)/name.h \
@@ -1597,10 +1601,18 @@
15971601
15981602
$(OBJDIR)/markdown_html.o: $(OBJDIR)/markdown_html_.c $(OBJDIR)/markdown_html.h $(SRCDIR)/config.h
15991603
$(XTCC) -o $(OBJDIR)/markdown_html.o -c $(OBJDIR)/markdown_html_.c
16001604
16011605
$(OBJDIR)/markdown_html.h: $(OBJDIR)/headers
1606
+
1607
+$(OBJDIR)/match_.c: $(SRCDIR)/match.c $(OBJDIR)/translate
1608
+ $(OBJDIR)/translate $(SRCDIR)/match.c >$@
1609
+
1610
+$(OBJDIR)/match.o: $(OBJDIR)/match_.c $(OBJDIR)/match.h $(SRCDIR)/config.h
1611
+ $(XTCC) -o $(OBJDIR)/match.o -c $(OBJDIR)/match_.c
1612
+
1613
+$(OBJDIR)/match.h: $(OBJDIR)/headers
16021614
16031615
$(OBJDIR)/md5_.c: $(SRCDIR)/md5.c $(OBJDIR)/translate
16041616
$(OBJDIR)/translate $(SRCDIR)/md5.c >$@
16051617
16061618
$(OBJDIR)/md5.o: $(OBJDIR)/md5_.c $(OBJDIR)/md5.h $(SRCDIR)/config.h
16071619
16081620
ADDED src/match.c
--- src/main.mk
+++ src/main.mk
@@ -99,10 +99,11 @@
99 $(SRCDIR)/lookslike.c \
100 $(SRCDIR)/main.c \
101 $(SRCDIR)/manifest.c \
102 $(SRCDIR)/markdown.c \
103 $(SRCDIR)/markdown_html.c \
 
104 $(SRCDIR)/md5.c \
105 $(SRCDIR)/merge.c \
106 $(SRCDIR)/merge3.c \
107 $(SRCDIR)/moderate.c \
108 $(SRCDIR)/name.c \
@@ -364,10 +365,11 @@
364 $(OBJDIR)/lookslike_.c \
365 $(OBJDIR)/main_.c \
366 $(OBJDIR)/manifest_.c \
367 $(OBJDIR)/markdown_.c \
368 $(OBJDIR)/markdown_html_.c \
 
369 $(OBJDIR)/md5_.c \
370 $(OBJDIR)/merge_.c \
371 $(OBJDIR)/merge3_.c \
372 $(OBJDIR)/moderate_.c \
373 $(OBJDIR)/name_.c \
@@ -513,10 +515,11 @@
513 $(OBJDIR)/lookslike.o \
514 $(OBJDIR)/main.o \
515 $(OBJDIR)/manifest.o \
516 $(OBJDIR)/markdown.o \
517 $(OBJDIR)/markdown_html.o \
 
518 $(OBJDIR)/md5.o \
519 $(OBJDIR)/merge.o \
520 $(OBJDIR)/merge3.o \
521 $(OBJDIR)/moderate.o \
522 $(OBJDIR)/name.o \
@@ -848,10 +851,11 @@
848 $(OBJDIR)/lookslike_.c:$(OBJDIR)/lookslike.h \
849 $(OBJDIR)/main_.c:$(OBJDIR)/main.h \
850 $(OBJDIR)/manifest_.c:$(OBJDIR)/manifest.h \
851 $(OBJDIR)/markdown_.c:$(OBJDIR)/markdown.h \
852 $(OBJDIR)/markdown_html_.c:$(OBJDIR)/markdown_html.h \
 
853 $(OBJDIR)/md5_.c:$(OBJDIR)/md5.h \
854 $(OBJDIR)/merge_.c:$(OBJDIR)/merge.h \
855 $(OBJDIR)/merge3_.c:$(OBJDIR)/merge3.h \
856 $(OBJDIR)/moderate_.c:$(OBJDIR)/moderate.h \
857 $(OBJDIR)/name_.c:$(OBJDIR)/name.h \
@@ -1597,10 +1601,18 @@
1597
1598 $(OBJDIR)/markdown_html.o: $(OBJDIR)/markdown_html_.c $(OBJDIR)/markdown_html.h $(SRCDIR)/config.h
1599 $(XTCC) -o $(OBJDIR)/markdown_html.o -c $(OBJDIR)/markdown_html_.c
1600
1601 $(OBJDIR)/markdown_html.h: $(OBJDIR)/headers
 
 
 
 
 
 
 
 
1602
1603 $(OBJDIR)/md5_.c: $(SRCDIR)/md5.c $(OBJDIR)/translate
1604 $(OBJDIR)/translate $(SRCDIR)/md5.c >$@
1605
1606 $(OBJDIR)/md5.o: $(OBJDIR)/md5_.c $(OBJDIR)/md5.h $(SRCDIR)/config.h
1607
1608 DDED src/match.c
--- src/main.mk
+++ src/main.mk
@@ -99,10 +99,11 @@
99 $(SRCDIR)/lookslike.c \
100 $(SRCDIR)/main.c \
101 $(SRCDIR)/manifest.c \
102 $(SRCDIR)/markdown.c \
103 $(SRCDIR)/markdown_html.c \
104 $(SRCDIR)/match.c \
105 $(SRCDIR)/md5.c \
106 $(SRCDIR)/merge.c \
107 $(SRCDIR)/merge3.c \
108 $(SRCDIR)/moderate.c \
109 $(SRCDIR)/name.c \
@@ -364,10 +365,11 @@
365 $(OBJDIR)/lookslike_.c \
366 $(OBJDIR)/main_.c \
367 $(OBJDIR)/manifest_.c \
368 $(OBJDIR)/markdown_.c \
369 $(OBJDIR)/markdown_html_.c \
370 $(OBJDIR)/match_.c \
371 $(OBJDIR)/md5_.c \
372 $(OBJDIR)/merge_.c \
373 $(OBJDIR)/merge3_.c \
374 $(OBJDIR)/moderate_.c \
375 $(OBJDIR)/name_.c \
@@ -513,10 +515,11 @@
515 $(OBJDIR)/lookslike.o \
516 $(OBJDIR)/main.o \
517 $(OBJDIR)/manifest.o \
518 $(OBJDIR)/markdown.o \
519 $(OBJDIR)/markdown_html.o \
520 $(OBJDIR)/match.o \
521 $(OBJDIR)/md5.o \
522 $(OBJDIR)/merge.o \
523 $(OBJDIR)/merge3.o \
524 $(OBJDIR)/moderate.o \
525 $(OBJDIR)/name.o \
@@ -848,10 +851,11 @@
851 $(OBJDIR)/lookslike_.c:$(OBJDIR)/lookslike.h \
852 $(OBJDIR)/main_.c:$(OBJDIR)/main.h \
853 $(OBJDIR)/manifest_.c:$(OBJDIR)/manifest.h \
854 $(OBJDIR)/markdown_.c:$(OBJDIR)/markdown.h \
855 $(OBJDIR)/markdown_html_.c:$(OBJDIR)/markdown_html.h \
856 $(OBJDIR)/match_.c:$(OBJDIR)/match.h \
857 $(OBJDIR)/md5_.c:$(OBJDIR)/md5.h \
858 $(OBJDIR)/merge_.c:$(OBJDIR)/merge.h \
859 $(OBJDIR)/merge3_.c:$(OBJDIR)/merge3.h \
860 $(OBJDIR)/moderate_.c:$(OBJDIR)/moderate.h \
861 $(OBJDIR)/name_.c:$(OBJDIR)/name.h \
@@ -1597,10 +1601,18 @@
1601
1602 $(OBJDIR)/markdown_html.o: $(OBJDIR)/markdown_html_.c $(OBJDIR)/markdown_html.h $(SRCDIR)/config.h
1603 $(XTCC) -o $(OBJDIR)/markdown_html.o -c $(OBJDIR)/markdown_html_.c
1604
1605 $(OBJDIR)/markdown_html.h: $(OBJDIR)/headers
1606
1607 $(OBJDIR)/match_.c: $(SRCDIR)/match.c $(OBJDIR)/translate
1608 $(OBJDIR)/translate $(SRCDIR)/match.c >$@
1609
1610 $(OBJDIR)/match.o: $(OBJDIR)/match_.c $(OBJDIR)/match.h $(SRCDIR)/config.h
1611 $(XTCC) -o $(OBJDIR)/match.o -c $(OBJDIR)/match_.c
1612
1613 $(OBJDIR)/match.h: $(OBJDIR)/headers
1614
1615 $(OBJDIR)/md5_.c: $(SRCDIR)/md5.c $(OBJDIR)/translate
1616 $(OBJDIR)/translate $(SRCDIR)/md5.c >$@
1617
1618 $(OBJDIR)/md5.o: $(OBJDIR)/md5_.c $(OBJDIR)/md5.h $(SRCDIR)/config.h
1619
1620 DDED src/match.c
+73
--- a/src/match.c
+++ b/src/match.c
@@ -0,0 +1,73 @@
1
+/*
2
+** Copyright (c) 2007 D. Richard Hipp
3
+**
4
+** This program is free software; you can redistribute it and/or
5
+** modify it under the terms of the Simplified BSD License (also
6
+** known as the "2-Clause License" or "FreeBSD License".)
7
+
8
+** This program is distributed in the hope that it will be useful,
9
+** but without any warranty; without even the implied warranty of
10
+** merchantability or fitness for a particular purpose.
11
+**
12
+** Author contact information:
13
+** [email protected]
14
+** http://www.hwaci.com/drh/
15
+**
16
+*******************************************************************************
17
+**
18
+** This file contains code to implement string comparisons using a
19
+** variety of algorithm. The comparison algorithm can be any of:
20
+**
21
+** MS_EXACT The string must exactly match the pattern.
22
+**
23
+** MS_BRLIST The pattern is a space- and/or comma-separated
24
+** list of strings, any one of which may match
25
+** the input string.
26
+**
27
+** MS_GLOB Like BRLIST, except each component of the pattern
28
+** is a GLOB expression.
29
+**
30
+** MS_LIKE Like BRLIST, except each component of the pattern
31
+** is an SQL LIKE expression.
32
+**
33
+** MS_REGEXP Like BRLIST, except each component of the pattern
34
+** is a regular expression.
35
+**
36
+*/
37
+#include "config.h"
38
+#include <string.h>
39
+#include "match.h"
40
+
41
+#if INTERFACE
42
+/*
43
+** Types of comparisons that we are able to perform:
44
+*/
45
+typedef enum {
46
+ MS_EXACT, /* Exact str, /* Matches against a list of , /* Matches against a list of Matches against a list of LI, /* Matches against a list of regular expressions. */
47
+ MS_BRLIST, /* Matches any element of a list */
48
+} MatchStyle;
49
+
50
+/*
51
+** The following object represents a precompiled pattern to use for
52
+** string matching.
53
+**
54
+** * Create an instance of this object using match_create().
55
+** * Do comparisons using match_text().
56
+** * Destroy using match_free() when you are done.
57
+**
58
+*/
59
+struct Matcher {
60
+ MatchStyle style; /* Which algorithm to use */
61
+ int nPattern; /* How many patterns are their */
62
+ char **azPattern; /* List of patterns */
63
+ ReCompiled **aRe; /* List of compiled regular expressions */
64
+};
65
+
66
+#endif /*INTERFACE*/
67
+
68
+re; you can redistribute it and/or
69
+** modify it under the terms of the Simplified BSD License (also
70
+** known as the "2-Clause License" or "FreeBSD License".)
71
+
72
+** This program is distributed in the hope that it will be useful/*
73
+** CopyrightGLOB
--- a/src/match.c
+++ b/src/match.c
@@ -0,0 +1,73 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
--- a/src/match.c
+++ b/src/match.c
@@ -0,0 +1,73 @@
1 /*
2 ** Copyright (c) 2007 D. Richard Hipp
3 **
4 ** This program is free software; you can redistribute it and/or
5 ** modify it under the terms of the Simplified BSD License (also
6 ** known as the "2-Clause License" or "FreeBSD License".)
7
8 ** This program is distributed in the hope that it will be useful,
9 ** but without any warranty; without even the implied warranty of
10 ** merchantability or fitness for a particular purpose.
11 **
12 ** Author contact information:
13 ** [email protected]
14 ** http://www.hwaci.com/drh/
15 **
16 *******************************************************************************
17 **
18 ** This file contains code to implement string comparisons using a
19 ** variety of algorithm. The comparison algorithm can be any of:
20 **
21 ** MS_EXACT The string must exactly match the pattern.
22 **
23 ** MS_BRLIST The pattern is a space- and/or comma-separated
24 ** list of strings, any one of which may match
25 ** the input string.
26 **
27 ** MS_GLOB Like BRLIST, except each component of the pattern
28 ** is a GLOB expression.
29 **
30 ** MS_LIKE Like BRLIST, except each component of the pattern
31 ** is an SQL LIKE expression.
32 **
33 ** MS_REGEXP Like BRLIST, except each component of the pattern
34 ** is a regular expression.
35 **
36 */
37 #include "config.h"
38 #include <string.h>
39 #include "match.h"
40
41 #if INTERFACE
42 /*
43 ** Types of comparisons that we are able to perform:
44 */
45 typedef enum {
46 MS_EXACT, /* Exact str, /* Matches against a list of , /* Matches against a list of Matches against a list of LI, /* Matches against a list of regular expressions. */
47 MS_BRLIST, /* Matches any element of a list */
48 } MatchStyle;
49
50 /*
51 ** The following object represents a precompiled pattern to use for
52 ** string matching.
53 **
54 ** * Create an instance of this object using match_create().
55 ** * Do comparisons using match_text().
56 ** * Destroy using match_free() when you are done.
57 **
58 */
59 struct Matcher {
60 MatchStyle style; /* Which algorithm to use */
61 int nPattern; /* How many patterns are their */
62 char **azPattern; /* List of patterns */
63 ReCompiled **aRe; /* List of compiled regular expressions */
64 };
65
66 #endif /*INTERFACE*/
67
68 re; you can redistribute it and/or
69 ** modify it under the terms of the Simplified BSD License (also
70 ** known as the "2-Clause License" or "FreeBSD License".)
71
72 ** This program is distributed in the hope that it will be useful/*
73 ** CopyrightGLOB
+9 -232
--- src/timeline.c
+++ src/timeline.c
@@ -191,11 +191,11 @@
191191
void www_print_timeline(
192192
Stmt *pQuery, /* Query to implement the timeline */
193193
int tmFlags, /* Flags controlling display behavior */
194194
const char *zThisUser, /* Suppress links to this user */
195195
const char *zThisTag, /* Suppress links to this tag */
196
- const char *zLeftBranch, /* Strive to put this branch on the left margin */
196
+ Matcher *pLeftBranch, /* Comparison function to use for zLeftBranch */
197197
int selectedRid, /* Highlight the line with this RID value or zero */
198198
int secondRid, /* Secondary highlight (or zero) */
199199
void (*xExtra)(int) /* Routine to call on each line of display */
200200
){
201201
int mxWikiLen;
@@ -813,11 +813,11 @@
813813
}
814814
if( pendingEndTr ){
815815
@ </td></tr>
816816
}
817817
if( pGraph ){
818
- graph_finish(pGraph, zLeftBranch, tmFlags);
818
+ graph_finish(pGraph, pLeftBranch, tmFlags);
819819
if( pGraph->nErr ){
820820
graph_free(pGraph);
821821
pGraph = 0;
822822
}else{
823823
@ <tr class="timelineBottom" id="btm-%d(iTableId)">\
@@ -1304,237 +1304,10 @@
13041304
if( zChng==0 || zChng[0]==0 ) return;
13051305
blob_appendf(pDescription, " that include changes to files matching '%h'",
13061306
zChng);
13071307
}
13081308
1309
-/*
1310
-** Tag match expression type code.
1311
-*/
1312
-typedef enum {
1313
- MS_EXACT, /* Matches a single tag by exact string comparison. */
1314
- MS_GLOB, /* Matches tags against a list of GLOB patterns. */
1315
- MS_LIKE, /* Matches tags against a list of LIKE patterns. */
1316
- MS_REGEXP, /* Matches tags against a list of regular expressions. */
1317
- MS_BRLIST, /* Same as REGEXP, except the regular expression is a list
1318
- ** of branch names */
1319
-} MatchStyle;
1320
-
1321
-/*
1322
-** Quote a tag string by surrounding it with double quotes and preceding
1323
-** internal double quotes and backslashes with backslashes.
1324
-*/
1325
-static const char *tagQuote(
1326
- int len, /* Maximum length of zTag, or negative for unlimited */
1327
- const char *zTag /* Tag string */
1328
-){
1329
- Blob blob = BLOB_INITIALIZER;
1330
- int i, j;
1331
- blob_zero(&blob);
1332
- blob_append(&blob, "\"", 1);
1333
- for( i=j=0; zTag[j] && (len<0 || j<len); ++j ){
1334
- if( zTag[j]=='\"' || zTag[j]=='\\' ){
1335
- if( j>i ){
1336
- blob_append(&blob, zTag+i, j-i);
1337
- }
1338
- blob_append(&blob, "\\", 1);
1339
- i = j;
1340
- }
1341
- }
1342
- if( j>i ){
1343
- blob_append(&blob, zTag+i, j-i);
1344
- }
1345
- blob_append(&blob, "\"", 1);
1346
- return blob_str(&blob);
1347
-}
1348
-
1349
-/*
1350
-** Construct the tag match SQL expression.
1351
-**
1352
-** This function is adapted from glob_expr() to support the MS_EXACT, MS_GLOB,
1353
-** MS_LIKE, MS_REGEXP, and MS_BRLIST match styles.
1354
-**
1355
-** For MS_EXACT, the returned expression
1356
-** checks for integer match against the tag ID which is looked up directly by
1357
-** this function. For the other modes, the returned SQL expression performs
1358
-** string comparisons against the tag names, so it is necessary to join against
1359
-** the tag table to access the "tagname" column.
1360
-**
1361
-** Each pattern is adjusted to to start with "sym-" and be anchored at end.
1362
-**
1363
-** In MS_REGEXP mode, backslash can be used to protect delimiter characters.
1364
-** The backslashes are not removed from the regular expression.
1365
-**
1366
-** In addition to assembling and returning an SQL expression, this function
1367
-** makes an English-language description of the patterns being matched, suitable
1368
-** for display in the web interface.
1369
-**
1370
-** If any errors arise during processing, *zError is set to an error message.
1371
-** Otherwise it is set to NULL.
1372
-*/
1373
-static const char *tagMatchExpression(
1374
- MatchStyle matchStyle, /* Match style code */
1375
- const char *zTag, /* Tag name, match pattern, or pattern list */
1376
- const char **zDesc, /* Output expression description string */
1377
- const char **zError /* Output error string */
1378
-){
1379
- Blob expr = BLOB_INITIALIZER; /* SQL expression string assembly buffer */
1380
- Blob desc = BLOB_INITIALIZER; /* English description of match patterns */
1381
- Blob err = BLOB_INITIALIZER; /* Error text assembly buffer */
1382
- const char *zStart; /* Text at start of expression */
1383
- const char *zDelimiter; /* Text between expression terms */
1384
- const char *zEnd; /* Text at end of expression */
1385
- const char *zPrefix; /* Text before each match pattern */
1386
- const char *zSuffix; /* Text after each match pattern */
1387
- const char *zIntro; /* Text introducing pattern description */
1388
- const char *zPattern = 0; /* Previous quoted pattern */
1389
- const char *zFail = 0; /* Current failure message or NULL if okay */
1390
- const char *zOr = " or "; /* Text before final quoted pattern */
1391
- char cDel; /* Input delimiter character */
1392
- int i; /* Input match pattern length counter */
1393
-
1394
- /* Optimize exact matches by looking up the ID in advance to create a simple
1395
- * numeric comparison. Bypass the remainder of this function. */
1396
- if( matchStyle==MS_EXACT ){
1397
- *zDesc = tagQuote(-1, zTag);
1398
- return mprintf("(tagid=%d)", db_int(-1,
1399
- "SELECT tagid FROM tag WHERE tagname='sym-%q'", zTag));
1400
- }
1401
-
1402
- /* Decide pattern prefix and suffix strings according to match style. */
1403
- if( matchStyle==MS_GLOB ){
1404
- zStart = "(";
1405
- zDelimiter = " OR ";
1406
- zEnd = ")";
1407
- zPrefix = "tagname GLOB 'sym-";
1408
- zSuffix = "'";
1409
- zIntro = "glob pattern ";
1410
- }else if( matchStyle==MS_LIKE ){
1411
- zStart = "(";
1412
- zDelimiter = " OR ";
1413
- zEnd = ")";
1414
- zPrefix = "tagname LIKE 'sym-";
1415
- zSuffix = "'";
1416
- zIntro = "SQL LIKE pattern ";
1417
- }else if( matchStyle==MS_REGEXP ){
1418
- zStart = "(tagname REGEXP '^sym-(";
1419
- zDelimiter = "|";
1420
- zEnd = ")$')";
1421
- zPrefix = "";
1422
- zSuffix = "";
1423
- zIntro = "regular expression ";
1424
- }else/* if( matchStyle==MS_BRLIST )*/{
1425
- zStart = "tagname IN ('sym-";
1426
- zDelimiter = "','sym-";
1427
- zEnd = "')";
1428
- zPrefix = "";
1429
- zSuffix = "";
1430
- zIntro = "";
1431
- }
1432
-
1433
- /* Convert the list of matches into an SQL expression and text description. */
1434
- blob_zero(&expr);
1435
- blob_zero(&desc);
1436
- blob_zero(&err);
1437
- while( 1 ){
1438
- /* Skip leading delimiters. */
1439
- for( ; fossil_isspace(*zTag) || *zTag==','; ++zTag );
1440
-
1441
- /* Next non-delimiter character determines quoting. */
1442
- if( !*zTag ){
1443
- /* Terminate loop at end of string. */
1444
- break;
1445
- }else if( *zTag=='\'' || *zTag=='"' ){
1446
- /* If word is quoted, prepare to stop at end quote. */
1447
- cDel = *zTag;
1448
- ++zTag;
1449
- }else{
1450
- /* If word is not quoted, prepare to stop at delimiter. */
1451
- cDel = ',';
1452
- }
1453
-
1454
- /* Find the next delimiter character or end of string. */
1455
- for( i=0; zTag[i] && zTag[i]!=cDel; ++i ){
1456
- /* If delimiter is comma, also recognize spaces as delimiters. */
1457
- if( cDel==',' && fossil_isspace(zTag[i]) ){
1458
- break;
1459
- }
1460
-
1461
- /* In regexp mode, ignore delimiters following backslashes. */
1462
- if( matchStyle==MS_REGEXP && zTag[i]=='\\' && zTag[i+1] ){
1463
- ++i;
1464
- }
1465
- }
1466
-
1467
- /* Check for regular expression syntax errors. */
1468
- if( matchStyle==MS_REGEXP ){
1469
- ReCompiled *regexp;
1470
- char *zTagDup = fossil_strndup(zTag, i);
1471
- zFail = re_compile(&regexp, zTagDup, 0);
1472
- re_free(regexp);
1473
- fossil_free(zTagDup);
1474
- }
1475
-
1476
- /* Process success and error results. */
1477
- if( !zFail ){
1478
- /* Incorporate the match word into the output expression. %q is used to
1479
- * protect against SQL injection attacks by replacing ' with ''. */
1480
- blob_appendf(&expr, "%s%s%#q%s", blob_size(&expr) ? zDelimiter : zStart,
1481
- zPrefix, i, zTag, zSuffix);
1482
-
1483
- /* Build up the description string. */
1484
- if( !blob_size(&desc) ){
1485
- /* First tag: start with intro followed by first quoted tag. */
1486
- blob_append(&desc, zIntro, -1);
1487
- blob_append(&desc, tagQuote(i, zTag), -1);
1488
- }else{
1489
- if( zPattern ){
1490
- /* Third and subsequent tags: append comma then previous tag. */
1491
- blob_append(&desc, ", ", 2);
1492
- blob_append(&desc, zPattern, -1);
1493
- zOr = ", or ";
1494
- }
1495
-
1496
- /* Second and subsequent tags: store quoted tag for next iteration. */
1497
- zPattern = tagQuote(i, zTag);
1498
- }
1499
- }else{
1500
- /* On error, skip the match word and build up the error message buffer. */
1501
- if( !blob_size(&err) ){
1502
- blob_append(&err, "Error: ", 7);
1503
- }else{
1504
- blob_append(&err, ", ", 2);
1505
- }
1506
- blob_appendf(&err, "(%s%s: %s)", zIntro, tagQuote(i, zTag), zFail);
1507
- }
1508
-
1509
- /* Advance past all consumed input characters. */
1510
- zTag += i;
1511
- if( cDel!=',' && *zTag==cDel ){
1512
- ++zTag;
1513
- }
1514
- }
1515
-
1516
- /* Finalize and extract the pattern description. */
1517
- if( zPattern ){
1518
- blob_append(&desc, zOr, -1);
1519
- blob_append(&desc, zPattern, -1);
1520
- }
1521
- *zDesc = blob_str(&desc);
1522
-
1523
- /* Finalize and extract the error text. */
1524
- *zError = blob_size(&err) ? blob_str(&err) : 0;
1525
-
1526
- /* Finalize and extract the SQL expression. */
1527
- if( blob_size(&expr) ){
1528
- blob_append(&expr, zEnd, -1);
1529
- return blob_str(&expr);
1530
- }
1531
-
1532
- /* If execution reaches this point, the pattern was empty. Return NULL. */
1533
- return 0;
1534
-}
1535
-
15361309
/*
15371310
** Similar to fossil_expand_datetime()
15381311
**
15391312
** Add missing "-" characters into a date/time. Examples:
15401313
**
@@ -2084,11 +1857,11 @@
20841857
if( advancedMenu ){
20851858
style_submenu_checkbox("rel", "Related", 0, 0);
20861859
}
20871860
20881861
/* Construct the tag match expression. */
2089
- zTagSql = tagMatchExpression(matchStyle, zTagName, &zMatchDesc, &zError);
1862
+ zTagSql = match_tag_sqlexpr(matchStyle, zTagName, &zMatchDesc, &zError);
20901863
}
20911864
20921865
if( zMark && zMark[0]==0 ){
20931866
if( zAfter ) zMark = zAfter;
20941867
if( zBefore ) zMark = zBefore;
@@ -3141,12 +2914,16 @@
31412914
if( zNewerButton ){
31422915
@ %z(chref("button","%s",zNewerButton))%h(zNewerButtonLabel)\
31432916
@ &nbsp;&uarr;</a>
31442917
}
31452918
cgi_check_for_malice();
3146
- www_print_timeline(&q, tmFlags, zThisUser, zThisTag, zBrName,
3147
- selectedRid, secondaryRid, 0);
2919
+ {
2920
+ Matcher *pLeftBranch = match_create(matchStyle, zBrName);
2921
+ www_print_timeline(&q, tmFlags, zThisUser, zThisTag, pLeftBranch,
2922
+ selectedRid, secondaryRid, 0);
2923
+ match_free(pLeftBranch);
2924
+ }
31482925
db_finalize(&q);
31492926
if( zOlderButton ){
31502927
@ %z(chref("button","%s",zOlderButton))%h(zOlderButtonLabel)\
31512928
@ &nbsp;&darr;</a>
31522929
}
31532930
--- src/timeline.c
+++ src/timeline.c
@@ -191,11 +191,11 @@
191 void www_print_timeline(
192 Stmt *pQuery, /* Query to implement the timeline */
193 int tmFlags, /* Flags controlling display behavior */
194 const char *zThisUser, /* Suppress links to this user */
195 const char *zThisTag, /* Suppress links to this tag */
196 const char *zLeftBranch, /* Strive to put this branch on the left margin */
197 int selectedRid, /* Highlight the line with this RID value or zero */
198 int secondRid, /* Secondary highlight (or zero) */
199 void (*xExtra)(int) /* Routine to call on each line of display */
200 ){
201 int mxWikiLen;
@@ -813,11 +813,11 @@
813 }
814 if( pendingEndTr ){
815 @ </td></tr>
816 }
817 if( pGraph ){
818 graph_finish(pGraph, zLeftBranch, tmFlags);
819 if( pGraph->nErr ){
820 graph_free(pGraph);
821 pGraph = 0;
822 }else{
823 @ <tr class="timelineBottom" id="btm-%d(iTableId)">\
@@ -1304,237 +1304,10 @@
1304 if( zChng==0 || zChng[0]==0 ) return;
1305 blob_appendf(pDescription, " that include changes to files matching '%h'",
1306 zChng);
1307 }
1308
1309 /*
1310 ** Tag match expression type code.
1311 */
1312 typedef enum {
1313 MS_EXACT, /* Matches a single tag by exact string comparison. */
1314 MS_GLOB, /* Matches tags against a list of GLOB patterns. */
1315 MS_LIKE, /* Matches tags against a list of LIKE patterns. */
1316 MS_REGEXP, /* Matches tags against a list of regular expressions. */
1317 MS_BRLIST, /* Same as REGEXP, except the regular expression is a list
1318 ** of branch names */
1319 } MatchStyle;
1320
1321 /*
1322 ** Quote a tag string by surrounding it with double quotes and preceding
1323 ** internal double quotes and backslashes with backslashes.
1324 */
1325 static const char *tagQuote(
1326 int len, /* Maximum length of zTag, or negative for unlimited */
1327 const char *zTag /* Tag string */
1328 ){
1329 Blob blob = BLOB_INITIALIZER;
1330 int i, j;
1331 blob_zero(&blob);
1332 blob_append(&blob, "\"", 1);
1333 for( i=j=0; zTag[j] && (len<0 || j<len); ++j ){
1334 if( zTag[j]=='\"' || zTag[j]=='\\' ){
1335 if( j>i ){
1336 blob_append(&blob, zTag+i, j-i);
1337 }
1338 blob_append(&blob, "\\", 1);
1339 i = j;
1340 }
1341 }
1342 if( j>i ){
1343 blob_append(&blob, zTag+i, j-i);
1344 }
1345 blob_append(&blob, "\"", 1);
1346 return blob_str(&blob);
1347 }
1348
1349 /*
1350 ** Construct the tag match SQL expression.
1351 **
1352 ** This function is adapted from glob_expr() to support the MS_EXACT, MS_GLOB,
1353 ** MS_LIKE, MS_REGEXP, and MS_BRLIST match styles.
1354 **
1355 ** For MS_EXACT, the returned expression
1356 ** checks for integer match against the tag ID which is looked up directly by
1357 ** this function. For the other modes, the returned SQL expression performs
1358 ** string comparisons against the tag names, so it is necessary to join against
1359 ** the tag table to access the "tagname" column.
1360 **
1361 ** Each pattern is adjusted to to start with "sym-" and be anchored at end.
1362 **
1363 ** In MS_REGEXP mode, backslash can be used to protect delimiter characters.
1364 ** The backslashes are not removed from the regular expression.
1365 **
1366 ** In addition to assembling and returning an SQL expression, this function
1367 ** makes an English-language description of the patterns being matched, suitable
1368 ** for display in the web interface.
1369 **
1370 ** If any errors arise during processing, *zError is set to an error message.
1371 ** Otherwise it is set to NULL.
1372 */
1373 static const char *tagMatchExpression(
1374 MatchStyle matchStyle, /* Match style code */
1375 const char *zTag, /* Tag name, match pattern, or pattern list */
1376 const char **zDesc, /* Output expression description string */
1377 const char **zError /* Output error string */
1378 ){
1379 Blob expr = BLOB_INITIALIZER; /* SQL expression string assembly buffer */
1380 Blob desc = BLOB_INITIALIZER; /* English description of match patterns */
1381 Blob err = BLOB_INITIALIZER; /* Error text assembly buffer */
1382 const char *zStart; /* Text at start of expression */
1383 const char *zDelimiter; /* Text between expression terms */
1384 const char *zEnd; /* Text at end of expression */
1385 const char *zPrefix; /* Text before each match pattern */
1386 const char *zSuffix; /* Text after each match pattern */
1387 const char *zIntro; /* Text introducing pattern description */
1388 const char *zPattern = 0; /* Previous quoted pattern */
1389 const char *zFail = 0; /* Current failure message or NULL if okay */
1390 const char *zOr = " or "; /* Text before final quoted pattern */
1391 char cDel; /* Input delimiter character */
1392 int i; /* Input match pattern length counter */
1393
1394 /* Optimize exact matches by looking up the ID in advance to create a simple
1395 * numeric comparison. Bypass the remainder of this function. */
1396 if( matchStyle==MS_EXACT ){
1397 *zDesc = tagQuote(-1, zTag);
1398 return mprintf("(tagid=%d)", db_int(-1,
1399 "SELECT tagid FROM tag WHERE tagname='sym-%q'", zTag));
1400 }
1401
1402 /* Decide pattern prefix and suffix strings according to match style. */
1403 if( matchStyle==MS_GLOB ){
1404 zStart = "(";
1405 zDelimiter = " OR ";
1406 zEnd = ")";
1407 zPrefix = "tagname GLOB 'sym-";
1408 zSuffix = "'";
1409 zIntro = "glob pattern ";
1410 }else if( matchStyle==MS_LIKE ){
1411 zStart = "(";
1412 zDelimiter = " OR ";
1413 zEnd = ")";
1414 zPrefix = "tagname LIKE 'sym-";
1415 zSuffix = "'";
1416 zIntro = "SQL LIKE pattern ";
1417 }else if( matchStyle==MS_REGEXP ){
1418 zStart = "(tagname REGEXP '^sym-(";
1419 zDelimiter = "|";
1420 zEnd = ")$')";
1421 zPrefix = "";
1422 zSuffix = "";
1423 zIntro = "regular expression ";
1424 }else/* if( matchStyle==MS_BRLIST )*/{
1425 zStart = "tagname IN ('sym-";
1426 zDelimiter = "','sym-";
1427 zEnd = "')";
1428 zPrefix = "";
1429 zSuffix = "";
1430 zIntro = "";
1431 }
1432
1433 /* Convert the list of matches into an SQL expression and text description. */
1434 blob_zero(&expr);
1435 blob_zero(&desc);
1436 blob_zero(&err);
1437 while( 1 ){
1438 /* Skip leading delimiters. */
1439 for( ; fossil_isspace(*zTag) || *zTag==','; ++zTag );
1440
1441 /* Next non-delimiter character determines quoting. */
1442 if( !*zTag ){
1443 /* Terminate loop at end of string. */
1444 break;
1445 }else if( *zTag=='\'' || *zTag=='"' ){
1446 /* If word is quoted, prepare to stop at end quote. */
1447 cDel = *zTag;
1448 ++zTag;
1449 }else{
1450 /* If word is not quoted, prepare to stop at delimiter. */
1451 cDel = ',';
1452 }
1453
1454 /* Find the next delimiter character or end of string. */
1455 for( i=0; zTag[i] && zTag[i]!=cDel; ++i ){
1456 /* If delimiter is comma, also recognize spaces as delimiters. */
1457 if( cDel==',' && fossil_isspace(zTag[i]) ){
1458 break;
1459 }
1460
1461 /* In regexp mode, ignore delimiters following backslashes. */
1462 if( matchStyle==MS_REGEXP && zTag[i]=='\\' && zTag[i+1] ){
1463 ++i;
1464 }
1465 }
1466
1467 /* Check for regular expression syntax errors. */
1468 if( matchStyle==MS_REGEXP ){
1469 ReCompiled *regexp;
1470 char *zTagDup = fossil_strndup(zTag, i);
1471 zFail = re_compile(&regexp, zTagDup, 0);
1472 re_free(regexp);
1473 fossil_free(zTagDup);
1474 }
1475
1476 /* Process success and error results. */
1477 if( !zFail ){
1478 /* Incorporate the match word into the output expression. %q is used to
1479 * protect against SQL injection attacks by replacing ' with ''. */
1480 blob_appendf(&expr, "%s%s%#q%s", blob_size(&expr) ? zDelimiter : zStart,
1481 zPrefix, i, zTag, zSuffix);
1482
1483 /* Build up the description string. */
1484 if( !blob_size(&desc) ){
1485 /* First tag: start with intro followed by first quoted tag. */
1486 blob_append(&desc, zIntro, -1);
1487 blob_append(&desc, tagQuote(i, zTag), -1);
1488 }else{
1489 if( zPattern ){
1490 /* Third and subsequent tags: append comma then previous tag. */
1491 blob_append(&desc, ", ", 2);
1492 blob_append(&desc, zPattern, -1);
1493 zOr = ", or ";
1494 }
1495
1496 /* Second and subsequent tags: store quoted tag for next iteration. */
1497 zPattern = tagQuote(i, zTag);
1498 }
1499 }else{
1500 /* On error, skip the match word and build up the error message buffer. */
1501 if( !blob_size(&err) ){
1502 blob_append(&err, "Error: ", 7);
1503 }else{
1504 blob_append(&err, ", ", 2);
1505 }
1506 blob_appendf(&err, "(%s%s: %s)", zIntro, tagQuote(i, zTag), zFail);
1507 }
1508
1509 /* Advance past all consumed input characters. */
1510 zTag += i;
1511 if( cDel!=',' && *zTag==cDel ){
1512 ++zTag;
1513 }
1514 }
1515
1516 /* Finalize and extract the pattern description. */
1517 if( zPattern ){
1518 blob_append(&desc, zOr, -1);
1519 blob_append(&desc, zPattern, -1);
1520 }
1521 *zDesc = blob_str(&desc);
1522
1523 /* Finalize and extract the error text. */
1524 *zError = blob_size(&err) ? blob_str(&err) : 0;
1525
1526 /* Finalize and extract the SQL expression. */
1527 if( blob_size(&expr) ){
1528 blob_append(&expr, zEnd, -1);
1529 return blob_str(&expr);
1530 }
1531
1532 /* If execution reaches this point, the pattern was empty. Return NULL. */
1533 return 0;
1534 }
1535
1536 /*
1537 ** Similar to fossil_expand_datetime()
1538 **
1539 ** Add missing "-" characters into a date/time. Examples:
1540 **
@@ -2084,11 +1857,11 @@
2084 if( advancedMenu ){
2085 style_submenu_checkbox("rel", "Related", 0, 0);
2086 }
2087
2088 /* Construct the tag match expression. */
2089 zTagSql = tagMatchExpression(matchStyle, zTagName, &zMatchDesc, &zError);
2090 }
2091
2092 if( zMark && zMark[0]==0 ){
2093 if( zAfter ) zMark = zAfter;
2094 if( zBefore ) zMark = zBefore;
@@ -3141,12 +2914,16 @@
3141 if( zNewerButton ){
3142 @ %z(chref("button","%s",zNewerButton))%h(zNewerButtonLabel)\
3143 @ &nbsp;&uarr;</a>
3144 }
3145 cgi_check_for_malice();
3146 www_print_timeline(&q, tmFlags, zThisUser, zThisTag, zBrName,
3147 selectedRid, secondaryRid, 0);
 
 
 
 
3148 db_finalize(&q);
3149 if( zOlderButton ){
3150 @ %z(chref("button","%s",zOlderButton))%h(zOlderButtonLabel)\
3151 @ &nbsp;&darr;</a>
3152 }
3153
--- src/timeline.c
+++ src/timeline.c
@@ -191,11 +191,11 @@
191 void www_print_timeline(
192 Stmt *pQuery, /* Query to implement the timeline */
193 int tmFlags, /* Flags controlling display behavior */
194 const char *zThisUser, /* Suppress links to this user */
195 const char *zThisTag, /* Suppress links to this tag */
196 Matcher *pLeftBranch, /* Comparison function to use for zLeftBranch */
197 int selectedRid, /* Highlight the line with this RID value or zero */
198 int secondRid, /* Secondary highlight (or zero) */
199 void (*xExtra)(int) /* Routine to call on each line of display */
200 ){
201 int mxWikiLen;
@@ -813,11 +813,11 @@
813 }
814 if( pendingEndTr ){
815 @ </td></tr>
816 }
817 if( pGraph ){
818 graph_finish(pGraph, pLeftBranch, tmFlags);
819 if( pGraph->nErr ){
820 graph_free(pGraph);
821 pGraph = 0;
822 }else{
823 @ <tr class="timelineBottom" id="btm-%d(iTableId)">\
@@ -1304,237 +1304,10 @@
1304 if( zChng==0 || zChng[0]==0 ) return;
1305 blob_appendf(pDescription, " that include changes to files matching '%h'",
1306 zChng);
1307 }
1308
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1309 /*
1310 ** Similar to fossil_expand_datetime()
1311 **
1312 ** Add missing "-" characters into a date/time. Examples:
1313 **
@@ -2084,11 +1857,11 @@
1857 if( advancedMenu ){
1858 style_submenu_checkbox("rel", "Related", 0, 0);
1859 }
1860
1861 /* Construct the tag match expression. */
1862 zTagSql = match_tag_sqlexpr(matchStyle, zTagName, &zMatchDesc, &zError);
1863 }
1864
1865 if( zMark && zMark[0]==0 ){
1866 if( zAfter ) zMark = zAfter;
1867 if( zBefore ) zMark = zBefore;
@@ -3141,12 +2914,16 @@
2914 if( zNewerButton ){
2915 @ %z(chref("button","%s",zNewerButton))%h(zNewerButtonLabel)\
2916 @ &nbsp;&uarr;</a>
2917 }
2918 cgi_check_for_malice();
2919 {
2920 Matcher *pLeftBranch = match_create(matchStyle, zBrName);
2921 www_print_timeline(&q, tmFlags, zThisUser, zThisTag, pLeftBranch,
2922 selectedRid, secondaryRid, 0);
2923 match_free(pLeftBranch);
2924 }
2925 db_finalize(&q);
2926 if( zOlderButton ){
2927 @ %z(chref("button","%s",zOlderButton))%h(zOlderButtonLabel)\
2928 @ &nbsp;&darr;</a>
2929 }
2930
--- tools/makemake.tcl
+++ tools/makemake.tcl
@@ -132,10 +132,11 @@
132132
lookslike
133133
main
134134
manifest
135135
markdown
136136
markdown_html
137
+ match
137138
md5
138139
merge
139140
merge3
140141
moderate
141142
name
142143
--- tools/makemake.tcl
+++ tools/makemake.tcl
@@ -132,10 +132,11 @@
132 lookslike
133 main
134 manifest
135 markdown
136 markdown_html
 
137 md5
138 merge
139 merge3
140 moderate
141 name
142
--- tools/makemake.tcl
+++ tools/makemake.tcl
@@ -132,10 +132,11 @@
132 lookslike
133 main
134 manifest
135 markdown
136 markdown_html
137 match
138 md5
139 merge
140 merge3
141 moderate
142 name
143
+10 -4
--- win/Makefile.dmc
+++ win/Makefile.dmc
@@ -32,13 +32,13 @@
3232
3333
SHELL_OPTIONS = -DNDEBUG=1 -DSQLITE_DQS=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_TRUSTED_SCHEMA=0 -DHAVE_USLEEP -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
3434
3535
PIKCHR_OPTIONS = -DPIKCHR_TOKEN_LIMIT=10000
3636
37
-SRC = add_.c ajax_.c alerts_.c allrepo_.c attach_.c backlink_.c backoffice_.c bag_.c bisect_.c blob_.c branch_.c browse_.c builtin_.c bundle_.c cache_.c capabilities_.c captcha_.c cgi_.c chat_.c checkin_.c checkout_.c clearsign_.c clone_.c color_.c comformat_.c configure_.c content_.c cookies_.c db_.c delta_.c deltacmd_.c deltafunc_.c descendants_.c diff_.c diffcmd_.c dispatch_.c doc_.c encode_.c etag_.c event_.c export_.c extcgi_.c file_.c fileedit_.c finfo_.c foci_.c forum_.c fshell_.c fusefs_.c fuzz_.c glob_.c graph_.c gzip_.c hname_.c hook_.c http_.c http_socket_.c http_ssl_.c http_transport_.c import_.c info_.c interwiki_.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 patch_.c path_.c piechart_.c pikchrshow_.c pivot_.c popen_.c pqueue_.c printf_.c publish_.c purge_.c rebuild_.c regexp_.c repolist_.c report_.c rss_.c schema_.c search_.c security_audit_.c setup_.c setupuser_.c sha1_.c sha1hard_.c sha3_.c shun_.c sitemap_.c skins_.c smtp_.c sqlcmd_.c stash_.c stat_.c statrep_.c style_.c sync_.c tag_.c tar_.c terminal_.c th_main_.c timeline_.c tkt_.c tktsetup_.c undo_.c unicode_.c unversioned_.c update_.c url_.c user_.c utf8_.c util_.c verify_.c vfile_.c wiki_.c wikiformat_.c winfile_.c winhttp_.c xfer_.c xfersetup_.c zip_.c
37
+SRC = add_.c ajax_.c alerts_.c allrepo_.c attach_.c backlink_.c backoffice_.c bag_.c bisect_.c blob_.c branch_.c browse_.c builtin_.c bundle_.c cache_.c capabilities_.c captcha_.c cgi_.c chat_.c checkin_.c checkout_.c clearsign_.c clone_.c color_.c comformat_.c configure_.c content_.c cookies_.c db_.c delta_.c deltacmd_.c deltafunc_.c descendants_.c diff_.c diffcmd_.c dispatch_.c doc_.c encode_.c etag_.c event_.c export_.c extcgi_.c file_.c fileedit_.c finfo_.c foci_.c forum_.c fshell_.c fusefs_.c fuzz_.c glob_.c graph_.c gzip_.c hname_.c hook_.c http_.c http_socket_.c http_ssl_.c http_transport_.c import_.c info_.c interwiki_.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 match_.c md5_.c merge_.c merge3_.c moderate_.c name_.c patch_.c path_.c piechart_.c pikchrshow_.c pivot_.c popen_.c pqueue_.c printf_.c publish_.c purge_.c rebuild_.c regexp_.c repolist_.c report_.c rss_.c schema_.c search_.c security_audit_.c setup_.c setupuser_.c sha1_.c sha1hard_.c sha3_.c shun_.c sitemap_.c skins_.c smtp_.c sqlcmd_.c stash_.c stat_.c statrep_.c style_.c sync_.c tag_.c tar_.c terminal_.c th_main_.c timeline_.c tkt_.c tktsetup_.c undo_.c unicode_.c unversioned_.c update_.c url_.c user_.c utf8_.c util_.c verify_.c vfile_.c wiki_.c wikiformat_.c winfile_.c winhttp_.c xfer_.c xfersetup_.c zip_.c
3838
39
-OBJ = $(OBJDIR)\add$O $(OBJDIR)\ajax$O $(OBJDIR)\alerts$O $(OBJDIR)\allrepo$O $(OBJDIR)\attach$O $(OBJDIR)\backlink$O $(OBJDIR)\backoffice$O $(OBJDIR)\bag$O $(OBJDIR)\bisect$O $(OBJDIR)\blob$O $(OBJDIR)\branch$O $(OBJDIR)\browse$O $(OBJDIR)\builtin$O $(OBJDIR)\bundle$O $(OBJDIR)\cache$O $(OBJDIR)\capabilities$O $(OBJDIR)\captcha$O $(OBJDIR)\cgi$O $(OBJDIR)\chat$O $(OBJDIR)\checkin$O $(OBJDIR)\checkout$O $(OBJDIR)\clearsign$O $(OBJDIR)\clone$O $(OBJDIR)\color$O $(OBJDIR)\comformat$O $(OBJDIR)\configure$O $(OBJDIR)\content$O $(OBJDIR)\cookies$O $(OBJDIR)\db$O $(OBJDIR)\delta$O $(OBJDIR)\deltacmd$O $(OBJDIR)\deltafunc$O $(OBJDIR)\descendants$O $(OBJDIR)\diff$O $(OBJDIR)\diffcmd$O $(OBJDIR)\dispatch$O $(OBJDIR)\doc$O $(OBJDIR)\encode$O $(OBJDIR)\etag$O $(OBJDIR)\event$O $(OBJDIR)\export$O $(OBJDIR)\extcgi$O $(OBJDIR)\file$O $(OBJDIR)\fileedit$O $(OBJDIR)\finfo$O $(OBJDIR)\foci$O $(OBJDIR)\forum$O $(OBJDIR)\fshell$O $(OBJDIR)\fusefs$O $(OBJDIR)\fuzz$O $(OBJDIR)\glob$O $(OBJDIR)\graph$O $(OBJDIR)\gzip$O $(OBJDIR)\hname$O $(OBJDIR)\hook$O $(OBJDIR)\http$O $(OBJDIR)\http_socket$O $(OBJDIR)\http_ssl$O $(OBJDIR)\http_transport$O $(OBJDIR)\import$O $(OBJDIR)\info$O $(OBJDIR)\interwiki$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)\patch$O $(OBJDIR)\path$O $(OBJDIR)\piechart$O $(OBJDIR)\pikchrshow$O $(OBJDIR)\pivot$O $(OBJDIR)\popen$O $(OBJDIR)\pqueue$O $(OBJDIR)\printf$O $(OBJDIR)\publish$O $(OBJDIR)\purge$O $(OBJDIR)\rebuild$O $(OBJDIR)\regexp$O $(OBJDIR)\repolist$O $(OBJDIR)\report$O $(OBJDIR)\rss$O $(OBJDIR)\schema$O $(OBJDIR)\search$O $(OBJDIR)\security_audit$O $(OBJDIR)\setup$O $(OBJDIR)\setupuser$O $(OBJDIR)\sha1$O $(OBJDIR)\sha1hard$O $(OBJDIR)\sha3$O $(OBJDIR)\shun$O $(OBJDIR)\sitemap$O $(OBJDIR)\skins$O $(OBJDIR)\smtp$O $(OBJDIR)\sqlcmd$O $(OBJDIR)\stash$O $(OBJDIR)\stat$O $(OBJDIR)\statrep$O $(OBJDIR)\style$O $(OBJDIR)\sync$O $(OBJDIR)\tag$O $(OBJDIR)\tar$O $(OBJDIR)\terminal$O $(OBJDIR)\th_main$O $(OBJDIR)\timeline$O $(OBJDIR)\tkt$O $(OBJDIR)\tktsetup$O $(OBJDIR)\undo$O $(OBJDIR)\unicode$O $(OBJDIR)\unversioned$O $(OBJDIR)\update$O $(OBJDIR)\url$O $(OBJDIR)\user$O $(OBJDIR)\utf8$O $(OBJDIR)\util$O $(OBJDIR)\verify$O $(OBJDIR)\vfile$O $(OBJDIR)\wiki$O $(OBJDIR)\wikiformat$O $(OBJDIR)\winfile$O $(OBJDIR)\winhttp$O $(OBJDIR)\xfer$O $(OBJDIR)\xfersetup$O $(OBJDIR)\zip$O $(OBJDIR)\shell$O $(OBJDIR)\sqlite3$O $(OBJDIR)\th$O $(OBJDIR)\th_lang$O
39
+OBJ = $(OBJDIR)\add$O $(OBJDIR)\ajax$O $(OBJDIR)\alerts$O $(OBJDIR)\allrepo$O $(OBJDIR)\attach$O $(OBJDIR)\backlink$O $(OBJDIR)\backoffice$O $(OBJDIR)\bag$O $(OBJDIR)\bisect$O $(OBJDIR)\blob$O $(OBJDIR)\branch$O $(OBJDIR)\browse$O $(OBJDIR)\builtin$O $(OBJDIR)\bundle$O $(OBJDIR)\cache$O $(OBJDIR)\capabilities$O $(OBJDIR)\captcha$O $(OBJDIR)\cgi$O $(OBJDIR)\chat$O $(OBJDIR)\checkin$O $(OBJDIR)\checkout$O $(OBJDIR)\clearsign$O $(OBJDIR)\clone$O $(OBJDIR)\color$O $(OBJDIR)\comformat$O $(OBJDIR)\configure$O $(OBJDIR)\content$O $(OBJDIR)\cookies$O $(OBJDIR)\db$O $(OBJDIR)\delta$O $(OBJDIR)\deltacmd$O $(OBJDIR)\deltafunc$O $(OBJDIR)\descendants$O $(OBJDIR)\diff$O $(OBJDIR)\diffcmd$O $(OBJDIR)\dispatch$O $(OBJDIR)\doc$O $(OBJDIR)\encode$O $(OBJDIR)\etag$O $(OBJDIR)\event$O $(OBJDIR)\export$O $(OBJDIR)\extcgi$O $(OBJDIR)\file$O $(OBJDIR)\fileedit$O $(OBJDIR)\finfo$O $(OBJDIR)\foci$O $(OBJDIR)\forum$O $(OBJDIR)\fshell$O $(OBJDIR)\fusefs$O $(OBJDIR)\fuzz$O $(OBJDIR)\glob$O $(OBJDIR)\graph$O $(OBJDIR)\gzip$O $(OBJDIR)\hname$O $(OBJDIR)\hook$O $(OBJDIR)\http$O $(OBJDIR)\http_socket$O $(OBJDIR)\http_ssl$O $(OBJDIR)\http_transport$O $(OBJDIR)\import$O $(OBJDIR)\info$O $(OBJDIR)\interwiki$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)\match$O $(OBJDIR)\md5$O $(OBJDIR)\merge$O $(OBJDIR)\merge3$O $(OBJDIR)\moderate$O $(OBJDIR)\name$O $(OBJDIR)\patch$O $(OBJDIR)\path$O $(OBJDIR)\piechart$O $(OBJDIR)\pikchrshow$O $(OBJDIR)\pivot$O $(OBJDIR)\popen$O $(OBJDIR)\pqueue$O $(OBJDIR)\printf$O $(OBJDIR)\publish$O $(OBJDIR)\purge$O $(OBJDIR)\rebuild$O $(OBJDIR)\regexp$O $(OBJDIR)\repolist$O $(OBJDIR)\report$O $(OBJDIR)\rss$O $(OBJDIR)\schema$O $(OBJDIR)\search$O $(OBJDIR)\security_audit$O $(OBJDIR)\setup$O $(OBJDIR)\setupuser$O $(OBJDIR)\sha1$O $(OBJDIR)\sha1hard$O $(OBJDIR)\sha3$O $(OBJDIR)\shun$O $(OBJDIR)\sitemap$O $(OBJDIR)\skins$O $(OBJDIR)\smtp$O $(OBJDIR)\sqlcmd$O $(OBJDIR)\stash$O $(OBJDIR)\stat$O $(OBJDIR)\statrep$O $(OBJDIR)\style$O $(OBJDIR)\sync$O $(OBJDIR)\tag$O $(OBJDIR)\tar$O $(OBJDIR)\terminal$O $(OBJDIR)\th_main$O $(OBJDIR)\timeline$O $(OBJDIR)\tkt$O $(OBJDIR)\tktsetup$O $(OBJDIR)\undo$O $(OBJDIR)\unicode$O $(OBJDIR)\unversioned$O $(OBJDIR)\update$O $(OBJDIR)\url$O $(OBJDIR)\user$O $(OBJDIR)\utf8$O $(OBJDIR)\util$O $(OBJDIR)\verify$O $(OBJDIR)\vfile$O $(OBJDIR)\wiki$O $(OBJDIR)\wikiformat$O $(OBJDIR)\winfile$O $(OBJDIR)\winhttp$O $(OBJDIR)\xfer$O $(OBJDIR)\xfersetup$O $(OBJDIR)\zip$O $(OBJDIR)\shell$O $(OBJDIR)\sqlite3$O $(OBJDIR)\th$O $(OBJDIR)\th_lang$O
4040
4141
4242
RC=$(DMDIR)\bin\rcc
4343
RCFLAGS=-32 -w1 -I$(SRCDIR) /D__DMC__
4444
@@ -53,11 +53,11 @@
5353
5454
$(OBJDIR)\fossil.res: $B\win\fossil.rc
5555
$(RC) $(RCFLAGS) -o$@ $**
5656
5757
$(OBJDIR)\link: $B\win\Makefile.dmc $(OBJDIR)\fossil.res
58
- +echo add ajax alerts allrepo attach backlink backoffice bag bisect blob branch browse builtin bundle cache capabilities captcha cgi chat checkin checkout clearsign clone color comformat configure content cookies db delta deltacmd deltafunc descendants diff diffcmd dispatch doc encode etag event export extcgi file fileedit finfo foci forum fshell fusefs fuzz glob graph gzip hname hook http http_socket http_ssl http_transport import info interwiki 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 patch path piechart pikchrshow pivot popen pqueue printf publish purge rebuild regexp repolist report rss schema search security_audit setup setupuser sha1 sha1hard sha3 shun sitemap skins smtp sqlcmd stash stat statrep style sync tag tar terminal th_main timeline tkt tktsetup undo unicode unversioned update url user utf8 util verify vfile wiki wikiformat winfile winhttp xfer xfersetup zip shell sqlite3 th th_lang > $@
58
+ +echo add ajax alerts allrepo attach backlink backoffice bag bisect blob branch browse builtin bundle cache capabilities captcha cgi chat checkin checkout clearsign clone color comformat configure content cookies db delta deltacmd deltafunc descendants diff diffcmd dispatch doc encode etag event export extcgi file fileedit finfo foci forum fshell fusefs fuzz glob graph gzip hname hook http http_socket http_ssl http_transport import info interwiki 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 match md5 merge merge3 moderate name patch path piechart pikchrshow pivot popen pqueue printf publish purge rebuild regexp repolist report rss schema search security_audit setup setupuser sha1 sha1hard sha3 shun sitemap skins smtp sqlcmd stash stat statrep style sync tag tar terminal th_main timeline tkt tktsetup undo unicode unversioned update url user utf8 util verify vfile wiki wikiformat winfile winhttp xfer xfersetup zip shell sqlite3 th th_lang > $@
5959
+echo fossil >> $@
6060
+echo fossil >> $@
6161
+echo $(LIBS) >> $@
6262
+echo. >> $@
6363
+echo fossil >> $@
@@ -635,10 +635,16 @@
635635
$(OBJDIR)\markdown_html$O : markdown_html_.c markdown_html.h
636636
$(TCC) -o$@ -c markdown_html_.c
637637
638638
markdown_html_.c : $(SRCDIR)\markdown_html.c
639639
+translate$E $** > $@
640
+
641
+$(OBJDIR)\match$O : match_.c match.h
642
+ $(TCC) -o$@ -c match_.c
643
+
644
+match_.c : $(SRCDIR)\match.c
645
+ +translate$E $** > $@
640646
641647
$(OBJDIR)\md5$O : md5_.c md5.h
642648
$(TCC) -o$@ -c md5_.c
643649
644650
md5_.c : $(SRCDIR)\md5.c
@@ -1009,7 +1015,7 @@
10091015
10101016
zip_.c : $(SRCDIR)\zip.c
10111017
+translate$E $** > $@
10121018
10131019
headers: makeheaders$E page_index.h builtin_data.h VERSION.h
1014
- +makeheaders$E add_.c:add.h ajax_.c:ajax.h alerts_.c:alerts.h allrepo_.c:allrepo.h attach_.c:attach.h backlink_.c:backlink.h backoffice_.c:backoffice.h bag_.c:bag.h bisect_.c:bisect.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.h builtin_.c:builtin.h bundle_.c:bundle.h cache_.c:cache.h capabilities_.c:capabilities.h captcha_.c:captcha.h cgi_.c:cgi.h chat_.c:chat.h checkin_.c:checkin.h checkout_.c:checkout.h clearsign_.c:clearsign.h clone_.c:clone.h color_.c:color.h comformat_.c:comformat.h configure_.c:configure.h content_.c:content.h cookies_.c:cookies.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h deltafunc_.c:deltafunc.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h dispatch_.c:dispatch.h doc_.c:doc.h encode_.c:encode.h etag_.c:etag.h event_.c:event.h export_.c:export.h extcgi_.c:extcgi.h file_.c:file.h fileedit_.c:fileedit.h finfo_.c:finfo.h foci_.c:foci.h forum_.c:forum.h fshell_.c:fshell.h fusefs_.c:fusefs.h fuzz_.c:fuzz.h glob_.c:glob.h graph_.c:graph.h gzip_.c:gzip.h hname_.c:hname.h hook_.c:hook.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 interwiki_.c:interwiki.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 patch_.c:patch.h path_.c:path.h piechart_.c:piechart.h pikchrshow_.c:pikchrshow.h pivot_.c:pivot.h popen_.c:popen.h pqueue_.c:pqueue.h printf_.c:printf.h publish_.c:publish.h purge_.c:purge.h rebuild_.c:rebuild.h regexp_.c:regexp.h repolist_.c:repolist.h report_.c:report.h rss_.c:rss.h schema_.c:schema.h search_.c:search.h security_audit_.c:security_audit.h setup_.c:setup.h setupuser_.c:setupuser.h sha1_.c:sha1.h sha1hard_.c:sha1hard.h sha3_.c:sha3.h shun_.c:shun.h sitemap_.c:sitemap.h skins_.c:skins.h smtp_.c:smtp.h sqlcmd_.c:sqlcmd.h stash_.c:stash.h stat_.c:stat.h statrep_.c:statrep.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tar_.c:tar.h terminal_.c:terminal.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktsetup_.c:tktsetup.h undo_.c:undo.h unicode_.c:unicode.h unversioned_.c:unversioned.h update_.c:update.h url_.c:url.h user_.c:user.h utf8_.c:utf8.h util_.c:util.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h winfile_.c:winfile.h winhttp_.c:winhttp.h xfer_.c:xfer.h xfersetup_.c:xfersetup.h zip_.c:zip.h $(SRCDIR_extsrc)\pikchr.c:pikchr.h $(SRCDIR_extsrc)\sqlite3.h $(SRCDIR)\th.h VERSION.h $(SRCDIR_extsrc)\cson_amalgamation.h
1020
+ +makeheaders$E add_.c:add.h ajax_.c:ajax.h alerts_.c:alerts.h allrepo_.c:allrepo.h attach_.c:attach.h backlink_.c:backlink.h backoffice_.c:backoffice.h bag_.c:bag.h bisect_.c:bisect.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.h builtin_.c:builtin.h bundle_.c:bundle.h cache_.c:cache.h capabilities_.c:capabilities.h captcha_.c:captcha.h cgi_.c:cgi.h chat_.c:chat.h checkin_.c:checkin.h checkout_.c:checkout.h clearsign_.c:clearsign.h clone_.c:clone.h color_.c:color.h comformat_.c:comformat.h configure_.c:configure.h content_.c:content.h cookies_.c:cookies.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h deltafunc_.c:deltafunc.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h dispatch_.c:dispatch.h doc_.c:doc.h encode_.c:encode.h etag_.c:etag.h event_.c:event.h export_.c:export.h extcgi_.c:extcgi.h file_.c:file.h fileedit_.c:fileedit.h finfo_.c:finfo.h foci_.c:foci.h forum_.c:forum.h fshell_.c:fshell.h fusefs_.c:fusefs.h fuzz_.c:fuzz.h glob_.c:glob.h graph_.c:graph.h gzip_.c:gzip.h hname_.c:hname.h hook_.c:hook.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 interwiki_.c:interwiki.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 match_.c:match.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h moderate_.c:moderate.h name_.c:name.h patch_.c:patch.h path_.c:path.h piechart_.c:piechart.h pikchrshow_.c:pikchrshow.h pivot_.c:pivot.h popen_.c:popen.h pqueue_.c:pqueue.h printf_.c:printf.h publish_.c:publish.h purge_.c:purge.h rebuild_.c:rebuild.h regexp_.c:regexp.h repolist_.c:repolist.h report_.c:report.h rss_.c:rss.h schema_.c:schema.h search_.c:search.h security_audit_.c:security_audit.h setup_.c:setup.h setupuser_.c:setupuser.h sha1_.c:sha1.h sha1hard_.c:sha1hard.h sha3_.c:sha3.h shun_.c:shun.h sitemap_.c:sitemap.h skins_.c:skins.h smtp_.c:smtp.h sqlcmd_.c:sqlcmd.h stash_.c:stash.h stat_.c:stat.h statrep_.c:statrep.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tar_.c:tar.h terminal_.c:terminal.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktsetup_.c:tktsetup.h undo_.c:undo.h unicode_.c:unicode.h unversioned_.c:unversioned.h update_.c:update.h url_.c:url.h user_.c:user.h utf8_.c:utf8.h util_.c:util.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h winfile_.c:winfile.h winhttp_.c:winhttp.h xfer_.c:xfer.h xfersetup_.c:xfersetup.h zip_.c:zip.h $(SRCDIR_extsrc)\pikchr.c:pikchr.h $(SRCDIR_extsrc)\sqlite3.h $(SRCDIR)\th.h VERSION.h $(SRCDIR_extsrc)\cson_amalgamation.h
10151021
@copy /Y nul: headers
10161022
--- win/Makefile.dmc
+++ win/Makefile.dmc
@@ -32,13 +32,13 @@
32
33 SHELL_OPTIONS = -DNDEBUG=1 -DSQLITE_DQS=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_TRUSTED_SCHEMA=0 -DHAVE_USLEEP -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
34
35 PIKCHR_OPTIONS = -DPIKCHR_TOKEN_LIMIT=10000
36
37 SRC = add_.c ajax_.c alerts_.c allrepo_.c attach_.c backlink_.c backoffice_.c bag_.c bisect_.c blob_.c branch_.c browse_.c builtin_.c bundle_.c cache_.c capabilities_.c captcha_.c cgi_.c chat_.c checkin_.c checkout_.c clearsign_.c clone_.c color_.c comformat_.c configure_.c content_.c cookies_.c db_.c delta_.c deltacmd_.c deltafunc_.c descendants_.c diff_.c diffcmd_.c dispatch_.c doc_.c encode_.c etag_.c event_.c export_.c extcgi_.c file_.c fileedit_.c finfo_.c foci_.c forum_.c fshell_.c fusefs_.c fuzz_.c glob_.c graph_.c gzip_.c hname_.c hook_.c http_.c http_socket_.c http_ssl_.c http_transport_.c import_.c info_.c interwiki_.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 patch_.c path_.c piechart_.c pikchrshow_.c pivot_.c popen_.c pqueue_.c printf_.c publish_.c purge_.c rebuild_.c regexp_.c repolist_.c report_.c rss_.c schema_.c search_.c security_audit_.c setup_.c setupuser_.c sha1_.c sha1hard_.c sha3_.c shun_.c sitemap_.c skins_.c smtp_.c sqlcmd_.c stash_.c stat_.c statrep_.c style_.c sync_.c tag_.c tar_.c terminal_.c th_main_.c timeline_.c tkt_.c tktsetup_.c undo_.c unicode_.c unversioned_.c update_.c url_.c user_.c utf8_.c util_.c verify_.c vfile_.c wiki_.c wikiformat_.c winfile_.c winhttp_.c xfer_.c xfersetup_.c zip_.c
38
39 OBJ = $(OBJDIR)\add$O $(OBJDIR)\ajax$O $(OBJDIR)\alerts$O $(OBJDIR)\allrepo$O $(OBJDIR)\attach$O $(OBJDIR)\backlink$O $(OBJDIR)\backoffice$O $(OBJDIR)\bag$O $(OBJDIR)\bisect$O $(OBJDIR)\blob$O $(OBJDIR)\branch$O $(OBJDIR)\browse$O $(OBJDIR)\builtin$O $(OBJDIR)\bundle$O $(OBJDIR)\cache$O $(OBJDIR)\capabilities$O $(OBJDIR)\captcha$O $(OBJDIR)\cgi$O $(OBJDIR)\chat$O $(OBJDIR)\checkin$O $(OBJDIR)\checkout$O $(OBJDIR)\clearsign$O $(OBJDIR)\clone$O $(OBJDIR)\color$O $(OBJDIR)\comformat$O $(OBJDIR)\configure$O $(OBJDIR)\content$O $(OBJDIR)\cookies$O $(OBJDIR)\db$O $(OBJDIR)\delta$O $(OBJDIR)\deltacmd$O $(OBJDIR)\deltafunc$O $(OBJDIR)\descendants$O $(OBJDIR)\diff$O $(OBJDIR)\diffcmd$O $(OBJDIR)\dispatch$O $(OBJDIR)\doc$O $(OBJDIR)\encode$O $(OBJDIR)\etag$O $(OBJDIR)\event$O $(OBJDIR)\export$O $(OBJDIR)\extcgi$O $(OBJDIR)\file$O $(OBJDIR)\fileedit$O $(OBJDIR)\finfo$O $(OBJDIR)\foci$O $(OBJDIR)\forum$O $(OBJDIR)\fshell$O $(OBJDIR)\fusefs$O $(OBJDIR)\fuzz$O $(OBJDIR)\glob$O $(OBJDIR)\graph$O $(OBJDIR)\gzip$O $(OBJDIR)\hname$O $(OBJDIR)\hook$O $(OBJDIR)\http$O $(OBJDIR)\http_socket$O $(OBJDIR)\http_ssl$O $(OBJDIR)\http_transport$O $(OBJDIR)\import$O $(OBJDIR)\info$O $(OBJDIR)\interwiki$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)\patch$O $(OBJDIR)\path$O $(OBJDIR)\piechart$O $(OBJDIR)\pikchrshow$O $(OBJDIR)\pivot$O $(OBJDIR)\popen$O $(OBJDIR)\pqueue$O $(OBJDIR)\printf$O $(OBJDIR)\publish$O $(OBJDIR)\purge$O $(OBJDIR)\rebuild$O $(OBJDIR)\regexp$O $(OBJDIR)\repolist$O $(OBJDIR)\report$O $(OBJDIR)\rss$O $(OBJDIR)\schema$O $(OBJDIR)\search$O $(OBJDIR)\security_audit$O $(OBJDIR)\setup$O $(OBJDIR)\setupuser$O $(OBJDIR)\sha1$O $(OBJDIR)\sha1hard$O $(OBJDIR)\sha3$O $(OBJDIR)\shun$O $(OBJDIR)\sitemap$O $(OBJDIR)\skins$O $(OBJDIR)\smtp$O $(OBJDIR)\sqlcmd$O $(OBJDIR)\stash$O $(OBJDIR)\stat$O $(OBJDIR)\statrep$O $(OBJDIR)\style$O $(OBJDIR)\sync$O $(OBJDIR)\tag$O $(OBJDIR)\tar$O $(OBJDIR)\terminal$O $(OBJDIR)\th_main$O $(OBJDIR)\timeline$O $(OBJDIR)\tkt$O $(OBJDIR)\tktsetup$O $(OBJDIR)\undo$O $(OBJDIR)\unicode$O $(OBJDIR)\unversioned$O $(OBJDIR)\update$O $(OBJDIR)\url$O $(OBJDIR)\user$O $(OBJDIR)\utf8$O $(OBJDIR)\util$O $(OBJDIR)\verify$O $(OBJDIR)\vfile$O $(OBJDIR)\wiki$O $(OBJDIR)\wikiformat$O $(OBJDIR)\winfile$O $(OBJDIR)\winhttp$O $(OBJDIR)\xfer$O $(OBJDIR)\xfersetup$O $(OBJDIR)\zip$O $(OBJDIR)\shell$O $(OBJDIR)\sqlite3$O $(OBJDIR)\th$O $(OBJDIR)\th_lang$O
40
41
42 RC=$(DMDIR)\bin\rcc
43 RCFLAGS=-32 -w1 -I$(SRCDIR) /D__DMC__
44
@@ -53,11 +53,11 @@
53
54 $(OBJDIR)\fossil.res: $B\win\fossil.rc
55 $(RC) $(RCFLAGS) -o$@ $**
56
57 $(OBJDIR)\link: $B\win\Makefile.dmc $(OBJDIR)\fossil.res
58 +echo add ajax alerts allrepo attach backlink backoffice bag bisect blob branch browse builtin bundle cache capabilities captcha cgi chat checkin checkout clearsign clone color comformat configure content cookies db delta deltacmd deltafunc descendants diff diffcmd dispatch doc encode etag event export extcgi file fileedit finfo foci forum fshell fusefs fuzz glob graph gzip hname hook http http_socket http_ssl http_transport import info interwiki 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 patch path piechart pikchrshow pivot popen pqueue printf publish purge rebuild regexp repolist report rss schema search security_audit setup setupuser sha1 sha1hard sha3 shun sitemap skins smtp sqlcmd stash stat statrep style sync tag tar terminal th_main timeline tkt tktsetup undo unicode unversioned update url user utf8 util verify vfile wiki wikiformat winfile winhttp xfer xfersetup zip shell sqlite3 th th_lang > $@
59 +echo fossil >> $@
60 +echo fossil >> $@
61 +echo $(LIBS) >> $@
62 +echo. >> $@
63 +echo fossil >> $@
@@ -635,10 +635,16 @@
635 $(OBJDIR)\markdown_html$O : markdown_html_.c markdown_html.h
636 $(TCC) -o$@ -c markdown_html_.c
637
638 markdown_html_.c : $(SRCDIR)\markdown_html.c
639 +translate$E $** > $@
 
 
 
 
 
 
640
641 $(OBJDIR)\md5$O : md5_.c md5.h
642 $(TCC) -o$@ -c md5_.c
643
644 md5_.c : $(SRCDIR)\md5.c
@@ -1009,7 +1015,7 @@
1009
1010 zip_.c : $(SRCDIR)\zip.c
1011 +translate$E $** > $@
1012
1013 headers: makeheaders$E page_index.h builtin_data.h VERSION.h
1014 +makeheaders$E add_.c:add.h ajax_.c:ajax.h alerts_.c:alerts.h allrepo_.c:allrepo.h attach_.c:attach.h backlink_.c:backlink.h backoffice_.c:backoffice.h bag_.c:bag.h bisect_.c:bisect.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.h builtin_.c:builtin.h bundle_.c:bundle.h cache_.c:cache.h capabilities_.c:capabilities.h captcha_.c:captcha.h cgi_.c:cgi.h chat_.c:chat.h checkin_.c:checkin.h checkout_.c:checkout.h clearsign_.c:clearsign.h clone_.c:clone.h color_.c:color.h comformat_.c:comformat.h configure_.c:configure.h content_.c:content.h cookies_.c:cookies.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h deltafunc_.c:deltafunc.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h dispatch_.c:dispatch.h doc_.c:doc.h encode_.c:encode.h etag_.c:etag.h event_.c:event.h export_.c:export.h extcgi_.c:extcgi.h file_.c:file.h fileedit_.c:fileedit.h finfo_.c:finfo.h foci_.c:foci.h forum_.c:forum.h fshell_.c:fshell.h fusefs_.c:fusefs.h fuzz_.c:fuzz.h glob_.c:glob.h graph_.c:graph.h gzip_.c:gzip.h hname_.c:hname.h hook_.c:hook.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 interwiki_.c:interwiki.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 patch_.c:patch.h path_.c:path.h piechart_.c:piechart.h pikchrshow_.c:pikchrshow.h pivot_.c:pivot.h popen_.c:popen.h pqueue_.c:pqueue.h printf_.c:printf.h publish_.c:publish.h purge_.c:purge.h rebuild_.c:rebuild.h regexp_.c:regexp.h repolist_.c:repolist.h report_.c:report.h rss_.c:rss.h schema_.c:schema.h search_.c:search.h security_audit_.c:security_audit.h setup_.c:setup.h setupuser_.c:setupuser.h sha1_.c:sha1.h sha1hard_.c:sha1hard.h sha3_.c:sha3.h shun_.c:shun.h sitemap_.c:sitemap.h skins_.c:skins.h smtp_.c:smtp.h sqlcmd_.c:sqlcmd.h stash_.c:stash.h stat_.c:stat.h statrep_.c:statrep.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tar_.c:tar.h terminal_.c:terminal.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktsetup_.c:tktsetup.h undo_.c:undo.h unicode_.c:unicode.h unversioned_.c:unversioned.h update_.c:update.h url_.c:url.h user_.c:user.h utf8_.c:utf8.h util_.c:util.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h winfile_.c:winfile.h winhttp_.c:winhttp.h xfer_.c:xfer.h xfersetup_.c:xfersetup.h zip_.c:zip.h $(SRCDIR_extsrc)\pikchr.c:pikchr.h $(SRCDIR_extsrc)\sqlite3.h $(SRCDIR)\th.h VERSION.h $(SRCDIR_extsrc)\cson_amalgamation.h
1015 @copy /Y nul: headers
1016
--- win/Makefile.dmc
+++ win/Makefile.dmc
@@ -32,13 +32,13 @@
32
33 SHELL_OPTIONS = -DNDEBUG=1 -DSQLITE_DQS=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_TRUSTED_SCHEMA=0 -DHAVE_USLEEP -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
34
35 PIKCHR_OPTIONS = -DPIKCHR_TOKEN_LIMIT=10000
36
37 SRC = add_.c ajax_.c alerts_.c allrepo_.c attach_.c backlink_.c backoffice_.c bag_.c bisect_.c blob_.c branch_.c browse_.c builtin_.c bundle_.c cache_.c capabilities_.c captcha_.c cgi_.c chat_.c checkin_.c checkout_.c clearsign_.c clone_.c color_.c comformat_.c configure_.c content_.c cookies_.c db_.c delta_.c deltacmd_.c deltafunc_.c descendants_.c diff_.c diffcmd_.c dispatch_.c doc_.c encode_.c etag_.c event_.c export_.c extcgi_.c file_.c fileedit_.c finfo_.c foci_.c forum_.c fshell_.c fusefs_.c fuzz_.c glob_.c graph_.c gzip_.c hname_.c hook_.c http_.c http_socket_.c http_ssl_.c http_transport_.c import_.c info_.c interwiki_.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 match_.c md5_.c merge_.c merge3_.c moderate_.c name_.c patch_.c path_.c piechart_.c pikchrshow_.c pivot_.c popen_.c pqueue_.c printf_.c publish_.c purge_.c rebuild_.c regexp_.c repolist_.c report_.c rss_.c schema_.c search_.c security_audit_.c setup_.c setupuser_.c sha1_.c sha1hard_.c sha3_.c shun_.c sitemap_.c skins_.c smtp_.c sqlcmd_.c stash_.c stat_.c statrep_.c style_.c sync_.c tag_.c tar_.c terminal_.c th_main_.c timeline_.c tkt_.c tktsetup_.c undo_.c unicode_.c unversioned_.c update_.c url_.c user_.c utf8_.c util_.c verify_.c vfile_.c wiki_.c wikiformat_.c winfile_.c winhttp_.c xfer_.c xfersetup_.c zip_.c
38
39 OBJ = $(OBJDIR)\add$O $(OBJDIR)\ajax$O $(OBJDIR)\alerts$O $(OBJDIR)\allrepo$O $(OBJDIR)\attach$O $(OBJDIR)\backlink$O $(OBJDIR)\backoffice$O $(OBJDIR)\bag$O $(OBJDIR)\bisect$O $(OBJDIR)\blob$O $(OBJDIR)\branch$O $(OBJDIR)\browse$O $(OBJDIR)\builtin$O $(OBJDIR)\bundle$O $(OBJDIR)\cache$O $(OBJDIR)\capabilities$O $(OBJDIR)\captcha$O $(OBJDIR)\cgi$O $(OBJDIR)\chat$O $(OBJDIR)\checkin$O $(OBJDIR)\checkout$O $(OBJDIR)\clearsign$O $(OBJDIR)\clone$O $(OBJDIR)\color$O $(OBJDIR)\comformat$O $(OBJDIR)\configure$O $(OBJDIR)\content$O $(OBJDIR)\cookies$O $(OBJDIR)\db$O $(OBJDIR)\delta$O $(OBJDIR)\deltacmd$O $(OBJDIR)\deltafunc$O $(OBJDIR)\descendants$O $(OBJDIR)\diff$O $(OBJDIR)\diffcmd$O $(OBJDIR)\dispatch$O $(OBJDIR)\doc$O $(OBJDIR)\encode$O $(OBJDIR)\etag$O $(OBJDIR)\event$O $(OBJDIR)\export$O $(OBJDIR)\extcgi$O $(OBJDIR)\file$O $(OBJDIR)\fileedit$O $(OBJDIR)\finfo$O $(OBJDIR)\foci$O $(OBJDIR)\forum$O $(OBJDIR)\fshell$O $(OBJDIR)\fusefs$O $(OBJDIR)\fuzz$O $(OBJDIR)\glob$O $(OBJDIR)\graph$O $(OBJDIR)\gzip$O $(OBJDIR)\hname$O $(OBJDIR)\hook$O $(OBJDIR)\http$O $(OBJDIR)\http_socket$O $(OBJDIR)\http_ssl$O $(OBJDIR)\http_transport$O $(OBJDIR)\import$O $(OBJDIR)\info$O $(OBJDIR)\interwiki$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)\match$O $(OBJDIR)\md5$O $(OBJDIR)\merge$O $(OBJDIR)\merge3$O $(OBJDIR)\moderate$O $(OBJDIR)\name$O $(OBJDIR)\patch$O $(OBJDIR)\path$O $(OBJDIR)\piechart$O $(OBJDIR)\pikchrshow$O $(OBJDIR)\pivot$O $(OBJDIR)\popen$O $(OBJDIR)\pqueue$O $(OBJDIR)\printf$O $(OBJDIR)\publish$O $(OBJDIR)\purge$O $(OBJDIR)\rebuild$O $(OBJDIR)\regexp$O $(OBJDIR)\repolist$O $(OBJDIR)\report$O $(OBJDIR)\rss$O $(OBJDIR)\schema$O $(OBJDIR)\search$O $(OBJDIR)\security_audit$O $(OBJDIR)\setup$O $(OBJDIR)\setupuser$O $(OBJDIR)\sha1$O $(OBJDIR)\sha1hard$O $(OBJDIR)\sha3$O $(OBJDIR)\shun$O $(OBJDIR)\sitemap$O $(OBJDIR)\skins$O $(OBJDIR)\smtp$O $(OBJDIR)\sqlcmd$O $(OBJDIR)\stash$O $(OBJDIR)\stat$O $(OBJDIR)\statrep$O $(OBJDIR)\style$O $(OBJDIR)\sync$O $(OBJDIR)\tag$O $(OBJDIR)\tar$O $(OBJDIR)\terminal$O $(OBJDIR)\th_main$O $(OBJDIR)\timeline$O $(OBJDIR)\tkt$O $(OBJDIR)\tktsetup$O $(OBJDIR)\undo$O $(OBJDIR)\unicode$O $(OBJDIR)\unversioned$O $(OBJDIR)\update$O $(OBJDIR)\url$O $(OBJDIR)\user$O $(OBJDIR)\utf8$O $(OBJDIR)\util$O $(OBJDIR)\verify$O $(OBJDIR)\vfile$O $(OBJDIR)\wiki$O $(OBJDIR)\wikiformat$O $(OBJDIR)\winfile$O $(OBJDIR)\winhttp$O $(OBJDIR)\xfer$O $(OBJDIR)\xfersetup$O $(OBJDIR)\zip$O $(OBJDIR)\shell$O $(OBJDIR)\sqlite3$O $(OBJDIR)\th$O $(OBJDIR)\th_lang$O
40
41
42 RC=$(DMDIR)\bin\rcc
43 RCFLAGS=-32 -w1 -I$(SRCDIR) /D__DMC__
44
@@ -53,11 +53,11 @@
53
54 $(OBJDIR)\fossil.res: $B\win\fossil.rc
55 $(RC) $(RCFLAGS) -o$@ $**
56
57 $(OBJDIR)\link: $B\win\Makefile.dmc $(OBJDIR)\fossil.res
58 +echo add ajax alerts allrepo attach backlink backoffice bag bisect blob branch browse builtin bundle cache capabilities captcha cgi chat checkin checkout clearsign clone color comformat configure content cookies db delta deltacmd deltafunc descendants diff diffcmd dispatch doc encode etag event export extcgi file fileedit finfo foci forum fshell fusefs fuzz glob graph gzip hname hook http http_socket http_ssl http_transport import info interwiki 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 match md5 merge merge3 moderate name patch path piechart pikchrshow pivot popen pqueue printf publish purge rebuild regexp repolist report rss schema search security_audit setup setupuser sha1 sha1hard sha3 shun sitemap skins smtp sqlcmd stash stat statrep style sync tag tar terminal th_main timeline tkt tktsetup undo unicode unversioned update url user utf8 util verify vfile wiki wikiformat winfile winhttp xfer xfersetup zip shell sqlite3 th th_lang > $@
59 +echo fossil >> $@
60 +echo fossil >> $@
61 +echo $(LIBS) >> $@
62 +echo. >> $@
63 +echo fossil >> $@
@@ -635,10 +635,16 @@
635 $(OBJDIR)\markdown_html$O : markdown_html_.c markdown_html.h
636 $(TCC) -o$@ -c markdown_html_.c
637
638 markdown_html_.c : $(SRCDIR)\markdown_html.c
639 +translate$E $** > $@
640
641 $(OBJDIR)\match$O : match_.c match.h
642 $(TCC) -o$@ -c match_.c
643
644 match_.c : $(SRCDIR)\match.c
645 +translate$E $** > $@
646
647 $(OBJDIR)\md5$O : md5_.c md5.h
648 $(TCC) -o$@ -c md5_.c
649
650 md5_.c : $(SRCDIR)\md5.c
@@ -1009,7 +1015,7 @@
1015
1016 zip_.c : $(SRCDIR)\zip.c
1017 +translate$E $** > $@
1018
1019 headers: makeheaders$E page_index.h builtin_data.h VERSION.h
1020 +makeheaders$E add_.c:add.h ajax_.c:ajax.h alerts_.c:alerts.h allrepo_.c:allrepo.h attach_.c:attach.h backlink_.c:backlink.h backoffice_.c:backoffice.h bag_.c:bag.h bisect_.c:bisect.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.h builtin_.c:builtin.h bundle_.c:bundle.h cache_.c:cache.h capabilities_.c:capabilities.h captcha_.c:captcha.h cgi_.c:cgi.h chat_.c:chat.h checkin_.c:checkin.h checkout_.c:checkout.h clearsign_.c:clearsign.h clone_.c:clone.h color_.c:color.h comformat_.c:comformat.h configure_.c:configure.h content_.c:content.h cookies_.c:cookies.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h deltafunc_.c:deltafunc.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h dispatch_.c:dispatch.h doc_.c:doc.h encode_.c:encode.h etag_.c:etag.h event_.c:event.h export_.c:export.h extcgi_.c:extcgi.h file_.c:file.h fileedit_.c:fileedit.h finfo_.c:finfo.h foci_.c:foci.h forum_.c:forum.h fshell_.c:fshell.h fusefs_.c:fusefs.h fuzz_.c:fuzz.h glob_.c:glob.h graph_.c:graph.h gzip_.c:gzip.h hname_.c:hname.h hook_.c:hook.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 interwiki_.c:interwiki.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 match_.c:match.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h moderate_.c:moderate.h name_.c:name.h patch_.c:patch.h path_.c:path.h piechart_.c:piechart.h pikchrshow_.c:pikchrshow.h pivot_.c:pivot.h popen_.c:popen.h pqueue_.c:pqueue.h printf_.c:printf.h publish_.c:publish.h purge_.c:purge.h rebuild_.c:rebuild.h regexp_.c:regexp.h repolist_.c:repolist.h report_.c:report.h rss_.c:rss.h schema_.c:schema.h search_.c:search.h security_audit_.c:security_audit.h setup_.c:setup.h setupuser_.c:setupuser.h sha1_.c:sha1.h sha1hard_.c:sha1hard.h sha3_.c:sha3.h shun_.c:shun.h sitemap_.c:sitemap.h skins_.c:skins.h smtp_.c:smtp.h sqlcmd_.c:sqlcmd.h stash_.c:stash.h stat_.c:stat.h statrep_.c:statrep.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tar_.c:tar.h terminal_.c:terminal.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktsetup_.c:tktsetup.h undo_.c:undo.h unicode_.c:unicode.h unversioned_.c:unversioned.h update_.c:update.h url_.c:url.h user_.c:user.h utf8_.c:utf8.h util_.c:util.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h winfile_.c:winfile.h winhttp_.c:winhttp.h xfer_.c:xfer.h xfersetup_.c:xfersetup.h zip_.c:zip.h $(SRCDIR_extsrc)\pikchr.c:pikchr.h $(SRCDIR_extsrc)\sqlite3.h $(SRCDIR)\th.h VERSION.h $(SRCDIR_extsrc)\cson_amalgamation.h
1021 @copy /Y nul: headers
1022
--- win/Makefile.mingw
+++ win/Makefile.mingw
@@ -485,10 +485,11 @@
485485
$(SRCDIR)/lookslike.c \
486486
$(SRCDIR)/main.c \
487487
$(SRCDIR)/manifest.c \
488488
$(SRCDIR)/markdown.c \
489489
$(SRCDIR)/markdown_html.c \
490
+ $(SRCDIR)/match.c \
490491
$(SRCDIR)/md5.c \
491492
$(SRCDIR)/merge.c \
492493
$(SRCDIR)/merge3.c \
493494
$(SRCDIR)/moderate.c \
494495
$(SRCDIR)/name.c \
@@ -750,10 +751,11 @@
750751
$(OBJDIR)/lookslike_.c \
751752
$(OBJDIR)/main_.c \
752753
$(OBJDIR)/manifest_.c \
753754
$(OBJDIR)/markdown_.c \
754755
$(OBJDIR)/markdown_html_.c \
756
+ $(OBJDIR)/match_.c \
755757
$(OBJDIR)/md5_.c \
756758
$(OBJDIR)/merge_.c \
757759
$(OBJDIR)/merge3_.c \
758760
$(OBJDIR)/moderate_.c \
759761
$(OBJDIR)/name_.c \
@@ -899,10 +901,11 @@
899901
$(OBJDIR)/lookslike.o \
900902
$(OBJDIR)/main.o \
901903
$(OBJDIR)/manifest.o \
902904
$(OBJDIR)/markdown.o \
903905
$(OBJDIR)/markdown_html.o \
906
+ $(OBJDIR)/match.o \
904907
$(OBJDIR)/md5.o \
905908
$(OBJDIR)/merge.o \
906909
$(OBJDIR)/merge3.o \
907910
$(OBJDIR)/moderate.o \
908911
$(OBJDIR)/name.o \
@@ -1252,10 +1255,11 @@
12521255
$(OBJDIR)/lookslike_.c:$(OBJDIR)/lookslike.h \
12531256
$(OBJDIR)/main_.c:$(OBJDIR)/main.h \
12541257
$(OBJDIR)/manifest_.c:$(OBJDIR)/manifest.h \
12551258
$(OBJDIR)/markdown_.c:$(OBJDIR)/markdown.h \
12561259
$(OBJDIR)/markdown_html_.c:$(OBJDIR)/markdown_html.h \
1260
+ $(OBJDIR)/match_.c:$(OBJDIR)/match.h \
12571261
$(OBJDIR)/md5_.c:$(OBJDIR)/md5.h \
12581262
$(OBJDIR)/merge_.c:$(OBJDIR)/merge.h \
12591263
$(OBJDIR)/merge3_.c:$(OBJDIR)/merge3.h \
12601264
$(OBJDIR)/moderate_.c:$(OBJDIR)/moderate.h \
12611265
$(OBJDIR)/name_.c:$(OBJDIR)/name.h \
@@ -2003,10 +2007,18 @@
20032007
20042008
$(OBJDIR)/markdown_html.o: $(OBJDIR)/markdown_html_.c $(OBJDIR)/markdown_html.h $(SRCDIR)/config.h
20052009
$(XTCC) -o $(OBJDIR)/markdown_html.o -c $(OBJDIR)/markdown_html_.c
20062010
20072011
$(OBJDIR)/markdown_html.h: $(OBJDIR)/headers
2012
+
2013
+$(OBJDIR)/match_.c: $(SRCDIR)/match.c $(TRANSLATE)
2014
+ $(TRANSLATE) $(SRCDIR)/match.c >$@
2015
+
2016
+$(OBJDIR)/match.o: $(OBJDIR)/match_.c $(OBJDIR)/match.h $(SRCDIR)/config.h
2017
+ $(XTCC) -o $(OBJDIR)/match.o -c $(OBJDIR)/match_.c
2018
+
2019
+$(OBJDIR)/match.h: $(OBJDIR)/headers
20082020
20092021
$(OBJDIR)/md5_.c: $(SRCDIR)/md5.c $(TRANSLATE)
20102022
$(TRANSLATE) $(SRCDIR)/md5.c >$@
20112023
20122024
$(OBJDIR)/md5.o: $(OBJDIR)/md5_.c $(OBJDIR)/md5.h $(SRCDIR)/config.h
20132025
--- win/Makefile.mingw
+++ win/Makefile.mingw
@@ -485,10 +485,11 @@
485 $(SRCDIR)/lookslike.c \
486 $(SRCDIR)/main.c \
487 $(SRCDIR)/manifest.c \
488 $(SRCDIR)/markdown.c \
489 $(SRCDIR)/markdown_html.c \
 
490 $(SRCDIR)/md5.c \
491 $(SRCDIR)/merge.c \
492 $(SRCDIR)/merge3.c \
493 $(SRCDIR)/moderate.c \
494 $(SRCDIR)/name.c \
@@ -750,10 +751,11 @@
750 $(OBJDIR)/lookslike_.c \
751 $(OBJDIR)/main_.c \
752 $(OBJDIR)/manifest_.c \
753 $(OBJDIR)/markdown_.c \
754 $(OBJDIR)/markdown_html_.c \
 
755 $(OBJDIR)/md5_.c \
756 $(OBJDIR)/merge_.c \
757 $(OBJDIR)/merge3_.c \
758 $(OBJDIR)/moderate_.c \
759 $(OBJDIR)/name_.c \
@@ -899,10 +901,11 @@
899 $(OBJDIR)/lookslike.o \
900 $(OBJDIR)/main.o \
901 $(OBJDIR)/manifest.o \
902 $(OBJDIR)/markdown.o \
903 $(OBJDIR)/markdown_html.o \
 
904 $(OBJDIR)/md5.o \
905 $(OBJDIR)/merge.o \
906 $(OBJDIR)/merge3.o \
907 $(OBJDIR)/moderate.o \
908 $(OBJDIR)/name.o \
@@ -1252,10 +1255,11 @@
1252 $(OBJDIR)/lookslike_.c:$(OBJDIR)/lookslike.h \
1253 $(OBJDIR)/main_.c:$(OBJDIR)/main.h \
1254 $(OBJDIR)/manifest_.c:$(OBJDIR)/manifest.h \
1255 $(OBJDIR)/markdown_.c:$(OBJDIR)/markdown.h \
1256 $(OBJDIR)/markdown_html_.c:$(OBJDIR)/markdown_html.h \
 
1257 $(OBJDIR)/md5_.c:$(OBJDIR)/md5.h \
1258 $(OBJDIR)/merge_.c:$(OBJDIR)/merge.h \
1259 $(OBJDIR)/merge3_.c:$(OBJDIR)/merge3.h \
1260 $(OBJDIR)/moderate_.c:$(OBJDIR)/moderate.h \
1261 $(OBJDIR)/name_.c:$(OBJDIR)/name.h \
@@ -2003,10 +2007,18 @@
2003
2004 $(OBJDIR)/markdown_html.o: $(OBJDIR)/markdown_html_.c $(OBJDIR)/markdown_html.h $(SRCDIR)/config.h
2005 $(XTCC) -o $(OBJDIR)/markdown_html.o -c $(OBJDIR)/markdown_html_.c
2006
2007 $(OBJDIR)/markdown_html.h: $(OBJDIR)/headers
 
 
 
 
 
 
 
 
2008
2009 $(OBJDIR)/md5_.c: $(SRCDIR)/md5.c $(TRANSLATE)
2010 $(TRANSLATE) $(SRCDIR)/md5.c >$@
2011
2012 $(OBJDIR)/md5.o: $(OBJDIR)/md5_.c $(OBJDIR)/md5.h $(SRCDIR)/config.h
2013
--- win/Makefile.mingw
+++ win/Makefile.mingw
@@ -485,10 +485,11 @@
485 $(SRCDIR)/lookslike.c \
486 $(SRCDIR)/main.c \
487 $(SRCDIR)/manifest.c \
488 $(SRCDIR)/markdown.c \
489 $(SRCDIR)/markdown_html.c \
490 $(SRCDIR)/match.c \
491 $(SRCDIR)/md5.c \
492 $(SRCDIR)/merge.c \
493 $(SRCDIR)/merge3.c \
494 $(SRCDIR)/moderate.c \
495 $(SRCDIR)/name.c \
@@ -750,10 +751,11 @@
751 $(OBJDIR)/lookslike_.c \
752 $(OBJDIR)/main_.c \
753 $(OBJDIR)/manifest_.c \
754 $(OBJDIR)/markdown_.c \
755 $(OBJDIR)/markdown_html_.c \
756 $(OBJDIR)/match_.c \
757 $(OBJDIR)/md5_.c \
758 $(OBJDIR)/merge_.c \
759 $(OBJDIR)/merge3_.c \
760 $(OBJDIR)/moderate_.c \
761 $(OBJDIR)/name_.c \
@@ -899,10 +901,11 @@
901 $(OBJDIR)/lookslike.o \
902 $(OBJDIR)/main.o \
903 $(OBJDIR)/manifest.o \
904 $(OBJDIR)/markdown.o \
905 $(OBJDIR)/markdown_html.o \
906 $(OBJDIR)/match.o \
907 $(OBJDIR)/md5.o \
908 $(OBJDIR)/merge.o \
909 $(OBJDIR)/merge3.o \
910 $(OBJDIR)/moderate.o \
911 $(OBJDIR)/name.o \
@@ -1252,10 +1255,11 @@
1255 $(OBJDIR)/lookslike_.c:$(OBJDIR)/lookslike.h \
1256 $(OBJDIR)/main_.c:$(OBJDIR)/main.h \
1257 $(OBJDIR)/manifest_.c:$(OBJDIR)/manifest.h \
1258 $(OBJDIR)/markdown_.c:$(OBJDIR)/markdown.h \
1259 $(OBJDIR)/markdown_html_.c:$(OBJDIR)/markdown_html.h \
1260 $(OBJDIR)/match_.c:$(OBJDIR)/match.h \
1261 $(OBJDIR)/md5_.c:$(OBJDIR)/md5.h \
1262 $(OBJDIR)/merge_.c:$(OBJDIR)/merge.h \
1263 $(OBJDIR)/merge3_.c:$(OBJDIR)/merge3.h \
1264 $(OBJDIR)/moderate_.c:$(OBJDIR)/moderate.h \
1265 $(OBJDIR)/name_.c:$(OBJDIR)/name.h \
@@ -2003,10 +2007,18 @@
2007
2008 $(OBJDIR)/markdown_html.o: $(OBJDIR)/markdown_html_.c $(OBJDIR)/markdown_html.h $(SRCDIR)/config.h
2009 $(XTCC) -o $(OBJDIR)/markdown_html.o -c $(OBJDIR)/markdown_html_.c
2010
2011 $(OBJDIR)/markdown_html.h: $(OBJDIR)/headers
2012
2013 $(OBJDIR)/match_.c: $(SRCDIR)/match.c $(TRANSLATE)
2014 $(TRANSLATE) $(SRCDIR)/match.c >$@
2015
2016 $(OBJDIR)/match.o: $(OBJDIR)/match_.c $(OBJDIR)/match.h $(SRCDIR)/config.h
2017 $(XTCC) -o $(OBJDIR)/match.o -c $(OBJDIR)/match_.c
2018
2019 $(OBJDIR)/match.h: $(OBJDIR)/headers
2020
2021 $(OBJDIR)/md5_.c: $(SRCDIR)/md5.c $(TRANSLATE)
2022 $(TRANSLATE) $(SRCDIR)/md5.c >$@
2023
2024 $(OBJDIR)/md5.o: $(OBJDIR)/md5_.c $(OBJDIR)/md5.h $(SRCDIR)/config.h
2025
--- win/Makefile.msc
+++ win/Makefile.msc
@@ -443,10 +443,11 @@
443443
"$(OX)\lookslike_.c" \
444444
"$(OX)\main_.c" \
445445
"$(OX)\manifest_.c" \
446446
"$(OX)\markdown_.c" \
447447
"$(OX)\markdown_html_.c" \
448
+ "$(OX)\match_.c" \
448449
"$(OX)\md5_.c" \
449450
"$(OX)\merge_.c" \
450451
"$(OX)\merge3_.c" \
451452
"$(OX)\moderate_.c" \
452453
"$(OX)\name_.c" \
@@ -708,10 +709,11 @@
708709
"$(OX)\lookslike$O" \
709710
"$(OX)\main$O" \
710711
"$(OX)\manifest$O" \
711712
"$(OX)\markdown$O" \
712713
"$(OX)\markdown_html$O" \
714
+ "$(OX)\match$O" \
713715
"$(OX)\md5$O" \
714716
"$(OX)\merge$O" \
715717
"$(OX)\merge3$O" \
716718
"$(OX)\moderate$O" \
717719
"$(OX)\name$O" \
@@ -957,10 +959,11 @@
957959
echo "$(OX)\lookslike.obj" >> $@
958960
echo "$(OX)\main.obj" >> $@
959961
echo "$(OX)\manifest.obj" >> $@
960962
echo "$(OX)\markdown.obj" >> $@
961963
echo "$(OX)\markdown_html.obj" >> $@
964
+ echo "$(OX)\match.obj" >> $@
962965
echo "$(OX)\md5.obj" >> $@
963966
echo "$(OX)\merge.obj" >> $@
964967
echo "$(OX)\merge3.obj" >> $@
965968
echo "$(OX)\moderate.obj" >> $@
966969
echo "$(OX)\name.obj" >> $@
@@ -1762,10 +1765,16 @@
17621765
"$(OX)\markdown_html$O" : "$(OX)\markdown_html_.c" "$(OX)\markdown_html.h"
17631766
$(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\markdown_html_.c"
17641767
17651768
"$(OX)\markdown_html_.c" : "$(SRCDIR)\markdown_html.c"
17661769
"$(OBJDIR)\translate$E" $** > $@
1770
+
1771
+"$(OX)\match$O" : "$(OX)\match_.c" "$(OX)\match.h"
1772
+ $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\match_.c"
1773
+
1774
+"$(OX)\match_.c" : "$(SRCDIR)\match.c"
1775
+ "$(OBJDIR)\translate$E" $** > $@
17671776
17681777
"$(OX)\md5$O" : "$(OX)\md5_.c" "$(OX)\md5.h"
17691778
$(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\md5_.c"
17701779
17711780
"$(OX)\md5_.c" : "$(SRCDIR)\md5.c"
@@ -2224,10 +2233,11 @@
22242233
"$(OX)\lookslike_.c":"$(OX)\lookslike.h" \
22252234
"$(OX)\main_.c":"$(OX)\main.h" \
22262235
"$(OX)\manifest_.c":"$(OX)\manifest.h" \
22272236
"$(OX)\markdown_.c":"$(OX)\markdown.h" \
22282237
"$(OX)\markdown_html_.c":"$(OX)\markdown_html.h" \
2238
+ "$(OX)\match_.c":"$(OX)\match.h" \
22292239
"$(OX)\md5_.c":"$(OX)\md5.h" \
22302240
"$(OX)\merge_.c":"$(OX)\merge.h" \
22312241
"$(OX)\merge3_.c":"$(OX)\merge3.h" \
22322242
"$(OX)\moderate_.c":"$(OX)\moderate.h" \
22332243
"$(OX)\name_.c":"$(OX)\name.h" \
22342244
--- win/Makefile.msc
+++ win/Makefile.msc
@@ -443,10 +443,11 @@
443 "$(OX)\lookslike_.c" \
444 "$(OX)\main_.c" \
445 "$(OX)\manifest_.c" \
446 "$(OX)\markdown_.c" \
447 "$(OX)\markdown_html_.c" \
 
448 "$(OX)\md5_.c" \
449 "$(OX)\merge_.c" \
450 "$(OX)\merge3_.c" \
451 "$(OX)\moderate_.c" \
452 "$(OX)\name_.c" \
@@ -708,10 +709,11 @@
708 "$(OX)\lookslike$O" \
709 "$(OX)\main$O" \
710 "$(OX)\manifest$O" \
711 "$(OX)\markdown$O" \
712 "$(OX)\markdown_html$O" \
 
713 "$(OX)\md5$O" \
714 "$(OX)\merge$O" \
715 "$(OX)\merge3$O" \
716 "$(OX)\moderate$O" \
717 "$(OX)\name$O" \
@@ -957,10 +959,11 @@
957 echo "$(OX)\lookslike.obj" >> $@
958 echo "$(OX)\main.obj" >> $@
959 echo "$(OX)\manifest.obj" >> $@
960 echo "$(OX)\markdown.obj" >> $@
961 echo "$(OX)\markdown_html.obj" >> $@
 
962 echo "$(OX)\md5.obj" >> $@
963 echo "$(OX)\merge.obj" >> $@
964 echo "$(OX)\merge3.obj" >> $@
965 echo "$(OX)\moderate.obj" >> $@
966 echo "$(OX)\name.obj" >> $@
@@ -1762,10 +1765,16 @@
1762 "$(OX)\markdown_html$O" : "$(OX)\markdown_html_.c" "$(OX)\markdown_html.h"
1763 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\markdown_html_.c"
1764
1765 "$(OX)\markdown_html_.c" : "$(SRCDIR)\markdown_html.c"
1766 "$(OBJDIR)\translate$E" $** > $@
 
 
 
 
 
 
1767
1768 "$(OX)\md5$O" : "$(OX)\md5_.c" "$(OX)\md5.h"
1769 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\md5_.c"
1770
1771 "$(OX)\md5_.c" : "$(SRCDIR)\md5.c"
@@ -2224,10 +2233,11 @@
2224 "$(OX)\lookslike_.c":"$(OX)\lookslike.h" \
2225 "$(OX)\main_.c":"$(OX)\main.h" \
2226 "$(OX)\manifest_.c":"$(OX)\manifest.h" \
2227 "$(OX)\markdown_.c":"$(OX)\markdown.h" \
2228 "$(OX)\markdown_html_.c":"$(OX)\markdown_html.h" \
 
2229 "$(OX)\md5_.c":"$(OX)\md5.h" \
2230 "$(OX)\merge_.c":"$(OX)\merge.h" \
2231 "$(OX)\merge3_.c":"$(OX)\merge3.h" \
2232 "$(OX)\moderate_.c":"$(OX)\moderate.h" \
2233 "$(OX)\name_.c":"$(OX)\name.h" \
2234
--- win/Makefile.msc
+++ win/Makefile.msc
@@ -443,10 +443,11 @@
443 "$(OX)\lookslike_.c" \
444 "$(OX)\main_.c" \
445 "$(OX)\manifest_.c" \
446 "$(OX)\markdown_.c" \
447 "$(OX)\markdown_html_.c" \
448 "$(OX)\match_.c" \
449 "$(OX)\md5_.c" \
450 "$(OX)\merge_.c" \
451 "$(OX)\merge3_.c" \
452 "$(OX)\moderate_.c" \
453 "$(OX)\name_.c" \
@@ -708,10 +709,11 @@
709 "$(OX)\lookslike$O" \
710 "$(OX)\main$O" \
711 "$(OX)\manifest$O" \
712 "$(OX)\markdown$O" \
713 "$(OX)\markdown_html$O" \
714 "$(OX)\match$O" \
715 "$(OX)\md5$O" \
716 "$(OX)\merge$O" \
717 "$(OX)\merge3$O" \
718 "$(OX)\moderate$O" \
719 "$(OX)\name$O" \
@@ -957,10 +959,11 @@
959 echo "$(OX)\lookslike.obj" >> $@
960 echo "$(OX)\main.obj" >> $@
961 echo "$(OX)\manifest.obj" >> $@
962 echo "$(OX)\markdown.obj" >> $@
963 echo "$(OX)\markdown_html.obj" >> $@
964 echo "$(OX)\match.obj" >> $@
965 echo "$(OX)\md5.obj" >> $@
966 echo "$(OX)\merge.obj" >> $@
967 echo "$(OX)\merge3.obj" >> $@
968 echo "$(OX)\moderate.obj" >> $@
969 echo "$(OX)\name.obj" >> $@
@@ -1762,10 +1765,16 @@
1765 "$(OX)\markdown_html$O" : "$(OX)\markdown_html_.c" "$(OX)\markdown_html.h"
1766 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\markdown_html_.c"
1767
1768 "$(OX)\markdown_html_.c" : "$(SRCDIR)\markdown_html.c"
1769 "$(OBJDIR)\translate$E" $** > $@
1770
1771 "$(OX)\match$O" : "$(OX)\match_.c" "$(OX)\match.h"
1772 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\match_.c"
1773
1774 "$(OX)\match_.c" : "$(SRCDIR)\match.c"
1775 "$(OBJDIR)\translate$E" $** > $@
1776
1777 "$(OX)\md5$O" : "$(OX)\md5_.c" "$(OX)\md5.h"
1778 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\md5_.c"
1779
1780 "$(OX)\md5_.c" : "$(SRCDIR)\md5.c"
@@ -2224,10 +2233,11 @@
2233 "$(OX)\lookslike_.c":"$(OX)\lookslike.h" \
2234 "$(OX)\main_.c":"$(OX)\main.h" \
2235 "$(OX)\manifest_.c":"$(OX)\manifest.h" \
2236 "$(OX)\markdown_.c":"$(OX)\markdown.h" \
2237 "$(OX)\markdown_html_.c":"$(OX)\markdown_html.h" \
2238 "$(OX)\match_.c":"$(OX)\match.h" \
2239 "$(OX)\md5_.c":"$(OX)\md5.h" \
2240 "$(OX)\merge_.c":"$(OX)\merge.h" \
2241 "$(OX)\merge3_.c":"$(OX)\merge3.h" \
2242 "$(OX)\moderate_.c":"$(OX)\moderate.h" \
2243 "$(OX)\name_.c":"$(OX)\name.h" \
2244

Keyboard Shortcuts

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