1
0
mirror of https://git.sr.ht/~sircmpwn/gmni synced 2024-11-23 00:42:15 +01:00

gmnlm: don't assume everything starting with b/f is b/f command

It was impossible to enter a file:// URL because it got interpreted
as a 'f' command without any warning about invalid argument. The same
thing happened with relative addresses beginning with 'b' or 'f'.
This commit is contained in:
Ondřej Fiala 2022-07-01 05:51:00 +02:00 committed by Drew DeVault
parent bf7975dd44
commit 861d2e2cbf

@ -569,8 +569,11 @@ do_prompts(const char *prompt, struct browser *browser)
result = PROMPT_QUIT; result = PROMPT_QUIT;
goto exit; goto exit;
case 'b': case 'b':
if (in[1]) { if (in[1] && isdigit(in[1])) {
historyhops =(int)strtol(in+1, &endptr, 10); historyhops =(int)strtol(in+1, &endptr, 10);
if (endptr[0]) break;
} else if (in[1]) {
break;
} }
while (historyhops > 0) { while (historyhops > 0) {
if (browser->history->prev) { if (browser->history->prev) {
@ -582,8 +585,11 @@ do_prompts(const char *prompt, struct browser *browser)
result = PROMPT_ANSWERED; result = PROMPT_ANSWERED;
goto exit; goto exit;
case 'f': case 'f':
if (in[1]) { if (in[1] && isdigit(in[1])) {
historyhops =(int)strtol(in+1, &endptr, 10); historyhops =(int)strtol(in+1, &endptr, 10);
if (endptr[0]) break;
} else if (in[1]) {
break;
} }
while (historyhops > 0) { while (historyhops > 0) {
if (browser->history->next) { if (browser->history->next) {