summaryrefslogtreecommitdiff
path: root/Build/source/libs/icu/icu-xetex/samples/coll
diff options
context:
space:
mode:
authorPeter Breitenlohner <peb@mppmu.mpg.de>2009-04-20 18:13:48 +0000
committerPeter Breitenlohner <peb@mppmu.mpg.de>2009-04-20 18:13:48 +0000
commite5786f530f9555469c01435f86039b06aa53feba (patch)
treec868e8d32282422d7d445b729db95c3fcdafb6d0 /Build/source/libs/icu/icu-xetex/samples/coll
parentebaa1768b43c8606d923d2e861b5286b74207b3e (diff)
new build system: build icu libs and xetex plus misc updates
git-svn-id: svn://tug.org/texlive/trunk@12759 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/libs/icu/icu-xetex/samples/coll')
-rw-r--r--Build/source/libs/icu/icu-xetex/samples/coll/Makefile22
-rw-r--r--Build/source/libs/icu/icu-xetex/samples/coll/coll.cpp266
-rw-r--r--Build/source/libs/icu/icu-xetex/samples/coll/coll.sln19
-rw-r--r--Build/source/libs/icu/icu-xetex/samples/coll/coll.vcproj224
-rw-r--r--Build/source/libs/icu/icu-xetex/samples/coll/readme.txt55
5 files changed, 586 insertions, 0 deletions
diff --git a/Build/source/libs/icu/icu-xetex/samples/coll/Makefile b/Build/source/libs/icu/icu-xetex/samples/coll/Makefile
new file mode 100644
index 00000000000..09981866588
--- /dev/null
+++ b/Build/source/libs/icu/icu-xetex/samples/coll/Makefile
@@ -0,0 +1,22 @@
+# Copyright (c) 2000-2002 IBM, Inc. and others
+# sample code makefile
+
+# Usage:
+# - configure, build, install ICU (make install)
+# - make sure "icu-config" (in the ICU installed bin directory) is on
+# the path
+# - do 'make' in this directory
+
+#### definitions
+# Name of your target
+TARGET=coll
+
+# All object files (C or C++)
+OBJECTS=coll.o
+
+#### rules
+# Load in standard makefile definitions
+include ../defs.mk
+
+# the actual rules (this is a simple sample)
+include ../rules.mk
diff --git a/Build/source/libs/icu/icu-xetex/samples/coll/coll.cpp b/Build/source/libs/icu/icu-xetex/samples/coll/coll.cpp
new file mode 100644
index 00000000000..28e52392c0a
--- /dev/null
+++ b/Build/source/libs/icu/icu-xetex/samples/coll/coll.cpp
@@ -0,0 +1,266 @@
+/********************************************************************
+ * COPYRIGHT:
+ * Copyright (C) 2002-2006 IBM, Inc. All Rights Reserved.
+ *
+ ********************************************************************/
+
+/**
+ * This program demos string collation
+ */
+
+const char gHelpString[] =
+ "usage: coll [options*] -source source_string -target target_string\n"
+ "-help Display this message.\n"
+ "-locale name ICU locale to use. Default is en_US\n"
+ "-rules rule Collation rules file (overrides locale)\n"
+ "-french French accent ordering\n"
+ "-norm Normalizing mode on\n"
+ "-shifted Shifted mode\n"
+ "-lower Lower case first\n"
+ "-upper Upper case first\n"
+ "-case Enable separate case level\n"
+ "-level n Sort level, 1 to 5, for Primary, Secndary, Tertiary, Quaternary, Identical\n"
+ "-source string Source string for comparison\n"
+ "-target string Target string for comparison\n"
+ "Example coll -rules \\u0026b\\u003ca -source a -target b\n"
+ "The format \\uXXXX is supported for the rules and comparison strings\n"
+ ;
+
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+
+#include <unicode/utypes.h>
+#include <unicode/ucol.h>
+#include <unicode/ustring.h>
+
+/**
+ * Command line option variables
+ * These global variables are set according to the options specified
+ * on the command line by the user.
+ */
+char * opt_locale = "en_US";
+char * opt_rules = 0;
+UBool opt_help = FALSE;
+UBool opt_norm = FALSE;
+UBool opt_french = FALSE;
+UBool opt_shifted = FALSE;
+UBool opt_lower = FALSE;
+UBool opt_upper = FALSE;
+UBool opt_case = FALSE;
+int opt_level = 0;
+char * opt_source = "abc";
+char * opt_target = "abd";
+UCollator * collator = 0;
+
+/**
+ * Definitions for the command line options
+ */
+struct OptSpec {
+ const char *name;
+ enum {FLAG, NUM, STRING} type;
+ void *pVar;
+};
+
+OptSpec opts[] = {
+ {"-locale", OptSpec::STRING, &opt_locale},
+ {"-rules", OptSpec::STRING, &opt_rules},
+ {"-source", OptSpec::STRING, &opt_source},
+ {"-target", OptSpec::STRING, &opt_target},
+ {"-norm", OptSpec::FLAG, &opt_norm},
+ {"-french", OptSpec::FLAG, &opt_french},
+ {"-shifted", OptSpec::FLAG, &opt_shifted},
+ {"-lower", OptSpec::FLAG, &opt_lower},
+ {"-upper", OptSpec::FLAG, &opt_upper},
+ {"-case", OptSpec::FLAG, &opt_case},
+ {"-level", OptSpec::NUM, &opt_level},
+ {"-help", OptSpec::FLAG, &opt_help},
+ {"-?", OptSpec::FLAG, &opt_help},
+ {0, OptSpec::FLAG, 0}
+};
+
+/**
+ * processOptions() Function to read the command line options.
+ */
+UBool processOptions(int argc, const char **argv, OptSpec opts[])
+{
+ for (int argNum = 1; argNum < argc; argNum ++) {
+ const char *pArgName = argv[argNum];
+ OptSpec *pOpt;
+ for (pOpt = opts; pOpt->name != 0; pOpt ++) {
+ if (strcmp(pOpt->name, pArgName) == 0) {
+ switch (pOpt->type) {
+ case OptSpec::FLAG:
+ *(UBool *)(pOpt->pVar) = TRUE;
+ break;
+ case OptSpec::STRING:
+ argNum ++;
+ if (argNum >= argc) {
+ fprintf(stderr, "value expected for \"%s\" option.\n",
+ pOpt->name);
+ return FALSE;
+ }
+ *(const char **)(pOpt->pVar) = argv[argNum];
+ break;
+ case OptSpec::NUM:
+ argNum ++;
+ if (argNum >= argc) {
+ fprintf(stderr, "value expected for \"%s\" option.\n",
+ pOpt->name);
+ return FALSE;
+ }
+ char *endp;
+ int i = strtol(argv[argNum], &endp, 0);
+ if (endp == argv[argNum]) {
+ fprintf(stderr,
+ "integer value expected for \"%s\" option.\n",
+ pOpt->name);
+ return FALSE;
+ }
+ *(int *)(pOpt->pVar) = i;
+ }
+ break;
+ }
+ }
+ if (pOpt->name == 0)
+ {
+ fprintf(stderr, "Unrecognized option \"%s\"\n", pArgName);
+ return FALSE;
+ }
+ }
+ return TRUE;
+}
+
+/**
+ * ICU string comparison
+ */
+int strcmp()
+{
+ UChar source[100];
+ UChar target[100];
+ u_unescape(opt_source, source, 100);
+ u_unescape(opt_target, target, 100);
+ UCollationResult result = ucol_strcoll(collator, source, -1, target, -1);
+ if (result == UCOL_LESS) {
+ return -1;
+ }
+ else if (result == UCOL_GREATER) {
+ return 1;
+ }
+ return 0;
+}
+
+/**
+ * Creates a collator
+ */
+UBool processCollator()
+{
+ // Set up an ICU collator
+ UErrorCode status = U_ZERO_ERROR;
+ UChar rules[100];
+
+ if (opt_rules != 0) {
+ u_unescape(opt_rules, rules, 100);
+ collator = ucol_openRules(rules, -1, UCOL_OFF, UCOL_TERTIARY,
+ NULL, &status);
+ }
+ else {
+ collator = ucol_open(opt_locale, &status);
+ }
+ if (U_FAILURE(status)) {
+ fprintf(stderr, "Collator creation failed.: %d\n", status);
+ return FALSE;
+ }
+ if (status == U_USING_DEFAULT_WARNING) {
+ fprintf(stderr, "Warning, U_USING_DEFAULT_WARNING for %s\n",
+ opt_locale);
+ }
+ if (status == U_USING_FALLBACK_WARNING) {
+ fprintf(stderr, "Warning, U_USING_FALLBACK_ERROR for %s\n",
+ opt_locale);
+ }
+ if (opt_norm) {
+ ucol_setAttribute(collator, UCOL_NORMALIZATION_MODE, UCOL_ON, &status);
+ }
+ if (opt_french) {
+ ucol_setAttribute(collator, UCOL_FRENCH_COLLATION, UCOL_ON, &status);
+ }
+ if (opt_lower) {
+ ucol_setAttribute(collator, UCOL_CASE_FIRST, UCOL_LOWER_FIRST,
+ &status);
+ }
+ if (opt_upper) {
+ ucol_setAttribute(collator, UCOL_CASE_FIRST, UCOL_UPPER_FIRST,
+ &status);
+ }
+ if (opt_case) {
+ ucol_setAttribute(collator, UCOL_CASE_LEVEL, UCOL_ON, &status);
+ }
+ if (opt_shifted) {
+ ucol_setAttribute(collator, UCOL_ALTERNATE_HANDLING, UCOL_SHIFTED,
+ &status);
+ }
+ if (opt_level != 0) {
+ switch (opt_level) {
+ case 1:
+ ucol_setAttribute(collator, UCOL_STRENGTH, UCOL_PRIMARY, &status);
+ break;
+ case 2:
+ ucol_setAttribute(collator, UCOL_STRENGTH, UCOL_SECONDARY,
+ &status);
+ break;
+ case 3:
+ ucol_setAttribute(collator, UCOL_STRENGTH, UCOL_TERTIARY, &status);
+ break;
+ case 4:
+ ucol_setAttribute(collator, UCOL_STRENGTH, UCOL_QUATERNARY,
+ &status);
+ break;
+ case 5:
+ ucol_setAttribute(collator, UCOL_STRENGTH, UCOL_IDENTICAL,
+ &status);
+ break;
+ default:
+ fprintf(stderr, "-level param must be between 1 and 5\n");
+ return FALSE;
+ }
+ }
+ if (U_FAILURE(status)) {
+ fprintf(stderr, "Collator attribute setting failed.: %d\n", status);
+ return FALSE;
+ }
+ return TRUE;
+}
+
+/**
+ * Main -- process command line, read in and pre-process the test file,
+ * call other functions to do the actual tests.
+ */
+int main(int argc, const char** argv)
+{
+ if (processOptions(argc, argv, opts) != TRUE || opt_help) {
+ printf(gHelpString);
+ return -1;
+ }
+
+ if (processCollator() != TRUE) {
+ fprintf(stderr, "Error creating collator for comparison\n");
+ return -1;
+ }
+
+ fprintf(stdout, "Comparing source=%s and target=%s\n", opt_source,
+ opt_target);
+ int result = strcmp();
+ if (result == 0) {
+ fprintf(stdout, "source is equals to target\n");
+ }
+ else if (result < 0) {
+ fprintf(stdout, "source is less than target\n");
+ }
+ else {
+ fprintf(stdout, "source is greater than target\n");
+ }
+
+ ucol_close(collator);
+ return 0;
+}
diff --git a/Build/source/libs/icu/icu-xetex/samples/coll/coll.sln b/Build/source/libs/icu/icu-xetex/samples/coll/coll.sln
new file mode 100644
index 00000000000..6744ce84c78
--- /dev/null
+++ b/Build/source/libs/icu/icu-xetex/samples/coll/coll.sln
@@ -0,0 +1,19 @@
+Microsoft Visual Studio Solution File, Format Version 9.00
+# Visual Studio 2005
+Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "coll", "coll.vcproj", "{7664D0D2-0263-4BFB-AE19-9A1CAD231440}"
+EndProject
+Global
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
+ Debug|Win32 = Debug|Win32
+ Release|Win32 = Release|Win32
+ EndGlobalSection
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {7664D0D2-0263-4BFB-AE19-9A1CAD231440}.Debug|Win32.ActiveCfg = Debug|Win32
+ {7664D0D2-0263-4BFB-AE19-9A1CAD231440}.Debug|Win32.Build.0 = Debug|Win32
+ {7664D0D2-0263-4BFB-AE19-9A1CAD231440}.Release|Win32.ActiveCfg = Release|Win32
+ {7664D0D2-0263-4BFB-AE19-9A1CAD231440}.Release|Win32.Build.0 = Release|Win32
+ EndGlobalSection
+ GlobalSection(SolutionProperties) = preSolution
+ HideSolutionNode = FALSE
+ EndGlobalSection
+EndGlobal
diff --git a/Build/source/libs/icu/icu-xetex/samples/coll/coll.vcproj b/Build/source/libs/icu/icu-xetex/samples/coll/coll.vcproj
new file mode 100644
index 00000000000..517ad42756a
--- /dev/null
+++ b/Build/source/libs/icu/icu-xetex/samples/coll/coll.vcproj
@@ -0,0 +1,224 @@
+<?xml version="1.0" encoding="Windows-1252"?>
+<VisualStudioProject
+ ProjectType="Visual C++"
+ Version="8.00"
+ Name="coll"
+ ProjectGUID="{7664D0D2-0263-4BFB-AE19-9A1CAD231440}"
+ >
+ <Platforms>
+ <Platform
+ Name="Win32"
+ />
+ </Platforms>
+ <ToolFiles>
+ </ToolFiles>
+ <Configurations>
+ <Configuration
+ Name="Release|Win32"
+ OutputDirectory=".\Release"
+ IntermediateDirectory=".\Release"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName=".\Release/coll.tlb"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ InlineFunctionExpansion="1"
+ AdditionalIncludeDirectories="..\..\..\include"
+ PreprocessorDefinitions="WIN32,NDEBUG,_CONSOLE"
+ StringPooling="true"
+ RuntimeLibrary="0"
+ EnableFunctionLevelLinking="true"
+ TreatWChar_tAsBuiltInType="true"
+ UsePrecompiledHeader="0"
+ PrecompiledHeaderFile=".\Release/coll.pch"
+ AssemblerListingLocation=".\Release/"
+ ObjectFile=".\Release/"
+ ProgramDataBaseFileName=".\Release/"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ CompileAs="0"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="NDEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="icuind.lib icuucd.lib"
+ OutputFile=".\Release/coll.exe"
+ LinkIncremental="1"
+ SuppressStartupBanner="true"
+ AdditionalLibraryDirectories="..\..\..\lib"
+ ProgramDatabaseFile=".\Release/coll.pdb"
+ SubSystem="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ <Configuration
+ Name="Debug|Win32"
+ OutputDirectory=".\Debug"
+ IntermediateDirectory=".\Debug"
+ ConfigurationType="1"
+ InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC71.vsprops"
+ UseOfMFC="0"
+ ATLMinimizesCRunTimeLibraryUsage="false"
+ CharacterSet="2"
+ >
+ <Tool
+ Name="VCPreBuildEventTool"
+ />
+ <Tool
+ Name="VCCustomBuildTool"
+ />
+ <Tool
+ Name="VCXMLDataGeneratorTool"
+ />
+ <Tool
+ Name="VCWebServiceProxyGeneratorTool"
+ />
+ <Tool
+ Name="VCMIDLTool"
+ TypeLibraryName=".\Debug/coll.tlb"
+ />
+ <Tool
+ Name="VCCLCompilerTool"
+ Optimization="0"
+ AdditionalIncludeDirectories="..\..\..\include"
+ PreprocessorDefinitions="WIN32;_DEBUG;_CRT_SECURE_NO_DEPRECATE"
+ BasicRuntimeChecks="3"
+ RuntimeLibrary="1"
+ TreatWChar_tAsBuiltInType="true"
+ UsePrecompiledHeader="0"
+ PrecompiledHeaderFile=".\Debug/coll.pch"
+ AssemblerListingLocation=".\Debug/"
+ ObjectFile=".\Debug/"
+ ProgramDataBaseFileName=".\Debug/"
+ BrowseInformation="1"
+ WarningLevel="3"
+ SuppressStartupBanner="true"
+ DebugInformationFormat="4"
+ CompileAs="0"
+ />
+ <Tool
+ Name="VCManagedResourceCompilerTool"
+ />
+ <Tool
+ Name="VCResourceCompilerTool"
+ PreprocessorDefinitions="_DEBUG"
+ Culture="1033"
+ />
+ <Tool
+ Name="VCPreLinkEventTool"
+ />
+ <Tool
+ Name="VCLinkerTool"
+ AdditionalDependencies="icuind.lib icuucd.lib"
+ OutputFile=".\Debug/coll.exe"
+ LinkIncremental="2"
+ SuppressStartupBanner="true"
+ AdditionalLibraryDirectories="..\..\..\lib"
+ GenerateDebugInformation="true"
+ ProgramDatabaseFile=".\Debug/coll.pdb"
+ SubSystem="1"
+ />
+ <Tool
+ Name="VCALinkTool"
+ />
+ <Tool
+ Name="VCManifestTool"
+ />
+ <Tool
+ Name="VCXDCMakeTool"
+ />
+ <Tool
+ Name="VCBscMakeTool"
+ />
+ <Tool
+ Name="VCFxCopTool"
+ />
+ <Tool
+ Name="VCAppVerifierTool"
+ />
+ <Tool
+ Name="VCWebDeploymentTool"
+ />
+ <Tool
+ Name="VCPostBuildEventTool"
+ />
+ </Configuration>
+ </Configurations>
+ <References>
+ </References>
+ <Files>
+ <Filter
+ Name="Source Files"
+ Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
+ >
+ <File
+ RelativePath=".\coll.cpp"
+ >
+ </File>
+ </Filter>
+ <Filter
+ Name="Header Files"
+ Filter="h;hpp;hxx;hm;inl"
+ >
+ </Filter>
+ <Filter
+ Name="Resource Files"
+ Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
+ >
+ </Filter>
+ </Files>
+ <Globals>
+ </Globals>
+</VisualStudioProject>
diff --git a/Build/source/libs/icu/icu-xetex/samples/coll/readme.txt b/Build/source/libs/icu/icu-xetex/samples/coll/readme.txt
new file mode 100644
index 00000000000..b5aa4acf5f4
--- /dev/null
+++ b/Build/source/libs/icu/icu-xetex/samples/coll/readme.txt
@@ -0,0 +1,55 @@
+Copyright (c) 2002-2005, International Business Machines Corporation and others. All Rights Reserved.
+coll: a sample program which compares 2 strings with a user-defined collator.
+
+This sample demonstrates
+ Creating a user-defined collator
+ Comparing 2 string using the collator created
+
+Files:
+ coll.c Main source file
+ coll.sln Windows MSVC workspace. Double-click this to get started.
+ coll.vcproj Windows MSVC project file
+
+To Build coll on Windows
+ 1. Install and build ICU
+ 2. In MSVC, open the workspace file icu\samples\coll\coll.sln
+ 3. Choose a Debug or Release build.
+ 4. Build.
+
+To Run on Windows
+ 1. Start a command shell window
+ 2. Add ICU's bin directory to the path, e.g.
+ set PATH=c:\icu\bin;%PATH%
+ (Use the path to where ever ICU is on your system.)
+ 3. cd into the coll directory, e.g.
+ cd c:\icu\source\samples\coll\debug
+ 4. Run it
+ coll [options*] -source source_string -target target_string
+
+To Build on Unixes
+ 1. Build ICU. coll is built automatically by default unless samples are turned off.
+ Specify an ICU install directory when running configure,
+ using the --prefix option. The steps to build ICU will look something
+ like this:
+ cd <icu directory>/source
+ runConfigureICU <platform-name> --prefix <icu install directory> [other options]
+ gmake all
+
+ 2. Install ICU,
+ gmake install
+
+ To Run on Unixes
+ cd <icu directory>/source/samples/coll
+
+ gmake check
+ -or-
+
+ export LD_LIBRARY_PATH=<icu install directory>/lib:.:$LD_LIBRARY_PATH
+ cal
+
+
+ Note: The name of the LD_LIBRARY_PATH variable is different on some systems.
+ If in doubt, run the sample using "gmake check", and note the name of
+ the variable that is used there. LD_LIBRARY_PATH is the correct name
+ for Linux and Solaris.
+