aboutsummaryrefslogtreecommitdiff
path: root/src/wordsplit.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/wordsplit.c')
-rw-r--r--src/wordsplit.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/wordsplit.c b/src/wordsplit.c
index 6dba914..48312bb 100644
--- a/src/wordsplit.c
+++ b/src/wordsplit.c
@@ -198,8 +198,10 @@ _wsplt_subsplit (struct wordsplit *wsp, struct wordsplit *wss,
static void
_wsplt_seterr_sub (struct wordsplit *wsp, struct wordsplit *wss)
{
+ /* Clear user-defined error */
if (wsp->ws_errno == WRDSE_USERERR)
free (wsp->ws_usererr);
+ /* Copy error state */
wsp->ws_errno = wss->ws_errno;
if (wss->ws_errno == WRDSE_USERERR)
{
@@ -207,6 +209,10 @@ _wsplt_seterr_sub (struct wordsplit *wsp, struct wordsplit *wss)
wss->ws_errno = WRDSE_EOF;
wss->ws_usererr = NULL;
}
+ /* Copy error context */
+ free (wsp->ws_errctx);
+ wsp->ws_errctx = wss->ws_errctx;
+ wss->ws_errctx = NULL;
}
static void

Return to:

Send suggestions and report system problems to the System administrator.