Added gettext calls.
[gedcom-parse.git] / gedcom / gedcom_lex_common.c
index 5d734c44689adb6e8fe9ae0b46c9bb15594af1f9..93c26f3bf6197f4e772f80b154b3d1297dd9f33d 100644 (file)
@@ -1,11 +1,22 @@
-/*  This program is free software; you can redistribute it and/or modify  *
- *  it under the terms of the GNU General Public License as published by  *
- *  the Free Software Foundation; either version 2 of the License, or     *
- *  (at your option) any later version.                                   *
-
- (C) 2001 by The Genes Development Team
- Original author: Peter Verthez (Peter.Verthez@advalvas.be)
-*/
+/* Common lexer code.
+   Copyright (C) 2001 The Genes Development Team
+   This file is part of the Gedcom parser library.
+   Contributed by Peter Verthez <Peter.Verthez@advalvas.be>, 2001.
+
+   The Gedcom parser library is free software; you can redistribute it
+   and/or modify it under the terms of the GNU Lesser General Public
+   License as published by the Free Software Foundation; either
+   version 2.1 of the License, or (at your option) any later version.
+
+   The Gedcom parser library is distributed in the hope that it will be
+   useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Lesser General Public License for more details.
+
+   You should have received a copy of the GNU Lesser General Public
+   License along with the Gedcom parser library; if not, write to the
+   Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+   02111-1307 USA.  */
 
 /* $Id$ */
 /* $Name$ */
@@ -35,11 +46,17 @@ int line_no = 1;
 
 int gedcom_lex();
 
+void message_handler(Gedcom_msg_type type, char *msg)
+{
+  fprintf(stderr, msg);
+}
+
 int test_loop(ENCODING enc, char* code)
 {
   int tok, res;
   init_encodings();
   set_encoding_width(enc);
+  gedcom_set_message_handler(message_handler);
   res = open_conv_to_internal(code);
   if (!res) {
     gedcom_error("Unable to open conversion context: %s",
@@ -80,7 +97,7 @@ int test_loop(ENCODING enc, char* code)
   { if (line_len != (size_t)-1) {                                             \
       line_len += strlen(yytext);                                             \
       if (line_len > MAXGEDCLINELEN * encoding_width) {                       \
-        gedcom_error("Line too long, max %d characters",                      \
+        gedcom_error(_("Line too long, max %d characters"),                   \
                     MAXGEDCLINELEN);                                         \
         line_len = (size_t)-1;                                                \
         return BADTOKEN;                                                      \
@@ -153,7 +170,7 @@ int test_loop(ENCODING enc, char* code)
 
 
 #define ACTION_0_DIGITS                                                       \
-   { gedcom_error ("Level number with leading zero");                         \
+   { gedcom_error (_("Level number with leading zero"));                      \
      return BADTOKEN;                                                         \
    } 
 
@@ -162,7 +179,7 @@ int test_loop(ENCODING enc, char* code)
    { int level = atoi(TO_INTERNAL(yytext, str_buf));                          \
      CHECK_LINE_LEN;                                                          \
      if ((level < 0) || (level > MAXGEDCLEVEL)) {                             \
-       gedcom_error ("Level number out of range [0..%d]",                     \
+       gedcom_error (_("Level number out of range [0..%d]"),                  \
                     MAXGEDCLEVEL);                                           \
        return BADTOKEN;                                                       \
      }                                                                        \
@@ -180,8 +197,7 @@ int test_loop(ENCODING enc, char* code)
      }                                                                        \
      else {                                                                   \
        /* should never happen (error to GEDCOM spec) */                       \
-       gedcom_error ("GEDCOM level number is %d higher than "                 \
-                    "previous",                                              \
+       gedcom_error (_("GEDCOM level number is %d higher than previous"),     \
                     level_diff);                                             \
        return BADTOKEN;                                                       \
      }                                                                        \
@@ -190,7 +206,7 @@ int test_loop(ENCODING enc, char* code)
 
 #define ACTION_ALPHANUM                                                       \
    { if (strlen(yytext) > MAXGEDCTAGLEN * encoding_width) {                   \
-       gedcom_error("Tag '%s' too long, max %d characters",                   \
+       gedcom_error(_("Tag '%s' too long, max %d characters"),                \
                    yytext, MAXGEDCTAGLEN);                                   \
        return BADTOKEN;                                                       \
      }                                                                        \
@@ -232,7 +248,7 @@ int test_loop(ENCODING enc, char* code)
 #define ACTION_POINTER                                                        \
   { CHECK_LINE_LEN;                                                           \
     if (strlen(yytext) > MAXGEDCPTRLEN * encoding_width) {                    \
-      gedcom_error("Pointer '%s' too long, max %d characters",                \
+      gedcom_error(_("Pointer '%s' too long, max %d characters"),             \
                   yytext, MAXGEDCPTRLEN);                                    \
       return BADTOKEN;                                                        \
     }                                                                         \
@@ -276,7 +292,7 @@ int test_loop(ENCODING enc, char* code)
 
 
 #define ACTION_UNEXPECTED                                                     \
-  { gedcom_error("Unexpected character: '%s' (0x%02x)",                       \
+  { gedcom_error(_("Unexpected character: '%s' (0x%02x)"),                    \
                 yytext, yytext[0]);                                          \
     return BADTOKEN;                                                          \
   }