Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[dsdp-tm-dev] mnemonic generation policies and a patch

Kushal and Martin --

I've added a patch for
https://bugs.eclipse.org/bugs/show_bug.cgi?id=187860

Please review this patch as soon as possible.

There are two changes which can be considered API changes. I view these as
extremely low risk.
(1) findUniqueMnemonic was changed from public to private. It was only used within the class and I wanted to remove its (ugly) side effect of actually
allocating the mnemonic.
(2) The MNEMONIC_CHAR static final was made private. I have no idea why this
was public to begin with.

I've reorganized the class and cleaned up a substantial chunk of the code since
it has always been a source of bug reports.

I've added the ability to recognize a much wider range of characters as valid mnemonics - including greek, extended latin, and cyrillic. CJK languages still, according to IBM policy, require latin mnemonics. This is what was required
by this bug report.

I also added the ability to generate greek and russian upper case characters as mnemonics if the current locale's ISO 639-1 code is greek or russian. The
scheme extends to other languages quite easily.

Lastly, I know that the mnemonic generation is a sticking point between IBM and
the other companies that might use RSE, thus I've developed a mnemonic
generation policy mechanism. Its complete but not active. You'll find it in setUniqueMnemonic(). Basically, if a product doesn't want RSE to mess with
labels, it won't.

Initial testing looks good. I'm going to continue testing on Sunday and
hopefully commit on Monday.

A couple of sticking points:
(1) the greek and russian alphabets have been added to the source code. I've had to mark the source member as UTF-8 encoded. If this is a problem I can use
the unicode code point notation instead for these strings.
(2) I use ICU4J in a number of spots. I had to add the com.ibm.icu plugin as a dependency to org.eclipse.rse.ui. I haven't detected any problems in doing so.

-- Dave


Back to the top