Fossil SCM

Honor the "y=h" query option on the /search page even if help-search is disabled, but otherwise do not advertise help-search when it is disabled.

drh 2025-02-26 19:44 trunk
Commit 2e9e3695ae6f837e668e8398c34c9eed6c02ee6e091317d1c6dd7a87f7108ccd
+1 -1
--- src/dispatch.c
+++ src/dispatch.c
@@ -832,11 +832,11 @@
832832
833833
style_set_current_feature("tkt");
834834
style_header("Help: %s", zCmd);
835835
836836
style_submenu_element("Command-List", "%R/help");
837
- if( search_restrict(SRCH_HELP,0)!=0 ){
837
+ if( search_restrict(SRCH_HELP)!=0 ){
838838
style_submenu_element("Search","%R/search?y=h");
839839
}
840840
rc = dispatch_name_search(zCmd, CMDFLAG_ANY|CMDFLAG_PREFIX, &pCmd);
841841
if( *zCmd=='/' ){
842842
/* Some of the webpages require query parameters in order to work.
843843
--- src/dispatch.c
+++ src/dispatch.c
@@ -832,11 +832,11 @@
832
833 style_set_current_feature("tkt");
834 style_header("Help: %s", zCmd);
835
836 style_submenu_element("Command-List", "%R/help");
837 if( search_restrict(SRCH_HELP,0)!=0 ){
838 style_submenu_element("Search","%R/search?y=h");
839 }
840 rc = dispatch_name_search(zCmd, CMDFLAG_ANY|CMDFLAG_PREFIX, &pCmd);
841 if( *zCmd=='/' ){
842 /* Some of the webpages require query parameters in order to work.
843
--- src/dispatch.c
+++ src/dispatch.c
@@ -832,11 +832,11 @@
832
833 style_set_current_feature("tkt");
834 style_header("Help: %s", zCmd);
835
836 style_submenu_element("Command-List", "%R/help");
837 if( search_restrict(SRCH_HELP)!=0 ){
838 style_submenu_element("Search","%R/search?y=h");
839 }
840 rc = dispatch_name_search(zCmd, CMDFLAG_ANY|CMDFLAG_PREFIX, &pCmd);
841 if( *zCmd=='/' ){
842 /* Some of the webpages require query parameters in order to work.
843
+1 -1
--- src/forum.c
+++ src/forum.c
@@ -1927,11 +1927,11 @@
19271927
int srchFlags;
19281928
const int isSearch = P("s")!=0;
19291929
char const *zLimit = 0;
19301930
19311931
login_check_credentials();
1932
- srchFlags = search_restrict(SRCH_FORUM,0);
1932
+ srchFlags = search_restrict(SRCH_FORUM);
19331933
if( !g.perm.RdForum ){
19341934
login_needed(g.anon.RdForum);
19351935
return;
19361936
}
19371937
cgi_check_for_malice();
19381938
--- src/forum.c
+++ src/forum.c
@@ -1927,11 +1927,11 @@
1927 int srchFlags;
1928 const int isSearch = P("s")!=0;
1929 char const *zLimit = 0;
1930
1931 login_check_credentials();
1932 srchFlags = search_restrict(SRCH_FORUM,0);
1933 if( !g.perm.RdForum ){
1934 login_needed(g.anon.RdForum);
1935 return;
1936 }
1937 cgi_check_for_malice();
1938
--- src/forum.c
+++ src/forum.c
@@ -1927,11 +1927,11 @@
1927 int srchFlags;
1928 const int isSearch = P("s")!=0;
1929 char const *zLimit = 0;
1930
1931 login_check_credentials();
1932 srchFlags = search_restrict(SRCH_FORUM);
1933 if( !g.perm.RdForum ){
1934 login_needed(g.anon.RdForum);
1935 return;
1936 }
1937 cgi_check_for_malice();
1938
+27 -18
--- src/search.c
+++ src/search.c
@@ -739,11 +739,11 @@
739739
740740
db_find_and_open_repository(0, 0);
741741
verify_all_options();
742742
if( g.argc<3 ) return;
743743
login_set_capabilities("s", 0);
744
- if( search_restrict(srchFlags, 1)==0 ){
744
+ if( search_restrict(srchFlags)==0 && (srchFlags & SRCH_HELP)==0 ){
745745
const char *zC1 = 0, *zPlural = "s";
746746
if( srchFlags & SRCH_TECHNOTE ){ zC1 = "technote"; }
747747
if( srchFlags & SRCH_TKT ){ zC1 = "ticket"; }
748748
if( srchFlags & SRCH_FORUM ){ zC1 = "forum"; zPlural = ""; }
749749
if( srchFlags & SRCH_DOC ){ zC1 = "document"; }
@@ -861,11 +861,11 @@
861861
** the revised search flags mask.
862862
**
863863
** If bFlex is true, that means allow through the SRCH_HELP option
864864
** even if it is not explicitly enabled.
865865
*/
866
-unsigned int search_restrict(unsigned int srchFlags, int bFlex){
866
+unsigned int search_restrict(unsigned int srchFlags){
867867
static unsigned int knownGood = 0;
868868
static unsigned int knownBad = 0;
869869
static const struct { unsigned m; const char *zKey; } aSetng[] = {
870870
{ SRCH_CKIN, "search-ci" },
871871
{ SRCH_DOC, "search-doc" },
@@ -888,11 +888,10 @@
888888
knownGood |= m;
889889
}else{
890890
knownBad |= m;
891891
}
892892
}
893
- if( bFlex ) knownBad &= ~SRCH_HELP;
894893
return srchFlags & ~knownBad;
895894
}
896895
897896
/*
898897
** When this routine is called, there already exists a table
@@ -1296,11 +1295,11 @@
12961295
int nLimit = db_get_int("search-limit", 100);
12971296
12981297
if( P("searchlimit")!=0 ){
12991298
nLimit = atoi(P("searchlimit"));
13001299
}
1301
- srchFlags = search_restrict(srchFlags, 1);
1300
+ srchFlags = search_restrict(srchFlags) | (srchFlags & SRCH_HELP);
13021301
if( srchFlags==0 ) return 0;
13031302
search_sql_setup(g.db);
13041303
add_content_sql_commands(g.db);
13051304
db_multi_exec(
13061305
"CREATE TEMP TABLE x(label,url,score,id,date,snip);"
@@ -1365,29 +1364,35 @@
13651364
**
13661365
** 0x02 Show nothing if search is disabled.
13671366
**
13681367
** Return true if there are search results.
13691368
*/
1370
-int search_screen(unsigned srchFlags, int mFlags){
1369
+int search_screen(unsigned srchAllowed, int mFlags){
13711370
const char *zType = 0;
13721371
const char *zClass = 0;
13731372
const char *zDisable1;
13741373
const char *zDisable2;
13751374
const char *zPattern;
13761375
int fDebug = PB("debug");
13771376
int haveResult = 0;
1378
- srchFlags = search_restrict(srchFlags, 0);
1379
- switch( srchFlags ){
1377
+ int srchThisTime;
1378
+ const char *zY = PD("y","all");
1379
+ if( zY[0]=='h' && zY[1]==0 ){
1380
+ srchAllowed = search_restrict(srchAllowed) | (srchAllowed & SRCH_HELP);
1381
+ }else{
1382
+ srchAllowed = search_restrict(srchAllowed);
1383
+ }
1384
+ switch( srchAllowed ){
13801385
case SRCH_CKIN: zType = " Check-ins"; zClass = "Ckin"; break;
13811386
case SRCH_DOC: zType = " Docs"; zClass = "Doc"; break;
13821387
case SRCH_TKT: zType = " Tickets"; zClass = "Tkt"; break;
13831388
case SRCH_WIKI: zType = " Wiki"; zClass = "Wiki"; break;
13841389
case SRCH_TECHNOTE: zType = " Tech Notes"; zClass = "Note"; break;
13851390
case SRCH_FORUM: zType = " Forum"; zClass = "Frm"; break;
13861391
case SRCH_HELP: zType = " Help"; zClass = "Hlp"; break;
13871392
}
1388
- if( srchFlags==0 ){
1393
+ if( srchAllowed==0 ){
13891394
if( mFlags & 0x02 ) return 0;
13901395
zDisable1 = " disabled";
13911396
zDisable2 = " disabled";
13921397
zPattern = "";
13931398
}else{
@@ -1400,42 +1405,46 @@
14001405
@ <div class='searchForm searchForm%s(zClass)'>
14011406
}else{
14021407
@ <div class='searchForm'>
14031408
}
14041409
@ <input type="text" name="s" size="40" value="%h(zPattern)"%s(zDisable1)>
1405
- if( (mFlags & 0x01)!=0 && (srchFlags & (srchFlags-1))!=0 ){
1406
- static const struct { const char *z; const char *zNm; unsigned m; } aY[] = {
1410
+ srchThisTime = srchAllowed;
1411
+ if( (mFlags & 0x01)!=0 && (srchAllowed & (srchAllowed-1))!=0 ){
1412
+ static const struct {
1413
+ const char *z;
1414
+ const char *zNm;
1415
+ unsigned m;
1416
+ } aY[] = {
14071417
{ "all", "All", SRCH_ALL },
14081418
{ "c", "Check-ins", SRCH_CKIN },
14091419
{ "d", "Docs", SRCH_DOC },
14101420
{ "t", "Tickets", SRCH_TKT },
14111421
{ "w", "Wiki", SRCH_WIKI },
14121422
{ "e", "Tech Notes", SRCH_TECHNOTE },
14131423
{ "f", "Forum", SRCH_FORUM },
14141424
{ "h", "Help", SRCH_HELP },
14151425
};
1416
- const char *zY = PD("y","all");
1417
- unsigned newFlags = srchFlags;
14181426
int i;
14191427
@ <select size='1' name='y'>
14201428
for(i=0; i<count(aY); i++){
1421
- if( (aY[i].m & srchFlags)==0 ) continue;
1429
+ if( (aY[i].m & srchAllowed)==0 ) continue;
1430
+ if( aY[i].m==SRCH_HELP && fossil_strcmp(zY,"h")!=0
1431
+ && search_restrict(SRCH_HELP)==0 ) continue;
14221432
cgi_printf("<option value='%s'", aY[i].z);
14231433
if( fossil_strcmp(zY,aY[i].z)==0 ){
1424
- newFlags &= aY[i].m;
1434
+ srchThisTime &= aY[i].m;
14251435
cgi_printf(" selected");
14261436
}
14271437
cgi_printf(">%s</option>\n", aY[i].zNm);
14281438
}
14291439
@ </select>
1430
- srchFlags = newFlags;
14311440
}
14321441
if( fDebug ){
14331442
@ <input type="hidden" name="debug" value="1">
14341443
}
14351444
@ <input type="submit" value="Search%s(zType)"%s(zDisable2)>
1436
- if( srchFlags==0 ){
1445
+ if( srchAllowed==0 && srchThisTime==0 ){
14371446
@ <p class="generalError">Search is disabled</p>
14381447
}
14391448
@ </div></form>
14401449
while( fossil_isspace(zPattern[0]) ) zPattern++;
14411450
if( zPattern[0] ){
@@ -1442,11 +1451,11 @@
14421451
if( zClass ){
14431452
@ <div class='searchResult searchResult%s(zClass)'>
14441453
}else{
14451454
@ <div class='searchResult'>
14461455
}
1447
- if( search_run_and_output(zPattern, srchFlags, fDebug)==0 ){
1456
+ if( search_run_and_output(zPattern, srchThisTime, fDebug)==0 ){
14481457
@ <p class='searchEmpty'>No matches for: <span>%h(zPattern)</span></p>
14491458
}
14501459
@ </div>
14511460
haveResult = 1;
14521461
}
@@ -2245,11 +2254,11 @@
22452254
void search_rebuild_index(void){
22462255
fossil_print("rebuilding the search index...");
22472256
fflush(stdout);
22482257
search_create_index();
22492258
search_fill_index();
2250
- search_update_index(search_restrict(SRCH_ALL, 0));
2259
+ search_update_index(search_restrict(SRCH_ALL));
22512260
if( db_table_exists("repository","chat") ){
22522261
chat_rebuild_index(1);
22532262
}
22542263
fossil_print(" done\n");
22552264
}
22562265
--- src/search.c
+++ src/search.c
@@ -739,11 +739,11 @@
739
740 db_find_and_open_repository(0, 0);
741 verify_all_options();
742 if( g.argc<3 ) return;
743 login_set_capabilities("s", 0);
744 if( search_restrict(srchFlags, 1)==0 ){
745 const char *zC1 = 0, *zPlural = "s";
746 if( srchFlags & SRCH_TECHNOTE ){ zC1 = "technote"; }
747 if( srchFlags & SRCH_TKT ){ zC1 = "ticket"; }
748 if( srchFlags & SRCH_FORUM ){ zC1 = "forum"; zPlural = ""; }
749 if( srchFlags & SRCH_DOC ){ zC1 = "document"; }
@@ -861,11 +861,11 @@
861 ** the revised search flags mask.
862 **
863 ** If bFlex is true, that means allow through the SRCH_HELP option
864 ** even if it is not explicitly enabled.
865 */
866 unsigned int search_restrict(unsigned int srchFlags, int bFlex){
867 static unsigned int knownGood = 0;
868 static unsigned int knownBad = 0;
869 static const struct { unsigned m; const char *zKey; } aSetng[] = {
870 { SRCH_CKIN, "search-ci" },
871 { SRCH_DOC, "search-doc" },
@@ -888,11 +888,10 @@
888 knownGood |= m;
889 }else{
890 knownBad |= m;
891 }
892 }
893 if( bFlex ) knownBad &= ~SRCH_HELP;
894 return srchFlags & ~knownBad;
895 }
896
897 /*
898 ** When this routine is called, there already exists a table
@@ -1296,11 +1295,11 @@
1296 int nLimit = db_get_int("search-limit", 100);
1297
1298 if( P("searchlimit")!=0 ){
1299 nLimit = atoi(P("searchlimit"));
1300 }
1301 srchFlags = search_restrict(srchFlags, 1);
1302 if( srchFlags==0 ) return 0;
1303 search_sql_setup(g.db);
1304 add_content_sql_commands(g.db);
1305 db_multi_exec(
1306 "CREATE TEMP TABLE x(label,url,score,id,date,snip);"
@@ -1365,29 +1364,35 @@
1365 **
1366 ** 0x02 Show nothing if search is disabled.
1367 **
1368 ** Return true if there are search results.
1369 */
1370 int search_screen(unsigned srchFlags, int mFlags){
1371 const char *zType = 0;
1372 const char *zClass = 0;
1373 const char *zDisable1;
1374 const char *zDisable2;
1375 const char *zPattern;
1376 int fDebug = PB("debug");
1377 int haveResult = 0;
1378 srchFlags = search_restrict(srchFlags, 0);
1379 switch( srchFlags ){
 
 
 
 
 
 
1380 case SRCH_CKIN: zType = " Check-ins"; zClass = "Ckin"; break;
1381 case SRCH_DOC: zType = " Docs"; zClass = "Doc"; break;
1382 case SRCH_TKT: zType = " Tickets"; zClass = "Tkt"; break;
1383 case SRCH_WIKI: zType = " Wiki"; zClass = "Wiki"; break;
1384 case SRCH_TECHNOTE: zType = " Tech Notes"; zClass = "Note"; break;
1385 case SRCH_FORUM: zType = " Forum"; zClass = "Frm"; break;
1386 case SRCH_HELP: zType = " Help"; zClass = "Hlp"; break;
1387 }
1388 if( srchFlags==0 ){
1389 if( mFlags & 0x02 ) return 0;
1390 zDisable1 = " disabled";
1391 zDisable2 = " disabled";
1392 zPattern = "";
1393 }else{
@@ -1400,42 +1405,46 @@
1400 @ <div class='searchForm searchForm%s(zClass)'>
1401 }else{
1402 @ <div class='searchForm'>
1403 }
1404 @ <input type="text" name="s" size="40" value="%h(zPattern)"%s(zDisable1)>
1405 if( (mFlags & 0x01)!=0 && (srchFlags & (srchFlags-1))!=0 ){
1406 static const struct { const char *z; const char *zNm; unsigned m; } aY[] = {
 
 
 
 
 
1407 { "all", "All", SRCH_ALL },
1408 { "c", "Check-ins", SRCH_CKIN },
1409 { "d", "Docs", SRCH_DOC },
1410 { "t", "Tickets", SRCH_TKT },
1411 { "w", "Wiki", SRCH_WIKI },
1412 { "e", "Tech Notes", SRCH_TECHNOTE },
1413 { "f", "Forum", SRCH_FORUM },
1414 { "h", "Help", SRCH_HELP },
1415 };
1416 const char *zY = PD("y","all");
1417 unsigned newFlags = srchFlags;
1418 int i;
1419 @ <select size='1' name='y'>
1420 for(i=0; i<count(aY); i++){
1421 if( (aY[i].m & srchFlags)==0 ) continue;
 
 
1422 cgi_printf("<option value='%s'", aY[i].z);
1423 if( fossil_strcmp(zY,aY[i].z)==0 ){
1424 newFlags &= aY[i].m;
1425 cgi_printf(" selected");
1426 }
1427 cgi_printf(">%s</option>\n", aY[i].zNm);
1428 }
1429 @ </select>
1430 srchFlags = newFlags;
1431 }
1432 if( fDebug ){
1433 @ <input type="hidden" name="debug" value="1">
1434 }
1435 @ <input type="submit" value="Search%s(zType)"%s(zDisable2)>
1436 if( srchFlags==0 ){
1437 @ <p class="generalError">Search is disabled</p>
1438 }
1439 @ </div></form>
1440 while( fossil_isspace(zPattern[0]) ) zPattern++;
1441 if( zPattern[0] ){
@@ -1442,11 +1451,11 @@
1442 if( zClass ){
1443 @ <div class='searchResult searchResult%s(zClass)'>
1444 }else{
1445 @ <div class='searchResult'>
1446 }
1447 if( search_run_and_output(zPattern, srchFlags, fDebug)==0 ){
1448 @ <p class='searchEmpty'>No matches for: <span>%h(zPattern)</span></p>
1449 }
1450 @ </div>
1451 haveResult = 1;
1452 }
@@ -2245,11 +2254,11 @@
2245 void search_rebuild_index(void){
2246 fossil_print("rebuilding the search index...");
2247 fflush(stdout);
2248 search_create_index();
2249 search_fill_index();
2250 search_update_index(search_restrict(SRCH_ALL, 0));
2251 if( db_table_exists("repository","chat") ){
2252 chat_rebuild_index(1);
2253 }
2254 fossil_print(" done\n");
2255 }
2256
--- src/search.c
+++ src/search.c
@@ -739,11 +739,11 @@
739
740 db_find_and_open_repository(0, 0);
741 verify_all_options();
742 if( g.argc<3 ) return;
743 login_set_capabilities("s", 0);
744 if( search_restrict(srchFlags)==0 && (srchFlags & SRCH_HELP)==0 ){
745 const char *zC1 = 0, *zPlural = "s";
746 if( srchFlags & SRCH_TECHNOTE ){ zC1 = "technote"; }
747 if( srchFlags & SRCH_TKT ){ zC1 = "ticket"; }
748 if( srchFlags & SRCH_FORUM ){ zC1 = "forum"; zPlural = ""; }
749 if( srchFlags & SRCH_DOC ){ zC1 = "document"; }
@@ -861,11 +861,11 @@
861 ** the revised search flags mask.
862 **
863 ** If bFlex is true, that means allow through the SRCH_HELP option
864 ** even if it is not explicitly enabled.
865 */
866 unsigned int search_restrict(unsigned int srchFlags){
867 static unsigned int knownGood = 0;
868 static unsigned int knownBad = 0;
869 static const struct { unsigned m; const char *zKey; } aSetng[] = {
870 { SRCH_CKIN, "search-ci" },
871 { SRCH_DOC, "search-doc" },
@@ -888,11 +888,10 @@
888 knownGood |= m;
889 }else{
890 knownBad |= m;
891 }
892 }
 
893 return srchFlags & ~knownBad;
894 }
895
896 /*
897 ** When this routine is called, there already exists a table
@@ -1296,11 +1295,11 @@
1295 int nLimit = db_get_int("search-limit", 100);
1296
1297 if( P("searchlimit")!=0 ){
1298 nLimit = atoi(P("searchlimit"));
1299 }
1300 srchFlags = search_restrict(srchFlags) | (srchFlags & SRCH_HELP);
1301 if( srchFlags==0 ) return 0;
1302 search_sql_setup(g.db);
1303 add_content_sql_commands(g.db);
1304 db_multi_exec(
1305 "CREATE TEMP TABLE x(label,url,score,id,date,snip);"
@@ -1365,29 +1364,35 @@
1364 **
1365 ** 0x02 Show nothing if search is disabled.
1366 **
1367 ** Return true if there are search results.
1368 */
1369 int search_screen(unsigned srchAllowed, int mFlags){
1370 const char *zType = 0;
1371 const char *zClass = 0;
1372 const char *zDisable1;
1373 const char *zDisable2;
1374 const char *zPattern;
1375 int fDebug = PB("debug");
1376 int haveResult = 0;
1377 int srchThisTime;
1378 const char *zY = PD("y","all");
1379 if( zY[0]=='h' && zY[1]==0 ){
1380 srchAllowed = search_restrict(srchAllowed) | (srchAllowed & SRCH_HELP);
1381 }else{
1382 srchAllowed = search_restrict(srchAllowed);
1383 }
1384 switch( srchAllowed ){
1385 case SRCH_CKIN: zType = " Check-ins"; zClass = "Ckin"; break;
1386 case SRCH_DOC: zType = " Docs"; zClass = "Doc"; break;
1387 case SRCH_TKT: zType = " Tickets"; zClass = "Tkt"; break;
1388 case SRCH_WIKI: zType = " Wiki"; zClass = "Wiki"; break;
1389 case SRCH_TECHNOTE: zType = " Tech Notes"; zClass = "Note"; break;
1390 case SRCH_FORUM: zType = " Forum"; zClass = "Frm"; break;
1391 case SRCH_HELP: zType = " Help"; zClass = "Hlp"; break;
1392 }
1393 if( srchAllowed==0 ){
1394 if( mFlags & 0x02 ) return 0;
1395 zDisable1 = " disabled";
1396 zDisable2 = " disabled";
1397 zPattern = "";
1398 }else{
@@ -1400,42 +1405,46 @@
1405 @ <div class='searchForm searchForm%s(zClass)'>
1406 }else{
1407 @ <div class='searchForm'>
1408 }
1409 @ <input type="text" name="s" size="40" value="%h(zPattern)"%s(zDisable1)>
1410 srchThisTime = srchAllowed;
1411 if( (mFlags & 0x01)!=0 && (srchAllowed & (srchAllowed-1))!=0 ){
1412 static const struct {
1413 const char *z;
1414 const char *zNm;
1415 unsigned m;
1416 } aY[] = {
1417 { "all", "All", SRCH_ALL },
1418 { "c", "Check-ins", SRCH_CKIN },
1419 { "d", "Docs", SRCH_DOC },
1420 { "t", "Tickets", SRCH_TKT },
1421 { "w", "Wiki", SRCH_WIKI },
1422 { "e", "Tech Notes", SRCH_TECHNOTE },
1423 { "f", "Forum", SRCH_FORUM },
1424 { "h", "Help", SRCH_HELP },
1425 };
 
 
1426 int i;
1427 @ <select size='1' name='y'>
1428 for(i=0; i<count(aY); i++){
1429 if( (aY[i].m & srchAllowed)==0 ) continue;
1430 if( aY[i].m==SRCH_HELP && fossil_strcmp(zY,"h")!=0
1431 && search_restrict(SRCH_HELP)==0 ) continue;
1432 cgi_printf("<option value='%s'", aY[i].z);
1433 if( fossil_strcmp(zY,aY[i].z)==0 ){
1434 srchThisTime &= aY[i].m;
1435 cgi_printf(" selected");
1436 }
1437 cgi_printf(">%s</option>\n", aY[i].zNm);
1438 }
1439 @ </select>
 
1440 }
1441 if( fDebug ){
1442 @ <input type="hidden" name="debug" value="1">
1443 }
1444 @ <input type="submit" value="Search%s(zType)"%s(zDisable2)>
1445 if( srchAllowed==0 && srchThisTime==0 ){
1446 @ <p class="generalError">Search is disabled</p>
1447 }
1448 @ </div></form>
1449 while( fossil_isspace(zPattern[0]) ) zPattern++;
1450 if( zPattern[0] ){
@@ -1442,11 +1451,11 @@
1451 if( zClass ){
1452 @ <div class='searchResult searchResult%s(zClass)'>
1453 }else{
1454 @ <div class='searchResult'>
1455 }
1456 if( search_run_and_output(zPattern, srchThisTime, fDebug)==0 ){
1457 @ <p class='searchEmpty'>No matches for: <span>%h(zPattern)</span></p>
1458 }
1459 @ </div>
1460 haveResult = 1;
1461 }
@@ -2245,11 +2254,11 @@
2254 void search_rebuild_index(void){
2255 fossil_print("rebuilding the search index...");
2256 fflush(stdout);
2257 search_create_index();
2258 search_fill_index();
2259 search_update_index(search_restrict(SRCH_ALL));
2260 if( db_table_exists("repository","chat") ){
2261 chat_rebuild_index(1);
2262 }
2263 fossil_print(" done\n");
2264 }
2265
+1 -1
--- src/setup.c
+++ src/setup.c
@@ -2265,11 +2265,11 @@
22652265
const char *zTokenizer = PD("ftstok","off");
22662266
search_set_tokenizer(zTokenizer);
22672267
search_drop_index();
22682268
search_create_index();
22692269
search_fill_index();
2270
- search_update_index(search_restrict(SRCH_ALL,0));
2270
+ search_update_index(search_restrict(SRCH_ALL));
22712271
}
22722272
if( search_index_exists() ){
22732273
int pgsz = db_int64(0, "PRAGMA repository.page_size;");
22742274
i64 nTotal = db_int64(0, "PRAGMA repository.page_count;")*pgsz;
22752275
i64 nFts = db_int64(0, "SELECT count(*) FROM dbstat"
22762276
--- src/setup.c
+++ src/setup.c
@@ -2265,11 +2265,11 @@
2265 const char *zTokenizer = PD("ftstok","off");
2266 search_set_tokenizer(zTokenizer);
2267 search_drop_index();
2268 search_create_index();
2269 search_fill_index();
2270 search_update_index(search_restrict(SRCH_ALL,0));
2271 }
2272 if( search_index_exists() ){
2273 int pgsz = db_int64(0, "PRAGMA repository.page_size;");
2274 i64 nTotal = db_int64(0, "PRAGMA repository.page_count;")*pgsz;
2275 i64 nFts = db_int64(0, "SELECT count(*) FROM dbstat"
2276
--- src/setup.c
+++ src/setup.c
@@ -2265,11 +2265,11 @@
2265 const char *zTokenizer = PD("ftstok","off");
2266 search_set_tokenizer(zTokenizer);
2267 search_drop_index();
2268 search_create_index();
2269 search_fill_index();
2270 search_update_index(search_restrict(SRCH_ALL));
2271 }
2272 if( search_index_exists() ){
2273 int pgsz = db_int64(0, "PRAGMA repository.page_size;");
2274 i64 nTotal = db_int64(0, "PRAGMA repository.page_count;")*pgsz;
2275 i64 nFts = db_int64(0, "SELECT count(*) FROM dbstat"
2276
+1 -1
--- src/sitemap.c
+++ src/sitemap.c
@@ -64,11 +64,11 @@
6464
** then disable anti-robot defenses */
6565
isPopup = 1;
6666
g.perm.Hyperlink = 1;
6767
g.jsHref = 0;
6868
}
69
- srchFlags = search_restrict(SRCH_ALL,0);
69
+ srchFlags = search_restrict(SRCH_ALL);
7070
if( !isPopup ){
7171
style_header("Site Map");
7272
style_adunit_config(ADUNIT_RIGHT_OK);
7373
}
7474
7575
--- src/sitemap.c
+++ src/sitemap.c
@@ -64,11 +64,11 @@
64 ** then disable anti-robot defenses */
65 isPopup = 1;
66 g.perm.Hyperlink = 1;
67 g.jsHref = 0;
68 }
69 srchFlags = search_restrict(SRCH_ALL,0);
70 if( !isPopup ){
71 style_header("Site Map");
72 style_adunit_config(ADUNIT_RIGHT_OK);
73 }
74
75
--- src/sitemap.c
+++ src/sitemap.c
@@ -64,11 +64,11 @@
64 ** then disable anti-robot defenses */
65 isPopup = 1;
66 g.perm.Hyperlink = 1;
67 g.jsHref = 0;
68 }
69 srchFlags = search_restrict(SRCH_ALL);
70 if( !isPopup ){
71 style_header("Site Map");
72 style_adunit_config(ADUNIT_RIGHT_OK);
73 }
74
75
+1 -1
--- src/th_main.c
+++ src/th_main.c
@@ -915,11 +915,11 @@
915915
int argc,
916916
const char **argv,
917917
int *argl
918918
){
919919
int rc = 1, i, j;
920
- unsigned int searchCap = search_restrict(SRCH_ALL, 0);
920
+ unsigned int searchCap = search_restrict(SRCH_ALL);
921921
if( argc<2 ){
922922
return Th_WrongNumArgs(interp, "hascap STRING ...");
923923
}
924924
for(i=1; i<argc && rc; i++){
925925
int match = 0;
926926
--- src/th_main.c
+++ src/th_main.c
@@ -915,11 +915,11 @@
915 int argc,
916 const char **argv,
917 int *argl
918 ){
919 int rc = 1, i, j;
920 unsigned int searchCap = search_restrict(SRCH_ALL, 0);
921 if( argc<2 ){
922 return Th_WrongNumArgs(interp, "hascap STRING ...");
923 }
924 for(i=1; i<argc && rc; i++){
925 int match = 0;
926
--- src/th_main.c
+++ src/th_main.c
@@ -915,11 +915,11 @@
915 int argc,
916 const char **argv,
917 int *argl
918 ){
919 int rc = 1, i, j;
920 unsigned int searchCap = search_restrict(SRCH_ALL);
921 if( argc<2 ){
922 return Th_WrongNumArgs(interp, "hascap STRING ...");
923 }
924 for(i=1; i<argc && rc; i++){
925 int match = 0;
926
+1 -1
--- src/timeline.c
+++ src/timeline.c
@@ -3005,11 +3005,11 @@
30053005
if( showSql ){
30063006
db_append_dml_to_blob(0);
30073007
@ <pre>%h(blob_str(&allSql))</pre>
30083008
blob_reset(&allSql);
30093009
}
3010
- if( search_restrict(SRCH_CKIN, 0)!=0 ){
3010
+ if( search_restrict(SRCH_CKIN)!=0 ){
30113011
style_submenu_element("Search", "%R/search?y=c");
30123012
}
30133013
if( advancedMenu ){
30143014
style_submenu_element("Basic", "%s",
30153015
url_render(&url, "advm", "0", "udc", "1"));
30163016
--- src/timeline.c
+++ src/timeline.c
@@ -3005,11 +3005,11 @@
3005 if( showSql ){
3006 db_append_dml_to_blob(0);
3007 @ <pre>%h(blob_str(&allSql))</pre>
3008 blob_reset(&allSql);
3009 }
3010 if( search_restrict(SRCH_CKIN, 0)!=0 ){
3011 style_submenu_element("Search", "%R/search?y=c");
3012 }
3013 if( advancedMenu ){
3014 style_submenu_element("Basic", "%s",
3015 url_render(&url, "advm", "0", "udc", "1"));
3016
--- src/timeline.c
+++ src/timeline.c
@@ -3005,11 +3005,11 @@
3005 if( showSql ){
3006 db_append_dml_to_blob(0);
3007 @ <pre>%h(blob_str(&allSql))</pre>
3008 blob_reset(&allSql);
3009 }
3010 if( search_restrict(SRCH_CKIN)!=0 ){
3011 style_submenu_element("Search", "%R/search?y=c");
3012 }
3013 if( advancedMenu ){
3014 style_submenu_element("Basic", "%s",
3015 url_render(&url, "advm", "0", "udc", "1"));
3016
+2 -2
--- src/tkt.c
+++ src/tkt.c
@@ -1858,11 +1858,11 @@
18581858
18591859
/*
18601860
** Add some standard submenu elements for ticket screens.
18611861
*/
18621862
void ticket_standard_submenu(unsigned int ok){
1863
- if( (ok & T_SRCH)!=0 && search_restrict(SRCH_TKT, 0)!=0 ){
1863
+ if( (ok & T_SRCH)!=0 && search_restrict(SRCH_TKT)!=0 ){
18641864
style_submenu_element("Search", "%R/tktsrch");
18651865
}
18661866
if( (ok & T_REPLIST)!=0 ){
18671867
style_submenu_element("Reports", "%R/reportlist");
18681868
}
@@ -1878,11 +1878,11 @@
18781878
** either ticket-search (if search is enabled) or as the
18791879
** /reportlist page (if ticket search is disabled).
18801880
*/
18811881
void tkt_home_page(void){
18821882
login_check_credentials();
1883
- if( search_restrict(SRCH_TKT, 0)!=0 ){
1883
+ if( search_restrict(SRCH_TKT)!=0 ){
18841884
tkt_srchpage();
18851885
}else{
18861886
view_list();
18871887
}
18881888
}
18891889
--- src/tkt.c
+++ src/tkt.c
@@ -1858,11 +1858,11 @@
1858
1859 /*
1860 ** Add some standard submenu elements for ticket screens.
1861 */
1862 void ticket_standard_submenu(unsigned int ok){
1863 if( (ok & T_SRCH)!=0 && search_restrict(SRCH_TKT, 0)!=0 ){
1864 style_submenu_element("Search", "%R/tktsrch");
1865 }
1866 if( (ok & T_REPLIST)!=0 ){
1867 style_submenu_element("Reports", "%R/reportlist");
1868 }
@@ -1878,11 +1878,11 @@
1878 ** either ticket-search (if search is enabled) or as the
1879 ** /reportlist page (if ticket search is disabled).
1880 */
1881 void tkt_home_page(void){
1882 login_check_credentials();
1883 if( search_restrict(SRCH_TKT, 0)!=0 ){
1884 tkt_srchpage();
1885 }else{
1886 view_list();
1887 }
1888 }
1889
--- src/tkt.c
+++ src/tkt.c
@@ -1858,11 +1858,11 @@
1858
1859 /*
1860 ** Add some standard submenu elements for ticket screens.
1861 */
1862 void ticket_standard_submenu(unsigned int ok){
1863 if( (ok & T_SRCH)!=0 && search_restrict(SRCH_TKT)!=0 ){
1864 style_submenu_element("Search", "%R/tktsrch");
1865 }
1866 if( (ok & T_REPLIST)!=0 ){
1867 style_submenu_element("Reports", "%R/reportlist");
1868 }
@@ -1878,11 +1878,11 @@
1878 ** either ticket-search (if search is enabled) or as the
1879 ** /reportlist page (if ticket search is disabled).
1880 */
1881 void tkt_home_page(void){
1882 login_check_credentials();
1883 if( search_restrict(SRCH_TKT)!=0 ){
1884 tkt_srchpage();
1885 }else{
1886 view_list();
1887 }
1888 }
1889
+3 -3
--- src/wiki.c
+++ src/wiki.c
@@ -332,11 +332,11 @@
332332
333333
/*
334334
** Add some standard submenu elements for wiki screens.
335335
*/
336336
static void wiki_standard_submenu(unsigned int ok){
337
- if( (ok & W_SRCH)!=0 && search_restrict(SRCH_WIKI,0)!=0 ){
337
+ if( (ok & W_SRCH)!=0 && search_restrict(SRCH_WIKI)!=0 ){
338338
style_submenu_element("Search", "%R/wikisrch");
339339
}
340340
if( (ok & W_LIST)!=0 ){
341341
style_submenu_element("List", "%R/wcontent");
342342
}
@@ -379,11 +379,11 @@
379379
@ <li> %z(href("%R/timeline?y=e"))List of All Tech-notes</a>
380380
@ available on this server.</li>
381381
if( g.perm.ModWiki ){
382382
@ <li> %z(href("%R/modreq"))Tend to pending moderation requests</a></li>
383383
}
384
- if( search_restrict(SRCH_WIKI,0)!=0 ){
384
+ if( search_restrict(SRCH_WIKI)!=0 ){
385385
@ <li> %z(href("%R/wikisrch"))Search</a> for wiki pages containing key
386386
@ words</li>
387387
}
388388
@ </ul>
389389
style_finish_page();
@@ -580,11 +580,11 @@
580580
if( !g.perm.RdWiki ){ login_needed(g.anon.RdWiki); return; }
581581
zPageName = P("name");
582582
(void)P("s")/*for cgi_check_for_malice(). "s" == search stringy*/;
583583
cgi_check_for_malice();
584584
if( zPageName==0 ){
585
- if( search_restrict(SRCH_WIKI,0)!=0 ){
585
+ if( search_restrict(SRCH_WIKI)!=0 ){
586586
wiki_srchpage();
587587
}else{
588588
wiki_helppage();
589589
}
590590
return;
591591
--- src/wiki.c
+++ src/wiki.c
@@ -332,11 +332,11 @@
332
333 /*
334 ** Add some standard submenu elements for wiki screens.
335 */
336 static void wiki_standard_submenu(unsigned int ok){
337 if( (ok & W_SRCH)!=0 && search_restrict(SRCH_WIKI,0)!=0 ){
338 style_submenu_element("Search", "%R/wikisrch");
339 }
340 if( (ok & W_LIST)!=0 ){
341 style_submenu_element("List", "%R/wcontent");
342 }
@@ -379,11 +379,11 @@
379 @ <li> %z(href("%R/timeline?y=e"))List of All Tech-notes</a>
380 @ available on this server.</li>
381 if( g.perm.ModWiki ){
382 @ <li> %z(href("%R/modreq"))Tend to pending moderation requests</a></li>
383 }
384 if( search_restrict(SRCH_WIKI,0)!=0 ){
385 @ <li> %z(href("%R/wikisrch"))Search</a> for wiki pages containing key
386 @ words</li>
387 }
388 @ </ul>
389 style_finish_page();
@@ -580,11 +580,11 @@
580 if( !g.perm.RdWiki ){ login_needed(g.anon.RdWiki); return; }
581 zPageName = P("name");
582 (void)P("s")/*for cgi_check_for_malice(). "s" == search stringy*/;
583 cgi_check_for_malice();
584 if( zPageName==0 ){
585 if( search_restrict(SRCH_WIKI,0)!=0 ){
586 wiki_srchpage();
587 }else{
588 wiki_helppage();
589 }
590 return;
591
--- src/wiki.c
+++ src/wiki.c
@@ -332,11 +332,11 @@
332
333 /*
334 ** Add some standard submenu elements for wiki screens.
335 */
336 static void wiki_standard_submenu(unsigned int ok){
337 if( (ok & W_SRCH)!=0 && search_restrict(SRCH_WIKI)!=0 ){
338 style_submenu_element("Search", "%R/wikisrch");
339 }
340 if( (ok & W_LIST)!=0 ){
341 style_submenu_element("List", "%R/wcontent");
342 }
@@ -379,11 +379,11 @@
379 @ <li> %z(href("%R/timeline?y=e"))List of All Tech-notes</a>
380 @ available on this server.</li>
381 if( g.perm.ModWiki ){
382 @ <li> %z(href("%R/modreq"))Tend to pending moderation requests</a></li>
383 }
384 if( search_restrict(SRCH_WIKI)!=0 ){
385 @ <li> %z(href("%R/wikisrch"))Search</a> for wiki pages containing key
386 @ words</li>
387 }
388 @ </ul>
389 style_finish_page();
@@ -580,11 +580,11 @@
580 if( !g.perm.RdWiki ){ login_needed(g.anon.RdWiki); return; }
581 zPageName = P("name");
582 (void)P("s")/*for cgi_check_for_malice(). "s" == search stringy*/;
583 cgi_check_for_malice();
584 if( zPageName==0 ){
585 if( search_restrict(SRCH_WIKI)!=0 ){
586 wiki_srchpage();
587 }else{
588 wiki_helppage();
589 }
590 return;
591

Keyboard Shortcuts

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