Thanks for pointing out. The problem is in the method SayText().
While methods Say(), cmSay() print the & character as expected, the method SayText() converts & as underscore of the next character (default behaviour of DrawTextEx()). This is bug in printer.prg and needs to be fixed.
But the problem is not new to the latest build. This behavior has been there in all builds from FWH1605 onwards till FWH1912. It might not have been noticed earlier but noticed now.
Fix for this will be available in the next release.
Now this fix may be applied to the printer.prg of any existing versions in this way:
Please locate these lines (990 to 994 in fwh1912) in method SayText() of printer.prg:
- Code: Select all Expand view
if lByRef
nRet := FW_SayText( ::hDCOut, @cText, aRect, cAlign, oFont, nClrText, nClrBack )
else
nRet := FW_SayText( ::hDCOut, cText, aRect, cAlign, oFont, nClrText, nClrBack )
endif
Please modify these lines by adding 2 more parameters to FW_SayText() like this:
- Code: Select all Expand view
if lByRef
nRet := FW_SayText( ::hDCOut, @cText, aRect, cAlign, oFont, nClrText, nClrBack, nil, 0x800 )
else
nRet := FW_SayText( ::hDCOut, cText, aRect, cAlign, oFont, nClrText, nClrBack, nil, 0x800 )
endif