Fossil SCM

Removed the legacy /wikiedit implementation and the wysiwyg option it supported/sported. Updated the change log.

stephan 2020-08-01 01:37 ajax-wiki-editor
Commit 336afe8e912945176427d673487137b057760bd8151063d2681fcf476d92c703
-12
--- src/main.mk
+++ src/main.mk
@@ -154,11 +154,10 @@
154154
$(SRCDIR)/webmail.c \
155155
$(SRCDIR)/wiki.c \
156156
$(SRCDIR)/wikiformat.c \
157157
$(SRCDIR)/winfile.c \
158158
$(SRCDIR)/winhttp.c \
159
- $(SRCDIR)/wysiwyg.c \
160159
$(SRCDIR)/xfer.c \
161160
$(SRCDIR)/xfersetup.c \
162161
$(SRCDIR)/zip.c
163162
164163
EXTRA_FILES = \
@@ -404,11 +403,10 @@
404403
$(OBJDIR)/webmail_.c \
405404
$(OBJDIR)/wiki_.c \
406405
$(OBJDIR)/wikiformat_.c \
407406
$(OBJDIR)/winfile_.c \
408407
$(OBJDIR)/winhttp_.c \
409
- $(OBJDIR)/wysiwyg_.c \
410408
$(OBJDIR)/xfer_.c \
411409
$(OBJDIR)/xfersetup_.c \
412410
$(OBJDIR)/zip_.c
413411
414412
OBJ = \
@@ -550,11 +548,10 @@
550548
$(OBJDIR)/webmail.o \
551549
$(OBJDIR)/wiki.o \
552550
$(OBJDIR)/wikiformat.o \
553551
$(OBJDIR)/winfile.o \
554552
$(OBJDIR)/winhttp.o \
555
- $(OBJDIR)/wysiwyg.o \
556553
$(OBJDIR)/xfer.o \
557554
$(OBJDIR)/xfersetup.o \
558555
$(OBJDIR)/zip.o
559556
all: $(OBJDIR) $(APPNAME)
560557
@@ -886,11 +883,10 @@
886883
$(OBJDIR)/webmail_.c:$(OBJDIR)/webmail.h \
887884
$(OBJDIR)/wiki_.c:$(OBJDIR)/wiki.h \
888885
$(OBJDIR)/wikiformat_.c:$(OBJDIR)/wikiformat.h \
889886
$(OBJDIR)/winfile_.c:$(OBJDIR)/winfile.h \
890887
$(OBJDIR)/winhttp_.c:$(OBJDIR)/winhttp.h \
891
- $(OBJDIR)/wysiwyg_.c:$(OBJDIR)/wysiwyg.h \
892888
$(OBJDIR)/xfer_.c:$(OBJDIR)/xfer.h \
893889
$(OBJDIR)/xfersetup_.c:$(OBJDIR)/xfersetup.h \
894890
$(OBJDIR)/zip_.c:$(OBJDIR)/zip.h \
895891
$(SRCDIR)/sqlite3.h \
896892
$(SRCDIR)/th.h \
@@ -2017,18 +2013,10 @@
20172013
$(OBJDIR)/winhttp.o: $(OBJDIR)/winhttp_.c $(OBJDIR)/winhttp.h $(SRCDIR)/config.h
20182014
$(XTCC) -o $(OBJDIR)/winhttp.o -c $(OBJDIR)/winhttp_.c
20192015
20202016
$(OBJDIR)/winhttp.h: $(OBJDIR)/headers
20212017
2022
-$(OBJDIR)/wysiwyg_.c: $(SRCDIR)/wysiwyg.c $(OBJDIR)/translate
2023
- $(OBJDIR)/translate $(SRCDIR)/wysiwyg.c >$@
2024
-
2025
-$(OBJDIR)/wysiwyg.o: $(OBJDIR)/wysiwyg_.c $(OBJDIR)/wysiwyg.h $(SRCDIR)/config.h
2026
- $(XTCC) -o $(OBJDIR)/wysiwyg.o -c $(OBJDIR)/wysiwyg_.c
2027
-
2028
-$(OBJDIR)/wysiwyg.h: $(OBJDIR)/headers
2029
-
20302018
$(OBJDIR)/xfer_.c: $(SRCDIR)/xfer.c $(OBJDIR)/translate
20312019
$(OBJDIR)/translate $(SRCDIR)/xfer.c >$@
20322020
20332021
$(OBJDIR)/xfer.o: $(OBJDIR)/xfer_.c $(OBJDIR)/xfer.h $(SRCDIR)/config.h
20342022
$(XTCC) -o $(OBJDIR)/xfer.o -c $(OBJDIR)/xfer_.c
20352023
--- src/main.mk
+++ src/main.mk
@@ -154,11 +154,10 @@
154 $(SRCDIR)/webmail.c \
155 $(SRCDIR)/wiki.c \
156 $(SRCDIR)/wikiformat.c \
157 $(SRCDIR)/winfile.c \
158 $(SRCDIR)/winhttp.c \
159 $(SRCDIR)/wysiwyg.c \
160 $(SRCDIR)/xfer.c \
161 $(SRCDIR)/xfersetup.c \
162 $(SRCDIR)/zip.c
163
164 EXTRA_FILES = \
@@ -404,11 +403,10 @@
404 $(OBJDIR)/webmail_.c \
405 $(OBJDIR)/wiki_.c \
406 $(OBJDIR)/wikiformat_.c \
407 $(OBJDIR)/winfile_.c \
408 $(OBJDIR)/winhttp_.c \
409 $(OBJDIR)/wysiwyg_.c \
410 $(OBJDIR)/xfer_.c \
411 $(OBJDIR)/xfersetup_.c \
412 $(OBJDIR)/zip_.c
413
414 OBJ = \
@@ -550,11 +548,10 @@
550 $(OBJDIR)/webmail.o \
551 $(OBJDIR)/wiki.o \
552 $(OBJDIR)/wikiformat.o \
553 $(OBJDIR)/winfile.o \
554 $(OBJDIR)/winhttp.o \
555 $(OBJDIR)/wysiwyg.o \
556 $(OBJDIR)/xfer.o \
557 $(OBJDIR)/xfersetup.o \
558 $(OBJDIR)/zip.o
559 all: $(OBJDIR) $(APPNAME)
560
@@ -886,11 +883,10 @@
886 $(OBJDIR)/webmail_.c:$(OBJDIR)/webmail.h \
887 $(OBJDIR)/wiki_.c:$(OBJDIR)/wiki.h \
888 $(OBJDIR)/wikiformat_.c:$(OBJDIR)/wikiformat.h \
889 $(OBJDIR)/winfile_.c:$(OBJDIR)/winfile.h \
890 $(OBJDIR)/winhttp_.c:$(OBJDIR)/winhttp.h \
891 $(OBJDIR)/wysiwyg_.c:$(OBJDIR)/wysiwyg.h \
892 $(OBJDIR)/xfer_.c:$(OBJDIR)/xfer.h \
893 $(OBJDIR)/xfersetup_.c:$(OBJDIR)/xfersetup.h \
894 $(OBJDIR)/zip_.c:$(OBJDIR)/zip.h \
895 $(SRCDIR)/sqlite3.h \
896 $(SRCDIR)/th.h \
@@ -2017,18 +2013,10 @@
2017 $(OBJDIR)/winhttp.o: $(OBJDIR)/winhttp_.c $(OBJDIR)/winhttp.h $(SRCDIR)/config.h
2018 $(XTCC) -o $(OBJDIR)/winhttp.o -c $(OBJDIR)/winhttp_.c
2019
2020 $(OBJDIR)/winhttp.h: $(OBJDIR)/headers
2021
2022 $(OBJDIR)/wysiwyg_.c: $(SRCDIR)/wysiwyg.c $(OBJDIR)/translate
2023 $(OBJDIR)/translate $(SRCDIR)/wysiwyg.c >$@
2024
2025 $(OBJDIR)/wysiwyg.o: $(OBJDIR)/wysiwyg_.c $(OBJDIR)/wysiwyg.h $(SRCDIR)/config.h
2026 $(XTCC) -o $(OBJDIR)/wysiwyg.o -c $(OBJDIR)/wysiwyg_.c
2027
2028 $(OBJDIR)/wysiwyg.h: $(OBJDIR)/headers
2029
2030 $(OBJDIR)/xfer_.c: $(SRCDIR)/xfer.c $(OBJDIR)/translate
2031 $(OBJDIR)/translate $(SRCDIR)/xfer.c >$@
2032
2033 $(OBJDIR)/xfer.o: $(OBJDIR)/xfer_.c $(OBJDIR)/xfer.h $(SRCDIR)/config.h
2034 $(XTCC) -o $(OBJDIR)/xfer.o -c $(OBJDIR)/xfer_.c
2035
--- src/main.mk
+++ src/main.mk
@@ -154,11 +154,10 @@
154 $(SRCDIR)/webmail.c \
155 $(SRCDIR)/wiki.c \
156 $(SRCDIR)/wikiformat.c \
157 $(SRCDIR)/winfile.c \
158 $(SRCDIR)/winhttp.c \
 
159 $(SRCDIR)/xfer.c \
160 $(SRCDIR)/xfersetup.c \
161 $(SRCDIR)/zip.c
162
163 EXTRA_FILES = \
@@ -404,11 +403,10 @@
403 $(OBJDIR)/webmail_.c \
404 $(OBJDIR)/wiki_.c \
405 $(OBJDIR)/wikiformat_.c \
406 $(OBJDIR)/winfile_.c \
407 $(OBJDIR)/winhttp_.c \
 
408 $(OBJDIR)/xfer_.c \
409 $(OBJDIR)/xfersetup_.c \
410 $(OBJDIR)/zip_.c
411
412 OBJ = \
@@ -550,11 +548,10 @@
548 $(OBJDIR)/webmail.o \
549 $(OBJDIR)/wiki.o \
550 $(OBJDIR)/wikiformat.o \
551 $(OBJDIR)/winfile.o \
552 $(OBJDIR)/winhttp.o \
 
553 $(OBJDIR)/xfer.o \
554 $(OBJDIR)/xfersetup.o \
555 $(OBJDIR)/zip.o
556 all: $(OBJDIR) $(APPNAME)
557
@@ -886,11 +883,10 @@
883 $(OBJDIR)/webmail_.c:$(OBJDIR)/webmail.h \
884 $(OBJDIR)/wiki_.c:$(OBJDIR)/wiki.h \
885 $(OBJDIR)/wikiformat_.c:$(OBJDIR)/wikiformat.h \
886 $(OBJDIR)/winfile_.c:$(OBJDIR)/winfile.h \
887 $(OBJDIR)/winhttp_.c:$(OBJDIR)/winhttp.h \
 
888 $(OBJDIR)/xfer_.c:$(OBJDIR)/xfer.h \
889 $(OBJDIR)/xfersetup_.c:$(OBJDIR)/xfersetup.h \
890 $(OBJDIR)/zip_.c:$(OBJDIR)/zip.h \
891 $(SRCDIR)/sqlite3.h \
892 $(SRCDIR)/th.h \
@@ -2017,18 +2013,10 @@
2013 $(OBJDIR)/winhttp.o: $(OBJDIR)/winhttp_.c $(OBJDIR)/winhttp.h $(SRCDIR)/config.h
2014 $(XTCC) -o $(OBJDIR)/winhttp.o -c $(OBJDIR)/winhttp_.c
2015
2016 $(OBJDIR)/winhttp.h: $(OBJDIR)/headers
2017
 
 
 
 
 
 
 
 
2018 $(OBJDIR)/xfer_.c: $(SRCDIR)/xfer.c $(OBJDIR)/translate
2019 $(OBJDIR)/translate $(SRCDIR)/xfer.c >$@
2020
2021 $(OBJDIR)/xfer.o: $(OBJDIR)/xfer_.c $(OBJDIR)/xfer.h $(SRCDIR)/config.h
2022 $(XTCC) -o $(OBJDIR)/xfer.o -c $(OBJDIR)/xfer_.c
2023
--- src/makemake.tcl
+++ src/makemake.tcl
@@ -164,11 +164,10 @@
164164
webmail
165165
wiki
166166
wikiformat
167167
winfile
168168
winhttp
169
- wysiwyg
170169
xfer
171170
xfersetup
172171
zip
173172
http_ssl
174173
}
175174
--- src/makemake.tcl
+++ src/makemake.tcl
@@ -164,11 +164,10 @@
164 webmail
165 wiki
166 wikiformat
167 winfile
168 winhttp
169 wysiwyg
170 xfer
171 xfersetup
172 zip
173 http_ssl
174 }
175
--- src/makemake.tcl
+++ src/makemake.tcl
@@ -164,11 +164,10 @@
164 webmail
165 wiki
166 wikiformat
167 winfile
168 winhttp
 
169 xfer
170 xfersetup
171 zip
172 http_ssl
173 }
174
--- src/setup.c
+++ src/setup.c
@@ -1078,17 +1078,10 @@
10781078
@ empty string which means that Fossil never allows Markdown documents
10791079
@ to generate unsafe HTML.
10801080
@ (Property: "safe-html")</p>
10811081
@ <hr />
10821082
@ <hr />
1083
- onoff_attribute("Enable WYSIWYG Wiki Editing",
1084
- "wysiwyg-wiki", "wysiwyg-wiki", 0, 0);
1085
- @ <p>Enable what-you-see-is-what-you-get (WYSIWYG) editing of wiki pages.
1086
- @ The WYSIWYG editor generates HTML instead of markup, which makes
1087
- @ subsequent manual editing more difficult.
1088
- @ (Property: "wysiwyg-wiki")</p>
1089
- @ <hr />
10901083
onoff_attribute("Use HTML as wiki markup language",
10911084
"wiki-use-html", "wiki-use-html", 0, 0);
10921085
@ <p>Use HTML as the wiki markup language. Wiki links will still be parsed
10931086
@ but all other wiki formatting will be ignored. This option is helpful
10941087
@ if you have chosen to use a rich HTML editor for wiki markup such as
10951088
--- src/setup.c
+++ src/setup.c
@@ -1078,17 +1078,10 @@
1078 @ empty string which means that Fossil never allows Markdown documents
1079 @ to generate unsafe HTML.
1080 @ (Property: "safe-html")</p>
1081 @ <hr />
1082 @ <hr />
1083 onoff_attribute("Enable WYSIWYG Wiki Editing",
1084 "wysiwyg-wiki", "wysiwyg-wiki", 0, 0);
1085 @ <p>Enable what-you-see-is-what-you-get (WYSIWYG) editing of wiki pages.
1086 @ The WYSIWYG editor generates HTML instead of markup, which makes
1087 @ subsequent manual editing more difficult.
1088 @ (Property: "wysiwyg-wiki")</p>
1089 @ <hr />
1090 onoff_attribute("Use HTML as wiki markup language",
1091 "wiki-use-html", "wiki-use-html", 0, 0);
1092 @ <p>Use HTML as the wiki markup language. Wiki links will still be parsed
1093 @ but all other wiki formatting will be ignored. This option is helpful
1094 @ if you have chosen to use a rich HTML editor for wiki markup such as
1095
--- src/setup.c
+++ src/setup.c
@@ -1078,17 +1078,10 @@
1078 @ empty string which means that Fossil never allows Markdown documents
1079 @ to generate unsafe HTML.
1080 @ (Property: "safe-html")</p>
1081 @ <hr />
1082 @ <hr />
 
 
 
 
 
 
 
1083 onoff_attribute("Use HTML as wiki markup language",
1084 "wiki-use-html", "wiki-use-html", 0, 0);
1085 @ <p>Use HTML as the wiki markup language. Wiki links will still be parsed
1086 @ but all other wiki formatting will be ignored. This option is helpful
1087 @ if you have chosen to use a rich HTML editor for wiki markup such as
1088
+6 -232
--- src/wiki.c
+++ src/wiki.c
@@ -554,16 +554,11 @@
554554
zMimetype = wiki_filter_mimetypes(zMimetype);
555555
if( !g.isHome && !noSubmenu ){
556556
if( ((rid && g.perm.WrWiki) || (!rid && g.perm.NewWiki))
557557
&& wiki_special_permission(zPageName)
558558
){
559
- if( db_get_boolean("wysiwyg-wiki", 0) ){
560
- style_submenu_element("Edit", "%R/wikiedit?name=%T&wysiwyg=1",
561
- zPageName);
562
- }else{
563
- style_submenu_element("Edit", "%R/wikiedit?name=%T", zPageName);
564
- }
559
+ style_submenu_element("Edit", "%R/wikiedit?name=%T", zPageName);
565560
}else if( rid && g.perm.ApndWiki ){
566561
style_submenu_element("Edit", "%R/wikiappend?name=%T", zPageName);
567562
}
568563
if( g.perm.Hyperlink ){
569564
style_submenu_element("History", "%R/whistory?name=%T", zPageName);
@@ -1069,15 +1064,15 @@
10691064
** in the name of an unknown page will trigger the creation
10701065
** of a new page (which is not actually created in the database
10711066
** until the user explicitly saves it). If passed no page name,
10721067
** the user may select a page from the list on the first UI tab.
10731068
**
1074
-** To create a new page, pass both name=PAGENAME and
1075
-** mimetype=wiki-mime-type (one of text/x-fossil-wiki,
1076
-** text/x-markdown, or text/plain, defauling to the former).
1069
+** When creating a new page, the mimetype URL parameter may optionally
1070
+** be used to set its mimetype to one of text/x-fossil-wiki,
1071
+** text/x-markdown, or text/plain, defauling to the former.
10771072
*/
1078
-void wikiedit_page_v2(void){
1073
+void wikiedit_page(void){
10791074
const char *zPageName;
10801075
const char * zMimetype = P("mimetype");
10811076
int isSandbox;
10821077
int found = 0;
10831078
@@ -1282,225 +1277,10 @@
12821277
CX("});\n"/*fossil.onPageLoad()*/);
12831278
style_emit_script_tag(1,0);
12841279
style_footer();
12851280
}
12861281
1287
-/*
1288
-** Legacy /wikiedit implementation, kept around solely for comparison
1289
-** while implementing v2.
1290
-*/
1291
-void wikiedit_page(void){
1292
- char *zTag;
1293
- int rid = 0;
1294
- int isSandbox;
1295
- Blob wiki;
1296
- Manifest *pWiki = 0;
1297
- const char *zPageName;
1298
- int n;
1299
- const char *z;
1300
- char *zBody = (char*)P("w");
1301
- const char *zMimetype = wiki_filter_mimetypes(P("mimetype"));
1302
- int isWysiwyg = P("wysiwyg")!=0;
1303
- int goodCaptcha = 1;
1304
- int eType = WIKITYPE_UNKNOWN;
1305
- int havePreview = 0;
1306
-
1307
- if(1){
1308
- wikiedit_page_v2();
1309
- return;
1310
- }
1311
-
1312
- if( P("edit-wysiwyg")!=0 ){ isWysiwyg = 1; zBody = 0; }
1313
- if( P("edit-markup")!=0 ){ isWysiwyg = 0; zBody = 0; }
1314
- if( zBody ){
1315
- if( isWysiwyg ){
1316
- Blob body;
1317
- blob_zero(&body);
1318
- htmlTidy(zBody, &body);
1319
- zBody = blob_str(&body);
1320
- }else{
1321
- zBody = mprintf("%s", zBody);
1322
- }
1323
- }
1324
- login_check_credentials();
1325
- zPageName = PD("name","");
1326
- if( check_name(zPageName) ) return;
1327
- isSandbox = is_sandbox(zPageName);
1328
- if( isSandbox ){
1329
- if( !g.perm.WrWiki ){
1330
- login_needed(g.anon.WrWiki);
1331
- return;
1332
- }
1333
- if( zBody==0 ){
1334
- zBody = db_get("sandbox","");
1335
- zMimetype = db_get("sandbox-mimetype","text/x-fossil-wiki");
1336
- }
1337
- }else{
1338
- zTag = mprintf("wiki-%s", zPageName);
1339
- rid = db_int(0,
1340
- "SELECT rid FROM tagxref"
1341
- " WHERE tagid=(SELECT tagid FROM tag WHERE tagname=%Q)"
1342
- " ORDER BY mtime DESC", zTag
1343
- );
1344
- free(zTag);
1345
- if( !wiki_special_permission(zPageName) ){
1346
- login_needed(0);
1347
- return;
1348
- }
1349
- if( (rid && !g.perm.WrWiki) || (!rid && !g.perm.NewWiki) ){
1350
- login_needed(rid ? g.anon.WrWiki : g.anon.NewWiki);
1351
- return;
1352
- }
1353
- if( zBody==0 && (pWiki = manifest_get(rid, CFTYPE_WIKI, 0))!=0 ){
1354
- zBody = pWiki->zWiki;
1355
- zMimetype = pWiki->zMimetype;
1356
- }
1357
- }
1358
- if( P("submit")!=0 && zBody!=0
1359
- && (goodCaptcha = captcha_is_correct(0))
1360
- ){
1361
- char *zDate;
1362
- Blob cksum;
1363
- blob_zero(&wiki);
1364
- db_begin_transaction();
1365
- if( isSandbox ){
1366
- db_set("sandbox",zBody,0);
1367
- db_set("sandbox-mimetype",zMimetype,0);
1368
- }else{
1369
- login_verify_csrf_secret();
1370
- zDate = date_in_standard_format("now");
1371
- blob_appendf(&wiki, "D %s\n", zDate);
1372
- free(zDate);
1373
- blob_appendf(&wiki, "L %F\n", zPageName);
1374
- if( fossil_strcmp(zMimetype,"text/x-fossil-wiki")!=0 ){
1375
- blob_appendf(&wiki, "N %s\n", zMimetype);
1376
- }
1377
- if( rid ){
1378
- char *zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", rid);
1379
- blob_appendf(&wiki, "P %s\n", zUuid);
1380
- free(zUuid);
1381
- }
1382
- if( !login_is_nobody() ){
1383
- blob_appendf(&wiki, "U %F\n", login_name());
1384
- }
1385
- blob_appendf(&wiki, "W %d\n%s\n", strlen(zBody), zBody);
1386
- md5sum_blob(&wiki, &cksum);
1387
- blob_appendf(&wiki, "Z %b\n", &cksum);
1388
- blob_reset(&cksum);
1389
- wiki_put(&wiki, 0, wiki_need_moderation(0));
1390
- }
1391
- db_end_transaction(0);
1392
- cgi_redirectf("wiki?name=%T", zPageName);
1393
- }
1394
- if( P("cancel")!=0 ){
1395
- cgi_redirectf("wiki?name=%T", zPageName);
1396
- return;
1397
- }
1398
- if( zBody==0 ){
1399
- zBody = mprintf("");
1400
- }
1401
- style_set_current_page("%T?name=%T", g.zPath, zPageName);
1402
- eType = wiki_page_header(WIKITYPE_UNKNOWN, zPageName, "Edit: ");
1403
- if( rid && !isSandbox && g.perm.ApndWiki ){
1404
- if( g.perm.Attach ){
1405
- style_submenu_element("Attach",
1406
- "%s/attachadd?page=%T&from=%s/wiki%%3fname=%T",
1407
- g.zTop, zPageName, g.zTop, zPageName);
1408
- }
1409
- }
1410
- if( !goodCaptcha ){
1411
- @ <p class="generalError">Error: Incorrect security code.</p>
1412
- }
1413
- blob_zero(&wiki);
1414
- while( fossil_isspace(zBody[0]) ) zBody++;
1415
- blob_append(&wiki, zBody, -1);
1416
- if( P("preview")!=0 ){
1417
- havePreview = 1;
1418
- if( zBody[0] ){
1419
- @ Preview:<hr />
1420
- safe_html_context(DOCSRC_WIKI);
1421
- wiki_render_by_mimetype(&wiki, zMimetype);
1422
- @ <hr />
1423
- blob_reset(&wiki);
1424
- }
1425
- }
1426
- for(n=2, z=zBody; z[0]; z++){
1427
- if( z[0]=='\n' ) n++;
1428
- }
1429
- if( n<20 ) n = 20;
1430
- if( n>30 ) n = 30;
1431
- if( !isWysiwyg ){
1432
- /* Traditional markup-only editing */
1433
- char *zPlaceholder = 0;
1434
- switch( eType ){
1435
- case WIKITYPE_NORMAL: {
1436
- zPlaceholder = mprintf("Enter text for wiki page %s", zPageName);
1437
- break;
1438
- }
1439
- case WIKITYPE_BRANCH: {
1440
- zPlaceholder = mprintf("Enter notes about branch %s", zPageName+7);
1441
- break;
1442
- }
1443
- case WIKITYPE_CHECKIN: {
1444
- zPlaceholder = mprintf("Enter notes about check-in %.20s", zPageName+8);
1445
- break;
1446
- }
1447
- case WIKITYPE_TAG: {
1448
- zPlaceholder = mprintf("Enter notes about tag %s", zPageName+4);
1449
- break;
1450
- }
1451
- }
1452
- form_begin(0, "%R/wikiedit");
1453
- @ <div>%z(href("%R/markup_help"))Markup style</a>:
1454
- mimetype_option_menu(zMimetype);
1455
- @ <br /><textarea name="w" class="wikiedit" cols="80" \
1456
- @ rows="%d(n)" wrap="virtual" placeholder="%h(zPlaceholder)">\
1457
- @ %h(zBody)</textarea>
1458
- @ <br />
1459
- fossil_free(zPlaceholder);
1460
- if( db_get_boolean("wysiwyg-wiki", 0) ){
1461
- @ <input type="submit" name="edit-wysiwyg" value="Wysiwyg Editor"
1462
- @ onclick='return confirm("Switching to WYSIWYG-mode\nwill erase your markup\nedits. Continue?")' />
1463
- }
1464
- @ <input type="submit" name="preview" value="Preview Your Changes" />
1465
- }else{
1466
- /* Wysiwyg editing */
1467
- Blob html, temp;
1468
- havePreview = 1;
1469
- form_begin("", "%R/wikiedit");
1470
- @ <div>
1471
- @ <input type="hidden" name="wysiwyg" value="1" />
1472
- blob_zero(&temp);
1473
- wiki_convert(&wiki, &temp, 0);
1474
- blob_zero(&html);
1475
- htmlTidy(blob_str(&temp), &html);
1476
- blob_reset(&temp);
1477
- wysiwygEditor("w", blob_str(&html), 60, n);
1478
- blob_reset(&html);
1479
- @ <br />
1480
- @ <input type="submit" name="edit-markup" value="Markup Editor"
1481
- @ onclick='return confirm("Switching to markup-mode\nwill erase your WYSIWYG\nedits. Continue?")' />
1482
- }
1483
- login_insert_csrf_secret();
1484
- if( havePreview ){
1485
- if( isWysiwyg || zBody[0] ){
1486
- @ <input type="submit" name="submit" value="Apply These Changes" />
1487
- }else{
1488
- @ <input type="submit" name="submit" value="Delete This Wiki Page" />
1489
- }
1490
- }
1491
- @ <input type="hidden" name="name" value="%h(zPageName)" />
1492
- @ <input type="submit" name="cancel" value="Cancel"
1493
- @ onclick='confirm("Abandon your changes?")' />
1494
- @ </div>
1495
- captcha_generate(0);
1496
- @ </form>
1497
- manifest_destroy(pWiki);
1498
- blob_reset(&wiki);
1499
- style_footer();
1500
-}
1501
-
15021282
/*
15031283
** WEBPAGE: wikinew
15041284
** URL /wikinew
15051285
**
15061286
** Prompt the user to enter the name of a new wiki page. Then redirect
@@ -1515,17 +1295,11 @@
15151295
return;
15161296
}
15171297
zName = PD("name","");
15181298
zMimetype = wiki_filter_mimetypes(P("mimetype"));
15191299
if( zName[0] && wiki_name_is_wellformed((const unsigned char *)zName) ){
1520
- if( fossil_strcmp(zMimetype,"text/x-fossil-wiki")==0
1521
- && db_get_boolean("wysiwyg-wiki", 0)
1522
- ){
1523
- cgi_redirectf("wikiedit?name=%T&wysiwyg=1", zName);
1524
- }else{
1525
- cgi_redirectf("wikiedit?name=%T&mimetype=%s", zName, zMimetype);
1526
- }
1300
+ cgi_redirectf("wikiedit?name=%T&mimetype=%s", zName, zMimetype);
15271301
}
15281302
style_header("Create A New Wiki Page");
15291303
wiki_standard_submenu(W_ALL_BUT(W_NEW));
15301304
@ <p>Rules for wiki page names:</p>
15311305
well_formed_wiki_name_rules();
15321306
15331307
DELETED src/wysiwyg.c
--- src/wiki.c
+++ src/wiki.c
@@ -554,16 +554,11 @@
554 zMimetype = wiki_filter_mimetypes(zMimetype);
555 if( !g.isHome && !noSubmenu ){
556 if( ((rid && g.perm.WrWiki) || (!rid && g.perm.NewWiki))
557 && wiki_special_permission(zPageName)
558 ){
559 if( db_get_boolean("wysiwyg-wiki", 0) ){
560 style_submenu_element("Edit", "%R/wikiedit?name=%T&wysiwyg=1",
561 zPageName);
562 }else{
563 style_submenu_element("Edit", "%R/wikiedit?name=%T", zPageName);
564 }
565 }else if( rid && g.perm.ApndWiki ){
566 style_submenu_element("Edit", "%R/wikiappend?name=%T", zPageName);
567 }
568 if( g.perm.Hyperlink ){
569 style_submenu_element("History", "%R/whistory?name=%T", zPageName);
@@ -1069,15 +1064,15 @@
1069 ** in the name of an unknown page will trigger the creation
1070 ** of a new page (which is not actually created in the database
1071 ** until the user explicitly saves it). If passed no page name,
1072 ** the user may select a page from the list on the first UI tab.
1073 **
1074 ** To create a new page, pass both name=PAGENAME and
1075 ** mimetype=wiki-mime-type (one of text/x-fossil-wiki,
1076 ** text/x-markdown, or text/plain, defauling to the former).
1077 */
1078 void wikiedit_page_v2(void){
1079 const char *zPageName;
1080 const char * zMimetype = P("mimetype");
1081 int isSandbox;
1082 int found = 0;
1083
@@ -1282,225 +1277,10 @@
1282 CX("});\n"/*fossil.onPageLoad()*/);
1283 style_emit_script_tag(1,0);
1284 style_footer();
1285 }
1286
1287 /*
1288 ** Legacy /wikiedit implementation, kept around solely for comparison
1289 ** while implementing v2.
1290 */
1291 void wikiedit_page(void){
1292 char *zTag;
1293 int rid = 0;
1294 int isSandbox;
1295 Blob wiki;
1296 Manifest *pWiki = 0;
1297 const char *zPageName;
1298 int n;
1299 const char *z;
1300 char *zBody = (char*)P("w");
1301 const char *zMimetype = wiki_filter_mimetypes(P("mimetype"));
1302 int isWysiwyg = P("wysiwyg")!=0;
1303 int goodCaptcha = 1;
1304 int eType = WIKITYPE_UNKNOWN;
1305 int havePreview = 0;
1306
1307 if(1){
1308 wikiedit_page_v2();
1309 return;
1310 }
1311
1312 if( P("edit-wysiwyg")!=0 ){ isWysiwyg = 1; zBody = 0; }
1313 if( P("edit-markup")!=0 ){ isWysiwyg = 0; zBody = 0; }
1314 if( zBody ){
1315 if( isWysiwyg ){
1316 Blob body;
1317 blob_zero(&body);
1318 htmlTidy(zBody, &body);
1319 zBody = blob_str(&body);
1320 }else{
1321 zBody = mprintf("%s", zBody);
1322 }
1323 }
1324 login_check_credentials();
1325 zPageName = PD("name","");
1326 if( check_name(zPageName) ) return;
1327 isSandbox = is_sandbox(zPageName);
1328 if( isSandbox ){
1329 if( !g.perm.WrWiki ){
1330 login_needed(g.anon.WrWiki);
1331 return;
1332 }
1333 if( zBody==0 ){
1334 zBody = db_get("sandbox","");
1335 zMimetype = db_get("sandbox-mimetype","text/x-fossil-wiki");
1336 }
1337 }else{
1338 zTag = mprintf("wiki-%s", zPageName);
1339 rid = db_int(0,
1340 "SELECT rid FROM tagxref"
1341 " WHERE tagid=(SELECT tagid FROM tag WHERE tagname=%Q)"
1342 " ORDER BY mtime DESC", zTag
1343 );
1344 free(zTag);
1345 if( !wiki_special_permission(zPageName) ){
1346 login_needed(0);
1347 return;
1348 }
1349 if( (rid && !g.perm.WrWiki) || (!rid && !g.perm.NewWiki) ){
1350 login_needed(rid ? g.anon.WrWiki : g.anon.NewWiki);
1351 return;
1352 }
1353 if( zBody==0 && (pWiki = manifest_get(rid, CFTYPE_WIKI, 0))!=0 ){
1354 zBody = pWiki->zWiki;
1355 zMimetype = pWiki->zMimetype;
1356 }
1357 }
1358 if( P("submit")!=0 && zBody!=0
1359 && (goodCaptcha = captcha_is_correct(0))
1360 ){
1361 char *zDate;
1362 Blob cksum;
1363 blob_zero(&wiki);
1364 db_begin_transaction();
1365 if( isSandbox ){
1366 db_set("sandbox",zBody,0);
1367 db_set("sandbox-mimetype",zMimetype,0);
1368 }else{
1369 login_verify_csrf_secret();
1370 zDate = date_in_standard_format("now");
1371 blob_appendf(&wiki, "D %s\n", zDate);
1372 free(zDate);
1373 blob_appendf(&wiki, "L %F\n", zPageName);
1374 if( fossil_strcmp(zMimetype,"text/x-fossil-wiki")!=0 ){
1375 blob_appendf(&wiki, "N %s\n", zMimetype);
1376 }
1377 if( rid ){
1378 char *zUuid = db_text(0, "SELECT uuid FROM blob WHERE rid=%d", rid);
1379 blob_appendf(&wiki, "P %s\n", zUuid);
1380 free(zUuid);
1381 }
1382 if( !login_is_nobody() ){
1383 blob_appendf(&wiki, "U %F\n", login_name());
1384 }
1385 blob_appendf(&wiki, "W %d\n%s\n", strlen(zBody), zBody);
1386 md5sum_blob(&wiki, &cksum);
1387 blob_appendf(&wiki, "Z %b\n", &cksum);
1388 blob_reset(&cksum);
1389 wiki_put(&wiki, 0, wiki_need_moderation(0));
1390 }
1391 db_end_transaction(0);
1392 cgi_redirectf("wiki?name=%T", zPageName);
1393 }
1394 if( P("cancel")!=0 ){
1395 cgi_redirectf("wiki?name=%T", zPageName);
1396 return;
1397 }
1398 if( zBody==0 ){
1399 zBody = mprintf("");
1400 }
1401 style_set_current_page("%T?name=%T", g.zPath, zPageName);
1402 eType = wiki_page_header(WIKITYPE_UNKNOWN, zPageName, "Edit: ");
1403 if( rid && !isSandbox && g.perm.ApndWiki ){
1404 if( g.perm.Attach ){
1405 style_submenu_element("Attach",
1406 "%s/attachadd?page=%T&from=%s/wiki%%3fname=%T",
1407 g.zTop, zPageName, g.zTop, zPageName);
1408 }
1409 }
1410 if( !goodCaptcha ){
1411 @ <p class="generalError">Error: Incorrect security code.</p>
1412 }
1413 blob_zero(&wiki);
1414 while( fossil_isspace(zBody[0]) ) zBody++;
1415 blob_append(&wiki, zBody, -1);
1416 if( P("preview")!=0 ){
1417 havePreview = 1;
1418 if( zBody[0] ){
1419 @ Preview:<hr />
1420 safe_html_context(DOCSRC_WIKI);
1421 wiki_render_by_mimetype(&wiki, zMimetype);
1422 @ <hr />
1423 blob_reset(&wiki);
1424 }
1425 }
1426 for(n=2, z=zBody; z[0]; z++){
1427 if( z[0]=='\n' ) n++;
1428 }
1429 if( n<20 ) n = 20;
1430 if( n>30 ) n = 30;
1431 if( !isWysiwyg ){
1432 /* Traditional markup-only editing */
1433 char *zPlaceholder = 0;
1434 switch( eType ){
1435 case WIKITYPE_NORMAL: {
1436 zPlaceholder = mprintf("Enter text for wiki page %s", zPageName);
1437 break;
1438 }
1439 case WIKITYPE_BRANCH: {
1440 zPlaceholder = mprintf("Enter notes about branch %s", zPageName+7);
1441 break;
1442 }
1443 case WIKITYPE_CHECKIN: {
1444 zPlaceholder = mprintf("Enter notes about check-in %.20s", zPageName+8);
1445 break;
1446 }
1447 case WIKITYPE_TAG: {
1448 zPlaceholder = mprintf("Enter notes about tag %s", zPageName+4);
1449 break;
1450 }
1451 }
1452 form_begin(0, "%R/wikiedit");
1453 @ <div>%z(href("%R/markup_help"))Markup style</a>:
1454 mimetype_option_menu(zMimetype);
1455 @ <br /><textarea name="w" class="wikiedit" cols="80" \
1456 @ rows="%d(n)" wrap="virtual" placeholder="%h(zPlaceholder)">\
1457 @ %h(zBody)</textarea>
1458 @ <br />
1459 fossil_free(zPlaceholder);
1460 if( db_get_boolean("wysiwyg-wiki", 0) ){
1461 @ <input type="submit" name="edit-wysiwyg" value="Wysiwyg Editor"
1462 @ onclick='return confirm("Switching to WYSIWYG-mode\nwill erase your markup\nedits. Continue?")' />
1463 }
1464 @ <input type="submit" name="preview" value="Preview Your Changes" />
1465 }else{
1466 /* Wysiwyg editing */
1467 Blob html, temp;
1468 havePreview = 1;
1469 form_begin("", "%R/wikiedit");
1470 @ <div>
1471 @ <input type="hidden" name="wysiwyg" value="1" />
1472 blob_zero(&temp);
1473 wiki_convert(&wiki, &temp, 0);
1474 blob_zero(&html);
1475 htmlTidy(blob_str(&temp), &html);
1476 blob_reset(&temp);
1477 wysiwygEditor("w", blob_str(&html), 60, n);
1478 blob_reset(&html);
1479 @ <br />
1480 @ <input type="submit" name="edit-markup" value="Markup Editor"
1481 @ onclick='return confirm("Switching to markup-mode\nwill erase your WYSIWYG\nedits. Continue?")' />
1482 }
1483 login_insert_csrf_secret();
1484 if( havePreview ){
1485 if( isWysiwyg || zBody[0] ){
1486 @ <input type="submit" name="submit" value="Apply These Changes" />
1487 }else{
1488 @ <input type="submit" name="submit" value="Delete This Wiki Page" />
1489 }
1490 }
1491 @ <input type="hidden" name="name" value="%h(zPageName)" />
1492 @ <input type="submit" name="cancel" value="Cancel"
1493 @ onclick='confirm("Abandon your changes?")' />
1494 @ </div>
1495 captcha_generate(0);
1496 @ </form>
1497 manifest_destroy(pWiki);
1498 blob_reset(&wiki);
1499 style_footer();
1500 }
1501
1502 /*
1503 ** WEBPAGE: wikinew
1504 ** URL /wikinew
1505 **
1506 ** Prompt the user to enter the name of a new wiki page. Then redirect
@@ -1515,17 +1295,11 @@
1515 return;
1516 }
1517 zName = PD("name","");
1518 zMimetype = wiki_filter_mimetypes(P("mimetype"));
1519 if( zName[0] && wiki_name_is_wellformed((const unsigned char *)zName) ){
1520 if( fossil_strcmp(zMimetype,"text/x-fossil-wiki")==0
1521 && db_get_boolean("wysiwyg-wiki", 0)
1522 ){
1523 cgi_redirectf("wikiedit?name=%T&wysiwyg=1", zName);
1524 }else{
1525 cgi_redirectf("wikiedit?name=%T&mimetype=%s", zName, zMimetype);
1526 }
1527 }
1528 style_header("Create A New Wiki Page");
1529 wiki_standard_submenu(W_ALL_BUT(W_NEW));
1530 @ <p>Rules for wiki page names:</p>
1531 well_formed_wiki_name_rules();
1532
1533 ELETED src/wysiwyg.c
--- src/wiki.c
+++ src/wiki.c
@@ -554,16 +554,11 @@
554 zMimetype = wiki_filter_mimetypes(zMimetype);
555 if( !g.isHome && !noSubmenu ){
556 if( ((rid && g.perm.WrWiki) || (!rid && g.perm.NewWiki))
557 && wiki_special_permission(zPageName)
558 ){
559 style_submenu_element("Edit", "%R/wikiedit?name=%T", zPageName);
 
 
 
 
 
560 }else if( rid && g.perm.ApndWiki ){
561 style_submenu_element("Edit", "%R/wikiappend?name=%T", zPageName);
562 }
563 if( g.perm.Hyperlink ){
564 style_submenu_element("History", "%R/whistory?name=%T", zPageName);
@@ -1069,15 +1064,15 @@
1064 ** in the name of an unknown page will trigger the creation
1065 ** of a new page (which is not actually created in the database
1066 ** until the user explicitly saves it). If passed no page name,
1067 ** the user may select a page from the list on the first UI tab.
1068 **
1069 ** When creating a new page, the mimetype URL parameter may optionally
1070 ** be used to set its mimetype to one of text/x-fossil-wiki,
1071 ** text/x-markdown, or text/plain, defauling to the former.
1072 */
1073 void wikiedit_page(void){
1074 const char *zPageName;
1075 const char * zMimetype = P("mimetype");
1076 int isSandbox;
1077 int found = 0;
1078
@@ -1282,225 +1277,10 @@
1277 CX("});\n"/*fossil.onPageLoad()*/);
1278 style_emit_script_tag(1,0);
1279 style_footer();
1280 }
1281
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1282 /*
1283 ** WEBPAGE: wikinew
1284 ** URL /wikinew
1285 **
1286 ** Prompt the user to enter the name of a new wiki page. Then redirect
@@ -1515,17 +1295,11 @@
1295 return;
1296 }
1297 zName = PD("name","");
1298 zMimetype = wiki_filter_mimetypes(P("mimetype"));
1299 if( zName[0] && wiki_name_is_wellformed((const unsigned char *)zName) ){
1300 cgi_redirectf("wikiedit?name=%T&mimetype=%s", zName, zMimetype);
 
 
 
 
 
 
1301 }
1302 style_header("Create A New Wiki Page");
1303 wiki_standard_submenu(W_ALL_BUT(W_NEW));
1304 @ <p>Rules for wiki page names:</p>
1305 well_formed_wiki_name_rules();
1306
1307 ELETED src/wysiwyg.c
D src/wysiwyg.c
-328
--- a/src/wysiwyg.c
+++ b/src/wysiwyg.c
@@ -1,328 +0,0 @@
1
-/*
2
-** Copyright (c) 2012 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 that generates WYSIWYG text editors on
19
-** web pages.
20
-*/
21
-#include "config.h"
22
-#include <assert.h>
23
-#include <ctype.h>
24
-#include "wysiwyg.h"
25
-
26
-
27
-/*
28
-** Output code for a WYSIWYG editor. The caller must have already generated
29
-** the <form> that will contain the editor, and the call must generate the
30
-** corresponding </form> after this routine returns. The caller must include
31
-** an onsubmit= attribute on the <form> element that invokes the
32
-** wysiwygSubmit() function.
33
-**
34
-** There can only be a single WYSIWYG editor per frame.
35
-*/
36
-void wysiwygEditor(
37
- const char *zId, /* ID for this editor */
38
- const char *zContent, /* Initial content (HTML) */
39
- int w, int h /* Initial width and height */
40
-){
41
-
42
- @ <style type="text/css">
43
- @ .intLink { cursor: pointer; }
44
- @ img.intLink { border: 0; }
45
- @ #wysiwygBox {
46
- @ border: 1px #000000 solid;
47
- @ padding: 12px;
48
- @ }
49
- @ #editMode label { cursor: pointer; }
50
- @ </style>
51
-
52
- @ <input id="wysiwygValue" type="hidden" name="%s(zId)">
53
- @ <div id="editModeDiv">Edit mode:
54
- @ <select id="editMode" size=1>
55
- @ <option value="0">WYSIWYG</option>
56
- @ <option value="1">Raw HTML</option>
57
- @ </select></div>
58
- @ <div id="toolBar1">
59
- @ <select class="format" data-format="formatblock">
60
- @ <option selected>- formatting -</option>
61
- @ <option value="h1">Title 1 &lt;h1&gt;</option>
62
- @ <option value="h2">Title 2 &lt;h2&gt;</option>
63
- @ <option value="h3">Title 3 &lt;h3&gt;</option>
64
- @ <option value="h4">Title 4 &lt;h4&gt;</option>
65
- @ <option value="h5">Title 5 &lt;h5&gt;</option>
66
- @ <option value="h6">Subtitle &lt;h6&gt;</option>
67
- @ <option value="p">Paragraph &lt;p&gt;</option>
68
- @ <option value="pre">Preformatted &lt;pre&gt;</option>
69
- @ </select>
70
- @ <select class="format" data-format="fontname">
71
- @ <option class="heading" selected>- font -</option>
72
- @ <option>Arial</option>
73
- @ <option>Arial Black</option>
74
- @ <option>Courier New</option>
75
- @ <option>Times New Roman</option>
76
- @ </select>
77
- @ <select class="format" data-format="fontsize">
78
- @ <option class="heading" selected>- size -</option>
79
- @ <option value="1">Very small</option>
80
- @ <option value="2">A bit small</option>
81
- @ <option value="3">Normal</option>
82
- @ <option value="4">Medium-large</option>
83
- @ <option value="5">Big</option>
84
- @ <option value="6">Very big</option>
85
- @ <option value="7">Maximum</option>
86
- @ </select>
87
- @ <select class="format" data-format="forecolor">
88
- @ <option class="heading" selected>- color -</option>
89
- @ <option value="red">Red</option>
90
- @ <option value="blue">Blue</option>
91
- @ <option value="green">Green</option>
92
- @ <option value="black">Black</option>
93
- @ </select>
94
- @ </div>
95
- @ <div id="toolBar2">
96
- @ <img class="intLink" title="Undo" data-format="undo"
97
- @ src="data:image/gif;base64,R0lGODlhFgAWAOMKADljwliE33mOrpGjuYKl8aezxqPD+7
98
- @ /I19DV3NHa7P///////////////////////yH5BAEKAA8ALAAAAAAWABYAAARR8MlJq704680
99
- @ 7TkaYeJJBnES4EeUJvIGapWYAC0CsocQ7SDlWJkAkCA6ToMYWIARGQF3mRQVIEjkkSVLIbSfE
100
- @ whdRIH4fh/DZMICe3/C4nBQBADs=">
101
-
102
- @ <img class="intLink" title="Redo" data-format="redo"
103
- @ src="data:image/gif;base64,R0lGODlhFgAWAMIHAB1ChDljwl9vj1iE34Kl8aPD+7/I1/
104
- @ ///yH5BAEKAAcALAAAAAAWABYAAANKeLrc/jDKSesyphi7SiEgsVXZEATDICqBVJjpqWZt9Na
105
- @ EDNbQK1wCQsxlYnxMAImhyDoFAElJasRRvAZVRqqQXUy7Cgx4TC6bswkAOw==">
106
-
107
- @ <img class="intLink" title="Remove formatting" data-format="removeFormat"
108
- @ src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AA
109
- @ AABGdBTUEAALGPC/xhBQAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAOxAAADsQBlSsOGwA
110
- @ AAAd0SU1FB9oECQMCKPI8CIIAAAAIdEVYdENvbW1lbnQA9syWvwAAAuhJREFUOMtjYBgFxAB5
111
- @ 01ZWBvVaL2nHnlmk6mXCJbF69zU+Hz/9fB5O1lx+bg45qhl8/fYr5it3XrP/YWTUvvvk3VeqG
112
- @ Xz70TvbJy8+Wv39+2/Hz19/mGwjZzuTYjALuoBv9jImaXHeyD3H7kU8fPj2ICML8z92dlbtMz
113
- @ deiG3fco7J08foH1kurkm3E9iw54YvKwuTuom+LPt/BgbWf3//sf37/1/c02cCG1lB8f//f95
114
- @ DZx74MTMzshhoSm6szrQ/a6Ir/Z2RkfEjBxuLYFpDiDi6Af///2ckaHBp7+7wmavP5n76+P2C
115
- @ lrLIYl8H9W36auJCbCxM4szMTJac7Kza////R3H1w2cfWAgafPbqs5g7D95++/P1B4+ECK8tA
116
- @ wMDw/1H7159+/7r7ZcvPz4fOHbzEwMDwx8GBgaGnNatfHZx8zqrJ+4VJBh5CQEGOySEua/v3n
117
- @ 7hXmqI8WUGBgYGL3vVG7fuPK3i5GD9/fja7ZsMDAzMG/Ze52mZeSj4yu1XEq/ff7W5dvfVAS1
118
- @ lsXc4Db7z8C3r8p7Qjf///2dnZGxlqJuyr3rPqQd/Hhyu7oSpYWScylDQsd3kzvnH738wMDzj
119
- @ 5GBN1VIWW4c3KDon7VOvm7S3paB9u5qsU5/x5KUnlY+eexQbkLNsErK61+++VnAJcfkyMTIwf
120
- @ fj0QwZbJDKjcETs1Y8evyd48toz8y/ffzv//vPP4veffxpX77z6l5JewHPu8MqTDAwMDLzyrj
121
- @ b/mZm0JcT5Lj+89+Ybm6zz95oMh7s4XbygN3Sluq4Mj5K8iKMgP4f0////fv77//8nLy+7MCc
122
- @ XmyYDAwODS9jM9tcvPypd35pne3ljdjvj26+H2dhYpuENikgfvQeXNmSl3tqepxXsqhXPyc66
123
- @ 6s+fv1fMdKR3TK72zpix8nTc7bdfhfkEeVbC9KhbK/9iYWHiErbu6MWbY/7//8/4//9/pgOnH
124
- @ 6jGVazvFDRtq2VgiBIZrUTIBgCk+ivHvuEKwAAAAABJRU5ErkJggg==">
125
-
126
- @ <img class="intLink" title="Bold" data-format="bold"
127
- @ src="data:image/gif;base64,R0lGODlhFgAWAID/AMDAwAAAACH5BAEAAAAALAAAAAAWAB
128
- @ YAQAInhI+pa+H9mJy0LhdgtrxzDG5WGFVk6aXqyk6Y9kXvKKNuLbb6zgMFADs=" />
129
-
130
- @ <img class="intLink" title="Italic" data-format="italic"
131
- @ src="data:image/gif;base64,R0lGODlhFgAWAKEDAAAAAF9vj5WIbf///yH5BAEAAAMALA
132
- @ AAAAAWABYAAAIjnI+py+0Po5x0gXvruEKHrF2BB1YiCWgbMFIYpsbyTNd2UwAAOw==" />
133
-
134
- @ <img class="intLink" title="Underline" data-format="underline"
135
- @ src="data:image/gif;base64,R0lGODlhFgAWAKECAAAAAF9vj////////yH5BAEAAAIALA
136
- @ AAAAAWABYAAAIrlI+py+0Po5zUgAsEzvEeL4Ea15EiJJ5PSqJmuwKBEKgxVuXWtun+DwxCCgA
137
- @ 7" />
138
-
139
- @ <img class="intLink" title="Left align" data-format="justifyleft"
140
- @ src="data:image/gif;base64,R0lGODlhFgAWAID/AMDAwAAAACH5BAEAAAAALAAAAAAWAB
141
- @ YAQAIghI+py+0Po5y02ouz3jL4D4JMGELkGYxo+qzl4nKyXAAAOw==" />
142
-
143
- @ <img class="intLink" title="Center align" data-format="justifycenter"
144
- @ src="data:image/gif;base64,R0lGODlhFgAWAID/AMDAwAAAACH5BAEAAAAALAAAAAAWAB
145
- @ YAQAIfhI+py+0Po5y02ouz3jL4D4JOGI7kaZ5Bqn4sycVbAQA7" />
146
-
147
- @ <img class="intLink" title="Right align" data-format="justifyright"
148
- @ src="data:image/gif;base64,R0lGODlhFgAWAID/AMDAwAAAACH5BAEAAAAALAAAAAAWAB
149
- @ YAQAIghI+py+0Po5y02ouz3jL4D4JQGDLkGYxouqzl43JyVgAAOw==" />
150
- @ <img class="intLink" title="Numbered list"
151
- @ data-format="insertorderedlist"
152
- @ src="data:image/gif;base64,R0lGODlhFgAWAMIGAAAAADljwliE35GjuaezxtHa7P////
153
- @ ///yH5BAEAAAcALAAAAAAWABYAAAM2eLrc/jDKSespwjoRFvggCBUBoTFBeq6QIAysQnRHaEO
154
- @ zyaZ07Lu9lUBnC0UGQU1K52s6n5oEADs=" />
155
-
156
- @ <img class="intLink" title="Dotted list"
157
- @ data-format="insertunorderedlist"
158
- @ src="data:image/gif;base64,R0lGODlhFgAWAMIGAAAAAB1ChF9vj1iE33mOrqezxv////
159
- @ ///yH5BAEAAAcALAAAAAAWABYAAAMyeLrc/jDKSesppNhGRlBAKIZRERBbqm6YtnbfMY7lud6
160
- @ 4UwiuKnigGQliQuWOyKQykgAAOw==" />
161
-
162
- @ <img class="intLink" title="Quote" data-format="formatblock"
163
- @ src="data:image/gif;base64,R0lGODlhFgAWAIQXAC1NqjFRjkBgmT9nqUJnsk9xrFJ7u2
164
- @ R9qmKBt1iGzHmOrm6Sz4OXw3Odz4Cl2ZSnw6KxyqO306K63bG70bTB0rDI3bvI4P/////////
165
- @ //////////////////////////yH5BAEKAB8ALAAAAAAWABYAAAVP4CeOZGmeaKqubEs2Cekk
166
- @ ErvEI1zZuOgYFlakECEZFi0GgTGKEBATFmJAVXweVOoKEQgABB9IQDCmrLpjETrQQlhHjINrT
167
- @ q/b7/i8fp8PAQA7" />
168
-
169
- @ <img class="intLink" title="Delete indentation" data-format="outdent"
170
- @ src="data:image/gif;base64,R0lGODlhFgAWAMIHAAAAADljwliE35GjuaezxtDV3NHa7P
171
- @ ///yH5BAEAAAcALAAAAAAWABYAAAM2eLrc/jDKCQG9F2i7u8agQgyK1z2EIBil+TWqEMxhMcz
172
- @ sYVJ3e4ahk+sFnAgtxSQDqWw6n5cEADs=" />
173
-
174
- @ <img class="intLink" title="Add indentation" data-format="indent"
175
- @ src="data:image/gif;base64,R0lGODlhFgAWAOMIAAAAADljwl9vj1iE35GjuaezxtDV3N
176
- @ Ha7P///////////////////////////////yH5BAEAAAgALAAAAAAWABYAAAQ7EMlJq704650
177
- @ B/x8gemMpgugwHJNZXodKsO5oqUOgo5KhBwWESyMQsCRDHu9VOyk5TM9zSpFSr9gsJwIAOw==">
178
-
179
- @ <img class="intLink" title="Hyperlink" data-format="createlink"
180
- @ src="data:image/gif;base64,R0lGODlhFgAWAOMKAB1ChDRLY19vj3mOrpGjuaezxrCztb
181
- @ /I19Ha7Pv8/f///////////////////////yH5BAEKAA8ALAAAAAAWABYAAARY8MlJq704682
182
- @ 7/2BYIQVhHg9pEgVGIklyDEUBy/RlE4FQF4dCj2AQXAiJQDCWQCAEBwIioEMQBgSAFhDAGghG
183
- @ i9XgHAhMNoSZgJkJei33UESv2+/4vD4TAQA7" />
184
-
185
-#if 0 /* Cut/Copy/Paste requires special browser permissions for security
186
- ** reasons. So omit these buttons */
187
- @ <img class="intLink" title="Cut" data-format="cut"
188
- @ src="data:image/gif;base64,R0lGODlhFgAWAIQSAB1ChBFNsRJTySJYwjljwkxwl19vj1
189
- @ dusYODhl6MnHmOrpqbmpGjuaezxrCztcDCxL/I18rL1P/////////////////////////////
190
- @ //////////////////////////yH5BAEAAB8ALAAAAAAWABYAAAVu4CeOZGmeaKqubDs6TNnE
191
- @ bGNApNG0kbGMi5trwcA9GArXh+FAfBAw5UexUDAQESkRsfhJPwaH4YsEGAAJGisRGAQY7UCC9
192
- @ ZAXBB+74LGCRxIEHwAHdWooDgGJcwpxDisQBQRjIgkDCVlfmZqbmiEAOw==" />
193
-
194
- @ <img class="intLink" title="Copy" data-format="copy"
195
- @ src="data:image/gif;base64,R0lGODlhFgAWAIQcAB1ChBFNsTRLYyJYwjljwl9vj1iE31
196
- @ iGzF6MnHWX9HOdz5GjuYCl2YKl8ZOt4qezxqK63aK/9KPD+7DI3b/I17LM/MrL1MLY9NHa7OP
197
- @ s++bx/Pv8/f///////////////yH5BAEAAB8ALAAAAAAWABYAAAWG4CeOZGmeaKqubOum1SQ/
198
- @ kPVOW749BeVSus2CgrCxHptLBbOQxCSNCCaF1GUqwQbBd0JGJAyGJJiobE+LnCaDcXAaEoxhQ
199
- @ ACgNw0FQx9kP+wmaRgYFBQNeAoGihCAJQsCkJAKOhgXEw8BLQYciooHf5o7EA+kC40qBKkAAA
200
- @ Grpy+wsbKzIiEAOw==" />
201
-
202
- @ <img class="intLink" title="Paste" data-format="paste"
203
- @ src="data:image/gif;base64,R0lGODlhFgAWAIQUAD04KTRLY2tXQF9vj414WZWIbXmOrp
204
- @ qbmpGjudClFaezxsa0cb/I1+3YitHa7PrkIPHvbuPs+/fvrvv8/f/////////////////////
205
- @ //////////////////////////yH5BAEAAB8ALAAAAAAWABYAAAWN4CeOZGmeaKqubGsusPvB
206
- @ SyFJjVDs6nJLB0khR4AkBCmfsCGBQAoCwjF5gwquVykSFbwZE+AwIBV0GhFog2EwIDchjwRiQ
207
- @ o9E2Fx4XD5R+B0DDAEnBXBhBhN2DgwDAQFjJYVhCQYRfgoIDGiQJAWTCQMRiwwMfgicnVcAAA
208
- @ MOaK+bLAOrtLUyt7i5uiUhADs=" />
209
-#endif
210
-
211
- @ </div>
212
- @ <div id="wysiwygBox"
213
- @ style="resize:both;overflow:auto;width:95%%;min-height:%d(h)em;"
214
- @ contenteditable="true">%s(zContent)</div>
215
- @ <script nonce="%h(style_nonce())">
216
- @ var oDoc;
217
- @
218
- @ /* Initialize the document editor */
219
- @ function initDoc() {
220
- @ initEventHandlers();
221
- @ oDoc = document.getElementById("wysiwygBox");
222
- @ if (!isWysiwyg()) { setDocMode(true); }
223
- @ }
224
- @
225
- @ function initEventHandlers() {
226
- @ document.querySelector('form').onsubmit = wysiwygSubmit;
227
- @ document.querySelector('#editMode').onchange = function() {
228
- @ setDocMode(this.selectedIndex)
229
- @ };
230
- @ var controls = document.querySelectorAll('select.format');
231
- @ for(var i = 0; i < controls.length; i++) {
232
- @ controls[i].onchange = handleDropDown;
233
- @ }
234
- @ controls = document.querySelectorAll('.intLink');
235
- @ for(i = 0; i < controls.length; i++) {
236
- @ controls[i].onclick = handleFormatButton;
237
- @ }
238
- @
239
- @ function handleDropDown() {
240
- @ formatDoc(this.dataset.format,this[this.selectedIndex].value);
241
- @ this.selectedIndex = 0;
242
- @ }
243
- @
244
- @ function handleFormatButton() {
245
- @ var extra;
246
- @ switch (this.dataset.format) {
247
- @ case 'createlink':
248
- @ var sLnk = prompt('Target URL:','');
249
- @ if(sLnk && sLnk != '')
250
- @ {
251
- @ extra = sLnk;
252
- @ }
253
- @ break;
254
- @ case 'formatblock':
255
- @ extra = 'blockquote';
256
- @ break;
257
- @ }
258
- @ formatDoc(this.dataset.format, extra);
259
- @ }
260
- @ }
261
- @
262
- @ /* Return true if the document editor is in WYSIWYG mode. Return
263
- @ ** false if it is in Markup mode */
264
- @ function isWysiwyg() {
265
- @ return document.getElementById("editMode").selectedIndex==0;
266
- @ }
267
- @
268
- @ /* Invoke this routine prior to submitting the HTML content back
269
- @ ** to the server */
270
- @ function wysiwygSubmit() {
271
- @ if(oDoc.style.whiteSpace=="pre-wrap"){setDocMode(0);}
272
- @ document.getElementById("wysiwygValue").value=oDoc.innerHTML;
273
- @ }
274
- @
275
- @ /* Run the editing command if in WYSIWYG mode */
276
- @ function formatDoc(sCmd, sValue) {
277
- @ if (isWysiwyg()){
278
- @ try {
279
- @ // First, try the W3C draft standard way, which has
280
- @ // been working on all non-IE browsers for a while.
281
- @ // It is also supported by IE11 and higher.
282
- @ document.execCommand("styleWithCSS", false, false);
283
- @ } catch (e) {
284
- @ try {
285
- @ // For IE9 or IE10, this should work.
286
- @ document.execCommand("useCSS", 0, true);
287
- @ } catch (e) {
288
- @ // OK, that apparently did not work, do nothing.
289
- @ }
290
- @ }
291
- @ document.execCommand(sCmd, false, sValue);
292
- @ oDoc.focus();
293
- @ }
294
- @ }
295
- @
296
- @ /* Change the editing mode. Convert to markup if the argument
297
- @ ** is true and wysiwyg if the argument is false. */
298
- @ function setDocMode(bToMarkup) {
299
- @ var oContent;
300
- @ if (bToMarkup) {
301
- @ /* WYSIWYG -> Markup */
302
- @ var linebreak = new RegExp("</p><p>","ig");
303
- @ oContent = document.createTextNode(
304
- @ oDoc.innerHTML.replace(linebreak,"</p>\n\n<p>"));
305
- @ oDoc.innerHTML = "";
306
- @ oDoc.style.whiteSpace = "pre-wrap";
307
- @ oDoc.appendChild(oContent);
308
- @ document.getElementById("toolBar1").style.visibility="hidden";
309
- @ document.getElementById("toolBar2").style.visibility="hidden";
310
- @ } else {
311
- @ /* Markup -> WYSIWYG */
312
- @ if (document.all) {
313
- @ oDoc.innerHTML = oDoc.innerText;
314
- @ } else {
315
- @ oContent = document.createRange();
316
- @ oContent.selectNodeContents(oDoc.firstChild);
317
- @ oDoc.innerHTML = oContent.toString();
318
- @ }
319
- @ oDoc.style.whiteSpace = "normal";
320
- @ document.getElementById("toolBar1").style.visibility="visible";
321
- @ document.getElementById("toolBar2").style.visibility="visible";
322
- @ }
323
- @ oDoc.focus();
324
- @ }
325
- @ initDoc();
326
- @ </script>
327
-
328
-}
--- a/src/wysiwyg.c
+++ b/src/wysiwyg.c
@@ -1,328 +0,0 @@
1 /*
2 ** Copyright (c) 2012 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 that generates WYSIWYG text editors on
19 ** web pages.
20 */
21 #include "config.h"
22 #include <assert.h>
23 #include <ctype.h>
24 #include "wysiwyg.h"
25
26
27 /*
28 ** Output code for a WYSIWYG editor. The caller must have already generated
29 ** the <form> that will contain the editor, and the call must generate the
30 ** corresponding </form> after this routine returns. The caller must include
31 ** an onsubmit= attribute on the <form> element that invokes the
32 ** wysiwygSubmit() function.
33 **
34 ** There can only be a single WYSIWYG editor per frame.
35 */
36 void wysiwygEditor(
37 const char *zId, /* ID for this editor */
38 const char *zContent, /* Initial content (HTML) */
39 int w, int h /* Initial width and height */
40 ){
41
42 @ <style type="text/css">
43 @ .intLink { cursor: pointer; }
44 @ img.intLink { border: 0; }
45 @ #wysiwygBox {
46 @ border: 1px #000000 solid;
47 @ padding: 12px;
48 @ }
49 @ #editMode label { cursor: pointer; }
50 @ </style>
51
52 @ <input id="wysiwygValue" type="hidden" name="%s(zId)">
53 @ <div id="editModeDiv">Edit mode:
54 @ <select id="editMode" size=1>
55 @ <option value="0">WYSIWYG</option>
56 @ <option value="1">Raw HTML</option>
57 @ </select></div>
58 @ <div id="toolBar1">
59 @ <select class="format" data-format="formatblock">
60 @ <option selected>- formatting -</option>
61 @ <option value="h1">Title 1 &lt;h1&gt;</option>
62 @ <option value="h2">Title 2 &lt;h2&gt;</option>
63 @ <option value="h3">Title 3 &lt;h3&gt;</option>
64 @ <option value="h4">Title 4 &lt;h4&gt;</option>
65 @ <option value="h5">Title 5 &lt;h5&gt;</option>
66 @ <option value="h6">Subtitle &lt;h6&gt;</option>
67 @ <option value="p">Paragraph &lt;p&gt;</option>
68 @ <option value="pre">Preformatted &lt;pre&gt;</option>
69 @ </select>
70 @ <select class="format" data-format="fontname">
71 @ <option class="heading" selected>- font -</option>
72 @ <option>Arial</option>
73 @ <option>Arial Black</option>
74 @ <option>Courier New</option>
75 @ <option>Times New Roman</option>
76 @ </select>
77 @ <select class="format" data-format="fontsize">
78 @ <option class="heading" selected>- size -</option>
79 @ <option value="1">Very small</option>
80 @ <option value="2">A bit small</option>
81 @ <option value="3">Normal</option>
82 @ <option value="4">Medium-large</option>
83 @ <option value="5">Big</option>
84 @ <option value="6">Very big</option>
85 @ <option value="7">Maximum</option>
86 @ </select>
87 @ <select class="format" data-format="forecolor">
88 @ <option class="heading" selected>- color -</option>
89 @ <option value="red">Red</option>
90 @ <option value="blue">Blue</option>
91 @ <option value="green">Green</option>
92 @ <option value="black">Black</option>
93 @ </select>
94 @ </div>
95 @ <div id="toolBar2">
96 @ <img class="intLink" title="Undo" data-format="undo"
97 @ src="data:image/gif;base64,R0lGODlhFgAWAOMKADljwliE33mOrpGjuYKl8aezxqPD+7
98 @ /I19DV3NHa7P///////////////////////yH5BAEKAA8ALAAAAAAWABYAAARR8MlJq704680
99 @ 7TkaYeJJBnES4EeUJvIGapWYAC0CsocQ7SDlWJkAkCA6ToMYWIARGQF3mRQVIEjkkSVLIbSfE
100 @ whdRIH4fh/DZMICe3/C4nBQBADs=">
101
102 @ <img class="intLink" title="Redo" data-format="redo"
103 @ src="data:image/gif;base64,R0lGODlhFgAWAMIHAB1ChDljwl9vj1iE34Kl8aPD+7/I1/
104 @ ///yH5BAEKAAcALAAAAAAWABYAAANKeLrc/jDKSesyphi7SiEgsVXZEATDICqBVJjpqWZt9Na
105 @ EDNbQK1wCQsxlYnxMAImhyDoFAElJasRRvAZVRqqQXUy7Cgx4TC6bswkAOw==">
106
107 @ <img class="intLink" title="Remove formatting" data-format="removeFormat"
108 @ src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AA
109 @ AABGdBTUEAALGPC/xhBQAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAAOxAAADsQBlSsOGwA
110 @ AAAd0SU1FB9oECQMCKPI8CIIAAAAIdEVYdENvbW1lbnQA9syWvwAAAuhJREFUOMtjYBgFxAB5
111 @ 01ZWBvVaL2nHnlmk6mXCJbF69zU+Hz/9fB5O1lx+bg45qhl8/fYr5it3XrP/YWTUvvvk3VeqG
112 @ Xz70TvbJy8+Wv39+2/Hz19/mGwjZzuTYjALuoBv9jImaXHeyD3H7kU8fPj2ICML8z92dlbtMz
113 @ deiG3fco7J08foH1kurkm3E9iw54YvKwuTuom+LPt/BgbWf3//sf37/1/c02cCG1lB8f//f95
114 @ DZx74MTMzshhoSm6szrQ/a6Ir/Z2RkfEjBxuLYFpDiDi6Af///2ckaHBp7+7wmavP5n76+P2C
115 @ lrLIYl8H9W36auJCbCxM4szMTJac7Kza////R3H1w2cfWAgafPbqs5g7D95++/P1B4+ECK8tA
116 @ wMDw/1H7159+/7r7ZcvPz4fOHbzEwMDwx8GBgaGnNatfHZx8zqrJ+4VJBh5CQEGOySEua/v3n
117 @ 7hXmqI8WUGBgYGL3vVG7fuPK3i5GD9/fja7ZsMDAzMG/Ze52mZeSj4yu1XEq/ff7W5dvfVAS1
118 @ lsXc4Db7z8C3r8p7Qjf///2dnZGxlqJuyr3rPqQd/Hhyu7oSpYWScylDQsd3kzvnH738wMDzj
119 @ 5GBN1VIWW4c3KDon7VOvm7S3paB9u5qsU5/x5KUnlY+eexQbkLNsErK61+++VnAJcfkyMTIwf
120 @ fj0QwZbJDKjcETs1Y8evyd48toz8y/ffzv//vPP4veffxpX77z6l5JewHPu8MqTDAwMDLzyrj
121 @ b/mZm0JcT5Lj+89+Ybm6zz95oMh7s4XbygN3Sluq4Mj5K8iKMgP4f0////fv77//8nLy+7MCc
122 @ XmyYDAwODS9jM9tcvPypd35pne3ljdjvj26+H2dhYpuENikgfvQeXNmSl3tqepxXsqhXPyc66
123 @ 6s+fv1fMdKR3TK72zpix8nTc7bdfhfkEeVbC9KhbK/9iYWHiErbu6MWbY/7//8/4//9/pgOnH
124 @ 6jGVazvFDRtq2VgiBIZrUTIBgCk+ivHvuEKwAAAAABJRU5ErkJggg==">
125
126 @ <img class="intLink" title="Bold" data-format="bold"
127 @ src="data:image/gif;base64,R0lGODlhFgAWAID/AMDAwAAAACH5BAEAAAAALAAAAAAWAB
128 @ YAQAInhI+pa+H9mJy0LhdgtrxzDG5WGFVk6aXqyk6Y9kXvKKNuLbb6zgMFADs=" />
129
130 @ <img class="intLink" title="Italic" data-format="italic"
131 @ src="data:image/gif;base64,R0lGODlhFgAWAKEDAAAAAF9vj5WIbf///yH5BAEAAAMALA
132 @ AAAAAWABYAAAIjnI+py+0Po5x0gXvruEKHrF2BB1YiCWgbMFIYpsbyTNd2UwAAOw==" />
133
134 @ <img class="intLink" title="Underline" data-format="underline"
135 @ src="data:image/gif;base64,R0lGODlhFgAWAKECAAAAAF9vj////////yH5BAEAAAIALA
136 @ AAAAAWABYAAAIrlI+py+0Po5zUgAsEzvEeL4Ea15EiJJ5PSqJmuwKBEKgxVuXWtun+DwxCCgA
137 @ 7" />
138
139 @ <img class="intLink" title="Left align" data-format="justifyleft"
140 @ src="data:image/gif;base64,R0lGODlhFgAWAID/AMDAwAAAACH5BAEAAAAALAAAAAAWAB
141 @ YAQAIghI+py+0Po5y02ouz3jL4D4JMGELkGYxo+qzl4nKyXAAAOw==" />
142
143 @ <img class="intLink" title="Center align" data-format="justifycenter"
144 @ src="data:image/gif;base64,R0lGODlhFgAWAID/AMDAwAAAACH5BAEAAAAALAAAAAAWAB
145 @ YAQAIfhI+py+0Po5y02ouz3jL4D4JOGI7kaZ5Bqn4sycVbAQA7" />
146
147 @ <img class="intLink" title="Right align" data-format="justifyright"
148 @ src="data:image/gif;base64,R0lGODlhFgAWAID/AMDAwAAAACH5BAEAAAAALAAAAAAWAB
149 @ YAQAIghI+py+0Po5y02ouz3jL4D4JQGDLkGYxouqzl43JyVgAAOw==" />
150 @ <img class="intLink" title="Numbered list"
151 @ data-format="insertorderedlist"
152 @ src="data:image/gif;base64,R0lGODlhFgAWAMIGAAAAADljwliE35GjuaezxtHa7P////
153 @ ///yH5BAEAAAcALAAAAAAWABYAAAM2eLrc/jDKSespwjoRFvggCBUBoTFBeq6QIAysQnRHaEO
154 @ zyaZ07Lu9lUBnC0UGQU1K52s6n5oEADs=" />
155
156 @ <img class="intLink" title="Dotted list"
157 @ data-format="insertunorderedlist"
158 @ src="data:image/gif;base64,R0lGODlhFgAWAMIGAAAAAB1ChF9vj1iE33mOrqezxv////
159 @ ///yH5BAEAAAcALAAAAAAWABYAAAMyeLrc/jDKSesppNhGRlBAKIZRERBbqm6YtnbfMY7lud6
160 @ 4UwiuKnigGQliQuWOyKQykgAAOw==" />
161
162 @ <img class="intLink" title="Quote" data-format="formatblock"
163 @ src="data:image/gif;base64,R0lGODlhFgAWAIQXAC1NqjFRjkBgmT9nqUJnsk9xrFJ7u2
164 @ R9qmKBt1iGzHmOrm6Sz4OXw3Odz4Cl2ZSnw6KxyqO306K63bG70bTB0rDI3bvI4P/////////
165 @ //////////////////////////yH5BAEKAB8ALAAAAAAWABYAAAVP4CeOZGmeaKqubEs2Cekk
166 @ ErvEI1zZuOgYFlakECEZFi0GgTGKEBATFmJAVXweVOoKEQgABB9IQDCmrLpjETrQQlhHjINrT
167 @ q/b7/i8fp8PAQA7" />
168
169 @ <img class="intLink" title="Delete indentation" data-format="outdent"
170 @ src="data:image/gif;base64,R0lGODlhFgAWAMIHAAAAADljwliE35GjuaezxtDV3NHa7P
171 @ ///yH5BAEAAAcALAAAAAAWABYAAAM2eLrc/jDKCQG9F2i7u8agQgyK1z2EIBil+TWqEMxhMcz
172 @ sYVJ3e4ahk+sFnAgtxSQDqWw6n5cEADs=" />
173
174 @ <img class="intLink" title="Add indentation" data-format="indent"
175 @ src="data:image/gif;base64,R0lGODlhFgAWAOMIAAAAADljwl9vj1iE35GjuaezxtDV3N
176 @ Ha7P///////////////////////////////yH5BAEAAAgALAAAAAAWABYAAAQ7EMlJq704650
177 @ B/x8gemMpgugwHJNZXodKsO5oqUOgo5KhBwWESyMQsCRDHu9VOyk5TM9zSpFSr9gsJwIAOw==">
178
179 @ <img class="intLink" title="Hyperlink" data-format="createlink"
180 @ src="data:image/gif;base64,R0lGODlhFgAWAOMKAB1ChDRLY19vj3mOrpGjuaezxrCztb
181 @ /I19Ha7Pv8/f///////////////////////yH5BAEKAA8ALAAAAAAWABYAAARY8MlJq704682
182 @ 7/2BYIQVhHg9pEgVGIklyDEUBy/RlE4FQF4dCj2AQXAiJQDCWQCAEBwIioEMQBgSAFhDAGghG
183 @ i9XgHAhMNoSZgJkJei33UESv2+/4vD4TAQA7" />
184
185 #if 0 /* Cut/Copy/Paste requires special browser permissions for security
186 ** reasons. So omit these buttons */
187 @ <img class="intLink" title="Cut" data-format="cut"
188 @ src="data:image/gif;base64,R0lGODlhFgAWAIQSAB1ChBFNsRJTySJYwjljwkxwl19vj1
189 @ dusYODhl6MnHmOrpqbmpGjuaezxrCztcDCxL/I18rL1P/////////////////////////////
190 @ //////////////////////////yH5BAEAAB8ALAAAAAAWABYAAAVu4CeOZGmeaKqubDs6TNnE
191 @ bGNApNG0kbGMi5trwcA9GArXh+FAfBAw5UexUDAQESkRsfhJPwaH4YsEGAAJGisRGAQY7UCC9
192 @ ZAXBB+74LGCRxIEHwAHdWooDgGJcwpxDisQBQRjIgkDCVlfmZqbmiEAOw==" />
193
194 @ <img class="intLink" title="Copy" data-format="copy"
195 @ src="data:image/gif;base64,R0lGODlhFgAWAIQcAB1ChBFNsTRLYyJYwjljwl9vj1iE31
196 @ iGzF6MnHWX9HOdz5GjuYCl2YKl8ZOt4qezxqK63aK/9KPD+7DI3b/I17LM/MrL1MLY9NHa7OP
197 @ s++bx/Pv8/f///////////////yH5BAEAAB8ALAAAAAAWABYAAAWG4CeOZGmeaKqubOum1SQ/
198 @ kPVOW749BeVSus2CgrCxHptLBbOQxCSNCCaF1GUqwQbBd0JGJAyGJJiobE+LnCaDcXAaEoxhQ
199 @ ACgNw0FQx9kP+wmaRgYFBQNeAoGihCAJQsCkJAKOhgXEw8BLQYciooHf5o7EA+kC40qBKkAAA
200 @ Grpy+wsbKzIiEAOw==" />
201
202 @ <img class="intLink" title="Paste" data-format="paste"
203 @ src="data:image/gif;base64,R0lGODlhFgAWAIQUAD04KTRLY2tXQF9vj414WZWIbXmOrp
204 @ qbmpGjudClFaezxsa0cb/I1+3YitHa7PrkIPHvbuPs+/fvrvv8/f/////////////////////
205 @ //////////////////////////yH5BAEAAB8ALAAAAAAWABYAAAWN4CeOZGmeaKqubGsusPvB
206 @ SyFJjVDs6nJLB0khR4AkBCmfsCGBQAoCwjF5gwquVykSFbwZE+AwIBV0GhFog2EwIDchjwRiQ
207 @ o9E2Fx4XD5R+B0DDAEnBXBhBhN2DgwDAQFjJYVhCQYRfgoIDGiQJAWTCQMRiwwMfgicnVcAAA
208 @ MOaK+bLAOrtLUyt7i5uiUhADs=" />
209 #endif
210
211 @ </div>
212 @ <div id="wysiwygBox"
213 @ style="resize:both;overflow:auto;width:95%%;min-height:%d(h)em;"
214 @ contenteditable="true">%s(zContent)</div>
215 @ <script nonce="%h(style_nonce())">
216 @ var oDoc;
217 @
218 @ /* Initialize the document editor */
219 @ function initDoc() {
220 @ initEventHandlers();
221 @ oDoc = document.getElementById("wysiwygBox");
222 @ if (!isWysiwyg()) { setDocMode(true); }
223 @ }
224 @
225 @ function initEventHandlers() {
226 @ document.querySelector('form').onsubmit = wysiwygSubmit;
227 @ document.querySelector('#editMode').onchange = function() {
228 @ setDocMode(this.selectedIndex)
229 @ };
230 @ var controls = document.querySelectorAll('select.format');
231 @ for(var i = 0; i < controls.length; i++) {
232 @ controls[i].onchange = handleDropDown;
233 @ }
234 @ controls = document.querySelectorAll('.intLink');
235 @ for(i = 0; i < controls.length; i++) {
236 @ controls[i].onclick = handleFormatButton;
237 @ }
238 @
239 @ function handleDropDown() {
240 @ formatDoc(this.dataset.format,this[this.selectedIndex].value);
241 @ this.selectedIndex = 0;
242 @ }
243 @
244 @ function handleFormatButton() {
245 @ var extra;
246 @ switch (this.dataset.format) {
247 @ case 'createlink':
248 @ var sLnk = prompt('Target URL:','');
249 @ if(sLnk && sLnk != '')
250 @ {
251 @ extra = sLnk;
252 @ }
253 @ break;
254 @ case 'formatblock':
255 @ extra = 'blockquote';
256 @ break;
257 @ }
258 @ formatDoc(this.dataset.format, extra);
259 @ }
260 @ }
261 @
262 @ /* Return true if the document editor is in WYSIWYG mode. Return
263 @ ** false if it is in Markup mode */
264 @ function isWysiwyg() {
265 @ return document.getElementById("editMode").selectedIndex==0;
266 @ }
267 @
268 @ /* Invoke this routine prior to submitting the HTML content back
269 @ ** to the server */
270 @ function wysiwygSubmit() {
271 @ if(oDoc.style.whiteSpace=="pre-wrap"){setDocMode(0);}
272 @ document.getElementById("wysiwygValue").value=oDoc.innerHTML;
273 @ }
274 @
275 @ /* Run the editing command if in WYSIWYG mode */
276 @ function formatDoc(sCmd, sValue) {
277 @ if (isWysiwyg()){
278 @ try {
279 @ // First, try the W3C draft standard way, which has
280 @ // been working on all non-IE browsers for a while.
281 @ // It is also supported by IE11 and higher.
282 @ document.execCommand("styleWithCSS", false, false);
283 @ } catch (e) {
284 @ try {
285 @ // For IE9 or IE10, this should work.
286 @ document.execCommand("useCSS", 0, true);
287 @ } catch (e) {
288 @ // OK, that apparently did not work, do nothing.
289 @ }
290 @ }
291 @ document.execCommand(sCmd, false, sValue);
292 @ oDoc.focus();
293 @ }
294 @ }
295 @
296 @ /* Change the editing mode. Convert to markup if the argument
297 @ ** is true and wysiwyg if the argument is false. */
298 @ function setDocMode(bToMarkup) {
299 @ var oContent;
300 @ if (bToMarkup) {
301 @ /* WYSIWYG -> Markup */
302 @ var linebreak = new RegExp("</p><p>","ig");
303 @ oContent = document.createTextNode(
304 @ oDoc.innerHTML.replace(linebreak,"</p>\n\n<p>"));
305 @ oDoc.innerHTML = "";
306 @ oDoc.style.whiteSpace = "pre-wrap";
307 @ oDoc.appendChild(oContent);
308 @ document.getElementById("toolBar1").style.visibility="hidden";
309 @ document.getElementById("toolBar2").style.visibility="hidden";
310 @ } else {
311 @ /* Markup -> WYSIWYG */
312 @ if (document.all) {
313 @ oDoc.innerHTML = oDoc.innerText;
314 @ } else {
315 @ oContent = document.createRange();
316 @ oContent.selectNodeContents(oDoc.firstChild);
317 @ oDoc.innerHTML = oContent.toString();
318 @ }
319 @ oDoc.style.whiteSpace = "normal";
320 @ document.getElementById("toolBar1").style.visibility="visible";
321 @ document.getElementById("toolBar2").style.visibility="visible";
322 @ }
323 @ oDoc.focus();
324 @ }
325 @ initDoc();
326 @ </script>
327
328 }
--- a/src/wysiwyg.c
+++ b/src/wysiwyg.c
@@ -1,328 +0,0 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
+4 -10
--- win/Makefile.dmc
+++ win/Makefile.dmc
@@ -28,13 +28,13 @@
2828
2929
SQLITE_OPTIONS = -DNDEBUG=1 -DSQLITE_DQS=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_TRUSTED_SCHEMA=0
3030
3131
SHELL_OPTIONS = -DNDEBUG=1 -DSQLITE_DQS=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_TRUSTED_SCHEMA=0 -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 ajax_.c alerts_.c allrepo_.c attach_.c backlink_.c backoffice_.c bag_.c bisect_.c blob_.c branch_.c browse_.c builtin_.c bundle_.c cache_.c capabilities_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c cookies_.c db_.c delta_.c deltacmd_.c deltafunc_.c descendants_.c diff_.c diffcmd_.c dispatch_.c doc_.c encode_.c etag_.c event_.c export_.c extcgi_.c file_.c fileedit_.c finfo_.c foci_.c forum_.c fshell_.c fusefs_.c fuzz_.c glob_.c graph_.c gzip_.c hname_.c hook_.c http_.c http_socket_.c http_ssl_.c http_transport_.c import_.c info_.c json_.c json_artifact_.c json_branch_.c json_config_.c json_diff_.c json_dir_.c json_finfo_.c json_login_.c json_query_.c json_report_.c json_status_.c json_tag_.c json_timeline_.c json_user_.c json_wiki_.c leaf_.c loadctrl_.c login_.c lookslike_.c main_.c manifest_.c markdown_.c markdown_html_.c md5_.c merge_.c merge3_.c moderate_.c name_.c path_.c piechart_.c pivot_.c popen_.c pqueue_.c printf_.c publish_.c purge_.c rebuild_.c regexp_.c repolist_.c report_.c rss_.c schema_.c search_.c security_audit_.c setup_.c setupuser_.c sha1_.c sha1hard_.c sha3_.c shun_.c sitemap_.c skins_.c smtp_.c sqlcmd_.c stash_.c stat_.c statrep_.c style_.c sync_.c tag_.c tar_.c terminal_.c th_main_.c timeline_.c tkt_.c tktsetup_.c undo_.c unicode_.c unversioned_.c update_.c url_.c user_.c utf8_.c util_.c verify_.c vfile_.c webmail_.c wiki_.c wikiformat_.c winfile_.c winhttp_.c wysiwyg_.c xfer_.c xfersetup_.c zip_.c
33
+SRC = add_.c ajax_.c alerts_.c allrepo_.c attach_.c backlink_.c backoffice_.c bag_.c bisect_.c blob_.c branch_.c browse_.c builtin_.c bundle_.c cache_.c capabilities_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c cookies_.c db_.c delta_.c deltacmd_.c deltafunc_.c descendants_.c diff_.c diffcmd_.c dispatch_.c doc_.c encode_.c etag_.c event_.c export_.c extcgi_.c file_.c fileedit_.c finfo_.c foci_.c forum_.c fshell_.c fusefs_.c fuzz_.c glob_.c graph_.c gzip_.c hname_.c hook_.c http_.c http_socket_.c http_ssl_.c http_transport_.c import_.c info_.c json_.c json_artifact_.c json_branch_.c json_config_.c json_diff_.c json_dir_.c json_finfo_.c json_login_.c json_query_.c json_report_.c json_status_.c json_tag_.c json_timeline_.c json_user_.c json_wiki_.c leaf_.c loadctrl_.c login_.c lookslike_.c main_.c manifest_.c markdown_.c markdown_html_.c md5_.c merge_.c merge3_.c moderate_.c name_.c path_.c piechart_.c pivot_.c popen_.c pqueue_.c printf_.c publish_.c purge_.c rebuild_.c regexp_.c repolist_.c report_.c rss_.c schema_.c search_.c security_audit_.c setup_.c setupuser_.c sha1_.c sha1hard_.c sha3_.c shun_.c sitemap_.c skins_.c smtp_.c sqlcmd_.c stash_.c stat_.c statrep_.c style_.c sync_.c tag_.c tar_.c terminal_.c th_main_.c timeline_.c tkt_.c tktsetup_.c undo_.c unicode_.c unversioned_.c update_.c url_.c user_.c utf8_.c util_.c verify_.c vfile_.c webmail_.c wiki_.c wikiformat_.c winfile_.c winhttp_.c xfer_.c xfersetup_.c zip_.c
3434
35
-OBJ = $(OBJDIR)\add$O $(OBJDIR)\ajax$O $(OBJDIR)\alerts$O $(OBJDIR)\allrepo$O $(OBJDIR)\attach$O $(OBJDIR)\backlink$O $(OBJDIR)\backoffice$O $(OBJDIR)\bag$O $(OBJDIR)\bisect$O $(OBJDIR)\blob$O $(OBJDIR)\branch$O $(OBJDIR)\browse$O $(OBJDIR)\builtin$O $(OBJDIR)\bundle$O $(OBJDIR)\cache$O $(OBJDIR)\capabilities$O $(OBJDIR)\captcha$O $(OBJDIR)\cgi$O $(OBJDIR)\checkin$O $(OBJDIR)\checkout$O $(OBJDIR)\clearsign$O $(OBJDIR)\clone$O $(OBJDIR)\comformat$O $(OBJDIR)\configure$O $(OBJDIR)\content$O $(OBJDIR)\cookies$O $(OBJDIR)\db$O $(OBJDIR)\delta$O $(OBJDIR)\deltacmd$O $(OBJDIR)\deltafunc$O $(OBJDIR)\descendants$O $(OBJDIR)\diff$O $(OBJDIR)\diffcmd$O $(OBJDIR)\dispatch$O $(OBJDIR)\doc$O $(OBJDIR)\encode$O $(OBJDIR)\etag$O $(OBJDIR)\event$O $(OBJDIR)\export$O $(OBJDIR)\extcgi$O $(OBJDIR)\file$O $(OBJDIR)\fileedit$O $(OBJDIR)\finfo$O $(OBJDIR)\foci$O $(OBJDIR)\forum$O $(OBJDIR)\fshell$O $(OBJDIR)\fusefs$O $(OBJDIR)\fuzz$O $(OBJDIR)\glob$O $(OBJDIR)\graph$O $(OBJDIR)\gzip$O $(OBJDIR)\hname$O $(OBJDIR)\hook$O $(OBJDIR)\http$O $(OBJDIR)\http_socket$O $(OBJDIR)\http_ssl$O $(OBJDIR)\http_transport$O $(OBJDIR)\import$O $(OBJDIR)\info$O $(OBJDIR)\json$O $(OBJDIR)\json_artifact$O $(OBJDIR)\json_branch$O $(OBJDIR)\json_config$O $(OBJDIR)\json_diff$O $(OBJDIR)\json_dir$O $(OBJDIR)\json_finfo$O $(OBJDIR)\json_login$O $(OBJDIR)\json_query$O $(OBJDIR)\json_report$O $(OBJDIR)\json_status$O $(OBJDIR)\json_tag$O $(OBJDIR)\json_timeline$O $(OBJDIR)\json_user$O $(OBJDIR)\json_wiki$O $(OBJDIR)\leaf$O $(OBJDIR)\loadctrl$O $(OBJDIR)\login$O $(OBJDIR)\lookslike$O $(OBJDIR)\main$O $(OBJDIR)\manifest$O $(OBJDIR)\markdown$O $(OBJDIR)\markdown_html$O $(OBJDIR)\md5$O $(OBJDIR)\merge$O $(OBJDIR)\merge3$O $(OBJDIR)\moderate$O $(OBJDIR)\name$O $(OBJDIR)\path$O $(OBJDIR)\piechart$O $(OBJDIR)\pivot$O $(OBJDIR)\popen$O $(OBJDIR)\pqueue$O $(OBJDIR)\printf$O $(OBJDIR)\publish$O $(OBJDIR)\purge$O $(OBJDIR)\rebuild$O $(OBJDIR)\regexp$O $(OBJDIR)\repolist$O $(OBJDIR)\report$O $(OBJDIR)\rss$O $(OBJDIR)\schema$O $(OBJDIR)\search$O $(OBJDIR)\security_audit$O $(OBJDIR)\setup$O $(OBJDIR)\setupuser$O $(OBJDIR)\sha1$O $(OBJDIR)\sha1hard$O $(OBJDIR)\sha3$O $(OBJDIR)\shun$O $(OBJDIR)\sitemap$O $(OBJDIR)\skins$O $(OBJDIR)\smtp$O $(OBJDIR)\sqlcmd$O $(OBJDIR)\stash$O $(OBJDIR)\stat$O $(OBJDIR)\statrep$O $(OBJDIR)\style$O $(OBJDIR)\sync$O $(OBJDIR)\tag$O $(OBJDIR)\tar$O $(OBJDIR)\terminal$O $(OBJDIR)\th_main$O $(OBJDIR)\timeline$O $(OBJDIR)\tkt$O $(OBJDIR)\tktsetup$O $(OBJDIR)\undo$O $(OBJDIR)\unicode$O $(OBJDIR)\unversioned$O $(OBJDIR)\update$O $(OBJDIR)\url$O $(OBJDIR)\user$O $(OBJDIR)\utf8$O $(OBJDIR)\util$O $(OBJDIR)\verify$O $(OBJDIR)\vfile$O $(OBJDIR)\webmail$O $(OBJDIR)\wiki$O $(OBJDIR)\wikiformat$O $(OBJDIR)\winfile$O $(OBJDIR)\winhttp$O $(OBJDIR)\wysiwyg$O $(OBJDIR)\xfer$O $(OBJDIR)\xfersetup$O $(OBJDIR)\zip$O $(OBJDIR)\shell$O $(OBJDIR)\sqlite3$O $(OBJDIR)\th$O $(OBJDIR)\th_lang$O
35
+OBJ = $(OBJDIR)\add$O $(OBJDIR)\ajax$O $(OBJDIR)\alerts$O $(OBJDIR)\allrepo$O $(OBJDIR)\attach$O $(OBJDIR)\backlink$O $(OBJDIR)\backoffice$O $(OBJDIR)\bag$O $(OBJDIR)\bisect$O $(OBJDIR)\blob$O $(OBJDIR)\branch$O $(OBJDIR)\browse$O $(OBJDIR)\builtin$O $(OBJDIR)\bundle$O $(OBJDIR)\cache$O $(OBJDIR)\capabilities$O $(OBJDIR)\captcha$O $(OBJDIR)\cgi$O $(OBJDIR)\checkin$O $(OBJDIR)\checkout$O $(OBJDIR)\clearsign$O $(OBJDIR)\clone$O $(OBJDIR)\comformat$O $(OBJDIR)\configure$O $(OBJDIR)\content$O $(OBJDIR)\cookies$O $(OBJDIR)\db$O $(OBJDIR)\delta$O $(OBJDIR)\deltacmd$O $(OBJDIR)\deltafunc$O $(OBJDIR)\descendants$O $(OBJDIR)\diff$O $(OBJDIR)\diffcmd$O $(OBJDIR)\dispatch$O $(OBJDIR)\doc$O $(OBJDIR)\encode$O $(OBJDIR)\etag$O $(OBJDIR)\event$O $(OBJDIR)\export$O $(OBJDIR)\extcgi$O $(OBJDIR)\file$O $(OBJDIR)\fileedit$O $(OBJDIR)\finfo$O $(OBJDIR)\foci$O $(OBJDIR)\forum$O $(OBJDIR)\fshell$O $(OBJDIR)\fusefs$O $(OBJDIR)\fuzz$O $(OBJDIR)\glob$O $(OBJDIR)\graph$O $(OBJDIR)\gzip$O $(OBJDIR)\hname$O $(OBJDIR)\hook$O $(OBJDIR)\http$O $(OBJDIR)\http_socket$O $(OBJDIR)\http_ssl$O $(OBJDIR)\http_transport$O $(OBJDIR)\import$O $(OBJDIR)\info$O $(OBJDIR)\json$O $(OBJDIR)\json_artifact$O $(OBJDIR)\json_branch$O $(OBJDIR)\json_config$O $(OBJDIR)\json_diff$O $(OBJDIR)\json_dir$O $(OBJDIR)\json_finfo$O $(OBJDIR)\json_login$O $(OBJDIR)\json_query$O $(OBJDIR)\json_report$O $(OBJDIR)\json_status$O $(OBJDIR)\json_tag$O $(OBJDIR)\json_timeline$O $(OBJDIR)\json_user$O $(OBJDIR)\json_wiki$O $(OBJDIR)\leaf$O $(OBJDIR)\loadctrl$O $(OBJDIR)\login$O $(OBJDIR)\lookslike$O $(OBJDIR)\main$O $(OBJDIR)\manifest$O $(OBJDIR)\markdown$O $(OBJDIR)\markdown_html$O $(OBJDIR)\md5$O $(OBJDIR)\merge$O $(OBJDIR)\merge3$O $(OBJDIR)\moderate$O $(OBJDIR)\name$O $(OBJDIR)\path$O $(OBJDIR)\piechart$O $(OBJDIR)\pivot$O $(OBJDIR)\popen$O $(OBJDIR)\pqueue$O $(OBJDIR)\printf$O $(OBJDIR)\publish$O $(OBJDIR)\purge$O $(OBJDIR)\rebuild$O $(OBJDIR)\regexp$O $(OBJDIR)\repolist$O $(OBJDIR)\report$O $(OBJDIR)\rss$O $(OBJDIR)\schema$O $(OBJDIR)\search$O $(OBJDIR)\security_audit$O $(OBJDIR)\setup$O $(OBJDIR)\setupuser$O $(OBJDIR)\sha1$O $(OBJDIR)\sha1hard$O $(OBJDIR)\sha3$O $(OBJDIR)\shun$O $(OBJDIR)\sitemap$O $(OBJDIR)\skins$O $(OBJDIR)\smtp$O $(OBJDIR)\sqlcmd$O $(OBJDIR)\stash$O $(OBJDIR)\stat$O $(OBJDIR)\statrep$O $(OBJDIR)\style$O $(OBJDIR)\sync$O $(OBJDIR)\tag$O $(OBJDIR)\tar$O $(OBJDIR)\terminal$O $(OBJDIR)\th_main$O $(OBJDIR)\timeline$O $(OBJDIR)\tkt$O $(OBJDIR)\tktsetup$O $(OBJDIR)\undo$O $(OBJDIR)\unicode$O $(OBJDIR)\unversioned$O $(OBJDIR)\update$O $(OBJDIR)\url$O $(OBJDIR)\user$O $(OBJDIR)\utf8$O $(OBJDIR)\util$O $(OBJDIR)\verify$O $(OBJDIR)\vfile$O $(OBJDIR)\webmail$O $(OBJDIR)\wiki$O $(OBJDIR)\wikiformat$O $(OBJDIR)\winfile$O $(OBJDIR)\winhttp$O $(OBJDIR)\xfer$O $(OBJDIR)\xfersetup$O $(OBJDIR)\zip$O $(OBJDIR)\shell$O $(OBJDIR)\sqlite3$O $(OBJDIR)\th$O $(OBJDIR)\th_lang$O
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 ajax alerts allrepo attach backlink backoffice bag bisect blob branch browse builtin bundle cache capabilities captcha cgi checkin checkout clearsign clone comformat configure content cookies db delta deltacmd deltafunc descendants diff diffcmd dispatch doc encode etag event export extcgi file fileedit finfo foci forum fshell fusefs fuzz glob graph gzip hname hook http http_socket http_ssl http_transport import info json json_artifact json_branch json_config json_diff json_dir json_finfo json_login json_query json_report json_status json_tag json_timeline json_user json_wiki leaf loadctrl login lookslike main manifest markdown markdown_html md5 merge merge3 moderate name path piechart pivot popen pqueue printf publish purge rebuild regexp repolist report rss schema search security_audit setup setupuser sha1 sha1hard sha3 shun sitemap skins smtp sqlcmd stash stat statrep style sync tag tar terminal th_main timeline tkt tktsetup undo unicode unversioned update url user utf8 util verify vfile webmail wiki wikiformat winfile winhttp wysiwyg xfer xfersetup zip shell sqlite3 th th_lang > $@
54
+ +echo add ajax alerts allrepo attach backlink backoffice bag bisect blob branch browse builtin bundle cache capabilities captcha cgi checkin checkout clearsign clone comformat configure content cookies db delta deltacmd deltafunc descendants diff diffcmd dispatch doc encode etag event export extcgi file fileedit finfo foci forum fshell fusefs fuzz glob graph gzip hname hook http http_socket http_ssl http_transport import info json json_artifact json_branch json_config json_diff json_dir json_finfo json_login json_query json_report json_status json_tag json_timeline json_user json_wiki leaf loadctrl login lookslike main manifest markdown markdown_html md5 merge merge3 moderate name path piechart pivot popen pqueue printf publish purge rebuild regexp repolist report rss schema search security_audit setup setupuser sha1 sha1hard sha3 shun sitemap skins smtp sqlcmd stash stat statrep style sync tag tar terminal th_main timeline tkt tktsetup undo unicode unversioned update url user utf8 util verify vfile webmail wiki wikiformat winfile winhttp xfer xfersetup zip shell sqlite3 th th_lang > $@
5555
+echo fossil >> $@
5656
+echo fossil >> $@
5757
+echo $(LIBS) >> $@
5858
+echo. >> $@
5959
+echo fossil >> $@
@@ -962,16 +962,10 @@
962962
$(TCC) -o$@ -c winhttp_.c
963963
964964
winhttp_.c : $(SRCDIR)\winhttp.c
965965
+translate$E $** > $@
966966
967
-$(OBJDIR)\wysiwyg$O : wysiwyg_.c wysiwyg.h
968
- $(TCC) -o$@ -c wysiwyg_.c
969
-
970
-wysiwyg_.c : $(SRCDIR)\wysiwyg.c
971
- +translate$E $** > $@
972
-
973967
$(OBJDIR)\xfer$O : xfer_.c xfer.h
974968
$(TCC) -o$@ -c xfer_.c
975969
976970
xfer_.c : $(SRCDIR)\xfer.c
977971
+translate$E $** > $@
@@ -987,7 +981,7 @@
987981
988982
zip_.c : $(SRCDIR)\zip.c
989983
+translate$E $** > $@
990984
991985
headers: makeheaders$E page_index.h builtin_data.h VERSION.h
992
- +makeheaders$E add_.c:add.h ajax_.c:ajax.h alerts_.c:alerts.h allrepo_.c:allrepo.h attach_.c:attach.h backlink_.c:backlink.h backoffice_.c:backoffice.h bag_.c:bag.h bisect_.c:bisect.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.h builtin_.c:builtin.h bundle_.c:bundle.h cache_.c:cache.h capabilities_.c:capabilities.h captcha_.c:captcha.h cgi_.c:cgi.h checkin_.c:checkin.h checkout_.c:checkout.h clearsign_.c:clearsign.h clone_.c:clone.h comformat_.c:comformat.h configure_.c:configure.h content_.c:content.h cookies_.c:cookies.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h deltafunc_.c:deltafunc.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h dispatch_.c:dispatch.h doc_.c:doc.h encode_.c:encode.h etag_.c:etag.h event_.c:event.h export_.c:export.h extcgi_.c:extcgi.h file_.c:file.h fileedit_.c:fileedit.h finfo_.c:finfo.h foci_.c:foci.h forum_.c:forum.h fshell_.c:fshell.h fusefs_.c:fusefs.h fuzz_.c:fuzz.h glob_.c:glob.h graph_.c:graph.h gzip_.c:gzip.h hname_.c:hname.h hook_.c:hook.h http_.c:http.h http_socket_.c:http_socket.h http_ssl_.c:http_ssl.h http_transport_.c:http_transport.h import_.c:import.h info_.c:info.h json_.c:json.h json_artifact_.c:json_artifact.h json_branch_.c:json_branch.h json_config_.c:json_config.h json_diff_.c:json_diff.h json_dir_.c:json_dir.h json_finfo_.c:json_finfo.h json_login_.c:json_login.h json_query_.c:json_query.h json_report_.c:json_report.h json_status_.c:json_status.h json_tag_.c:json_tag.h json_timeline_.c:json_timeline.h json_user_.c:json_user.h json_wiki_.c:json_wiki.h leaf_.c:leaf.h loadctrl_.c:loadctrl.h login_.c:login.h lookslike_.c:lookslike.h main_.c:main.h manifest_.c:manifest.h markdown_.c:markdown.h markdown_html_.c:markdown_html.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h moderate_.c:moderate.h name_.c:name.h path_.c:path.h piechart_.c:piechart.h pivot_.c:pivot.h popen_.c:popen.h pqueue_.c:pqueue.h printf_.c:printf.h publish_.c:publish.h purge_.c:purge.h rebuild_.c:rebuild.h regexp_.c:regexp.h repolist_.c:repolist.h report_.c:report.h rss_.c:rss.h schema_.c:schema.h search_.c:search.h security_audit_.c:security_audit.h setup_.c:setup.h setupuser_.c:setupuser.h sha1_.c:sha1.h sha1hard_.c:sha1hard.h sha3_.c:sha3.h shun_.c:shun.h sitemap_.c:sitemap.h skins_.c:skins.h smtp_.c:smtp.h sqlcmd_.c:sqlcmd.h stash_.c:stash.h stat_.c:stat.h statrep_.c:statrep.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tar_.c:tar.h terminal_.c:terminal.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktsetup_.c:tktsetup.h undo_.c:undo.h unicode_.c:unicode.h unversioned_.c:unversioned.h update_.c:update.h url_.c:url.h user_.c:user.h utf8_.c:utf8.h util_.c:util.h verify_.c:verify.h vfile_.c:vfile.h webmail_.c:webmail.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h winfile_.c:winfile.h winhttp_.c:winhttp.h wysiwyg_.c:wysiwyg.h xfer_.c:xfer.h xfersetup_.c:xfersetup.h zip_.c:zip.h $(SRCDIR)\sqlite3.h $(SRCDIR)\th.h VERSION.h $(SRCDIR)\cson_amalgamation.h
986
+ +makeheaders$E add_.c:add.h ajax_.c:ajax.h alerts_.c:alerts.h allrepo_.c:allrepo.h attach_.c:attach.h backlink_.c:backlink.h backoffice_.c:backoffice.h bag_.c:bag.h bisect_.c:bisect.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.h builtin_.c:builtin.h bundle_.c:bundle.h cache_.c:cache.h capabilities_.c:capabilities.h captcha_.c:captcha.h cgi_.c:cgi.h checkin_.c:checkin.h checkout_.c:checkout.h clearsign_.c:clearsign.h clone_.c:clone.h comformat_.c:comformat.h configure_.c:configure.h content_.c:content.h cookies_.c:cookies.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h deltafunc_.c:deltafunc.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h dispatch_.c:dispatch.h doc_.c:doc.h encode_.c:encode.h etag_.c:etag.h event_.c:event.h export_.c:export.h extcgi_.c:extcgi.h file_.c:file.h fileedit_.c:fileedit.h finfo_.c:finfo.h foci_.c:foci.h forum_.c:forum.h fshell_.c:fshell.h fusefs_.c:fusefs.h fuzz_.c:fuzz.h glob_.c:glob.h graph_.c:graph.h gzip_.c:gzip.h hname_.c:hname.h hook_.c:hook.h http_.c:http.h http_socket_.c:http_socket.h http_ssl_.c:http_ssl.h http_transport_.c:http_transport.h import_.c:import.h info_.c:info.h json_.c:json.h json_artifact_.c:json_artifact.h json_branch_.c:json_branch.h json_config_.c:json_config.h json_diff_.c:json_diff.h json_dir_.c:json_dir.h json_finfo_.c:json_finfo.h json_login_.c:json_login.h json_query_.c:json_query.h json_report_.c:json_report.h json_status_.c:json_status.h json_tag_.c:json_tag.h json_timeline_.c:json_timeline.h json_user_.c:json_user.h json_wiki_.c:json_wiki.h leaf_.c:leaf.h loadctrl_.c:loadctrl.h login_.c:login.h lookslike_.c:lookslike.h main_.c:main.h manifest_.c:manifest.h markdown_.c:markdown.h markdown_html_.c:markdown_html.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h moderate_.c:moderate.h name_.c:name.h path_.c:path.h piechart_.c:piechart.h pivot_.c:pivot.h popen_.c:popen.h pqueue_.c:pqueue.h printf_.c:printf.h publish_.c:publish.h purge_.c:purge.h rebuild_.c:rebuild.h regexp_.c:regexp.h repolist_.c:repolist.h report_.c:report.h rss_.c:rss.h schema_.c:schema.h search_.c:search.h security_audit_.c:security_audit.h setup_.c:setup.h setupuser_.c:setupuser.h sha1_.c:sha1.h sha1hard_.c:sha1hard.h sha3_.c:sha3.h shun_.c:shun.h sitemap_.c:sitemap.h skins_.c:skins.h smtp_.c:smtp.h sqlcmd_.c:sqlcmd.h stash_.c:stash.h stat_.c:stat.h statrep_.c:statrep.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tar_.c:tar.h terminal_.c:terminal.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktsetup_.c:tktsetup.h undo_.c:undo.h unicode_.c:unicode.h unversioned_.c:unversioned.h update_.c:update.h url_.c:url.h user_.c:user.h utf8_.c:utf8.h util_.c:util.h verify_.c:verify.h vfile_.c:vfile.h webmail_.c:webmail.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h winfile_.c:winfile.h winhttp_.c:winhttp.h xfer_.c:xfer.h xfersetup_.c:xfersetup.h zip_.c:zip.h $(SRCDIR)\sqlite3.h $(SRCDIR)\th.h VERSION.h $(SRCDIR)\cson_amalgamation.h
993987
@copy /Y nul: headers
994988
--- win/Makefile.dmc
+++ win/Makefile.dmc
@@ -28,13 +28,13 @@
28
29 SQLITE_OPTIONS = -DNDEBUG=1 -DSQLITE_DQS=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_TRUSTED_SCHEMA=0
30
31 SHELL_OPTIONS = -DNDEBUG=1 -DSQLITE_DQS=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_TRUSTED_SCHEMA=0 -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 ajax_.c alerts_.c allrepo_.c attach_.c backlink_.c backoffice_.c bag_.c bisect_.c blob_.c branch_.c browse_.c builtin_.c bundle_.c cache_.c capabilities_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c cookies_.c db_.c delta_.c deltacmd_.c deltafunc_.c descendants_.c diff_.c diffcmd_.c dispatch_.c doc_.c encode_.c etag_.c event_.c export_.c extcgi_.c file_.c fileedit_.c finfo_.c foci_.c forum_.c fshell_.c fusefs_.c fuzz_.c glob_.c graph_.c gzip_.c hname_.c hook_.c http_.c http_socket_.c http_ssl_.c http_transport_.c import_.c info_.c json_.c json_artifact_.c json_branch_.c json_config_.c json_diff_.c json_dir_.c json_finfo_.c json_login_.c json_query_.c json_report_.c json_status_.c json_tag_.c json_timeline_.c json_user_.c json_wiki_.c leaf_.c loadctrl_.c login_.c lookslike_.c main_.c manifest_.c markdown_.c markdown_html_.c md5_.c merge_.c merge3_.c moderate_.c name_.c path_.c piechart_.c pivot_.c popen_.c pqueue_.c printf_.c publish_.c purge_.c rebuild_.c regexp_.c repolist_.c report_.c rss_.c schema_.c search_.c security_audit_.c setup_.c setupuser_.c sha1_.c sha1hard_.c sha3_.c shun_.c sitemap_.c skins_.c smtp_.c sqlcmd_.c stash_.c stat_.c statrep_.c style_.c sync_.c tag_.c tar_.c terminal_.c th_main_.c timeline_.c tkt_.c tktsetup_.c undo_.c unicode_.c unversioned_.c update_.c url_.c user_.c utf8_.c util_.c verify_.c vfile_.c webmail_.c wiki_.c wikiformat_.c winfile_.c winhttp_.c wysiwyg_.c xfer_.c xfersetup_.c zip_.c
34
35 OBJ = $(OBJDIR)\add$O $(OBJDIR)\ajax$O $(OBJDIR)\alerts$O $(OBJDIR)\allrepo$O $(OBJDIR)\attach$O $(OBJDIR)\backlink$O $(OBJDIR)\backoffice$O $(OBJDIR)\bag$O $(OBJDIR)\bisect$O $(OBJDIR)\blob$O $(OBJDIR)\branch$O $(OBJDIR)\browse$O $(OBJDIR)\builtin$O $(OBJDIR)\bundle$O $(OBJDIR)\cache$O $(OBJDIR)\capabilities$O $(OBJDIR)\captcha$O $(OBJDIR)\cgi$O $(OBJDIR)\checkin$O $(OBJDIR)\checkout$O $(OBJDIR)\clearsign$O $(OBJDIR)\clone$O $(OBJDIR)\comformat$O $(OBJDIR)\configure$O $(OBJDIR)\content$O $(OBJDIR)\cookies$O $(OBJDIR)\db$O $(OBJDIR)\delta$O $(OBJDIR)\deltacmd$O $(OBJDIR)\deltafunc$O $(OBJDIR)\descendants$O $(OBJDIR)\diff$O $(OBJDIR)\diffcmd$O $(OBJDIR)\dispatch$O $(OBJDIR)\doc$O $(OBJDIR)\encode$O $(OBJDIR)\etag$O $(OBJDIR)\event$O $(OBJDIR)\export$O $(OBJDIR)\extcgi$O $(OBJDIR)\file$O $(OBJDIR)\fileedit$O $(OBJDIR)\finfo$O $(OBJDIR)\foci$O $(OBJDIR)\forum$O $(OBJDIR)\fshell$O $(OBJDIR)\fusefs$O $(OBJDIR)\fuzz$O $(OBJDIR)\glob$O $(OBJDIR)\graph$O $(OBJDIR)\gzip$O $(OBJDIR)\hname$O $(OBJDIR)\hook$O $(OBJDIR)\http$O $(OBJDIR)\http_socket$O $(OBJDIR)\http_ssl$O $(OBJDIR)\http_transport$O $(OBJDIR)\import$O $(OBJDIR)\info$O $(OBJDIR)\json$O $(OBJDIR)\json_artifact$O $(OBJDIR)\json_branch$O $(OBJDIR)\json_config$O $(OBJDIR)\json_diff$O $(OBJDIR)\json_dir$O $(OBJDIR)\json_finfo$O $(OBJDIR)\json_login$O $(OBJDIR)\json_query$O $(OBJDIR)\json_report$O $(OBJDIR)\json_status$O $(OBJDIR)\json_tag$O $(OBJDIR)\json_timeline$O $(OBJDIR)\json_user$O $(OBJDIR)\json_wiki$O $(OBJDIR)\leaf$O $(OBJDIR)\loadctrl$O $(OBJDIR)\login$O $(OBJDIR)\lookslike$O $(OBJDIR)\main$O $(OBJDIR)\manifest$O $(OBJDIR)\markdown$O $(OBJDIR)\markdown_html$O $(OBJDIR)\md5$O $(OBJDIR)\merge$O $(OBJDIR)\merge3$O $(OBJDIR)\moderate$O $(OBJDIR)\name$O $(OBJDIR)\path$O $(OBJDIR)\piechart$O $(OBJDIR)\pivot$O $(OBJDIR)\popen$O $(OBJDIR)\pqueue$O $(OBJDIR)\printf$O $(OBJDIR)\publish$O $(OBJDIR)\purge$O $(OBJDIR)\rebuild$O $(OBJDIR)\regexp$O $(OBJDIR)\repolist$O $(OBJDIR)\report$O $(OBJDIR)\rss$O $(OBJDIR)\schema$O $(OBJDIR)\search$O $(OBJDIR)\security_audit$O $(OBJDIR)\setup$O $(OBJDIR)\setupuser$O $(OBJDIR)\sha1$O $(OBJDIR)\sha1hard$O $(OBJDIR)\sha3$O $(OBJDIR)\shun$O $(OBJDIR)\sitemap$O $(OBJDIR)\skins$O $(OBJDIR)\smtp$O $(OBJDIR)\sqlcmd$O $(OBJDIR)\stash$O $(OBJDIR)\stat$O $(OBJDIR)\statrep$O $(OBJDIR)\style$O $(OBJDIR)\sync$O $(OBJDIR)\tag$O $(OBJDIR)\tar$O $(OBJDIR)\terminal$O $(OBJDIR)\th_main$O $(OBJDIR)\timeline$O $(OBJDIR)\tkt$O $(OBJDIR)\tktsetup$O $(OBJDIR)\undo$O $(OBJDIR)\unicode$O $(OBJDIR)\unversioned$O $(OBJDIR)\update$O $(OBJDIR)\url$O $(OBJDIR)\user$O $(OBJDIR)\utf8$O $(OBJDIR)\util$O $(OBJDIR)\verify$O $(OBJDIR)\vfile$O $(OBJDIR)\webmail$O $(OBJDIR)\wiki$O $(OBJDIR)\wikiformat$O $(OBJDIR)\winfile$O $(OBJDIR)\winhttp$O $(OBJDIR)\wysiwyg$O $(OBJDIR)\xfer$O $(OBJDIR)\xfersetup$O $(OBJDIR)\zip$O $(OBJDIR)\shell$O $(OBJDIR)\sqlite3$O $(OBJDIR)\th$O $(OBJDIR)\th_lang$O
36
37
38 RC=$(DMDIR)\bin\rcc
39 RCFLAGS=-32 -w1 -I$(SRCDIR) /D__DMC__
40
@@ -49,11 +49,11 @@
49
50 $(OBJDIR)\fossil.res: $B\win\fossil.rc
51 $(RC) $(RCFLAGS) -o$@ $**
52
53 $(OBJDIR)\link: $B\win\Makefile.dmc $(OBJDIR)\fossil.res
54 +echo add ajax alerts allrepo attach backlink backoffice bag bisect blob branch browse builtin bundle cache capabilities captcha cgi checkin checkout clearsign clone comformat configure content cookies db delta deltacmd deltafunc descendants diff diffcmd dispatch doc encode etag event export extcgi file fileedit finfo foci forum fshell fusefs fuzz glob graph gzip hname hook http http_socket http_ssl http_transport import info json json_artifact json_branch json_config json_diff json_dir json_finfo json_login json_query json_report json_status json_tag json_timeline json_user json_wiki leaf loadctrl login lookslike main manifest markdown markdown_html md5 merge merge3 moderate name path piechart pivot popen pqueue printf publish purge rebuild regexp repolist report rss schema search security_audit setup setupuser sha1 sha1hard sha3 shun sitemap skins smtp sqlcmd stash stat statrep style sync tag tar terminal th_main timeline tkt tktsetup undo unicode unversioned update url user utf8 util verify vfile webmail wiki wikiformat winfile winhttp wysiwyg xfer xfersetup zip shell sqlite3 th th_lang > $@
55 +echo fossil >> $@
56 +echo fossil >> $@
57 +echo $(LIBS) >> $@
58 +echo. >> $@
59 +echo fossil >> $@
@@ -962,16 +962,10 @@
962 $(TCC) -o$@ -c winhttp_.c
963
964 winhttp_.c : $(SRCDIR)\winhttp.c
965 +translate$E $** > $@
966
967 $(OBJDIR)\wysiwyg$O : wysiwyg_.c wysiwyg.h
968 $(TCC) -o$@ -c wysiwyg_.c
969
970 wysiwyg_.c : $(SRCDIR)\wysiwyg.c
971 +translate$E $** > $@
972
973 $(OBJDIR)\xfer$O : xfer_.c xfer.h
974 $(TCC) -o$@ -c xfer_.c
975
976 xfer_.c : $(SRCDIR)\xfer.c
977 +translate$E $** > $@
@@ -987,7 +981,7 @@
987
988 zip_.c : $(SRCDIR)\zip.c
989 +translate$E $** > $@
990
991 headers: makeheaders$E page_index.h builtin_data.h VERSION.h
992 +makeheaders$E add_.c:add.h ajax_.c:ajax.h alerts_.c:alerts.h allrepo_.c:allrepo.h attach_.c:attach.h backlink_.c:backlink.h backoffice_.c:backoffice.h bag_.c:bag.h bisect_.c:bisect.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.h builtin_.c:builtin.h bundle_.c:bundle.h cache_.c:cache.h capabilities_.c:capabilities.h captcha_.c:captcha.h cgi_.c:cgi.h checkin_.c:checkin.h checkout_.c:checkout.h clearsign_.c:clearsign.h clone_.c:clone.h comformat_.c:comformat.h configure_.c:configure.h content_.c:content.h cookies_.c:cookies.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h deltafunc_.c:deltafunc.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h dispatch_.c:dispatch.h doc_.c:doc.h encode_.c:encode.h etag_.c:etag.h event_.c:event.h export_.c:export.h extcgi_.c:extcgi.h file_.c:file.h fileedit_.c:fileedit.h finfo_.c:finfo.h foci_.c:foci.h forum_.c:forum.h fshell_.c:fshell.h fusefs_.c:fusefs.h fuzz_.c:fuzz.h glob_.c:glob.h graph_.c:graph.h gzip_.c:gzip.h hname_.c:hname.h hook_.c:hook.h http_.c:http.h http_socket_.c:http_socket.h http_ssl_.c:http_ssl.h http_transport_.c:http_transport.h import_.c:import.h info_.c:info.h json_.c:json.h json_artifact_.c:json_artifact.h json_branch_.c:json_branch.h json_config_.c:json_config.h json_diff_.c:json_diff.h json_dir_.c:json_dir.h json_finfo_.c:json_finfo.h json_login_.c:json_login.h json_query_.c:json_query.h json_report_.c:json_report.h json_status_.c:json_status.h json_tag_.c:json_tag.h json_timeline_.c:json_timeline.h json_user_.c:json_user.h json_wiki_.c:json_wiki.h leaf_.c:leaf.h loadctrl_.c:loadctrl.h login_.c:login.h lookslike_.c:lookslike.h main_.c:main.h manifest_.c:manifest.h markdown_.c:markdown.h markdown_html_.c:markdown_html.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h moderate_.c:moderate.h name_.c:name.h path_.c:path.h piechart_.c:piechart.h pivot_.c:pivot.h popen_.c:popen.h pqueue_.c:pqueue.h printf_.c:printf.h publish_.c:publish.h purge_.c:purge.h rebuild_.c:rebuild.h regexp_.c:regexp.h repolist_.c:repolist.h report_.c:report.h rss_.c:rss.h schema_.c:schema.h search_.c:search.h security_audit_.c:security_audit.h setup_.c:setup.h setupuser_.c:setupuser.h sha1_.c:sha1.h sha1hard_.c:sha1hard.h sha3_.c:sha3.h shun_.c:shun.h sitemap_.c:sitemap.h skins_.c:skins.h smtp_.c:smtp.h sqlcmd_.c:sqlcmd.h stash_.c:stash.h stat_.c:stat.h statrep_.c:statrep.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tar_.c:tar.h terminal_.c:terminal.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktsetup_.c:tktsetup.h undo_.c:undo.h unicode_.c:unicode.h unversioned_.c:unversioned.h update_.c:update.h url_.c:url.h user_.c:user.h utf8_.c:utf8.h util_.c:util.h verify_.c:verify.h vfile_.c:vfile.h webmail_.c:webmail.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h winfile_.c:winfile.h winhttp_.c:winhttp.h wysiwyg_.c:wysiwyg.h xfer_.c:xfer.h xfersetup_.c:xfersetup.h zip_.c:zip.h $(SRCDIR)\sqlite3.h $(SRCDIR)\th.h VERSION.h $(SRCDIR)\cson_amalgamation.h
993 @copy /Y nul: headers
994
--- win/Makefile.dmc
+++ win/Makefile.dmc
@@ -28,13 +28,13 @@
28
29 SQLITE_OPTIONS = -DNDEBUG=1 -DSQLITE_DQS=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_TRUSTED_SCHEMA=0
30
31 SHELL_OPTIONS = -DNDEBUG=1 -DSQLITE_DQS=0 -DSQLITE_THREADSAFE=0 -DSQLITE_DEFAULT_MEMSTATUS=0 -DSQLITE_DEFAULT_WAL_SYNCHRONOUS=1 -DSQLITE_LIKE_DOESNT_MATCH_BLOBS -DSQLITE_OMIT_DECLTYPE -DSQLITE_OMIT_DEPRECATED -DSQLITE_OMIT_PROGRESS_CALLBACK -DSQLITE_OMIT_SHARED_CACHE -DSQLITE_OMIT_LOAD_EXTENSION -DSQLITE_MAX_EXPR_DEPTH=0 -DSQLITE_USE_ALLOCA -DSQLITE_ENABLE_LOCKING_STYLE=0 -DSQLITE_DEFAULT_FILE_FORMAT=4 -DSQLITE_ENABLE_EXPLAIN_COMMENTS -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_DBSTAT_VTAB -DSQLITE_ENABLE_JSON1 -DSQLITE_ENABLE_FTS5 -DSQLITE_ENABLE_STMTVTAB -DSQLITE_HAVE_ZLIB -DSQLITE_INTROSPECTION_PRAGMAS -DSQLITE_ENABLE_DBPAGE_VTAB -DSQLITE_TRUSTED_SCHEMA=0 -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 ajax_.c alerts_.c allrepo_.c attach_.c backlink_.c backoffice_.c bag_.c bisect_.c blob_.c branch_.c browse_.c builtin_.c bundle_.c cache_.c capabilities_.c captcha_.c cgi_.c checkin_.c checkout_.c clearsign_.c clone_.c comformat_.c configure_.c content_.c cookies_.c db_.c delta_.c deltacmd_.c deltafunc_.c descendants_.c diff_.c diffcmd_.c dispatch_.c doc_.c encode_.c etag_.c event_.c export_.c extcgi_.c file_.c fileedit_.c finfo_.c foci_.c forum_.c fshell_.c fusefs_.c fuzz_.c glob_.c graph_.c gzip_.c hname_.c hook_.c http_.c http_socket_.c http_ssl_.c http_transport_.c import_.c info_.c json_.c json_artifact_.c json_branch_.c json_config_.c json_diff_.c json_dir_.c json_finfo_.c json_login_.c json_query_.c json_report_.c json_status_.c json_tag_.c json_timeline_.c json_user_.c json_wiki_.c leaf_.c loadctrl_.c login_.c lookslike_.c main_.c manifest_.c markdown_.c markdown_html_.c md5_.c merge_.c merge3_.c moderate_.c name_.c path_.c piechart_.c pivot_.c popen_.c pqueue_.c printf_.c publish_.c purge_.c rebuild_.c regexp_.c repolist_.c report_.c rss_.c schema_.c search_.c security_audit_.c setup_.c setupuser_.c sha1_.c sha1hard_.c sha3_.c shun_.c sitemap_.c skins_.c smtp_.c sqlcmd_.c stash_.c stat_.c statrep_.c style_.c sync_.c tag_.c tar_.c terminal_.c th_main_.c timeline_.c tkt_.c tktsetup_.c undo_.c unicode_.c unversioned_.c update_.c url_.c user_.c utf8_.c util_.c verify_.c vfile_.c webmail_.c wiki_.c wikiformat_.c winfile_.c winhttp_.c xfer_.c xfersetup_.c zip_.c
34
35 OBJ = $(OBJDIR)\add$O $(OBJDIR)\ajax$O $(OBJDIR)\alerts$O $(OBJDIR)\allrepo$O $(OBJDIR)\attach$O $(OBJDIR)\backlink$O $(OBJDIR)\backoffice$O $(OBJDIR)\bag$O $(OBJDIR)\bisect$O $(OBJDIR)\blob$O $(OBJDIR)\branch$O $(OBJDIR)\browse$O $(OBJDIR)\builtin$O $(OBJDIR)\bundle$O $(OBJDIR)\cache$O $(OBJDIR)\capabilities$O $(OBJDIR)\captcha$O $(OBJDIR)\cgi$O $(OBJDIR)\checkin$O $(OBJDIR)\checkout$O $(OBJDIR)\clearsign$O $(OBJDIR)\clone$O $(OBJDIR)\comformat$O $(OBJDIR)\configure$O $(OBJDIR)\content$O $(OBJDIR)\cookies$O $(OBJDIR)\db$O $(OBJDIR)\delta$O $(OBJDIR)\deltacmd$O $(OBJDIR)\deltafunc$O $(OBJDIR)\descendants$O $(OBJDIR)\diff$O $(OBJDIR)\diffcmd$O $(OBJDIR)\dispatch$O $(OBJDIR)\doc$O $(OBJDIR)\encode$O $(OBJDIR)\etag$O $(OBJDIR)\event$O $(OBJDIR)\export$O $(OBJDIR)\extcgi$O $(OBJDIR)\file$O $(OBJDIR)\fileedit$O $(OBJDIR)\finfo$O $(OBJDIR)\foci$O $(OBJDIR)\forum$O $(OBJDIR)\fshell$O $(OBJDIR)\fusefs$O $(OBJDIR)\fuzz$O $(OBJDIR)\glob$O $(OBJDIR)\graph$O $(OBJDIR)\gzip$O $(OBJDIR)\hname$O $(OBJDIR)\hook$O $(OBJDIR)\http$O $(OBJDIR)\http_socket$O $(OBJDIR)\http_ssl$O $(OBJDIR)\http_transport$O $(OBJDIR)\import$O $(OBJDIR)\info$O $(OBJDIR)\json$O $(OBJDIR)\json_artifact$O $(OBJDIR)\json_branch$O $(OBJDIR)\json_config$O $(OBJDIR)\json_diff$O $(OBJDIR)\json_dir$O $(OBJDIR)\json_finfo$O $(OBJDIR)\json_login$O $(OBJDIR)\json_query$O $(OBJDIR)\json_report$O $(OBJDIR)\json_status$O $(OBJDIR)\json_tag$O $(OBJDIR)\json_timeline$O $(OBJDIR)\json_user$O $(OBJDIR)\json_wiki$O $(OBJDIR)\leaf$O $(OBJDIR)\loadctrl$O $(OBJDIR)\login$O $(OBJDIR)\lookslike$O $(OBJDIR)\main$O $(OBJDIR)\manifest$O $(OBJDIR)\markdown$O $(OBJDIR)\markdown_html$O $(OBJDIR)\md5$O $(OBJDIR)\merge$O $(OBJDIR)\merge3$O $(OBJDIR)\moderate$O $(OBJDIR)\name$O $(OBJDIR)\path$O $(OBJDIR)\piechart$O $(OBJDIR)\pivot$O $(OBJDIR)\popen$O $(OBJDIR)\pqueue$O $(OBJDIR)\printf$O $(OBJDIR)\publish$O $(OBJDIR)\purge$O $(OBJDIR)\rebuild$O $(OBJDIR)\regexp$O $(OBJDIR)\repolist$O $(OBJDIR)\report$O $(OBJDIR)\rss$O $(OBJDIR)\schema$O $(OBJDIR)\search$O $(OBJDIR)\security_audit$O $(OBJDIR)\setup$O $(OBJDIR)\setupuser$O $(OBJDIR)\sha1$O $(OBJDIR)\sha1hard$O $(OBJDIR)\sha3$O $(OBJDIR)\shun$O $(OBJDIR)\sitemap$O $(OBJDIR)\skins$O $(OBJDIR)\smtp$O $(OBJDIR)\sqlcmd$O $(OBJDIR)\stash$O $(OBJDIR)\stat$O $(OBJDIR)\statrep$O $(OBJDIR)\style$O $(OBJDIR)\sync$O $(OBJDIR)\tag$O $(OBJDIR)\tar$O $(OBJDIR)\terminal$O $(OBJDIR)\th_main$O $(OBJDIR)\timeline$O $(OBJDIR)\tkt$O $(OBJDIR)\tktsetup$O $(OBJDIR)\undo$O $(OBJDIR)\unicode$O $(OBJDIR)\unversioned$O $(OBJDIR)\update$O $(OBJDIR)\url$O $(OBJDIR)\user$O $(OBJDIR)\utf8$O $(OBJDIR)\util$O $(OBJDIR)\verify$O $(OBJDIR)\vfile$O $(OBJDIR)\webmail$O $(OBJDIR)\wiki$O $(OBJDIR)\wikiformat$O $(OBJDIR)\winfile$O $(OBJDIR)\winhttp$O $(OBJDIR)\xfer$O $(OBJDIR)\xfersetup$O $(OBJDIR)\zip$O $(OBJDIR)\shell$O $(OBJDIR)\sqlite3$O $(OBJDIR)\th$O $(OBJDIR)\th_lang$O
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 ajax alerts allrepo attach backlink backoffice bag bisect blob branch browse builtin bundle cache capabilities captcha cgi checkin checkout clearsign clone comformat configure content cookies db delta deltacmd deltafunc descendants diff diffcmd dispatch doc encode etag event export extcgi file fileedit finfo foci forum fshell fusefs fuzz glob graph gzip hname hook http http_socket http_ssl http_transport import info json json_artifact json_branch json_config json_diff json_dir json_finfo json_login json_query json_report json_status json_tag json_timeline json_user json_wiki leaf loadctrl login lookslike main manifest markdown markdown_html md5 merge merge3 moderate name path piechart pivot popen pqueue printf publish purge rebuild regexp repolist report rss schema search security_audit setup setupuser sha1 sha1hard sha3 shun sitemap skins smtp sqlcmd stash stat statrep style sync tag tar terminal th_main timeline tkt tktsetup undo unicode unversioned update url user utf8 util verify vfile webmail wiki wikiformat winfile winhttp xfer xfersetup zip shell sqlite3 th th_lang > $@
55 +echo fossil >> $@
56 +echo fossil >> $@
57 +echo $(LIBS) >> $@
58 +echo. >> $@
59 +echo fossil >> $@
@@ -962,16 +962,10 @@
962 $(TCC) -o$@ -c winhttp_.c
963
964 winhttp_.c : $(SRCDIR)\winhttp.c
965 +translate$E $** > $@
966
 
 
 
 
 
 
967 $(OBJDIR)\xfer$O : xfer_.c xfer.h
968 $(TCC) -o$@ -c xfer_.c
969
970 xfer_.c : $(SRCDIR)\xfer.c
971 +translate$E $** > $@
@@ -987,7 +981,7 @@
981
982 zip_.c : $(SRCDIR)\zip.c
983 +translate$E $** > $@
984
985 headers: makeheaders$E page_index.h builtin_data.h VERSION.h
986 +makeheaders$E add_.c:add.h ajax_.c:ajax.h alerts_.c:alerts.h allrepo_.c:allrepo.h attach_.c:attach.h backlink_.c:backlink.h backoffice_.c:backoffice.h bag_.c:bag.h bisect_.c:bisect.h blob_.c:blob.h branch_.c:branch.h browse_.c:browse.h builtin_.c:builtin.h bundle_.c:bundle.h cache_.c:cache.h capabilities_.c:capabilities.h captcha_.c:captcha.h cgi_.c:cgi.h checkin_.c:checkin.h checkout_.c:checkout.h clearsign_.c:clearsign.h clone_.c:clone.h comformat_.c:comformat.h configure_.c:configure.h content_.c:content.h cookies_.c:cookies.h db_.c:db.h delta_.c:delta.h deltacmd_.c:deltacmd.h deltafunc_.c:deltafunc.h descendants_.c:descendants.h diff_.c:diff.h diffcmd_.c:diffcmd.h dispatch_.c:dispatch.h doc_.c:doc.h encode_.c:encode.h etag_.c:etag.h event_.c:event.h export_.c:export.h extcgi_.c:extcgi.h file_.c:file.h fileedit_.c:fileedit.h finfo_.c:finfo.h foci_.c:foci.h forum_.c:forum.h fshell_.c:fshell.h fusefs_.c:fusefs.h fuzz_.c:fuzz.h glob_.c:glob.h graph_.c:graph.h gzip_.c:gzip.h hname_.c:hname.h hook_.c:hook.h http_.c:http.h http_socket_.c:http_socket.h http_ssl_.c:http_ssl.h http_transport_.c:http_transport.h import_.c:import.h info_.c:info.h json_.c:json.h json_artifact_.c:json_artifact.h json_branch_.c:json_branch.h json_config_.c:json_config.h json_diff_.c:json_diff.h json_dir_.c:json_dir.h json_finfo_.c:json_finfo.h json_login_.c:json_login.h json_query_.c:json_query.h json_report_.c:json_report.h json_status_.c:json_status.h json_tag_.c:json_tag.h json_timeline_.c:json_timeline.h json_user_.c:json_user.h json_wiki_.c:json_wiki.h leaf_.c:leaf.h loadctrl_.c:loadctrl.h login_.c:login.h lookslike_.c:lookslike.h main_.c:main.h manifest_.c:manifest.h markdown_.c:markdown.h markdown_html_.c:markdown_html.h md5_.c:md5.h merge_.c:merge.h merge3_.c:merge3.h moderate_.c:moderate.h name_.c:name.h path_.c:path.h piechart_.c:piechart.h pivot_.c:pivot.h popen_.c:popen.h pqueue_.c:pqueue.h printf_.c:printf.h publish_.c:publish.h purge_.c:purge.h rebuild_.c:rebuild.h regexp_.c:regexp.h repolist_.c:repolist.h report_.c:report.h rss_.c:rss.h schema_.c:schema.h search_.c:search.h security_audit_.c:security_audit.h setup_.c:setup.h setupuser_.c:setupuser.h sha1_.c:sha1.h sha1hard_.c:sha1hard.h sha3_.c:sha3.h shun_.c:shun.h sitemap_.c:sitemap.h skins_.c:skins.h smtp_.c:smtp.h sqlcmd_.c:sqlcmd.h stash_.c:stash.h stat_.c:stat.h statrep_.c:statrep.h style_.c:style.h sync_.c:sync.h tag_.c:tag.h tar_.c:tar.h terminal_.c:terminal.h th_main_.c:th_main.h timeline_.c:timeline.h tkt_.c:tkt.h tktsetup_.c:tktsetup.h undo_.c:undo.h unicode_.c:unicode.h unversioned_.c:unversioned.h update_.c:update.h url_.c:url.h user_.c:user.h utf8_.c:utf8.h util_.c:util.h verify_.c:verify.h vfile_.c:vfile.h webmail_.c:webmail.h wiki_.c:wiki.h wikiformat_.c:wikiformat.h winfile_.c:winfile.h winhttp_.c:winhttp.h xfer_.c:xfer.h xfersetup_.c:xfersetup.h zip_.c:zip.h $(SRCDIR)\sqlite3.h $(SRCDIR)\th.h VERSION.h $(SRCDIR)\cson_amalgamation.h
987 @copy /Y nul: headers
988
--- win/Makefile.mingw
+++ win/Makefile.mingw
@@ -566,11 +566,10 @@
566566
$(SRCDIR)/webmail.c \
567567
$(SRCDIR)/wiki.c \
568568
$(SRCDIR)/wikiformat.c \
569569
$(SRCDIR)/winfile.c \
570570
$(SRCDIR)/winhttp.c \
571
- $(SRCDIR)/wysiwyg.c \
572571
$(SRCDIR)/xfer.c \
573572
$(SRCDIR)/xfersetup.c \
574573
$(SRCDIR)/zip.c
575574
576575
EXTRA_FILES = \
@@ -816,11 +815,10 @@
816815
$(OBJDIR)/webmail_.c \
817816
$(OBJDIR)/wiki_.c \
818817
$(OBJDIR)/wikiformat_.c \
819818
$(OBJDIR)/winfile_.c \
820819
$(OBJDIR)/winhttp_.c \
821
- $(OBJDIR)/wysiwyg_.c \
822820
$(OBJDIR)/xfer_.c \
823821
$(OBJDIR)/xfersetup_.c \
824822
$(OBJDIR)/zip_.c
825823
826824
OBJ = \
@@ -962,11 +960,10 @@
962960
$(OBJDIR)/webmail.o \
963961
$(OBJDIR)/wiki.o \
964962
$(OBJDIR)/wikiformat.o \
965963
$(OBJDIR)/winfile.o \
966964
$(OBJDIR)/winhttp.o \
967
- $(OBJDIR)/wysiwyg.o \
968965
$(OBJDIR)/xfer.o \
969966
$(OBJDIR)/xfersetup.o \
970967
$(OBJDIR)/zip.o
971968
972969
APPNAME = fossil.exe
@@ -1323,11 +1320,10 @@
13231320
$(OBJDIR)/webmail_.c:$(OBJDIR)/webmail.h \
13241321
$(OBJDIR)/wiki_.c:$(OBJDIR)/wiki.h \
13251322
$(OBJDIR)/wikiformat_.c:$(OBJDIR)/wikiformat.h \
13261323
$(OBJDIR)/winfile_.c:$(OBJDIR)/winfile.h \
13271324
$(OBJDIR)/winhttp_.c:$(OBJDIR)/winhttp.h \
1328
- $(OBJDIR)/wysiwyg_.c:$(OBJDIR)/wysiwyg.h \
13291325
$(OBJDIR)/xfer_.c:$(OBJDIR)/xfer.h \
13301326
$(OBJDIR)/xfersetup_.c:$(OBJDIR)/xfersetup.h \
13311327
$(OBJDIR)/zip_.c:$(OBJDIR)/zip.h \
13321328
$(SRCDIR)/sqlite3.h \
13331329
$(SRCDIR)/th.h \
@@ -2456,18 +2452,10 @@
24562452
$(OBJDIR)/winhttp.o: $(OBJDIR)/winhttp_.c $(OBJDIR)/winhttp.h $(SRCDIR)/config.h
24572453
$(XTCC) -o $(OBJDIR)/winhttp.o -c $(OBJDIR)/winhttp_.c
24582454
24592455
$(OBJDIR)/winhttp.h: $(OBJDIR)/headers
24602456
2461
-$(OBJDIR)/wysiwyg_.c: $(SRCDIR)/wysiwyg.c $(TRANSLATE)
2462
- $(TRANSLATE) $(SRCDIR)/wysiwyg.c >$@
2463
-
2464
-$(OBJDIR)/wysiwyg.o: $(OBJDIR)/wysiwyg_.c $(OBJDIR)/wysiwyg.h $(SRCDIR)/config.h
2465
- $(XTCC) -o $(OBJDIR)/wysiwyg.o -c $(OBJDIR)/wysiwyg_.c
2466
-
2467
-$(OBJDIR)/wysiwyg.h: $(OBJDIR)/headers
2468
-
24692457
$(OBJDIR)/xfer_.c: $(SRCDIR)/xfer.c $(TRANSLATE)
24702458
$(TRANSLATE) $(SRCDIR)/xfer.c >$@
24712459
24722460
$(OBJDIR)/xfer.o: $(OBJDIR)/xfer_.c $(OBJDIR)/xfer.h $(SRCDIR)/config.h
24732461
$(XTCC) -o $(OBJDIR)/xfer.o -c $(OBJDIR)/xfer_.c
24742462
--- win/Makefile.mingw
+++ win/Makefile.mingw
@@ -566,11 +566,10 @@
566 $(SRCDIR)/webmail.c \
567 $(SRCDIR)/wiki.c \
568 $(SRCDIR)/wikiformat.c \
569 $(SRCDIR)/winfile.c \
570 $(SRCDIR)/winhttp.c \
571 $(SRCDIR)/wysiwyg.c \
572 $(SRCDIR)/xfer.c \
573 $(SRCDIR)/xfersetup.c \
574 $(SRCDIR)/zip.c
575
576 EXTRA_FILES = \
@@ -816,11 +815,10 @@
816 $(OBJDIR)/webmail_.c \
817 $(OBJDIR)/wiki_.c \
818 $(OBJDIR)/wikiformat_.c \
819 $(OBJDIR)/winfile_.c \
820 $(OBJDIR)/winhttp_.c \
821 $(OBJDIR)/wysiwyg_.c \
822 $(OBJDIR)/xfer_.c \
823 $(OBJDIR)/xfersetup_.c \
824 $(OBJDIR)/zip_.c
825
826 OBJ = \
@@ -962,11 +960,10 @@
962 $(OBJDIR)/webmail.o \
963 $(OBJDIR)/wiki.o \
964 $(OBJDIR)/wikiformat.o \
965 $(OBJDIR)/winfile.o \
966 $(OBJDIR)/winhttp.o \
967 $(OBJDIR)/wysiwyg.o \
968 $(OBJDIR)/xfer.o \
969 $(OBJDIR)/xfersetup.o \
970 $(OBJDIR)/zip.o
971
972 APPNAME = fossil.exe
@@ -1323,11 +1320,10 @@
1323 $(OBJDIR)/webmail_.c:$(OBJDIR)/webmail.h \
1324 $(OBJDIR)/wiki_.c:$(OBJDIR)/wiki.h \
1325 $(OBJDIR)/wikiformat_.c:$(OBJDIR)/wikiformat.h \
1326 $(OBJDIR)/winfile_.c:$(OBJDIR)/winfile.h \
1327 $(OBJDIR)/winhttp_.c:$(OBJDIR)/winhttp.h \
1328 $(OBJDIR)/wysiwyg_.c:$(OBJDIR)/wysiwyg.h \
1329 $(OBJDIR)/xfer_.c:$(OBJDIR)/xfer.h \
1330 $(OBJDIR)/xfersetup_.c:$(OBJDIR)/xfersetup.h \
1331 $(OBJDIR)/zip_.c:$(OBJDIR)/zip.h \
1332 $(SRCDIR)/sqlite3.h \
1333 $(SRCDIR)/th.h \
@@ -2456,18 +2452,10 @@
2456 $(OBJDIR)/winhttp.o: $(OBJDIR)/winhttp_.c $(OBJDIR)/winhttp.h $(SRCDIR)/config.h
2457 $(XTCC) -o $(OBJDIR)/winhttp.o -c $(OBJDIR)/winhttp_.c
2458
2459 $(OBJDIR)/winhttp.h: $(OBJDIR)/headers
2460
2461 $(OBJDIR)/wysiwyg_.c: $(SRCDIR)/wysiwyg.c $(TRANSLATE)
2462 $(TRANSLATE) $(SRCDIR)/wysiwyg.c >$@
2463
2464 $(OBJDIR)/wysiwyg.o: $(OBJDIR)/wysiwyg_.c $(OBJDIR)/wysiwyg.h $(SRCDIR)/config.h
2465 $(XTCC) -o $(OBJDIR)/wysiwyg.o -c $(OBJDIR)/wysiwyg_.c
2466
2467 $(OBJDIR)/wysiwyg.h: $(OBJDIR)/headers
2468
2469 $(OBJDIR)/xfer_.c: $(SRCDIR)/xfer.c $(TRANSLATE)
2470 $(TRANSLATE) $(SRCDIR)/xfer.c >$@
2471
2472 $(OBJDIR)/xfer.o: $(OBJDIR)/xfer_.c $(OBJDIR)/xfer.h $(SRCDIR)/config.h
2473 $(XTCC) -o $(OBJDIR)/xfer.o -c $(OBJDIR)/xfer_.c
2474
--- win/Makefile.mingw
+++ win/Makefile.mingw
@@ -566,11 +566,10 @@
566 $(SRCDIR)/webmail.c \
567 $(SRCDIR)/wiki.c \
568 $(SRCDIR)/wikiformat.c \
569 $(SRCDIR)/winfile.c \
570 $(SRCDIR)/winhttp.c \
 
571 $(SRCDIR)/xfer.c \
572 $(SRCDIR)/xfersetup.c \
573 $(SRCDIR)/zip.c
574
575 EXTRA_FILES = \
@@ -816,11 +815,10 @@
815 $(OBJDIR)/webmail_.c \
816 $(OBJDIR)/wiki_.c \
817 $(OBJDIR)/wikiformat_.c \
818 $(OBJDIR)/winfile_.c \
819 $(OBJDIR)/winhttp_.c \
 
820 $(OBJDIR)/xfer_.c \
821 $(OBJDIR)/xfersetup_.c \
822 $(OBJDIR)/zip_.c
823
824 OBJ = \
@@ -962,11 +960,10 @@
960 $(OBJDIR)/webmail.o \
961 $(OBJDIR)/wiki.o \
962 $(OBJDIR)/wikiformat.o \
963 $(OBJDIR)/winfile.o \
964 $(OBJDIR)/winhttp.o \
 
965 $(OBJDIR)/xfer.o \
966 $(OBJDIR)/xfersetup.o \
967 $(OBJDIR)/zip.o
968
969 APPNAME = fossil.exe
@@ -1323,11 +1320,10 @@
1320 $(OBJDIR)/webmail_.c:$(OBJDIR)/webmail.h \
1321 $(OBJDIR)/wiki_.c:$(OBJDIR)/wiki.h \
1322 $(OBJDIR)/wikiformat_.c:$(OBJDIR)/wikiformat.h \
1323 $(OBJDIR)/winfile_.c:$(OBJDIR)/winfile.h \
1324 $(OBJDIR)/winhttp_.c:$(OBJDIR)/winhttp.h \
 
1325 $(OBJDIR)/xfer_.c:$(OBJDIR)/xfer.h \
1326 $(OBJDIR)/xfersetup_.c:$(OBJDIR)/xfersetup.h \
1327 $(OBJDIR)/zip_.c:$(OBJDIR)/zip.h \
1328 $(SRCDIR)/sqlite3.h \
1329 $(SRCDIR)/th.h \
@@ -2456,18 +2452,10 @@
2452 $(OBJDIR)/winhttp.o: $(OBJDIR)/winhttp_.c $(OBJDIR)/winhttp.h $(SRCDIR)/config.h
2453 $(XTCC) -o $(OBJDIR)/winhttp.o -c $(OBJDIR)/winhttp_.c
2454
2455 $(OBJDIR)/winhttp.h: $(OBJDIR)/headers
2456
 
 
 
 
 
 
 
 
2457 $(OBJDIR)/xfer_.c: $(SRCDIR)/xfer.c $(TRANSLATE)
2458 $(TRANSLATE) $(SRCDIR)/xfer.c >$@
2459
2460 $(OBJDIR)/xfer.o: $(OBJDIR)/xfer_.c $(OBJDIR)/xfer.h $(SRCDIR)/config.h
2461 $(XTCC) -o $(OBJDIR)/xfer.o -c $(OBJDIR)/xfer_.c
2462
--- win/Makefile.msc
+++ win/Makefile.msc
@@ -488,11 +488,10 @@
488488
"$(OX)\webmail_.c" \
489489
"$(OX)\wiki_.c" \
490490
"$(OX)\wikiformat_.c" \
491491
"$(OX)\winfile_.c" \
492492
"$(OX)\winhttp_.c" \
493
- "$(OX)\wysiwyg_.c" \
494493
"$(OX)\xfer_.c" \
495494
"$(OX)\xfersetup_.c" \
496495
"$(OX)\zip_.c"
497496
498497
EXTRA_FILES = "$(SRCDIR)\..\skins\aht\details.txt" \
@@ -742,11 +741,10 @@
742741
"$(OX)\webmail$O" \
743742
"$(OX)\wiki$O" \
744743
"$(OX)\wikiformat$O" \
745744
"$(OX)\winfile$O" \
746745
"$(OX)\winhttp$O" \
747
- "$(OX)\wysiwyg$O" \
748746
"$(OX)\xfer$O" \
749747
"$(OX)\xfersetup$O" \
750748
"$(OX)\zip$O" \
751749
!if $(FOSSIL_ENABLE_MINIZ)!=0
752750
"$(OX)\miniz$O" \
@@ -969,11 +967,10 @@
969967
echo "$(OX)\webmail.obj" >> $@
970968
echo "$(OX)\wiki.obj" >> $@
971969
echo "$(OX)\wikiformat.obj" >> $@
972970
echo "$(OX)\winfile.obj" >> $@
973971
echo "$(OX)\winhttp.obj" >> $@
974
- echo "$(OX)\wysiwyg.obj" >> $@
975972
echo "$(OX)\xfer.obj" >> $@
976973
echo "$(OX)\xfersetup.obj" >> $@
977974
echo "$(OX)\zip.obj" >> $@
978975
!if $(FOSSIL_ENABLE_MINIZ)!=0
979976
echo "$(OX)\miniz.obj" >> $@
@@ -2032,16 +2029,10 @@
20322029
$(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\winhttp_.c"
20332030
20342031
"$(OX)\winhttp_.c" : "$(SRCDIR)\winhttp.c"
20352032
"$(OBJDIR)\translate$E" $** > $@
20362033
2037
-"$(OX)\wysiwyg$O" : "$(OX)\wysiwyg_.c" "$(OX)\wysiwyg.h"
2038
- $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\wysiwyg_.c"
2039
-
2040
-"$(OX)\wysiwyg_.c" : "$(SRCDIR)\wysiwyg.c"
2041
- "$(OBJDIR)\translate$E" $** > $@
2042
-
20432034
"$(OX)\xfer$O" : "$(OX)\xfer_.c" "$(OX)\xfer.h"
20442035
$(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\xfer_.c"
20452036
20462037
"$(OX)\xfer_.c" : "$(SRCDIR)\xfer.c"
20472038
"$(OBJDIR)\translate$E" $** > $@
@@ -2200,14 +2191,13 @@
22002191
"$(OX)\webmail_.c":"$(OX)\webmail.h" \
22012192
"$(OX)\wiki_.c":"$(OX)\wiki.h" \
22022193
"$(OX)\wikiformat_.c":"$(OX)\wikiformat.h" \
22032194
"$(OX)\winfile_.c":"$(OX)\winfile.h" \
22042195
"$(OX)\winhttp_.c":"$(OX)\winhttp.h" \
2205
- "$(OX)\wysiwyg_.c":"$(OX)\wysiwyg.h" \
22062196
"$(OX)\xfer_.c":"$(OX)\xfer.h" \
22072197
"$(OX)\xfersetup_.c":"$(OX)\xfersetup.h" \
22082198
"$(OX)\zip_.c":"$(OX)\zip.h" \
22092199
"$(SRCDIR)\sqlite3.h" \
22102200
"$(SRCDIR)\th.h" \
22112201
"$(OX)\VERSION.h" \
22122202
"$(SRCDIR)\cson_amalgamation.h"
22132203
@copy /Y nul: $@
22142204
--- win/Makefile.msc
+++ win/Makefile.msc
@@ -488,11 +488,10 @@
488 "$(OX)\webmail_.c" \
489 "$(OX)\wiki_.c" \
490 "$(OX)\wikiformat_.c" \
491 "$(OX)\winfile_.c" \
492 "$(OX)\winhttp_.c" \
493 "$(OX)\wysiwyg_.c" \
494 "$(OX)\xfer_.c" \
495 "$(OX)\xfersetup_.c" \
496 "$(OX)\zip_.c"
497
498 EXTRA_FILES = "$(SRCDIR)\..\skins\aht\details.txt" \
@@ -742,11 +741,10 @@
742 "$(OX)\webmail$O" \
743 "$(OX)\wiki$O" \
744 "$(OX)\wikiformat$O" \
745 "$(OX)\winfile$O" \
746 "$(OX)\winhttp$O" \
747 "$(OX)\wysiwyg$O" \
748 "$(OX)\xfer$O" \
749 "$(OX)\xfersetup$O" \
750 "$(OX)\zip$O" \
751 !if $(FOSSIL_ENABLE_MINIZ)!=0
752 "$(OX)\miniz$O" \
@@ -969,11 +967,10 @@
969 echo "$(OX)\webmail.obj" >> $@
970 echo "$(OX)\wiki.obj" >> $@
971 echo "$(OX)\wikiformat.obj" >> $@
972 echo "$(OX)\winfile.obj" >> $@
973 echo "$(OX)\winhttp.obj" >> $@
974 echo "$(OX)\wysiwyg.obj" >> $@
975 echo "$(OX)\xfer.obj" >> $@
976 echo "$(OX)\xfersetup.obj" >> $@
977 echo "$(OX)\zip.obj" >> $@
978 !if $(FOSSIL_ENABLE_MINIZ)!=0
979 echo "$(OX)\miniz.obj" >> $@
@@ -2032,16 +2029,10 @@
2032 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\winhttp_.c"
2033
2034 "$(OX)\winhttp_.c" : "$(SRCDIR)\winhttp.c"
2035 "$(OBJDIR)\translate$E" $** > $@
2036
2037 "$(OX)\wysiwyg$O" : "$(OX)\wysiwyg_.c" "$(OX)\wysiwyg.h"
2038 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\wysiwyg_.c"
2039
2040 "$(OX)\wysiwyg_.c" : "$(SRCDIR)\wysiwyg.c"
2041 "$(OBJDIR)\translate$E" $** > $@
2042
2043 "$(OX)\xfer$O" : "$(OX)\xfer_.c" "$(OX)\xfer.h"
2044 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\xfer_.c"
2045
2046 "$(OX)\xfer_.c" : "$(SRCDIR)\xfer.c"
2047 "$(OBJDIR)\translate$E" $** > $@
@@ -2200,14 +2191,13 @@
2200 "$(OX)\webmail_.c":"$(OX)\webmail.h" \
2201 "$(OX)\wiki_.c":"$(OX)\wiki.h" \
2202 "$(OX)\wikiformat_.c":"$(OX)\wikiformat.h" \
2203 "$(OX)\winfile_.c":"$(OX)\winfile.h" \
2204 "$(OX)\winhttp_.c":"$(OX)\winhttp.h" \
2205 "$(OX)\wysiwyg_.c":"$(OX)\wysiwyg.h" \
2206 "$(OX)\xfer_.c":"$(OX)\xfer.h" \
2207 "$(OX)\xfersetup_.c":"$(OX)\xfersetup.h" \
2208 "$(OX)\zip_.c":"$(OX)\zip.h" \
2209 "$(SRCDIR)\sqlite3.h" \
2210 "$(SRCDIR)\th.h" \
2211 "$(OX)\VERSION.h" \
2212 "$(SRCDIR)\cson_amalgamation.h"
2213 @copy /Y nul: $@
2214
--- win/Makefile.msc
+++ win/Makefile.msc
@@ -488,11 +488,10 @@
488 "$(OX)\webmail_.c" \
489 "$(OX)\wiki_.c" \
490 "$(OX)\wikiformat_.c" \
491 "$(OX)\winfile_.c" \
492 "$(OX)\winhttp_.c" \
 
493 "$(OX)\xfer_.c" \
494 "$(OX)\xfersetup_.c" \
495 "$(OX)\zip_.c"
496
497 EXTRA_FILES = "$(SRCDIR)\..\skins\aht\details.txt" \
@@ -742,11 +741,10 @@
741 "$(OX)\webmail$O" \
742 "$(OX)\wiki$O" \
743 "$(OX)\wikiformat$O" \
744 "$(OX)\winfile$O" \
745 "$(OX)\winhttp$O" \
 
746 "$(OX)\xfer$O" \
747 "$(OX)\xfersetup$O" \
748 "$(OX)\zip$O" \
749 !if $(FOSSIL_ENABLE_MINIZ)!=0
750 "$(OX)\miniz$O" \
@@ -969,11 +967,10 @@
967 echo "$(OX)\webmail.obj" >> $@
968 echo "$(OX)\wiki.obj" >> $@
969 echo "$(OX)\wikiformat.obj" >> $@
970 echo "$(OX)\winfile.obj" >> $@
971 echo "$(OX)\winhttp.obj" >> $@
 
972 echo "$(OX)\xfer.obj" >> $@
973 echo "$(OX)\xfersetup.obj" >> $@
974 echo "$(OX)\zip.obj" >> $@
975 !if $(FOSSIL_ENABLE_MINIZ)!=0
976 echo "$(OX)\miniz.obj" >> $@
@@ -2032,16 +2029,10 @@
2029 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\winhttp_.c"
2030
2031 "$(OX)\winhttp_.c" : "$(SRCDIR)\winhttp.c"
2032 "$(OBJDIR)\translate$E" $** > $@
2033
 
 
 
 
 
 
2034 "$(OX)\xfer$O" : "$(OX)\xfer_.c" "$(OX)\xfer.h"
2035 $(TCC) /Fo$@ /Fd$(@D)\ -c "$(OX)\xfer_.c"
2036
2037 "$(OX)\xfer_.c" : "$(SRCDIR)\xfer.c"
2038 "$(OBJDIR)\translate$E" $** > $@
@@ -2200,14 +2191,13 @@
2191 "$(OX)\webmail_.c":"$(OX)\webmail.h" \
2192 "$(OX)\wiki_.c":"$(OX)\wiki.h" \
2193 "$(OX)\wikiformat_.c":"$(OX)\wikiformat.h" \
2194 "$(OX)\winfile_.c":"$(OX)\winfile.h" \
2195 "$(OX)\winhttp_.c":"$(OX)\winhttp.h" \
 
2196 "$(OX)\xfer_.c":"$(OX)\xfer.h" \
2197 "$(OX)\xfersetup_.c":"$(OX)\xfersetup.h" \
2198 "$(OX)\zip_.c":"$(OX)\zip.h" \
2199 "$(SRCDIR)\sqlite3.h" \
2200 "$(SRCDIR)\th.h" \
2201 "$(OX)\VERSION.h" \
2202 "$(SRCDIR)\cson_amalgamation.h"
2203 @copy /Y nul: $@
2204
--- www/changes.wiki
+++ www/changes.wiki
@@ -58,10 +58,14 @@
5858
"[/help?cmd=sql|fossil sql]" command supports new output
5959
modes ".mode box" and ".mode json".
6060
* Add the "<tt>obscure()</tt>" SQL function to the
6161
"[/help?cmd=sql|fossil sql]" command.
6262
* [./delta_format.wiki|Delta compression] is now applied to forum edits.
63
+ * The [/help?cmd=/wikiedit|wiki editor] has been modernized and is
64
+ now Ajax-based. The WYSIWYG editing option for Fossil-format wiki
65
+ pages was removed. (Please let us know, via the site's Support menu,
66
+ if that removal unduly impacts you.)
6367
* Countless documentation enhancements.
6468
6569
<a name='v2_11'></a>
6670
<h2>Changes for Version 2.11 (2020-05-25)</h2>
6771
6872
--- www/changes.wiki
+++ www/changes.wiki
@@ -58,10 +58,14 @@
58 "[/help?cmd=sql|fossil sql]" command supports new output
59 modes ".mode box" and ".mode json".
60 * Add the "<tt>obscure()</tt>" SQL function to the
61 "[/help?cmd=sql|fossil sql]" command.
62 * [./delta_format.wiki|Delta compression] is now applied to forum edits.
 
 
 
 
63 * Countless documentation enhancements.
64
65 <a name='v2_11'></a>
66 <h2>Changes for Version 2.11 (2020-05-25)</h2>
67
68
--- www/changes.wiki
+++ www/changes.wiki
@@ -58,10 +58,14 @@
58 "[/help?cmd=sql|fossil sql]" command supports new output
59 modes ".mode box" and ".mode json".
60 * Add the "<tt>obscure()</tt>" SQL function to the
61 "[/help?cmd=sql|fossil sql]" command.
62 * [./delta_format.wiki|Delta compression] is now applied to forum edits.
63 * The [/help?cmd=/wikiedit|wiki editor] has been modernized and is
64 now Ajax-based. The WYSIWYG editing option for Fossil-format wiki
65 pages was removed. (Please let us know, via the site's Support menu,
66 if that removal unduly impacts you.)
67 * Countless documentation enhancements.
68
69 <a name='v2_11'></a>
70 <h2>Changes for Version 2.11 (2020-05-25)</h2>
71
72

Keyboard Shortcuts

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