I'm working on feature code in FontLab for a fully connecting script. Since it has pretty wide letterspacing I created versions of both letters and ligatures that would not normally have a starting stroke. So, for example, a lowercase o or an o_l ligature would have one version each that has a lead in stroke and one each with no lead in stroke. To make things even more complicated there are versions of ligatures that have ending that are supposed to come at the end of a word even if followed by punctuation such as a comma or quote. I used a series of classes and the feature clig with lookups to make this work.
So far everything worked smoothly until I discovered that for some reason ligatures that start with a cap work just the opposite as they should. So if I type in the OT preview: cool followed by a space; I get c followed by the o_o_l.end ligature which has a left side connector on the o and an ending version of l. Same for o_n followed by ool space. But if I type in Atool space (A_t being a ligature) I get the wrong version. Logically this would mean that A_t must be in the wrong OT classes. I checked this over again and again, but they all seem to be placed correctly. As an interesting experiment I type the A_t ligature manually in the text window of the OT preview and it worked exactly as it should have. So its only going wrong when the preview window does the substitution for me. I can't see why a ligature starting with a cap would not work like any other ligature or glyph combination.
Any ideas? Also… pardon the scrolling image. I wanted to get all the samples showing this behavior.