Fossil SCM
Add extension functions delta_apply(), delta_create(), delta_output_size(), and delta_parse() to the SQL connection for the "fossil sql" command.
Commit
effa89302a7143d2dc6019413e4f3d320dba068520f7aea9ad4f4d1334e2da4c
Parent
f2f01669d01bd99…
7 files changed
+237
+12
+1
+25
-9
+10
-4
+12
+10
+237
| --- a/src/deltafunc.c | ||
| +++ b/src/deltafunc.c | ||
| @@ -0,0 +1,237 @@ | ||
| 1 | +/* | |
| 2 | +** Copyright (c) 2019 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 module implements SQL interfaces to the delta logic. The code | |
| 19 | +** here is adapted from the ext/misc/fossildelta.c extension in SQLite. | |
| 20 | +*/ | |
| 21 | +#include "config.h" | |
| 22 | +#include "deltafunc.h" | |
| 23 | + | |
| 24 | +/* | |
| 25 | +** SQL functions: delta_create(X,Y) | |
| 26 | +** | |
| 27 | +** Return a delta that will transform X into Y. | |
| 28 | +*/ | |
| 29 | +static void deltaCreateFunc( | |
| 30 | + sqlite3_context *context, | |
| 31 | + int argc, | |
| 32 | + sqlite3_value **argv | |
| 33 | +){ | |
| 34 | + const char *aOrig; int nOrig; /* old blob */ | |
| 35 | + const char *aNew; int nNew; /* new blob */ | |
| 36 | + char *aOut; int nOut; /* output delta */ | |
| 37 | + | |
| 38 | + assert( argc==2 ); | |
| 39 | + if( sqlite3_value_type(argv[0])==SQLITE_NULL ) return; | |
| 40 | + if( sqlite3_value_type(argv[1])==SQLITE_NULL ) return; | |
| 41 | + nOrig = sqlite3_value_bytes(argv[0]); | |
| 42 | + aOrig = (const char*)sqlite3_value_blob(argv[0]); | |
| 43 | + nNew = sqlite3_value_bytes(argv[1]); | |
| 44 | + aNew = (const char*)sqlite3_value_blob(argv[1]); | |
| 45 | + aOut = sqlite3_malloc64(nNew+70); | |
| 46 | + if( aOut==0 ){ | |
| 47 | + sqlite3_result_error_nomem(context); | |
| 48 | + }else{ | |
| 49 | + nOut = delta_create(aOrig, nOrig, aNew, nNew, aOut); | |
| 50 | + if( nOut<0 ){ | |
| 51 | + sqlite3_free(aOut); | |
| 52 | + sqlite3_result_error(context, "cannot create fossil delta", -1); | |
| 53 | + }else{ | |
| 54 | + sqlite3_result_blob(context, aOut, nOut, sqlite3_free); | |
| 55 | + } | |
| 56 | + } | |
| 57 | +} | |
| 58 | + | |
| 59 | +/* | |
| 60 | +** SQL functions: delta_apply(X,D) | |
| 61 | +** | |
| 62 | +** Return the result of applying delta D to input X. | |
| 63 | +*/ | |
| 64 | +static void deltaApplyFunc( | |
| 65 | + sqlite3_context *context, | |
| 66 | + int argc, | |
| 67 | + sqlite3_value **argv | |
| 68 | +){ | |
| 69 | + const char *aOrig; int nOrig; /* The X input */ | |
| 70 | + const char *aDelta; int nDelta; /* The input delta (D) */ | |
| 71 | + char *aOut; int nOut, nOut2; /* The output */ | |
| 72 | + | |
| 73 | + assert( argc==2 ); | |
| 74 | + if( sqlite3_value_type(argv[0])==SQLITE_NULL ) return; | |
| 75 | + if( sqlite3_value_type(argv[1])==SQLITE_NULL ) return; | |
| 76 | + nOrig = sqlite3_value_bytes(argv[0]); | |
| 77 | + aOrig = (const char*)sqlite3_value_blob(argv[0]); | |
| 78 | + nDelta = sqlite3_value_bytes(argv[1]); | |
| 79 | + aDelta = (const char*)sqlite3_value_blob(argv[1]); | |
| 80 | + | |
| 81 | + /* Figure out the size of the output */ | |
| 82 | + nOut = delta_output_size(aDelta, nDelta); | |
| 83 | + if( nOut<0 ){ | |
| 84 | + sqlite3_result_error(context, "corrupt fossil delta", -1); | |
| 85 | + return; | |
| 86 | + } | |
| 87 | + aOut = sqlite3_malloc64((sqlite3_int64)nOut+1); | |
| 88 | + if( aOut==0 ){ | |
| 89 | + sqlite3_result_error_nomem(context); | |
| 90 | + }else{ | |
| 91 | + nOut2 = delta_apply(aOrig, nOrig, aDelta, nDelta, aOut); | |
| 92 | + if( nOut2!=nOut ){ | |
| 93 | + sqlite3_free(aOut); | |
| 94 | + sqlite3_result_error(context, "corrupt fossil delta", -1); | |
| 95 | + }else{ | |
| 96 | + sqlite3_result_blob(context, aOut, nOut, sqlite3_free); | |
| 97 | + } | |
| 98 | + } | |
| 99 | +} | |
| 100 | + | |
| 101 | + | |
| 102 | +/* | |
| 103 | +** SQL functions: delta_output_size(D) | |
| 104 | +** | |
| 105 | +** Return the size of the output that results from applying delta D. | |
| 106 | +*/ | |
| 107 | +static void deltaOutputSizeFunc( | |
| 108 | + sqlite3_context *context, | |
| 109 | + int argc, | |
| 110 | + sqlite3_value **argv | |
| 111 | +){ | |
| 112 | + const char *aDelta; int nDelta; /* The input delta (D) */ | |
| 113 | + int nOut; /* Size of output */ | |
| 114 | + assert( argc==1 ); | |
| 115 | + if( sqlite3_value_type(argv[0])==SQLITE_NULL ) return; | |
| 116 | + nDelta = sqlite3_value_bytes(argv[0]); | |
| 117 | + aDelta = (const char*)sqlite3_value_blob(argv[0]); | |
| 118 | + | |
| 119 | + /* Figure out the size of the output */ | |
| 120 | + nOut = delta_output_size(aDelta, nDelta); | |
| 121 | + if( nOut<0 ){ | |
| 122 | + sqlite3_result_error(context, "corrupt fossil delta", -1); | |
| 123 | + return; | |
| 124 | + }else{ | |
| 125 | + sqlite3_result_int(context, nOut); | |
| 126 | + } | |
| 127 | +} | |
| 128 | + | |
| 129 | +/***************************************************************************** | |
| 130 | +** Table-valued SQL function: delta_parse(DELTA) | |
| 131 | +** | |
| 132 | +** Schema: | |
| 133 | +** | |
| 134 | +** CREATE TABLE delta_parse( | |
| 135 | +** op TEXT, | |
| 136 | +** a1 INT, | |
| 137 | +** a2 ANY, | |
| 138 | +** delta HIDDEN BLOB | |
| 139 | +** ); | |
| 140 | +** | |
| 141 | +** Given an input DELTA, this function parses the delta and returns | |
| 142 | +** rows for each entry in the delta. The op column has one of the | |
| 143 | +** values SIZE, COPY, INSERT, CHECKSUM, ERROR. | |
| 144 | +** | |
| 145 | +** Assuming no errors, the first row has op='SIZE'. a1 is the size of | |
| 146 | +** the output in bytes and a2 is NULL. | |
| 147 | +** | |
| 148 | +** After the initial SIZE row, there are zero or more 'COPY' and/or 'INSERT' | |
| 149 | +** rows. A COPY row means content is copied from the source into the | |
| 150 | +** output. Column a1 is the number of bytes to copy and a2 is the offset | |
| 151 | +** into source from which to begin copying. An INSERT row means to | |
| 152 | +** insert text into the output stream. Column a1 is the number of bytes | |
| 153 | +** to insert and column is a BLOB that contains the text to be inserted. | |
| 154 | +** | |
| 155 | +** The last row of a well-formed delta will have an op value of 'CHECKSUM'. | |
| 156 | +** The a1 column will be the value of the checksum and a2 will be NULL. | |
| 157 | +** | |
| 158 | +** If the input delta is not well-formed, then a row with an op value | |
| 159 | +** of 'ERROR' is returned. The a1 value of the ERROR row is the offset | |
| 160 | +** into the delta where the error was encountered and a2 is NULL. | |
| 161 | +*/ | |
| 162 | +typedef struct deltaparsevtab_vtab deltaparsevtab_vtab; | |
| 163 | +typedef struct deltaparsevtab_cursor deltaparsevtab_cursor; | |
| 164 | +struct deltaparsevtab_vtab { | |
| 165 | + sqlite3_vtab base; /* Base class - must be first */ | |
| 166 | + /* No additional information needed */ | |
| 167 | +}; | |
| 168 | +struct deltaparsevtab_cursor { | |
| 169 | + sqlite3_vtab_cursor base; /* Base class - must be first */ | |
| 170 | + char *aDelta; /* The delta being parsed */ | |
| 171 | + int nDelta; /* Number of bytes in the delta */ | |
| 172 | + int iCursor; /* Current cursor location */ | |
| 173 | + int eOp; /* Name of current operator */ | |
| 174 | + unsigned int a1, a2; /* Arguments to current operator */ | |
| 175 | + int iNext; /* Next cursor value */ | |
| 176 | +}; | |
| 177 | + | |
| 178 | +/* Operator names: | |
| 179 | +*/ | |
| 180 | +static const char * | |
| 181 | +** Copyright (c) 2019 D. Richard Hipp | |
| 182 | +** | |
| 183 | +** This program is free software; you can redistributeiaparsevtab_cursor *)pVtabCursor; | |
| 184 | + const char *a; | |
| 185 | + int i = 0; | |
| 186 | + pCur->eOp = DELTAPARSE_OP_ERROR; | |
| 187 | + if( idxNum!=1 ){ | |
| 188 | + return SQLITE_OK; | |
| 189 | + } | |
| 190 | + pCur->nDelta = sqlite3_value_bytes(argv[0]); | |
| 191 | + a = (const char*)sqlite3_value_blob(argv[0]); | |
| 192 | + if( pCur->nDelta==0 || a==0 ){ | |
| 193 | + return SQLITE_OK; | |
| 194 | + } | |
| 195 | + pCur->aDelta = sqlite3_malloc64( pCur->nDelta+1 ); | |
| 196 | + if( pCur->aDelta==0 ){ | |
| 197 | + pCur->nDelta = 0; | |
| 198 | + return SQLITE_NOMEM; | |
| 199 | + } | |
| 200 | + memcpy(pCur->aDelta, a, pCur->nDelta); | |
| 201 | + pCur->aDelta[pCur->nDelta] = 0; | |
| 202 | + a = pCur->aDelta; | |
| 203 | + pCur->eOp = DELTAPARSE_OP_SIZE; | |
| 204 | + pCur->a1 = deltaGetInt(&a, &i); | |
| 205 | + if( a[0]!='\n' ){ | |
| 206 | + pCur->eOp = DELTAPARSE_OP_ERROR; | |
| 207 | + pCur->a1 = pCur->a2 = 0; | |
| 208 | + pCur->iNext = pCur->nDelta; | |
| 209 | + return SQLITE_OK; | |
| 210 | + } | |
| 211 | + a++; | |
| 212 | + pCur->iNext = (unsigned int)(a - pCur->aDelta); | |
| 213 | + return SQLITE_OK; | |
| 214 | +} | |
| 215 | + | |
| 216 | +/* | |
| 217 | +** SQLite will invoke this method one or more times while planning a query | |
| 218 | +** that uses the virtual table. This routine needs to create | |
| 219 | +** a query plan for each invocation and compute an estimated cost for that | |
| 220 | +**t | |
| 221 | +** plan. | |
| 222 | +*/ | |
| 223 | +static int deltaparsevtabBestIndex( | |
| 224 | + sqlite3_vtab *tab, | |
| 225 | + sqlite3_index_info *pIdxInfo | |
| 226 | +){ | |
| 227 | + int i; | |
| 228 | + for(i=0; i<pIdxInfo->nConstraint; i++){ | |
| 229 | + if( pIdxInfo->aConstraint[i].iColumn != DELTAPARSEVTAB_DELTA ) continue; | |
| 230 | + if( pIdxInfo->aConstraint[i].usable==0 ) continue; | |
| 231 | + if( pIdxInfo->aConstraint[i].op!=SQLITE_INDEX_CONSTRAINT_EQ ) continue; | |
| 232 | + pIdxInfo->aConstraintUsage[i].argvIndex = 1; | |
| 233 | + pIdxInfo->aConstraintUsage[i].omit = 1; | |
| 234 | + pIdxInfo->estimatedCost = (double)1; | |
| 235 | + pIdxInfo->estimatedRows = 10; | |
| 236 | + pIdxInfo->idxNum = 1; | |
| 237 | + |
| --- a/src/deltafunc.c | |
| +++ b/src/deltafunc.c | |
| @@ -0,0 +1,237 @@ | |
| --- a/src/deltafunc.c | |
| +++ b/src/deltafunc.c | |
| @@ -0,0 +1,237 @@ | |
| 1 | /* |
| 2 | ** Copyright (c) 2019 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 module implements SQL interfaces to the delta logic. The code |
| 19 | ** here is adapted from the ext/misc/fossildelta.c extension in SQLite. |
| 20 | */ |
| 21 | #include "config.h" |
| 22 | #include "deltafunc.h" |
| 23 | |
| 24 | /* |
| 25 | ** SQL functions: delta_create(X,Y) |
| 26 | ** |
| 27 | ** Return a delta that will transform X into Y. |
| 28 | */ |
| 29 | static void deltaCreateFunc( |
| 30 | sqlite3_context *context, |
| 31 | int argc, |
| 32 | sqlite3_value **argv |
| 33 | ){ |
| 34 | const char *aOrig; int nOrig; /* old blob */ |
| 35 | const char *aNew; int nNew; /* new blob */ |
| 36 | char *aOut; int nOut; /* output delta */ |
| 37 | |
| 38 | assert( argc==2 ); |
| 39 | if( sqlite3_value_type(argv[0])==SQLITE_NULL ) return; |
| 40 | if( sqlite3_value_type(argv[1])==SQLITE_NULL ) return; |
| 41 | nOrig = sqlite3_value_bytes(argv[0]); |
| 42 | aOrig = (const char*)sqlite3_value_blob(argv[0]); |
| 43 | nNew = sqlite3_value_bytes(argv[1]); |
| 44 | aNew = (const char*)sqlite3_value_blob(argv[1]); |
| 45 | aOut = sqlite3_malloc64(nNew+70); |
| 46 | if( aOut==0 ){ |
| 47 | sqlite3_result_error_nomem(context); |
| 48 | }else{ |
| 49 | nOut = delta_create(aOrig, nOrig, aNew, nNew, aOut); |
| 50 | if( nOut<0 ){ |
| 51 | sqlite3_free(aOut); |
| 52 | sqlite3_result_error(context, "cannot create fossil delta", -1); |
| 53 | }else{ |
| 54 | sqlite3_result_blob(context, aOut, nOut, sqlite3_free); |
| 55 | } |
| 56 | } |
| 57 | } |
| 58 | |
| 59 | /* |
| 60 | ** SQL functions: delta_apply(X,D) |
| 61 | ** |
| 62 | ** Return the result of applying delta D to input X. |
| 63 | */ |
| 64 | static void deltaApplyFunc( |
| 65 | sqlite3_context *context, |
| 66 | int argc, |
| 67 | sqlite3_value **argv |
| 68 | ){ |
| 69 | const char *aOrig; int nOrig; /* The X input */ |
| 70 | const char *aDelta; int nDelta; /* The input delta (D) */ |
| 71 | char *aOut; int nOut, nOut2; /* The output */ |
| 72 | |
| 73 | assert( argc==2 ); |
| 74 | if( sqlite3_value_type(argv[0])==SQLITE_NULL ) return; |
| 75 | if( sqlite3_value_type(argv[1])==SQLITE_NULL ) return; |
| 76 | nOrig = sqlite3_value_bytes(argv[0]); |
| 77 | aOrig = (const char*)sqlite3_value_blob(argv[0]); |
| 78 | nDelta = sqlite3_value_bytes(argv[1]); |
| 79 | aDelta = (const char*)sqlite3_value_blob(argv[1]); |
| 80 | |
| 81 | /* Figure out the size of the output */ |
| 82 | nOut = delta_output_size(aDelta, nDelta); |
| 83 | if( nOut<0 ){ |
| 84 | sqlite3_result_error(context, "corrupt fossil delta", -1); |
| 85 | return; |
| 86 | } |
| 87 | aOut = sqlite3_malloc64((sqlite3_int64)nOut+1); |
| 88 | if( aOut==0 ){ |
| 89 | sqlite3_result_error_nomem(context); |
| 90 | }else{ |
| 91 | nOut2 = delta_apply(aOrig, nOrig, aDelta, nDelta, aOut); |
| 92 | if( nOut2!=nOut ){ |
| 93 | sqlite3_free(aOut); |
| 94 | sqlite3_result_error(context, "corrupt fossil delta", -1); |
| 95 | }else{ |
| 96 | sqlite3_result_blob(context, aOut, nOut, sqlite3_free); |
| 97 | } |
| 98 | } |
| 99 | } |
| 100 | |
| 101 | |
| 102 | /* |
| 103 | ** SQL functions: delta_output_size(D) |
| 104 | ** |
| 105 | ** Return the size of the output that results from applying delta D. |
| 106 | */ |
| 107 | static void deltaOutputSizeFunc( |
| 108 | sqlite3_context *context, |
| 109 | int argc, |
| 110 | sqlite3_value **argv |
| 111 | ){ |
| 112 | const char *aDelta; int nDelta; /* The input delta (D) */ |
| 113 | int nOut; /* Size of output */ |
| 114 | assert( argc==1 ); |
| 115 | if( sqlite3_value_type(argv[0])==SQLITE_NULL ) return; |
| 116 | nDelta = sqlite3_value_bytes(argv[0]); |
| 117 | aDelta = (const char*)sqlite3_value_blob(argv[0]); |
| 118 | |
| 119 | /* Figure out the size of the output */ |
| 120 | nOut = delta_output_size(aDelta, nDelta); |
| 121 | if( nOut<0 ){ |
| 122 | sqlite3_result_error(context, "corrupt fossil delta", -1); |
| 123 | return; |
| 124 | }else{ |
| 125 | sqlite3_result_int(context, nOut); |
| 126 | } |
| 127 | } |
| 128 | |
| 129 | /***************************************************************************** |
| 130 | ** Table-valued SQL function: delta_parse(DELTA) |
| 131 | ** |
| 132 | ** Schema: |
| 133 | ** |
| 134 | ** CREATE TABLE delta_parse( |
| 135 | ** op TEXT, |
| 136 | ** a1 INT, |
| 137 | ** a2 ANY, |
| 138 | ** delta HIDDEN BLOB |
| 139 | ** ); |
| 140 | ** |
| 141 | ** Given an input DELTA, this function parses the delta and returns |
| 142 | ** rows for each entry in the delta. The op column has one of the |
| 143 | ** values SIZE, COPY, INSERT, CHECKSUM, ERROR. |
| 144 | ** |
| 145 | ** Assuming no errors, the first row has op='SIZE'. a1 is the size of |
| 146 | ** the output in bytes and a2 is NULL. |
| 147 | ** |
| 148 | ** After the initial SIZE row, there are zero or more 'COPY' and/or 'INSERT' |
| 149 | ** rows. A COPY row means content is copied from the source into the |
| 150 | ** output. Column a1 is the number of bytes to copy and a2 is the offset |
| 151 | ** into source from which to begin copying. An INSERT row means to |
| 152 | ** insert text into the output stream. Column a1 is the number of bytes |
| 153 | ** to insert and column is a BLOB that contains the text to be inserted. |
| 154 | ** |
| 155 | ** The last row of a well-formed delta will have an op value of 'CHECKSUM'. |
| 156 | ** The a1 column will be the value of the checksum and a2 will be NULL. |
| 157 | ** |
| 158 | ** If the input delta is not well-formed, then a row with an op value |
| 159 | ** of 'ERROR' is returned. The a1 value of the ERROR row is the offset |
| 160 | ** into the delta where the error was encountered and a2 is NULL. |
| 161 | */ |
| 162 | typedef struct deltaparsevtab_vtab deltaparsevtab_vtab; |
| 163 | typedef struct deltaparsevtab_cursor deltaparsevtab_cursor; |
| 164 | struct deltaparsevtab_vtab { |
| 165 | sqlite3_vtab base; /* Base class - must be first */ |
| 166 | /* No additional information needed */ |
| 167 | }; |
| 168 | struct deltaparsevtab_cursor { |
| 169 | sqlite3_vtab_cursor base; /* Base class - must be first */ |
| 170 | char *aDelta; /* The delta being parsed */ |
| 171 | int nDelta; /* Number of bytes in the delta */ |
| 172 | int iCursor; /* Current cursor location */ |
| 173 | int eOp; /* Name of current operator */ |
| 174 | unsigned int a1, a2; /* Arguments to current operator */ |
| 175 | int iNext; /* Next cursor value */ |
| 176 | }; |
| 177 | |
| 178 | /* Operator names: |
| 179 | */ |
| 180 | static const char * |
| 181 | ** Copyright (c) 2019 D. Richard Hipp |
| 182 | ** |
| 183 | ** This program is free software; you can redistributeiaparsevtab_cursor *)pVtabCursor; |
| 184 | const char *a; |
| 185 | int i = 0; |
| 186 | pCur->eOp = DELTAPARSE_OP_ERROR; |
| 187 | if( idxNum!=1 ){ |
| 188 | return SQLITE_OK; |
| 189 | } |
| 190 | pCur->nDelta = sqlite3_value_bytes(argv[0]); |
| 191 | a = (const char*)sqlite3_value_blob(argv[0]); |
| 192 | if( pCur->nDelta==0 || a==0 ){ |
| 193 | return SQLITE_OK; |
| 194 | } |
| 195 | pCur->aDelta = sqlite3_malloc64( pCur->nDelta+1 ); |
| 196 | if( pCur->aDelta==0 ){ |
| 197 | pCur->nDelta = 0; |
| 198 | return SQLITE_NOMEM; |
| 199 | } |
| 200 | memcpy(pCur->aDelta, a, pCur->nDelta); |
| 201 | pCur->aDelta[pCur->nDelta] = 0; |
| 202 | a = pCur->aDelta; |
| 203 | pCur->eOp = DELTAPARSE_OP_SIZE; |
| 204 | pCur->a1 = deltaGetInt(&a, &i); |
| 205 | if( a[0]!='\n' ){ |
| 206 | pCur->eOp = DELTAPARSE_OP_ERROR; |
| 207 | pCur->a1 = pCur->a2 = 0; |
| 208 | pCur->iNext = pCur->nDelta; |
| 209 | return SQLITE_OK; |
| 210 | } |
| 211 | a++; |
| 212 | pCur->iNext = (unsigned int)(a - pCur->aDelta); |
| 213 | return SQLITE_OK; |
| 214 | } |
| 215 | |
| 216 | /* |
| 217 | ** SQLite will invoke this method one or more times while planning a query |
| 218 | ** that uses the virtual table. This routine needs to create |
| 219 | ** a query plan for each invocation and compute an estimated cost for that |
| 220 | **t |
| 221 | ** plan. |
| 222 | */ |
| 223 | static int deltaparsevtabBestIndex( |
| 224 | sqlite3_vtab *tab, |
| 225 | sqlite3_index_info *pIdxInfo |
| 226 | ){ |
| 227 | int i; |
| 228 | for(i=0; i<pIdxInfo->nConstraint; i++){ |
| 229 | if( pIdxInfo->aConstraint[i].iColumn != DELTAPARSEVTAB_DELTA ) continue; |
| 230 | if( pIdxInfo->aConstraint[i].usable==0 ) continue; |
| 231 | if( pIdxInfo->aConstraint[i].op!=SQLITE_INDEX_CONSTRAINT_EQ ) continue; |
| 232 | pIdxInfo->aConstraintUsage[i].argvIndex = 1; |
| 233 | pIdxInfo->aConstraintUsage[i].omit = 1; |
| 234 | pIdxInfo->estimatedCost = (double)1; |
| 235 | pIdxInfo->estimatedRows = 10; |
| 236 | pIdxInfo->idxNum = 1; |
| 237 |
+12
| --- src/main.mk | ||
| +++ src/main.mk | ||
| @@ -41,10 +41,11 @@ | ||
| 41 | 41 | $(SRCDIR)/content.c \ |
| 42 | 42 | $(SRCDIR)/cookies.c \ |
| 43 | 43 | $(SRCDIR)/db.c \ |
| 44 | 44 | $(SRCDIR)/delta.c \ |
| 45 | 45 | $(SRCDIR)/deltacmd.c \ |
| 46 | + $(SRCDIR)/deltafunc.c \ | |
| 46 | 47 | $(SRCDIR)/descendants.c \ |
| 47 | 48 | $(SRCDIR)/diff.c \ |
| 48 | 49 | $(SRCDIR)/diffcmd.c \ |
| 49 | 50 | $(SRCDIR)/dispatch.c \ |
| 50 | 51 | $(SRCDIR)/doc.c \ |
| @@ -252,10 +253,11 @@ | ||
| 252 | 253 | $(OBJDIR)/content_.c \ |
| 253 | 254 | $(OBJDIR)/cookies_.c \ |
| 254 | 255 | $(OBJDIR)/db_.c \ |
| 255 | 256 | $(OBJDIR)/delta_.c \ |
| 256 | 257 | $(OBJDIR)/deltacmd_.c \ |
| 258 | + $(OBJDIR)/deltafunc_.c \ | |
| 257 | 259 | $(OBJDIR)/descendants_.c \ |
| 258 | 260 | $(OBJDIR)/diff_.c \ |
| 259 | 261 | $(OBJDIR)/diffcmd_.c \ |
| 260 | 262 | $(OBJDIR)/dispatch_.c \ |
| 261 | 263 | $(OBJDIR)/doc_.c \ |
| @@ -390,10 +392,11 @@ | ||
| 390 | 392 | $(OBJDIR)/content.o \ |
| 391 | 393 | $(OBJDIR)/cookies.o \ |
| 392 | 394 | $(OBJDIR)/db.o \ |
| 393 | 395 | $(OBJDIR)/delta.o \ |
| 394 | 396 | $(OBJDIR)/deltacmd.o \ |
| 397 | + $(OBJDIR)/deltafunc.o \ | |
| 395 | 398 | $(OBJDIR)/descendants.o \ |
| 396 | 399 | $(OBJDIR)/diff.o \ |
| 397 | 400 | $(OBJDIR)/diffcmd.o \ |
| 398 | 401 | $(OBJDIR)/dispatch.o \ |
| 399 | 402 | $(OBJDIR)/doc.o \ |
| @@ -724,10 +727,11 @@ | ||
| 724 | 727 | $(OBJDIR)/content_.c:$(OBJDIR)/content.h \ |
| 725 | 728 | $(OBJDIR)/cookies_.c:$(OBJDIR)/cookies.h \ |
| 726 | 729 | $(OBJDIR)/db_.c:$(OBJDIR)/db.h \ |
| 727 | 730 | $(OBJDIR)/delta_.c:$(OBJDIR)/delta.h \ |
| 728 | 731 | $(OBJDIR)/deltacmd_.c:$(OBJDIR)/deltacmd.h \ |
| 732 | + $(OBJDIR)/deltafunc_.c:$(OBJDIR)/deltafunc.h \ | |
| 729 | 733 | $(OBJDIR)/descendants_.c:$(OBJDIR)/descendants.h \ |
| 730 | 734 | $(OBJDIR)/diff_.c:$(OBJDIR)/diff.h \ |
| 731 | 735 | $(OBJDIR)/diffcmd_.c:$(OBJDIR)/diffcmd.h \ |
| 732 | 736 | $(OBJDIR)/dispatch_.c:$(OBJDIR)/dispatch.h \ |
| 733 | 737 | $(OBJDIR)/doc_.c:$(OBJDIR)/doc.h \ |
| @@ -1055,10 +1059,18 @@ | ||
| 1055 | 1059 | |
| 1056 | 1060 | $(OBJDIR)/deltacmd.o: $(OBJDIR)/deltacmd_.c $(OBJDIR)/deltacmd.h $(SRCDIR)/config.h |
| 1057 | 1061 | $(XTCC) -o $(OBJDIR)/deltacmd.o -c $(OBJDIR)/deltacmd_.c |
| 1058 | 1062 | |
| 1059 | 1063 | $(OBJDIR)/deltacmd.h: $(OBJDIR)/headers |
| 1064 | + | |
| 1065 | +$(OBJDIR)/deltafunc_.c: $(SRCDIR)/deltafunc.c $(OBJDIR)/translate | |
| 1066 | + $(OBJDIR)/translate $(SRCDIR)/deltafunc.c >$@ | |
| 1067 | + | |
| 1068 | +$(OBJDIR)/deltafunc.o: $(OBJDIR)/deltafunc_.c $(OBJDIR)/deltafunc.h $(SRCDIR)/config.h | |
| 1069 | + $(XTCC) -o $(OBJDIR)/deltafunc.o -c $(OBJDIR)/deltafunc_.c | |
| 1070 | + | |
| 1071 | +$(OBJDIR)/deltafunc.h: $(OBJDIR)/headers | |
| 1060 | 1072 | |
| 1061 | 1073 | $(OBJDIR)/descendants_.c: $(SRCDIR)/descendants.c $(OBJDIR)/translate |
| 1062 | 1074 | $(OBJDIR)/translate $(SRCDIR)/descendants.c >$@ |
| 1063 | 1075 | |
| 1064 | 1076 | $(OBJDIR)/descendants.o: $(OBJDIR)/descendants_.c $(OBJDIR)/descendants.h $(SRCDIR)/config.h |
| 1065 | 1077 |
| --- src/main.mk | |
| +++ src/main.mk | |
| @@ -41,10 +41,11 @@ | |
| 41 | $(SRCDIR)/content.c \ |
| 42 | $(SRCDIR)/cookies.c \ |
| 43 | $(SRCDIR)/db.c \ |
| 44 | $(SRCDIR)/delta.c \ |
| 45 | $(SRCDIR)/deltacmd.c \ |
| 46 | $(SRCDIR)/descendants.c \ |
| 47 | $(SRCDIR)/diff.c \ |
| 48 | $(SRCDIR)/diffcmd.c \ |
| 49 | $(SRCDIR)/dispatch.c \ |
| 50 | $(SRCDIR)/doc.c \ |
| @@ -252,10 +253,11 @@ | |
| 252 | $(OBJDIR)/content_.c \ |
| 253 | $(OBJDIR)/cookies_.c \ |
| 254 | $(OBJDIR)/db_.c \ |
| 255 | $(OBJDIR)/delta_.c \ |
| 256 | $(OBJDIR)/deltacmd_.c \ |
| 257 | $(OBJDIR)/descendants_.c \ |
| 258 | $(OBJDIR)/diff_.c \ |
| 259 | $(OBJDIR)/diffcmd_.c \ |
| 260 | $(OBJDIR)/dispatch_.c \ |
| 261 | $(OBJDIR)/doc_.c \ |
| @@ -390,10 +392,11 @@ | |
| 390 | $(OBJDIR)/content.o \ |
| 391 | $(OBJDIR)/cookies.o \ |
| 392 | $(OBJDIR)/db.o \ |
| 393 | $(OBJDIR)/delta.o \ |
| 394 | $(OBJDIR)/deltacmd.o \ |
| 395 | $(OBJDIR)/descendants.o \ |
| 396 | $(OBJDIR)/diff.o \ |
| 397 | $(OBJDIR)/diffcmd.o \ |
| 398 | $(OBJDIR)/dispatch.o \ |
| 399 | $(OBJDIR)/doc.o \ |
| @@ -724,10 +727,11 @@ | |
| 724 | $(OBJDIR)/content_.c:$(OBJDIR)/content.h \ |
| 725 | $(OBJDIR)/cookies_.c:$(OBJDIR)/cookies.h \ |
| 726 | $(OBJDIR)/db_.c:$(OBJDIR)/db.h \ |
| 727 | $(OBJDIR)/delta_.c:$(OBJDIR)/delta.h \ |
| 728 | $(OBJDIR)/deltacmd_.c:$(OBJDIR)/deltacmd.h \ |
| 729 | $(OBJDIR)/descendants_.c:$(OBJDIR)/descendants.h \ |
| 730 | $(OBJDIR)/diff_.c:$(OBJDIR)/diff.h \ |
| 731 | $(OBJDIR)/diffcmd_.c:$(OBJDIR)/diffcmd.h \ |
| 732 | $(OBJDIR)/dispatch_.c:$(OBJDIR)/dispatch.h \ |
| 733 | $(OBJDIR)/doc_.c:$(OBJDIR)/doc.h \ |
| @@ -1055,10 +1059,18 @@ | |
| 1055 | |
| 1056 | $(OBJDIR)/deltacmd.o: $(OBJDIR)/deltacmd_.c $(OBJDIR)/deltacmd.h $(SRCDIR)/config.h |
| 1057 | $(XTCC) -o $(OBJDIR)/deltacmd.o -c $(OBJDIR)/deltacmd_.c |
| 1058 | |
| 1059 | $(OBJDIR)/deltacmd.h: $(OBJDIR)/headers |
| 1060 | |
| 1061 | $(OBJDIR)/descendants_.c: $(SRCDIR)/descendants.c $(OBJDIR)/translate |
| 1062 | $(OBJDIR)/translate $(SRCDIR)/descendants.c >$@ |
| 1063 | |
| 1064 | $(OBJDIR)/descendants.o: $(OBJDIR)/descendants_.c $(OBJDIR)/descendants.h $(SRCDIR)/config.h |
| 1065 |
| --- src/main.mk | |
| +++ src/main.mk | |
| @@ -41,10 +41,11 @@ | |
| 41 | $(SRCDIR)/content.c \ |
| 42 | $(SRCDIR)/cookies.c \ |
| 43 | $(SRCDIR)/db.c \ |
| 44 | $(SRCDIR)/delta.c \ |
| 45 | $(SRCDIR)/deltacmd.c \ |
| 46 | $(SRCDIR)/deltafunc.c \ |
| 47 | $(SRCDIR)/descendants.c \ |
| 48 | $(SRCDIR)/diff.c \ |
| 49 | $(SRCDIR)/diffcmd.c \ |
| 50 | $(SRCDIR)/dispatch.c \ |
| 51 | $(SRCDIR)/doc.c \ |
| @@ -252,10 +253,11 @@ | |
| 253 | $(OBJDIR)/content_.c \ |
| 254 | $(OBJDIR)/cookies_.c \ |
| 255 | $(OBJDIR)/db_.c \ |
| 256 | $(OBJDIR)/delta_.c \ |
| 257 | $(OBJDIR)/deltacmd_.c \ |
| 258 | $(OBJDIR)/deltafunc_.c \ |
| 259 | $(OBJDIR)/descendants_.c \ |
| 260 | $(OBJDIR)/diff_.c \ |
| 261 | $(OBJDIR)/diffcmd_.c \ |
| 262 | $(OBJDIR)/dispatch_.c \ |
| 263 | $(OBJDIR)/doc_.c \ |
| @@ -390,10 +392,11 @@ | |
| 392 | $(OBJDIR)/content.o \ |
| 393 | $(OBJDIR)/cookies.o \ |
| 394 | $(OBJDIR)/db.o \ |
| 395 | $(OBJDIR)/delta.o \ |
| 396 | $(OBJDIR)/deltacmd.o \ |
| 397 | $(OBJDIR)/deltafunc.o \ |
| 398 | $(OBJDIR)/descendants.o \ |
| 399 | $(OBJDIR)/diff.o \ |
| 400 | $(OBJDIR)/diffcmd.o \ |
| 401 | $(OBJDIR)/dispatch.o \ |
| 402 | $(OBJDIR)/doc.o \ |
| @@ -724,10 +727,11 @@ | |
| 727 | $(OBJDIR)/content_.c:$(OBJDIR)/content.h \ |
| 728 | $(OBJDIR)/cookies_.c:$(OBJDIR)/cookies.h \ |
| 729 | $(OBJDIR)/db_.c:$(OBJDIR)/db.h \ |
| 730 | $(OBJDIR)/delta_.c:$(OBJDIR)/delta.h \ |
| 731 | $(OBJDIR)/deltacmd_.c:$(OBJDIR)/deltacmd.h \ |
| 732 | $(OBJDIR)/deltafunc_.c:$(OBJDIR)/deltafunc.h \ |
| 733 | $(OBJDIR)/descendants_.c:$(OBJDIR)/descendants.h \ |
| 734 | $(OBJDIR)/diff_.c:$(OBJDIR)/diff.h \ |
| 735 | $(OBJDIR)/diffcmd_.c:$(OBJDIR)/diffcmd.h \ |
| 736 | $(OBJDIR)/dispatch_.c:$(OBJDIR)/dispatch.h \ |
| 737 | $(OBJDIR)/doc_.c:$(OBJDIR)/doc.h \ |
| @@ -1055,10 +1059,18 @@ | |
| 1059 | |
| 1060 | $(OBJDIR)/deltacmd.o: $(OBJDIR)/deltacmd_.c $(OBJDIR)/deltacmd.h $(SRCDIR)/config.h |
| 1061 | $(XTCC) -o $(OBJDIR)/deltacmd.o -c $(OBJDIR)/deltacmd_.c |
| 1062 | |
| 1063 | $(OBJDIR)/deltacmd.h: $(OBJDIR)/headers |
| 1064 | |
| 1065 | $(OBJDIR)/deltafunc_.c: $(SRCDIR)/deltafunc.c $(OBJDIR)/translate |
| 1066 | $(OBJDIR)/translate $(SRCDIR)/deltafunc.c >$@ |
| 1067 | |
| 1068 | $(OBJDIR)/deltafunc.o: $(OBJDIR)/deltafunc_.c $(OBJDIR)/deltafunc.h $(SRCDIR)/config.h |
| 1069 | $(XTCC) -o $(OBJDIR)/deltafunc.o -c $(OBJDIR)/deltafunc_.c |
| 1070 | |
| 1071 | $(OBJDIR)/deltafunc.h: $(OBJDIR)/headers |
| 1072 | |
| 1073 | $(OBJDIR)/descendants_.c: $(SRCDIR)/descendants.c $(OBJDIR)/translate |
| 1074 | $(OBJDIR)/translate $(SRCDIR)/descendants.c >$@ |
| 1075 | |
| 1076 | $(OBJDIR)/descendants.o: $(OBJDIR)/descendants_.c $(OBJDIR)/descendants.h $(SRCDIR)/config.h |
| 1077 |
+1
| --- src/makemake.tcl | ||
| +++ src/makemake.tcl | ||
| @@ -52,10 +52,11 @@ | ||
| 52 | 52 | content |
| 53 | 53 | cookies |
| 54 | 54 | db |
| 55 | 55 | delta |
| 56 | 56 | deltacmd |
| 57 | + deltafunc | |
| 57 | 58 | descendants |
| 58 | 59 | diff |
| 59 | 60 | diffcmd |
| 60 | 61 | dispatch |
| 61 | 62 | doc |
| 62 | 63 |
| --- src/makemake.tcl | |
| +++ src/makemake.tcl | |
| @@ -52,10 +52,11 @@ | |
| 52 | content |
| 53 | cookies |
| 54 | db |
| 55 | delta |
| 56 | deltacmd |
| 57 | descendants |
| 58 | diff |
| 59 | diffcmd |
| 60 | dispatch |
| 61 | doc |
| 62 |
| --- src/makemake.tcl | |
| +++ src/makemake.tcl | |
| @@ -52,10 +52,11 @@ | |
| 52 | content |
| 53 | cookies |
| 54 | db |
| 55 | delta |
| 56 | deltacmd |
| 57 | deltafunc |
| 58 | descendants |
| 59 | diff |
| 60 | diffcmd |
| 61 | dispatch |
| 62 | doc |
| 63 |
+25
-9
| --- src/sqlcmd.c | ||
| +++ src/sqlcmd.c | ||
| @@ -148,10 +148,11 @@ | ||
| 148 | 148 | add_content_sql_commands(db); |
| 149 | 149 | db_add_aux_functions(db); |
| 150 | 150 | re_add_sql_func(db); |
| 151 | 151 | search_sql_setup(db); |
| 152 | 152 | foci_register(db); |
| 153 | + deltafunc_init(db); | |
| 153 | 154 | g.repositoryOpen = 1; |
| 154 | 155 | g.db = db; |
| 155 | 156 | sqlite3_db_config(db, SQLITE_DBCONFIG_MAINDBNAME, "repository"); |
| 156 | 157 | db_maybe_set_encryption_key(db, g.zRepositoryName); |
| 157 | 158 | if( g.zLocalDbName ){ |
| @@ -255,32 +256,47 @@ | ||
| 255 | 256 | ** in ways that are unrecoverable. Be sure you know what you are doing before |
| 256 | 257 | ** running any SQL commands that modify the repository database. |
| 257 | 258 | ** |
| 258 | 259 | ** The following extensions to the usual SQLite commands are provided: |
| 259 | 260 | ** |
| 260 | -** content(X) Return the content of artifact X. X can be an | |
| 261 | -** artifact hash or prefix or a tag. | |
| 261 | +** checkin_mtime(X,Y) Return the mtime for the file Y (a BLOB.RID) | |
| 262 | +** found in check-in X (another BLOB.RID value). | |
| 262 | 263 | ** |
| 263 | 264 | ** compress(X) Compress text X. |
| 264 | 265 | ** |
| 266 | +** content(X) Return the content of artifact X. X can be an | |
| 267 | +** artifact hash or hash prefix or a tag. Artifacts | |
| 268 | +** are stored compressed and deltaed. This function | |
| 269 | +** does all necessary decompression and undeltaing. | |
| 270 | +** | |
| 265 | 271 | ** decompress(X) Decompress text X. Undoes the work of |
| 266 | 272 | ** compress(X). |
| 267 | 273 | ** |
| 268 | -** checkin_mtime(X,Y) Return the mtime for the file Y (a BLOB.RID) | |
| 269 | -** found in check-in X (another BLOB.RID value). | |
| 274 | +** delta_apply(X,D) Apply delta D to source blob X and return | |
| 275 | +** the result. | |
| 276 | +** | |
| 277 | +** delta_create(X,Y) Create and return a delta that will convert | |
| 278 | +** X into Y. | |
| 279 | +** | |
| 280 | +** delta_output_size(D) Return the number of bytes of output to expect | |
| 281 | +** when applying delta D | |
| 282 | +** | |
| 283 | +** delta_parse(D) A table-valued function that deconstructs | |
| 284 | +** delta D and returns rows for each element of | |
| 285 | +** that delta. | |
| 270 | 286 | ** |
| 271 | -** symbolic_name_to_rid(X) Return the BLOB.RID corresponding to symbolic | |
| 272 | -** name X. | |
| 287 | +** files_of_checkin(X) A table-valued function that returns info on | |
| 288 | +** all files contained in check-in X. Example: | |
| 289 | +** SELECT * FROM files_of_checkin('trunk'); | |
| 273 | 290 | ** |
| 274 | 291 | ** now() Return the number of seconds since 1970. |
| 275 | 292 | ** |
| 276 | 293 | ** REGEXP The REGEXP operator works, unlike in |
| 277 | 294 | ** standard SQLite. |
| 278 | 295 | ** |
| 279 | -** files_of_checkin(X) A table-valued function that returns info on | |
| 280 | -** all files contained in check-in X. Example: | |
| 281 | -** SELECT * FROM files_of_checkin('trunk'); | |
| 296 | +** symbolic_name_to_rid(X) Return the BLOB.RID corresponding to symbolic | |
| 297 | +** name X. | |
| 282 | 298 | */ |
| 283 | 299 | void cmd_sqlite3(void){ |
| 284 | 300 | int noRepository; |
| 285 | 301 | const char *zConfigDb; |
| 286 | 302 | extern int sqlite3_shell(int, char**); |
| 287 | 303 |
| --- src/sqlcmd.c | |
| +++ src/sqlcmd.c | |
| @@ -148,10 +148,11 @@ | |
| 148 | add_content_sql_commands(db); |
| 149 | db_add_aux_functions(db); |
| 150 | re_add_sql_func(db); |
| 151 | search_sql_setup(db); |
| 152 | foci_register(db); |
| 153 | g.repositoryOpen = 1; |
| 154 | g.db = db; |
| 155 | sqlite3_db_config(db, SQLITE_DBCONFIG_MAINDBNAME, "repository"); |
| 156 | db_maybe_set_encryption_key(db, g.zRepositoryName); |
| 157 | if( g.zLocalDbName ){ |
| @@ -255,32 +256,47 @@ | |
| 255 | ** in ways that are unrecoverable. Be sure you know what you are doing before |
| 256 | ** running any SQL commands that modify the repository database. |
| 257 | ** |
| 258 | ** The following extensions to the usual SQLite commands are provided: |
| 259 | ** |
| 260 | ** content(X) Return the content of artifact X. X can be an |
| 261 | ** artifact hash or prefix or a tag. |
| 262 | ** |
| 263 | ** compress(X) Compress text X. |
| 264 | ** |
| 265 | ** decompress(X) Decompress text X. Undoes the work of |
| 266 | ** compress(X). |
| 267 | ** |
| 268 | ** checkin_mtime(X,Y) Return the mtime for the file Y (a BLOB.RID) |
| 269 | ** found in check-in X (another BLOB.RID value). |
| 270 | ** |
| 271 | ** symbolic_name_to_rid(X) Return the BLOB.RID corresponding to symbolic |
| 272 | ** name X. |
| 273 | ** |
| 274 | ** now() Return the number of seconds since 1970. |
| 275 | ** |
| 276 | ** REGEXP The REGEXP operator works, unlike in |
| 277 | ** standard SQLite. |
| 278 | ** |
| 279 | ** files_of_checkin(X) A table-valued function that returns info on |
| 280 | ** all files contained in check-in X. Example: |
| 281 | ** SELECT * FROM files_of_checkin('trunk'); |
| 282 | */ |
| 283 | void cmd_sqlite3(void){ |
| 284 | int noRepository; |
| 285 | const char *zConfigDb; |
| 286 | extern int sqlite3_shell(int, char**); |
| 287 |
| --- src/sqlcmd.c | |
| +++ src/sqlcmd.c | |
| @@ -148,10 +148,11 @@ | |
| 148 | add_content_sql_commands(db); |
| 149 | db_add_aux_functions(db); |
| 150 | re_add_sql_func(db); |
| 151 | search_sql_setup(db); |
| 152 | foci_register(db); |
| 153 | deltafunc_init(db); |
| 154 | g.repositoryOpen = 1; |
| 155 | g.db = db; |
| 156 | sqlite3_db_config(db, SQLITE_DBCONFIG_MAINDBNAME, "repository"); |
| 157 | db_maybe_set_encryption_key(db, g.zRepositoryName); |
| 158 | if( g.zLocalDbName ){ |
| @@ -255,32 +256,47 @@ | |
| 256 | ** in ways that are unrecoverable. Be sure you know what you are doing before |
| 257 | ** running any SQL commands that modify the repository database. |
| 258 | ** |
| 259 | ** The following extensions to the usual SQLite commands are provided: |
| 260 | ** |
| 261 | ** checkin_mtime(X,Y) Return the mtime for the file Y (a BLOB.RID) |
| 262 | ** found in check-in X (another BLOB.RID value). |
| 263 | ** |
| 264 | ** compress(X) Compress text X. |
| 265 | ** |
| 266 | ** content(X) Return the content of artifact X. X can be an |
| 267 | ** artifact hash or hash prefix or a tag. Artifacts |
| 268 | ** are stored compressed and deltaed. This function |
| 269 | ** does all necessary decompression and undeltaing. |
| 270 | ** |
| 271 | ** decompress(X) Decompress text X. Undoes the work of |
| 272 | ** compress(X). |
| 273 | ** |
| 274 | ** delta_apply(X,D) Apply delta D to source blob X and return |
| 275 | ** the result. |
| 276 | ** |
| 277 | ** delta_create(X,Y) Create and return a delta that will convert |
| 278 | ** X into Y. |
| 279 | ** |
| 280 | ** delta_output_size(D) Return the number of bytes of output to expect |
| 281 | ** when applying delta D |
| 282 | ** |
| 283 | ** delta_parse(D) A table-valued function that deconstructs |
| 284 | ** delta D and returns rows for each element of |
| 285 | ** that delta. |
| 286 | ** |
| 287 | ** files_of_checkin(X) A table-valued function that returns info on |
| 288 | ** all files contained in check-in X. Example: |
| 289 | ** SELECT * FROM files_of_checkin('trunk'); |
| 290 | ** |
| 291 | ** now() Return the number of seconds since 1970. |
| 292 | ** |
| 293 | ** REGEXP The REGEXP operator works, unlike in |
| 294 | ** standard SQLite. |
| 295 | ** |
| 296 | ** symbolic_name_to_rid(X) Return the BLOB.RID corresponding to symbolic |
| 297 | ** name X. |
| 298 | */ |
| 299 | void cmd_sqlite3(void){ |
| 300 | int noRepository; |
| 301 | const char *zConfigDb; |
| 302 | extern int sqlite3_shell(int, char**); |
| 303 |
+10
-4
| --- win/Makefile.dmc | ||
| +++ win/Makefile.dmc | ||
| @@ -28,13 +28,13 @@ | ||
| 28 | 28 | |
| 29 | 29 | SQLITE_OPTIONS = -DNDEBUG=1 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_GET_TABLE -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB |
| 30 | 30 | |
| 31 | 31 | SHELL_OPTIONS = -DNDEBUG=1 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_GET_TABLE -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -Dmain=sqlite3_shell -DSQLITE_SHELL_IS_UTF8=1 -DSQLITE_OMIT_LOAD_EXTENSION=1 -DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) -DSQLITE_SHELL_DBNAME_PROC=sqlcmd_get_dbname -DSQLITE_SHELL_INIT_PROC=sqlcmd_init_proc -Daccess=file_access -Dsystem=fossil_system -Dgetenv=fossil_getenv -Dfopen=fossil_fopen |
| 32 | 32 | |
| 33 | -SRC = add_.c alerts_.c allrepo_.c attach_.c backoffice_.c bag_.c bisect_.c blob_.c branch_.c browse_.c builtin_.c bundle_.c cache_.c capabilities_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c cookies_.c db_.c delta_.c deltacmd_.c descendants_.c diff_.c diffcmd_.c dispatch_.c doc_.c encode_.c etag_.c event_.c export_.c file_.c finfo_.c foci_.c forum_.c fshell_.c fusefs_.c glob_.c graph_.c gzip_.c hname_.c http_.c http_socket_.c http_ssl_.c http_transport_.c import_.c info_.c json_.c json_artifact_.c json_branch_.c json_config_.c json_diff_.c json_dir_.c json_finfo_.c json_login_.c json_query_.c json_report_.c json_status_.c json_tag_.c json_timeline_.c json_user_.c json_wiki_.c leaf_.c loadctrl_.c login_.c lookslike_.c main_.c manifest_.c markdown_.c markdown_html_.c md5_.c merge_.c merge3_.c moderate_.c name_.c path_.c piechart_.c pivot_.c popen_.c pqueue_.c printf_.c publish_.c purge_.c rebuild_.c regexp_.c repolist_.c report_.c rss_.c schema_.c search_.c security_audit_.c setup_.c setupuser_.c sha1_.c sha1hard_.c sha3_.c shun_.c sitemap_.c skins_.c smtp_.c sqlcmd_.c stash_.c stat_.c statrep_.c style_.c sync_.c tag_.c tar_.c th_main_.c timeline_.c tkt_.c tktsetup_.c undo_.c unicode_.c unversioned_.c update_.c url_.c user_.c utf8_.c util_.c verify_.c vfile_.c webmail_.c wiki_.c wikiformat_.c winfile_.c winhttp_.c wysiwyg_.c xfer_.c xfersetup_.c zip_.c | |
| 33 | +SRC = add_.c alerts_.c allrepo_.c attach_.c backoffice_.c bag_.c bisect_.c blob_.c branch_.c browse_.c builtin_.c bundle_.c cache_.c capabilities_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c cookies_.c db_.c delta_.c deltacmd_.c deltafunc_.c descendants_.c diff_.c diffcmd_.c dispatch_.c doc_.c encode_.c etag_.c event_.c export_.c file_.c finfo_.c foci_.c forum_.c fshell_.c fusefs_.c glob_.c graph_.c gzip_.c hname_.c http_.c http_socket_.c http_ssl_.c http_transport_.c import_.c info_.c json_.c json_artifact_.c json_branch_.c json_config_.c json_diff_.c json_dir_.c json_finfo_.c json_login_.c json_query_.c json_report_.c json_status_.c json_tag_.c json_timeline_.c json_user_.c json_wiki_.c leaf_.c loadctrl_.c login_.c lookslike_.c main_.c manifest_.c markdown_.c markdown_html_.c md5_.c merge_.c merge3_.c moderate_.c name_.c path_.c piechart_.c pivot_.c popen_.c pqueue_.c printf_.c publish_.c purge_.c rebuild_.c regexp_.c repolist_.c report_.c rss_.c schema_.c search_.c security_audit_.c setup_.c setupuser_.c sha1_.c sha1hard_.c sha3_.c shun_.c sitemap_.c skins_.c smtp_.c sqlcmd_.c stash_.c stat_.c statrep_.c style_.c sync_.c tag_.c tar_.c th_main_.c timeline_.c tkt_.c tktsetup_.c undo_.c unicode_.c unversioned_.c update_.c url_.c user_.c utf8_.c util_.c verify_.c vfile_.c webmail_.c wiki_.c wikiformat_.c winfile_.c winhttp_.c wysiwyg_.c xfer_.c xfersetup_.c zip_.c | |
| 34 | 34 | |
| 35 | -OBJ = $(OBJDIR)\add$O $(OBJDIR)\alerts$O $(OBJDIR)\allrepo$O $(OBJDIR)\attach$O $(OBJDIR)\backoffice$O $(OBJDIR)\bag$O $(OBJDIR)\bisect$O $(OBJDIR)\blob$O $(OBJDIR)\branch$O $(OBJDIR)\browse$O $(OBJDIR)\builtin$O $(OBJDIR)\bundle$O $(OBJDIR)\cache$O $(OBJDIR)\capabilities$O $(OBJDIR)\captcha$O $(OBJDIR)\cgi$O $(OBJDIR)\checkin$O $(OBJDIR)\checkout$O $(OBJDIR)\clearsign$O $(OBJDIR)\clone$O $(OBJDIR)\comformat$O $(OBJDIR)\configure$O $(OBJDIR)\content$O $(OBJDIR)\cookies$O $(OBJDIR)\db$O $(OBJDIR)\delta$O $(OBJDIR)\deltacmd$O $(OBJDIR)\descendants$O $(OBJDIR)\diff$O $(OBJDIR)\diffcmd$O $(OBJDIR)\dispatch$O $(OBJDIR)\doc$O $(OBJDIR)\encode$O $(OBJDIR)\etag$O $(OBJDIR)\event$O $(OBJDIR)\export$O $(OBJDIR)\file$O $(OBJDIR)\finfo$O $(OBJDIR)\foci$O $(OBJDIR)\forum$O $(OBJDIR)\fshell$O $(OBJDIR)\fusefs$O $(OBJDIR)\glob$O $(OBJDIR)\graph$O $(OBJDIR)\gzip$O $(OBJDIR)\hname$O $(OBJDIR)\http$O $(OBJDIR)\http_socket$O $(OBJDIR)\http_ssl$O $(OBJDIR)\http_transport$O $(OBJDIR)\import$O $(OBJDIR)\info$O $(OBJDIR)\json$O $(OBJDIR)\json_artifact$O $(OBJDIR)\json_branch$O $(OBJDIR)\json_config$O $(OBJDIR)\json_diff$O $(OBJDIR)\json_dir$O $(OBJDIR)\json_finfo$O $(OBJDIR)\json_login$O $(OBJDIR)\json_query$O $(OBJDIR)\json_report$O $(OBJDIR)\json_status$O $(OBJDIR)\json_tag$O $(OBJDIR)\json_timeline$O $(OBJDIR)\json_user$O $(OBJDIR)\json_wiki$O $(OBJDIR)\leaf$O $(OBJDIR)\loadctrl$O $(OBJDIR)\login$O $(OBJDIR)\lookslike$O $(OBJDIR)\main$O $(OBJDIR)\manifest$O $(OBJDIR)\markdown$O $(OBJDIR)\markdown_html$O $(OBJDIR)\md5$O $(OBJDIR)\merge$O $(OBJDIR)\merge3$O $(OBJDIR)\moderate$O $(OBJDIR)\name$O $(OBJDIR)\path$O $(OBJDIR)\piechart$O $(OBJDIR)\pivot$O $(OBJDIR)\popen$O $(OBJDIR)\pqueue$O $(OBJDIR)\printf$O $(OBJDIR)\publish$O $(OBJDIR)\purge$O $(OBJDIR)\rebuild$O $(OBJDIR)\regexp$O $(OBJDIR)\repolist$O $(OBJDIR)\report$O $(OBJDIR)\rss$O $(OBJDIR)\schema$O $(OBJDIR)\search$O $(OBJDIR)\security_audit$O $(OBJDIR)\setup$O $(OBJDIR)\setupuser$O $(OBJDIR)\sha1$O $(OBJDIR)\sha1hard$O $(OBJDIR)\sha3$O $(OBJDIR)\shun$O $(OBJDIR)\sitemap$O $(OBJDIR)\skins$O $(OBJDIR)\smtp$O $(OBJDIR)\sqlcmd$O $(OBJDIR)\stash$O $(OBJDIR)\stat$O $(OBJDIR)\statrep$O $(OBJDIR)\style$O $(OBJDIR)\sync$O $(OBJDIR)\tag$O $(OBJDIR)\tar$O $(OBJDIR)\th_main$O $(OBJDIR)\timeline$O $(OBJDIR)\tkt$O $(OBJDIR)\tktsetup$O $(OBJDIR)\undo$O $(OBJDIR)\unicode$O $(OBJDIR)\unversioned$O $(OBJDIR)\update$O $(OBJDIR)\url$O $(OBJDIR)\user$O $(OBJDIR)\utf8$O $(OBJDIR)\util$O $(OBJDIR)\verify$O $(OBJDIR)\vfile$O $(OBJDIR)\webmail$O $(OBJDIR)\wiki$O $(OBJDIR)\wikiformat$O $(OBJDIR)\winfile$O $(OBJDIR)\winhttp$O $(OBJDIR)\wysiwyg$O $(OBJDIR)\xfer$O $(OBJDIR)\xfersetup$O $(OBJDIR)\zip$O $(OBJDIR)\shell$O $(OBJDIR)\sqlite3$O $(OBJDIR)\th$O $(OBJDIR)\th_lang$O | |
| 35 | +OBJ = $(OBJDIR)\add$O $(OBJDIR)\alerts$O $(OBJDIR)\allrepo$O $(OBJDIR)\attach$O $(OBJDIR)\backoffice$O $(OBJDIR)\bag$O $(OBJDIR)\bisect$O $(OBJDIR)\blob$O $(OBJDIR)\branch$O $(OBJDIR)\browse$O $(OBJDIR)\builtin$O $(OBJDIR)\bundle$O $(OBJDIR)\cache$O $(OBJDIR)\capabilities$O $(OBJDIR)\captcha$O $(OBJDIR)\cgi$O $(OBJDIR)\checkin$O $(OBJDIR)\checkout$O $(OBJDIR)\clearsign$O $(OBJDIR)\clone$O $(OBJDIR)\comformat$O $(OBJDIR)\configure$O $(OBJDIR)\content$O $(OBJDIR)\cookies$O $(OBJDIR)\db$O $(OBJDIR)\delta$O $(OBJDIR)\deltacmd$O $(OBJDIR)\deltafunc$O $(OBJDIR)\descendants$O $(OBJDIR)\diff$O $(OBJDIR)\diffcmd$O $(OBJDIR)\dispatch$O $(OBJDIR)\doc$O $(OBJDIR)\encode$O $(OBJDIR)\etag$O $(OBJDIR)\event$O $(OBJDIR)\export$O $(OBJDIR)\file$O $(OBJDIR)\finfo$O $(OBJDIR)\foci$O $(OBJDIR)\forum$O $(OBJDIR)\fshell$O $(OBJDIR)\fusefs$O $(OBJDIR)\glob$O $(OBJDIR)\graph$O $(OBJDIR)\gzip$O $(OBJDIR)\hname$O $(OBJDIR)\http$O $(OBJDIR)\http_socket$O $(OBJDIR)\http_ssl$O $(OBJDIR)\http_transport$O $(OBJDIR)\import$O $(OBJDIR)\info$O $(OBJDIR)\json$O $(OBJDIR)\json_artifact$O $(OBJDIR)\json_branch$O $(OBJDIR)\json_config$O $(OBJDIR)\json_diff$O $(OBJDIR)\json_dir$O $(OBJDIR)\json_finfo$O $(OBJDIR)\json_login$O $(OBJDIR)\json_query$O $(OBJDIR)\json_report$O $(OBJDIR)\json_status$O $(OBJDIR)\json_tag$O $(OBJDIR)\json_timeline$O $(OBJDIR)\json_user$O $(OBJDIR)\json_wiki$O $(OBJDIR)\leaf$O $(OBJDIR)\loadctrl$O $(OBJDIR)\login$O $(OBJDIR)\lookslike$O $(OBJDIR)\main$O $(OBJDIR)\manifest$O $(OBJDIR)\markdown$O $(OBJDIR)\markdown_html$O $(OBJDIR)\md5$O $(OBJDIR)\merge$O $(OBJDIR)\merge3$O $(OBJDIR)\moderate$O $(OBJDIR)\name$O $(OBJDIR)\path$O $(OBJDIR)\piechart$O $(OBJDIR)\pivot$O $(OBJDIR)\popen$O $(OBJDIR)\pqueue$O $(OBJDIR)\printf$O $(OBJDIR)\publish$O $(OBJDIR)\purge$O $(OBJDIR)\rebuild$O $(OBJDIR)\regexp$O $(OBJDIR)\repolist$O $(OBJDIR)\report$O $(OBJDIR)\rss$O $(OBJDIR)\schema$O $(OBJDIR)\search$O $(OBJDIR)\security_audit$O $(OBJDIR)\setup$O $(OBJDIR)\setupuser$O $(OBJDIR)\sha1$O $(OBJDIR)\sha1hard$O $(OBJDIR)\sha3$O $(OBJDIR)\shun$O $(OBJDIR)\sitemap$O $(OBJDIR)\skins$O $(OBJDIR)\smtp$O $(OBJDIR)\sqlcmd$O $(OBJDIR)\stash$O $(OBJDIR)\stat$O $(OBJDIR)\statrep$O $(OBJDIR)\style$O $(OBJDIR)\sync$O $(OBJDIR)\tag$O $(OBJDIR)\tar$O $(OBJDIR)\th_main$O $(OBJDIR)\timeline$O $(OBJDIR)\tkt$O $(OBJDIR)\tktsetup$O $(OBJDIR)\undo$O $(OBJDIR)\unicode$O $(OBJDIR)\unversioned$O $(OBJDIR)\update$O $(OBJDIR)\url$O $(OBJDIR)\user$O $(OBJDIR)\utf8$O $(OBJDIR)\util$O $(OBJDIR)\verify$O $(OBJDIR)\vfile$O $(OBJDIR)\webmail$O $(OBJDIR)\wiki$O $(OBJDIR)\wikiformat$O $(OBJDIR)\winfile$O $(OBJDIR)\winhttp$O $(OBJDIR)\wysiwyg$O $(OBJDIR)\xfer$O $(OBJDIR)\xfersetup$O $(OBJDIR)\zip$O $(OBJDIR)\shell$O $(OBJDIR)\sqlite3$O $(OBJDIR)\th$O $(OBJDIR)\th_lang$O | |
| 36 | 36 | |
| 37 | 37 | |
| 38 | 38 | RC=$(DMDIR)\bin\rcc |
| 39 | 39 | RCFLAGS=-32 -w1 -I$(SRCDIR) /D__DMC__ |
| 40 | 40 | |
| @@ -49,11 +49,11 @@ | ||
| 49 | 49 | |
| 50 | 50 | $(OBJDIR)\fossil.res: $B\win\fossil.rc |
| 51 | 51 | $(RC) $(RCFLAGS) -o$@ $** |
| 52 | 52 | |
| 53 | 53 | $(OBJDIR)\link: $B\win\Makefile.dmc $(OBJDIR)\fossil.res |
| 54 | - +echo add alerts allrepo attach backoffice bag bisect blob branch browse builtin bundle cache capabilities captcha cgi checkin checkout clearsign clone comformat configure content cookies db delta deltacmd descendants diff diffcmd dispatch doc encode etag event export file finfo foci forum fshell fusefs glob graph gzip hname http http_socket http_ssl http_transport import info json json_artifact json_branch json_config json_diff json_dir json_finfo json_login json_query json_report json_status json_tag json_timeline json_user json_wiki leaf loadctrl login lookslike main manifest markdown markdown_html md5 merge merge3 moderate name path piechart pivot popen pqueue printf publish purge rebuild regexp repolist report rss schema search security_audit setup setupuser sha1 sha1hard sha3 shun sitemap skins smtp sqlcmd stash stat statrep style sync tag tar th_main timeline tkt tktsetup undo unicode unversioned update url user utf8 util verify vfile webmail wiki wikiformat winfile winhttp wysiwyg xfer xfersetup zip shell sqlite3 th th_lang > $@ | |
| 54 | + +echo add alerts allrepo attach backoffice bag bisect blob branch browse builtin bundle cache capabilities captcha cgi checkin checkout clearsign clone comformat configure content cookies db delta deltacmd deltafunc descendants diff diffcmd dispatch doc encode etag event export file finfo foci forum fshell fusefs glob graph gzip hname http http_socket http_ssl http_transport import info json json_artifact json_branch json_config json_diff json_dir json_finfo json_login json_query json_report json_status json_tag json_timeline json_user json_wiki leaf loadctrl login lookslike main manifest markdown markdown_html md5 merge merge3 moderate name path piechart pivot popen pqueue printf publish purge rebuild regexp repolist report rss schema search security_audit setup setupuser sha1 sha1hard sha3 shun sitemap skins smtp sqlcmd stash stat statrep style sync tag tar th_main timeline tkt tktsetup undo unicode unversioned update url user utf8 util verify vfile webmail wiki wikiformat winfile winhttp wysiwyg xfer xfersetup zip shell sqlite3 th th_lang > $@ | |
| 55 | 55 | +echo fossil >> $@ |
| 56 | 56 | +echo fossil >> $@ |
| 57 | 57 | +echo $(LIBS) >> $@ |
| 58 | 58 | +echo. >> $@ |
| 59 | 59 | +echo fossil >> $@ |
| @@ -290,10 +290,16 @@ | ||
| 290 | 290 | $(OBJDIR)\deltacmd$O : deltacmd_.c deltacmd.h |
| 291 | 291 | $(TCC) -o$@ -c deltacmd_.c |
| 292 | 292 | |
| 293 | 293 | deltacmd_.c : $(SRCDIR)\deltacmd.c |
| 294 | 294 | +translate$E $** > $@ |
| 295 | + | |
| 296 | +$(OBJDIR)\deltafunc$O : deltafunc_.c deltafunc.h | |
| 297 | + $(TCC) -o$@ -c deltafunc_.c | |
| 298 | + | |
| 299 | +deltafunc_.c : $(SRCDIR)\deltafunc.c | |
| 300 | + +translate$E $** > $@ | |
| 295 | 301 | |
| 296 | 302 | $(OBJDIR)\descendants$O : descendants_.c descendants.h |
| 297 | 303 | $(TCC) -o$@ -c descendants_.c |
| 298 | 304 | |
| 299 | 305 | descendants_.c : $(SRCDIR)\descendants.c |
| @@ -946,7 +952,7 @@ | ||
| 946 | 952 | |
| 947 | 953 | zip_.c : $(SRCDIR)\zip.c |
| 948 | 954 | +translate$E $** > $@ |
| 949 | 955 | |
| 950 | 956 | headers: makeheaders$E page_index.h builtin_data.h default_css.h VERSION.h |
| 951 | - +makeheaders$E add_.c:add.h alerts_.c:alerts.h allrepo_.c:allrepo.h attach_.c:attach.h backoffice_.c:backoffice.h bag_.c:bag.h bisect_.c:bisect.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.h builtin_.c:builtin.h bundle_.c:bundle.h cache_.c:cache.h capabilities_.c:capabilities.h captcha_.c:captcha.h cgi_.c:cgi.h checkin_.c:checkin.h checkout_.c:checkout.h clearsign_.c:clearsign.h clone_.c:clone.h comformat_.c:comformat.h configure_.c:configure.h content_.c:content.h cookies_.c:cookies.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h dispatch_.c:dispatch.h doc_.c:doc.h encode_.c:encode.h etag_.c:etag.h event_.c:event.h export_.c:export.h file_.c:file.h finfo_.c:finfo.h foci_.c:foci.h forum_.c:forum.h fshell_.c:fshell.h fusefs_.c:fusefs.h glob_.c:glob.h graph_.c:graph.h gzip_.c:gzip.h hname_.c:hname.h http_.c:http.h http_socket_.c:http_socket.h http_ssl_.c:http_ssl.h http_transport_.c:http_transport.h import_.c:import.h info_.c:info.h json_.c:json.h json_artifact_.c:json_artifact.h json_branch_.c:json_branch.h json_config_.c:json_config.h json_diff_.c:json_diff.h json_dir_.c:json_dir.h json_finfo_.c:json_finfo.h json_login_.c:json_login.h json_query_.c:json_query.h json_report_.c:json_report.h json_status_.c:json_status.h json_tag_.c:json_tag.h json_timeline_.c:json_timeline.h json_user_.c:json_user.h json_wiki_.c:json_wiki.h leaf_.c:leaf.h loadctrl_.c:loadctrl.h login_.c:login.h lookslike_.c:lookslike.h main_.c:main.h manifest_.c:manifest.h markdown_.c:markdown.h markdown_html_.c:markdown_html.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h moderate_.c:moderate.h name_.c:name.h path_.c:path.h piechart_.c:piechart.h pivot_.c:pivot.h popen_.c:popen.h pqueue_.c:pqueue.h printf_.c:printf.h publish_.c:publish.h purge_.c:purge.h rebuild_.c:rebuild.h regexp_.c:regexp.h repolist_.c:repolist.h report_.c:report.h rss_.c:rss.h schema_.c:schema.h search_.c:search.h security_audit_.c:security_audit.h setup_.c:setup.h setupuser_.c:setupuser.h sha1_.c:sha1.h sha1hard_.c:sha1hard.h sha3_.c:sha3.h shun_.c:shun.h sitemap_.c:sitemap.h skins_.c:skins.h smtp_.c:smtp.h sqlcmd_.c:sqlcmd.h stash_.c:stash.h stat_.c:stat.h statrep_.c:statrep.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tar_.c:tar.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktsetup_.c:tktsetup.h undo_.c:undo.h unicode_.c:unicode.h unversioned_.c:unversioned.h update_.c:update.h url_.c:url.h user_.c:user.h utf8_.c:utf8.h util_.c:util.h verify_.c:verify.h vfile_.c:vfile.h webmail_.c:webmail.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h winfile_.c:winfile.h winhttp_.c:winhttp.h wysiwyg_.c:wysiwyg.h xfer_.c:xfer.h xfersetup_.c:xfersetup.h zip_.c:zip.h $(SRCDIR)\sqlite3.h $(SRCDIR)\th.h VERSION.h $(SRCDIR)\cson_amalgamation.h | |
| 957 | + +makeheaders$E add_.c:add.h alerts_.c:alerts.h allrepo_.c:allrepo.h attach_.c:attach.h backoffice_.c:backoffice.h bag_.c:bag.h bisect_.c:bisect.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.h builtin_.c:builtin.h bundle_.c:bundle.h cache_.c:cache.h capabilities_.c:capabilities.h captcha_.c:captcha.h cgi_.c:cgi.h checkin_.c:checkin.h checkout_.c:checkout.h clearsign_.c:clearsign.h clone_.c:clone.h comformat_.c:comformat.h configure_.c:configure.h content_.c:content.h cookies_.c:cookies.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h deltafunc_.c:deltafunc.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h dispatch_.c:dispatch.h doc_.c:doc.h encode_.c:encode.h etag_.c:etag.h event_.c:event.h export_.c:export.h file_.c:file.h finfo_.c:finfo.h foci_.c:foci.h forum_.c:forum.h fshell_.c:fshell.h fusefs_.c:fusefs.h glob_.c:glob.h graph_.c:graph.h gzip_.c:gzip.h hname_.c:hname.h http_.c:http.h http_socket_.c:http_socket.h http_ssl_.c:http_ssl.h http_transport_.c:http_transport.h import_.c:import.h info_.c:info.h json_.c:json.h json_artifact_.c:json_artifact.h json_branch_.c:json_branch.h json_config_.c:json_config.h json_diff_.c:json_diff.h json_dir_.c:json_dir.h json_finfo_.c:json_finfo.h json_login_.c:json_login.h json_query_.c:json_query.h json_report_.c:json_report.h json_status_.c:json_status.h json_tag_.c:json_tag.h json_timeline_.c:json_timeline.h json_user_.c:json_user.h json_wiki_.c:json_wiki.h leaf_.c:leaf.h loadctrl_.c:loadctrl.h login_.c:login.h lookslike_.c:lookslike.h main_.c:main.h manifest_.c:manifest.h markdown_.c:markdown.h markdown_html_.c:markdown_html.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h moderate_.c:moderate.h name_.c:name.h path_.c:path.h piechart_.c:piechart.h pivot_.c:pivot.h popen_.c:popen.h pqueue_.c:pqueue.h printf_.c:printf.h publish_.c:publish.h purge_.c:purge.h rebuild_.c:rebuild.h regexp_.c:regexp.h repolist_.c:repolist.h report_.c:report.h rss_.c:rss.h schema_.c:schema.h search_.c:search.h security_audit_.c:security_audit.h setup_.c:setup.h setupuser_.c:setupuser.h sha1_.c:sha1.h sha1hard_.c:sha1hard.h sha3_.c:sha3.h shun_.c:shun.h sitemap_.c:sitemap.h skins_.c:skins.h smtp_.c:smtp.h sqlcmd_.c:sqlcmd.h stash_.c:stash.h stat_.c:stat.h statrep_.c:statrep.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tar_.c:tar.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktsetup_.c:tktsetup.h undo_.c:undo.h unicode_.c:unicode.h unversioned_.c:unversioned.h update_.c:update.h url_.c:url.h user_.c:user.h utf8_.c:utf8.h util_.c:util.h verify_.c:verify.h vfile_.c:vfile.h webmail_.c:webmail.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h winfile_.c:winfile.h winhttp_.c:winhttp.h wysiwyg_.c:wysiwyg.h xfer_.c:xfer.h xfersetup_.c:xfersetup.h zip_.c:zip.h $(SRCDIR)\sqlite3.h $(SRCDIR)\th.h VERSION.h $(SRCDIR)\cson_amalgamation.h | |
| 952 | 958 | @copy /Y nul: headers |
| 953 | 959 |
| --- win/Makefile.dmc | |
| +++ win/Makefile.dmc | |
| @@ -28,13 +28,13 @@ | |
| 28 | |
| 29 | SQLITE_OPTIONS = -DNDEBUG=1 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_GET_TABLE -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB |
| 30 | |
| 31 | SHELL_OPTIONS = -DNDEBUG=1 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_GET_TABLE -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -Dmain=sqlite3_shell -DSQLITE_SHELL_IS_UTF8=1 -DSQLITE_OMIT_LOAD_EXTENSION=1 -DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) -DSQLITE_SHELL_DBNAME_PROC=sqlcmd_get_dbname -DSQLITE_SHELL_INIT_PROC=sqlcmd_init_proc -Daccess=file_access -Dsystem=fossil_system -Dgetenv=fossil_getenv -Dfopen=fossil_fopen |
| 32 | |
| 33 | SRC = add_.c alerts_.c allrepo_.c attach_.c backoffice_.c bag_.c bisect_.c blob_.c branch_.c browse_.c builtin_.c bundle_.c cache_.c capabilities_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c cookies_.c db_.c delta_.c deltacmd_.c descendants_.c diff_.c diffcmd_.c dispatch_.c doc_.c encode_.c etag_.c event_.c export_.c file_.c finfo_.c foci_.c forum_.c fshell_.c fusefs_.c glob_.c graph_.c gzip_.c hname_.c http_.c http_socket_.c http_ssl_.c http_transport_.c import_.c info_.c json_.c json_artifact_.c json_branch_.c json_config_.c json_diff_.c json_dir_.c json_finfo_.c json_login_.c json_query_.c json_report_.c json_status_.c json_tag_.c json_timeline_.c json_user_.c json_wiki_.c leaf_.c loadctrl_.c login_.c lookslike_.c main_.c manifest_.c markdown_.c markdown_html_.c md5_.c merge_.c merge3_.c moderate_.c name_.c path_.c piechart_.c pivot_.c popen_.c pqueue_.c printf_.c publish_.c purge_.c rebuild_.c regexp_.c repolist_.c report_.c rss_.c schema_.c search_.c security_audit_.c setup_.c setupuser_.c sha1_.c sha1hard_.c sha3_.c shun_.c sitemap_.c skins_.c smtp_.c sqlcmd_.c stash_.c stat_.c statrep_.c style_.c sync_.c tag_.c tar_.c th_main_.c timeline_.c tkt_.c tktsetup_.c undo_.c unicode_.c unversioned_.c update_.c url_.c user_.c utf8_.c util_.c verify_.c vfile_.c webmail_.c wiki_.c wikiformat_.c winfile_.c winhttp_.c wysiwyg_.c xfer_.c xfersetup_.c zip_.c |
| 34 | |
| 35 | OBJ = $(OBJDIR)\add$O $(OBJDIR)\alerts$O $(OBJDIR)\allrepo$O $(OBJDIR)\attach$O $(OBJDIR)\backoffice$O $(OBJDIR)\bag$O $(OBJDIR)\bisect$O $(OBJDIR)\blob$O $(OBJDIR)\branch$O $(OBJDIR)\browse$O $(OBJDIR)\builtin$O $(OBJDIR)\bundle$O $(OBJDIR)\cache$O $(OBJDIR)\capabilities$O $(OBJDIR)\captcha$O $(OBJDIR)\cgi$O $(OBJDIR)\checkin$O $(OBJDIR)\checkout$O $(OBJDIR)\clearsign$O $(OBJDIR)\clone$O $(OBJDIR)\comformat$O $(OBJDIR)\configure$O $(OBJDIR)\content$O $(OBJDIR)\cookies$O $(OBJDIR)\db$O $(OBJDIR)\delta$O $(OBJDIR)\deltacmd$O $(OBJDIR)\descendants$O $(OBJDIR)\diff$O $(OBJDIR)\diffcmd$O $(OBJDIR)\dispatch$O $(OBJDIR)\doc$O $(OBJDIR)\encode$O $(OBJDIR)\etag$O $(OBJDIR)\event$O $(OBJDIR)\export$O $(OBJDIR)\file$O $(OBJDIR)\finfo$O $(OBJDIR)\foci$O $(OBJDIR)\forum$O $(OBJDIR)\fshell$O $(OBJDIR)\fusefs$O $(OBJDIR)\glob$O $(OBJDIR)\graph$O $(OBJDIR)\gzip$O $(OBJDIR)\hname$O $(OBJDIR)\http$O $(OBJDIR)\http_socket$O $(OBJDIR)\http_ssl$O $(OBJDIR)\http_transport$O $(OBJDIR)\import$O $(OBJDIR)\info$O $(OBJDIR)\json$O $(OBJDIR)\json_artifact$O $(OBJDIR)\json_branch$O $(OBJDIR)\json_config$O $(OBJDIR)\json_diff$O $(OBJDIR)\json_dir$O $(OBJDIR)\json_finfo$O $(OBJDIR)\json_login$O $(OBJDIR)\json_query$O $(OBJDIR)\json_report$O $(OBJDIR)\json_status$O $(OBJDIR)\json_tag$O $(OBJDIR)\json_timeline$O $(OBJDIR)\json_user$O $(OBJDIR)\json_wiki$O $(OBJDIR)\leaf$O $(OBJDIR)\loadctrl$O $(OBJDIR)\login$O $(OBJDIR)\lookslike$O $(OBJDIR)\main$O $(OBJDIR)\manifest$O $(OBJDIR)\markdown$O $(OBJDIR)\markdown_html$O $(OBJDIR)\md5$O $(OBJDIR)\merge$O $(OBJDIR)\merge3$O $(OBJDIR)\moderate$O $(OBJDIR)\name$O $(OBJDIR)\path$O $(OBJDIR)\piechart$O $(OBJDIR)\pivot$O $(OBJDIR)\popen$O $(OBJDIR)\pqueue$O $(OBJDIR)\printf$O $(OBJDIR)\publish$O $(OBJDIR)\purge$O $(OBJDIR)\rebuild$O $(OBJDIR)\regexp$O $(OBJDIR)\repolist$O $(OBJDIR)\report$O $(OBJDIR)\rss$O $(OBJDIR)\schema$O $(OBJDIR)\search$O $(OBJDIR)\security_audit$O $(OBJDIR)\setup$O $(OBJDIR)\setupuser$O $(OBJDIR)\sha1$O $(OBJDIR)\sha1hard$O $(OBJDIR)\sha3$O $(OBJDIR)\shun$O $(OBJDIR)\sitemap$O $(OBJDIR)\skins$O $(OBJDIR)\smtp$O $(OBJDIR)\sqlcmd$O $(OBJDIR)\stash$O $(OBJDIR)\stat$O $(OBJDIR)\statrep$O $(OBJDIR)\style$O $(OBJDIR)\sync$O $(OBJDIR)\tag$O $(OBJDIR)\tar$O $(OBJDIR)\th_main$O $(OBJDIR)\timeline$O $(OBJDIR)\tkt$O $(OBJDIR)\tktsetup$O $(OBJDIR)\undo$O $(OBJDIR)\unicode$O $(OBJDIR)\unversioned$O $(OBJDIR)\update$O $(OBJDIR)\url$O $(OBJDIR)\user$O $(OBJDIR)\utf8$O $(OBJDIR)\util$O $(OBJDIR)\verify$O $(OBJDIR)\vfile$O $(OBJDIR)\webmail$O $(OBJDIR)\wiki$O $(OBJDIR)\wikiformat$O $(OBJDIR)\winfile$O $(OBJDIR)\winhttp$O $(OBJDIR)\wysiwyg$O $(OBJDIR)\xfer$O $(OBJDIR)\xfersetup$O $(OBJDIR)\zip$O $(OBJDIR)\shell$O $(OBJDIR)\sqlite3$O $(OBJDIR)\th$O $(OBJDIR)\th_lang$O |
| 36 | |
| 37 | |
| 38 | RC=$(DMDIR)\bin\rcc |
| 39 | RCFLAGS=-32 -w1 -I$(SRCDIR) /D__DMC__ |
| 40 | |
| @@ -49,11 +49,11 @@ | |
| 49 | |
| 50 | $(OBJDIR)\fossil.res: $B\win\fossil.rc |
| 51 | $(RC) $(RCFLAGS) -o$@ $** |
| 52 | |
| 53 | $(OBJDIR)\link: $B\win\Makefile.dmc $(OBJDIR)\fossil.res |
| 54 | +echo add alerts allrepo attach backoffice bag bisect blob branch browse builtin bundle cache capabilities captcha cgi checkin checkout clearsign clone comformat configure content cookies db delta deltacmd descendants diff diffcmd dispatch doc encode etag event export file finfo foci forum fshell fusefs glob graph gzip hname http http_socket http_ssl http_transport import info json json_artifact json_branch json_config json_diff json_dir json_finfo json_login json_query json_report json_status json_tag json_timeline json_user json_wiki leaf loadctrl login lookslike main manifest markdown markdown_html md5 merge merge3 moderate name path piechart pivot popen pqueue printf publish purge rebuild regexp repolist report rss schema search security_audit setup setupuser sha1 sha1hard sha3 shun sitemap skins smtp sqlcmd stash stat statrep style sync tag tar th_main timeline tkt tktsetup undo unicode unversioned update url user utf8 util verify vfile webmail wiki wikiformat winfile winhttp wysiwyg xfer xfersetup zip shell sqlite3 th th_lang > $@ |
| 55 | +echo fossil >> $@ |
| 56 | +echo fossil >> $@ |
| 57 | +echo $(LIBS) >> $@ |
| 58 | +echo. >> $@ |
| 59 | +echo fossil >> $@ |
| @@ -290,10 +290,16 @@ | |
| 290 | $(OBJDIR)\deltacmd$O : deltacmd_.c deltacmd.h |
| 291 | $(TCC) -o$@ -c deltacmd_.c |
| 292 | |
| 293 | deltacmd_.c : $(SRCDIR)\deltacmd.c |
| 294 | +translate$E $** > $@ |
| 295 | |
| 296 | $(OBJDIR)\descendants$O : descendants_.c descendants.h |
| 297 | $(TCC) -o$@ -c descendants_.c |
| 298 | |
| 299 | descendants_.c : $(SRCDIR)\descendants.c |
| @@ -946,7 +952,7 @@ | |
| 946 | |
| 947 | zip_.c : $(SRCDIR)\zip.c |
| 948 | +translate$E $** > $@ |
| 949 | |
| 950 | headers: makeheaders$E page_index.h builtin_data.h default_css.h VERSION.h |
| 951 | +makeheaders$E add_.c:add.h alerts_.c:alerts.h allrepo_.c:allrepo.h attach_.c:attach.h backoffice_.c:backoffice.h bag_.c:bag.h bisect_.c:bisect.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.h builtin_.c:builtin.h bundle_.c:bundle.h cache_.c:cache.h capabilities_.c:capabilities.h captcha_.c:captcha.h cgi_.c:cgi.h checkin_.c:checkin.h checkout_.c:checkout.h clearsign_.c:clearsign.h clone_.c:clone.h comformat_.c:comformat.h configure_.c:configure.h content_.c:content.h cookies_.c:cookies.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h dispatch_.c:dispatch.h doc_.c:doc.h encode_.c:encode.h etag_.c:etag.h event_.c:event.h export_.c:export.h file_.c:file.h finfo_.c:finfo.h foci_.c:foci.h forum_.c:forum.h fshell_.c:fshell.h fusefs_.c:fusefs.h glob_.c:glob.h graph_.c:graph.h gzip_.c:gzip.h hname_.c:hname.h http_.c:http.h http_socket_.c:http_socket.h http_ssl_.c:http_ssl.h http_transport_.c:http_transport.h import_.c:import.h info_.c:info.h json_.c:json.h json_artifact_.c:json_artifact.h json_branch_.c:json_branch.h json_config_.c:json_config.h json_diff_.c:json_diff.h json_dir_.c:json_dir.h json_finfo_.c:json_finfo.h json_login_.c:json_login.h json_query_.c:json_query.h json_report_.c:json_report.h json_status_.c:json_status.h json_tag_.c:json_tag.h json_timeline_.c:json_timeline.h json_user_.c:json_user.h json_wiki_.c:json_wiki.h leaf_.c:leaf.h loadctrl_.c:loadctrl.h login_.c:login.h lookslike_.c:lookslike.h main_.c:main.h manifest_.c:manifest.h markdown_.c:markdown.h markdown_html_.c:markdown_html.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h moderate_.c:moderate.h name_.c:name.h path_.c:path.h piechart_.c:piechart.h pivot_.c:pivot.h popen_.c:popen.h pqueue_.c:pqueue.h printf_.c:printf.h publish_.c:publish.h purge_.c:purge.h rebuild_.c:rebuild.h regexp_.c:regexp.h repolist_.c:repolist.h report_.c:report.h rss_.c:rss.h schema_.c:schema.h search_.c:search.h security_audit_.c:security_audit.h setup_.c:setup.h setupuser_.c:setupuser.h sha1_.c:sha1.h sha1hard_.c:sha1hard.h sha3_.c:sha3.h shun_.c:shun.h sitemap_.c:sitemap.h skins_.c:skins.h smtp_.c:smtp.h sqlcmd_.c:sqlcmd.h stash_.c:stash.h stat_.c:stat.h statrep_.c:statrep.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tar_.c:tar.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktsetup_.c:tktsetup.h undo_.c:undo.h unicode_.c:unicode.h unversioned_.c:unversioned.h update_.c:update.h url_.c:url.h user_.c:user.h utf8_.c:utf8.h util_.c:util.h verify_.c:verify.h vfile_.c:vfile.h webmail_.c:webmail.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h winfile_.c:winfile.h winhttp_.c:winhttp.h wysiwyg_.c:wysiwyg.h xfer_.c:xfer.h xfersetup_.c:xfersetup.h zip_.c:zip.h $(SRCDIR)\sqlite3.h $(SRCDIR)\th.h VERSION.h $(SRCDIR)\cson_amalgamation.h |
| 952 | @copy /Y nul: headers |
| 953 |
| --- win/Makefile.dmc | |
| +++ win/Makefile.dmc | |
| @@ -28,13 +28,13 @@ | |
| 28 | |
| 29 | SQLITE_OPTIONS = -DNDEBUG=1 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_GET_TABLE -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB |
| 30 | |
| 31 | SHELL_OPTIONS = -DNDEBUG=1 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_GET_TABLE -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -Dmain=sqlite3_shell -DSQLITE_SHELL_IS_UTF8=1 -DSQLITE_OMIT_LOAD_EXTENSION=1 -DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) -DSQLITE_SHELL_DBNAME_PROC=sqlcmd_get_dbname -DSQLITE_SHELL_INIT_PROC=sqlcmd_init_proc -Daccess=file_access -Dsystem=fossil_system -Dgetenv=fossil_getenv -Dfopen=fossil_fopen |
| 32 | |
| 33 | SRC = add_.c alerts_.c allrepo_.c attach_.c backoffice_.c bag_.c bisect_.c blob_.c branch_.c browse_.c builtin_.c bundle_.c cache_.c capabilities_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c cookies_.c db_.c delta_.c deltacmd_.c deltafunc_.c descendants_.c diff_.c diffcmd_.c dispatch_.c doc_.c encode_.c etag_.c event_.c export_.c file_.c finfo_.c foci_.c forum_.c fshell_.c fusefs_.c glob_.c graph_.c gzip_.c hname_.c http_.c http_socket_.c http_ssl_.c http_transport_.c import_.c info_.c json_.c json_artifact_.c json_branch_.c json_config_.c json_diff_.c json_dir_.c json_finfo_.c json_login_.c json_query_.c json_report_.c json_status_.c json_tag_.c json_timeline_.c json_user_.c json_wiki_.c leaf_.c loadctrl_.c login_.c lookslike_.c main_.c manifest_.c markdown_.c markdown_html_.c md5_.c merge_.c merge3_.c moderate_.c name_.c path_.c piechart_.c pivot_.c popen_.c pqueue_.c printf_.c publish_.c purge_.c rebuild_.c regexp_.c repolist_.c report_.c rss_.c schema_.c search_.c security_audit_.c setup_.c setupuser_.c sha1_.c sha1hard_.c sha3_.c shun_.c sitemap_.c skins_.c smtp_.c sqlcmd_.c stash_.c stat_.c statrep_.c style_.c sync_.c tag_.c tar_.c th_main_.c timeline_.c tkt_.c tktsetup_.c undo_.c unicode_.c unversioned_.c update_.c url_.c user_.c utf8_.c util_.c verify_.c vfile_.c webmail_.c wiki_.c wikiformat_.c winfile_.c winhttp_.c wysiwyg_.c xfer_.c xfersetup_.c zip_.c |
| 34 | |
| 35 | OBJ = $(OBJDIR)\add$O $(OBJDIR)\alerts$O $(OBJDIR)\allrepo$O $(OBJDIR)\attach$O $(OBJDIR)\backoffice$O $(OBJDIR)\bag$O $(OBJDIR)\bisect$O $(OBJDIR)\blob$O $(OBJDIR)\branch$O $(OBJDIR)\browse$O $(OBJDIR)\builtin$O $(OBJDIR)\bundle$O $(OBJDIR)\cache$O $(OBJDIR)\capabilities$O $(OBJDIR)\captcha$O $(OBJDIR)\cgi$O $(OBJDIR)\checkin$O $(OBJDIR)\checkout$O $(OBJDIR)\clearsign$O $(OBJDIR)\clone$O $(OBJDIR)\comformat$O $(OBJDIR)\configure$O $(OBJDIR)\content$O $(OBJDIR)\cookies$O $(OBJDIR)\db$O $(OBJDIR)\delta$O $(OBJDIR)\deltacmd$O $(OBJDIR)\deltafunc$O $(OBJDIR)\descendants$O $(OBJDIR)\diff$O $(OBJDIR)\diffcmd$O $(OBJDIR)\dispatch$O $(OBJDIR)\doc$O $(OBJDIR)\encode$O $(OBJDIR)\etag$O $(OBJDIR)\event$O $(OBJDIR)\export$O $(OBJDIR)\file$O $(OBJDIR)\finfo$O $(OBJDIR)\foci$O $(OBJDIR)\forum$O $(OBJDIR)\fshell$O $(OBJDIR)\fusefs$O $(OBJDIR)\glob$O $(OBJDIR)\graph$O $(OBJDIR)\gzip$O $(OBJDIR)\hname$O $(OBJDIR)\http$O $(OBJDIR)\http_socket$O $(OBJDIR)\http_ssl$O $(OBJDIR)\http_transport$O $(OBJDIR)\import$O $(OBJDIR)\info$O $(OBJDIR)\json$O $(OBJDIR)\json_artifact$O $(OBJDIR)\json_branch$O $(OBJDIR)\json_config$O $(OBJDIR)\json_diff$O $(OBJDIR)\json_dir$O $(OBJDIR)\json_finfo$O $(OBJDIR)\json_login$O $(OBJDIR)\json_query$O $(OBJDIR)\json_report$O $(OBJDIR)\json_status$O $(OBJDIR)\json_tag$O $(OBJDIR)\json_timeline$O $(OBJDIR)\json_user$O $(OBJDIR)\json_wiki$O $(OBJDIR)\leaf$O $(OBJDIR)\loadctrl$O $(OBJDIR)\login$O $(OBJDIR)\lookslike$O $(OBJDIR)\main$O $(OBJDIR)\manifest$O $(OBJDIR)\markdown$O $(OBJDIR)\markdown_html$O $(OBJDIR)\md5$O $(OBJDIR)\merge$O $(OBJDIR)\merge3$O $(OBJDIR)\moderate$O $(OBJDIR)\name$O $(OBJDIR)\path$O $(OBJDIR)\piechart$O $(OBJDIR)\pivot$O $(OBJDIR)\popen$O $(OBJDIR)\pqueue$O $(OBJDIR)\printf$O $(OBJDIR)\publish$O $(OBJDIR)\purge$O $(OBJDIR)\rebuild$O $(OBJDIR)\regexp$O $(OBJDIR)\repolist$O $(OBJDIR)\report$O $(OBJDIR)\rss$O $(OBJDIR)\schema$O $(OBJDIR)\search$O $(OBJDIR)\security_audit$O $(OBJDIR)\setup$O $(OBJDIR)\setupuser$O $(OBJDIR)\sha1$O $(OBJDIR)\sha1hard$O $(OBJDIR)\sha3$O $(OBJDIR)\shun$O $(OBJDIR)\sitemap$O $(OBJDIR)\skins$O $(OBJDIR)\smtp$O $(OBJDIR)\sqlcmd$O $(OBJDIR)\stash$O $(OBJDIR)\stat$O $(OBJDIR)\statrep$O $(OBJDIR)\style$O $(OBJDIR)\sync$O $(OBJDIR)\tag$O $(OBJDIR)\tar$O $(OBJDIR)\th_main$O $(OBJDIR)\timeline$O $(OBJDIR)\tkt$O $(OBJDIR)\tktsetup$O $(OBJDIR)\undo$O $(OBJDIR)\unicode$O $(OBJDIR)\unversioned$O $(OBJDIR)\update$O $(OBJDIR)\url$O $(OBJDIR)\user$O $(OBJDIR)\utf8$O $(OBJDIR)\util$O $(OBJDIR)\verify$O $(OBJDIR)\vfile$O $(OBJDIR)\webmail$O $(OBJDIR)\wiki$O $(OBJDIR)\wikiformat$O $(OBJDIR)\winfile$O $(OBJDIR)\winhttp$O $(OBJDIR)\wysiwyg$O $(OBJDIR)\xfer$O $(OBJDIR)\xfersetup$O $(OBJDIR)\zip$O $(OBJDIR)\shell$O $(OBJDIR)\sqlite3$O $(OBJDIR)\th$O $(OBJDIR)\th_lang$O |
| 36 | |
| 37 | |
| 38 | RC=$(DMDIR)\bin\rcc |
| 39 | RCFLAGS=-32 -w1 -I$(SRCDIR) /D__DMC__ |
| 40 | |
| @@ -49,11 +49,11 @@ | |
| 49 | |
| 50 | $(OBJDIR)\fossil.res: $B\win\fossil.rc |
| 51 | $(RC) $(RCFLAGS) -o$@ $** |
| 52 | |
| 53 | $(OBJDIR)\link: $B\win\Makefile.dmc $(OBJDIR)\fossil.res |
| 54 | +echo add alerts allrepo attach backoffice bag bisect blob branch browse builtin bundle cache capabilities captcha cgi checkin checkout clearsign clone comformat configure content cookies db delta deltacmd deltafunc descendants diff diffcmd dispatch doc encode etag event export file finfo foci forum fshell fusefs glob graph gzip hname http http_socket http_ssl http_transport import info json json_artifact json_branch json_config json_diff json_dir json_finfo json_login json_query json_report json_status json_tag json_timeline json_user json_wiki leaf loadctrl login lookslike main manifest markdown markdown_html md5 merge merge3 moderate name path piechart pivot popen pqueue printf publish purge rebuild regexp repolist report rss schema search security_audit setup setupuser sha1 sha1hard sha3 shun sitemap skins smtp sqlcmd stash stat statrep style sync tag tar th_main timeline tkt tktsetup undo unicode unversioned update url user utf8 util verify vfile webmail wiki wikiformat winfile winhttp wysiwyg xfer xfersetup zip shell sqlite3 th th_lang > $@ |
| 55 | +echo fossil >> $@ |
| 56 | +echo fossil >> $@ |
| 57 | +echo $(LIBS) >> $@ |
| 58 | +echo. >> $@ |
| 59 | +echo fossil >> $@ |
| @@ -290,10 +290,16 @@ | |
| 290 | $(OBJDIR)\deltacmd$O : deltacmd_.c deltacmd.h |
| 291 | $(TCC) -o$@ -c deltacmd_.c |
| 292 | |
| 293 | deltacmd_.c : $(SRCDIR)\deltacmd.c |
| 294 | +translate$E $** > $@ |
| 295 | |
| 296 | $(OBJDIR)\deltafunc$O : deltafunc_.c deltafunc.h |
| 297 | $(TCC) -o$@ -c deltafunc_.c |
| 298 | |
| 299 | deltafunc_.c : $(SRCDIR)\deltafunc.c |
| 300 | +translate$E $** > $@ |
| 301 | |
| 302 | $(OBJDIR)\descendants$O : descendants_.c descendants.h |
| 303 | $(TCC) -o$@ -c descendants_.c |
| 304 | |
| 305 | descendants_.c : $(SRCDIR)\descendants.c |
| @@ -946,7 +952,7 @@ | |
| 952 | |
| 953 | zip_.c : $(SRCDIR)\zip.c |
| 954 | +translate$E $** > $@ |
| 955 | |
| 956 | headers: makeheaders$E page_index.h builtin_data.h default_css.h VERSION.h |
| 957 | +makeheaders$E add_.c:add.h alerts_.c:alerts.h allrepo_.c:allrepo.h attach_.c:attach.h backoffice_.c:backoffice.h bag_.c:bag.h bisect_.c:bisect.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.h builtin_.c:builtin.h bundle_.c:bundle.h cache_.c:cache.h capabilities_.c:capabilities.h captcha_.c:captcha.h cgi_.c:cgi.h checkin_.c:checkin.h checkout_.c:checkout.h clearsign_.c:clearsign.h clone_.c:clone.h comformat_.c:comformat.h configure_.c:configure.h content_.c:content.h cookies_.c:cookies.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h deltafunc_.c:deltafunc.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h dispatch_.c:dispatch.h doc_.c:doc.h encode_.c:encode.h etag_.c:etag.h event_.c:event.h export_.c:export.h file_.c:file.h finfo_.c:finfo.h foci_.c:foci.h forum_.c:forum.h fshell_.c:fshell.h fusefs_.c:fusefs.h glob_.c:glob.h graph_.c:graph.h gzip_.c:gzip.h hname_.c:hname.h http_.c:http.h http_socket_.c:http_socket.h http_ssl_.c:http_ssl.h http_transport_.c:http_transport.h import_.c:import.h info_.c:info.h json_.c:json.h json_artifact_.c:json_artifact.h json_branch_.c:json_branch.h json_config_.c:json_config.h json_diff_.c:json_diff.h json_dir_.c:json_dir.h json_finfo_.c:json_finfo.h json_login_.c:json_login.h json_query_.c:json_query.h json_report_.c:json_report.h json_status_.c:json_status.h json_tag_.c:json_tag.h json_timeline_.c:json_timeline.h json_user_.c:json_user.h json_wiki_.c:json_wiki.h leaf_.c:leaf.h loadctrl_.c:loadctrl.h login_.c:login.h lookslike_.c:lookslike.h main_.c:main.h manifest_.c:manifest.h markdown_.c:markdown.h markdown_html_.c:markdown_html.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h moderate_.c:moderate.h name_.c:name.h path_.c:path.h piechart_.c:piechart.h pivot_.c:pivot.h popen_.c:popen.h pqueue_.c:pqueue.h printf_.c:printf.h publish_.c:publish.h purge_.c:purge.h rebuild_.c:rebuild.h regexp_.c:regexp.h repolist_.c:repolist.h report_.c:report.h rss_.c:rss.h schema_.c:schema.h search_.c:search.h security_audit_.c:security_audit.h setup_.c:setup.h setupuser_.c:setupuser.h sha1_.c:sha1.h sha1hard_.c:sha1hard.h sha3_.c:sha3.h shun_.c:shun.h sitemap_.c:sitemap.h skins_.c:skins.h smtp_.c:smtp.h sqlcmd_.c:sqlcmd.h stash_.c:stash.h stat_.c:stat.h statrep_.c:statrep.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tar_.c:tar.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktsetup_.c:tktsetup.h undo_.c:undo.h unicode_.c:unicode.h unversioned_.c:unversioned.h update_.c:update.h url_.c:url.h user_.c:user.h utf8_.c:utf8.h util_.c:util.h verify_.c:verify.h vfile_.c:vfile.h webmail_.c:webmail.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h winfile_.c:winfile.h winhttp_.c:winhttp.h wysiwyg_.c:wysiwyg.h xfer_.c:xfer.h xfersetup_.c:xfersetup.h zip_.c:zip.h $(SRCDIR)\sqlite3.h $(SRCDIR)\th.h VERSION.h $(SRCDIR)\cson_amalgamation.h |
| 958 | @copy /Y nul: headers |
| 959 |
+12
| --- win/Makefile.mingw | ||
| +++ win/Makefile.mingw | ||
| @@ -463,10 +463,11 @@ | ||
| 463 | 463 | $(SRCDIR)/content.c \ |
| 464 | 464 | $(SRCDIR)/cookies.c \ |
| 465 | 465 | $(SRCDIR)/db.c \ |
| 466 | 466 | $(SRCDIR)/delta.c \ |
| 467 | 467 | $(SRCDIR)/deltacmd.c \ |
| 468 | + $(SRCDIR)/deltafunc.c \ | |
| 468 | 469 | $(SRCDIR)/descendants.c \ |
| 469 | 470 | $(SRCDIR)/diff.c \ |
| 470 | 471 | $(SRCDIR)/diffcmd.c \ |
| 471 | 472 | $(SRCDIR)/dispatch.c \ |
| 472 | 473 | $(SRCDIR)/doc.c \ |
| @@ -674,10 +675,11 @@ | ||
| 674 | 675 | $(OBJDIR)/content_.c \ |
| 675 | 676 | $(OBJDIR)/cookies_.c \ |
| 676 | 677 | $(OBJDIR)/db_.c \ |
| 677 | 678 | $(OBJDIR)/delta_.c \ |
| 678 | 679 | $(OBJDIR)/deltacmd_.c \ |
| 680 | + $(OBJDIR)/deltafunc_.c \ | |
| 679 | 681 | $(OBJDIR)/descendants_.c \ |
| 680 | 682 | $(OBJDIR)/diff_.c \ |
| 681 | 683 | $(OBJDIR)/diffcmd_.c \ |
| 682 | 684 | $(OBJDIR)/dispatch_.c \ |
| 683 | 685 | $(OBJDIR)/doc_.c \ |
| @@ -812,10 +814,11 @@ | ||
| 812 | 814 | $(OBJDIR)/content.o \ |
| 813 | 815 | $(OBJDIR)/cookies.o \ |
| 814 | 816 | $(OBJDIR)/db.o \ |
| 815 | 817 | $(OBJDIR)/delta.o \ |
| 816 | 818 | $(OBJDIR)/deltacmd.o \ |
| 819 | + $(OBJDIR)/deltafunc.o \ | |
| 817 | 820 | $(OBJDIR)/descendants.o \ |
| 818 | 821 | $(OBJDIR)/diff.o \ |
| 819 | 822 | $(OBJDIR)/diffcmd.o \ |
| 820 | 823 | $(OBJDIR)/dispatch.o \ |
| 821 | 824 | $(OBJDIR)/doc.o \ |
| @@ -1169,10 +1172,11 @@ | ||
| 1169 | 1172 | $(OBJDIR)/content_.c:$(OBJDIR)/content.h \ |
| 1170 | 1173 | $(OBJDIR)/cookies_.c:$(OBJDIR)/cookies.h \ |
| 1171 | 1174 | $(OBJDIR)/db_.c:$(OBJDIR)/db.h \ |
| 1172 | 1175 | $(OBJDIR)/delta_.c:$(OBJDIR)/delta.h \ |
| 1173 | 1176 | $(OBJDIR)/deltacmd_.c:$(OBJDIR)/deltacmd.h \ |
| 1177 | + $(OBJDIR)/deltafunc_.c:$(OBJDIR)/deltafunc.h \ | |
| 1174 | 1178 | $(OBJDIR)/descendants_.c:$(OBJDIR)/descendants.h \ |
| 1175 | 1179 | $(OBJDIR)/diff_.c:$(OBJDIR)/diff.h \ |
| 1176 | 1180 | $(OBJDIR)/diffcmd_.c:$(OBJDIR)/diffcmd.h \ |
| 1177 | 1181 | $(OBJDIR)/dispatch_.c:$(OBJDIR)/dispatch.h \ |
| 1178 | 1182 | $(OBJDIR)/doc_.c:$(OBJDIR)/doc.h \ |
| @@ -1502,10 +1506,18 @@ | ||
| 1502 | 1506 | |
| 1503 | 1507 | $(OBJDIR)/deltacmd.o: $(OBJDIR)/deltacmd_.c $(OBJDIR)/deltacmd.h $(SRCDIR)/config.h |
| 1504 | 1508 | $(XTCC) -o $(OBJDIR)/deltacmd.o -c $(OBJDIR)/deltacmd_.c |
| 1505 | 1509 | |
| 1506 | 1510 | $(OBJDIR)/deltacmd.h: $(OBJDIR)/headers |
| 1511 | + | |
| 1512 | +$(OBJDIR)/deltafunc_.c: $(SRCDIR)/deltafunc.c $(TRANSLATE) | |
| 1513 | + $(TRANSLATE) $(SRCDIR)/deltafunc.c >$@ | |
| 1514 | + | |
| 1515 | +$(OBJDIR)/deltafunc.o: $(OBJDIR)/deltafunc_.c $(OBJDIR)/deltafunc.h $(SRCDIR)/config.h | |
| 1516 | + $(XTCC) -o $(OBJDIR)/deltafunc.o -c $(OBJDIR)/deltafunc_.c | |
| 1517 | + | |
| 1518 | +$(OBJDIR)/deltafunc.h: $(OBJDIR)/headers | |
| 1507 | 1519 | |
| 1508 | 1520 | $(OBJDIR)/descendants_.c: $(SRCDIR)/descendants.c $(TRANSLATE) |
| 1509 | 1521 | $(TRANSLATE) $(SRCDIR)/descendants.c >$@ |
| 1510 | 1522 | |
| 1511 | 1523 | $(OBJDIR)/descendants.o: $(OBJDIR)/descendants_.c $(OBJDIR)/descendants.h $(SRCDIR)/config.h |
| 1512 | 1524 |
| --- win/Makefile.mingw | |
| +++ win/Makefile.mingw | |
| @@ -463,10 +463,11 @@ | |
| 463 | $(SRCDIR)/content.c \ |
| 464 | $(SRCDIR)/cookies.c \ |
| 465 | $(SRCDIR)/db.c \ |
| 466 | $(SRCDIR)/delta.c \ |
| 467 | $(SRCDIR)/deltacmd.c \ |
| 468 | $(SRCDIR)/descendants.c \ |
| 469 | $(SRCDIR)/diff.c \ |
| 470 | $(SRCDIR)/diffcmd.c \ |
| 471 | $(SRCDIR)/dispatch.c \ |
| 472 | $(SRCDIR)/doc.c \ |
| @@ -674,10 +675,11 @@ | |
| 674 | $(OBJDIR)/content_.c \ |
| 675 | $(OBJDIR)/cookies_.c \ |
| 676 | $(OBJDIR)/db_.c \ |
| 677 | $(OBJDIR)/delta_.c \ |
| 678 | $(OBJDIR)/deltacmd_.c \ |
| 679 | $(OBJDIR)/descendants_.c \ |
| 680 | $(OBJDIR)/diff_.c \ |
| 681 | $(OBJDIR)/diffcmd_.c \ |
| 682 | $(OBJDIR)/dispatch_.c \ |
| 683 | $(OBJDIR)/doc_.c \ |
| @@ -812,10 +814,11 @@ | |
| 812 | $(OBJDIR)/content.o \ |
| 813 | $(OBJDIR)/cookies.o \ |
| 814 | $(OBJDIR)/db.o \ |
| 815 | $(OBJDIR)/delta.o \ |
| 816 | $(OBJDIR)/deltacmd.o \ |
| 817 | $(OBJDIR)/descendants.o \ |
| 818 | $(OBJDIR)/diff.o \ |
| 819 | $(OBJDIR)/diffcmd.o \ |
| 820 | $(OBJDIR)/dispatch.o \ |
| 821 | $(OBJDIR)/doc.o \ |
| @@ -1169,10 +1172,11 @@ | |
| 1169 | $(OBJDIR)/content_.c:$(OBJDIR)/content.h \ |
| 1170 | $(OBJDIR)/cookies_.c:$(OBJDIR)/cookies.h \ |
| 1171 | $(OBJDIR)/db_.c:$(OBJDIR)/db.h \ |
| 1172 | $(OBJDIR)/delta_.c:$(OBJDIR)/delta.h \ |
| 1173 | $(OBJDIR)/deltacmd_.c:$(OBJDIR)/deltacmd.h \ |
| 1174 | $(OBJDIR)/descendants_.c:$(OBJDIR)/descendants.h \ |
| 1175 | $(OBJDIR)/diff_.c:$(OBJDIR)/diff.h \ |
| 1176 | $(OBJDIR)/diffcmd_.c:$(OBJDIR)/diffcmd.h \ |
| 1177 | $(OBJDIR)/dispatch_.c:$(OBJDIR)/dispatch.h \ |
| 1178 | $(OBJDIR)/doc_.c:$(OBJDIR)/doc.h \ |
| @@ -1502,10 +1506,18 @@ | |
| 1502 | |
| 1503 | $(OBJDIR)/deltacmd.o: $(OBJDIR)/deltacmd_.c $(OBJDIR)/deltacmd.h $(SRCDIR)/config.h |
| 1504 | $(XTCC) -o $(OBJDIR)/deltacmd.o -c $(OBJDIR)/deltacmd_.c |
| 1505 | |
| 1506 | $(OBJDIR)/deltacmd.h: $(OBJDIR)/headers |
| 1507 | |
| 1508 | $(OBJDIR)/descendants_.c: $(SRCDIR)/descendants.c $(TRANSLATE) |
| 1509 | $(TRANSLATE) $(SRCDIR)/descendants.c >$@ |
| 1510 | |
| 1511 | $(OBJDIR)/descendants.o: $(OBJDIR)/descendants_.c $(OBJDIR)/descendants.h $(SRCDIR)/config.h |
| 1512 |
| --- win/Makefile.mingw | |
| +++ win/Makefile.mingw | |
| @@ -463,10 +463,11 @@ | |
| 463 | $(SRCDIR)/content.c \ |
| 464 | $(SRCDIR)/cookies.c \ |
| 465 | $(SRCDIR)/db.c \ |
| 466 | $(SRCDIR)/delta.c \ |
| 467 | $(SRCDIR)/deltacmd.c \ |
| 468 | $(SRCDIR)/deltafunc.c \ |
| 469 | $(SRCDIR)/descendants.c \ |
| 470 | $(SRCDIR)/diff.c \ |
| 471 | $(SRCDIR)/diffcmd.c \ |
| 472 | $(SRCDIR)/dispatch.c \ |
| 473 | $(SRCDIR)/doc.c \ |
| @@ -674,10 +675,11 @@ | |
| 675 | $(OBJDIR)/content_.c \ |
| 676 | $(OBJDIR)/cookies_.c \ |
| 677 | $(OBJDIR)/db_.c \ |
| 678 | $(OBJDIR)/delta_.c \ |
| 679 | $(OBJDIR)/deltacmd_.c \ |
| 680 | $(OBJDIR)/deltafunc_.c \ |
| 681 | $(OBJDIR)/descendants_.c \ |
| 682 | $(OBJDIR)/diff_.c \ |
| 683 | $(OBJDIR)/diffcmd_.c \ |
| 684 | $(OBJDIR)/dispatch_.c \ |
| 685 | $(OBJDIR)/doc_.c \ |
| @@ -812,10 +814,11 @@ | |
| 814 | $(OBJDIR)/content.o \ |
| 815 | $(OBJDIR)/cookies.o \ |
| 816 | $(OBJDIR)/db.o \ |
| 817 | $(OBJDIR)/delta.o \ |
| 818 | $(OBJDIR)/deltacmd.o \ |
| 819 | $(OBJDIR)/deltafunc.o \ |
| 820 | $(OBJDIR)/descendants.o \ |
| 821 | $(OBJDIR)/diff.o \ |
| 822 | $(OBJDIR)/diffcmd.o \ |
| 823 | $(OBJDIR)/dispatch.o \ |
| 824 | $(OBJDIR)/doc.o \ |
| @@ -1169,10 +1172,11 @@ | |
| 1172 | $(OBJDIR)/content_.c:$(OBJDIR)/content.h \ |
| 1173 | $(OBJDIR)/cookies_.c:$(OBJDIR)/cookies.h \ |
| 1174 | $(OBJDIR)/db_.c:$(OBJDIR)/db.h \ |
| 1175 | $(OBJDIR)/delta_.c:$(OBJDIR)/delta.h \ |
| 1176 | $(OBJDIR)/deltacmd_.c:$(OBJDIR)/deltacmd.h \ |
| 1177 | $(OBJDIR)/deltafunc_.c:$(OBJDIR)/deltafunc.h \ |
| 1178 | $(OBJDIR)/descendants_.c:$(OBJDIR)/descendants.h \ |
| 1179 | $(OBJDIR)/diff_.c:$(OBJDIR)/diff.h \ |
| 1180 | $(OBJDIR)/diffcmd_.c:$(OBJDIR)/diffcmd.h \ |
| 1181 | $(OBJDIR)/dispatch_.c:$(OBJDIR)/dispatch.h \ |
| 1182 | $(OBJDIR)/doc_.c:$(OBJDIR)/doc.h \ |
| @@ -1502,10 +1506,18 @@ | |
| 1506 | |
| 1507 | $(OBJDIR)/deltacmd.o: $(OBJDIR)/deltacmd_.c $(OBJDIR)/deltacmd.h $(SRCDIR)/config.h |
| 1508 | $(XTCC) -o $(OBJDIR)/deltacmd.o -c $(OBJDIR)/deltacmd_.c |
| 1509 | |
| 1510 | $(OBJDIR)/deltacmd.h: $(OBJDIR)/headers |
| 1511 | |
| 1512 | $(OBJDIR)/deltafunc_.c: $(SRCDIR)/deltafunc.c $(TRANSLATE) |
| 1513 | $(TRANSLATE) $(SRCDIR)/deltafunc.c >$@ |
| 1514 | |
| 1515 | $(OBJDIR)/deltafunc.o: $(OBJDIR)/deltafunc_.c $(OBJDIR)/deltafunc.h $(SRCDIR)/config.h |
| 1516 | $(XTCC) -o $(OBJDIR)/deltafunc.o -c $(OBJDIR)/deltafunc_.c |
| 1517 | |
| 1518 | $(OBJDIR)/deltafunc.h: $(OBJDIR)/headers |
| 1519 | |
| 1520 | $(OBJDIR)/descendants_.c: $(SRCDIR)/descendants.c $(TRANSLATE) |
| 1521 | $(TRANSLATE) $(SRCDIR)/descendants.c >$@ |
| 1522 | |
| 1523 | $(OBJDIR)/descendants.o: $(OBJDIR)/descendants_.c $(OBJDIR)/descendants.h $(SRCDIR)/config.h |
| 1524 |
+10
| --- win/Makefile.msc | ||
| +++ win/Makefile.msc | ||
| @@ -403,10 +403,11 @@ | ||
| 403 | 403 | content_.c \ |
| 404 | 404 | cookies_.c \ |
| 405 | 405 | db_.c \ |
| 406 | 406 | delta_.c \ |
| 407 | 407 | deltacmd_.c \ |
| 408 | + deltafunc_.c \ | |
| 408 | 409 | descendants_.c \ |
| 409 | 410 | diff_.c \ |
| 410 | 411 | diffcmd_.c \ |
| 411 | 412 | dispatch_.c \ |
| 412 | 413 | doc_.c \ |
| @@ -613,10 +614,11 @@ | ||
| 613 | 614 | $(OX)\cookies$O \ |
| 614 | 615 | $(OX)\cson_amalgamation$O \ |
| 615 | 616 | $(OX)\db$O \ |
| 616 | 617 | $(OX)\delta$O \ |
| 617 | 618 | $(OX)\deltacmd$O \ |
| 619 | + $(OX)\deltafunc$O \ | |
| 618 | 620 | $(OX)\descendants$O \ |
| 619 | 621 | $(OX)\diff$O \ |
| 620 | 622 | $(OX)\diffcmd$O \ |
| 621 | 623 | $(OX)\dispatch$O \ |
| 622 | 624 | $(OX)\doc$O \ |
| @@ -814,10 +816,11 @@ | ||
| 814 | 816 | echo $(OX)\cookies.obj >> $@ |
| 815 | 817 | echo $(OX)\cson_amalgamation.obj >> $@ |
| 816 | 818 | echo $(OX)\db.obj >> $@ |
| 817 | 819 | echo $(OX)\delta.obj >> $@ |
| 818 | 820 | echo $(OX)\deltacmd.obj >> $@ |
| 821 | + echo $(OX)\deltafunc.obj >> $@ | |
| 819 | 822 | echo $(OX)\descendants.obj >> $@ |
| 820 | 823 | echo $(OX)\diff.obj >> $@ |
| 821 | 824 | echo $(OX)\diffcmd.obj >> $@ |
| 822 | 825 | echo $(OX)\dispatch.obj >> $@ |
| 823 | 826 | echo $(OX)\doc.obj >> $@ |
| @@ -1207,10 +1210,16 @@ | ||
| 1207 | 1210 | $(OX)\deltacmd$O : deltacmd_.c deltacmd.h |
| 1208 | 1211 | $(TCC) /Fo$@ -c deltacmd_.c |
| 1209 | 1212 | |
| 1210 | 1213 | deltacmd_.c : $(SRCDIR)\deltacmd.c |
| 1211 | 1214 | translate$E $** > $@ |
| 1215 | + | |
| 1216 | +$(OX)\deltafunc$O : deltafunc_.c deltafunc.h | |
| 1217 | + $(TCC) /Fo$@ -c deltafunc_.c | |
| 1218 | + | |
| 1219 | +deltafunc_.c : $(SRCDIR)\deltafunc.c | |
| 1220 | + translate$E $** > $@ | |
| 1212 | 1221 | |
| 1213 | 1222 | $(OX)\descendants$O : descendants_.c descendants.h |
| 1214 | 1223 | $(TCC) /Fo$@ -c descendants_.c |
| 1215 | 1224 | |
| 1216 | 1225 | descendants_.c : $(SRCDIR)\descendants.c |
| @@ -1893,10 +1902,11 @@ | ||
| 1893 | 1902 | content_.c:content.h \ |
| 1894 | 1903 | cookies_.c:cookies.h \ |
| 1895 | 1904 | db_.c:db.h \ |
| 1896 | 1905 | delta_.c:delta.h \ |
| 1897 | 1906 | deltacmd_.c:deltacmd.h \ |
| 1907 | + deltafunc_.c:deltafunc.h \ | |
| 1898 | 1908 | descendants_.c:descendants.h \ |
| 1899 | 1909 | diff_.c:diff.h \ |
| 1900 | 1910 | diffcmd_.c:diffcmd.h \ |
| 1901 | 1911 | dispatch_.c:dispatch.h \ |
| 1902 | 1912 | doc_.c:doc.h \ |
| 1903 | 1913 |
| --- win/Makefile.msc | |
| +++ win/Makefile.msc | |
| @@ -403,10 +403,11 @@ | |
| 403 | content_.c \ |
| 404 | cookies_.c \ |
| 405 | db_.c \ |
| 406 | delta_.c \ |
| 407 | deltacmd_.c \ |
| 408 | descendants_.c \ |
| 409 | diff_.c \ |
| 410 | diffcmd_.c \ |
| 411 | dispatch_.c \ |
| 412 | doc_.c \ |
| @@ -613,10 +614,11 @@ | |
| 613 | $(OX)\cookies$O \ |
| 614 | $(OX)\cson_amalgamation$O \ |
| 615 | $(OX)\db$O \ |
| 616 | $(OX)\delta$O \ |
| 617 | $(OX)\deltacmd$O \ |
| 618 | $(OX)\descendants$O \ |
| 619 | $(OX)\diff$O \ |
| 620 | $(OX)\diffcmd$O \ |
| 621 | $(OX)\dispatch$O \ |
| 622 | $(OX)\doc$O \ |
| @@ -814,10 +816,11 @@ | |
| 814 | echo $(OX)\cookies.obj >> $@ |
| 815 | echo $(OX)\cson_amalgamation.obj >> $@ |
| 816 | echo $(OX)\db.obj >> $@ |
| 817 | echo $(OX)\delta.obj >> $@ |
| 818 | echo $(OX)\deltacmd.obj >> $@ |
| 819 | echo $(OX)\descendants.obj >> $@ |
| 820 | echo $(OX)\diff.obj >> $@ |
| 821 | echo $(OX)\diffcmd.obj >> $@ |
| 822 | echo $(OX)\dispatch.obj >> $@ |
| 823 | echo $(OX)\doc.obj >> $@ |
| @@ -1207,10 +1210,16 @@ | |
| 1207 | $(OX)\deltacmd$O : deltacmd_.c deltacmd.h |
| 1208 | $(TCC) /Fo$@ -c deltacmd_.c |
| 1209 | |
| 1210 | deltacmd_.c : $(SRCDIR)\deltacmd.c |
| 1211 | translate$E $** > $@ |
| 1212 | |
| 1213 | $(OX)\descendants$O : descendants_.c descendants.h |
| 1214 | $(TCC) /Fo$@ -c descendants_.c |
| 1215 | |
| 1216 | descendants_.c : $(SRCDIR)\descendants.c |
| @@ -1893,10 +1902,11 @@ | |
| 1893 | content_.c:content.h \ |
| 1894 | cookies_.c:cookies.h \ |
| 1895 | db_.c:db.h \ |
| 1896 | delta_.c:delta.h \ |
| 1897 | deltacmd_.c:deltacmd.h \ |
| 1898 | descendants_.c:descendants.h \ |
| 1899 | diff_.c:diff.h \ |
| 1900 | diffcmd_.c:diffcmd.h \ |
| 1901 | dispatch_.c:dispatch.h \ |
| 1902 | doc_.c:doc.h \ |
| 1903 |
| --- win/Makefile.msc | |
| +++ win/Makefile.msc | |
| @@ -403,10 +403,11 @@ | |
| 403 | content_.c \ |
| 404 | cookies_.c \ |
| 405 | db_.c \ |
| 406 | delta_.c \ |
| 407 | deltacmd_.c \ |
| 408 | deltafunc_.c \ |
| 409 | descendants_.c \ |
| 410 | diff_.c \ |
| 411 | diffcmd_.c \ |
| 412 | dispatch_.c \ |
| 413 | doc_.c \ |
| @@ -613,10 +614,11 @@ | |
| 614 | $(OX)\cookies$O \ |
| 615 | $(OX)\cson_amalgamation$O \ |
| 616 | $(OX)\db$O \ |
| 617 | $(OX)\delta$O \ |
| 618 | $(OX)\deltacmd$O \ |
| 619 | $(OX)\deltafunc$O \ |
| 620 | $(OX)\descendants$O \ |
| 621 | $(OX)\diff$O \ |
| 622 | $(OX)\diffcmd$O \ |
| 623 | $(OX)\dispatch$O \ |
| 624 | $(OX)\doc$O \ |
| @@ -814,10 +816,11 @@ | |
| 816 | echo $(OX)\cookies.obj >> $@ |
| 817 | echo $(OX)\cson_amalgamation.obj >> $@ |
| 818 | echo $(OX)\db.obj >> $@ |
| 819 | echo $(OX)\delta.obj >> $@ |
| 820 | echo $(OX)\deltacmd.obj >> $@ |
| 821 | echo $(OX)\deltafunc.obj >> $@ |
| 822 | echo $(OX)\descendants.obj >> $@ |
| 823 | echo $(OX)\diff.obj >> $@ |
| 824 | echo $(OX)\diffcmd.obj >> $@ |
| 825 | echo $(OX)\dispatch.obj >> $@ |
| 826 | echo $(OX)\doc.obj >> $@ |
| @@ -1207,10 +1210,16 @@ | |
| 1210 | $(OX)\deltacmd$O : deltacmd_.c deltacmd.h |
| 1211 | $(TCC) /Fo$@ -c deltacmd_.c |
| 1212 | |
| 1213 | deltacmd_.c : $(SRCDIR)\deltacmd.c |
| 1214 | translate$E $** > $@ |
| 1215 | |
| 1216 | $(OX)\deltafunc$O : deltafunc_.c deltafunc.h |
| 1217 | $(TCC) /Fo$@ -c deltafunc_.c |
| 1218 | |
| 1219 | deltafunc_.c : $(SRCDIR)\deltafunc.c |
| 1220 | translate$E $** > $@ |
| 1221 | |
| 1222 | $(OX)\descendants$O : descendants_.c descendants.h |
| 1223 | $(TCC) /Fo$@ -c descendants_.c |
| 1224 | |
| 1225 | descendants_.c : $(SRCDIR)\descendants.c |
| @@ -1893,10 +1902,11 @@ | |
| 1902 | content_.c:content.h \ |
| 1903 | cookies_.c:cookies.h \ |
| 1904 | db_.c:db.h \ |
| 1905 | delta_.c:delta.h \ |
| 1906 | deltacmd_.c:deltacmd.h \ |
| 1907 | deltafunc_.c:deltafunc.h \ |
| 1908 | descendants_.c:descendants.h \ |
| 1909 | diff_.c:diff.h \ |
| 1910 | diffcmd_.c:diffcmd.h \ |
| 1911 | dispatch_.c:dispatch.h \ |
| 1912 | doc_.c:doc.h \ |
| 1913 |