aboutsummaryrefslogtreecommitdiff
path: root/eln.c
diff options
context:
space:
mode:
Diffstat (limited to 'eln.c')
-rw-r--r--eln.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/eln.c b/eln.c
index 563ec2a672a9..660e1988cc26 100644
--- a/eln.c
+++ b/eln.c
@@ -1,4 +1,4 @@
-/* $NetBSD: eln.c,v 1.37 2022/01/11 18:30:15 christos Exp $ */
+/* $NetBSD: eln.c,v 1.38 2024/05/17 02:59:08 christos Exp $ */
/*-
* Copyright (c) 2009 The NetBSD Foundation, Inc.
@@ -27,7 +27,7 @@
*/
#include "config.h"
#if !defined(lint) && !defined(SCCSID)
-__RCSID("$NetBSD: eln.c,v 1.37 2022/01/11 18:30:15 christos Exp $");
+__RCSID("$NetBSD: eln.c,v 1.38 2024/05/17 02:59:08 christos Exp $");
#endif /* not lint && not SCCSID */
#include <errno.h>
@@ -365,6 +365,10 @@ el_line(EditLine *el)
size_t offset;
const wchar_t *p;
+ if (el->el_flags & FROM_ELLINE)
+ return info;
+
+ el->el_flags |= FROM_ELLINE;
info->buffer = ct_encode_string(winfo->buffer, &el->el_lgcyconv);
offset = 0;
@@ -377,6 +381,10 @@ el_line(EditLine *el)
offset += ct_enc_width(*p);
info->lastchar = info->buffer + offset;
+ if (el->el_chared.c_resizefun)
+ (*el->el_chared.c_resizefun)(el, el->el_chared.c_resizearg);
+ el->el_flags &= ~FROM_ELLINE;
+
return info;
}