---------------------------------------------------------------------------------------------------------------------------
                        [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.