Commit Graph

30674 Commits

Author SHA1 Message Date
Markus Scherer
8335adc310 ICU-20330 simplify LocaleMatcher code:
- widen API from LocalePriorityList to Iterable
- merge getBestMatch(multiple locales) and getBestMatch(single locale) into one function
- process desired locales incrementally, create fewer objects
- reject poor matches early: use bestDistance-demotion for threshold
- add API for java.util.Locale, convert incrementally
- new feature: tracks indexes of supported and desired locales which eliminates conversion of result objects in wrappers around getBestMatch() as shown by the java.util.Locale API here
- simpler data structures, more serialization-friendly (easier to port to C++)
  - e.g., use a BytesTrie each for likelySubtags & locale distance, instead of layers of TreeMap
- un-hardcode locale matcher data; use modern resource bundle functions
- split builder code & runtime code into separate classes
- move LSR to simple top-level value class, cache regionIndex in LSR
- simpler handling of private use languages and pseudolocales
- simplify RegionMapper
- LocaleDistance builder: move the node distance into the DistanceTable, remove DistanceNode
- support distance rules with region codes, not just with variables
- enforce & use distance rule constraints:
  - no rule with *,supported or desired,*
  - no rule with language * and script/region non-*
- distance trie collapse a (desired, supported)=(ANY, ANY) pair into a single *
- look up each desired language only once for all supported LSRs
- remove layers-of-Maps compaction (trie builder compacts)
- remove unused XML printing
- remove other unused code
- make XLocaleMatcherTest.testPerf() exercise locale distance lookup code
2019-02-08 10:35:48 -08:00
Shane Carr
026095ddc3 ICU-20138 Copy fErrorCode in FormattedValue subclass macro. 2019-02-07 23:03:56 -08:00
Shane Carr
8a56b89b03 ICU-20360 Testing and fixing stack overflow in numparse. 2019-02-07 23:03:41 -08:00
Shane F. Carr
78ac6ca3dc ICU-20121 Changing C API method name to ulistfmt_formatStringsToResult. 2019-02-07 22:52:49 -08:00
Shane F. Carr
37e589fb3a ICU-20121 Initial UFormattedList implementation, C. 2019-02-07 22:52:49 -08:00
Shane F. Carr
5c1e3b8aaf ICU-20121 Initial FormattedList implementation, C++. 2019-02-07 22:52:49 -08:00
Jeff Genovy
b91821221a ICU-20389 Add MSVC Debug build to the Azure CI builds.
Also increase the timeout for the debug build.
2019-02-07 18:36:38 -08:00
Markus Scherer
ecd0591521 ICU-20373 simpler state saving for Java string tries via long not object 2019-02-07 13:35:46 -08:00
Frank Tang
f46605a437 ICU-20320 Fix the missing digit singleton extension
Add space

add test cases for Java and fix Java code
2019-02-07 11:35:55 -08:00
Frank Tang
9453dcfc19 ICU-20321 Fix ultag_isUnicodeLocaleKey
Returns false when passingin alphanum digit.
Sync with UTS35
https://www.unicode.org/reports/tr35/#Unicode_locale_identifier

address review feedback add unit tests.

Fix Java too

add test cases to c++

Fix format

change test case
2019-02-07 11:32:38 -08:00
Shane Carr
a184153a2c ICU-20337 Adding value getters to C++ MeasureUnit API.
ICU-20337 Restoring comments in MeasureUnitTest.java
2019-02-06 21:00:34 -08:00
Peter Edberg
9a27ba01ef ICU-20306 Remove incorrect #ifndef U_HIDE_INTERNAL_API around UTEXT_MAGIC 2019-02-06 19:26:38 -08:00
Shane Carr
96556c2d4c ICU-10923 Fixing warning in testdata build file. 2019-02-06 18:59:31 -08:00
Markus Scherer
65852f1a74 ICU-20375 string tries: covariant clone() return types, and copy constructors 2019-02-06 18:21:07 -08:00
Markus Scherer
2982d6c233 ICU-13081 test self-move without clang warning 2019-02-06 18:11:00 -08:00
Daniel Ju
d5ccdc9d2f ICU-20002 Modify Windows 'distrelease.ps1' for 32-bit (x86) builds 2019-02-06 16:07:03 -08:00
Markus Scherer
6277c9c4d7 ICU-20213 deprecate BreakIterator::createTitleInstance() 2019-02-06 15:29:24 -08:00
Andy Heninger
1d60f963e8 ICU-20376 Add out-of-source build testing to Travis. 2019-02-06 14:26:38 -08:00
Markus Scherer
0f7c4c8ed9 ICU-13081 remove C++ moveFrom() functions: still draft, but obsolete since we require C++11 which has std::move() 2019-02-06 13:36:53 -08:00
Steven R. Loomis
b6f72c10c9 ICU-20395 Fix cldr-icu-readme.txt to not mention whitelist 2019-02-06 10:45:43 -08:00
Markus Scherer
f5d2c560a0 ICU-20376 makeconv prepend relative sourcedir to args; only ignore if nothing but a single dot 2019-02-06 08:45:18 -08:00
Peter Edberg
01ecea2df0 ICU-20347 Update ICU4J test to reflect expected behavior 2019-02-06 00:22:47 -08:00
Peter Edberg
e8bcc60d6f ICU-20347 In ICU4J, parsing emoty string should set PARSE_ERROR as before; check ICU4J behavior 2019-02-06 00:22:47 -08:00
Shane F. Carr
57d07d3ec3 ICU-20138 Macros for C and C++ FormattedValue subclass boilerplate.
- Includes macros for implementation only. Headers should be spelled out.
2019-02-05 22:54:13 -08:00
Shane F. Carr
1624176dd9 ICU-20138 Adding FormattedValue helper implementation for FPI handlers.
- Changes FieldPositionIterator (FPI) to use tetrads in the UVector32.
2019-02-05 22:54:13 -08:00
Shane F. Carr
9bb910b8d0 ICU-20138 Implementing ufmtval_nextPosition and additional test infra.
- Adds test infra for multi-category formatted values.
- Adds helper method ConstrainedFieldPosition#matchesField, currently internal.
2019-02-05 22:54:13 -08:00
Peter Edberg
67461d80dc ICU-20253 ICU4C RelativeDateTimeFormatter should fall back to OTHER case, as in ICU4J 2019-02-05 19:19:28 -08:00
Jeff Genovy
1b671c9b25 ICU-20204 ICU4C: Use the CreateFileMapping API for both the UWP version and Win32 versions.
- CreateFileMappingW is marked for both desktop and UWP apps, so we can call that in both code paths.
- We can use the W version of the CreateFileMapping API instead of A version since we pass a NULL for the name anyways.
- We can call the same API CreateFile[A|W] from both the UWP and Win32 versions of the code, reducing one of the UWP forks.
- Add a work-around for older versions of the Windows 10 SDK UWP headers.
- Remove the code that was creating a custom security descriptor (but setting everything to NULL) and pass null to the API directly. This way we will get the default security descriptor instead of the NULL dacl.
- Change to use nullptr instead of NULL in C++ code.
2019-02-05 15:16:56 -08:00
Peter Edberg
ba4dc89169 ICU-20374 need unum_close in new TestParseCases 2019-02-05 14:42:21 -08:00
Peter Edberg
ff04436fe5 ICU-20374 Formattable::internalGetCharString should produce int string for types kLong or kInt64 2019-02-05 14:42:21 -08:00
Jeff Genovy
654278627a ICU-20388 ICU4C: intltest fails with a "Debug Assertion Break" on MSVC when compiled for Debug.
Need to use free() with malloc() instead of uprv_free().
2019-02-05 14:04:10 -08:00
Jeff Genovy
00596d3027 ICU-13847 ICU-20381 Improve handling of errors (Out-of-Memory) in DecimalFormat class.
- Use move assignment for fields->formatter (LocalizedNumberFormatter) instead of creating new heap object every time.
- Add test cases for DecimalFormat object in invalid state.
- Protect against self-assignment in assignment operator.
- Fix segmentation fault when attempting to compare valid and invalid DecimalFormat objects.
- Changes based on review feedback from Shane.
- Fix minor typos in the public header file.
2019-02-05 14:00:40 -08:00
Jeff Genovy
48776d132a ICU-20393 ICU4C: Scale move assignment operator leaks the fArbitrary member (96 bytes) 2019-02-05 13:54:57 -08:00
Norbert Runge
f52a75b2eb ICU-20217 Replaces seed corpus zip files with the original txt files.
The problem is that Docker receives zip files only as LFS links when
cloning ICU from GitHub. Converting the txt files into zip files, which
is the required corpus format for the fuzzer, will be done by the oss-fuzz
build script.

ICU-20217 Adds fuzzer seed corpus files to the list of files that don't have
copyright notice.
2019-02-01 16:07:25 -08:00
Norbert Runge
011c51098b ICU-20386 Adds workaround to icu4c/source/data/Makefile.in: Help python to find
the buildtools directory it needs when running the ICU4C unit tests in an
out-of-source installation.
The change is a quick workaround for now for an issue that can have wide impact.
2019-01-31 15:53:39 -08:00
Daniel Ju
ebd15cf8bd ICU-20220 ICU4C: Use anonymous namespace instead of 'static' keyword in uspoof.cpp 2019-01-30 16:10:36 -08:00
Mihai Nita
108ea4af94 ICU-9622 Update documentation for MessageFormat and skeletons (#361) 2019-01-30 13:09:47 -08:00
Shane F. Carr
19407640f8 ICU-20357 Adding std::unique_ptr conversions to LocalXyzPointer macro. 2019-01-28 21:23:35 -08:00
Norbert Runge
b4fef640cf ICU-20217 Adds additional ICU4C fuzzers. 2019-01-28 15:55:17 -08:00
Shane Carr
ccba38d382 ICU-20298 Adding improved locale filtering to buildtool.
- Integrates changes from cldrbug 11802 to ICU.
- Adds test suite for buildtool.
- Adds new filter type "union".
2019-01-28 13:43:17 -08:00
Shane Carr
1f85e94068 ICU-13839 Adding FormattedNumber API to PluralRules.
- Makes new dependency class for PluralRules+FormattedNumber.
2019-01-28 11:46:00 -08:00
Jeff Genovy
dcc1300613 ICU-20200 Fix mistaken move of MSB8012 warning suppression from shared props file to Library only props file. 2019-01-25 18:02:26 -08:00
Jeff Genovy
11af9f2da4 ICU-20200 Treat select warnings as errors in the ICU4C library code (with MSVC). 2019-01-25 15:58:18 -08:00
Shane Carr
1a453301ee ICU-10923 Adding unix-exec mode to buildtool and updating help page.
- Renames --format flag to --mode.
- Renames windirect to windows-exec.
2019-01-25 15:34:44 -08:00
Don
de6607c9cd ICU-20171 Fix buffer overrun in genccode 2019-01-25 15:29:34 -08:00
Shane Carr
db94f46377 ICU-13800 Adding clone() on [Un]LocalizedNumber[Range]Formatter.
- Returns a LocalPointer that can be converted to std::unique_ptr.
2019-01-25 15:29:21 -08:00
Victor Chang
a424372b7b ICU-20350 Fix DecimalFormatSymbols.setPatternForCurrencySpacing affecting the value across instances 2019-01-25 13:04:49 -08:00
Jeff Genovy
5c8960e59e ICU-20074 Revise UPRV_UNREACHABLE macro to always call abort().
Moved the macro from platform.h to uassert.h.
Removed any "unreachable" code that previously occurred after the UPRV_UNREACHABLE macro is used.
Changes based on review from Andy.

Co-authored-by: Daniel Ju <daju@microsoft.com>
2019-01-24 18:50:04 -08:00
Shane Carr
b7a3571b21 ICU-20357 Adding LocalPointer conversion methods to/from std::unique_ptr
- Requires the right side to be an rvalue reference.
- Includes move constructor, move operator, and conversion operator.
2019-01-24 17:51:07 -08:00
Frank Tang
4104d33501 ICU-20355 Fixing Java currency long name field.
- Adds test in ICU4C and ICU4J.
2019-01-24 17:33:27 -08:00