I stumbled upon an unexpected problem found in both VFP 8 SP1 and 9 SP1.
Background: I added additional lines to our original EXECSCRIPT() parameter and, from the command window, the changes ran fine. (This EXECSCRIPT() parameter string is legal.)
However, whenever I attempted to compile the project it quickly crashed with the dreaded C000005 error. The identical behavior occurs on my manager's machine. Changing the FOXUSER resource file, my first guess, makes no difference.
A workaround is to add the parameter value indirectly via a variable. Is this a bug or is this behavior documented? Simple repro code follows:
#IF ( .T. )
lcOnF3Script = ;
"local lcTagName" + chr(13) + chr(10) + ;
"local lnTagHit" + chr(13) + chr(10) + ;
"gcHowExited='F3'" + chr(13) + chr(10) + ;
"select 'AltProvFacil'" + chr(13) + chr(10) + ;
"ATagInfo(laTheTags,'AltProvFacil')" + chr(13) + chr(10) + ;
"lnTagHit = ascan( laTheTags, 'SSN', -1, -1, 1, 15 )" + chr(13) + chr(10) + ;
"if ( empty( m.lnTagHit ) )" + chr(13) + chr(10) + ;
" lnTagHit=ascan( laTheTags, 'TIN', -1, -1, 1, 15 )"+ chr(13) + chr(10) + ;
"endif" + chr(13) + chr(10) + ;
"lcTagName=laTheTags[ m.lnTagHit, 1 ]" + chr(13) + chr(10) + ;
"lcTagName=iif(order()=='DISPLORDER', m.lcTagName, 'DisplOrder' )" ;
+ chr(13) + chr(10) + ;
"set order to (m.lcTagName)" + chr(13) + chr(10) + ;
"KEYBOARD '{Esc}' plain"
on key label "F3" execscript( m.lcOnF3Script )
#ELSE
on key label "F3" execscript( ;
"local lcTagName" + chr(13) + chr(10) + ;
"local lnTagHit" + chr(13) + chr(10) + ;
"gcHowExited='F3'" + chr(13) + chr(10) + ;
"select 'AltProvFacil'" + chr(13) + chr(10) + ;
"ATagInfo(laTheTags,'AltProvFacil')" + chr(13) + chr(10) + ;
"lnTagHit = ascan( laTheTags, 'SSN', -1, -1, 1, 15 )" + chr(13) + chr(10) + ;
"if ( empty( m.lnTagHit ) )" + chr(13) + chr(10) + ;
"lnTagHit=ascan( laTheTags, 'TIN', -1, -1, 1, 15 )" + chr(13) + chr(10) + ;
"endif" + chr(13) + chr(10) + ;
"lcTagName=laTheTags[ m.lnTagHit, 1 ]" + chr(13) + chr(10) + ;
"lcTagName=iif(order()=='DISPLORDER', m.lcTagName, 'DisplOrder' )" ;
+ chr(13) + chr(10) + ;
"set order to (m.lcTagName)" + chr(13) + chr(10) + ;
"KEYBOARD '{Esc}' plain" )
#ENDIF