Commit graph

23009 commits

Author SHA1 Message Date
Fredrik Roubert
3534d337c6 ICU-20973 Rewrite polymorphic CacheKeyBase equality operators for C++20.
The existing polymorphic equality operators that use different types for
the `this` and `other` objects are ambiguous with C++20 resolution rules
that require equality for reversed arguments.

In order to resolve that, while also possibly making the implementation
somewhat simpler overall, the implementation classes (LocaleCacheKey
and DateFmtBestPatternKey) now get normal (non-polymorphic) equality
operators that are trivially non-ambiguous (and as a bonus also don't
need any type casts), while the dynamic type checking logic is moved
into protected helper functions, which in the end are invoked
(without any ambiguity) by friend operators in the base class.

This way, all equality testing of cache key objects ends up taking one
of these two possible paths:

1. Both sides of the equality operator are of the same implementation
   type (ie. LocaleCacheKey or DateFmtBestPatternKey):

   The type specific equality operator is called directly, comparing the
   relevant attributes of the two objects directly.

2. The two sides of the equality operator are either of different types
   or of some base class type:

   The friend equality operators of CacheKeyBase call the virtual helper
   function to figure out whether the two objects are actually of the
   same type and if they are and this type is an implementation type
   then does the necessary type cast to get to 1.
2021-08-26 00:12:04 +02:00
Shane F. Carr
c12c5b5a4c ICU-21215 Add default constructor to FormattedNumberRange 2021-08-25 13:34:48 -05:00
Shane F. Carr
8cd025bb9c ICU-21590 Add skeleton syntax for integer-width-trunc 2021-08-25 12:51:51 -05:00
Markus Scherer
486e2d36ac ICU-21648 limit backslash-uhhhh escapes to ASCII hex digits 2021-08-25 17:04:24 +00:00
Markus Scherer
ae3f2ae7ca ICU-21663 UnicodeSetIterator: make protected members private 2021-08-25 00:51:14 +00:00
Shane F. Carr
e2acbdee22 ICU-21693 Fix FormattedNumber::toDecimalNumber on 0 2021-08-23 21:10:07 -05:00
Markus Scherer
41aa7159ea ICU-21635 Unicode 14 data files 20210820, line break LB30b.2
See #1807
2021-08-23 22:11:49 +00:00
Peter Edberg
7e07633997 ICU-21581 lingering exhaustive fail, need to separately skip sd_Deva month name exemplar test 2021-08-19 22:09:48 -07:00
Peter Edberg
f6d47953c0 ICU-21581 integrate CLDR release-40-alpha1 to ICU trunk 2021-08-19 15:27:38 -07:00
Shane F. Carr
4e01fba906 ICU-21358 Use sign position to format approximate numbers
See #1635
2021-08-19 16:18:19 -05:00
Peter Edberg
49dda34fb1 ICU-21581 integrate CLDR 40a0 to ICU trunk 2021-08-18 23:59:19 -07:00
Fredrik Roubert
51c11da869 ICU-20973 Delete unnecessary deprecated TimeUnitFormat::operator!=().
An operator!=() is already defined by a base class so this class doesn't
need to define it again and not doing so avoids a C++20 ambiguity.

This simplifies the code.
2021-08-19 01:22:48 +02:00
Frank Tang
126af02948 ICU-21729 Fix setLanguageTag doc matching Java 2021-08-18 16:16:10 -07:00
Rich Gillam
1ec55bf021 ICU-21202 Fixed error in alias resolution in uresbund.cpp. 2021-08-18 10:12:20 -07:00
Fredrik Roubert
88896d005d ICU-20973 Update configure files from configure.ac using autoreconf. 2021-08-17 00:35:00 +02:00
Fredrik Roubert
dc1b8ca26e ICU-20973 Use the Clang -Wno-ambiguous-reversed-operator flag. 2021-08-17 00:35:00 +02:00
Fredrik Roubert
2166b512fc ICU-20973 Manually resolve C++20 reversed argument order ambiguity. 2021-08-17 00:35:00 +02:00
Fredrik Roubert
633438f8da ICU-20973 Change all equality operator return types from UBool to bool. 2021-08-17 00:35:00 +02:00
Gregorio Litenstein
ee7468a565 ICU-21064 Fix declspec macro conflict on clang. 2021-08-16 11:06:46 -07:00
Jeff Genovy
744ca71663 ICU-21707 Fix LocaleBuilder assumption that the default locale doesn't have any BCP47 extension tags.
Add test case for LocaleBuilder with default locale with extensions.

Use Locale::getRoot().clone() instead of new Locale();

Add CI build bot with LANG that has extension tags
2021-08-12 16:58:12 -07:00
Myles C. Maxfield
e2fafa5840 ICU-21694 ubidi.h sample code would not compile 2021-08-04 11:47:05 -07:00
Rich Gillam
b03b8be741 ICU-21639 Added an internal utility class to streamline preflighting and heap-allocating a char buffer for a locale ID
and changed several internal methods in ULocale to use it, so that they work correctly on locale IDs that are longer
than ULOC_FULLNAME_CAPACITY.
2021-08-02 13:15:29 -07:00
Andy Heninger
c26aebe802 ICU-21662 Rename UVector::addElement().
This is the first step towards improving the error handling and out-of-memory
behavior of UVector::addElement(). A followup PR will add back a new addElement()
with corrected error handling, then additional followups will switch call sites
from the original (renamed) function to the new addElement().

This commit includes no logic or behavior changes; it only renames the existing functions.
2021-07-28 15:36:50 -07:00
Rich Gillam
dcfdaca46c ICU-21647 Added support for narrow quarter names to DateFormatSymbols and SimpleDateFormat. 2021-07-28 11:14:36 -07:00
David Haney
9ff39368b2 ICU-21680 Add -std flag when generating dependency information 2021-07-27 08:40:09 -04:00
Peter Edberg
eed6388dab ICU-21622 Add UYW to list of currencies from ucurr_openISOCurrencies() 2021-07-22 16:51:20 -07:00
Rich Gillam
d5cb201e52 ICU-21624 Fixed it so that a DecimalFormat no longer owns two separate DecimalFormatSymbols objects. 2021-07-22 14:17:19 -07:00
Rich Gillam
9a614752ce ICU-21584 Added code to allow regions of type "grouping" to return their children. 2021-07-22 12:55:50 -07:00
Peter Edberg
17d64710a2 ICU-21581 BRS 70rc, update urename.h pass 1 2021-07-22 10:35:51 -07:00
Rich Gillam
0e4b768289 ICU-21581 Promoted @draft 68 APIs to stable 2021-07-19 14:59:57 -07:00
luz paz
73eca0a9c9 ICU-21580 Fix typos in icu4c/
Found via `codespell -q 3 -L ans,anumber,atleast,ba,bre,hace,nd,nin,ois,rsource,som,sur,tht -S icu4c/source/data/zone,icu4c/source/data/lang`
ICU-21580 Fix source (related) typos
ICU-21580 Revert extraneous auto-encoding
ICU-21580 Re-add previous reverted fix without auto-encoding
2021-07-19 13:22:38 -05:00
Rich Gillam
ac51a1921f ICU-21650 Modified DateTimePatternGenerator to handle skeletons with "e" and "c" better (allowing support for numeric
day-of-week abbreviations).
2021-07-15 18:16:51 -07:00
Frank Yung-Fong Tang
cfffa2b83b ICU-21676 Fix strcpy buffer override in ultag_parse
See #1767
2021-07-14 10:26:14 -07:00
Frank Tang
24778dfc9b ICU-21641 Fix "emoji" and "eor" for Collator::getKeywordValues
See #1743
2021-07-13 15:30:42 -07:00
Jeff Genovy
1d560c37e5 ICU-21664 Fix set but unused warning in locid.cpp 2021-07-12 12:11:34 -07:00
Shane F. Carr
4c35e59bdc ICU-21659 Adding test for exabyte 2021-07-02 13:44:16 -05:00
Markus Scherer
e4e2ae9544 ICU-21525 UnicodeSet.hasString(), UnicodeSetIterator.skipToStrings() & C API 2021-07-01 00:44:24 +00:00
Jeff Genovy
a25a710755 ICU-21644 Use LocalPointer in ICUService::getKey to prevent leaks. 2021-06-28 13:54:51 -07:00
Frank Tang
5e4fdaf45f ICU-21491 Remove internal usage of @internal BasicTimeZone::getOffsetFromLocal
See #1681
2021-06-23 20:39:45 -07:00
Markus Scherer
d4c92ebcfc ICU-21635 Unicode 14 beta 2021-06-21 22:26:15 +00:00
Markus Scherer
fc28b3521d ICU-21580 fix unicode.org/unicode/ URLs 2021-06-18 23:39:05 +00:00
Peter Edberg
4a6ad3dc93 ICU-21581 integrate CLDR release-40-m1 to ICU trunk 2021-06-15 14:24:21 -07:00
Elango Cheran
121dbe8364 ICU-21632 Fix links in readme.html files to respective readme pages in User Guide 2021-06-10 09:36:19 -07:00
Erik Torres
3f043c7693 ICU-21555 Fix typos from G to L
See #1737
2021-06-07 16:09:09 -07:00
Erik Torres
48ef451b87 ICU-21581 BRSRC 70.0.1 Version update and regenerate configure for v70.0.1
See #1738
2021-06-04 14:09:41 -07:00
Andy Heninger
7d75a85501 ICU-21579 Compiler warning fixes.
Fix typos in hard-coded test data, uncovered by a compiler upgrade to
clang version 12.0.0-1ubuntu1
2021-05-21 12:29:09 -07:00
yumaoka
5518bb0c84 ICU-21623 Removed linker flag -dexpall for AIX xlclang build.
See #1727
2021-05-20 11:49:40 -04:00
Frank Tang
6d56429336 ICU-21569 LSTM fix resource issue.
See #1718
2021-05-15 10:10:37 -07:00
Frank Tang
4b6e6e1bc9 ICU-21569 LSTM Add test to test long string. 2021-05-13 13:12:59 -07:00
Frank Tang
b96a806c8f ICU-21569 Remove extra LocalUResourceBundlePointer
Remove LocalUResourceBundlePointer fDictRes which shadowed the real
UUResourceBundle*.

ICU-21569 fix assert
2021-05-11 20:46:53 -07:00