Fossil SCM

Merge the speculative Forum changes. This is because I need the enhancements to the user capabilities in order to add a new capability for Email Notifiation. The Forum logic itself is not ready, and is subject to change and removal. But it is well isolated and shouldn't hurt anything if it hangs out on trunk for a while.

drh 2018-06-20 18:47 trunk merge
Commit 9a2e5f47170b4f2d86e23c1b2cb37d5b284e7982e91c91f6c7520da0e9e17cb3
+7 -2
--- src/cgi.c
+++ src/cgi.c
@@ -1101,10 +1101,11 @@
11011101
const char *zIn;
11021102
char *zOut;
11031103
int i;
11041104
zIn = cgi_parameter(zName, 0);
11051105
if( zIn==0 ) zIn = zDefault;
1106
+ if( zIn==0 ) return 0;
11061107
while( fossil_isspace(zIn[0]) ) zIn++;
11071108
zOut = fossil_strdup(zIn);
11081109
for(i=0; zOut[i]; i++){}
11091110
while( i>0 && fossil_isspace(zOut[i-1]) ) zOut[--i] = 0;
11101111
return zOut;
@@ -1181,20 +1182,24 @@
11811182
** Print all query parameters on standard output. Format the
11821183
** parameters as HTML. This is used for testing and debugging.
11831184
**
11841185
** Omit the values of the cookies unless showAll is true.
11851186
*/
1186
-void cgi_print_all(int showAll){
1187
+void cgi_print_all(int showAll, int onConsole){
11871188
int i;
11881189
cgi_parameter("",""); /* Force the parameters into sorted order */
11891190
for(i=0; i<nUsedQP; i++){
11901191
const char *zName = aParamQP[i].zName;
11911192
if( !showAll ){
11921193
if( fossil_stricmp("HTTP_COOKIE",zName)==0 ) continue;
11931194
if( fossil_strnicmp("fossil-",zName,7)==0 ) continue;
11941195
}
1195
- cgi_printf("%h = %h <br />\n", zName, aParamQP[i].zValue);
1196
+ if( onConsole ){
1197
+ fossil_trace("%s = %s\n", zName, aParamQP[i].zValue);
1198
+ }else{
1199
+ cgi_printf("%h = %h <br />\n", zName, aParamQP[i].zValue);
1200
+ }
11961201
}
11971202
}
11981203
11991204
/*
12001205
** Export all untagged query parameters (but not cookies or environment
12011206
--- src/cgi.c
+++ src/cgi.c
@@ -1101,10 +1101,11 @@
1101 const char *zIn;
1102 char *zOut;
1103 int i;
1104 zIn = cgi_parameter(zName, 0);
1105 if( zIn==0 ) zIn = zDefault;
 
1106 while( fossil_isspace(zIn[0]) ) zIn++;
1107 zOut = fossil_strdup(zIn);
1108 for(i=0; zOut[i]; i++){}
1109 while( i>0 && fossil_isspace(zOut[i-1]) ) zOut[--i] = 0;
1110 return zOut;
@@ -1181,20 +1182,24 @@
1181 ** Print all query parameters on standard output. Format the
1182 ** parameters as HTML. This is used for testing and debugging.
1183 **
1184 ** Omit the values of the cookies unless showAll is true.
1185 */
1186 void cgi_print_all(int showAll){
1187 int i;
1188 cgi_parameter("",""); /* Force the parameters into sorted order */
1189 for(i=0; i<nUsedQP; i++){
1190 const char *zName = aParamQP[i].zName;
1191 if( !showAll ){
1192 if( fossil_stricmp("HTTP_COOKIE",zName)==0 ) continue;
1193 if( fossil_strnicmp("fossil-",zName,7)==0 ) continue;
1194 }
1195 cgi_printf("%h = %h <br />\n", zName, aParamQP[i].zValue);
 
 
 
 
1196 }
1197 }
1198
1199 /*
1200 ** Export all untagged query parameters (but not cookies or environment
1201
--- src/cgi.c
+++ src/cgi.c
@@ -1101,10 +1101,11 @@
1101 const char *zIn;
1102 char *zOut;
1103 int i;
1104 zIn = cgi_parameter(zName, 0);
1105 if( zIn==0 ) zIn = zDefault;
1106 if( zIn==0 ) return 0;
1107 while( fossil_isspace(zIn[0]) ) zIn++;
1108 zOut = fossil_strdup(zIn);
1109 for(i=0; zOut[i]; i++){}
1110 while( i>0 && fossil_isspace(zOut[i-1]) ) zOut[--i] = 0;
1111 return zOut;
@@ -1181,20 +1182,24 @@
1182 ** Print all query parameters on standard output. Format the
1183 ** parameters as HTML. This is used for testing and debugging.
1184 **
1185 ** Omit the values of the cookies unless showAll is true.
1186 */
1187 void cgi_print_all(int showAll, int onConsole){
1188 int i;
1189 cgi_parameter("",""); /* Force the parameters into sorted order */
1190 for(i=0; i<nUsedQP; i++){
1191 const char *zName = aParamQP[i].zName;
1192 if( !showAll ){
1193 if( fossil_stricmp("HTTP_COOKIE",zName)==0 ) continue;
1194 if( fossil_strnicmp("fossil-",zName,7)==0 ) continue;
1195 }
1196 if( onConsole ){
1197 fossil_trace("%s = %s\n", zName, aParamQP[i].zValue);
1198 }else{
1199 cgi_printf("%h = %h <br />\n", zName, aParamQP[i].zValue);
1200 }
1201 }
1202 }
1203
1204 /*
1205 ** Export all untagged query parameters (but not cookies or environment
1206
+1 -1
--- src/db.c
+++ src/db.c
@@ -272,11 +272,11 @@
272272
db.nPrepare++;
273273
if( flags & DB_PREPARE_PERSISTENT ){
274274
prepFlags = SQLITE_PREPARE_PERSISTENT;
275275
}
276276
rc = sqlite3_prepare_v3(g.db, zSql, -1, prepFlags, &pStmt->pStmt, 0);
277
- if( rc!=0 && (flags & DB_PREPARE_IGNORE_ERROR)!=0 ){
277
+ if( rc!=0 && (flags & DB_PREPARE_IGNORE_ERROR)==0 ){
278278
db_err("%s\n%s", sqlite3_errmsg(g.db), zSql);
279279
}
280280
pStmt->pNext = pStmt->pPrev = 0;
281281
pStmt->nStep = 0;
282282
pStmt->rc = rc;
283283
--- src/db.c
+++ src/db.c
@@ -272,11 +272,11 @@
272 db.nPrepare++;
273 if( flags & DB_PREPARE_PERSISTENT ){
274 prepFlags = SQLITE_PREPARE_PERSISTENT;
275 }
276 rc = sqlite3_prepare_v3(g.db, zSql, -1, prepFlags, &pStmt->pStmt, 0);
277 if( rc!=0 && (flags & DB_PREPARE_IGNORE_ERROR)!=0 ){
278 db_err("%s\n%s", sqlite3_errmsg(g.db), zSql);
279 }
280 pStmt->pNext = pStmt->pPrev = 0;
281 pStmt->nStep = 0;
282 pStmt->rc = rc;
283
--- src/db.c
+++ src/db.c
@@ -272,11 +272,11 @@
272 db.nPrepare++;
273 if( flags & DB_PREPARE_PERSISTENT ){
274 prepFlags = SQLITE_PREPARE_PERSISTENT;
275 }
276 rc = sqlite3_prepare_v3(g.db, zSql, -1, prepFlags, &pStmt->pStmt, 0);
277 if( rc!=0 && (flags & DB_PREPARE_IGNORE_ERROR)==0 ){
278 db_err("%s\n%s", sqlite3_errmsg(g.db), zSql);
279 }
280 pStmt->pNext = pStmt->pPrev = 0;
281 pStmt->nStep = 0;
282 pStmt->rc = rc;
283
+1 -1
--- src/db.c
+++ src/db.c
@@ -272,11 +272,11 @@
272272
db.nPrepare++;
273273
if( flags & DB_PREPARE_PERSISTENT ){
274274
prepFlags = SQLITE_PREPARE_PERSISTENT;
275275
}
276276
rc = sqlite3_prepare_v3(g.db, zSql, -1, prepFlags, &pStmt->pStmt, 0);
277
- if( rc!=0 && (flags & DB_PREPARE_IGNORE_ERROR)!=0 ){
277
+ if( rc!=0 && (flags & DB_PREPARE_IGNORE_ERROR)==0 ){
278278
db_err("%s\n%s", sqlite3_errmsg(g.db), zSql);
279279
}
280280
pStmt->pNext = pStmt->pPrev = 0;
281281
pStmt->nStep = 0;
282282
pStmt->rc = rc;
283283
--- src/db.c
+++ src/db.c
@@ -272,11 +272,11 @@
272 db.nPrepare++;
273 if( flags & DB_PREPARE_PERSISTENT ){
274 prepFlags = SQLITE_PREPARE_PERSISTENT;
275 }
276 rc = sqlite3_prepare_v3(g.db, zSql, -1, prepFlags, &pStmt->pStmt, 0);
277 if( rc!=0 && (flags & DB_PREPARE_IGNORE_ERROR)!=0 ){
278 db_err("%s\n%s", sqlite3_errmsg(g.db), zSql);
279 }
280 pStmt->pNext = pStmt->pPrev = 0;
281 pStmt->nStep = 0;
282 pStmt->rc = rc;
283
--- src/db.c
+++ src/db.c
@@ -272,11 +272,11 @@
272 db.nPrepare++;
273 if( flags & DB_PREPARE_PERSISTENT ){
274 prepFlags = SQLITE_PREPARE_PERSISTENT;
275 }
276 rc = sqlite3_prepare_v3(g.db, zSql, -1, prepFlags, &pStmt->pStmt, 0);
277 if( rc!=0 && (flags & DB_PREPARE_IGNORE_ERROR)==0 ){
278 db_err("%s\n%s", sqlite3_errmsg(g.db), zSql);
279 }
280 pStmt->pNext = pStmt->pPrev = 0;
281 pStmt->nStep = 0;
282 pStmt->rc = rc;
283
--- src/default_css.txt
+++ src/default_css.txt
@@ -630,6 +630,43 @@
630630
}
631631
table.label-value th {
632632
vertical-align: top;
633633
text-align: right;
634634
padding: 0.2ex 1ex;
635
+}
636
+table.forum_post {
637
+ margin-top: 1ex;
638
+ margin-bottom: 1ex;
639
+ margin-left: 0;
640
+ margin-right: 0;
641
+ border-spacing: 0;
642
+}
643
+span.forum_author {
644
+ color: #888;
645
+ font-size: 75%;
646
+}
647
+span.forum_author::after {
648
+ content: " | ";
649
+}
650
+span.forum_age {
651
+ color: #888;
652
+ font-size: 85%;
653
+}
654
+span.forum_buttons {
655
+ font-size: 85%;
656
+}
657
+span.forum_buttons::before {
658
+ color: #888;
659
+ content: " | ";
660
+}
661
+span.forum_npost {
662
+ color: #888;
663
+ font-size: 75%;
664
+}
665
+table.forumeditform td {
666
+ vertical-align: top;
667
+ border-collapse: collapse;
668
+ padding: 1px;
669
+}
670
+div.forum_body p {
671
+ margin-top: 0;
635672
}
636673
637674
ADDED src/forum.c
--- src/default_css.txt
+++ src/default_css.txt
@@ -630,6 +630,43 @@
630 }
631 table.label-value th {
632 vertical-align: top;
633 text-align: right;
634 padding: 0.2ex 1ex;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
635 }
636
637 DDED src/forum.c
--- src/default_css.txt
+++ src/default_css.txt
@@ -630,6 +630,43 @@
630 }
631 table.label-value th {
632 vertical-align: top;
633 text-align: right;
634 padding: 0.2ex 1ex;
635 }
636 table.forum_post {
637 margin-top: 1ex;
638 margin-bottom: 1ex;
639 margin-left: 0;
640 margin-right: 0;
641 border-spacing: 0;
642 }
643 span.forum_author {
644 color: #888;
645 font-size: 75%;
646 }
647 span.forum_author::after {
648 content: " | ";
649 }
650 span.forum_age {
651 color: #888;
652 font-size: 85%;
653 }
654 span.forum_buttons {
655 font-size: 85%;
656 }
657 span.forum_buttons::before {
658 color: #888;
659 content: " | ";
660 }
661 span.forum_npost {
662 color: #888;
663 font-size: 75%;
664 }
665 table.forumeditform td {
666 vertical-align: top;
667 border-collapse: collapse;
668 padding: 1px;
669 }
670 div.forum_body p {
671 margin-top: 0;
672 }
673
674 DDED src/forum.c
+235
--- a/src/forum.c
+++ b/src/forum.c
@@ -0,0 +1,235 @@
1
+/*
2
+** Copyright (c) 2018 D. Richard Hipp
3
+**
4
+** This program is free software; you can redistribute it and/or
5
+** modify it under the terms of the Simplified BSD License (also
6
+** known as the "2-Clause License" or "FreeBSD License".)
7
+**
8
+** This program is distributed in the hope that it will be useful,
9
+** but without any warranty; without even the implied warranty of
10
+** merchantability or fitness for a particular purpose.
11
+**
12
+** Author contact information:
13
+** [email protected]
14
+** http://www.hwaci.com/drh/
15
+**
16
+*******************************************************************************
17
+**
18
+** This file contains code used to generate the user forum.
19
+*/
20
+#include "config.h"
21
+#include <assert.h>
22
+#include "forum.h"
23
+
24
+/*
25
+** The schema for the tables that manage the forum, abled.
26
+*/
27
+static const char zForumInit[] =
28
+@ CREATE TABLE repository.forumpost(
29
+@ mpostid INTEGER PRIMARY KEY, -- unique id for each post (local)
30
+@ mposthash TEXT, -- uuid for this post
31
+@ mthreect = 0;
32
+ int threadId;
33
+ doublt belongs
34
+@ uname TEXT, -- name of user
35
+@ mtime REAL, -- julian day number
36
+@ mstatus TEXT, -- status. NULL=ok. 'mod'=pending moderation
37
+@ mimetype TEXT, -- Mimetype for mbody
38
+@ ipaddr TEXT, -- IP address of post origin
39
+@ inreplyto INT, -- Parent posting
40
+@ mbody TEXT -- Content of the post
41
+@ );
42
+@ CREATE INDEX repository.forumpost_x1 ON
43
+@ forumpost(inreplyto,mtime);
44
+@ CREATE TABLE repository.forumthread(
45
+@ mthreadid INTEGER PRIMARY KEY,
46
+@ mthreadhash TEXT, -- uuid for this thread
47
+@ mtitle TEXT, -- Title or subject line
48
+@ mtime REAL, -- Most recent update
49
+@ npost INT -- Number Stat = db_column_text(&q, e = db_column_text(&q,0const char tables in the schema if they do not already
50
+** exist.
51
+*/
52
+static void forum_verify_schema(void){
53
+ if( !db_table_exists("repository","forumpost") ){
54
+ db_multi_exec(zForumInit /*works-like:""*/);
55
+ }
56
+}
57
+
58
+/*
59
+** WEBPAGE: forum
60
+** URL: /forum
61
+** Query parameters:
62
+**
63
+** item=N Show post N and its replies
64
+**
65
+*/
66
+void forum_page(void){
67
+ int itemId;
68
+ Stmt q;
69
+ int i;
70
+
71
+ login_check_credentials();
72
+ if( !g.perm.RdForum ){ login_needed(g.anon.RdForum); return; }
73
+ forum_verify_schema();
74
+ style_header("Forum");
75
+ itemId = atoi(PD("item","0"));
76
+ if( itemId>0 ){
77
+ int iUp;
78
+ double rNow;
79
+ style_submenu_element("Topics", "%R/forum");
80
+ iUp = db_int(0, "SELECT inreplyto FROM forumpost WHERE mpostid=%d", itemId);
81
+ if( iUp ){
82
+ style_submenu_element("Parent", "%R/forum?item=%d", iUp);
83
+ }
84
+ rNow = db_double(0.0, "SELECT julianday('now')");
85
+ /* Show the post given by itemId and all its descendents */
86
+ db_prepare(&q,
87
+ "WITH RECURSIVE"
88
+ " post(id,uname,mstat,mime,ipaddr,parent,mbody,depth,mtime) AS ("
89
+ " SELECT mpostid, uname, mstatus, mimetype, ipaddr, inreplyto, mbody,"
90
+ " 0, mtime FROM forumpost WHERE mpostid=%d"
91
+ " UNION"
92
+ " SELECT f.mpostid, f.uname, f.mstatus, f.mimetype, f.ipaddr,"
93
+ " f.inreplyto, f.mbody, p.depth+1 AS xdepth, f.mtime AS xtime"
94
+ " FROM forumpost AS f, post AS p"
95
+ " WHERE f.inreplyto=p.id"
96
+ " ORDER BY xdepth DESC, xtime ASC"
97
+ ") SELECT * FROM post;",
98
+ itemId
99
+ );
100
+ while( db_step(&q)==SQLITE_ROW ){
101
+ int id = db_column_int(&q, 0);
102
+ const char *zUser = db_column_text(&q, 1);
103
+ const char *zMime = db_column_text(&q, 3);
104
+ int iDepth = db_column_int(&q, 7);
105
+ double rMTime = db_column_double(&q, 8);
106
+ char *zAge = db_timespan_name(rNow - rMTime);
107
+ Blob body;
108
+ @ <!-- Forum post %d(id) -->
109
+ @ <table class="forum_post">
110
+ @ <tr>
111
+ @ <td class="forum_margin" width="%d(iDepth*40)" rowspan="2">
112
+ @ <td><span class="forum_author">%h(zUser)</span>
113
+ @ <span class="forum_age">%s(zAge) ago</span>
114
+ sqlite3_free(zAge);
115
+ if( g.perm.WrForum ){
116
+ @ <span class="forum_buttons">
117
+ if( g.perm.AdminForum || fossil_strcmp(g.zLogin, zUser)==0 ){
118
+ @ <a href='%R/forumedit?item=%d(id)'>Edit</a>
119
+ }
120
+ @ <a href='%R/forumedit?replyto=%d(id)'>Reply</a>
121
+ @ </span>
122
+ }
123
+ @ </tr>
124
+ @ <tr><td><div class="forum_body">
125
+ blob_init(&body, db_column_text(&q,6), db_column_bytes(&q,6));
126
+ wiki_render_by_mimetype(&body, zMime);
127
+ blob_reset(&body);
128
+ @ </div></td></tr>
129
+ @ </table>
130
+ }
131
+ }else{
132
+ /* If we reach this point, that means the users wants a list of
133
+ ** recent threads.
134
+ */
135
+ i = 0;
136
+ db_prepare(&q,
137
+ "SELECT a.mtitle, a.npost, b.mpostid"
138
+ " FROM forumthread AS a, forumpost AS b "
139
+ " WHERE a.mthreadid=b.mthreadid"
140
+ " AND b.inreplyto IS NULL"
141
+ " ORDER BY a.mtime DESC LIMIT 40"
142
+ );
143
+ if( g.perm.WrForum ){
144
+ style_submenu_element("New", "%R/forumedit");
145
+ }
146
+ @ <h1>Recent Forum Threads</h1>
147
+ while( db_step(&q)==SQLITE_ROW ){
148
+ int n = db_column_int(&q,1);
149
+ int itemid = db_column_int(&q,2);
150
+ const char *zTitle = db_column_text(&q,0);
151
+ if( (i++)==0 ){
152
+ @ <ol>
153
+ }
154
+ @ <li><span class="forum_title">
155
+ @ %z(href("%R/forum?item=%d",itemid))%h(zTitle)</a></span>
156
+ @ <span class="forum_npost">%d(n) post%s(n==1?"":"s")</span></li>
157
+ }
158
+ if( i ){
159
+ @ </ol>
160
+ }
161
+ }
162
+ style_footer();
163
+}
164
+
165
+/*
166
+** Use content in CGI parameters "s" (subject), "b" (body), and
167
+** "mimetype" (mimetype) to create a new forum entry.
168
+** Return the id of the new forum entry.
169
+**
170
+** If any problems occur, return 0 and set *pzErr to a description of
171
+** the problem.
172
+**
173
+** Cases:
174
+**
175
+** itemId==0 && parentId==0 Starting a new thread.
176
+** itemId==0 && parentId>0 New reply to parentId
177
+** itemId>0 && parentId==0 Edit existing post itemId
178
+*/
179
+static int forum_post(int itemId, int parentId, char **pzErr){
180
+ const char *zSubject = 0;
181
+ int threadId;
182
+ double rNow = db_double(0.0, "SELECT julianday('now')");
183
+ const char *zMime = wiki_filter_mimetypes(P("mimetype"));
184
+ if( itemId==0 && parentId==0 ){
185
+ /* Start a new thread. Subject required. */
186
+ sqlite3_uint64 r1, r2;
187
+ zSubject = PT("s");
188
+ if( zSubject==0 || zSubject[0]==0 ){
189
+ *pzErr = "\"Subject\" required to start a new thread";
190
+ return 0;
191
+ }
192
+ sqlite3_randomness(sizeof(r1), &r1);
193
+ sqlite3_randomness(sizeof(r2), &r2);
194
+ db_multi_exec(
195
+ "INSERT INTO forumthread(mthreadhash, mtitle, mtime, npost)"
196
+ "VALUES(lower(hex(randomblob(28))),%Q,%!.17gme;
197
+ const char *zSub;
198
+
199
+ loentId;
200
+ cha if( !g.perm.WrForum ){ login_needed(g.anon.WrForum); return; }
201
+ forum_verify_schema();
202
+ itemId = atoi(PD("item","0"));
203
+ parentId = atoi(PD("replyto","0"));
204
+ if( P("cancel")!=0 ){
205
+ cgi_redirectf("%R/forum?item=%d", itemId ? itemId : parentId);
206
+ return;
207
+ }
208
+ if( P("x")!=0 && cgi_csrf_safe(1) ){
209
+ itemId = forum_post(itemId,parentId,&zErr);
210
+ if( itemId ){
211
+ cgi_redirectf("%R/forum?item=%d",itemId);
212
+ return;
213
+ }
214
+ }
215
+ if( itemId && (P("mimetype")==0 || P("b")==0) ){
216
+ Stmt q;
217
+ db_prepare(&q, "SELECT mimetype, mbody FROM forumpost"
218
+ " WHERE mpostid=%d", itemId);
219
+ if( db_step(&q)==SQLITE_ROW ){
220
+ if( P("mimetype")==0 ){
221
+ cgi_set_query_parameter("mimetype", db_column_text(&q, 0));
222
+ }
223
+ if( P("b")==0 ){
224
+ cgi_set_query_parameter("b", db_column_text(&q, 1));
225
+ }
226
+ }
227
+ db_finalize(&q);
228
+ }
229
+ zMime = wiki_filter_mimetypes(P("mimetype"));
230
+ if( itemId>0 ){
231
+ style_header("Edit Forum Post");
232
+ }elBody;
233
+this thread
234
+@ );
235
+;
--- a/src/forum.c
+++ b/src/forum.c
@@ -0,0 +1,235 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
--- a/src/forum.c
+++ b/src/forum.c
@@ -0,0 +1,235 @@
1 /*
2 ** Copyright (c) 2018 D. Richard Hipp
3 **
4 ** This program is free software; you can redistribute it and/or
5 ** modify it under the terms of the Simplified BSD License (also
6 ** known as the "2-Clause License" or "FreeBSD License".)
7 **
8 ** This program is distributed in the hope that it will be useful,
9 ** but without any warranty; without even the implied warranty of
10 ** merchantability or fitness for a particular purpose.
11 **
12 ** Author contact information:
13 ** [email protected]
14 ** http://www.hwaci.com/drh/
15 **
16 *******************************************************************************
17 **
18 ** This file contains code used to generate the user forum.
19 */
20 #include "config.h"
21 #include <assert.h>
22 #include "forum.h"
23
24 /*
25 ** The schema for the tables that manage the forum, abled.
26 */
27 static const char zForumInit[] =
28 @ CREATE TABLE repository.forumpost(
29 @ mpostid INTEGER PRIMARY KEY, -- unique id for each post (local)
30 @ mposthash TEXT, -- uuid for this post
31 @ mthreect = 0;
32 int threadId;
33 doublt belongs
34 @ uname TEXT, -- name of user
35 @ mtime REAL, -- julian day number
36 @ mstatus TEXT, -- status. NULL=ok. 'mod'=pending moderation
37 @ mimetype TEXT, -- Mimetype for mbody
38 @ ipaddr TEXT, -- IP address of post origin
39 @ inreplyto INT, -- Parent posting
40 @ mbody TEXT -- Content of the post
41 @ );
42 @ CREATE INDEX repository.forumpost_x1 ON
43 @ forumpost(inreplyto,mtime);
44 @ CREATE TABLE repository.forumthread(
45 @ mthreadid INTEGER PRIMARY KEY,
46 @ mthreadhash TEXT, -- uuid for this thread
47 @ mtitle TEXT, -- Title or subject line
48 @ mtime REAL, -- Most recent update
49 @ npost INT -- Number Stat = db_column_text(&q, e = db_column_text(&q,0const char tables in the schema if they do not already
50 ** exist.
51 */
52 static void forum_verify_schema(void){
53 if( !db_table_exists("repository","forumpost") ){
54 db_multi_exec(zForumInit /*works-like:""*/);
55 }
56 }
57
58 /*
59 ** WEBPAGE: forum
60 ** URL: /forum
61 ** Query parameters:
62 **
63 ** item=N Show post N and its replies
64 **
65 */
66 void forum_page(void){
67 int itemId;
68 Stmt q;
69 int i;
70
71 login_check_credentials();
72 if( !g.perm.RdForum ){ login_needed(g.anon.RdForum); return; }
73 forum_verify_schema();
74 style_header("Forum");
75 itemId = atoi(PD("item","0"));
76 if( itemId>0 ){
77 int iUp;
78 double rNow;
79 style_submenu_element("Topics", "%R/forum");
80 iUp = db_int(0, "SELECT inreplyto FROM forumpost WHERE mpostid=%d", itemId);
81 if( iUp ){
82 style_submenu_element("Parent", "%R/forum?item=%d", iUp);
83 }
84 rNow = db_double(0.0, "SELECT julianday('now')");
85 /* Show the post given by itemId and all its descendents */
86 db_prepare(&q,
87 "WITH RECURSIVE"
88 " post(id,uname,mstat,mime,ipaddr,parent,mbody,depth,mtime) AS ("
89 " SELECT mpostid, uname, mstatus, mimetype, ipaddr, inreplyto, mbody,"
90 " 0, mtime FROM forumpost WHERE mpostid=%d"
91 " UNION"
92 " SELECT f.mpostid, f.uname, f.mstatus, f.mimetype, f.ipaddr,"
93 " f.inreplyto, f.mbody, p.depth+1 AS xdepth, f.mtime AS xtime"
94 " FROM forumpost AS f, post AS p"
95 " WHERE f.inreplyto=p.id"
96 " ORDER BY xdepth DESC, xtime ASC"
97 ") SELECT * FROM post;",
98 itemId
99 );
100 while( db_step(&q)==SQLITE_ROW ){
101 int id = db_column_int(&q, 0);
102 const char *zUser = db_column_text(&q, 1);
103 const char *zMime = db_column_text(&q, 3);
104 int iDepth = db_column_int(&q, 7);
105 double rMTime = db_column_double(&q, 8);
106 char *zAge = db_timespan_name(rNow - rMTime);
107 Blob body;
108 @ <!-- Forum post %d(id) -->
109 @ <table class="forum_post">
110 @ <tr>
111 @ <td class="forum_margin" width="%d(iDepth*40)" rowspan="2">
112 @ <td><span class="forum_author">%h(zUser)</span>
113 @ <span class="forum_age">%s(zAge) ago</span>
114 sqlite3_free(zAge);
115 if( g.perm.WrForum ){
116 @ <span class="forum_buttons">
117 if( g.perm.AdminForum || fossil_strcmp(g.zLogin, zUser)==0 ){
118 @ <a href='%R/forumedit?item=%d(id)'>Edit</a>
119 }
120 @ <a href='%R/forumedit?replyto=%d(id)'>Reply</a>
121 @ </span>
122 }
123 @ </tr>
124 @ <tr><td><div class="forum_body">
125 blob_init(&body, db_column_text(&q,6), db_column_bytes(&q,6));
126 wiki_render_by_mimetype(&body, zMime);
127 blob_reset(&body);
128 @ </div></td></tr>
129 @ </table>
130 }
131 }else{
132 /* If we reach this point, that means the users wants a list of
133 ** recent threads.
134 */
135 i = 0;
136 db_prepare(&q,
137 "SELECT a.mtitle, a.npost, b.mpostid"
138 " FROM forumthread AS a, forumpost AS b "
139 " WHERE a.mthreadid=b.mthreadid"
140 " AND b.inreplyto IS NULL"
141 " ORDER BY a.mtime DESC LIMIT 40"
142 );
143 if( g.perm.WrForum ){
144 style_submenu_element("New", "%R/forumedit");
145 }
146 @ <h1>Recent Forum Threads</h1>
147 while( db_step(&q)==SQLITE_ROW ){
148 int n = db_column_int(&q,1);
149 int itemid = db_column_int(&q,2);
150 const char *zTitle = db_column_text(&q,0);
151 if( (i++)==0 ){
152 @ <ol>
153 }
154 @ <li><span class="forum_title">
155 @ %z(href("%R/forum?item=%d",itemid))%h(zTitle)</a></span>
156 @ <span class="forum_npost">%d(n) post%s(n==1?"":"s")</span></li>
157 }
158 if( i ){
159 @ </ol>
160 }
161 }
162 style_footer();
163 }
164
165 /*
166 ** Use content in CGI parameters "s" (subject), "b" (body), and
167 ** "mimetype" (mimetype) to create a new forum entry.
168 ** Return the id of the new forum entry.
169 **
170 ** If any problems occur, return 0 and set *pzErr to a description of
171 ** the problem.
172 **
173 ** Cases:
174 **
175 ** itemId==0 && parentId==0 Starting a new thread.
176 ** itemId==0 && parentId>0 New reply to parentId
177 ** itemId>0 && parentId==0 Edit existing post itemId
178 */
179 static int forum_post(int itemId, int parentId, char **pzErr){
180 const char *zSubject = 0;
181 int threadId;
182 double rNow = db_double(0.0, "SELECT julianday('now')");
183 const char *zMime = wiki_filter_mimetypes(P("mimetype"));
184 if( itemId==0 && parentId==0 ){
185 /* Start a new thread. Subject required. */
186 sqlite3_uint64 r1, r2;
187 zSubject = PT("s");
188 if( zSubject==0 || zSubject[0]==0 ){
189 *pzErr = "\"Subject\" required to start a new thread";
190 return 0;
191 }
192 sqlite3_randomness(sizeof(r1), &r1);
193 sqlite3_randomness(sizeof(r2), &r2);
194 db_multi_exec(
195 "INSERT INTO forumthread(mthreadhash, mtitle, mtime, npost)"
196 "VALUES(lower(hex(randomblob(28))),%Q,%!.17gme;
197 const char *zSub;
198
199 loentId;
200 cha if( !g.perm.WrForum ){ login_needed(g.anon.WrForum); return; }
201 forum_verify_schema();
202 itemId = atoi(PD("item","0"));
203 parentId = atoi(PD("replyto","0"));
204 if( P("cancel")!=0 ){
205 cgi_redirectf("%R/forum?item=%d", itemId ? itemId : parentId);
206 return;
207 }
208 if( P("x")!=0 && cgi_csrf_safe(1) ){
209 itemId = forum_post(itemId,parentId,&zErr);
210 if( itemId ){
211 cgi_redirectf("%R/forum?item=%d",itemId);
212 return;
213 }
214 }
215 if( itemId && (P("mimetype")==0 || P("b")==0) ){
216 Stmt q;
217 db_prepare(&q, "SELECT mimetype, mbody FROM forumpost"
218 " WHERE mpostid=%d", itemId);
219 if( db_step(&q)==SQLITE_ROW ){
220 if( P("mimetype")==0 ){
221 cgi_set_query_parameter("mimetype", db_column_text(&q, 0));
222 }
223 if( P("b")==0 ){
224 cgi_set_query_parameter("b", db_column_text(&q, 1));
225 }
226 }
227 db_finalize(&q);
228 }
229 zMime = wiki_filter_mimetypes(P("mimetype"));
230 if( itemId>0 ){
231 style_header("Edit Forum Post");
232 }elBody;
233 this thread
234 @ );
235 ;
--- src/login.c
+++ src/login.c
@@ -1196,10 +1196,12 @@
11961196
p->RdWiki = p->WrWiki = p->NewWiki =
11971197
p->ApndWiki = p->Hyperlink = p->Clone =
11981198
p->NewTkt = p->Password = p->RdAddr =
11991199
p->TktFmt = p->Attach = p->ApndTkt =
12001200
p->ModWiki = p->ModTkt = p->Delete =
1201
+ p->RdForum = p->WrForum = p->ModForum =
1202
+ p->WrTForum = p->AdminForum =
12011203
p->WrUnver = p->Private = 1;
12021204
/* Fall thru into Read/Write */
12031205
case 'i': p->Read = p->Write = 1; break;
12041206
case 'o': p->Read = 1; break;
12051207
case 'z': p->Zip = 1; break;
@@ -1225,10 +1227,16 @@
12251227
case 't': p->TktFmt = 1; break;
12261228
case 'b': p->Attach = 1; break;
12271229
case 'x': p->Private = 1; break;
12281230
case 'y': p->WrUnver = 1; break;
12291231
1232
+ case '6': p->AdminForum = 1;
1233
+ case '5': p->ModForum = 1;
1234
+ case '4': p->WrTForum = 1;
1235
+ case '3': p->WrForum = 1;
1236
+ case '2': p->RdForum = 1; break;
1237
+
12301238
/* The "u" privileges is a little different. It recursively
12311239
** inherits all privileges of the user named "reader" */
12321240
case 'u': {
12331241
if( (flags & LOGIN_IGNORE_UV)==0 ){
12341242
const char *zUser;
12351243
--- src/login.c
+++ src/login.c
@@ -1196,10 +1196,12 @@
1196 p->RdWiki = p->WrWiki = p->NewWiki =
1197 p->ApndWiki = p->Hyperlink = p->Clone =
1198 p->NewTkt = p->Password = p->RdAddr =
1199 p->TktFmt = p->Attach = p->ApndTkt =
1200 p->ModWiki = p->ModTkt = p->Delete =
 
 
1201 p->WrUnver = p->Private = 1;
1202 /* Fall thru into Read/Write */
1203 case 'i': p->Read = p->Write = 1; break;
1204 case 'o': p->Read = 1; break;
1205 case 'z': p->Zip = 1; break;
@@ -1225,10 +1227,16 @@
1225 case 't': p->TktFmt = 1; break;
1226 case 'b': p->Attach = 1; break;
1227 case 'x': p->Private = 1; break;
1228 case 'y': p->WrUnver = 1; break;
1229
 
 
 
 
 
 
1230 /* The "u" privileges is a little different. It recursively
1231 ** inherits all privileges of the user named "reader" */
1232 case 'u': {
1233 if( (flags & LOGIN_IGNORE_UV)==0 ){
1234 const char *zUser;
1235
--- src/login.c
+++ src/login.c
@@ -1196,10 +1196,12 @@
1196 p->RdWiki = p->WrWiki = p->NewWiki =
1197 p->ApndWiki = p->Hyperlink = p->Clone =
1198 p->NewTkt = p->Password = p->RdAddr =
1199 p->TktFmt = p->Attach = p->ApndTkt =
1200 p->ModWiki = p->ModTkt = p->Delete =
1201 p->RdForum = p->WrForum = p->ModForum =
1202 p->WrTForum = p->AdminForum =
1203 p->WrUnver = p->Private = 1;
1204 /* Fall thru into Read/Write */
1205 case 'i': p->Read = p->Write = 1; break;
1206 case 'o': p->Read = 1; break;
1207 case 'z': p->Zip = 1; break;
@@ -1225,10 +1227,16 @@
1227 case 't': p->TktFmt = 1; break;
1228 case 'b': p->Attach = 1; break;
1229 case 'x': p->Private = 1; break;
1230 case 'y': p->WrUnver = 1; break;
1231
1232 case '6': p->AdminForum = 1;
1233 case '5': p->ModForum = 1;
1234 case '4': p->WrTForum = 1;
1235 case '3': p->WrForum = 1;
1236 case '2': p->RdForum = 1; break;
1237
1238 /* The "u" privileges is a little different. It recursively
1239 ** inherits all privileges of the user named "reader" */
1240 case 'u': {
1241 if( (flags & LOGIN_IGNORE_UV)==0 ){
1242 const char *zUser;
1243
+14 -2
--- src/main.c
+++ src/main.c
@@ -83,10 +83,15 @@
8383
char TktFmt; /* t: create new ticket report formats */
8484
char RdAddr; /* e: read email addresses or other private data */
8585
char Zip; /* z: download zipped artifact via /zip URL */
8686
char Private; /* x: can send and receive private content */
8787
char WrUnver; /* y: can push unversioned content */
88
+ char RdForum; /* 2: Read forum posts */
89
+ char WrForum; /* 3: Create new forum posts */
90
+ char WrTForum; /* 4: Post to forums not subject to moderation */
91
+ char ModForum; /* 5: Moderate (approve or reject) forum posts */
92
+ char AdminForum; /* 6: Edit forum posts by other users */
8893
};
8994
9095
#ifdef FOSSIL_ENABLE_TCL
9196
/*
9297
** All Tcl related context information is in this structure. This structure
@@ -133,11 +138,12 @@
133138
char *zLocalRoot; /* The directory holding the local database */
134139
int minPrefix; /* Number of digits needed for a distinct UUID */
135140
int eHashPolicy; /* Current hash policy. One of HPOLICY_* */
136141
int fSqlTrace; /* True if --sqltrace flag is present */
137142
int fSqlStats; /* True if --sqltrace or --sqlstats are present */
138
- int fSqlPrint; /* True if -sqlprint flag is present */
143
+ int fSqlPrint; /* True if --sqlprint flag is present */
144
+ int fCgiTrace; /* True if --cgitrace is enabled */
139145
int fQuiet; /* True if -quiet flag is present */
140146
int fJail; /* True if running with a chroot jail */
141147
int fHttpTrace; /* Trace outbound HTTP requests */
142148
int fAnyTrace; /* Any kind of tracing */
143149
char *zHttpAuth; /* HTTP Authorization user:pass information */
@@ -644,18 +650,20 @@
644650
g.fQuiet = find_option("quiet", 0, 0)!=0;
645651
g.fSqlTrace = find_option("sqltrace", 0, 0)!=0;
646652
g.fSqlStats = find_option("sqlstats", 0, 0)!=0;
647653
g.fSystemTrace = find_option("systemtrace", 0, 0)!=0;
648654
g.fSshTrace = find_option("sshtrace", 0, 0)!=0;
655
+ g.fCgiTrace = find_option("cgitrace", 0, 0)!=0;
649656
g.fSshClient = 0;
650657
g.zSshCmd = 0;
651658
if( g.fSqlTrace ) g.fSqlStats = 1;
652659
g.fHttpTrace = find_option("httptrace", 0, 0)!=0;
653660
#ifdef FOSSIL_ENABLE_TH1_HOOKS
654661
g.fNoThHook = find_option("no-th-hook", 0, 0)!=0;
655662
#endif
656
- g.fAnyTrace = g.fSqlTrace|g.fSystemTrace|g.fSshTrace|g.fHttpTrace;
663
+ g.fAnyTrace = g.fSqlTrace|g.fSystemTrace|g.fSshTrace|
664
+ g.fHttpTrace|g.fCgiTrace;
657665
g.zHttpAuth = 0;
658666
g.zLogin = find_option("user", "U", 1);
659667
g.zSSLIdentity = find_option("ssl-identity", 0, 1);
660668
g.zErrlog = find_option("errorlog", 0, 1);
661669
fossil_init_flags_from_options();
@@ -1760,10 +1768,14 @@
17601768
@ <h1>Server Configuration Error</h1>
17611769
@ <p>The database schema on the server is out-of-date. Please ask
17621770
@ the administrator to run <b>fossil rebuild</b>.</p>
17631771
}
17641772
}else{
1773
+ if( g.fCgiTrace ){
1774
+ fossil_trace("######## Calling %s #########\n", pCmd->zName);
1775
+ cgi_print_all(1, 1);
1776
+ }
17651777
#ifdef FOSSIL_ENABLE_TH1_HOOKS
17661778
/*
17671779
** The TH1 return codes from the hook will be handled as follows:
17681780
**
17691781
** TH_OK: The xFunc() and the TH1 notification will both be executed.
17701782
--- src/main.c
+++ src/main.c
@@ -83,10 +83,15 @@
83 char TktFmt; /* t: create new ticket report formats */
84 char RdAddr; /* e: read email addresses or other private data */
85 char Zip; /* z: download zipped artifact via /zip URL */
86 char Private; /* x: can send and receive private content */
87 char WrUnver; /* y: can push unversioned content */
 
 
 
 
 
88 };
89
90 #ifdef FOSSIL_ENABLE_TCL
91 /*
92 ** All Tcl related context information is in this structure. This structure
@@ -133,11 +138,12 @@
133 char *zLocalRoot; /* The directory holding the local database */
134 int minPrefix; /* Number of digits needed for a distinct UUID */
135 int eHashPolicy; /* Current hash policy. One of HPOLICY_* */
136 int fSqlTrace; /* True if --sqltrace flag is present */
137 int fSqlStats; /* True if --sqltrace or --sqlstats are present */
138 int fSqlPrint; /* True if -sqlprint flag is present */
 
139 int fQuiet; /* True if -quiet flag is present */
140 int fJail; /* True if running with a chroot jail */
141 int fHttpTrace; /* Trace outbound HTTP requests */
142 int fAnyTrace; /* Any kind of tracing */
143 char *zHttpAuth; /* HTTP Authorization user:pass information */
@@ -644,18 +650,20 @@
644 g.fQuiet = find_option("quiet", 0, 0)!=0;
645 g.fSqlTrace = find_option("sqltrace", 0, 0)!=0;
646 g.fSqlStats = find_option("sqlstats", 0, 0)!=0;
647 g.fSystemTrace = find_option("systemtrace", 0, 0)!=0;
648 g.fSshTrace = find_option("sshtrace", 0, 0)!=0;
 
649 g.fSshClient = 0;
650 g.zSshCmd = 0;
651 if( g.fSqlTrace ) g.fSqlStats = 1;
652 g.fHttpTrace = find_option("httptrace", 0, 0)!=0;
653 #ifdef FOSSIL_ENABLE_TH1_HOOKS
654 g.fNoThHook = find_option("no-th-hook", 0, 0)!=0;
655 #endif
656 g.fAnyTrace = g.fSqlTrace|g.fSystemTrace|g.fSshTrace|g.fHttpTrace;
 
657 g.zHttpAuth = 0;
658 g.zLogin = find_option("user", "U", 1);
659 g.zSSLIdentity = find_option("ssl-identity", 0, 1);
660 g.zErrlog = find_option("errorlog", 0, 1);
661 fossil_init_flags_from_options();
@@ -1760,10 +1768,14 @@
1760 @ <h1>Server Configuration Error</h1>
1761 @ <p>The database schema on the server is out-of-date. Please ask
1762 @ the administrator to run <b>fossil rebuild</b>.</p>
1763 }
1764 }else{
 
 
 
 
1765 #ifdef FOSSIL_ENABLE_TH1_HOOKS
1766 /*
1767 ** The TH1 return codes from the hook will be handled as follows:
1768 **
1769 ** TH_OK: The xFunc() and the TH1 notification will both be executed.
1770
--- src/main.c
+++ src/main.c
@@ -83,10 +83,15 @@
83 char TktFmt; /* t: create new ticket report formats */
84 char RdAddr; /* e: read email addresses or other private data */
85 char Zip; /* z: download zipped artifact via /zip URL */
86 char Private; /* x: can send and receive private content */
87 char WrUnver; /* y: can push unversioned content */
88 char RdForum; /* 2: Read forum posts */
89 char WrForum; /* 3: Create new forum posts */
90 char WrTForum; /* 4: Post to forums not subject to moderation */
91 char ModForum; /* 5: Moderate (approve or reject) forum posts */
92 char AdminForum; /* 6: Edit forum posts by other users */
93 };
94
95 #ifdef FOSSIL_ENABLE_TCL
96 /*
97 ** All Tcl related context information is in this structure. This structure
@@ -133,11 +138,12 @@
138 char *zLocalRoot; /* The directory holding the local database */
139 int minPrefix; /* Number of digits needed for a distinct UUID */
140 int eHashPolicy; /* Current hash policy. One of HPOLICY_* */
141 int fSqlTrace; /* True if --sqltrace flag is present */
142 int fSqlStats; /* True if --sqltrace or --sqlstats are present */
143 int fSqlPrint; /* True if --sqlprint flag is present */
144 int fCgiTrace; /* True if --cgitrace is enabled */
145 int fQuiet; /* True if -quiet flag is present */
146 int fJail; /* True if running with a chroot jail */
147 int fHttpTrace; /* Trace outbound HTTP requests */
148 int fAnyTrace; /* Any kind of tracing */
149 char *zHttpAuth; /* HTTP Authorization user:pass information */
@@ -644,18 +650,20 @@
650 g.fQuiet = find_option("quiet", 0, 0)!=0;
651 g.fSqlTrace = find_option("sqltrace", 0, 0)!=0;
652 g.fSqlStats = find_option("sqlstats", 0, 0)!=0;
653 g.fSystemTrace = find_option("systemtrace", 0, 0)!=0;
654 g.fSshTrace = find_option("sshtrace", 0, 0)!=0;
655 g.fCgiTrace = find_option("cgitrace", 0, 0)!=0;
656 g.fSshClient = 0;
657 g.zSshCmd = 0;
658 if( g.fSqlTrace ) g.fSqlStats = 1;
659 g.fHttpTrace = find_option("httptrace", 0, 0)!=0;
660 #ifdef FOSSIL_ENABLE_TH1_HOOKS
661 g.fNoThHook = find_option("no-th-hook", 0, 0)!=0;
662 #endif
663 g.fAnyTrace = g.fSqlTrace|g.fSystemTrace|g.fSshTrace|
664 g.fHttpTrace|g.fCgiTrace;
665 g.zHttpAuth = 0;
666 g.zLogin = find_option("user", "U", 1);
667 g.zSSLIdentity = find_option("ssl-identity", 0, 1);
668 g.zErrlog = find_option("errorlog", 0, 1);
669 fossil_init_flags_from_options();
@@ -1760,10 +1768,14 @@
1768 @ <h1>Server Configuration Error</h1>
1769 @ <p>The database schema on the server is out-of-date. Please ask
1770 @ the administrator to run <b>fossil rebuild</b>.</p>
1771 }
1772 }else{
1773 if( g.fCgiTrace ){
1774 fossil_trace("######## Calling %s #########\n", pCmd->zName);
1775 cgi_print_all(1, 1);
1776 }
1777 #ifdef FOSSIL_ENABLE_TH1_HOOKS
1778 /*
1779 ** The TH1 return codes from the hook will be handled as follows:
1780 **
1781 ** TH_OK: The xFunc() and the TH1 notification will both be executed.
1782
+12
--- src/main.mk
+++ src/main.mk
@@ -50,10 +50,11 @@
5050
$(SRCDIR)/event.c \
5151
$(SRCDIR)/export.c \
5252
$(SRCDIR)/file.c \
5353
$(SRCDIR)/finfo.c \
5454
$(SRCDIR)/foci.c \
55
+ $(SRCDIR)/forum.c \
5556
$(SRCDIR)/fshell.c \
5657
$(SRCDIR)/fusefs.c \
5758
$(SRCDIR)/glob.c \
5859
$(SRCDIR)/graph.c \
5960
$(SRCDIR)/gzip.c \
@@ -252,10 +253,11 @@
252253
$(OBJDIR)/event_.c \
253254
$(OBJDIR)/export_.c \
254255
$(OBJDIR)/file_.c \
255256
$(OBJDIR)/finfo_.c \
256257
$(OBJDIR)/foci_.c \
258
+ $(OBJDIR)/forum_.c \
257259
$(OBJDIR)/fshell_.c \
258260
$(OBJDIR)/fusefs_.c \
259261
$(OBJDIR)/glob_.c \
260262
$(OBJDIR)/graph_.c \
261263
$(OBJDIR)/gzip_.c \
@@ -383,10 +385,11 @@
383385
$(OBJDIR)/event.o \
384386
$(OBJDIR)/export.o \
385387
$(OBJDIR)/file.o \
386388
$(OBJDIR)/finfo.o \
387389
$(OBJDIR)/foci.o \
390
+ $(OBJDIR)/forum.o \
388391
$(OBJDIR)/fshell.o \
389392
$(OBJDIR)/fusefs.o \
390393
$(OBJDIR)/glob.o \
391394
$(OBJDIR)/graph.o \
392395
$(OBJDIR)/gzip.o \
@@ -712,10 +715,11 @@
712715
$(OBJDIR)/event_.c:$(OBJDIR)/event.h \
713716
$(OBJDIR)/export_.c:$(OBJDIR)/export.h \
714717
$(OBJDIR)/file_.c:$(OBJDIR)/file.h \
715718
$(OBJDIR)/finfo_.c:$(OBJDIR)/finfo.h \
716719
$(OBJDIR)/foci_.c:$(OBJDIR)/foci.h \
720
+ $(OBJDIR)/forum_.c:$(OBJDIR)/forum.h \
717721
$(OBJDIR)/fshell_.c:$(OBJDIR)/fshell.h \
718722
$(OBJDIR)/fusefs_.c:$(OBJDIR)/fusefs.h \
719723
$(OBJDIR)/glob_.c:$(OBJDIR)/glob.h \
720724
$(OBJDIR)/graph_.c:$(OBJDIR)/graph.h \
721725
$(OBJDIR)/gzip_.c:$(OBJDIR)/gzip.h \
@@ -1106,10 +1110,18 @@
11061110
11071111
$(OBJDIR)/foci.o: $(OBJDIR)/foci_.c $(OBJDIR)/foci.h $(SRCDIR)/config.h
11081112
$(XTCC) -o $(OBJDIR)/foci.o -c $(OBJDIR)/foci_.c
11091113
11101114
$(OBJDIR)/foci.h: $(OBJDIR)/headers
1115
+
1116
+$(OBJDIR)/forum_.c: $(SRCDIR)/forum.c $(OBJDIR)/translate
1117
+ $(OBJDIR)/translate $(SRCDIR)/forum.c >$@
1118
+
1119
+$(OBJDIR)/forum.o: $(OBJDIR)/forum_.c $(OBJDIR)/forum.h $(SRCDIR)/config.h
1120
+ $(XTCC) -o $(OBJDIR)/forum.o -c $(OBJDIR)/forum_.c
1121
+
1122
+$(OBJDIR)/forum.h: $(OBJDIR)/headers
11111123
11121124
$(OBJDIR)/fshell_.c: $(SRCDIR)/fshell.c $(OBJDIR)/translate
11131125
$(OBJDIR)/translate $(SRCDIR)/fshell.c >$@
11141126
11151127
$(OBJDIR)/fshell.o: $(OBJDIR)/fshell_.c $(OBJDIR)/fshell.h $(SRCDIR)/config.h
11161128
--- src/main.mk
+++ src/main.mk
@@ -50,10 +50,11 @@
50 $(SRCDIR)/event.c \
51 $(SRCDIR)/export.c \
52 $(SRCDIR)/file.c \
53 $(SRCDIR)/finfo.c \
54 $(SRCDIR)/foci.c \
 
55 $(SRCDIR)/fshell.c \
56 $(SRCDIR)/fusefs.c \
57 $(SRCDIR)/glob.c \
58 $(SRCDIR)/graph.c \
59 $(SRCDIR)/gzip.c \
@@ -252,10 +253,11 @@
252 $(OBJDIR)/event_.c \
253 $(OBJDIR)/export_.c \
254 $(OBJDIR)/file_.c \
255 $(OBJDIR)/finfo_.c \
256 $(OBJDIR)/foci_.c \
 
257 $(OBJDIR)/fshell_.c \
258 $(OBJDIR)/fusefs_.c \
259 $(OBJDIR)/glob_.c \
260 $(OBJDIR)/graph_.c \
261 $(OBJDIR)/gzip_.c \
@@ -383,10 +385,11 @@
383 $(OBJDIR)/event.o \
384 $(OBJDIR)/export.o \
385 $(OBJDIR)/file.o \
386 $(OBJDIR)/finfo.o \
387 $(OBJDIR)/foci.o \
 
388 $(OBJDIR)/fshell.o \
389 $(OBJDIR)/fusefs.o \
390 $(OBJDIR)/glob.o \
391 $(OBJDIR)/graph.o \
392 $(OBJDIR)/gzip.o \
@@ -712,10 +715,11 @@
712 $(OBJDIR)/event_.c:$(OBJDIR)/event.h \
713 $(OBJDIR)/export_.c:$(OBJDIR)/export.h \
714 $(OBJDIR)/file_.c:$(OBJDIR)/file.h \
715 $(OBJDIR)/finfo_.c:$(OBJDIR)/finfo.h \
716 $(OBJDIR)/foci_.c:$(OBJDIR)/foci.h \
 
717 $(OBJDIR)/fshell_.c:$(OBJDIR)/fshell.h \
718 $(OBJDIR)/fusefs_.c:$(OBJDIR)/fusefs.h \
719 $(OBJDIR)/glob_.c:$(OBJDIR)/glob.h \
720 $(OBJDIR)/graph_.c:$(OBJDIR)/graph.h \
721 $(OBJDIR)/gzip_.c:$(OBJDIR)/gzip.h \
@@ -1106,10 +1110,18 @@
1106
1107 $(OBJDIR)/foci.o: $(OBJDIR)/foci_.c $(OBJDIR)/foci.h $(SRCDIR)/config.h
1108 $(XTCC) -o $(OBJDIR)/foci.o -c $(OBJDIR)/foci_.c
1109
1110 $(OBJDIR)/foci.h: $(OBJDIR)/headers
 
 
 
 
 
 
 
 
1111
1112 $(OBJDIR)/fshell_.c: $(SRCDIR)/fshell.c $(OBJDIR)/translate
1113 $(OBJDIR)/translate $(SRCDIR)/fshell.c >$@
1114
1115 $(OBJDIR)/fshell.o: $(OBJDIR)/fshell_.c $(OBJDIR)/fshell.h $(SRCDIR)/config.h
1116
--- src/main.mk
+++ src/main.mk
@@ -50,10 +50,11 @@
50 $(SRCDIR)/event.c \
51 $(SRCDIR)/export.c \
52 $(SRCDIR)/file.c \
53 $(SRCDIR)/finfo.c \
54 $(SRCDIR)/foci.c \
55 $(SRCDIR)/forum.c \
56 $(SRCDIR)/fshell.c \
57 $(SRCDIR)/fusefs.c \
58 $(SRCDIR)/glob.c \
59 $(SRCDIR)/graph.c \
60 $(SRCDIR)/gzip.c \
@@ -252,10 +253,11 @@
253 $(OBJDIR)/event_.c \
254 $(OBJDIR)/export_.c \
255 $(OBJDIR)/file_.c \
256 $(OBJDIR)/finfo_.c \
257 $(OBJDIR)/foci_.c \
258 $(OBJDIR)/forum_.c \
259 $(OBJDIR)/fshell_.c \
260 $(OBJDIR)/fusefs_.c \
261 $(OBJDIR)/glob_.c \
262 $(OBJDIR)/graph_.c \
263 $(OBJDIR)/gzip_.c \
@@ -383,10 +385,11 @@
385 $(OBJDIR)/event.o \
386 $(OBJDIR)/export.o \
387 $(OBJDIR)/file.o \
388 $(OBJDIR)/finfo.o \
389 $(OBJDIR)/foci.o \
390 $(OBJDIR)/forum.o \
391 $(OBJDIR)/fshell.o \
392 $(OBJDIR)/fusefs.o \
393 $(OBJDIR)/glob.o \
394 $(OBJDIR)/graph.o \
395 $(OBJDIR)/gzip.o \
@@ -712,10 +715,11 @@
715 $(OBJDIR)/event_.c:$(OBJDIR)/event.h \
716 $(OBJDIR)/export_.c:$(OBJDIR)/export.h \
717 $(OBJDIR)/file_.c:$(OBJDIR)/file.h \
718 $(OBJDIR)/finfo_.c:$(OBJDIR)/finfo.h \
719 $(OBJDIR)/foci_.c:$(OBJDIR)/foci.h \
720 $(OBJDIR)/forum_.c:$(OBJDIR)/forum.h \
721 $(OBJDIR)/fshell_.c:$(OBJDIR)/fshell.h \
722 $(OBJDIR)/fusefs_.c:$(OBJDIR)/fusefs.h \
723 $(OBJDIR)/glob_.c:$(OBJDIR)/glob.h \
724 $(OBJDIR)/graph_.c:$(OBJDIR)/graph.h \
725 $(OBJDIR)/gzip_.c:$(OBJDIR)/gzip.h \
@@ -1106,10 +1110,18 @@
1110
1111 $(OBJDIR)/foci.o: $(OBJDIR)/foci_.c $(OBJDIR)/foci.h $(SRCDIR)/config.h
1112 $(XTCC) -o $(OBJDIR)/foci.o -c $(OBJDIR)/foci_.c
1113
1114 $(OBJDIR)/foci.h: $(OBJDIR)/headers
1115
1116 $(OBJDIR)/forum_.c: $(SRCDIR)/forum.c $(OBJDIR)/translate
1117 $(OBJDIR)/translate $(SRCDIR)/forum.c >$@
1118
1119 $(OBJDIR)/forum.o: $(OBJDIR)/forum_.c $(OBJDIR)/forum.h $(SRCDIR)/config.h
1120 $(XTCC) -o $(OBJDIR)/forum.o -c $(OBJDIR)/forum_.c
1121
1122 $(OBJDIR)/forum.h: $(OBJDIR)/headers
1123
1124 $(OBJDIR)/fshell_.c: $(SRCDIR)/fshell.c $(OBJDIR)/translate
1125 $(OBJDIR)/translate $(SRCDIR)/fshell.c >$@
1126
1127 $(OBJDIR)/fshell.o: $(OBJDIR)/fshell_.c $(OBJDIR)/fshell.h $(SRCDIR)/config.h
1128
+12
--- src/main.mk
+++ src/main.mk
@@ -50,10 +50,11 @@
5050
$(SRCDIR)/event.c \
5151
$(SRCDIR)/export.c \
5252
$(SRCDIR)/file.c \
5353
$(SRCDIR)/finfo.c \
5454
$(SRCDIR)/foci.c \
55
+ $(SRCDIR)/forum.c \
5556
$(SRCDIR)/fshell.c \
5657
$(SRCDIR)/fusefs.c \
5758
$(SRCDIR)/glob.c \
5859
$(SRCDIR)/graph.c \
5960
$(SRCDIR)/gzip.c \
@@ -252,10 +253,11 @@
252253
$(OBJDIR)/event_.c \
253254
$(OBJDIR)/export_.c \
254255
$(OBJDIR)/file_.c \
255256
$(OBJDIR)/finfo_.c \
256257
$(OBJDIR)/foci_.c \
258
+ $(OBJDIR)/forum_.c \
257259
$(OBJDIR)/fshell_.c \
258260
$(OBJDIR)/fusefs_.c \
259261
$(OBJDIR)/glob_.c \
260262
$(OBJDIR)/graph_.c \
261263
$(OBJDIR)/gzip_.c \
@@ -383,10 +385,11 @@
383385
$(OBJDIR)/event.o \
384386
$(OBJDIR)/export.o \
385387
$(OBJDIR)/file.o \
386388
$(OBJDIR)/finfo.o \
387389
$(OBJDIR)/foci.o \
390
+ $(OBJDIR)/forum.o \
388391
$(OBJDIR)/fshell.o \
389392
$(OBJDIR)/fusefs.o \
390393
$(OBJDIR)/glob.o \
391394
$(OBJDIR)/graph.o \
392395
$(OBJDIR)/gzip.o \
@@ -712,10 +715,11 @@
712715
$(OBJDIR)/event_.c:$(OBJDIR)/event.h \
713716
$(OBJDIR)/export_.c:$(OBJDIR)/export.h \
714717
$(OBJDIR)/file_.c:$(OBJDIR)/file.h \
715718
$(OBJDIR)/finfo_.c:$(OBJDIR)/finfo.h \
716719
$(OBJDIR)/foci_.c:$(OBJDIR)/foci.h \
720
+ $(OBJDIR)/forum_.c:$(OBJDIR)/forum.h \
717721
$(OBJDIR)/fshell_.c:$(OBJDIR)/fshell.h \
718722
$(OBJDIR)/fusefs_.c:$(OBJDIR)/fusefs.h \
719723
$(OBJDIR)/glob_.c:$(OBJDIR)/glob.h \
720724
$(OBJDIR)/graph_.c:$(OBJDIR)/graph.h \
721725
$(OBJDIR)/gzip_.c:$(OBJDIR)/gzip.h \
@@ -1106,10 +1110,18 @@
11061110
11071111
$(OBJDIR)/foci.o: $(OBJDIR)/foci_.c $(OBJDIR)/foci.h $(SRCDIR)/config.h
11081112
$(XTCC) -o $(OBJDIR)/foci.o -c $(OBJDIR)/foci_.c
11091113
11101114
$(OBJDIR)/foci.h: $(OBJDIR)/headers
1115
+
1116
+$(OBJDIR)/forum_.c: $(SRCDIR)/forum.c $(OBJDIR)/translate
1117
+ $(OBJDIR)/translate $(SRCDIR)/forum.c >$@
1118
+
1119
+$(OBJDIR)/forum.o: $(OBJDIR)/forum_.c $(OBJDIR)/forum.h $(SRCDIR)/config.h
1120
+ $(XTCC) -o $(OBJDIR)/forum.o -c $(OBJDIR)/forum_.c
1121
+
1122
+$(OBJDIR)/forum.h: $(OBJDIR)/headers
11111123
11121124
$(OBJDIR)/fshell_.c: $(SRCDIR)/fshell.c $(OBJDIR)/translate
11131125
$(OBJDIR)/translate $(SRCDIR)/fshell.c >$@
11141126
11151127
$(OBJDIR)/fshell.o: $(OBJDIR)/fshell_.c $(OBJDIR)/fshell.h $(SRCDIR)/config.h
11161128
--- src/main.mk
+++ src/main.mk
@@ -50,10 +50,11 @@
50 $(SRCDIR)/event.c \
51 $(SRCDIR)/export.c \
52 $(SRCDIR)/file.c \
53 $(SRCDIR)/finfo.c \
54 $(SRCDIR)/foci.c \
 
55 $(SRCDIR)/fshell.c \
56 $(SRCDIR)/fusefs.c \
57 $(SRCDIR)/glob.c \
58 $(SRCDIR)/graph.c \
59 $(SRCDIR)/gzip.c \
@@ -252,10 +253,11 @@
252 $(OBJDIR)/event_.c \
253 $(OBJDIR)/export_.c \
254 $(OBJDIR)/file_.c \
255 $(OBJDIR)/finfo_.c \
256 $(OBJDIR)/foci_.c \
 
257 $(OBJDIR)/fshell_.c \
258 $(OBJDIR)/fusefs_.c \
259 $(OBJDIR)/glob_.c \
260 $(OBJDIR)/graph_.c \
261 $(OBJDIR)/gzip_.c \
@@ -383,10 +385,11 @@
383 $(OBJDIR)/event.o \
384 $(OBJDIR)/export.o \
385 $(OBJDIR)/file.o \
386 $(OBJDIR)/finfo.o \
387 $(OBJDIR)/foci.o \
 
388 $(OBJDIR)/fshell.o \
389 $(OBJDIR)/fusefs.o \
390 $(OBJDIR)/glob.o \
391 $(OBJDIR)/graph.o \
392 $(OBJDIR)/gzip.o \
@@ -712,10 +715,11 @@
712 $(OBJDIR)/event_.c:$(OBJDIR)/event.h \
713 $(OBJDIR)/export_.c:$(OBJDIR)/export.h \
714 $(OBJDIR)/file_.c:$(OBJDIR)/file.h \
715 $(OBJDIR)/finfo_.c:$(OBJDIR)/finfo.h \
716 $(OBJDIR)/foci_.c:$(OBJDIR)/foci.h \
 
717 $(OBJDIR)/fshell_.c:$(OBJDIR)/fshell.h \
718 $(OBJDIR)/fusefs_.c:$(OBJDIR)/fusefs.h \
719 $(OBJDIR)/glob_.c:$(OBJDIR)/glob.h \
720 $(OBJDIR)/graph_.c:$(OBJDIR)/graph.h \
721 $(OBJDIR)/gzip_.c:$(OBJDIR)/gzip.h \
@@ -1106,10 +1110,18 @@
1106
1107 $(OBJDIR)/foci.o: $(OBJDIR)/foci_.c $(OBJDIR)/foci.h $(SRCDIR)/config.h
1108 $(XTCC) -o $(OBJDIR)/foci.o -c $(OBJDIR)/foci_.c
1109
1110 $(OBJDIR)/foci.h: $(OBJDIR)/headers
 
 
 
 
 
 
 
 
1111
1112 $(OBJDIR)/fshell_.c: $(SRCDIR)/fshell.c $(OBJDIR)/translate
1113 $(OBJDIR)/translate $(SRCDIR)/fshell.c >$@
1114
1115 $(OBJDIR)/fshell.o: $(OBJDIR)/fshell_.c $(OBJDIR)/fshell.h $(SRCDIR)/config.h
1116
--- src/main.mk
+++ src/main.mk
@@ -50,10 +50,11 @@
50 $(SRCDIR)/event.c \
51 $(SRCDIR)/export.c \
52 $(SRCDIR)/file.c \
53 $(SRCDIR)/finfo.c \
54 $(SRCDIR)/foci.c \
55 $(SRCDIR)/forum.c \
56 $(SRCDIR)/fshell.c \
57 $(SRCDIR)/fusefs.c \
58 $(SRCDIR)/glob.c \
59 $(SRCDIR)/graph.c \
60 $(SRCDIR)/gzip.c \
@@ -252,10 +253,11 @@
253 $(OBJDIR)/event_.c \
254 $(OBJDIR)/export_.c \
255 $(OBJDIR)/file_.c \
256 $(OBJDIR)/finfo_.c \
257 $(OBJDIR)/foci_.c \
258 $(OBJDIR)/forum_.c \
259 $(OBJDIR)/fshell_.c \
260 $(OBJDIR)/fusefs_.c \
261 $(OBJDIR)/glob_.c \
262 $(OBJDIR)/graph_.c \
263 $(OBJDIR)/gzip_.c \
@@ -383,10 +385,11 @@
385 $(OBJDIR)/event.o \
386 $(OBJDIR)/export.o \
387 $(OBJDIR)/file.o \
388 $(OBJDIR)/finfo.o \
389 $(OBJDIR)/foci.o \
390 $(OBJDIR)/forum.o \
391 $(OBJDIR)/fshell.o \
392 $(OBJDIR)/fusefs.o \
393 $(OBJDIR)/glob.o \
394 $(OBJDIR)/graph.o \
395 $(OBJDIR)/gzip.o \
@@ -712,10 +715,11 @@
715 $(OBJDIR)/event_.c:$(OBJDIR)/event.h \
716 $(OBJDIR)/export_.c:$(OBJDIR)/export.h \
717 $(OBJDIR)/file_.c:$(OBJDIR)/file.h \
718 $(OBJDIR)/finfo_.c:$(OBJDIR)/finfo.h \
719 $(OBJDIR)/foci_.c:$(OBJDIR)/foci.h \
720 $(OBJDIR)/forum_.c:$(OBJDIR)/forum.h \
721 $(OBJDIR)/fshell_.c:$(OBJDIR)/fshell.h \
722 $(OBJDIR)/fusefs_.c:$(OBJDIR)/fusefs.h \
723 $(OBJDIR)/glob_.c:$(OBJDIR)/glob.h \
724 $(OBJDIR)/graph_.c:$(OBJDIR)/graph.h \
725 $(OBJDIR)/gzip_.c:$(OBJDIR)/gzip.h \
@@ -1106,10 +1110,18 @@
1110
1111 $(OBJDIR)/foci.o: $(OBJDIR)/foci_.c $(OBJDIR)/foci.h $(SRCDIR)/config.h
1112 $(XTCC) -o $(OBJDIR)/foci.o -c $(OBJDIR)/foci_.c
1113
1114 $(OBJDIR)/foci.h: $(OBJDIR)/headers
1115
1116 $(OBJDIR)/forum_.c: $(SRCDIR)/forum.c $(OBJDIR)/translate
1117 $(OBJDIR)/translate $(SRCDIR)/forum.c >$@
1118
1119 $(OBJDIR)/forum.o: $(OBJDIR)/forum_.c $(OBJDIR)/forum.h $(SRCDIR)/config.h
1120 $(XTCC) -o $(OBJDIR)/forum.o -c $(OBJDIR)/forum_.c
1121
1122 $(OBJDIR)/forum.h: $(OBJDIR)/headers
1123
1124 $(OBJDIR)/fshell_.c: $(SRCDIR)/fshell.c $(OBJDIR)/translate
1125 $(OBJDIR)/translate $(SRCDIR)/fshell.c >$@
1126
1127 $(OBJDIR)/fshell.o: $(OBJDIR)/fshell_.c $(OBJDIR)/fshell.h $(SRCDIR)/config.h
1128
--- src/makemake.tcl
+++ src/makemake.tcl
@@ -62,10 +62,11 @@
6262
event
6363
export
6464
file
6565
finfo
6666
foci
67
+ forum
6768
fshell
6869
fusefs
6970
glob
7071
graph
7172
gzip
7273
--- src/makemake.tcl
+++ src/makemake.tcl
@@ -62,10 +62,11 @@
62 event
63 export
64 file
65 finfo
66 foci
 
67 fshell
68 fusefs
69 glob
70 graph
71 gzip
72
--- src/makemake.tcl
+++ src/makemake.tcl
@@ -62,10 +62,11 @@
62 event
63 export
64 file
65 finfo
66 foci
67 forum
68 fshell
69 fusefs
70 glob
71 graph
72 gzip
73
--- src/makemake.tcl
+++ src/makemake.tcl
@@ -62,10 +62,11 @@
6262
event
6363
export
6464
file
6565
finfo
6666
foci
67
+ forum
6768
fshell
6869
fusefs
6970
glob
7071
graph
7172
gzip
7273
--- src/makemake.tcl
+++ src/makemake.tcl
@@ -62,10 +62,11 @@
62 event
63 export
64 file
65 finfo
66 foci
 
67 fshell
68 fusefs
69 glob
70 graph
71 gzip
72
--- src/makemake.tcl
+++ src/makemake.tcl
@@ -62,10 +62,11 @@
62 event
63 export
64 file
65 finfo
66 foci
67 forum
68 fshell
69 fusefs
70 glob
71 graph
72 gzip
73
+44 -12
--- src/setup.c
+++ src/setup.c
@@ -351,10 +351,21 @@
351351
@ <td><i>Private:</i> Push and/or pull private branches</td></tr>
352352
@ <tr><th valign="top">y</th>
353353
@ <td><i>Write-Unver:</i> Push unversioned files</td></tr>
354354
@ <tr><th valign="top">z</th>
355355
@ <td><i>Zip download:</i> Download a ZIP archive or tarball</td></tr>
356
+ @ <tr><th valign="top">2</th>
357
+ @ <td><i>Forum-Read:</i> Read forum posts by others </td></tr>
358
+ @ <tr><th valign="top">3</th>
359
+ @ <td><i>Forum-Append:</i> Add new forum posts</td></tr>
360
+ @ <tr><th valign="top">4</th>
361
+ @ <td><i>Forum-Trusted:</i> Add pre-approved forum posts </td></tr>
362
+ @ <tr><th valign="top">5</th>
363
+ @ <td><i>Forum-Moderator:</i> Approve or disapprove forum posts</td></tr>
364
+ @ <tr><th valign="top">6</th>
365
+ @ <td><i>Forum-Supervisor:</i> \
366
+ @ Edit forum posts submitted by others</td></tr>
356367
@ </table>
357368
}
358369
359370
/*
360371
** WEBPAGE: setup_ulist_notes
@@ -473,14 +484,19 @@
473484
** to the page that displays a list of users.
474485
*/
475486
doWrite = cgi_all("login","info","pw") && !higherUser && cgi_csrf_safe(1);
476487
if( doWrite ){
477488
char c;
478
- char zCap[50], zNm[4];
489
+ char zCap[60], zNm[4];
479490
zNm[0] = 'a';
480491
zNm[2] = 0;
481492
for(i=0, c='a'; c<='z'; c++){
493
+ zNm[1] = c;
494
+ a[c&0x7f] = (c!='s' || g.perm.Setup) && P(zNm)!=0;
495
+ if( a[c&0x7f] ) zCap[i++] = c;
496
+ }
497
+ for(c='0'; c<='9'; c++){
482498
zNm[1] = c;
483499
a[c&0x7f] = (c!='s' || g.perm.Setup) && P(zNm)!=0;
484500
if( a[c&0x7f] ) zCap[i++] = c;
485501
}
486502
@@ -572,18 +588,21 @@
572588
zLogin = "";
573589
zInfo = "";
574590
zCap = "";
575591
zPw = "";
576592
for(i='a'; i<='z'; i++) oa[i] = "";
593
+ for(i='0'; i<='9'; i++) oa[i] = "";
577594
if( uid ){
578595
zLogin = db_text("", "SELECT login FROM user WHERE uid=%d", uid);
579596
zInfo = db_text("", "SELECT info FROM user WHERE uid=%d", uid);
580597
zCap = db_text("", "SELECT cap FROM user WHERE uid=%d", uid);
581598
zPw = db_text("", "SELECT pw FROM user WHERE uid=%d", uid);
582599
for(i=0; zCap[i]; i++){
583600
char c = zCap[i];
584
- if( c>='a' && c<='z' ) oa[c&0x7f] = " checked=\"checked\"";
601
+ if( (c>='a' && c<='z') || (c>='0' && c<='9') ){
602
+ oa[c&0x7f] = " checked=\"checked\"";
603
+ }
585604
}
586605
}
587606
588607
/* figure out inherited permissions */
589608
memset((char *)inherit, 0, sizeof(inherit));
@@ -672,10 +691,14 @@
672691
@ <label><input type="checkbox" name="as"%s(oa['s']) />
673692
@ Setup%s(B('s'))</label><br />
674693
}
675694
@ <label><input type="checkbox" name="aa"%s(oa['a']) />
676695
@ Admin%s(B('a'))</label><br />
696
+ @ <label><input type="checkbox" name="au"%s(oa['u']) />
697
+ @ Reader%s(B('u'))</label><br>
698
+ @ <label><input type="checkbox" name="av"%s(oa['v']) />
699
+ @ Developer%s(B('v'))</label><br />
677700
@ <label><input type="checkbox" name="ad"%s(oa['d']) />
678701
@ Delete%s(B('d'))</label><br />
679702
@ <label><input type="checkbox" name="ae"%s(oa['e']) />
680703
@ Email%s(B('e'))</label><br />
681704
@ <label><input type="checkbox" name="ap"%s(oa['p']) />
@@ -685,55 +708,64 @@
685708
@ <label><input type="checkbox" name="ao"%s(oa['o']) />
686709
@ Check-Out%s(B('o'))</label><br />
687710
@ <label><input type="checkbox" name="ah"%s(oa['h']) />
688711
@ Hyperlinks%s(B('h'))</label><br />
689712
@ <label><input type="checkbox" name="ab"%s(oa['b']) />
690
- @ Attachments%s(B('b'))</label><br />
713
+ @ Attachments%s(B('b'))</label>
714
+
691715
@ </td><td><td width="40"></td><td valign="top">
692
- @ <label><input type="checkbox" name="au"%s(oa['u']) />
693
- @ Reader%s(B('u'))</label><br />
694
- @ <label><input type="checkbox" name="av"%s(oa['v']) />
695
- @ Developer%s(B('v'))</label><br />
696716
@ <label><input type="checkbox" name="ag"%s(oa['g']) />
697717
@ Clone%s(B('g'))</label><br />
698718
@ <label><input type="checkbox" name="aj"%s(oa['j']) />
699
- @ Read Wiki%s(B('j'))</label><br />
719
+ @ Read Wiki%s(B('j'))</label><br>
700720
@ <label><input type="checkbox" name="af"%s(oa['f']) />
701721
@ New Wiki%s(B('f'))</label><br />
702722
@ <label><input type="checkbox" name="am"%s(oa['m']) />
703723
@ Append Wiki%s(B('m'))</label><br />
704724
@ <label><input type="checkbox" name="ak"%s(oa['k']) />
705725
@ Write Wiki%s(B('k'))</label><br />
706726
@ <label><input type="checkbox" name="al"%s(oa['l']) />
707727
@ Moderate Wiki%s(B('l'))</label><br />
708
- @ </td><td><td width="40"></td><td valign="top">
709728
@ <label><input type="checkbox" name="ar"%s(oa['r']) />
710729
@ Read Ticket%s(B('r'))</label><br />
711730
@ <label><input type="checkbox" name="an"%s(oa['n']) />
712731
@ New Tickets%s(B('n'))</label><br />
713732
@ <label><input type="checkbox" name="ac"%s(oa['c']) />
714
- @ Append To Ticket%s(B('c'))</label><br />
733
+ @ Append To Ticket%s(B('c'))</label><br>
715734
@ <label><input type="checkbox" name="aw"%s(oa['w']) />
716735
@ Write Tickets%s(B('w'))</label><br />
717736
@ <label><input type="checkbox" name="aq"%s(oa['q']) />
718
- @ Moderate Tickets%s(B('q'))</label><br />
737
+ @ Moderate Tickets%s(B('q'))</label>
738
+
739
+ @ </td><td><td width="40"></td><td valign="top">
719740
@ <label><input type="checkbox" name="at"%s(oa['t']) />
720741
@ Ticket Report%s(B('t'))</label><br />
721742
@ <label><input type="checkbox" name="ax"%s(oa['x']) />
722743
@ Private%s(B('x'))</label><br />
723744
@ <label><input type="checkbox" name="ay"%s(oa['y']) />
724745
@ Write Unversioned%s(B('y'))</label><br />
725746
@ <label><input type="checkbox" name="az"%s(oa['z']) />
726
- @ Download Zip%s(B('z'))</label>
747
+ @ Download Zip%s(B('z'))</label><br />
748
+ @ <label><input type="checkbox" name="a2"%s(oa['2']) />
749
+ @ Read Forum%s(B('2'))</label><br />
750
+ @ <label><input type="checkbox" name="a3"%s(oa['3']) />
751
+ @ Write Forum%s(B('3'))</label><br />
752
+ @ <label><input type="checkbox" name="a4"%s(oa['4']) />
753
+ @ WriteTrusted Forum%s(B('4'))</label><br>
754
+ @ <label><input type="checkbox" name="a5"%s(oa['5']) />
755
+ @ Moderate Forum%s(B('5'))</label><br>
756
+ @ <label><input type="checkbox" name="a6"%s(oa['6']) />
757
+ @ Supervise Forum%s(B('6'))</label>
727758
@ </td></tr>
728759
@ </table>
729760
@ </td>
730761
@ </tr>
731762
@ <tr>
732763
@ <td class="usetupEditLabel">Selected Cap.:</td>
733764
@ <td>
734765
@ <span id="usetupEditCapability">(missing JS?)</span>
766
+ @ <a href="%R/setup_ucap_list">(key)</a>
735767
@ </td>
736768
@ </tr>
737769
if( !login_is_special(zLogin) ){
738770
@ <tr>
739771
@ <td align="right">Password:</td>
740772
--- src/setup.c
+++ src/setup.c
@@ -351,10 +351,21 @@
351 @ <td><i>Private:</i> Push and/or pull private branches</td></tr>
352 @ <tr><th valign="top">y</th>
353 @ <td><i>Write-Unver:</i> Push unversioned files</td></tr>
354 @ <tr><th valign="top">z</th>
355 @ <td><i>Zip download:</i> Download a ZIP archive or tarball</td></tr>
 
 
 
 
 
 
 
 
 
 
 
356 @ </table>
357 }
358
359 /*
360 ** WEBPAGE: setup_ulist_notes
@@ -473,14 +484,19 @@
473 ** to the page that displays a list of users.
474 */
475 doWrite = cgi_all("login","info","pw") && !higherUser && cgi_csrf_safe(1);
476 if( doWrite ){
477 char c;
478 char zCap[50], zNm[4];
479 zNm[0] = 'a';
480 zNm[2] = 0;
481 for(i=0, c='a'; c<='z'; c++){
 
 
 
 
 
482 zNm[1] = c;
483 a[c&0x7f] = (c!='s' || g.perm.Setup) && P(zNm)!=0;
484 if( a[c&0x7f] ) zCap[i++] = c;
485 }
486
@@ -572,18 +588,21 @@
572 zLogin = "";
573 zInfo = "";
574 zCap = "";
575 zPw = "";
576 for(i='a'; i<='z'; i++) oa[i] = "";
 
577 if( uid ){
578 zLogin = db_text("", "SELECT login FROM user WHERE uid=%d", uid);
579 zInfo = db_text("", "SELECT info FROM user WHERE uid=%d", uid);
580 zCap = db_text("", "SELECT cap FROM user WHERE uid=%d", uid);
581 zPw = db_text("", "SELECT pw FROM user WHERE uid=%d", uid);
582 for(i=0; zCap[i]; i++){
583 char c = zCap[i];
584 if( c>='a' && c<='z' ) oa[c&0x7f] = " checked=\"checked\"";
 
 
585 }
586 }
587
588 /* figure out inherited permissions */
589 memset((char *)inherit, 0, sizeof(inherit));
@@ -672,10 +691,14 @@
672 @ <label><input type="checkbox" name="as"%s(oa['s']) />
673 @ Setup%s(B('s'))</label><br />
674 }
675 @ <label><input type="checkbox" name="aa"%s(oa['a']) />
676 @ Admin%s(B('a'))</label><br />
 
 
 
 
677 @ <label><input type="checkbox" name="ad"%s(oa['d']) />
678 @ Delete%s(B('d'))</label><br />
679 @ <label><input type="checkbox" name="ae"%s(oa['e']) />
680 @ Email%s(B('e'))</label><br />
681 @ <label><input type="checkbox" name="ap"%s(oa['p']) />
@@ -685,55 +708,64 @@
685 @ <label><input type="checkbox" name="ao"%s(oa['o']) />
686 @ Check-Out%s(B('o'))</label><br />
687 @ <label><input type="checkbox" name="ah"%s(oa['h']) />
688 @ Hyperlinks%s(B('h'))</label><br />
689 @ <label><input type="checkbox" name="ab"%s(oa['b']) />
690 @ Attachments%s(B('b'))</label><br />
 
691 @ </td><td><td width="40"></td><td valign="top">
692 @ <label><input type="checkbox" name="au"%s(oa['u']) />
693 @ Reader%s(B('u'))</label><br />
694 @ <label><input type="checkbox" name="av"%s(oa['v']) />
695 @ Developer%s(B('v'))</label><br />
696 @ <label><input type="checkbox" name="ag"%s(oa['g']) />
697 @ Clone%s(B('g'))</label><br />
698 @ <label><input type="checkbox" name="aj"%s(oa['j']) />
699 @ Read Wiki%s(B('j'))</label><br />
700 @ <label><input type="checkbox" name="af"%s(oa['f']) />
701 @ New Wiki%s(B('f'))</label><br />
702 @ <label><input type="checkbox" name="am"%s(oa['m']) />
703 @ Append Wiki%s(B('m'))</label><br />
704 @ <label><input type="checkbox" name="ak"%s(oa['k']) />
705 @ Write Wiki%s(B('k'))</label><br />
706 @ <label><input type="checkbox" name="al"%s(oa['l']) />
707 @ Moderate Wiki%s(B('l'))</label><br />
708 @ </td><td><td width="40"></td><td valign="top">
709 @ <label><input type="checkbox" name="ar"%s(oa['r']) />
710 @ Read Ticket%s(B('r'))</label><br />
711 @ <label><input type="checkbox" name="an"%s(oa['n']) />
712 @ New Tickets%s(B('n'))</label><br />
713 @ <label><input type="checkbox" name="ac"%s(oa['c']) />
714 @ Append To Ticket%s(B('c'))</label><br />
715 @ <label><input type="checkbox" name="aw"%s(oa['w']) />
716 @ Write Tickets%s(B('w'))</label><br />
717 @ <label><input type="checkbox" name="aq"%s(oa['q']) />
718 @ Moderate Tickets%s(B('q'))</label><br />
 
 
719 @ <label><input type="checkbox" name="at"%s(oa['t']) />
720 @ Ticket Report%s(B('t'))</label><br />
721 @ <label><input type="checkbox" name="ax"%s(oa['x']) />
722 @ Private%s(B('x'))</label><br />
723 @ <label><input type="checkbox" name="ay"%s(oa['y']) />
724 @ Write Unversioned%s(B('y'))</label><br />
725 @ <label><input type="checkbox" name="az"%s(oa['z']) />
726 @ Download Zip%s(B('z'))</label>
 
 
 
 
 
 
 
 
 
 
727 @ </td></tr>
728 @ </table>
729 @ </td>
730 @ </tr>
731 @ <tr>
732 @ <td class="usetupEditLabel">Selected Cap.:</td>
733 @ <td>
734 @ <span id="usetupEditCapability">(missing JS?)</span>
 
735 @ </td>
736 @ </tr>
737 if( !login_is_special(zLogin) ){
738 @ <tr>
739 @ <td align="right">Password:</td>
740
--- src/setup.c
+++ src/setup.c
@@ -351,10 +351,21 @@
351 @ <td><i>Private:</i> Push and/or pull private branches</td></tr>
352 @ <tr><th valign="top">y</th>
353 @ <td><i>Write-Unver:</i> Push unversioned files</td></tr>
354 @ <tr><th valign="top">z</th>
355 @ <td><i>Zip download:</i> Download a ZIP archive or tarball</td></tr>
356 @ <tr><th valign="top">2</th>
357 @ <td><i>Forum-Read:</i> Read forum posts by others </td></tr>
358 @ <tr><th valign="top">3</th>
359 @ <td><i>Forum-Append:</i> Add new forum posts</td></tr>
360 @ <tr><th valign="top">4</th>
361 @ <td><i>Forum-Trusted:</i> Add pre-approved forum posts </td></tr>
362 @ <tr><th valign="top">5</th>
363 @ <td><i>Forum-Moderator:</i> Approve or disapprove forum posts</td></tr>
364 @ <tr><th valign="top">6</th>
365 @ <td><i>Forum-Supervisor:</i> \
366 @ Edit forum posts submitted by others</td></tr>
367 @ </table>
368 }
369
370 /*
371 ** WEBPAGE: setup_ulist_notes
@@ -473,14 +484,19 @@
484 ** to the page that displays a list of users.
485 */
486 doWrite = cgi_all("login","info","pw") && !higherUser && cgi_csrf_safe(1);
487 if( doWrite ){
488 char c;
489 char zCap[60], zNm[4];
490 zNm[0] = 'a';
491 zNm[2] = 0;
492 for(i=0, c='a'; c<='z'; c++){
493 zNm[1] = c;
494 a[c&0x7f] = (c!='s' || g.perm.Setup) && P(zNm)!=0;
495 if( a[c&0x7f] ) zCap[i++] = c;
496 }
497 for(c='0'; c<='9'; c++){
498 zNm[1] = c;
499 a[c&0x7f] = (c!='s' || g.perm.Setup) && P(zNm)!=0;
500 if( a[c&0x7f] ) zCap[i++] = c;
501 }
502
@@ -572,18 +588,21 @@
588 zLogin = "";
589 zInfo = "";
590 zCap = "";
591 zPw = "";
592 for(i='a'; i<='z'; i++) oa[i] = "";
593 for(i='0'; i<='9'; i++) oa[i] = "";
594 if( uid ){
595 zLogin = db_text("", "SELECT login FROM user WHERE uid=%d", uid);
596 zInfo = db_text("", "SELECT info FROM user WHERE uid=%d", uid);
597 zCap = db_text("", "SELECT cap FROM user WHERE uid=%d", uid);
598 zPw = db_text("", "SELECT pw FROM user WHERE uid=%d", uid);
599 for(i=0; zCap[i]; i++){
600 char c = zCap[i];
601 if( (c>='a' && c<='z') || (c>='0' && c<='9') ){
602 oa[c&0x7f] = " checked=\"checked\"";
603 }
604 }
605 }
606
607 /* figure out inherited permissions */
608 memset((char *)inherit, 0, sizeof(inherit));
@@ -672,10 +691,14 @@
691 @ <label><input type="checkbox" name="as"%s(oa['s']) />
692 @ Setup%s(B('s'))</label><br />
693 }
694 @ <label><input type="checkbox" name="aa"%s(oa['a']) />
695 @ Admin%s(B('a'))</label><br />
696 @ <label><input type="checkbox" name="au"%s(oa['u']) />
697 @ Reader%s(B('u'))</label><br>
698 @ <label><input type="checkbox" name="av"%s(oa['v']) />
699 @ Developer%s(B('v'))</label><br />
700 @ <label><input type="checkbox" name="ad"%s(oa['d']) />
701 @ Delete%s(B('d'))</label><br />
702 @ <label><input type="checkbox" name="ae"%s(oa['e']) />
703 @ Email%s(B('e'))</label><br />
704 @ <label><input type="checkbox" name="ap"%s(oa['p']) />
@@ -685,55 +708,64 @@
708 @ <label><input type="checkbox" name="ao"%s(oa['o']) />
709 @ Check-Out%s(B('o'))</label><br />
710 @ <label><input type="checkbox" name="ah"%s(oa['h']) />
711 @ Hyperlinks%s(B('h'))</label><br />
712 @ <label><input type="checkbox" name="ab"%s(oa['b']) />
713 @ Attachments%s(B('b'))</label>
714
715 @ </td><td><td width="40"></td><td valign="top">
 
 
 
 
716 @ <label><input type="checkbox" name="ag"%s(oa['g']) />
717 @ Clone%s(B('g'))</label><br />
718 @ <label><input type="checkbox" name="aj"%s(oa['j']) />
719 @ Read Wiki%s(B('j'))</label><br>
720 @ <label><input type="checkbox" name="af"%s(oa['f']) />
721 @ New Wiki%s(B('f'))</label><br />
722 @ <label><input type="checkbox" name="am"%s(oa['m']) />
723 @ Append Wiki%s(B('m'))</label><br />
724 @ <label><input type="checkbox" name="ak"%s(oa['k']) />
725 @ Write Wiki%s(B('k'))</label><br />
726 @ <label><input type="checkbox" name="al"%s(oa['l']) />
727 @ Moderate Wiki%s(B('l'))</label><br />
 
728 @ <label><input type="checkbox" name="ar"%s(oa['r']) />
729 @ Read Ticket%s(B('r'))</label><br />
730 @ <label><input type="checkbox" name="an"%s(oa['n']) />
731 @ New Tickets%s(B('n'))</label><br />
732 @ <label><input type="checkbox" name="ac"%s(oa['c']) />
733 @ Append To Ticket%s(B('c'))</label><br>
734 @ <label><input type="checkbox" name="aw"%s(oa['w']) />
735 @ Write Tickets%s(B('w'))</label><br />
736 @ <label><input type="checkbox" name="aq"%s(oa['q']) />
737 @ Moderate Tickets%s(B('q'))</label>
738
739 @ </td><td><td width="40"></td><td valign="top">
740 @ <label><input type="checkbox" name="at"%s(oa['t']) />
741 @ Ticket Report%s(B('t'))</label><br />
742 @ <label><input type="checkbox" name="ax"%s(oa['x']) />
743 @ Private%s(B('x'))</label><br />
744 @ <label><input type="checkbox" name="ay"%s(oa['y']) />
745 @ Write Unversioned%s(B('y'))</label><br />
746 @ <label><input type="checkbox" name="az"%s(oa['z']) />
747 @ Download Zip%s(B('z'))</label><br />
748 @ <label><input type="checkbox" name="a2"%s(oa['2']) />
749 @ Read Forum%s(B('2'))</label><br />
750 @ <label><input type="checkbox" name="a3"%s(oa['3']) />
751 @ Write Forum%s(B('3'))</label><br />
752 @ <label><input type="checkbox" name="a4"%s(oa['4']) />
753 @ WriteTrusted Forum%s(B('4'))</label><br>
754 @ <label><input type="checkbox" name="a5"%s(oa['5']) />
755 @ Moderate Forum%s(B('5'))</label><br>
756 @ <label><input type="checkbox" name="a6"%s(oa['6']) />
757 @ Supervise Forum%s(B('6'))</label>
758 @ </td></tr>
759 @ </table>
760 @ </td>
761 @ </tr>
762 @ <tr>
763 @ <td class="usetupEditLabel">Selected Cap.:</td>
764 @ <td>
765 @ <span id="usetupEditCapability">(missing JS?)</span>
766 @ <a href="%R/setup_ucap_list">(key)</a>
767 @ </td>
768 @ </tr>
769 if( !login_is_special(zLogin) ){
770 @ <tr>
771 @ <td align="right">Password:</td>
772
+44 -12
--- src/setup.c
+++ src/setup.c
@@ -351,10 +351,21 @@
351351
@ <td><i>Private:</i> Push and/or pull private branches</td></tr>
352352
@ <tr><th valign="top">y</th>
353353
@ <td><i>Write-Unver:</i> Push unversioned files</td></tr>
354354
@ <tr><th valign="top">z</th>
355355
@ <td><i>Zip download:</i> Download a ZIP archive or tarball</td></tr>
356
+ @ <tr><th valign="top">2</th>
357
+ @ <td><i>Forum-Read:</i> Read forum posts by others </td></tr>
358
+ @ <tr><th valign="top">3</th>
359
+ @ <td><i>Forum-Append:</i> Add new forum posts</td></tr>
360
+ @ <tr><th valign="top">4</th>
361
+ @ <td><i>Forum-Trusted:</i> Add pre-approved forum posts </td></tr>
362
+ @ <tr><th valign="top">5</th>
363
+ @ <td><i>Forum-Moderator:</i> Approve or disapprove forum posts</td></tr>
364
+ @ <tr><th valign="top">6</th>
365
+ @ <td><i>Forum-Supervisor:</i> \
366
+ @ Edit forum posts submitted by others</td></tr>
356367
@ </table>
357368
}
358369
359370
/*
360371
** WEBPAGE: setup_ulist_notes
@@ -473,14 +484,19 @@
473484
** to the page that displays a list of users.
474485
*/
475486
doWrite = cgi_all("login","info","pw") && !higherUser && cgi_csrf_safe(1);
476487
if( doWrite ){
477488
char c;
478
- char zCap[50], zNm[4];
489
+ char zCap[60], zNm[4];
479490
zNm[0] = 'a';
480491
zNm[2] = 0;
481492
for(i=0, c='a'; c<='z'; c++){
493
+ zNm[1] = c;
494
+ a[c&0x7f] = (c!='s' || g.perm.Setup) && P(zNm)!=0;
495
+ if( a[c&0x7f] ) zCap[i++] = c;
496
+ }
497
+ for(c='0'; c<='9'; c++){
482498
zNm[1] = c;
483499
a[c&0x7f] = (c!='s' || g.perm.Setup) && P(zNm)!=0;
484500
if( a[c&0x7f] ) zCap[i++] = c;
485501
}
486502
@@ -572,18 +588,21 @@
572588
zLogin = "";
573589
zInfo = "";
574590
zCap = "";
575591
zPw = "";
576592
for(i='a'; i<='z'; i++) oa[i] = "";
593
+ for(i='0'; i<='9'; i++) oa[i] = "";
577594
if( uid ){
578595
zLogin = db_text("", "SELECT login FROM user WHERE uid=%d", uid);
579596
zInfo = db_text("", "SELECT info FROM user WHERE uid=%d", uid);
580597
zCap = db_text("", "SELECT cap FROM user WHERE uid=%d", uid);
581598
zPw = db_text("", "SELECT pw FROM user WHERE uid=%d", uid);
582599
for(i=0; zCap[i]; i++){
583600
char c = zCap[i];
584
- if( c>='a' && c<='z' ) oa[c&0x7f] = " checked=\"checked\"";
601
+ if( (c>='a' && c<='z') || (c>='0' && c<='9') ){
602
+ oa[c&0x7f] = " checked=\"checked\"";
603
+ }
585604
}
586605
}
587606
588607
/* figure out inherited permissions */
589608
memset((char *)inherit, 0, sizeof(inherit));
@@ -672,10 +691,14 @@
672691
@ <label><input type="checkbox" name="as"%s(oa['s']) />
673692
@ Setup%s(B('s'))</label><br />
674693
}
675694
@ <label><input type="checkbox" name="aa"%s(oa['a']) />
676695
@ Admin%s(B('a'))</label><br />
696
+ @ <label><input type="checkbox" name="au"%s(oa['u']) />
697
+ @ Reader%s(B('u'))</label><br>
698
+ @ <label><input type="checkbox" name="av"%s(oa['v']) />
699
+ @ Developer%s(B('v'))</label><br />
677700
@ <label><input type="checkbox" name="ad"%s(oa['d']) />
678701
@ Delete%s(B('d'))</label><br />
679702
@ <label><input type="checkbox" name="ae"%s(oa['e']) />
680703
@ Email%s(B('e'))</label><br />
681704
@ <label><input type="checkbox" name="ap"%s(oa['p']) />
@@ -685,55 +708,64 @@
685708
@ <label><input type="checkbox" name="ao"%s(oa['o']) />
686709
@ Check-Out%s(B('o'))</label><br />
687710
@ <label><input type="checkbox" name="ah"%s(oa['h']) />
688711
@ Hyperlinks%s(B('h'))</label><br />
689712
@ <label><input type="checkbox" name="ab"%s(oa['b']) />
690
- @ Attachments%s(B('b'))</label><br />
713
+ @ Attachments%s(B('b'))</label>
714
+
691715
@ </td><td><td width="40"></td><td valign="top">
692
- @ <label><input type="checkbox" name="au"%s(oa['u']) />
693
- @ Reader%s(B('u'))</label><br />
694
- @ <label><input type="checkbox" name="av"%s(oa['v']) />
695
- @ Developer%s(B('v'))</label><br />
696716
@ <label><input type="checkbox" name="ag"%s(oa['g']) />
697717
@ Clone%s(B('g'))</label><br />
698718
@ <label><input type="checkbox" name="aj"%s(oa['j']) />
699
- @ Read Wiki%s(B('j'))</label><br />
719
+ @ Read Wiki%s(B('j'))</label><br>
700720
@ <label><input type="checkbox" name="af"%s(oa['f']) />
701721
@ New Wiki%s(B('f'))</label><br />
702722
@ <label><input type="checkbox" name="am"%s(oa['m']) />
703723
@ Append Wiki%s(B('m'))</label><br />
704724
@ <label><input type="checkbox" name="ak"%s(oa['k']) />
705725
@ Write Wiki%s(B('k'))</label><br />
706726
@ <label><input type="checkbox" name="al"%s(oa['l']) />
707727
@ Moderate Wiki%s(B('l'))</label><br />
708
- @ </td><td><td width="40"></td><td valign="top">
709728
@ <label><input type="checkbox" name="ar"%s(oa['r']) />
710729
@ Read Ticket%s(B('r'))</label><br />
711730
@ <label><input type="checkbox" name="an"%s(oa['n']) />
712731
@ New Tickets%s(B('n'))</label><br />
713732
@ <label><input type="checkbox" name="ac"%s(oa['c']) />
714
- @ Append To Ticket%s(B('c'))</label><br />
733
+ @ Append To Ticket%s(B('c'))</label><br>
715734
@ <label><input type="checkbox" name="aw"%s(oa['w']) />
716735
@ Write Tickets%s(B('w'))</label><br />
717736
@ <label><input type="checkbox" name="aq"%s(oa['q']) />
718
- @ Moderate Tickets%s(B('q'))</label><br />
737
+ @ Moderate Tickets%s(B('q'))</label>
738
+
739
+ @ </td><td><td width="40"></td><td valign="top">
719740
@ <label><input type="checkbox" name="at"%s(oa['t']) />
720741
@ Ticket Report%s(B('t'))</label><br />
721742
@ <label><input type="checkbox" name="ax"%s(oa['x']) />
722743
@ Private%s(B('x'))</label><br />
723744
@ <label><input type="checkbox" name="ay"%s(oa['y']) />
724745
@ Write Unversioned%s(B('y'))</label><br />
725746
@ <label><input type="checkbox" name="az"%s(oa['z']) />
726
- @ Download Zip%s(B('z'))</label>
747
+ @ Download Zip%s(B('z'))</label><br />
748
+ @ <label><input type="checkbox" name="a2"%s(oa['2']) />
749
+ @ Read Forum%s(B('2'))</label><br />
750
+ @ <label><input type="checkbox" name="a3"%s(oa['3']) />
751
+ @ Write Forum%s(B('3'))</label><br />
752
+ @ <label><input type="checkbox" name="a4"%s(oa['4']) />
753
+ @ WriteTrusted Forum%s(B('4'))</label><br>
754
+ @ <label><input type="checkbox" name="a5"%s(oa['5']) />
755
+ @ Moderate Forum%s(B('5'))</label><br>
756
+ @ <label><input type="checkbox" name="a6"%s(oa['6']) />
757
+ @ Supervise Forum%s(B('6'))</label>
727758
@ </td></tr>
728759
@ </table>
729760
@ </td>
730761
@ </tr>
731762
@ <tr>
732763
@ <td class="usetupEditLabel">Selected Cap.:</td>
733764
@ <td>
734765
@ <span id="usetupEditCapability">(missing JS?)</span>
766
+ @ <a href="%R/setup_ucap_list">(key)</a>
735767
@ </td>
736768
@ </tr>
737769
if( !login_is_special(zLogin) ){
738770
@ <tr>
739771
@ <td align="right">Password:</td>
740772
--- src/setup.c
+++ src/setup.c
@@ -351,10 +351,21 @@
351 @ <td><i>Private:</i> Push and/or pull private branches</td></tr>
352 @ <tr><th valign="top">y</th>
353 @ <td><i>Write-Unver:</i> Push unversioned files</td></tr>
354 @ <tr><th valign="top">z</th>
355 @ <td><i>Zip download:</i> Download a ZIP archive or tarball</td></tr>
 
 
 
 
 
 
 
 
 
 
 
356 @ </table>
357 }
358
359 /*
360 ** WEBPAGE: setup_ulist_notes
@@ -473,14 +484,19 @@
473 ** to the page that displays a list of users.
474 */
475 doWrite = cgi_all("login","info","pw") && !higherUser && cgi_csrf_safe(1);
476 if( doWrite ){
477 char c;
478 char zCap[50], zNm[4];
479 zNm[0] = 'a';
480 zNm[2] = 0;
481 for(i=0, c='a'; c<='z'; c++){
 
 
 
 
 
482 zNm[1] = c;
483 a[c&0x7f] = (c!='s' || g.perm.Setup) && P(zNm)!=0;
484 if( a[c&0x7f] ) zCap[i++] = c;
485 }
486
@@ -572,18 +588,21 @@
572 zLogin = "";
573 zInfo = "";
574 zCap = "";
575 zPw = "";
576 for(i='a'; i<='z'; i++) oa[i] = "";
 
577 if( uid ){
578 zLogin = db_text("", "SELECT login FROM user WHERE uid=%d", uid);
579 zInfo = db_text("", "SELECT info FROM user WHERE uid=%d", uid);
580 zCap = db_text("", "SELECT cap FROM user WHERE uid=%d", uid);
581 zPw = db_text("", "SELECT pw FROM user WHERE uid=%d", uid);
582 for(i=0; zCap[i]; i++){
583 char c = zCap[i];
584 if( c>='a' && c<='z' ) oa[c&0x7f] = " checked=\"checked\"";
 
 
585 }
586 }
587
588 /* figure out inherited permissions */
589 memset((char *)inherit, 0, sizeof(inherit));
@@ -672,10 +691,14 @@
672 @ <label><input type="checkbox" name="as"%s(oa['s']) />
673 @ Setup%s(B('s'))</label><br />
674 }
675 @ <label><input type="checkbox" name="aa"%s(oa['a']) />
676 @ Admin%s(B('a'))</label><br />
 
 
 
 
677 @ <label><input type="checkbox" name="ad"%s(oa['d']) />
678 @ Delete%s(B('d'))</label><br />
679 @ <label><input type="checkbox" name="ae"%s(oa['e']) />
680 @ Email%s(B('e'))</label><br />
681 @ <label><input type="checkbox" name="ap"%s(oa['p']) />
@@ -685,55 +708,64 @@
685 @ <label><input type="checkbox" name="ao"%s(oa['o']) />
686 @ Check-Out%s(B('o'))</label><br />
687 @ <label><input type="checkbox" name="ah"%s(oa['h']) />
688 @ Hyperlinks%s(B('h'))</label><br />
689 @ <label><input type="checkbox" name="ab"%s(oa['b']) />
690 @ Attachments%s(B('b'))</label><br />
 
691 @ </td><td><td width="40"></td><td valign="top">
692 @ <label><input type="checkbox" name="au"%s(oa['u']) />
693 @ Reader%s(B('u'))</label><br />
694 @ <label><input type="checkbox" name="av"%s(oa['v']) />
695 @ Developer%s(B('v'))</label><br />
696 @ <label><input type="checkbox" name="ag"%s(oa['g']) />
697 @ Clone%s(B('g'))</label><br />
698 @ <label><input type="checkbox" name="aj"%s(oa['j']) />
699 @ Read Wiki%s(B('j'))</label><br />
700 @ <label><input type="checkbox" name="af"%s(oa['f']) />
701 @ New Wiki%s(B('f'))</label><br />
702 @ <label><input type="checkbox" name="am"%s(oa['m']) />
703 @ Append Wiki%s(B('m'))</label><br />
704 @ <label><input type="checkbox" name="ak"%s(oa['k']) />
705 @ Write Wiki%s(B('k'))</label><br />
706 @ <label><input type="checkbox" name="al"%s(oa['l']) />
707 @ Moderate Wiki%s(B('l'))</label><br />
708 @ </td><td><td width="40"></td><td valign="top">
709 @ <label><input type="checkbox" name="ar"%s(oa['r']) />
710 @ Read Ticket%s(B('r'))</label><br />
711 @ <label><input type="checkbox" name="an"%s(oa['n']) />
712 @ New Tickets%s(B('n'))</label><br />
713 @ <label><input type="checkbox" name="ac"%s(oa['c']) />
714 @ Append To Ticket%s(B('c'))</label><br />
715 @ <label><input type="checkbox" name="aw"%s(oa['w']) />
716 @ Write Tickets%s(B('w'))</label><br />
717 @ <label><input type="checkbox" name="aq"%s(oa['q']) />
718 @ Moderate Tickets%s(B('q'))</label><br />
 
 
719 @ <label><input type="checkbox" name="at"%s(oa['t']) />
720 @ Ticket Report%s(B('t'))</label><br />
721 @ <label><input type="checkbox" name="ax"%s(oa['x']) />
722 @ Private%s(B('x'))</label><br />
723 @ <label><input type="checkbox" name="ay"%s(oa['y']) />
724 @ Write Unversioned%s(B('y'))</label><br />
725 @ <label><input type="checkbox" name="az"%s(oa['z']) />
726 @ Download Zip%s(B('z'))</label>
 
 
 
 
 
 
 
 
 
 
727 @ </td></tr>
728 @ </table>
729 @ </td>
730 @ </tr>
731 @ <tr>
732 @ <td class="usetupEditLabel">Selected Cap.:</td>
733 @ <td>
734 @ <span id="usetupEditCapability">(missing JS?)</span>
 
735 @ </td>
736 @ </tr>
737 if( !login_is_special(zLogin) ){
738 @ <tr>
739 @ <td align="right">Password:</td>
740
--- src/setup.c
+++ src/setup.c
@@ -351,10 +351,21 @@
351 @ <td><i>Private:</i> Push and/or pull private branches</td></tr>
352 @ <tr><th valign="top">y</th>
353 @ <td><i>Write-Unver:</i> Push unversioned files</td></tr>
354 @ <tr><th valign="top">z</th>
355 @ <td><i>Zip download:</i> Download a ZIP archive or tarball</td></tr>
356 @ <tr><th valign="top">2</th>
357 @ <td><i>Forum-Read:</i> Read forum posts by others </td></tr>
358 @ <tr><th valign="top">3</th>
359 @ <td><i>Forum-Append:</i> Add new forum posts</td></tr>
360 @ <tr><th valign="top">4</th>
361 @ <td><i>Forum-Trusted:</i> Add pre-approved forum posts </td></tr>
362 @ <tr><th valign="top">5</th>
363 @ <td><i>Forum-Moderator:</i> Approve or disapprove forum posts</td></tr>
364 @ <tr><th valign="top">6</th>
365 @ <td><i>Forum-Supervisor:</i> \
366 @ Edit forum posts submitted by others</td></tr>
367 @ </table>
368 }
369
370 /*
371 ** WEBPAGE: setup_ulist_notes
@@ -473,14 +484,19 @@
484 ** to the page that displays a list of users.
485 */
486 doWrite = cgi_all("login","info","pw") && !higherUser && cgi_csrf_safe(1);
487 if( doWrite ){
488 char c;
489 char zCap[60], zNm[4];
490 zNm[0] = 'a';
491 zNm[2] = 0;
492 for(i=0, c='a'; c<='z'; c++){
493 zNm[1] = c;
494 a[c&0x7f] = (c!='s' || g.perm.Setup) && P(zNm)!=0;
495 if( a[c&0x7f] ) zCap[i++] = c;
496 }
497 for(c='0'; c<='9'; c++){
498 zNm[1] = c;
499 a[c&0x7f] = (c!='s' || g.perm.Setup) && P(zNm)!=0;
500 if( a[c&0x7f] ) zCap[i++] = c;
501 }
502
@@ -572,18 +588,21 @@
588 zLogin = "";
589 zInfo = "";
590 zCap = "";
591 zPw = "";
592 for(i='a'; i<='z'; i++) oa[i] = "";
593 for(i='0'; i<='9'; i++) oa[i] = "";
594 if( uid ){
595 zLogin = db_text("", "SELECT login FROM user WHERE uid=%d", uid);
596 zInfo = db_text("", "SELECT info FROM user WHERE uid=%d", uid);
597 zCap = db_text("", "SELECT cap FROM user WHERE uid=%d", uid);
598 zPw = db_text("", "SELECT pw FROM user WHERE uid=%d", uid);
599 for(i=0; zCap[i]; i++){
600 char c = zCap[i];
601 if( (c>='a' && c<='z') || (c>='0' && c<='9') ){
602 oa[c&0x7f] = " checked=\"checked\"";
603 }
604 }
605 }
606
607 /* figure out inherited permissions */
608 memset((char *)inherit, 0, sizeof(inherit));
@@ -672,10 +691,14 @@
691 @ <label><input type="checkbox" name="as"%s(oa['s']) />
692 @ Setup%s(B('s'))</label><br />
693 }
694 @ <label><input type="checkbox" name="aa"%s(oa['a']) />
695 @ Admin%s(B('a'))</label><br />
696 @ <label><input type="checkbox" name="au"%s(oa['u']) />
697 @ Reader%s(B('u'))</label><br>
698 @ <label><input type="checkbox" name="av"%s(oa['v']) />
699 @ Developer%s(B('v'))</label><br />
700 @ <label><input type="checkbox" name="ad"%s(oa['d']) />
701 @ Delete%s(B('d'))</label><br />
702 @ <label><input type="checkbox" name="ae"%s(oa['e']) />
703 @ Email%s(B('e'))</label><br />
704 @ <label><input type="checkbox" name="ap"%s(oa['p']) />
@@ -685,55 +708,64 @@
708 @ <label><input type="checkbox" name="ao"%s(oa['o']) />
709 @ Check-Out%s(B('o'))</label><br />
710 @ <label><input type="checkbox" name="ah"%s(oa['h']) />
711 @ Hyperlinks%s(B('h'))</label><br />
712 @ <label><input type="checkbox" name="ab"%s(oa['b']) />
713 @ Attachments%s(B('b'))</label>
714
715 @ </td><td><td width="40"></td><td valign="top">
 
 
 
 
716 @ <label><input type="checkbox" name="ag"%s(oa['g']) />
717 @ Clone%s(B('g'))</label><br />
718 @ <label><input type="checkbox" name="aj"%s(oa['j']) />
719 @ Read Wiki%s(B('j'))</label><br>
720 @ <label><input type="checkbox" name="af"%s(oa['f']) />
721 @ New Wiki%s(B('f'))</label><br />
722 @ <label><input type="checkbox" name="am"%s(oa['m']) />
723 @ Append Wiki%s(B('m'))</label><br />
724 @ <label><input type="checkbox" name="ak"%s(oa['k']) />
725 @ Write Wiki%s(B('k'))</label><br />
726 @ <label><input type="checkbox" name="al"%s(oa['l']) />
727 @ Moderate Wiki%s(B('l'))</label><br />
 
728 @ <label><input type="checkbox" name="ar"%s(oa['r']) />
729 @ Read Ticket%s(B('r'))</label><br />
730 @ <label><input type="checkbox" name="an"%s(oa['n']) />
731 @ New Tickets%s(B('n'))</label><br />
732 @ <label><input type="checkbox" name="ac"%s(oa['c']) />
733 @ Append To Ticket%s(B('c'))</label><br>
734 @ <label><input type="checkbox" name="aw"%s(oa['w']) />
735 @ Write Tickets%s(B('w'))</label><br />
736 @ <label><input type="checkbox" name="aq"%s(oa['q']) />
737 @ Moderate Tickets%s(B('q'))</label>
738
739 @ </td><td><td width="40"></td><td valign="top">
740 @ <label><input type="checkbox" name="at"%s(oa['t']) />
741 @ Ticket Report%s(B('t'))</label><br />
742 @ <label><input type="checkbox" name="ax"%s(oa['x']) />
743 @ Private%s(B('x'))</label><br />
744 @ <label><input type="checkbox" name="ay"%s(oa['y']) />
745 @ Write Unversioned%s(B('y'))</label><br />
746 @ <label><input type="checkbox" name="az"%s(oa['z']) />
747 @ Download Zip%s(B('z'))</label><br />
748 @ <label><input type="checkbox" name="a2"%s(oa['2']) />
749 @ Read Forum%s(B('2'))</label><br />
750 @ <label><input type="checkbox" name="a3"%s(oa['3']) />
751 @ Write Forum%s(B('3'))</label><br />
752 @ <label><input type="checkbox" name="a4"%s(oa['4']) />
753 @ WriteTrusted Forum%s(B('4'))</label><br>
754 @ <label><input type="checkbox" name="a5"%s(oa['5']) />
755 @ Moderate Forum%s(B('5'))</label><br>
756 @ <label><input type="checkbox" name="a6"%s(oa['6']) />
757 @ Supervise Forum%s(B('6'))</label>
758 @ </td></tr>
759 @ </table>
760 @ </td>
761 @ </tr>
762 @ <tr>
763 @ <td class="usetupEditLabel">Selected Cap.:</td>
764 @ <td>
765 @ <span id="usetupEditCapability">(missing JS?)</span>
766 @ <a href="%R/setup_ucap_list">(key)</a>
767 @ </td>
768 @ </tr>
769 if( !login_is_special(zLogin) ){
770 @ <tr>
771 @ <td align="right">Password:</td>
772
+1 -1
--- src/style.c
+++ src/style.c
@@ -939,11 +939,11 @@
939939
@ g.zRepositoryName = %h(g.zRepositoryName)<br />
940940
@ load_average() = %f(load_average())<br />
941941
@ cgi_csrf_safe(0) = %d(cgi_csrf_safe(0))<br />
942942
@ <hr />
943943
P("HTTP_USER_AGENT");
944
- cgi_print_all(showAll);
944
+ cgi_print_all(showAll, 0);
945945
if( showAll && blob_size(&g.httpHeader)>0 ){
946946
@ <hr />
947947
@ <pre>
948948
@ %h(blob_str(&g.httpHeader))
949949
@ </pre>
950950
--- src/style.c
+++ src/style.c
@@ -939,11 +939,11 @@
939 @ g.zRepositoryName = %h(g.zRepositoryName)<br />
940 @ load_average() = %f(load_average())<br />
941 @ cgi_csrf_safe(0) = %d(cgi_csrf_safe(0))<br />
942 @ <hr />
943 P("HTTP_USER_AGENT");
944 cgi_print_all(showAll);
945 if( showAll && blob_size(&g.httpHeader)>0 ){
946 @ <hr />
947 @ <pre>
948 @ %h(blob_str(&g.httpHeader))
949 @ </pre>
950
--- src/style.c
+++ src/style.c
@@ -939,11 +939,11 @@
939 @ g.zRepositoryName = %h(g.zRepositoryName)<br />
940 @ load_average() = %f(load_average())<br />
941 @ cgi_csrf_safe(0) = %d(cgi_csrf_safe(0))<br />
942 @ <hr />
943 P("HTTP_USER_AGENT");
944 cgi_print_all(showAll, 0);
945 if( showAll && blob_size(&g.httpHeader)>0 ){
946 @ <hr />
947 @ <pre>
948 @ %h(blob_str(&g.httpHeader))
949 @ </pre>
950
+10 -4
--- win/Makefile.dmc
+++ win/Makefile.dmc
@@ -28,13 +28,13 @@
2828
2929
SQLITE_OPTIONS = -DNDEBUG=1 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_GET_TABLE -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB
3030
3131
SHELL_OPTIONS = -DNDEBUG=1 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_GET_TABLE -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -Dmain=sqlite3_shell -DSQLITE_SHELL_IS_UTF8=1 -DSQLITE_OMIT_LOAD_EXTENSION=1 -DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) -DSQLITE_SHELL_DBNAME_PROC=sqlcmd_get_dbname -DSQLITE_SHELL_INIT_PROC=sqlcmd_init_proc -Daccess=file_access -Dsystem=fossil_system -Dgetenv=fossil_getenv -Dfopen=fossil_fopen
3232
33
-SRC = add_.c allrepo_.c attach_.c bag_.c bisect_.c blob_.c branch_.c browse_.c builtin_.c bundle_.c cache_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c cookies_.c db_.c delta_.c deltacmd_.c descendants_.c diff_.c diffcmd_.c dispatch_.c doc_.c email_.c encode_.c etag_.c event_.c export_.c file_.c finfo_.c foci_.c fshell_.c fusefs_.c glob_.c graph_.c gzip_.c hname_.c http_.c http_socket_.c http_ssl_.c http_transport_.c import_.c info_.c json_.c json_artifact_.c json_branch_.c json_config_.c json_diff_.c json_dir_.c json_finfo_.c json_login_.c json_query_.c json_report_.c json_status_.c json_tag_.c json_timeline_.c json_user_.c json_wiki_.c leaf_.c loadctrl_.c login_.c lookslike_.c main_.c manifest_.c markdown_.c markdown_html_.c md5_.c merge_.c merge3_.c moderate_.c name_.c path_.c piechart_.c pivot_.c popen_.c pqueue_.c printf_.c publish_.c purge_.c rebuild_.c regexp_.c report_.c rss_.c schema_.c search_.c security_audit_.c setup_.c sha1_.c sha1hard_.c sha3_.c shun_.c sitemap_.c skins_.c sqlcmd_.c stash_.c stat_.c statrep_.c style_.c sync_.c tag_.c tar_.c th_main_.c timeline_.c tkt_.c tktsetup_.c undo_.c unicode_.c unversioned_.c update_.c url_.c user_.c utf8_.c util_.c verify_.c vfile_.c wiki_.c wikiformat_.c winfile_.c winhttp_.c wysiwyg_.c xfer_.c xfersetup_.c zip_.c
33
+SRC = add_.c allrepo_.c attach_.c bag_.c bisect_.c blob_.c branch_.c browse_.c builtin_.c bundle_.c cache_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c cookies_.c db_.c delta_.c deltacmd_.c descendants_.c diff_.c diffcmd_.c dispatch_.c doc_.c email_.c encode_.c etag_.c event_.c export_.c file_.c finfo_.c foci_.c forum_.c fshell_.c fusefs_.c glob_.c graph_.c gzip_.c hname_.c http_.c http_socket_.c http_ssl_.c http_transport_.c import_.c info_.c json_.c json_artifact_.c json_branch_.c json_config_.c json_diff_.c json_dir_.c json_finfo_.c json_login_.c json_query_.c json_report_.c json_status_.c json_tag_.c json_timeline_.c json_user_.c json_wiki_.c leaf_.c loadctrl_.c login_.c lookslike_.c main_.c manifest_.c markdown_.c markdown_html_.c md5_.c merge_.c merge3_.c moderate_.c name_.c path_.c piechart_.c pivot_.c popen_.c pqueue_.c printf_.c publish_.c purge_.c rebuild_.c regexp_.c report_.c rss_.c schema_.c search_.c security_audit_.c setup_.c sha1_.c sha1hard_.c sha3_.c shun_.c sitemap_.c skins_.c sqlcmd_.c stash_.c stat_.c statrep_.c style_.c sync_.c tag_.c tar_.c th_main_.c timeline_.c tkt_.c tktsetup_.c undo_.c unicode_.c unversioned_.c update_.c url_.c user_.c utf8_.c util_.c verify_.c vfile_.c wiki_.c wikiformat_.c winfile_.c winhttp_.c wysiwyg_.c xfer_.c xfersetup_.c zip_.c
3434
35
-OBJ = $(OBJDIR)\add$O $(OBJDIR)\allrepo$O $(OBJDIR)\attach$O $(OBJDIR)\bag$O $(OBJDIR)\bisect$O $(OBJDIR)\blob$O $(OBJDIR)\branch$O $(OBJDIR)\browse$O $(OBJDIR)\builtin$O $(OBJDIR)\bundle$O $(OBJDIR)\cache$O $(OBJDIR)\captcha$O $(OBJDIR)\cgi$O $(OBJDIR)\checkin$O $(OBJDIR)\checkout$O $(OBJDIR)\clearsign$O $(OBJDIR)\clone$O $(OBJDIR)\comformat$O $(OBJDIR)\configure$O $(OBJDIR)\content$O $(OBJDIR)\cookies$O $(OBJDIR)\db$O $(OBJDIR)\delta$O $(OBJDIR)\deltacmd$O $(OBJDIR)\descendants$O $(OBJDIR)\diff$O $(OBJDIR)\diffcmd$O $(OBJDIR)\dispatch$O $(OBJDIR)\doc$O $(OBJDIR)\email$O $(OBJDIR)\encode$O $(OBJDIR)\etag$O $(OBJDIR)\event$O $(OBJDIR)\export$O $(OBJDIR)\file$O $(OBJDIR)\finfo$O $(OBJDIR)\foci$O $(OBJDIR)\fshell$O $(OBJDIR)\fusefs$O $(OBJDIR)\glob$O $(OBJDIR)\graph$O $(OBJDIR)\gzip$O $(OBJDIR)\hname$O $(OBJDIR)\http$O $(OBJDIR)\http_socket$O $(OBJDIR)\http_ssl$O $(OBJDIR)\http_transport$O $(OBJDIR)\import$O $(OBJDIR)\info$O $(OBJDIR)\json$O $(OBJDIR)\json_artifact$O $(OBJDIR)\json_branch$O $(OBJDIR)\json_config$O $(OBJDIR)\json_diff$O $(OBJDIR)\json_dir$O $(OBJDIR)\json_finfo$O $(OBJDIR)\json_login$O $(OBJDIR)\json_query$O $(OBJDIR)\json_report$O $(OBJDIR)\json_status$O $(OBJDIR)\json_tag$O $(OBJDIR)\json_timeline$O $(OBJDIR)\json_user$O $(OBJDIR)\json_wiki$O $(OBJDIR)\leaf$O $(OBJDIR)\loadctrl$O $(OBJDIR)\login$O $(OBJDIR)\lookslike$O $(OBJDIR)\main$O $(OBJDIR)\manifest$O $(OBJDIR)\markdown$O $(OBJDIR)\markdown_html$O $(OBJDIR)\md5$O $(OBJDIR)\merge$O $(OBJDIR)\merge3$O $(OBJDIR)\moderate$O $(OBJDIR)\name$O $(OBJDIR)\path$O $(OBJDIR)\piechart$O $(OBJDIR)\pivot$O $(OBJDIR)\popen$O $(OBJDIR)\pqueue$O $(OBJDIR)\printf$O $(OBJDIR)\publish$O $(OBJDIR)\purge$O $(OBJDIR)\rebuild$O $(OBJDIR)\regexp$O $(OBJDIR)\report$O $(OBJDIR)\rss$O $(OBJDIR)\schema$O $(OBJDIR)\search$O $(OBJDIR)\security_audit$O $(OBJDIR)\setup$O $(OBJDIR)\sha1$O $(OBJDIR)\sha1hard$O $(OBJDIR)\sha3$O $(OBJDIR)\shun$O $(OBJDIR)\sitemap$O $(OBJDIR)\skins$O $(OBJDIR)\sqlcmd$O $(OBJDIR)\stash$O $(OBJDIR)\stat$O $(OBJDIR)\statrep$O $(OBJDIR)\style$O $(OBJDIR)\sync$O $(OBJDIR)\tag$O $(OBJDIR)\tar$O $(OBJDIR)\th_main$O $(OBJDIR)\timeline$O $(OBJDIR)\tkt$O $(OBJDIR)\tktsetup$O $(OBJDIR)\undo$O $(OBJDIR)\unicode$O $(OBJDIR)\unversioned$O $(OBJDIR)\update$O $(OBJDIR)\url$O $(OBJDIR)\user$O $(OBJDIR)\utf8$O $(OBJDIR)\util$O $(OBJDIR)\verify$O $(OBJDIR)\vfile$O $(OBJDIR)\wiki$O $(OBJDIR)\wikiformat$O $(OBJDIR)\winfile$O $(OBJDIR)\winhttp$O $(OBJDIR)\wysiwyg$O $(OBJDIR)\xfer$O $(OBJDIR)\xfersetup$O $(OBJDIR)\zip$O $(OBJDIR)\shell$O $(OBJDIR)\sqlite3$O $(OBJDIR)\th$O $(OBJDIR)\th_lang$O
35
+OBJ = $(OBJDIR)\add$O $(OBJDIR)\allrepo$O $(OBJDIR)\attach$O $(OBJDIR)\bag$O $(OBJDIR)\bisect$O $(OBJDIR)\blob$O $(OBJDIR)\branch$O $(OBJDIR)\browse$O $(OBJDIR)\builtin$O $(OBJDIR)\bundle$O $(OBJDIR)\cache$O $(OBJDIR)\captcha$O $(OBJDIR)\cgi$O $(OBJDIR)\checkin$O $(OBJDIR)\checkout$O $(OBJDIR)\clearsign$O $(OBJDIR)\clone$O $(OBJDIR)\comformat$O $(OBJDIR)\configure$O $(OBJDIR)\content$O $(OBJDIR)\cookies$O $(OBJDIR)\db$O $(OBJDIR)\delta$O $(OBJDIR)\deltacmd$O $(OBJDIR)\descendants$O $(OBJDIR)\diff$O $(OBJDIR)\diffcmd$O $(OBJDIR)\dispatch$O $(OBJDIR)\doc$O $(OBJDIR)\email$O $(OBJDIR)\encode$O $(OBJDIR)\etag$O $(OBJDIR)\event$O $(OBJDIR)\export$O $(OBJDIR)\file$O $(OBJDIR)\finfo$O $(OBJDIR)\foci$O $(OBJDIR)\forum$O $(OBJDIR)\fshell$O $(OBJDIR)\fusefs$O $(OBJDIR)\glob$O $(OBJDIR)\graph$O $(OBJDIR)\gzip$O $(OBJDIR)\hname$O $(OBJDIR)\http$O $(OBJDIR)\http_socket$O $(OBJDIR)\http_ssl$O $(OBJDIR)\http_transport$O $(OBJDIR)\import$O $(OBJDIR)\info$O $(OBJDIR)\json$O $(OBJDIR)\json_artifact$O $(OBJDIR)\json_branch$O $(OBJDIR)\json_config$O $(OBJDIR)\json_diff$O $(OBJDIR)\json_dir$O $(OBJDIR)\json_finfo$O $(OBJDIR)\json_login$O $(OBJDIR)\json_query$O $(OBJDIR)\json_report$O $(OBJDIR)\json_status$O $(OBJDIR)\json_tag$O $(OBJDIR)\json_timeline$O $(OBJDIR)\json_user$O $(OBJDIR)\json_wiki$O $(OBJDIR)\leaf$O $(OBJDIR)\loadctrl$O $(OBJDIR)\login$O $(OBJDIR)\lookslike$O $(OBJDIR)\main$O $(OBJDIR)\manifest$O $(OBJDIR)\markdown$O $(OBJDIR)\markdown_html$O $(OBJDIR)\md5$O $(OBJDIR)\merge$O $(OBJDIR)\merge3$O $(OBJDIR)\moderate$O $(OBJDIR)\name$O $(OBJDIR)\path$O $(OBJDIR)\piechart$O $(OBJDIR)\pivot$O $(OBJDIR)\popen$O $(OBJDIR)\pqueue$O $(OBJDIR)\printf$O $(OBJDIR)\publish$O $(OBJDIR)\purge$O $(OBJDIR)\rebuild$O $(OBJDIR)\regexp$O $(OBJDIR)\report$O $(OBJDIR)\rss$O $(OBJDIR)\schema$O $(OBJDIR)\search$O $(OBJDIR)\security_audit$O $(OBJDIR)\setup$O $(OBJDIR)\sha1$O $(OBJDIR)\sha1hard$O $(OBJDIR)\sha3$O $(OBJDIR)\shun$O $(OBJDIR)\sitemap$O $(OBJDIR)\skins$O $(OBJDIR)\sqlcmd$O $(OBJDIR)\stash$O $(OBJDIR)\stat$O $(OBJDIR)\statrep$O $(OBJDIR)\style$O $(OBJDIR)\sync$O $(OBJDIR)\tag$O $(OBJDIR)\tar$O $(OBJDIR)\th_main$O $(OBJDIR)\timeline$O $(OBJDIR)\tkt$O $(OBJDIR)\tktsetup$O $(OBJDIR)\undo$O $(OBJDIR)\unicode$O $(OBJDIR)\unversioned$O $(OBJDIR)\update$O $(OBJDIR)\url$O $(OBJDIR)\user$O $(OBJDIR)\utf8$O $(OBJDIR)\util$O $(OBJDIR)\verify$O $(OBJDIR)\vfile$O $(OBJDIR)\wiki$O $(OBJDIR)\wikiformat$O $(OBJDIR)\winfile$O $(OBJDIR)\winhttp$O $(OBJDIR)\wysiwyg$O $(OBJDIR)\xfer$O $(OBJDIR)\xfersetup$O $(OBJDIR)\zip$O $(OBJDIR)\shell$O $(OBJDIR)\sqlite3$O $(OBJDIR)\th$O $(OBJDIR)\th_lang$O
3636
3737
3838
RC=$(DMDIR)\bin\rcc
3939
RCFLAGS=-32 -w1 -I$(SRCDIR) /D__DMC__
4040
@@ -49,11 +49,11 @@
4949
5050
$(OBJDIR)\fossil.res: $B\win\fossil.rc
5151
$(RC) $(RCFLAGS) -o$@ $**
5252
5353
$(OBJDIR)\link: $B\win\Makefile.dmc $(OBJDIR)\fossil.res
54
- +echo add allrepo attach bag bisect blob branch browse builtin bundle cache captcha cgi checkin checkout clearsign clone comformat configure content cookies db delta deltacmd descendants diff diffcmd dispatch doc email encode etag event export file finfo foci fshell fusefs glob graph gzip hname http http_socket http_ssl http_transport import info json json_artifact json_branch json_config json_diff json_dir json_finfo json_login json_query json_report json_status json_tag json_timeline json_user json_wiki leaf loadctrl login lookslike main manifest markdown markdown_html md5 merge merge3 moderate name path piechart pivot popen pqueue printf publish purge rebuild regexp report rss schema search security_audit setup sha1 sha1hard sha3 shun sitemap skins sqlcmd stash stat statrep style sync tag tar th_main timeline tkt tktsetup undo unicode unversioned update url user utf8 util verify vfile wiki wikiformat winfile winhttp wysiwyg xfer xfersetup zip shell sqlite3 th th_lang > $@
54
+ +echo add allrepo attach bag bisect blob branch browse builtin bundle cache captcha cgi checkin checkout clearsign clone comformat configure content cookies db delta deltacmd descendants diff diffcmd dispatch doc email encode etag event export file finfo foci forum fshell fusefs glob graph gzip hname http http_socket http_ssl http_transport import info json json_artifact json_branch json_config json_diff json_dir json_finfo json_login json_query json_report json_status json_tag json_timeline json_user json_wiki leaf loadctrl login lookslike main manifest markdown markdown_html md5 merge merge3 moderate name path piechart pivot popen pqueue printf publish purge rebuild regexp report rss schema search security_audit setup sha1 sha1hard sha3 shun sitemap skins sqlcmd stash stat statrep style sync tag tar th_main timeline tkt tktsetup undo unicode unversioned update url user utf8 util verify vfile wiki wikiformat winfile winhttp wysiwyg xfer xfersetup zip shell sqlite3 th th_lang > $@
5555
+echo fossil >> $@
5656
+echo fossil >> $@
5757
+echo $(LIBS) >> $@
5858
+echo. >> $@
5959
+echo fossil >> $@
@@ -350,10 +350,16 @@
350350
$(OBJDIR)\foci$O : foci_.c foci.h
351351
$(TCC) -o$@ -c foci_.c
352352
353353
foci_.c : $(SRCDIR)\foci.c
354354
+translate$E $** > $@
355
+
356
+$(OBJDIR)\forum$O : forum_.c forum.h
357
+ $(TCC) -o$@ -c forum_.c
358
+
359
+forum_.c : $(SRCDIR)\forum.c
360
+ +translate$E $** > $@
355361
356362
$(OBJDIR)\fshell$O : fshell_.c fshell.h
357363
$(TCC) -o$@ -c fshell_.c
358364
359365
fshell_.c : $(SRCDIR)\fshell.c
@@ -904,7 +910,7 @@
904910
905911
zip_.c : $(SRCDIR)\zip.c
906912
+translate$E $** > $@
907913
908914
headers: makeheaders$E page_index.h builtin_data.h default_css.h VERSION.h
909
- +makeheaders$E add_.c:add.h allrepo_.c:allrepo.h attach_.c:attach.h bag_.c:bag.h bisect_.c:bisect.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.h builtin_.c:builtin.h bundle_.c:bundle.h cache_.c:cache.h captcha_.c:captcha.h cgi_.c:cgi.h checkin_.c:checkin.h checkout_.c:checkout.h clearsign_.c:clearsign.h clone_.c:clone.h comformat_.c:comformat.h configure_.c:configure.h content_.c:content.h cookies_.c:cookies.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h dispatch_.c:dispatch.h doc_.c:doc.h email_.c:email.h encode_.c:encode.h etag_.c:etag.h event_.c:event.h export_.c:export.h file_.c:file.h finfo_.c:finfo.h foci_.c:foci.h fshell_.c:fshell.h fusefs_.c:fusefs.h glob_.c:glob.h graph_.c:graph.h gzip_.c:gzip.h hname_.c:hname.h http_.c:http.h http_socket_.c:http_socket.h http_ssl_.c:http_ssl.h http_transport_.c:http_transport.h import_.c:import.h info_.c:info.h json_.c:json.h json_artifact_.c:json_artifact.h json_branch_.c:json_branch.h json_config_.c:json_config.h json_diff_.c:json_diff.h json_dir_.c:json_dir.h json_finfo_.c:json_finfo.h json_login_.c:json_login.h json_query_.c:json_query.h json_report_.c:json_report.h json_status_.c:json_status.h json_tag_.c:json_tag.h json_timeline_.c:json_timeline.h json_user_.c:json_user.h json_wiki_.c:json_wiki.h leaf_.c:leaf.h loadctrl_.c:loadctrl.h login_.c:login.h lookslike_.c:lookslike.h main_.c:main.h manifest_.c:manifest.h markdown_.c:markdown.h markdown_html_.c:markdown_html.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h moderate_.c:moderate.h name_.c:name.h path_.c:path.h piechart_.c:piechart.h pivot_.c:pivot.h popen_.c:popen.h pqueue_.c:pqueue.h printf_.c:printf.h publish_.c:publish.h purge_.c:purge.h rebuild_.c:rebuild.h regexp_.c:regexp.h report_.c:report.h rss_.c:rss.h schema_.c:schema.h search_.c:search.h security_audit_.c:security_audit.h setup_.c:setup.h sha1_.c:sha1.h sha1hard_.c:sha1hard.h sha3_.c:sha3.h shun_.c:shun.h sitemap_.c:sitemap.h skins_.c:skins.h sqlcmd_.c:sqlcmd.h stash_.c:stash.h stat_.c:stat.h statrep_.c:statrep.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tar_.c:tar.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktsetup_.c:tktsetup.h undo_.c:undo.h unicode_.c:unicode.h unversioned_.c:unversioned.h update_.c:update.h url_.c:url.h user_.c:user.h utf8_.c:utf8.h util_.c:util.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h winfile_.c:winfile.h winhttp_.c:winhttp.h wysiwyg_.c:wysiwyg.h xfer_.c:xfer.h xfersetup_.c:xfersetup.h zip_.c:zip.h $(SRCDIR)\sqlite3.h $(SRCDIR)\th.h VERSION.h $(SRCDIR)\cson_amalgamation.h
915
+ +makeheaders$E add_.c:add.h allrepo_.c:allrepo.h attach_.c:attach.h bag_.c:bag.h bisect_.c:bisect.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.h builtin_.c:builtin.h bundle_.c:bundle.h cache_.c:cache.h captcha_.c:captcha.h cgi_.c:cgi.h checkin_.c:checkin.h checkout_.c:checkout.h clearsign_.c:clearsign.h clone_.c:clone.h comformat_.c:comformat.h configure_.c:configure.h content_.c:content.h cookies_.c:cookies.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h dispatch_.c:dispatch.h doc_.c:doc.h email_.c:email.h encode_.c:encode.h etag_.c:etag.h event_.c:event.h export_.c:export.h file_.c:file.h finfo_.c:finfo.h foci_.c:foci.h forum_.c:forum.h fshell_.c:fshell.h fusefs_.c:fusefs.h glob_.c:glob.h graph_.c:graph.h gzip_.c:gzip.h hname_.c:hname.h http_.c:http.h http_socket_.c:http_socket.h http_ssl_.c:http_ssl.h http_transport_.c:http_transport.h import_.c:import.h info_.c:info.h json_.c:json.h json_artifact_.c:json_artifact.h json_branch_.c:json_branch.h json_config_.c:json_config.h json_diff_.c:json_diff.h json_dir_.c:json_dir.h json_finfo_.c:json_finfo.h json_login_.c:json_login.h json_query_.c:json_query.h json_report_.c:json_report.h json_status_.c:json_status.h json_tag_.c:json_tag.h json_timeline_.c:json_timeline.h json_user_.c:json_user.h json_wiki_.c:json_wiki.h leaf_.c:leaf.h loadctrl_.c:loadctrl.h login_.c:login.h lookslike_.c:lookslike.h main_.c:main.h manifest_.c:manifest.h markdown_.c:markdown.h markdown_html_.c:markdown_html.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h moderate_.c:moderate.h name_.c:name.h path_.c:path.h piechart_.c:piechart.h pivot_.c:pivot.h popen_.c:popen.h pqueue_.c:pqueue.h printf_.c:printf.h publish_.c:publish.h purge_.c:purge.h rebuild_.c:rebuild.h regexp_.c:regexp.h report_.c:report.h rss_.c:rss.h schema_.c:schema.h search_.c:search.h security_audit_.c:security_audit.h setup_.c:setup.h sha1_.c:sha1.h sha1hard_.c:sha1hard.h sha3_.c:sha3.h shun_.c:shun.h sitemap_.c:sitemap.h skins_.c:skins.h sqlcmd_.c:sqlcmd.h stash_.c:stash.h stat_.c:stat.h statrep_.c:statrep.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tar_.c:tar.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktsetup_.c:tktsetup.h undo_.c:undo.h unicode_.c:unicode.h unversioned_.c:unversioned.h update_.c:update.h url_.c:url.h user_.c:user.h utf8_.c:utf8.h util_.c:util.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h winfile_.c:winfile.h winhttp_.c:winhttp.h wysiwyg_.c:wysiwyg.h xfer_.c:xfer.h xfersetup_.c:xfersetup.h zip_.c:zip.h $(SRCDIR)\sqlite3.h $(SRCDIR)\th.h VERSION.h $(SRCDIR)\cson_amalgamation.h
910916
@copy /Y nul: headers
911917
--- win/Makefile.dmc
+++ win/Makefile.dmc
@@ -28,13 +28,13 @@
28
29 SQLITE_OPTIONS = -DNDEBUG=1 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_GET_TABLE -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB
30
31 SHELL_OPTIONS = -DNDEBUG=1 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_GET_TABLE -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -Dmain=sqlite3_shell -DSQLITE_SHELL_IS_UTF8=1 -DSQLITE_OMIT_LOAD_EXTENSION=1 -DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) -DSQLITE_SHELL_DBNAME_PROC=sqlcmd_get_dbname -DSQLITE_SHELL_INIT_PROC=sqlcmd_init_proc -Daccess=file_access -Dsystem=fossil_system -Dgetenv=fossil_getenv -Dfopen=fossil_fopen
32
33 SRC = add_.c allrepo_.c attach_.c bag_.c bisect_.c blob_.c branch_.c browse_.c builtin_.c bundle_.c cache_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c cookies_.c db_.c delta_.c deltacmd_.c descendants_.c diff_.c diffcmd_.c dispatch_.c doc_.c email_.c encode_.c etag_.c event_.c export_.c file_.c finfo_.c foci_.c fshell_.c fusefs_.c glob_.c graph_.c gzip_.c hname_.c http_.c http_socket_.c http_ssl_.c http_transport_.c import_.c info_.c json_.c json_artifact_.c json_branch_.c json_config_.c json_diff_.c json_dir_.c json_finfo_.c json_login_.c json_query_.c json_report_.c json_status_.c json_tag_.c json_timeline_.c json_user_.c json_wiki_.c leaf_.c loadctrl_.c login_.c lookslike_.c main_.c manifest_.c markdown_.c markdown_html_.c md5_.c merge_.c merge3_.c moderate_.c name_.c path_.c piechart_.c pivot_.c popen_.c pqueue_.c printf_.c publish_.c purge_.c rebuild_.c regexp_.c report_.c rss_.c schema_.c search_.c security_audit_.c setup_.c sha1_.c sha1hard_.c sha3_.c shun_.c sitemap_.c skins_.c sqlcmd_.c stash_.c stat_.c statrep_.c style_.c sync_.c tag_.c tar_.c th_main_.c timeline_.c tkt_.c tktsetup_.c undo_.c unicode_.c unversioned_.c update_.c url_.c user_.c utf8_.c util_.c verify_.c vfile_.c wiki_.c wikiformat_.c winfile_.c winhttp_.c wysiwyg_.c xfer_.c xfersetup_.c zip_.c
34
35 OBJ = $(OBJDIR)\add$O $(OBJDIR)\allrepo$O $(OBJDIR)\attach$O $(OBJDIR)\bag$O $(OBJDIR)\bisect$O $(OBJDIR)\blob$O $(OBJDIR)\branch$O $(OBJDIR)\browse$O $(OBJDIR)\builtin$O $(OBJDIR)\bundle$O $(OBJDIR)\cache$O $(OBJDIR)\captcha$O $(OBJDIR)\cgi$O $(OBJDIR)\checkin$O $(OBJDIR)\checkout$O $(OBJDIR)\clearsign$O $(OBJDIR)\clone$O $(OBJDIR)\comformat$O $(OBJDIR)\configure$O $(OBJDIR)\content$O $(OBJDIR)\cookies$O $(OBJDIR)\db$O $(OBJDIR)\delta$O $(OBJDIR)\deltacmd$O $(OBJDIR)\descendants$O $(OBJDIR)\diff$O $(OBJDIR)\diffcmd$O $(OBJDIR)\dispatch$O $(OBJDIR)\doc$O $(OBJDIR)\email$O $(OBJDIR)\encode$O $(OBJDIR)\etag$O $(OBJDIR)\event$O $(OBJDIR)\export$O $(OBJDIR)\file$O $(OBJDIR)\finfo$O $(OBJDIR)\foci$O $(OBJDIR)\fshell$O $(OBJDIR)\fusefs$O $(OBJDIR)\glob$O $(OBJDIR)\graph$O $(OBJDIR)\gzip$O $(OBJDIR)\hname$O $(OBJDIR)\http$O $(OBJDIR)\http_socket$O $(OBJDIR)\http_ssl$O $(OBJDIR)\http_transport$O $(OBJDIR)\import$O $(OBJDIR)\info$O $(OBJDIR)\json$O $(OBJDIR)\json_artifact$O $(OBJDIR)\json_branch$O $(OBJDIR)\json_config$O $(OBJDIR)\json_diff$O $(OBJDIR)\json_dir$O $(OBJDIR)\json_finfo$O $(OBJDIR)\json_login$O $(OBJDIR)\json_query$O $(OBJDIR)\json_report$O $(OBJDIR)\json_status$O $(OBJDIR)\json_tag$O $(OBJDIR)\json_timeline$O $(OBJDIR)\json_user$O $(OBJDIR)\json_wiki$O $(OBJDIR)\leaf$O $(OBJDIR)\loadctrl$O $(OBJDIR)\login$O $(OBJDIR)\lookslike$O $(OBJDIR)\main$O $(OBJDIR)\manifest$O $(OBJDIR)\markdown$O $(OBJDIR)\markdown_html$O $(OBJDIR)\md5$O $(OBJDIR)\merge$O $(OBJDIR)\merge3$O $(OBJDIR)\moderate$O $(OBJDIR)\name$O $(OBJDIR)\path$O $(OBJDIR)\piechart$O $(OBJDIR)\pivot$O $(OBJDIR)\popen$O $(OBJDIR)\pqueue$O $(OBJDIR)\printf$O $(OBJDIR)\publish$O $(OBJDIR)\purge$O $(OBJDIR)\rebuild$O $(OBJDIR)\regexp$O $(OBJDIR)\report$O $(OBJDIR)\rss$O $(OBJDIR)\schema$O $(OBJDIR)\search$O $(OBJDIR)\security_audit$O $(OBJDIR)\setup$O $(OBJDIR)\sha1$O $(OBJDIR)\sha1hard$O $(OBJDIR)\sha3$O $(OBJDIR)\shun$O $(OBJDIR)\sitemap$O $(OBJDIR)\skins$O $(OBJDIR)\sqlcmd$O $(OBJDIR)\stash$O $(OBJDIR)\stat$O $(OBJDIR)\statrep$O $(OBJDIR)\style$O $(OBJDIR)\sync$O $(OBJDIR)\tag$O $(OBJDIR)\tar$O $(OBJDIR)\th_main$O $(OBJDIR)\timeline$O $(OBJDIR)\tkt$O $(OBJDIR)\tktsetup$O $(OBJDIR)\undo$O $(OBJDIR)\unicode$O $(OBJDIR)\unversioned$O $(OBJDIR)\update$O $(OBJDIR)\url$O $(OBJDIR)\user$O $(OBJDIR)\utf8$O $(OBJDIR)\util$O $(OBJDIR)\verify$O $(OBJDIR)\vfile$O $(OBJDIR)\wiki$O $(OBJDIR)\wikiformat$O $(OBJDIR)\winfile$O $(OBJDIR)\winhttp$O $(OBJDIR)\wysiwyg$O $(OBJDIR)\xfer$O $(OBJDIR)\xfersetup$O $(OBJDIR)\zip$O $(OBJDIR)\shell$O $(OBJDIR)\sqlite3$O $(OBJDIR)\th$O $(OBJDIR)\th_lang$O
36
37
38 RC=$(DMDIR)\bin\rcc
39 RCFLAGS=-32 -w1 -I$(SRCDIR) /D__DMC__
40
@@ -49,11 +49,11 @@
49
50 $(OBJDIR)\fossil.res: $B\win\fossil.rc
51 $(RC) $(RCFLAGS) -o$@ $**
52
53 $(OBJDIR)\link: $B\win\Makefile.dmc $(OBJDIR)\fossil.res
54 +echo add allrepo attach bag bisect blob branch browse builtin bundle cache captcha cgi checkin checkout clearsign clone comformat configure content cookies db delta deltacmd descendants diff diffcmd dispatch doc email encode etag event export file finfo foci fshell fusefs glob graph gzip hname http http_socket http_ssl http_transport import info json json_artifact json_branch json_config json_diff json_dir json_finfo json_login json_query json_report json_status json_tag json_timeline json_user json_wiki leaf loadctrl login lookslike main manifest markdown markdown_html md5 merge merge3 moderate name path piechart pivot popen pqueue printf publish purge rebuild regexp report rss schema search security_audit setup sha1 sha1hard sha3 shun sitemap skins sqlcmd stash stat statrep style sync tag tar th_main timeline tkt tktsetup undo unicode unversioned update url user utf8 util verify vfile wiki wikiformat winfile winhttp wysiwyg xfer xfersetup zip shell sqlite3 th th_lang > $@
55 +echo fossil >> $@
56 +echo fossil >> $@
57 +echo $(LIBS) >> $@
58 +echo. >> $@
59 +echo fossil >> $@
@@ -350,10 +350,16 @@
350 $(OBJDIR)\foci$O : foci_.c foci.h
351 $(TCC) -o$@ -c foci_.c
352
353 foci_.c : $(SRCDIR)\foci.c
354 +translate$E $** > $@
 
 
 
 
 
 
355
356 $(OBJDIR)\fshell$O : fshell_.c fshell.h
357 $(TCC) -o$@ -c fshell_.c
358
359 fshell_.c : $(SRCDIR)\fshell.c
@@ -904,7 +910,7 @@
904
905 zip_.c : $(SRCDIR)\zip.c
906 +translate$E $** > $@
907
908 headers: makeheaders$E page_index.h builtin_data.h default_css.h VERSION.h
909 +makeheaders$E add_.c:add.h allrepo_.c:allrepo.h attach_.c:attach.h bag_.c:bag.h bisect_.c:bisect.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.h builtin_.c:builtin.h bundle_.c:bundle.h cache_.c:cache.h captcha_.c:captcha.h cgi_.c:cgi.h checkin_.c:checkin.h checkout_.c:checkout.h clearsign_.c:clearsign.h clone_.c:clone.h comformat_.c:comformat.h configure_.c:configure.h content_.c:content.h cookies_.c:cookies.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h dispatch_.c:dispatch.h doc_.c:doc.h email_.c:email.h encode_.c:encode.h etag_.c:etag.h event_.c:event.h export_.c:export.h file_.c:file.h finfo_.c:finfo.h foci_.c:foci.h fshell_.c:fshell.h fusefs_.c:fusefs.h glob_.c:glob.h graph_.c:graph.h gzip_.c:gzip.h hname_.c:hname.h http_.c:http.h http_socket_.c:http_socket.h http_ssl_.c:http_ssl.h http_transport_.c:http_transport.h import_.c:import.h info_.c:info.h json_.c:json.h json_artifact_.c:json_artifact.h json_branch_.c:json_branch.h json_config_.c:json_config.h json_diff_.c:json_diff.h json_dir_.c:json_dir.h json_finfo_.c:json_finfo.h json_login_.c:json_login.h json_query_.c:json_query.h json_report_.c:json_report.h json_status_.c:json_status.h json_tag_.c:json_tag.h json_timeline_.c:json_timeline.h json_user_.c:json_user.h json_wiki_.c:json_wiki.h leaf_.c:leaf.h loadctrl_.c:loadctrl.h login_.c:login.h lookslike_.c:lookslike.h main_.c:main.h manifest_.c:manifest.h markdown_.c:markdown.h markdown_html_.c:markdown_html.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h moderate_.c:moderate.h name_.c:name.h path_.c:path.h piechart_.c:piechart.h pivot_.c:pivot.h popen_.c:popen.h pqueue_.c:pqueue.h printf_.c:printf.h publish_.c:publish.h purge_.c:purge.h rebuild_.c:rebuild.h regexp_.c:regexp.h report_.c:report.h rss_.c:rss.h schema_.c:schema.h search_.c:search.h security_audit_.c:security_audit.h setup_.c:setup.h sha1_.c:sha1.h sha1hard_.c:sha1hard.h sha3_.c:sha3.h shun_.c:shun.h sitemap_.c:sitemap.h skins_.c:skins.h sqlcmd_.c:sqlcmd.h stash_.c:stash.h stat_.c:stat.h statrep_.c:statrep.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tar_.c:tar.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktsetup_.c:tktsetup.h undo_.c:undo.h unicode_.c:unicode.h unversioned_.c:unversioned.h update_.c:update.h url_.c:url.h user_.c:user.h utf8_.c:utf8.h util_.c:util.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h winfile_.c:winfile.h winhttp_.c:winhttp.h wysiwyg_.c:wysiwyg.h xfer_.c:xfer.h xfersetup_.c:xfersetup.h zip_.c:zip.h $(SRCDIR)\sqlite3.h $(SRCDIR)\th.h VERSION.h $(SRCDIR)\cson_amalgamation.h
910 @copy /Y nul: headers
911
--- win/Makefile.dmc
+++ win/Makefile.dmc
@@ -28,13 +28,13 @@
28
29 SQLITE_OPTIONS = -DNDEBUG=1 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_GET_TABLE -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB
30
31 SHELL_OPTIONS = -DNDEBUG=1 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_GET_TABLE -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -Dmain=sqlite3_shell -DSQLITE_SHELL_IS_UTF8=1 -DSQLITE_OMIT_LOAD_EXTENSION=1 -DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) -DSQLITE_SHELL_DBNAME_PROC=sqlcmd_get_dbname -DSQLITE_SHELL_INIT_PROC=sqlcmd_init_proc -Daccess=file_access -Dsystem=fossil_system -Dgetenv=fossil_getenv -Dfopen=fossil_fopen
32
33 SRC = add_.c allrepo_.c attach_.c bag_.c bisect_.c blob_.c branch_.c browse_.c builtin_.c bundle_.c cache_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c cookies_.c db_.c delta_.c deltacmd_.c descendants_.c diff_.c diffcmd_.c dispatch_.c doc_.c email_.c encode_.c etag_.c event_.c export_.c file_.c finfo_.c foci_.c forum_.c fshell_.c fusefs_.c glob_.c graph_.c gzip_.c hname_.c http_.c http_socket_.c http_ssl_.c http_transport_.c import_.c info_.c json_.c json_artifact_.c json_branch_.c json_config_.c json_diff_.c json_dir_.c json_finfo_.c json_login_.c json_query_.c json_report_.c json_status_.c json_tag_.c json_timeline_.c json_user_.c json_wiki_.c leaf_.c loadctrl_.c login_.c lookslike_.c main_.c manifest_.c markdown_.c markdown_html_.c md5_.c merge_.c merge3_.c moderate_.c name_.c path_.c piechart_.c pivot_.c popen_.c pqueue_.c printf_.c publish_.c purge_.c rebuild_.c regexp_.c report_.c rss_.c schema_.c search_.c security_audit_.c setup_.c sha1_.c sha1hard_.c sha3_.c shun_.c sitemap_.c skins_.c sqlcmd_.c stash_.c stat_.c statrep_.c style_.c sync_.c tag_.c tar_.c th_main_.c timeline_.c tkt_.c tktsetup_.c undo_.c unicode_.c unversioned_.c update_.c url_.c user_.c utf8_.c util_.c verify_.c vfile_.c wiki_.c wikiformat_.c winfile_.c winhttp_.c wysiwyg_.c xfer_.c xfersetup_.c zip_.c
34
35 OBJ = $(OBJDIR)\add$O $(OBJDIR)\allrepo$O $(OBJDIR)\attach$O $(OBJDIR)\bag$O $(OBJDIR)\bisect$O $(OBJDIR)\blob$O $(OBJDIR)\branch$O $(OBJDIR)\browse$O $(OBJDIR)\builtin$O $(OBJDIR)\bundle$O $(OBJDIR)\cache$O $(OBJDIR)\captcha$O $(OBJDIR)\cgi$O $(OBJDIR)\checkin$O $(OBJDIR)\checkout$O $(OBJDIR)\clearsign$O $(OBJDIR)\clone$O $(OBJDIR)\comformat$O $(OBJDIR)\configure$O $(OBJDIR)\content$O $(OBJDIR)\cookies$O $(OBJDIR)\db$O $(OBJDIR)\delta$O $(OBJDIR)\deltacmd$O $(OBJDIR)\descendants$O $(OBJDIR)\diff$O $(OBJDIR)\diffcmd$O $(OBJDIR)\dispatch$O $(OBJDIR)\doc$O $(OBJDIR)\email$O $(OBJDIR)\encode$O $(OBJDIR)\etag$O $(OBJDIR)\event$O $(OBJDIR)\export$O $(OBJDIR)\file$O $(OBJDIR)\finfo$O $(OBJDIR)\foci$O $(OBJDIR)\forum$O $(OBJDIR)\fshell$O $(OBJDIR)\fusefs$O $(OBJDIR)\glob$O $(OBJDIR)\graph$O $(OBJDIR)\gzip$O $(OBJDIR)\hname$O $(OBJDIR)\http$O $(OBJDIR)\http_socket$O $(OBJDIR)\http_ssl$O $(OBJDIR)\http_transport$O $(OBJDIR)\import$O $(OBJDIR)\info$O $(OBJDIR)\json$O $(OBJDIR)\json_artifact$O $(OBJDIR)\json_branch$O $(OBJDIR)\json_config$O $(OBJDIR)\json_diff$O $(OBJDIR)\json_dir$O $(OBJDIR)\json_finfo$O $(OBJDIR)\json_login$O $(OBJDIR)\json_query$O $(OBJDIR)\json_report$O $(OBJDIR)\json_status$O $(OBJDIR)\json_tag$O $(OBJDIR)\json_timeline$O $(OBJDIR)\json_user$O $(OBJDIR)\json_wiki$O $(OBJDIR)\leaf$O $(OBJDIR)\loadctrl$O $(OBJDIR)\login$O $(OBJDIR)\lookslike$O $(OBJDIR)\main$O $(OBJDIR)\manifest$O $(OBJDIR)\markdown$O $(OBJDIR)\markdown_html$O $(OBJDIR)\md5$O $(OBJDIR)\merge$O $(OBJDIR)\merge3$O $(OBJDIR)\moderate$O $(OBJDIR)\name$O $(OBJDIR)\path$O $(OBJDIR)\piechart$O $(OBJDIR)\pivot$O $(OBJDIR)\popen$O $(OBJDIR)\pqueue$O $(OBJDIR)\printf$O $(OBJDIR)\publish$O $(OBJDIR)\purge$O $(OBJDIR)\rebuild$O $(OBJDIR)\regexp$O $(OBJDIR)\report$O $(OBJDIR)\rss$O $(OBJDIR)\schema$O $(OBJDIR)\search$O $(OBJDIR)\security_audit$O $(OBJDIR)\setup$O $(OBJDIR)\sha1$O $(OBJDIR)\sha1hard$O $(OBJDIR)\sha3$O $(OBJDIR)\shun$O $(OBJDIR)\sitemap$O $(OBJDIR)\skins$O $(OBJDIR)\sqlcmd$O $(OBJDIR)\stash$O $(OBJDIR)\stat$O $(OBJDIR)\statrep$O $(OBJDIR)\style$O $(OBJDIR)\sync$O $(OBJDIR)\tag$O $(OBJDIR)\tar$O $(OBJDIR)\th_main$O $(OBJDIR)\timeline$O $(OBJDIR)\tkt$O $(OBJDIR)\tktsetup$O $(OBJDIR)\undo$O $(OBJDIR)\unicode$O $(OBJDIR)\unversioned$O $(OBJDIR)\update$O $(OBJDIR)\url$O $(OBJDIR)\user$O $(OBJDIR)\utf8$O $(OBJDIR)\util$O $(OBJDIR)\verify$O $(OBJDIR)\vfile$O $(OBJDIR)\wiki$O $(OBJDIR)\wikiformat$O $(OBJDIR)\winfile$O $(OBJDIR)\winhttp$O $(OBJDIR)\wysiwyg$O $(OBJDIR)\xfer$O $(OBJDIR)\xfersetup$O $(OBJDIR)\zip$O $(OBJDIR)\shell$O $(OBJDIR)\sqlite3$O $(OBJDIR)\th$O $(OBJDIR)\th_lang$O
36
37
38 RC=$(DMDIR)\bin\rcc
39 RCFLAGS=-32 -w1 -I$(SRCDIR) /D__DMC__
40
@@ -49,11 +49,11 @@
49
50 $(OBJDIR)\fossil.res: $B\win\fossil.rc
51 $(RC) $(RCFLAGS) -o$@ $**
52
53 $(OBJDIR)\link: $B\win\Makefile.dmc $(OBJDIR)\fossil.res
54 +echo add allrepo attach bag bisect blob branch browse builtin bundle cache captcha cgi checkin checkout clearsign clone comformat configure content cookies db delta deltacmd descendants diff diffcmd dispatch doc email encode etag event export file finfo foci forum fshell fusefs glob graph gzip hname http http_socket http_ssl http_transport import info json json_artifact json_branch json_config json_diff json_dir json_finfo json_login json_query json_report json_status json_tag json_timeline json_user json_wiki leaf loadctrl login lookslike main manifest markdown markdown_html md5 merge merge3 moderate name path piechart pivot popen pqueue printf publish purge rebuild regexp report rss schema search security_audit setup sha1 sha1hard sha3 shun sitemap skins sqlcmd stash stat statrep style sync tag tar th_main timeline tkt tktsetup undo unicode unversioned update url user utf8 util verify vfile wiki wikiformat winfile winhttp wysiwyg xfer xfersetup zip shell sqlite3 th th_lang > $@
55 +echo fossil >> $@
56 +echo fossil >> $@
57 +echo $(LIBS) >> $@
58 +echo. >> $@
59 +echo fossil >> $@
@@ -350,10 +350,16 @@
350 $(OBJDIR)\foci$O : foci_.c foci.h
351 $(TCC) -o$@ -c foci_.c
352
353 foci_.c : $(SRCDIR)\foci.c
354 +translate$E $** > $@
355
356 $(OBJDIR)\forum$O : forum_.c forum.h
357 $(TCC) -o$@ -c forum_.c
358
359 forum_.c : $(SRCDIR)\forum.c
360 +translate$E $** > $@
361
362 $(OBJDIR)\fshell$O : fshell_.c fshell.h
363 $(TCC) -o$@ -c fshell_.c
364
365 fshell_.c : $(SRCDIR)\fshell.c
@@ -904,7 +910,7 @@
910
911 zip_.c : $(SRCDIR)\zip.c
912 +translate$E $** > $@
913
914 headers: makeheaders$E page_index.h builtin_data.h default_css.h VERSION.h
915 +makeheaders$E add_.c:add.h allrepo_.c:allrepo.h attach_.c:attach.h bag_.c:bag.h bisect_.c:bisect.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.h builtin_.c:builtin.h bundle_.c:bundle.h cache_.c:cache.h captcha_.c:captcha.h cgi_.c:cgi.h checkin_.c:checkin.h checkout_.c:checkout.h clearsign_.c:clearsign.h clone_.c:clone.h comformat_.c:comformat.h configure_.c:configure.h content_.c:content.h cookies_.c:cookies.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h dispatch_.c:dispatch.h doc_.c:doc.h email_.c:email.h encode_.c:encode.h etag_.c:etag.h event_.c:event.h export_.c:export.h file_.c:file.h finfo_.c:finfo.h foci_.c:foci.h forum_.c:forum.h fshell_.c:fshell.h fusefs_.c:fusefs.h glob_.c:glob.h graph_.c:graph.h gzip_.c:gzip.h hname_.c:hname.h http_.c:http.h http_socket_.c:http_socket.h http_ssl_.c:http_ssl.h http_transport_.c:http_transport.h import_.c:import.h info_.c:info.h json_.c:json.h json_artifact_.c:json_artifact.h json_branch_.c:json_branch.h json_config_.c:json_config.h json_diff_.c:json_diff.h json_dir_.c:json_dir.h json_finfo_.c:json_finfo.h json_login_.c:json_login.h json_query_.c:json_query.h json_report_.c:json_report.h json_status_.c:json_status.h json_tag_.c:json_tag.h json_timeline_.c:json_timeline.h json_user_.c:json_user.h json_wiki_.c:json_wiki.h leaf_.c:leaf.h loadctrl_.c:loadctrl.h login_.c:login.h lookslike_.c:lookslike.h main_.c:main.h manifest_.c:manifest.h markdown_.c:markdown.h markdown_html_.c:markdown_html.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h moderate_.c:moderate.h name_.c:name.h path_.c:path.h piechart_.c:piechart.h pivot_.c:pivot.h popen_.c:popen.h pqueue_.c:pqueue.h printf_.c:printf.h publish_.c:publish.h purge_.c:purge.h rebuild_.c:rebuild.h regexp_.c:regexp.h report_.c:report.h rss_.c:rss.h schema_.c:schema.h search_.c:search.h security_audit_.c:security_audit.h setup_.c:setup.h sha1_.c:sha1.h sha1hard_.c:sha1hard.h sha3_.c:sha3.h shun_.c:shun.h sitemap_.c:sitemap.h skins_.c:skins.h sqlcmd_.c:sqlcmd.h stash_.c:stash.h stat_.c:stat.h statrep_.c:statrep.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tar_.c:tar.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktsetup_.c:tktsetup.h undo_.c:undo.h unicode_.c:unicode.h unversioned_.c:unversioned.h update_.c:update.h url_.c:url.h user_.c:user.h utf8_.c:utf8.h util_.c:util.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h winfile_.c:winfile.h winhttp_.c:winhttp.h wysiwyg_.c:wysiwyg.h xfer_.c:xfer.h xfersetup_.c:xfersetup.h zip_.c:zip.h $(SRCDIR)\sqlite3.h $(SRCDIR)\th.h VERSION.h $(SRCDIR)\cson_amalgamation.h
916 @copy /Y nul: headers
917
+10 -4
--- win/Makefile.dmc
+++ win/Makefile.dmc
@@ -28,13 +28,13 @@
2828
2929
SQLITE_OPTIONS = -DNDEBUG=1 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_GET_TABLE -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB
3030
3131
SHELL_OPTIONS = -DNDEBUG=1 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_GET_TABLE -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -Dmain=sqlite3_shell -DSQLITE_SHELL_IS_UTF8=1 -DSQLITE_OMIT_LOAD_EXTENSION=1 -DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) -DSQLITE_SHELL_DBNAME_PROC=sqlcmd_get_dbname -DSQLITE_SHELL_INIT_PROC=sqlcmd_init_proc -Daccess=file_access -Dsystem=fossil_system -Dgetenv=fossil_getenv -Dfopen=fossil_fopen
3232
33
-SRC = add_.c allrepo_.c attach_.c bag_.c bisect_.c blob_.c branch_.c browse_.c builtin_.c bundle_.c cache_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c cookies_.c db_.c delta_.c deltacmd_.c descendants_.c diff_.c diffcmd_.c dispatch_.c doc_.c email_.c encode_.c etag_.c event_.c export_.c file_.c finfo_.c foci_.c fshell_.c fusefs_.c glob_.c graph_.c gzip_.c hname_.c http_.c http_socket_.c http_ssl_.c http_transport_.c import_.c info_.c json_.c json_artifact_.c json_branch_.c json_config_.c json_diff_.c json_dir_.c json_finfo_.c json_login_.c json_query_.c json_report_.c json_status_.c json_tag_.c json_timeline_.c json_user_.c json_wiki_.c leaf_.c loadctrl_.c login_.c lookslike_.c main_.c manifest_.c markdown_.c markdown_html_.c md5_.c merge_.c merge3_.c moderate_.c name_.c path_.c piechart_.c pivot_.c popen_.c pqueue_.c printf_.c publish_.c purge_.c rebuild_.c regexp_.c report_.c rss_.c schema_.c search_.c security_audit_.c setup_.c sha1_.c sha1hard_.c sha3_.c shun_.c sitemap_.c skins_.c sqlcmd_.c stash_.c stat_.c statrep_.c style_.c sync_.c tag_.c tar_.c th_main_.c timeline_.c tkt_.c tktsetup_.c undo_.c unicode_.c unversioned_.c update_.c url_.c user_.c utf8_.c util_.c verify_.c vfile_.c wiki_.c wikiformat_.c winfile_.c winhttp_.c wysiwyg_.c xfer_.c xfersetup_.c zip_.c
33
+SRC = add_.c allrepo_.c attach_.c bag_.c bisect_.c blob_.c branch_.c browse_.c builtin_.c bundle_.c cache_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c cookies_.c db_.c delta_.c deltacmd_.c descendants_.c diff_.c diffcmd_.c dispatch_.c doc_.c email_.c encode_.c etag_.c event_.c export_.c file_.c finfo_.c foci_.c forum_.c fshell_.c fusefs_.c glob_.c graph_.c gzip_.c hname_.c http_.c http_socket_.c http_ssl_.c http_transport_.c import_.c info_.c json_.c json_artifact_.c json_branch_.c json_config_.c json_diff_.c json_dir_.c json_finfo_.c json_login_.c json_query_.c json_report_.c json_status_.c json_tag_.c json_timeline_.c json_user_.c json_wiki_.c leaf_.c loadctrl_.c login_.c lookslike_.c main_.c manifest_.c markdown_.c markdown_html_.c md5_.c merge_.c merge3_.c moderate_.c name_.c path_.c piechart_.c pivot_.c popen_.c pqueue_.c printf_.c publish_.c purge_.c rebuild_.c regexp_.c report_.c rss_.c schema_.c search_.c security_audit_.c setup_.c sha1_.c sha1hard_.c sha3_.c shun_.c sitemap_.c skins_.c sqlcmd_.c stash_.c stat_.c statrep_.c style_.c sync_.c tag_.c tar_.c th_main_.c timeline_.c tkt_.c tktsetup_.c undo_.c unicode_.c unversioned_.c update_.c url_.c user_.c utf8_.c util_.c verify_.c vfile_.c wiki_.c wikiformat_.c winfile_.c winhttp_.c wysiwyg_.c xfer_.c xfersetup_.c zip_.c
3434
35
-OBJ = $(OBJDIR)\add$O $(OBJDIR)\allrepo$O $(OBJDIR)\attach$O $(OBJDIR)\bag$O $(OBJDIR)\bisect$O $(OBJDIR)\blob$O $(OBJDIR)\branch$O $(OBJDIR)\browse$O $(OBJDIR)\builtin$O $(OBJDIR)\bundle$O $(OBJDIR)\cache$O $(OBJDIR)\captcha$O $(OBJDIR)\cgi$O $(OBJDIR)\checkin$O $(OBJDIR)\checkout$O $(OBJDIR)\clearsign$O $(OBJDIR)\clone$O $(OBJDIR)\comformat$O $(OBJDIR)\configure$O $(OBJDIR)\content$O $(OBJDIR)\cookies$O $(OBJDIR)\db$O $(OBJDIR)\delta$O $(OBJDIR)\deltacmd$O $(OBJDIR)\descendants$O $(OBJDIR)\diff$O $(OBJDIR)\diffcmd$O $(OBJDIR)\dispatch$O $(OBJDIR)\doc$O $(OBJDIR)\email$O $(OBJDIR)\encode$O $(OBJDIR)\etag$O $(OBJDIR)\event$O $(OBJDIR)\export$O $(OBJDIR)\file$O $(OBJDIR)\finfo$O $(OBJDIR)\foci$O $(OBJDIR)\fshell$O $(OBJDIR)\fusefs$O $(OBJDIR)\glob$O $(OBJDIR)\graph$O $(OBJDIR)\gzip$O $(OBJDIR)\hname$O $(OBJDIR)\http$O $(OBJDIR)\http_socket$O $(OBJDIR)\http_ssl$O $(OBJDIR)\http_transport$O $(OBJDIR)\import$O $(OBJDIR)\info$O $(OBJDIR)\json$O $(OBJDIR)\json_artifact$O $(OBJDIR)\json_branch$O $(OBJDIR)\json_config$O $(OBJDIR)\json_diff$O $(OBJDIR)\json_dir$O $(OBJDIR)\json_finfo$O $(OBJDIR)\json_login$O $(OBJDIR)\json_query$O $(OBJDIR)\json_report$O $(OBJDIR)\json_status$O $(OBJDIR)\json_tag$O $(OBJDIR)\json_timeline$O $(OBJDIR)\json_user$O $(OBJDIR)\json_wiki$O $(OBJDIR)\leaf$O $(OBJDIR)\loadctrl$O $(OBJDIR)\login$O $(OBJDIR)\lookslike$O $(OBJDIR)\main$O $(OBJDIR)\manifest$O $(OBJDIR)\markdown$O $(OBJDIR)\markdown_html$O $(OBJDIR)\md5$O $(OBJDIR)\merge$O $(OBJDIR)\merge3$O $(OBJDIR)\moderate$O $(OBJDIR)\name$O $(OBJDIR)\path$O $(OBJDIR)\piechart$O $(OBJDIR)\pivot$O $(OBJDIR)\popen$O $(OBJDIR)\pqueue$O $(OBJDIR)\printf$O $(OBJDIR)\publish$O $(OBJDIR)\purge$O $(OBJDIR)\rebuild$O $(OBJDIR)\regexp$O $(OBJDIR)\report$O $(OBJDIR)\rss$O $(OBJDIR)\schema$O $(OBJDIR)\search$O $(OBJDIR)\security_audit$O $(OBJDIR)\setup$O $(OBJDIR)\sha1$O $(OBJDIR)\sha1hard$O $(OBJDIR)\sha3$O $(OBJDIR)\shun$O $(OBJDIR)\sitemap$O $(OBJDIR)\skins$O $(OBJDIR)\sqlcmd$O $(OBJDIR)\stash$O $(OBJDIR)\stat$O $(OBJDIR)\statrep$O $(OBJDIR)\style$O $(OBJDIR)\sync$O $(OBJDIR)\tag$O $(OBJDIR)\tar$O $(OBJDIR)\th_main$O $(OBJDIR)\timeline$O $(OBJDIR)\tkt$O $(OBJDIR)\tktsetup$O $(OBJDIR)\undo$O $(OBJDIR)\unicode$O $(OBJDIR)\unversioned$O $(OBJDIR)\update$O $(OBJDIR)\url$O $(OBJDIR)\user$O $(OBJDIR)\utf8$O $(OBJDIR)\util$O $(OBJDIR)\verify$O $(OBJDIR)\vfile$O $(OBJDIR)\wiki$O $(OBJDIR)\wikiformat$O $(OBJDIR)\winfile$O $(OBJDIR)\winhttp$O $(OBJDIR)\wysiwyg$O $(OBJDIR)\xfer$O $(OBJDIR)\xfersetup$O $(OBJDIR)\zip$O $(OBJDIR)\shell$O $(OBJDIR)\sqlite3$O $(OBJDIR)\th$O $(OBJDIR)\th_lang$O
35
+OBJ = $(OBJDIR)\add$O $(OBJDIR)\allrepo$O $(OBJDIR)\attach$O $(OBJDIR)\bag$O $(OBJDIR)\bisect$O $(OBJDIR)\blob$O $(OBJDIR)\branch$O $(OBJDIR)\browse$O $(OBJDIR)\builtin$O $(OBJDIR)\bundle$O $(OBJDIR)\cache$O $(OBJDIR)\captcha$O $(OBJDIR)\cgi$O $(OBJDIR)\checkin$O $(OBJDIR)\checkout$O $(OBJDIR)\clearsign$O $(OBJDIR)\clone$O $(OBJDIR)\comformat$O $(OBJDIR)\configure$O $(OBJDIR)\content$O $(OBJDIR)\cookies$O $(OBJDIR)\db$O $(OBJDIR)\delta$O $(OBJDIR)\deltacmd$O $(OBJDIR)\descendants$O $(OBJDIR)\diff$O $(OBJDIR)\diffcmd$O $(OBJDIR)\dispatch$O $(OBJDIR)\doc$O $(OBJDIR)\email$O $(OBJDIR)\encode$O $(OBJDIR)\etag$O $(OBJDIR)\event$O $(OBJDIR)\export$O $(OBJDIR)\file$O $(OBJDIR)\finfo$O $(OBJDIR)\foci$O $(OBJDIR)\forum$O $(OBJDIR)\fshell$O $(OBJDIR)\fusefs$O $(OBJDIR)\glob$O $(OBJDIR)\graph$O $(OBJDIR)\gzip$O $(OBJDIR)\hname$O $(OBJDIR)\http$O $(OBJDIR)\http_socket$O $(OBJDIR)\http_ssl$O $(OBJDIR)\http_transport$O $(OBJDIR)\import$O $(OBJDIR)\info$O $(OBJDIR)\json$O $(OBJDIR)\json_artifact$O $(OBJDIR)\json_branch$O $(OBJDIR)\json_config$O $(OBJDIR)\json_diff$O $(OBJDIR)\json_dir$O $(OBJDIR)\json_finfo$O $(OBJDIR)\json_login$O $(OBJDIR)\json_query$O $(OBJDIR)\json_report$O $(OBJDIR)\json_status$O $(OBJDIR)\json_tag$O $(OBJDIR)\json_timeline$O $(OBJDIR)\json_user$O $(OBJDIR)\json_wiki$O $(OBJDIR)\leaf$O $(OBJDIR)\loadctrl$O $(OBJDIR)\login$O $(OBJDIR)\lookslike$O $(OBJDIR)\main$O $(OBJDIR)\manifest$O $(OBJDIR)\markdown$O $(OBJDIR)\markdown_html$O $(OBJDIR)\md5$O $(OBJDIR)\merge$O $(OBJDIR)\merge3$O $(OBJDIR)\moderate$O $(OBJDIR)\name$O $(OBJDIR)\path$O $(OBJDIR)\piechart$O $(OBJDIR)\pivot$O $(OBJDIR)\popen$O $(OBJDIR)\pqueue$O $(OBJDIR)\printf$O $(OBJDIR)\publish$O $(OBJDIR)\purge$O $(OBJDIR)\rebuild$O $(OBJDIR)\regexp$O $(OBJDIR)\report$O $(OBJDIR)\rss$O $(OBJDIR)\schema$O $(OBJDIR)\search$O $(OBJDIR)\security_audit$O $(OBJDIR)\setup$O $(OBJDIR)\sha1$O $(OBJDIR)\sha1hard$O $(OBJDIR)\sha3$O $(OBJDIR)\shun$O $(OBJDIR)\sitemap$O $(OBJDIR)\skins$O $(OBJDIR)\sqlcmd$O $(OBJDIR)\stash$O $(OBJDIR)\stat$O $(OBJDIR)\statrep$O $(OBJDIR)\style$O $(OBJDIR)\sync$O $(OBJDIR)\tag$O $(OBJDIR)\tar$O $(OBJDIR)\th_main$O $(OBJDIR)\timeline$O $(OBJDIR)\tkt$O $(OBJDIR)\tktsetup$O $(OBJDIR)\undo$O $(OBJDIR)\unicode$O $(OBJDIR)\unversioned$O $(OBJDIR)\update$O $(OBJDIR)\url$O $(OBJDIR)\user$O $(OBJDIR)\utf8$O $(OBJDIR)\util$O $(OBJDIR)\verify$O $(OBJDIR)\vfile$O $(OBJDIR)\wiki$O $(OBJDIR)\wikiformat$O $(OBJDIR)\winfile$O $(OBJDIR)\winhttp$O $(OBJDIR)\wysiwyg$O $(OBJDIR)\xfer$O $(OBJDIR)\xfersetup$O $(OBJDIR)\zip$O $(OBJDIR)\shell$O $(OBJDIR)\sqlite3$O $(OBJDIR)\th$O $(OBJDIR)\th_lang$O
3636
3737
3838
RC=$(DMDIR)\bin\rcc
3939
RCFLAGS=-32 -w1 -I$(SRCDIR) /D__DMC__
4040
@@ -49,11 +49,11 @@
4949
5050
$(OBJDIR)\fossil.res: $B\win\fossil.rc
5151
$(RC) $(RCFLAGS) -o$@ $**
5252
5353
$(OBJDIR)\link: $B\win\Makefile.dmc $(OBJDIR)\fossil.res
54
- +echo add allrepo attach bag bisect blob branch browse builtin bundle cache captcha cgi checkin checkout clearsign clone comformat configure content cookies db delta deltacmd descendants diff diffcmd dispatch doc email encode etag event export file finfo foci fshell fusefs glob graph gzip hname http http_socket http_ssl http_transport import info json json_artifact json_branch json_config json_diff json_dir json_finfo json_login json_query json_report json_status json_tag json_timeline json_user json_wiki leaf loadctrl login lookslike main manifest markdown markdown_html md5 merge merge3 moderate name path piechart pivot popen pqueue printf publish purge rebuild regexp report rss schema search security_audit setup sha1 sha1hard sha3 shun sitemap skins sqlcmd stash stat statrep style sync tag tar th_main timeline tkt tktsetup undo unicode unversioned update url user utf8 util verify vfile wiki wikiformat winfile winhttp wysiwyg xfer xfersetup zip shell sqlite3 th th_lang > $@
54
+ +echo add allrepo attach bag bisect blob branch browse builtin bundle cache captcha cgi checkin checkout clearsign clone comformat configure content cookies db delta deltacmd descendants diff diffcmd dispatch doc email encode etag event export file finfo foci forum fshell fusefs glob graph gzip hname http http_socket http_ssl http_transport import info json json_artifact json_branch json_config json_diff json_dir json_finfo json_login json_query json_report json_status json_tag json_timeline json_user json_wiki leaf loadctrl login lookslike main manifest markdown markdown_html md5 merge merge3 moderate name path piechart pivot popen pqueue printf publish purge rebuild regexp report rss schema search security_audit setup sha1 sha1hard sha3 shun sitemap skins sqlcmd stash stat statrep style sync tag tar th_main timeline tkt tktsetup undo unicode unversioned update url user utf8 util verify vfile wiki wikiformat winfile winhttp wysiwyg xfer xfersetup zip shell sqlite3 th th_lang > $@
5555
+echo fossil >> $@
5656
+echo fossil >> $@
5757
+echo $(LIBS) >> $@
5858
+echo. >> $@
5959
+echo fossil >> $@
@@ -350,10 +350,16 @@
350350
$(OBJDIR)\foci$O : foci_.c foci.h
351351
$(TCC) -o$@ -c foci_.c
352352
353353
foci_.c : $(SRCDIR)\foci.c
354354
+translate$E $** > $@
355
+
356
+$(OBJDIR)\forum$O : forum_.c forum.h
357
+ $(TCC) -o$@ -c forum_.c
358
+
359
+forum_.c : $(SRCDIR)\forum.c
360
+ +translate$E $** > $@
355361
356362
$(OBJDIR)\fshell$O : fshell_.c fshell.h
357363
$(TCC) -o$@ -c fshell_.c
358364
359365
fshell_.c : $(SRCDIR)\fshell.c
@@ -904,7 +910,7 @@
904910
905911
zip_.c : $(SRCDIR)\zip.c
906912
+translate$E $** > $@
907913
908914
headers: makeheaders$E page_index.h builtin_data.h default_css.h VERSION.h
909
- +makeheaders$E add_.c:add.h allrepo_.c:allrepo.h attach_.c:attach.h bag_.c:bag.h bisect_.c:bisect.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.h builtin_.c:builtin.h bundle_.c:bundle.h cache_.c:cache.h captcha_.c:captcha.h cgi_.c:cgi.h checkin_.c:checkin.h checkout_.c:checkout.h clearsign_.c:clearsign.h clone_.c:clone.h comformat_.c:comformat.h configure_.c:configure.h content_.c:content.h cookies_.c:cookies.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h dispatch_.c:dispatch.h doc_.c:doc.h email_.c:email.h encode_.c:encode.h etag_.c:etag.h event_.c:event.h export_.c:export.h file_.c:file.h finfo_.c:finfo.h foci_.c:foci.h fshell_.c:fshell.h fusefs_.c:fusefs.h glob_.c:glob.h graph_.c:graph.h gzip_.c:gzip.h hname_.c:hname.h http_.c:http.h http_socket_.c:http_socket.h http_ssl_.c:http_ssl.h http_transport_.c:http_transport.h import_.c:import.h info_.c:info.h json_.c:json.h json_artifact_.c:json_artifact.h json_branch_.c:json_branch.h json_config_.c:json_config.h json_diff_.c:json_diff.h json_dir_.c:json_dir.h json_finfo_.c:json_finfo.h json_login_.c:json_login.h json_query_.c:json_query.h json_report_.c:json_report.h json_status_.c:json_status.h json_tag_.c:json_tag.h json_timeline_.c:json_timeline.h json_user_.c:json_user.h json_wiki_.c:json_wiki.h leaf_.c:leaf.h loadctrl_.c:loadctrl.h login_.c:login.h lookslike_.c:lookslike.h main_.c:main.h manifest_.c:manifest.h markdown_.c:markdown.h markdown_html_.c:markdown_html.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h moderate_.c:moderate.h name_.c:name.h path_.c:path.h piechart_.c:piechart.h pivot_.c:pivot.h popen_.c:popen.h pqueue_.c:pqueue.h printf_.c:printf.h publish_.c:publish.h purge_.c:purge.h rebuild_.c:rebuild.h regexp_.c:regexp.h report_.c:report.h rss_.c:rss.h schema_.c:schema.h search_.c:search.h security_audit_.c:security_audit.h setup_.c:setup.h sha1_.c:sha1.h sha1hard_.c:sha1hard.h sha3_.c:sha3.h shun_.c:shun.h sitemap_.c:sitemap.h skins_.c:skins.h sqlcmd_.c:sqlcmd.h stash_.c:stash.h stat_.c:stat.h statrep_.c:statrep.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tar_.c:tar.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktsetup_.c:tktsetup.h undo_.c:undo.h unicode_.c:unicode.h unversioned_.c:unversioned.h update_.c:update.h url_.c:url.h user_.c:user.h utf8_.c:utf8.h util_.c:util.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h winfile_.c:winfile.h winhttp_.c:winhttp.h wysiwyg_.c:wysiwyg.h xfer_.c:xfer.h xfersetup_.c:xfersetup.h zip_.c:zip.h $(SRCDIR)\sqlite3.h $(SRCDIR)\th.h VERSION.h $(SRCDIR)\cson_amalgamation.h
915
+ +makeheaders$E add_.c:add.h allrepo_.c:allrepo.h attach_.c:attach.h bag_.c:bag.h bisect_.c:bisect.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.h builtin_.c:builtin.h bundle_.c:bundle.h cache_.c:cache.h captcha_.c:captcha.h cgi_.c:cgi.h checkin_.c:checkin.h checkout_.c:checkout.h clearsign_.c:clearsign.h clone_.c:clone.h comformat_.c:comformat.h configure_.c:configure.h content_.c:content.h cookies_.c:cookies.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h dispatch_.c:dispatch.h doc_.c:doc.h email_.c:email.h encode_.c:encode.h etag_.c:etag.h event_.c:event.h export_.c:export.h file_.c:file.h finfo_.c:finfo.h foci_.c:foci.h forum_.c:forum.h fshell_.c:fshell.h fusefs_.c:fusefs.h glob_.c:glob.h graph_.c:graph.h gzip_.c:gzip.h hname_.c:hname.h http_.c:http.h http_socket_.c:http_socket.h http_ssl_.c:http_ssl.h http_transport_.c:http_transport.h import_.c:import.h info_.c:info.h json_.c:json.h json_artifact_.c:json_artifact.h json_branch_.c:json_branch.h json_config_.c:json_config.h json_diff_.c:json_diff.h json_dir_.c:json_dir.h json_finfo_.c:json_finfo.h json_login_.c:json_login.h json_query_.c:json_query.h json_report_.c:json_report.h json_status_.c:json_status.h json_tag_.c:json_tag.h json_timeline_.c:json_timeline.h json_user_.c:json_user.h json_wiki_.c:json_wiki.h leaf_.c:leaf.h loadctrl_.c:loadctrl.h login_.c:login.h lookslike_.c:lookslike.h main_.c:main.h manifest_.c:manifest.h markdown_.c:markdown.h markdown_html_.c:markdown_html.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h moderate_.c:moderate.h name_.c:name.h path_.c:path.h piechart_.c:piechart.h pivot_.c:pivot.h popen_.c:popen.h pqueue_.c:pqueue.h printf_.c:printf.h publish_.c:publish.h purge_.c:purge.h rebuild_.c:rebuild.h regexp_.c:regexp.h report_.c:report.h rss_.c:rss.h schema_.c:schema.h search_.c:search.h security_audit_.c:security_audit.h setup_.c:setup.h sha1_.c:sha1.h sha1hard_.c:sha1hard.h sha3_.c:sha3.h shun_.c:shun.h sitemap_.c:sitemap.h skins_.c:skins.h sqlcmd_.c:sqlcmd.h stash_.c:stash.h stat_.c:stat.h statrep_.c:statrep.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tar_.c:tar.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktsetup_.c:tktsetup.h undo_.c:undo.h unicode_.c:unicode.h unversioned_.c:unversioned.h update_.c:update.h url_.c:url.h user_.c:user.h utf8_.c:utf8.h util_.c:util.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h winfile_.c:winfile.h winhttp_.c:winhttp.h wysiwyg_.c:wysiwyg.h xfer_.c:xfer.h xfersetup_.c:xfersetup.h zip_.c:zip.h $(SRCDIR)\sqlite3.h $(SRCDIR)\th.h VERSION.h $(SRCDIR)\cson_amalgamation.h
910916
@copy /Y nul: headers
911917
--- win/Makefile.dmc
+++ win/Makefile.dmc
@@ -28,13 +28,13 @@
28
29 SQLITE_OPTIONS = -DNDEBUG=1 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_GET_TABLE -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB
30
31 SHELL_OPTIONS = -DNDEBUG=1 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_GET_TABLE -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -Dmain=sqlite3_shell -DSQLITE_SHELL_IS_UTF8=1 -DSQLITE_OMIT_LOAD_EXTENSION=1 -DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) -DSQLITE_SHELL_DBNAME_PROC=sqlcmd_get_dbname -DSQLITE_SHELL_INIT_PROC=sqlcmd_init_proc -Daccess=file_access -Dsystem=fossil_system -Dgetenv=fossil_getenv -Dfopen=fossil_fopen
32
33 SRC = add_.c allrepo_.c attach_.c bag_.c bisect_.c blob_.c branch_.c browse_.c builtin_.c bundle_.c cache_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c cookies_.c db_.c delta_.c deltacmd_.c descendants_.c diff_.c diffcmd_.c dispatch_.c doc_.c email_.c encode_.c etag_.c event_.c export_.c file_.c finfo_.c foci_.c fshell_.c fusefs_.c glob_.c graph_.c gzip_.c hname_.c http_.c http_socket_.c http_ssl_.c http_transport_.c import_.c info_.c json_.c json_artifact_.c json_branch_.c json_config_.c json_diff_.c json_dir_.c json_finfo_.c json_login_.c json_query_.c json_report_.c json_status_.c json_tag_.c json_timeline_.c json_user_.c json_wiki_.c leaf_.c loadctrl_.c login_.c lookslike_.c main_.c manifest_.c markdown_.c markdown_html_.c md5_.c merge_.c merge3_.c moderate_.c name_.c path_.c piechart_.c pivot_.c popen_.c pqueue_.c printf_.c publish_.c purge_.c rebuild_.c regexp_.c report_.c rss_.c schema_.c search_.c security_audit_.c setup_.c sha1_.c sha1hard_.c sha3_.c shun_.c sitemap_.c skins_.c sqlcmd_.c stash_.c stat_.c statrep_.c style_.c sync_.c tag_.c tar_.c th_main_.c timeline_.c tkt_.c tktsetup_.c undo_.c unicode_.c unversioned_.c update_.c url_.c user_.c utf8_.c util_.c verify_.c vfile_.c wiki_.c wikiformat_.c winfile_.c winhttp_.c wysiwyg_.c xfer_.c xfersetup_.c zip_.c
34
35 OBJ = $(OBJDIR)\add$O $(OBJDIR)\allrepo$O $(OBJDIR)\attach$O $(OBJDIR)\bag$O $(OBJDIR)\bisect$O $(OBJDIR)\blob$O $(OBJDIR)\branch$O $(OBJDIR)\browse$O $(OBJDIR)\builtin$O $(OBJDIR)\bundle$O $(OBJDIR)\cache$O $(OBJDIR)\captcha$O $(OBJDIR)\cgi$O $(OBJDIR)\checkin$O $(OBJDIR)\checkout$O $(OBJDIR)\clearsign$O $(OBJDIR)\clone$O $(OBJDIR)\comformat$O $(OBJDIR)\configure$O $(OBJDIR)\content$O $(OBJDIR)\cookies$O $(OBJDIR)\db$O $(OBJDIR)\delta$O $(OBJDIR)\deltacmd$O $(OBJDIR)\descendants$O $(OBJDIR)\diff$O $(OBJDIR)\diffcmd$O $(OBJDIR)\dispatch$O $(OBJDIR)\doc$O $(OBJDIR)\email$O $(OBJDIR)\encode$O $(OBJDIR)\etag$O $(OBJDIR)\event$O $(OBJDIR)\export$O $(OBJDIR)\file$O $(OBJDIR)\finfo$O $(OBJDIR)\foci$O $(OBJDIR)\fshell$O $(OBJDIR)\fusefs$O $(OBJDIR)\glob$O $(OBJDIR)\graph$O $(OBJDIR)\gzip$O $(OBJDIR)\hname$O $(OBJDIR)\http$O $(OBJDIR)\http_socket$O $(OBJDIR)\http_ssl$O $(OBJDIR)\http_transport$O $(OBJDIR)\import$O $(OBJDIR)\info$O $(OBJDIR)\json$O $(OBJDIR)\json_artifact$O $(OBJDIR)\json_branch$O $(OBJDIR)\json_config$O $(OBJDIR)\json_diff$O $(OBJDIR)\json_dir$O $(OBJDIR)\json_finfo$O $(OBJDIR)\json_login$O $(OBJDIR)\json_query$O $(OBJDIR)\json_report$O $(OBJDIR)\json_status$O $(OBJDIR)\json_tag$O $(OBJDIR)\json_timeline$O $(OBJDIR)\json_user$O $(OBJDIR)\json_wiki$O $(OBJDIR)\leaf$O $(OBJDIR)\loadctrl$O $(OBJDIR)\login$O $(OBJDIR)\lookslike$O $(OBJDIR)\main$O $(OBJDIR)\manifest$O $(OBJDIR)\markdown$O $(OBJDIR)\markdown_html$O $(OBJDIR)\md5$O $(OBJDIR)\merge$O $(OBJDIR)\merge3$O $(OBJDIR)\moderate$O $(OBJDIR)\name$O $(OBJDIR)\path$O $(OBJDIR)\piechart$O $(OBJDIR)\pivot$O $(OBJDIR)\popen$O $(OBJDIR)\pqueue$O $(OBJDIR)\printf$O $(OBJDIR)\publish$O $(OBJDIR)\purge$O $(OBJDIR)\rebuild$O $(OBJDIR)\regexp$O $(OBJDIR)\report$O $(OBJDIR)\rss$O $(OBJDIR)\schema$O $(OBJDIR)\search$O $(OBJDIR)\security_audit$O $(OBJDIR)\setup$O $(OBJDIR)\sha1$O $(OBJDIR)\sha1hard$O $(OBJDIR)\sha3$O $(OBJDIR)\shun$O $(OBJDIR)\sitemap$O $(OBJDIR)\skins$O $(OBJDIR)\sqlcmd$O $(OBJDIR)\stash$O $(OBJDIR)\stat$O $(OBJDIR)\statrep$O $(OBJDIR)\style$O $(OBJDIR)\sync$O $(OBJDIR)\tag$O $(OBJDIR)\tar$O $(OBJDIR)\th_main$O $(OBJDIR)\timeline$O $(OBJDIR)\tkt$O $(OBJDIR)\tktsetup$O $(OBJDIR)\undo$O $(OBJDIR)\unicode$O $(OBJDIR)\unversioned$O $(OBJDIR)\update$O $(OBJDIR)\url$O $(OBJDIR)\user$O $(OBJDIR)\utf8$O $(OBJDIR)\util$O $(OBJDIR)\verify$O $(OBJDIR)\vfile$O $(OBJDIR)\wiki$O $(OBJDIR)\wikiformat$O $(OBJDIR)\winfile$O $(OBJDIR)\winhttp$O $(OBJDIR)\wysiwyg$O $(OBJDIR)\xfer$O $(OBJDIR)\xfersetup$O $(OBJDIR)\zip$O $(OBJDIR)\shell$O $(OBJDIR)\sqlite3$O $(OBJDIR)\th$O $(OBJDIR)\th_lang$O
36
37
38 RC=$(DMDIR)\bin\rcc
39 RCFLAGS=-32 -w1 -I$(SRCDIR) /D__DMC__
40
@@ -49,11 +49,11 @@
49
50 $(OBJDIR)\fossil.res: $B\win\fossil.rc
51 $(RC) $(RCFLAGS) -o$@ $**
52
53 $(OBJDIR)\link: $B\win\Makefile.dmc $(OBJDIR)\fossil.res
54 +echo add allrepo attach bag bisect blob branch browse builtin bundle cache captcha cgi checkin checkout clearsign clone comformat configure content cookies db delta deltacmd descendants diff diffcmd dispatch doc email encode etag event export file finfo foci fshell fusefs glob graph gzip hname http http_socket http_ssl http_transport import info json json_artifact json_branch json_config json_diff json_dir json_finfo json_login json_query json_report json_status json_tag json_timeline json_user json_wiki leaf loadctrl login lookslike main manifest markdown markdown_html md5 merge merge3 moderate name path piechart pivot popen pqueue printf publish purge rebuild regexp report rss schema search security_audit setup sha1 sha1hard sha3 shun sitemap skins sqlcmd stash stat statrep style sync tag tar th_main timeline tkt tktsetup undo unicode unversioned update url user utf8 util verify vfile wiki wikiformat winfile winhttp wysiwyg xfer xfersetup zip shell sqlite3 th th_lang > $@
55 +echo fossil >> $@
56 +echo fossil >> $@
57 +echo $(LIBS) >> $@
58 +echo. >> $@
59 +echo fossil >> $@
@@ -350,10 +350,16 @@
350 $(OBJDIR)\foci$O : foci_.c foci.h
351 $(TCC) -o$@ -c foci_.c
352
353 foci_.c : $(SRCDIR)\foci.c
354 +translate$E $** > $@
 
 
 
 
 
 
355
356 $(OBJDIR)\fshell$O : fshell_.c fshell.h
357 $(TCC) -o$@ -c fshell_.c
358
359 fshell_.c : $(SRCDIR)\fshell.c
@@ -904,7 +910,7 @@
904
905 zip_.c : $(SRCDIR)\zip.c
906 +translate$E $** > $@
907
908 headers: makeheaders$E page_index.h builtin_data.h default_css.h VERSION.h
909 +makeheaders$E add_.c:add.h allrepo_.c:allrepo.h attach_.c:attach.h bag_.c:bag.h bisect_.c:bisect.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.h builtin_.c:builtin.h bundle_.c:bundle.h cache_.c:cache.h captcha_.c:captcha.h cgi_.c:cgi.h checkin_.c:checkin.h checkout_.c:checkout.h clearsign_.c:clearsign.h clone_.c:clone.h comformat_.c:comformat.h configure_.c:configure.h content_.c:content.h cookies_.c:cookies.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h dispatch_.c:dispatch.h doc_.c:doc.h email_.c:email.h encode_.c:encode.h etag_.c:etag.h event_.c:event.h export_.c:export.h file_.c:file.h finfo_.c:finfo.h foci_.c:foci.h fshell_.c:fshell.h fusefs_.c:fusefs.h glob_.c:glob.h graph_.c:graph.h gzip_.c:gzip.h hname_.c:hname.h http_.c:http.h http_socket_.c:http_socket.h http_ssl_.c:http_ssl.h http_transport_.c:http_transport.h import_.c:import.h info_.c:info.h json_.c:json.h json_artifact_.c:json_artifact.h json_branch_.c:json_branch.h json_config_.c:json_config.h json_diff_.c:json_diff.h json_dir_.c:json_dir.h json_finfo_.c:json_finfo.h json_login_.c:json_login.h json_query_.c:json_query.h json_report_.c:json_report.h json_status_.c:json_status.h json_tag_.c:json_tag.h json_timeline_.c:json_timeline.h json_user_.c:json_user.h json_wiki_.c:json_wiki.h leaf_.c:leaf.h loadctrl_.c:loadctrl.h login_.c:login.h lookslike_.c:lookslike.h main_.c:main.h manifest_.c:manifest.h markdown_.c:markdown.h markdown_html_.c:markdown_html.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h moderate_.c:moderate.h name_.c:name.h path_.c:path.h piechart_.c:piechart.h pivot_.c:pivot.h popen_.c:popen.h pqueue_.c:pqueue.h printf_.c:printf.h publish_.c:publish.h purge_.c:purge.h rebuild_.c:rebuild.h regexp_.c:regexp.h report_.c:report.h rss_.c:rss.h schema_.c:schema.h search_.c:search.h security_audit_.c:security_audit.h setup_.c:setup.h sha1_.c:sha1.h sha1hard_.c:sha1hard.h sha3_.c:sha3.h shun_.c:shun.h sitemap_.c:sitemap.h skins_.c:skins.h sqlcmd_.c:sqlcmd.h stash_.c:stash.h stat_.c:stat.h statrep_.c:statrep.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tar_.c:tar.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktsetup_.c:tktsetup.h undo_.c:undo.h unicode_.c:unicode.h unversioned_.c:unversioned.h update_.c:update.h url_.c:url.h user_.c:user.h utf8_.c:utf8.h util_.c:util.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h winfile_.c:winfile.h winhttp_.c:winhttp.h wysiwyg_.c:wysiwyg.h xfer_.c:xfer.h xfersetup_.c:xfersetup.h zip_.c:zip.h $(SRCDIR)\sqlite3.h $(SRCDIR)\th.h VERSION.h $(SRCDIR)\cson_amalgamation.h
910 @copy /Y nul: headers
911
--- win/Makefile.dmc
+++ win/Makefile.dmc
@@ -28,13 +28,13 @@
28
29 SQLITE_OPTIONS = -DNDEBUG=1 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_GET_TABLE -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB
30
31 SHELL_OPTIONS = -DNDEBUG=1 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_GET_TABLE -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -Dmain=sqlite3_shell -DSQLITE_SHELL_IS_UTF8=1 -DSQLITE_OMIT_LOAD_EXTENSION=1 -DUSE_SYSTEM_SQLITE=$(USE_SYSTEM_SQLITE) -DSQLITE_SHELL_DBNAME_PROC=sqlcmd_get_dbname -DSQLITE_SHELL_INIT_PROC=sqlcmd_init_proc -Daccess=file_access -Dsystem=fossil_system -Dgetenv=fossil_getenv -Dfopen=fossil_fopen
32
33 SRC = add_.c allrepo_.c attach_.c bag_.c bisect_.c blob_.c branch_.c browse_.c builtin_.c bundle_.c cache_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c cookies_.c db_.c delta_.c deltacmd_.c descendants_.c diff_.c diffcmd_.c dispatch_.c doc_.c email_.c encode_.c etag_.c event_.c export_.c file_.c finfo_.c foci_.c forum_.c fshell_.c fusefs_.c glob_.c graph_.c gzip_.c hname_.c http_.c http_socket_.c http_ssl_.c http_transport_.c import_.c info_.c json_.c json_artifact_.c json_branch_.c json_config_.c json_diff_.c json_dir_.c json_finfo_.c json_login_.c json_query_.c json_report_.c json_status_.c json_tag_.c json_timeline_.c json_user_.c json_wiki_.c leaf_.c loadctrl_.c login_.c lookslike_.c main_.c manifest_.c markdown_.c markdown_html_.c md5_.c merge_.c merge3_.c moderate_.c name_.c path_.c piechart_.c pivot_.c popen_.c pqueue_.c printf_.c publish_.c purge_.c rebuild_.c regexp_.c report_.c rss_.c schema_.c search_.c security_audit_.c setup_.c sha1_.c sha1hard_.c sha3_.c shun_.c sitemap_.c skins_.c sqlcmd_.c stash_.c stat_.c statrep_.c style_.c sync_.c tag_.c tar_.c th_main_.c timeline_.c tkt_.c tktsetup_.c undo_.c unicode_.c unversioned_.c update_.c url_.c user_.c utf8_.c util_.c verify_.c vfile_.c wiki_.c wikiformat_.c winfile_.c winhttp_.c wysiwyg_.c xfer_.c xfersetup_.c zip_.c
34
35 OBJ = $(OBJDIR)\add$O $(OBJDIR)\allrepo$O $(OBJDIR)\attach$O $(OBJDIR)\bag$O $(OBJDIR)\bisect$O $(OBJDIR)\blob$O $(OBJDIR)\branch$O $(OBJDIR)\browse$O $(OBJDIR)\builtin$O $(OBJDIR)\bundle$O $(OBJDIR)\cache$O $(OBJDIR)\captcha$O $(OBJDIR)\cgi$O $(OBJDIR)\checkin$O $(OBJDIR)\checkout$O $(OBJDIR)\clearsign$O $(OBJDIR)\clone$O $(OBJDIR)\comformat$O $(OBJDIR)\configure$O $(OBJDIR)\content$O $(OBJDIR)\cookies$O $(OBJDIR)\db$O $(OBJDIR)\delta$O $(OBJDIR)\deltacmd$O $(OBJDIR)\descendants$O $(OBJDIR)\diff$O $(OBJDIR)\diffcmd$O $(OBJDIR)\dispatch$O $(OBJDIR)\doc$O $(OBJDIR)\email$O $(OBJDIR)\encode$O $(OBJDIR)\etag$O $(OBJDIR)\event$O $(OBJDIR)\export$O $(OBJDIR)\file$O $(OBJDIR)\finfo$O $(OBJDIR)\foci$O $(OBJDIR)\forum$O $(OBJDIR)\fshell$O $(OBJDIR)\fusefs$O $(OBJDIR)\glob$O $(OBJDIR)\graph$O $(OBJDIR)\gzip$O $(OBJDIR)\hname$O $(OBJDIR)\http$O $(OBJDIR)\http_socket$O $(OBJDIR)\http_ssl$O $(OBJDIR)\http_transport$O $(OBJDIR)\import$O $(OBJDIR)\info$O $(OBJDIR)\json$O $(OBJDIR)\json_artifact$O $(OBJDIR)\json_branch$O $(OBJDIR)\json_config$O $(OBJDIR)\json_diff$O $(OBJDIR)\json_dir$O $(OBJDIR)\json_finfo$O $(OBJDIR)\json_login$O $(OBJDIR)\json_query$O $(OBJDIR)\json_report$O $(OBJDIR)\json_status$O $(OBJDIR)\json_tag$O $(OBJDIR)\json_timeline$O $(OBJDIR)\json_user$O $(OBJDIR)\json_wiki$O $(OBJDIR)\leaf$O $(OBJDIR)\loadctrl$O $(OBJDIR)\login$O $(OBJDIR)\lookslike$O $(OBJDIR)\main$O $(OBJDIR)\manifest$O $(OBJDIR)\markdown$O $(OBJDIR)\markdown_html$O $(OBJDIR)\md5$O $(OBJDIR)\merge$O $(OBJDIR)\merge3$O $(OBJDIR)\moderate$O $(OBJDIR)\name$O $(OBJDIR)\path$O $(OBJDIR)\piechart$O $(OBJDIR)\pivot$O $(OBJDIR)\popen$O $(OBJDIR)\pqueue$O $(OBJDIR)\printf$O $(OBJDIR)\publish$O $(OBJDIR)\purge$O $(OBJDIR)\rebuild$O $(OBJDIR)\regexp$O $(OBJDIR)\report$O $(OBJDIR)\rss$O $(OBJDIR)\schema$O $(OBJDIR)\search$O $(OBJDIR)\security_audit$O $(OBJDIR)\setup$O $(OBJDIR)\sha1$O $(OBJDIR)\sha1hard$O $(OBJDIR)\sha3$O $(OBJDIR)\shun$O $(OBJDIR)\sitemap$O $(OBJDIR)\skins$O $(OBJDIR)\sqlcmd$O $(OBJDIR)\stash$O $(OBJDIR)\stat$O $(OBJDIR)\statrep$O $(OBJDIR)\style$O $(OBJDIR)\sync$O $(OBJDIR)\tag$O $(OBJDIR)\tar$O $(OBJDIR)\th_main$O $(OBJDIR)\timeline$O $(OBJDIR)\tkt$O $(OBJDIR)\tktsetup$O $(OBJDIR)\undo$O $(OBJDIR)\unicode$O $(OBJDIR)\unversioned$O $(OBJDIR)\update$O $(OBJDIR)\url$O $(OBJDIR)\user$O $(OBJDIR)\utf8$O $(OBJDIR)\util$O $(OBJDIR)\verify$O $(OBJDIR)\vfile$O $(OBJDIR)\wiki$O $(OBJDIR)\wikiformat$O $(OBJDIR)\winfile$O $(OBJDIR)\winhttp$O $(OBJDIR)\wysiwyg$O $(OBJDIR)\xfer$O $(OBJDIR)\xfersetup$O $(OBJDIR)\zip$O $(OBJDIR)\shell$O $(OBJDIR)\sqlite3$O $(OBJDIR)\th$O $(OBJDIR)\th_lang$O
36
37
38 RC=$(DMDIR)\bin\rcc
39 RCFLAGS=-32 -w1 -I$(SRCDIR) /D__DMC__
40
@@ -49,11 +49,11 @@
49
50 $(OBJDIR)\fossil.res: $B\win\fossil.rc
51 $(RC) $(RCFLAGS) -o$@ $**
52
53 $(OBJDIR)\link: $B\win\Makefile.dmc $(OBJDIR)\fossil.res
54 +echo add allrepo attach bag bisect blob branch browse builtin bundle cache captcha cgi checkin checkout clearsign clone comformat configure content cookies db delta deltacmd descendants diff diffcmd dispatch doc email encode etag event export file finfo foci forum fshell fusefs glob graph gzip hname http http_socket http_ssl http_transport import info json json_artifact json_branch json_config json_diff json_dir json_finfo json_login json_query json_report json_status json_tag json_timeline json_user json_wiki leaf loadctrl login lookslike main manifest markdown markdown_html md5 merge merge3 moderate name path piechart pivot popen pqueue printf publish purge rebuild regexp report rss schema search security_audit setup sha1 sha1hard sha3 shun sitemap skins sqlcmd stash stat statrep style sync tag tar th_main timeline tkt tktsetup undo unicode unversioned update url user utf8 util verify vfile wiki wikiformat winfile winhttp wysiwyg xfer xfersetup zip shell sqlite3 th th_lang > $@
55 +echo fossil >> $@
56 +echo fossil >> $@
57 +echo $(LIBS) >> $@
58 +echo. >> $@
59 +echo fossil >> $@
@@ -350,10 +350,16 @@
350 $(OBJDIR)\foci$O : foci_.c foci.h
351 $(TCC) -o$@ -c foci_.c
352
353 foci_.c : $(SRCDIR)\foci.c
354 +translate$E $** > $@
355
356 $(OBJDIR)\forum$O : forum_.c forum.h
357 $(TCC) -o$@ -c forum_.c
358
359 forum_.c : $(SRCDIR)\forum.c
360 +translate$E $** > $@
361
362 $(OBJDIR)\fshell$O : fshell_.c fshell.h
363 $(TCC) -o$@ -c fshell_.c
364
365 fshell_.c : $(SRCDIR)\fshell.c
@@ -904,7 +910,7 @@
910
911 zip_.c : $(SRCDIR)\zip.c
912 +translate$E $** > $@
913
914 headers: makeheaders$E page_index.h builtin_data.h default_css.h VERSION.h
915 +makeheaders$E add_.c:add.h allrepo_.c:allrepo.h attach_.c:attach.h bag_.c:bag.h bisect_.c:bisect.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.h builtin_.c:builtin.h bundle_.c:bundle.h cache_.c:cache.h captcha_.c:captcha.h cgi_.c:cgi.h checkin_.c:checkin.h checkout_.c:checkout.h clearsign_.c:clearsign.h clone_.c:clone.h comformat_.c:comformat.h configure_.c:configure.h content_.c:content.h cookies_.c:cookies.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h dispatch_.c:dispatch.h doc_.c:doc.h email_.c:email.h encode_.c:encode.h etag_.c:etag.h event_.c:event.h export_.c:export.h file_.c:file.h finfo_.c:finfo.h foci_.c:foci.h forum_.c:forum.h fshell_.c:fshell.h fusefs_.c:fusefs.h glob_.c:glob.h graph_.c:graph.h gzip_.c:gzip.h hname_.c:hname.h http_.c:http.h http_socket_.c:http_socket.h http_ssl_.c:http_ssl.h http_transport_.c:http_transport.h import_.c:import.h info_.c:info.h json_.c:json.h json_artifact_.c:json_artifact.h json_branch_.c:json_branch.h json_config_.c:json_config.h json_diff_.c:json_diff.h json_dir_.c:json_dir.h json_finfo_.c:json_finfo.h json_login_.c:json_login.h json_query_.c:json_query.h json_report_.c:json_report.h json_status_.c:json_status.h json_tag_.c:json_tag.h json_timeline_.c:json_timeline.h json_user_.c:json_user.h json_wiki_.c:json_wiki.h leaf_.c:leaf.h loadctrl_.c:loadctrl.h login_.c:login.h lookslike_.c:lookslike.h main_.c:main.h manifest_.c:manifest.h markdown_.c:markdown.h markdown_html_.c:markdown_html.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h moderate_.c:moderate.h name_.c:name.h path_.c:path.h piechart_.c:piechart.h pivot_.c:pivot.h popen_.c:popen.h pqueue_.c:pqueue.h printf_.c:printf.h publish_.c:publish.h purge_.c:purge.h rebuild_.c:rebuild.h regexp_.c:regexp.h report_.c:report.h rss_.c:rss.h schema_.c:schema.h search_.c:search.h security_audit_.c:security_audit.h setup_.c:setup.h sha1_.c:sha1.h sha1hard_.c:sha1hard.h sha3_.c:sha3.h shun_.c:shun.h sitemap_.c:sitemap.h skins_.c:skins.h sqlcmd_.c:sqlcmd.h stash_.c:stash.h stat_.c:stat.h statrep_.c:statrep.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tar_.c:tar.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktsetup_.c:tktsetup.h undo_.c:undo.h unicode_.c:unicode.h unversioned_.c:unversioned.h update_.c:update.h url_.c:url.h user_.c:user.h utf8_.c:utf8.h util_.c:util.h verify_.c:verify.h vfile_.c:vfile.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h winfile_.c:winfile.h winhttp_.c:winhttp.h wysiwyg_.c:wysiwyg.h xfer_.c:xfer.h xfersetup_.c:xfersetup.h zip_.c:zip.h $(SRCDIR)\sqlite3.h $(SRCDIR)\th.h VERSION.h $(SRCDIR)\cson_amalgamation.h
916 @copy /Y nul: headers
917
--- win/Makefile.mingw
+++ win/Makefile.mingw
@@ -469,10 +469,11 @@
469469
$(SRCDIR)/event.c \
470470
$(SRCDIR)/export.c \
471471
$(SRCDIR)/file.c \
472472
$(SRCDIR)/finfo.c \
473473
$(SRCDIR)/foci.c \
474
+ $(SRCDIR)/forum.c \
474475
$(SRCDIR)/fshell.c \
475476
$(SRCDIR)/fusefs.c \
476477
$(SRCDIR)/glob.c \
477478
$(SRCDIR)/graph.c \
478479
$(SRCDIR)/gzip.c \
@@ -671,10 +672,11 @@
671672
$(OBJDIR)/event_.c \
672673
$(OBJDIR)/export_.c \
673674
$(OBJDIR)/file_.c \
674675
$(OBJDIR)/finfo_.c \
675676
$(OBJDIR)/foci_.c \
677
+ $(OBJDIR)/forum_.c \
676678
$(OBJDIR)/fshell_.c \
677679
$(OBJDIR)/fusefs_.c \
678680
$(OBJDIR)/glob_.c \
679681
$(OBJDIR)/graph_.c \
680682
$(OBJDIR)/gzip_.c \
@@ -802,10 +804,11 @@
802804
$(OBJDIR)/event.o \
803805
$(OBJDIR)/export.o \
804806
$(OBJDIR)/file.o \
805807
$(OBJDIR)/finfo.o \
806808
$(OBJDIR)/foci.o \
809
+ $(OBJDIR)/forum.o \
807810
$(OBJDIR)/fshell.o \
808811
$(OBJDIR)/fusefs.o \
809812
$(OBJDIR)/glob.o \
810813
$(OBJDIR)/graph.o \
811814
$(OBJDIR)/gzip.o \
@@ -1152,10 +1155,11 @@
11521155
$(OBJDIR)/event_.c:$(OBJDIR)/event.h \
11531156
$(OBJDIR)/export_.c:$(OBJDIR)/export.h \
11541157
$(OBJDIR)/file_.c:$(OBJDIR)/file.h \
11551158
$(OBJDIR)/finfo_.c:$(OBJDIR)/finfo.h \
11561159
$(OBJDIR)/foci_.c:$(OBJDIR)/foci.h \
1160
+ $(OBJDIR)/forum_.c:$(OBJDIR)/forum.h \
11571161
$(OBJDIR)/fshell_.c:$(OBJDIR)/fshell.h \
11581162
$(OBJDIR)/fusefs_.c:$(OBJDIR)/fusefs.h \
11591163
$(OBJDIR)/glob_.c:$(OBJDIR)/glob.h \
11601164
$(OBJDIR)/graph_.c:$(OBJDIR)/graph.h \
11611165
$(OBJDIR)/gzip_.c:$(OBJDIR)/gzip.h \
@@ -1548,10 +1552,18 @@
15481552
15491553
$(OBJDIR)/foci.o: $(OBJDIR)/foci_.c $(OBJDIR)/foci.h $(SRCDIR)/config.h
15501554
$(XTCC) -o $(OBJDIR)/foci.o -c $(OBJDIR)/foci_.c
15511555
15521556
$(OBJDIR)/foci.h: $(OBJDIR)/headers
1557
+
1558
+$(OBJDIR)/forum_.c: $(SRCDIR)/forum.c $(TRANSLATE)
1559
+ $(TRANSLATE) $(SRCDIR)/forum.c >$@
1560
+
1561
+$(OBJDIR)/forum.o: $(OBJDIR)/forum_.c $(OBJDIR)/forum.h $(SRCDIR)/config.h
1562
+ $(XTCC) -o $(OBJDIR)/forum.o -c $(OBJDIR)/forum_.c
1563
+
1564
+$(OBJDIR)/forum.h: $(OBJDIR)/headers
15531565
15541566
$(OBJDIR)/fshell_.c: $(SRCDIR)/fshell.c $(TRANSLATE)
15551567
$(TRANSLATE) $(SRCDIR)/fshell.c >$@
15561568
15571569
$(OBJDIR)/fshell.o: $(OBJDIR)/fshell_.c $(OBJDIR)/fshell.h $(SRCDIR)/config.h
15581570
--- win/Makefile.mingw
+++ win/Makefile.mingw
@@ -469,10 +469,11 @@
469 $(SRCDIR)/event.c \
470 $(SRCDIR)/export.c \
471 $(SRCDIR)/file.c \
472 $(SRCDIR)/finfo.c \
473 $(SRCDIR)/foci.c \
 
474 $(SRCDIR)/fshell.c \
475 $(SRCDIR)/fusefs.c \
476 $(SRCDIR)/glob.c \
477 $(SRCDIR)/graph.c \
478 $(SRCDIR)/gzip.c \
@@ -671,10 +672,11 @@
671 $(OBJDIR)/event_.c \
672 $(OBJDIR)/export_.c \
673 $(OBJDIR)/file_.c \
674 $(OBJDIR)/finfo_.c \
675 $(OBJDIR)/foci_.c \
 
676 $(OBJDIR)/fshell_.c \
677 $(OBJDIR)/fusefs_.c \
678 $(OBJDIR)/glob_.c \
679 $(OBJDIR)/graph_.c \
680 $(OBJDIR)/gzip_.c \
@@ -802,10 +804,11 @@
802 $(OBJDIR)/event.o \
803 $(OBJDIR)/export.o \
804 $(OBJDIR)/file.o \
805 $(OBJDIR)/finfo.o \
806 $(OBJDIR)/foci.o \
 
807 $(OBJDIR)/fshell.o \
808 $(OBJDIR)/fusefs.o \
809 $(OBJDIR)/glob.o \
810 $(OBJDIR)/graph.o \
811 $(OBJDIR)/gzip.o \
@@ -1152,10 +1155,11 @@
1152 $(OBJDIR)/event_.c:$(OBJDIR)/event.h \
1153 $(OBJDIR)/export_.c:$(OBJDIR)/export.h \
1154 $(OBJDIR)/file_.c:$(OBJDIR)/file.h \
1155 $(OBJDIR)/finfo_.c:$(OBJDIR)/finfo.h \
1156 $(OBJDIR)/foci_.c:$(OBJDIR)/foci.h \
 
1157 $(OBJDIR)/fshell_.c:$(OBJDIR)/fshell.h \
1158 $(OBJDIR)/fusefs_.c:$(OBJDIR)/fusefs.h \
1159 $(OBJDIR)/glob_.c:$(OBJDIR)/glob.h \
1160 $(OBJDIR)/graph_.c:$(OBJDIR)/graph.h \
1161 $(OBJDIR)/gzip_.c:$(OBJDIR)/gzip.h \
@@ -1548,10 +1552,18 @@
1548
1549 $(OBJDIR)/foci.o: $(OBJDIR)/foci_.c $(OBJDIR)/foci.h $(SRCDIR)/config.h
1550 $(XTCC) -o $(OBJDIR)/foci.o -c $(OBJDIR)/foci_.c
1551
1552 $(OBJDIR)/foci.h: $(OBJDIR)/headers
 
 
 
 
 
 
 
 
1553
1554 $(OBJDIR)/fshell_.c: $(SRCDIR)/fshell.c $(TRANSLATE)
1555 $(TRANSLATE) $(SRCDIR)/fshell.c >$@
1556
1557 $(OBJDIR)/fshell.o: $(OBJDIR)/fshell_.c $(OBJDIR)/fshell.h $(SRCDIR)/config.h
1558
--- win/Makefile.mingw
+++ win/Makefile.mingw
@@ -469,10 +469,11 @@
469 $(SRCDIR)/event.c \
470 $(SRCDIR)/export.c \
471 $(SRCDIR)/file.c \
472 $(SRCDIR)/finfo.c \
473 $(SRCDIR)/foci.c \
474 $(SRCDIR)/forum.c \
475 $(SRCDIR)/fshell.c \
476 $(SRCDIR)/fusefs.c \
477 $(SRCDIR)/glob.c \
478 $(SRCDIR)/graph.c \
479 $(SRCDIR)/gzip.c \
@@ -671,10 +672,11 @@
672 $(OBJDIR)/event_.c \
673 $(OBJDIR)/export_.c \
674 $(OBJDIR)/file_.c \
675 $(OBJDIR)/finfo_.c \
676 $(OBJDIR)/foci_.c \
677 $(OBJDIR)/forum_.c \
678 $(OBJDIR)/fshell_.c \
679 $(OBJDIR)/fusefs_.c \
680 $(OBJDIR)/glob_.c \
681 $(OBJDIR)/graph_.c \
682 $(OBJDIR)/gzip_.c \
@@ -802,10 +804,11 @@
804 $(OBJDIR)/event.o \
805 $(OBJDIR)/export.o \
806 $(OBJDIR)/file.o \
807 $(OBJDIR)/finfo.o \
808 $(OBJDIR)/foci.o \
809 $(OBJDIR)/forum.o \
810 $(OBJDIR)/fshell.o \
811 $(OBJDIR)/fusefs.o \
812 $(OBJDIR)/glob.o \
813 $(OBJDIR)/graph.o \
814 $(OBJDIR)/gzip.o \
@@ -1152,10 +1155,11 @@
1155 $(OBJDIR)/event_.c:$(OBJDIR)/event.h \
1156 $(OBJDIR)/export_.c:$(OBJDIR)/export.h \
1157 $(OBJDIR)/file_.c:$(OBJDIR)/file.h \
1158 $(OBJDIR)/finfo_.c:$(OBJDIR)/finfo.h \
1159 $(OBJDIR)/foci_.c:$(OBJDIR)/foci.h \
1160 $(OBJDIR)/forum_.c:$(OBJDIR)/forum.h \
1161 $(OBJDIR)/fshell_.c:$(OBJDIR)/fshell.h \
1162 $(OBJDIR)/fusefs_.c:$(OBJDIR)/fusefs.h \
1163 $(OBJDIR)/glob_.c:$(OBJDIR)/glob.h \
1164 $(OBJDIR)/graph_.c:$(OBJDIR)/graph.h \
1165 $(OBJDIR)/gzip_.c:$(OBJDIR)/gzip.h \
@@ -1548,10 +1552,18 @@
1552
1553 $(OBJDIR)/foci.o: $(OBJDIR)/foci_.c $(OBJDIR)/foci.h $(SRCDIR)/config.h
1554 $(XTCC) -o $(OBJDIR)/foci.o -c $(OBJDIR)/foci_.c
1555
1556 $(OBJDIR)/foci.h: $(OBJDIR)/headers
1557
1558 $(OBJDIR)/forum_.c: $(SRCDIR)/forum.c $(TRANSLATE)
1559 $(TRANSLATE) $(SRCDIR)/forum.c >$@
1560
1561 $(OBJDIR)/forum.o: $(OBJDIR)/forum_.c $(OBJDIR)/forum.h $(SRCDIR)/config.h
1562 $(XTCC) -o $(OBJDIR)/forum.o -c $(OBJDIR)/forum_.c
1563
1564 $(OBJDIR)/forum.h: $(OBJDIR)/headers
1565
1566 $(OBJDIR)/fshell_.c: $(SRCDIR)/fshell.c $(TRANSLATE)
1567 $(TRANSLATE) $(SRCDIR)/fshell.c >$@
1568
1569 $(OBJDIR)/fshell.o: $(OBJDIR)/fshell_.c $(OBJDIR)/fshell.h $(SRCDIR)/config.h
1570
--- win/Makefile.mingw
+++ win/Makefile.mingw
@@ -469,10 +469,11 @@
469469
$(SRCDIR)/event.c \
470470
$(SRCDIR)/export.c \
471471
$(SRCDIR)/file.c \
472472
$(SRCDIR)/finfo.c \
473473
$(SRCDIR)/foci.c \
474
+ $(SRCDIR)/forum.c \
474475
$(SRCDIR)/fshell.c \
475476
$(SRCDIR)/fusefs.c \
476477
$(SRCDIR)/glob.c \
477478
$(SRCDIR)/graph.c \
478479
$(SRCDIR)/gzip.c \
@@ -671,10 +672,11 @@
671672
$(OBJDIR)/event_.c \
672673
$(OBJDIR)/export_.c \
673674
$(OBJDIR)/file_.c \
674675
$(OBJDIR)/finfo_.c \
675676
$(OBJDIR)/foci_.c \
677
+ $(OBJDIR)/forum_.c \
676678
$(OBJDIR)/fshell_.c \
677679
$(OBJDIR)/fusefs_.c \
678680
$(OBJDIR)/glob_.c \
679681
$(OBJDIR)/graph_.c \
680682
$(OBJDIR)/gzip_.c \
@@ -802,10 +804,11 @@
802804
$(OBJDIR)/event.o \
803805
$(OBJDIR)/export.o \
804806
$(OBJDIR)/file.o \
805807
$(OBJDIR)/finfo.o \
806808
$(OBJDIR)/foci.o \
809
+ $(OBJDIR)/forum.o \
807810
$(OBJDIR)/fshell.o \
808811
$(OBJDIR)/fusefs.o \
809812
$(OBJDIR)/glob.o \
810813
$(OBJDIR)/graph.o \
811814
$(OBJDIR)/gzip.o \
@@ -1152,10 +1155,11 @@
11521155
$(OBJDIR)/event_.c:$(OBJDIR)/event.h \
11531156
$(OBJDIR)/export_.c:$(OBJDIR)/export.h \
11541157
$(OBJDIR)/file_.c:$(OBJDIR)/file.h \
11551158
$(OBJDIR)/finfo_.c:$(OBJDIR)/finfo.h \
11561159
$(OBJDIR)/foci_.c:$(OBJDIR)/foci.h \
1160
+ $(OBJDIR)/forum_.c:$(OBJDIR)/forum.h \
11571161
$(OBJDIR)/fshell_.c:$(OBJDIR)/fshell.h \
11581162
$(OBJDIR)/fusefs_.c:$(OBJDIR)/fusefs.h \
11591163
$(OBJDIR)/glob_.c:$(OBJDIR)/glob.h \
11601164
$(OBJDIR)/graph_.c:$(OBJDIR)/graph.h \
11611165
$(OBJDIR)/gzip_.c:$(OBJDIR)/gzip.h \
@@ -1548,10 +1552,18 @@
15481552
15491553
$(OBJDIR)/foci.o: $(OBJDIR)/foci_.c $(OBJDIR)/foci.h $(SRCDIR)/config.h
15501554
$(XTCC) -o $(OBJDIR)/foci.o -c $(OBJDIR)/foci_.c
15511555
15521556
$(OBJDIR)/foci.h: $(OBJDIR)/headers
1557
+
1558
+$(OBJDIR)/forum_.c: $(SRCDIR)/forum.c $(TRANSLATE)
1559
+ $(TRANSLATE) $(SRCDIR)/forum.c >$@
1560
+
1561
+$(OBJDIR)/forum.o: $(OBJDIR)/forum_.c $(OBJDIR)/forum.h $(SRCDIR)/config.h
1562
+ $(XTCC) -o $(OBJDIR)/forum.o -c $(OBJDIR)/forum_.c
1563
+
1564
+$(OBJDIR)/forum.h: $(OBJDIR)/headers
15531565
15541566
$(OBJDIR)/fshell_.c: $(SRCDIR)/fshell.c $(TRANSLATE)
15551567
$(TRANSLATE) $(SRCDIR)/fshell.c >$@
15561568
15571569
$(OBJDIR)/fshell.o: $(OBJDIR)/fshell_.c $(OBJDIR)/fshell.h $(SRCDIR)/config.h
15581570
--- win/Makefile.mingw
+++ win/Makefile.mingw
@@ -469,10 +469,11 @@
469 $(SRCDIR)/event.c \
470 $(SRCDIR)/export.c \
471 $(SRCDIR)/file.c \
472 $(SRCDIR)/finfo.c \
473 $(SRCDIR)/foci.c \
 
474 $(SRCDIR)/fshell.c \
475 $(SRCDIR)/fusefs.c \
476 $(SRCDIR)/glob.c \
477 $(SRCDIR)/graph.c \
478 $(SRCDIR)/gzip.c \
@@ -671,10 +672,11 @@
671 $(OBJDIR)/event_.c \
672 $(OBJDIR)/export_.c \
673 $(OBJDIR)/file_.c \
674 $(OBJDIR)/finfo_.c \
675 $(OBJDIR)/foci_.c \
 
676 $(OBJDIR)/fshell_.c \
677 $(OBJDIR)/fusefs_.c \
678 $(OBJDIR)/glob_.c \
679 $(OBJDIR)/graph_.c \
680 $(OBJDIR)/gzip_.c \
@@ -802,10 +804,11 @@
802 $(OBJDIR)/event.o \
803 $(OBJDIR)/export.o \
804 $(OBJDIR)/file.o \
805 $(OBJDIR)/finfo.o \
806 $(OBJDIR)/foci.o \
 
807 $(OBJDIR)/fshell.o \
808 $(OBJDIR)/fusefs.o \
809 $(OBJDIR)/glob.o \
810 $(OBJDIR)/graph.o \
811 $(OBJDIR)/gzip.o \
@@ -1152,10 +1155,11 @@
1152 $(OBJDIR)/event_.c:$(OBJDIR)/event.h \
1153 $(OBJDIR)/export_.c:$(OBJDIR)/export.h \
1154 $(OBJDIR)/file_.c:$(OBJDIR)/file.h \
1155 $(OBJDIR)/finfo_.c:$(OBJDIR)/finfo.h \
1156 $(OBJDIR)/foci_.c:$(OBJDIR)/foci.h \
 
1157 $(OBJDIR)/fshell_.c:$(OBJDIR)/fshell.h \
1158 $(OBJDIR)/fusefs_.c:$(OBJDIR)/fusefs.h \
1159 $(OBJDIR)/glob_.c:$(OBJDIR)/glob.h \
1160 $(OBJDIR)/graph_.c:$(OBJDIR)/graph.h \
1161 $(OBJDIR)/gzip_.c:$(OBJDIR)/gzip.h \
@@ -1548,10 +1552,18 @@
1548
1549 $(OBJDIR)/foci.o: $(OBJDIR)/foci_.c $(OBJDIR)/foci.h $(SRCDIR)/config.h
1550 $(XTCC) -o $(OBJDIR)/foci.o -c $(OBJDIR)/foci_.c
1551
1552 $(OBJDIR)/foci.h: $(OBJDIR)/headers
 
 
 
 
 
 
 
 
1553
1554 $(OBJDIR)/fshell_.c: $(SRCDIR)/fshell.c $(TRANSLATE)
1555 $(TRANSLATE) $(SRCDIR)/fshell.c >$@
1556
1557 $(OBJDIR)/fshell.o: $(OBJDIR)/fshell_.c $(OBJDIR)/fshell.h $(SRCDIR)/config.h
1558
--- win/Makefile.mingw
+++ win/Makefile.mingw
@@ -469,10 +469,11 @@
469 $(SRCDIR)/event.c \
470 $(SRCDIR)/export.c \
471 $(SRCDIR)/file.c \
472 $(SRCDIR)/finfo.c \
473 $(SRCDIR)/foci.c \
474 $(SRCDIR)/forum.c \
475 $(SRCDIR)/fshell.c \
476 $(SRCDIR)/fusefs.c \
477 $(SRCDIR)/glob.c \
478 $(SRCDIR)/graph.c \
479 $(SRCDIR)/gzip.c \
@@ -671,10 +672,11 @@
672 $(OBJDIR)/event_.c \
673 $(OBJDIR)/export_.c \
674 $(OBJDIR)/file_.c \
675 $(OBJDIR)/finfo_.c \
676 $(OBJDIR)/foci_.c \
677 $(OBJDIR)/forum_.c \
678 $(OBJDIR)/fshell_.c \
679 $(OBJDIR)/fusefs_.c \
680 $(OBJDIR)/glob_.c \
681 $(OBJDIR)/graph_.c \
682 $(OBJDIR)/gzip_.c \
@@ -802,10 +804,11 @@
804 $(OBJDIR)/event.o \
805 $(OBJDIR)/export.o \
806 $(OBJDIR)/file.o \
807 $(OBJDIR)/finfo.o \
808 $(OBJDIR)/foci.o \
809 $(OBJDIR)/forum.o \
810 $(OBJDIR)/fshell.o \
811 $(OBJDIR)/fusefs.o \
812 $(OBJDIR)/glob.o \
813 $(OBJDIR)/graph.o \
814 $(OBJDIR)/gzip.o \
@@ -1152,10 +1155,11 @@
1155 $(OBJDIR)/event_.c:$(OBJDIR)/event.h \
1156 $(OBJDIR)/export_.c:$(OBJDIR)/export.h \
1157 $(OBJDIR)/file_.c:$(OBJDIR)/file.h \
1158 $(OBJDIR)/finfo_.c:$(OBJDIR)/finfo.h \
1159 $(OBJDIR)/foci_.c:$(OBJDIR)/foci.h \
1160 $(OBJDIR)/forum_.c:$(OBJDIR)/forum.h \
1161 $(OBJDIR)/fshell_.c:$(OBJDIR)/fshell.h \
1162 $(OBJDIR)/fusefs_.c:$(OBJDIR)/fusefs.h \
1163 $(OBJDIR)/glob_.c:$(OBJDIR)/glob.h \
1164 $(OBJDIR)/graph_.c:$(OBJDIR)/graph.h \
1165 $(OBJDIR)/gzip_.c:$(OBJDIR)/gzip.h \
@@ -1548,10 +1552,18 @@
1552
1553 $(OBJDIR)/foci.o: $(OBJDIR)/foci_.c $(OBJDIR)/foci.h $(SRCDIR)/config.h
1554 $(XTCC) -o $(OBJDIR)/foci.o -c $(OBJDIR)/foci_.c
1555
1556 $(OBJDIR)/foci.h: $(OBJDIR)/headers
1557
1558 $(OBJDIR)/forum_.c: $(SRCDIR)/forum.c $(TRANSLATE)
1559 $(TRANSLATE) $(SRCDIR)/forum.c >$@
1560
1561 $(OBJDIR)/forum.o: $(OBJDIR)/forum_.c $(OBJDIR)/forum.h $(SRCDIR)/config.h
1562 $(XTCC) -o $(OBJDIR)/forum.o -c $(OBJDIR)/forum_.c
1563
1564 $(OBJDIR)/forum.h: $(OBJDIR)/headers
1565
1566 $(OBJDIR)/fshell_.c: $(SRCDIR)/fshell.c $(TRANSLATE)
1567 $(TRANSLATE) $(SRCDIR)/fshell.c >$@
1568
1569 $(OBJDIR)/fshell.o: $(OBJDIR)/fshell_.c $(OBJDIR)/fshell.h $(SRCDIR)/config.h
1570
--- win/Makefile.msc
+++ win/Makefile.msc
@@ -415,10 +415,11 @@
415415
event_.c \
416416
export_.c \
417417
file_.c \
418418
finfo_.c \
419419
foci_.c \
420
+ forum_.c \
420421
fshell_.c \
421422
fusefs_.c \
422423
glob_.c \
423424
graph_.c \
424425
gzip_.c \
@@ -616,10 +617,11 @@
616617
$(OX)\event$O \
617618
$(OX)\export$O \
618619
$(OX)\file$O \
619620
$(OX)\finfo$O \
620621
$(OX)\foci$O \
622
+ $(OX)\forum$O \
621623
$(OX)\fshell$O \
622624
$(OX)\fusefs$O \
623625
$(OX)\glob$O \
624626
$(OX)\graph$O \
625627
$(OX)\gzip$O \
@@ -806,10 +808,11 @@
806808
echo $(OX)\event.obj >> $@
807809
echo $(OX)\export.obj >> $@
808810
echo $(OX)\file.obj >> $@
809811
echo $(OX)\finfo.obj >> $@
810812
echo $(OX)\foci.obj >> $@
813
+ echo $(OX)\forum.obj >> $@
811814
echo $(OX)\fshell.obj >> $@
812815
echo $(OX)\fusefs.obj >> $@
813816
echo $(OX)\glob.obj >> $@
814817
echo $(OX)\graph.obj >> $@
815818
echo $(OX)\gzip.obj >> $@
@@ -1242,10 +1245,16 @@
12421245
$(OX)\foci$O : foci_.c foci.h
12431246
$(TCC) /Fo$@ -c foci_.c
12441247
12451248
foci_.c : $(SRCDIR)\foci.c
12461249
translate$E $** > $@
1250
+
1251
+$(OX)\forum$O : forum_.c forum.h
1252
+ $(TCC) /Fo$@ -c forum_.c
1253
+
1254
+forum_.c : $(SRCDIR)\forum.c
1255
+ translate$E $** > $@
12471256
12481257
$(OX)\fshell$O : fshell_.c fshell.h
12491258
$(TCC) /Fo$@ -c fshell_.c
12501259
12511260
fshell_.c : $(SRCDIR)\fshell.c
@@ -1836,10 +1845,11 @@
18361845
event_.c:event.h \
18371846
export_.c:export.h \
18381847
file_.c:file.h \
18391848
finfo_.c:finfo.h \
18401849
foci_.c:foci.h \
1850
+ forum_.c:forum.h \
18411851
fshell_.c:fshell.h \
18421852
fusefs_.c:fusefs.h \
18431853
glob_.c:glob.h \
18441854
graph_.c:graph.h \
18451855
gzip_.c:gzip.h \
18461856
--- win/Makefile.msc
+++ win/Makefile.msc
@@ -415,10 +415,11 @@
415 event_.c \
416 export_.c \
417 file_.c \
418 finfo_.c \
419 foci_.c \
 
420 fshell_.c \
421 fusefs_.c \
422 glob_.c \
423 graph_.c \
424 gzip_.c \
@@ -616,10 +617,11 @@
616 $(OX)\event$O \
617 $(OX)\export$O \
618 $(OX)\file$O \
619 $(OX)\finfo$O \
620 $(OX)\foci$O \
 
621 $(OX)\fshell$O \
622 $(OX)\fusefs$O \
623 $(OX)\glob$O \
624 $(OX)\graph$O \
625 $(OX)\gzip$O \
@@ -806,10 +808,11 @@
806 echo $(OX)\event.obj >> $@
807 echo $(OX)\export.obj >> $@
808 echo $(OX)\file.obj >> $@
809 echo $(OX)\finfo.obj >> $@
810 echo $(OX)\foci.obj >> $@
 
811 echo $(OX)\fshell.obj >> $@
812 echo $(OX)\fusefs.obj >> $@
813 echo $(OX)\glob.obj >> $@
814 echo $(OX)\graph.obj >> $@
815 echo $(OX)\gzip.obj >> $@
@@ -1242,10 +1245,16 @@
1242 $(OX)\foci$O : foci_.c foci.h
1243 $(TCC) /Fo$@ -c foci_.c
1244
1245 foci_.c : $(SRCDIR)\foci.c
1246 translate$E $** > $@
 
 
 
 
 
 
1247
1248 $(OX)\fshell$O : fshell_.c fshell.h
1249 $(TCC) /Fo$@ -c fshell_.c
1250
1251 fshell_.c : $(SRCDIR)\fshell.c
@@ -1836,10 +1845,11 @@
1836 event_.c:event.h \
1837 export_.c:export.h \
1838 file_.c:file.h \
1839 finfo_.c:finfo.h \
1840 foci_.c:foci.h \
 
1841 fshell_.c:fshell.h \
1842 fusefs_.c:fusefs.h \
1843 glob_.c:glob.h \
1844 graph_.c:graph.h \
1845 gzip_.c:gzip.h \
1846
--- win/Makefile.msc
+++ win/Makefile.msc
@@ -415,10 +415,11 @@
415 event_.c \
416 export_.c \
417 file_.c \
418 finfo_.c \
419 foci_.c \
420 forum_.c \
421 fshell_.c \
422 fusefs_.c \
423 glob_.c \
424 graph_.c \
425 gzip_.c \
@@ -616,10 +617,11 @@
617 $(OX)\event$O \
618 $(OX)\export$O \
619 $(OX)\file$O \
620 $(OX)\finfo$O \
621 $(OX)\foci$O \
622 $(OX)\forum$O \
623 $(OX)\fshell$O \
624 $(OX)\fusefs$O \
625 $(OX)\glob$O \
626 $(OX)\graph$O \
627 $(OX)\gzip$O \
@@ -806,10 +808,11 @@
808 echo $(OX)\event.obj >> $@
809 echo $(OX)\export.obj >> $@
810 echo $(OX)\file.obj >> $@
811 echo $(OX)\finfo.obj >> $@
812 echo $(OX)\foci.obj >> $@
813 echo $(OX)\forum.obj >> $@
814 echo $(OX)\fshell.obj >> $@
815 echo $(OX)\fusefs.obj >> $@
816 echo $(OX)\glob.obj >> $@
817 echo $(OX)\graph.obj >> $@
818 echo $(OX)\gzip.obj >> $@
@@ -1242,10 +1245,16 @@
1245 $(OX)\foci$O : foci_.c foci.h
1246 $(TCC) /Fo$@ -c foci_.c
1247
1248 foci_.c : $(SRCDIR)\foci.c
1249 translate$E $** > $@
1250
1251 $(OX)\forum$O : forum_.c forum.h
1252 $(TCC) /Fo$@ -c forum_.c
1253
1254 forum_.c : $(SRCDIR)\forum.c
1255 translate$E $** > $@
1256
1257 $(OX)\fshell$O : fshell_.c fshell.h
1258 $(TCC) /Fo$@ -c fshell_.c
1259
1260 fshell_.c : $(SRCDIR)\fshell.c
@@ -1836,10 +1845,11 @@
1845 event_.c:event.h \
1846 export_.c:export.h \
1847 file_.c:file.h \
1848 finfo_.c:finfo.h \
1849 foci_.c:foci.h \
1850 forum_.c:forum.h \
1851 fshell_.c:fshell.h \
1852 fusefs_.c:fusefs.h \
1853 glob_.c:glob.h \
1854 graph_.c:graph.h \
1855 gzip_.c:gzip.h \
1856
--- win/Makefile.msc
+++ win/Makefile.msc
@@ -415,10 +415,11 @@
415415
event_.c \
416416
export_.c \
417417
file_.c \
418418
finfo_.c \
419419
foci_.c \
420
+ forum_.c \
420421
fshell_.c \
421422
fusefs_.c \
422423
glob_.c \
423424
graph_.c \
424425
gzip_.c \
@@ -616,10 +617,11 @@
616617
$(OX)\event$O \
617618
$(OX)\export$O \
618619
$(OX)\file$O \
619620
$(OX)\finfo$O \
620621
$(OX)\foci$O \
622
+ $(OX)\forum$O \
621623
$(OX)\fshell$O \
622624
$(OX)\fusefs$O \
623625
$(OX)\glob$O \
624626
$(OX)\graph$O \
625627
$(OX)\gzip$O \
@@ -806,10 +808,11 @@
806808
echo $(OX)\event.obj >> $@
807809
echo $(OX)\export.obj >> $@
808810
echo $(OX)\file.obj >> $@
809811
echo $(OX)\finfo.obj >> $@
810812
echo $(OX)\foci.obj >> $@
813
+ echo $(OX)\forum.obj >> $@
811814
echo $(OX)\fshell.obj >> $@
812815
echo $(OX)\fusefs.obj >> $@
813816
echo $(OX)\glob.obj >> $@
814817
echo $(OX)\graph.obj >> $@
815818
echo $(OX)\gzip.obj >> $@
@@ -1242,10 +1245,16 @@
12421245
$(OX)\foci$O : foci_.c foci.h
12431246
$(TCC) /Fo$@ -c foci_.c
12441247
12451248
foci_.c : $(SRCDIR)\foci.c
12461249
translate$E $** > $@
1250
+
1251
+$(OX)\forum$O : forum_.c forum.h
1252
+ $(TCC) /Fo$@ -c forum_.c
1253
+
1254
+forum_.c : $(SRCDIR)\forum.c
1255
+ translate$E $** > $@
12471256
12481257
$(OX)\fshell$O : fshell_.c fshell.h
12491258
$(TCC) /Fo$@ -c fshell_.c
12501259
12511260
fshell_.c : $(SRCDIR)\fshell.c
@@ -1836,10 +1845,11 @@
18361845
event_.c:event.h \
18371846
export_.c:export.h \
18381847
file_.c:file.h \
18391848
finfo_.c:finfo.h \
18401849
foci_.c:foci.h \
1850
+ forum_.c:forum.h \
18411851
fshell_.c:fshell.h \
18421852
fusefs_.c:fusefs.h \
18431853
glob_.c:glob.h \
18441854
graph_.c:graph.h \
18451855
gzip_.c:gzip.h \
18461856
--- win/Makefile.msc
+++ win/Makefile.msc
@@ -415,10 +415,11 @@
415 event_.c \
416 export_.c \
417 file_.c \
418 finfo_.c \
419 foci_.c \
 
420 fshell_.c \
421 fusefs_.c \
422 glob_.c \
423 graph_.c \
424 gzip_.c \
@@ -616,10 +617,11 @@
616 $(OX)\event$O \
617 $(OX)\export$O \
618 $(OX)\file$O \
619 $(OX)\finfo$O \
620 $(OX)\foci$O \
 
621 $(OX)\fshell$O \
622 $(OX)\fusefs$O \
623 $(OX)\glob$O \
624 $(OX)\graph$O \
625 $(OX)\gzip$O \
@@ -806,10 +808,11 @@
806 echo $(OX)\event.obj >> $@
807 echo $(OX)\export.obj >> $@
808 echo $(OX)\file.obj >> $@
809 echo $(OX)\finfo.obj >> $@
810 echo $(OX)\foci.obj >> $@
 
811 echo $(OX)\fshell.obj >> $@
812 echo $(OX)\fusefs.obj >> $@
813 echo $(OX)\glob.obj >> $@
814 echo $(OX)\graph.obj >> $@
815 echo $(OX)\gzip.obj >> $@
@@ -1242,10 +1245,16 @@
1242 $(OX)\foci$O : foci_.c foci.h
1243 $(TCC) /Fo$@ -c foci_.c
1244
1245 foci_.c : $(SRCDIR)\foci.c
1246 translate$E $** > $@
 
 
 
 
 
 
1247
1248 $(OX)\fshell$O : fshell_.c fshell.h
1249 $(TCC) /Fo$@ -c fshell_.c
1250
1251 fshell_.c : $(SRCDIR)\fshell.c
@@ -1836,10 +1845,11 @@
1836 event_.c:event.h \
1837 export_.c:export.h \
1838 file_.c:file.h \
1839 finfo_.c:finfo.h \
1840 foci_.c:foci.h \
 
1841 fshell_.c:fshell.h \
1842 fusefs_.c:fusefs.h \
1843 glob_.c:glob.h \
1844 graph_.c:graph.h \
1845 gzip_.c:gzip.h \
1846
--- win/Makefile.msc
+++ win/Makefile.msc
@@ -415,10 +415,11 @@
415 event_.c \
416 export_.c \
417 file_.c \
418 finfo_.c \
419 foci_.c \
420 forum_.c \
421 fshell_.c \
422 fusefs_.c \
423 glob_.c \
424 graph_.c \
425 gzip_.c \
@@ -616,10 +617,11 @@
617 $(OX)\event$O \
618 $(OX)\export$O \
619 $(OX)\file$O \
620 $(OX)\finfo$O \
621 $(OX)\foci$O \
622 $(OX)\forum$O \
623 $(OX)\fshell$O \
624 $(OX)\fusefs$O \
625 $(OX)\glob$O \
626 $(OX)\graph$O \
627 $(OX)\gzip$O \
@@ -806,10 +808,11 @@
808 echo $(OX)\event.obj >> $@
809 echo $(OX)\export.obj >> $@
810 echo $(OX)\file.obj >> $@
811 echo $(OX)\finfo.obj >> $@
812 echo $(OX)\foci.obj >> $@
813 echo $(OX)\forum.obj >> $@
814 echo $(OX)\fshell.obj >> $@
815 echo $(OX)\fusefs.obj >> $@
816 echo $(OX)\glob.obj >> $@
817 echo $(OX)\graph.obj >> $@
818 echo $(OX)\gzip.obj >> $@
@@ -1242,10 +1245,16 @@
1245 $(OX)\foci$O : foci_.c foci.h
1246 $(TCC) /Fo$@ -c foci_.c
1247
1248 foci_.c : $(SRCDIR)\foci.c
1249 translate$E $** > $@
1250
1251 $(OX)\forum$O : forum_.c forum.h
1252 $(TCC) /Fo$@ -c forum_.c
1253
1254 forum_.c : $(SRCDIR)\forum.c
1255 translate$E $** > $@
1256
1257 $(OX)\fshell$O : fshell_.c fshell.h
1258 $(TCC) /Fo$@ -c fshell_.c
1259
1260 fshell_.c : $(SRCDIR)\fshell.c
@@ -1836,10 +1845,11 @@
1845 event_.c:event.h \
1846 export_.c:export.h \
1847 file_.c:file.h \
1848 finfo_.c:finfo.h \
1849 foci_.c:foci.h \
1850 forum_.c:forum.h \
1851 fshell_.c:fshell.h \
1852 fusefs_.c:fusefs.h \
1853 glob_.c:glob.h \
1854 graph_.c:graph.h \
1855 gzip_.c:gzip.h \
1856

Keyboard Shortcuts

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