#include "gedcom_internal.h"
#include "multilex.h"
#include "encoding.h"
+#include "encoding_state.h"
#include "gedcom.h"
#include "gedcom.tabgen.h"
#include "compat.h"
/* These are defined as functions here, because xgettext has trouble
extracting the strings out of long pre-processor defined */
-static void error_line_too_long()
+static void error_line_too_long(const char *line)
{
- gedcom_error(_("Line too long, max %d characters allowed"), MAXGEDCLINELEN);
+ gedcom_error(_("Line too long, max %d characters allowed: %s"),
+ MAXGEDCLINELEN, line);
}
static void error_level_leading_zero()
{ if (line_len != (size_t)-1) { \
line_len += strlen(yytext); \
if (line_len > MAXGEDCLINELEN * encoding_width) { \
- error_line_too_long(); \
+ error_line_too_long(yytext); \
line_len = (size_t)-1; \
return BADTOKEN; \
} \
#define ACTION_TERMINATOR \
{ CHECK_LINE_LEN; \
INIT_LINE_LEN; \
+ if (line_no == 1) \
+ set_read_encoding_terminator(TO_INTERNAL(yytext, str_buffer)); \
BEGIN(INITIAL); \
}