/* Avoid side effect of gnulib's error.h on 'struct po_error_handler'. */
#define _GL_NO_INLINE_ERROR
+/* Avoid side effect of config.h on 'struct po_error_handler'. */
+#include "error.h"
+static void (*orig_error) (int status, int errnum,
+ const char *format, ...)
+ = error;
+
+static void (*orig_error_at_line) (int status, int errnum,
+ const char *filename, unsigned int lineno,
+ const char *format, ...)
+ = error_at_line;
+#undef error
+#undef error_at_line
+
/* Specification. */
#include "gettext-po.h"
#include "read-po.h"
#include "write-catalog.h"
#include "write-po.h"
-#include "error.h"
#include "xerror.h"
#include "po-error.h"
#include "po-xerror.h"
file->domains = NULL;
/* Restore error handler. */
- po_error = error;
- po_error_at_line = error_at_line;
+ po_error = orig_error;
+ po_error_at_line = orig_error_at_line;
po_multiline_warning = multiline_warning;
po_multiline_error = multiline_error;
gram_max_allowed_errors = 20;
msgdomain_list_print (file->mdlp, filename, &output_format_po, true, false);
/* Restore error handler. */
- po_error = error;
- po_error_at_line = error_at_line;
+ po_error = orig_error;
+ po_error_at_line = orig_error_at_line;
po_multiline_warning = multiline_warning;
po_multiline_error = multiline_error;
va_start (args, format);
if (vasprintf (&error_message, format, args) < 0)
- error (EXIT_FAILURE, 0, _("memory exhausted"));
+ orig_error (EXIT_FAILURE, 0, _("memory exhausted"));
va_end (args);
po_error (0, 0, "%s", error_message);
free (error_message);
mp->is_format, mp->range, NULL, po_error_logger);
/* Restore error handler. */
- po_error = error;
+ po_error = orig_error;
}