There is in fact a similar case in biblical Hebrew, which will need to be dealt with at some time, and perhaps should be dealt with soon as part of a comprehensive review of ancient Hebrew support.
The hataf vowels in Hebrew, 05B1-05B3, are graphically combinations of sheva, 05B0, and other vowels, though they have correctly not been given decompositions as such. When these hataf vowels occur together (on the same base letter) with meteg, 05BD (a small vertical line), meteg can be placed to the right or to the left of the hataf vowel, but is most frequently positioned in the middle of the vowel, between its two elements, so as a kind of ligature.
Meteg usually occurs to the left of other low positioned vowels, sometimes to the right. So it is appropriate that the canonical ordering is always vowel - meteg. The relatively few occasions when it occurs to the right provide another good use of CGJ, so that this combination can be encoded meteg - CGJ - vowel.
But what should be done when meteg is expected to be in the middle? One thought was to encode hataf_vowel - CGJ - meteg, but this is not suitable if CGJ is not supposed to promote ligation. Perhaps it is better to note that with the hataf vowels the ligature is the default, and so expect hataf_vowel - meteg to be rendered as the ligature. Then in the relatively few cases where the ligation is not required CGJ can be inserted, i.e. hataf_vowel - CGJ - meteg, to suppress the ligation. Is this is a valid use of CGJ?
No, this is a valid use of ZWNJ.
This is what currently works:
Left meteg follows vowel (excepting hataf vowel, see below)
Right meteg precedes vowel (including hataf vowel)*
Hataf medial meteg follows vowel but is automatically ligated in the font lookups (this is the default behaviour because it is the most common case)
If you want the meteg to appear to the left of a hataf vowel you insert a ZWNJ to prevent the ligation: hataf vowel + ZWNJ + meteg
* Of course, this gets screwed up by Unicode normalisation, but that's just another example of what we've been talking about all along. Personally, I would rather see a 'right meteg' character encoded than use CGJ or another mechanism to force right positioning. I think the user community would be much more comfortable with this approach.
John Hudson
Tiro Typeworks www.tiro.com Vancouver, BC [EMAIL PROTECTED]
The sight of James Cox from the BBC's World at One, interviewing Robin Oakley, CNN's man in Europe, surrounded by a scrum of furiously scribbling print journalists will stand for some time as the apogee of media cannibalism. - Emma Brockes, at the EU summit