Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | When using "fossil command --help" restrict the ambiguous matching to just commands to avoid breaking prefixes that otherwise work fine as a command. For example, "fossil di" works fine as a command, but "fossil di --help" suddenly makes it ambiguous. |
|---|---|
| Downloads: | Tarball | ZIP archive |
| Timelines: | family | ancestors | descendants | both | ambiguous-help |
| Files: | files | file ages | folders |
| SHA3-256: |
99f650af0d26c232013ef9d6d69b02cc |
| User & Date: | andybradford 2020-11-25 20:55:12.563 |
Context
|
2020-11-25
| ||
| 20:59 | Restore lost 's' from command-line option so documentation matches code. ... (check-in: 3eaaa56583 user: andybradford tags: ambiguous-help) | |
| 20:55 | When using "fossil command --help" restrict the ambiguous matching to just commands to avoid breaking prefixes that otherwise work fine as a command. For example, "fossil di" works fine as a command, but "fossil di --help" suddenly makes it ambiguous. ... (check-in: 99f650af0d user: andybradford tags: ambiguous-help) | |
|
2020-11-24
| ||
| 21:24 | On the /timeline page, if the p= and bt= query parameters are both present but n= is omitted, then make n as large as it needs to be to cover all ancestors of p= back to the limiting checkin specified by bt=. ... (check-in: 34f5ea4403 user: drh tags: trunk) | |
Changes
Changes to src/dispatch.c.
| ︙ | ︙ | |||
1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 |
** -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 ){
z = g.argv[0];
fossil_print(
"Usage: %s help TOPIC\n"
"Try \"%s help help\" or \"%s help -a\" for more options\n"
"Frequently used commands:\n",
| > > > | 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 |
** -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|--command 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;
int fCmdsOnly = 0;
Blob txt;
if( g.argc<3 ){
z = g.argv[0];
fossil_print(
"Usage: %s help TOPIC\n"
"Try \"%s help help\" or \"%s help -a\" for more options\n"
"Frequently used commands:\n",
|
| ︙ | ︙ | |||
1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 |
command_list(0, CMDFLAG_TEST);
return;
}
else if( find_option("setting","s",0) ){
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";
}
| > > > > | | > | | | | 1053 1054 1055 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 1096 1097 |
command_list(0, CMDFLAG_TEST);
return;
}
else if( find_option("setting","s",0) ){
command_list(0, CMDFLAG_SETTING);
return;
}
fCmdsOnly = find_option("commands","c",0)!=0;
useHtml = find_option("html","h",0)!=0;
isPage = ('/' == *g.argv[2]) ? 1 : 0;
if(isPage){
zCmdOrPage = "page";
}else if( fCmdsOnly ){
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;
|
| ︙ | ︙ |