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".
Commit
e89ea2c93c38fe1cd2b7746694ecddca26dae9e510d40f1fe9ffdb670c4879f0
Parent
1611c972604a6b1…
8 files changed
+9
-6
+12
+73
+9
-232
+1
+10
-4
+12
+10
+9
-6
| --- src/graph.c | ||
| +++ src/graph.c | ||
| @@ -495,11 +495,15 @@ | ||
| 495 | 495 | ** |
| 496 | 496 | ** TIMELINE_DISJOINT: Omit descenders |
| 497 | 497 | ** TIMELINE_FILLGAPS: Use step-children |
| 498 | 498 | ** TIMELINE_XMERGE: Omit off-graph merge lines |
| 499 | 499 | */ |
| 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 | +){ | |
| 501 | 505 | GraphRow *pRow, *pDesc, *pDup, *pLoop, *pParent; |
| 502 | 506 | int i, j; |
| 503 | 507 | u64 mask; |
| 504 | 508 | int hasDup = 0; /* True if one or more isDup entries */ |
| 505 | 509 | const char *zTrunk; |
| @@ -963,12 +967,12 @@ | ||
| 963 | 967 | } |
| 964 | 968 | } |
| 965 | 969 | |
| 966 | 970 | /* |
| 967 | 971 | ** 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. | |
| 970 | 974 | ** |
| 971 | 975 | ** aMap[X]=Y means that the X-th rail is drawn as the Y-th rail. |
| 972 | 976 | ** |
| 973 | 977 | ** Do not move rails around if there are timewarps, because that can |
| 974 | 978 | ** seriously mess up the display of timewarps. Timewarps should be |
| @@ -988,14 +992,13 @@ | ||
| 988 | 992 | ** |
| 989 | 993 | ** 0x01 A rail that merges with the preferred branch |
| 990 | 994 | */ |
| 991 | 995 | u8 aPriority[GR_MAX_RAIL]; |
| 992 | 996 | memset(aPriority, 0, p->mxRail+1); |
| 993 | - if( zLeftBranch ){ | |
| 994 | - char *zLeft = persistBranchName(p, zLeftBranch); | |
| 997 | + if( pLeftBranch ){ | |
| 995 | 998 | for(pRow=p->pFirst; pRow; pRow=pRow->pNext){ |
| 996 | - if( pRow->zBranch==zLeft ){ | |
| 999 | + if( match_text(pLeftBranch, pRow->zBranch) ){ | |
| 997 | 1000 | aPriority[pRow->iRail] |= 4; |
| 998 | 1001 | for(i=0; i<=p->mxRail; i++){ |
| 999 | 1002 | if( pRow->mergeIn[i] ) aPriority[i] |= 1; |
| 1000 | 1003 | } |
| 1001 | 1004 | if( pRow->mergeOut>=0 ) aPriority[pRow->mergeOut] |= 1; |
| 1002 | 1005 |
| --- 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 @@ | ||
| 99 | 99 | $(SRCDIR)/lookslike.c \ |
| 100 | 100 | $(SRCDIR)/main.c \ |
| 101 | 101 | $(SRCDIR)/manifest.c \ |
| 102 | 102 | $(SRCDIR)/markdown.c \ |
| 103 | 103 | $(SRCDIR)/markdown_html.c \ |
| 104 | + $(SRCDIR)/match.c \ | |
| 104 | 105 | $(SRCDIR)/md5.c \ |
| 105 | 106 | $(SRCDIR)/merge.c \ |
| 106 | 107 | $(SRCDIR)/merge3.c \ |
| 107 | 108 | $(SRCDIR)/moderate.c \ |
| 108 | 109 | $(SRCDIR)/name.c \ |
| @@ -364,10 +365,11 @@ | ||
| 364 | 365 | $(OBJDIR)/lookslike_.c \ |
| 365 | 366 | $(OBJDIR)/main_.c \ |
| 366 | 367 | $(OBJDIR)/manifest_.c \ |
| 367 | 368 | $(OBJDIR)/markdown_.c \ |
| 368 | 369 | $(OBJDIR)/markdown_html_.c \ |
| 370 | + $(OBJDIR)/match_.c \ | |
| 369 | 371 | $(OBJDIR)/md5_.c \ |
| 370 | 372 | $(OBJDIR)/merge_.c \ |
| 371 | 373 | $(OBJDIR)/merge3_.c \ |
| 372 | 374 | $(OBJDIR)/moderate_.c \ |
| 373 | 375 | $(OBJDIR)/name_.c \ |
| @@ -513,10 +515,11 @@ | ||
| 513 | 515 | $(OBJDIR)/lookslike.o \ |
| 514 | 516 | $(OBJDIR)/main.o \ |
| 515 | 517 | $(OBJDIR)/manifest.o \ |
| 516 | 518 | $(OBJDIR)/markdown.o \ |
| 517 | 519 | $(OBJDIR)/markdown_html.o \ |
| 520 | + $(OBJDIR)/match.o \ | |
| 518 | 521 | $(OBJDIR)/md5.o \ |
| 519 | 522 | $(OBJDIR)/merge.o \ |
| 520 | 523 | $(OBJDIR)/merge3.o \ |
| 521 | 524 | $(OBJDIR)/moderate.o \ |
| 522 | 525 | $(OBJDIR)/name.o \ |
| @@ -848,10 +851,11 @@ | ||
| 848 | 851 | $(OBJDIR)/lookslike_.c:$(OBJDIR)/lookslike.h \ |
| 849 | 852 | $(OBJDIR)/main_.c:$(OBJDIR)/main.h \ |
| 850 | 853 | $(OBJDIR)/manifest_.c:$(OBJDIR)/manifest.h \ |
| 851 | 854 | $(OBJDIR)/markdown_.c:$(OBJDIR)/markdown.h \ |
| 852 | 855 | $(OBJDIR)/markdown_html_.c:$(OBJDIR)/markdown_html.h \ |
| 856 | + $(OBJDIR)/match_.c:$(OBJDIR)/match.h \ | |
| 853 | 857 | $(OBJDIR)/md5_.c:$(OBJDIR)/md5.h \ |
| 854 | 858 | $(OBJDIR)/merge_.c:$(OBJDIR)/merge.h \ |
| 855 | 859 | $(OBJDIR)/merge3_.c:$(OBJDIR)/merge3.h \ |
| 856 | 860 | $(OBJDIR)/moderate_.c:$(OBJDIR)/moderate.h \ |
| 857 | 861 | $(OBJDIR)/name_.c:$(OBJDIR)/name.h \ |
| @@ -1597,10 +1601,18 @@ | ||
| 1597 | 1601 | |
| 1598 | 1602 | $(OBJDIR)/markdown_html.o: $(OBJDIR)/markdown_html_.c $(OBJDIR)/markdown_html.h $(SRCDIR)/config.h |
| 1599 | 1603 | $(XTCC) -o $(OBJDIR)/markdown_html.o -c $(OBJDIR)/markdown_html_.c |
| 1600 | 1604 | |
| 1601 | 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 | |
| 1602 | 1614 | |
| 1603 | 1615 | $(OBJDIR)/md5_.c: $(SRCDIR)/md5.c $(OBJDIR)/translate |
| 1604 | 1616 | $(OBJDIR)/translate $(SRCDIR)/md5.c >$@ |
| 1605 | 1617 | |
| 1606 | 1618 | $(OBJDIR)/md5.o: $(OBJDIR)/md5_.c $(OBJDIR)/md5.h $(SRCDIR)/config.h |
| 1607 | 1619 | |
| 1608 | 1620 | 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 @@ | ||
| 191 | 191 | void www_print_timeline( |
| 192 | 192 | Stmt *pQuery, /* Query to implement the timeline */ |
| 193 | 193 | int tmFlags, /* Flags controlling display behavior */ |
| 194 | 194 | const char *zThisUser, /* Suppress links to this user */ |
| 195 | 195 | 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 */ | |
| 197 | 197 | int selectedRid, /* Highlight the line with this RID value or zero */ |
| 198 | 198 | int secondRid, /* Secondary highlight (or zero) */ |
| 199 | 199 | void (*xExtra)(int) /* Routine to call on each line of display */ |
| 200 | 200 | ){ |
| 201 | 201 | int mxWikiLen; |
| @@ -813,11 +813,11 @@ | ||
| 813 | 813 | } |
| 814 | 814 | if( pendingEndTr ){ |
| 815 | 815 | @ </td></tr> |
| 816 | 816 | } |
| 817 | 817 | if( pGraph ){ |
| 818 | - graph_finish(pGraph, zLeftBranch, tmFlags); | |
| 818 | + graph_finish(pGraph, pLeftBranch, tmFlags); | |
| 819 | 819 | if( pGraph->nErr ){ |
| 820 | 820 | graph_free(pGraph); |
| 821 | 821 | pGraph = 0; |
| 822 | 822 | }else{ |
| 823 | 823 | @ <tr class="timelineBottom" id="btm-%d(iTableId)">\ |
| @@ -1304,237 +1304,10 @@ | ||
| 1304 | 1304 | if( zChng==0 || zChng[0]==0 ) return; |
| 1305 | 1305 | blob_appendf(pDescription, " that include changes to files matching '%h'", |
| 1306 | 1306 | zChng); |
| 1307 | 1307 | } |
| 1308 | 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(®exp, 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 | 1309 | /* |
| 1537 | 1310 | ** Similar to fossil_expand_datetime() |
| 1538 | 1311 | ** |
| 1539 | 1312 | ** Add missing "-" characters into a date/time. Examples: |
| 1540 | 1313 | ** |
| @@ -2084,11 +1857,11 @@ | ||
| 2084 | 1857 | if( advancedMenu ){ |
| 2085 | 1858 | style_submenu_checkbox("rel", "Related", 0, 0); |
| 2086 | 1859 | } |
| 2087 | 1860 | |
| 2088 | 1861 | /* Construct the tag match expression. */ |
| 2089 | - zTagSql = tagMatchExpression(matchStyle, zTagName, &zMatchDesc, &zError); | |
| 1862 | + zTagSql = match_tag_sqlexpr(matchStyle, zTagName, &zMatchDesc, &zError); | |
| 2090 | 1863 | } |
| 2091 | 1864 | |
| 2092 | 1865 | if( zMark && zMark[0]==0 ){ |
| 2093 | 1866 | if( zAfter ) zMark = zAfter; |
| 2094 | 1867 | if( zBefore ) zMark = zBefore; |
| @@ -3141,12 +2914,16 @@ | ||
| 3141 | 2914 | if( zNewerButton ){ |
| 3142 | 2915 | @ %z(chref("button","%s",zNewerButton))%h(zNewerButtonLabel)\ |
| 3143 | 2916 | @ ↑</a> |
| 3144 | 2917 | } |
| 3145 | 2918 | 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 | + } | |
| 3148 | 2925 | db_finalize(&q); |
| 3149 | 2926 | if( zOlderButton ){ |
| 3150 | 2927 | @ %z(chref("button","%s",zOlderButton))%h(zOlderButtonLabel)\ |
| 3151 | 2928 | @ ↓</a> |
| 3152 | 2929 | } |
| 3153 | 2930 |
| --- 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(®exp, 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 | @ ↑</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 | @ ↓</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 | @ ↑</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 | @ ↓</a> |
| 2929 | } |
| 2930 |
+1
| --- tools/makemake.tcl | ||
| +++ tools/makemake.tcl | ||
| @@ -132,10 +132,11 @@ | ||
| 132 | 132 | lookslike |
| 133 | 133 | main |
| 134 | 134 | manifest |
| 135 | 135 | markdown |
| 136 | 136 | markdown_html |
| 137 | + match | |
| 137 | 138 | md5 |
| 138 | 139 | merge |
| 139 | 140 | merge3 |
| 140 | 141 | moderate |
| 141 | 142 | name |
| 142 | 143 |
| --- 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 @@ | ||
| 32 | 32 | |
| 33 | 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 | 34 | |
| 35 | 35 | PIKCHR_OPTIONS = -DPIKCHR_TOKEN_LIMIT=10000 |
| 36 | 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 | |
| 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 | 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 | |
| 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 | 40 | |
| 41 | 41 | |
| 42 | 42 | RC=$(DMDIR)\bin\rcc |
| 43 | 43 | RCFLAGS=-32 -w1 -I$(SRCDIR) /D__DMC__ |
| 44 | 44 | |
| @@ -53,11 +53,11 @@ | ||
| 53 | 53 | |
| 54 | 54 | $(OBJDIR)\fossil.res: $B\win\fossil.rc |
| 55 | 55 | $(RC) $(RCFLAGS) -o$@ $** |
| 56 | 56 | |
| 57 | 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 > $@ | |
| 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 | 59 | +echo fossil >> $@ |
| 60 | 60 | +echo fossil >> $@ |
| 61 | 61 | +echo $(LIBS) >> $@ |
| 62 | 62 | +echo. >> $@ |
| 63 | 63 | +echo fossil >> $@ |
| @@ -635,10 +635,16 @@ | ||
| 635 | 635 | $(OBJDIR)\markdown_html$O : markdown_html_.c markdown_html.h |
| 636 | 636 | $(TCC) -o$@ -c markdown_html_.c |
| 637 | 637 | |
| 638 | 638 | markdown_html_.c : $(SRCDIR)\markdown_html.c |
| 639 | 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 $** > $@ | |
| 640 | 646 | |
| 641 | 647 | $(OBJDIR)\md5$O : md5_.c md5.h |
| 642 | 648 | $(TCC) -o$@ -c md5_.c |
| 643 | 649 | |
| 644 | 650 | md5_.c : $(SRCDIR)\md5.c |
| @@ -1009,7 +1015,7 @@ | ||
| 1009 | 1015 | |
| 1010 | 1016 | zip_.c : $(SRCDIR)\zip.c |
| 1011 | 1017 | +translate$E $** > $@ |
| 1012 | 1018 | |
| 1013 | 1019 | 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 | |
| 1015 | 1021 | @copy /Y nul: headers |
| 1016 | 1022 |
| --- 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 |
+12
| --- win/Makefile.mingw | ||
| +++ win/Makefile.mingw | ||
| @@ -485,10 +485,11 @@ | ||
| 485 | 485 | $(SRCDIR)/lookslike.c \ |
| 486 | 486 | $(SRCDIR)/main.c \ |
| 487 | 487 | $(SRCDIR)/manifest.c \ |
| 488 | 488 | $(SRCDIR)/markdown.c \ |
| 489 | 489 | $(SRCDIR)/markdown_html.c \ |
| 490 | + $(SRCDIR)/match.c \ | |
| 490 | 491 | $(SRCDIR)/md5.c \ |
| 491 | 492 | $(SRCDIR)/merge.c \ |
| 492 | 493 | $(SRCDIR)/merge3.c \ |
| 493 | 494 | $(SRCDIR)/moderate.c \ |
| 494 | 495 | $(SRCDIR)/name.c \ |
| @@ -750,10 +751,11 @@ | ||
| 750 | 751 | $(OBJDIR)/lookslike_.c \ |
| 751 | 752 | $(OBJDIR)/main_.c \ |
| 752 | 753 | $(OBJDIR)/manifest_.c \ |
| 753 | 754 | $(OBJDIR)/markdown_.c \ |
| 754 | 755 | $(OBJDIR)/markdown_html_.c \ |
| 756 | + $(OBJDIR)/match_.c \ | |
| 755 | 757 | $(OBJDIR)/md5_.c \ |
| 756 | 758 | $(OBJDIR)/merge_.c \ |
| 757 | 759 | $(OBJDIR)/merge3_.c \ |
| 758 | 760 | $(OBJDIR)/moderate_.c \ |
| 759 | 761 | $(OBJDIR)/name_.c \ |
| @@ -899,10 +901,11 @@ | ||
| 899 | 901 | $(OBJDIR)/lookslike.o \ |
| 900 | 902 | $(OBJDIR)/main.o \ |
| 901 | 903 | $(OBJDIR)/manifest.o \ |
| 902 | 904 | $(OBJDIR)/markdown.o \ |
| 903 | 905 | $(OBJDIR)/markdown_html.o \ |
| 906 | + $(OBJDIR)/match.o \ | |
| 904 | 907 | $(OBJDIR)/md5.o \ |
| 905 | 908 | $(OBJDIR)/merge.o \ |
| 906 | 909 | $(OBJDIR)/merge3.o \ |
| 907 | 910 | $(OBJDIR)/moderate.o \ |
| 908 | 911 | $(OBJDIR)/name.o \ |
| @@ -1252,10 +1255,11 @@ | ||
| 1252 | 1255 | $(OBJDIR)/lookslike_.c:$(OBJDIR)/lookslike.h \ |
| 1253 | 1256 | $(OBJDIR)/main_.c:$(OBJDIR)/main.h \ |
| 1254 | 1257 | $(OBJDIR)/manifest_.c:$(OBJDIR)/manifest.h \ |
| 1255 | 1258 | $(OBJDIR)/markdown_.c:$(OBJDIR)/markdown.h \ |
| 1256 | 1259 | $(OBJDIR)/markdown_html_.c:$(OBJDIR)/markdown_html.h \ |
| 1260 | + $(OBJDIR)/match_.c:$(OBJDIR)/match.h \ | |
| 1257 | 1261 | $(OBJDIR)/md5_.c:$(OBJDIR)/md5.h \ |
| 1258 | 1262 | $(OBJDIR)/merge_.c:$(OBJDIR)/merge.h \ |
| 1259 | 1263 | $(OBJDIR)/merge3_.c:$(OBJDIR)/merge3.h \ |
| 1260 | 1264 | $(OBJDIR)/moderate_.c:$(OBJDIR)/moderate.h \ |
| 1261 | 1265 | $(OBJDIR)/name_.c:$(OBJDIR)/name.h \ |
| @@ -2003,10 +2007,18 @@ | ||
| 2003 | 2007 | |
| 2004 | 2008 | $(OBJDIR)/markdown_html.o: $(OBJDIR)/markdown_html_.c $(OBJDIR)/markdown_html.h $(SRCDIR)/config.h |
| 2005 | 2009 | $(XTCC) -o $(OBJDIR)/markdown_html.o -c $(OBJDIR)/markdown_html_.c |
| 2006 | 2010 | |
| 2007 | 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 | |
| 2008 | 2020 | |
| 2009 | 2021 | $(OBJDIR)/md5_.c: $(SRCDIR)/md5.c $(TRANSLATE) |
| 2010 | 2022 | $(TRANSLATE) $(SRCDIR)/md5.c >$@ |
| 2011 | 2023 | |
| 2012 | 2024 | $(OBJDIR)/md5.o: $(OBJDIR)/md5_.c $(OBJDIR)/md5.h $(SRCDIR)/config.h |
| 2013 | 2025 |
| --- 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 |
+10
| --- win/Makefile.msc | ||
| +++ win/Makefile.msc | ||
| @@ -443,10 +443,11 @@ | ||
| 443 | 443 | "$(OX)\lookslike_.c" \ |
| 444 | 444 | "$(OX)\main_.c" \ |
| 445 | 445 | "$(OX)\manifest_.c" \ |
| 446 | 446 | "$(OX)\markdown_.c" \ |
| 447 | 447 | "$(OX)\markdown_html_.c" \ |
| 448 | + "$(OX)\match_.c" \ | |
| 448 | 449 | "$(OX)\md5_.c" \ |
| 449 | 450 | "$(OX)\merge_.c" \ |
| 450 | 451 | "$(OX)\merge3_.c" \ |
| 451 | 452 | "$(OX)\moderate_.c" \ |
| 452 | 453 | "$(OX)\name_.c" \ |
| @@ -708,10 +709,11 @@ | ||
| 708 | 709 | "$(OX)\lookslike$O" \ |
| 709 | 710 | "$(OX)\main$O" \ |
| 710 | 711 | "$(OX)\manifest$O" \ |
| 711 | 712 | "$(OX)\markdown$O" \ |
| 712 | 713 | "$(OX)\markdown_html$O" \ |
| 714 | + "$(OX)\match$O" \ | |
| 713 | 715 | "$(OX)\md5$O" \ |
| 714 | 716 | "$(OX)\merge$O" \ |
| 715 | 717 | "$(OX)\merge3$O" \ |
| 716 | 718 | "$(OX)\moderate$O" \ |
| 717 | 719 | "$(OX)\name$O" \ |
| @@ -957,10 +959,11 @@ | ||
| 957 | 959 | echo "$(OX)\lookslike.obj" >> $@ |
| 958 | 960 | echo "$(OX)\main.obj" >> $@ |
| 959 | 961 | echo "$(OX)\manifest.obj" >> $@ |
| 960 | 962 | echo "$(OX)\markdown.obj" >> $@ |
| 961 | 963 | echo "$(OX)\markdown_html.obj" >> $@ |
| 964 | + echo "$(OX)\match.obj" >> $@ | |
| 962 | 965 | echo "$(OX)\md5.obj" >> $@ |
| 963 | 966 | echo "$(OX)\merge.obj" >> $@ |
| 964 | 967 | echo "$(OX)\merge3.obj" >> $@ |
| 965 | 968 | echo "$(OX)\moderate.obj" >> $@ |
| 966 | 969 | echo "$(OX)\name.obj" >> $@ |
| @@ -1762,10 +1765,16 @@ | ||
| 1762 | 1765 | "$(OX)\markdown_html$O" : "$(OX)\markdown_html_.c" "$(OX)\markdown_html.h" |
| 1763 | 1766 | $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\markdown_html_.c" |
| 1764 | 1767 | |
| 1765 | 1768 | "$(OX)\markdown_html_.c" : "$(SRCDIR)\markdown_html.c" |
| 1766 | 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" $** > $@ | |
| 1767 | 1776 | |
| 1768 | 1777 | "$(OX)\md5$O" : "$(OX)\md5_.c" "$(OX)\md5.h" |
| 1769 | 1778 | $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\md5_.c" |
| 1770 | 1779 | |
| 1771 | 1780 | "$(OX)\md5_.c" : "$(SRCDIR)\md5.c" |
| @@ -2224,10 +2233,11 @@ | ||
| 2224 | 2233 | "$(OX)\lookslike_.c":"$(OX)\lookslike.h" \ |
| 2225 | 2234 | "$(OX)\main_.c":"$(OX)\main.h" \ |
| 2226 | 2235 | "$(OX)\manifest_.c":"$(OX)\manifest.h" \ |
| 2227 | 2236 | "$(OX)\markdown_.c":"$(OX)\markdown.h" \ |
| 2228 | 2237 | "$(OX)\markdown_html_.c":"$(OX)\markdown_html.h" \ |
| 2238 | + "$(OX)\match_.c":"$(OX)\match.h" \ | |
| 2229 | 2239 | "$(OX)\md5_.c":"$(OX)\md5.h" \ |
| 2230 | 2240 | "$(OX)\merge_.c":"$(OX)\merge.h" \ |
| 2231 | 2241 | "$(OX)\merge3_.c":"$(OX)\merge3.h" \ |
| 2232 | 2242 | "$(OX)\moderate_.c":"$(OX)\moderate.h" \ |
| 2233 | 2243 | "$(OX)\name_.c":"$(OX)\name.h" \ |
| 2234 | 2244 |
| --- 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 |