| Index: third_party/libxslt/libxslt/xsltutils.c
|
| diff --git a/third_party/libxslt/libxslt/xsltutils.c b/third_party/libxslt/libxslt/xsltutils.c
|
| index 1646c44931ed531885ce6f2ae74b314154b36239..c250ccfabb8f34eaff5ed5ce18f509f3062404e8 100644
|
| --- a/third_party/libxslt/libxslt/xsltutils.c
|
| +++ b/third_party/libxslt/libxslt/xsltutils.c
|
| @@ -457,9 +457,8 @@ xsltMessage(xsltTransformContextPtr ctxt, xmlNodePtr node, xmlNodePtr inst) {
|
| } else if (xmlStrEqual(prop, (const xmlChar *)"no")) {
|
| terminate = 0;
|
| } else {
|
| - error(errctx,
|
| + xsltTransformError(ctxt, NULL, inst,
|
| "xsl:message : terminate expecting 'yes' or 'no'\n");
|
| - ctxt->state = XSLT_STATE_ERROR;
|
| }
|
| xmlFree(prop);
|
| }
|
| @@ -622,7 +621,8 @@ xsltPrintErrorContext(xsltTransformContextPtr ctxt,
|
| void *errctx = xsltGenericErrorContext;
|
|
|
| if (ctxt != NULL) {
|
| - ctxt->state = XSLT_STATE_ERROR;
|
| + if (ctxt->state == XSLT_STATE_OK)
|
| + ctxt->state = XSLT_STATE_ERROR;
|
| if (ctxt->error != NULL) {
|
| error = ctxt->error;
|
| errctx = ctxt->errctx;
|
| @@ -715,7 +715,8 @@ xsltTransformError(xsltTransformContextPtr ctxt,
|
| char * str;
|
|
|
| if (ctxt != NULL) {
|
| - ctxt->state = XSLT_STATE_ERROR;
|
| + if (ctxt->state == XSLT_STATE_OK)
|
| + ctxt->state = XSLT_STATE_ERROR;
|
| if (ctxt->error != NULL) {
|
| error = ctxt->error;
|
| errctx = ctxt->errctx;
|
|
|