diff --git a/icu4c/readme.html b/icu4c/readme.html index bffff75922..dfefd15fac 100644 --- a/icu4c/readme.html +++ b/icu4c/readme.html @@ -2,9 +2,6 @@ - - ReadMe for ICU @@ -29,10 +26,10 @@

International Components for Unicode
- ICU 3.1 + ICU 3.2 ReadMe

-

Version: 2004-Aug-04
+

Version: 2004-Oct-25
Copyright © 1997-2004 International Business Machines Corporation and others. All Rights Reserved.

@@ -228,183 +225,23 @@

The following list concentrates on changes that affect existing applications migrating from previous ICU releases. For more news about this release, see the ICU 3.0 download + "http://oss.software.ibm.com/icu/download/3.2/index.html">ICU 3.2 download page.

-

Resource Path Issue

+

Changes to putil.h and + utypes.h

-

In 3.0, do not set the ICU data path to a short name consisting of only - a directory or package name. For example, if your resource package is named - 'mydata', and resides in a directory named 'mydata', the following will - fail:

-
-u_setDataDirectory("mydata");
-ures_open("mydata", NULL, &status);
-
-
+

Starting in ICU 3.2, the unicode/utypes.h and unicode/putil.h headers + are no longer circularly dependent on each other. This means that if you + use any of the functions from unicode/putil.h and only included + unicode/utypes.h, you will now have to include unicode/putil.h too. No + stable API functions have been removed from these headers, but some + internal function declarations (marked with @internal) have been moved to + internal headers.

-

When the data directory and the path (first argument to ures_open) are - exactly the same string, ICU will load the ICU data rather than your - 'mydata' package. This is a known bug and is #3841. The solution - is to make sure these strings are different. For example, setting a path of - "mydata:/otherdir" would work, because there are two path segments and the - path is not identical to "mydata". Another solution would be to use a full - or relative path such as "C:\\path\\to\\mydata", "./mydata", "./mydata/" or - "mydata/".

- -

Locale Identifier - Changes

- -

The ICU locale identifier format has recently changed. In order to - improve support for RFC 3066 identifiers and to support keyword - identifiers, some minor breaking changes have been introduced. When your - application is working with POSIX locale identifiers or .NET locale - identifiers, you should use uloc_canonicalize() - to convert it to an ICU locale identifier. It was an undocumented feature - that you could pass a POSIX locale to ICU, and ICU would convert it for you - automatically. For example, if you used @EURO or @PREEURO to identify - certain currencies, you should now be using the "@currency=" keyword for - the locale identifiers. If you use the uloc_canonicalize() - function, it will convert the @PREEURO variants to the proper ICU locale - identifier. For example, it will convert "fr-fr@PREEURO" to - "fr_FR@currency=FRF". More information about keywords can be found in the - Locale - Section of the User's Guide and on the OpenI18N - site.

- -

Some ISO 15924 script codes are used in some RFC 3066 language tags. - This is especially helpful when you need to differentiate cases where a - language can be written with more than one script. Since ICU now supports - ISO 15924 script codes in the locale identifier, you can now specify - locales like "zh_Hant" to specify Traditional Chinese. Previously, people - had to use "zh_TW" to specify Traditional Chinese, which isn't quite - correct because the locale identifier is specifying the language of a - region and not the type of language. The current locale identifiers, like - en_US, still work, and do not require any changes in your code. Future - versions of ICU will move the data into the proper locale resources, and - the locale infrastructure will be improved.

- -

In order to differentiate between the two library names on all - platforms, static libraries now use an "s" as a prefix to differentiate - between the shared and static libraries. For example, "libicuuc.a" is now - "libsicuuc.a". This means that if you used "-licuuc" to - link the common library into your application, you now need to use - "-lsicuuc".

- -

ICUIO Library Changes

- -

The ICUIO library is still unsupported (this was previously called the - ustdio library), and some breaking fixes have been made to the library. %S - should be used for UTF-16 strings, and %C should be used for UChar for the - format strings. The %K and %U format specifiers are deprecated and will be - removed in a future version of ICU. Also u_fgets now uses the same argument - ordering as stdio fgets, which will make it easier for people to migrate - their existing stdio implementations to use ICUIO. Fortunately, u_fgets now - follows the Unicode algorithm for detecting hard line breaks, and some - performance enhancements to this library have been implemented so that most - of the formatting and parsing functions will run faster.

- -

Library - Initialization

- -

ICU4C 2.6 introduces a library initialization function. It is required - to call it before using any ICU services in a multi-threaded environment. - For details please see the documentation of - u_init() in the unicode/uclean.h header file.

- -

TimeZone - Identifiers

- -

ICU supports over 500 TimeZone identifiers. Most of these are current - Olson identifiers (see TimeZone documentation). However, some of these are - obsolete names for current identifiers. There are two sources of obsolete - identifiers: the Olson database itself, and JDK legacy identifiers. (For - example, the Olson database defines "US/Pacific" as an old identifier for - "America/Los_Angeles". JDK 1.5 defines "PST" as a legacy identifier - equivalent to "America/Los_Angeles".) Currently, the ICU TimeZone API does - not distinguish between current identifiers and obsolete identifiers. This - section lists obsolete identifiers and their modern equivalents.

- -

As of ICU 3.0 there are 136 obsolete Olson names (modern names given in - parentheses): America/Atka (America/Adak), America/Ensenada - (America/Tijuana), America/Fort_Wayne (America/Indianapolis), - America/Indiana/Indianapolis (America/Indianapolis), - America/Kentucky/Louisville (America/Louisville), America/Knox_IN - (America/Indiana/Knox), America/Porto_Acre (America/Rio_Branco), - America/Rosario (America/Cordoba), America/Shiprock (America/Denver), - America/Virgin (America/St_Thomas), Antarctica/South_Pole - (Antarctica/McMurdo), Arctic/Longyearbyen (Europe/Oslo), Asia/Ashkhabad - (Asia/Ashgabat), Asia/Chungking (Asia/Chongqing), Asia/Dacca (Asia/Dhaka), - Asia/Istanbul (Europe/Istanbul), Asia/Macao (Asia/Macau), Asia/Tel_Aviv - (Asia/Jerusalem), Asia/Thimbu (Asia/Thimphu), Asia/Ujung_Pandang - (Asia/Makassar), Asia/Ulan_Bator (Asia/Ulaanbaatar), Atlantic/Jan_Mayen - (Europe/Oslo), Australia/ACT (Australia/Sydney), Australia/Canberra - (Australia/Sydney), Australia/LHI (Australia/Lord_Howe), Australia/NSW - (Australia/Sydney), Australia/North (Australia/Darwin), - Australia/Queensland (Australia/Brisbane), Australia/South - (Australia/Adelaide), Australia/Tasmania (Australia/Hobart), - Australia/Victoria (Australia/Melbourne), Australia/West (Australia/Perth), - Australia/Yancowinna (Australia/Broken_Hill), Brazil/Acre - (America/Porto_Acre), Brazil/DeNoronha (America/Noronha), Brazil/East - (America/Sao_Paulo), Brazil/West (America/Manaus), CST6CDT - (America/Chicago), Canada/Atlantic (America/Halifax), Canada/Central - (America/Winnipeg), Canada/East-Saskatchewan (America/Regina), - Canada/Eastern (America/Toronto), Canada/Mountain (America/Edmonton), - Canada/Newfoundland (America/St_Johns), Canada/Pacific (America/Vancouver), - Canada/Saskatchewan (America/Regina), Canada/Yukon (America/Whitehorse), - Chile/Continental (America/Santiago), Chile/EasterIsland (Pacific/Easter), - Cuba (America/Havana), EST (America/Indianapolis), EST5EDT - (America/New_York), Egypt (Africa/Cairo), Eire (Europe/Dublin), Etc/GMT+0 - (Etc/GMT), Etc/GMT-0 (Etc/GMT), Etc/GMT0 (Etc/GMT), Etc/Greenwich - (Etc/GMT), Etc/Universal (Etc/UTC), Etc/Zulu (Etc/UTC), Europe/Bratislava - (Europe/Prague), Europe/Ljubljana (Europe/Belgrade), Europe/Nicosia - (Asia/Nicosia), Europe/San_Marino (Europe/Rome), Europe/Sarajevo - (Europe/Belgrade), Europe/Skopje (Europe/Belgrade), Europe/Tiraspol - (Europe/Chisinau), Europe/Vatican (Europe/Rome), Europe/Zagreb - (Europe/Belgrade), GB (Europe/London), GB-Eire (Europe/London), GMT - (Etc/GMT), GMT+0 (Etc/GMT+0), GMT-0 (Etc/GMT-0), GMT0 (Etc/GMT0), Greenwich - (Etc/Greenwich), HST (Pacific/Honolulu), Hongkong (Asia/Hong_Kong), Iceland - (Atlantic/Reykjavik), Iran (Asia/Tehran), Israel (Asia/Jerusalem), Jamaica - (America/Jamaica), Japan (Asia/Tokyo), Kwajalein (Pacific/Kwajalein), Libya - (Africa/Tripoli), MST (America/Phoenix), MST7MDT (America/Denver), - Mexico/BajaNorte (America/Tijuana), Mexico/BajaSur (America/Mazatlan), - Mexico/General (America/Mexico_City), Mideast/Riyadh87 (Asia/Riyadh87), - Mideast/Riyadh88 (Asia/Riyadh88), Mideast/Riyadh89 (Asia/Riyadh89), NZ - (Pacific/Auckland), NZ-CHAT (Pacific/Chatham), Navajo (America/Denver), PRC - (Asia/Shanghai), PST8PDT (America/Los_Angeles), Pacific/Samoa - (Pacific/Pago_Pago), Poland (Europe/Warsaw), Portugal (Europe/Lisbon), ROC - (Asia/Taipei), ROK (Asia/Seoul), Singapore (Asia/Singapore), SystemV/AST4 - (America/Puerto_Rico), SystemV/AST4ADT (America/Halifax), SystemV/CST6 - (America/Regina), SystemV/CST6CDT (America/Chicago), SystemV/EST5 - (America/Indianapolis), SystemV/EST5EDT (America/New_York), SystemV/HST10 - (Pacific/Honolulu), SystemV/MST7 (America/Phoenix), SystemV/MST7MDT - (America/Denver), SystemV/PST8 (Pacific/Pitcairn), SystemV/PST8PDT - (America/Los_Angeles), SystemV/YST9 (Pacific/Gambier), SystemV/YST9YDT - (America/Anchorage), Turkey (Europe/Istanbul), UCT (Etc/UCT), US/Alaska - (America/Anchorage), US/Aleutian (America/Adak), US/Arizona - (America/Phoenix), US/Central (America/Chicago), US/East-Indiana - (America/Indianapolis), US/Eastern (America/New_York), US/Hawaii - (Pacific/Honolulu), US/Indiana-Starke (America/Indiana/Knox), US/Michigan - (America/Detroit), US/Mountain (America/Denver), US/Pacific - (America/Los_Angeles), US/Pacific-New (America/Los_Angeles), US/Samoa - (Pacific/Pago_Pago), UTC (Etc/UTC), Universal (Etc/Universal), W-SU - (Europe/Moscow), Zulu (Etc/Zulu).

- -

As of ICU 3.0 there are 25 legacy JDK identifiers (modern names given in - parentheses): ACT (Australia/Darwin), AET (Australia/Sydney), AGT - (America/Buenos_Aires), ART (Africa/Cairo), AST (America/Anchorage), BET - (America/Sao_Paulo), BST (Asia/Dhaka), CAT (Africa/Harare), CNT - (America/St_Johns), CST (America/Chicago), CTT (Asia/Shanghai), EAT - (Africa/Addis_Ababa), ECT (Europe/Paris), IET (America/Indianapolis), IST - (Asia/Calcutta), JST (Asia/Tokyo), MIT (Pacific/Apia), NET (Asia/Yerevan), - NST (Pacific/Auckland), PLT (Asia/Karachi), PNT (America/Phoenix), PRT - (America/Puerto_Rico), PST (America/Los_Angeles), SST - (Pacific/Guadalcanal), VST (Asia/Saigon).

-
+

This change was announced on the icu mailing list, and it was done to + fix some header dependency issues that appeared while trying to make some + changes to the utf.h header macros.

How To Download the Source Code

@@ -1055,8 +892,8 @@ ures_open("mydata", NULL, &status); The instructions for building with Visual Studio 6 are similar to the instructions for Visual Studio .NET. If you have Microsoft Visual Studio .NET 2002, it is recommended that you build from the command line with - Cygwin. The Cygwin building instructions are in How To Build And Install On Windows with Cygwin + Cygwin. The Cygwin building instructions are in How To Build And Install On Windows with Cygwin section of this document.

libraryname')

Following these guidelines prevents other applications that use a - standard ICU distribution from conflicting with any libraries that you need. On - operating systems that do not have a standard C++ ABI (name mangling) for - compilers, it is recommended to do this special packaging anyway. More - details on customizing ICU are available in the User's Guide. The ICU Source Code Organization section of this readme.html gives a more complete description of the libraries.

diff --git a/icu4c/source/common/common.dsp b/icu4c/source/common/common.dsp index 8cedf476eb..237ebf6484 100644 --- a/icu4c/source/common/common.dsp +++ b/icu4c/source/common/common.dsp @@ -55,7 +55,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386 -# ADD LINK32 icudt.lib kernel32.lib user32.lib advapi32.lib shell32.lib /nologo /base:"0x4a800000" /dll /machine:I386 /out:"..\..\bin\icuuc31.dll" /implib:"..\..\lib\icuuc.lib" /libpath:"..\..\lib" +# ADD LINK32 icudt.lib kernel32.lib user32.lib advapi32.lib shell32.lib /nologo /base:"0x4a800000" /dll /machine:I386 /out:"..\..\bin\icuuc32.dll" /implib:"..\..\lib\icuuc.lib" /libpath:"..\..\lib" # SUBTRACT LINK32 /pdb:none /debug !ELSEIF "$(CFG)" == "common - Win32 Debug" @@ -82,7 +82,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept -# ADD LINK32 icudt.lib kernel32.lib user32.lib advapi32.lib shell32.lib /nologo /base:"0x4a800000" /dll /debug /machine:I386 /out:"..\..\bin\icuuc31d.dll" /implib:"..\..\lib\icuucd.lib" /pdbtype:sept /libpath:"..\..\lib" +# ADD LINK32 icudt.lib kernel32.lib user32.lib advapi32.lib shell32.lib /nologo /base:"0x4a800000" /dll /debug /machine:I386 /out:"..\..\bin\icuuc32d.dll" /implib:"..\..\lib\icuucd.lib" /pdbtype:sept /libpath:"..\..\lib" # SUBTRACT LINK32 /pdb:none !ELSEIF "$(CFG)" == "common - Win64 Release" @@ -109,7 +109,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:IX86 /machine:IA64 -# ADD LINK32 icudt.lib kernel32.lib user32.lib advapi32.lib shell32.lib /nologo /base:"0x4a800000" /dll /machine:IX86 /out:"..\..\bin\icuuc31.dll" /implib:"..\..\lib\icuuc.lib" /libpath:"..\..\lib" /machine:IA64 +# ADD LINK32 icudt.lib kernel32.lib user32.lib advapi32.lib shell32.lib /nologo /base:"0x4a800000" /dll /machine:IX86 /out:"..\..\bin\icuuc32.dll" /implib:"..\..\lib\icuuc.lib" /libpath:"..\..\lib" /machine:IA64 # SUBTRACT LINK32 /debug !ELSEIF "$(CFG)" == "common - Win64 Debug" @@ -136,7 +136,7 @@ BSC32=bscmake.exe # ADD BSC32 /nologo LINK32=link.exe # ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:IX86 /pdbtype:sept /machine:IA64 -# ADD LINK32 icudt.lib kernel32.lib user32.lib advapi32.lib shell32.lib /nologo /base:"0x4a800000" /dll /incremental:no /debug /machine:IX86 /out:"..\..\bin\icuuc31d.dll" /implib:"..\..\lib\icuucd.lib" /pdbtype:sept /libpath:"..\..\lib" /machine:IA64 +# ADD LINK32 icudt.lib kernel32.lib user32.lib advapi32.lib shell32.lib /nologo /base:"0x4a800000" /dll /incremental:no /debug /machine:IX86 /out:"..\..\bin\icuuc32d.dll" /implib:"..\..\lib\icuucd.lib" /pdbtype:sept /libpath:"..\..\lib" /machine:IA64 !ENDIF diff --git a/icu4c/source/common/common.vcproj b/icu4c/source/common/common.vcproj index 7fdb46d441..46026cde13 100644 --- a/icu4c/source/common/common.vcproj +++ b/icu4c/source/common/common.vcproj @@ -41,10 +41,10 @@ Name="VCCustomBuildTool"/>