Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Changes In Branch search-wiki-titles Excluding Merge-Ins
This is equivalent to a diff from 9b10bf45 to 3105a0c5
2023-11-14
| ||
16:14 | Enable searching of wiki titles. (check-in: a402dd2a user: preben tags: trunk) | |
2023-09-28
| ||
13:38 | Mark closed leaves with an X on the timeline graph. (check-in: 57bea365 user: drh tags: trunk) | |
13:18 | branch ls should also flag private branches with -R. (Closed-Leaf check-in: fcb40ac9 user: preben tags: branch-ls-private-fix) | |
10:42 | Filter branch ls output by user with check-ins on the branches. (check-in: d0f15a1b user: preben tags: filter-branch-ls-by-user) | |
2023-09-27
| ||
19:43 | Remove while(1) loop made redundant by [239b4c1362]. (Closed-Leaf check-in: f36e8886 user: preben tags: redundant-while-loop) | |
2023-09-26
| ||
13:03 | Allow styling leaves of closed branches in /timeline. (check-in: e042be53 user: preben tags: indicate-closed-branches-in-timeline) | |
11:04 | Update FTS when creating/updating tickets. Also avoids a stray row with rid 0. (Closed-Leaf check-in: fb5d53ec user: preben tags: fts-ticket-updates) | |
10:20 | Generate output at the end of get_stext_by_mimetype() instead of within conditional branches. (Closed-Leaf check-in: 3105a0c5 user: preben tags: search-wiki-titles) | |
10:18 | Allow searching for wiki page titles as discussed in 31d8831c2d9809fa. (check-in: e6b8cc9f user: preben tags: search-wiki-titles) | |
2023-09-25
| ||
15:47 | If the value of a setting is changed into an empty string, then unset it, except for the rare setting that has the new keep-empty property. (Closed-Leaf check-in: b9bbb8d7 user: drh tags: unset-empty-settings) | |
2023-09-19
| ||
22:03 | Correction of simple typos in patch usage text. (check-in: 9b10bf45 user: mgagnon tags: trunk) | |
11:59 | Fix formatting for the help text of the 'branch' command. (check-in: 132af984 user: danield tags: trunk) | |
Changes to src/search.c.
︙ | ︙ | |||
1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 | } /* ** This is a helper function for search_stext(). Writing into pOut ** the search text obtained from pIn according to zMimetype. ** ** The title of the document is the first line of text. All subsequent ** lines are the body. If the document has no title, the first line ** is blank. */ static void get_stext_by_mimetype( Blob *pIn, const char *zMimetype, Blob *pOut ){ Blob html, title; blob_init(&html, 0, 0); | > > > > > > | > > > > > > | | | < < < < < | > | < | < | < < < | < > | < | 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 | } /* ** This is a helper function for search_stext(). Writing into pOut ** the search text obtained from pIn according to zMimetype. ** ** If a title is not specified in zTitle (e.g. for wiki pages that do not ** include the title in the body), it is determined from the page content. ** ** The title of the document is the first line of text. All subsequent ** lines are the body. If the document has no title, the first line ** is blank. */ static void get_stext_by_mimetype( Blob *pIn, const char *zMimetype, const char *zTitle, Blob *pOut ){ Blob html, title; Blob *pHtml = &html; blob_init(&html, 0, 0); if( zTitle==0 ){ blob_init(&title, 0, 0); }else{ blob_init(&title, zTitle, -1); } if( zMimetype==0 ) zMimetype = "text/plain"; if( fossil_strcmp(zMimetype,"text/x-fossil-wiki")==0 ){ if( blob_size(&title) ){ wiki_convert(pIn, &html, 0); }else{ Blob tail; blob_init(&tail, 0, 0); wiki_find_title(pIn, &title, &tail); wiki_convert(&tail, &html, 0); blob_reset(&tail); } }else if( fossil_strcmp(zMimetype,"text/x-markdown")==0 ){ markdown_to_html(pIn, blob_size(&title) ? NULL : &title, &html); }else if( fossil_strcmp(zMimetype,"text/html")==0 ){ if( blob_size(&title)==0 ) doc_is_embedded_html(pIn, &title); pHtml = pIn; } blob_appendf(pOut, "%s\n", blob_str(&title)); if( blob_size(pHtml) ){ html_to_plaintext(blob_str(pHtml), pOut); }else{ blob_append(pOut, blob_buffer(pIn), blob_size(pIn)); } blob_reset(&html); blob_reset(&title); } /* |
︙ | ︙ | |||
1303 1304 1305 1306 1307 1308 1309 | if( fossil_strcmp(zMime,"text/plain")==0 ) zMime = 0; }else if( zMime==0 || eType!=SQLITE_TEXT ){ blob_appendf(pAccum, "%s: %s |\n", zColName, db_column_text(pQuery,i)); }else{ Blob txt; blob_init(&txt, db_column_text(pQuery,i), -1); blob_appendf(pAccum, "%s: ", zColName); | | | 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 | if( fossil_strcmp(zMime,"text/plain")==0 ) zMime = 0; }else if( zMime==0 || eType!=SQLITE_TEXT ){ blob_appendf(pAccum, "%s: %s |\n", zColName, db_column_text(pQuery,i)); }else{ Blob txt; blob_init(&txt, db_column_text(pQuery,i), -1); blob_appendf(pAccum, "%s: ", zColName); get_stext_by_mimetype(&txt, zMime, NULL, pAccum); blob_append(pAccum, " |", 2); blob_reset(&txt); } } } |
︙ | ︙ | |||
1342 1343 1344 1345 1346 1347 1348 | ){ blob_init(pOut, 0, 0); switch( cType ){ case 'd': { /* Documents */ Blob doc; content_get(rid, &doc); blob_to_utf8_no_bom(&doc, 0); | | | 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 | ){ blob_init(pOut, 0, 0); switch( cType ){ case 'd': { /* Documents */ Blob doc; content_get(rid, &doc); blob_to_utf8_no_bom(&doc, 0); get_stext_by_mimetype(&doc, mimetype_from_name(zName), NULL, pOut); blob_reset(&doc); break; } case 'f': /* Forum messages */ case 'e': /* Tech Notes */ case 'w': { /* Wiki */ Manifest *pWiki = manifest_get(rid, |
︙ | ︙ | |||
1364 1365 1366 1367 1368 1369 1370 | blob_appendf(&wiki, "<h1>%h</h1>\n", pWiki->zThreadTitle); } blob_appendf(&wiki, "From %s:\n\n%s", pWiki->zUser, pWiki->zWiki); }else{ blob_init(&wiki, pWiki->zWiki, -1); } get_stext_by_mimetype(&wiki, wiki_filter_mimetypes(pWiki->zMimetype), | | | 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 | blob_appendf(&wiki, "<h1>%h</h1>\n", pWiki->zThreadTitle); } blob_appendf(&wiki, "From %s:\n\n%s", pWiki->zUser, pWiki->zWiki); }else{ blob_init(&wiki, pWiki->zWiki, -1); } get_stext_by_mimetype(&wiki, wiki_filter_mimetypes(pWiki->zMimetype), cType=='w' ? pWiki->zWikiTitle : NULL, pOut); blob_reset(&wiki); manifest_destroy(pWiki); break; } case 'c': { /* Check-in Comments */ static Stmt q; static int isPlainText = -1; |
︙ | ︙ | |||
1394 1395 1396 1397 1398 1399 1400 | blob_append(pOut, "\n", 1); if( isPlainText ){ db_column_blob(&q, 0, pOut); }else{ Blob x; blob_init(&x,0,0); db_column_blob(&q, 0, &x); | | | 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 | blob_append(pOut, "\n", 1); if( isPlainText ){ db_column_blob(&q, 0, pOut); }else{ Blob x; blob_init(&x,0,0); db_column_blob(&q, 0, &x); get_stext_by_mimetype(&x, "text/x-fossil-wiki", NULL, pOut); blob_reset(&x); } } db_reset(&q); break; } case 't': { /* Tickets */ |
︙ | ︙ | |||
1505 1506 1507 1508 1509 1510 1511 | */ void test_convert_stext(void){ Blob in, out; db_find_and_open_repository(0,0); if( g.argc!=4 ) usage("FILENAME MIMETYPE"); blob_read_from_file(&in, g.argv[2], ExtFILE); blob_init(&out, 0, 0); | | | 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 | */ void test_convert_stext(void){ Blob in, out; db_find_and_open_repository(0,0); if( g.argc!=4 ) usage("FILENAME MIMETYPE"); blob_read_from_file(&in, g.argv[2], ExtFILE); blob_init(&out, 0, 0); get_stext_by_mimetype(&in, g.argv[3], NULL, &out); fossil_print("%s\n",blob_str(&out)); blob_reset(&in); blob_reset(&out); } /* ** The schema for the full-text index. The %s part must be an empty |
︙ | ︙ |