Fix printf of token id
[yaz-moved-to-github.git] / util / yaz-icu.c
index b7542ad..4f0368e 100644 (file)
@@ -2,7 +2,7 @@
  * Copyright (C) 1995-2007, Index Data ApS
  * See the file LICENSE for details.
  *
- * $Id: yaz-icu.c,v 1.14 2007-11-15 08:28:08 adam Exp $
+ * $Id: yaz-icu.c,v 1.16 2008-01-14 22:58:06 adam Exp $
  */
 
 #if HAVE_CONFIG_H
@@ -157,7 +157,7 @@ static void print_icu_converters(const struct config_t *p_config)
 static void print_icu_transliterators(const struct config_t *p_config)
 {
     int32_t buf_cap = 128;
-    char buf[buf_cap];
+    char buf[128];
     int32_t i;
     int32_t count = utrans_countAvailableIDs();
     
@@ -477,17 +477,20 @@ static void process_text_file(const struct config_t *p_config)
             else {
                 const char *sortkey = icu_chain_token_sortkey(config.chain);
                 wrbuf_rewind(sw);
-                wrbuf_verbose_str(sw, sortkey, strlen(sortkey));
+                wrbuf_puts_escaped(sw, sortkey);
                 token_count++;
                 if (p_config->xmloutput)                    
+                {
+                    /* should XML encode this. Bug #1902 */
                     fprintf(config.outfile, 
-                            "<token id=\%lu\" line=\"%lu\""
+                            "<token id=\"%lu\" line=\"%lu\""
                             " norm=\"%s\" display=\"%s\" sortkey=\"%s\"/>\n",
                             token_count,
                             line_count,
                             icu_chain_token_norm(config.chain),
                             icu_chain_token_display(config.chain),
                             wrbuf_cstr(sw));
+                }
                 else
                     fprintf(config.outfile, "%lu %lu '%s' '%s' '%s'\n",
                             token_count,