Fossil SCM

Merged to [ed26056bb5].

aku 2008-02-24 18:50 trunk merge
Commit 588bb7cd734d4c3a066a715249f8498f425518e3
+1
--- src/blob.c
+++ src/blob.c
@@ -241,10 +241,11 @@
241241
** routine. blob_str() will make a copy of the p if necessary
242242
** to avoid modifying pBig.
243243
*/
244244
char *blob_terminate(Blob *p){
245245
blob_is_init(p);
246
+ if( p->nUsed==0 ) return "";
246247
p->aData[p->nUsed] = 0;
247248
return p->aData;
248249
}
249250
250251
/*
251252
--- src/blob.c
+++ src/blob.c
@@ -241,10 +241,11 @@
241 ** routine. blob_str() will make a copy of the p if necessary
242 ** to avoid modifying pBig.
243 */
244 char *blob_terminate(Blob *p){
245 blob_is_init(p);
 
246 p->aData[p->nUsed] = 0;
247 return p->aData;
248 }
249
250 /*
251
--- src/blob.c
+++ src/blob.c
@@ -241,10 +241,11 @@
241 ** routine. blob_str() will make a copy of the p if necessary
242 ** to avoid modifying pBig.
243 */
244 char *blob_terminate(Blob *p){
245 blob_is_init(p);
246 if( p->nUsed==0 ) return "";
247 p->aData[p->nUsed] = 0;
248 return p->aData;
249 }
250
251 /*
252
+15 -1
--- src/checkin.c
+++ src/checkin.c
@@ -327,10 +327,12 @@
327327
char *zUuid, *zDate;
328328
int noSign = 0; /* True to omit signing the manifest using GPG */
329329
int isAMerge = 0; /* True if checking in a merge */
330330
int forceFlag = 0; /* Force a fork */
331331
char *zManifestFile; /* Name of the manifest file */
332
+ int nBasename; /* Length of "g.zLocalRoot/" */
333
+ Blob filename; /* complete filename */
332334
Blob manifest;
333335
Blob muuid; /* Manifest uuid */
334336
Blob mcksum; /* Self-checksum on the manifest */
335337
Blob cksum1, cksum2; /* Before and after commit checksums */
336338
Blob cksum1b; /* Checksum recorded in the manifest */
@@ -447,15 +449,27 @@
447449
blob_appendf(&manifest, "D %s\n", zDate);
448450
db_prepare(&q,
449451
"SELECT pathname, uuid FROM vfile JOIN blob ON vfile.mrid=blob.rid"
450452
" WHERE NOT deleted AND vfile.vid=%d"
451453
" ORDER BY 1", vid);
454
+ blob_zero(&filename);
455
+ blob_appendf(&filename, "%s/", g.zLocalRoot);
456
+ nBasename = blob_size(&filename);
452457
while( db_step(&q)==SQLITE_ROW ){
453458
const char *zName = db_column_text(&q, 0);
454459
const char *zUuid = db_column_text(&q, 1);
455
- blob_appendf(&manifest, "F %F %s\n", zName, zUuid);
460
+ const char *zPerm;
461
+ blob_append(&filename, zName, -1);
462
+ if( file_isexe(blob_str(&filename)) ){
463
+ zPerm = " x";
464
+ }else{
465
+ zPerm = "";
466
+ }
467
+ blob_resize(&filename, nBasename);
468
+ blob_appendf(&manifest, "F %F %s%s\n", zName, zUuid, zPerm);
456469
}
470
+ blob_reset(&filename);
457471
db_finalize(&q);
458472
zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", vid);
459473
blob_appendf(&manifest, "P %s", zUuid);
460474
461475
db_prepare(&q2, "SELECT merge FROM vmerge WHERE id=:id");
462476
--- src/checkin.c
+++ src/checkin.c
@@ -327,10 +327,12 @@
327 char *zUuid, *zDate;
328 int noSign = 0; /* True to omit signing the manifest using GPG */
329 int isAMerge = 0; /* True if checking in a merge */
330 int forceFlag = 0; /* Force a fork */
331 char *zManifestFile; /* Name of the manifest file */
 
 
332 Blob manifest;
333 Blob muuid; /* Manifest uuid */
334 Blob mcksum; /* Self-checksum on the manifest */
335 Blob cksum1, cksum2; /* Before and after commit checksums */
336 Blob cksum1b; /* Checksum recorded in the manifest */
@@ -447,15 +449,27 @@
447 blob_appendf(&manifest, "D %s\n", zDate);
448 db_prepare(&q,
449 "SELECT pathname, uuid FROM vfile JOIN blob ON vfile.mrid=blob.rid"
450 " WHERE NOT deleted AND vfile.vid=%d"
451 " ORDER BY 1", vid);
 
 
 
452 while( db_step(&q)==SQLITE_ROW ){
453 const char *zName = db_column_text(&q, 0);
454 const char *zUuid = db_column_text(&q, 1);
455 blob_appendf(&manifest, "F %F %s\n", zName, zUuid);
 
 
 
 
 
 
 
 
456 }
 
457 db_finalize(&q);
458 zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", vid);
459 blob_appendf(&manifest, "P %s", zUuid);
460
461 db_prepare(&q2, "SELECT merge FROM vmerge WHERE id=:id");
462
--- src/checkin.c
+++ src/checkin.c
@@ -327,10 +327,12 @@
327 char *zUuid, *zDate;
328 int noSign = 0; /* True to omit signing the manifest using GPG */
329 int isAMerge = 0; /* True if checking in a merge */
330 int forceFlag = 0; /* Force a fork */
331 char *zManifestFile; /* Name of the manifest file */
332 int nBasename; /* Length of "g.zLocalRoot/" */
333 Blob filename; /* complete filename */
334 Blob manifest;
335 Blob muuid; /* Manifest uuid */
336 Blob mcksum; /* Self-checksum on the manifest */
337 Blob cksum1, cksum2; /* Before and after commit checksums */
338 Blob cksum1b; /* Checksum recorded in the manifest */
@@ -447,15 +449,27 @@
449 blob_appendf(&manifest, "D %s\n", zDate);
450 db_prepare(&q,
451 "SELECT pathname, uuid FROM vfile JOIN blob ON vfile.mrid=blob.rid"
452 " WHERE NOT deleted AND vfile.vid=%d"
453 " ORDER BY 1", vid);
454 blob_zero(&filename);
455 blob_appendf(&filename, "%s/", g.zLocalRoot);
456 nBasename = blob_size(&filename);
457 while( db_step(&q)==SQLITE_ROW ){
458 const char *zName = db_column_text(&q, 0);
459 const char *zUuid = db_column_text(&q, 1);
460 const char *zPerm;
461 blob_append(&filename, zName, -1);
462 if( file_isexe(blob_str(&filename)) ){
463 zPerm = " x";
464 }else{
465 zPerm = "";
466 }
467 blob_resize(&filename, nBasename);
468 blob_appendf(&manifest, "F %F %s%s\n", zName, zUuid, zPerm);
469 }
470 blob_reset(&filename);
471 db_finalize(&q);
472 zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", vid);
473 blob_appendf(&manifest, "P %s", zUuid);
474
475 db_prepare(&q2, "SELECT merge FROM vmerge WHERE id=:id");
476
+17 -1
--- src/checkout.c
+++ src/checkout.c
@@ -98,24 +98,40 @@
9898
*/
9999
void manifest_to_disk(int vid){
100100
char *zManFile;
101101
Blob manifest;
102102
Blob hash;
103
+ Blob filename;
104
+ int baseLen;
105
+ int i;
106
+ Manifest m;
103107
104108
blob_zero(&manifest);
105109
zManFile = mprintf("%smanifest", g.zLocalRoot);
106110
content_get(vid, &manifest);
107111
blob_write_to_file(&manifest, zManFile);
108112
free(zManFile);
109113
blob_zero(&hash);
110114
sha1sum_blob(&manifest, &hash);
111
- blob_reset(&manifest);
112115
zManFile = mprintf("%smanifest.uuid", g.zLocalRoot);
113116
blob_append(&hash, "\n", 1);
114117
blob_write_to_file(&hash, zManFile);
115118
free(zManFile);
116119
blob_reset(&hash);
120
+ manifest_parse(&m, &manifest);
121
+ blob_zero(&filename);
122
+ blob_appendf(&filename, "%s/", g.zLocalRoot);
123
+ baseLen = blob_size(&filename);
124
+ for(i=0; i<m.nFile; i++){
125
+ int isExe;
126
+ blob_append(&filename, m.aFile[i].zName, -1);
127
+ isExe = m.aFile[i].zPerm && strstr(m.aFile[i].zPerm, "x");
128
+ file_setexe(blob_str(&filename), isExe);
129
+ blob_resize(&filename, baseLen);
130
+ }
131
+ blob_reset(&filename);
132
+ manifest_clear(&m);
117133
}
118134
119135
/*
120136
** COMMAND: checkout
121137
**
122138
--- src/checkout.c
+++ src/checkout.c
@@ -98,24 +98,40 @@
98 */
99 void manifest_to_disk(int vid){
100 char *zManFile;
101 Blob manifest;
102 Blob hash;
 
 
 
 
103
104 blob_zero(&manifest);
105 zManFile = mprintf("%smanifest", g.zLocalRoot);
106 content_get(vid, &manifest);
107 blob_write_to_file(&manifest, zManFile);
108 free(zManFile);
109 blob_zero(&hash);
110 sha1sum_blob(&manifest, &hash);
111 blob_reset(&manifest);
112 zManFile = mprintf("%smanifest.uuid", g.zLocalRoot);
113 blob_append(&hash, "\n", 1);
114 blob_write_to_file(&hash, zManFile);
115 free(zManFile);
116 blob_reset(&hash);
 
 
 
 
 
 
 
 
 
 
 
 
 
117 }
118
119 /*
120 ** COMMAND: checkout
121 **
122
--- src/checkout.c
+++ src/checkout.c
@@ -98,24 +98,40 @@
98 */
99 void manifest_to_disk(int vid){
100 char *zManFile;
101 Blob manifest;
102 Blob hash;
103 Blob filename;
104 int baseLen;
105 int i;
106 Manifest m;
107
108 blob_zero(&manifest);
109 zManFile = mprintf("%smanifest", g.zLocalRoot);
110 content_get(vid, &manifest);
111 blob_write_to_file(&manifest, zManFile);
112 free(zManFile);
113 blob_zero(&hash);
114 sha1sum_blob(&manifest, &hash);
 
115 zManFile = mprintf("%smanifest.uuid", g.zLocalRoot);
116 blob_append(&hash, "\n", 1);
117 blob_write_to_file(&hash, zManFile);
118 free(zManFile);
119 blob_reset(&hash);
120 manifest_parse(&m, &manifest);
121 blob_zero(&filename);
122 blob_appendf(&filename, "%s/", g.zLocalRoot);
123 baseLen = blob_size(&filename);
124 for(i=0; i<m.nFile; i++){
125 int isExe;
126 blob_append(&filename, m.aFile[i].zName, -1);
127 isExe = m.aFile[i].zPerm && strstr(m.aFile[i].zPerm, "x");
128 file_setexe(blob_str(&filename), isExe);
129 blob_resize(&filename, baseLen);
130 }
131 blob_reset(&filename);
132 manifest_clear(&m);
133 }
134
135 /*
136 ** COMMAND: checkout
137 **
138
+31 -14
--- src/file.c
+++ src/file.c
@@ -63,10 +63,41 @@
6363
if( stat(zFilename, &buf)!=0 ){
6464
return 0;
6565
}
6666
return S_ISREG(buf.st_mode);
6767
}
68
+
69
+/*
70
+** Return TRUE if the named file is an executable. Return false
71
+** for directories, devices, fifos, symlinks, etc.
72
+*/
73
+int file_isexe(const char *zFilename){
74
+ struct stat buf;
75
+ if( stat(zFilename, &buf)!=0 ){
76
+ return 0;
77
+ }
78
+ return ((S_IXUSR|S_IXGRP|S_IXOTH)&buf.st_mode)!=0;
79
+}
80
+
81
+/*
82
+** Set or clear the execute bit on a file.
83
+*/
84
+void file_setexe(const char *zFilename, int onoff){
85
+#ifndef __MINGW32__
86
+ struct stat buf;
87
+ if( stat(zFilename, &buf)!=0 ) return;
88
+ if( onoff ){
89
+ if( (buf.st_mode & 0111)==0 ){
90
+ chmod(zFilename, buf.st_mode | 0111);
91
+ }
92
+ }else{
93
+ if( (buf.st_mode & 0111)!=0 ){
94
+ chmod(zFilename, buf.st_mode & ~0111);
95
+ }
96
+ }
97
+#endif
98
+}
6899
69100
/*
70101
** Return 1 if zFilename is a directory. Return 0 if zFilename
71102
** does not exist. Return 2 if zFilename exists but is something
72103
** other than a directory.
@@ -77,24 +108,10 @@
77108
return 0;
78109
}
79110
return S_ISDIR(buf.st_mode) ? 1 : 2;
80111
}
81112
82
-/*
83
-** Find both the size and modification time of a file. Return
84
-** the number of errors.
85
-*/
86
-int file_size_and_mtime(const char *zFilename, i64 *size, i64 *mtime){
87
- struct stat buf;
88
- if( stat(zFilename, &buf)!=0 ){
89
- return 1;
90
- }
91
- *size = buf.st_size;
92
- *mtime = buf.st_mtime;
93
- return 0;
94
-}
95
-
96113
/*
97114
** Create the directory named in the argument, if it does not already
98115
** exist. If forceFlag is 1, delete any prior non-directory object
99116
** with the same name.
100117
**
101118
--- src/file.c
+++ src/file.c
@@ -63,10 +63,41 @@
63 if( stat(zFilename, &buf)!=0 ){
64 return 0;
65 }
66 return S_ISREG(buf.st_mode);
67 }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
68
69 /*
70 ** Return 1 if zFilename is a directory. Return 0 if zFilename
71 ** does not exist. Return 2 if zFilename exists but is something
72 ** other than a directory.
@@ -77,24 +108,10 @@
77 return 0;
78 }
79 return S_ISDIR(buf.st_mode) ? 1 : 2;
80 }
81
82 /*
83 ** Find both the size and modification time of a file. Return
84 ** the number of errors.
85 */
86 int file_size_and_mtime(const char *zFilename, i64 *size, i64 *mtime){
87 struct stat buf;
88 if( stat(zFilename, &buf)!=0 ){
89 return 1;
90 }
91 *size = buf.st_size;
92 *mtime = buf.st_mtime;
93 return 0;
94 }
95
96 /*
97 ** Create the directory named in the argument, if it does not already
98 ** exist. If forceFlag is 1, delete any prior non-directory object
99 ** with the same name.
100 **
101
--- src/file.c
+++ src/file.c
@@ -63,10 +63,41 @@
63 if( stat(zFilename, &buf)!=0 ){
64 return 0;
65 }
66 return S_ISREG(buf.st_mode);
67 }
68
69 /*
70 ** Return TRUE if the named file is an executable. Return false
71 ** for directories, devices, fifos, symlinks, etc.
72 */
73 int file_isexe(const char *zFilename){
74 struct stat buf;
75 if( stat(zFilename, &buf)!=0 ){
76 return 0;
77 }
78 return ((S_IXUSR|S_IXGRP|S_IXOTH)&buf.st_mode)!=0;
79 }
80
81 /*
82 ** Set or clear the execute bit on a file.
83 */
84 void file_setexe(const char *zFilename, int onoff){
85 #ifndef __MINGW32__
86 struct stat buf;
87 if( stat(zFilename, &buf)!=0 ) return;
88 if( onoff ){
89 if( (buf.st_mode & 0111)==0 ){
90 chmod(zFilename, buf.st_mode | 0111);
91 }
92 }else{
93 if( (buf.st_mode & 0111)!=0 ){
94 chmod(zFilename, buf.st_mode & ~0111);
95 }
96 }
97 #endif
98 }
99
100 /*
101 ** Return 1 if zFilename is a directory. Return 0 if zFilename
102 ** does not exist. Return 2 if zFilename exists but is something
103 ** other than a directory.
@@ -77,24 +108,10 @@
108 return 0;
109 }
110 return S_ISDIR(buf.st_mode) ? 1 : 2;
111 }
112
 
 
 
 
 
 
 
 
 
 
 
 
 
 
113 /*
114 ** Create the directory named in the argument, if it does not already
115 ** exist. If forceFlag is 1, delete any prior non-directory object
116 ** with the same name.
117 **
118
+67 -89
--- src/info.c
+++ src/info.c
@@ -21,11 +21,11 @@
2121
**
2222
*******************************************************************************
2323
**
2424
** This file contains code to implement the "info" command. The
2525
** "info" command gives command-line access to information about
26
-** the current tree, or a particular file or version.
26
+** the current tree, or a particular artifact or baseline.
2727
*/
2828
#include "config.h"
2929
#include "info.h"
3030
#include <assert.h>
3131
@@ -106,11 +106,11 @@
106106
show_common_info(rid, "uuid:", 1);
107107
}
108108
}
109109
110110
/*
111
-** Show information about descendents of a version. Do this recursively
111
+** Show information about descendents of a baseline. Do this recursively
112112
** to a depth of N. Return true if descendents are shown and false if not.
113113
*/
114114
static int showDescendents(int pid, int depth, const char *zTitle){
115115
Stmt q;
116116
int cnt = 0;
@@ -158,11 +158,11 @@
158158
}
159159
return cnt;
160160
}
161161
162162
/*
163
-** Show information about ancestors of a version. Do this recursively
163
+** Show information about ancestors of a baseline. Do this recursively
164164
** to a depth of N. Return true if ancestors are shown and false if not.
165165
*/
166166
static void showAncestors(int pid, int depth, const char *zTitle){
167167
Stmt q;
168168
int cnt = 0;
@@ -203,11 +203,11 @@
203203
}
204204
}
205205
206206
207207
/*
208
-** Show information about versions mentioned in the "leaves" table.
208
+** Show information about baselines mentioned in the "leaves" table.
209209
*/
210210
static void showLeaves(void){
211211
Stmt q;
212212
int cnt = 0;
213213
db_prepare(&q,
@@ -240,20 +240,20 @@
240240
}
241241
242242
/*
243243
** Show information about all tags on a given node.
244244
*/
245
-static void showTags(int rid){
245
+static void showTags(int rid, const char *zNotGlob){
246246
Stmt q;
247247
int cnt = 0;
248248
db_prepare(&q,
249249
"SELECT tag.tagid, tagname, srcid, blob.uuid, value,"
250250
" datetime(tagxref.mtime,'localtime'), tagtype"
251251
" FROM tagxref JOIN tag ON tagxref.tagid=tag.tagid"
252252
" LEFT JOIN blob ON blob.rid=tagxref.srcid"
253
- " WHERE tagxref.rid=%d"
254
- " ORDER BY tagname", rid
253
+ " WHERE tagxref.rid=%d AND tagname NOT GLOB '%s'"
254
+ " ORDER BY tagname", rid, zNotGlob
255255
);
256256
while( db_step(&q)==SQLITE_ROW ){
257257
const char *zTagname = db_column_text(&q, 1);
258258
int srcid = db_column_int(&q, 2);
259259
const char *zUuid = db_column_text(&q, 3);
@@ -291,11 +291,11 @@
291291
292292
/*
293293
** WEBPAGE: vinfo
294294
** URL: /vinfo?name=RID|UUID
295295
**
296
-** Return information about a version.
296
+** Return information about a baseline
297297
*/
298298
void vinfo_page(void){
299299
Stmt q;
300300
int rid;
301301
int isLeaf;
@@ -317,11 +317,11 @@
317317
" AND event.objid=%d",
318318
rid, rid
319319
);
320320
if( db_step(&q)==SQLITE_ROW ){
321321
const char *zUuid = db_column_text(&q, 0);
322
- char *zTitle = mprintf("Version: [%.10s]", zUuid);
322
+ char *zTitle = mprintf("Baseline [%.10s]", zUuid);
323323
style_header(zTitle);
324324
free(zTitle);
325325
/*@ <h2>Version %s(zUuid)</h2>*/
326326
@ <div class="section">Overview</div>
327327
@ <p><table class="label-value">
@@ -335,19 +335,19 @@
335335
@ </td></tr>
336336
@ <tr><th>Commands:</th>
337337
@ <td>
338338
@ <a href="%s(g.zBaseURL)/vdiff/%d(rid)">diff</a>
339339
@ | <a href="%s(g.zBaseURL)/zip/%s(zUuid).zip">ZIP archive</a>
340
- @ | <a href="%s(g.zBaseURL)/fview/%d(rid)">manifest</a>
340
+ @ | <a href="%s(g.zBaseURL)/artifact/%d(rid)">manifest</a>
341341
@ </td>
342342
@ </tr>
343343
@ </table></p>
344344
}else{
345
- style_header("Version Information");
345
+ style_header("Baseline Information");
346346
}
347347
db_finalize(&q);
348
- showTags(rid);
348
+ showTags(rid, "");
349349
@ <div class="section">Changes</div>
350350
@ <ul>
351351
db_prepare(&q,
352352
"SELECT name, pid, fid"
353353
" FROM mlink, filename"
@@ -422,20 +422,37 @@
422422
}
423423
@ <tr><th>Original&nbsp;User:</th><td>%s(db_column_text(&q, 3))</td></tr>
424424
@ <tr><th>Commands:</th>
425425
@ <td>
426426
/* @ <a href="%s(g.zBaseURL)/wdiff/%d(rid)">diff</a> | */
427
- @ <a href="%s(g.zBaseURL)/whistory?page=%t(zName)">history</a>
428
- @ | <a href="%s(g.zBaseURL)/fview/%d(rid)">raw-text</a>
427
+ @ <a href="%s(g.zBaseURL)/whistory?name=%t(zName)">history</a>
428
+ @ | <a href="%s(g.zBaseURL)/artifact/%d(rid)">raw-text</a>
429429
@ </td>
430430
@ </tr>
431431
@ </table></p>
432432
}else{
433433
style_header("Wiki Information");
434
+ rid = 0;
434435
}
435436
db_finalize(&q);
436
- showTags(rid);
437
+ showTags(rid, "wiki-*");
438
+ if( rid ){
439
+ Blob content;
440
+ Manifest m;
441
+ memset(&m, 0, sizeof(m));
442
+ blob_zero(&m.content);
443
+ content_get(rid, &content);
444
+ manifest_parse(&m, &content);
445
+ if( m.type==CFTYPE_WIKI ){
446
+ Blob wiki;
447
+ blob_init(&wiki, m.zWiki, -1);
448
+ @ <div class="section">Content</div>
449
+ wiki_convert(&wiki, 0, 0);
450
+ blob_reset(&wiki);
451
+ }
452
+ manifest_clear(&m);
453
+ }
437454
style_footer();
438455
}
439456
440457
/*
441458
** WEBPAGE: finfo
@@ -499,11 +516,11 @@
499516
@ <td width="20"></td>
500517
@ <td valign="top" align="left">
501518
hyperlink_to_uuid(zVers);
502519
@ %h(zCom) (By: %h(zUser))
503520
@ Id: %s(zUuid)/%d(frid)
504
- @ <a href="%s(g.zBaseURL)/fview/%d(frid)">[view]</a>
521
+ @ <a href="%s(g.zBaseURL)/artifact/%d(frid)">[view]</a>
505522
if( fpid ){
506523
@ <a href="%s(g.zBaseURL)/fdiff?v1=%d(fpid)&amp;v2=%d(frid)">[diff]</a>
507524
}
508525
@ <a href="%s(g.zBaseURL)/annotate?mid=%d(mid)&amp;fnid=%d(fnid)">
509526
@ [annotate]</a>
@@ -541,11 +558,11 @@
541558
Stmt q;
542559
char *zUuid;
543560
544561
login_check_credentials();
545562
if( !g.okHistory ){ login_needed(); return; }
546
- style_header("Version Diff");
563
+ style_header("Baseline Changes");
547564
548565
rid = name_to_rid(PD("name",""));
549566
if( rid==0 ){
550567
cgi_redirect("index");
551568
}
@@ -556,11 +573,11 @@
556573
" AND filename.fnid=mlink.fnid"
557574
" ORDER BY name",
558575
rid
559576
);
560577
zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", rid);
561
- @ <h2>All Changes In Version
578
+ @ <h2>All Changes In Baseline
562579
hyperlink_to_uuid(zUuid);
563580
@ </h2>
564581
while( db_step(&q)==SQLITE_ROW ){
565582
int pid = db_column_int(&q,0);
566583
int fid = db_column_int(&q,1);
@@ -580,11 +597,11 @@
580597
**
581598
** If the object is a file then mention:
582599
**
583600
** * It's uuid
584601
** * All its filenames
585
-** * The versions it was checked-in on, with times and users
602
+** * The baselines it was checked-in on, with times and users
586603
**
587604
** If the object is a manifest, then mention:
588605
**
589606
** * It's uuid
590607
** * date of check-in
@@ -644,11 +661,11 @@
644661
cnt++;
645662
}
646663
db_finalize(&q);
647664
if( nWiki==0 ){
648665
db_prepare(&q,
649
- "SELECT datetime(mtime), user, comment, uuid"
666
+ "SELECT datetime(mtime), user, comment, uuid, type"
650667
" FROM event, blob"
651668
" WHERE event.objid=%d"
652669
" AND blob.rid=%d",
653670
rid, rid
654671
);
@@ -655,11 +672,20 @@
655672
while( db_step(&q)==SQLITE_ROW ){
656673
const char *zDate = db_column_text(&q, 0);
657674
const char *zUuid = db_column_text(&q, 3);
658675
const char *zUser = db_column_text(&q, 1);
659676
const char *zCom = db_column_text(&q, 2);
660
- @ Manifest of version
677
+ const char *zType = db_column_text(&q, 4);
678
+ if( zType[0]=='w' ){
679
+ @ Wiki edit
680
+ }else if( zType[0]=='t' ){
681
+ @ Ticket change
682
+ }else if( zType[0]=='c' ){
683
+ @ Manifest of baseline
684
+ }else{
685
+ @ Control file referencing
686
+ }
661687
hyperlink_to_uuid(zUuid);
662688
@ %w(zCom) by %h(zUser) on %s(zDate)
663689
cnt++;
664690
}
665691
db_finalize(&q);
@@ -666,11 +692,11 @@
666692
}
667693
if( cnt==0 ){
668694
char *zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", rid);
669695
@ Control file %s(zUuid).
670696
}else if( linkToView ){
671
- @ <a href="%s(g.zBaseURL)/fview/%d(rid)">[view]</a>
697
+ @ <a href="%s(g.zBaseURL)/artifact/%d(rid)">[view]</a>
672698
}
673699
}
674700
675701
/*
676702
** WEBPAGE: fdiff
@@ -707,17 +733,17 @@
707733
blob_reset(&diff);
708734
style_footer();
709735
}
710736
711737
/*
712
-** WEBPAGE: fview
713
-** URL: /fview?name=UUID
738
+** WEBPAGE: artifact
739
+** URL: /artifact?name=UUID
714740
**
715741
** Show the complete content of a file identified by UUID
716742
** as preformatted text.
717743
*/
718
-void fview_page(void){
744
+void artifact_page(void){
719745
int rid;
720746
Blob content;
721747
722748
rid = name_to_rid(PD("name","0"));
723749
login_check_credentials();
@@ -731,11 +757,11 @@
731757
if( db_exists("SELECT 1 FROM plink WHERE cid=%d", rid) ){
732758
vinfo_page();
733759
return;
734760
}
735761
}
736
- style_header("File Content");
762
+ style_header("Artifact Content");
737763
@ <h2>Content Of:</h2>
738764
@ <blockquote>
739765
object_description(rid, 0);
740766
@ </blockquote>
741767
@ <hr>
@@ -750,84 +776,36 @@
750776
/*
751777
** WEBPAGE: info
752778
** URL: info/UUID
753779
**
754780
** The argument is a UUID which might be a baseline or a file or
755
-** a ticket or something else. It might also be a wiki page name.
756
-** Figure out what the UUID is an jump to it. If there is ambiguity,
757
-** draw a page and let the user select the interpretation.
781
+** a ticket changes or a wiki editor or something else.
782
+**
783
+** Figure out what the UUID is and jump to it.
758784
*/
759785
void info_page(void){
760786
const char *zName;
761
- int rc = 0, nName, cnt;
762
- Stmt q;
787
+ int rid, nName;
763788
764789
zName = P("name");
765790
if( zName==0 ) cgi_redirect("index");
766791
nName = strlen(zName);
767792
if( nName<4 || nName>UUID_SIZE || !validate16(zName, nName) ){
768793
cgi_redirect("index");
769794
}
770
- db_multi_exec(
771
- "CREATE TEMP TABLE refs(type,link);"
772
- "INSERT INTO refs "
773
- " SELECT 'f', rid FROM blob WHERE uuid GLOB '%s*'"
774
- " UNION ALL"
775
- " SELECT 'w', substr(tagname,6) FROM tag"
776
- " WHERE tagname='wiki-%q'"
777
- /*" UNION ALL"
778
- " SELECT 't', tkt_uuid FROM ticket WHERE tkt_uuid GLOB '%s*';"*/,
779
- zName, zName, zName
780
- );
781
- cnt = db_int(0, "SELECT count(*) FROM refs");
782
- if( cnt==0 ){
795
+ rid = db_int(0, "SELECT rid FROM blob WHERE uuid GLOB '%s*'");
796
+ if( rid==0 ){
783797
style_header("Broken Link");
784798
@ <p>No such object: %h(zName)</p>
785799
style_footer();
786800
return;
787801
}
788
- db_prepare(&q, "SELECT type, link FROM refs");
789
- db_step(&q);
790
- if( cnt==1 ){
791
- int type = *db_column_text(&q, 0);
792
- int rid = db_column_int(&q, 1);
793
- db_finalize(&q);
794
- if( type=='w' ){
795
- wiki_page();
796
- }else if( type=='t' ){
797
- tktview_page();
798
- }else{
799
- cgi_replace_parameter("name", mprintf("%d", rid));
800
- if( db_exists("SELECT 1 FROM mlink WHERE mid=%d", rid) ){
801
- vinfo_page();
802
- }else{
803
- finfo_page();
804
- }
805
- }
806
- return;
807
- }
808
- /* Multiple objects */
809
- style_header("Ambiguous Link");
810
- @ <h2>Ambiguous Link: %h(zName)</h2>
811
- @ <ul>
812
- while( rc==SQLITE_ROW ){
813
- int type = *db_column_text(&q, 0);
814
- if( type=='f' ){
815
- @ <li><p>
816
- object_description(db_column_int(&q, 1), 1);
817
- @ </p></li>
818
- }else if( type=='w' ){
819
- @ <li><p>
820
- @ Wiki page <a href="%s(g.zBaseURL)/wiki?name=%s(zName)">%s(zName)</a>.
821
- @ </li><p>
822
- }else if( type=='t' ){
823
- const char *zUuid = db_column_text(&q, 1);
824
- @ <li><p>
825
- @ Ticket <a href="%s(g.zBaseURL)/tktview?name=%s(zUuid)">%s(zUuid)</a>.
826
- @ </li><p>
827
- }
828
- rc = db_step(&q);
829
- }
830
- @ </ul>
831
- style_footer();
832
- db_finalize(&q);
802
+ if( db_exists("SELECT 1 FROM mlink WHERE mid=%d", rid) ){
803
+ vinfo_page();
804
+ }else
805
+ if( db_exists("SELECT 1 FROM mlink WHERE fid=%d", rid) ){
806
+ finfo_page();
807
+ }else
808
+ {
809
+ artifact_page();
810
+ }
833811
}
834812
--- src/info.c
+++ src/info.c
@@ -21,11 +21,11 @@
21 **
22 *******************************************************************************
23 **
24 ** This file contains code to implement the "info" command. The
25 ** "info" command gives command-line access to information about
26 ** the current tree, or a particular file or version.
27 */
28 #include "config.h"
29 #include "info.h"
30 #include <assert.h>
31
@@ -106,11 +106,11 @@
106 show_common_info(rid, "uuid:", 1);
107 }
108 }
109
110 /*
111 ** Show information about descendents of a version. Do this recursively
112 ** to a depth of N. Return true if descendents are shown and false if not.
113 */
114 static int showDescendents(int pid, int depth, const char *zTitle){
115 Stmt q;
116 int cnt = 0;
@@ -158,11 +158,11 @@
158 }
159 return cnt;
160 }
161
162 /*
163 ** Show information about ancestors of a version. Do this recursively
164 ** to a depth of N. Return true if ancestors are shown and false if not.
165 */
166 static void showAncestors(int pid, int depth, const char *zTitle){
167 Stmt q;
168 int cnt = 0;
@@ -203,11 +203,11 @@
203 }
204 }
205
206
207 /*
208 ** Show information about versions mentioned in the "leaves" table.
209 */
210 static void showLeaves(void){
211 Stmt q;
212 int cnt = 0;
213 db_prepare(&q,
@@ -240,20 +240,20 @@
240 }
241
242 /*
243 ** Show information about all tags on a given node.
244 */
245 static void showTags(int rid){
246 Stmt q;
247 int cnt = 0;
248 db_prepare(&q,
249 "SELECT tag.tagid, tagname, srcid, blob.uuid, value,"
250 " datetime(tagxref.mtime,'localtime'), tagtype"
251 " FROM tagxref JOIN tag ON tagxref.tagid=tag.tagid"
252 " LEFT JOIN blob ON blob.rid=tagxref.srcid"
253 " WHERE tagxref.rid=%d"
254 " ORDER BY tagname", rid
255 );
256 while( db_step(&q)==SQLITE_ROW ){
257 const char *zTagname = db_column_text(&q, 1);
258 int srcid = db_column_int(&q, 2);
259 const char *zUuid = db_column_text(&q, 3);
@@ -291,11 +291,11 @@
291
292 /*
293 ** WEBPAGE: vinfo
294 ** URL: /vinfo?name=RID|UUID
295 **
296 ** Return information about a version.
297 */
298 void vinfo_page(void){
299 Stmt q;
300 int rid;
301 int isLeaf;
@@ -317,11 +317,11 @@
317 " AND event.objid=%d",
318 rid, rid
319 );
320 if( db_step(&q)==SQLITE_ROW ){
321 const char *zUuid = db_column_text(&q, 0);
322 char *zTitle = mprintf("Version: [%.10s]", zUuid);
323 style_header(zTitle);
324 free(zTitle);
325 /*@ <h2>Version %s(zUuid)</h2>*/
326 @ <div class="section">Overview</div>
327 @ <p><table class="label-value">
@@ -335,19 +335,19 @@
335 @ </td></tr>
336 @ <tr><th>Commands:</th>
337 @ <td>
338 @ <a href="%s(g.zBaseURL)/vdiff/%d(rid)">diff</a>
339 @ | <a href="%s(g.zBaseURL)/zip/%s(zUuid).zip">ZIP archive</a>
340 @ | <a href="%s(g.zBaseURL)/fview/%d(rid)">manifest</a>
341 @ </td>
342 @ </tr>
343 @ </table></p>
344 }else{
345 style_header("Version Information");
346 }
347 db_finalize(&q);
348 showTags(rid);
349 @ <div class="section">Changes</div>
350 @ <ul>
351 db_prepare(&q,
352 "SELECT name, pid, fid"
353 " FROM mlink, filename"
@@ -422,20 +422,37 @@
422 }
423 @ <tr><th>Original&nbsp;User:</th><td>%s(db_column_text(&q, 3))</td></tr>
424 @ <tr><th>Commands:</th>
425 @ <td>
426 /* @ <a href="%s(g.zBaseURL)/wdiff/%d(rid)">diff</a> | */
427 @ <a href="%s(g.zBaseURL)/whistory?page=%t(zName)">history</a>
428 @ | <a href="%s(g.zBaseURL)/fview/%d(rid)">raw-text</a>
429 @ </td>
430 @ </tr>
431 @ </table></p>
432 }else{
433 style_header("Wiki Information");
 
434 }
435 db_finalize(&q);
436 showTags(rid);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
437 style_footer();
438 }
439
440 /*
441 ** WEBPAGE: finfo
@@ -499,11 +516,11 @@
499 @ <td width="20"></td>
500 @ <td valign="top" align="left">
501 hyperlink_to_uuid(zVers);
502 @ %h(zCom) (By: %h(zUser))
503 @ Id: %s(zUuid)/%d(frid)
504 @ <a href="%s(g.zBaseURL)/fview/%d(frid)">[view]</a>
505 if( fpid ){
506 @ <a href="%s(g.zBaseURL)/fdiff?v1=%d(fpid)&amp;v2=%d(frid)">[diff]</a>
507 }
508 @ <a href="%s(g.zBaseURL)/annotate?mid=%d(mid)&amp;fnid=%d(fnid)">
509 @ [annotate]</a>
@@ -541,11 +558,11 @@
541 Stmt q;
542 char *zUuid;
543
544 login_check_credentials();
545 if( !g.okHistory ){ login_needed(); return; }
546 style_header("Version Diff");
547
548 rid = name_to_rid(PD("name",""));
549 if( rid==0 ){
550 cgi_redirect("index");
551 }
@@ -556,11 +573,11 @@
556 " AND filename.fnid=mlink.fnid"
557 " ORDER BY name",
558 rid
559 );
560 zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", rid);
561 @ <h2>All Changes In Version
562 hyperlink_to_uuid(zUuid);
563 @ </h2>
564 while( db_step(&q)==SQLITE_ROW ){
565 int pid = db_column_int(&q,0);
566 int fid = db_column_int(&q,1);
@@ -580,11 +597,11 @@
580 **
581 ** If the object is a file then mention:
582 **
583 ** * It's uuid
584 ** * All its filenames
585 ** * The versions it was checked-in on, with times and users
586 **
587 ** If the object is a manifest, then mention:
588 **
589 ** * It's uuid
590 ** * date of check-in
@@ -644,11 +661,11 @@
644 cnt++;
645 }
646 db_finalize(&q);
647 if( nWiki==0 ){
648 db_prepare(&q,
649 "SELECT datetime(mtime), user, comment, uuid"
650 " FROM event, blob"
651 " WHERE event.objid=%d"
652 " AND blob.rid=%d",
653 rid, rid
654 );
@@ -655,11 +672,20 @@
655 while( db_step(&q)==SQLITE_ROW ){
656 const char *zDate = db_column_text(&q, 0);
657 const char *zUuid = db_column_text(&q, 3);
658 const char *zUser = db_column_text(&q, 1);
659 const char *zCom = db_column_text(&q, 2);
660 @ Manifest of version
 
 
 
 
 
 
 
 
 
661 hyperlink_to_uuid(zUuid);
662 @ %w(zCom) by %h(zUser) on %s(zDate)
663 cnt++;
664 }
665 db_finalize(&q);
@@ -666,11 +692,11 @@
666 }
667 if( cnt==0 ){
668 char *zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", rid);
669 @ Control file %s(zUuid).
670 }else if( linkToView ){
671 @ <a href="%s(g.zBaseURL)/fview/%d(rid)">[view]</a>
672 }
673 }
674
675 /*
676 ** WEBPAGE: fdiff
@@ -707,17 +733,17 @@
707 blob_reset(&diff);
708 style_footer();
709 }
710
711 /*
712 ** WEBPAGE: fview
713 ** URL: /fview?name=UUID
714 **
715 ** Show the complete content of a file identified by UUID
716 ** as preformatted text.
717 */
718 void fview_page(void){
719 int rid;
720 Blob content;
721
722 rid = name_to_rid(PD("name","0"));
723 login_check_credentials();
@@ -731,11 +757,11 @@
731 if( db_exists("SELECT 1 FROM plink WHERE cid=%d", rid) ){
732 vinfo_page();
733 return;
734 }
735 }
736 style_header("File Content");
737 @ <h2>Content Of:</h2>
738 @ <blockquote>
739 object_description(rid, 0);
740 @ </blockquote>
741 @ <hr>
@@ -750,84 +776,36 @@
750 /*
751 ** WEBPAGE: info
752 ** URL: info/UUID
753 **
754 ** The argument is a UUID which might be a baseline or a file or
755 ** a ticket or something else. It might also be a wiki page name.
756 ** Figure out what the UUID is an jump to it. If there is ambiguity,
757 ** draw a page and let the user select the interpretation.
758 */
759 void info_page(void){
760 const char *zName;
761 int rc = 0, nName, cnt;
762 Stmt q;
763
764 zName = P("name");
765 if( zName==0 ) cgi_redirect("index");
766 nName = strlen(zName);
767 if( nName<4 || nName>UUID_SIZE || !validate16(zName, nName) ){
768 cgi_redirect("index");
769 }
770 db_multi_exec(
771 "CREATE TEMP TABLE refs(type,link);"
772 "INSERT INTO refs "
773 " SELECT 'f', rid FROM blob WHERE uuid GLOB '%s*'"
774 " UNION ALL"
775 " SELECT 'w', substr(tagname,6) FROM tag"
776 " WHERE tagname='wiki-%q'"
777 /*" UNION ALL"
778 " SELECT 't', tkt_uuid FROM ticket WHERE tkt_uuid GLOB '%s*';"*/,
779 zName, zName, zName
780 );
781 cnt = db_int(0, "SELECT count(*) FROM refs");
782 if( cnt==0 ){
783 style_header("Broken Link");
784 @ <p>No such object: %h(zName)</p>
785 style_footer();
786 return;
787 }
788 db_prepare(&q, "SELECT type, link FROM refs");
789 db_step(&q);
790 if( cnt==1 ){
791 int type = *db_column_text(&q, 0);
792 int rid = db_column_int(&q, 1);
793 db_finalize(&q);
794 if( type=='w' ){
795 wiki_page();
796 }else if( type=='t' ){
797 tktview_page();
798 }else{
799 cgi_replace_parameter("name", mprintf("%d", rid));
800 if( db_exists("SELECT 1 FROM mlink WHERE mid=%d", rid) ){
801 vinfo_page();
802 }else{
803 finfo_page();
804 }
805 }
806 return;
807 }
808 /* Multiple objects */
809 style_header("Ambiguous Link");
810 @ <h2>Ambiguous Link: %h(zName)</h2>
811 @ <ul>
812 while( rc==SQLITE_ROW ){
813 int type = *db_column_text(&q, 0);
814 if( type=='f' ){
815 @ <li><p>
816 object_description(db_column_int(&q, 1), 1);
817 @ </p></li>
818 }else if( type=='w' ){
819 @ <li><p>
820 @ Wiki page <a href="%s(g.zBaseURL)/wiki?name=%s(zName)">%s(zName)</a>.
821 @ </li><p>
822 }else if( type=='t' ){
823 const char *zUuid = db_column_text(&q, 1);
824 @ <li><p>
825 @ Ticket <a href="%s(g.zBaseURL)/tktview?name=%s(zUuid)">%s(zUuid)</a>.
826 @ </li><p>
827 }
828 rc = db_step(&q);
829 }
830 @ </ul>
831 style_footer();
832 db_finalize(&q);
833 }
834
--- src/info.c
+++ src/info.c
@@ -21,11 +21,11 @@
21 **
22 *******************************************************************************
23 **
24 ** This file contains code to implement the "info" command. The
25 ** "info" command gives command-line access to information about
26 ** the current tree, or a particular artifact or baseline.
27 */
28 #include "config.h"
29 #include "info.h"
30 #include <assert.h>
31
@@ -106,11 +106,11 @@
106 show_common_info(rid, "uuid:", 1);
107 }
108 }
109
110 /*
111 ** Show information about descendents of a baseline. Do this recursively
112 ** to a depth of N. Return true if descendents are shown and false if not.
113 */
114 static int showDescendents(int pid, int depth, const char *zTitle){
115 Stmt q;
116 int cnt = 0;
@@ -158,11 +158,11 @@
158 }
159 return cnt;
160 }
161
162 /*
163 ** Show information about ancestors of a baseline. Do this recursively
164 ** to a depth of N. Return true if ancestors are shown and false if not.
165 */
166 static void showAncestors(int pid, int depth, const char *zTitle){
167 Stmt q;
168 int cnt = 0;
@@ -203,11 +203,11 @@
203 }
204 }
205
206
207 /*
208 ** Show information about baselines mentioned in the "leaves" table.
209 */
210 static void showLeaves(void){
211 Stmt q;
212 int cnt = 0;
213 db_prepare(&q,
@@ -240,20 +240,20 @@
240 }
241
242 /*
243 ** Show information about all tags on a given node.
244 */
245 static void showTags(int rid, const char *zNotGlob){
246 Stmt q;
247 int cnt = 0;
248 db_prepare(&q,
249 "SELECT tag.tagid, tagname, srcid, blob.uuid, value,"
250 " datetime(tagxref.mtime,'localtime'), tagtype"
251 " FROM tagxref JOIN tag ON tagxref.tagid=tag.tagid"
252 " LEFT JOIN blob ON blob.rid=tagxref.srcid"
253 " WHERE tagxref.rid=%d AND tagname NOT GLOB '%s'"
254 " ORDER BY tagname", rid, zNotGlob
255 );
256 while( db_step(&q)==SQLITE_ROW ){
257 const char *zTagname = db_column_text(&q, 1);
258 int srcid = db_column_int(&q, 2);
259 const char *zUuid = db_column_text(&q, 3);
@@ -291,11 +291,11 @@
291
292 /*
293 ** WEBPAGE: vinfo
294 ** URL: /vinfo?name=RID|UUID
295 **
296 ** Return information about a baseline
297 */
298 void vinfo_page(void){
299 Stmt q;
300 int rid;
301 int isLeaf;
@@ -317,11 +317,11 @@
317 " AND event.objid=%d",
318 rid, rid
319 );
320 if( db_step(&q)==SQLITE_ROW ){
321 const char *zUuid = db_column_text(&q, 0);
322 char *zTitle = mprintf("Baseline [%.10s]", zUuid);
323 style_header(zTitle);
324 free(zTitle);
325 /*@ <h2>Version %s(zUuid)</h2>*/
326 @ <div class="section">Overview</div>
327 @ <p><table class="label-value">
@@ -335,19 +335,19 @@
335 @ </td></tr>
336 @ <tr><th>Commands:</th>
337 @ <td>
338 @ <a href="%s(g.zBaseURL)/vdiff/%d(rid)">diff</a>
339 @ | <a href="%s(g.zBaseURL)/zip/%s(zUuid).zip">ZIP archive</a>
340 @ | <a href="%s(g.zBaseURL)/artifact/%d(rid)">manifest</a>
341 @ </td>
342 @ </tr>
343 @ </table></p>
344 }else{
345 style_header("Baseline Information");
346 }
347 db_finalize(&q);
348 showTags(rid, "");
349 @ <div class="section">Changes</div>
350 @ <ul>
351 db_prepare(&q,
352 "SELECT name, pid, fid"
353 " FROM mlink, filename"
@@ -422,20 +422,37 @@
422 }
423 @ <tr><th>Original&nbsp;User:</th><td>%s(db_column_text(&q, 3))</td></tr>
424 @ <tr><th>Commands:</th>
425 @ <td>
426 /* @ <a href="%s(g.zBaseURL)/wdiff/%d(rid)">diff</a> | */
427 @ <a href="%s(g.zBaseURL)/whistory?name=%t(zName)">history</a>
428 @ | <a href="%s(g.zBaseURL)/artifact/%d(rid)">raw-text</a>
429 @ </td>
430 @ </tr>
431 @ </table></p>
432 }else{
433 style_header("Wiki Information");
434 rid = 0;
435 }
436 db_finalize(&q);
437 showTags(rid, "wiki-*");
438 if( rid ){
439 Blob content;
440 Manifest m;
441 memset(&m, 0, sizeof(m));
442 blob_zero(&m.content);
443 content_get(rid, &content);
444 manifest_parse(&m, &content);
445 if( m.type==CFTYPE_WIKI ){
446 Blob wiki;
447 blob_init(&wiki, m.zWiki, -1);
448 @ <div class="section">Content</div>
449 wiki_convert(&wiki, 0, 0);
450 blob_reset(&wiki);
451 }
452 manifest_clear(&m);
453 }
454 style_footer();
455 }
456
457 /*
458 ** WEBPAGE: finfo
@@ -499,11 +516,11 @@
516 @ <td width="20"></td>
517 @ <td valign="top" align="left">
518 hyperlink_to_uuid(zVers);
519 @ %h(zCom) (By: %h(zUser))
520 @ Id: %s(zUuid)/%d(frid)
521 @ <a href="%s(g.zBaseURL)/artifact/%d(frid)">[view]</a>
522 if( fpid ){
523 @ <a href="%s(g.zBaseURL)/fdiff?v1=%d(fpid)&amp;v2=%d(frid)">[diff]</a>
524 }
525 @ <a href="%s(g.zBaseURL)/annotate?mid=%d(mid)&amp;fnid=%d(fnid)">
526 @ [annotate]</a>
@@ -541,11 +558,11 @@
558 Stmt q;
559 char *zUuid;
560
561 login_check_credentials();
562 if( !g.okHistory ){ login_needed(); return; }
563 style_header("Baseline Changes");
564
565 rid = name_to_rid(PD("name",""));
566 if( rid==0 ){
567 cgi_redirect("index");
568 }
@@ -556,11 +573,11 @@
573 " AND filename.fnid=mlink.fnid"
574 " ORDER BY name",
575 rid
576 );
577 zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", rid);
578 @ <h2>All Changes In Baseline
579 hyperlink_to_uuid(zUuid);
580 @ </h2>
581 while( db_step(&q)==SQLITE_ROW ){
582 int pid = db_column_int(&q,0);
583 int fid = db_column_int(&q,1);
@@ -580,11 +597,11 @@
597 **
598 ** If the object is a file then mention:
599 **
600 ** * It's uuid
601 ** * All its filenames
602 ** * The baselines it was checked-in on, with times and users
603 **
604 ** If the object is a manifest, then mention:
605 **
606 ** * It's uuid
607 ** * date of check-in
@@ -644,11 +661,11 @@
661 cnt++;
662 }
663 db_finalize(&q);
664 if( nWiki==0 ){
665 db_prepare(&q,
666 "SELECT datetime(mtime), user, comment, uuid, type"
667 " FROM event, blob"
668 " WHERE event.objid=%d"
669 " AND blob.rid=%d",
670 rid, rid
671 );
@@ -655,11 +672,20 @@
672 while( db_step(&q)==SQLITE_ROW ){
673 const char *zDate = db_column_text(&q, 0);
674 const char *zUuid = db_column_text(&q, 3);
675 const char *zUser = db_column_text(&q, 1);
676 const char *zCom = db_column_text(&q, 2);
677 const char *zType = db_column_text(&q, 4);
678 if( zType[0]=='w' ){
679 @ Wiki edit
680 }else if( zType[0]=='t' ){
681 @ Ticket change
682 }else if( zType[0]=='c' ){
683 @ Manifest of baseline
684 }else{
685 @ Control file referencing
686 }
687 hyperlink_to_uuid(zUuid);
688 @ %w(zCom) by %h(zUser) on %s(zDate)
689 cnt++;
690 }
691 db_finalize(&q);
@@ -666,11 +692,11 @@
692 }
693 if( cnt==0 ){
694 char *zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", rid);
695 @ Control file %s(zUuid).
696 }else if( linkToView ){
697 @ <a href="%s(g.zBaseURL)/artifact/%d(rid)">[view]</a>
698 }
699 }
700
701 /*
702 ** WEBPAGE: fdiff
@@ -707,17 +733,17 @@
733 blob_reset(&diff);
734 style_footer();
735 }
736
737 /*
738 ** WEBPAGE: artifact
739 ** URL: /artifact?name=UUID
740 **
741 ** Show the complete content of a file identified by UUID
742 ** as preformatted text.
743 */
744 void artifact_page(void){
745 int rid;
746 Blob content;
747
748 rid = name_to_rid(PD("name","0"));
749 login_check_credentials();
@@ -731,11 +757,11 @@
757 if( db_exists("SELECT 1 FROM plink WHERE cid=%d", rid) ){
758 vinfo_page();
759 return;
760 }
761 }
762 style_header("Artifact Content");
763 @ <h2>Content Of:</h2>
764 @ <blockquote>
765 object_description(rid, 0);
766 @ </blockquote>
767 @ <hr>
@@ -750,84 +776,36 @@
776 /*
777 ** WEBPAGE: info
778 ** URL: info/UUID
779 **
780 ** The argument is a UUID which might be a baseline or a file or
781 ** a ticket changes or a wiki editor or something else.
782 **
783 ** Figure out what the UUID is and jump to it.
784 */
785 void info_page(void){
786 const char *zName;
787 int rid, nName;
 
788
789 zName = P("name");
790 if( zName==0 ) cgi_redirect("index");
791 nName = strlen(zName);
792 if( nName<4 || nName>UUID_SIZE || !validate16(zName, nName) ){
793 cgi_redirect("index");
794 }
795 rid = db_int(0, "SELECT rid FROM blob WHERE uuid GLOB '%s*'");
796 if( rid==0 ){
 
 
 
 
 
 
 
 
 
 
 
797 style_header("Broken Link");
798 @ <p>No such object: %h(zName)</p>
799 style_footer();
800 return;
801 }
802 if( db_exists("SELECT 1 FROM mlink WHERE mid=%d", rid) ){
803 vinfo_page();
804 }else
805 if( db_exists("SELECT 1 FROM mlink WHERE fid=%d", rid) ){
806 finfo_page();
807 }else
808 {
809 artifact_page();
810 }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
811 }
812
+1
--- src/main.c
+++ src/main.c
@@ -65,10 +65,11 @@
6565
const char *zContentType; /* The content type of the input HTTP request */
6666
int iErrPriority; /* Priority of current error message */
6767
char *zErrMsg; /* Text of an error message */
6868
Blob cgiIn; /* Input to an xfer www method */
6969
int cgiPanic; /* Write error messages to CGI */
70
+ Th_Interp *interp; /* The TH1 interpreter */
7071
7172
int *aCommitFile;
7273
7374
int urlIsFile; /* True if a "file:" url */
7475
char *urlName; /* Hostname for http: or filename for file: */
7576
--- src/main.c
+++ src/main.c
@@ -65,10 +65,11 @@
65 const char *zContentType; /* The content type of the input HTTP request */
66 int iErrPriority; /* Priority of current error message */
67 char *zErrMsg; /* Text of an error message */
68 Blob cgiIn; /* Input to an xfer www method */
69 int cgiPanic; /* Write error messages to CGI */
 
70
71 int *aCommitFile;
72
73 int urlIsFile; /* True if a "file:" url */
74 char *urlName; /* Hostname for http: or filename for file: */
75
--- src/main.c
+++ src/main.c
@@ -65,10 +65,11 @@
65 const char *zContentType; /* The content type of the input HTTP request */
66 int iErrPriority; /* Priority of current error message */
67 char *zErrMsg; /* Text of an error message */
68 Blob cgiIn; /* Input to an xfer www method */
69 int cgiPanic; /* Write error messages to CGI */
70 Th_Interp *interp; /* The TH1 interpreter */
71
72 int *aCommitFile;
73
74 int urlIsFile; /* True if a "file:" url */
75 char *urlName; /* Hostname for http: or filename for file: */
76
+81 -75
--- src/main.mk
+++ src/main.mk
@@ -52,14 +52,14 @@
5252
$(SRCDIR)/rss.c \
5353
$(SRCDIR)/schema.c \
5454
$(SRCDIR)/setup.c \
5555
$(SRCDIR)/sha1.c \
5656
$(SRCDIR)/style.c \
57
- $(SRCDIR)/subscript.c \
5857
$(SRCDIR)/sync.c \
5958
$(SRCDIR)/tag.c \
6059
$(SRCDIR)/tagview.c \
60
+ $(SRCDIR)/th_main.c \
6161
$(SRCDIR)/timeline.c \
6262
$(SRCDIR)/tkt.c \
6363
$(SRCDIR)/tktconfig.c \
6464
$(SRCDIR)/tktsetup.c \
6565
$(SRCDIR)/undo.c \
@@ -113,14 +113,14 @@
113113
rss_.c \
114114
schema_.c \
115115
setup_.c \
116116
sha1_.c \
117117
style_.c \
118
- subscript_.c \
119118
sync_.c \
120119
tag_.c \
121120
tagview_.c \
121
+ th_main_.c \
122122
timeline_.c \
123123
tkt_.c \
124124
tktconfig_.c \
125125
tktsetup_.c \
126126
undo_.c \
@@ -174,14 +174,14 @@
174174
rss.o \
175175
schema.o \
176176
setup.o \
177177
sha1.o \
178178
style.o \
179
- subscript.o \
180179
sync.o \
181180
tag.o \
182181
tagview.o \
182
+ th_main.o \
183183
timeline.o \
184184
tkt.o \
185185
tktconfig.o \
186186
tktsetup.o \
187187
undo.o \
@@ -222,12 +222,12 @@
222222
VERSION.h: $(SRCDIR)/../manifest.uuid $(SRCDIR)/../manifest
223223
awk '{ printf "#define MANIFEST_UUID \"%s\"\n", $$1}' $(SRCDIR)/../manifest.uuid >VERSION.h
224224
awk '{ printf "#define MANIFEST_VERSION \"[%.10s]\"\n", $$1}' $(SRCDIR)/../manifest.uuid >>VERSION.h
225225
awk '$$1=="D"{printf "#define MANIFEST_DATE \"%s %s\"\n", substr($$2,1,10),substr($$2,12)}' $(SRCDIR)/../manifest >>VERSION.h
226226
227
-$(APPNAME): headers $(OBJ) sqlite3.o
228
- $(TCC) -o $(APPNAME) $(OBJ) sqlite3.o $(LIB)
227
+$(APPNAME): headers $(OBJ) sqlite3.o th.o th_lang.o
228
+ $(TCC) -o $(APPNAME) $(OBJ) sqlite3.o th.o th_lang.o $(LIB)
229229
230230
# This rule prevents make from using its default rules to try build
231231
# an executable named "manifest" out of the file named "manifest.c"
232232
#
233233
$(SRCDIR)/../manifest:
@@ -234,14 +234,14 @@
234234
# noop
235235
236236
clean:
237237
rm -f *.o *_.c $(APPNAME) VERSION.h
238238
rm -f translate makeheaders mkindex page_index.h headers
239
- rm -f add.h admin.h bag.h blob.h branch.h browse.h cgi.h checkin.h checkout.h clearsign.h clone.h comformat.h construct.h content.h db.h delta.h deltacmd.h descendents.h diff.h diffcmd.h encode.h file.h http.h info.h login.h main.h manifest.h md5.h merge.h merge3.h my_page.h name.h pivot.h pqueue.h printf.h rebuild.h rss.h schema.h setup.h sha1.h style.h subscript.h sync.h tag.h tagview.h timeline.h tkt.h tktconfig.h tktsetup.h undo.h update.h url.h user.h verify.h vfile.h wiki.h wikiformat.h xfer.h zip.h
239
+ rm -f add.h admin.h bag.h blob.h branch.h browse.h cgi.h checkin.h checkout.h clearsign.h clone.h comformat.h construct.h content.h db.h delta.h deltacmd.h descendents.h diff.h diffcmd.h encode.h file.h http.h info.h login.h main.h manifest.h md5.h merge.h merge3.h my_page.h name.h pivot.h pqueue.h printf.h rebuild.h rss.h schema.h setup.h sha1.h style.h sync.h tag.h tagview.h th_main.h timeline.h tkt.h tktconfig.h tktsetup.h undo.h update.h url.h user.h verify.h vfile.h wiki.h wikiformat.h xfer.h zip.h
240240
241241
headers: makeheaders mkindex $(TRANS_SRC) ./VERSION.h
242
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
242
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
243243
./mkindex $(TRANS_SRC) >page_index.h
244244
touch headers
245245
246246
add_.c: $(SRCDIR)/add.c $(SRCDIR)/VERSION translate
247247
./translate $(SRCDIR)/add.c | sed -f $(SRCDIR)/VERSION >add_.c
@@ -248,591 +248,597 @@
248248
249249
add.o: add_.c add.h $(SRCDIR)/config.h
250250
$(XTCC) -o add.o -c add_.c
251251
252252
add.h: makeheaders
253
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
253
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
254254
touch headers
255255
256256
admin_.c: $(SRCDIR)/admin.c $(SRCDIR)/VERSION translate
257257
./translate $(SRCDIR)/admin.c | sed -f $(SRCDIR)/VERSION >admin_.c
258258
259259
admin.o: admin_.c admin.h $(SRCDIR)/config.h
260260
$(XTCC) -o admin.o -c admin_.c
261261
262262
admin.h: makeheaders
263
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
263
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
264264
touch headers
265265
266266
bag_.c: $(SRCDIR)/bag.c $(SRCDIR)/VERSION translate
267267
./translate $(SRCDIR)/bag.c | sed -f $(SRCDIR)/VERSION >bag_.c
268268
269269
bag.o: bag_.c bag.h $(SRCDIR)/config.h
270270
$(XTCC) -o bag.o -c bag_.c
271271
272272
bag.h: makeheaders
273
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
273
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
274274
touch headers
275275
276276
blob_.c: $(SRCDIR)/blob.c $(SRCDIR)/VERSION translate
277277
./translate $(SRCDIR)/blob.c | sed -f $(SRCDIR)/VERSION >blob_.c
278278
279279
blob.o: blob_.c blob.h $(SRCDIR)/config.h
280280
$(XTCC) -o blob.o -c blob_.c
281281
282282
blob.h: makeheaders
283
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
283
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
284284
touch headers
285285
286286
branch_.c: $(SRCDIR)/branch.c $(SRCDIR)/VERSION translate
287287
./translate $(SRCDIR)/branch.c | sed -f $(SRCDIR)/VERSION >branch_.c
288288
289289
branch.o: branch_.c branch.h $(SRCDIR)/config.h
290290
$(XTCC) -o branch.o -c branch_.c
291291
292292
branch.h: makeheaders
293
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
293
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
294294
touch headers
295295
296296
browse_.c: $(SRCDIR)/browse.c $(SRCDIR)/VERSION translate
297297
./translate $(SRCDIR)/browse.c | sed -f $(SRCDIR)/VERSION >browse_.c
298298
299299
browse.o: browse_.c browse.h $(SRCDIR)/config.h
300300
$(XTCC) -o browse.o -c browse_.c
301301
302302
browse.h: makeheaders
303
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
303
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
304304
touch headers
305305
306306
cgi_.c: $(SRCDIR)/cgi.c $(SRCDIR)/VERSION translate
307307
./translate $(SRCDIR)/cgi.c | sed -f $(SRCDIR)/VERSION >cgi_.c
308308
309309
cgi.o: cgi_.c cgi.h $(SRCDIR)/config.h
310310
$(XTCC) -o cgi.o -c cgi_.c
311311
312312
cgi.h: makeheaders
313
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
313
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
314314
touch headers
315315
316316
checkin_.c: $(SRCDIR)/checkin.c $(SRCDIR)/VERSION translate
317317
./translate $(SRCDIR)/checkin.c | sed -f $(SRCDIR)/VERSION >checkin_.c
318318
319319
checkin.o: checkin_.c checkin.h $(SRCDIR)/config.h
320320
$(XTCC) -o checkin.o -c checkin_.c
321321
322322
checkin.h: makeheaders
323
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
323
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
324324
touch headers
325325
326326
checkout_.c: $(SRCDIR)/checkout.c $(SRCDIR)/VERSION translate
327327
./translate $(SRCDIR)/checkout.c | sed -f $(SRCDIR)/VERSION >checkout_.c
328328
329329
checkout.o: checkout_.c checkout.h $(SRCDIR)/config.h
330330
$(XTCC) -o checkout.o -c checkout_.c
331331
332332
checkout.h: makeheaders
333
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
333
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
334334
touch headers
335335
336336
clearsign_.c: $(SRCDIR)/clearsign.c $(SRCDIR)/VERSION translate
337337
./translate $(SRCDIR)/clearsign.c | sed -f $(SRCDIR)/VERSION >clearsign_.c
338338
339339
clearsign.o: clearsign_.c clearsign.h $(SRCDIR)/config.h
340340
$(XTCC) -o clearsign.o -c clearsign_.c
341341
342342
clearsign.h: makeheaders
343
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
343
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
344344
touch headers
345345
346346
clone_.c: $(SRCDIR)/clone.c $(SRCDIR)/VERSION translate
347347
./translate $(SRCDIR)/clone.c | sed -f $(SRCDIR)/VERSION >clone_.c
348348
349349
clone.o: clone_.c clone.h $(SRCDIR)/config.h
350350
$(XTCC) -o clone.o -c clone_.c
351351
352352
clone.h: makeheaders
353
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
353
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
354354
touch headers
355355
356356
comformat_.c: $(SRCDIR)/comformat.c $(SRCDIR)/VERSION translate
357357
./translate $(SRCDIR)/comformat.c | sed -f $(SRCDIR)/VERSION >comformat_.c
358358
359359
comformat.o: comformat_.c comformat.h $(SRCDIR)/config.h
360360
$(XTCC) -o comformat.o -c comformat_.c
361361
362362
comformat.h: makeheaders
363
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
363
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
364364
touch headers
365365
366366
construct_.c: $(SRCDIR)/construct.c $(SRCDIR)/VERSION translate
367367
./translate $(SRCDIR)/construct.c | sed -f $(SRCDIR)/VERSION >construct_.c
368368
369369
construct.o: construct_.c construct.h $(SRCDIR)/config.h
370370
$(XTCC) -o construct.o -c construct_.c
371371
372372
construct.h: makeheaders
373
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
373
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
374374
touch headers
375375
376376
content_.c: $(SRCDIR)/content.c $(SRCDIR)/VERSION translate
377377
./translate $(SRCDIR)/content.c | sed -f $(SRCDIR)/VERSION >content_.c
378378
379379
content.o: content_.c content.h $(SRCDIR)/config.h
380380
$(XTCC) -o content.o -c content_.c
381381
382382
content.h: makeheaders
383
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
383
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
384384
touch headers
385385
386386
db_.c: $(SRCDIR)/db.c $(SRCDIR)/VERSION translate
387387
./translate $(SRCDIR)/db.c | sed -f $(SRCDIR)/VERSION >db_.c
388388
389389
db.o: db_.c db.h $(SRCDIR)/config.h
390390
$(XTCC) -o db.o -c db_.c
391391
392392
db.h: makeheaders
393
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
393
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
394394
touch headers
395395
396396
delta_.c: $(SRCDIR)/delta.c $(SRCDIR)/VERSION translate
397397
./translate $(SRCDIR)/delta.c | sed -f $(SRCDIR)/VERSION >delta_.c
398398
399399
delta.o: delta_.c delta.h $(SRCDIR)/config.h
400400
$(XTCC) -o delta.o -c delta_.c
401401
402402
delta.h: makeheaders
403
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
403
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
404404
touch headers
405405
406406
deltacmd_.c: $(SRCDIR)/deltacmd.c $(SRCDIR)/VERSION translate
407407
./translate $(SRCDIR)/deltacmd.c | sed -f $(SRCDIR)/VERSION >deltacmd_.c
408408
409409
deltacmd.o: deltacmd_.c deltacmd.h $(SRCDIR)/config.h
410410
$(XTCC) -o deltacmd.o -c deltacmd_.c
411411
412412
deltacmd.h: makeheaders
413
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
413
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
414414
touch headers
415415
416416
descendents_.c: $(SRCDIR)/descendents.c $(SRCDIR)/VERSION translate
417417
./translate $(SRCDIR)/descendents.c | sed -f $(SRCDIR)/VERSION >descendents_.c
418418
419419
descendents.o: descendents_.c descendents.h $(SRCDIR)/config.h
420420
$(XTCC) -o descendents.o -c descendents_.c
421421
422422
descendents.h: makeheaders
423
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
423
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
424424
touch headers
425425
426426
diff_.c: $(SRCDIR)/diff.c $(SRCDIR)/VERSION translate
427427
./translate $(SRCDIR)/diff.c | sed -f $(SRCDIR)/VERSION >diff_.c
428428
429429
diff.o: diff_.c diff.h $(SRCDIR)/config.h
430430
$(XTCC) -o diff.o -c diff_.c
431431
432432
diff.h: makeheaders
433
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
433
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
434434
touch headers
435435
436436
diffcmd_.c: $(SRCDIR)/diffcmd.c $(SRCDIR)/VERSION translate
437437
./translate $(SRCDIR)/diffcmd.c | sed -f $(SRCDIR)/VERSION >diffcmd_.c
438438
439439
diffcmd.o: diffcmd_.c diffcmd.h $(SRCDIR)/config.h
440440
$(XTCC) -o diffcmd.o -c diffcmd_.c
441441
442442
diffcmd.h: makeheaders
443
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
443
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
444444
touch headers
445445
446446
encode_.c: $(SRCDIR)/encode.c $(SRCDIR)/VERSION translate
447447
./translate $(SRCDIR)/encode.c | sed -f $(SRCDIR)/VERSION >encode_.c
448448
449449
encode.o: encode_.c encode.h $(SRCDIR)/config.h
450450
$(XTCC) -o encode.o -c encode_.c
451451
452452
encode.h: makeheaders
453
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
453
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
454454
touch headers
455455
456456
file_.c: $(SRCDIR)/file.c $(SRCDIR)/VERSION translate
457457
./translate $(SRCDIR)/file.c | sed -f $(SRCDIR)/VERSION >file_.c
458458
459459
file.o: file_.c file.h $(SRCDIR)/config.h
460460
$(XTCC) -o file.o -c file_.c
461461
462462
file.h: makeheaders
463
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
463
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
464464
touch headers
465465
466466
http_.c: $(SRCDIR)/http.c $(SRCDIR)/VERSION translate
467467
./translate $(SRCDIR)/http.c | sed -f $(SRCDIR)/VERSION >http_.c
468468
469469
http.o: http_.c http.h $(SRCDIR)/config.h
470470
$(XTCC) -o http.o -c http_.c
471471
472472
http.h: makeheaders
473
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
473
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
474474
touch headers
475475
476476
info_.c: $(SRCDIR)/info.c $(SRCDIR)/VERSION translate
477477
./translate $(SRCDIR)/info.c | sed -f $(SRCDIR)/VERSION >info_.c
478478
479479
info.o: info_.c info.h $(SRCDIR)/config.h
480480
$(XTCC) -o info.o -c info_.c
481481
482482
info.h: makeheaders
483
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
483
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
484484
touch headers
485485
486486
login_.c: $(SRCDIR)/login.c $(SRCDIR)/VERSION translate
487487
./translate $(SRCDIR)/login.c | sed -f $(SRCDIR)/VERSION >login_.c
488488
489489
login.o: login_.c login.h $(SRCDIR)/config.h
490490
$(XTCC) -o login.o -c login_.c
491491
492492
login.h: makeheaders
493
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
493
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
494494
touch headers
495495
496496
main_.c: $(SRCDIR)/main.c $(SRCDIR)/VERSION translate
497497
./translate $(SRCDIR)/main.c | sed -f $(SRCDIR)/VERSION >main_.c
498498
499499
main.o: main_.c main.h page_index.h $(SRCDIR)/config.h
500500
$(XTCC) -o main.o -c main_.c
501501
502502
main.h: makeheaders
503
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
503
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
504504
touch headers
505505
506506
manifest_.c: $(SRCDIR)/manifest.c $(SRCDIR)/VERSION translate
507507
./translate $(SRCDIR)/manifest.c | sed -f $(SRCDIR)/VERSION >manifest_.c
508508
509509
manifest.o: manifest_.c manifest.h $(SRCDIR)/config.h
510510
$(XTCC) -o manifest.o -c manifest_.c
511511
512512
manifest.h: makeheaders
513
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
513
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
514514
touch headers
515515
516516
md5_.c: $(SRCDIR)/md5.c $(SRCDIR)/VERSION translate
517517
./translate $(SRCDIR)/md5.c | sed -f $(SRCDIR)/VERSION >md5_.c
518518
519519
md5.o: md5_.c md5.h $(SRCDIR)/config.h
520520
$(XTCC) -o md5.o -c md5_.c
521521
522522
md5.h: makeheaders
523
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
523
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
524524
touch headers
525525
526526
merge_.c: $(SRCDIR)/merge.c $(SRCDIR)/VERSION translate
527527
./translate $(SRCDIR)/merge.c | sed -f $(SRCDIR)/VERSION >merge_.c
528528
529529
merge.o: merge_.c merge.h $(SRCDIR)/config.h
530530
$(XTCC) -o merge.o -c merge_.c
531531
532532
merge.h: makeheaders
533
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
533
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
534534
touch headers
535535
536536
merge3_.c: $(SRCDIR)/merge3.c $(SRCDIR)/VERSION translate
537537
./translate $(SRCDIR)/merge3.c | sed -f $(SRCDIR)/VERSION >merge3_.c
538538
539539
merge3.o: merge3_.c merge3.h $(SRCDIR)/config.h
540540
$(XTCC) -o merge3.o -c merge3_.c
541541
542542
merge3.h: makeheaders
543
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
543
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
544544
touch headers
545545
546546
my_page_.c: $(SRCDIR)/my_page.c $(SRCDIR)/VERSION translate
547547
./translate $(SRCDIR)/my_page.c | sed -f $(SRCDIR)/VERSION >my_page_.c
548548
549549
my_page.o: my_page_.c my_page.h $(SRCDIR)/config.h
550550
$(XTCC) -o my_page.o -c my_page_.c
551551
552552
my_page.h: makeheaders
553
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
553
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
554554
touch headers
555555
556556
name_.c: $(SRCDIR)/name.c $(SRCDIR)/VERSION translate
557557
./translate $(SRCDIR)/name.c | sed -f $(SRCDIR)/VERSION >name_.c
558558
559559
name.o: name_.c name.h $(SRCDIR)/config.h
560560
$(XTCC) -o name.o -c name_.c
561561
562562
name.h: makeheaders
563
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
563
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
564564
touch headers
565565
566566
pivot_.c: $(SRCDIR)/pivot.c $(SRCDIR)/VERSION translate
567567
./translate $(SRCDIR)/pivot.c | sed -f $(SRCDIR)/VERSION >pivot_.c
568568
569569
pivot.o: pivot_.c pivot.h $(SRCDIR)/config.h
570570
$(XTCC) -o pivot.o -c pivot_.c
571571
572572
pivot.h: makeheaders
573
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
573
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
574574
touch headers
575575
576576
pqueue_.c: $(SRCDIR)/pqueue.c $(SRCDIR)/VERSION translate
577577
./translate $(SRCDIR)/pqueue.c | sed -f $(SRCDIR)/VERSION >pqueue_.c
578578
579579
pqueue.o: pqueue_.c pqueue.h $(SRCDIR)/config.h
580580
$(XTCC) -o pqueue.o -c pqueue_.c
581581
582582
pqueue.h: makeheaders
583
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
583
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
584584
touch headers
585585
586586
printf_.c: $(SRCDIR)/printf.c $(SRCDIR)/VERSION translate
587587
./translate $(SRCDIR)/printf.c | sed -f $(SRCDIR)/VERSION >printf_.c
588588
589589
printf.o: printf_.c printf.h $(SRCDIR)/config.h
590590
$(XTCC) -o printf.o -c printf_.c
591591
592592
printf.h: makeheaders
593
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
593
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
594594
touch headers
595595
596596
rebuild_.c: $(SRCDIR)/rebuild.c $(SRCDIR)/VERSION translate
597597
./translate $(SRCDIR)/rebuild.c | sed -f $(SRCDIR)/VERSION >rebuild_.c
598598
599599
rebuild.o: rebuild_.c rebuild.h $(SRCDIR)/config.h
600600
$(XTCC) -o rebuild.o -c rebuild_.c
601601
602602
rebuild.h: makeheaders
603
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
603
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
604604
touch headers
605605
606606
rss_.c: $(SRCDIR)/rss.c $(SRCDIR)/VERSION translate
607607
./translate $(SRCDIR)/rss.c | sed -f $(SRCDIR)/VERSION >rss_.c
608608
609609
rss.o: rss_.c rss.h $(SRCDIR)/config.h
610610
$(XTCC) -o rss.o -c rss_.c
611611
612612
rss.h: makeheaders
613
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
613
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
614614
touch headers
615615
616616
schema_.c: $(SRCDIR)/schema.c $(SRCDIR)/VERSION translate
617617
./translate $(SRCDIR)/schema.c | sed -f $(SRCDIR)/VERSION >schema_.c
618618
619619
schema.o: schema_.c schema.h $(SRCDIR)/config.h
620620
$(XTCC) -o schema.o -c schema_.c
621621
622622
schema.h: makeheaders
623
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
623
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
624624
touch headers
625625
626626
setup_.c: $(SRCDIR)/setup.c $(SRCDIR)/VERSION translate
627627
./translate $(SRCDIR)/setup.c | sed -f $(SRCDIR)/VERSION >setup_.c
628628
629629
setup.o: setup_.c setup.h $(SRCDIR)/config.h
630630
$(XTCC) -o setup.o -c setup_.c
631631
632632
setup.h: makeheaders
633
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
633
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
634634
touch headers
635635
636636
sha1_.c: $(SRCDIR)/sha1.c $(SRCDIR)/VERSION translate
637637
./translate $(SRCDIR)/sha1.c | sed -f $(SRCDIR)/VERSION >sha1_.c
638638
639639
sha1.o: sha1_.c sha1.h $(SRCDIR)/config.h
640640
$(XTCC) -o sha1.o -c sha1_.c
641641
642642
sha1.h: makeheaders
643
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
643
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
644644
touch headers
645645
646646
style_.c: $(SRCDIR)/style.c $(SRCDIR)/VERSION translate
647647
./translate $(SRCDIR)/style.c | sed -f $(SRCDIR)/VERSION >style_.c
648648
649649
style.o: style_.c style.h $(SRCDIR)/config.h
650650
$(XTCC) -o style.o -c style_.c
651651
652652
style.h: makeheaders
653
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
654
- touch headers
655
-
656
-subscript_.c: $(SRCDIR)/subscript.c $(SRCDIR)/VERSION translate
657
- ./translate $(SRCDIR)/subscript.c | sed -f $(SRCDIR)/VERSION >subscript_.c
658
-
659
-subscript.o: subscript_.c subscript.h $(SRCDIR)/config.h
660
- $(XTCC) -o subscript.o -c subscript_.c
661
-
662
-subscript.h: makeheaders
663
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
653
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
664654
touch headers
665655
666656
sync_.c: $(SRCDIR)/sync.c $(SRCDIR)/VERSION translate
667657
./translate $(SRCDIR)/sync.c | sed -f $(SRCDIR)/VERSION >sync_.c
668658
669659
sync.o: sync_.c sync.h $(SRCDIR)/config.h
670660
$(XTCC) -o sync.o -c sync_.c
671661
672662
sync.h: makeheaders
673
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
663
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
674664
touch headers
675665
676666
tag_.c: $(SRCDIR)/tag.c $(SRCDIR)/VERSION translate
677667
./translate $(SRCDIR)/tag.c | sed -f $(SRCDIR)/VERSION >tag_.c
678668
679669
tag.o: tag_.c tag.h $(SRCDIR)/config.h
680670
$(XTCC) -o tag.o -c tag_.c
681671
682672
tag.h: makeheaders
683
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
673
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
684674
touch headers
685675
686676
tagview_.c: $(SRCDIR)/tagview.c $(SRCDIR)/VERSION translate
687677
./translate $(SRCDIR)/tagview.c | sed -f $(SRCDIR)/VERSION >tagview_.c
688678
689679
tagview.o: tagview_.c tagview.h $(SRCDIR)/config.h
690680
$(XTCC) -o tagview.o -c tagview_.c
691681
692682
tagview.h: makeheaders
693
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
683
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
684
+ touch headers
685
+
686
+th_main_.c: $(SRCDIR)/th_main.c $(SRCDIR)/VERSION translate
687
+ ./translate $(SRCDIR)/th_main.c | sed -f $(SRCDIR)/VERSION >th_main_.c
688
+
689
+th_main.o: th_main_.c th_main.h $(SRCDIR)/config.h
690
+ $(XTCC) -o th_main.o -c th_main_.c
691
+
692
+th_main.h: makeheaders
693
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
694694
touch headers
695695
696696
timeline_.c: $(SRCDIR)/timeline.c $(SRCDIR)/VERSION translate
697697
./translate $(SRCDIR)/timeline.c | sed -f $(SRCDIR)/VERSION >timeline_.c
698698
699699
timeline.o: timeline_.c timeline.h $(SRCDIR)/config.h
700700
$(XTCC) -o timeline.o -c timeline_.c
701701
702702
timeline.h: makeheaders
703
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
703
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
704704
touch headers
705705
706706
tkt_.c: $(SRCDIR)/tkt.c $(SRCDIR)/VERSION translate
707707
./translate $(SRCDIR)/tkt.c | sed -f $(SRCDIR)/VERSION >tkt_.c
708708
709709
tkt.o: tkt_.c tkt.h $(SRCDIR)/config.h
710710
$(XTCC) -o tkt.o -c tkt_.c
711711
712712
tkt.h: makeheaders
713
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
713
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
714714
touch headers
715715
716716
tktconfig_.c: $(SRCDIR)/tktconfig.c $(SRCDIR)/VERSION translate
717717
./translate $(SRCDIR)/tktconfig.c | sed -f $(SRCDIR)/VERSION >tktconfig_.c
718718
719719
tktconfig.o: tktconfig_.c tktconfig.h $(SRCDIR)/config.h
720720
$(XTCC) -o tktconfig.o -c tktconfig_.c
721721
722722
tktconfig.h: makeheaders
723
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
723
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
724724
touch headers
725725
726726
tktsetup_.c: $(SRCDIR)/tktsetup.c $(SRCDIR)/VERSION translate
727727
./translate $(SRCDIR)/tktsetup.c | sed -f $(SRCDIR)/VERSION >tktsetup_.c
728728
729729
tktsetup.o: tktsetup_.c tktsetup.h $(SRCDIR)/config.h
730730
$(XTCC) -o tktsetup.o -c tktsetup_.c
731731
732732
tktsetup.h: makeheaders
733
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
733
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
734734
touch headers
735735
736736
undo_.c: $(SRCDIR)/undo.c $(SRCDIR)/VERSION translate
737737
./translate $(SRCDIR)/undo.c | sed -f $(SRCDIR)/VERSION >undo_.c
738738
739739
undo.o: undo_.c undo.h $(SRCDIR)/config.h
740740
$(XTCC) -o undo.o -c undo_.c
741741
742742
undo.h: makeheaders
743
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
743
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
744744
touch headers
745745
746746
update_.c: $(SRCDIR)/update.c $(SRCDIR)/VERSION translate
747747
./translate $(SRCDIR)/update.c | sed -f $(SRCDIR)/VERSION >update_.c
748748
749749
update.o: update_.c update.h $(SRCDIR)/config.h
750750
$(XTCC) -o update.o -c update_.c
751751
752752
update.h: makeheaders
753
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
753
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
754754
touch headers
755755
756756
url_.c: $(SRCDIR)/url.c $(SRCDIR)/VERSION translate
757757
./translate $(SRCDIR)/url.c | sed -f $(SRCDIR)/VERSION >url_.c
758758
759759
url.o: url_.c url.h $(SRCDIR)/config.h
760760
$(XTCC) -o url.o -c url_.c
761761
762762
url.h: makeheaders
763
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
763
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
764764
touch headers
765765
766766
user_.c: $(SRCDIR)/user.c $(SRCDIR)/VERSION translate
767767
./translate $(SRCDIR)/user.c | sed -f $(SRCDIR)/VERSION >user_.c
768768
769769
user.o: user_.c user.h $(SRCDIR)/config.h
770770
$(XTCC) -o user.o -c user_.c
771771
772772
user.h: makeheaders
773
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
773
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
774774
touch headers
775775
776776
verify_.c: $(SRCDIR)/verify.c $(SRCDIR)/VERSION translate
777777
./translate $(SRCDIR)/verify.c | sed -f $(SRCDIR)/VERSION >verify_.c
778778
779779
verify.o: verify_.c verify.h $(SRCDIR)/config.h
780780
$(XTCC) -o verify.o -c verify_.c
781781
782782
verify.h: makeheaders
783
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
783
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
784784
touch headers
785785
786786
vfile_.c: $(SRCDIR)/vfile.c $(SRCDIR)/VERSION translate
787787
./translate $(SRCDIR)/vfile.c | sed -f $(SRCDIR)/VERSION >vfile_.c
788788
789789
vfile.o: vfile_.c vfile.h $(SRCDIR)/config.h
790790
$(XTCC) -o vfile.o -c vfile_.c
791791
792792
vfile.h: makeheaders
793
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
793
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
794794
touch headers
795795
796796
wiki_.c: $(SRCDIR)/wiki.c $(SRCDIR)/VERSION translate
797797
./translate $(SRCDIR)/wiki.c | sed -f $(SRCDIR)/VERSION >wiki_.c
798798
799799
wiki.o: wiki_.c wiki.h $(SRCDIR)/config.h
800800
$(XTCC) -o wiki.o -c wiki_.c
801801
802802
wiki.h: makeheaders
803
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
803
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
804804
touch headers
805805
806806
wikiformat_.c: $(SRCDIR)/wikiformat.c $(SRCDIR)/VERSION translate
807807
./translate $(SRCDIR)/wikiformat.c | sed -f $(SRCDIR)/VERSION >wikiformat_.c
808808
809809
wikiformat.o: wikiformat_.c wikiformat.h $(SRCDIR)/config.h
810810
$(XTCC) -o wikiformat.o -c wikiformat_.c
811811
812812
wikiformat.h: makeheaders
813
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
813
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
814814
touch headers
815815
816816
xfer_.c: $(SRCDIR)/xfer.c $(SRCDIR)/VERSION translate
817817
./translate $(SRCDIR)/xfer.c | sed -f $(SRCDIR)/VERSION >xfer_.c
818818
819819
xfer.o: xfer_.c xfer.h $(SRCDIR)/config.h
820820
$(XTCC) -o xfer.o -c xfer_.c
821821
822822
xfer.h: makeheaders
823
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
823
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
824824
touch headers
825825
826826
zip_.c: $(SRCDIR)/zip.c $(SRCDIR)/VERSION translate
827827
./translate $(SRCDIR)/zip.c | sed -f $(SRCDIR)/VERSION >zip_.c
828828
829829
zip.o: zip_.c zip.h $(SRCDIR)/config.h
830830
$(XTCC) -o zip.o -c zip_.c
831831
832832
zip.h: makeheaders
833
- ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
833
+ ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
834834
touch headers
835835
836836
sqlite3.o: $(SRCDIR)/sqlite3.c
837837
$(XTCC) -DSQLITE_OMIT_LOAD_EXTENSION=1 -DSQLITE_PRIVATE= -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_FTS3=1 -c $(SRCDIR)/sqlite3.c -o sqlite3.o
838838
839
+th.o: $(SRCDIR)/th.c
840
+ $(XTCC) -I$(SRCDIR) -c $(SRCDIR)/th.c -o th.o
841
+
842
+th_lang.o: $(SRCDIR)/th_lang.c
843
+ $(XTCC) -I$(SRCDIR) -c $(SRCDIR)/th_lang.c -o th_lang.o
844
+
839845
--- src/main.mk
+++ src/main.mk
@@ -52,14 +52,14 @@
52 $(SRCDIR)/rss.c \
53 $(SRCDIR)/schema.c \
54 $(SRCDIR)/setup.c \
55 $(SRCDIR)/sha1.c \
56 $(SRCDIR)/style.c \
57 $(SRCDIR)/subscript.c \
58 $(SRCDIR)/sync.c \
59 $(SRCDIR)/tag.c \
60 $(SRCDIR)/tagview.c \
 
61 $(SRCDIR)/timeline.c \
62 $(SRCDIR)/tkt.c \
63 $(SRCDIR)/tktconfig.c \
64 $(SRCDIR)/tktsetup.c \
65 $(SRCDIR)/undo.c \
@@ -113,14 +113,14 @@
113 rss_.c \
114 schema_.c \
115 setup_.c \
116 sha1_.c \
117 style_.c \
118 subscript_.c \
119 sync_.c \
120 tag_.c \
121 tagview_.c \
 
122 timeline_.c \
123 tkt_.c \
124 tktconfig_.c \
125 tktsetup_.c \
126 undo_.c \
@@ -174,14 +174,14 @@
174 rss.o \
175 schema.o \
176 setup.o \
177 sha1.o \
178 style.o \
179 subscript.o \
180 sync.o \
181 tag.o \
182 tagview.o \
 
183 timeline.o \
184 tkt.o \
185 tktconfig.o \
186 tktsetup.o \
187 undo.o \
@@ -222,12 +222,12 @@
222 VERSION.h: $(SRCDIR)/../manifest.uuid $(SRCDIR)/../manifest
223 awk '{ printf "#define MANIFEST_UUID \"%s\"\n", $$1}' $(SRCDIR)/../manifest.uuid >VERSION.h
224 awk '{ printf "#define MANIFEST_VERSION \"[%.10s]\"\n", $$1}' $(SRCDIR)/../manifest.uuid >>VERSION.h
225 awk '$$1=="D"{printf "#define MANIFEST_DATE \"%s %s\"\n", substr($$2,1,10),substr($$2,12)}' $(SRCDIR)/../manifest >>VERSION.h
226
227 $(APPNAME): headers $(OBJ) sqlite3.o
228 $(TCC) -o $(APPNAME) $(OBJ) sqlite3.o $(LIB)
229
230 # This rule prevents make from using its default rules to try build
231 # an executable named "manifest" out of the file named "manifest.c"
232 #
233 $(SRCDIR)/../manifest:
@@ -234,14 +234,14 @@
234 # noop
235
236 clean:
237 rm -f *.o *_.c $(APPNAME) VERSION.h
238 rm -f translate makeheaders mkindex page_index.h headers
239 rm -f add.h admin.h bag.h blob.h branch.h browse.h cgi.h checkin.h checkout.h clearsign.h clone.h comformat.h construct.h content.h db.h delta.h deltacmd.h descendents.h diff.h diffcmd.h encode.h file.h http.h info.h login.h main.h manifest.h md5.h merge.h merge3.h my_page.h name.h pivot.h pqueue.h printf.h rebuild.h rss.h schema.h setup.h sha1.h style.h subscript.h sync.h tag.h tagview.h timeline.h tkt.h tktconfig.h tktsetup.h undo.h update.h url.h user.h verify.h vfile.h wiki.h wikiformat.h xfer.h zip.h
240
241 headers: makeheaders mkindex $(TRANS_SRC) ./VERSION.h
242 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
243 ./mkindex $(TRANS_SRC) >page_index.h
244 touch headers
245
246 add_.c: $(SRCDIR)/add.c $(SRCDIR)/VERSION translate
247 ./translate $(SRCDIR)/add.c | sed -f $(SRCDIR)/VERSION >add_.c
@@ -248,591 +248,597 @@
248
249 add.o: add_.c add.h $(SRCDIR)/config.h
250 $(XTCC) -o add.o -c add_.c
251
252 add.h: makeheaders
253 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
254 touch headers
255
256 admin_.c: $(SRCDIR)/admin.c $(SRCDIR)/VERSION translate
257 ./translate $(SRCDIR)/admin.c | sed -f $(SRCDIR)/VERSION >admin_.c
258
259 admin.o: admin_.c admin.h $(SRCDIR)/config.h
260 $(XTCC) -o admin.o -c admin_.c
261
262 admin.h: makeheaders
263 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
264 touch headers
265
266 bag_.c: $(SRCDIR)/bag.c $(SRCDIR)/VERSION translate
267 ./translate $(SRCDIR)/bag.c | sed -f $(SRCDIR)/VERSION >bag_.c
268
269 bag.o: bag_.c bag.h $(SRCDIR)/config.h
270 $(XTCC) -o bag.o -c bag_.c
271
272 bag.h: makeheaders
273 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
274 touch headers
275
276 blob_.c: $(SRCDIR)/blob.c $(SRCDIR)/VERSION translate
277 ./translate $(SRCDIR)/blob.c | sed -f $(SRCDIR)/VERSION >blob_.c
278
279 blob.o: blob_.c blob.h $(SRCDIR)/config.h
280 $(XTCC) -o blob.o -c blob_.c
281
282 blob.h: makeheaders
283 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
284 touch headers
285
286 branch_.c: $(SRCDIR)/branch.c $(SRCDIR)/VERSION translate
287 ./translate $(SRCDIR)/branch.c | sed -f $(SRCDIR)/VERSION >branch_.c
288
289 branch.o: branch_.c branch.h $(SRCDIR)/config.h
290 $(XTCC) -o branch.o -c branch_.c
291
292 branch.h: makeheaders
293 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
294 touch headers
295
296 browse_.c: $(SRCDIR)/browse.c $(SRCDIR)/VERSION translate
297 ./translate $(SRCDIR)/browse.c | sed -f $(SRCDIR)/VERSION >browse_.c
298
299 browse.o: browse_.c browse.h $(SRCDIR)/config.h
300 $(XTCC) -o browse.o -c browse_.c
301
302 browse.h: makeheaders
303 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
304 touch headers
305
306 cgi_.c: $(SRCDIR)/cgi.c $(SRCDIR)/VERSION translate
307 ./translate $(SRCDIR)/cgi.c | sed -f $(SRCDIR)/VERSION >cgi_.c
308
309 cgi.o: cgi_.c cgi.h $(SRCDIR)/config.h
310 $(XTCC) -o cgi.o -c cgi_.c
311
312 cgi.h: makeheaders
313 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
314 touch headers
315
316 checkin_.c: $(SRCDIR)/checkin.c $(SRCDIR)/VERSION translate
317 ./translate $(SRCDIR)/checkin.c | sed -f $(SRCDIR)/VERSION >checkin_.c
318
319 checkin.o: checkin_.c checkin.h $(SRCDIR)/config.h
320 $(XTCC) -o checkin.o -c checkin_.c
321
322 checkin.h: makeheaders
323 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
324 touch headers
325
326 checkout_.c: $(SRCDIR)/checkout.c $(SRCDIR)/VERSION translate
327 ./translate $(SRCDIR)/checkout.c | sed -f $(SRCDIR)/VERSION >checkout_.c
328
329 checkout.o: checkout_.c checkout.h $(SRCDIR)/config.h
330 $(XTCC) -o checkout.o -c checkout_.c
331
332 checkout.h: makeheaders
333 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
334 touch headers
335
336 clearsign_.c: $(SRCDIR)/clearsign.c $(SRCDIR)/VERSION translate
337 ./translate $(SRCDIR)/clearsign.c | sed -f $(SRCDIR)/VERSION >clearsign_.c
338
339 clearsign.o: clearsign_.c clearsign.h $(SRCDIR)/config.h
340 $(XTCC) -o clearsign.o -c clearsign_.c
341
342 clearsign.h: makeheaders
343 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
344 touch headers
345
346 clone_.c: $(SRCDIR)/clone.c $(SRCDIR)/VERSION translate
347 ./translate $(SRCDIR)/clone.c | sed -f $(SRCDIR)/VERSION >clone_.c
348
349 clone.o: clone_.c clone.h $(SRCDIR)/config.h
350 $(XTCC) -o clone.o -c clone_.c
351
352 clone.h: makeheaders
353 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
354 touch headers
355
356 comformat_.c: $(SRCDIR)/comformat.c $(SRCDIR)/VERSION translate
357 ./translate $(SRCDIR)/comformat.c | sed -f $(SRCDIR)/VERSION >comformat_.c
358
359 comformat.o: comformat_.c comformat.h $(SRCDIR)/config.h
360 $(XTCC) -o comformat.o -c comformat_.c
361
362 comformat.h: makeheaders
363 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
364 touch headers
365
366 construct_.c: $(SRCDIR)/construct.c $(SRCDIR)/VERSION translate
367 ./translate $(SRCDIR)/construct.c | sed -f $(SRCDIR)/VERSION >construct_.c
368
369 construct.o: construct_.c construct.h $(SRCDIR)/config.h
370 $(XTCC) -o construct.o -c construct_.c
371
372 construct.h: makeheaders
373 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
374 touch headers
375
376 content_.c: $(SRCDIR)/content.c $(SRCDIR)/VERSION translate
377 ./translate $(SRCDIR)/content.c | sed -f $(SRCDIR)/VERSION >content_.c
378
379 content.o: content_.c content.h $(SRCDIR)/config.h
380 $(XTCC) -o content.o -c content_.c
381
382 content.h: makeheaders
383 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
384 touch headers
385
386 db_.c: $(SRCDIR)/db.c $(SRCDIR)/VERSION translate
387 ./translate $(SRCDIR)/db.c | sed -f $(SRCDIR)/VERSION >db_.c
388
389 db.o: db_.c db.h $(SRCDIR)/config.h
390 $(XTCC) -o db.o -c db_.c
391
392 db.h: makeheaders
393 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
394 touch headers
395
396 delta_.c: $(SRCDIR)/delta.c $(SRCDIR)/VERSION translate
397 ./translate $(SRCDIR)/delta.c | sed -f $(SRCDIR)/VERSION >delta_.c
398
399 delta.o: delta_.c delta.h $(SRCDIR)/config.h
400 $(XTCC) -o delta.o -c delta_.c
401
402 delta.h: makeheaders
403 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
404 touch headers
405
406 deltacmd_.c: $(SRCDIR)/deltacmd.c $(SRCDIR)/VERSION translate
407 ./translate $(SRCDIR)/deltacmd.c | sed -f $(SRCDIR)/VERSION >deltacmd_.c
408
409 deltacmd.o: deltacmd_.c deltacmd.h $(SRCDIR)/config.h
410 $(XTCC) -o deltacmd.o -c deltacmd_.c
411
412 deltacmd.h: makeheaders
413 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
414 touch headers
415
416 descendents_.c: $(SRCDIR)/descendents.c $(SRCDIR)/VERSION translate
417 ./translate $(SRCDIR)/descendents.c | sed -f $(SRCDIR)/VERSION >descendents_.c
418
419 descendents.o: descendents_.c descendents.h $(SRCDIR)/config.h
420 $(XTCC) -o descendents.o -c descendents_.c
421
422 descendents.h: makeheaders
423 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
424 touch headers
425
426 diff_.c: $(SRCDIR)/diff.c $(SRCDIR)/VERSION translate
427 ./translate $(SRCDIR)/diff.c | sed -f $(SRCDIR)/VERSION >diff_.c
428
429 diff.o: diff_.c diff.h $(SRCDIR)/config.h
430 $(XTCC) -o diff.o -c diff_.c
431
432 diff.h: makeheaders
433 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
434 touch headers
435
436 diffcmd_.c: $(SRCDIR)/diffcmd.c $(SRCDIR)/VERSION translate
437 ./translate $(SRCDIR)/diffcmd.c | sed -f $(SRCDIR)/VERSION >diffcmd_.c
438
439 diffcmd.o: diffcmd_.c diffcmd.h $(SRCDIR)/config.h
440 $(XTCC) -o diffcmd.o -c diffcmd_.c
441
442 diffcmd.h: makeheaders
443 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
444 touch headers
445
446 encode_.c: $(SRCDIR)/encode.c $(SRCDIR)/VERSION translate
447 ./translate $(SRCDIR)/encode.c | sed -f $(SRCDIR)/VERSION >encode_.c
448
449 encode.o: encode_.c encode.h $(SRCDIR)/config.h
450 $(XTCC) -o encode.o -c encode_.c
451
452 encode.h: makeheaders
453 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
454 touch headers
455
456 file_.c: $(SRCDIR)/file.c $(SRCDIR)/VERSION translate
457 ./translate $(SRCDIR)/file.c | sed -f $(SRCDIR)/VERSION >file_.c
458
459 file.o: file_.c file.h $(SRCDIR)/config.h
460 $(XTCC) -o file.o -c file_.c
461
462 file.h: makeheaders
463 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
464 touch headers
465
466 http_.c: $(SRCDIR)/http.c $(SRCDIR)/VERSION translate
467 ./translate $(SRCDIR)/http.c | sed -f $(SRCDIR)/VERSION >http_.c
468
469 http.o: http_.c http.h $(SRCDIR)/config.h
470 $(XTCC) -o http.o -c http_.c
471
472 http.h: makeheaders
473 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
474 touch headers
475
476 info_.c: $(SRCDIR)/info.c $(SRCDIR)/VERSION translate
477 ./translate $(SRCDIR)/info.c | sed -f $(SRCDIR)/VERSION >info_.c
478
479 info.o: info_.c info.h $(SRCDIR)/config.h
480 $(XTCC) -o info.o -c info_.c
481
482 info.h: makeheaders
483 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
484 touch headers
485
486 login_.c: $(SRCDIR)/login.c $(SRCDIR)/VERSION translate
487 ./translate $(SRCDIR)/login.c | sed -f $(SRCDIR)/VERSION >login_.c
488
489 login.o: login_.c login.h $(SRCDIR)/config.h
490 $(XTCC) -o login.o -c login_.c
491
492 login.h: makeheaders
493 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
494 touch headers
495
496 main_.c: $(SRCDIR)/main.c $(SRCDIR)/VERSION translate
497 ./translate $(SRCDIR)/main.c | sed -f $(SRCDIR)/VERSION >main_.c
498
499 main.o: main_.c main.h page_index.h $(SRCDIR)/config.h
500 $(XTCC) -o main.o -c main_.c
501
502 main.h: makeheaders
503 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
504 touch headers
505
506 manifest_.c: $(SRCDIR)/manifest.c $(SRCDIR)/VERSION translate
507 ./translate $(SRCDIR)/manifest.c | sed -f $(SRCDIR)/VERSION >manifest_.c
508
509 manifest.o: manifest_.c manifest.h $(SRCDIR)/config.h
510 $(XTCC) -o manifest.o -c manifest_.c
511
512 manifest.h: makeheaders
513 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
514 touch headers
515
516 md5_.c: $(SRCDIR)/md5.c $(SRCDIR)/VERSION translate
517 ./translate $(SRCDIR)/md5.c | sed -f $(SRCDIR)/VERSION >md5_.c
518
519 md5.o: md5_.c md5.h $(SRCDIR)/config.h
520 $(XTCC) -o md5.o -c md5_.c
521
522 md5.h: makeheaders
523 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
524 touch headers
525
526 merge_.c: $(SRCDIR)/merge.c $(SRCDIR)/VERSION translate
527 ./translate $(SRCDIR)/merge.c | sed -f $(SRCDIR)/VERSION >merge_.c
528
529 merge.o: merge_.c merge.h $(SRCDIR)/config.h
530 $(XTCC) -o merge.o -c merge_.c
531
532 merge.h: makeheaders
533 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
534 touch headers
535
536 merge3_.c: $(SRCDIR)/merge3.c $(SRCDIR)/VERSION translate
537 ./translate $(SRCDIR)/merge3.c | sed -f $(SRCDIR)/VERSION >merge3_.c
538
539 merge3.o: merge3_.c merge3.h $(SRCDIR)/config.h
540 $(XTCC) -o merge3.o -c merge3_.c
541
542 merge3.h: makeheaders
543 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
544 touch headers
545
546 my_page_.c: $(SRCDIR)/my_page.c $(SRCDIR)/VERSION translate
547 ./translate $(SRCDIR)/my_page.c | sed -f $(SRCDIR)/VERSION >my_page_.c
548
549 my_page.o: my_page_.c my_page.h $(SRCDIR)/config.h
550 $(XTCC) -o my_page.o -c my_page_.c
551
552 my_page.h: makeheaders
553 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
554 touch headers
555
556 name_.c: $(SRCDIR)/name.c $(SRCDIR)/VERSION translate
557 ./translate $(SRCDIR)/name.c | sed -f $(SRCDIR)/VERSION >name_.c
558
559 name.o: name_.c name.h $(SRCDIR)/config.h
560 $(XTCC) -o name.o -c name_.c
561
562 name.h: makeheaders
563 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
564 touch headers
565
566 pivot_.c: $(SRCDIR)/pivot.c $(SRCDIR)/VERSION translate
567 ./translate $(SRCDIR)/pivot.c | sed -f $(SRCDIR)/VERSION >pivot_.c
568
569 pivot.o: pivot_.c pivot.h $(SRCDIR)/config.h
570 $(XTCC) -o pivot.o -c pivot_.c
571
572 pivot.h: makeheaders
573 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
574 touch headers
575
576 pqueue_.c: $(SRCDIR)/pqueue.c $(SRCDIR)/VERSION translate
577 ./translate $(SRCDIR)/pqueue.c | sed -f $(SRCDIR)/VERSION >pqueue_.c
578
579 pqueue.o: pqueue_.c pqueue.h $(SRCDIR)/config.h
580 $(XTCC) -o pqueue.o -c pqueue_.c
581
582 pqueue.h: makeheaders
583 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
584 touch headers
585
586 printf_.c: $(SRCDIR)/printf.c $(SRCDIR)/VERSION translate
587 ./translate $(SRCDIR)/printf.c | sed -f $(SRCDIR)/VERSION >printf_.c
588
589 printf.o: printf_.c printf.h $(SRCDIR)/config.h
590 $(XTCC) -o printf.o -c printf_.c
591
592 printf.h: makeheaders
593 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
594 touch headers
595
596 rebuild_.c: $(SRCDIR)/rebuild.c $(SRCDIR)/VERSION translate
597 ./translate $(SRCDIR)/rebuild.c | sed -f $(SRCDIR)/VERSION >rebuild_.c
598
599 rebuild.o: rebuild_.c rebuild.h $(SRCDIR)/config.h
600 $(XTCC) -o rebuild.o -c rebuild_.c
601
602 rebuild.h: makeheaders
603 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
604 touch headers
605
606 rss_.c: $(SRCDIR)/rss.c $(SRCDIR)/VERSION translate
607 ./translate $(SRCDIR)/rss.c | sed -f $(SRCDIR)/VERSION >rss_.c
608
609 rss.o: rss_.c rss.h $(SRCDIR)/config.h
610 $(XTCC) -o rss.o -c rss_.c
611
612 rss.h: makeheaders
613 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
614 touch headers
615
616 schema_.c: $(SRCDIR)/schema.c $(SRCDIR)/VERSION translate
617 ./translate $(SRCDIR)/schema.c | sed -f $(SRCDIR)/VERSION >schema_.c
618
619 schema.o: schema_.c schema.h $(SRCDIR)/config.h
620 $(XTCC) -o schema.o -c schema_.c
621
622 schema.h: makeheaders
623 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
624 touch headers
625
626 setup_.c: $(SRCDIR)/setup.c $(SRCDIR)/VERSION translate
627 ./translate $(SRCDIR)/setup.c | sed -f $(SRCDIR)/VERSION >setup_.c
628
629 setup.o: setup_.c setup.h $(SRCDIR)/config.h
630 $(XTCC) -o setup.o -c setup_.c
631
632 setup.h: makeheaders
633 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
634 touch headers
635
636 sha1_.c: $(SRCDIR)/sha1.c $(SRCDIR)/VERSION translate
637 ./translate $(SRCDIR)/sha1.c | sed -f $(SRCDIR)/VERSION >sha1_.c
638
639 sha1.o: sha1_.c sha1.h $(SRCDIR)/config.h
640 $(XTCC) -o sha1.o -c sha1_.c
641
642 sha1.h: makeheaders
643 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
644 touch headers
645
646 style_.c: $(SRCDIR)/style.c $(SRCDIR)/VERSION translate
647 ./translate $(SRCDIR)/style.c | sed -f $(SRCDIR)/VERSION >style_.c
648
649 style.o: style_.c style.h $(SRCDIR)/config.h
650 $(XTCC) -o style.o -c style_.c
651
652 style.h: makeheaders
653 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
654 touch headers
655
656 subscript_.c: $(SRCDIR)/subscript.c $(SRCDIR)/VERSION translate
657 ./translate $(SRCDIR)/subscript.c | sed -f $(SRCDIR)/VERSION >subscript_.c
658
659 subscript.o: subscript_.c subscript.h $(SRCDIR)/config.h
660 $(XTCC) -o subscript.o -c subscript_.c
661
662 subscript.h: makeheaders
663 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
664 touch headers
665
666 sync_.c: $(SRCDIR)/sync.c $(SRCDIR)/VERSION translate
667 ./translate $(SRCDIR)/sync.c | sed -f $(SRCDIR)/VERSION >sync_.c
668
669 sync.o: sync_.c sync.h $(SRCDIR)/config.h
670 $(XTCC) -o sync.o -c sync_.c
671
672 sync.h: makeheaders
673 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
674 touch headers
675
676 tag_.c: $(SRCDIR)/tag.c $(SRCDIR)/VERSION translate
677 ./translate $(SRCDIR)/tag.c | sed -f $(SRCDIR)/VERSION >tag_.c
678
679 tag.o: tag_.c tag.h $(SRCDIR)/config.h
680 $(XTCC) -o tag.o -c tag_.c
681
682 tag.h: makeheaders
683 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
684 touch headers
685
686 tagview_.c: $(SRCDIR)/tagview.c $(SRCDIR)/VERSION translate
687 ./translate $(SRCDIR)/tagview.c | sed -f $(SRCDIR)/VERSION >tagview_.c
688
689 tagview.o: tagview_.c tagview.h $(SRCDIR)/config.h
690 $(XTCC) -o tagview.o -c tagview_.c
691
692 tagview.h: makeheaders
693 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
 
 
 
 
 
 
 
 
 
 
694 touch headers
695
696 timeline_.c: $(SRCDIR)/timeline.c $(SRCDIR)/VERSION translate
697 ./translate $(SRCDIR)/timeline.c | sed -f $(SRCDIR)/VERSION >timeline_.c
698
699 timeline.o: timeline_.c timeline.h $(SRCDIR)/config.h
700 $(XTCC) -o timeline.o -c timeline_.c
701
702 timeline.h: makeheaders
703 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
704 touch headers
705
706 tkt_.c: $(SRCDIR)/tkt.c $(SRCDIR)/VERSION translate
707 ./translate $(SRCDIR)/tkt.c | sed -f $(SRCDIR)/VERSION >tkt_.c
708
709 tkt.o: tkt_.c tkt.h $(SRCDIR)/config.h
710 $(XTCC) -o tkt.o -c tkt_.c
711
712 tkt.h: makeheaders
713 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
714 touch headers
715
716 tktconfig_.c: $(SRCDIR)/tktconfig.c $(SRCDIR)/VERSION translate
717 ./translate $(SRCDIR)/tktconfig.c | sed -f $(SRCDIR)/VERSION >tktconfig_.c
718
719 tktconfig.o: tktconfig_.c tktconfig.h $(SRCDIR)/config.h
720 $(XTCC) -o tktconfig.o -c tktconfig_.c
721
722 tktconfig.h: makeheaders
723 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
724 touch headers
725
726 tktsetup_.c: $(SRCDIR)/tktsetup.c $(SRCDIR)/VERSION translate
727 ./translate $(SRCDIR)/tktsetup.c | sed -f $(SRCDIR)/VERSION >tktsetup_.c
728
729 tktsetup.o: tktsetup_.c tktsetup.h $(SRCDIR)/config.h
730 $(XTCC) -o tktsetup.o -c tktsetup_.c
731
732 tktsetup.h: makeheaders
733 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
734 touch headers
735
736 undo_.c: $(SRCDIR)/undo.c $(SRCDIR)/VERSION translate
737 ./translate $(SRCDIR)/undo.c | sed -f $(SRCDIR)/VERSION >undo_.c
738
739 undo.o: undo_.c undo.h $(SRCDIR)/config.h
740 $(XTCC) -o undo.o -c undo_.c
741
742 undo.h: makeheaders
743 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
744 touch headers
745
746 update_.c: $(SRCDIR)/update.c $(SRCDIR)/VERSION translate
747 ./translate $(SRCDIR)/update.c | sed -f $(SRCDIR)/VERSION >update_.c
748
749 update.o: update_.c update.h $(SRCDIR)/config.h
750 $(XTCC) -o update.o -c update_.c
751
752 update.h: makeheaders
753 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
754 touch headers
755
756 url_.c: $(SRCDIR)/url.c $(SRCDIR)/VERSION translate
757 ./translate $(SRCDIR)/url.c | sed -f $(SRCDIR)/VERSION >url_.c
758
759 url.o: url_.c url.h $(SRCDIR)/config.h
760 $(XTCC) -o url.o -c url_.c
761
762 url.h: makeheaders
763 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
764 touch headers
765
766 user_.c: $(SRCDIR)/user.c $(SRCDIR)/VERSION translate
767 ./translate $(SRCDIR)/user.c | sed -f $(SRCDIR)/VERSION >user_.c
768
769 user.o: user_.c user.h $(SRCDIR)/config.h
770 $(XTCC) -o user.o -c user_.c
771
772 user.h: makeheaders
773 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
774 touch headers
775
776 verify_.c: $(SRCDIR)/verify.c $(SRCDIR)/VERSION translate
777 ./translate $(SRCDIR)/verify.c | sed -f $(SRCDIR)/VERSION >verify_.c
778
779 verify.o: verify_.c verify.h $(SRCDIR)/config.h
780 $(XTCC) -o verify.o -c verify_.c
781
782 verify.h: makeheaders
783 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
784 touch headers
785
786 vfile_.c: $(SRCDIR)/vfile.c $(SRCDIR)/VERSION translate
787 ./translate $(SRCDIR)/vfile.c | sed -f $(SRCDIR)/VERSION >vfile_.c
788
789 vfile.o: vfile_.c vfile.h $(SRCDIR)/config.h
790 $(XTCC) -o vfile.o -c vfile_.c
791
792 vfile.h: makeheaders
793 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
794 touch headers
795
796 wiki_.c: $(SRCDIR)/wiki.c $(SRCDIR)/VERSION translate
797 ./translate $(SRCDIR)/wiki.c | sed -f $(SRCDIR)/VERSION >wiki_.c
798
799 wiki.o: wiki_.c wiki.h $(SRCDIR)/config.h
800 $(XTCC) -o wiki.o -c wiki_.c
801
802 wiki.h: makeheaders
803 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
804 touch headers
805
806 wikiformat_.c: $(SRCDIR)/wikiformat.c $(SRCDIR)/VERSION translate
807 ./translate $(SRCDIR)/wikiformat.c | sed -f $(SRCDIR)/VERSION >wikiformat_.c
808
809 wikiformat.o: wikiformat_.c wikiformat.h $(SRCDIR)/config.h
810 $(XTCC) -o wikiformat.o -c wikiformat_.c
811
812 wikiformat.h: makeheaders
813 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
814 touch headers
815
816 xfer_.c: $(SRCDIR)/xfer.c $(SRCDIR)/VERSION translate
817 ./translate $(SRCDIR)/xfer.c | sed -f $(SRCDIR)/VERSION >xfer_.c
818
819 xfer.o: xfer_.c xfer.h $(SRCDIR)/config.h
820 $(XTCC) -o xfer.o -c xfer_.c
821
822 xfer.h: makeheaders
823 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
824 touch headers
825
826 zip_.c: $(SRCDIR)/zip.c $(SRCDIR)/VERSION translate
827 ./translate $(SRCDIR)/zip.c | sed -f $(SRCDIR)/VERSION >zip_.c
828
829 zip.o: zip_.c zip.h $(SRCDIR)/config.h
830 $(XTCC) -o zip.o -c zip_.c
831
832 zip.h: makeheaders
833 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h subscript_.c:subscript.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h ./VERSION.h
834 touch headers
835
836 sqlite3.o: $(SRCDIR)/sqlite3.c
837 $(XTCC) -DSQLITE_OMIT_LOAD_EXTENSION=1 -DSQLITE_PRIVATE= -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_FTS3=1 -c $(SRCDIR)/sqlite3.c -o sqlite3.o
838
 
 
 
 
 
 
839
--- src/main.mk
+++ src/main.mk
@@ -52,14 +52,14 @@
52 $(SRCDIR)/rss.c \
53 $(SRCDIR)/schema.c \
54 $(SRCDIR)/setup.c \
55 $(SRCDIR)/sha1.c \
56 $(SRCDIR)/style.c \
 
57 $(SRCDIR)/sync.c \
58 $(SRCDIR)/tag.c \
59 $(SRCDIR)/tagview.c \
60 $(SRCDIR)/th_main.c \
61 $(SRCDIR)/timeline.c \
62 $(SRCDIR)/tkt.c \
63 $(SRCDIR)/tktconfig.c \
64 $(SRCDIR)/tktsetup.c \
65 $(SRCDIR)/undo.c \
@@ -113,14 +113,14 @@
113 rss_.c \
114 schema_.c \
115 setup_.c \
116 sha1_.c \
117 style_.c \
 
118 sync_.c \
119 tag_.c \
120 tagview_.c \
121 th_main_.c \
122 timeline_.c \
123 tkt_.c \
124 tktconfig_.c \
125 tktsetup_.c \
126 undo_.c \
@@ -174,14 +174,14 @@
174 rss.o \
175 schema.o \
176 setup.o \
177 sha1.o \
178 style.o \
 
179 sync.o \
180 tag.o \
181 tagview.o \
182 th_main.o \
183 timeline.o \
184 tkt.o \
185 tktconfig.o \
186 tktsetup.o \
187 undo.o \
@@ -222,12 +222,12 @@
222 VERSION.h: $(SRCDIR)/../manifest.uuid $(SRCDIR)/../manifest
223 awk '{ printf "#define MANIFEST_UUID \"%s\"\n", $$1}' $(SRCDIR)/../manifest.uuid >VERSION.h
224 awk '{ printf "#define MANIFEST_VERSION \"[%.10s]\"\n", $$1}' $(SRCDIR)/../manifest.uuid >>VERSION.h
225 awk '$$1=="D"{printf "#define MANIFEST_DATE \"%s %s\"\n", substr($$2,1,10),substr($$2,12)}' $(SRCDIR)/../manifest >>VERSION.h
226
227 $(APPNAME): headers $(OBJ) sqlite3.o th.o th_lang.o
228 $(TCC) -o $(APPNAME) $(OBJ) sqlite3.o th.o th_lang.o $(LIB)
229
230 # This rule prevents make from using its default rules to try build
231 # an executable named "manifest" out of the file named "manifest.c"
232 #
233 $(SRCDIR)/../manifest:
@@ -234,14 +234,14 @@
234 # noop
235
236 clean:
237 rm -f *.o *_.c $(APPNAME) VERSION.h
238 rm -f translate makeheaders mkindex page_index.h headers
239 rm -f add.h admin.h bag.h blob.h branch.h browse.h cgi.h checkin.h checkout.h clearsign.h clone.h comformat.h construct.h content.h db.h delta.h deltacmd.h descendents.h diff.h diffcmd.h encode.h file.h http.h info.h login.h main.h manifest.h md5.h merge.h merge3.h my_page.h name.h pivot.h pqueue.h printf.h rebuild.h rss.h schema.h setup.h sha1.h style.h sync.h tag.h tagview.h th_main.h timeline.h tkt.h tktconfig.h tktsetup.h undo.h update.h url.h user.h verify.h vfile.h wiki.h wikiformat.h xfer.h zip.h
240
241 headers: makeheaders mkindex $(TRANS_SRC) ./VERSION.h
242 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
243 ./mkindex $(TRANS_SRC) >page_index.h
244 touch headers
245
246 add_.c: $(SRCDIR)/add.c $(SRCDIR)/VERSION translate
247 ./translate $(SRCDIR)/add.c | sed -f $(SRCDIR)/VERSION >add_.c
@@ -248,591 +248,597 @@
248
249 add.o: add_.c add.h $(SRCDIR)/config.h
250 $(XTCC) -o add.o -c add_.c
251
252 add.h: makeheaders
253 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
254 touch headers
255
256 admin_.c: $(SRCDIR)/admin.c $(SRCDIR)/VERSION translate
257 ./translate $(SRCDIR)/admin.c | sed -f $(SRCDIR)/VERSION >admin_.c
258
259 admin.o: admin_.c admin.h $(SRCDIR)/config.h
260 $(XTCC) -o admin.o -c admin_.c
261
262 admin.h: makeheaders
263 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
264 touch headers
265
266 bag_.c: $(SRCDIR)/bag.c $(SRCDIR)/VERSION translate
267 ./translate $(SRCDIR)/bag.c | sed -f $(SRCDIR)/VERSION >bag_.c
268
269 bag.o: bag_.c bag.h $(SRCDIR)/config.h
270 $(XTCC) -o bag.o -c bag_.c
271
272 bag.h: makeheaders
273 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
274 touch headers
275
276 blob_.c: $(SRCDIR)/blob.c $(SRCDIR)/VERSION translate
277 ./translate $(SRCDIR)/blob.c | sed -f $(SRCDIR)/VERSION >blob_.c
278
279 blob.o: blob_.c blob.h $(SRCDIR)/config.h
280 $(XTCC) -o blob.o -c blob_.c
281
282 blob.h: makeheaders
283 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
284 touch headers
285
286 branch_.c: $(SRCDIR)/branch.c $(SRCDIR)/VERSION translate
287 ./translate $(SRCDIR)/branch.c | sed -f $(SRCDIR)/VERSION >branch_.c
288
289 branch.o: branch_.c branch.h $(SRCDIR)/config.h
290 $(XTCC) -o branch.o -c branch_.c
291
292 branch.h: makeheaders
293 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
294 touch headers
295
296 browse_.c: $(SRCDIR)/browse.c $(SRCDIR)/VERSION translate
297 ./translate $(SRCDIR)/browse.c | sed -f $(SRCDIR)/VERSION >browse_.c
298
299 browse.o: browse_.c browse.h $(SRCDIR)/config.h
300 $(XTCC) -o browse.o -c browse_.c
301
302 browse.h: makeheaders
303 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
304 touch headers
305
306 cgi_.c: $(SRCDIR)/cgi.c $(SRCDIR)/VERSION translate
307 ./translate $(SRCDIR)/cgi.c | sed -f $(SRCDIR)/VERSION >cgi_.c
308
309 cgi.o: cgi_.c cgi.h $(SRCDIR)/config.h
310 $(XTCC) -o cgi.o -c cgi_.c
311
312 cgi.h: makeheaders
313 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
314 touch headers
315
316 checkin_.c: $(SRCDIR)/checkin.c $(SRCDIR)/VERSION translate
317 ./translate $(SRCDIR)/checkin.c | sed -f $(SRCDIR)/VERSION >checkin_.c
318
319 checkin.o: checkin_.c checkin.h $(SRCDIR)/config.h
320 $(XTCC) -o checkin.o -c checkin_.c
321
322 checkin.h: makeheaders
323 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
324 touch headers
325
326 checkout_.c: $(SRCDIR)/checkout.c $(SRCDIR)/VERSION translate
327 ./translate $(SRCDIR)/checkout.c | sed -f $(SRCDIR)/VERSION >checkout_.c
328
329 checkout.o: checkout_.c checkout.h $(SRCDIR)/config.h
330 $(XTCC) -o checkout.o -c checkout_.c
331
332 checkout.h: makeheaders
333 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
334 touch headers
335
336 clearsign_.c: $(SRCDIR)/clearsign.c $(SRCDIR)/VERSION translate
337 ./translate $(SRCDIR)/clearsign.c | sed -f $(SRCDIR)/VERSION >clearsign_.c
338
339 clearsign.o: clearsign_.c clearsign.h $(SRCDIR)/config.h
340 $(XTCC) -o clearsign.o -c clearsign_.c
341
342 clearsign.h: makeheaders
343 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
344 touch headers
345
346 clone_.c: $(SRCDIR)/clone.c $(SRCDIR)/VERSION translate
347 ./translate $(SRCDIR)/clone.c | sed -f $(SRCDIR)/VERSION >clone_.c
348
349 clone.o: clone_.c clone.h $(SRCDIR)/config.h
350 $(XTCC) -o clone.o -c clone_.c
351
352 clone.h: makeheaders
353 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
354 touch headers
355
356 comformat_.c: $(SRCDIR)/comformat.c $(SRCDIR)/VERSION translate
357 ./translate $(SRCDIR)/comformat.c | sed -f $(SRCDIR)/VERSION >comformat_.c
358
359 comformat.o: comformat_.c comformat.h $(SRCDIR)/config.h
360 $(XTCC) -o comformat.o -c comformat_.c
361
362 comformat.h: makeheaders
363 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
364 touch headers
365
366 construct_.c: $(SRCDIR)/construct.c $(SRCDIR)/VERSION translate
367 ./translate $(SRCDIR)/construct.c | sed -f $(SRCDIR)/VERSION >construct_.c
368
369 construct.o: construct_.c construct.h $(SRCDIR)/config.h
370 $(XTCC) -o construct.o -c construct_.c
371
372 construct.h: makeheaders
373 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
374 touch headers
375
376 content_.c: $(SRCDIR)/content.c $(SRCDIR)/VERSION translate
377 ./translate $(SRCDIR)/content.c | sed -f $(SRCDIR)/VERSION >content_.c
378
379 content.o: content_.c content.h $(SRCDIR)/config.h
380 $(XTCC) -o content.o -c content_.c
381
382 content.h: makeheaders
383 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
384 touch headers
385
386 db_.c: $(SRCDIR)/db.c $(SRCDIR)/VERSION translate
387 ./translate $(SRCDIR)/db.c | sed -f $(SRCDIR)/VERSION >db_.c
388
389 db.o: db_.c db.h $(SRCDIR)/config.h
390 $(XTCC) -o db.o -c db_.c
391
392 db.h: makeheaders
393 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
394 touch headers
395
396 delta_.c: $(SRCDIR)/delta.c $(SRCDIR)/VERSION translate
397 ./translate $(SRCDIR)/delta.c | sed -f $(SRCDIR)/VERSION >delta_.c
398
399 delta.o: delta_.c delta.h $(SRCDIR)/config.h
400 $(XTCC) -o delta.o -c delta_.c
401
402 delta.h: makeheaders
403 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
404 touch headers
405
406 deltacmd_.c: $(SRCDIR)/deltacmd.c $(SRCDIR)/VERSION translate
407 ./translate $(SRCDIR)/deltacmd.c | sed -f $(SRCDIR)/VERSION >deltacmd_.c
408
409 deltacmd.o: deltacmd_.c deltacmd.h $(SRCDIR)/config.h
410 $(XTCC) -o deltacmd.o -c deltacmd_.c
411
412 deltacmd.h: makeheaders
413 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
414 touch headers
415
416 descendents_.c: $(SRCDIR)/descendents.c $(SRCDIR)/VERSION translate
417 ./translate $(SRCDIR)/descendents.c | sed -f $(SRCDIR)/VERSION >descendents_.c
418
419 descendents.o: descendents_.c descendents.h $(SRCDIR)/config.h
420 $(XTCC) -o descendents.o -c descendents_.c
421
422 descendents.h: makeheaders
423 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
424 touch headers
425
426 diff_.c: $(SRCDIR)/diff.c $(SRCDIR)/VERSION translate
427 ./translate $(SRCDIR)/diff.c | sed -f $(SRCDIR)/VERSION >diff_.c
428
429 diff.o: diff_.c diff.h $(SRCDIR)/config.h
430 $(XTCC) -o diff.o -c diff_.c
431
432 diff.h: makeheaders
433 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
434 touch headers
435
436 diffcmd_.c: $(SRCDIR)/diffcmd.c $(SRCDIR)/VERSION translate
437 ./translate $(SRCDIR)/diffcmd.c | sed -f $(SRCDIR)/VERSION >diffcmd_.c
438
439 diffcmd.o: diffcmd_.c diffcmd.h $(SRCDIR)/config.h
440 $(XTCC) -o diffcmd.o -c diffcmd_.c
441
442 diffcmd.h: makeheaders
443 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
444 touch headers
445
446 encode_.c: $(SRCDIR)/encode.c $(SRCDIR)/VERSION translate
447 ./translate $(SRCDIR)/encode.c | sed -f $(SRCDIR)/VERSION >encode_.c
448
449 encode.o: encode_.c encode.h $(SRCDIR)/config.h
450 $(XTCC) -o encode.o -c encode_.c
451
452 encode.h: makeheaders
453 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
454 touch headers
455
456 file_.c: $(SRCDIR)/file.c $(SRCDIR)/VERSION translate
457 ./translate $(SRCDIR)/file.c | sed -f $(SRCDIR)/VERSION >file_.c
458
459 file.o: file_.c file.h $(SRCDIR)/config.h
460 $(XTCC) -o file.o -c file_.c
461
462 file.h: makeheaders
463 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
464 touch headers
465
466 http_.c: $(SRCDIR)/http.c $(SRCDIR)/VERSION translate
467 ./translate $(SRCDIR)/http.c | sed -f $(SRCDIR)/VERSION >http_.c
468
469 http.o: http_.c http.h $(SRCDIR)/config.h
470 $(XTCC) -o http.o -c http_.c
471
472 http.h: makeheaders
473 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
474 touch headers
475
476 info_.c: $(SRCDIR)/info.c $(SRCDIR)/VERSION translate
477 ./translate $(SRCDIR)/info.c | sed -f $(SRCDIR)/VERSION >info_.c
478
479 info.o: info_.c info.h $(SRCDIR)/config.h
480 $(XTCC) -o info.o -c info_.c
481
482 info.h: makeheaders
483 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
484 touch headers
485
486 login_.c: $(SRCDIR)/login.c $(SRCDIR)/VERSION translate
487 ./translate $(SRCDIR)/login.c | sed -f $(SRCDIR)/VERSION >login_.c
488
489 login.o: login_.c login.h $(SRCDIR)/config.h
490 $(XTCC) -o login.o -c login_.c
491
492 login.h: makeheaders
493 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
494 touch headers
495
496 main_.c: $(SRCDIR)/main.c $(SRCDIR)/VERSION translate
497 ./translate $(SRCDIR)/main.c | sed -f $(SRCDIR)/VERSION >main_.c
498
499 main.o: main_.c main.h page_index.h $(SRCDIR)/config.h
500 $(XTCC) -o main.o -c main_.c
501
502 main.h: makeheaders
503 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
504 touch headers
505
506 manifest_.c: $(SRCDIR)/manifest.c $(SRCDIR)/VERSION translate
507 ./translate $(SRCDIR)/manifest.c | sed -f $(SRCDIR)/VERSION >manifest_.c
508
509 manifest.o: manifest_.c manifest.h $(SRCDIR)/config.h
510 $(XTCC) -o manifest.o -c manifest_.c
511
512 manifest.h: makeheaders
513 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
514 touch headers
515
516 md5_.c: $(SRCDIR)/md5.c $(SRCDIR)/VERSION translate
517 ./translate $(SRCDIR)/md5.c | sed -f $(SRCDIR)/VERSION >md5_.c
518
519 md5.o: md5_.c md5.h $(SRCDIR)/config.h
520 $(XTCC) -o md5.o -c md5_.c
521
522 md5.h: makeheaders
523 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
524 touch headers
525
526 merge_.c: $(SRCDIR)/merge.c $(SRCDIR)/VERSION translate
527 ./translate $(SRCDIR)/merge.c | sed -f $(SRCDIR)/VERSION >merge_.c
528
529 merge.o: merge_.c merge.h $(SRCDIR)/config.h
530 $(XTCC) -o merge.o -c merge_.c
531
532 merge.h: makeheaders
533 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
534 touch headers
535
536 merge3_.c: $(SRCDIR)/merge3.c $(SRCDIR)/VERSION translate
537 ./translate $(SRCDIR)/merge3.c | sed -f $(SRCDIR)/VERSION >merge3_.c
538
539 merge3.o: merge3_.c merge3.h $(SRCDIR)/config.h
540 $(XTCC) -o merge3.o -c merge3_.c
541
542 merge3.h: makeheaders
543 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
544 touch headers
545
546 my_page_.c: $(SRCDIR)/my_page.c $(SRCDIR)/VERSION translate
547 ./translate $(SRCDIR)/my_page.c | sed -f $(SRCDIR)/VERSION >my_page_.c
548
549 my_page.o: my_page_.c my_page.h $(SRCDIR)/config.h
550 $(XTCC) -o my_page.o -c my_page_.c
551
552 my_page.h: makeheaders
553 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
554 touch headers
555
556 name_.c: $(SRCDIR)/name.c $(SRCDIR)/VERSION translate
557 ./translate $(SRCDIR)/name.c | sed -f $(SRCDIR)/VERSION >name_.c
558
559 name.o: name_.c name.h $(SRCDIR)/config.h
560 $(XTCC) -o name.o -c name_.c
561
562 name.h: makeheaders
563 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
564 touch headers
565
566 pivot_.c: $(SRCDIR)/pivot.c $(SRCDIR)/VERSION translate
567 ./translate $(SRCDIR)/pivot.c | sed -f $(SRCDIR)/VERSION >pivot_.c
568
569 pivot.o: pivot_.c pivot.h $(SRCDIR)/config.h
570 $(XTCC) -o pivot.o -c pivot_.c
571
572 pivot.h: makeheaders
573 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
574 touch headers
575
576 pqueue_.c: $(SRCDIR)/pqueue.c $(SRCDIR)/VERSION translate
577 ./translate $(SRCDIR)/pqueue.c | sed -f $(SRCDIR)/VERSION >pqueue_.c
578
579 pqueue.o: pqueue_.c pqueue.h $(SRCDIR)/config.h
580 $(XTCC) -o pqueue.o -c pqueue_.c
581
582 pqueue.h: makeheaders
583 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
584 touch headers
585
586 printf_.c: $(SRCDIR)/printf.c $(SRCDIR)/VERSION translate
587 ./translate $(SRCDIR)/printf.c | sed -f $(SRCDIR)/VERSION >printf_.c
588
589 printf.o: printf_.c printf.h $(SRCDIR)/config.h
590 $(XTCC) -o printf.o -c printf_.c
591
592 printf.h: makeheaders
593 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
594 touch headers
595
596 rebuild_.c: $(SRCDIR)/rebuild.c $(SRCDIR)/VERSION translate
597 ./translate $(SRCDIR)/rebuild.c | sed -f $(SRCDIR)/VERSION >rebuild_.c
598
599 rebuild.o: rebuild_.c rebuild.h $(SRCDIR)/config.h
600 $(XTCC) -o rebuild.o -c rebuild_.c
601
602 rebuild.h: makeheaders
603 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
604 touch headers
605
606 rss_.c: $(SRCDIR)/rss.c $(SRCDIR)/VERSION translate
607 ./translate $(SRCDIR)/rss.c | sed -f $(SRCDIR)/VERSION >rss_.c
608
609 rss.o: rss_.c rss.h $(SRCDIR)/config.h
610 $(XTCC) -o rss.o -c rss_.c
611
612 rss.h: makeheaders
613 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
614 touch headers
615
616 schema_.c: $(SRCDIR)/schema.c $(SRCDIR)/VERSION translate
617 ./translate $(SRCDIR)/schema.c | sed -f $(SRCDIR)/VERSION >schema_.c
618
619 schema.o: schema_.c schema.h $(SRCDIR)/config.h
620 $(XTCC) -o schema.o -c schema_.c
621
622 schema.h: makeheaders
623 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
624 touch headers
625
626 setup_.c: $(SRCDIR)/setup.c $(SRCDIR)/VERSION translate
627 ./translate $(SRCDIR)/setup.c | sed -f $(SRCDIR)/VERSION >setup_.c
628
629 setup.o: setup_.c setup.h $(SRCDIR)/config.h
630 $(XTCC) -o setup.o -c setup_.c
631
632 setup.h: makeheaders
633 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
634 touch headers
635
636 sha1_.c: $(SRCDIR)/sha1.c $(SRCDIR)/VERSION translate
637 ./translate $(SRCDIR)/sha1.c | sed -f $(SRCDIR)/VERSION >sha1_.c
638
639 sha1.o: sha1_.c sha1.h $(SRCDIR)/config.h
640 $(XTCC) -o sha1.o -c sha1_.c
641
642 sha1.h: makeheaders
643 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
644 touch headers
645
646 style_.c: $(SRCDIR)/style.c $(SRCDIR)/VERSION translate
647 ./translate $(SRCDIR)/style.c | sed -f $(SRCDIR)/VERSION >style_.c
648
649 style.o: style_.c style.h $(SRCDIR)/config.h
650 $(XTCC) -o style.o -c style_.c
651
652 style.h: makeheaders
653 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
 
 
 
 
 
 
 
 
 
 
654 touch headers
655
656 sync_.c: $(SRCDIR)/sync.c $(SRCDIR)/VERSION translate
657 ./translate $(SRCDIR)/sync.c | sed -f $(SRCDIR)/VERSION >sync_.c
658
659 sync.o: sync_.c sync.h $(SRCDIR)/config.h
660 $(XTCC) -o sync.o -c sync_.c
661
662 sync.h: makeheaders
663 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
664 touch headers
665
666 tag_.c: $(SRCDIR)/tag.c $(SRCDIR)/VERSION translate
667 ./translate $(SRCDIR)/tag.c | sed -f $(SRCDIR)/VERSION >tag_.c
668
669 tag.o: tag_.c tag.h $(SRCDIR)/config.h
670 $(XTCC) -o tag.o -c tag_.c
671
672 tag.h: makeheaders
673 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
674 touch headers
675
676 tagview_.c: $(SRCDIR)/tagview.c $(SRCDIR)/VERSION translate
677 ./translate $(SRCDIR)/tagview.c | sed -f $(SRCDIR)/VERSION >tagview_.c
678
679 tagview.o: tagview_.c tagview.h $(SRCDIR)/config.h
680 $(XTCC) -o tagview.o -c tagview_.c
681
682 tagview.h: makeheaders
683 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
684 touch headers
685
686 th_main_.c: $(SRCDIR)/th_main.c $(SRCDIR)/VERSION translate
687 ./translate $(SRCDIR)/th_main.c | sed -f $(SRCDIR)/VERSION >th_main_.c
688
689 th_main.o: th_main_.c th_main.h $(SRCDIR)/config.h
690 $(XTCC) -o th_main.o -c th_main_.c
691
692 th_main.h: makeheaders
693 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
694 touch headers
695
696 timeline_.c: $(SRCDIR)/timeline.c $(SRCDIR)/VERSION translate
697 ./translate $(SRCDIR)/timeline.c | sed -f $(SRCDIR)/VERSION >timeline_.c
698
699 timeline.o: timeline_.c timeline.h $(SRCDIR)/config.h
700 $(XTCC) -o timeline.o -c timeline_.c
701
702 timeline.h: makeheaders
703 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
704 touch headers
705
706 tkt_.c: $(SRCDIR)/tkt.c $(SRCDIR)/VERSION translate
707 ./translate $(SRCDIR)/tkt.c | sed -f $(SRCDIR)/VERSION >tkt_.c
708
709 tkt.o: tkt_.c tkt.h $(SRCDIR)/config.h
710 $(XTCC) -o tkt.o -c tkt_.c
711
712 tkt.h: makeheaders
713 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
714 touch headers
715
716 tktconfig_.c: $(SRCDIR)/tktconfig.c $(SRCDIR)/VERSION translate
717 ./translate $(SRCDIR)/tktconfig.c | sed -f $(SRCDIR)/VERSION >tktconfig_.c
718
719 tktconfig.o: tktconfig_.c tktconfig.h $(SRCDIR)/config.h
720 $(XTCC) -o tktconfig.o -c tktconfig_.c
721
722 tktconfig.h: makeheaders
723 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
724 touch headers
725
726 tktsetup_.c: $(SRCDIR)/tktsetup.c $(SRCDIR)/VERSION translate
727 ./translate $(SRCDIR)/tktsetup.c | sed -f $(SRCDIR)/VERSION >tktsetup_.c
728
729 tktsetup.o: tktsetup_.c tktsetup.h $(SRCDIR)/config.h
730 $(XTCC) -o tktsetup.o -c tktsetup_.c
731
732 tktsetup.h: makeheaders
733 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
734 touch headers
735
736 undo_.c: $(SRCDIR)/undo.c $(SRCDIR)/VERSION translate
737 ./translate $(SRCDIR)/undo.c | sed -f $(SRCDIR)/VERSION >undo_.c
738
739 undo.o: undo_.c undo.h $(SRCDIR)/config.h
740 $(XTCC) -o undo.o -c undo_.c
741
742 undo.h: makeheaders
743 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
744 touch headers
745
746 update_.c: $(SRCDIR)/update.c $(SRCDIR)/VERSION translate
747 ./translate $(SRCDIR)/update.c | sed -f $(SRCDIR)/VERSION >update_.c
748
749 update.o: update_.c update.h $(SRCDIR)/config.h
750 $(XTCC) -o update.o -c update_.c
751
752 update.h: makeheaders
753 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
754 touch headers
755
756 url_.c: $(SRCDIR)/url.c $(SRCDIR)/VERSION translate
757 ./translate $(SRCDIR)/url.c | sed -f $(SRCDIR)/VERSION >url_.c
758
759 url.o: url_.c url.h $(SRCDIR)/config.h
760 $(XTCC) -o url.o -c url_.c
761
762 url.h: makeheaders
763 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
764 touch headers
765
766 user_.c: $(SRCDIR)/user.c $(SRCDIR)/VERSION translate
767 ./translate $(SRCDIR)/user.c | sed -f $(SRCDIR)/VERSION >user_.c
768
769 user.o: user_.c user.h $(SRCDIR)/config.h
770 $(XTCC) -o user.o -c user_.c
771
772 user.h: makeheaders
773 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
774 touch headers
775
776 verify_.c: $(SRCDIR)/verify.c $(SRCDIR)/VERSION translate
777 ./translate $(SRCDIR)/verify.c | sed -f $(SRCDIR)/VERSION >verify_.c
778
779 verify.o: verify_.c verify.h $(SRCDIR)/config.h
780 $(XTCC) -o verify.o -c verify_.c
781
782 verify.h: makeheaders
783 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
784 touch headers
785
786 vfile_.c: $(SRCDIR)/vfile.c $(SRCDIR)/VERSION translate
787 ./translate $(SRCDIR)/vfile.c | sed -f $(SRCDIR)/VERSION >vfile_.c
788
789 vfile.o: vfile_.c vfile.h $(SRCDIR)/config.h
790 $(XTCC) -o vfile.o -c vfile_.c
791
792 vfile.h: makeheaders
793 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
794 touch headers
795
796 wiki_.c: $(SRCDIR)/wiki.c $(SRCDIR)/VERSION translate
797 ./translate $(SRCDIR)/wiki.c | sed -f $(SRCDIR)/VERSION >wiki_.c
798
799 wiki.o: wiki_.c wiki.h $(SRCDIR)/config.h
800 $(XTCC) -o wiki.o -c wiki_.c
801
802 wiki.h: makeheaders
803 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
804 touch headers
805
806 wikiformat_.c: $(SRCDIR)/wikiformat.c $(SRCDIR)/VERSION translate
807 ./translate $(SRCDIR)/wikiformat.c | sed -f $(SRCDIR)/VERSION >wikiformat_.c
808
809 wikiformat.o: wikiformat_.c wikiformat.h $(SRCDIR)/config.h
810 $(XTCC) -o wikiformat.o -c wikiformat_.c
811
812 wikiformat.h: makeheaders
813 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
814 touch headers
815
816 xfer_.c: $(SRCDIR)/xfer.c $(SRCDIR)/VERSION translate
817 ./translate $(SRCDIR)/xfer.c | sed -f $(SRCDIR)/VERSION >xfer_.c
818
819 xfer.o: xfer_.c xfer.h $(SRCDIR)/config.h
820 $(XTCC) -o xfer.o -c xfer_.c
821
822 xfer.h: makeheaders
823 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
824 touch headers
825
826 zip_.c: $(SRCDIR)/zip.c $(SRCDIR)/VERSION translate
827 ./translate $(SRCDIR)/zip.c | sed -f $(SRCDIR)/VERSION >zip_.c
828
829 zip.o: zip_.c zip.h $(SRCDIR)/config.h
830 $(XTCC) -o zip.o -c zip_.c
831
832 zip.h: makeheaders
833 ./makeheaders add_.c:add.h admin_.c:admin.h bag_.c:bag.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.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 construct_.c:construct.h content_.c:content.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendents_.c:descendents.h diff_.c:diff.h diffcmd_.c:diffcmd.h encode_.c:encode.h file_.c:file.h http_.c:http.h info_.c:info.h login_.c:login.h main_.c:main.h manifest_.c:manifest.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h my_page_.c:my_page.h name_.c:name.h pivot_.c:pivot.h pqueue_.c:pqueue.h printf_.c:printf.h rebuild_.c:rebuild.h rss_.c:rss.h schema_.c:schema.h setup_.c:setup.h sha1_.c:sha1.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tagview_.c:tagview.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktconfig_.c:tktconfig.h tktsetup_.c:tktsetup.h undo_.c:undo.h update_.c:update.h url_.c:url.h user_.c:user.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h xfer_.c:xfer.h zip_.c:zip.h $(SRCDIR)/sqlite3.h $(SRCDIR)/th.h ./VERSION.h
834 touch headers
835
836 sqlite3.o: $(SRCDIR)/sqlite3.c
837 $(XTCC) -DSQLITE_OMIT_LOAD_EXTENSION=1 -DSQLITE_PRIVATE= -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_FTS3=1 -c $(SRCDIR)/sqlite3.c -o sqlite3.o
838
839 th.o: $(SRCDIR)/th.c
840 $(XTCC) -I$(SRCDIR) -c $(SRCDIR)/th.c -o th.o
841
842 th_lang.o: $(SRCDIR)/th_lang.c
843 $(XTCC) -I$(SRCDIR) -c $(SRCDIR)/th_lang.c -o th_lang.o
844
845
+14 -5
--- src/makemake.tcl
+++ src/makemake.tcl
@@ -1,11 +1,12 @@
11
#!/usr/bin/tclsh
22
#
33
# Run this TCL script to generate the "main.mk" makefile.
44
#
55
6
-# Basenames of all source files:
6
+# Basenames of all source files that get preprocessed using
7
+# "translate" and "makeheaders"
78
#
89
set src {
910
add
1011
admin
1112
bag
@@ -45,14 +46,14 @@
4546
rss
4647
schema
4748
setup
4849
sha1
4950
style
50
- subscript
5151
sync
5252
tag
5353
tagview
54
+ th_main
5455
timeline
5556
tkt
5657
tktconfig
5758
tktsetup
5859
undo
@@ -131,12 +132,12 @@
131132
$(SRCDIR)/../manifest.uuid >>VERSION.h
132133
awk '$$1=="D"{printf "#define MANIFEST_DATE \"%s %s\"\n",\
133134
substr($$2,1,10),substr($$2,12)}' \
134135
$(SRCDIR)/../manifest >>VERSION.h
135136
136
-$(APPNAME): headers $(OBJ) sqlite3.o
137
- $(TCC) -o $(APPNAME) $(OBJ) sqlite3.o $(LIB)
137
+$(APPNAME): headers $(OBJ) sqlite3.o th.o th_lang.o
138
+ $(TCC) -o $(APPNAME) $(OBJ) sqlite3.o th.o th_lang.o $(LIB)
138139
139140
# This rule prevents make from using its default rules to try build
140141
# an executable named "manifest" out of the file named "manifest.c"
141142
#
142143
$(SRCDIR)/../manifest:
@@ -153,11 +154,13 @@
153154
set mhargs {}
154155
foreach s [lsort $src] {
155156
append mhargs " ${s}_.c:$s.h"
156157
set extra_h($s) {}
157158
}
158
-append mhargs " \$(SRCDIR)/sqlite3.h ./VERSION.h"
159
+append mhargs " \$(SRCDIR)/sqlite3.h"
160
+append mhargs " \$(SRCDIR)/th.h"
161
+append mhargs " ./VERSION.h"
159162
puts "headers:\tmakeheaders mkindex \$(TRANS_SRC) ./VERSION.h"
160163
puts "\t./makeheaders $mhargs"
161164
puts "\t./mkindex \$(TRANS_SRC) >page_index.h"
162165
puts "\ttouch headers\n"
163166
set extra_h(main) page_index.h
@@ -175,5 +178,11 @@
175178
puts "sqlite3.o:\t\$(SRCDIR)/sqlite3.c"
176179
set opt {-DSQLITE_OMIT_LOAD_EXTENSION=1 -DSQLITE_PRIVATE=}
177180
append opt " -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4"
178181
append opt " -DSQLITE_ENABLE_FTS3=1"
179182
puts "\t\$(XTCC) $opt -c \$(SRCDIR)/sqlite3.c -o sqlite3.o\n"
183
+
184
+puts "th.o:\t\$(SRCDIR)/th.c"
185
+puts "\t\$(XTCC) -I\$(SRCDIR) -c \$(SRCDIR)/th.c -o th.o\n"
186
+
187
+puts "th_lang.o:\t\$(SRCDIR)/th_lang.c"
188
+puts "\t\$(XTCC) -I\$(SRCDIR) -c \$(SRCDIR)/th_lang.c -o th_lang.o\n"
180189
--- src/makemake.tcl
+++ src/makemake.tcl
@@ -1,11 +1,12 @@
1 #!/usr/bin/tclsh
2 #
3 # Run this TCL script to generate the "main.mk" makefile.
4 #
5
6 # Basenames of all source files:
 
7 #
8 set src {
9 add
10 admin
11 bag
@@ -45,14 +46,14 @@
45 rss
46 schema
47 setup
48 sha1
49 style
50 subscript
51 sync
52 tag
53 tagview
 
54 timeline
55 tkt
56 tktconfig
57 tktsetup
58 undo
@@ -131,12 +132,12 @@
131 $(SRCDIR)/../manifest.uuid >>VERSION.h
132 awk '$$1=="D"{printf "#define MANIFEST_DATE \"%s %s\"\n",\
133 substr($$2,1,10),substr($$2,12)}' \
134 $(SRCDIR)/../manifest >>VERSION.h
135
136 $(APPNAME): headers $(OBJ) sqlite3.o
137 $(TCC) -o $(APPNAME) $(OBJ) sqlite3.o $(LIB)
138
139 # This rule prevents make from using its default rules to try build
140 # an executable named "manifest" out of the file named "manifest.c"
141 #
142 $(SRCDIR)/../manifest:
@@ -153,11 +154,13 @@
153 set mhargs {}
154 foreach s [lsort $src] {
155 append mhargs " ${s}_.c:$s.h"
156 set extra_h($s) {}
157 }
158 append mhargs " \$(SRCDIR)/sqlite3.h ./VERSION.h"
 
 
159 puts "headers:\tmakeheaders mkindex \$(TRANS_SRC) ./VERSION.h"
160 puts "\t./makeheaders $mhargs"
161 puts "\t./mkindex \$(TRANS_SRC) >page_index.h"
162 puts "\ttouch headers\n"
163 set extra_h(main) page_index.h
@@ -175,5 +178,11 @@
175 puts "sqlite3.o:\t\$(SRCDIR)/sqlite3.c"
176 set opt {-DSQLITE_OMIT_LOAD_EXTENSION=1 -DSQLITE_PRIVATE=}
177 append opt " -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4"
178 append opt " -DSQLITE_ENABLE_FTS3=1"
179 puts "\t\$(XTCC) $opt -c \$(SRCDIR)/sqlite3.c -o sqlite3.o\n"
 
 
 
 
 
 
180
--- src/makemake.tcl
+++ src/makemake.tcl
@@ -1,11 +1,12 @@
1 #!/usr/bin/tclsh
2 #
3 # Run this TCL script to generate the "main.mk" makefile.
4 #
5
6 # Basenames of all source files that get preprocessed using
7 # "translate" and "makeheaders"
8 #
9 set src {
10 add
11 admin
12 bag
@@ -45,14 +46,14 @@
46 rss
47 schema
48 setup
49 sha1
50 style
 
51 sync
52 tag
53 tagview
54 th_main
55 timeline
56 tkt
57 tktconfig
58 tktsetup
59 undo
@@ -131,12 +132,12 @@
132 $(SRCDIR)/../manifest.uuid >>VERSION.h
133 awk '$$1=="D"{printf "#define MANIFEST_DATE \"%s %s\"\n",\
134 substr($$2,1,10),substr($$2,12)}' \
135 $(SRCDIR)/../manifest >>VERSION.h
136
137 $(APPNAME): headers $(OBJ) sqlite3.o th.o th_lang.o
138 $(TCC) -o $(APPNAME) $(OBJ) sqlite3.o th.o th_lang.o $(LIB)
139
140 # This rule prevents make from using its default rules to try build
141 # an executable named "manifest" out of the file named "manifest.c"
142 #
143 $(SRCDIR)/../manifest:
@@ -153,11 +154,13 @@
154 set mhargs {}
155 foreach s [lsort $src] {
156 append mhargs " ${s}_.c:$s.h"
157 set extra_h($s) {}
158 }
159 append mhargs " \$(SRCDIR)/sqlite3.h"
160 append mhargs " \$(SRCDIR)/th.h"
161 append mhargs " ./VERSION.h"
162 puts "headers:\tmakeheaders mkindex \$(TRANS_SRC) ./VERSION.h"
163 puts "\t./makeheaders $mhargs"
164 puts "\t./mkindex \$(TRANS_SRC) >page_index.h"
165 puts "\ttouch headers\n"
166 set extra_h(main) page_index.h
@@ -175,5 +178,11 @@
178 puts "sqlite3.o:\t\$(SRCDIR)/sqlite3.c"
179 set opt {-DSQLITE_OMIT_LOAD_EXTENSION=1 -DSQLITE_PRIVATE=}
180 append opt " -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4"
181 append opt " -DSQLITE_ENABLE_FTS3=1"
182 puts "\t\$(XTCC) $opt -c \$(SRCDIR)/sqlite3.c -o sqlite3.o\n"
183
184 puts "th.o:\t\$(SRCDIR)/th.c"
185 puts "\t\$(XTCC) -I\$(SRCDIR) -c \$(SRCDIR)/th.c -o th.o\n"
186
187 puts "th_lang.o:\t\$(SRCDIR)/th_lang.c"
188 puts "\t\$(XTCC) -I\$(SRCDIR) -c \$(SRCDIR)/th_lang.c -o th_lang.o\n"
189
+7 -3
--- src/manifest.c
+++ src/manifest.c
@@ -65,10 +65,11 @@
6565
int nFile; /* Number of F lines */
6666
int nFileAlloc; /* Slots allocated in aFile[] */
6767
struct {
6868
char *zName; /* Name of a file */
6969
char *zUuid; /* UUID of the file */
70
+ char *zPerm; /* File permissions */
7071
} *aFile;
7172
int nParent; /* Number of parents */
7273
int nParentAlloc; /* Slots allocated in azParent[] */
7374
char **azParent; /* UUIDs of parents */
7475
int nCChild; /* Number of cluster children */
@@ -155,10 +156,11 @@
155156
blob_zero(pContent);
156157
pContent = &p->content;
157158
158159
blob_zero(&a1);
159160
blob_zero(&a2);
161
+ blob_zero(&a3);
160162
md5sum_init();
161163
while( blob_line(pContent, &line) ){
162164
char *z = blob_buffer(&line);
163165
lineNo++;
164166
if( z[0]=='-' ){
@@ -275,24 +277,25 @@
275277
}
276278
break;
277279
}
278280
279281
/*
280
- ** F <filename> <uuid>
282
+ ** F <filename> <uuid> ?<permissions>?
281283
**
282284
** Identifies a file in a manifest. Multiple F lines are
283285
** allowed in a manifest. F lines are not allowed in any
284286
** other control file. The filename is fossil-encoded.
285287
*/
286288
case 'F': {
287
- char *zName, *zUuid;
289
+ char *zName, *zUuid, *zPerm;
288290
md5sum_step_text(blob_buffer(&line), blob_size(&line));
289291
if( blob_token(&line, &a1)==0 ) goto manifest_syntax_error;
290292
if( blob_token(&line, &a2)==0 ) goto manifest_syntax_error;
291
- if( blob_token(&line, &a3)!=0 ) goto manifest_syntax_error;
292293
zName = blob_terminate(&a1);
293294
zUuid = blob_terminate(&a2);
295
+ blob_token(&line, &a3);
296
+ zPerm = blob_terminate(&a3);
294297
if( blob_size(&a2)!=UUID_SIZE ) goto manifest_syntax_error;
295298
if( !validate16(zUuid, UUID_SIZE) ) goto manifest_syntax_error;
296299
defossilize(zName);
297300
if( !file_is_simple_pathname(zName) ){
298301
goto manifest_syntax_error;
@@ -303,10 +306,11 @@
303306
if( p->aFile==0 ) fossil_panic("out of memory");
304307
}
305308
i = p->nFile++;
306309
p->aFile[i].zName = zName;
307310
p->aFile[i].zUuid = zUuid;
311
+ p->aFile[i].zPerm = zPerm;
308312
if( i>0 && strcmp(p->aFile[i-1].zName, zName)>=0 ){
309313
goto manifest_syntax_error;
310314
}
311315
break;
312316
}
313317
--- src/manifest.c
+++ src/manifest.c
@@ -65,10 +65,11 @@
65 int nFile; /* Number of F lines */
66 int nFileAlloc; /* Slots allocated in aFile[] */
67 struct {
68 char *zName; /* Name of a file */
69 char *zUuid; /* UUID of the file */
 
70 } *aFile;
71 int nParent; /* Number of parents */
72 int nParentAlloc; /* Slots allocated in azParent[] */
73 char **azParent; /* UUIDs of parents */
74 int nCChild; /* Number of cluster children */
@@ -155,10 +156,11 @@
155 blob_zero(pContent);
156 pContent = &p->content;
157
158 blob_zero(&a1);
159 blob_zero(&a2);
 
160 md5sum_init();
161 while( blob_line(pContent, &line) ){
162 char *z = blob_buffer(&line);
163 lineNo++;
164 if( z[0]=='-' ){
@@ -275,24 +277,25 @@
275 }
276 break;
277 }
278
279 /*
280 ** F <filename> <uuid>
281 **
282 ** Identifies a file in a manifest. Multiple F lines are
283 ** allowed in a manifest. F lines are not allowed in any
284 ** other control file. The filename is fossil-encoded.
285 */
286 case 'F': {
287 char *zName, *zUuid;
288 md5sum_step_text(blob_buffer(&line), blob_size(&line));
289 if( blob_token(&line, &a1)==0 ) goto manifest_syntax_error;
290 if( blob_token(&line, &a2)==0 ) goto manifest_syntax_error;
291 if( blob_token(&line, &a3)!=0 ) goto manifest_syntax_error;
292 zName = blob_terminate(&a1);
293 zUuid = blob_terminate(&a2);
 
 
294 if( blob_size(&a2)!=UUID_SIZE ) goto manifest_syntax_error;
295 if( !validate16(zUuid, UUID_SIZE) ) goto manifest_syntax_error;
296 defossilize(zName);
297 if( !file_is_simple_pathname(zName) ){
298 goto manifest_syntax_error;
@@ -303,10 +306,11 @@
303 if( p->aFile==0 ) fossil_panic("out of memory");
304 }
305 i = p->nFile++;
306 p->aFile[i].zName = zName;
307 p->aFile[i].zUuid = zUuid;
 
308 if( i>0 && strcmp(p->aFile[i-1].zName, zName)>=0 ){
309 goto manifest_syntax_error;
310 }
311 break;
312 }
313
--- src/manifest.c
+++ src/manifest.c
@@ -65,10 +65,11 @@
65 int nFile; /* Number of F lines */
66 int nFileAlloc; /* Slots allocated in aFile[] */
67 struct {
68 char *zName; /* Name of a file */
69 char *zUuid; /* UUID of the file */
70 char *zPerm; /* File permissions */
71 } *aFile;
72 int nParent; /* Number of parents */
73 int nParentAlloc; /* Slots allocated in azParent[] */
74 char **azParent; /* UUIDs of parents */
75 int nCChild; /* Number of cluster children */
@@ -155,10 +156,11 @@
156 blob_zero(pContent);
157 pContent = &p->content;
158
159 blob_zero(&a1);
160 blob_zero(&a2);
161 blob_zero(&a3);
162 md5sum_init();
163 while( blob_line(pContent, &line) ){
164 char *z = blob_buffer(&line);
165 lineNo++;
166 if( z[0]=='-' ){
@@ -275,24 +277,25 @@
277 }
278 break;
279 }
280
281 /*
282 ** F <filename> <uuid> ?<permissions>?
283 **
284 ** Identifies a file in a manifest. Multiple F lines are
285 ** allowed in a manifest. F lines are not allowed in any
286 ** other control file. The filename is fossil-encoded.
287 */
288 case 'F': {
289 char *zName, *zUuid, *zPerm;
290 md5sum_step_text(blob_buffer(&line), blob_size(&line));
291 if( blob_token(&line, &a1)==0 ) goto manifest_syntax_error;
292 if( blob_token(&line, &a2)==0 ) goto manifest_syntax_error;
 
293 zName = blob_terminate(&a1);
294 zUuid = blob_terminate(&a2);
295 blob_token(&line, &a3);
296 zPerm = blob_terminate(&a3);
297 if( blob_size(&a2)!=UUID_SIZE ) goto manifest_syntax_error;
298 if( !validate16(zUuid, UUID_SIZE) ) goto manifest_syntax_error;
299 defossilize(zName);
300 if( !file_is_simple_pathname(zName) ){
301 goto manifest_syntax_error;
@@ -303,10 +306,11 @@
306 if( p->aFile==0 ) fossil_panic("out of memory");
307 }
308 i = p->nFile++;
309 p->aFile[i].zName = zName;
310 p->aFile[i].zUuid = zUuid;
311 p->aFile[i].zPerm = zPerm;
312 if( i>0 && strcmp(p->aFile[i-1].zName, zName)>=0 ){
313 goto manifest_syntax_error;
314 }
315 break;
316 }
317
+1 -16
--- src/schema.c
+++ src/schema.c
@@ -299,11 +299,11 @@
299299
@ -- is already in the repository.
300300
@ --
301301
@ --
302302
@ CREATE TABLE vfile(
303303
@ id INTEGER PRIMARY KEY, -- ID of the checked out file
304
-@ vid INTEGER REFERENCES blob, -- The version this file is part of.
304
+@ vid INTEGER REFERENCES blob, -- The baseline this file is part of.
305305
@ chnged INT DEFAULT 0, -- 0:unchnged 1:edited 2:m-chng 3:m-add
306306
@ deleted BOOLEAN DEFAULT 0, -- True if deleted
307307
@ rid INTEGER, -- Originally from this repository record
308308
@ mrid INTEGER, -- Based on this record due to a merge
309309
@ pathname TEXT, -- Full pathname
@@ -321,20 +321,5 @@
321321
@ merge INTEGER, -- Merged with this record
322322
@ UNIQUE(id, merge)
323323
@ );
324324
@
325325
;
326
-
327
-const char zServerTempSchema[] =
328
-@ -- A copy of the vfile table schema used by the WWW server
329
-@ --
330
-@ CREATE TEMP TABLE vfile(
331
-@ id INTEGER PRIMARY KEY, -- ID of the checked out file
332
-@ vid INTEGER REFERENCES record, -- The version this file is part of.
333
-@ chnged INT DEFAULT 0, -- 0:unchnged 1:edited 2:m-chng 3:m-add
334
-@ deleted BOOLEAN DEFAULT 0, -- True if deleted
335
-@ rid INTEGER, -- Originally from this repository record
336
-@ mrid INTEGER, -- Based on this record due to a merge
337
-@ pathname TEXT, -- Full pathname
338
-@ UNIQUE(pathname,vid)
339
-@ );
340
-;
341326
--- src/schema.c
+++ src/schema.c
@@ -299,11 +299,11 @@
299 @ -- is already in the repository.
300 @ --
301 @ --
302 @ CREATE TABLE vfile(
303 @ id INTEGER PRIMARY KEY, -- ID of the checked out file
304 @ vid INTEGER REFERENCES blob, -- The version this file is part of.
305 @ chnged INT DEFAULT 0, -- 0:unchnged 1:edited 2:m-chng 3:m-add
306 @ deleted BOOLEAN DEFAULT 0, -- True if deleted
307 @ rid INTEGER, -- Originally from this repository record
308 @ mrid INTEGER, -- Based on this record due to a merge
309 @ pathname TEXT, -- Full pathname
@@ -321,20 +321,5 @@
321 @ merge INTEGER, -- Merged with this record
322 @ UNIQUE(id, merge)
323 @ );
324 @
325 ;
326
327 const char zServerTempSchema[] =
328 @ -- A copy of the vfile table schema used by the WWW server
329 @ --
330 @ CREATE TEMP TABLE vfile(
331 @ id INTEGER PRIMARY KEY, -- ID of the checked out file
332 @ vid INTEGER REFERENCES record, -- The version this file is part of.
333 @ chnged INT DEFAULT 0, -- 0:unchnged 1:edited 2:m-chng 3:m-add
334 @ deleted BOOLEAN DEFAULT 0, -- True if deleted
335 @ rid INTEGER, -- Originally from this repository record
336 @ mrid INTEGER, -- Based on this record due to a merge
337 @ pathname TEXT, -- Full pathname
338 @ UNIQUE(pathname,vid)
339 @ );
340 ;
341
--- src/schema.c
+++ src/schema.c
@@ -299,11 +299,11 @@
299 @ -- is already in the repository.
300 @ --
301 @ --
302 @ CREATE TABLE vfile(
303 @ id INTEGER PRIMARY KEY, -- ID of the checked out file
304 @ vid INTEGER REFERENCES blob, -- The baseline this file is part of.
305 @ chnged INT DEFAULT 0, -- 0:unchnged 1:edited 2:m-chng 3:m-add
306 @ deleted BOOLEAN DEFAULT 0, -- True if deleted
307 @ rid INTEGER, -- Originally from this repository record
308 @ mrid INTEGER, -- Based on this record due to a merge
309 @ pathname TEXT, -- Full pathname
@@ -321,20 +321,5 @@
321 @ merge INTEGER, -- Merged with this record
322 @ UNIQUE(id, merge)
323 @ );
324 @
325 ;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
326
+4 -4
--- src/setup.c
+++ src/setup.c
@@ -645,11 +645,11 @@
645645
}else{
646646
textarea_attribute(0, 0, 0, "header", "header", zDefaultHeader);
647647
}
648648
style_header("Edit Page Header");
649649
@ <form action="%s(g.zBaseURL)/setup_header" method="POST">
650
- @ <p>Edit HTML text with embedded subscript that will be used to
650
+ @ <p>Edit HTML text with embedded TH1 (a TCL dialect) that will be used to
651651
@ generate the beginning of every page through start of the main
652652
@ menu.</p>
653653
textarea_attribute("", 40, 80, "header", "header", zDefaultHeader);
654654
@ <br />
655655
@ <input type="submit" name="submit" value="Apply Changes">
@@ -678,11 +678,11 @@
678678
}else{
679679
textarea_attribute(0, 0, 0, "footer", "footer", zDefaultFooter);
680680
}
681681
style_header("Edit Page Footer");
682682
@ <form action="%s(g.zBaseURL)/setup_footer" method="POST">
683
- @ <p>Edit HTML text with embedded subscript that will be used to
683
+ @ <p>Edit HTML text with embedded TH1 (a TCL dialect) that will be used to
684684
@ generate the end of every page.</p>
685685
textarea_attribute("", 20, 80, "footer", "footer", zDefaultFooter);
686686
@ <br />
687687
@ <input type="submit" name="submit" value="Apply Changes">
688688
@ <input type="submit" name="clear" value="Revert To Default">
@@ -729,19 +729,19 @@
729729
@ SCRIPT ERROR: %h(zErr)
730730
@ </b></font></p>
731731
}
732732
}
733733
@ <form action="%s(g.zBaseURL)/setup_ticket" method="POST">
734
- @ <p>Edit the "subscript" script that defines the ticketing
734
+ @ <p>Edit the TH1 script that defines the ticketing
735735
@ system setup for this server.</p>
736736
@ <textarea name="cfg" rows="40" cols="80">%h(zConfig)</textarea>
737737
@ <br />
738738
@ <input type="submit" name="submit" value="Apply Changes">
739739
@ <input type="submit" name="clear" value="Revert To Default">
740740
@ </form>
741741
@ <hr>
742
- @ Here is the default page header:
742
+ @ Here is the default ticket configuration:
743743
@ <blockquote><pre>
744744
@ %h(zDefaultTicketConfig)
745745
@ </pre></blockquote>
746746
db_end_transaction(0);
747747
}
748748
--- src/setup.c
+++ src/setup.c
@@ -645,11 +645,11 @@
645 }else{
646 textarea_attribute(0, 0, 0, "header", "header", zDefaultHeader);
647 }
648 style_header("Edit Page Header");
649 @ <form action="%s(g.zBaseURL)/setup_header" method="POST">
650 @ <p>Edit HTML text with embedded subscript that will be used to
651 @ generate the beginning of every page through start of the main
652 @ menu.</p>
653 textarea_attribute("", 40, 80, "header", "header", zDefaultHeader);
654 @ <br />
655 @ <input type="submit" name="submit" value="Apply Changes">
@@ -678,11 +678,11 @@
678 }else{
679 textarea_attribute(0, 0, 0, "footer", "footer", zDefaultFooter);
680 }
681 style_header("Edit Page Footer");
682 @ <form action="%s(g.zBaseURL)/setup_footer" method="POST">
683 @ <p>Edit HTML text with embedded subscript that will be used to
684 @ generate the end of every page.</p>
685 textarea_attribute("", 20, 80, "footer", "footer", zDefaultFooter);
686 @ <br />
687 @ <input type="submit" name="submit" value="Apply Changes">
688 @ <input type="submit" name="clear" value="Revert To Default">
@@ -729,19 +729,19 @@
729 @ SCRIPT ERROR: %h(zErr)
730 @ </b></font></p>
731 }
732 }
733 @ <form action="%s(g.zBaseURL)/setup_ticket" method="POST">
734 @ <p>Edit the "subscript" script that defines the ticketing
735 @ system setup for this server.</p>
736 @ <textarea name="cfg" rows="40" cols="80">%h(zConfig)</textarea>
737 @ <br />
738 @ <input type="submit" name="submit" value="Apply Changes">
739 @ <input type="submit" name="clear" value="Revert To Default">
740 @ </form>
741 @ <hr>
742 @ Here is the default page header:
743 @ <blockquote><pre>
744 @ %h(zDefaultTicketConfig)
745 @ </pre></blockquote>
746 db_end_transaction(0);
747 }
748
--- src/setup.c
+++ src/setup.c
@@ -645,11 +645,11 @@
645 }else{
646 textarea_attribute(0, 0, 0, "header", "header", zDefaultHeader);
647 }
648 style_header("Edit Page Header");
649 @ <form action="%s(g.zBaseURL)/setup_header" method="POST">
650 @ <p>Edit HTML text with embedded TH1 (a TCL dialect) that will be used to
651 @ generate the beginning of every page through start of the main
652 @ menu.</p>
653 textarea_attribute("", 40, 80, "header", "header", zDefaultHeader);
654 @ <br />
655 @ <input type="submit" name="submit" value="Apply Changes">
@@ -678,11 +678,11 @@
678 }else{
679 textarea_attribute(0, 0, 0, "footer", "footer", zDefaultFooter);
680 }
681 style_header("Edit Page Footer");
682 @ <form action="%s(g.zBaseURL)/setup_footer" method="POST">
683 @ <p>Edit HTML text with embedded TH1 (a TCL dialect) that will be used to
684 @ generate the end of every page.</p>
685 textarea_attribute("", 20, 80, "footer", "footer", zDefaultFooter);
686 @ <br />
687 @ <input type="submit" name="submit" value="Apply Changes">
688 @ <input type="submit" name="clear" value="Revert To Default">
@@ -729,19 +729,19 @@
729 @ SCRIPT ERROR: %h(zErr)
730 @ </b></font></p>
731 }
732 }
733 @ <form action="%s(g.zBaseURL)/setup_ticket" method="POST">
734 @ <p>Edit the TH1 script that defines the ticketing
735 @ system setup for this server.</p>
736 @ <textarea name="cfg" rows="40" cols="80">%h(zConfig)</textarea>
737 @ <br />
738 @ <input type="submit" name="submit" value="Apply Changes">
739 @ <input type="submit" name="clear" value="Revert To Default">
740 @ </form>
741 @ <hr>
742 @ Here is the default ticket configuration:
743 @ <blockquote><pre>
744 @ %h(zDefaultTicketConfig)
745 @ </pre></blockquote>
746 db_end_transaction(0);
747 }
748
+45 -63
--- src/style.c
+++ src/style.c
@@ -68,66 +68,29 @@
6868
const struct Submenu *A = (const struct Submenu*)a;
6969
const struct Submenu *B = (const struct Submenu*)b;
7070
return strcmp(A->zLabel, B->zLabel);
7171
}
7272
73
-/*
74
-** The Subscript interpreter used to render header and footer.
75
-*/
76
-static struct Subscript *pInterp;
77
-
7873
/*
7974
** Draw the header.
8075
*/
8176
void style_header(const char *zTitle){
82
- const char *zLogInOut = "Login";
8377
const char *zHeader = db_get("header", (char*)zDefaultHeader);
8478
login_check_credentials();
8579
86
- if( pInterp ) return;
8780
cgi_destination(CGI_HEADER);
8881
8982
/* Generate the header up through the main menu */
90
- pInterp = SbS_Create();
91
- SbS_Store(pInterp, "project_name",
92
- db_get("project-name","Unnamed Fossil Project"), 0);
93
- SbS_Store(pInterp, "title", zTitle, 0);
94
- SbS_Store(pInterp, "baseurl", g.zBaseURL, 0);
95
- SbS_Store(pInterp, "manifest_version", MANIFEST_VERSION, 0);
96
- SbS_Store(pInterp, "manifest_date", MANIFEST_DATE, 0);
97
- if( g.zLogin ){
98
- SbS_Store(pInterp, "login", g.zLogin, 0);
99
- zLogInOut = "Logout";
100
- }
101
- SbS_Render(pInterp, zHeader);
102
-
103
- /* Generate the main menu */
104
- @ <div class="mainmenu">
105
- @ <a href="%s(g.zBaseURL)/home">Home</a>
106
- if( g.okHistory ){
107
- @ <a href="%s(g.zBaseURL)/dir">Files</a>
108
- }
109
- if( g.okRead ){
110
- @ <a href="%s(g.zBaseURL)/leaves">Leaves</a>
111
- @ <a href="%s(g.zBaseURL)/timeline">Timeline</a>
112
- @ <a href="%s(g.zBaseURL)/tagview">Tags</a>
113
- }
114
- if( g.okRdWiki ){
115
- @ <a href="%s(g.zBaseURL)/wiki">Wiki</a>
116
- }
117
-#if 0
118
- @ <font color="#888888">Search</font>
119
- @ <font color="#888888">Ticket</font>
120
- @ <font color="#888888">Reports</font>
121
-#endif
122
- if( g.okSetup ){
123
- @ <a href="%s(g.zBaseURL)/setup">Setup</a>
124
- }
125
- if( !g.noPswd ){
126
- @ <a href="%s(g.zBaseURL)/login">%s(zLogInOut)</a>
127
- }
128
- @ </div>
83
+ Th_Store("project_name", db_get("project-name","Unnamed Fossil Project"));
84
+ Th_Store("title", zTitle);
85
+ Th_Store("baseurl", g.zBaseURL);
86
+ Th_Store("manifest_version", MANIFEST_VERSION);
87
+ Th_Store("manifest_date", MANIFEST_DATE);
88
+ if( g.zLogin ){
89
+ Th_Store("login", g.zLogin);
90
+ }
91
+ Th_Render(zHeader);
12992
cgi_destination(CGI_BODY);
13093
g.cgiPanic = 1;
13194
}
13295
13396
/*
@@ -134,12 +97,10 @@
13497
** Draw the footer at the bottom of the page.
13598
*/
13699
void style_footer(void){
137100
const char *zFooter;
138101
139
- if( pInterp==0 ) return;
140
-
141102
/* Go back and put the submenu at the top of the page. We delay the
142103
** creation of the submenu until the end so that we can add elements
143104
** to the submenu while generating page text.
144105
*/
145106
if( nSubmenu>0 ){
@@ -162,50 +123,71 @@
162123
/* Put the footer at the bottom of the page.
163124
*/
164125
@ <div class="content">
165126
zFooter = db_get("footer", (char*)zDefaultFooter);
166127
@ </div>
167
- SbS_Render(pInterp, zFooter);
168
- SbS_Destroy(pInterp);
169
- pInterp = 0;
128
+ Th_Render(zFooter);
170129
}
171130
172131
/* @-comment: // */
173132
/*
174133
** The default page header.
175134
*/
176135
const char zDefaultHeader[] =
177136
@ <html>
178137
@ <head>
179
-@ <title>[project_name html]: [title html]</title>
138
+@ <title>$<project_name>: $<title></title>
180139
@ <link rel="alternate" type="application/rss+xml" title="RSS Feed"
181
-@ href="[baseurl puts]/timeline.rss">
182
-@ <link rel="stylesheet" href="[baseurl puts]/style.css" type="text/css"
140
+@ href="$baseurl/timeline.rss">
141
+@ <link rel="stylesheet" href="$baseurl/style.css" type="text/css"
183142
@ media="screen">
184143
@ </head>
185144
@ <body>
186145
@ <div class="header">
187146
@ <div class="logo">
188147
@ <!-- <img src="logo.gif" alt="logo"><br></br> -->
189
-@ <nobr>[project_name html]</nobr>
148
+@ <nobr>$<project_name></nobr>
190149
@ </div>
191
-@ <div class="title">[title html]</div>
192
-@ <div class="status"><nobr>
193
-@ [/login exists enable_output] Logged in as
194
-@ <a href='[baseurl puts]/my'>[0 /login get html]</a>
195
-@ [/login exists not enable_output] Not logged in
196
-@ [1 enable_output]
197
-@ </nobr></div>
150
+@ <div class="title">$<title></div>
151
+@ <div class="status"><nobr><th1>
152
+@ if {[info exists login]} {
153
+@ html "Logged in as <a href='$baseurl/my'>$login</a>"
154
+@ } else {
155
+@ puts "Not logged in"
156
+@ }
157
+@ </th1></nobr></div>
198158
@ </div>
159
+@ <div class="mainmenu"><th1>
160
+@ html "<a href='$baseurl/home'>Home</a>"
161
+@ if {[hascap h]} {
162
+@ html "<a href='$baseurl/dir'>Files</a>"
163
+@ }
164
+@ if {[hascap i]} {
165
+@ html "<a href='$baseurl/leaves'>Leaves</a>"
166
+@ html "<a href='$baseurl/timeline'>Timeline</a>"
167
+@ html "<a href='$baseurl/tagview'>Tags</a>"
168
+@ }
169
+@ if {[hascap j]} {
170
+@ html "<a href='$baseurl/wiki'>Wiki</a>"
171
+@ }
172
+@ if {[hascap s]} {
173
+@ html "<a href='$baseurl/setup'>Setup</a>"
174
+@ }
175
+@ if {[info exists login]} {
176
+@ html "<a href='$baseurl/login'>Login</a>"
177
+@ } else {
178
+@ html "<a href='$baseurl/login'>Logout</a>"
179
+@ }
180
+@ </th1></div>
199181
;
200182
201183
/*
202184
** The default page footer
203185
*/
204186
const char zDefaultFooter[] =
205187
@ <div class="footer">
206
-@ Fossil version [manifest_version puts] [manifest_date puts]
188
+@ Fossil version $manifest_version $manifest_date
207189
@ </div>
208190
@ </body></html>
209191
;
210192
211193
/*
212194
213195
DELETED src/subscript.c
214196
ADDED src/th.c
215197
ADDED src/th.h
216198
ADDED src/th_lang.c
217199
ADDED src/th_main.c
--- src/style.c
+++ src/style.c
@@ -68,66 +68,29 @@
68 const struct Submenu *A = (const struct Submenu*)a;
69 const struct Submenu *B = (const struct Submenu*)b;
70 return strcmp(A->zLabel, B->zLabel);
71 }
72
73 /*
74 ** The Subscript interpreter used to render header and footer.
75 */
76 static struct Subscript *pInterp;
77
78 /*
79 ** Draw the header.
80 */
81 void style_header(const char *zTitle){
82 const char *zLogInOut = "Login";
83 const char *zHeader = db_get("header", (char*)zDefaultHeader);
84 login_check_credentials();
85
86 if( pInterp ) return;
87 cgi_destination(CGI_HEADER);
88
89 /* Generate the header up through the main menu */
90 pInterp = SbS_Create();
91 SbS_Store(pInterp, "project_name",
92 db_get("project-name","Unnamed Fossil Project"), 0);
93 SbS_Store(pInterp, "title", zTitle, 0);
94 SbS_Store(pInterp, "baseurl", g.zBaseURL, 0);
95 SbS_Store(pInterp, "manifest_version", MANIFEST_VERSION, 0);
96 SbS_Store(pInterp, "manifest_date", MANIFEST_DATE, 0);
97 if( g.zLogin ){
98 SbS_Store(pInterp, "login", g.zLogin, 0);
99 zLogInOut = "Logout";
100 }
101 SbS_Render(pInterp, zHeader);
102
103 /* Generate the main menu */
104 @ <div class="mainmenu">
105 @ <a href="%s(g.zBaseURL)/home">Home</a>
106 if( g.okHistory ){
107 @ <a href="%s(g.zBaseURL)/dir">Files</a>
108 }
109 if( g.okRead ){
110 @ <a href="%s(g.zBaseURL)/leaves">Leaves</a>
111 @ <a href="%s(g.zBaseURL)/timeline">Timeline</a>
112 @ <a href="%s(g.zBaseURL)/tagview">Tags</a>
113 }
114 if( g.okRdWiki ){
115 @ <a href="%s(g.zBaseURL)/wiki">Wiki</a>
116 }
117 #if 0
118 @ <font color="#888888">Search</font>
119 @ <font color="#888888">Ticket</font>
120 @ <font color="#888888">Reports</font>
121 #endif
122 if( g.okSetup ){
123 @ <a href="%s(g.zBaseURL)/setup">Setup</a>
124 }
125 if( !g.noPswd ){
126 @ <a href="%s(g.zBaseURL)/login">%s(zLogInOut)</a>
127 }
128 @ </div>
129 cgi_destination(CGI_BODY);
130 g.cgiPanic = 1;
131 }
132
133 /*
@@ -134,12 +97,10 @@
134 ** Draw the footer at the bottom of the page.
135 */
136 void style_footer(void){
137 const char *zFooter;
138
139 if( pInterp==0 ) return;
140
141 /* Go back and put the submenu at the top of the page. We delay the
142 ** creation of the submenu until the end so that we can add elements
143 ** to the submenu while generating page text.
144 */
145 if( nSubmenu>0 ){
@@ -162,50 +123,71 @@
162 /* Put the footer at the bottom of the page.
163 */
164 @ <div class="content">
165 zFooter = db_get("footer", (char*)zDefaultFooter);
166 @ </div>
167 SbS_Render(pInterp, zFooter);
168 SbS_Destroy(pInterp);
169 pInterp = 0;
170 }
171
172 /* @-comment: // */
173 /*
174 ** The default page header.
175 */
176 const char zDefaultHeader[] =
177 @ <html>
178 @ <head>
179 @ <title>[project_name html]: [title html]</title>
180 @ <link rel="alternate" type="application/rss+xml" title="RSS Feed"
181 @ href="[baseurl puts]/timeline.rss">
182 @ <link rel="stylesheet" href="[baseurl puts]/style.css" type="text/css"
183 @ media="screen">
184 @ </head>
185 @ <body>
186 @ <div class="header">
187 @ <div class="logo">
188 @ <!-- <img src="logo.gif" alt="logo"><br></br> -->
189 @ <nobr>[project_name html]</nobr>
190 @ </div>
191 @ <div class="title">[title html]</div>
192 @ <div class="status"><nobr>
193 @ [/login exists enable_output] Logged in as
194 @ <a href='[baseurl puts]/my'>[0 /login get html]</a>
195 @ [/login exists not enable_output] Not logged in
196 @ [1 enable_output]
197 @ </nobr></div>
 
198 @ </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
199 ;
200
201 /*
202 ** The default page footer
203 */
204 const char zDefaultFooter[] =
205 @ <div class="footer">
206 @ Fossil version [manifest_version puts] [manifest_date puts]
207 @ </div>
208 @ </body></html>
209 ;
210
211 /*
212
213 ELETED src/subscript.c
214 DDED src/th.c
215 DDED src/th.h
216 DDED src/th_lang.c
217 DDED src/th_main.c
--- src/style.c
+++ src/style.c
@@ -68,66 +68,29 @@
68 const struct Submenu *A = (const struct Submenu*)a;
69 const struct Submenu *B = (const struct Submenu*)b;
70 return strcmp(A->zLabel, B->zLabel);
71 }
72
 
 
 
 
 
73 /*
74 ** Draw the header.
75 */
76 void style_header(const char *zTitle){
 
77 const char *zHeader = db_get("header", (char*)zDefaultHeader);
78 login_check_credentials();
79
 
80 cgi_destination(CGI_HEADER);
81
82 /* Generate the header up through the main menu */
83 Th_Store("project_name", db_get("project-name","Unnamed Fossil Project"));
84 Th_Store("title", zTitle);
85 Th_Store("baseurl", g.zBaseURL);
86 Th_Store("manifest_version", MANIFEST_VERSION);
87 Th_Store("manifest_date", MANIFEST_DATE);
88 if( g.zLogin ){
89 Th_Store("login", g.zLogin);
90 }
91 Th_Render(zHeader);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
92 cgi_destination(CGI_BODY);
93 g.cgiPanic = 1;
94 }
95
96 /*
@@ -134,12 +97,10 @@
97 ** Draw the footer at the bottom of the page.
98 */
99 void style_footer(void){
100 const char *zFooter;
101
 
 
102 /* Go back and put the submenu at the top of the page. We delay the
103 ** creation of the submenu until the end so that we can add elements
104 ** to the submenu while generating page text.
105 */
106 if( nSubmenu>0 ){
@@ -162,50 +123,71 @@
123 /* Put the footer at the bottom of the page.
124 */
125 @ <div class="content">
126 zFooter = db_get("footer", (char*)zDefaultFooter);
127 @ </div>
128 Th_Render(zFooter);
 
 
129 }
130
131 /* @-comment: // */
132 /*
133 ** The default page header.
134 */
135 const char zDefaultHeader[] =
136 @ <html>
137 @ <head>
138 @ <title>$<project_name>: $<title></title>
139 @ <link rel="alternate" type="application/rss+xml" title="RSS Feed"
140 @ href="$baseurl/timeline.rss">
141 @ <link rel="stylesheet" href="$baseurl/style.css" type="text/css"
142 @ media="screen">
143 @ </head>
144 @ <body>
145 @ <div class="header">
146 @ <div class="logo">
147 @ <!-- <img src="logo.gif" alt="logo"><br></br> -->
148 @ <nobr>$<project_name></nobr>
149 @ </div>
150 @ <div class="title">$<title></div>
151 @ <div class="status"><nobr><th1>
152 @ if {[info exists login]} {
153 @ html "Logged in as <a href='$baseurl/my'>$login</a>"
154 @ } else {
155 @ puts "Not logged in"
156 @ }
157 @ </th1></nobr></div>
158 @ </div>
159 @ <div class="mainmenu"><th1>
160 @ html "<a href='$baseurl/home'>Home</a>"
161 @ if {[hascap h]} {
162 @ html "<a href='$baseurl/dir'>Files</a>"
163 @ }
164 @ if {[hascap i]} {
165 @ html "<a href='$baseurl/leaves'>Leaves</a>"
166 @ html "<a href='$baseurl/timeline'>Timeline</a>"
167 @ html "<a href='$baseurl/tagview'>Tags</a>"
168 @ }
169 @ if {[hascap j]} {
170 @ html "<a href='$baseurl/wiki'>Wiki</a>"
171 @ }
172 @ if {[hascap s]} {
173 @ html "<a href='$baseurl/setup'>Setup</a>"
174 @ }
175 @ if {[info exists login]} {
176 @ html "<a href='$baseurl/login'>Login</a>"
177 @ } else {
178 @ html "<a href='$baseurl/login'>Logout</a>"
179 @ }
180 @ </th1></div>
181 ;
182
183 /*
184 ** The default page footer
185 */
186 const char zDefaultFooter[] =
187 @ <div class="footer">
188 @ Fossil version $manifest_version $manifest_date
189 @ </div>
190 @ </body></html>
191 ;
192
193 /*
194
195 ELETED src/subscript.c
196 DDED src/th.c
197 DDED src/th.h
198 DDED src/th_lang.c
199 DDED src/th_main.c
D src/subscript.c
-1165
--- a/src/subscript.c
+++ b/src/subscript.c
@@ -1,1165 +0,0 @@
1
-/*
2
-** Copyright (c) 2007 D. Richard Hipp
3
-**
4
-** This program is free software; you can redistribute it and/or
5
-** modify it under the terms of the GNU General Public
6
-** License version 2 as published by the Free Software Foundation.
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. See the GNU
11
-** General Public License for more details.
12
-**
13
-** You should have received a copy of the GNU General Public
14
-** License along with this library; if not, write to the
15
-** Free Software Foundation, Inc., 59 Temple Place - Suite 330,
16
-** Boston, MA 02111-1307, USA.
17
-**
18
-** Author contact information:
19
-** [email protected]
20
-** http://www.hwaci.com/drh/
21
-**
22
-*******************************************************************************
23
-**
24
-** This file contains an implementation of the "subscript" interpreter.
25
-**
26
-** Subscript attempts to be an extremely light-weight scripting
27
-** language. It contains the barest of bare essentials. It is
28
-** stack-based and forth-like. Everything is in a single global
29
-** namespace. There is only a single datatype of zero-terminated
30
-** string. The stack is of fixed, limited depth. The symbal table
31
-** is of a limited and fixed size.
32
-**
33
-** TOKENS:
34
-**
35
-** * All tokens are separated from each other by whitespace.
36
-** * Leading and trailing whitespace is ignored.
37
-** * Text within nested {...} is a single string token. The outermost
38
-** curly braces are not part of the token.
39
-** * An identifier with a leading "/" is a string token.
40
-** * A token that looks like a number is a string token.
41
-** * An identifier token is called a "verb".
42
-**
43
-** PROCESSING:
44
-**
45
-** * The input is divided into tokens. Whitespace is discarded.
46
-** String and verb tokens are passed into the engine.
47
-** * String tokens are pushed onto the stack.
48
-** * If a verb token corresponds to a procedure, that procedure is
49
-** run. The procedure might use, pop, or pull elements from
50
-** the stack.
51
-** * If a verb token corresponds to a variable, the value of that
52
-** variable is pushed onto the stack.
53
-**
54
-** This module attempts to be completely self-contained so that it can
55
-** be portable to other projects.
56
-*/
57
-#include "config.h"
58
-#include "subscript.h"
59
-#include <assert.h>
60
-
61
-#if INTERFACE
62
-typedef struct Subscript Subscript;
63
-#define SBS_OK 0
64
-#define SBS_ERROR 1
65
-#define SBS_RETURN 2
66
-#define SBS_BREAK 3
67
-#endif
68
-
69
-/*
70
-** Configuration constants
71
-*/
72
-#define SBSCONFIG_NHASH 41 /* Size of the hash table */
73
-#define SBSCONFIG_NSTACK 20 /* Maximum stack depth */
74
-#define SBSCONFIG_ERRSIZE 100 /* Maximum size of an error message */
75
-
76
-/*
77
-** Available token types:
78
-*/
79
-#define SBSTT_WHITESPACE 1 /* ex: \040 */
80
-#define SBSTT_NAME 2 /* ex: /abcde */
81
-#define SBSTT_VERB 3 /* ex: abcde */
82
-#define SBSTT_STRING 4 /* ex: {...} */
83
-#define SBSTT_QUOTED 5 /* ex: "...\n..." */
84
-#define SBSTT_INTEGER 6 /* Integer including option sign */
85
-#define SBSTT_INCOMPLETE 7 /* Unterminated string token */
86
-#define SBSTT_UNKNOWN 8 /* Unknown token */
87
-#define SBSTT_EOF 9 /* End of input */
88
-
89
-/*
90
-** Values are stored in the hash table as instances of the following
91
-** structure.
92
-*/
93
-typedef struct SbSValue SbSValue;
94
-struct SbSValue {
95
- int flags; /* Bitmask of SBSVAL_* values */
96
- union {
97
- struct {
98
- int size; /* Number of bytes in string, not counting final zero */
99
- char *z; /* Pointer to string content */
100
- } str; /* Value if SBSVAL_STR */
101
- struct {
102
- int (*xVerb)(Subscript*, void*); /* Function to do the work */
103
- void *pArg; /* 2nd parameter to xVerb */
104
- } verb; /* Value if SBSVAL_VERB */
105
- } u;
106
-};
107
-#define SBSVAL_VERB 0x0001 /* Value stored in u.verb */
108
-#define SBSVAL_STR 0x0002 /* Value stored in u.str */
109
-#define SBSVAL_DYN 0x0004 /* u.str.z is dynamically allocated */
110
-#define SBSVAL_EXEC 0x0008 /* u.str.z is a script */
111
-
112
-/*
113
-** An entry in the hash table is an instance of this structure.
114
-*/
115
-typedef struct SbsHashEntry SbsHashEntry;
116
-struct SbsHashEntry {
117
- SbsHashEntry *pNext; /* Next entry with the same hash on zKey */
118
- SbSValue val; /* The payload */
119
- int nKey; /* Length of the key */
120
- char zKey[1]; /* The key */
121
-};
122
-
123
-/*
124
-** A hash table is an instance of the following structure.
125
-*/
126
-typedef struct SbsHashTab SbsHashTab;
127
-struct SbsHashTab {
128
- SbsHashEntry *aHash[SBSCONFIG_NHASH]; /* The hash table */
129
-};
130
-
131
-/*
132
-** An instance of the Subscript interpreter
133
-*/
134
-struct Subscript {
135
- int nStack; /* Number of entries on stack */
136
- SbsHashTab symTab; /* The symbol table */
137
- char zErrMsg[SBSCONFIG_ERRSIZE]; /* Space to write an error message */
138
- SbSValue aStack[SBSCONFIG_NSTACK]; /* The stack */
139
-};
140
-
141
-
142
-/*
143
-** Given an input string z of length n, identify the token that
144
-** starts at z[0]. Write the token type into *pTokenType and
145
-** return the length of the token.
146
-*/
147
-static int sbs_next_token(const char *z, int n, int *pTokenType){
148
- int c;
149
- if( n<=0 || z[0]==0 ){
150
- *pTokenType = SBSTT_EOF;
151
- return 0;
152
- }
153
- c = z[0];
154
- if( isspace(c) ){
155
- int i;
156
- *pTokenType = SBSTT_WHITESPACE;
157
- for(i=1; i<n && isspace(z[i]); i++){}
158
- return i;
159
- }
160
- if( c=='#' ){
161
- int i;
162
- for(i=1; i<n && z[i] && z[i-1]!='\n'; i++){}
163
- *pTokenType = SBSTT_WHITESPACE;
164
- return i;
165
- }
166
- if( c=='"' ){
167
- int i;
168
- for(i=1; i<n && z[i] && z[i]!='"'; i++){
169
- if( z[i]=='\\' && i<n-1 ){ i++; }
170
- }
171
- if( z[i]=='"' ){
172
- *pTokenType = SBSTT_QUOTED;
173
- return i+1;
174
- }else{
175
- *pTokenType = SBSTT_INCOMPLETE;
176
- return i;
177
- }
178
- }
179
- if( c=='{' ){
180
- int depth = 1;
181
- int i;
182
- for(i=1; i<n && z[i]; i++){
183
- if( z[i]=='{' ){
184
- depth++;
185
- }else if( z[i]=='}' ){
186
- depth--;
187
- if( depth==0 ){
188
- i++;
189
- break;
190
- }
191
- }
192
- }
193
- if( depth ){
194
- *pTokenType = SBSTT_INCOMPLETE;
195
- }else{
196
- *pTokenType = SBSTT_STRING;
197
- }
198
- return i;
199
- }
200
- if( c=='/' && n>=2 && isalpha(z[1]) ){
201
- int i;
202
- for(i=2; i<n && (isalnum(z[i]) || z[i]=='_'); i++){}
203
- *pTokenType = SBSTT_NAME;
204
- return i;
205
- }
206
- if( isalpha(c) ){
207
- int i;
208
- for(i=1; i<n && (isalnum(z[i]) || z[i]=='_'); i++){}
209
- *pTokenType = SBSTT_VERB;
210
- return i;
211
- }
212
- if( isdigit(c) || ((c=='-' || c=='+') && n>=2 && isdigit(z[1])) ){
213
- int i;
214
- for(i=1; i<n && isdigit(z[i]); i++){}
215
- *pTokenType = SBSTT_INTEGER;
216
- return i;
217
- }
218
- *pTokenType = SBSTT_UNKNOWN;
219
- return 1;
220
-}
221
-
222
-
223
-/*
224
-** Release any memory allocated by a value.
225
-*/
226
-static void sbs_value_reset(SbSValue *p){
227
- if( p->flags & SBSVAL_DYN ){
228
- free(p->u.str.z);
229
- p->flags = SBSVAL_STR;
230
- p->u.str.z = "";
231
- p->u.str.size = 0;
232
- }
233
-}
234
-
235
-/*
236
-** Compute a hash on a string.
237
-*/
238
-static int sbs_hash(const char *z, int n){
239
- int h = 0;
240
- int i;
241
- for(i=0; i<n; i++){
242
- h ^= (h<<1) | z[i];
243
- }
244
- h &= 0x7ffffff;
245
- return h % SBSCONFIG_NHASH;
246
-}
247
-
248
-/*
249
-** Look up a value in the hash table. Return a pointer to the value.
250
-** Return NULL if not found.
251
-*/
252
-static const SbSValue *sbs_fetch(
253
- SbsHashTab *pHash,
254
- const char *zKey,
255
- int nKey
256
-){
257
- int h;
258
- SbsHashEntry *p;
259
-
260
- if( nKey<0 ) nKey = strlen(zKey);
261
- h = sbs_hash(zKey, nKey);
262
- for(p = pHash->aHash[h]; p; p=p->pNext){
263
- if( p->nKey==nKey && memcmp(p->zKey,zKey,nKey)==0 ){
264
- return &p->val;
265
- }
266
- }
267
- return 0;
268
-}
269
-
270
-/*
271
-** Store a value in the hash table. Overwrite any prior value stored
272
-** under the same name.
273
-**
274
-** If the value in the 4th argument needs to be reset or freed,
275
-** the hash table will take over responsibiliity for doing so.
276
-*/
277
-static int sbs_store(
278
- SbsHashTab *pHash, /* Insert into this hash table */
279
- const char *zKey, /* The key */
280
- int nKey, /* Size of the key */
281
- const SbSValue *pValue /* The value to be stored */
282
-){
283
- int h;
284
- SbsHashEntry *p, *pNew;
285
-
286
- if( nKey<0 ) nKey = strlen(zKey);
287
- h = sbs_hash(zKey, nKey);
288
- for(p = pHash->aHash[h]; p; p=p->pNext){
289
- if( p->nKey==nKey && memcmp(p->zKey,zKey,nKey)==0 ){
290
- sbs_value_reset(&p->val);
291
- memcpy(&p->val, pValue, sizeof(p->val));
292
- return SBS_OK;
293
- }
294
- }
295
- pNew = malloc( sizeof(*pNew) + nKey );
296
- if( pNew ){
297
- pNew->nKey = nKey;
298
- memcpy(pNew->zKey, zKey, nKey+1);
299
- memcpy(&pNew->val, pValue, sizeof(pNew->val));
300
- pNew->pNext = pHash->aHash[h];
301
- pHash->aHash[h] = pNew;
302
- return SBS_OK;
303
- }
304
- return SBS_ERROR;
305
-}
306
-
307
-/*
308
-** Reset a hash table.
309
-*/
310
-static void sbs_hash_reset(SbsHashTab *pHash){
311
- int i;
312
- SbsHashEntry *p, *pNext;
313
- for(i=0; i<SBSCONFIG_NHASH; i++){
314
- for(p=pHash->aHash[i]; p; p=pNext){
315
- pNext = p->pNext;
316
- sbs_value_reset(&p->val);
317
- free(p);
318
- }
319
- }
320
- memset(pHash, 0, sizeof(*pHash));
321
-}
322
-
323
-/*
324
-** Push a value onto the stack of an interpreter
325
-*/
326
-static int sbs_push(Subscript *p, SbSValue *pVal){
327
- if( p->nStack>=SBSCONFIG_NSTACK ){
328
- sqlite3_snprintf(SBSCONFIG_ERRSIZE, p->zErrMsg, "stack overflow");
329
- return SBS_ERROR;
330
- }
331
- p->aStack[p->nStack++] = *pVal;
332
- return SBS_OK;
333
-}
334
-
335
-/*
336
-** Create a new subscript interpreter. Return a pointer to the
337
-** new interpreter, or return NULL if malloc fails.
338
-*/
339
-struct Subscript *SbS_Create(void){
340
- Subscript *p;
341
- p = malloc( sizeof(*p) );
342
- if( p ){
343
- memset(p, 0, sizeof(*p));
344
- }
345
- return p;
346
-}
347
-
348
-/*
349
-** Destroy an subscript interpreter
350
-*/
351
-void SbS_Destroy(struct Subscript *p){
352
- int i;
353
- sbs_hash_reset(&p->symTab);
354
- for(i=0; i<p->nStack; i++){
355
- sbs_value_reset(&p->aStack[i]);
356
- }
357
- free(p);
358
-}
359
-
360
-/*
361
-** Set the error message for an interpreter. Verb implementations
362
-** use this routine when they encounter an error.
363
-*/
364
-void SbS_SetErrorMessage(struct Subscript *p, const char *zErr, ...){
365
- int nErr;
366
- char *zMsg;
367
- va_list ap;
368
-
369
- va_start(ap, zErr);
370
- zMsg = vmprintf(zErr, ap);
371
- va_end(ap);
372
- nErr = strlen(zMsg);
373
- if( nErr>sizeof(p->zErrMsg)-1 ){
374
- nErr = sizeof(p->zErrMsg)-1;
375
- }
376
- memcpy(p->zErrMsg, zMsg, nErr);
377
- p->zErrMsg[nErr] = 0;
378
- free(zMsg);
379
-}
380
-
381
-/*
382
-** Return a pointer to the current error message for the
383
-** interpreter.
384
-*/
385
-const char *SbS_GetErrorMessage(struct Subscript *p){
386
- return p->zErrMsg;
387
-}
388
-
389
-/*
390
-** Add a new verb the given interpreter
391
-*/
392
-int SbS_AddVerb(
393
- struct Subscript *p,
394
- const char *zVerb,
395
- int (*xVerb)(struct Subscript*,void*),
396
- void *pArg
397
-){
398
- SbSValue v;
399
- v.flags = SBSVAL_VERB;
400
- v.u.verb.xVerb = xVerb;
401
- v.u.verb.pArg = pArg;
402
- return sbs_store(&p->symTab, zVerb, -1, &v);
403
-}
404
-
405
-/*
406
-** Store a value in an interpreter variable.
407
-*/
408
-int SbS_Store(
409
- struct Subscript *p, /* Store into this interpreter */
410
- const char *zName, /* Name of the variable */
411
- const char *zValue, /* Value of the variable */
412
- int persistence /* 0: static. 1: ephemeral. 2: dynamic */
413
-){
414
- SbSValue v;
415
- v.flags = SBSVAL_STR;
416
- v.u.str.size = strlen(zValue);
417
- if( persistence==1 ){
418
- v.u.str.z = mprintf("%s", zValue);
419
- }else{
420
- v.u.str.z = (char*)zValue;
421
- }
422
- if( persistence>0 ){
423
- v.flags |= SBSVAL_DYN;
424
- }
425
- return sbs_store(&p->symTab, zName, -1, &v);
426
-}
427
-
428
-/*
429
-** Push a string value onto the stack.
430
-**
431
-** If the 4th parameter is 0, then the string is static.
432
-** If the 4th parameter is non-zero then the string was obtained
433
-** from malloc and Subscript will take responsibility for freeing
434
-** it.
435
-**
436
-** Return 0 on success and non-zero if there is an error.
437
-*/
438
-int SbS_Push(
439
- struct Subscript *p, /* Push onto this interpreter */
440
- char *z, /* String value to push */
441
- int n, /* Length of the string, or -1 */
442
- int dyn /* If true, z was obtained from malloc */
443
-){
444
- SbSValue v;
445
- v.flags = SBSVAL_STR;
446
- if( dyn ){
447
- v.flags |= SBSVAL_DYN;
448
- }
449
- if( n<0 ) n = strlen(z);
450
- v.u.str.size = n;
451
- v.u.str.z = z;
452
- return sbs_push(p, &v);
453
-}
454
-
455
-/*
456
-** Push an integer value onto the stack.
457
-**
458
-** This routine really just converts the integer into a string
459
-** then calls SbS_Push.
460
-*/
461
-int SbS_PushInt(struct Subscript *p, int iVal){
462
- if( iVal==0 ){
463
- return SbS_Push(p, "0", 1, 0);
464
- }else if( iVal==1 ){
465
- return SbS_Push(p, "1", 1, 0);
466
- }else{
467
- char *z;
468
- int n;
469
- char zVal[50];
470
- sprintf(zVal, "%d", iVal);
471
- n = strlen(zVal);
472
- z = malloc( n+1 );
473
- if( z ){
474
- strcpy(z, zVal);
475
- return SbS_Push(p, z, n, 1);
476
- }else{
477
- return SBS_ERROR;
478
- }
479
- }
480
-}
481
-
482
-/*
483
-** Pop and destroy zero or more values from the stack.
484
-** Return the number of values remaining on the stack after
485
-** the pops occur.
486
-*/
487
-int SbS_Pop(struct Subscript *p, int N){
488
- while( N>0 && p->nStack>0 ){
489
- p->nStack--;
490
- sbs_value_reset(&p->aStack[p->nStack]);
491
- N--;
492
- }
493
- return p->nStack;
494
-}
495
-
496
-/*
497
-** Return the N-th element of the stack. 0 is the top of the stack.
498
-** 1 is the first element down. 2 is the second element. And so forth.
499
-** Return NULL if there is no N-th element.
500
-**
501
-** The pointer returned is only valid until the value is popped
502
-** from the stack.
503
-*/
504
-const char *SbS_StackValue(struct Subscript *p, int N, int *pSize){
505
- SbSValue *pVal;
506
- if( N<0 || N>=p->nStack ){
507
- return 0;
508
- }
509
- pVal = &p->aStack[p->nStack-N-1];
510
- if( (pVal->flags & SBSVAL_STR)==0 ){
511
- return 0;
512
- }
513
- *pSize = pVal->u.str.size;
514
- return pVal->u.str.z;
515
-}
516
-
517
-/*
518
-** A convenience routine for extracting an integer value from the
519
-** stack.
520
-*/
521
-int SbS_StackValueInt(struct Subscript *p, int N){
522
- int n, v;
523
- int isNeg = 0;
524
- const char *z = SbS_StackValue(p, N, &n);
525
- v = 0;
526
- if( n==0 ) return 0;
527
- if( z[0]=='-' ){
528
- isNeg = 1;
529
- z++;
530
- n--;
531
- }else if( z[0]=='+' ){
532
- z++;
533
- n--;
534
- }
535
- while( n>0 && isdigit(z[0]) ){
536
- v = v*10 + z[0] - '0';
537
- z++;
538
- n--;
539
- }
540
- if( isNeg ){
541
- v = -v;
542
- }
543
- return v;
544
-}
545
-
546
-/*
547
-** Retrieve the value of a variable from the interpreter. Return
548
-** NULL if no such variable is defined.
549
-**
550
-** The returned string is not necessarily (probably not) zero-terminated.
551
-** The string may be deallocated the next time anything is done to
552
-** the interpreter. Make a copy if you need it to persist.
553
-*/
554
-const char *SbS_Fetch(
555
- struct Subscript *p, /* The interpreter we are interrogating */
556
- const char *zKey, /* Name of the variable. Case sensitive */
557
- int nKey, /* Length of the key */
558
- int *pLength /* Write the length here */
559
-){
560
- const SbSValue *pVal;
561
-
562
- pVal = sbs_fetch(&p->symTab, zKey, nKey);
563
- if( pVal==0 || (pVal->flags & SBSVAL_STR)==0 ){
564
- *pLength = 0;
565
- return 0;
566
- }else{
567
- *pLength = pVal->u.str.size;
568
- return pVal->u.str.z;
569
- }
570
-}
571
-
572
-/*
573
-** Generate an error and return non-zero if the stack has
574
-** fewer than N elements. This is utility routine used in
575
-** the implementation of verbs.
576
-*/
577
-int SbS_RequireStack(struct Subscript *p, int N, const char *zCmd){
578
- if( p->nStack>=N ) return 0;
579
- sqlite3_snprintf(sizeof(p->zErrMsg), p->zErrMsg,
580
- "\"%s\" requires at least %d stack elements - only found %d",
581
- zCmd, N, p->nStack);
582
- return 1;
583
-}
584
-
585
-/*
586
-** Subscript command: STRING NAME set
587
-**
588
-** Write the value of STRING into variable called NAME.
589
-*/
590
-static int setCmd(Subscript *p, void *pNotUsed){
591
- SbSValue *pTos;
592
- SbSValue *pNos;
593
- if( SbS_RequireStack(p, 2, "set") ) return SBS_ERROR;
594
- pTos = &p->aStack[--p->nStack];
595
- pNos = &p->aStack[--p->nStack];
596
- sbs_store(&p->symTab, pTos->u.str.z, pTos->u.str.size, pNos);
597
- sbs_value_reset(pTos);
598
- return 0;
599
-}
600
-
601
-/*
602
-** Subscript command: INTEGER not INTEGER
603
-*/
604
-static int notCmd(struct Subscript *p, void *pNotUsed){
605
- int n;
606
- if( SbS_RequireStack(p, 1, "not") ) return 1;
607
- n = SbS_StackValueInt(p, 0);
608
- SbS_Pop(p, 1);
609
- SbS_PushInt(p, !n);
610
- return 0;
611
-}
612
-
613
-#define SBSOP_ADD 1
614
-#define SBSOP_SUB 2
615
-#define SBSOP_MUL 3
616
-#define SBSOP_DIV 4
617
-#define SBSOP_AND 5
618
-#define SBSOP_OR 6
619
-#define SBSOP_MIN 7
620
-#define SBSOP_MAX 8
621
-#define SBSOP_EQ 9
622
-#define SBSOP_NE 10
623
-#define SBSOP_LT 11
624
-#define SBSOP_GT 12
625
-#define SBSOP_LE 13
626
-#define SBSOP_GE 14
627
-
628
-/*
629
-** Subscript command: INTEGER INTEGER <binary-op> INTEGER
630
-*/
631
-static int bopCmd(struct Subscript *p, void *pOp){
632
- int a, b, c;
633
- if( SbS_RequireStack(p, 2, "BINARY-OP") ) return 1;
634
- a = SbS_StackValueInt(p, 1);
635
- b = SbS_StackValueInt(p, 0);
636
- switch( (int)pOp ){
637
- case SBSOP_EQ: c = a==b; break;
638
- case SBSOP_NE: c = a!=b; break;
639
- case SBSOP_LT: c = a<b; break;
640
- case SBSOP_LE: c = a<=b; break;
641
- case SBSOP_GT: c = a>b; break;
642
- case SBSOP_GE: c = a>=b; break;
643
- case SBSOP_ADD: c = a+b; break;
644
- case SBSOP_SUB: c = a-b; break;
645
- case SBSOP_MUL: c = a*b; break;
646
- case SBSOP_DIV: c = b!=0 ? a/b : 0; break;
647
- case SBSOP_AND: c = a && b; break;
648
- case SBSOP_OR: c = a || b; break;
649
- case SBSOP_MIN: c = a<b ? a : b; break;
650
- case SBSOP_MAX: c = a<b ? b : a; break;
651
- }
652
- SbS_Pop(p, 2);
653
- SbS_PushInt(p, c);
654
- return 0;
655
-}
656
-
657
-/*
658
-** Subscript command: STRING STRING streq INTEGER
659
-*/
660
-static int streqCmd(struct Subscript *p, void *pOp){
661
- int c, nA, nB;
662
- const char *A, *B;
663
-
664
- if( SbS_RequireStack(p, 2, "BINARY-OP") ) return 1;
665
- A = SbS_StackValue(p, 1, &nA);
666
- B = SbS_StackValue(p, 0, &nB);
667
- c = nA==nB && memcmp(A,B,nA)==0;
668
- SbS_Pop(p, 2);
669
- SbS_PushInt(p, c);
670
- return 0;
671
-}
672
-
673
-/*
674
-** Subscript command: STRING hascap INTEGER
675
-**
676
-** Return true if the user has all of the capabilities listed.
677
-*/
678
-static int hascapCmd(struct Subscript *p, void *pNotUsed){
679
- const char *z;
680
- int n, a;
681
- if( SbS_RequireStack(p, 1, "hascap") ) return 1;
682
- z = SbS_StackValue(p, 0, &n);
683
- a = login_has_capability(z, n);
684
- SbS_Pop(p, 1);
685
- SbS_PushInt(p, a);
686
- return 0;
687
-}
688
-
689
-/*
690
-** Subscript command: STRING linecount INTEGER
691
-**
692
-** Return one more than the number of \n characters in STRING.
693
-*/
694
-static int linecntCmd(struct Subscript *p, void *pNotUsed){
695
- const char *z;
696
- int size, n, i;
697
- if( SbS_RequireStack(p, 1, "linecount") ) return 1;
698
- z = SbS_StackValue(p, 0, &size);
699
- for(n=1, i=0; i<size; i++){
700
- if( z[i]=='\n' ) n++;
701
- }
702
- SbS_Pop(p, 1);
703
- SbS_PushInt(p, n);
704
- return 0;
705
-}
706
-
707
-/*
708
-** Subscript command: STRING length INTEGER
709
-**
710
-** Return one more than the number characters in STRING.
711
-*/
712
-static int lengthCmd(struct Subscript *p, void *pNotUsed){
713
- int size;
714
- if( SbS_RequireStack(p, 1, "length") ) return 1;
715
- SbS_StackValue(p, 0, &size);
716
- SbS_Pop(p, 1);
717
- SbS_PushInt(p, size);
718
- return 0;
719
-}
720
-
721
-/*
722
-** Subscript command: NAME exists INTEGER
723
-**
724
-** Return TRUE if the variable NAME exists.
725
-*/
726
-static int existsCmd(struct Subscript *p, void *pNotUsed){
727
- const char *z;
728
- int size, x;
729
- if( SbS_RequireStack(p, 1, "exists") ) return 1;
730
- z = SbS_StackValue(p, 0, &size);
731
- x = sbs_fetch(&p->symTab, (char*)z, size)!=0;
732
- SbS_Pop(p, 1);
733
- SbS_PushInt(p, x);
734
- return 0;
735
-}
736
-
737
-/*
738
-** Subscript command: VALUE NAME get VALUE
739
-**
740
-** Push the value of varible NAME onto the stack if it exists.
741
-** If NAME does not exist, puts VALUE onto the stack instead.
742
-*/
743
-static int getCmd(Subscript *p, void *pNotUsed){
744
- const char *zName;
745
- int nName;
746
- const SbSValue *pVal;
747
- int rc = 0;
748
-
749
- if( SbS_RequireStack(p, 2, "get") ) return SBS_ERROR;
750
- zName = SbS_StackValue(p, 0, &nName);
751
- pVal = sbs_fetch(&p->symTab, (char*)zName, nName);
752
- if( pVal!=0 && (pVal->flags & SBSVAL_STR)!=0 ){
753
- SbS_Pop(p, 2);
754
- rc = SbS_Push(p, pVal->u.str.z, pVal->u.str.size, 0);
755
- }else{
756
- SbS_Pop(p, 1);
757
- }
758
- return rc;
759
-}
760
-
761
-
762
-
763
-/*
764
-** True if output is enabled. False if disabled.
765
-*/
766
-static int enableOutput = 1;
767
-
768
-/*
769
-** Subscript command: BOOLEAN enable_output
770
-**
771
-** Enable or disable the puts and hputs commands.
772
-*/
773
-static int enableOutputCmd(struct Subscript *p, void *pNotUsed){
774
- if( SbS_RequireStack(p, 1, "enable_output") ) return 1;
775
- enableOutput = SbS_StackValueInt(p, 0)!=0;
776
- SbS_Pop(p, 1);
777
- return 0;
778
-}
779
-
780
-/*
781
-** Send text to the appropriate output: Either to the console
782
-** or to the CGI reply buffer.
783
-*/
784
-static void sendText(const char *z, int n){
785
- if( enableOutput && n ){
786
- if( n<0 ) n = strlen(z);
787
- if( g.cgiPanic ){
788
- cgi_append_content(z, n);
789
- }else{
790
- fwrite(z, 1, n, stdout);
791
- }
792
- }
793
-}
794
-
795
-/*
796
-** Subscript command: STRING puts
797
-** Subscript command: STRING html
798
-**
799
-** Output STRING as HTML (html) or unchanged (puts).
800
-** Pop it from the stack.
801
-*/
802
-static int putsCmd(struct Subscript *p, void *pConvert){
803
- int size;
804
- const char *z;
805
- char *zOut;
806
- if( SbS_RequireStack(p, 1, "puts") ) return 1;
807
- if( enableOutput ){
808
- z = SbS_StackValue(p, 0, &size);
809
- if( pConvert ){
810
- zOut = htmlize(z, size);
811
- size = strlen(zOut);
812
- }else{
813
- zOut = (char*)z;
814
- }
815
- sendText(zOut, size);
816
- if( pConvert ){
817
- free(zOut);
818
- }
819
- }
820
- SbS_Pop(p, 1);
821
- return 0;
822
-}
823
-
824
-/*
825
-** Subscript command: STRING wiki
826
-**
827
-** Render the input string as wiki.
828
-*/
829
-static int wikiCmd(struct Subscript *p, void *pConvert){
830
- int size;
831
- const char *z;
832
- if( SbS_RequireStack(p, 1, "wiki") ) return 1;
833
- if( enableOutput ){
834
- Blob src;
835
- z = SbS_StackValue(p, 0, &size);
836
- blob_init(&src, z, size);
837
- wiki_convert(&src, 0, WIKI_INLINE);
838
- blob_reset(&src);
839
- }
840
- SbS_Pop(p, 1);
841
- return 0;
842
-}
843
-
844
-/*
845
-** Subscript command: NAME TEXT-LIST NUMLINES combobox
846
-**
847
-** Generate an HTML combobox. NAME is both the name of the
848
-** CGI parameter and the name of a variable that contains the
849
-** currently selected value. TEXT-LIST is a list of possible
850
-** values for the combobox. NUMLINES is 1 for a true combobox.
851
-** If NUMLINES is greater than one then the display is a listbox
852
-** with the number of lines given.
853
-*/
854
-static int comboboxCmd(struct Subscript *p, void *NotUsed){
855
- if( SbS_RequireStack(p, 3, "combobox") ) return 1;
856
- if( enableOutput ){
857
- int height;
858
- Blob list, elem;
859
- char *zName, *zList;
860
- int nName, nList, nValue;
861
- const char *zValue;
862
- char *z, *zH;
863
-
864
- height = SbS_StackValueInt(p, 0);
865
- zList = (char*)SbS_StackValue(p, 1, &nList);
866
- blob_init(&list, zList, nList);
867
- zName = (char*)SbS_StackValue(p, 2, &nName);
868
- zValue = SbS_Fetch(p, zName, nName, &nValue);
869
- z = mprintf("<select name=\"%z\" size=\"%d\">",
870
- htmlize(zName, nName), height);
871
- sendText(z, -1);
872
- free(z);
873
- while( blob_token(&list, &elem) ){
874
- zH = htmlize(blob_buffer(&elem), blob_size(&elem));
875
- if( zValue && blob_size(&elem)==nValue
876
- && memcmp(zValue, blob_buffer(&elem), nValue)==0 ){
877
- z = mprintf("<option value=\"%s\" selected>%s</option>", zH, zH);
878
- }else{
879
- z = mprintf("<option value=\"%s\">%s</option>", zH, zH);
880
- }
881
- free(zH);
882
- sendText(z, -1);
883
- free(z);
884
- }
885
- sendText("</select>", -1);
886
- blob_reset(&list);
887
- }
888
- SbS_Pop(p, 3);
889
- return 0;
890
-}
891
-
892
-/*
893
-** Subscript command: STRING BOOLEAN if
894
-**
895
-** Evaluate STRING as a script if BOOLEAN is true.
896
-*/
897
-static int ifCmd(struct Subscript *p, void *pNotUsed){
898
- int cond;
899
- int rc = SBS_OK;
900
-
901
- if( SbS_RequireStack(p, 2, "if") ) return 1;
902
- cond = SbS_StackValueInt(p, 0);
903
- if( cond ){
904
- SbSValue script = p->aStack[p->nStack-2];
905
- p->aStack[p->nStack-2].flags = 0;
906
- SbS_Pop(p, 2);
907
- rc = SbS_Eval(p, script.u.str.z, script.u.str.size);
908
- sbs_value_reset(&script);
909
- }else{
910
- SbS_Pop(p, 2);
911
- }
912
- return rc;
913
-}
914
-
915
-/*
916
-** Subscript command: ... STRING COUNT concat STRING
917
-**
918
-** Concatenate COUNT strings into a single string and leave
919
-** the concatenation on the stack.
920
-*/
921
-static int concatCmd(struct Subscript *p, void *pNotUsed){
922
- int count;
923
- int nByte;
924
- char *z;
925
- int i, j;
926
-
927
- if( SbS_RequireStack(p, 1, "concat") ) return SBS_ERROR;
928
- count = SbS_StackValueInt(p, 0);
929
- if( SbS_RequireStack(p, count+1, "concat") ) return SBS_ERROR;
930
- SbS_Pop(p, 1);
931
- nByte = 1;
932
- for(i=p->nStack-count; i<p->nStack; i++){
933
- nByte += p->aStack[i].u.str.size;
934
- }
935
- z = malloc(nByte);
936
- if( z==0 ){ fossil_panic("out of memory"); }
937
- for(j=0, i=p->nStack-count; i<p->nStack; i++){
938
- nByte = p->aStack[i].u.str.size;
939
- memcpy(&z[j], p->aStack[i].u.str.z, nByte);
940
- j += nByte;
941
- }
942
- z[j] = 0;
943
- SbS_Pop(p, count);
944
- SbS_Push(p, z, j, 1);
945
- return SBS_OK;
946
-}
947
-
948
-
949
-/*
950
-** A table of built-in commands
951
-*/
952
-static const struct {
953
- const char *zCmd;
954
- int (*xCmd)(Subscript*,void*);
955
- void *pArg;
956
-} aBuiltin[] = {
957
- { "add", bopCmd, (void*)SBSOP_AND },
958
- { "and", bopCmd, (void*)SBSOP_AND },
959
- { "combobox", comboboxCmd, 0, },
960
- { "concat", concatCmd, 0, },
961
- { "div", bopCmd, (void*)SBSOP_DIV },
962
- { "enable_output", enableOutputCmd, 0 },
963
- { "eq", bopCmd, (void*)SBSOP_EQ },
964
- { "exists", existsCmd, 0, },
965
- { "get", getCmd, 0, },
966
- { "hascap", hascapCmd, 0 },
967
- { "html", putsCmd, (void*)1 },
968
- { "if", ifCmd, 0, },
969
- { "le", bopCmd, (void*)SBSOP_LE },
970
- { "length", lengthCmd, 0 },
971
- { "linecount", linecntCmd, 0 },
972
- { "lt", bopCmd, (void*)SBSOP_LT },
973
- { "max", bopCmd, (void*)SBSOP_MAX },
974
- { "min", bopCmd, (void*)SBSOP_MIN },
975
- { "mul", bopCmd, (void*)SBSOP_MUL },
976
- { "not", notCmd, 0 },
977
- { "or", bopCmd, (void*)SBSOP_OR },
978
- { "puts", putsCmd, 0 },
979
- { "set", setCmd, 0 },
980
- { "streq", streqCmd, 0 },
981
- { "sub", bopCmd, (void*)SBSOP_SUB },
982
- { "wiki", wikiCmd, 0, },
983
-};
984
-
985
-
986
-/*
987
-** Compare a zero-terminated string zPattern against
988
-** an unterminated string zStr of length nStr.
989
-**
990
-** Return less than, equal to, or greater than zero if
991
-** zPattern is less than, equal to, or greater than zStr.
992
-*/
993
-static int compare_cmd(const char *zPattern, const char *zStr, int nStr){
994
- int c = strncmp(zPattern, zStr, nStr);
995
- if( c==0 && zPattern[nStr]!=0 ){
996
- c = 1;
997
- }
998
- return c;
999
-}
1000
-
1001
-/*
1002
-** Evaluate the script given by the first nScript bytes of zScript[].
1003
-** Return 0 on success and non-zero for an error.
1004
-*/
1005
-int SbS_Eval(struct Subscript *p, const char *zScript, int nScript){
1006
- int rc = SBS_OK;
1007
- if( nScript<0 ) nScript = strlen(zScript);
1008
- while( nScript>0 && rc==SBS_OK ){
1009
- int n;
1010
- int ttype;
1011
- n = sbs_next_token(zScript, nScript, &ttype);
1012
-
1013
-#if 0
1014
- {
1015
- int i, nElem;
1016
- const char *zElem;
1017
- if( p->nStack>0 ){
1018
- printf("STACK:");
1019
- for(i=0; i<p->nStack; i++){
1020
- zElem = SbS_StackValue(p, i, &nElem);
1021
- printf(" [%.*s]", nElem, zElem);
1022
- }
1023
- printf("\n");
1024
- }
1025
- printf("TOKEN(%d): [%.*s]\n", ttype, n, zScript);
1026
- }
1027
-#endif
1028
-
1029
- switch( ttype ){
1030
- case SBSTT_WHITESPACE: {
1031
- break;
1032
- }
1033
- case SBSTT_EOF: {
1034
- nScript = 0;
1035
- break;
1036
- }
1037
- case SBSTT_INCOMPLETE:
1038
- case SBSTT_UNKNOWN: {
1039
- rc = SBS_ERROR;
1040
- nScript = n;
1041
- break;
1042
- }
1043
- case SBSTT_INTEGER: {
1044
- rc = SbS_Push(p, (char*)zScript, n, 0);
1045
- break;
1046
- }
1047
- case SBSTT_NAME: {
1048
- rc = SbS_Push(p, (char*)&zScript[1], n-1, 0);
1049
- break;
1050
- }
1051
- case SBSTT_STRING: {
1052
- rc = SbS_Push(p, (char*)&zScript[1], n-2, 0);
1053
- break;
1054
- }
1055
- case SBSTT_QUOTED: {
1056
- char *z = mprintf("%.*s", n-2, &zScript[1]);
1057
- int i, j;
1058
- for(i=j=0; z[i]; i++, j++){
1059
- int c = z[i];
1060
- if( c=='\\' && z[i+1] ){
1061
- c = z[++i];
1062
- if( c=='n' ){
1063
- c = '\n';
1064
- }else if( c>='0' && c<='7' ){
1065
- int k;
1066
- c -= '0';
1067
- for(k=1; k<3 && z[i+k]>='0' && z[i+k]<='7'; k++){
1068
- c = c*8 + z[i+k] - '0';
1069
- }
1070
- i += k-1;
1071
- }
1072
- }
1073
- z[j] = c;
1074
- }
1075
- z[j] = 0;
1076
- rc = SbS_Push(p, z, j, 1);
1077
- break;
1078
- }
1079
- case SBSTT_VERB: {
1080
- /* First look up the verb in the hash table */
1081
- const SbSValue *pVal = sbs_fetch(&p->symTab, (char*)zScript, n);
1082
- if( pVal==0 ){
1083
- /* If the verb is not in the hash table, look for a
1084
- ** built-in command */
1085
- int upr = sizeof(aBuiltin)/sizeof(aBuiltin[0]) - 1;
1086
- int lwr = 0;
1087
- rc = SBS_ERROR;
1088
- while( upr>=lwr ){
1089
- int i = (upr+lwr)/2;
1090
- int c = compare_cmd(aBuiltin[i].zCmd, zScript, n);
1091
- if( c==0 ){
1092
- rc = aBuiltin[i].xCmd(p, aBuiltin[i].pArg);
1093
- break;
1094
- }else if( c>0 ){
1095
- upr = i-1;
1096
- }else{
1097
- lwr = i+1;
1098
- }
1099
- }
1100
- if( upr<lwr ){
1101
- SbS_SetErrorMessage(p, "unknown verb: %.*s", n, zScript);
1102
- }
1103
- }else if( pVal->flags & SBSVAL_VERB ){
1104
- rc = pVal->u.verb.xVerb(p, pVal->u.verb.pArg);
1105
- }else if( pVal->flags & SBSVAL_EXEC ){
1106
- rc = SbS_Eval(p, pVal->u.str.z, pVal->u.str.size);
1107
- }else{
1108
- rc = SbS_Push(p, pVal->u.str.z, pVal->u.str.size, 0);
1109
- }
1110
- break;
1111
- }
1112
- }
1113
- zScript += n;
1114
- nScript -= n;
1115
- }
1116
- return rc;
1117
-}
1118
-
1119
-/*
1120
-** The z[] input contains text mixed with subscript scripts.
1121
-** The subscript scripts are contained within [...]. This routine
1122
-** processes the template and writes the results on either
1123
-** stdout or into CGI.
1124
-*/
1125
-int SbS_Render(struct Subscript *p, const char *z){
1126
- int i = 0;
1127
- int rc = SBS_OK;
1128
- while( z[i] ){
1129
- if( z[i]=='[' ){
1130
- sendText(z, i);
1131
- z += i+1;
1132
- for(i=0; z[i] && z[i]!=']'; i++){}
1133
- rc = SbS_Eval(p, z, i);
1134
- if( rc!=SBS_OK ) break;
1135
- if( z[i] ) i++;
1136
- z += i;
1137
- i = 0;
1138
- }else{
1139
- i++;
1140
- }
1141
- }
1142
- if( rc==SBS_ERROR ){
1143
- sendText("<hr><p><font color=\"red\"><b>ERROR: ", -1);
1144
- sendText(SbS_GetErrorMessage(p), -1);
1145
- sendText("</b></font></p>", -1);
1146
- }else{
1147
- sendText(z, i);
1148
- }
1149
- return rc;
1150
-}
1151
-
1152
-/*
1153
-** COMMAND: test-subscript
1154
-*/
1155
-void test_subscript(void){
1156
- Subscript *p;
1157
- Blob in;
1158
- if( g.argc<3 ){
1159
- usage("FILE");
1160
- }
1161
- blob_zero(&in);
1162
- blob_read_from_file(&in, g.argv[2]);
1163
- p = SbS_Create();
1164
- SbS_Render(p, blob_str(&in));
1165
-}
--- a/src/subscript.c
+++ b/src/subscript.c
@@ -1,1165 +0,0 @@
1 /*
2 ** Copyright (c) 2007 D. Richard Hipp
3 **
4 ** This program is free software; you can redistribute it and/or
5 ** modify it under the terms of the GNU General Public
6 ** License version 2 as published by the Free Software Foundation.
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. See the GNU
11 ** General Public License for more details.
12 **
13 ** You should have received a copy of the GNU General Public
14 ** License along with this library; if not, write to the
15 ** Free Software Foundation, Inc., 59 Temple Place - Suite 330,
16 ** Boston, MA 02111-1307, USA.
17 **
18 ** Author contact information:
19 ** [email protected]
20 ** http://www.hwaci.com/drh/
21 **
22 *******************************************************************************
23 **
24 ** This file contains an implementation of the "subscript" interpreter.
25 **
26 ** Subscript attempts to be an extremely light-weight scripting
27 ** language. It contains the barest of bare essentials. It is
28 ** stack-based and forth-like. Everything is in a single global
29 ** namespace. There is only a single datatype of zero-terminated
30 ** string. The stack is of fixed, limited depth. The symbal table
31 ** is of a limited and fixed size.
32 **
33 ** TOKENS:
34 **
35 ** * All tokens are separated from each other by whitespace.
36 ** * Leading and trailing whitespace is ignored.
37 ** * Text within nested {...} is a single string token. The outermost
38 ** curly braces are not part of the token.
39 ** * An identifier with a leading "/" is a string token.
40 ** * A token that looks like a number is a string token.
41 ** * An identifier token is called a "verb".
42 **
43 ** PROCESSING:
44 **
45 ** * The input is divided into tokens. Whitespace is discarded.
46 ** String and verb tokens are passed into the engine.
47 ** * String tokens are pushed onto the stack.
48 ** * If a verb token corresponds to a procedure, that procedure is
49 ** run. The procedure might use, pop, or pull elements from
50 ** the stack.
51 ** * If a verb token corresponds to a variable, the value of that
52 ** variable is pushed onto the stack.
53 **
54 ** This module attempts to be completely self-contained so that it can
55 ** be portable to other projects.
56 */
57 #include "config.h"
58 #include "subscript.h"
59 #include <assert.h>
60
61 #if INTERFACE
62 typedef struct Subscript Subscript;
63 #define SBS_OK 0
64 #define SBS_ERROR 1
65 #define SBS_RETURN 2
66 #define SBS_BREAK 3
67 #endif
68
69 /*
70 ** Configuration constants
71 */
72 #define SBSCONFIG_NHASH 41 /* Size of the hash table */
73 #define SBSCONFIG_NSTACK 20 /* Maximum stack depth */
74 #define SBSCONFIG_ERRSIZE 100 /* Maximum size of an error message */
75
76 /*
77 ** Available token types:
78 */
79 #define SBSTT_WHITESPACE 1 /* ex: \040 */
80 #define SBSTT_NAME 2 /* ex: /abcde */
81 #define SBSTT_VERB 3 /* ex: abcde */
82 #define SBSTT_STRING 4 /* ex: {...} */
83 #define SBSTT_QUOTED 5 /* ex: "...\n..." */
84 #define SBSTT_INTEGER 6 /* Integer including option sign */
85 #define SBSTT_INCOMPLETE 7 /* Unterminated string token */
86 #define SBSTT_UNKNOWN 8 /* Unknown token */
87 #define SBSTT_EOF 9 /* End of input */
88
89 /*
90 ** Values are stored in the hash table as instances of the following
91 ** structure.
92 */
93 typedef struct SbSValue SbSValue;
94 struct SbSValue {
95 int flags; /* Bitmask of SBSVAL_* values */
96 union {
97 struct {
98 int size; /* Number of bytes in string, not counting final zero */
99 char *z; /* Pointer to string content */
100 } str; /* Value if SBSVAL_STR */
101 struct {
102 int (*xVerb)(Subscript*, void*); /* Function to do the work */
103 void *pArg; /* 2nd parameter to xVerb */
104 } verb; /* Value if SBSVAL_VERB */
105 } u;
106 };
107 #define SBSVAL_VERB 0x0001 /* Value stored in u.verb */
108 #define SBSVAL_STR 0x0002 /* Value stored in u.str */
109 #define SBSVAL_DYN 0x0004 /* u.str.z is dynamically allocated */
110 #define SBSVAL_EXEC 0x0008 /* u.str.z is a script */
111
112 /*
113 ** An entry in the hash table is an instance of this structure.
114 */
115 typedef struct SbsHashEntry SbsHashEntry;
116 struct SbsHashEntry {
117 SbsHashEntry *pNext; /* Next entry with the same hash on zKey */
118 SbSValue val; /* The payload */
119 int nKey; /* Length of the key */
120 char zKey[1]; /* The key */
121 };
122
123 /*
124 ** A hash table is an instance of the following structure.
125 */
126 typedef struct SbsHashTab SbsHashTab;
127 struct SbsHashTab {
128 SbsHashEntry *aHash[SBSCONFIG_NHASH]; /* The hash table */
129 };
130
131 /*
132 ** An instance of the Subscript interpreter
133 */
134 struct Subscript {
135 int nStack; /* Number of entries on stack */
136 SbsHashTab symTab; /* The symbol table */
137 char zErrMsg[SBSCONFIG_ERRSIZE]; /* Space to write an error message */
138 SbSValue aStack[SBSCONFIG_NSTACK]; /* The stack */
139 };
140
141
142 /*
143 ** Given an input string z of length n, identify the token that
144 ** starts at z[0]. Write the token type into *pTokenType and
145 ** return the length of the token.
146 */
147 static int sbs_next_token(const char *z, int n, int *pTokenType){
148 int c;
149 if( n<=0 || z[0]==0 ){
150 *pTokenType = SBSTT_EOF;
151 return 0;
152 }
153 c = z[0];
154 if( isspace(c) ){
155 int i;
156 *pTokenType = SBSTT_WHITESPACE;
157 for(i=1; i<n && isspace(z[i]); i++){}
158 return i;
159 }
160 if( c=='#' ){
161 int i;
162 for(i=1; i<n && z[i] && z[i-1]!='\n'; i++){}
163 *pTokenType = SBSTT_WHITESPACE;
164 return i;
165 }
166 if( c=='"' ){
167 int i;
168 for(i=1; i<n && z[i] && z[i]!='"'; i++){
169 if( z[i]=='\\' && i<n-1 ){ i++; }
170 }
171 if( z[i]=='"' ){
172 *pTokenType = SBSTT_QUOTED;
173 return i+1;
174 }else{
175 *pTokenType = SBSTT_INCOMPLETE;
176 return i;
177 }
178 }
179 if( c=='{' ){
180 int depth = 1;
181 int i;
182 for(i=1; i<n && z[i]; i++){
183 if( z[i]=='{' ){
184 depth++;
185 }else if( z[i]=='}' ){
186 depth--;
187 if( depth==0 ){
188 i++;
189 break;
190 }
191 }
192 }
193 if( depth ){
194 *pTokenType = SBSTT_INCOMPLETE;
195 }else{
196 *pTokenType = SBSTT_STRING;
197 }
198 return i;
199 }
200 if( c=='/' && n>=2 && isalpha(z[1]) ){
201 int i;
202 for(i=2; i<n && (isalnum(z[i]) || z[i]=='_'); i++){}
203 *pTokenType = SBSTT_NAME;
204 return i;
205 }
206 if( isalpha(c) ){
207 int i;
208 for(i=1; i<n && (isalnum(z[i]) || z[i]=='_'); i++){}
209 *pTokenType = SBSTT_VERB;
210 return i;
211 }
212 if( isdigit(c) || ((c=='-' || c=='+') && n>=2 && isdigit(z[1])) ){
213 int i;
214 for(i=1; i<n && isdigit(z[i]); i++){}
215 *pTokenType = SBSTT_INTEGER;
216 return i;
217 }
218 *pTokenType = SBSTT_UNKNOWN;
219 return 1;
220 }
221
222
223 /*
224 ** Release any memory allocated by a value.
225 */
226 static void sbs_value_reset(SbSValue *p){
227 if( p->flags & SBSVAL_DYN ){
228 free(p->u.str.z);
229 p->flags = SBSVAL_STR;
230 p->u.str.z = "";
231 p->u.str.size = 0;
232 }
233 }
234
235 /*
236 ** Compute a hash on a string.
237 */
238 static int sbs_hash(const char *z, int n){
239 int h = 0;
240 int i;
241 for(i=0; i<n; i++){
242 h ^= (h<<1) | z[i];
243 }
244 h &= 0x7ffffff;
245 return h % SBSCONFIG_NHASH;
246 }
247
248 /*
249 ** Look up a value in the hash table. Return a pointer to the value.
250 ** Return NULL if not found.
251 */
252 static const SbSValue *sbs_fetch(
253 SbsHashTab *pHash,
254 const char *zKey,
255 int nKey
256 ){
257 int h;
258 SbsHashEntry *p;
259
260 if( nKey<0 ) nKey = strlen(zKey);
261 h = sbs_hash(zKey, nKey);
262 for(p = pHash->aHash[h]; p; p=p->pNext){
263 if( p->nKey==nKey && memcmp(p->zKey,zKey,nKey)==0 ){
264 return &p->val;
265 }
266 }
267 return 0;
268 }
269
270 /*
271 ** Store a value in the hash table. Overwrite any prior value stored
272 ** under the same name.
273 **
274 ** If the value in the 4th argument needs to be reset or freed,
275 ** the hash table will take over responsibiliity for doing so.
276 */
277 static int sbs_store(
278 SbsHashTab *pHash, /* Insert into this hash table */
279 const char *zKey, /* The key */
280 int nKey, /* Size of the key */
281 const SbSValue *pValue /* The value to be stored */
282 ){
283 int h;
284 SbsHashEntry *p, *pNew;
285
286 if( nKey<0 ) nKey = strlen(zKey);
287 h = sbs_hash(zKey, nKey);
288 for(p = pHash->aHash[h]; p; p=p->pNext){
289 if( p->nKey==nKey && memcmp(p->zKey,zKey,nKey)==0 ){
290 sbs_value_reset(&p->val);
291 memcpy(&p->val, pValue, sizeof(p->val));
292 return SBS_OK;
293 }
294 }
295 pNew = malloc( sizeof(*pNew) + nKey );
296 if( pNew ){
297 pNew->nKey = nKey;
298 memcpy(pNew->zKey, zKey, nKey+1);
299 memcpy(&pNew->val, pValue, sizeof(pNew->val));
300 pNew->pNext = pHash->aHash[h];
301 pHash->aHash[h] = pNew;
302 return SBS_OK;
303 }
304 return SBS_ERROR;
305 }
306
307 /*
308 ** Reset a hash table.
309 */
310 static void sbs_hash_reset(SbsHashTab *pHash){
311 int i;
312 SbsHashEntry *p, *pNext;
313 for(i=0; i<SBSCONFIG_NHASH; i++){
314 for(p=pHash->aHash[i]; p; p=pNext){
315 pNext = p->pNext;
316 sbs_value_reset(&p->val);
317 free(p);
318 }
319 }
320 memset(pHash, 0, sizeof(*pHash));
321 }
322
323 /*
324 ** Push a value onto the stack of an interpreter
325 */
326 static int sbs_push(Subscript *p, SbSValue *pVal){
327 if( p->nStack>=SBSCONFIG_NSTACK ){
328 sqlite3_snprintf(SBSCONFIG_ERRSIZE, p->zErrMsg, "stack overflow");
329 return SBS_ERROR;
330 }
331 p->aStack[p->nStack++] = *pVal;
332 return SBS_OK;
333 }
334
335 /*
336 ** Create a new subscript interpreter. Return a pointer to the
337 ** new interpreter, or return NULL if malloc fails.
338 */
339 struct Subscript *SbS_Create(void){
340 Subscript *p;
341 p = malloc( sizeof(*p) );
342 if( p ){
343 memset(p, 0, sizeof(*p));
344 }
345 return p;
346 }
347
348 /*
349 ** Destroy an subscript interpreter
350 */
351 void SbS_Destroy(struct Subscript *p){
352 int i;
353 sbs_hash_reset(&p->symTab);
354 for(i=0; i<p->nStack; i++){
355 sbs_value_reset(&p->aStack[i]);
356 }
357 free(p);
358 }
359
360 /*
361 ** Set the error message for an interpreter. Verb implementations
362 ** use this routine when they encounter an error.
363 */
364 void SbS_SetErrorMessage(struct Subscript *p, const char *zErr, ...){
365 int nErr;
366 char *zMsg;
367 va_list ap;
368
369 va_start(ap, zErr);
370 zMsg = vmprintf(zErr, ap);
371 va_end(ap);
372 nErr = strlen(zMsg);
373 if( nErr>sizeof(p->zErrMsg)-1 ){
374 nErr = sizeof(p->zErrMsg)-1;
375 }
376 memcpy(p->zErrMsg, zMsg, nErr);
377 p->zErrMsg[nErr] = 0;
378 free(zMsg);
379 }
380
381 /*
382 ** Return a pointer to the current error message for the
383 ** interpreter.
384 */
385 const char *SbS_GetErrorMessage(struct Subscript *p){
386 return p->zErrMsg;
387 }
388
389 /*
390 ** Add a new verb the given interpreter
391 */
392 int SbS_AddVerb(
393 struct Subscript *p,
394 const char *zVerb,
395 int (*xVerb)(struct Subscript*,void*),
396 void *pArg
397 ){
398 SbSValue v;
399 v.flags = SBSVAL_VERB;
400 v.u.verb.xVerb = xVerb;
401 v.u.verb.pArg = pArg;
402 return sbs_store(&p->symTab, zVerb, -1, &v);
403 }
404
405 /*
406 ** Store a value in an interpreter variable.
407 */
408 int SbS_Store(
409 struct Subscript *p, /* Store into this interpreter */
410 const char *zName, /* Name of the variable */
411 const char *zValue, /* Value of the variable */
412 int persistence /* 0: static. 1: ephemeral. 2: dynamic */
413 ){
414 SbSValue v;
415 v.flags = SBSVAL_STR;
416 v.u.str.size = strlen(zValue);
417 if( persistence==1 ){
418 v.u.str.z = mprintf("%s", zValue);
419 }else{
420 v.u.str.z = (char*)zValue;
421 }
422 if( persistence>0 ){
423 v.flags |= SBSVAL_DYN;
424 }
425 return sbs_store(&p->symTab, zName, -1, &v);
426 }
427
428 /*
429 ** Push a string value onto the stack.
430 **
431 ** If the 4th parameter is 0, then the string is static.
432 ** If the 4th parameter is non-zero then the string was obtained
433 ** from malloc and Subscript will take responsibility for freeing
434 ** it.
435 **
436 ** Return 0 on success and non-zero if there is an error.
437 */
438 int SbS_Push(
439 struct Subscript *p, /* Push onto this interpreter */
440 char *z, /* String value to push */
441 int n, /* Length of the string, or -1 */
442 int dyn /* If true, z was obtained from malloc */
443 ){
444 SbSValue v;
445 v.flags = SBSVAL_STR;
446 if( dyn ){
447 v.flags |= SBSVAL_DYN;
448 }
449 if( n<0 ) n = strlen(z);
450 v.u.str.size = n;
451 v.u.str.z = z;
452 return sbs_push(p, &v);
453 }
454
455 /*
456 ** Push an integer value onto the stack.
457 **
458 ** This routine really just converts the integer into a string
459 ** then calls SbS_Push.
460 */
461 int SbS_PushInt(struct Subscript *p, int iVal){
462 if( iVal==0 ){
463 return SbS_Push(p, "0", 1, 0);
464 }else if( iVal==1 ){
465 return SbS_Push(p, "1", 1, 0);
466 }else{
467 char *z;
468 int n;
469 char zVal[50];
470 sprintf(zVal, "%d", iVal);
471 n = strlen(zVal);
472 z = malloc( n+1 );
473 if( z ){
474 strcpy(z, zVal);
475 return SbS_Push(p, z, n, 1);
476 }else{
477 return SBS_ERROR;
478 }
479 }
480 }
481
482 /*
483 ** Pop and destroy zero or more values from the stack.
484 ** Return the number of values remaining on the stack after
485 ** the pops occur.
486 */
487 int SbS_Pop(struct Subscript *p, int N){
488 while( N>0 && p->nStack>0 ){
489 p->nStack--;
490 sbs_value_reset(&p->aStack[p->nStack]);
491 N--;
492 }
493 return p->nStack;
494 }
495
496 /*
497 ** Return the N-th element of the stack. 0 is the top of the stack.
498 ** 1 is the first element down. 2 is the second element. And so forth.
499 ** Return NULL if there is no N-th element.
500 **
501 ** The pointer returned is only valid until the value is popped
502 ** from the stack.
503 */
504 const char *SbS_StackValue(struct Subscript *p, int N, int *pSize){
505 SbSValue *pVal;
506 if( N<0 || N>=p->nStack ){
507 return 0;
508 }
509 pVal = &p->aStack[p->nStack-N-1];
510 if( (pVal->flags & SBSVAL_STR)==0 ){
511 return 0;
512 }
513 *pSize = pVal->u.str.size;
514 return pVal->u.str.z;
515 }
516
517 /*
518 ** A convenience routine for extracting an integer value from the
519 ** stack.
520 */
521 int SbS_StackValueInt(struct Subscript *p, int N){
522 int n, v;
523 int isNeg = 0;
524 const char *z = SbS_StackValue(p, N, &n);
525 v = 0;
526 if( n==0 ) return 0;
527 if( z[0]=='-' ){
528 isNeg = 1;
529 z++;
530 n--;
531 }else if( z[0]=='+' ){
532 z++;
533 n--;
534 }
535 while( n>0 && isdigit(z[0]) ){
536 v = v*10 + z[0] - '0';
537 z++;
538 n--;
539 }
540 if( isNeg ){
541 v = -v;
542 }
543 return v;
544 }
545
546 /*
547 ** Retrieve the value of a variable from the interpreter. Return
548 ** NULL if no such variable is defined.
549 **
550 ** The returned string is not necessarily (probably not) zero-terminated.
551 ** The string may be deallocated the next time anything is done to
552 ** the interpreter. Make a copy if you need it to persist.
553 */
554 const char *SbS_Fetch(
555 struct Subscript *p, /* The interpreter we are interrogating */
556 const char *zKey, /* Name of the variable. Case sensitive */
557 int nKey, /* Length of the key */
558 int *pLength /* Write the length here */
559 ){
560 const SbSValue *pVal;
561
562 pVal = sbs_fetch(&p->symTab, zKey, nKey);
563 if( pVal==0 || (pVal->flags & SBSVAL_STR)==0 ){
564 *pLength = 0;
565 return 0;
566 }else{
567 *pLength = pVal->u.str.size;
568 return pVal->u.str.z;
569 }
570 }
571
572 /*
573 ** Generate an error and return non-zero if the stack has
574 ** fewer than N elements. This is utility routine used in
575 ** the implementation of verbs.
576 */
577 int SbS_RequireStack(struct Subscript *p, int N, const char *zCmd){
578 if( p->nStack>=N ) return 0;
579 sqlite3_snprintf(sizeof(p->zErrMsg), p->zErrMsg,
580 "\"%s\" requires at least %d stack elements - only found %d",
581 zCmd, N, p->nStack);
582 return 1;
583 }
584
585 /*
586 ** Subscript command: STRING NAME set
587 **
588 ** Write the value of STRING into variable called NAME.
589 */
590 static int setCmd(Subscript *p, void *pNotUsed){
591 SbSValue *pTos;
592 SbSValue *pNos;
593 if( SbS_RequireStack(p, 2, "set") ) return SBS_ERROR;
594 pTos = &p->aStack[--p->nStack];
595 pNos = &p->aStack[--p->nStack];
596 sbs_store(&p->symTab, pTos->u.str.z, pTos->u.str.size, pNos);
597 sbs_value_reset(pTos);
598 return 0;
599 }
600
601 /*
602 ** Subscript command: INTEGER not INTEGER
603 */
604 static int notCmd(struct Subscript *p, void *pNotUsed){
605 int n;
606 if( SbS_RequireStack(p, 1, "not") ) return 1;
607 n = SbS_StackValueInt(p, 0);
608 SbS_Pop(p, 1);
609 SbS_PushInt(p, !n);
610 return 0;
611 }
612
613 #define SBSOP_ADD 1
614 #define SBSOP_SUB 2
615 #define SBSOP_MUL 3
616 #define SBSOP_DIV 4
617 #define SBSOP_AND 5
618 #define SBSOP_OR 6
619 #define SBSOP_MIN 7
620 #define SBSOP_MAX 8
621 #define SBSOP_EQ 9
622 #define SBSOP_NE 10
623 #define SBSOP_LT 11
624 #define SBSOP_GT 12
625 #define SBSOP_LE 13
626 #define SBSOP_GE 14
627
628 /*
629 ** Subscript command: INTEGER INTEGER <binary-op> INTEGER
630 */
631 static int bopCmd(struct Subscript *p, void *pOp){
632 int a, b, c;
633 if( SbS_RequireStack(p, 2, "BINARY-OP") ) return 1;
634 a = SbS_StackValueInt(p, 1);
635 b = SbS_StackValueInt(p, 0);
636 switch( (int)pOp ){
637 case SBSOP_EQ: c = a==b; break;
638 case SBSOP_NE: c = a!=b; break;
639 case SBSOP_LT: c = a<b; break;
640 case SBSOP_LE: c = a<=b; break;
641 case SBSOP_GT: c = a>b; break;
642 case SBSOP_GE: c = a>=b; break;
643 case SBSOP_ADD: c = a+b; break;
644 case SBSOP_SUB: c = a-b; break;
645 case SBSOP_MUL: c = a*b; break;
646 case SBSOP_DIV: c = b!=0 ? a/b : 0; break;
647 case SBSOP_AND: c = a && b; break;
648 case SBSOP_OR: c = a || b; break;
649 case SBSOP_MIN: c = a<b ? a : b; break;
650 case SBSOP_MAX: c = a<b ? b : a; break;
651 }
652 SbS_Pop(p, 2);
653 SbS_PushInt(p, c);
654 return 0;
655 }
656
657 /*
658 ** Subscript command: STRING STRING streq INTEGER
659 */
660 static int streqCmd(struct Subscript *p, void *pOp){
661 int c, nA, nB;
662 const char *A, *B;
663
664 if( SbS_RequireStack(p, 2, "BINARY-OP") ) return 1;
665 A = SbS_StackValue(p, 1, &nA);
666 B = SbS_StackValue(p, 0, &nB);
667 c = nA==nB && memcmp(A,B,nA)==0;
668 SbS_Pop(p, 2);
669 SbS_PushInt(p, c);
670 return 0;
671 }
672
673 /*
674 ** Subscript command: STRING hascap INTEGER
675 **
676 ** Return true if the user has all of the capabilities listed.
677 */
678 static int hascapCmd(struct Subscript *p, void *pNotUsed){
679 const char *z;
680 int n, a;
681 if( SbS_RequireStack(p, 1, "hascap") ) return 1;
682 z = SbS_StackValue(p, 0, &n);
683 a = login_has_capability(z, n);
684 SbS_Pop(p, 1);
685 SbS_PushInt(p, a);
686 return 0;
687 }
688
689 /*
690 ** Subscript command: STRING linecount INTEGER
691 **
692 ** Return one more than the number of \n characters in STRING.
693 */
694 static int linecntCmd(struct Subscript *p, void *pNotUsed){
695 const char *z;
696 int size, n, i;
697 if( SbS_RequireStack(p, 1, "linecount") ) return 1;
698 z = SbS_StackValue(p, 0, &size);
699 for(n=1, i=0; i<size; i++){
700 if( z[i]=='\n' ) n++;
701 }
702 SbS_Pop(p, 1);
703 SbS_PushInt(p, n);
704 return 0;
705 }
706
707 /*
708 ** Subscript command: STRING length INTEGER
709 **
710 ** Return one more than the number characters in STRING.
711 */
712 static int lengthCmd(struct Subscript *p, void *pNotUsed){
713 int size;
714 if( SbS_RequireStack(p, 1, "length") ) return 1;
715 SbS_StackValue(p, 0, &size);
716 SbS_Pop(p, 1);
717 SbS_PushInt(p, size);
718 return 0;
719 }
720
721 /*
722 ** Subscript command: NAME exists INTEGER
723 **
724 ** Return TRUE if the variable NAME exists.
725 */
726 static int existsCmd(struct Subscript *p, void *pNotUsed){
727 const char *z;
728 int size, x;
729 if( SbS_RequireStack(p, 1, "exists") ) return 1;
730 z = SbS_StackValue(p, 0, &size);
731 x = sbs_fetch(&p->symTab, (char*)z, size)!=0;
732 SbS_Pop(p, 1);
733 SbS_PushInt(p, x);
734 return 0;
735 }
736
737 /*
738 ** Subscript command: VALUE NAME get VALUE
739 **
740 ** Push the value of varible NAME onto the stack if it exists.
741 ** If NAME does not exist, puts VALUE onto the stack instead.
742 */
743 static int getCmd(Subscript *p, void *pNotUsed){
744 const char *zName;
745 int nName;
746 const SbSValue *pVal;
747 int rc = 0;
748
749 if( SbS_RequireStack(p, 2, "get") ) return SBS_ERROR;
750 zName = SbS_StackValue(p, 0, &nName);
751 pVal = sbs_fetch(&p->symTab, (char*)zName, nName);
752 if( pVal!=0 && (pVal->flags & SBSVAL_STR)!=0 ){
753 SbS_Pop(p, 2);
754 rc = SbS_Push(p, pVal->u.str.z, pVal->u.str.size, 0);
755 }else{
756 SbS_Pop(p, 1);
757 }
758 return rc;
759 }
760
761
762
763 /*
764 ** True if output is enabled. False if disabled.
765 */
766 static int enableOutput = 1;
767
768 /*
769 ** Subscript command: BOOLEAN enable_output
770 **
771 ** Enable or disable the puts and hputs commands.
772 */
773 static int enableOutputCmd(struct Subscript *p, void *pNotUsed){
774 if( SbS_RequireStack(p, 1, "enable_output") ) return 1;
775 enableOutput = SbS_StackValueInt(p, 0)!=0;
776 SbS_Pop(p, 1);
777 return 0;
778 }
779
780 /*
781 ** Send text to the appropriate output: Either to the console
782 ** or to the CGI reply buffer.
783 */
784 static void sendText(const char *z, int n){
785 if( enableOutput && n ){
786 if( n<0 ) n = strlen(z);
787 if( g.cgiPanic ){
788 cgi_append_content(z, n);
789 }else{
790 fwrite(z, 1, n, stdout);
791 }
792 }
793 }
794
795 /*
796 ** Subscript command: STRING puts
797 ** Subscript command: STRING html
798 **
799 ** Output STRING as HTML (html) or unchanged (puts).
800 ** Pop it from the stack.
801 */
802 static int putsCmd(struct Subscript *p, void *pConvert){
803 int size;
804 const char *z;
805 char *zOut;
806 if( SbS_RequireStack(p, 1, "puts") ) return 1;
807 if( enableOutput ){
808 z = SbS_StackValue(p, 0, &size);
809 if( pConvert ){
810 zOut = htmlize(z, size);
811 size = strlen(zOut);
812 }else{
813 zOut = (char*)z;
814 }
815 sendText(zOut, size);
816 if( pConvert ){
817 free(zOut);
818 }
819 }
820 SbS_Pop(p, 1);
821 return 0;
822 }
823
824 /*
825 ** Subscript command: STRING wiki
826 **
827 ** Render the input string as wiki.
828 */
829 static int wikiCmd(struct Subscript *p, void *pConvert){
830 int size;
831 const char *z;
832 if( SbS_RequireStack(p, 1, "wiki") ) return 1;
833 if( enableOutput ){
834 Blob src;
835 z = SbS_StackValue(p, 0, &size);
836 blob_init(&src, z, size);
837 wiki_convert(&src, 0, WIKI_INLINE);
838 blob_reset(&src);
839 }
840 SbS_Pop(p, 1);
841 return 0;
842 }
843
844 /*
845 ** Subscript command: NAME TEXT-LIST NUMLINES combobox
846 **
847 ** Generate an HTML combobox. NAME is both the name of the
848 ** CGI parameter and the name of a variable that contains the
849 ** currently selected value. TEXT-LIST is a list of possible
850 ** values for the combobox. NUMLINES is 1 for a true combobox.
851 ** If NUMLINES is greater than one then the display is a listbox
852 ** with the number of lines given.
853 */
854 static int comboboxCmd(struct Subscript *p, void *NotUsed){
855 if( SbS_RequireStack(p, 3, "combobox") ) return 1;
856 if( enableOutput ){
857 int height;
858 Blob list, elem;
859 char *zName, *zList;
860 int nName, nList, nValue;
861 const char *zValue;
862 char *z, *zH;
863
864 height = SbS_StackValueInt(p, 0);
865 zList = (char*)SbS_StackValue(p, 1, &nList);
866 blob_init(&list, zList, nList);
867 zName = (char*)SbS_StackValue(p, 2, &nName);
868 zValue = SbS_Fetch(p, zName, nName, &nValue);
869 z = mprintf("<select name=\"%z\" size=\"%d\">",
870 htmlize(zName, nName), height);
871 sendText(z, -1);
872 free(z);
873 while( blob_token(&list, &elem) ){
874 zH = htmlize(blob_buffer(&elem), blob_size(&elem));
875 if( zValue && blob_size(&elem)==nValue
876 && memcmp(zValue, blob_buffer(&elem), nValue)==0 ){
877 z = mprintf("<option value=\"%s\" selected>%s</option>", zH, zH);
878 }else{
879 z = mprintf("<option value=\"%s\">%s</option>", zH, zH);
880 }
881 free(zH);
882 sendText(z, -1);
883 free(z);
884 }
885 sendText("</select>", -1);
886 blob_reset(&list);
887 }
888 SbS_Pop(p, 3);
889 return 0;
890 }
891
892 /*
893 ** Subscript command: STRING BOOLEAN if
894 **
895 ** Evaluate STRING as a script if BOOLEAN is true.
896 */
897 static int ifCmd(struct Subscript *p, void *pNotUsed){
898 int cond;
899 int rc = SBS_OK;
900
901 if( SbS_RequireStack(p, 2, "if") ) return 1;
902 cond = SbS_StackValueInt(p, 0);
903 if( cond ){
904 SbSValue script = p->aStack[p->nStack-2];
905 p->aStack[p->nStack-2].flags = 0;
906 SbS_Pop(p, 2);
907 rc = SbS_Eval(p, script.u.str.z, script.u.str.size);
908 sbs_value_reset(&script);
909 }else{
910 SbS_Pop(p, 2);
911 }
912 return rc;
913 }
914
915 /*
916 ** Subscript command: ... STRING COUNT concat STRING
917 **
918 ** Concatenate COUNT strings into a single string and leave
919 ** the concatenation on the stack.
920 */
921 static int concatCmd(struct Subscript *p, void *pNotUsed){
922 int count;
923 int nByte;
924 char *z;
925 int i, j;
926
927 if( SbS_RequireStack(p, 1, "concat") ) return SBS_ERROR;
928 count = SbS_StackValueInt(p, 0);
929 if( SbS_RequireStack(p, count+1, "concat") ) return SBS_ERROR;
930 SbS_Pop(p, 1);
931 nByte = 1;
932 for(i=p->nStack-count; i<p->nStack; i++){
933 nByte += p->aStack[i].u.str.size;
934 }
935 z = malloc(nByte);
936 if( z==0 ){ fossil_panic("out of memory"); }
937 for(j=0, i=p->nStack-count; i<p->nStack; i++){
938 nByte = p->aStack[i].u.str.size;
939 memcpy(&z[j], p->aStack[i].u.str.z, nByte);
940 j += nByte;
941 }
942 z[j] = 0;
943 SbS_Pop(p, count);
944 SbS_Push(p, z, j, 1);
945 return SBS_OK;
946 }
947
948
949 /*
950 ** A table of built-in commands
951 */
952 static const struct {
953 const char *zCmd;
954 int (*xCmd)(Subscript*,void*);
955 void *pArg;
956 } aBuiltin[] = {
957 { "add", bopCmd, (void*)SBSOP_AND },
958 { "and", bopCmd, (void*)SBSOP_AND },
959 { "combobox", comboboxCmd, 0, },
960 { "concat", concatCmd, 0, },
961 { "div", bopCmd, (void*)SBSOP_DIV },
962 { "enable_output", enableOutputCmd, 0 },
963 { "eq", bopCmd, (void*)SBSOP_EQ },
964 { "exists", existsCmd, 0, },
965 { "get", getCmd, 0, },
966 { "hascap", hascapCmd, 0 },
967 { "html", putsCmd, (void*)1 },
968 { "if", ifCmd, 0, },
969 { "le", bopCmd, (void*)SBSOP_LE },
970 { "length", lengthCmd, 0 },
971 { "linecount", linecntCmd, 0 },
972 { "lt", bopCmd, (void*)SBSOP_LT },
973 { "max", bopCmd, (void*)SBSOP_MAX },
974 { "min", bopCmd, (void*)SBSOP_MIN },
975 { "mul", bopCmd, (void*)SBSOP_MUL },
976 { "not", notCmd, 0 },
977 { "or", bopCmd, (void*)SBSOP_OR },
978 { "puts", putsCmd, 0 },
979 { "set", setCmd, 0 },
980 { "streq", streqCmd, 0 },
981 { "sub", bopCmd, (void*)SBSOP_SUB },
982 { "wiki", wikiCmd, 0, },
983 };
984
985
986 /*
987 ** Compare a zero-terminated string zPattern against
988 ** an unterminated string zStr of length nStr.
989 **
990 ** Return less than, equal to, or greater than zero if
991 ** zPattern is less than, equal to, or greater than zStr.
992 */
993 static int compare_cmd(const char *zPattern, const char *zStr, int nStr){
994 int c = strncmp(zPattern, zStr, nStr);
995 if( c==0 && zPattern[nStr]!=0 ){
996 c = 1;
997 }
998 return c;
999 }
1000
1001 /*
1002 ** Evaluate the script given by the first nScript bytes of zScript[].
1003 ** Return 0 on success and non-zero for an error.
1004 */
1005 int SbS_Eval(struct Subscript *p, const char *zScript, int nScript){
1006 int rc = SBS_OK;
1007 if( nScript<0 ) nScript = strlen(zScript);
1008 while( nScript>0 && rc==SBS_OK ){
1009 int n;
1010 int ttype;
1011 n = sbs_next_token(zScript, nScript, &ttype);
1012
1013 #if 0
1014 {
1015 int i, nElem;
1016 const char *zElem;
1017 if( p->nStack>0 ){
1018 printf("STACK:");
1019 for(i=0; i<p->nStack; i++){
1020 zElem = SbS_StackValue(p, i, &nElem);
1021 printf(" [%.*s]", nElem, zElem);
1022 }
1023 printf("\n");
1024 }
1025 printf("TOKEN(%d): [%.*s]\n", ttype, n, zScript);
1026 }
1027 #endif
1028
1029 switch( ttype ){
1030 case SBSTT_WHITESPACE: {
1031 break;
1032 }
1033 case SBSTT_EOF: {
1034 nScript = 0;
1035 break;
1036 }
1037 case SBSTT_INCOMPLETE:
1038 case SBSTT_UNKNOWN: {
1039 rc = SBS_ERROR;
1040 nScript = n;
1041 break;
1042 }
1043 case SBSTT_INTEGER: {
1044 rc = SbS_Push(p, (char*)zScript, n, 0);
1045 break;
1046 }
1047 case SBSTT_NAME: {
1048 rc = SbS_Push(p, (char*)&zScript[1], n-1, 0);
1049 break;
1050 }
1051 case SBSTT_STRING: {
1052 rc = SbS_Push(p, (char*)&zScript[1], n-2, 0);
1053 break;
1054 }
1055 case SBSTT_QUOTED: {
1056 char *z = mprintf("%.*s", n-2, &zScript[1]);
1057 int i, j;
1058 for(i=j=0; z[i]; i++, j++){
1059 int c = z[i];
1060 if( c=='\\' && z[i+1] ){
1061 c = z[++i];
1062 if( c=='n' ){
1063 c = '\n';
1064 }else if( c>='0' && c<='7' ){
1065 int k;
1066 c -= '0';
1067 for(k=1; k<3 && z[i+k]>='0' && z[i+k]<='7'; k++){
1068 c = c*8 + z[i+k] - '0';
1069 }
1070 i += k-1;
1071 }
1072 }
1073 z[j] = c;
1074 }
1075 z[j] = 0;
1076 rc = SbS_Push(p, z, j, 1);
1077 break;
1078 }
1079 case SBSTT_VERB: {
1080 /* First look up the verb in the hash table */
1081 const SbSValue *pVal = sbs_fetch(&p->symTab, (char*)zScript, n);
1082 if( pVal==0 ){
1083 /* If the verb is not in the hash table, look for a
1084 ** built-in command */
1085 int upr = sizeof(aBuiltin)/sizeof(aBuiltin[0]) - 1;
1086 int lwr = 0;
1087 rc = SBS_ERROR;
1088 while( upr>=lwr ){
1089 int i = (upr+lwr)/2;
1090 int c = compare_cmd(aBuiltin[i].zCmd, zScript, n);
1091 if( c==0 ){
1092 rc = aBuiltin[i].xCmd(p, aBuiltin[i].pArg);
1093 break;
1094 }else if( c>0 ){
1095 upr = i-1;
1096 }else{
1097 lwr = i+1;
1098 }
1099 }
1100 if( upr<lwr ){
1101 SbS_SetErrorMessage(p, "unknown verb: %.*s", n, zScript);
1102 }
1103 }else if( pVal->flags & SBSVAL_VERB ){
1104 rc = pVal->u.verb.xVerb(p, pVal->u.verb.pArg);
1105 }else if( pVal->flags & SBSVAL_EXEC ){
1106 rc = SbS_Eval(p, pVal->u.str.z, pVal->u.str.size);
1107 }else{
1108 rc = SbS_Push(p, pVal->u.str.z, pVal->u.str.size, 0);
1109 }
1110 break;
1111 }
1112 }
1113 zScript += n;
1114 nScript -= n;
1115 }
1116 return rc;
1117 }
1118
1119 /*
1120 ** The z[] input contains text mixed with subscript scripts.
1121 ** The subscript scripts are contained within [...]. This routine
1122 ** processes the template and writes the results on either
1123 ** stdout or into CGI.
1124 */
1125 int SbS_Render(struct Subscript *p, const char *z){
1126 int i = 0;
1127 int rc = SBS_OK;
1128 while( z[i] ){
1129 if( z[i]=='[' ){
1130 sendText(z, i);
1131 z += i+1;
1132 for(i=0; z[i] && z[i]!=']'; i++){}
1133 rc = SbS_Eval(p, z, i);
1134 if( rc!=SBS_OK ) break;
1135 if( z[i] ) i++;
1136 z += i;
1137 i = 0;
1138 }else{
1139 i++;
1140 }
1141 }
1142 if( rc==SBS_ERROR ){
1143 sendText("<hr><p><font color=\"red\"><b>ERROR: ", -1);
1144 sendText(SbS_GetErrorMessage(p), -1);
1145 sendText("</b></font></p>", -1);
1146 }else{
1147 sendText(z, i);
1148 }
1149 return rc;
1150 }
1151
1152 /*
1153 ** COMMAND: test-subscript
1154 */
1155 void test_subscript(void){
1156 Subscript *p;
1157 Blob in;
1158 if( g.argc<3 ){
1159 usage("FILE");
1160 }
1161 blob_zero(&in);
1162 blob_read_from_file(&in, g.argv[2]);
1163 p = SbS_Create();
1164 SbS_Render(p, blob_str(&in));
1165 }
--- a/src/subscript.c
+++ b/src/subscript.c
@@ -1,1165 +0,0 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
+410
--- a/src/th.c
+++ b/src/th.c
@@ -0,0 +1,410 @@
1
+-1, 1, 1, 0zero
2
+*!iRight!iRight/ADD:typedef char u8;MODULUS: %ADD:ero
3
+*!iRight!iRight/AD*SUBTRACT-therSconst#include <stdio.h> /* FILE class */Shared instance.Ier *)ctx : Th_Ob_GetManager/AD*SUBTRACef char u8;MODULUS: %ADD:ero
4
+*!iRight!iRight/AD*SUBT:paGc entries. Frees
5
+** pEntry->pData but not pEntryJ@1qE,7:FreeGc(K@9Tl,O@2IE,P:GcEntry *gc = (Th_GcEntryK@7e~,Q:if(gc){
6
+gc->xDel( (Th_Interp*)pContext8R,K@9ru~,P:pEntry->pData 0,E:Realloc(NULL, k@9KS,T:else{
7
+ const * zData, int nData ){
8
+ return Th_Vtab_Output( pInterp->pVtab, zData, nData );
9
+}
10
+
11
+void Th_OutputEnable( L@8wW,1C:har flag ){
12
+ pInterp->pVtab->out.enabled = flag;
13
+}
14
+
15
+char Th_OutputEnabled( I@8wW,3f: ){
16
+ return pInterp->pVtab->out.enabled ? 1 : 0;
17
+}
18
+
19
+int Th_Output_f_FILE( char const * zData, int nData, void * pState ){
20
+ FILE * dest = pState ? (FILE*)pState : stdout;
21
+ int rc = (int)fwrite(zData, 1, nData, dest);
22
+ fflush(dest);H@DMV,2~:void Th_Output_dispose_Fuate : NULL;
23
+ if(f
24
+ && (f != stdout)
25
+ && (f != stderr)
26
+ && (f != stdin)){
27
+ fflush(f);
28
+ fclose(f1q7@9Mg,w:any client-side gc entries first. */
29
+ if( interp->paGc ){
30
+R@2Be,M:interp->paGc, thFreeGcL@2SF,Y@BGU,38:Gc);
31
+ interp->paGc = NULL;
32
+ }
33
+
34
+ /* Clean up the output abstraction. */
35
+ if( interp->pVtab && interp->pVtab->out.xDispose ){
36
+ interp->pVtab->out.xDispose( interp->pVtab->out.pState );
37
+ }
38
+ 5_@BBa,4D@BH6,C:Realloc(NULLJ@BME,4KA@BLg,3:++n7M@Fet,Rc@FmK,Fx@GDC,_: and assigns its value to
39
+** pResult6B@GT8,C:*
40
+** ReturnsL@C7W,X:of z consumed in parsing the valuHw@GZF,2L:Attempts to convert (zArg,nArg) to an integer. On success *piOut is
41
+** assigned to its value and TH_OK is returned, euue and TH_OK is returned, else piOut is not
42
+** modified andL@4qR,1c:. Conversion errors are considered
43
+** non-fatal here, so interp's error state is not set.
44
+*/
45
+int Th_TryN@HCF,S@1D0,2w@Gvs,P@3aW,2u@G~D,9:n integerf@H2D,1:i13@H2t,36@Gsv,y:const int rc = Th_TryInt(inteurp, z, n, piOut);
46
+ if( TH_Ouchar*, int, uGZG,4X:Th_Output_f_oulen, void *uires pState to be-a Th_Ob_Manager.
47
+*/
48
+static void Th_Output_dispose_ob( void * pState );
49
+
50
+/* Empty-initialized Th_Ob_Manager instance. */
51
+#define Th_Ob_Man_empty_m { \
52
+ NULL/*aBuf*/, 9@HOw,Ge: \
53
+ 0/*nBuf*/, \
54
+ -1/*cursor*/, \
55
+ NULL/*interp*/, \
56
+ NULL/*aOutput*/ \
57
+}
58
+
59
+/* Empty-initialized Th_Vtab_OutputMethods instance. */
60
+#define Th_Vtab_OutputMethods_empty_m { \
61
+ NULL /* write() */, \
62
+ NULL /* dispose() */, \
63
+ NULL /*pState*/,\
64
+ 1/*enabled*/\
65
+}
66
+/* Vtab_OutputMethods instance initialized for OB support. */
67
+#define Th_Vtab_OutputMethods_ob_m { \
68
+ Th_Output_f_ob /*write()*/, \
69
+ Th_Output_dispose_ob /* dispose() */, \
70
+ NULL /*pState*/,\
71
+ 1/*enabled*/\
72
+}
73
+/* Empty-initialized Th_Vtab_Man instance. */
74
+static const Th_Ob_Manager Th_Ob_Man_empty = Th_Ob_Man_empu+ 5;
75
+ }
76
+ rn->aBuf[pMan->cursor] = pBu+ 5;
77
+ }
78
+ r= pMan->interp->pVtab->outu+ 5;
79
+ }
80
+ re = Th_Realloc( pMan->interp, pMan->aBuf, x * sizeof(u+ 5;
81
+ }
82
+ rr;
83
+ }
84
+ pMan->aBuf = u+ 5;
85
+ }
86
+ re = Th_Rea>aOutput, x * sizeof(Th_Vtab_OutputMethods) );
87
+ if(NULL==re){
88
+ goto error;
89
+ }
90
+ pMan->aOutput = (Th_Vtab_OutputMethods*)re;
91
+ for( i = pMan->nBuf; i < x; ++i ){
92
+ pMan->aOutput[i] = Th_Vtab_OutputMethods_empty;
93
+ pMan->aBuf[i] = NULL;
94
+ }
95
+ pMan->nBuf = x;
96
+ }
97
+ assert( pMan->nBuf > pMan->cursor );
98
+ assert( pMan->cursusor );
99
+ assert( pMan->cursor >= -usor );
100
+ assert( pMan->cursor >= -1= pMan->interp->pVtab->outu = pMan->interp->pVtab->out;
101
+ pMan->interp->pVtab->out = *pWriter;
102
+ pMan->interp->pVtab->out.pState = pMan;
103
+ if( pOut ){
104
+ *pOut = pBlobM@8ZF,v: error:
105
+ if( pBlob ){
106
+ Th_Free( pMan->interp, pBlob )I@8ZF,N6:ERROR;
107
+}
108
+
109
+Blob * Th_Ob_Pop( Th_Ob_Manager * pMan ){
110
+ if( pMan->cursor < 0 ){
111
+ return NULL;
112
+ }else{
113
+ Blob * u+ 5;
114
+ }
115
+ re = Th_( pMan->nBuf > pMan->cursor );
116
+ rc = pMan->aBuf[pMan->cursor];
117
+ pMan->aBuf[pMan->cursor] = NULL;
118
+ theOut = &pMan->aOutput[pMan->cursor];
119
+#if 0
120
+ /* We need something like this (but nuot this!) if we extend the
121
+ support to use other (non-Blob) proxies. We will likely need
122
+ another callback function or two for thatu called when they are pushed/popped
123
+ to/from the stack.
124
+ */
125
+ if( theOut->xDispose ){
126
+ theOut->xDispose( theOut->pStateutherSconst#include <stdio.h> /* FILE class */Shared instance.Ier *)ctx : Th_Ob_GetManager/AD*SUBTRACef char u8;MODULUS: %ADD:ero
127
+*!iRight!iRight/AD*SUBT:paGc entries. Frees
128
+** pEntry->pData but not pEntryJ@1qE,7:FreeGc(K@9Tl,O@2IE,P:GcEntry *gc = (Th_GcEntryK@7e~,Q:if(gc){
129
+gc->xDel( (Th_Interp*)pContext8R,K@9r~,P:pEntry->pData 0,E- pMan->interp, pMan->aOutput, x * sizeof(Th_Vtab_OutputMethods) );
130
+ if(NULL==re){
131
+ goto error;
132
+ }
133
+ pMan->aOutput = (Th_Vtab_OutputMethods*)re;
134
+ for( i = pMan->nBuf; i < x; ++i ){
135
+ pMan->aOutput[i] = Th_Vtab_OutputMethods_empty;
136
+ pMan->aBuf[i] = NULL;
137
+ }
138
+ pMan->nBuf = x;
139
+ }
140
+ assert( pMan->nBuf > pMan->cursor );
141
+ assert( pMan->cursor >= -1 );
142
+ ++pMan->cursor;
143
+ pMan->aBuf[pMan->cursor] = pBlob;
144
+ pMan->aOutput[pMan->cursor] = pMan->interp->pVtab->out;
145
+ pMan->interp->pVtab->out = *pWriter;
146
+ pMan->interp->pVtab->out.pState = pMan;
147
+ if( pOut ){
148
+ *pOut = pBlobM@8ZF,v: error:
149
+ if( pBlob ){
150
+ Th_Free( pMan->interp, pBlob )I@8ZF,N6:ERROR;
151
+}
152
+
153
+Blob * Th_Ob_Pop( Th_Ob_Manager * pMan ){
154
+ if( pMan->cursor < 0 ){
155
+ return NULL;
156
+ }else{
157
+ Blob * rc;
158
+ Th_Vtab_OutputMethods * theOut;
159
+ assert( pMan->nBuf > pMan->cursor );
160
+ rc = pMan->aBuf[pMan->cursor];
161
+ pMan->aBuf[pMan->cursor] = NULL;
162
+ theOut = &pMan->aOutput[pMan->cursor];
163
+#if 0
164
+ /* We need something like this (but not this!) if we extend the
165
+ support to use other (non-Blob) proxies. We will likely need
166
+ another callback function or two for that case, e.g. xStart()
167
+ and xEnd(), which would be called when they are pushed/popped
168
+ to/from the stack.
169
+ */
170
+ if( theOut->xDispose ){
171
+ theOut->xDispose( theOut->pState );
172
+ }
173
+#endif
174
+ pMan->interp->pVtab->out = *theOut;
175
+ pMan->aOutput[pMan->cursor] = Th_Vtab_OutputMethods_empty;
176
+ if(-1 == --pMan->cursor){
177
+ Th_Interp * interp = pMan->interp;
178
+ Th_Free( pMan->interp, pMan->aBuf );
179
+ Th_Free( pMan->interp, pMan->aOutput );
180
+ *pMan = Th_Ob_Man_empty;
181
+ pMan->interp = interp;
182
+ assert(-1 == pMan->cursor);
183
+ }
184
+ return rc;
185
+ }
186
+}
187
+
188
+int Th_Ob_PopAndFree( Th_Ob_Manager * pMan ){
189
+ Blob * b = Th_Ob_Pop( pMan );
190
+ if(!b) return 1;
191
+ else {
192
+ blob_reset(b);
193
+ Th_Free( pMan->interp, b );
194
+ return 0;
195
+ }
196
+}
197
+
198
+
199
+void Th_ob_cleanup( Th_Ob_Manager * man ){
200
+ while( 0 == Th_Ob_PopAndFree(man) ){}
201
+}
202
+
203
+
204
+/*
205
+** TH command:
206
+**
207
+** ob clean
208
+**
209
+** Erases any currently buffered contents but does not modify
210
+** the buffering levelG@GZG,H:ob_clean_command(K@B0G,B:void *ctx,
211
+R@Egl,4H: int argc, const char **argv, int *argl
212
+){
213
+ const char doRc = ctx ? 1 : 0;
214
+ Th_Ob_Manager * pMan = ctx ? (Th_Ob_Manager *)ctx : Th_Ob_GetManager(interp);
215
+ Blob * b;
216
+ assert( pMan && (interp == pMan->interp) );
217
+ b = pMan ? Th_Ob_GetCurrentBuffer(pMan) : NULL;
218
+ if(!bN@Eoz,l: interp, "Not currently buffering.", NULL, 0 );
219
+N@Gzl,g:}else{
220
+ blob_reset(b);
221
+ if( doRc ) {
222
+MMalloc(Free(zMalloc(n++typedef char u8;4IsNumber(4 doublefOutif( !sqlite4{
223
+ const char doRc = ctx ?qlite4Output_dispose_FILE /* -1, 1, 1, 0zero
224
+*!iRight!iRight/ADD:typedef char u8;MODULUS: %ADD:ero
225
+*!iRight!iRight/AD*SUBTRACT-therSconst#include <stdio.h> /* FILE class */Shared instance. See th.h for the docs.
226
+*/
227
+const Th_Vtab_OutputMethods Th_Vtab_OutputMethods_FILE = {
228
+ Th_Output_f_FILE /* xWrite() */,
229
+ Th_Output_dispose_FILE /* dispose() */,
230
+ NULL /*pState*/,
231
+ 1/*enabled*/
232
+};
233
+
234
+/*
235
+** Holds client-provided "garbage collected" data for
236
+** a Th_Interp instance.
237
+*/
238
+struct Th_GcEntry {
239
+ void * pData /* arbitrary data Th_Interp *, void * ); /* finalizer for pData */
240
+};
241
+typedef struct Th_GcEntry Th_GcEntry 0zero
242
+*!iRight!iRight/A-1, 1, 1, 0zero
243
+*!iRight!iRight Th_Hash * paGc; /* Holds client-provided data owned by this
244
+object. It would these in a list (beentries), but Th_Hasof being here and working.
245
+Gc:typedef char u8;MODULUS: %ADD:ero
246
+*!iRight!iRight/AD*SUBTRACT-therSconst-1, 1, 1, 0zero
247
+*!iRight!iRight/ADD:typedef char u8;MODULUS: %ADD:ero
248
+*!iRight!iRight/AD*SUBT:paGc entries. Frees
249
+** pEntry->pData but not pEntryJ@1qE,7:Free3333AtoF;
250
+ int iRight;;*DIVIDE:uTh_Vtab_OutputMethods*)re;
251
+ uchaut[i] = Th_Vtab_OutputMethods_empty;
252
+ pMan->aBuf[i] = NULL;
253
+ }
254
+ pMan->nBuf = x;
255
+ }
256
+ assert( pMan->nBuf > pMan->cursor );
257
+ assert( pMan->cursor >= -1 );
258
+ ++pMan->cursor;
259
+ pMan->aBuf[pMan->cursor] = pBlob;
260
+ pMan->aOutput[pMan->cursor] = pMan->interp->pVtab->out;
261
+ pMan->interp->pVtab->out = *pWriter;
262
+ pMan->interp->pVtab->out.pu
263
+ *pOut = pBlobM@8ZF,v: error:
264
+ if( pBlob ){
265
+ Th_Free( pMan->interp, pBlob )I@8ZF,N6:ERROR;
266
+}
267
+
268
+Blob * Th_Ob_Pop( Th_Ob_Manager * pMan ){
269
+ if( pMan->cursor < 0 ){
270
+ return NULL;
271
+ }else{
272
+ Blob * rc;
273
+ Th_Vtab_OutputMethods * theOut;
274
+ assert( pMan->nBuf > pMan->cursor );
275
+ rc = pMan->aBuf[pMan->cursor];
276
+ pMan->aBuf[pMan->cursor] = NULL;
277
+ theOut = &pMan->aOutput[pMan->cursor];
278
+#if 0
279
+ /* We need something like this (but not this!) if we extend the
280
+ support to use other (non-Blob) proxies. We will likely need
281
+ another callback function oru two for that case, e.g. xStart()
282
+ and xEnd(), which would be called when they are pushed/popped
283
+ to/from the stack.
284
+ */
285
+ if( theOut->xDispose ){
286
+ theOut->xDispose( theOut->pState );
287
+ }
288
+#endif
289
+ pMan->interp->pVtab->out = *theOut;
290
+ pMan->aOutput[pMan->cursor] = Th_Vtab_OutputMethods_empty;
291
+ if(-1 == --pMan->cursor){
292
+ Th_Interp * interp = pMan->interp;
293
+ Th_Free( pMan->interp, pMan->aBuf );
294
+ Th_Free( pMan->interp, pMan->aOutput );
295
+ *pMan = Th_Ob_Man_empty;
296
+ pMan->interp = interp;
297
+ assert(-1 == pMan->cursor);
298
+ }
299
+ return rc;
300
+ }
301
+}
302
+
303
+int Th_Ob_PopAndFree( Th_Ob_Manager * pMan ){
304
+ Blob * b = Th_Ob_Pop( pMan );
305
+ if(!b) return 1;
306
+ else {
307
+ blob_reset(b);
308
+ Th_Free( pMan->interp, b );
309
+ return 0;
310
+ }
311
+}
312
+
313
+
314
+void Th_ob_cleanup( Th_Ob_Manager * man ){
315
+ while( 0 == Th_Ob_PopAndFree(man) uuVarnamero
316
+*!iRight!iRigght!iRight/ADD:typedef char u8;MODULUS: %ADD:ero
317
+*!iRight!iRight/AD*SUBTRACT-therSconst#include <stdio.h> /* FILE class */Shared instance.Ier *)ctx : Th_Ob_GetManager/AD*SUBTRACef char u8;MODULUS: %ADD:ero
318
+*!iRight!iRight/AD*SUBT:paGc entries. Frees
319
+** pEntry->pData but not pEntryJ@1qE,7:FreeGc(K@9Tl,O@2IE,P:GcEntry *gc = (Th_GcEntryK@7e~,Q:if(gc){
320
+gc->xDel( (Th_Interp*)pContext8R,K@9r~,P:pEntry->pData 0,E:Realloc(NULL, k@9KS,T:else{
321
+ const * zData, int nData ){
322
+ return Th_Vtab_Output( pInterp->pVtab, zData, nData );
323
+}
324
+
325
+void Th_OutputEnable( L@8wW,1C:har flag ){
326
+ pInterp->pVtab->out.enabled = flag;
327
+}
328
+
329
+char Th_OutputEnabled( I@8wW,3f: ){
330
+ return pInterp->pVtab->out.enabled ? 1 : 0;
331
+}
332
+
333
+int Th_Output_f_FILE( char const * zData, int nData, void * pState ){
334
+ FILE * dest = pState ? (FILE*)pState : stdout;
335
+ int rc = (int)fwrite(zData, 1, nData, dest);
336
+ fflush(dest);H@DMV,2~:void Th_Output_dispose_FILE( void * pState ){
337
+ FILE * f = pState ? (FILE*)pState : NULL;
338
+ if(f
339
+ && (f != stdout)
340
+ && (f != stderr)
341
+ && (f != stdin)){
342
+ fflush(f);
343
+ fclose(f1q7@9Mg,w:any client-side gc entries first. */
344
+ if( interp->paGc ){
345
+R@2Be,M:interp->paGc, thFreeGcL@2SF,Y@BGU,38:Gc);
346
+ interp->paGc = NULL;
347
+ }
348
+
349
+ /* Clean up the output abstraction. */
350
+ if( interp->pVtab && interp->pVtab->out.xDispose ){
351
+ interp->pVtab->out.xDiuuu: %ADD:ero
352
+*!iRight!iRight/AD*SUBT:paGc entries. Frees
353
+** pEntry->pData but not pEntryJ@1qE,7:FreeGc(K@9Tl,O@2IE,P:GcEntry *gc = (Th_GcEntryK@7e~,Q:if(gc){
354
+gc->xDel( (Th_Interp*)pContext8R,K@9r~,P:pEntry->pData 0,E:Realloc(NULL, k@9KS,T:else{
355
+ const * zData, int nData ){
356
+ return Th_Vtab_Output( pInterp->pVtab, zData, nData );
357
+}
358
+
359
+void Th_OutputEnable( L@8wW,1C:har flag ){
360
+ pInterp->pVtab->out.enabled = flag;
361
+}
362
+
363
+char Th_OutputEnabled( I@8wW,3f: ){
364
+ return pInterp->pVtab->out.enabled ? 1 : 0;
365
+}
366
+
367
+int Th_Output_f_FILE( char const * zData, int nData, void * pState ){
368
+ FILE * dest = pState ? (FILE*)pState : stdout;
369
+ int rc = (int)fwrite(zData, 1, nData, dest);
370
+ fflush(dest);H@DMV,2~:void Th_Output_dispose_FILE( void * pState ){
371
+ FILE * f = pState ? (FILE*)pState : NULL;
372
+ if(f
373
+ && (f != stdout)
374
+ && (f != stderr)
375
+ && (f != stdin)){
376
+ fflush(f);
377
+ fclose(f1q7@9Mg,w:any client-side gc entries first. */
378
+ if( interp->paGc ){
379
+R@2Be,M:interp->paGc, thFreeGcL@2SF,Y@BGU,38:Gc);
380
+ interp->paGc = NULL;
381
+ }
382
+
383
+ /* Clean up the output abstraction. */
384
+ if( interp->pVtab && interp->pVtab->out.xDispose ){
385
+ interp->pVtab->out.xDispose( interp->pVtab->out.p-uuuuuuuuuuuuO@2IE,P:GcEntry *gc = (Th_GcEntryK@7e~,Q:if(gc){
386
+gc->xDel( (Th_Interp*)pContext8R,K@9r~,P:pEntry->pData 0,E:Realloc(NULL, k@9KS,T:else{
387
+ const * zData, int nData ){
388
+ return Th_Vtab_Output( pInterp->pVtab, zData, nData );
389
+}
390
+
391
+void Th_OutputEnable( L@8wW,1C:har flag )-uuuuu(Th_GcEntryK@7e~,Q:if(gc){
392
+gc->xDel( (Th_Interp*)pContext8R,K@9r~,P:pEntry->pData 0,E:Realloc(NULL, k@9KS,T:else{
393
+ const * zData, int nData ){
394
+ return Th_Vtab_Output( pInterp->pVtab, zData, nData );
395
+}
396
+
397
+void Th_OutputEnable( L@8wW,1C:har flag ){
398
+ pInterp->pVtab->out.enabled = flag;
399
+}
400
+
401
+char Th_OutputEnabled( I@8wW,3f: ){
402
+ return pInterp->pVtab->out.enabled ? 1 : 0;
403
+}
404
+
405
+int Th_Output_f_FILE( char const * zData, int nData, void * pState ){
406
+ FILE * dest = pState ? (FILE*)pState : stdout;
407
+ int rc = (int)fwrite(zData, 1, -u, 1, 0zero
408
+*!iRight!iRight/ADD:typedef char u8;MODULUS: %ADD:ero
409
+*!iRight!iRight/AD*SUBTRACT-therSconst#include <stdio.h> /* FILE class1, 1, 0zero
410
+*!iRight!
--- a/src/th.c
+++ b/src/th.c
@@ -0,0 +1,410 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
--- a/src/th.c
+++ b/src/th.c
@@ -0,0 +1,410 @@
1 -1, 1, 1, 0zero
2 *!iRight!iRight/ADD:typedef char u8;MODULUS: %ADD:ero
3 *!iRight!iRight/AD*SUBTRACT-therSconst#include <stdio.h> /* FILE class */Shared instance.Ier *)ctx : Th_Ob_GetManager/AD*SUBTRACef char u8;MODULUS: %ADD:ero
4 *!iRight!iRight/AD*SUBT:paGc entries. Frees
5 ** pEntry->pData but not pEntryJ@1qE,7:FreeGc(K@9Tl,O@2IE,P:GcEntry *gc = (Th_GcEntryK@7e~,Q:if(gc){
6 gc->xDel( (Th_Interp*)pContext8R,K@9ru~,P:pEntry->pData 0,E:Realloc(NULL, k@9KS,T:else{
7 const * zData, int nData ){
8 return Th_Vtab_Output( pInterp->pVtab, zData, nData );
9 }
10
11 void Th_OutputEnable( L@8wW,1C:har flag ){
12 pInterp->pVtab->out.enabled = flag;
13 }
14
15 char Th_OutputEnabled( I@8wW,3f: ){
16 return pInterp->pVtab->out.enabled ? 1 : 0;
17 }
18
19 int Th_Output_f_FILE( char const * zData, int nData, void * pState ){
20 FILE * dest = pState ? (FILE*)pState : stdout;
21 int rc = (int)fwrite(zData, 1, nData, dest);
22 fflush(dest);H@DMV,2~:void Th_Output_dispose_Fuate : NULL;
23 if(f
24 && (f != stdout)
25 && (f != stderr)
26 && (f != stdin)){
27 fflush(f);
28 fclose(f1q7@9Mg,w:any client-side gc entries first. */
29 if( interp->paGc ){
30 R@2Be,M:interp->paGc, thFreeGcL@2SF,Y@BGU,38:Gc);
31 interp->paGc = NULL;
32 }
33
34 /* Clean up the output abstraction. */
35 if( interp->pVtab && interp->pVtab->out.xDispose ){
36 interp->pVtab->out.xDispose( interp->pVtab->out.pState );
37 }
38 5_@BBa,4D@BH6,C:Realloc(NULLJ@BME,4KA@BLg,3:++n7M@Fet,Rc@FmK,Fx@GDC,_: and assigns its value to
39 ** pResult6B@GT8,C:*
40 ** ReturnsL@C7W,X:of z consumed in parsing the valuHw@GZF,2L:Attempts to convert (zArg,nArg) to an integer. On success *piOut is
41 ** assigned to its value and TH_OK is returned, euue and TH_OK is returned, else piOut is not
42 ** modified andL@4qR,1c:. Conversion errors are considered
43 ** non-fatal here, so interp's error state is not set.
44 */
45 int Th_TryN@HCF,S@1D0,2w@Gvs,P@3aW,2u@G~D,9:n integerf@H2D,1:i13@H2t,36@Gsv,y:const int rc = Th_TryInt(inteurp, z, n, piOut);
46 if( TH_Ouchar*, int, uGZG,4X:Th_Output_f_oulen, void *uires pState to be-a Th_Ob_Manager.
47 */
48 static void Th_Output_dispose_ob( void * pState );
49
50 /* Empty-initialized Th_Ob_Manager instance. */
51 #define Th_Ob_Man_empty_m { \
52 NULL/*aBuf*/, 9@HOw,Ge: \
53 0/*nBuf*/, \
54 -1/*cursor*/, \
55 NULL/*interp*/, \
56 NULL/*aOutput*/ \
57 }
58
59 /* Empty-initialized Th_Vtab_OutputMethods instance. */
60 #define Th_Vtab_OutputMethods_empty_m { \
61 NULL /* write() */, \
62 NULL /* dispose() */, \
63 NULL /*pState*/,\
64 1/*enabled*/\
65 }
66 /* Vtab_OutputMethods instance initialized for OB support. */
67 #define Th_Vtab_OutputMethods_ob_m { \
68 Th_Output_f_ob /*write()*/, \
69 Th_Output_dispose_ob /* dispose() */, \
70 NULL /*pState*/,\
71 1/*enabled*/\
72 }
73 /* Empty-initialized Th_Vtab_Man instance. */
74 static const Th_Ob_Manager Th_Ob_Man_empty = Th_Ob_Man_empu+ 5;
75 }
76 rn->aBuf[pMan->cursor] = pBu+ 5;
77 }
78 r= pMan->interp->pVtab->outu+ 5;
79 }
80 re = Th_Realloc( pMan->interp, pMan->aBuf, x * sizeof(u+ 5;
81 }
82 rr;
83 }
84 pMan->aBuf = u+ 5;
85 }
86 re = Th_Rea>aOutput, x * sizeof(Th_Vtab_OutputMethods) );
87 if(NULL==re){
88 goto error;
89 }
90 pMan->aOutput = (Th_Vtab_OutputMethods*)re;
91 for( i = pMan->nBuf; i < x; ++i ){
92 pMan->aOutput[i] = Th_Vtab_OutputMethods_empty;
93 pMan->aBuf[i] = NULL;
94 }
95 pMan->nBuf = x;
96 }
97 assert( pMan->nBuf > pMan->cursor );
98 assert( pMan->cursusor );
99 assert( pMan->cursor >= -usor );
100 assert( pMan->cursor >= -1= pMan->interp->pVtab->outu = pMan->interp->pVtab->out;
101 pMan->interp->pVtab->out = *pWriter;
102 pMan->interp->pVtab->out.pState = pMan;
103 if( pOut ){
104 *pOut = pBlobM@8ZF,v: error:
105 if( pBlob ){
106 Th_Free( pMan->interp, pBlob )I@8ZF,N6:ERROR;
107 }
108
109 Blob * Th_Ob_Pop( Th_Ob_Manager * pMan ){
110 if( pMan->cursor < 0 ){
111 return NULL;
112 }else{
113 Blob * u+ 5;
114 }
115 re = Th_( pMan->nBuf > pMan->cursor );
116 rc = pMan->aBuf[pMan->cursor];
117 pMan->aBuf[pMan->cursor] = NULL;
118 theOut = &pMan->aOutput[pMan->cursor];
119 #if 0
120 /* We need something like this (but nuot this!) if we extend the
121 support to use other (non-Blob) proxies. We will likely need
122 another callback function or two for thatu called when they are pushed/popped
123 to/from the stack.
124 */
125 if( theOut->xDispose ){
126 theOut->xDispose( theOut->pStateutherSconst#include <stdio.h> /* FILE class */Shared instance.Ier *)ctx : Th_Ob_GetManager/AD*SUBTRACef char u8;MODULUS: %ADD:ero
127 *!iRight!iRight/AD*SUBT:paGc entries. Frees
128 ** pEntry->pData but not pEntryJ@1qE,7:FreeGc(K@9Tl,O@2IE,P:GcEntry *gc = (Th_GcEntryK@7e~,Q:if(gc){
129 gc->xDel( (Th_Interp*)pContext8R,K@9r~,P:pEntry->pData 0,E- pMan->interp, pMan->aOutput, x * sizeof(Th_Vtab_OutputMethods) );
130 if(NULL==re){
131 goto error;
132 }
133 pMan->aOutput = (Th_Vtab_OutputMethods*)re;
134 for( i = pMan->nBuf; i < x; ++i ){
135 pMan->aOutput[i] = Th_Vtab_OutputMethods_empty;
136 pMan->aBuf[i] = NULL;
137 }
138 pMan->nBuf = x;
139 }
140 assert( pMan->nBuf > pMan->cursor );
141 assert( pMan->cursor >= -1 );
142 ++pMan->cursor;
143 pMan->aBuf[pMan->cursor] = pBlob;
144 pMan->aOutput[pMan->cursor] = pMan->interp->pVtab->out;
145 pMan->interp->pVtab->out = *pWriter;
146 pMan->interp->pVtab->out.pState = pMan;
147 if( pOut ){
148 *pOut = pBlobM@8ZF,v: error:
149 if( pBlob ){
150 Th_Free( pMan->interp, pBlob )I@8ZF,N6:ERROR;
151 }
152
153 Blob * Th_Ob_Pop( Th_Ob_Manager * pMan ){
154 if( pMan->cursor < 0 ){
155 return NULL;
156 }else{
157 Blob * rc;
158 Th_Vtab_OutputMethods * theOut;
159 assert( pMan->nBuf > pMan->cursor );
160 rc = pMan->aBuf[pMan->cursor];
161 pMan->aBuf[pMan->cursor] = NULL;
162 theOut = &pMan->aOutput[pMan->cursor];
163 #if 0
164 /* We need something like this (but not this!) if we extend the
165 support to use other (non-Blob) proxies. We will likely need
166 another callback function or two for that case, e.g. xStart()
167 and xEnd(), which would be called when they are pushed/popped
168 to/from the stack.
169 */
170 if( theOut->xDispose ){
171 theOut->xDispose( theOut->pState );
172 }
173 #endif
174 pMan->interp->pVtab->out = *theOut;
175 pMan->aOutput[pMan->cursor] = Th_Vtab_OutputMethods_empty;
176 if(-1 == --pMan->cursor){
177 Th_Interp * interp = pMan->interp;
178 Th_Free( pMan->interp, pMan->aBuf );
179 Th_Free( pMan->interp, pMan->aOutput );
180 *pMan = Th_Ob_Man_empty;
181 pMan->interp = interp;
182 assert(-1 == pMan->cursor);
183 }
184 return rc;
185 }
186 }
187
188 int Th_Ob_PopAndFree( Th_Ob_Manager * pMan ){
189 Blob * b = Th_Ob_Pop( pMan );
190 if(!b) return 1;
191 else {
192 blob_reset(b);
193 Th_Free( pMan->interp, b );
194 return 0;
195 }
196 }
197
198
199 void Th_ob_cleanup( Th_Ob_Manager * man ){
200 while( 0 == Th_Ob_PopAndFree(man) ){}
201 }
202
203
204 /*
205 ** TH command:
206 **
207 ** ob clean
208 **
209 ** Erases any currently buffered contents but does not modify
210 ** the buffering levelG@GZG,H:ob_clean_command(K@B0G,B:void *ctx,
211 R@Egl,4H: int argc, const char **argv, int *argl
212 ){
213 const char doRc = ctx ? 1 : 0;
214 Th_Ob_Manager * pMan = ctx ? (Th_Ob_Manager *)ctx : Th_Ob_GetManager(interp);
215 Blob * b;
216 assert( pMan && (interp == pMan->interp) );
217 b = pMan ? Th_Ob_GetCurrentBuffer(pMan) : NULL;
218 if(!bN@Eoz,l: interp, "Not currently buffering.", NULL, 0 );
219 N@Gzl,g:}else{
220 blob_reset(b);
221 if( doRc ) {
222 MMalloc(Free(zMalloc(n++typedef char u8;4IsNumber(4 doublefOutif( !sqlite4{
223 const char doRc = ctx ?qlite4Output_dispose_FILE /* -1, 1, 1, 0zero
224 *!iRight!iRight/ADD:typedef char u8;MODULUS: %ADD:ero
225 *!iRight!iRight/AD*SUBTRACT-therSconst#include <stdio.h> /* FILE class */Shared instance. See th.h for the docs.
226 */
227 const Th_Vtab_OutputMethods Th_Vtab_OutputMethods_FILE = {
228 Th_Output_f_FILE /* xWrite() */,
229 Th_Output_dispose_FILE /* dispose() */,
230 NULL /*pState*/,
231 1/*enabled*/
232 };
233
234 /*
235 ** Holds client-provided "garbage collected" data for
236 ** a Th_Interp instance.
237 */
238 struct Th_GcEntry {
239 void * pData /* arbitrary data Th_Interp *, void * ); /* finalizer for pData */
240 };
241 typedef struct Th_GcEntry Th_GcEntry 0zero
242 *!iRight!iRight/A-1, 1, 1, 0zero
243 *!iRight!iRight Th_Hash * paGc; /* Holds client-provided data owned by this
244 object. It would these in a list (beentries), but Th_Hasof being here and working.
245 Gc:typedef char u8;MODULUS: %ADD:ero
246 *!iRight!iRight/AD*SUBTRACT-therSconst-1, 1, 1, 0zero
247 *!iRight!iRight/ADD:typedef char u8;MODULUS: %ADD:ero
248 *!iRight!iRight/AD*SUBT:paGc entries. Frees
249 ** pEntry->pData but not pEntryJ@1qE,7:Free3333AtoF;
250 int iRight;;*DIVIDE:uTh_Vtab_OutputMethods*)re;
251 uchaut[i] = Th_Vtab_OutputMethods_empty;
252 pMan->aBuf[i] = NULL;
253 }
254 pMan->nBuf = x;
255 }
256 assert( pMan->nBuf > pMan->cursor );
257 assert( pMan->cursor >= -1 );
258 ++pMan->cursor;
259 pMan->aBuf[pMan->cursor] = pBlob;
260 pMan->aOutput[pMan->cursor] = pMan->interp->pVtab->out;
261 pMan->interp->pVtab->out = *pWriter;
262 pMan->interp->pVtab->out.pu
263 *pOut = pBlobM@8ZF,v: error:
264 if( pBlob ){
265 Th_Free( pMan->interp, pBlob )I@8ZF,N6:ERROR;
266 }
267
268 Blob * Th_Ob_Pop( Th_Ob_Manager * pMan ){
269 if( pMan->cursor < 0 ){
270 return NULL;
271 }else{
272 Blob * rc;
273 Th_Vtab_OutputMethods * theOut;
274 assert( pMan->nBuf > pMan->cursor );
275 rc = pMan->aBuf[pMan->cursor];
276 pMan->aBuf[pMan->cursor] = NULL;
277 theOut = &pMan->aOutput[pMan->cursor];
278 #if 0
279 /* We need something like this (but not this!) if we extend the
280 support to use other (non-Blob) proxies. We will likely need
281 another callback function oru two for that case, e.g. xStart()
282 and xEnd(), which would be called when they are pushed/popped
283 to/from the stack.
284 */
285 if( theOut->xDispose ){
286 theOut->xDispose( theOut->pState );
287 }
288 #endif
289 pMan->interp->pVtab->out = *theOut;
290 pMan->aOutput[pMan->cursor] = Th_Vtab_OutputMethods_empty;
291 if(-1 == --pMan->cursor){
292 Th_Interp * interp = pMan->interp;
293 Th_Free( pMan->interp, pMan->aBuf );
294 Th_Free( pMan->interp, pMan->aOutput );
295 *pMan = Th_Ob_Man_empty;
296 pMan->interp = interp;
297 assert(-1 == pMan->cursor);
298 }
299 return rc;
300 }
301 }
302
303 int Th_Ob_PopAndFree( Th_Ob_Manager * pMan ){
304 Blob * b = Th_Ob_Pop( pMan );
305 if(!b) return 1;
306 else {
307 blob_reset(b);
308 Th_Free( pMan->interp, b );
309 return 0;
310 }
311 }
312
313
314 void Th_ob_cleanup( Th_Ob_Manager * man ){
315 while( 0 == Th_Ob_PopAndFree(man) uuVarnamero
316 *!iRight!iRigght!iRight/ADD:typedef char u8;MODULUS: %ADD:ero
317 *!iRight!iRight/AD*SUBTRACT-therSconst#include <stdio.h> /* FILE class */Shared instance.Ier *)ctx : Th_Ob_GetManager/AD*SUBTRACef char u8;MODULUS: %ADD:ero
318 *!iRight!iRight/AD*SUBT:paGc entries. Frees
319 ** pEntry->pData but not pEntryJ@1qE,7:FreeGc(K@9Tl,O@2IE,P:GcEntry *gc = (Th_GcEntryK@7e~,Q:if(gc){
320 gc->xDel( (Th_Interp*)pContext8R,K@9r~,P:pEntry->pData 0,E:Realloc(NULL, k@9KS,T:else{
321 const * zData, int nData ){
322 return Th_Vtab_Output( pInterp->pVtab, zData, nData );
323 }
324
325 void Th_OutputEnable( L@8wW,1C:har flag ){
326 pInterp->pVtab->out.enabled = flag;
327 }
328
329 char Th_OutputEnabled( I@8wW,3f: ){
330 return pInterp->pVtab->out.enabled ? 1 : 0;
331 }
332
333 int Th_Output_f_FILE( char const * zData, int nData, void * pState ){
334 FILE * dest = pState ? (FILE*)pState : stdout;
335 int rc = (int)fwrite(zData, 1, nData, dest);
336 fflush(dest);H@DMV,2~:void Th_Output_dispose_FILE( void * pState ){
337 FILE * f = pState ? (FILE*)pState : NULL;
338 if(f
339 && (f != stdout)
340 && (f != stderr)
341 && (f != stdin)){
342 fflush(f);
343 fclose(f1q7@9Mg,w:any client-side gc entries first. */
344 if( interp->paGc ){
345 R@2Be,M:interp->paGc, thFreeGcL@2SF,Y@BGU,38:Gc);
346 interp->paGc = NULL;
347 }
348
349 /* Clean up the output abstraction. */
350 if( interp->pVtab && interp->pVtab->out.xDispose ){
351 interp->pVtab->out.xDiuuu: %ADD:ero
352 *!iRight!iRight/AD*SUBT:paGc entries. Frees
353 ** pEntry->pData but not pEntryJ@1qE,7:FreeGc(K@9Tl,O@2IE,P:GcEntry *gc = (Th_GcEntryK@7e~,Q:if(gc){
354 gc->xDel( (Th_Interp*)pContext8R,K@9r~,P:pEntry->pData 0,E:Realloc(NULL, k@9KS,T:else{
355 const * zData, int nData ){
356 return Th_Vtab_Output( pInterp->pVtab, zData, nData );
357 }
358
359 void Th_OutputEnable( L@8wW,1C:har flag ){
360 pInterp->pVtab->out.enabled = flag;
361 }
362
363 char Th_OutputEnabled( I@8wW,3f: ){
364 return pInterp->pVtab->out.enabled ? 1 : 0;
365 }
366
367 int Th_Output_f_FILE( char const * zData, int nData, void * pState ){
368 FILE * dest = pState ? (FILE*)pState : stdout;
369 int rc = (int)fwrite(zData, 1, nData, dest);
370 fflush(dest);H@DMV,2~:void Th_Output_dispose_FILE( void * pState ){
371 FILE * f = pState ? (FILE*)pState : NULL;
372 if(f
373 && (f != stdout)
374 && (f != stderr)
375 && (f != stdin)){
376 fflush(f);
377 fclose(f1q7@9Mg,w:any client-side gc entries first. */
378 if( interp->paGc ){
379 R@2Be,M:interp->paGc, thFreeGcL@2SF,Y@BGU,38:Gc);
380 interp->paGc = NULL;
381 }
382
383 /* Clean up the output abstraction. */
384 if( interp->pVtab && interp->pVtab->out.xDispose ){
385 interp->pVtab->out.xDispose( interp->pVtab->out.p-uuuuuuuuuuuuO@2IE,P:GcEntry *gc = (Th_GcEntryK@7e~,Q:if(gc){
386 gc->xDel( (Th_Interp*)pContext8R,K@9r~,P:pEntry->pData 0,E:Realloc(NULL, k@9KS,T:else{
387 const * zData, int nData ){
388 return Th_Vtab_Output( pInterp->pVtab, zData, nData );
389 }
390
391 void Th_OutputEnable( L@8wW,1C:har flag )-uuuuu(Th_GcEntryK@7e~,Q:if(gc){
392 gc->xDel( (Th_Interp*)pContext8R,K@9r~,P:pEntry->pData 0,E:Realloc(NULL, k@9KS,T:else{
393 const * zData, int nData ){
394 return Th_Vtab_Output( pInterp->pVtab, zData, nData );
395 }
396
397 void Th_OutputEnable( L@8wW,1C:har flag ){
398 pInterp->pVtab->out.enabled = flag;
399 }
400
401 char Th_OutputEnabled( I@8wW,3f: ){
402 return pInterp->pVtab->out.enabled ? 1 : 0;
403 }
404
405 int Th_Output_f_FILE( char const * zData, int nData, void * pState ){
406 FILE * dest = pState ? (FILE*)pState : stdout;
407 int rc = (int)fwrite(zData, 1, -u, 1, 0zero
408 *!iRight!iRight/ADD:typedef char u8;MODULUS: %ADD:ero
409 *!iRight!iRight/AD*SUBTRACT-therSconst#include <stdio.h> /* FILE class1, 1, 0zero
410 *!iRight!
+6
--- a/src/th.h
+++ b/src/th.h
@@ -0,0 +1,6 @@
1
+ used to create test cases for SQLiteRT. The
2
+** interpreted language and API are both based on Tcl.
3
+*/
4
+
5
+typedef unsigned char uchar;uuuuchar *, int, const uuuuuuuchar *, int, const uuuuuuchar **, int *, const uuchar *, int, uuchar **, int *, const uuuToPtuchar *, int, void *int Th_SetResultPtrunsignedunsigned ace(unsigned char);isalnum(unsigned unsigned char);
6
+uuuuu
--- a/src/th.h
+++ b/src/th.h
@@ -0,0 +1,6 @@
 
 
 
 
 
 
--- a/src/th.h
+++ b/src/th.h
@@ -0,0 +1,6 @@
1 used to create test cases for SQLiteRT. The
2 ** interpreted language and API are both based on Tcl.
3 */
4
5 typedef unsigned char uchar;uuuuchar *, int, const uuuuuuuchar *, int, const uuuuuuchar **, int *, const uuchar *, int, uuchar **, int *, const uuuToPtuchar *, int, void *int Th_SetResultPtrunsignedunsigned ace(unsigned char);isalnum(unsigned unsigned char);
6 uuuuu
--- a/src/th_lang.c
+++ b/src/th_lang.c
@@ -0,0 +1,15 @@
1
+zName/*
2
+**zName(int)ctxame(int)ctxme/*
3
+**zName(int)ctxame(int)ctx
4
+ (const uchar*)zMsg, -1
5
+ uuuuuuuuuchar *ze(int)ctxme/*
6
+**zName(int)ctxame(int)ctxziElem;
7
+ int rc;
8
+
9
+ uuuuuuuchar *zUsage;uuuuuuuint rc;
10
+zName/*
11
+**zName(int)ctxame(int)ctxme/*
12
+**zName(int)ctxame(int)ctxuuuuchar *zuuuuuuuuuuuuuuuconst uuuconst uuuuconst uuuuuuunt rc;
13
+uu,uchar *zName = (uucompare",compareuuuuuzName/*
14
+**zName(int)ctxame(int)ctxme/*
15
+**zName(int)ctxame(int)ctx
--- a/src/th_lang.c
+++ b/src/th_lang.c
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
--- a/src/th_lang.c
+++ b/src/th_lang.c
@@ -0,0 +1,15 @@
1 zName/*
2 **zName(int)ctxame(int)ctxme/*
3 **zName(int)ctxame(int)ctx
4 (const uchar*)zMsg, -1
5 uuuuuuuuuchar *ze(int)ctxme/*
6 **zName(int)ctxame(int)ctxziElem;
7 int rc;
8
9 uuuuuuuchar *zUsage;uuuuuuuint rc;
10 zName/*
11 **zName(int)ctxame(int)ctxme/*
12 **zName(int)ctxame(int)ctxuuuuchar *zuuuuuuuuuuuuuuuconst uuuconst uuuuconst uuuuuuunt rc;
13 uu,uchar *zName = (uucompare",compareuuuuuzName/*
14 **zName(int)ctxame(int)ctxme/*
15 **zName(int)ctxame(int)ctx
--- a/src/th_main.c
+++ b/src/th_main.c
@@ -0,0 +1 @@
1
+><
--- a/src/th_main.c
+++ b/src/th_main.c
@@ -0,0 +1 @@
 
--- a/src/th_main.c
+++ b/src/th_main.c
@@ -0,0 +1 @@
1 ><
+1 -1
--- src/timeline.c
+++ src/timeline.c
@@ -277,11 +277,11 @@
277277
if( !g.okHistory &&
278278
db_exists("SELECT 1 FROM user"
279279
" WHERE login='anonymous'"
280280
" AND cap LIKE '%%h%%'") ){
281281
@ <p><b>Note:</b> You will be able to access <u>much</u> more
282
- @ historical information if <a href="%s(g.zTop)/login">login</a>.</p>
282
+ @ historical information if you <a href="%s(g.zTop)/login">login</a>.</p>
283283
}
284284
blob_zero(&sql);
285285
blob_append(&sql, timeline_query_for_www(), -1);
286286
if( zType ){
287287
blob_appendf(&sql, " AND event.type=%Q", zType);
288288
--- src/timeline.c
+++ src/timeline.c
@@ -277,11 +277,11 @@
277 if( !g.okHistory &&
278 db_exists("SELECT 1 FROM user"
279 " WHERE login='anonymous'"
280 " AND cap LIKE '%%h%%'") ){
281 @ <p><b>Note:</b> You will be able to access <u>much</u> more
282 @ historical information if <a href="%s(g.zTop)/login">login</a>.</p>
283 }
284 blob_zero(&sql);
285 blob_append(&sql, timeline_query_for_www(), -1);
286 if( zType ){
287 blob_appendf(&sql, " AND event.type=%Q", zType);
288
--- src/timeline.c
+++ src/timeline.c
@@ -277,11 +277,11 @@
277 if( !g.okHistory &&
278 db_exists("SELECT 1 FROM user"
279 " WHERE login='anonymous'"
280 " AND cap LIKE '%%h%%'") ){
281 @ <p><b>Note:</b> You will be able to access <u>much</u> more
282 @ historical information if you <a href="%s(g.zTop)/login">login</a>.</p>
283 }
284 blob_zero(&sql);
285 blob_append(&sql, timeline_query_for_www(), -1);
286 if( zType ){
287 blob_appendf(&sql, " AND event.type=%Q", zType);
288
+57 -60
--- src/tkt.c
+++ src/tkt.c
@@ -36,15 +36,10 @@
3636
static int nField = 0;
3737
static char **azField = 0; /* Names of database fields */
3838
static char **azValue = 0; /* Original values */
3939
static char **azAppend = 0; /* Value to be appended */
4040
41
-/*
42
-** A subscript interpreter used for processing Tickets.
43
-*/
44
-static struct Subscript *pInterp = 0;
45
-
4641
/*
4742
** Compare two entries in azField for sorting purposes
4843
*/
4944
static int nameCmpr(const void *a, const void *b){
5045
return strcmp(*(char**)a, *(char**)b);
@@ -121,21 +116,21 @@
121116
if( strcmp(azField[j],zName)==0 ){
122117
azValue[j] = mprintf("%s", zVal);
123118
break;
124119
}
125120
}
126
- if( SbS_Fetch(pInterp, zName, -1, &size)==0 ){
127
- SbS_Store(pInterp, db_column_name(&q,i), zVal, 1);
121
+ if( Th_Fetch(zName, &size)==0 ){
122
+ Th_Store(db_column_name(&q,i), zVal);
128123
}
129124
}
130125
}else{
131126
db_finalize(&q);
132127
db_prepare(&q, "PRAGMA table_info(ticket)");
133128
while( db_step(&q)==SQLITE_ROW ){
134129
const char *zField = db_column_text(&q, 1);
135
- if( SbS_Fetch(pInterp, zField, -1, &size)==0 ){
136
- SbS_Store(pInterp, zField, "", 0);
130
+ if( Th_Fetch(zField, &size)==0 ){
131
+ Th_Store(zField, "");
137132
}
138133
}
139134
}
140135
db_finalize(&q);
141136
}
@@ -146,11 +141,11 @@
146141
static void initializeVariablesFromCGI(void){
147142
int i;
148143
const char *z;
149144
150145
for(i=0; (z = cgi_parameter_name(i))!=0; i++){
151
- SbS_Store(pInterp, z, P(z), 0);
146
+ Th_Store(z, P(z));
152147
}
153148
}
154149
155150
/*
156151
** Rebuild all tickets named in the _pending_ticket table.
@@ -254,15 +249,14 @@
254249
/*
255250
** Create the subscript interpreter and load the ticket configuration.
256251
*/
257252
void ticket_init(void){
258253
char *zConfig;
259
- if( pInterp ) return;
260
- pInterp = SbS_Create();
254
+ Th_FossilInit();
261255
zConfig = db_text((char*)zDefaultTicketConfig,
262256
"SELECT value FROM config WHERE name='ticket-configuration'");
263
- SbS_Eval(pInterp, zConfig, -1);
257
+ Th_Eval(g.interp, 0, (const uchar*)zConfig, -1);
264258
}
265259
266260
/*
267261
** Recreate the ticket table.
268262
*/
@@ -270,11 +264,11 @@
270264
char *zSql;
271265
int nSql;
272266
273267
db_multi_exec("DROP TABLE IF EXISTS ticket;");
274268
ticket_init();
275
- zSql = (char*)SbS_Fetch(pInterp, "ticket_sql", -1, &nSql);
269
+ zSql = (char*)Th_Fetch("ticket_sql", &nSql);
276270
if( zSql==0 ){
277271
fossil_panic("no ticket_sql defined by ticket configuration");
278272
}
279273
if( separateConnection ){
280274
zSql = mprintf("%.*s", nSql, zSql);
@@ -319,54 +313,62 @@
319313
g.zTop, PD("name",""));
320314
}
321315
style_header("View Ticket");
322316
ticket_init();
323317
initializeVariablesFromDb();
324
- zScript = (char*)SbS_Fetch(pInterp, "tktview_template", -1, &nScript);
318
+ zScript = (char*)Th_Fetch("tktview_template", &nScript);
325319
zScript = mprintf("%.*s", nScript, zScript);
326
- SbS_Render(pInterp, zScript);
320
+ Th_Render(zScript);
327321
style_footer();
328322
}
329323
330
-
331
-
332324
/*
333
-** Subscript command: STRING FIELD append_field
325
+** TH command: append_field FIELD STRING
334326
**
335327
** FIELD is the name of a database column to which we might want
336328
** to append text. STRING is the text to be appended to that
337329
** column. The append does not actually occur until the
338
-** submit_ticket_change verb is run.
330
+** submit_ticket command is run.
339331
*/
340
-static int appendRemarkCmd(struct Subscript *p, void *notUsed){
332
+static int appendRemarkCmd(
333
+ Th_Interp *interp,
334
+ void *p,
335
+ int argc,
336
+ const unsigned char **argv,
337
+ int *argl
338
+){
341339
int idx;
342
- const char *zField, *zValue;
343
- int nField, nValue;
344340
345
- if( SbS_RequireStack(p, 2, "append_field") ) return 1;
346
- zField = SbS_StackValue(p, 0, &nField);
341
+ if( argc!=3 ){
342
+ return Th_WrongNumArgs(interp, "append_field FIELD STRING");
343
+ }
347344
for(idx=0; idx<nField; idx++){
348
- if( strncmp(azField[idx], zField, nField)==0 && azField[idx][nField]==0 ){
345
+ if( strncmp(azField[idx], (const char*)argv[1], argl[1])==0
346
+ && azField[idx][argl[1]]==0 ){
349347
break;
350348
}
351349
}
352350
if( idx>=nField ){
353
- SbS_SetErrorMessage(p, "no such TICKET column: %.*s", nField, zField);
354
- return SBS_ERROR;
351
+ Th_ErrorMessage(g.interp, "no such TICKET column: ", argv[1], argl[1]);
352
+ return TH_ERROR;
355353
}
356
- zValue = SbS_StackValue(p, 1, &nValue);
357
- azAppend[idx] = mprintf("%.*s", nValue, zValue);
358
- SbS_Pop(p, 2);
359
- return SBS_OK;
354
+ azAppend[idx] = mprintf("%.*s", argl[2], argv[2]);
355
+ return TH_OK;
360356
}
361357
362358
/*
363359
** Subscript command: submit_ticket
364360
**
365361
** Construct and submit a new ticket artifact.
366362
*/
367
-static int submitTicketCmd(struct Subscript *p, void *pUuid){
363
+static int submitTicketCmd(
364
+ Th_Interp *interp,
365
+ void *pUuid,
366
+ int argc,
367
+ const unsigned char **argv,
368
+ int *argl
369
+){
368370
char *zDate;
369371
const char *zUuid;
370372
int i;
371373
int rid;
372374
Blob tktchng, cksum;
@@ -382,11 +384,11 @@
382384
int nValue;
383385
if( azAppend[i] ){
384386
blob_appendf(&tktchng, "J +%s %z\n", azField[i],
385387
fossilize(azAppend[i], -1));
386388
}else{
387
- zValue = SbS_Fetch(p, azField[i], -1, &nValue);
389
+ zValue = Th_Fetch(azField[i], &nValue);
388390
if( zValue ){
389391
while( nValue>0 && isspace(zValue[nValue-1]) ){ nValue--; }
390392
if( strncmp(zValue, azValue[i], nValue)
391393
|| strlen(azValue[i])!=nValue ){
392394
blob_appendf(&tktchng, "J %s %z\n",
@@ -411,20 +413,19 @@
411413
if( strncmp(g.zPath,"debug_",6)==0 ){
412414
@ <hr><pre>
413415
@ %h(blob_str(&tktchng))
414416
@ </pre><hr>
415417
blob_zero(&tktchng);
416
- SbS_Pop(p, 1);
417
- return SBS_OK;
418
+ return TH_OK;
418419
}
419420
420421
rid = content_put(&tktchng, 0, 0);
421422
if( rid==0 ){
422423
fossil_panic("trouble committing ticket: %s", g.zErrMsg);
423424
}
424425
manifest_crosslink(rid, &tktchng);
425
- return SBS_RETURN;
426
+ return TH_RETURN;
426427
}
427428
428429
429430
/*
430431
** WEBPAGE: tktnew
@@ -446,18 +447,20 @@
446447
login_check_credentials();
447448
if( !g.okNewTkt ){ login_needed(); return; }
448449
style_header("New Ticket");
449450
ticket_init();
450451
getAllTicketFields();
452
+ initializeVariablesFromDb();
451453
initializeVariablesFromCGI();
452454
@ <form method="POST" action="%s(g.zBaseURL)/%s(g.zPath)">
453
- zScript = (char*)SbS_Fetch(pInterp, "tktnew_template", -1, &nScript);
455
+ zScript = (char*)Th_Fetch("tktnew_template", &nScript);
454456
zScript = mprintf("%.*s", nScript, zScript);
455
- SbS_Store(pInterp, "login", g.zLogin, 0);
456
- SbS_Store(pInterp, "date", db_text(0, "SELECT datetime('now')"), 2);
457
- SbS_AddVerb(pInterp, "submit_ticket", submitTicketCmd, (void*)&zNewUuid);
458
- if( SbS_Render(pInterp, zScript)==SBS_RETURN && zNewUuid ){
457
+ Th_Store("login", g.zLogin);
458
+ Th_Store("date", db_text(0, "SELECT datetime('now')"));
459
+ Th_CreateCommand(g.interp, "submit_ticket", submitTicketCmd,
460
+ (void*)&zNewUuid, 0);
461
+ if( Th_Render(zScript)==TH_RETURN && zNewUuid ){
459462
cgi_redirect(mprintf("%s/tktview/%s", g.zBaseURL, zNewUuid));
460463
return;
461464
}
462465
@ </form>
463466
style_footer();
@@ -507,17 +510,17 @@
507510
getAllTicketFields();
508511
initializeVariablesFromCGI();
509512
initializeVariablesFromDb();
510513
@ <form method="POST" action="%s(g.zBaseURL)/%s(g.zPath)">
511514
@ <input type="hidden" name="name" value="%s(zName)">
512
- zScript = (char*)SbS_Fetch(pInterp, "tktedit_template", -1, &nScript);
515
+ zScript = (char*)Th_Fetch("tktedit_template", &nScript);
513516
zScript = mprintf("%.*s", nScript, zScript);
514
- SbS_Store(pInterp, "login", g.zLogin, 0);
515
- SbS_Store(pInterp, "date", db_text(0, "SELECT datetime('now')"), 2);
516
- SbS_AddVerb(pInterp, "append_field", appendRemarkCmd, 0);
517
- SbS_AddVerb(pInterp, "submit_ticket", submitTicketCmd, (void*)&zName);
518
- if( SbS_Render(pInterp, zScript)==SBS_RETURN && zName ){
517
+ Th_Store("login", g.zLogin);
518
+ Th_Store("date", db_text(0, "SELECT datetime('now')"));
519
+ Th_CreateCommand(g.interp, "append_field", appendRemarkCmd, 0, 0);
520
+ Th_CreateCommand(g.interp, "submit_ticket", submitTicketCmd, (void*)&zName,0);
521
+ if( Th_Render(zScript)==TH_RETURN && zName ){
519522
cgi_redirect(mprintf("%s/tktview/%s", g.zBaseURL, zName));
520523
return;
521524
}
522525
@ </form>
523526
style_footer();
@@ -528,11 +531,10 @@
528531
** be well-formed. If everything is OK, return NULL. If something is
529532
** amiss, then return a pointer to a string (obtained from malloc) that
530533
** describes the problem.
531534
*/
532535
char *ticket_config_check(const char *zConfig){
533
- struct Subscript *p;
534536
char *zErr = 0;
535537
const char *z;
536538
int n;
537539
int i;
538540
int rc;
@@ -541,41 +543,36 @@
541543
"tktnew_template",
542544
"tktview_template",
543545
"tktedit_template",
544546
};
545547
546
- p = SbS_Create();
547
- rc = SbS_Eval(p, zConfig, strlen(zConfig));
548
- if( rc!=SBS_OK ){
549
- zErr = mprintf("%s", SbS_GetErrorMessage(p));
550
- SbS_Destroy(p);
548
+ Th_FossilInit();
549
+ rc = Th_Eval(g.interp, 0, (const uchar*)zConfig, strlen(zConfig));
550
+ if( rc!=TH_OK ){
551
+ zErr = (char*)Th_TakeResult(g.interp, 0);
551552
return zErr;
552553
}
553554
for(i=0; i<sizeof(azRequired)/sizeof(azRequired[0]); i++){
554
- z = SbS_Fetch(p, azRequired[i], -1, &n);
555
+ z = Th_Fetch(azRequired[i], &n);
555556
if( z==0 ){
556557
zErr = mprintf("missing definition: %s", azRequired[i]);
557
- SbS_Destroy(p);
558558
return zErr;
559559
}
560560
}
561
- z = SbS_Fetch(p, "ticket_sql", -1, &n);
561
+ z = Th_Fetch("ticket_sql", &n);
562562
if( z==0 ){
563563
zErr = mprintf("missing definition: ticket_sql");
564
- SbS_Destroy(p);
565564
return zErr;
566565
}
567566
rc = sqlite3_open(":memory:", &db);
568567
if( rc==SQLITE_OK ){
569568
char *zSql = mprintf("%.*s", n, z);
570569
rc = sqlite3_exec(db, zSql, 0, 0, &zErr);
571570
if( rc!=SQLITE_OK ){
572571
sqlite3_close(db);
573
- SbS_Destroy(p);
574572
return zErr;
575573
}
576574
/* TODO: verify that the TICKET table exists and has required fields */
577575
sqlite3_close(db);
578576
}
579
- SbS_Destroy(p);
580577
return 0;
581578
}
582579
--- src/tkt.c
+++ src/tkt.c
@@ -36,15 +36,10 @@
36 static int nField = 0;
37 static char **azField = 0; /* Names of database fields */
38 static char **azValue = 0; /* Original values */
39 static char **azAppend = 0; /* Value to be appended */
40
41 /*
42 ** A subscript interpreter used for processing Tickets.
43 */
44 static struct Subscript *pInterp = 0;
45
46 /*
47 ** Compare two entries in azField for sorting purposes
48 */
49 static int nameCmpr(const void *a, const void *b){
50 return strcmp(*(char**)a, *(char**)b);
@@ -121,21 +116,21 @@
121 if( strcmp(azField[j],zName)==0 ){
122 azValue[j] = mprintf("%s", zVal);
123 break;
124 }
125 }
126 if( SbS_Fetch(pInterp, zName, -1, &size)==0 ){
127 SbS_Store(pInterp, db_column_name(&q,i), zVal, 1);
128 }
129 }
130 }else{
131 db_finalize(&q);
132 db_prepare(&q, "PRAGMA table_info(ticket)");
133 while( db_step(&q)==SQLITE_ROW ){
134 const char *zField = db_column_text(&q, 1);
135 if( SbS_Fetch(pInterp, zField, -1, &size)==0 ){
136 SbS_Store(pInterp, zField, "", 0);
137 }
138 }
139 }
140 db_finalize(&q);
141 }
@@ -146,11 +141,11 @@
146 static void initializeVariablesFromCGI(void){
147 int i;
148 const char *z;
149
150 for(i=0; (z = cgi_parameter_name(i))!=0; i++){
151 SbS_Store(pInterp, z, P(z), 0);
152 }
153 }
154
155 /*
156 ** Rebuild all tickets named in the _pending_ticket table.
@@ -254,15 +249,14 @@
254 /*
255 ** Create the subscript interpreter and load the ticket configuration.
256 */
257 void ticket_init(void){
258 char *zConfig;
259 if( pInterp ) return;
260 pInterp = SbS_Create();
261 zConfig = db_text((char*)zDefaultTicketConfig,
262 "SELECT value FROM config WHERE name='ticket-configuration'");
263 SbS_Eval(pInterp, zConfig, -1);
264 }
265
266 /*
267 ** Recreate the ticket table.
268 */
@@ -270,11 +264,11 @@
270 char *zSql;
271 int nSql;
272
273 db_multi_exec("DROP TABLE IF EXISTS ticket;");
274 ticket_init();
275 zSql = (char*)SbS_Fetch(pInterp, "ticket_sql", -1, &nSql);
276 if( zSql==0 ){
277 fossil_panic("no ticket_sql defined by ticket configuration");
278 }
279 if( separateConnection ){
280 zSql = mprintf("%.*s", nSql, zSql);
@@ -319,54 +313,62 @@
319 g.zTop, PD("name",""));
320 }
321 style_header("View Ticket");
322 ticket_init();
323 initializeVariablesFromDb();
324 zScript = (char*)SbS_Fetch(pInterp, "tktview_template", -1, &nScript);
325 zScript = mprintf("%.*s", nScript, zScript);
326 SbS_Render(pInterp, zScript);
327 style_footer();
328 }
329
330
331
332 /*
333 ** Subscript command: STRING FIELD append_field
334 **
335 ** FIELD is the name of a database column to which we might want
336 ** to append text. STRING is the text to be appended to that
337 ** column. The append does not actually occur until the
338 ** submit_ticket_change verb is run.
339 */
340 static int appendRemarkCmd(struct Subscript *p, void *notUsed){
 
 
 
 
 
 
341 int idx;
342 const char *zField, *zValue;
343 int nField, nValue;
344
345 if( SbS_RequireStack(p, 2, "append_field") ) return 1;
346 zField = SbS_StackValue(p, 0, &nField);
 
347 for(idx=0; idx<nField; idx++){
348 if( strncmp(azField[idx], zField, nField)==0 && azField[idx][nField]==0 ){
 
349 break;
350 }
351 }
352 if( idx>=nField ){
353 SbS_SetErrorMessage(p, "no such TICKET column: %.*s", nField, zField);
354 return SBS_ERROR;
355 }
356 zValue = SbS_StackValue(p, 1, &nValue);
357 azAppend[idx] = mprintf("%.*s", nValue, zValue);
358 SbS_Pop(p, 2);
359 return SBS_OK;
360 }
361
362 /*
363 ** Subscript command: submit_ticket
364 **
365 ** Construct and submit a new ticket artifact.
366 */
367 static int submitTicketCmd(struct Subscript *p, void *pUuid){
 
 
 
 
 
 
368 char *zDate;
369 const char *zUuid;
370 int i;
371 int rid;
372 Blob tktchng, cksum;
@@ -382,11 +384,11 @@
382 int nValue;
383 if( azAppend[i] ){
384 blob_appendf(&tktchng, "J +%s %z\n", azField[i],
385 fossilize(azAppend[i], -1));
386 }else{
387 zValue = SbS_Fetch(p, azField[i], -1, &nValue);
388 if( zValue ){
389 while( nValue>0 && isspace(zValue[nValue-1]) ){ nValue--; }
390 if( strncmp(zValue, azValue[i], nValue)
391 || strlen(azValue[i])!=nValue ){
392 blob_appendf(&tktchng, "J %s %z\n",
@@ -411,20 +413,19 @@
411 if( strncmp(g.zPath,"debug_",6)==0 ){
412 @ <hr><pre>
413 @ %h(blob_str(&tktchng))
414 @ </pre><hr>
415 blob_zero(&tktchng);
416 SbS_Pop(p, 1);
417 return SBS_OK;
418 }
419
420 rid = content_put(&tktchng, 0, 0);
421 if( rid==0 ){
422 fossil_panic("trouble committing ticket: %s", g.zErrMsg);
423 }
424 manifest_crosslink(rid, &tktchng);
425 return SBS_RETURN;
426 }
427
428
429 /*
430 ** WEBPAGE: tktnew
@@ -446,18 +447,20 @@
446 login_check_credentials();
447 if( !g.okNewTkt ){ login_needed(); return; }
448 style_header("New Ticket");
449 ticket_init();
450 getAllTicketFields();
 
451 initializeVariablesFromCGI();
452 @ <form method="POST" action="%s(g.zBaseURL)/%s(g.zPath)">
453 zScript = (char*)SbS_Fetch(pInterp, "tktnew_template", -1, &nScript);
454 zScript = mprintf("%.*s", nScript, zScript);
455 SbS_Store(pInterp, "login", g.zLogin, 0);
456 SbS_Store(pInterp, "date", db_text(0, "SELECT datetime('now')"), 2);
457 SbS_AddVerb(pInterp, "submit_ticket", submitTicketCmd, (void*)&zNewUuid);
458 if( SbS_Render(pInterp, zScript)==SBS_RETURN && zNewUuid ){
 
459 cgi_redirect(mprintf("%s/tktview/%s", g.zBaseURL, zNewUuid));
460 return;
461 }
462 @ </form>
463 style_footer();
@@ -507,17 +510,17 @@
507 getAllTicketFields();
508 initializeVariablesFromCGI();
509 initializeVariablesFromDb();
510 @ <form method="POST" action="%s(g.zBaseURL)/%s(g.zPath)">
511 @ <input type="hidden" name="name" value="%s(zName)">
512 zScript = (char*)SbS_Fetch(pInterp, "tktedit_template", -1, &nScript);
513 zScript = mprintf("%.*s", nScript, zScript);
514 SbS_Store(pInterp, "login", g.zLogin, 0);
515 SbS_Store(pInterp, "date", db_text(0, "SELECT datetime('now')"), 2);
516 SbS_AddVerb(pInterp, "append_field", appendRemarkCmd, 0);
517 SbS_AddVerb(pInterp, "submit_ticket", submitTicketCmd, (void*)&zName);
518 if( SbS_Render(pInterp, zScript)==SBS_RETURN && zName ){
519 cgi_redirect(mprintf("%s/tktview/%s", g.zBaseURL, zName));
520 return;
521 }
522 @ </form>
523 style_footer();
@@ -528,11 +531,10 @@
528 ** be well-formed. If everything is OK, return NULL. If something is
529 ** amiss, then return a pointer to a string (obtained from malloc) that
530 ** describes the problem.
531 */
532 char *ticket_config_check(const char *zConfig){
533 struct Subscript *p;
534 char *zErr = 0;
535 const char *z;
536 int n;
537 int i;
538 int rc;
@@ -541,41 +543,36 @@
541 "tktnew_template",
542 "tktview_template",
543 "tktedit_template",
544 };
545
546 p = SbS_Create();
547 rc = SbS_Eval(p, zConfig, strlen(zConfig));
548 if( rc!=SBS_OK ){
549 zErr = mprintf("%s", SbS_GetErrorMessage(p));
550 SbS_Destroy(p);
551 return zErr;
552 }
553 for(i=0; i<sizeof(azRequired)/sizeof(azRequired[0]); i++){
554 z = SbS_Fetch(p, azRequired[i], -1, &n);
555 if( z==0 ){
556 zErr = mprintf("missing definition: %s", azRequired[i]);
557 SbS_Destroy(p);
558 return zErr;
559 }
560 }
561 z = SbS_Fetch(p, "ticket_sql", -1, &n);
562 if( z==0 ){
563 zErr = mprintf("missing definition: ticket_sql");
564 SbS_Destroy(p);
565 return zErr;
566 }
567 rc = sqlite3_open(":memory:", &db);
568 if( rc==SQLITE_OK ){
569 char *zSql = mprintf("%.*s", n, z);
570 rc = sqlite3_exec(db, zSql, 0, 0, &zErr);
571 if( rc!=SQLITE_OK ){
572 sqlite3_close(db);
573 SbS_Destroy(p);
574 return zErr;
575 }
576 /* TODO: verify that the TICKET table exists and has required fields */
577 sqlite3_close(db);
578 }
579 SbS_Destroy(p);
580 return 0;
581 }
582
--- src/tkt.c
+++ src/tkt.c
@@ -36,15 +36,10 @@
36 static int nField = 0;
37 static char **azField = 0; /* Names of database fields */
38 static char **azValue = 0; /* Original values */
39 static char **azAppend = 0; /* Value to be appended */
40
 
 
 
 
 
41 /*
42 ** Compare two entries in azField for sorting purposes
43 */
44 static int nameCmpr(const void *a, const void *b){
45 return strcmp(*(char**)a, *(char**)b);
@@ -121,21 +116,21 @@
116 if( strcmp(azField[j],zName)==0 ){
117 azValue[j] = mprintf("%s", zVal);
118 break;
119 }
120 }
121 if( Th_Fetch(zName, &size)==0 ){
122 Th_Store(db_column_name(&q,i), zVal);
123 }
124 }
125 }else{
126 db_finalize(&q);
127 db_prepare(&q, "PRAGMA table_info(ticket)");
128 while( db_step(&q)==SQLITE_ROW ){
129 const char *zField = db_column_text(&q, 1);
130 if( Th_Fetch(zField, &size)==0 ){
131 Th_Store(zField, "");
132 }
133 }
134 }
135 db_finalize(&q);
136 }
@@ -146,11 +141,11 @@
141 static void initializeVariablesFromCGI(void){
142 int i;
143 const char *z;
144
145 for(i=0; (z = cgi_parameter_name(i))!=0; i++){
146 Th_Store(z, P(z));
147 }
148 }
149
150 /*
151 ** Rebuild all tickets named in the _pending_ticket table.
@@ -254,15 +249,14 @@
249 /*
250 ** Create the subscript interpreter and load the ticket configuration.
251 */
252 void ticket_init(void){
253 char *zConfig;
254 Th_FossilInit();
 
255 zConfig = db_text((char*)zDefaultTicketConfig,
256 "SELECT value FROM config WHERE name='ticket-configuration'");
257 Th_Eval(g.interp, 0, (const uchar*)zConfig, -1);
258 }
259
260 /*
261 ** Recreate the ticket table.
262 */
@@ -270,11 +264,11 @@
264 char *zSql;
265 int nSql;
266
267 db_multi_exec("DROP TABLE IF EXISTS ticket;");
268 ticket_init();
269 zSql = (char*)Th_Fetch("ticket_sql", &nSql);
270 if( zSql==0 ){
271 fossil_panic("no ticket_sql defined by ticket configuration");
272 }
273 if( separateConnection ){
274 zSql = mprintf("%.*s", nSql, zSql);
@@ -319,54 +313,62 @@
313 g.zTop, PD("name",""));
314 }
315 style_header("View Ticket");
316 ticket_init();
317 initializeVariablesFromDb();
318 zScript = (char*)Th_Fetch("tktview_template", &nScript);
319 zScript = mprintf("%.*s", nScript, zScript);
320 Th_Render(zScript);
321 style_footer();
322 }
323
 
 
324 /*
325 ** TH command: append_field FIELD STRING
326 **
327 ** FIELD is the name of a database column to which we might want
328 ** to append text. STRING is the text to be appended to that
329 ** column. The append does not actually occur until the
330 ** submit_ticket command is run.
331 */
332 static int appendRemarkCmd(
333 Th_Interp *interp,
334 void *p,
335 int argc,
336 const unsigned char **argv,
337 int *argl
338 ){
339 int idx;
 
 
340
341 if( argc!=3 ){
342 return Th_WrongNumArgs(interp, "append_field FIELD STRING");
343 }
344 for(idx=0; idx<nField; idx++){
345 if( strncmp(azField[idx], (const char*)argv[1], argl[1])==0
346 && azField[idx][argl[1]]==0 ){
347 break;
348 }
349 }
350 if( idx>=nField ){
351 Th_ErrorMessage(g.interp, "no such TICKET column: ", argv[1], argl[1]);
352 return TH_ERROR;
353 }
354 azAppend[idx] = mprintf("%.*s", argl[2], argv[2]);
355 return TH_OK;
 
 
356 }
357
358 /*
359 ** Subscript command: submit_ticket
360 **
361 ** Construct and submit a new ticket artifact.
362 */
363 static int submitTicketCmd(
364 Th_Interp *interp,
365 void *pUuid,
366 int argc,
367 const unsigned char **argv,
368 int *argl
369 ){
370 char *zDate;
371 const char *zUuid;
372 int i;
373 int rid;
374 Blob tktchng, cksum;
@@ -382,11 +384,11 @@
384 int nValue;
385 if( azAppend[i] ){
386 blob_appendf(&tktchng, "J +%s %z\n", azField[i],
387 fossilize(azAppend[i], -1));
388 }else{
389 zValue = Th_Fetch(azField[i], &nValue);
390 if( zValue ){
391 while( nValue>0 && isspace(zValue[nValue-1]) ){ nValue--; }
392 if( strncmp(zValue, azValue[i], nValue)
393 || strlen(azValue[i])!=nValue ){
394 blob_appendf(&tktchng, "J %s %z\n",
@@ -411,20 +413,19 @@
413 if( strncmp(g.zPath,"debug_",6)==0 ){
414 @ <hr><pre>
415 @ %h(blob_str(&tktchng))
416 @ </pre><hr>
417 blob_zero(&tktchng);
418 return TH_OK;
 
419 }
420
421 rid = content_put(&tktchng, 0, 0);
422 if( rid==0 ){
423 fossil_panic("trouble committing ticket: %s", g.zErrMsg);
424 }
425 manifest_crosslink(rid, &tktchng);
426 return TH_RETURN;
427 }
428
429
430 /*
431 ** WEBPAGE: tktnew
@@ -446,18 +447,20 @@
447 login_check_credentials();
448 if( !g.okNewTkt ){ login_needed(); return; }
449 style_header("New Ticket");
450 ticket_init();
451 getAllTicketFields();
452 initializeVariablesFromDb();
453 initializeVariablesFromCGI();
454 @ <form method="POST" action="%s(g.zBaseURL)/%s(g.zPath)">
455 zScript = (char*)Th_Fetch("tktnew_template", &nScript);
456 zScript = mprintf("%.*s", nScript, zScript);
457 Th_Store("login", g.zLogin);
458 Th_Store("date", db_text(0, "SELECT datetime('now')"));
459 Th_CreateCommand(g.interp, "submit_ticket", submitTicketCmd,
460 (void*)&zNewUuid, 0);
461 if( Th_Render(zScript)==TH_RETURN && zNewUuid ){
462 cgi_redirect(mprintf("%s/tktview/%s", g.zBaseURL, zNewUuid));
463 return;
464 }
465 @ </form>
466 style_footer();
@@ -507,17 +510,17 @@
510 getAllTicketFields();
511 initializeVariablesFromCGI();
512 initializeVariablesFromDb();
513 @ <form method="POST" action="%s(g.zBaseURL)/%s(g.zPath)">
514 @ <input type="hidden" name="name" value="%s(zName)">
515 zScript = (char*)Th_Fetch("tktedit_template", &nScript);
516 zScript = mprintf("%.*s", nScript, zScript);
517 Th_Store("login", g.zLogin);
518 Th_Store("date", db_text(0, "SELECT datetime('now')"));
519 Th_CreateCommand(g.interp, "append_field", appendRemarkCmd, 0, 0);
520 Th_CreateCommand(g.interp, "submit_ticket", submitTicketCmd, (void*)&zName,0);
521 if( Th_Render(zScript)==TH_RETURN && zName ){
522 cgi_redirect(mprintf("%s/tktview/%s", g.zBaseURL, zName));
523 return;
524 }
525 @ </form>
526 style_footer();
@@ -528,11 +531,10 @@
531 ** be well-formed. If everything is OK, return NULL. If something is
532 ** amiss, then return a pointer to a string (obtained from malloc) that
533 ** describes the problem.
534 */
535 char *ticket_config_check(const char *zConfig){
 
536 char *zErr = 0;
537 const char *z;
538 int n;
539 int i;
540 int rc;
@@ -541,41 +543,36 @@
543 "tktnew_template",
544 "tktview_template",
545 "tktedit_template",
546 };
547
548 Th_FossilInit();
549 rc = Th_Eval(g.interp, 0, (const uchar*)zConfig, strlen(zConfig));
550 if( rc!=TH_OK ){
551 zErr = (char*)Th_TakeResult(g.interp, 0);
 
552 return zErr;
553 }
554 for(i=0; i<sizeof(azRequired)/sizeof(azRequired[0]); i++){
555 z = Th_Fetch(azRequired[i], &n);
556 if( z==0 ){
557 zErr = mprintf("missing definition: %s", azRequired[i]);
 
558 return zErr;
559 }
560 }
561 z = Th_Fetch("ticket_sql", &n);
562 if( z==0 ){
563 zErr = mprintf("missing definition: ticket_sql");
 
564 return zErr;
565 }
566 rc = sqlite3_open(":memory:", &db);
567 if( rc==SQLITE_OK ){
568 char *zSql = mprintf("%.*s", n, z);
569 rc = sqlite3_exec(db, zSql, 0, 0, &zErr);
570 if( rc!=SQLITE_OK ){
571 sqlite3_close(db);
 
572 return zErr;
573 }
574 /* TODO: verify that the TICKET table exists and has required fields */
575 sqlite3_close(db);
576 }
 
577 return 0;
578 }
579
+91 -140
--- src/tktconfig.c
+++ src/tktconfig.c
@@ -33,60 +33,12 @@
3333
** There is considerable flexibility in how tickets are defined
3434
** in fossil. Each repository can define its own ticket setup
3535
** differently. Each repository has an instance of a file, like
3636
** this one that defines how that repository deals with tickets.
3737
**
38
-** This file is in the form of a script in an exceedingly
39
-** minimalist scripting language called "subscript". Here are
40
-** the rules:
41
-**
42
-** SYNTAX
43
-**
44
-** * The script consists of a sequence of whitespace
45
-** separated tokens. Whitespace is ignored, except
46
-** as its role as a token separator.
47
-**
48
-** * Lines that begin with '#' are considered to be whitespace.
49
-**
50
-** * Text within matching {...} is consider to be a single "string"
51
-** token, even if the text spans multiple lines and includes
52
-** embedded whitespace. The outermost {...} are not part of
53
-** the text of the token.
54
-**
55
-** * A token that begins with "/" is a string token.
56
-**
57
-** * A token that looks like a number is a string token.
58
-**
59
-** * Tokens that do not fall under the previous three rules
60
-** are "verb" tokens.
61
-**
62
-** PROCESSING:
63
-**
64
-** * When a script is processed, the engine reads tokens
65
-** one by one.
66
-**
67
-** * String tokens are pushed onto the stack.
68
-**
69
-** * Verb tokens which correspond to the names of variables
70
-** cause the corresponding variable to be pushed onto the
71
-** stack.
72
-**
73
-** * Verb tokens which correspond to procedures cause the
74
-** procedures to run. The procedures might push or pull
75
-** values from the stack.
76
-**
77
-** There are just a handful of verbs. For the purposes of this
78
-** configuration script, there is only a single verb: "set". The
79
-** "set" verb pops two arguments from the stack. The topmost is
80
-** the name of a variable. The second element is the value. The
81
-** "set" verb sets the value of the named variable.
82
-**
83
-** VALUE NAME set
84
-**
85
-** This configuration file just sets the values of various variables.
86
-** Some of the variables have special meanings. The content of some
87
-** of the variables are additional subscript scripts.
38
+** This file is in the form of a script in TH1 - a minimalist
39
+** TCL clone.
8840
*/
8941
9042
/* @-comment: ** */
9143
const char zDefaultTicketConfig[] =
9244
@ ############################################################################
@@ -95,11 +47,11 @@
9547
@ # tkt_id, tkt_uuid, and tkt_mtime. tkt_id must be the integer primary
9648
@ # key and tkt_uuid and tkt_mtime must be unique. A configuration should
9749
@ # define addition columns as necessary. All columns should be in all
9850
@ # lower-case letters and should not begin with "tkt".
9951
@ #
100
-@ {
52
+@ set ticket_sql {
10153
@ CREATE TABLE ticket(
10254
@ -- Do not change any column that begins with tkt_
10355
@ tkt_id INTEGER PRIMARY KEY,
10456
@ tkt_uuid TEXT,
10557
@ tkt_mtime DATE,
@@ -109,32 +61,33 @@
10961
@ subsystem TEXT,
11062
@ priority TEXT,
11163
@ severity TEXT,
11264
@ foundin TEXT,
11365
@ contact TEXT,
66
+@ resolution TEXT,
11467
@ title TEXT,
11568
@ comment TEXT,
11669
@ -- Do not alter this UNIQUE clause:
11770
@ UNIQUE(tkt_uuid, tkt_mtime)
11871
@ );
11972
@ -- Add indices as desired
120
-@ } /ticket_sql set
73
+@ }
12174
@
12275
@ ############################################################################
12376
@ # You can define additional variables here. These variables will be
12477
@ # accessible to the page templates when they run.
12578
@ #
126
-@ {
79
+@ set type_choices {
12780
@ Code_Defect
12881
@ Build_Problem
12982
@ Documentation
13083
@ Feature_Request
13184
@ Incident
132
-@ } /type_choices set
133
-@ {Immediate High Medium Low Zero} /priority_choices set
134
-@ {Critical Severe Important Minor Cosmetic} /severity_choices set
135
-@ {
85
+@ }
86
+@ set priority_choices {Immediate High Medium Low Zero}
87
+@ set severity_choices {Critical Severe Important Minor Cosmetic}
88
+@ set resolution_choices {
13689
@ Open
13790
@ Fixed
13891
@ Rejected
13992
@ Unable_To_Reproduce
14093
@ Works_As_Designed
@@ -141,68 +94,70 @@
14194
@ External_Bug
14295
@ Not_A_Bug
14396
@ Duplicate
14497
@ Overcome_By_Events
14598
@ Drive_By_Patch
146
-@ } /resolution_choices set
147
-@ {
99
+@ }
100
+@ set status_choices {
148101
@ Open
149102
@ Verified
150103
@ In_Process
151104
@ Deferred
152105
@ Fixed
153106
@ Tested
154107
@ Closed
155
-@ } /status_choices set
156
-@ {one two three} /subsystem_choices set
108
+@ }
109
+@ set subsystem_choices {one two three}
157110
@
158111
@ ##########################################################################
159112
@ # The "tktnew_template" variable is set to text which is a template for
160113
@ # the HTML of the "New Ticket" page. Within this template, text contained
161114
@ # within [...] is subscript. That subscript runs when the page is
162115
@ # rendered.
163116
@ #
164
-@ {
117
+@ set tktnew_template {
165118
@ <!-- load database field names not found in CGI with an empty string -->
166119
@ <!-- start a form -->
167
-@ [{
168
-@ {Open} /status set
169
-@ submit_ticket
170
-@ } /submit exists if]
120
+@ <th1>
121
+@ if {[info exists submit]} {
122
+@ set status Open
123
+@ submit_ticket
124
+@ }
125
+@ </th1>
171126
@ <table cellpadding="5">
172127
@ <tr>
173128
@ <td colspan="2">
174129
@ Enter a one-line summary of the problem:<br>
175
-@ <input type="text" name="title" size="60" value="[{} /title get html]">
130
+@ <input type="text" name="title" size="60" value="$<title>">
176131
@ </td>
177132
@ </tr>
178133
@
179134
@ <tr>
180135
@ <td align="right">Type:
181
-@ [/type type_choices 1 combobox]
136
+@ <th1>combobox type $type_choices 1</th1>
182137
@ </td>
183138
@ <td>What type of ticket is this?</td>
184139
@ </tr>
185140
@
186141
@ <tr>
187142
@ <td align="right">Version:
188
-@ <input type="text" name="foundin" size="20" value="[{} /foundin get html]">
143
+@ <input type="text" name="foundin" size="20" value="$<foundin>">
189144
@ </td>
190145
@ <td>In what version or build number do you observer the problem?</td>
191146
@ </tr>
192147
@
193148
@ <tr>
194149
@ <td align="right">Severity:
195
-@ [/severity severity_choices 1 combobox]
150
+@ <th1>combobox severity $severity_choices 1</th1>
196151
@ </td>
197152
@ <td>How debilitating is the problem? How badly does the problem
198153
@ effect the operation of the product?</td>
199154
@ </tr>
200155
@
201156
@ <tr>
202157
@ <td align="right">EMail:
203
-@ <input type="text" name="contact" value="[{} /contact get html]" size="30">
158
+@ <input type="text" name="contact" value="$<contact>" size="30">
204159
@ </td>
205160
@ <td>Not publically visible. Used by developers to contact you with
206161
@ questions.</td>
207162
@ </tr>
208163
@
@@ -211,23 +166,23 @@
211166
@ Enter a detailed description of the problem.
212167
@ For code defects, be sure to provide details on exactly how
213168
@ the problem can be reproduced. Provide as much detail as
214169
@ possible.
215170
@ <br>
216
-@ <textarea name="comment" cols="80"
217
-@ rows="[{} /comment get linecount 50 max 10 min html]"
218
-@ wrap="virtual" class="wikiedit">[{} /comment get html]</textarea><br>
171
+@ <th1>set nline [linecount $comment 50 10]</th1>
172
+@ <textarea name="comment" cols="80" rows="$nline"
173
+@ wrap="virtual" class="wikiedit">$<comment></textarea><br>
219174
@ <input type="submit" name="preview" value="Preview">
220175
@ </tr>
221176
@
222
-@ [/preview exists enable_output]
177
+@ <th1>enable_output [info exists preview]</th1>
223178
@ <tr><td colspan="2">
224179
@ Description Preview:<br><hr>
225
-@ [{} /comment get wiki]
180
+@ <th1>wiki $comment</th1>
226181
@ <hr>
227182
@ </td></tr>
228
-@ [1 enable_output]
183
+@ <th1>enable_output 1</th1>
229184
@
230185
@ <tr>
231186
@ <td align="right">
232187
@ <input type="submit" name="submit" value="Submit">
233188
@ </td>
@@ -234,136 +189,132 @@
234189
@ <td>After filling in the information above, press this button to create
235190
@ the new ticket</td>
236191
@ </tr>
237192
@ </table>
238193
@ <!-- end of form -->
239
-@ } /tktnew_template set
194
+@ }
240195
@
241196
@ ##########################################################################
242197
@ # The template for the "edit ticket" page
243198
@ #
244199
@ # Then generated text is inserted inside a form which feeds back to itself.
245200
@ # All CGI parameters are loaded into variables. All database files are
246201
@ # loaded into variables if they have not previously been loaded by
247202
@ # CGI parameters.
248
-@ {
249
-@ [
250
-@ login /username get /username set
251
-@ {
252
-@ {
253
-@ username login eq /samename set
254
-@ {
255
-@ "\n\n<hr><i>" login " added on " date ":</i><br>\n"
256
-@ cmappnd 6 concat /comment append_field
257
-@ } samename if
258
-@ {
259
-@ "\n\n<hr><i>" login " claiming to be " username " added on " date
260
-@ "</i><br>\n" cmappnd 8 concat /comment append_field
261
-@ } samename not if
262
-@ } 0 {} /cmappnd get length lt if
203
+@ set tktedit_template {
204
+@ <th1>
205
+@ if {![info exists username]} {set username $login}
206
+@ if {[info exists submit]} {
207
+@ if {[info exists $cmappnd] && [string length $cmappnd]>0} {
208
+@ set ctxt "\n\n<hr><i>"
209
+@ if {$username==$login} {
210
+@ set usr "$ctxt[htmlize $login]"
211
+@ } else {
212
+@ set usr "[htmlize $login claimingn to be [htmlize $username]"
213
+@ }
214
+@ append_field comment \
215
+@ "\n\n<hr><i>$usr added on [date]:</i><br>\n$comment"
216
+@ }
263217
@ submit_ticket
264
-@ } /submit exists if
265
-@ ]
218
+@ }
219
+@ </th1>
266220
@ <table cellpadding="5">
267221
@ <tr><td align="right">Title:</td><td>
268
-@ <input type="text" name="title" value="[title html]" size="60">
222
+@ <input type="text" name="title" value="$<title>" size="60">
269223
@ </td></tr>
270224
@ <tr><td align="right">Status:</td><td>
271
-@ [/status status_choices 1 combobox]
225
+@ <th1>combobox status $status_choices 1</th1>
272226
@ </td></tr>
273227
@ <tr><td align="right">Type:</td><td>
274
-@ [/type type_choices 1 combobox]
228
+@ <th1>combobox type $type_choices 1</th1>
275229
@ </td></tr>
276230
@ <tr><td align="right">Severity:</td><td>
277
-@ [/severity severity_choices 1 combobox]
231
+@ <th1>combobox severity $severity_choices 1</th1>
278232
@ </td></tr>
279233
@ <tr><td align="right">Priority:</td><td>
280
-@ [/priority priority_choices 1 combobox]
234
+@ <th1>combobox priority $priority_choices 1</th1>
281235
@ </td></tr>
282236
@ <tr><td align="right">Resolution:</td><td>
283
-@ [/resolution resolution_choices 1 combobox]
237
+@ <th1>combobox resolution $resolution_choices 1</th1>
284238
@ </td></tr>
285239
@ <tr><td align="right">Subsystem:</td><td>
286
-@ [/subsystem subsystem_choices 1 combobox]
240
+@ <th1>combobox subsystem $subsystem_choices 1</th1>
287241
@ </td></tr>
288
-@ [/e hascap enable_output]
242
+@ <th1>enable_output [hascap e]</th1>
289243
@ <tr><td align="right">Contact:</td><td>
290
-@ <input type="text" name="contact" size="40" value="[contact html]">
244
+@ <input type="text" name="contact" size="40" value="$<contact>">
291245
@ </td></tr>
292
-@ [1 enable_output]
246
+@ <th1>enable_output 1</th1>
293247
@ <tr><td align="right">Version&nbsp;Found&nbsp;In:</td><td>
294
-@ <input type="text" name="foundin" size="50" value="[foundin html]">
248
+@ <input type="text" name="foundin" size="50" value="$<foundin>">
295249
@ </td></tr>
296250
@ <tr><td colspan="2">
297
-@
298
-@ [
299
-@ 0 /eall get /eall set # eall means "edit all". default==no
300
-@ /aonlybtn exists not /eall set # Edit all if no aonlybtn CGI param
301
-@ /eallbtn exists /eall set # Edit all if eallbtn CGI param
302
-@ /w hascap eall and /eall set # WrTkt permission needed to edit all
303
-@ ]
304
-@
305
-@ [eall enable_output]
251
+@ <th1>
252
+@ if {![info exists eall]} {set eall 0}
253
+@ if {[info exists aonlybtn]} {set eall 0}
254
+@ if {[info exists eallbtn]} {set eall 1}
255
+@ if {![hascap w]} {set eall 0}
256
+@ if {![info exists cmappnd]} {set cmappnd {}}
257
+@ set nline [linecount $comment 15 10]
258
+@ enable_output $eall
259
+@ </th1>
306260
@ Description And Comments:<br>
307
-@ <textarea name="comment" cols="80"
308
-@ rows="[{} /comment get linecount 15 max 10 min html]"
309
-@ wrap="virtual" class="wikiedit">[comment html]</textarea><br>
261
+@ <textarea name="comment" cols="80" rows="$nline"
262
+@ wrap="virtual" class="wikiedit">$<comment></textarea><br>
310263
@ <input type="hidden" name="eall" value="1">
311264
@ <input type="submit" name="aonlybtn" value="Append Remark">
312
-@
313
-@ [eall not enable_output]
265
+@ <th1>enable_output [expr {!$eall}]</th1>
314266
@ Append Remark from
315
-@ <input type="text" name="username" value="[username html]" size="30">:<br>
267
+@ <input type="text" name="username" value="$<username>" size="30">:<br>
316268
@ <textarea name="cmappnd" cols="80" rows="15"
317
-@ wrap="virtual" class="wikiedit">[{} /cmappnd get html]</textarea><br>
318
-@ [/w hascap eall not and enable_output]
269
+@ wrap="virtual" class="wikiedit">$<cmappnd></textarea><br>
270
+@ <th1>enable_output [expr {[hascap w] && !$eall}]</th1>
319271
@ <input type="submit" name="eallbtn" value="Edit All">
320
-@
321
-@ [1 enable_output]
272
+@ <th1>enable_output 1</th1>
322273
@ </td></tr>
323274
@ <tr><td align="right"></td><td>
324275
@ <input type="submit" name="submit" value="Submit Changes">
325276
@ </td></tr>
326277
@ </table>
327
-@ } /tktedit_template set
278
+@ }
328279
@
329280
@ ##########################################################################
330281
@ # The template for the "view ticket" page
331
-@ {
282
+@ set tktview_template {
332283
@ <!-- load database fields automatically loaded into variables -->
333284
@ <table cellpadding="5">
334285
@ <tr><td align="right">Title:</td><td>
335
-@ [title html]
286
+@ $<title>
336287
@ </td></tr>
337288
@ <tr><td align="right">Status:</td><td>
338
-@ [status html]
289
+@ $<status>
339290
@ </td></tr>
340291
@ <tr><td align="right">Type:</td><td>
341
-@ [type html]
292
+@ $<type>
342293
@ </td></tr>
343294
@ <tr><td align="right">Severity:</td><td>
344
-@ [severity html]
295
+@ $<severity>
345296
@ </td></tr>
346297
@ <tr><td align="right">Priority:</td><td>
347
-@ [priority html]
298
+@ $<priority>
348299
@ </td></tr>
349300
@ <tr><td align="right">Resolution:</td><td>
350
-@ [priority html]
301
+@ $<resolution>
351302
@ </td></tr>
352303
@ <tr><td align="right">Subsystem:</td><td>
353
-@ [subsystem html]
304
+@ $<subsystem>
354305
@ </td></tr>
355
-@ [{e} hascap enable_output]
306
+@ <th1>enable_output [hascap e]</th1>
356307
@ <tr><td align="right">Contact:</td><td>
357
-@ [contact html]
308
+@ $<contact>
358309
@ </td></tr>
359
-@ [1 enable_output]
310
+@ <th1>enable_output 1</th1>
360311
@ <tr><td align="right">Version&nbsp;Found&nbsp;In:</td><td>
361
-@ [foundin html]
312
+@ $<foundin>
362313
@ </td></tr>
363314
@ <tr><td colspan="2">
364315
@ Description And Comments:<br>
365
-@ [comment wiki]
316
+@ <th1>wiki $comment</th1>
366317
@ </td></tr>
367318
@ </table>
368
-@ } /tktview_template set
319
+@ }
369320
;
370321
--- src/tktconfig.c
+++ src/tktconfig.c
@@ -33,60 +33,12 @@
33 ** There is considerable flexibility in how tickets are defined
34 ** in fossil. Each repository can define its own ticket setup
35 ** differently. Each repository has an instance of a file, like
36 ** this one that defines how that repository deals with tickets.
37 **
38 ** This file is in the form of a script in an exceedingly
39 ** minimalist scripting language called "subscript". Here are
40 ** the rules:
41 **
42 ** SYNTAX
43 **
44 ** * The script consists of a sequence of whitespace
45 ** separated tokens. Whitespace is ignored, except
46 ** as its role as a token separator.
47 **
48 ** * Lines that begin with '#' are considered to be whitespace.
49 **
50 ** * Text within matching {...} is consider to be a single "string"
51 ** token, even if the text spans multiple lines and includes
52 ** embedded whitespace. The outermost {...} are not part of
53 ** the text of the token.
54 **
55 ** * A token that begins with "/" is a string token.
56 **
57 ** * A token that looks like a number is a string token.
58 **
59 ** * Tokens that do not fall under the previous three rules
60 ** are "verb" tokens.
61 **
62 ** PROCESSING:
63 **
64 ** * When a script is processed, the engine reads tokens
65 ** one by one.
66 **
67 ** * String tokens are pushed onto the stack.
68 **
69 ** * Verb tokens which correspond to the names of variables
70 ** cause the corresponding variable to be pushed onto the
71 ** stack.
72 **
73 ** * Verb tokens which correspond to procedures cause the
74 ** procedures to run. The procedures might push or pull
75 ** values from the stack.
76 **
77 ** There are just a handful of verbs. For the purposes of this
78 ** configuration script, there is only a single verb: "set". The
79 ** "set" verb pops two arguments from the stack. The topmost is
80 ** the name of a variable. The second element is the value. The
81 ** "set" verb sets the value of the named variable.
82 **
83 ** VALUE NAME set
84 **
85 ** This configuration file just sets the values of various variables.
86 ** Some of the variables have special meanings. The content of some
87 ** of the variables are additional subscript scripts.
88 */
89
90 /* @-comment: ** */
91 const char zDefaultTicketConfig[] =
92 @ ############################################################################
@@ -95,11 +47,11 @@
95 @ # tkt_id, tkt_uuid, and tkt_mtime. tkt_id must be the integer primary
96 @ # key and tkt_uuid and tkt_mtime must be unique. A configuration should
97 @ # define addition columns as necessary. All columns should be in all
98 @ # lower-case letters and should not begin with "tkt".
99 @ #
100 @ {
101 @ CREATE TABLE ticket(
102 @ -- Do not change any column that begins with tkt_
103 @ tkt_id INTEGER PRIMARY KEY,
104 @ tkt_uuid TEXT,
105 @ tkt_mtime DATE,
@@ -109,32 +61,33 @@
109 @ subsystem TEXT,
110 @ priority TEXT,
111 @ severity TEXT,
112 @ foundin TEXT,
113 @ contact TEXT,
 
114 @ title TEXT,
115 @ comment TEXT,
116 @ -- Do not alter this UNIQUE clause:
117 @ UNIQUE(tkt_uuid, tkt_mtime)
118 @ );
119 @ -- Add indices as desired
120 @ } /ticket_sql set
121 @
122 @ ############################################################################
123 @ # You can define additional variables here. These variables will be
124 @ # accessible to the page templates when they run.
125 @ #
126 @ {
127 @ Code_Defect
128 @ Build_Problem
129 @ Documentation
130 @ Feature_Request
131 @ Incident
132 @ } /type_choices set
133 @ {Immediate High Medium Low Zero} /priority_choices set
134 @ {Critical Severe Important Minor Cosmetic} /severity_choices set
135 @ {
136 @ Open
137 @ Fixed
138 @ Rejected
139 @ Unable_To_Reproduce
140 @ Works_As_Designed
@@ -141,68 +94,70 @@
141 @ External_Bug
142 @ Not_A_Bug
143 @ Duplicate
144 @ Overcome_By_Events
145 @ Drive_By_Patch
146 @ } /resolution_choices set
147 @ {
148 @ Open
149 @ Verified
150 @ In_Process
151 @ Deferred
152 @ Fixed
153 @ Tested
154 @ Closed
155 @ } /status_choices set
156 @ {one two three} /subsystem_choices set
157 @
158 @ ##########################################################################
159 @ # The "tktnew_template" variable is set to text which is a template for
160 @ # the HTML of the "New Ticket" page. Within this template, text contained
161 @ # within [...] is subscript. That subscript runs when the page is
162 @ # rendered.
163 @ #
164 @ {
165 @ <!-- load database field names not found in CGI with an empty string -->
166 @ <!-- start a form -->
167 @ [{
168 @ {Open} /status set
169 @ submit_ticket
170 @ } /submit exists if]
 
 
171 @ <table cellpadding="5">
172 @ <tr>
173 @ <td colspan="2">
174 @ Enter a one-line summary of the problem:<br>
175 @ <input type="text" name="title" size="60" value="[{} /title get html]">
176 @ </td>
177 @ </tr>
178 @
179 @ <tr>
180 @ <td align="right">Type:
181 @ [/type type_choices 1 combobox]
182 @ </td>
183 @ <td>What type of ticket is this?</td>
184 @ </tr>
185 @
186 @ <tr>
187 @ <td align="right">Version:
188 @ <input type="text" name="foundin" size="20" value="[{} /foundin get html]">
189 @ </td>
190 @ <td>In what version or build number do you observer the problem?</td>
191 @ </tr>
192 @
193 @ <tr>
194 @ <td align="right">Severity:
195 @ [/severity severity_choices 1 combobox]
196 @ </td>
197 @ <td>How debilitating is the problem? How badly does the problem
198 @ effect the operation of the product?</td>
199 @ </tr>
200 @
201 @ <tr>
202 @ <td align="right">EMail:
203 @ <input type="text" name="contact" value="[{} /contact get html]" size="30">
204 @ </td>
205 @ <td>Not publically visible. Used by developers to contact you with
206 @ questions.</td>
207 @ </tr>
208 @
@@ -211,23 +166,23 @@
211 @ Enter a detailed description of the problem.
212 @ For code defects, be sure to provide details on exactly how
213 @ the problem can be reproduced. Provide as much detail as
214 @ possible.
215 @ <br>
216 @ <textarea name="comment" cols="80"
217 @ rows="[{} /comment get linecount 50 max 10 min html]"
218 @ wrap="virtual" class="wikiedit">[{} /comment get html]</textarea><br>
219 @ <input type="submit" name="preview" value="Preview">
220 @ </tr>
221 @
222 @ [/preview exists enable_output]
223 @ <tr><td colspan="2">
224 @ Description Preview:<br><hr>
225 @ [{} /comment get wiki]
226 @ <hr>
227 @ </td></tr>
228 @ [1 enable_output]
229 @
230 @ <tr>
231 @ <td align="right">
232 @ <input type="submit" name="submit" value="Submit">
233 @ </td>
@@ -234,136 +189,132 @@
234 @ <td>After filling in the information above, press this button to create
235 @ the new ticket</td>
236 @ </tr>
237 @ </table>
238 @ <!-- end of form -->
239 @ } /tktnew_template set
240 @
241 @ ##########################################################################
242 @ # The template for the "edit ticket" page
243 @ #
244 @ # Then generated text is inserted inside a form which feeds back to itself.
245 @ # All CGI parameters are loaded into variables. All database files are
246 @ # loaded into variables if they have not previously been loaded by
247 @ # CGI parameters.
248 @ {
249 @ [
250 @ login /username get /username set
251 @ {
252 @ {
253 @ username login eq /samename set
254 @ {
255 @ "\n\n<hr><i>" login " added on " date ":</i><br>\n"
256 @ cmappnd 6 concat /comment append_field
257 @ } samename if
258 @ {
259 @ "\n\n<hr><i>" login " claiming to be " username " added on " date
260 @ "</i><br>\n" cmappnd 8 concat /comment append_field
261 @ } samename not if
262 @ } 0 {} /cmappnd get length lt if
263 @ submit_ticket
264 @ } /submit exists if
265 @ ]
266 @ <table cellpadding="5">
267 @ <tr><td align="right">Title:</td><td>
268 @ <input type="text" name="title" value="[title html]" size="60">
269 @ </td></tr>
270 @ <tr><td align="right">Status:</td><td>
271 @ [/status status_choices 1 combobox]
272 @ </td></tr>
273 @ <tr><td align="right">Type:</td><td>
274 @ [/type type_choices 1 combobox]
275 @ </td></tr>
276 @ <tr><td align="right">Severity:</td><td>
277 @ [/severity severity_choices 1 combobox]
278 @ </td></tr>
279 @ <tr><td align="right">Priority:</td><td>
280 @ [/priority priority_choices 1 combobox]
281 @ </td></tr>
282 @ <tr><td align="right">Resolution:</td><td>
283 @ [/resolution resolution_choices 1 combobox]
284 @ </td></tr>
285 @ <tr><td align="right">Subsystem:</td><td>
286 @ [/subsystem subsystem_choices 1 combobox]
287 @ </td></tr>
288 @ [/e hascap enable_output]
289 @ <tr><td align="right">Contact:</td><td>
290 @ <input type="text" name="contact" size="40" value="[contact html]">
291 @ </td></tr>
292 @ [1 enable_output]
293 @ <tr><td align="right">Version&nbsp;Found&nbsp;In:</td><td>
294 @ <input type="text" name="foundin" size="50" value="[foundin html]">
295 @ </td></tr>
296 @ <tr><td colspan="2">
297 @
298 @ [
299 @ 0 /eall get /eall set # eall means "edit all". default==no
300 @ /aonlybtn exists not /eall set # Edit all if no aonlybtn CGI param
301 @ /eallbtn exists /eall set # Edit all if eallbtn CGI param
302 @ /w hascap eall and /eall set # WrTkt permission needed to edit all
303 @ ]
304 @
305 @ [eall enable_output]
306 @ Description And Comments:<br>
307 @ <textarea name="comment" cols="80"
308 @ rows="[{} /comment get linecount 15 max 10 min html]"
309 @ wrap="virtual" class="wikiedit">[comment html]</textarea><br>
310 @ <input type="hidden" name="eall" value="1">
311 @ <input type="submit" name="aonlybtn" value="Append Remark">
312 @
313 @ [eall not enable_output]
314 @ Append Remark from
315 @ <input type="text" name="username" value="[username html]" size="30">:<br>
316 @ <textarea name="cmappnd" cols="80" rows="15"
317 @ wrap="virtual" class="wikiedit">[{} /cmappnd get html]</textarea><br>
318 @ [/w hascap eall not and enable_output]
319 @ <input type="submit" name="eallbtn" value="Edit All">
320 @
321 @ [1 enable_output]
322 @ </td></tr>
323 @ <tr><td align="right"></td><td>
324 @ <input type="submit" name="submit" value="Submit Changes">
325 @ </td></tr>
326 @ </table>
327 @ } /tktedit_template set
328 @
329 @ ##########################################################################
330 @ # The template for the "view ticket" page
331 @ {
332 @ <!-- load database fields automatically loaded into variables -->
333 @ <table cellpadding="5">
334 @ <tr><td align="right">Title:</td><td>
335 @ [title html]
336 @ </td></tr>
337 @ <tr><td align="right">Status:</td><td>
338 @ [status html]
339 @ </td></tr>
340 @ <tr><td align="right">Type:</td><td>
341 @ [type html]
342 @ </td></tr>
343 @ <tr><td align="right">Severity:</td><td>
344 @ [severity html]
345 @ </td></tr>
346 @ <tr><td align="right">Priority:</td><td>
347 @ [priority html]
348 @ </td></tr>
349 @ <tr><td align="right">Resolution:</td><td>
350 @ [priority html]
351 @ </td></tr>
352 @ <tr><td align="right">Subsystem:</td><td>
353 @ [subsystem html]
354 @ </td></tr>
355 @ [{e} hascap enable_output]
356 @ <tr><td align="right">Contact:</td><td>
357 @ [contact html]
358 @ </td></tr>
359 @ [1 enable_output]
360 @ <tr><td align="right">Version&nbsp;Found&nbsp;In:</td><td>
361 @ [foundin html]
362 @ </td></tr>
363 @ <tr><td colspan="2">
364 @ Description And Comments:<br>
365 @ [comment wiki]
366 @ </td></tr>
367 @ </table>
368 @ } /tktview_template set
369 ;
370
--- src/tktconfig.c
+++ src/tktconfig.c
@@ -33,60 +33,12 @@
33 ** There is considerable flexibility in how tickets are defined
34 ** in fossil. Each repository can define its own ticket setup
35 ** differently. Each repository has an instance of a file, like
36 ** this one that defines how that repository deals with tickets.
37 **
38 ** This file is in the form of a script in TH1 - a minimalist
39 ** TCL clone.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
40 */
41
42 /* @-comment: ** */
43 const char zDefaultTicketConfig[] =
44 @ ############################################################################
@@ -95,11 +47,11 @@
47 @ # tkt_id, tkt_uuid, and tkt_mtime. tkt_id must be the integer primary
48 @ # key and tkt_uuid and tkt_mtime must be unique. A configuration should
49 @ # define addition columns as necessary. All columns should be in all
50 @ # lower-case letters and should not begin with "tkt".
51 @ #
52 @ set ticket_sql {
53 @ CREATE TABLE ticket(
54 @ -- Do not change any column that begins with tkt_
55 @ tkt_id INTEGER PRIMARY KEY,
56 @ tkt_uuid TEXT,
57 @ tkt_mtime DATE,
@@ -109,32 +61,33 @@
61 @ subsystem TEXT,
62 @ priority TEXT,
63 @ severity TEXT,
64 @ foundin TEXT,
65 @ contact TEXT,
66 @ resolution TEXT,
67 @ title TEXT,
68 @ comment TEXT,
69 @ -- Do not alter this UNIQUE clause:
70 @ UNIQUE(tkt_uuid, tkt_mtime)
71 @ );
72 @ -- Add indices as desired
73 @ }
74 @
75 @ ############################################################################
76 @ # You can define additional variables here. These variables will be
77 @ # accessible to the page templates when they run.
78 @ #
79 @ set type_choices {
80 @ Code_Defect
81 @ Build_Problem
82 @ Documentation
83 @ Feature_Request
84 @ Incident
85 @ }
86 @ set priority_choices {Immediate High Medium Low Zero}
87 @ set severity_choices {Critical Severe Important Minor Cosmetic}
88 @ set resolution_choices {
89 @ Open
90 @ Fixed
91 @ Rejected
92 @ Unable_To_Reproduce
93 @ Works_As_Designed
@@ -141,68 +94,70 @@
94 @ External_Bug
95 @ Not_A_Bug
96 @ Duplicate
97 @ Overcome_By_Events
98 @ Drive_By_Patch
99 @ }
100 @ set status_choices {
101 @ Open
102 @ Verified
103 @ In_Process
104 @ Deferred
105 @ Fixed
106 @ Tested
107 @ Closed
108 @ }
109 @ set subsystem_choices {one two three}
110 @
111 @ ##########################################################################
112 @ # The "tktnew_template" variable is set to text which is a template for
113 @ # the HTML of the "New Ticket" page. Within this template, text contained
114 @ # within [...] is subscript. That subscript runs when the page is
115 @ # rendered.
116 @ #
117 @ set tktnew_template {
118 @ <!-- load database field names not found in CGI with an empty string -->
119 @ <!-- start a form -->
120 @ <th1>
121 @ if {[info exists submit]} {
122 @ set status Open
123 @ submit_ticket
124 @ }
125 @ </th1>
126 @ <table cellpadding="5">
127 @ <tr>
128 @ <td colspan="2">
129 @ Enter a one-line summary of the problem:<br>
130 @ <input type="text" name="title" size="60" value="$<title>">
131 @ </td>
132 @ </tr>
133 @
134 @ <tr>
135 @ <td align="right">Type:
136 @ <th1>combobox type $type_choices 1</th1>
137 @ </td>
138 @ <td>What type of ticket is this?</td>
139 @ </tr>
140 @
141 @ <tr>
142 @ <td align="right">Version:
143 @ <input type="text" name="foundin" size="20" value="$<foundin>">
144 @ </td>
145 @ <td>In what version or build number do you observer the problem?</td>
146 @ </tr>
147 @
148 @ <tr>
149 @ <td align="right">Severity:
150 @ <th1>combobox severity $severity_choices 1</th1>
151 @ </td>
152 @ <td>How debilitating is the problem? How badly does the problem
153 @ effect the operation of the product?</td>
154 @ </tr>
155 @
156 @ <tr>
157 @ <td align="right">EMail:
158 @ <input type="text" name="contact" value="$<contact>" size="30">
159 @ </td>
160 @ <td>Not publically visible. Used by developers to contact you with
161 @ questions.</td>
162 @ </tr>
163 @
@@ -211,23 +166,23 @@
166 @ Enter a detailed description of the problem.
167 @ For code defects, be sure to provide details on exactly how
168 @ the problem can be reproduced. Provide as much detail as
169 @ possible.
170 @ <br>
171 @ <th1>set nline [linecount $comment 50 10]</th1>
172 @ <textarea name="comment" cols="80" rows="$nline"
173 @ wrap="virtual" class="wikiedit">$<comment></textarea><br>
174 @ <input type="submit" name="preview" value="Preview">
175 @ </tr>
176 @
177 @ <th1>enable_output [info exists preview]</th1>
178 @ <tr><td colspan="2">
179 @ Description Preview:<br><hr>
180 @ <th1>wiki $comment</th1>
181 @ <hr>
182 @ </td></tr>
183 @ <th1>enable_output 1</th1>
184 @
185 @ <tr>
186 @ <td align="right">
187 @ <input type="submit" name="submit" value="Submit">
188 @ </td>
@@ -234,136 +189,132 @@
189 @ <td>After filling in the information above, press this button to create
190 @ the new ticket</td>
191 @ </tr>
192 @ </table>
193 @ <!-- end of form -->
194 @ }
195 @
196 @ ##########################################################################
197 @ # The template for the "edit ticket" page
198 @ #
199 @ # Then generated text is inserted inside a form which feeds back to itself.
200 @ # All CGI parameters are loaded into variables. All database files are
201 @ # loaded into variables if they have not previously been loaded by
202 @ # CGI parameters.
203 @ set tktedit_template {
204 @ <th1>
205 @ if {![info exists username]} {set username $login}
206 @ if {[info exists submit]} {
207 @ if {[info exists $cmappnd] && [string length $cmappnd]>0} {
208 @ set ctxt "\n\n<hr><i>"
209 @ if {$username==$login} {
210 @ set usr "$ctxt[htmlize $login]"
211 @ } else {
212 @ set usr "[htmlize $login claimingn to be [htmlize $username]"
213 @ }
214 @ append_field comment \
215 @ "\n\n<hr><i>$usr added on [date]:</i><br>\n$comment"
216 @ }
 
217 @ submit_ticket
218 @ }
219 @ </th1>
220 @ <table cellpadding="5">
221 @ <tr><td align="right">Title:</td><td>
222 @ <input type="text" name="title" value="$<title>" size="60">
223 @ </td></tr>
224 @ <tr><td align="right">Status:</td><td>
225 @ <th1>combobox status $status_choices 1</th1>
226 @ </td></tr>
227 @ <tr><td align="right">Type:</td><td>
228 @ <th1>combobox type $type_choices 1</th1>
229 @ </td></tr>
230 @ <tr><td align="right">Severity:</td><td>
231 @ <th1>combobox severity $severity_choices 1</th1>
232 @ </td></tr>
233 @ <tr><td align="right">Priority:</td><td>
234 @ <th1>combobox priority $priority_choices 1</th1>
235 @ </td></tr>
236 @ <tr><td align="right">Resolution:</td><td>
237 @ <th1>combobox resolution $resolution_choices 1</th1>
238 @ </td></tr>
239 @ <tr><td align="right">Subsystem:</td><td>
240 @ <th1>combobox subsystem $subsystem_choices 1</th1>
241 @ </td></tr>
242 @ <th1>enable_output [hascap e]</th1>
243 @ <tr><td align="right">Contact:</td><td>
244 @ <input type="text" name="contact" size="40" value="$<contact>">
245 @ </td></tr>
246 @ <th1>enable_output 1</th1>
247 @ <tr><td align="right">Version&nbsp;Found&nbsp;In:</td><td>
248 @ <input type="text" name="foundin" size="50" value="$<foundin>">
249 @ </td></tr>
250 @ <tr><td colspan="2">
251 @ <th1>
252 @ if {![info exists eall]} {set eall 0}
253 @ if {[info exists aonlybtn]} {set eall 0}
254 @ if {[info exists eallbtn]} {set eall 1}
255 @ if {![hascap w]} {set eall 0}
256 @ if {![info exists cmappnd]} {set cmappnd {}}
257 @ set nline [linecount $comment 15 10]
258 @ enable_output $eall
259 @ </th1>
260 @ Description And Comments:<br>
261 @ <textarea name="comment" cols="80" rows="$nline"
262 @ wrap="virtual" class="wikiedit">$<comment></textarea><br>
 
263 @ <input type="hidden" name="eall" value="1">
264 @ <input type="submit" name="aonlybtn" value="Append Remark">
265 @ <th1>enable_output [expr {!$eall}]</th1>
 
266 @ Append Remark from
267 @ <input type="text" name="username" value="$<username>" size="30">:<br>
268 @ <textarea name="cmappnd" cols="80" rows="15"
269 @ wrap="virtual" class="wikiedit">$<cmappnd></textarea><br>
270 @ <th1>enable_output [expr {[hascap w] && !$eall}]</th1>
271 @ <input type="submit" name="eallbtn" value="Edit All">
272 @ <th1>enable_output 1</th1>
 
273 @ </td></tr>
274 @ <tr><td align="right"></td><td>
275 @ <input type="submit" name="submit" value="Submit Changes">
276 @ </td></tr>
277 @ </table>
278 @ }
279 @
280 @ ##########################################################################
281 @ # The template for the "view ticket" page
282 @ set tktview_template {
283 @ <!-- load database fields automatically loaded into variables -->
284 @ <table cellpadding="5">
285 @ <tr><td align="right">Title:</td><td>
286 @ $<title>
287 @ </td></tr>
288 @ <tr><td align="right">Status:</td><td>
289 @ $<status>
290 @ </td></tr>
291 @ <tr><td align="right">Type:</td><td>
292 @ $<type>
293 @ </td></tr>
294 @ <tr><td align="right">Severity:</td><td>
295 @ $<severity>
296 @ </td></tr>
297 @ <tr><td align="right">Priority:</td><td>
298 @ $<priority>
299 @ </td></tr>
300 @ <tr><td align="right">Resolution:</td><td>
301 @ $<resolution>
302 @ </td></tr>
303 @ <tr><td align="right">Subsystem:</td><td>
304 @ $<subsystem>
305 @ </td></tr>
306 @ <th1>enable_output [hascap e]</th1>
307 @ <tr><td align="right">Contact:</td><td>
308 @ $<contact>
309 @ </td></tr>
310 @ <th1>enable_output 1</th1>
311 @ <tr><td align="right">Version&nbsp;Found&nbsp;In:</td><td>
312 @ $<foundin>
313 @ </td></tr>
314 @ <tr><td colspan="2">
315 @ Description And Comments:<br>
316 @ <th1>wiki $comment</th1>
317 @ </td></tr>
318 @ </table>
319 @ }
320 ;
321
--- src/update.c
+++ src/update.c
@@ -67,17 +67,10 @@
6767
fossil_fatal("cannot find current version");
6868
}
6969
if( db_exists("SELECT 1 FROM vmerge") ){
7070
fossil_fatal("cannot update an uncommitted merge");
7171
}
72
-#if 0
73
- /* Always do the update. If it does not work out, the user can back out
74
- ** the changes using "undo" */
75
- if( !forceFlag && unsaved_changes() ){
76
- fossil_fatal("uncommitted changes; use -f or --force to override");
77
- }
78
-#endif
7972
8073
if( g.argc==3 ){
8174
tid = name_to_rid(g.argv[2]);
8275
if( tid==0 ){
8376
fossil_fatal("not a version: %s", g.argv[2]);
8477
--- src/update.c
+++ src/update.c
@@ -67,17 +67,10 @@
67 fossil_fatal("cannot find current version");
68 }
69 if( db_exists("SELECT 1 FROM vmerge") ){
70 fossil_fatal("cannot update an uncommitted merge");
71 }
72 #if 0
73 /* Always do the update. If it does not work out, the user can back out
74 ** the changes using "undo" */
75 if( !forceFlag && unsaved_changes() ){
76 fossil_fatal("uncommitted changes; use -f or --force to override");
77 }
78 #endif
79
80 if( g.argc==3 ){
81 tid = name_to_rid(g.argv[2]);
82 if( tid==0 ){
83 fossil_fatal("not a version: %s", g.argv[2]);
84
--- src/update.c
+++ src/update.c
@@ -67,17 +67,10 @@
67 fossil_fatal("cannot find current version");
68 }
69 if( db_exists("SELECT 1 FROM vmerge") ){
70 fossil_fatal("cannot update an uncommitted merge");
71 }
 
 
 
 
 
 
 
72
73 if( g.argc==3 ){
74 tid = name_to_rid(g.argv[2]);
75 if( tid==0 ){
76 fossil_fatal("not a version: %s", g.argv[2]);
77
+1
--- src/zip.c
+++ src/zip.c
@@ -372,9 +372,10 @@
372372
@ Not found
373373
return;
374374
}
375375
if( nName>10 ) zName[10] = 0;
376376
zip_of_baseline(rid, &zip, zName);
377
+ free( zName );
377378
cgi_set_content(&zip);
378379
cgi_set_content_type("application/zip");
379380
cgi_reply();
380381
}
381382
--- src/zip.c
+++ src/zip.c
@@ -372,9 +372,10 @@
372 @ Not found
373 return;
374 }
375 if( nName>10 ) zName[10] = 0;
376 zip_of_baseline(rid, &zip, zName);
 
377 cgi_set_content(&zip);
378 cgi_set_content_type("application/zip");
379 cgi_reply();
380 }
381
--- src/zip.c
+++ src/zip.c
@@ -372,9 +372,10 @@
372 @ Not found
373 return;
374 }
375 if( nName>10 ) zName[10] = 0;
376 zip_of_baseline(rid, &zip, zName);
377 free( zName );
378 cgi_set_content(&zip);
379 cgi_set_content_type("application/zip");
380 cgi_reply();
381 }
382
--- www/fileformat.html
+++ www/fileformat.html
@@ -9,11 +9,11 @@
99
Fossil File Formats
1010
</h1>
1111
1212
<p>
1313
The global state of a fossil repository is determined by an unordered
14
-set of files. A file in fossil is called an "artifact".
14
+set of artifacts.
1515
An artifact might be a source code file, the text of a wiki page,
1616
part of a trouble ticket, or one of several special control artifacts
1717
used to show the relationships between other artifacts within the
1818
project. Artifacts can be text or binary.
1919
</p>
2020
--- www/fileformat.html
+++ www/fileformat.html
@@ -9,11 +9,11 @@
9 Fossil File Formats
10 </h1>
11
12 <p>
13 The global state of a fossil repository is determined by an unordered
14 set of files. A file in fossil is called an "artifact".
15 An artifact might be a source code file, the text of a wiki page,
16 part of a trouble ticket, or one of several special control artifacts
17 used to show the relationships between other artifacts within the
18 project. Artifacts can be text or binary.
19 </p>
20
--- www/fileformat.html
+++ www/fileformat.html
@@ -9,11 +9,11 @@
9 Fossil File Formats
10 </h1>
11
12 <p>
13 The global state of a fossil repository is determined by an unordered
14 set of artifacts.
15 An artifact might be a source code file, the text of a wiki page,
16 part of a trouble ticket, or one of several special control artifacts
17 used to show the relationships between other artifacts within the
18 project. Artifacts can be text or binary.
19 </p>
20
+14 -1
--- www/index.html
+++ www/index.html
@@ -18,11 +18,11 @@
1818
<p>Design Goals For Fossil:</p>
1919
2020
<ul>
2121
<li>Supports disconnected, distributed development (like
2222
<a href="http://kerneltrap.org/node/4982">git</a>,
23
-<a href="http://www.venge.net/monotone/">monotone</a>,
23
+<a href="http://www.monotone.ca/">monotone</a>,
2424
<a href="http://www.selenic.com/mercurial/wiki/index.cgi">mercurial</a>, or
2525
<a href="http://www.bitkeeper.com/">bitkeeper</a>)
2626
or client/server operation (like
2727
<a href="http://www.nongnu.org/cvs/">CVS</a> or
2828
<a href="http://subversion.tigris.org/">subversion</a>)
@@ -96,8 +96,21 @@
9696
<li>There is a <a href="http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users">
9797
mailing list</a> available for discussing fossil issues.</li>
9898
<li>The <a href="http://www.fossil-scm.org/fossil/wiki">self-hosting
9999
fossil wiki</a>.
100100
</ul>
101
+
102
+<p>Competing Projects:</p>
103
+
104
+<ul>
105
+<li><a href="http://www.ditrack.org/">DITrace</a>
106
+ - A Distributed Issue Tracker</li>
107
+<li><a href="http://www.distract.wellquite.org/">DisTract</a>
108
+ - Another distributed issue tracker based on
109
+ <a href="http://www.monotone.ca/">monotone</a>.
110
+<li><a href="http://www.monotone.ca/">Monotone</a> - distributed
111
+ SCM in a single-file executable with a single-file SQLite
112
+ database repository.</li>
113
+</ul>
101114
102115
</body>
103116
</html>
104117
--- www/index.html
+++ www/index.html
@@ -18,11 +18,11 @@
18 <p>Design Goals For Fossil:</p>
19
20 <ul>
21 <li>Supports disconnected, distributed development (like
22 <a href="http://kerneltrap.org/node/4982">git</a>,
23 <a href="http://www.venge.net/monotone/">monotone</a>,
24 <a href="http://www.selenic.com/mercurial/wiki/index.cgi">mercurial</a>, or
25 <a href="http://www.bitkeeper.com/">bitkeeper</a>)
26 or client/server operation (like
27 <a href="http://www.nongnu.org/cvs/">CVS</a> or
28 <a href="http://subversion.tigris.org/">subversion</a>)
@@ -96,8 +96,21 @@
96 <li>There is a <a href="http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users">
97 mailing list</a> available for discussing fossil issues.</li>
98 <li>The <a href="http://www.fossil-scm.org/fossil/wiki">self-hosting
99 fossil wiki</a>.
100 </ul>
 
 
 
 
 
 
 
 
 
 
 
 
 
101
102 </body>
103 </html>
104
--- www/index.html
+++ www/index.html
@@ -18,11 +18,11 @@
18 <p>Design Goals For Fossil:</p>
19
20 <ul>
21 <li>Supports disconnected, distributed development (like
22 <a href="http://kerneltrap.org/node/4982">git</a>,
23 <a href="http://www.monotone.ca/">monotone</a>,
24 <a href="http://www.selenic.com/mercurial/wiki/index.cgi">mercurial</a>, or
25 <a href="http://www.bitkeeper.com/">bitkeeper</a>)
26 or client/server operation (like
27 <a href="http://www.nongnu.org/cvs/">CVS</a> or
28 <a href="http://subversion.tigris.org/">subversion</a>)
@@ -96,8 +96,21 @@
96 <li>There is a <a href="http://lists.fossil-scm.org:8080/cgi-bin/mailman/listinfo/fossil-users">
97 mailing list</a> available for discussing fossil issues.</li>
98 <li>The <a href="http://www.fossil-scm.org/fossil/wiki">self-hosting
99 fossil wiki</a>.
100 </ul>
101
102 <p>Competing Projects:</p>
103
104 <ul>
105 <li><a href="http://www.ditrack.org/">DITrace</a>
106 - A Distributed Issue Tracker</li>
107 <li><a href="http://www.distract.wellquite.org/">DisTract</a>
108 - Another distributed issue tracker based on
109 <a href="http://www.monotone.ca/">monotone</a>.
110 <li><a href="http://www.monotone.ca/">Monotone</a> - distributed
111 SCM in a single-file executable with a single-file SQLite
112 database repository.</li>
113 </ul>
114
115 </body>
116 </html>
117
+21 -20
--- www/pop.html
+++ www/pop.html
@@ -12,12 +12,13 @@
1212
which Fossil is built.
1313
</p>
1414
1515
<ul>
1616
<li><p>A project consists of source files, wiki pages, and
17
-trouble tickets. All historical copies of all these
18
-entities are saved. The project maintains an audit
17
+trouble tickets, and control files (collectively "artifacts").
18
+All historical copies of all artifacts
19
+are saved. The project maintains an audit
1920
trail.</p></li>
2021
2122
<li><p>A project resides in one or more repositories. Each
2223
repository is administered and operates independently
2324
of the others.</p></li>
@@ -30,49 +31,49 @@
3031
The global state represents the content of the project.
3132
The local state identifies the authorized users and
3233
access policies for a particular repository.</p></li>
3334
3435
<li><p>The global state of a repository is an unordered
35
-collection of files. Each file is named by
36
-its SHA1 hash encoded in hexadecimal.
36
+collection of artifacts. Each artifact is named by
37
+its SHA1 hash encoded in lowercase hexadecimal.
3738
In many contexts, the name can be
3839
abbreviated to a unique prefix. A five- or six-character
3940
prefix usually suffices to uniquely identify a file.</p></li>
4041
41
-<li><p>Because files are named by their SHA1 hash, all files
42
-are immutable. Any change to the content of a file also
43
-changes the hash that forms the files name, thus
44
-creating a new file. Both the old original version of the
45
-file and the new change are preserved under different names.</p></li>
42
+<li><p>Because artifacts are named by their SHA1 hash, all artifacts
43
+are immutable. Any change to the content of a artifact also
44
+changes the hash that forms the artifacts name, thus
45
+creating a new artifact. Both the old original version of the
46
+artifact and the new change are preserved under different names.</p></li>
4647
47
-<li><p>It is theoretically possible for two files with different
48
+<li><p>It is theoretically possible for two artifacts with different
4849
content to share the same hash. But finding two such
49
-files is so incredibly difficult and unlikely that we
50
+artifacts is so incredibly difficult and unlikely that we
5051
consider it to be an impossibility.</p></li>
5152
52
-<li><p>The signature of a file is the SHA1 hash of the
53
-file itself, exactly as it appears on disk. No prefix
54
-or meta-information about the file is added before computing
53
+<li><p>The signature of an artifact is the SHA1 hash of the
54
+artifact itself, exactly as it would appear in a disk file. No prefix
55
+or meta-information about the artifact is added before computing
5556
the hash. So you can
5657
always find the SHA1 signature of a file by using the
5758
"sha1sum" command-line utility.</p></li>
5859
59
-<li><p>The files that comprise the global state of a repository
60
+<li><p>The artifacts that comprise the global state of a repository
6061
are the complete global state of that repository. The SQLite
6162
database that holds the repository contains additional information
62
-about linkages between files, but all of that added information
63
+about linkages between artifacts, but all of that added information
6364
can be discarded and reconstructed by rescanning the content
64
-files.</p></li>
65
+artifacts.</p></li>
6566
6667
<li><p>Two repositories for the same project can synchronize
67
-their global states simply by sharing files. The local
68
+their global states simply by sharing artifacts. The local
6869
state of repositories is not normally synchronized or
6970
shared.</p></li>
7071
71
-<li><p>Every repository has a special file at the top-level
72
+<li><p>Every baseline has a special file at the top-level
7273
named "manifest" which is an index of all other files in
73
-the system. The manifest is automatically created and
74
+that baseline. The manifest is automatically created and
7475
maintained by the system.</p></li>
7576
7677
<li><p>The <a href="fileformat.html">file formats</a>
7778
used by Fossil are all very simple so that with access
7879
to the original content files, one can easily reconstruct
7980
--- www/pop.html
+++ www/pop.html
@@ -12,12 +12,13 @@
12 which Fossil is built.
13 </p>
14
15 <ul>
16 <li><p>A project consists of source files, wiki pages, and
17 trouble tickets. All historical copies of all these
18 entities are saved. The project maintains an audit
 
19 trail.</p></li>
20
21 <li><p>A project resides in one or more repositories. Each
22 repository is administered and operates independently
23 of the others.</p></li>
@@ -30,49 +31,49 @@
30 The global state represents the content of the project.
31 The local state identifies the authorized users and
32 access policies for a particular repository.</p></li>
33
34 <li><p>The global state of a repository is an unordered
35 collection of files. Each file is named by
36 its SHA1 hash encoded in hexadecimal.
37 In many contexts, the name can be
38 abbreviated to a unique prefix. A five- or six-character
39 prefix usually suffices to uniquely identify a file.</p></li>
40
41 <li><p>Because files are named by their SHA1 hash, all files
42 are immutable. Any change to the content of a file also
43 changes the hash that forms the files name, thus
44 creating a new file. Both the old original version of the
45 file and the new change are preserved under different names.</p></li>
46
47 <li><p>It is theoretically possible for two files with different
48 content to share the same hash. But finding two such
49 files is so incredibly difficult and unlikely that we
50 consider it to be an impossibility.</p></li>
51
52 <li><p>The signature of a file is the SHA1 hash of the
53 file itself, exactly as it appears on disk. No prefix
54 or meta-information about the file is added before computing
55 the hash. So you can
56 always find the SHA1 signature of a file by using the
57 "sha1sum" command-line utility.</p></li>
58
59 <li><p>The files that comprise the global state of a repository
60 are the complete global state of that repository. The SQLite
61 database that holds the repository contains additional information
62 about linkages between files, but all of that added information
63 can be discarded and reconstructed by rescanning the content
64 files.</p></li>
65
66 <li><p>Two repositories for the same project can synchronize
67 their global states simply by sharing files. The local
68 state of repositories is not normally synchronized or
69 shared.</p></li>
70
71 <li><p>Every repository has a special file at the top-level
72 named "manifest" which is an index of all other files in
73 the system. The manifest is automatically created and
74 maintained by the system.</p></li>
75
76 <li><p>The <a href="fileformat.html">file formats</a>
77 used by Fossil are all very simple so that with access
78 to the original content files, one can easily reconstruct
79
--- www/pop.html
+++ www/pop.html
@@ -12,12 +12,13 @@
12 which Fossil is built.
13 </p>
14
15 <ul>
16 <li><p>A project consists of source files, wiki pages, and
17 trouble tickets, and control files (collectively "artifacts").
18 All historical copies of all artifacts
19 are saved. The project maintains an audit
20 trail.</p></li>
21
22 <li><p>A project resides in one or more repositories. Each
23 repository is administered and operates independently
24 of the others.</p></li>
@@ -30,49 +31,49 @@
31 The global state represents the content of the project.
32 The local state identifies the authorized users and
33 access policies for a particular repository.</p></li>
34
35 <li><p>The global state of a repository is an unordered
36 collection of artifacts. Each artifact is named by
37 its SHA1 hash encoded in lowercase hexadecimal.
38 In many contexts, the name can be
39 abbreviated to a unique prefix. A five- or six-character
40 prefix usually suffices to uniquely identify a file.</p></li>
41
42 <li><p>Because artifacts are named by their SHA1 hash, all artifacts
43 are immutable. Any change to the content of a artifact also
44 changes the hash that forms the artifacts name, thus
45 creating a new artifact. Both the old original version of the
46 artifact and the new change are preserved under different names.</p></li>
47
48 <li><p>It is theoretically possible for two artifacts with different
49 content to share the same hash. But finding two such
50 artifacts is so incredibly difficult and unlikely that we
51 consider it to be an impossibility.</p></li>
52
53 <li><p>The signature of an artifact is the SHA1 hash of the
54 artifact itself, exactly as it would appear in a disk file. No prefix
55 or meta-information about the artifact is added before computing
56 the hash. So you can
57 always find the SHA1 signature of a file by using the
58 "sha1sum" command-line utility.</p></li>
59
60 <li><p>The artifacts that comprise the global state of a repository
61 are the complete global state of that repository. The SQLite
62 database that holds the repository contains additional information
63 about linkages between artifacts, but all of that added information
64 can be discarded and reconstructed by rescanning the content
65 artifacts.</p></li>
66
67 <li><p>Two repositories for the same project can synchronize
68 their global states simply by sharing artifacts. The local
69 state of repositories is not normally synchronized or
70 shared.</p></li>
71
72 <li><p>Every baseline has a special file at the top-level
73 named "manifest" which is an index of all other files in
74 that baseline. The manifest is automatically created and
75 maintained by the system.</p></li>
76
77 <li><p>The <a href="fileformat.html">file formats</a>
78 used by Fossil are all very simple so that with access
79 to the original content files, one can easily reconstruct
80

Keyboard Shortcuts

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