IBM i Bidirectional Lamalif Information
In the cursive languages, ligatures use one glyph to represent two or more specific letters. For example, the ligature Lamalif is used to represent the frequently used pair of letters Lam and Alif.
Since Lam followed by Alif is a very common occurrence, the designers of the IBM i codepage 420 support decided to create one hex code point to store both of these characters in the combined way. They also have an isolated Lam and an isolated Alif at two other code points. So the Lamalif together is hex B8, the Lam is hex B1 and the Alif is hex 56.
Since the data only existed on the IBM i, it did not matter what form was used and the combined form was used quite often.
However, the designers of the Windows Bidi support decided to use another method to support this. They required the user to enter a Lam followed by an Alif, but then showed them a combined LamAlif as one position on the display, but it was still two positions in the buffer. Since the data only existed on the Windows machine, it did not matter what form was used.
However a problem now arises when we want to send data back and forth between the two machines. On the IBM i side, a five character field could contain "abLc ". When it is transferred to the Microsoft® Windows® side, the combined LamAlif can be mapped in one of four ways.
- Map the LamAlif to a Lam. This is not a good choice because:
- Map the LamAlif to an Alif. This is not a good choice because:
- Map the LamAlif to a substitution character to indicate that a character has been "lost". This is a better choice but not perfect because:
- Map the LamAlif to a Lam followed by an Alif if there is space in the buffer. This is the best choice but not perfect because you may not have blank places at the end of the buffer to use.