Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | Improve the "--help" option on commands so that it avoids ambiguity by only looking at commands in the help dictionary. |
|---|---|
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA3-256: |
3091605fdf469d2f9b8d3c391967a1a0 |
| User & Date: | drh 2020-11-25 21:51:28.285 |
Context
|
2020-11-27
| ||
| 13:08 | Set an appropriate base URL for the /file page when it is using name= and ci= query parameters. check-in: a7343c6a0c user: drh tags: trunk | |
|
2020-11-25
| ||
| 21:51 | Improve the "--help" option on commands so that it avoids ambiguity by only looking at commands in the help dictionary. check-in: 3091605fdf user: drh tags: trunk | |
| 21:45 | Fix the "fossil timeline" command so that it works with the new EVENT.COMMENT format for wiki page changes. Ticket [4e558dbf3d2511ce]. check-in: 471443b464 user: drh tags: trunk | |
| 21:14 | Eliminate unnecessary variable. Closed-Leaf check-in: aca2988fdb user: andybradford tags: ambiguous-help | |
Changes
Changes to src/dispatch.c.
| ︙ | ︙ | |||
1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 |
** -t|--test List unsupported "test" commands
** -x|--aux List only auxiliary commands
** -w|--www List all web pages
**
** These options can be used when TOPIC is present:
**
** -h|--html Format output as HTML rather than plain text
*/
void help_cmd(void){
int rc;
int isPage = 0;
const char *z;
const char *zCmdOrPage;
const CmdOrPage *pCmd = 0;
int useHtml = 0;
Blob txt;
if( g.argc<3 ){
| > > | 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 |
** -t|--test List unsupported "test" commands
** -x|--aux List only auxiliary commands
** -w|--www List all web pages
**
** These options can be used when TOPIC is present:
**
** -h|--html Format output as HTML rather than plain text
** -c|--commands Restrict TOPIC search to commands
*/
void help_cmd(void){
int rc;
int mask = CMDFLAG_ANY;
int isPage = 0;
const char *z;
const char *zCmdOrPage;
const CmdOrPage *pCmd = 0;
int useHtml = 0;
Blob txt;
if( g.argc<3 ){
|
| ︙ | ︙ | |||
1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 |
command_list(0, CMDFLAG_SETTING);
return;
}
useHtml = find_option("html","h",0)!=0;
isPage = ('/' == *g.argv[2]) ? 1 : 0;
if(isPage){
zCmdOrPage = "page";
}else{
zCmdOrPage = "command or setting";
}
| > > > | | > | | | | 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 |
command_list(0, CMDFLAG_SETTING);
return;
}
useHtml = find_option("html","h",0)!=0;
isPage = ('/' == *g.argv[2]) ? 1 : 0;
if(isPage){
zCmdOrPage = "page";
}else if( find_option("commands","c",0)!=0 ){
mask = CMDFLAG_COMMAND;
zCmdOrPage = "command";
}else{
zCmdOrPage = "command or setting";
}
rc = dispatch_name_search(g.argv[2], mask|CMDFLAG_PREFIX, &pCmd);
if( rc ){
int i, n;
const char *az[5];
if( rc==1 ){
fossil_print("unknown %s: %s\n", zCmdOrPage, g.argv[2]);
}else{
fossil_print("ambiguous %s prefix: %s\n",
zCmdOrPage, g.argv[2]);
}
fossil_print("Did you mean one of these TOPICs:\n");
n = dispatch_approx_match(g.argv[2], 5, az);
for(i=0; i<n; i++){
fossil_print(" * %s\n", az[i]);
}
fossil_print("Also consider using:\n");
fossil_print(" fossil help TOPIC ;# show help on TOPIC\n");
fossil_print(" fossil help -a ;# show all commands\n");
fossil_print(" fossil help -w ;# show all web-pages\n");
fossil_print(" fossil help -s ;# show all settings\n");
fossil_exit(1);
}
z = pCmd->zHelp;
if( z==0 ){
fossil_fatal("no help available for the %s %s",
pCmd->zName, zCmdOrPage);
}
|
| ︙ | ︙ |
Changes to src/main.c.
| ︙ | ︙ | |||
794 795 796 797 798 799 800 |
#endif
if( find_option("help",0,0)!=0 ){
/* If --help is found anywhere on the command line, translate the command
* to "fossil help cmdname" where "cmdname" is the first argument that
* does not begin with a "-" character. If all arguments start with "-",
* translate to "fossil help argv[1] argv[2]...". */
int i, nNewArgc;
| | > | | | | 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 |
#endif
if( find_option("help",0,0)!=0 ){
/* If --help is found anywhere on the command line, translate the command
* to "fossil help cmdname" where "cmdname" is the first argument that
* does not begin with a "-" character. If all arguments start with "-",
* translate to "fossil help argv[1] argv[2]...". */
int i, nNewArgc;
char **zNewArgv = fossil_malloc( sizeof(char*)*(g.argc+3) );
zNewArgv[0] = g.argv[0];
zNewArgv[1] = "help";
zNewArgv[2] = "-c";
for(i=1; i<g.argc; i++){
if( g.argv[i][0]!='-' ){
nNewArgc = 4;
zNewArgv[3] = g.argv[i];
zNewArgv[4] = 0;
break;
}
}
if( i==g.argc ){
for(i=1; i<g.argc; i++) zNewArgv[i+1] = g.argv[i];
nNewArgc = g.argc+1;
zNewArgv[i+1] = 0;
|
| ︙ | ︙ |