diff --git a/src/lib/termdesc.c b/src/lib/termdesc.c index 15f9e8648..5a59fdbb8 100644 --- a/src/lib/termdesc.c +++ b/src/lib/termdesc.c @@ -1056,7 +1056,11 @@ int interrogate_terminfo(tinfo* ti, FILE* out, unsigned utf8, if((iresp = inputlayer_get_responses(ti->ictx)) == NULL){ goto err; } - ti->termversion = iresp->version; // takes ownership + if(ti->termversion){ + free(iresp->version); + }else{ + ti->termversion = iresp->version; // takes ownership + } if(iresp->appsync_supported){ if(add_appsync_escapes_sm(ti, &tablelen, &tableused)){ free(iresp); diff --git a/src/lib/windows.c b/src/lib/windows.c index bc930148e..3e0f3d385 100644 --- a/src/lib/windows.c +++ b/src/lib/windows.c @@ -98,10 +98,11 @@ int prepare_windows_terminal(tinfo* ti, size_t* tablelen, size_t* tableused){ if(strcmp(tp, "mintty") == 0){ const char* ver = getenv("TERM_PROGRAM_VERSION"); if(ver){ - ti->version = strdup(ver); + ti->termversion = strdup(ver); } - loginfo("detected mintty %s\n", ti->version ? ti->version : ""); - return TERMINAL_MINTTY; + loginfo("detected mintty %s\n", ti->termversion ? ti->termversion : ""); + ti->qterm = TERMINAL_MINTTY; + return 0; } } ti->qterm = TERMINAL_MSTERMINAL;