summaryrefslogtreecommitdiffabout
authorSergey Poznyakoff <gray@gnu.org>2019-05-16 06:23:20 (GMT)
committer Sergey Poznyakoff <gray@gnu.org>2019-05-16 06:23:20 (GMT)
commit1fa2dd2c6587822ff682581643499c3c3b78c9ea (patch) (side-by-side diff)
tree2e7f37a1e27a38687182ab2aad60a994f9e153eb
parent20899f652a904b510b2c7d3507b75d1399416485 (diff)
downloadgrecs-1fa2dd2c6587822ff682581643499c3c3b78c9ea.tar.gz
grecs-1fa2dd2c6587822ff682581643499c3c3b78c9ea.tar.bz2
Minor fix.
* src/wordsplit.c (_wsplt_seterr_sub): Propagate error context.
Diffstat (more/less context) (ignore whitespace changes)
-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.