Fossil SCM
When an ambiguous command prefix is entered, report all possible matches as part of the error message.
Commit
5ae54b39fd739dbc5f597b4638ebc6e7ec3a0216
Parent
169a10dd5e2d458…
1 file changed
+11
-1
+11
-1
| --- src/main.c | ||
| +++ src/main.c | ||
| @@ -251,13 +251,23 @@ | ||
| 251 | 251 | fprintf(stderr,"%s: unknown command: %s\n" |
| 252 | 252 | "%s: use \"help\" for more information\n", |
| 253 | 253 | argv[0], zCmdName, argv[0]); |
| 254 | 254 | fossil_exit(1); |
| 255 | 255 | }else if( rc==2 ){ |
| 256 | + int i, n; | |
| 257 | + Blob couldbe; | |
| 258 | + blob_zero(&couldbe); | |
| 259 | + n = strlen(zCmdName); | |
| 260 | + for(i=0; i<count(aCommand); i++){ | |
| 261 | + if( memcmp(zCmdName, aCommand[i].zName, n)==0 ){ | |
| 262 | + blob_appendf(&couldbe, " %s", aCommand[i].zName); | |
| 263 | + } | |
| 264 | + } | |
| 256 | 265 | fprintf(stderr,"%s: ambiguous command prefix: %s\n" |
| 266 | + "%s: could be any of:%s\n" | |
| 257 | 267 | "%s: use \"help\" for more information\n", |
| 258 | - argv[0], zCmdName, argv[0]); | |
| 268 | + argv[0], zCmdName, argv[0], blob_str(&couldbe), argv[0]); | |
| 259 | 269 | fossil_exit(1); |
| 260 | 270 | } |
| 261 | 271 | aCommand[idx].xFunc(); |
| 262 | 272 | fossil_exit(0); |
| 263 | 273 | /*NOT_REACHED*/ |
| 264 | 274 |
| --- src/main.c | |
| +++ src/main.c | |
| @@ -251,13 +251,23 @@ | |
| 251 | fprintf(stderr,"%s: unknown command: %s\n" |
| 252 | "%s: use \"help\" for more information\n", |
| 253 | argv[0], zCmdName, argv[0]); |
| 254 | fossil_exit(1); |
| 255 | }else if( rc==2 ){ |
| 256 | fprintf(stderr,"%s: ambiguous command prefix: %s\n" |
| 257 | "%s: use \"help\" for more information\n", |
| 258 | argv[0], zCmdName, argv[0]); |
| 259 | fossil_exit(1); |
| 260 | } |
| 261 | aCommand[idx].xFunc(); |
| 262 | fossil_exit(0); |
| 263 | /*NOT_REACHED*/ |
| 264 |
| --- src/main.c | |
| +++ src/main.c | |
| @@ -251,13 +251,23 @@ | |
| 251 | fprintf(stderr,"%s: unknown command: %s\n" |
| 252 | "%s: use \"help\" for more information\n", |
| 253 | argv[0], zCmdName, argv[0]); |
| 254 | fossil_exit(1); |
| 255 | }else if( rc==2 ){ |
| 256 | int i, n; |
| 257 | Blob couldbe; |
| 258 | blob_zero(&couldbe); |
| 259 | n = strlen(zCmdName); |
| 260 | for(i=0; i<count(aCommand); i++){ |
| 261 | if( memcmp(zCmdName, aCommand[i].zName, n)==0 ){ |
| 262 | blob_appendf(&couldbe, " %s", aCommand[i].zName); |
| 263 | } |
| 264 | } |
| 265 | fprintf(stderr,"%s: ambiguous command prefix: %s\n" |
| 266 | "%s: could be any of:%s\n" |
| 267 | "%s: use \"help\" for more information\n", |
| 268 | argv[0], zCmdName, argv[0], blob_str(&couldbe), argv[0]); |
| 269 | fossil_exit(1); |
| 270 | } |
| 271 | aCommand[idx].xFunc(); |
| 272 | fossil_exit(0); |
| 273 | /*NOT_REACHED*/ |
| 274 |