Fossil SCM

Moved pikchr_process() nonce so that it also applies for error output. Added missing 'error' CSS class to the error-report PRE tag. Added mention of Ctrl-Enter in pikchshow intro text.

stephan 2020-09-19 16:36 trunk
Commit 11e7960e51efc3d47edf37c51ca5f0950e5b5cc377552edfa662de90b680c89e
2 files changed +2 -1 +11 -11
--- src/markdown_html.c
+++ src/markdown_html.c
@@ -344,11 +344,12 @@
344344
const char *zSrc, int nSrc, /* The Pikchr source text */
345345
const char *zArg, int nArg /* Addition arguments */
346346
){
347347
int pikFlags = PIKCHR_PROCESS_NONCE
348348
| PIKCHR_PROCESS_DIV
349
- | PIKCHR_PROCESS_SRC;
349
+ | PIKCHR_PROCESS_SRC
350
+ | PIKCHR_PROCESS_ERR_PRE;
350351
Blob bSrc = empty_blob;
351352
352353
while( nArg>0 ){
353354
int i;
354355
for(i=0; i<nArg && !fossil_isspace(zArg[i]); i++){}
355356
--- src/markdown_html.c
+++ src/markdown_html.c
@@ -344,11 +344,12 @@
344 const char *zSrc, int nSrc, /* The Pikchr source text */
345 const char *zArg, int nArg /* Addition arguments */
346 ){
347 int pikFlags = PIKCHR_PROCESS_NONCE
348 | PIKCHR_PROCESS_DIV
349 | PIKCHR_PROCESS_SRC;
 
350 Blob bSrc = empty_blob;
351
352 while( nArg>0 ){
353 int i;
354 for(i=0; i<nArg && !fossil_isspace(zArg[i]); i++){}
355
--- src/markdown_html.c
+++ src/markdown_html.c
@@ -344,11 +344,12 @@
344 const char *zSrc, int nSrc, /* The Pikchr source text */
345 const char *zArg, int nArg /* Addition arguments */
346 ){
347 int pikFlags = PIKCHR_PROCESS_NONCE
348 | PIKCHR_PROCESS_DIV
349 | PIKCHR_PROCESS_SRC
350 | PIKCHR_PROCESS_ERR_PRE;
351 Blob bSrc = empty_blob;
352
353 while( nArg>0 ){
354 int i;
355 for(i=0; i<nArg && !fossil_isspace(zArg[i]); i++){}
356
+11 -11
--- src/pikchrshow.c
+++ src/pikchrshow.c
@@ -115,10 +115,12 @@
115115
*/
116116
int pikchr_process(const char * zIn, int pikFlags, int thFlags,
117117
Blob * pOut){
118118
Blob bIn = empty_blob;
119119
int isErr = 0;
120
+ const char *zNonce = (PIKCHR_PROCESS_NONCE & pikFlags)
121
+ ? safe_html_nonce(1) : 0;
120122
121123
if(!(PIKCHR_PROCESS_DIV & pikFlags)
122124
/* If any DIV_xxx flags are set, set DIV */
123125
&& (PIKCHR_PROCESS_DIV_INDENT
124126
| PIKCHR_PROCESS_DIV_CENTER
@@ -133,10 +135,13 @@
133135
if(!(PIKCHR_PROCESS_TH1 & pikFlags)
134136
/* If any TH1_xxx flags are set, set TH1 */
135137
&& (PIKCHR_PROCESS_TH1_NOSVG & pikFlags || thFlags!=0)){
136138
pikFlags |= PIKCHR_PROCESS_TH1;
137139
}
140
+ if(zNonce){
141
+ blob_appendf(pOut, "%s\n", zNonce);
142
+ }
138143
if(PIKCHR_PROCESS_TH1 & pikFlags){
139144
Blob out = empty_blob;
140145
isErr = Th_RenderToBlob(zIn, &out, thFlags)
141146
? 1 : 0;
142147
if(isErr){
@@ -153,21 +158,15 @@
153158
blob_append(pOut, blob_str(&bIn), blob_size(&bIn));
154159
}else{
155160
int w = 0, h = 0;
156161
const char * zContent = blob_str(&bIn);
157162
char *zOut;
158
-
159163
zOut = pikchr(zContent, "pikchr", 0, &w, &h);
160164
if( w>0 && h>0 ){
161165
const char * zClassToggle = "";
162166
const char * zClassSource = "";
163167
const char * zWrapperClass = "";
164
- const char *zNonce = (PIKCHR_PROCESS_NONCE & pikFlags)
165
- ? safe_html_nonce(1) : 0;
166
- if(zNonce){
167
- blob_appendf(pOut, "%s\n", zNonce);
168
- }
169168
if(PIKCHR_PROCESS_DIV & pikFlags){
170169
if(PIKCHR_PROCESS_DIV_CENTER & pikFlags){
171170
zWrapperClass = " center";
172171
}else if(PIKCHR_PROCESS_DIV_INDENT & pikFlags){
173172
zWrapperClass = " indent";
@@ -207,26 +206,26 @@
207206
blob_str(&bIn));
208207
}
209208
if(PIKCHR_PROCESS_DIV & pikFlags){
210209
blob_append(pOut, "</div>\n", 7);
211210
}
212
- if(zNonce){
213
- blob_append(pOut, zNonce, -1);
214
- }
215211
}else{
216212
isErr = 2;
217213
if(PIKCHR_PROCESS_ERR_PRE & pikFlags){
218
- blob_append(pOut, "<pre>\n", 6);
214
+ blob_append(pOut, "<pre class='error'>\n", 20);
219215
}
220216
blob_append(pOut, zOut, -1);
221217
if(PIKCHR_PROCESS_ERR_PRE & pikFlags){
222218
blob_append(pOut, "\n</pre>\n", 8);
223219
}
224220
}
225221
fossil_free(zOut);
226222
}
227223
}
224
+ if(zNonce){
225
+ blob_appendf(pOut, "%s\n", zNonce);
226
+ }
228227
blob_reset(&bIn);
229228
return isErr;
230229
}
231230
232231
/*
@@ -332,11 +331,12 @@
332331
CX("body.pikchrshow .v-align-middle{"
333332
"vertical-align: middle"
334333
"}\n");
335334
CX(".dragover {border: 3px dotted rgba(0,255,0,0.6)}\n");
336335
} CX("</style>");
337
- CX("<div>Input pikchr code and tap Preview to render it:</div>");
336
+ CX("<div>Input pikchr code and tap Preview or Ctrl-Enter) to render "
337
+ "it:</div>");
338338
CX("<div id='sbs-wrapper'>"); {
339339
CX("<div id='pikchrshow-form'>"); {
340340
CX("<textarea id='content' name='content' rows='15'>"
341341
"%s</textarea>",zContent/*safe-for-%s*/);
342342
CX("<div id='pikchrshow-controls'>"); {
343343
--- src/pikchrshow.c
+++ src/pikchrshow.c
@@ -115,10 +115,12 @@
115 */
116 int pikchr_process(const char * zIn, int pikFlags, int thFlags,
117 Blob * pOut){
118 Blob bIn = empty_blob;
119 int isErr = 0;
 
 
120
121 if(!(PIKCHR_PROCESS_DIV & pikFlags)
122 /* If any DIV_xxx flags are set, set DIV */
123 && (PIKCHR_PROCESS_DIV_INDENT
124 | PIKCHR_PROCESS_DIV_CENTER
@@ -133,10 +135,13 @@
133 if(!(PIKCHR_PROCESS_TH1 & pikFlags)
134 /* If any TH1_xxx flags are set, set TH1 */
135 && (PIKCHR_PROCESS_TH1_NOSVG & pikFlags || thFlags!=0)){
136 pikFlags |= PIKCHR_PROCESS_TH1;
137 }
 
 
 
138 if(PIKCHR_PROCESS_TH1 & pikFlags){
139 Blob out = empty_blob;
140 isErr = Th_RenderToBlob(zIn, &out, thFlags)
141 ? 1 : 0;
142 if(isErr){
@@ -153,21 +158,15 @@
153 blob_append(pOut, blob_str(&bIn), blob_size(&bIn));
154 }else{
155 int w = 0, h = 0;
156 const char * zContent = blob_str(&bIn);
157 char *zOut;
158
159 zOut = pikchr(zContent, "pikchr", 0, &w, &h);
160 if( w>0 && h>0 ){
161 const char * zClassToggle = "";
162 const char * zClassSource = "";
163 const char * zWrapperClass = "";
164 const char *zNonce = (PIKCHR_PROCESS_NONCE & pikFlags)
165 ? safe_html_nonce(1) : 0;
166 if(zNonce){
167 blob_appendf(pOut, "%s\n", zNonce);
168 }
169 if(PIKCHR_PROCESS_DIV & pikFlags){
170 if(PIKCHR_PROCESS_DIV_CENTER & pikFlags){
171 zWrapperClass = " center";
172 }else if(PIKCHR_PROCESS_DIV_INDENT & pikFlags){
173 zWrapperClass = " indent";
@@ -207,26 +206,26 @@
207 blob_str(&bIn));
208 }
209 if(PIKCHR_PROCESS_DIV & pikFlags){
210 blob_append(pOut, "</div>\n", 7);
211 }
212 if(zNonce){
213 blob_append(pOut, zNonce, -1);
214 }
215 }else{
216 isErr = 2;
217 if(PIKCHR_PROCESS_ERR_PRE & pikFlags){
218 blob_append(pOut, "<pre>\n", 6);
219 }
220 blob_append(pOut, zOut, -1);
221 if(PIKCHR_PROCESS_ERR_PRE & pikFlags){
222 blob_append(pOut, "\n</pre>\n", 8);
223 }
224 }
225 fossil_free(zOut);
226 }
227 }
 
 
 
228 blob_reset(&bIn);
229 return isErr;
230 }
231
232 /*
@@ -332,11 +331,12 @@
332 CX("body.pikchrshow .v-align-middle{"
333 "vertical-align: middle"
334 "}\n");
335 CX(".dragover {border: 3px dotted rgba(0,255,0,0.6)}\n");
336 } CX("</style>");
337 CX("<div>Input pikchr code and tap Preview to render it:</div>");
 
338 CX("<div id='sbs-wrapper'>"); {
339 CX("<div id='pikchrshow-form'>"); {
340 CX("<textarea id='content' name='content' rows='15'>"
341 "%s</textarea>",zContent/*safe-for-%s*/);
342 CX("<div id='pikchrshow-controls'>"); {
343
--- src/pikchrshow.c
+++ src/pikchrshow.c
@@ -115,10 +115,12 @@
115 */
116 int pikchr_process(const char * zIn, int pikFlags, int thFlags,
117 Blob * pOut){
118 Blob bIn = empty_blob;
119 int isErr = 0;
120 const char *zNonce = (PIKCHR_PROCESS_NONCE & pikFlags)
121 ? safe_html_nonce(1) : 0;
122
123 if(!(PIKCHR_PROCESS_DIV & pikFlags)
124 /* If any DIV_xxx flags are set, set DIV */
125 && (PIKCHR_PROCESS_DIV_INDENT
126 | PIKCHR_PROCESS_DIV_CENTER
@@ -133,10 +135,13 @@
135 if(!(PIKCHR_PROCESS_TH1 & pikFlags)
136 /* If any TH1_xxx flags are set, set TH1 */
137 && (PIKCHR_PROCESS_TH1_NOSVG & pikFlags || thFlags!=0)){
138 pikFlags |= PIKCHR_PROCESS_TH1;
139 }
140 if(zNonce){
141 blob_appendf(pOut, "%s\n", zNonce);
142 }
143 if(PIKCHR_PROCESS_TH1 & pikFlags){
144 Blob out = empty_blob;
145 isErr = Th_RenderToBlob(zIn, &out, thFlags)
146 ? 1 : 0;
147 if(isErr){
@@ -153,21 +158,15 @@
158 blob_append(pOut, blob_str(&bIn), blob_size(&bIn));
159 }else{
160 int w = 0, h = 0;
161 const char * zContent = blob_str(&bIn);
162 char *zOut;
 
163 zOut = pikchr(zContent, "pikchr", 0, &w, &h);
164 if( w>0 && h>0 ){
165 const char * zClassToggle = "";
166 const char * zClassSource = "";
167 const char * zWrapperClass = "";
 
 
 
 
 
168 if(PIKCHR_PROCESS_DIV & pikFlags){
169 if(PIKCHR_PROCESS_DIV_CENTER & pikFlags){
170 zWrapperClass = " center";
171 }else if(PIKCHR_PROCESS_DIV_INDENT & pikFlags){
172 zWrapperClass = " indent";
@@ -207,26 +206,26 @@
206 blob_str(&bIn));
207 }
208 if(PIKCHR_PROCESS_DIV & pikFlags){
209 blob_append(pOut, "</div>\n", 7);
210 }
 
 
 
211 }else{
212 isErr = 2;
213 if(PIKCHR_PROCESS_ERR_PRE & pikFlags){
214 blob_append(pOut, "<pre class='error'>\n", 20);
215 }
216 blob_append(pOut, zOut, -1);
217 if(PIKCHR_PROCESS_ERR_PRE & pikFlags){
218 blob_append(pOut, "\n</pre>\n", 8);
219 }
220 }
221 fossil_free(zOut);
222 }
223 }
224 if(zNonce){
225 blob_appendf(pOut, "%s\n", zNonce);
226 }
227 blob_reset(&bIn);
228 return isErr;
229 }
230
231 /*
@@ -332,11 +331,12 @@
331 CX("body.pikchrshow .v-align-middle{"
332 "vertical-align: middle"
333 "}\n");
334 CX(".dragover {border: 3px dotted rgba(0,255,0,0.6)}\n");
335 } CX("</style>");
336 CX("<div>Input pikchr code and tap Preview or Ctrl-Enter) to render "
337 "it:</div>");
338 CX("<div id='sbs-wrapper'>"); {
339 CX("<div id='pikchrshow-form'>"); {
340 CX("<textarea id='content' name='content' rows='15'>"
341 "%s</textarea>",zContent/*safe-for-%s*/);
342 CX("<div id='pikchrshow-controls'>"); {
343

Keyboard Shortcuts

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