diff --git a/src/gmnlm.c b/src/gmnlm.c
index ff17c1a661ec9b95847b391e720964c4bab24e9d..e852d275c4b2d32785d0fa68c12ae99d76aa6466 100644
--- a/src/gmnlm.c
+++ b/src/gmnlm.c
@@ -625,6 +625,7 @@ }
in[n - 1] = 0; // Remove LF
char url[1024] = {0};
+ char save_url[1024] = {0};
int r;
switch (in[0]) {
case '\0':
@@ -749,6 +750,7 @@ }
case 'e':
case 'p':
case 't':
+ strncpy(&save_url[0], browser->plain_url, sizeof(url)-1);
if (!in[1]) {
strncpy(&url[0], browser->plain_url, sizeof(url)-1);
} else {
@@ -770,7 +772,7 @@ fprintf(browser->tty, "=> %s\n", url);
char *tempfile;
if (in[0] == 't') {
struct gemini_response resp;
- set_url(browser, url, &browser->history);
+ set_url(browser, url, NULL);
enum gemini_result res = do_requests(browser, &resp);
if (res != GEMINI_OK) {
fprintf(stderr, "Error: %s\n",
@@ -780,7 +782,7 @@ tempfile = tmpnam(NULL);
download_resp(browser->tty, resp, tempfile, url);
}
gemini_response_finish(&resp);
- set_url(browser, url, NULL);
+ set_url(browser, save_url, NULL);
}
if (in[0] == 'e' || browser->autoopen) {
char target[1024];