The ICU DecimalFormat setCurrency docs says:
However, my code in ICU 62 was written erroneously assuming that the string is always either nullptr or a valid 3-character code. A test case came up in which a user was calling the API with the empty string, causing a hard-to-debug test failure that didn't always reproduce.
The fix is simple, and I will commit it to this ticket in a few minutes.
Commit attached to ticket.
This was a failure in the test suite; the APIdocs of setCurrency in decimfmt.h was not fully tested. I have now added a test for the behavior documented on that method.
The change looks good, but –
AFAICT the NUL character is "invariant", which means that we accept strings like "X" and "XY".
I think we should add a check like this after the "" check and before the invariant-chars check:
This could be in a separate ticket.