home *** CD-ROM | disk | FTP | other *** search
- /*
- *******************************************************************************
- * *
- * COPYRIGHT: *
- * (C) Copyright International Business Machines Corporation, 1998, 1999 *
- * Licensed Material - Program-Property of IBM - All Rights Reserved. *
- * US Government Users Restricted Rights - Use, duplication, or disclosure *
- * restricted by GSA ADP Schedule Contract with IBM Corp. *
- * *
- *******************************************************************************
- *
- * File gencol.c
- *
- * Modification History:
- *
- * Date Name Description
- * 06/09/99 stephen Creation.
- *******************************************************************************
- */
-
- #include <stdio.h>
-
- #include "utypes.h"
- #include "cmemory.h"
- #include "cstring.h"
-
- #include "uloc.h"
- #include "ucol.h"
-
-
- /* Protos */
- static void usage();
- static void version();
- 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(icu_strcmp(arg, "-v") == 0 || icu_strcmp(arg, "--version") == 0) {
- printVersion = 1;
- }
- /* usage info */
- else if(icu_strcmp(arg, "-h") == 0 || icu_strcmp(arg, "--help") == 0) {
- printUsage = 1;
- }
- /* POSIX.1 says all arguments after -- are not options */
- else if(icu_strcmp(arg, "--") == 0) {
- /* skip the -- */
- ++optind;
- break;
- }
- /* unrecognized option */
- else if(icu_strncmp(arg, "-", icu_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 */
- 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\"", 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), by Stephen F. Booth.\n",
- GENCOL_VERSION, ICU_VERSION);
- puts("(C) Copyright International Business Machines Corporation, 1998, 1999");
- puts("Licensed Material - Program-Property of IBM - All Rights Reserved.");
- puts("US Government Users Restricted Rights - Use, duplication, or disclosure");
- puts("restricted by GSA ADP Schedule Contract with IBM Corp.");
- }
-