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:
parent
bf7975dd44
commit
861d2e2cbf
10
src/gmnlm.c
10
src/gmnlm.c
@ -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) {
|
||||||
|
Loading…
Reference in New Issue
Block a user