@@ -31,10 +31,11 @@
31 31 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
32 32 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
struct CmdOrPage {
33 33 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zName; /* Name. Webpages start with "/". Commands do not */
34 34 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void (*xFunc)(void); /* Implementation function, or NULL for settings */
35 35 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zHelp; /* Raw help text */
36 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int iHelp; /* Index of help variable */
36 37 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
unsigned int eCmdFlags; /* Flags */
37 38 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
38 39 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
39 40 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/***************************************************************************
40 41 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** These macros must match similar macros in mkindex.c
@@ -51,10 +52,11 @@
51 52 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define CMDFLAG_BOOLEAN 0x0100 /* A boolean setting */
52 53 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define CMDFLAG_RAWCONTENT 0x0200 /* Do not interpret POST content */
53 54 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* NOTE: 0x0400 = CMDFLAG_SENSITIVE in mkindex.c! */
54 55 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define CMDFLAG_HIDDEN 0x0800 /* Elide from most listings */
55 56 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define CMDFLAG_LDAVG_EXEMPT 0x1000 /* Exempt from load_control() */
57 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define CMDFLAG_ALIAS 0x2000 /* Command aliases */
56 58 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/**************************************************************************/
57 59 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
58 60 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Values for the 2nd parameter to dispatch_name_search() */
59 61 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define CMDFLAG_ANY 0x0038 /* Match anything */
60 62 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define CMDFLAG_PREFIX 0x0200 /* Prefix match is ok */
@@ -77,10 +79,11 @@
77 79 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** source code files looking for header comments on the functions that
78 80 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** implement command and webpages.
79 81 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
80 82 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#include "page_index.h"
81 83 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#define MX_COMMAND count(aCommand)
84 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #define MX_HELP_DUP 5 /* Upper bound estimate on help string duplication */
82 85 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
83 86 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
84 87 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Given a command, webpage, or setting name in zName, find the corresponding
85 88 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** CmdOrPage object and return a pointer to that object in *ppCmd.
86 89 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
@@ -546,45 +549,65 @@
546 549 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
547 550 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Display help for all commands based on provided flags.
548 551 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
549 552 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static void display_all_help(int mask, int useHtml, int rawOut){
550 553 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i;
554 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ unsigned char occHelp[FOSSIL_MX_CMDIDX] = {0}; /* Help string occurrences */
555 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int bktHelp[FOSSIL_MX_CMDIDX][MX_HELP_DUP] = {0};/* Help strings -> commands*/
551 556 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( useHtml ) fossil_print("<!--\n");
552 557 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_print("Help text for:\n");
553 558 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( mask & CMDFLAG_1ST_TIER ) fossil_print(" * Commands\n");
554 559 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( mask & CMDFLAG_2ND_TIER ) fossil_print(" * Auxiliary commands\n");
560 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( mask & CMDFLAG_ALIAS ) fossil_print(" * Aliases\n");
555 561 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( mask & CMDFLAG_TEST ) fossil_print(" * Test commands\n");
556 562 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( mask & CMDFLAG_WEBPAGE ) fossil_print(" * Web pages\n");
557 563 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( mask & CMDFLAG_SETTING ) fossil_print(" * Settings\n");
558 564 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( useHtml ){
559 565 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_print("-->\n");
560 566 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_print("<!-- start_all_help -->\n");
561 567 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
562 568 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_print("---\n");
563 569 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
570 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Fill in help string buckets */
571 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(i=0; i<MX_COMMAND; i++){
572 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( (aCommand[i].eCmdFlags & mask)==0 ) continue;
573 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ else if(aCommand[i].eCmdFlags & CMDFLAG_HIDDEN) continue;
574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ bktHelp[aCommand[i].iHelp][occHelp[aCommand[i].iHelp]++] = i;
575 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
564 576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=0; i<MX_COMMAND; i++){
565 577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( (aCommand[i].eCmdFlags & mask)==0 ) continue;
566 578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
else if(aCommand[i].eCmdFlags & CMDFLAG_HIDDEN) continue;
567 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( useHtml ){
568 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Blob html;
569 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_init(&html, 0, 0);
570 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- help_to_html(aCommand[i].zHelp, &html);
571 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_print("<h1>%h</h1>\n", aCommand[i].zName);
572 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_print("%s\n<hr>\n", blob_str(&html));
573 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_reset(&html);
574 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else if( rawOut ){
575 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_print("# %s\n", aCommand[i].zName);
576 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_print("%s\n\n", aCommand[i].zHelp);
577 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }else{
578 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- Blob txt;
579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_init(&txt, 0, 0);
580 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- help_to_text(aCommand[i].zHelp, &txt);
581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_print("# %s%s\n", aCommand[i].zName,
582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- (aCommand[i].eCmdFlags & CMDFLAG_VERSIONABLE)!=0 ?
583 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- " (versionable)" : "");
584 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fossil_print("%s\n\n", blob_str(&txt));
585 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- blob_reset(&txt);
579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( occHelp[aCommand[i].iHelp] > 0 ){
580 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int j;
581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( useHtml ){
582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Blob html;
583 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_init(&html, 0, 0);
584 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ help_to_html(aCommand[i].zHelp, &html);
585 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(j=0; j<occHelp[aCommand[i].iHelp]; j++){
586 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil_print("<h1>%h</h1>\n",
587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ aCommand[bktHelp[aCommand[i].iHelp][j]].zName);
588 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
589 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil_print("%s\n<hr>\n", blob_str(&html));
590 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_reset(&html);
591 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( rawOut ){
592 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(j=0; j<occHelp[aCommand[i].iHelp]; j++)
593 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil_print("# %s\n", aCommand[bktHelp[aCommand[i].iHelp][j]].zName);
594 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil_print("%s\n\n", aCommand[i].zHelp);
595 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
596 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ Blob txt;
597 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_init(&txt, 0, 0);
598 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ help_to_text(aCommand[i].zHelp, &txt);
599 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(j=0; j<occHelp[aCommand[i].iHelp]; j++){
600 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil_print("# %s%s\n",
601 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ aCommand[bktHelp[aCommand[i].iHelp][j]].zName,
602 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ (aCommand[i].eCmdFlags & CMDFLAG_VERSIONABLE)!=0 ?
603 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " (versionable)" : "");
604 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
605 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil_print("%s\n\n", blob_str(&txt));
606 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ blob_reset(&txt);
607 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
608 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ occHelp[aCommand[i].iHelp] = 0;
586 609 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
587 610 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
588 611 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( useHtml ){
589 612 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_print("<!-- end_all_help -->\n");
590 613 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
@@ -601,17 +624,19 @@
601 624 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Show help text for commands and pages. Useful for proof-reading.
602 625 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Defaults to just the CLI commands. Specify --www to see only the
603 626 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** web pages, or --everything to see both commands and pages.
604 627 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
605 628 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Options:
606 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** -e|--everything Show all commands and pages.
629 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** -a|--aliases Show aliases.
630 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** -e|--everything Show all commands and pages. Omit aliases to
631 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** avoid duplicates.
632 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** -h|--html Transform output to HTML.
633 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** -o|--options Show global options.
634 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** -r|--raw No output formatting.
635 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** -s|--settings Show settings.
607 636 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** -t|--test Include test- commands.
608 637 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** -w|--www Show WWW pages.
609 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** -s|--settings Show settings.
610 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** -h|--html Transform output to HTML.
611 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** -r|--raw No output formatting.
612 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ** -o|--options Show global options.
613 638 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
614 639 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void test_all_help_cmd(void){
615 640 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int mask = CMDFLAG_1ST_TIER | CMDFLAG_2ND_TIER;
616 641 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int useHtml = find_option("html","h",0)!=0;
617 642 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int rawOut = find_option("raw","r",0)!=0;
@@ -619,15 +644,18 @@
619 644 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( find_option("www","w",0) ){
620 645 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
mask = CMDFLAG_WEBPAGE;
621 646 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
622 647 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( find_option("everything","e",0) ){
623 648 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
mask = CMDFLAG_1ST_TIER | CMDFLAG_2ND_TIER | CMDFLAG_WEBPAGE |
624 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- CMDFLAG_SETTING | CMDFLAG_TEST;
649 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ CMDFLAG_ALIAS | CMDFLAG_SETTING | CMDFLAG_TEST;
625 650 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
626 651 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( find_option("settings","s",0) ){
627 652 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
mask = CMDFLAG_SETTING;
628 653 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
654 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( find_option("aliases","a",0) ){
655 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ mask = CMDFLAG_ALIAS;
656 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
629 657 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( find_option("test","t",0) ){
630 658 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
mask |= CMDFLAG_TEST;
631 659 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
632 660 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
display_all_help(mask, useHtml, rawOut);
633 661 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -655,10 +683,12 @@
655 683 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
countCmds( CMDFLAG_COMMAND ));
656 684 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_print(" 1st tier %4d\n",
657 685 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
countCmds( CMDFLAG_1ST_TIER ));
658 686 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_print(" 2nd tier %4d\n",
659 687 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
countCmds( CMDFLAG_2ND_TIER ));
688 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fossil_print(" alias %4d\n",
689 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ countCmds( CMDFLAG_ALIAS ));
660 690 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_print(" test %4d\n",
661 691 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
countCmds( CMDFLAG_TEST ));
662 692 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_print("web-pages: %4d\n",
663 693 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
countCmds( CMDFLAG_WEBPAGE ));
664 694 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_print("settings: %4d\n",
@@ -828,26 +858,56 @@
828 858 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ </div>
829 859 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
830 860 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
831 861 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
832 862 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i;
833 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
863 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ unsigned char occHelp[FOSSIL_MX_CMDIDX] = {0}; /* Help str occurrences */
864 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int bktHelp[FOSSIL_MX_CMDIDX][MX_HELP_DUP] = {0};/* Help str -> commands */
834 865 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
style_header("Help");
835 866 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
836 867 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <a name='commands'></a>
837 868 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <h1>Available commands:</h1>
838 869 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <div class="columns" style="column-width: 12ex;">
839 870 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <ul>
871 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Fill in help string buckets */
872 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(i=0; i<MX_COMMAND; i++){
873 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(aCommand[i].eCmdFlags & CMDFLAG_HIDDEN) continue;
874 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ bktHelp[aCommand[i].iHelp][occHelp[aCommand[i].iHelp]++] = i;
875 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
840 876 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=0; i<MX_COMMAND; i++){
841 877 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *z = aCommand[i].zName;
842 878 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zBoldOn = aCommand[i].eCmdFlags&CMDFLAG_1ST_TIER?"<b>" :"";
843 879 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zBoldOff = aCommand[i].eCmdFlags&CMDFLAG_1ST_TIER?"</b>":"";
844 880 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( '/'==*z || strncmp(z,"test",4)==0 ) continue;
845 881 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( (aCommand[i].eCmdFlags & CMDFLAG_SETTING)!=0 ) continue;
846 882 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
else if( (aCommand[i].eCmdFlags & CMDFLAG_HIDDEN)!=0 ) continue;
847 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ <li><a href="%R/help?cmd=%s(z)">%s(zBoldOn)%s(z)%s(zBoldOff)</a></li>
883 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ else if( (aCommand[i].eCmdFlags & CMDFLAG_ALIAS)!=0 ) continue;
884 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <li><a href="%R/help?cmd=%s(z)">%s(zBoldOn)%s(z)%s(zBoldOff)</a>
885 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Output aliases */
886 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( occHelp[aCommand[i].iHelp] > 1 ){
887 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int j;
888 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int aliases[MX_HELP_DUP], nAliases=0;
889 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(j=0; j<occHelp[aCommand[i].iHelp]; j++){
890 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( bktHelp[aCommand[i].iHelp][j] != i ){
891 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( aCommand[bktHelp[aCommand[i].iHelp][j]].eCmdFlags & CMDFLAG_ALIAS ){
892 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ aliases[nAliases++] = bktHelp[aCommand[i].iHelp][j];
893 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
894 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
895 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
896 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( nAliases>0 ){
897 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int k;
898 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @(\
899 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(k=0; k<nAliases; k++){
900 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @<a href="%R/help?cmd=%s(aCommand[aliases[k]].zName)">\
901 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @%s(aCommand[aliases[k]].zName)</a>%s((k<nAliases-1)?", ":"")\
902 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
903 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @)\
904 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
905 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
906 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ </li>
848 907 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
908 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
849 909 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ </ul></div>
850 910 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
851 911 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <a name='webpages'></a>
852 912 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <h1>Available web UI pages:</h1>
853 913 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <div class="columns" style="column-width: 18ex;">
@@ -905,22 +965,31 @@
905 965 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
906 966 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Show all help text on a single page. Useful for proof-reading.
907 967 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
908 968 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void test_all_help_page(void){
909 969 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i;
970 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ unsigned char occHelp[FOSSIL_MX_CMDIDX] = {0}; /* Help string occurrences */
971 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int bktHelp[FOSSIL_MX_CMDIDX][MX_HELP_DUP] = {0};/* Help strings -> commands*/
910 972 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Blob buf;
911 973 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_init(&buf,0,0);
912 974 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
style_set_current_feature("test");
913 975 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
style_header("All Help Text");
914 976 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <dl>
977 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Fill in help string buckets */
978 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(i=0; i<MX_COMMAND; i++){
979 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(aCommand[i].eCmdFlags & CMDFLAG_HIDDEN) continue;
980 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ bktHelp[aCommand[i].iHelp][occHelp[aCommand[i].iHelp]++] = i;
981 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
915 982 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(i=0; i<MX_COMMAND; i++){
916 983 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zDesc;
917 984 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
unsigned int e = aCommand[i].eCmdFlags;
918 985 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( e & CMDFLAG_1ST_TIER ){
919 986 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zDesc = "1st tier command";
920 987 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( e & CMDFLAG_2ND_TIER ){
921 988 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zDesc = "2nd tier command";
989 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( e & CMDFLAG_ALIAS ){
990 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zDesc = "alias";
922 991 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( e & CMDFLAG_TEST ){
923 992 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zDesc = "test command";
924 993 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( e & CMDFLAG_WEBPAGE ){
925 994 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( e & CMDFLAG_RAWCONTENT ){
926 995 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zDesc = "raw-content web page";
@@ -940,14 +1009,38 @@
940 1009 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
941 1010 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_appendf(&buf,"setting");
942 1011 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
zDesc = blob_str(&buf);
943 1012 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
944 1013 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( memcmp(aCommand[i].zName, "test", 4)==0 ) continue;
945 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ <dt><big><b>%s(aCommand[i].zName)</b></big> (%s(zDesc))</dt>
946 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ <dd>
947 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- help_to_html(aCommand[i].zHelp, cgi_output_blob());
948 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- @ </dd>
1014 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( occHelp[aCommand[i].iHelp] > 0 ){
1015 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int j;
1016 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ for(j=0; j<occHelp[aCommand[i].iHelp]; j++){
1017 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ unsigned int e = aCommand[bktHelp[aCommand[i].iHelp][j]].eCmdFlags;
1018 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( e & CMDFLAG_1ST_TIER ){
1019 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zDesc = "1st tier command";
1020 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( e & CMDFLAG_2ND_TIER ){
1021 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zDesc = "2nd tier command";
1022 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( e & CMDFLAG_ALIAS ){
1023 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zDesc = "alias";
1024 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( e & CMDFLAG_TEST ){
1025 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zDesc = "test command";
1026 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else if( e & CMDFLAG_WEBPAGE ){
1027 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( e & CMDFLAG_RAWCONTENT ){
1028 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zDesc = "raw-content web page";
1029 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
1030 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zDesc = "web page";
1031 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1032 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1033 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
1034 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <dt><big><b>%s(aCommand[bktHelp[aCommand[i].iHelp][j]].zName)</b>
1035 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @</big> (%s(zDesc))</dt>
1036 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1037 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ <dd>
1038 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ help_to_html(aCommand[i].zHelp, cgi_output_blob());
1039 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ @ </dd>
1040 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ occHelp[aCommand[i].iHelp] = 0;
1041 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
949 1042 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
950 1043 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ </dl>
951 1044 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
blob_reset(&buf);
952 1045 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
style_finish_page();
953 1046 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
954 1047 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!