summaryrefslogtreecommitdiff
path: root/Src/Zle/zle_utils.c
diff options
context:
space:
mode:
Diffstat (limited to 'Src/Zle/zle_utils.c')
-rw-r--r--Src/Zle/zle_utils.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/Src/Zle/zle_utils.c b/Src/Zle/zle_utils.c
index c6df3d89c..2b306fdcd 100644
--- a/Src/Zle/zle_utils.c
+++ b/Src/Zle/zle_utils.c
@@ -1607,7 +1607,11 @@ static int
unapplychange(struct change *ch)
{
if(ch->hist != histline) {
- zle_setline(quietgethist(ch->hist));
+ Histent he = quietgethist(ch->hist);
+ DPUTS(he == NULL, "quietgethist(ch->hist) returned NULL");
+ if(he == NULL)
+ return 1;
+ zle_setline(he);
zlecs = ch->new_cs;
return 0;
}
@@ -1647,7 +1651,11 @@ static int
applychange(struct change *ch)
{
if(ch->hist != histline) {
- zle_setline(quietgethist(ch->hist));
+ Histent he = quietgethist(ch->hist);
+ DPUTS(he == NULL, "quietgethist(ch->hist) returned NULL");
+ if(he == NULL)
+ return 1;
+ zle_setline(he);
zlecs = ch->old_cs;
return 0;
}
@@ -1733,7 +1741,7 @@ zlecallhook(char *name, char *arg)
args[0] = arg;
args[1] = NULL;
- execzlefunc(thingy, args, 1);
+ execzlefunc(thingy, args, 1, 0);
unrefthingy(thingy);
/* Retain any user interrupt error status */