- Changed the C++ and Java interfaces to that the URBNF_DURATION ruleset is marked deprecated.
- Fixed a bug in RuleBasedNumberFormat in both Java and C++ that caused the existing duration-formatting rules to produce bogus results when used on a non-integral value.
(Earlier versions of this PR added code to use a MeasureFormat under the covers when a caller used
unum_open(UNUM_DURATION). I took that out because of backward compatibility concerns, so we're still using RBNF
in the C API. I'm hoping to add a "real" duration formatter in ICU 75.)
The Calendar constructor already take care of the fw override.
We should not set the first day of week for iso8601 to Monday if
we have a fw keyword/type in the locale.
ICU-22434 Fix incorrect calendar keyword extraction
WIDTH_FIX instance could be lazily initialized, because it's used
only if transliterate() is called on the AnyTransliterator instance,
but apparently not used by other Transliterator instance.
Remove pinDayOfMonth() and yearLength(int32_t year)
from GregorianCalendar.
These two methods are
1. Unused by any code inside ICU, not in source/{common,i18n,test}.
2. Marked as @internal in the header.
3. Wrap inside #ifndef U_HIDE_INTERNAL_API block in the header
4. In "protected:" section.
5. No ICU4J counterpart.
The yearLength(int32_t year) dup the functionality as
handleGetYearLength of the same class and that one is the correct one to
be keep and used..
There is another yearLength() w/o the year as parameter should NOT be
removed and still needed internally.
measunit.h uses std::pair, std::make_pair, and std::move, all of which
are declared in the <utility> header. This still compiles because many
implementations of the C++ standard library have <utility> as a
transitive dependency of other C++ standard library headers; however,
these transitive includes are not guaranteed to exist and will not exist
in some contexts (e.g. building against LLVM's libc++ with -fmodules).
Add the github action bot to build with cfi
Also fix all the known issues which require the change from C style cast to
static_cast inside the i18n and common directory while we are sure about
the object. and use
C++ style dynamic_cast for base-to-derive cast in other code inside i18n
and common and in test code or tool.
Change to use const_cast for casting between const / non-const