Commit Graph

21488 Commits

Author SHA1 Message Date
Shane F. Carr
ac359112a1 ICU-20348 Fixing DecimalFormat set affix currency behavior.
- Includes minor changes to tests.
2019-01-17 11:32:38 -08:00
Jeff Genovy
33d7868d45 ICU-20351 Warning cleanup changes for ICU4C under MSVC. 2019-01-16 16:43:02 -08:00
Jeff Genovy
b0a372ac9a ICU-20353 Fix MSVC Warning/Error C4251 with CodePointMatcherWarehouse and MemoryPool. 2019-01-16 14:59:57 -08:00
Jeff Genovy
25380f6f81 ICU-20352 Remove unneeded UWP includes for WRL and Windows.Globalization.h from putil.cpp 2019-01-16 14:28:09 -08:00
Norbert Runge
e6cd35e005 ICU-20217 Fix comment syntax in fuzzing dictonary for ICU regular expressions. 2019-01-15 08:41:19 -08:00
Daniel Ju
7453181fff ICU-20074 Define UPRV_UNREACHABLE macro for unreachable code
Replaced occurrences of U_ASSERT(FALSE) with new UPRV_UNREACHABLE macro.
2019-01-14 14:16:26 -08:00
Daniel Ju
b12f741e4b ICU-13653 Quiet warnings about output target when building with MSVC 2019-01-14 13:39:20 -08:00
Norbert Runge
4893313bd9 ICU-20217 Adds ICU fuzzer target originally from https://github.com/google/oss-fuzz/tree/master/projects/icu directly into ICU on GitHub.
Also, puts code under Unicode copyright notice. Code is from oss-fuzz project and was originally contributed by a Googler as well.
2019-01-11 15:03:27 -08:00
Shane Carr
768b577e6a ICU-20138 Adding FormattedValue APIs in C, C++, and Java.
- Wires up FormattedNumber[Range] in applicable languages.
- Adds new header files and tests, with minor cleanup to old tests.
- Adds code to guarantee terminating NUL in FormattedNumber[Range].
- Cleanup of API docs for inherited methods in FormattedNumber[Range].
2019-01-10 17:02:49 -06:00
Jeff Genovy
c3291233c4 ICU-20325 Fix warnings about unknown pragma when building with GCC in MSYS2 (Windows). 2019-01-10 14:31:47 -08:00
Jeff Genovy
83fea413ba ICU-20315 Fix MSYS2 build break: Don't prepend the source dir if it is just a current directory (.) path. 2019-01-09 17:02:29 -08:00
Andy Heninger
921ae1b71e ICU-20227 Regex API docs - add references to URegexpFlag where flags are mentioned. Replace html with markdown. 2019-01-04 09:28:01 -08:00
Yoshito Umaoka
6cc883775b ICU-20331 time zone data updates for tzdata2018i 2019-01-03 14:37:58 -05:00
Andy Heninger
58786f5cbe ICU-12079 Full width digits become numeric for word break. 2018-12-18 16:36:06 -08:00
Victor Chang
0a258170f9 ICU-20309 UCONFIG_NO_CONVERSION block should include the doxygen doc for uregex_openC 2018-12-18 16:31:56 -08:00
Shane Carr
b0d572c7f1 ICU-10923 Python logic for resource filters.
- Adds schema validation for config file
- Adds JSON comment stripping utility
2018-12-17 17:11:25 -08:00
Jeff Genovy
d8520c9f66 ICU-20302 Fix wintz header file. (Thanks to Jungshik). 2018-12-14 19:39:48 -08:00
Jeff Genovy
5bc7485de6 ICU-20302 Timezone detection fails on Windows 7. Also add a test case for Windows time zone detection failing. 2018-12-13 17:18:54 -08:00
Shane Carr
7ec3357d70 ICU-10923 Adding --filterDir option to genrb.
- Reads, parses, and applies the filter file syntax.
- Removes unused keys from the resource bundle.
- Adds sample filter txt file with test in intltest.
2018-12-13 16:18:47 -08:00
Shane Carr
1b5c721ef2 ICU-20300 Changing buildtool nametuples to polymorphic classes. 2018-12-13 13:53:18 -08:00
Mihai Nita
2666d18e54 ICU-9622 Adding support for date/time skeletons 2018-12-13 13:20:33 -08:00
Victor Chang
8aa5d23d7d ICU-20308 Define a fixed suffix without the ICU version suffix
- Add a config macro U_DISABLE_VERSION_SUFFIX to disable version suffix
2018-12-13 10:56:57 -08:00
Markus Scherer
3b16ae86c6 ICU-20292 u_charFromName() prevent code point integer overflow, and limit to at most 8 hex digits 2018-12-12 14:08:37 -08:00
Jeff Genovy
3db38553ad ICU-20279 Remove MSVC specific macro _ARM64_
Remove unneeded check for MSVC internal _ARM64_ macro in normlzr.cpp
2018-12-12 13:55:07 -08:00
Shane Carr
c30cd07c7e ICU-20299 Adds Python 2.7 support to data build script. 2018-12-12 12:56:00 -08:00
Victor Chang
95b9d5ec87 ICU-20307 Add reldatefmt.h and compactdecimalformat.h into test/hdrtst/cxxfiles.txt 2018-12-12 06:48:57 -08:00
Shane Carr
70341459e3 ICU-10923 Fixing broken dependency names in BUILDRULES.py.
Fixes warnings and a flaky test.
2018-12-10 23:49:04 -08:00
Shane Carr
a2a39e69d0 ICU-10923 Adding initial version of data file filtering.
- Reads filters.json or .hjson from ICU_DATA_FILTER_FILE environment variable
- Adds DepTarget for dependency semantics, and warns for missing deps.
- Fixes certain tests that crash with sliced locale data.
- Includes support for 4 filter types.
2018-12-07 16:51:18 -08:00
Shane Carr
a4dd8b3702 ICU-10923 Refactoring in preparation for data file filtering.
- Adding SpaceSeparatedList abstraction.
- Adding ListRequest abstraction.
- Adding separate dep_files option to SingleExecutionRequest.
- Removing unused variable pkg_exclusions.
- Adding IndexTxtRequest abstraction.
- Moving curr/supplementalData.txt into its own target.
- Changing getters to properties on Config.
- Re-indenting and refactoring data/BUILDRULES.py
- Adding category to request tuples. Refactoring translit.
2018-12-07 16:12:38 -08:00
Frank Tang
de4031b783 ICU-11053 Fix locale parsing which has _ timezone 2018-12-05 19:16:13 -08:00
Shane Carr
bb2b390b87 ICU-20186 Adding test for leading and trailing spaces in DecimalFormat. 2018-12-05 15:37:38 -08:00
Steven R. Loomis
00b360227b ICU-20247 use = instead of == in sh compare
* Note: the diff will show changes to "runstatedir". This is
a feature which ICU does not use, and it is not in any released
autoconf version. Perhaps some distributions patched autoconf
locally.

https://lists.gnu.org/archive/html/autoconf/2018-07/msg00006.html
2018-12-05 14:32:36 -08:00
Shane Carr
cd4644c4a0 ICU-20293 Adds common base class to implement C API validation methods. 2018-12-04 15:57:06 -08:00
Markus Scherer
ea7c030961 ICU-20203 update ICU to Unicode 12 beta
- data as of 2018-nov-26
- API constants for new blocks & scripts
- sync RBBIMonkeyTest.java test data with C++
2018-11-28 23:13:07 +01:00
Shane Carr
1e4a8d3c29 ICU-20186 Adding test for semicolon behavior and spacing in DecimalFormat. 2018-11-26 18:49:32 -06:00
Fredrik Roubert
6f932b744d ICU-20276 Accept empty strings in Locale::setUnicodeKeywordValue().
The API documentation is perfectly clear about this, an empty string for
the value means that the keyword should be removed:

  @param keywordValue value of the keyword to be set. If 0-length or
   NULL, will result in the keyword being removed. No error is given if
   that keyword does not exist.
2018-11-20 19:24:33 +01:00
Andy Heninger
47d455a725 ICU-20179 Remove platform-specific mutex and atomics implementations.
Remove all POSIX and Win32 specific mutex, atomic and threading implementations
in favor of C++11 std library functions.

Move the related (internal) ICU types and functions into the icu namespace.
2018-11-19 17:17:09 -08:00
Shane Carr
c0799c141b ICU-20230 Implementing COMPACT field.
Adds some plumbing to allow MutablePatternModifier to set fields, and otherwise builds upon the infrastructure from the previous commit to add the MEASURE_UNIT field.
2018-11-19 16:21:36 -07:00
Shane Carr
ee9c0b944c ICU-10923 Rewriting data build orchestration in Python.
- Creates new Python package in icu4c/data/buildtool
- Creates BUILRDULES.py in icu4c/data and icu4c/test/testdata, unified between Unix/Windows
- Removes most data build orchestration rules from makedata.mak, testdata.mak, data/Makefile.in, and test/testdata/Makefile.in
- Removes pool.res files and builds them on the fly instead
2018-11-19 13:43:35 -07:00
Fredrik Roubert
2d3901ae5d ICU-20271 Use C++11 operator new = delete to disallow heap allocation. 2018-11-19 13:59:36 +01:00
Andy Heninger
6c781b1428 ICU-10183 Use std::mutex by default; clean up related dependency check issues. 2018-11-18 16:28:40 -08:00
Shane Carr
74bbf9e381 ICU-13267 Implementing MEASURE_UNIT field.
Adds plumbing to trim whitespace near the FormattedNumber API boundary.
That plumbing requires a change to dependencies.txt.
2018-11-15 21:37:32 -07:00
Dongyuan Liu
46a888be87 ICU-13441 For zh/ja, tailor linebreak classes for quotations such as “ 201C and ” 201D 2018-11-14 19:53:12 -08:00
Andy Heninger
776b9d7f2b ICU-20185 Remove U_USER_ATOMICS_H, U_USER_MUTEX_H, U_USER_MUTEX_CPP 2018-11-13 14:48:48 -08:00
Fredrik Roubert
f38c928960 ICU-20202 Merge #ifdef __cplusplus blocks.
For historical reasons (commit 3b12074b40),
all C++ code (even #include statements) in cmemory.h is contained in an
#ifdef block at the end of the file. A recent bugfix inadvertently added
an additional #ifdef __cplusplus block at the beginning of the file to
add a new #include statement so that C++ #include statements now are
found in two places (commit 1bad36b91a).
2018-11-13 22:58:27 +01:00
Andy Heninger
d6c3b271fe ICU-20084 IntlTest, add WHERE macro; remove redundant TEST macros. 2018-11-13 11:08:35 -08:00
Jeff Genovy
7756ee0446 ICU-20239 Add VS2015 build line to the Azure CI builds. 2018-11-12 16:44:44 -08:00
Markus Scherer
98f9170004 ICU-20250 make UnicodeSet(intprop=value) faster
- fastpath for UnicodeSet.add(new last range)
- fewer UnicodeSet memory allocations:
  initial internal list array, exponential array growth,
  allocate strings list/set only when first one is added
- faster CodePointTrie.getRange(): fewer calls to filter function
- revert UnicodeSet(intprop=value) from trie ranges to range starts + lookup
- cache per-int-prop range starts: fewer lookups
2018-11-12 16:05:57 -08:00
Jeff Genovy
401cdb46ef ICU-20238 Autodetect Visual Studio version, and autodetect the installed Windows 10 SDK version. 2018-11-08 16:46:36 -08:00
Shane Carr
e2882d961f ICU-13267 Minor documentation and test changes. 2018-11-08 17:13:39 -07:00
Shane Carr
11a559f319 ICU-13267 Refactoring field position testing logic into helper function.
Makes future field position logic easier to test.
2018-11-08 17:13:29 -07:00
Shane Carr
ba21ff79c4 ICU-13701 Syncs C and J increment rounding. Checks for nickel sooner. 2018-11-08 17:13:17 -07:00
Shane Carr
a1cc16ccd3 ICU-13701 Refactoring DecimalQuantity: removing lOptPos/rOptPos.
Combined ICU4C and ICU4J.
2018-11-08 02:43:31 -07:00
Markus Scherer
59006770ed ICU-20250 faster MutableCodePointTrie.build(): use a hashtable to find equal blocks in earlier parts of the compacted data & index arrays 2018-11-07 14:29:24 -08:00
Fredrik Roubert
93e84caa65 ICU-20169 Replace uprv_malloc() / uprv_free() with MemoryPool.
This resolves the immediate problem of brittle memory management
in the error handling code.

An obvious future improvement would be to replace the old C style
"plain struct with pointers" VariantListEntry, AttributeListEntry
and ExtensionListEntry with contemporary C++ style containers that
take care of ownership and memory management.
2018-11-07 17:58:14 +01:00
Fredrik Roubert
710212c495 ICU-20249 An internal helper class for stack allocated UResourceBundle. 2018-11-07 17:57:50 +01:00
Jeff Genovy
9a5b7af83d ICU-13180 Support skiping building the UWP projects with a command line MSBuild option. 2018-11-06 16:02:03 -08:00
Fredrik Roubert
9877b633a2 ICU-20169 Use LocalULanguageTagPointer also inside of ultag_parse(). 2018-11-06 13:28:54 +01:00
Fredrik Roubert
9de0383cfa ICU-20202 Replace CodePointMatcherWarehouse with MemoryPool.
The shared templated helper class MemoryPool can be used to replace the
local helper class CodePointMatcherWarehouse, reducing the amount of
specialized code needed.
2018-11-05 13:37:10 +01:00
Andy Heninger
a96dc7faa5 ICU-10183 revert mutexes to platform code while sorting dependencies from std::mutex. 2018-11-02 15:59:03 -07:00
Andy Heninger
1bad36b91a ICU-20202 MemoryPool and uloc_key_type structs inherit from UMemory. Fixes dependencies on global operator new(). 2018-11-02 15:38:31 -07:00
Shane Carr
53d8c8f3d1 ICU-20246 Fixing another integer overflow in number parsing. 2018-10-31 13:37:09 -07:00
Andy Heninger
f71796d5e5 ICU-10183 Mutexes, add C++11 std::mutex based implementation. 2018-10-31 13:07:19 -07:00
Fredrik Roubert
91d38d14e8 ICU-20169 Use smart pointers in all locale code instead of u*_close().
Doing this consistently first will make it easier to then clean up
resource management and error handling later.
2018-10-31 17:51:53 +01:00
Fredrik Roubert
47ecbc4915 ICU-20158 Pass ByteSink from Locale::forLanguageTag() to uloc_forLanguageTag().
This eliminates the need for a scratch buffer in Locale::forLanguageTag()
and also the need for counting bytes required in uloc_forLanguageTag(),
something that ByteSink will now handle correctly.
2018-10-31 12:21:15 +01:00
Fredrik Roubert
5b4ac1c77d ICU-20202 Replace char* kwdBuf with MemoryPool<CharString>.
Instead of _appendLDMLExtensionAsKeywords() requiring to receive a pre-
allocated buffer of sufficient size to store all the temporary strings
it needs to store, have it use a MemoryPool<CharString> to allocate
storage space as needed.

Storing strings as individual CharString objects, instead of as NUL
delimited substrings in a contiguous memory area, also eliminates the
need for keeping track of string boundaries and NUL terminators.
2018-10-30 23:27:11 +01:00
Yoshito Umaoka
12a71c7dcb ICU-20245 tzdata2018g updates 2018-10-30 18:14:03 -04:00
Jeff Genovy
f76f68aeaa ICU-20221 Add support for building with Cygwin/GCC to the AppVeyor CI builds. 2018-10-30 10:26:07 -07:00
Fredrik Roubert
964a8eb036 ICU-20202 Replace UVector with MemoryPool in uloc_keytype.
By moving the required call to uhash_close() into the destructor of
LocExtKeyData and using CharString instead of raw chunks of bytes
allocated with uprv_malloc(), it becomes easier to guarantee that
memory handling is correct, without leaks or overflows.

With the need for custom deleter functions removed, the code doesn't use
any of the additional functionality provided by UVector, it just needs a
simple way to keep track of allocated objects to delete them after it's
done using them, which MemoryPool does in a simpler and typesafe way.
2018-10-30 17:06:56 +01:00
Fredrik Roubert
440d8b3be8 ICU-20202 Replace UVector with MemoryPool in CalendarDataSink.
CalendarDataSink doesn't use any of the additional functionality
provided by UVector, it just needs a simple way to keep track of
allocated objects to delete them after it's done using them.
2018-10-30 17:01:10 +01:00
Shane Carr
f8c09f776a ICU-20231 Adding tests for accounting with variable currency widths. 2018-10-29 16:29:06 -07:00
Shane Carr
fd5faeb48b ICU-20159 Fixing gcc warnings in project and test code. 2018-10-29 16:28:54 -07:00
Shane Carr
8018eb84e7 ICU-13701 Adding custom logic for nickel rounding, C and J.
Avoids expensive arithmetic when performing nickel rounding for currencies such as CAD, CHF, and DKK.
2018-10-29 16:28:42 -07:00
Jeff Genovy
5a34bfb151 ICU-20209 Fix build failures on Windows with std::atomic not in enclosing namespace std
Also: Change to use the ICU namespace macro instead, and skip doxygen as well.
2018-10-29 15:07:05 -07:00
Fredrik Roubert
b8d2d92d36 ICU-20202 Replace CharStringPool with MemoryPool.
The shared templated helper class MemoryPool is a drop-in replacement
for the local helper class CharStringPool, with a simpler implementation
and an interface that allows parameters to be passed to the constructor.
2018-10-29 22:58:33 +01:00
Fredrik Roubert
d62f5ae5d8 ICU-20202 Add an internal helper class to own heap allocated objects.
This will be used first to replace existing locally defined memory
management helper classes such as CharStringPool (uloc_tag.cpp) and
CodePointMatcherWarehouse (numparse_affixes.h), then in new code.
2018-10-29 22:26:29 +01:00
Fredrik Roubert
21a8698951 ICU-20235 Undefine OVERFLOW in case Microsoft math.h has defined it. 2018-10-29 12:07:16 +01:00
Jeff Genovy
3d86d24a68 ICU-20240 Fix Windows build failure in japancal.cpp 2018-10-26 14:12:24 -07:00
Jeff Genovy
13ad1fe4e0 ICU-20194 TimeZone createSystemTimeZone doesn't set error code on OOM error. 2018-10-25 15:22:38 -07:00
Fredrik Roubert
59fe4f4be2 ICU-20132 Pass ByteSink from Locale::toLanguageTag() to uloc_toLanguageTag().
This eliminates the need for a scratch buffer in Locale::toLanguageTag()
and also the need for counting bytes required in uloc_toLanguageTag(),
something that ByteSink will now handle correctly and thereby
eliminating the bug where too few bytes required was returned.
2018-10-25 21:04:47 +02:00
Fredrik Roubert
8b7fa6a03f ICU-20228 Revert file from commit 10e79698d7.
This file was changed by mistake (and not caught by the presubmit tests
because of unrelated build failures).
2018-10-24 23:26:00 +02:00
Fredrik Roubert
10e79698d7 ICU-20228 Fix common typos for "language". 2018-10-24 20:54:10 +02:00
Shane Carr
aa898cc042 ICU-11511 Adding tests for CLDR-10103 scientific notation spec changes. 2018-10-23 17:46:33 -07:00
Yoshito Umaoka
48d3ad0d39 ICU-20224 tzdata2018f updates. 2018-10-19 22:15:18 -04:00
Fredrik Roubert
0da942bd52 ICU-20080 Avoid strange compiler behaviour in ASSERT_EQUAL() macro.
Using temporary variables for the two values to be compared here makes
GCC compile the code just like we expect it to. (What it really is that
it otherwise does on some architechtures remains a mystery.)

This will make the tests pass as expected also on IA-32 with GCC.

It'll also make it possible to revert the old workaround for SPARC
introduced by commit 5b0592af79.

Tested:

Linux gcc45 3.16.0-5-686-pae #1 SMP Debian 3.16.51-3+deb8u1 (2018-01-08) i686 GNU/Linux

Debian clang version 3.5.0-10 (tags/RELEASE_350/final) (based on LLVM 3.5.0)
g++ (Debian 4.9.2-10+deb8u1) 4.9.2

Linux gcc202 4.16.0-1-sparc64-smp #1 SMP Debian 4.16.5-1 (2018-04-29) sparc64 GNU/Linux

clang version 4.0.1-10+sparc64 (tags/RELEASE_401/final)
g++ (Debian 8.2.0-7) 8.2.0
2018-10-19 11:45:09 +02:00
Jeff Genovy
9ec2c332c1 ICU-20208 uspoof.cpp function checkImpl should be static, regenerate urename.h 2018-10-18 16:38:28 -07:00
Andy Heninger
47b3922b59 ICU-20212 unistr.h, review comments from Markus for doc formatting. 2018-10-18 10:01:51 -07:00
Andy Heninger
f3ce5a33be ICU-20212 Tweaks to markdown API docs in unistr.h 2018-10-18 10:01:51 -07:00
Andy Heninger
7918e54d30 ICU-20212 Markdown API docs in unistr.h 2018-10-18 10:01:51 -07:00
Ken Brown
31b89b5484 ICU-20214 Fix namespace error on Cygwin 2018-10-17 19:31:08 -07:00
Andy Heninger
e509105c9b
ICU-20205 RelativeDateTimeFormatter pt data fix, improved error handling and test. (#210)
* ICU-20205 Add locale test for RelativeDateTimeFormatter.

* ICU-20205 Fix error in pt relative date data. Improve error handling in code.

* ICU-20205 Add instantiation test & regen data from ICU4C

* ICU-20205 Added DateFormatSymbols error check per jefgen's comments.
2018-10-12 16:19:14 -07:00
Jeff Genovy
ba001f4616 ICU-20196 Fix MSVC/clang compiler warning C4251, export explicit template, required for building DLLs on Windows. Also fix a few other warnings as well. 2018-10-05 13:21:00 -07:00
pedberg-icu
b098078ab8
ICU-20120 63 BRS, integrate cldr release-34-beta with various fixes (#186) 2018-10-05 11:01:15 -07:00
gvictor
ff72d74d1e ICU-20193 urename.h shouldn't be ignored by other compilers except VS IntelliSense (#189)
The macro _MSC_VER is not defined in other compilers.
Change the logic and so urename.h is ignored on VS IntelliSense
2018-10-04 16:29:57 -07:00
kbrow1i
7d99ba4e57 ICU-20191 Don't use Win32 APIs on Cygwin (#185)
This was fixed in earlier commits (see, for example, ICU-12786), but
the problem was reintroduced in commits f8ba68e and fcb82cb.
2018-10-04 14:10:00 -07:00
pedberg-icu
bcd0a4165c
ICU-20119 Update ICU4C #ifndef U_HIDE_XXX guard conditionals (PR #183)
ICU-20119 Update ICU4C #ifndef U_HIDE_XXX guard conditionals (PR #183)
2018-09-30 21:23:42 -07:00
pedberg-icu
bac4c96020
ICU-20119 cldr release-34-alpha3 integration (#181)
ICU-20119 cldr release-34-alpha3 integration (PR #181):
* ICU-20119 63rc BRS, cldr 34-alpha3: add ku,xh; fixes for de/it CompactDec, availFmts yw amd MW patterns
* ICU-20119 Skip & log_knownIssue for Windows LCID mapping problem with ckb/ku
2018-09-28 16:09:15 -07:00
Andy Heninger
19a29f956e
ICU-20119 ICU4C 63 API promotion & change report (#161)
* ICU-20119 ICU4C 63 API promotion, work in progress.

* ICU-20119 ICU4C 63 API promotion, work in progress.

* ICU-20119 ICU 63 API promotion & change report

* ICU-20119 ICU4C 63 API change report, new draft, still work in progress.

* ICU-20119 ICU4C 63 API change report, another new draft, still work in progress.

* ICU-20119 ICU4C 63 API change report, another new draft.

* ICU-20119 ICU4C 63 API change report, after @preview revert. Hopefully the final rev.

* ICU-20119 ICU4C 63 API change report, clean up a few minor html errors.
2018-09-28 09:36:25 -07:00
gnrunge
1b62e2c851
ICU-20119 Fixes for run-without-data BRS test. In all cases an error (#177)
check was needed in the test cases to prevent a segmentation fault.
2018-09-27 14:27:42 -07:00
gnrunge
39b98c8a6b
ICU-20168 Fix memory leak in error path, add a free statement. (#175) 2018-09-27 14:27:42 -07:00