I noticed an incorrect handling of string parameters in a few RTS routines which might cause incorrect results when reading from strings where the actual parameters are expressions (not simple variables).
`ReadStr' and `Val' might be affected, though I haven't been able to reproduce an actual problem. The rarely used `StringTFDD_Reset' is affected, that's where I found the problem. (fjf1099.pas)
The attached patch fixes the bugs. For `StringTFDD_Reset', this results in an interface change, though for most uses it should be compatible (string -> conformant array of char), as long as the actual parameter is not an empty string.
You'll have to rebuild the RTS and your units. You can do `make pascal.update-release' in the build gcc subdirectory before making GPC, to force GPC to recompile things. (I'm not including a version change in the patch, as the patch might be useable against several releases this way, though I've tested it only against one.)
Waldek, you told me you're going to release a new snapshot soon. Please test this patch with your current code and include it if possible.
Frank