Fossil SCM

Generate output at the end of get_stext_by_mimetype() instead of within conditional branches.

preben 2023-09-26 10:20 search-wiki-titles
Commit 3105a0c5c3a5201e7116fc23ce52aa0371e22aa62f7b3a25e744c3354c490870
1 file changed +10 -17
+10 -17
--- src/search.c
+++ src/search.c
@@ -1243,45 +1243,38 @@
12431243
const char *zMimetype,
12441244
const char *zTitle,
12451245
Blob *pOut
12461246
){
12471247
Blob html, title;
1248
+ Blob *pHtml = &html;
12481249
blob_init(&html, 0, 0);
12491250
if( zTitle==0 ){
12501251
blob_init(&title, 0, 0);
12511252
}else{
12521253
blob_init(&title, zTitle, -1);
12531254
}
12541255
if( zMimetype==0 ) zMimetype = "text/plain";
12551256
if( fossil_strcmp(zMimetype,"text/x-fossil-wiki")==0 ){
1256
- Blob tail;
1257
- blob_init(&tail, 0, 0);
12581257
if( blob_size(&title) ){
12591258
wiki_convert(pIn, &html, 0);
1260
- }else if( wiki_find_title(pIn, &title, &tail) ){
1261
- blob_appendf(pOut, "%s\n", blob_str(&title));
1259
+ }else{
1260
+ Blob tail;
1261
+ blob_init(&tail, 0, 0);
1262
+ wiki_find_title(pIn, &title, &tail);
12621263
wiki_convert(&tail, &html, 0);
12631264
blob_reset(&tail);
1264
- }else{
1265
- blob_append(pOut, "\n", 1);
1266
- wiki_convert(pIn, &html, 0);
12671265
}
1268
- html_to_plaintext(blob_str(&html), pOut);
12691266
}else if( fossil_strcmp(zMimetype,"text/x-markdown")==0 ){
12701267
markdown_to_html(pIn, blob_size(&title) ? NULL : &title, &html);
1271
- if( blob_size(&title) ){
1272
- blob_appendf(pOut, "%s\n", blob_str(&title));
1273
- }else{
1274
- blob_append(pOut, "\n", 1);
1275
- }
1276
- html_to_plaintext(blob_str(&html), pOut);
12771268
}else if( fossil_strcmp(zMimetype,"text/html")==0 ){
12781269
if( blob_size(&title)==0 ) doc_is_embedded_html(pIn, &title);
1279
- blob_appendf(pOut, "%s\n", blob_str(&title));
1280
- html_to_plaintext(blob_str(pIn), pOut);
1270
+ pHtml = pIn;
1271
+ }
1272
+ blob_appendf(pOut, "%s\n", blob_str(&title));
1273
+ if( blob_size(pHtml) ){
1274
+ html_to_plaintext(blob_str(pHtml), pOut);
12811275
}else{
1282
- blob_append(pOut, "\n", 1);
12831276
blob_append(pOut, blob_buffer(pIn), blob_size(pIn));
12841277
}
12851278
blob_reset(&html);
12861279
blob_reset(&title);
12871280
}
12881281
--- src/search.c
+++ src/search.c
@@ -1243,45 +1243,38 @@
1243 const char *zMimetype,
1244 const char *zTitle,
1245 Blob *pOut
1246 ){
1247 Blob html, title;
 
1248 blob_init(&html, 0, 0);
1249 if( zTitle==0 ){
1250 blob_init(&title, 0, 0);
1251 }else{
1252 blob_init(&title, zTitle, -1);
1253 }
1254 if( zMimetype==0 ) zMimetype = "text/plain";
1255 if( fossil_strcmp(zMimetype,"text/x-fossil-wiki")==0 ){
1256 Blob tail;
1257 blob_init(&tail, 0, 0);
1258 if( blob_size(&title) ){
1259 wiki_convert(pIn, &html, 0);
1260 }else if( wiki_find_title(pIn, &title, &tail) ){
1261 blob_appendf(pOut, "%s\n", blob_str(&title));
 
 
1262 wiki_convert(&tail, &html, 0);
1263 blob_reset(&tail);
1264 }else{
1265 blob_append(pOut, "\n", 1);
1266 wiki_convert(pIn, &html, 0);
1267 }
1268 html_to_plaintext(blob_str(&html), pOut);
1269 }else if( fossil_strcmp(zMimetype,"text/x-markdown")==0 ){
1270 markdown_to_html(pIn, blob_size(&title) ? NULL : &title, &html);
1271 if( blob_size(&title) ){
1272 blob_appendf(pOut, "%s\n", blob_str(&title));
1273 }else{
1274 blob_append(pOut, "\n", 1);
1275 }
1276 html_to_plaintext(blob_str(&html), pOut);
1277 }else if( fossil_strcmp(zMimetype,"text/html")==0 ){
1278 if( blob_size(&title)==0 ) doc_is_embedded_html(pIn, &title);
1279 blob_appendf(pOut, "%s\n", blob_str(&title));
1280 html_to_plaintext(blob_str(pIn), pOut);
 
 
 
1281 }else{
1282 blob_append(pOut, "\n", 1);
1283 blob_append(pOut, blob_buffer(pIn), blob_size(pIn));
1284 }
1285 blob_reset(&html);
1286 blob_reset(&title);
1287 }
1288
--- src/search.c
+++ src/search.c
@@ -1243,45 +1243,38 @@
1243 const char *zMimetype,
1244 const char *zTitle,
1245 Blob *pOut
1246 ){
1247 Blob html, title;
1248 Blob *pHtml = &html;
1249 blob_init(&html, 0, 0);
1250 if( zTitle==0 ){
1251 blob_init(&title, 0, 0);
1252 }else{
1253 blob_init(&title, zTitle, -1);
1254 }
1255 if( zMimetype==0 ) zMimetype = "text/plain";
1256 if( fossil_strcmp(zMimetype,"text/x-fossil-wiki")==0 ){
 
 
1257 if( blob_size(&title) ){
1258 wiki_convert(pIn, &html, 0);
1259 }else{
1260 Blob tail;
1261 blob_init(&tail, 0, 0);
1262 wiki_find_title(pIn, &title, &tail);
1263 wiki_convert(&tail, &html, 0);
1264 blob_reset(&tail);
 
 
 
1265 }
 
1266 }else if( fossil_strcmp(zMimetype,"text/x-markdown")==0 ){
1267 markdown_to_html(pIn, blob_size(&title) ? NULL : &title, &html);
 
 
 
 
 
 
1268 }else if( fossil_strcmp(zMimetype,"text/html")==0 ){
1269 if( blob_size(&title)==0 ) doc_is_embedded_html(pIn, &title);
1270 pHtml = pIn;
1271 }
1272 blob_appendf(pOut, "%s\n", blob_str(&title));
1273 if( blob_size(pHtml) ){
1274 html_to_plaintext(blob_str(pHtml), pOut);
1275 }else{
 
1276 blob_append(pOut, blob_buffer(pIn), blob_size(pIn));
1277 }
1278 blob_reset(&html);
1279 blob_reset(&title);
1280 }
1281

Keyboard Shortcuts

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