summaryrefslogtreecommitdiffstats
path: root/mbbsd
diff options
context:
space:
mode:
Diffstat (limited to 'mbbsd')
-rw-r--r--mbbsd/menu.c6
-rw-r--r--mbbsd/talk.c8
2 files changed, 14 insertions, 0 deletions
diff --git a/mbbsd/menu.c b/mbbsd/menu.c
index 035cf1ef..fd515146 100644
--- a/mbbsd/menu.c
+++ b/mbbsd/menu.c
@@ -140,6 +140,12 @@ ZA_Waiting(void)
return (zacmd != 0);
}
+void
+ZA_Drop(void)
+{
+ zacmd = 0;
+}
+
// Promp user our ZA bar and return for selection.
int
ZA_Select(void)
diff --git a/mbbsd/talk.c b/mbbsd/talk.c
index 013b9885..099006e4 100644
--- a/mbbsd/talk.c
+++ b/mbbsd/talk.c
@@ -3061,6 +3061,14 @@ t_users(void)
abort_bbs(0);
}
+ // cannot do ZA for re-entrant.
+ // usually happens when doing ^U, ^Z with non-return
+ // env like editor.
+ if (ZA_Waiting())
+ ZA_Drop();
+
+ // TODO drop if we were already in t_users?
+
setutmpmode(LUSERS);
userlist();
currutmp->mode = mode0;