summaryrefslogtreecommitdiff
path: root/readline/readline/util.c
diff options
context:
space:
mode:
Diffstat (limited to 'readline/readline/util.c')
-rw-r--r--readline/readline/util.c18
1 files changed, 8 insertions, 10 deletions
diff --git a/readline/readline/util.c b/readline/readline/util.c
index e8ae9d7f56d..1576b55d50d 100644
--- a/readline/readline/util.c
+++ b/readline/readline/util.c
@@ -102,10 +102,11 @@ _rl_abort_internal (void)
rl_clear_message ();
_rl_reset_argument ();
rl_clear_pending_input ();
+ rl_deactivate_mark ();
- RL_UNSETSTATE (RL_STATE_MACRODEF);
while (rl_executing_macro)
_rl_pop_executing_macro ();
+ _rl_kill_kbd_macro ();
RL_UNSETSTATE (RL_STATE_MULTIKEY); /* XXX */
@@ -502,17 +503,14 @@ _rl_tropen (void)
if (_rl_tracefp)
fclose (_rl_tracefp);
#if defined (_WIN32) && !defined (__CYGWIN__)
- /* Windows doesn't have /var/tmp, so open the trace file in the
- user's temporary directory instead. */
- snprintf (fnbuf, sizeof (fnbuf), "%s/rltrace.%ld",
- (sh_get_env_value ("TEMP")
- ? sh_get_env_value ("TEMP")
- : "."),
- getpid ());
+ x = sh_get_env_value ("TEMP");
+ if (x == 0)
+ x = ".";
#else
- sprintf (fnbuf, "/var/tmp/rltrace.%ld", (long) getpid ());
+ x = "/var/tmp";
#endif
- unlink (fnbuf);
+ snprintf (fnbuf, sizeof (fnbuf), "%s/rltrace.%ld", x, (long)getpid());
+ unlink(fnbuf);
_rl_tracefp = fopen (fnbuf, "w+");
return _rl_tracefp != 0;
}