Bypass iconv conversion if the string is UTF-8 coming from the application.
authorPeter Verthez <Peter.Verthez@advalvas.be>
Sun, 22 Sep 2002 18:43:12 +0000 (18:43 +0000)
committerPeter Verthez <Peter.Verthez@advalvas.be>
Sun, 22 Sep 2002 18:43:12 +0000 (18:43 +0000)
gedcom/gedcom_lex_common.c

index d0d329cab5e031d81a20bcab027e8bed6384ada1..efc4bf931eed796ff332e6dec4df9a36f20d9c28 100644 (file)
@@ -136,10 +136,14 @@ static void error_unexpected_character(const char* str, char ch)
   gedcom_error(_("Unexpected character: '%s' (0x%02x)"), str, ch);
 }
 
+/* This is to bypass the iconv conversion (if the input is UTF-8 coming
+   from the program) */
+static int dummy_conv = 0;
+
 #elif LEX_SECTION == 2
 
 #define TO_INTERNAL(STR,OUTBUF) \
-  to_internal(STR, yyleng, OUTBUF, sizeof(OUTBUF))
+  (dummy_conv ? STR : to_internal(STR, yyleng, OUTBUF, sizeof(OUTBUF)))
 
 #define INIT_LINE_LEN \
   line_len = 0;
@@ -398,6 +402,7 @@ void yymyinit(FILE *f)
   /* Reset our state */
   current_level = -1;
   level_diff = MAXGEDCLEVEL;
+  BEGIN(INITIAL);
 }
 
 #endif