-/* $Id: yaz-icu.c,v 1.1 2007-10-22 12:21:40 adam Exp $
- Copyright (c) 2006-2007, Index Data.
-
-This file is part of Pazpar2.
-
-Pazpar2 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, or (at your option) any later
-version.
-
-Pazpar2 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 General Public License
-for more details.
-
-You should have received a copy of the GNU General Public License
-along with Pazpar2; see the file LICENSE. If not, write to the
-Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-02111-1307, USA.
+/*
+ * Copyright (C) 1995-2007, Index Data ApS
+ * See the file LICENSE for details.
+ *
+ * $Id: yaz-icu.c,v 1.11 2007-11-08 13:35:14 adam Exp $
*/
#if HAVE_CONFIG_H
-#include "cconfig.h"
+#include "config.h"
#endif
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
-//#include <yaz/xmalloc.h>
#include <yaz/options.h>
-#ifdef HAVE_ICU
+#if YAZ_HAVE_ICU
#include <unicode/ucnv.h>
#include <unicode/ustring.h>
+#include <unicode/ucol.h>
+#include <unicode/ubrk.h>
+#include <unicode/utrans.h>
-#include <yaz/icu_I18N.h>
+#include <yaz/icu.h>
/* commando line and config parameters */
static struct config_t {
char conffile[1024];
char print[1024];
int xmloutput;
- struct icu_chain * chain;
+ yaz_icu_chain_t chain;
FILE * infile;
FILE * outfile;
} config;
" <normalize rule=\"[:Control:] Any-Remove\"/>\n"
" <tokenize rule=\"l\"/>\n"
" <normalize rule=\"[[:WhiteSpace:][:Punctuation:]] Remove\"/>\n"
- " <display/>\n"
" <casemap rule=\"l\"/>\n"
- " <index/>\n"
- " <sortkey/>\n"
"</icu_chain>\n"
);
exit(1);
|| !config.outfile)
print_option_error(p_config);
-};
+}
/* UConverter *conv; */
static void print_icu_transliterators(const struct config_t *p_config)
{
- int32_t count;
- int32_t i;
-
- count = utrans_countAvailableIDs();
-
int32_t buf_cap = 128;
char buf[buf_cap];
+ int32_t i;
+ int32_t count = utrans_countAvailableIDs();
if (p_config->xmloutput)
fprintf(config.outfile, "<transliterators count=\"%d\">\n", count);
fprintf(config.outfile, "</icu>\n");
exit(0);
-};
+}
exit (1);
}
-
- config.chain = icu_chain_xml_config(xml_node, &status);
+ config.chain = icu_chain_xml_config(xml_node, 0, &status);
if (config.chain && U_SUCCESS(status))
success = 1;
exit (1);
}
+
+
if (p_config->xmloutput)
fprintf(config.outfile,
"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
"<icu>\n"
"<tokens>\n");
- // read input lines for processing
+ /* read input lines for processing */
while ((line=fgets(linebuf, sizeof(linebuf)-1, config.infile)))
{
success = icu_chain_assign_cstr(config.chain, line, &status);
" norm=\"%s\" display=\"%s\"/>\n",
token_count,
line_count,
- icu_chain_get_norm(config.chain),
- icu_chain_get_display(config.chain));
+ icu_chain_token_norm(config.chain),
+ icu_chain_token_display(config.chain));
else
fprintf(config.outfile, "%lu %lu '%s' '%s'\n",
token_count,
line_count,
- icu_chain_get_norm(config.chain),
- icu_chain_get_display(config.chain));
+ icu_chain_token_norm(config.chain),
+ icu_chain_token_display(config.chain));
}
}
xmlFreeDoc(doc);
if (line)
free(line);
-};
+}
-#endif // HAVE_ICU
+#endif /* YAZ_HAVE_ICU */
int main(int argc, char **argv)
{
-#ifdef HAVE_ICU
+#if YAZ_HAVE_ICU
read_params(argc, argv, &config);
if (config.print && strlen(config.print))
print_info(&config);
-#else // HAVE_ICU
+#else /* YAZ_HAVE_ICU */
printf("ICU not available on your system.\n"
"Please install libicu36-dev and icu-doc or similar, "
"re-configure and re-compile\n");
-#endif // HAVE_ICU
+#endif /* YAZ_HAVE_ICU */
return(0);
-};
+}
/*