Fossil SCM

Ajaxified pikchrshow.

stephan 2020-09-10 13:59 pikchrshow
Commit 075f6f8d80be13c23d5325c5489f1429bd28582b1bcd68d463e57cc7e527d96f
+9 -2
--- src/builtin.c
+++ src/builtin.c
@@ -625,11 +625,19 @@
625625
hash_digits(0), hash_digits(1));
626626
CX("editStateMarkers: {"
627627
"/*Symbolic markers to denote certain edit states.*/"
628628
"isNew:'[+]', isModified:'[*]', isDeleted:'[-]'},\n");
629629
CX("confirmerButtonTicks: 3 "
630
- "/*default fossil.confirmer tick count.*/\n");
630
+ "/*default fossil.confirmer tick count.*/,\n");
631
+ /* Inject certain info about the current skin... */
632
+ CX("skin:{");
633
+ /* can leak a local filesystem path:
634
+ CX("name: %!j,", skin_in_use());*/
635
+ CX("isDark: %s"
636
+ "/*true if the current skin has the 'white-foreground' detail*/",
637
+ skin_detail_boolean("white-foreground") ? "true" : "false");
638
+ CX("}\n"/*fossil.config.skin*/);
631639
CX("};\n"/* fossil.config */);
632640
#if 0
633641
/* Is it safe to emit the CSRF token here? Some pages add it
634642
** as a hidden form field. */
635643
if(g.zCsrfToken[0]!=0){
@@ -652,11 +660,10 @@
652660
/* The remaining window.fossil bootstrap code is not dependent on
653661
** C-runtime state... */
654662
builtin_request_js("fossil.bootstrap.js");
655663
}
656664
}
657
-
658665
659666
/*
660667
** Convenience wrapper which calls builtin_request_js() for a series
661668
** of builtin scripts named fossil.NAME.js. The first time it is
662669
** called, it also calls builtin_emit_script_fossil_bootstrap() to
663670
664671
ADDED src/fossil.page.pikchrshow.js
--- src/builtin.c
+++ src/builtin.c
@@ -625,11 +625,19 @@
625 hash_digits(0), hash_digits(1));
626 CX("editStateMarkers: {"
627 "/*Symbolic markers to denote certain edit states.*/"
628 "isNew:'[+]', isModified:'[*]', isDeleted:'[-]'},\n");
629 CX("confirmerButtonTicks: 3 "
630 "/*default fossil.confirmer tick count.*/\n");
 
 
 
 
 
 
 
 
631 CX("};\n"/* fossil.config */);
632 #if 0
633 /* Is it safe to emit the CSRF token here? Some pages add it
634 ** as a hidden form field. */
635 if(g.zCsrfToken[0]!=0){
@@ -652,11 +660,10 @@
652 /* The remaining window.fossil bootstrap code is not dependent on
653 ** C-runtime state... */
654 builtin_request_js("fossil.bootstrap.js");
655 }
656 }
657
658
659 /*
660 ** Convenience wrapper which calls builtin_request_js() for a series
661 ** of builtin scripts named fossil.NAME.js. The first time it is
662 ** called, it also calls builtin_emit_script_fossil_bootstrap() to
663
664 DDED src/fossil.page.pikchrshow.js
--- src/builtin.c
+++ src/builtin.c
@@ -625,11 +625,19 @@
625 hash_digits(0), hash_digits(1));
626 CX("editStateMarkers: {"
627 "/*Symbolic markers to denote certain edit states.*/"
628 "isNew:'[+]', isModified:'[*]', isDeleted:'[-]'},\n");
629 CX("confirmerButtonTicks: 3 "
630 "/*default fossil.confirmer tick count.*/,\n");
631 /* Inject certain info about the current skin... */
632 CX("skin:{");
633 /* can leak a local filesystem path:
634 CX("name: %!j,", skin_in_use());*/
635 CX("isDark: %s"
636 "/*true if the current skin has the 'white-foreground' detail*/",
637 skin_detail_boolean("white-foreground") ? "true" : "false");
638 CX("}\n"/*fossil.config.skin*/);
639 CX("};\n"/* fossil.config */);
640 #if 0
641 /* Is it safe to emit the CSRF token here? Some pages add it
642 ** as a hidden form field. */
643 if(g.zCsrfToken[0]!=0){
@@ -652,11 +660,10 @@
660 /* The remaining window.fossil bootstrap code is not dependent on
661 ** C-runtime state... */
662 builtin_request_js("fossil.bootstrap.js");
663 }
664 }
 
665
666 /*
667 ** Convenience wrapper which calls builtin_request_js() for a series
668 ** of builtin scripts named fossil.NAME.js. The first time it is
669 ** called, it also calls builtin_emit_script_fossil_bootstrap() to
670
671 DDED src/fossil.page.pikchrshow.js
--- a/src/fossil.page.pikchrshow.js
+++ b/src/fossil.page.pikchrshow.js
@@ -0,0 +1,7 @@
1
+(functioampcbDarkMode.parentNode); {name: "Tip: drag/drop pikdivdivdivControls, if(Pnot strictly necessary, butalignment})(window.fossil);
2
+removeClass, 'hidden' /*,,);
3
+ D.addClass, 'hidde
4
+ JS
5
+ };
6
+P.p
7
+ P;fp.target.innerHTML =
--- a/src/fossil.page.pikchrshow.js
+++ b/src/fossil.page.pikchrshow.js
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
--- a/src/fossil.page.pikchrshow.js
+++ b/src/fossil.page.pikchrshow.js
@@ -0,0 +1,7 @@
1 (functioampcbDarkMode.parentNode); {name: "Tip: drag/drop pikdivdivdivControls, if(Pnot strictly necessary, butalignment})(window.fossil);
2 removeClass, 'hidden' /*,,);
3 D.addClass, 'hidde
4 JS
5 };
6 P.p
7 P;fp.target.innerHTML =
--- src/main.mk
+++ src/main.mk
@@ -232,10 +232,11 @@
232232
$(SRCDIR)/fossil.dom.js \
233233
$(SRCDIR)/fossil.fetch.js \
234234
$(SRCDIR)/fossil.numbered-lines.js \
235235
$(SRCDIR)/fossil.page.fileedit.js \
236236
$(SRCDIR)/fossil.page.forumpost.js \
237
+ $(SRCDIR)/fossil.page.pikchrshow.js \
237238
$(SRCDIR)/fossil.page.wikiedit-wysiwyg-legacy.js \
238239
$(SRCDIR)/fossil.page.wikiedit.js \
239240
$(SRCDIR)/fossil.popupwidget.js \
240241
$(SRCDIR)/fossil.storage.js \
241242
$(SRCDIR)/fossil.tabs.js \
242243
--- src/main.mk
+++ src/main.mk
@@ -232,10 +232,11 @@
232 $(SRCDIR)/fossil.dom.js \
233 $(SRCDIR)/fossil.fetch.js \
234 $(SRCDIR)/fossil.numbered-lines.js \
235 $(SRCDIR)/fossil.page.fileedit.js \
236 $(SRCDIR)/fossil.page.forumpost.js \
 
237 $(SRCDIR)/fossil.page.wikiedit-wysiwyg-legacy.js \
238 $(SRCDIR)/fossil.page.wikiedit.js \
239 $(SRCDIR)/fossil.popupwidget.js \
240 $(SRCDIR)/fossil.storage.js \
241 $(SRCDIR)/fossil.tabs.js \
242
--- src/main.mk
+++ src/main.mk
@@ -232,10 +232,11 @@
232 $(SRCDIR)/fossil.dom.js \
233 $(SRCDIR)/fossil.fetch.js \
234 $(SRCDIR)/fossil.numbered-lines.js \
235 $(SRCDIR)/fossil.page.fileedit.js \
236 $(SRCDIR)/fossil.page.forumpost.js \
237 $(SRCDIR)/fossil.page.pikchrshow.js \
238 $(SRCDIR)/fossil.page.wikiedit-wysiwyg-legacy.js \
239 $(SRCDIR)/fossil.page.wikiedit.js \
240 $(SRCDIR)/fossil.popupwidget.js \
241 $(SRCDIR)/fossil.storage.js \
242 $(SRCDIR)/fossil.tabs.js \
243
+46 -15
--- src/pikchrshow.c
+++ src/pikchrshow.c
@@ -28,16 +28,36 @@
2828
**
2929
** A basic pikchr code editor and renderer, allowing users with write-
3030
** or wiki-write permissions to experiment with pikchr code.
3131
*/
3232
void pikchrshow_cmd(void){
33
- const char *zContent = P("content");
33
+ const char *zContent = 0;
3434
int isDark, flipColors;
3535
3636
login_check_credentials();
37
- if( !g.perm.WrWiki && !g.perm.Write ){
37
+ if( !g.perm.RdWiki && !g.perm.Read && !g.perm.RdForum ){
3838
cgi_redirectf("%s/login?g=%s/pikchrshow", g.zTop, g.zTop);
39
+ }
40
+ zContent = P("content");
41
+ if(P("ajax")!=0){
42
+ /* Called from the JS-side preview updater. */
43
+ cgi_set_content_type("text/html");
44
+ if(zContent && *zContent){
45
+ int w = 0, h = 0;
46
+ char *zOut = pikchr(zContent, "pikchr", 0, &w, &h);
47
+ if( w>0 && h>0 ){
48
+ const char *zNonce = safe_html_nonce(1);
49
+ CX("%s\n%s%s", zNonce, zOut, zNonce);
50
+ }else{
51
+ cgi_printf_header("x-pikchrshow-is-error: 1\r\n");
52
+ CX("<pre>\n%s\n</pre>\n", zOut);
53
+ }
54
+ fossil_free(zOut);
55
+ }else{
56
+ CX("<pre>No content! Nothing to render</pre>");
57
+ }
58
+ return;
3959
}
4060
isDark = skin_detail_boolean("white-foreground");
4161
flipColors = zContent ? P("flipcolors")!=0 : isDark;
4262
if(!zContent){
4363
zContent = "arrow right 200% \"Markdown\" \"Source\"\n"
@@ -54,38 +74,44 @@
5474
CX("#sbs-wrapper > * {margin: 0 0 1em 0}");
5575
CX("#pikchrshow-output, #pikchrshow-form"
5676
"{display: flex; flex-direction: column}");
5777
CX("#pikchrshow-form {flex: 2 1 auto}");
5878
CX("#pikchrshow-form > * {margin: 0.25em 0}");
59
- CX("#pikchrshow-output {flex: 1 1 auto}");
79
+ CX("#pikchrshow-output {"
80
+ "flex: 1 1 auto; border-width: 1px; border-style: solid;"
81
+ "border-radius: 0.25em; padding: 0.5em;"
82
+ "}");
83
+ CX("#pikchrshow-output > pre, "
84
+ "#pikchrshow-output > pre > div, "
85
+ "#pikchrshow-output > pre > div > pre "
86
+ "{margin: 0; padding: 0}");
6087
CX("#pikchrshow-controls {"
6188
"display: flex; flex-direction: row; align-items: center;"
6289
"}");
6390
CX("#pikchrshow-controls > * {"
6491
"display: inline; margin-left: 0.5em;"
6592
"}");
6693
CX("#pikchrshow-controls > .input-with-label > * {"
6794
"cursor: pointer;"
6895
"}");
96
+ CX("#pikchrshow-output.dark-mode > svg {"
97
+ /* Flip the colors to approximate a dark theme look */
98
+ "filter: invert(1) hue-rotate(180deg);"
99
+ "}");
69100
CX("</style>");
70
- if( flipColors ){
71
- /* Flip the colors to approximate a dark theme look */
72
- CX("<style>#pikchrshow-output > svg {"
73
- "filter: invert(1) hue-rotate(180deg);"
74
- "}</style>");
75
- }
76
- CX("<div>Input pikchr code and tap SUBMIT to render it:</div>");
101
+ CX("<div>Input pikchr code and tap Preview to render it:</div>");
77102
CX("<div id='sbs-wrapper'>");
78
- CX("<form method='POST' id='pikchrshow-form' action=''>");
79
- CX("<textarea name='content' rows='15'>%s</textarea>",
103
+ CX("<div id='pikchrshow-form'>");
104
+ CX("<textarea id='content' name='content' rows='15'>%s</textarea>",
80105
zContent/*safe-for-%s*/);
81106
CX("<div id='pikchrshow-controls'>");
82
- CX("<input type='submit' value='Submit'></input>");
83
- style_labeled_checkbox(0, "flipcolors", "Simulate dark color theme?",
107
+ CX("<button id='pikchr-submit-preview'>Preview</button>");
108
+ style_labeled_checkbox("flipcolors-wrapper", "flipcolors",
109
+ "Simulate dark color theme?",
84110
"1", flipColors, 0);
85111
CX("</div>"/*#pikchrshow-controls*/);
86
- CX("</form>"/*#pikchrshow-form*/);
112
+ CX("</div>"/*#pikchrshow-form*/);
87113
CX("<div id='pikchrshow-output'>");
88114
if(*zContent){
89115
int w = 0, h = 0;
90116
char *zOut = pikchr(zContent, "pikchr", 0, &w, &h);
91117
if( w>0 && h>0 ){
@@ -96,8 +122,13 @@
96122
}
97123
fossil_free(zOut);
98124
}
99125
CX("</div>"/*#pikchrshow-output*/);
100126
CX("</div>"/*sbs-wrapper*/);
127
+ if(!builtin_bundle_all_fossil_js_apis()){
128
+ builtin_emit_fossil_js_apis("dom", "fetch", 0);
129
+ }
130
+ builtin_emit_fossil_js_apis("page.pikchrshow", 0);
131
+ builtin_fulfill_js_requests();
101132
style_footer();
102133
}
103134
104135
--- src/pikchrshow.c
+++ src/pikchrshow.c
@@ -28,16 +28,36 @@
28 **
29 ** A basic pikchr code editor and renderer, allowing users with write-
30 ** or wiki-write permissions to experiment with pikchr code.
31 */
32 void pikchrshow_cmd(void){
33 const char *zContent = P("content");
34 int isDark, flipColors;
35
36 login_check_credentials();
37 if( !g.perm.WrWiki && !g.perm.Write ){
38 cgi_redirectf("%s/login?g=%s/pikchrshow", g.zTop, g.zTop);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
39 }
40 isDark = skin_detail_boolean("white-foreground");
41 flipColors = zContent ? P("flipcolors")!=0 : isDark;
42 if(!zContent){
43 zContent = "arrow right 200% \"Markdown\" \"Source\"\n"
@@ -54,38 +74,44 @@
54 CX("#sbs-wrapper > * {margin: 0 0 1em 0}");
55 CX("#pikchrshow-output, #pikchrshow-form"
56 "{display: flex; flex-direction: column}");
57 CX("#pikchrshow-form {flex: 2 1 auto}");
58 CX("#pikchrshow-form > * {margin: 0.25em 0}");
59 CX("#pikchrshow-output {flex: 1 1 auto}");
 
 
 
 
 
 
 
60 CX("#pikchrshow-controls {"
61 "display: flex; flex-direction: row; align-items: center;"
62 "}");
63 CX("#pikchrshow-controls > * {"
64 "display: inline; margin-left: 0.5em;"
65 "}");
66 CX("#pikchrshow-controls > .input-with-label > * {"
67 "cursor: pointer;"
68 "}");
 
 
 
 
69 CX("</style>");
70 if( flipColors ){
71 /* Flip the colors to approximate a dark theme look */
72 CX("<style>#pikchrshow-output > svg {"
73 "filter: invert(1) hue-rotate(180deg);"
74 "}</style>");
75 }
76 CX("<div>Input pikchr code and tap SUBMIT to render it:</div>");
77 CX("<div id='sbs-wrapper'>");
78 CX("<form method='POST' id='pikchrshow-form' action=''>");
79 CX("<textarea name='content' rows='15'>%s</textarea>",
80 zContent/*safe-for-%s*/);
81 CX("<div id='pikchrshow-controls'>");
82 CX("<input type='submit' value='Submit'></input>");
83 style_labeled_checkbox(0, "flipcolors", "Simulate dark color theme?",
 
84 "1", flipColors, 0);
85 CX("</div>"/*#pikchrshow-controls*/);
86 CX("</form>"/*#pikchrshow-form*/);
87 CX("<div id='pikchrshow-output'>");
88 if(*zContent){
89 int w = 0, h = 0;
90 char *zOut = pikchr(zContent, "pikchr", 0, &w, &h);
91 if( w>0 && h>0 ){
@@ -96,8 +122,13 @@
96 }
97 fossil_free(zOut);
98 }
99 CX("</div>"/*#pikchrshow-output*/);
100 CX("</div>"/*sbs-wrapper*/);
 
 
 
 
 
101 style_footer();
102 }
103
104
--- src/pikchrshow.c
+++ src/pikchrshow.c
@@ -28,16 +28,36 @@
28 **
29 ** A basic pikchr code editor and renderer, allowing users with write-
30 ** or wiki-write permissions to experiment with pikchr code.
31 */
32 void pikchrshow_cmd(void){
33 const char *zContent = 0;
34 int isDark, flipColors;
35
36 login_check_credentials();
37 if( !g.perm.RdWiki && !g.perm.Read && !g.perm.RdForum ){
38 cgi_redirectf("%s/login?g=%s/pikchrshow", g.zTop, g.zTop);
39 }
40 zContent = P("content");
41 if(P("ajax")!=0){
42 /* Called from the JS-side preview updater. */
43 cgi_set_content_type("text/html");
44 if(zContent && *zContent){
45 int w = 0, h = 0;
46 char *zOut = pikchr(zContent, "pikchr", 0, &w, &h);
47 if( w>0 && h>0 ){
48 const char *zNonce = safe_html_nonce(1);
49 CX("%s\n%s%s", zNonce, zOut, zNonce);
50 }else{
51 cgi_printf_header("x-pikchrshow-is-error: 1\r\n");
52 CX("<pre>\n%s\n</pre>\n", zOut);
53 }
54 fossil_free(zOut);
55 }else{
56 CX("<pre>No content! Nothing to render</pre>");
57 }
58 return;
59 }
60 isDark = skin_detail_boolean("white-foreground");
61 flipColors = zContent ? P("flipcolors")!=0 : isDark;
62 if(!zContent){
63 zContent = "arrow right 200% \"Markdown\" \"Source\"\n"
@@ -54,38 +74,44 @@
74 CX("#sbs-wrapper > * {margin: 0 0 1em 0}");
75 CX("#pikchrshow-output, #pikchrshow-form"
76 "{display: flex; flex-direction: column}");
77 CX("#pikchrshow-form {flex: 2 1 auto}");
78 CX("#pikchrshow-form > * {margin: 0.25em 0}");
79 CX("#pikchrshow-output {"
80 "flex: 1 1 auto; border-width: 1px; border-style: solid;"
81 "border-radius: 0.25em; padding: 0.5em;"
82 "}");
83 CX("#pikchrshow-output > pre, "
84 "#pikchrshow-output > pre > div, "
85 "#pikchrshow-output > pre > div > pre "
86 "{margin: 0; padding: 0}");
87 CX("#pikchrshow-controls {"
88 "display: flex; flex-direction: row; align-items: center;"
89 "}");
90 CX("#pikchrshow-controls > * {"
91 "display: inline; margin-left: 0.5em;"
92 "}");
93 CX("#pikchrshow-controls > .input-with-label > * {"
94 "cursor: pointer;"
95 "}");
96 CX("#pikchrshow-output.dark-mode > svg {"
97 /* Flip the colors to approximate a dark theme look */
98 "filter: invert(1) hue-rotate(180deg);"
99 "}");
100 CX("</style>");
101 CX("<div>Input pikchr code and tap Preview to render it:</div>");
 
 
 
 
 
 
102 CX("<div id='sbs-wrapper'>");
103 CX("<div id='pikchrshow-form'>");
104 CX("<textarea id='content' name='content' rows='15'>%s</textarea>",
105 zContent/*safe-for-%s*/);
106 CX("<div id='pikchrshow-controls'>");
107 CX("<button id='pikchr-submit-preview'>Preview</button>");
108 style_labeled_checkbox("flipcolors-wrapper", "flipcolors",
109 "Simulate dark color theme?",
110 "1", flipColors, 0);
111 CX("</div>"/*#pikchrshow-controls*/);
112 CX("</div>"/*#pikchrshow-form*/);
113 CX("<div id='pikchrshow-output'>");
114 if(*zContent){
115 int w = 0, h = 0;
116 char *zOut = pikchr(zContent, "pikchr", 0, &w, &h);
117 if( w>0 && h>0 ){
@@ -96,8 +122,13 @@
122 }
123 fossil_free(zOut);
124 }
125 CX("</div>"/*#pikchrshow-output*/);
126 CX("</div>"/*sbs-wrapper*/);
127 if(!builtin_bundle_all_fossil_js_apis()){
128 builtin_emit_fossil_js_apis("dom", "fetch", 0);
129 }
130 builtin_emit_fossil_js_apis("page.pikchrshow", 0);
131 builtin_fulfill_js_requests();
132 style_footer();
133 }
134
135
--- win/Makefile.mingw
+++ win/Makefile.mingw
@@ -644,10 +644,11 @@
644644
$(SRCDIR)/fossil.dom.js \
645645
$(SRCDIR)/fossil.fetch.js \
646646
$(SRCDIR)/fossil.numbered-lines.js \
647647
$(SRCDIR)/fossil.page.fileedit.js \
648648
$(SRCDIR)/fossil.page.forumpost.js \
649
+ $(SRCDIR)/fossil.page.pikchrshow.js \
649650
$(SRCDIR)/fossil.page.wikiedit-wysiwyg-legacy.js \
650651
$(SRCDIR)/fossil.page.wikiedit.js \
651652
$(SRCDIR)/fossil.popupwidget.js \
652653
$(SRCDIR)/fossil.storage.js \
653654
$(SRCDIR)/fossil.tabs.js \
654655
--- win/Makefile.mingw
+++ win/Makefile.mingw
@@ -644,10 +644,11 @@
644 $(SRCDIR)/fossil.dom.js \
645 $(SRCDIR)/fossil.fetch.js \
646 $(SRCDIR)/fossil.numbered-lines.js \
647 $(SRCDIR)/fossil.page.fileedit.js \
648 $(SRCDIR)/fossil.page.forumpost.js \
 
649 $(SRCDIR)/fossil.page.wikiedit-wysiwyg-legacy.js \
650 $(SRCDIR)/fossil.page.wikiedit.js \
651 $(SRCDIR)/fossil.popupwidget.js \
652 $(SRCDIR)/fossil.storage.js \
653 $(SRCDIR)/fossil.tabs.js \
654
--- win/Makefile.mingw
+++ win/Makefile.mingw
@@ -644,10 +644,11 @@
644 $(SRCDIR)/fossil.dom.js \
645 $(SRCDIR)/fossil.fetch.js \
646 $(SRCDIR)/fossil.numbered-lines.js \
647 $(SRCDIR)/fossil.page.fileedit.js \
648 $(SRCDIR)/fossil.page.forumpost.js \
649 $(SRCDIR)/fossil.page.pikchrshow.js \
650 $(SRCDIR)/fossil.page.wikiedit-wysiwyg-legacy.js \
651 $(SRCDIR)/fossil.page.wikiedit.js \
652 $(SRCDIR)/fossil.popupwidget.js \
653 $(SRCDIR)/fossil.storage.js \
654 $(SRCDIR)/fossil.tabs.js \
655
--- win/Makefile.msc
+++ win/Makefile.msc
@@ -565,10 +565,11 @@
565565
"$(SRCDIR)\fossil.dom.js" \
566566
"$(SRCDIR)\fossil.fetch.js" \
567567
"$(SRCDIR)\fossil.numbered-lines.js" \
568568
"$(SRCDIR)\fossil.page.fileedit.js" \
569569
"$(SRCDIR)\fossil.page.forumpost.js" \
570
+ "$(SRCDIR)\fossil.page.pikchrshow.js" \
570571
"$(SRCDIR)\fossil.page.wikiedit-wysiwyg-legacy.js" \
571572
"$(SRCDIR)\fossil.page.wikiedit.js" \
572573
"$(SRCDIR)\fossil.popupwidget.js" \
573574
"$(SRCDIR)\fossil.storage.js" \
574575
"$(SRCDIR)\fossil.tabs.js" \
@@ -1169,10 +1170,11 @@
11691170
echo "$(SRCDIR)\fossil.dom.js" >> $@
11701171
echo "$(SRCDIR)\fossil.fetch.js" >> $@
11711172
echo "$(SRCDIR)\fossil.numbered-lines.js" >> $@
11721173
echo "$(SRCDIR)\fossil.page.fileedit.js" >> $@
11731174
echo "$(SRCDIR)\fossil.page.forumpost.js" >> $@
1175
+ echo "$(SRCDIR)\fossil.page.pikchrshow.js" >> $@
11741176
echo "$(SRCDIR)\fossil.page.wikiedit-wysiwyg-legacy.js" >> $@
11751177
echo "$(SRCDIR)\fossil.page.wikiedit.js" >> $@
11761178
echo "$(SRCDIR)\fossil.popupwidget.js" >> $@
11771179
echo "$(SRCDIR)\fossil.storage.js" >> $@
11781180
echo "$(SRCDIR)\fossil.tabs.js" >> $@
11791181
--- win/Makefile.msc
+++ win/Makefile.msc
@@ -565,10 +565,11 @@
565 "$(SRCDIR)\fossil.dom.js" \
566 "$(SRCDIR)\fossil.fetch.js" \
567 "$(SRCDIR)\fossil.numbered-lines.js" \
568 "$(SRCDIR)\fossil.page.fileedit.js" \
569 "$(SRCDIR)\fossil.page.forumpost.js" \
 
570 "$(SRCDIR)\fossil.page.wikiedit-wysiwyg-legacy.js" \
571 "$(SRCDIR)\fossil.page.wikiedit.js" \
572 "$(SRCDIR)\fossil.popupwidget.js" \
573 "$(SRCDIR)\fossil.storage.js" \
574 "$(SRCDIR)\fossil.tabs.js" \
@@ -1169,10 +1170,11 @@
1169 echo "$(SRCDIR)\fossil.dom.js" >> $@
1170 echo "$(SRCDIR)\fossil.fetch.js" >> $@
1171 echo "$(SRCDIR)\fossil.numbered-lines.js" >> $@
1172 echo "$(SRCDIR)\fossil.page.fileedit.js" >> $@
1173 echo "$(SRCDIR)\fossil.page.forumpost.js" >> $@
 
1174 echo "$(SRCDIR)\fossil.page.wikiedit-wysiwyg-legacy.js" >> $@
1175 echo "$(SRCDIR)\fossil.page.wikiedit.js" >> $@
1176 echo "$(SRCDIR)\fossil.popupwidget.js" >> $@
1177 echo "$(SRCDIR)\fossil.storage.js" >> $@
1178 echo "$(SRCDIR)\fossil.tabs.js" >> $@
1179
--- win/Makefile.msc
+++ win/Makefile.msc
@@ -565,10 +565,11 @@
565 "$(SRCDIR)\fossil.dom.js" \
566 "$(SRCDIR)\fossil.fetch.js" \
567 "$(SRCDIR)\fossil.numbered-lines.js" \
568 "$(SRCDIR)\fossil.page.fileedit.js" \
569 "$(SRCDIR)\fossil.page.forumpost.js" \
570 "$(SRCDIR)\fossil.page.pikchrshow.js" \
571 "$(SRCDIR)\fossil.page.wikiedit-wysiwyg-legacy.js" \
572 "$(SRCDIR)\fossil.page.wikiedit.js" \
573 "$(SRCDIR)\fossil.popupwidget.js" \
574 "$(SRCDIR)\fossil.storage.js" \
575 "$(SRCDIR)\fossil.tabs.js" \
@@ -1169,10 +1170,11 @@
1170 echo "$(SRCDIR)\fossil.dom.js" >> $@
1171 echo "$(SRCDIR)\fossil.fetch.js" >> $@
1172 echo "$(SRCDIR)\fossil.numbered-lines.js" >> $@
1173 echo "$(SRCDIR)\fossil.page.fileedit.js" >> $@
1174 echo "$(SRCDIR)\fossil.page.forumpost.js" >> $@
1175 echo "$(SRCDIR)\fossil.page.pikchrshow.js" >> $@
1176 echo "$(SRCDIR)\fossil.page.wikiedit-wysiwyg-legacy.js" >> $@
1177 echo "$(SRCDIR)\fossil.page.wikiedit.js" >> $@
1178 echo "$(SRCDIR)\fossil.popupwidget.js" >> $@
1179 echo "$(SRCDIR)\fossil.storage.js" >> $@
1180 echo "$(SRCDIR)\fossil.tabs.js" >> $@
1181

Keyboard Shortcuts

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