@@ -558,96 +558,216 @@
558 558 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_create_function(db, "body", 3, enc, 0,
559 559 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
search_body_sqlfunc, 0, 0);
560 560 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
sqlite3_create_function(db, "urlencode", 1, enc, 0,
561 561 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
search_urlencode_sqlfunc, 0, 0);
562 562 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
563 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
564 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
565 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** The pSnip input contains snippet text from a search formatted
566 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** as HTML. Attempt to make that text more readable on a TTY.
567 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
568 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** If nTty is positive, use ANSI escape codes "\e[Nm" where N is nTty
569 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** to highly marked text.
570 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
571 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ void search_snippet_to_plaintext(Blob *pSnip, int nTty){
572 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char *zSnip;
573 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ unsigned int j, k;
574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
575 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zSnip = pSnip->aData;
576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(j=k=0; j<pSnip->nUsed; j++){
577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char c = zSnip[j];
578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( c=='<' ){
579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( memcmp(&zSnip[j],"<mark>",6)==0 ){
580 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( nTty ){
581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zSnip[k++] = 0x1b;
582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zSnip[k++] = '[';
583 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( nTty>=10 ) zSnip[k++] = (nTty/10)%10 + '0';
584 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zSnip[k++] = nTty%10 + '0';
585 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zSnip[k++] = 'm';
586 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ j += 5;
588 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( memcmp(&zSnip[j],"</mark>",7)==0 ){
589 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( nTty ){
590 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zSnip[k++] = 0x1b;
591 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zSnip[k++] = '[';
592 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zSnip[k++] = '0';
593 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zSnip[k++] = 'm';
594 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
595 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ j += 6;
596 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
597 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zSnip[k++] = zSnip[j];
598 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
599 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( fossil_isspace(c) ){
600 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zSnip[k++] = ' ';
601 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ while( fossil_isspace(zSnip[j+1]) ) j++;
602 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( c=='&' ){
603 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( zSnip[j+1]=='#' && fossil_isdigit(zSnip[j+2]) ){
604 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int n = 3;
605 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int x = zSnip[j+2] - '0';
606 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( fossil_isdigit(zSnip[j+3]) ){
607 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ x = x*10 + zSnip[j+3] - '0';
608 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ n++;
609 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( fossil_isdigit(zSnip[j+4]) ){
610 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ x = x*10 + zSnip[j+4] - '0';
611 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ n++;
612 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
613 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
614 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( zSnip[j+n]==';' ){
615 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zSnip[k++] = (char)x;
616 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ j += n;
617 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
618 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zSnip[k++] = c;
619 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
620 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( memcmp(&zSnip[j],"<",4)==0 ){
621 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zSnip[k++] = '<';
622 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ j += 3;
623 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( memcmp(&zSnip[j],">",4)==0 ){
624 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zSnip[k++] = '>';
625 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ j += 3;
626 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( memcmp(&zSnip[j],""",6)==0 ){
627 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zSnip[k++] = '<';
628 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ j += 5;
629 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( memcmp(&zSnip[j],"&",5)==0 ){
630 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zSnip[k++] = '<';
631 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ j += 4;
632 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
633 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zSnip[k++] = c;
634 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
635 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
636 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zSnip[k++] = c;
637 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
638 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
639 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zSnip[k] = 0;
640 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ pSnip->nUsed = k;
641 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
563 642 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
564 643 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
565 644 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Testing the search function.
566 645 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
567 646 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** COMMAND: search*
568 647 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
569 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Usage: %fossil search [-a|-all] [-n|-limit #] [-W|-width #] pattern...
570 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
571 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Search for timeline entries matching all words provided on the
572 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** command line. Whole-word matches scope more highly than partial
573 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** matches.
574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
575 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Note: This command only searches the EVENT table. So it will only
576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** display check-in comments or other comments that appear on an
577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** unaugmented timeline. It does not search document text or forum
578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** messages.
579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- **
580 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** Outputs, by default, some top-N fraction of the results. The -all
581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** option can be used to output all matches, regardless of their search
582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** score. The -limit option can be used to limit the number of entries
583 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** returned. The -width option can be used to set the output width used
584 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** when printing matches.
648 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Usage: %fossil search [OPTIONS] PATTERN...
649 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
650 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Search the repository database for PATTERN and show matches.
651 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** The following elements of the repository can be searched:
652 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
653 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** * check-in comments
654 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** * embedded documentation
655 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** * forum posts
656 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** * tickets
657 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** * tech notes
658 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** * wiki pages
659 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** * built-in fossil help text
660 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
661 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Use options (listed below) to select the scope of the search. The
662 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** default is check-in comments only.
585 663 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
586 664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Options:
587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** -a|--all Output all matches, not just best matches
588 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** --debug Show additional debug content on --fts search
589 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** --fts Use the full-text search mechanism (testing only)
665 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** -a|--all Search everything
666 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** -c|--checkins Search checkin comments
667 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** --docs Search embedded documentation
668 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** --forum Search forum posts
669 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** -h|--bi-help Search built-in help
590 670 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** -n|--limit N Limit output to N matches
591 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** --scope SCOPE Scope of search. Valid for --fts only. One or
592 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** more of: all, c, d, e, f, t, w. Defaults to all.
671 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** --technotes Search tech notes
672 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** --tickets Search tickets
593 673 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** -W|--width WIDTH Set display width to WIDTH columns, 0 for
594 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** unlimited. Defaults the terminal's width.
674 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** unlimited. Defaults to the terminal's width.
675 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** --wiki Search wiki
595 676 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
596 677 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void search_cmd(void){
597 678 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Blob pattern;
598 679 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i;
599 680 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Blob sql = empty_blob;
600 681 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Stmt q;
601 682 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iBest;
683 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int srchFlags = 0;
684 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int bFts = 1; /* Use FTS search by default now */
602 685 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char fAll = NULL != find_option("all", "a", 0);
603 686 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zLimit = find_option("limit","n",1);
687 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zScope = 0;
604 688 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zWidth = find_option("width","W",1);
605 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const char *zScope = find_option("scope",0,1);
606 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int bDebug = find_option("debug",0,0)!=0;
689 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int bDebug = find_option("debug",0,0)!=0; /* Undocumented */
607 690 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nLimit = zLimit ? atoi(zLimit) : -1000;
608 691 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int width;
609 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int bFts = find_option("fts",0,0)!=0;
692 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int nTty = fossil_isatty(1) ? 91 : 0;
693 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
694 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Undocumented option to change highlight color */
695 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zHighlight = find_option("highlight",0,1);
696 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( zHighlight ) nTty = atoi(zHighlight);
697 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
698 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Undocumented option (legacy) */
699 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zScope = find_option("scope",0,1);
700 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
701 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( find_option("fts",0,0)!=0 ) bFts = 1; /* Undocumented legacy */
702 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( find_option("legacy",0,0)!=0 ) bFts = 0; /* Undocumented */
610 703 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
611 704 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zWidth ){
612 705 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
width = atoi(zWidth);
613 706 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( (width!=0) && (width<=20) ){
614 707 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_fatal("-W|--width value must be >20 or 0");
615 708 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
616 709 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
617 710 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
width = -1;
618 711 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
712 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( zScope ){
713 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(i=0; zScope[i]; i++){
714 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ switch( zScope[i] ){
715 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 'a': srchFlags = SRCH_ALL; break;
716 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 'c': srchFlags |= SRCH_CKIN; break;
717 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 'd': srchFlags |= SRCH_DOC; break;
718 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 'e': srchFlags |= SRCH_TECHNOTE; break;
719 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 'f': srchFlags |= SRCH_FORUM; break;
720 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 'h': srchFlags |= SRCH_HELP; break;
721 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 't': srchFlags |= SRCH_TKT; break;
722 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case 'w': srchFlags |= SRCH_WIKI; break;
723 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
724 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
725 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ bFts = 1;
726 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
727 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( find_option("all","a",0) ){ srchFlags |= SRCH_ALL; bFts = 1; }
728 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( find_option("bi-help","h",0) ){ srchFlags |= SRCH_HELP; bFts = 1; }
729 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( find_option("checkins","c",0) ){ srchFlags |= SRCH_CKIN; bFts = 1; }
730 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( find_option("docs",0,0) ){ srchFlags |= SRCH_DOC; bFts = 1; }
731 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( find_option("forum",0,0) ){ srchFlags |= SRCH_FORUM; bFts = 1; }
732 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( find_option("technotes",0,0) ){ srchFlags |= SRCH_TECHNOTE; bFts = 1; }
733 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( find_option("tickets",0,0) ){ srchFlags |= SRCH_TKT; bFts = 1; }
734 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( find_option("wiki",0,0) ){ srchFlags |= SRCH_WIKI; bFts = 1; }
735 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
736 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* If no search objects are specified, default to "check-in comments" */
737 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( srchFlags==0 ) srchFlags = SRCH_CKIN;
738 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
619 739 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
620 740 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_find_and_open_repository(0, 0);
741 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ verify_all_options();
621 742 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( g.argc<3 ) return;
743 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ login_set_capabilities("s", 0);
744 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( search_restrict(srchFlags, 1)==0 ){
745 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zC1 = 0, *zPlural = "s";
746 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( srchFlags & SRCH_TECHNOTE ){ zC1 = "technote"; }
747 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( srchFlags & SRCH_TKT ){ zC1 = "ticket"; }
748 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( srchFlags & SRCH_FORUM ){ zC1 = "forum"; zPlural = ""; }
749 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( srchFlags & SRCH_DOC ){ zC1 = "document"; }
750 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( srchFlags & SRCH_WIKI ){ zC1 = "wiki"; zPlural = ""; }
751 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( srchFlags & SRCH_CKIN ){ zC1 = "check-in"; }
752 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil_print(
753 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "Search of %s%s is disabled on this repository.\n"
754 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "Enable using \"fossil fts-config enable %s\".\n",
755 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zC1, zPlural, zC1
756 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ );
757 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return;
758 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
759 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
622 760 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_init(&pattern, g.argv[2], -1);
623 761 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=3; i<g.argc; i++){
624 762 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_appendf(&pattern, " %s", g.argv[i]);
625 763 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
626 764 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( bFts ){
627 765 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Search using FTS */
628 766 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Blob com;
629 767 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Blob snip;
630 768 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zPattern = blob_str(&pattern);
631 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int srchFlags;
632 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- unsigned int j;
633 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( zScope==0 ){
634 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- srchFlags = SRCH_ALL;
635 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
636 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- srchFlags = 0;
637 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- for(i=0; zScope[i]; i++){
638 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- switch( zScope[i] ){
639 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 'a': srchFlags = SRCH_ALL; break;
640 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 'c': srchFlags |= SRCH_CKIN; break;
641 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 'd': srchFlags |= SRCH_DOC; break;
642 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 'e': srchFlags |= SRCH_TECHNOTE; break;
643 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 'f': srchFlags |= SRCH_FORUM; break;
644 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 't': srchFlags |= SRCH_TKT; break;
645 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- case 'w': srchFlags |= SRCH_WIKI; break;
646 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
647 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
648 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
649 769 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
search_sql_setup(g.db);
650 770 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
add_content_sql_commands(g.db);
651 771 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_multi_exec(
652 772 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"CREATE TEMP TABLE x(label,url,score,id,date,snip);"
653 773 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
@@ -654,10 +774,13 @@
654 774 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !search_index_exists() ){
655 775 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
search_fullscan(zPattern, srchFlags); /* Full-scan search */
656 776 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
657 777 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
search_update_index(srchFlags); /* Update the index */
658 778 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
search_indexed(zPattern, srchFlags); /* Indexed search */
779 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( srchFlags & SRCH_HELP ){
780 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ search_fullscan(zPattern, SRCH_HELP);
781 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
659 782 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
660 783 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_prepare(&q, "SELECT snip, label, score, id, date"
661 784 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
" FROM x"
662 785 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
" ORDER BY score DESC, date DESC;");
663 786 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_init(&com, 0, 0);
@@ -668,16 +791,11 @@
668 791 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zLabel = db_column_text(&q, 1);
669 792 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zDate = db_column_text(&q, 4);
670 793 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zScore = db_column_text(&q, 2);
671 794 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zId = db_column_text(&q, 3);
672 795 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_appendf(&snip, "%s", zSnippet);
673 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- for(j=0; j<snip.nUsed; j++){
674 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( snip.aData[j]=='\n' ){
675 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( j>0 && snip.aData[j-1]=='\r' ) snip.aData[j-1] = ' ';
676 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- snip.aData[j] = ' ';
677 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
678 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
796 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ search_snippet_to_plaintext(&snip, nTty);
679 797 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_appendf(&com, "%s\n%s\n%s", zLabel, blob_str(&snip), zDate);
680 798 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( bDebug ){
681 799 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_appendf(&com," score: %s id: %s", zScore, zId);
682 800 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
683 801 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
comment_print(blob_str(&com), 0, 5, width,
@@ -731,28 +849,33 @@
731 849 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SRCH_DOC 0x0002 /* Search over embedded documents */
732 850 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SRCH_TKT 0x0004 /* Search over tickets */
733 851 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SRCH_WIKI 0x0008 /* Search over wiki */
734 852 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SRCH_TECHNOTE 0x0010 /* Search over tech notes */
735 853 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define SRCH_FORUM 0x0020 /* Search over forum messages */
736 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- #define SRCH_ALL 0x003f /* Search over everything */
854 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define SRCH_HELP 0x0040 /* Search built-in help (full-scan only) */
855 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define SRCH_ALL 0x007f /* Search over everything */
737 856 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#endif
738 857 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
739 858 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
740 859 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Remove bits from srchFlags which are disallowed by either the
741 860 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** current server configuration or by user permissions. Return
742 861 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** the revised search flags mask.
862 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
863 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** If bFlex is true, that means allow through the SRCH_HELP option
864 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** even if it is not explicitly enabled.
743 865 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
744 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- unsigned int search_restrict(unsigned int srchFlags){
866 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ unsigned int search_restrict(unsigned int srchFlags, int bFlex){
745 867 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static unsigned int knownGood = 0;
746 868 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static unsigned int knownBad = 0;
747 869 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static const struct { unsigned m; const char *zKey; } aSetng[] = {
748 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { SRCH_CKIN, "search-ci" },
749 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { SRCH_DOC, "search-doc" },
750 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { SRCH_TKT, "search-tkt" },
751 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { SRCH_WIKI, "search-wiki" },
870 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { SRCH_CKIN, "search-ci" },
871 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { SRCH_DOC, "search-doc" },
872 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { SRCH_TKT, "search-tkt" },
873 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { SRCH_WIKI, "search-wiki" },
752 874 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ SRCH_TECHNOTE, "search-technote" },
753 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { SRCH_FORUM, "search-forum" },
875 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { SRCH_FORUM, "search-forum" },
876 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { SRCH_HELP, "search-help" },
754 877 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
755 878 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i;
756 879 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( g.perm.Read==0 ) srchFlags &= ~(SRCH_CKIN|SRCH_DOC|SRCH_TECHNOTE);
757 880 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( g.perm.RdTkt==0 ) srchFlags &= ~(SRCH_TKT);
758 881 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( g.perm.RdWiki==0 ) srchFlags &= ~(SRCH_WIKI);
@@ -765,10 +888,11 @@
765 888 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
knownGood |= m;
766 889 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
767 890 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
knownBad |= m;
768 891 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
769 892 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
893 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( bFlex ) knownBad &= ~SRCH_HELP;
770 894 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return srchFlags & ~knownBad;
771 895 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
772 896 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
773 897 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
774 898 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** When this routine is called, there already exists a table
@@ -911,10 +1035,23 @@
911 1035 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
" datetime(event.mtime),"
912 1036 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
" search_snippet()"
913 1037 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
" FROM event JOIN blob on event.objid=blob.rid"
914 1038 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
" WHERE search_match('',body('f',rid,NULL));"
915 1039 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
1040 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1041 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( (srchFlags & SRCH_HELP)!=0 ){
1042 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ helptext_vtab_register(g.db);
1043 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_multi_exec(
1044 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ "INSERT INTO x(label,url,score,id,snip)"
1045 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " SELECT format('Built-in help for the \"%%s\" %%s',name,type),"
1046 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " '/help?cmd='||name,"
1047 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " search_score(),"
1048 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " 'h'||rowid,"
1049 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " search_snippet()"
1050 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " FROM helptext"
1051 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " WHERE search_match('',helptext.helptext);"
1052 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ );
916 1053 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
917 1054 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
918 1055 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
919 1056 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
920 1057 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Number of significant bits in a u32
@@ -1068,10 +1205,11 @@
1068 1205 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ SRCH_DOC, 'd' },
1069 1206 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ SRCH_TKT, 't' },
1070 1207 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ SRCH_WIKI, 'w' },
1071 1208 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ SRCH_TECHNOTE, 'e' },
1072 1209 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ SRCH_FORUM, 'f' },
1210 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { SRCH_HELP, 'h' },
1073 1211 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
1074 1212 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i;
1075 1213 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=0; i<count(aMask); i++){
1076 1214 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( srchFlags & aMask[i].m ){
1077 1215 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_appendf(&sql, "%sftsdocs.type='%c'", zSep, aMask[i].c);
@@ -1157,11 +1295,11 @@
1157 1295 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int nLimit = db_get_int("search-limit", 100);
1158 1296 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1159 1297 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( P("searchlimit")!=0 ){
1160 1298 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
nLimit = atoi(P("searchlimit"));
1161 1299 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- srchFlags = search_restrict(srchFlags);
1300 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ srchFlags = search_restrict(srchFlags, 1);
1163 1301 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( srchFlags==0 ) return 0;
1164 1302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
search_sql_setup(g.db);
1165 1303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
add_content_sql_commands(g.db);
1166 1304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_multi_exec(
1167 1305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"CREATE TEMP TABLE x(label,url,score,id,date,snip);"
@@ -1169,10 +1307,13 @@
1169 1307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !search_index_exists() ){
1170 1308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
search_fullscan(zPattern, srchFlags); /* Full-scan search */
1171 1309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
1172 1310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
search_update_index(srchFlags); /* Update the index, if necessary */
1173 1311 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
search_indexed(zPattern, srchFlags); /* Indexed search */
1312 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( srchFlags & SRCH_HELP ){
1313 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ search_fullscan(zPattern, SRCH_HELP);
1314 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1174 1315 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1175 1316 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_prepare(&q, "SELECT url, snip, label, score, id, substr(date,1,10)"
1176 1317 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
" FROM x"
1177 1318 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
" ORDER BY score DESC, date DESC;");
1178 1319 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
while( db_step(&q)==SQLITE_ROW ){
@@ -1231,18 +1372,19 @@
1231 1372 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zDisable1;
1232 1373 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zDisable2;
1233 1374 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zPattern;
1234 1375 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int fDebug = PB("debug");
1235 1376 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int haveResult = 0;
1236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- srchFlags = search_restrict(srchFlags);
1377 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ srchFlags = search_restrict(srchFlags, 0);
1237 1378 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
switch( srchFlags ){
1238 1379 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case SRCH_CKIN: zType = " Check-ins"; zClass = "Ckin"; break;
1239 1380 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case SRCH_DOC: zType = " Docs"; zClass = "Doc"; break;
1240 1381 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case SRCH_TKT: zType = " Tickets"; zClass = "Tkt"; break;
1241 1382 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case SRCH_WIKI: zType = " Wiki"; zClass = "Wiki"; break;
1242 1383 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case SRCH_TECHNOTE: zType = " Tech Notes"; zClass = "Note"; break;
1243 1384 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case SRCH_FORUM: zType = " Forum"; zClass = "Frm"; break;
1385 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case SRCH_HELP: zType = " Help"; zClass = "Hlp"; break;
1244 1386 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1245 1387 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( srchFlags==0 ){
1246 1388 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( mFlags & 0x02 ) return 0;
1247 1389 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zDisable1 = " disabled";
1248 1390 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zDisable2 = " disabled";
@@ -1266,10 +1408,11 @@
1266 1408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ "d", "Docs", SRCH_DOC },
1267 1409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ "t", "Tickets", SRCH_TKT },
1268 1410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ "w", "Wiki", SRCH_WIKI },
1269 1411 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ "e", "Tech Notes", SRCH_TECHNOTE },
1270 1412 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
{ "f", "Forum", SRCH_FORUM },
1413 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { "h", "Help", SRCH_HELP },
1271 1414 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
1272 1415 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zY = PD("y","all");
1273 1416 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
unsigned newFlags = srchFlags;
1274 1417 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i;
1275 1418 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <select size='1' name='y'>
@@ -1321,10 +1464,11 @@
1321 1464 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** d -> documentation
1322 1465 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** t -> tickets
1323 1466 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** w -> wiki
1324 1467 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** e -> tech notes
1325 1468 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** f -> forum
1469 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** h -> built-in help
1326 1470 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** all -> everything
1327 1471 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
1328 1472 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void search_page(void){
1329 1473 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const int isSearch = P("s")!=0;
1330 1474 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
login_check_credentials();
@@ -2100,11 +2244,11 @@
2100 2244 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void search_rebuild_index(void){
2101 2245 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_print("rebuilding the search index...");
2102 2246 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fflush(stdout);
2103 2247 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
search_create_index();
2104 2248 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
search_fill_index();
2105 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- search_update_index(search_restrict(SRCH_ALL));
2249 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ search_update_index(search_restrict(SRCH_ALL, 0));
2106 2250 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( db_table_exists("repository","chat") ){
2107 2251 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
chat_rebuild_index(1);
2108 2252 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
2109 2253 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_print(" done\n");
2110 2254 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -2120,15 +2264,15 @@
2120 2264 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** reindex Rebuild the search index. This is a no-op if
2121 2265 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** index search is disabled
2122 2266 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
2123 2267 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** index (on|off) Turn the search index on or off
2124 2268 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
2125 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** enable cdtwef Enable various kinds of search. c=Check-ins,
2126 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** d=Documents, t=Tickets, w=Wiki, e=Tech Notes,
2127 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** f=Forum.
2269 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** enable TYPE .. Enable search for TYPE. TYPE is one of:
2270 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** check-in, document, ticket, wiki, technote,
2271 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** forum, help, or all
2128 2272 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
2129 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** disable cdtwef Disable various kinds of search
2273 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** disable TYPE ... Disable search for TYPE
2130 2274 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
2131 2275 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** tokenizer VALUE Select a tokenizer for indexed search. VALUE
2132 2276 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** may be one of (porter, on, off, trigram, unicode61),
2133 2277 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** and "on" is equivalent to "porter". Unindexed
2134 2278 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** search never uses tokenization or stemming.
@@ -2150,16 +2294,17 @@
2150 2294 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static const struct {
2151 2295 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zSetting;
2152 2296 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zName;
2153 2297 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zSw;
2154 2298 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
} aSetng[] = {
2155 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { "search-ci", "check-in search:", "c" },
2156 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { "search-doc", "document search:", "d" },
2157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { "search-tkt", "ticket search:", "t" },
2158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { "search-wiki", "wiki search:", "w" },
2159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { "search-technote", "tech note search:", "e" },
2160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- { "search-forum", "forum search:", "f" },
2299 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { "search-ci", "check-in search:", "c" },
2300 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { "search-doc", "document search:", "d" },
2301 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { "search-tkt", "ticket search:", "t" },
2302 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { "search-wiki", "wiki search:", "w" },
2303 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { "search-technote", "technote search:", "e" },
2304 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { "search-forum", "forum search:", "f" },
2305 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ { "search-help", "built-in help search:", "h" },
2161 2306 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
2162 2307 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zSubCmd = 0;
2163 2308 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i, j, n;
2164 2309 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iCmd = 0;
2165 2310 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iAction = 0;
@@ -2192,16 +2337,46 @@
2192 2337 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
2193 2338 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_begin_transaction();
2194 2339 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
2195 2340 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Adjust search settings */
2196 2341 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( iCmd==3 || iCmd==4 ){
2342 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int k;
2197 2343 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zCtrl;
2198 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( g.argc<4 ) usage(mprintf("%s STRING",zSubCmd));
2199 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- zCtrl = g.argv[3];
2200 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- for(j=0; j<count(aSetng); j++){
2201 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( strchr(zCtrl, aSetng[j].zSw[0])!=0 ){
2202 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- db_set_int(aSetng[j].zSetting/*works-like:"x"*/, iCmd-3, 0);
2344 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(k=2; k<g.argc; k++){
2345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( k==2 ){
2346 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( g.argc<4 ){
2347 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zCtrl = "all";
2348 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
2349 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zCtrl = g.argv[3];
2350 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ k++;
2351 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
2352 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
2353 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zCtrl = g.argv[k];
2354 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
2355 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( fossil_strcmp(zCtrl,"all")==0 ){
2356 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zCtrl = "cdtwefh";
2357 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
2358 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( strlen(zCtrl)>=4 ){
2359 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* If the argument to "enable" or "disable" is a string of at least
2360 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** 4 characters which matches part of any aSetng.zName, then use that
2361 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** one aSetng value only. */
2362 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ char *zGlob = mprintf("*%s*", zCtrl);
2363 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(j=0; j<count(aSetng); j++){
2364 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( sqlite3_strglob(zGlob, aSetng[j].zName)==0 ){
2365 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_set_int(aSetng[j].zSetting/*works-like:"x"*/, iCmd-3, 0);
2366 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zCtrl = 0;
2367 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
2368 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
2369 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
2370 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil_free(zGlob);
2371 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
2372 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( zCtrl ){
2373 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(j=0; j<count(aSetng); j++){
2374 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( strchr(zCtrl, aSetng[j].zSw[0])!=0 ){
2375 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ db_set_int(aSetng[j].zSetting/*works-like:"x"*/, iCmd-3, 0);
2376 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
2377 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
2203 2378 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
2204 2379 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
2205 2380 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( iCmd==5 ){
2206 2381 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iOldTokenizer, iNewTokenizer;
2207 2382 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( g.argc<4 ) usage("tokenizer porter|on|off|trigram|unicode61");
@@ -2224,30 +2399,30 @@
2224 2399 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
search_rebuild_index();
2225 2400 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
2226 2401 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
2227 2402 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Always show the status before ending */
2228 2403 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=0; i<count(aSetng); i++){
2229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_print("%-17s %s\n", aSetng[i].zName,
2404 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil_print("%-21s %s\n", aSetng[i].zName,
2230 2405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_get_boolean(aSetng[i].zSetting,0) ? "on" : "off");
2231 2406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
2232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_print("%-17s %s\n", "tokenizer:",
2407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil_print("%-21s %s\n", "tokenizer:",
2233 2408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
search_tokenizer_for_string(0));
2234 2409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( search_index_exists() ){
2235 2410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int pgsz = db_int64(0, "PRAGMA repository.page_size;");
2236 2411 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
i64 nTotal = db_int64(0, "PRAGMA repository.page_count;")*pgsz;
2237 2412 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
i64 nFts = db_int64(0, "SELECT count(*) FROM dbstat"
2238 2413 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
" WHERE schema='repository'"
2239 2414 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
" AND name LIKE 'fts%%'")*pgsz;
2240 2415 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char zSize[50];
2241 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_print("%-17s FTS%d\n", "full-text index:", search_index_type(1));
2242 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_print("%-17s %d\n", "documents:",
2416 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil_print("%-21s FTS%d\n", "full-text index:", search_index_type(1));
2417 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil_print("%-21s %d\n", "documents:",
2243 2418 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_int(0, "SELECT count(*) FROM ftsdocs"));
2244 2419 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
approxSizeName(sizeof(zSize), zSize, nFts);
2245 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_print("%-17s %s (%.1f%% of repository)\n", "space used",
2420 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil_print("%-21s %s (%.1f%% of repository)\n", "space used",
2246 2421 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zSize, 100.0*((double)nFts/(double)nTotal));
2247 2422 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
2248 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_print("%-17s disabled\n", "full-text index:");
2423 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil_print("%-21s disabled\n", "full-text index:");
2249 2424 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
2250 2425 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_end_transaction(0);
2251 2426 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
2252 2427 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
2253 2428 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
2254 2429 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!