Updated footer comment
[yaz-moved-to-github.git] / src / icu_I18N.c
index bdfe5a6..8de0182 100644 (file)
@@ -1,8 +1,11 @@
-/*
- * Copyright (C) 1995-2007, Index Data ApS
+/* This file is part of the YAZ toolkit.
+ * Copyright (C) 1995-2009 Index Data
  * See the file LICENSE for details.
- *
- * $Id: icu_I18N.c,v 1.22 2007-12-17 11:23:16 adam Exp $
+ */
+
+/**
+ * \file icu_I18N.c
+ * \brief ICU utilities
  */
 
 #if HAVE_CONFIG_H
@@ -669,7 +672,7 @@ struct icu_normalizer * icu_normalizer_create(const char *rules, char action,
                            normalizer->rules16->utf16_len,
                            UTRANS_FORWARD,
                            0, 0, 
-                           normalizer->parse_error, status);
+                           &normalizer->parse_error, status);
         break;
     case 'r':
     case 'R':
@@ -678,7 +681,7 @@ struct icu_normalizer * icu_normalizer_create(const char *rules, char action,
                            normalizer->rules16->utf16_len,
                            UTRANS_REVERSE ,
                            0, 0,
-                           normalizer->parse_error, status);
+                           &normalizer->parse_error, status);
         break;
     default:
         *status = U_UNSUPPORTED_ERROR;
@@ -911,14 +914,31 @@ struct icu_chain * icu_chain_xml_config(const xmlNode *xml_node,
         else if (!strcmp((const char *) node->name, "display"))
             step = icu_chain_insert_step(chain, ICU_chain_step_type_display, 
                                          (const uint8_t *) "", status);
+        else if (!strcmp((const char *) node->name, "normalize"))
+        {
+            yaz_log(YLOG_WARN, "Element %s is deprecated. "
+                    "Use transform instead", node->name);
+            step = icu_chain_insert_step(chain, ICU_chain_step_type_normalize, 
+                                         (const uint8_t *) xml_rule, status);
+        }
+        else if (!strcmp((const char *) node->name, "index")
+                 || !strcmp((const char *) node->name, "sortkey"))
+        {
+            yaz_log(YLOG_WARN, "Element %s is no longer needed. "
+                    "Remove it from the configuration", node->name);
+        }
+        else
+        {
+            yaz_log(YLOG_WARN, "Unknown element %s", node->name);
+            icu_chain_destroy(chain);
+            return 0;
+        }
         xmlFree(xml_rule);
-        if (!step || U_FAILURE(*status))
+        if (step && U_FAILURE(*status))
         {
             icu_chain_destroy(chain);
             return 0;
         }
-        
-
     }
     return chain;
 }
@@ -1204,7 +1224,9 @@ const UCollator * icu_chain_get_coll(struct icu_chain * chain)
 /*
  * Local variables:
  * c-basic-offset: 4
+ * c-file-style: "Stroustrup"
  * indent-tabs-mode: nil
  * End:
  * vim: shiftwidth=4 tabstop=8 expandtab
  */
+