Please review this PR and [CSR](https://bugs.openjdk.org/browse/JDK-8314822) 
which allows for the _Format_ segment of a ChoiceFormat pattern to use the 
ChoiceFormat Relational symbols without the need to escape them using quotes. 
Previously, using a non escaped Relational symbol within a _Format_ segment 
would throw an IAE.

Implementation wise, this can be achieved by adding an additional check of 
`part == 0` to the relational symbol conditional. This is safe to do, as any 
subsequent relational symbols should only come after a '|' is parsed, which 
sets part back to 0. This ensures that for the duration of `part = 1` (Format 
segment), the relational symbols can be used without syntactic meaning.

For example, this change allows behavior such as: `new ChoiceFormat("1#The code 
is #7281")`. Previously, the workaround would have been new 
`ChoiceFormat("1#The code is '#'7281")` to achieve the same formatted behavior. 
Please see the CSR for more detail.

Additionally, this change also includes an unrelated grouping of the 
ChoiceFormat examples under a single header: **Usage Information**.

-------------

Commit messages:
 - update PatternsTest
 - more accurately define the SubPattern note
 - init

Changes: https://git.openjdk.org/jdk/pull/17640/files
 Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=17640&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-6285888
  Stats: 210 lines in 3 files changed: 144 ins; 59 del; 7 mod
  Patch: https://git.openjdk.org/jdk/pull/17640.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/17640/head:pull/17640

PR: https://git.openjdk.org/jdk/pull/17640

Reply via email to