I'm using the latest version FoxBin2Prg v1.19.42.
When using the convertion from text to binary file (prg2bin) with an external command, errors are not returned properly to the calling command.
You can reproduce the error by downloading the attached file "_errorreport.zip", unpacking it and running the batch script runfoxbin2prg.cmd.
The third test (subdirectory test3) tries to compile the text version of a simple form and fails.
Comments: ** Comment from web user: fdbozzo **
Hi Ralf:
> In what way is a sc2 file with a duplicate object valid with regard to a sc2 file with a missing ENDPROC
In the same way that a form with duplicate controls can be opened and used without errors, the text representation do de same. You can have duplicate controls or methods and most probably you are not going to see any arror, but you shouldn't because you never are sure what control is displayed or what method is executed.
Not having a complete PROC/ENDPROC or DEFINE CLASS/ENDDEFINE structure is different, because you can't execute (and even compile!) a classlib with this class of errors. You can try it making a PRG with a DEFINE CLASS without it's ENDDEFINE and will se a compilation error, but you can add 2 controls or methods with the same name in the same PRG and you will not see any compilation errors.
> I don't get a binary scx/sct for both cases. (tested with 1.19.41 and 1.19.43)
This is because I've added validations that do not allow to regenerate the binary file or generate the text file if the source have any problem to preserve the original destination files, so depending the type of error, I try to get all the info about it (when errors are only validations, like duplicated controls/methods but I can continue analyzing the code) or I thorw an error (because a structure or other type of arror that doesn't allow me to continue analyze de code to report later)
You can compare it with a simple calculation: You validate that your calculation is between some limits and if the validation determines that the value is too small or too high, then you stop the calculation and report it to the user. On the other side, if your calculation receives an invalid input data (like a char), then a syntax error is thrown, and this is reported to the user too. Both errors stop the calculation, one is a validation error and the other is a real error.