This patch implements the text-transform property. It correctly handles every English-language nuance that I have been able to think of. It adds fields to each FOText object that point to previous & next FOText objects within the same Block, so that the text in related FOText objects can be considered for needed context. It then transforms the text as part of the FOText Constructor. Some of the fields and methods added may be useful for other parts of FOP as well. This code assumes that words do not span multiple blocks. Caveat: I cannot think of any, but if there are cases (now or in the future) where FOText objects do not have ancestor Block objects, text-transform will not be able to consider other FOText objects for context. This can be fixed by storing the Block-like ancestor instead. Caveat: The definition of "word" for purposes of this property is ambiguous. It may need to be tweaked over time, especially for scripts other than Latin. I have tried to build an infrastructure that will allow such modifications to be pretty easily implemented. Victor Mote (vic@outfitr.com)
Created attachment 3650 [details] patch file for text-transform logic (maintenance branch)
Created attachment 3651 [details] xsl-fo document for testing features of text-transform
As discussed on dev mailing list, we will not do this work in the maintenance branch. This patch will be resubmitted if and when it can be reworked for the trunk.
batch transition to closed remaining pre-FOP1.0 resolved bugs