8b20f17f49
X-SVN-Rev: 473
130 lines
2.7 KiB
C
130 lines
2.7 KiB
C
/*
|
|
*******************************************************************************
|
|
*
|
|
* Copyright (C) 1998-1999, International Business Machines
|
|
* Corporation and others. All Rights Reserved.
|
|
*
|
|
*******************************************************************************
|
|
*
|
|
* File gencol.c
|
|
*
|
|
* Modification History:
|
|
*
|
|
* Date Name Description
|
|
* 06/09/99 stephen Creation.
|
|
*******************************************************************************
|
|
*/
|
|
|
|
#include <stdio.h>
|
|
|
|
#include "unicode/utypes.h"
|
|
#include "cmemory.h"
|
|
#include "cstring.h"
|
|
|
|
#include "unicode/uloc.h"
|
|
#include "unicode/ucol.h"
|
|
|
|
|
|
/* Protos */
|
|
static void usage(void);
|
|
static void version(void);
|
|
int main(int argc, char **argv);
|
|
|
|
|
|
/* The version of gencol */
|
|
#define GENCOL_VERSION "1.0b"
|
|
|
|
|
|
int
|
|
main(int argc,
|
|
char **argv)
|
|
{
|
|
int printUsage = 0;
|
|
int printVersion = 0;
|
|
int optind;
|
|
int i;
|
|
char *arg;
|
|
const char *loc;
|
|
UCollator *coll;
|
|
UErrorCode status;
|
|
|
|
|
|
/* parse the options */
|
|
for(optind = 1; optind < argc; ++optind) {
|
|
arg = argv[optind];
|
|
|
|
/* version info */
|
|
if(uprv_strcmp(arg, "-v") == 0 || uprv_strcmp(arg, "--version") == 0) {
|
|
printVersion = 1;
|
|
}
|
|
/* usage info */
|
|
else if(uprv_strcmp(arg, "-h") == 0 || uprv_strcmp(arg, "--help") == 0) {
|
|
printUsage = 1;
|
|
}
|
|
/* POSIX.1 says all arguments after -- are not options */
|
|
else if(uprv_strcmp(arg, "--") == 0) {
|
|
/* skip the -- */
|
|
++optind;
|
|
break;
|
|
}
|
|
/* unrecognized option */
|
|
else if(uprv_strncmp(arg, "-", uprv_strlen("-")) == 0) {
|
|
printf("gencol: invalid option -- %s\n", arg+1);
|
|
printUsage = 1;
|
|
}
|
|
/* done with options, start file processing */
|
|
else {
|
|
break;
|
|
}
|
|
}
|
|
|
|
/* print usage info */
|
|
if(printUsage) {
|
|
usage();
|
|
return 0;
|
|
}
|
|
|
|
/* print version info */
|
|
if(printVersion) {
|
|
version();
|
|
return 0;
|
|
}
|
|
|
|
/* generate the binary collation files */
|
|
coll = ucol_open("default", &status);
|
|
ucol_close(coll);
|
|
for(i = 0; i < uloc_countAvailable(); ++i) {
|
|
status = U_ZERO_ERROR;
|
|
loc = uloc_getAvailable(i);
|
|
printf("gencol: Creating collation data for locale \"%s\"\n", loc);
|
|
coll = ucol_open(loc, &status);
|
|
if(U_FAILURE(status)) {
|
|
printf("gencol: %s for locale \"%s\"", u_errorName(status), loc);
|
|
}
|
|
else {
|
|
ucol_close(coll);
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
/* Usage information */
|
|
static void
|
|
usage()
|
|
{
|
|
puts("Usage: gencol [OPTIONS] [FILES]");
|
|
puts("Options:");
|
|
puts(" -h, --help Print this message and exit.");
|
|
puts(" -v, --version Print the version number of gencol and exit.");
|
|
}
|
|
|
|
/* Version information */
|
|
static void
|
|
version()
|
|
{
|
|
printf("gencol version %s (ICU version %s).\n",
|
|
GENCOL_VERSION, ICU_VERSION);
|
|
puts(U_COPYRIGHT_STRING);
|
|
}
|