---------------------------------------------------------------------------------------------------------------------------
[BUG/PRB.] VFP 9.0 FIX - OUTPUT TO THE FILE SPECIFIED WITH THE SET ALTERNATE COMMAND IN THE TEXT NOSHOW COMMAND
January 2026
---------------------------------------------------------------------------------------------------------------------------
CCB
1. BUG:
In vfp9 (and vfp7, vfp8), if we specify the NOSHOW keyword in the TEXT ... ENDTEXT command (or SET CONSOLE OFF),
it disables display of the text merge to the screen, but it enables display of the text merge to the file specified with the SET ALTERNATE command.
There is no the bug for the NOSHOW keyword in the SET TEXTMERGE command.
In VFP Advanced, if we specify the NOSHOW keyword in the TEXT ... ENDTEXT command (or SET CONSOLE OFF),
it disables display of the text merge to the screen, and it disables display of the text merge to the file specified with the SET ALTERNATE command.
2. CAUSE:
There are some BUGs in the following code.
3. RESOLUTION:
We can write some code to fix the BUG.
Fun53f6b4 :: ; proc near
push esi ;0x0053f6b4 : 56
xor esi , esi ;0x0053f6b5 : 33f6
push edi ;0x0053f6b7 : 57
xor edi , edi ;0x0053f6b8 : 33ff
inc esi ;0x0053f6ba : 46
cmp dword ptr [ Data93da20 ] , edi ;0x0053f6bb : 393d20da9300
jne Label57b012 ;0x0053f6c1 : 0f854bb90300
cmp dword ptr [ Data93db94 ] , edi ;0x0053f6c7 : 393d94db9300
je Label57b059 ;0x0053f6cd : 0f8486b90300
mov edx , dword ptr [ Data937fb4 ] ;0x0053f6d3 : 8b15b47f9300
mov dword ptr [ Data93e3e0 ] , esi ;0x0053f6d9 : 8935e0e39300
call Fun42ea61 ;0x0053f6df : e87df3eeff
push eax ;0x0053f6e4 : 50
call Fun53f69a ;0x0053f6e5 : e8b0ffffff
mov dword ptr [ Data93e3ec ] , eax ;0x0053f6ea : a3ece39300
Label53f6ef ::
cmp byte ptr [ Data93db98 ] , 012h ;0x0053f6ef : 803d98db930012
mov dword ptr [ Data93e3f0 ] , offset Data93db94 ;0x0053f6f6 : c705f0e3930094db9300
mov dword ptr [ Data93e3f8 ] , edi ;0x0053f700 : 893df8e39300
je Label57b064 ;0x0053f706 : 0f8458b90300
cmp dword ptr [ Data93e3c8 ] , edi ;0x0053f70c : 393dc8e39300
jne Label57b06c ;0x0053f712 : 0f8554b90300
mov dword ptr [ Data93e400 ] , edi ;0x0053f718 : 893d00e49300
Label53f71e ::
mov dword ptr [ Data93e410 ] , offset Data93e3c8 ;0x0053f724 : c70510e49300c8e39300
mov dword ptr [ Data93e418 ] , offset Data93db98 ;0x0053f72e : c70518e4930098db9300
;
; ----------------------------------------------------------------------------------------------------------------
; VFP 9.0 FIX - OUTPUT TO THE FILE SPECIFIED WITH THE SET ALTERNATE COMMAND IN THE TEXT NOSHOW COMMAND
; January 2026
; ----------------------------------------------------------------------------------------------------------------
; CCB
;
; In vfp9, if we specify the NOSHOW keyword in the TEXT ... ENDTEXT command (or SET CONSOLE OFF),
; it disables display of the text merge to the screen, but it enables display of the text merge to the file specified with the SET ALTERNATE command.
; In VFP Advanced, if we specify the NOSHOW keyword in the TEXT ... ENDTEXT command (or SET CONSOLE OFF),
; it disables display of the text merge to the screen, and it disables display of the text merge to the file specified with the SET ALTERNATE command.
;
; 2026/1/5, by ccb
;
cmp dword ptr vfpa_sys9199_data,00h
jne Label53f738
cmp dword ptr vfpa_textendtext_istextendtext,00h
je Label53f738
cmp dword ptr [ Data93db94 ] , edi
je Label53f73e
Label53f738 ::
cmp dword ptr [ Data93e3c4 ] , edi ;0x0053f71e : 393dc4e39300
jne Label49dd89 ;0x0053f738 : 0f854be6f5ff
Label53f73e ::
mov dword ptr [ Data93e420 ] , edi ;0x0053f73e : 893d20e49300
Label53f744 ::
mov dword ptr [ Data93e438 ] , edi ;0x0053f744 : 893d38e49300
pop edi ;0x0053f74a : 5f
mov dword ptr [ Data93e430 ] , offset Data93e3c4 ;0x0053f74b : c70530e49300c4e39300
pop esi ;0x0053f755 : 5e
ret ;0x0053f756 : c3
4. APPLIES TO:
VFP 7.0.0.9262
VFP 7.0.0.9465 (SP1)
VFP 8.0.0.2521
VFP 8.0.0.3117 (SP1)
VFP 9.0.0.2412
VFP 9.0.0.3504 (SP1)
VFP 9.0.0.4611 (SP2)
VFP 9.0.0.5015 (SP2)
VFP 9.0.0.5411 (SP2)
VFP 9.0.0.5721 (SP2)
VFP 9.0.0.5815 (SP2)
VFP 9.0.0.6303 (SP2)
VFP 9.0.0.6602 (SP2)
VFP 9.0.0.7423 (SP2)
The bug has been fixed in VFP Advanced.
5. REFERENCE WEBSITES:
1, baiyujia.com:
http://www.baiyujia.com
http://www.baiyujia.com/vfpdocuments/f_vfp9fix402.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix93.asp
http://www.baiyujia.com/vfpdocuments/f_vfp9fix94.asp
6. OTHER:
For reference only, there is no guarantees.
Any questions or suggestions, please send me an email at ccb2000@163.com.
|