--------------------------------------------------------------------------------------------------- [BUG/PRB.] VFP 9.0 FIX - CREATE THE PRIVATE VARIABLE IN THE TEXT TO COMMAND AUTOMATICALLY January 2024 --------------------------------------------------------------------------------------------------- CCB 1. BUG: In vfp9 (and vfp6, vfp7, vfp8), if we declare a private variable but we don't store data to the private variable, the TEXT TO command will not create the private variable. There is the bug for the TEXT TO command, the SET TEXTMERGE TO command and the CATCH TO command. There is no the bug for other commands that support TO VarName clauses. 2. CAUSE: There are some BUGs in the following code. 3. RESOLUTION: We can write some code to fix the BUG. Label8f67f9 :: push ebp ;0x008f67f9 : 55 mov ebp , esp ;0x008f67fa : 8bec sub esp , 0108h ;0x008f67fc : 81ec08010000 mov eax , dword ptr [ Data946f8c ] ;0x008f6802 : a18c6f9400 push ebx ;0x008f6807 : 53 mov dword ptr [ ebp - 68 ] , eax ;0x008f6808 : 8945bc mov eax , dword ptr [ Data93db94 ] ;0x008f680b : a194db9300 push esi ;0x008f6810 : 56 xor ebx , ebx ;0x008f6811 : 33db mov dword ptr [ ebp - 72 ] , eax ;0x008f6813 : 8945b8 mov eax , dword ptr [ Data946f90 ] ;0x008f6816 : a1906f9400 push edi ;0x008f681b : 57 mov dword ptr [ ebp - 12 ] , ebx ;0x008f681c : 895df4 mov dword ptr [ ebp - 8 ] , ebx ;0x008f681f : 895df8 mov dword ptr [ ebp - 4 ] , ebx ;0x008f6822 : 895dfc mov dword ptr [ ebp - 64 ] , eax ;0x008f6825 : 8945c0 call Fun54fa84 ;0x008f6828 : e85792c5ff lea edx , dword ptr [ ebp - 76 ] ;0x008f682d : 8d55b4 lea eax , dword ptr [ ebp + 0FFFFFEF8h ] ;0x008f6830 : 8d85f8feffff mov dword ptr [ Data946f90 ] , ebx ;0x008f6836 : 891d906f9400 call Fun42c27f ;0x008f683c : e83e5ab3ff push ebx ;0x008f6841 : 53 push eax ;0x008f6842 : 50 call Fun42c2be ;0x008f6843 : e8765ab3ff cmp eax , ebx ;0x008f6848 : 3bc3 pop ecx ;0x008f684a : 59 pop ecx ;0x008f684b : 59 mov dword ptr [ ebp - 16 ] , eax ;0x008f684c : 8945f0 jne Label8f6ab2 ;0x008f684f : 0f855d020000 mov eax , dword ptr [ Data9393ac ] ;0x008f6855 : a1ac939300 cmp byte ptr [eax] , 028h ;0x008f685a : 803828 jne Label8f68ec ;0x008f685d : 0f8589000000 inc dword ptr [ Data9393ac ] ;0x008f6863 : ff05ac939300 xor edx , edx ;0x008f6869 : 33d2 lea ecx , dword ptr [ ebp - 104 ] ;0x008f686b : 8d4d98 call Fun52c1c4 ;0x008f686e : e85159c3ff mov ecx , dword ptr [ Data93d748 ] ;0x008f6873 : 8b0d48d79300 cmp ecx , ebx ;0x008f6879 : 3bcb je Label8f6898 ;0x008f687b : 741b call Fun42c1e2 ;0x008f687d : e86059b3ff mov ecx , 0414h ;0x008f6882 : b914040000 mov dword ptr [ Data93d748 ] , ebx ;0x008f6887 : 891d48d79300 mov dword ptr [ Data93ca70 ] , ebx ;0x008f688d : 891d70ca9300 call Fun544742 ;0x008f6893 : e8aadec4ff Label8f6898 :: test byte ptr [ Data93d878 ] , 01h ;0x008f6898 : f60578d8930001 je Label8f68ca ;0x008f689f : 7429 cmp dword ptr [ ebp - 100 ] , 0FFFFFFFFh ;0x008f68a1 : 837d9cff jne Label8f68ca ;0x008f68a5 : 7523 mov esi , dword ptr [ ebp - 104 ] ;0x008f68a7 : 8b7598 mov ecx , dword ptr [ Data9388e4 ] ;0x008f68aa : 8b0de4889300 lea eax , dword ptr [ esi + 4 * esi ] ;0x008f68b0 : 8d04b6 movzx ecx ,word ptr [ ecx + 4 * eax + 14 ] ;0x008f68b3 : 0fb74c810e push ebx ;0x008f68b8 : 53 dec ecx ;0x008f68b9 : 49 call Fun53c57a ;0x008f68ba : e8bb5cc4ff cmp eax , 0FFFFFFFFh ;0x008f68bf : 83f8ff jne Label8f68ca ;0x008f68c2 : 7506 push esi ;0x008f68c4 : 56 call Fun73f247 ;0x008f68c5 : e87d89e4ff Label8f68ca :: xor esi , esi ;0x008f68ca : 33f6 inc esi ;0x008f68cc : 46 pushd 01013h ;0x008f68cd : 6813100000 xor eax , eax ;0x008f68d2 : 33c0 mov dword ptr [ ebp - 12 ] , esi ;0x008f68d4 : 8975f4 call Fun42bf2a ;0x008f68d7 : e84e56b3ff mov dword ptr [ Data93d748 ] , eax ;0x008f68dc : a348d79300 mov dword ptr [ Data93ca70 ] , ebx ;0x008f68e1 : 891d70ca9300 mov dword ptr [ ebp - 4 ] , esi ;0x008f68e7 : 8975fc jmp Label8f68ef ;0x008f68ea : eb03 Label8f68ec :: xor esi , esi ;0x008f68ec : 33f6 inc esi ;0x008f68ee : 46 Label8f68ef :: mov edx , dword ptr [ Data9393ac ] ;0x008f68ef : 8b15ac939300 cmp byte ptr [edx] , 060h ;0x008f68f5 : 803a60 jne Label8f6907 ;0x008f68f8 : 750d inc edx ;0x008f68fa : 42 mov dword ptr [ Data9393ac ] , edx ;0x008f68fb : 8915ac939300 mov dword ptr [ Data946f8c ] , esi ;0x008f6901 : 89358c6f9400 Label8f6907 :: cmp byte ptr [edx] , 0CEh ;0x008f6907 : 803ace jne Label8f6919 ;0x008f690a : 750d inc edx ;0x008f690c : 42 mov dword ptr [ Data9393ac ] , edx ;0x008f690d : 8915ac939300 mov dword ptr [ Data93db94 ] , ebx ;0x008f6913 : 891d94db9300 Label8f6919 :: pushd 0Bh ;0x008f6919 : 6a0b xor eax , eax ;0x008f691b : 33c0 pop ecx ;0x008f691d : 59 lea edi , dword ptr [ ebp - 60 ] ;0x008f691e : 8d7dc4 rep stosd ;0x008f6921 : f3ab cmp byte ptr [edx] , 01h ;0x008f6923 : 803a01 jne Label8f69d9 ;0x008f6926 : 0f85ad000000 inc edx ;0x008f692c : 42 cmp dword ptr [ ebp - 4 ] , ebx ;0x008f692d : 395dfc mov dword ptr [ Data9393ac ] , edx ;0x008f6930 : 8915ac939300 jne Label8f6942 ;0x008f6936 : 750a mov ecx , 0C8h ;0x008f6938 : b9c8000000 call Fun544742 ;0x008f693d : e800dec4ff Label8f6942 :: lea edx , dword ptr [ ebp - 80 ] ;0x008f6942 : 8d55b0 lea eax , dword ptr [ ebp + 0FFFFFF48h ] ;0x008f6945 : 8d8548ffffff mov dword ptr [ ebp - 8 ] , esi ;0x008f694b : 8975f8 call Fun42c27f ;0x008f694e : e82c59b3ff push ebx ;0x008f6953 : 53 push eax ;0x008f6954 : 50 call Fun42c2be ;0x008f6955 : e86459b3ff mov edi , eax ;0x008f695a : 8bf8 cmp edi , ebx ;0x008f695c : 3bfb pop ecx ;0x008f695e : 59 pop ecx ;0x008f695f : 59 jne Label8f6973 ;0x008f6960 : 7511 mov bx , 011h ;0x008f6962 : 66bb1100 lea edx , dword ptr [ ebp - 104 ] ;0x008f6966 : 8d5598 lea esi , dword ptr [ ebp - 60 ] ;0x008f6969 : 8d75c4 call Fun52a5d6 ;0x008f696c : e8653cc3ff xor ebx , ebx ;0x008f6971 : 33db Label8f6973 :: lea eax , dword ptr [ ebp - 80 ] ;0x008f6973 : 8d45b0 push eax ;0x008f6976 : 50 lea eax , dword ptr [ ebp + 0FFFFFF48h ] ;0x008f6977 : 8d8548ffffff call Fun42d200 ;0x008f697d : e87e68b3ff mov ecx , dword ptr [ ebp - 28 ] ;0x008f6982 : 8b4de4 call Fun42c1e2 ;0x008f6985 : e85858b3ff cmp edi , ebx ;0x008f698a : 3bfb je Label8f69c9 ;0x008f698c : 743b cmp edi , 0AAh ;0x008f698e : 81ffaa000000 jne Label8f69c5 ;0x008f6994 : 752f pushd 01013h ;0x008f6996 : 6813100000 xor eax , eax ;0x008f699b : 33c0 mov byte ptr [ ebp - 60 ] , 048h ;0x008f699d : c645c448 mov dword ptr [ ebp - 56 ] , ebx ;0x008f69a1 : 895dc8 mov dword ptr [ ebp - 52 ] , ebx ;0x008f69a4 : 895dcc call Fun42bf2a ;0x008f69a7 : e87e55b3ff ; ; ---------------------------------------------------------------------------------------- ; VFP 9.0 FIX - CREATE THE PRIVATE VARIABLE IN THE TEXT TO COMMAND AUTOMATICALLY ; September 2019 ; ---------------------------------------------------------------------------------------- ; CCB ; ; Create the private variable in the TEXT TO command automatically (if the variable doesn't exist). ; ; 2019/9/30, by ccb ; cmp dword ptr vfpa_sys9025_data,00h je Label8f69ac mov ecx,ebx or ecx,01h push ecx jmp Label8f69ad Label8f69ac :: push ebx ;0x008f69ac : 53 Label8f69ad :: lea edx , dword ptr [ ebp - 104 ] ;0x008f69ad : 8d5598 lea ecx , dword ptr [ ebp - 60 ] ;0x008f69b0 : 8d4dc4 mov dword ptr [ ebp - 28 ] , eax ;0x008f69b3 : 8945e4 call Fun52bf26 ;0x008f69b6 : e86b55c3ff mov ecx , dword ptr [ ebp - 28 ] ;0x008f69bb : 8b4de4 call Fun42c1e2 ;0x008f69be : e81f58b3ff jmp Label8f69d9 ;0x008f69c3 : eb14 Label8f69c5 :: mov ecx , edi ;0x008f69c5 : 8bcf jmp Label8f69d4 ;0x008f69c7 : eb0b Label8f69c9 :: cmp byte ptr [ ebp - 60 ] , 048h ;0x008f69c9 : 807dc448 je Label8f69d9 ;0x008f69cd : 740a mov ecx , 0385h ;0x008f69cf : b985030000 Label8f69d4 :: call Fun544742 ;0x008f69d4 : e869ddc4ff Label8f69d9 :: mov eax , dword ptr [ Data9393ac ] ;0x008f69d9 : a1ac939300 cmp byte ptr [eax] , 0C3h ;0x008f69de : 8038c3 jne Label8f6a3b ;0x008f69e1 : 7558 inc dword ptr [ Data9393ac ] ;0x008f69e3 : ff05ac939300 pushd 08h ;0x008f69e9 : 6a08 call Fun420bce ;0x008f69eb : e8dea1b2ff mov edi , eax ;0x008f69f0 : 8bf8 cmp byte ptr [edi] , 048h ;0x008f69f2 : 803f48 je Label8f6a25 ;0x008f69f5 : 742e call Fun529a6e ;0x008f69f7 : e87230c3ff cmp byte ptr [edi] , 049h ;0x008f69fc : 803f49 jne Label8f6a0f ;0x008f69ff : 750e mov eax , dword ptr [ edi + 12 ] ;0x008f6a01 : 8b470c cmp eax , ebx ;0x008f6a04 : 3bc3 jl Label8f6a0f ;0x008f6a06 : 7c07 test eax , 0FFFFFFF0h ;0x008f6a08 : a9f0ffffff je Label8f6a19 ;0x008f6a0d : 740a Label8f6a0f :: mov ecx , 0385h ;0x008f6a0f : b985030000 call Fun544742 ;0x008f6a14 : e829ddc4ff Label8f6a19 :: mov eax , dword ptr [ edi + 12 ] ;0x008f6a19 : 8b470c neg eax ;0x008f6a1c : f7d8 mov dword ptr [ Data947db4 ] , eax ;0x008f6a1e : a3b47d9400 jmp Label8f6a3b ;0x008f6a23 : eb16 Label8f6a25 :: mov eax , dword ptr [ edi + 8 ] ;0x008f6a25 : 8b4708 mov dword ptr [ Data947db4 ] , eax ;0x008f6a28 : a3b47d9400 mov eax , dword ptr [ edi + 32 ] ;0x008f6a2d : 8b4720 mov byte ptr [edi] , 04Ch ;0x008f6a30 : c6074c mov dword ptr [ Data947db8 ] , eax ;0x008f6a33 : a3b87d9400 mov dword ptr [ edi + 32 ] , ebx ;0x008f6a38 : 895f20 Label8f6a3b :: mov eax , dword ptr [ Data9393ac ] ;0x008f6a3b : a1ac939300 cmp byte ptr [eax] , 0C4h ;0x008f6a40 : 8038c4 jne Label8f6a91 ;0x008f6a43 : 754c inc dword ptr [ Data9393ac ] ;0x008f6a45 : ff05ac939300 pushd 08h ;0x008f6a4b : 6a08 call Fun420bce ;0x008f6a4d : e87ca1b2ff mov edi , eax ;0x008f6a52 : 8bf8 call Fun529a6e ;0x008f6a54 : e81530c3ff cmp byte ptr [edi] , 049h ;0x008f6a59 : 803f49 jne Label8f6a6c ;0x008f6a5c : 750e mov eax , dword ptr [ edi + 12 ] ;0x008f6a5e : 8b470c cmp eax , ebx ;0x008f6a61 : 3bc3 jl Label8f6a6c ;0x008f6a63 : 7c07 test eax , 0FFFFFFFCh ;0x008f6a65 : a9fcffffff je Label8f6a76 ;0x008f6a6a : 740a Label8f6a6c :: mov ecx , 0385h ;0x008f6a6c : b985030000 call Fun544742 ;0x008f6a71 : e8ccdcc4ff Label8f6a76 :: mov eax , dword ptr [ edi + 12 ] ;0x008f6a76 : 8b470c test al , 01h ;0x008f6a79 : a801 mov dword ptr [ Data946f90 ] , eax ;0x008f6a7b : a3906f9400 je Label8f6a91 ;0x008f6a80 : 740f cmp dword ptr [ ebp - 12 ] , ebx ;0x008f6a82 : 395df4 jne Label8f6a91 ;0x008f6a85 : 750a or eax , 08000h ;0x008f6a87 : 0d00800000 mov dword ptr [ Data946f90 ] , eax ;0x008f6a8c : a3906f9400 Label8f6a91 :: inc dword ptr [ Data94740c ] ;0x008f6a91 : ff050c749400 Label8f6a97 :: call Fun4cf664 ;0x008f6a97 : e8c88bbdff mov eax , dword ptr [ Data9393ac ] ;0x008f6a9c : a1ac939300 mov al , byte ptr [eax] ;0x008f6aa1 : 8a00 cmp al , 0FBh ;0x008f6aa3 : 3cfb je Label8f6aab ;0x008f6aa5 : 7404 cmp al , 0D9h ;0x008f6aa7 : 3cd9 jne Label8f6ab2 ;0x008f6aa9 : 7507 Label8f6aab :: call Fun8f66ee ;0x008f6aab : e83efcffff jmp Label8f6a97 ;0x008f6ab0 : ebe5 Label8f6ab2 :: lea eax , dword ptr [ ebp - 76 ] ;0x008f6ab2 : 8d45b4 push eax ;0x008f6ab5 : 50 lea eax , dword ptr [ ebp + 0FFFFFEF8h ] ;0x008f6ab6 : 8d85f8feffff call Fun42d200 ;0x008f6abc : e83f67b3ff mov ecx , dword ptr [ Data947db8 ] ;0x008f6ac1 : 8b0db87d9400 dec dword ptr [ Data94740c ] ;0x008f6ac7 : ff0d0c749400 cmp ecx , ebx ;0x008f6acd : 3bcb mov eax , dword ptr [ ebp - 64 ] ;0x008f6acf : 8b45c0 mov dword ptr [ Data946f90 ] , eax ;0x008f6ad2 : a3906f9400 je Label8f6ae4 ;0x008f6ad7 : 740b call Fun42c1e2 ;0x008f6ad9 : e80457b3ff mov dword ptr [ Data947db8 ] , ebx ;0x008f6ade : 891db87d9400 Label8f6ae4 :: cmp dword ptr [ ebp - 16 ] , ebx ;0x008f6ae4 : 395df0 mov eax , dword ptr [ ebp - 68 ] ;0x008f6ae7 : 8b45bc mov dword ptr [ Data946f8c ] , eax ;0x008f6aea : a38c6f9400 mov eax , dword ptr [ ebp - 72 ] ;0x008f6aef : 8b45b8 mov dword ptr [ Data947db4 ] , ebx ;0x008f6af2 : 891db47d9400 mov dword ptr [ Data93db94 ] , eax ;0x008f6af8 : a394db9300 je Label8f6b18 ;0x008f6afd : 7419 mov ecx , dword ptr [ Data93d748 ] ;0x008f6aff : 8b0d48d79300 call Fun42c1e2 ;0x008f6b05 : e8d856b3ff mov ecx , dword ptr [ ebp - 16 ] ;0x008f6b0a : 8b4df0 mov dword ptr [ Data93d748 ] , ebx ;0x008f6b0d : 891d48d79300 call Fun544742 ;0x008f6b13 : e82adcc4ff Label8f6b18 :: cmp dword ptr [ ebp - 12 ] , ebx ;0x008f6b18 : 395df4 je Label8f6bd9 ;0x008f6b1b : 0f84b8000000 cmp dword ptr [ ebp - 8 ] , ebx ;0x008f6b21 : 395df8 je Label8f6b99 ;0x008f6b24 : 7473 pushd 0Bh ;0x008f6b26 : 6a0b pop ecx ;0x008f6b28 : 59 xor eax , eax ;0x008f6b29 : 33c0 lea edi , dword ptr [ ebp - 60 ] ;0x008f6b2b : 8d7dc4 mov bx , 011h ;0x008f6b2e : 66bb1100 lea edx , dword ptr [ ebp - 104 ] ;0x008f6b32 : 8d5598 lea esi , dword ptr [ ebp - 60 ] ;0x008f6b35 : 8d75c4 rep stosd ;0x008f6b38 : f3ab call Fun52a5d6 ;0x008f6b3a : e8973ac3ff cmp byte ptr [ ebp - 60 ] , 048h ;0x008f6b3f : 807dc448 jne Label8f6b54 ;0x008f6b43 : 750f cmp dword ptr [ ebp - 28 ] , 00h ;0x008f6b45 : 837de400 je Label8f6b54 ;0x008f6b49 : 7409 cmp dword ptr [ Data93d748 ] , 00h ;0x008f6b4b : 833d48d7930000 jne Label8f6b5e ;0x008f6b52 : 750a Label8f6b54 :: mov ecx , 0385h ;0x008f6b54 : b985030000 call Fun544742 ;0x008f6b59 : e8e4dbc4ff Label8f6b5e :: mov eax , dword ptr [ ebp - 52 ] ;0x008f6b5e : 8b45cc mov ecx , dword ptr [ Data93ca70 ] ;0x008f6b61 : 8b0d70ca9300 pushd 00h ;0x008f6b67 : 6a00 push dword ptr [ ebp - 28 ] ;0x008f6b69 : ff75e4 add ecx , eax ;0x008f6b6c : 03c8 call Fun42c2c4 ;0x008f6b6e : e85157b3ff mov eax , dword ptr [ ebp - 28 ] ;0x008f6b73 : 8b45e4 mov ecx , dword ptr [eax] ;0x008f6b76 : 8b08 mov eax , dword ptr [ Data93d748 ] ;0x008f6b78 : a148d79300 push dword ptr [ Data93ca70 ] ;0x008f6b7d : ff3570ca9300 add ecx , dword ptr [ ebp - 52 ] ;0x008f6b83 : 034dcc mov edx , dword ptr [eax] ;0x008f6b86 : 8b10 call Fun42c19b ;0x008f6b88 : e80e56b3ff mov eax , dword ptr [ Data93ca70 ] ;0x008f6b8d : a170ca9300 add dword ptr [ ebp - 52 ] , eax ;0x008f6b92 : 0145cc xor ebx , ebx ;0x008f6b95 : 33db jmp Label8f6bc0 ;0x008f6b97 : eb27 Label8f6b99 :: mov eax , dword ptr [ Data93d748 ] ;0x008f6b99 : a148d79300 cmp eax , ebx ;0x008f6b9e : 3bc3 mov byte ptr [ ebp - 60 ] , 048h ;0x008f6ba0 : c645c448 mov dword ptr [ ebp - 56 ] , ebx ;0x008f6ba4 : 895dc8 jne Label8f6bb5 ;0x008f6ba7 : 750c pushd 01013h ;0x008f6ba9 : 6813100000 xor eax , eax ;0x008f6bae : 33c0 call Fun42bf2a ;0x008f6bb0 : e87553b3ff Label8f6bb5 :: mov dword ptr [ ebp - 28 ] , eax ;0x008f6bb5 : 8945e4 mov eax , dword ptr [ Data93ca70 ] ;0x008f6bb8 : a170ca9300 mov dword ptr [ ebp - 52 ] , eax ;0x008f6bbd : 8945cc Label8f6bc0 :: ; ; ---------------------------------------------------------------------------------------- ; VFP 9.0 FIX - CREATE THE PRIVATE VARIABLE IN THE TEXT TO COMMAND AUTOMATICALLY ; September 2019 ; ---------------------------------------------------------------------------------------- ; CCB ; ; Create the private variable in the TEXT TO command automatically (if the variable doesn't exist). ; ; 2019/9/30, by ccb ; cmp dword ptr vfpa_sys9025_data,00h je Label8f6bc1 mov ecx,ebx or ecx,01h push ecx jmp Label8f6bc2 Label8f6bc1 :: push ebx ;0x008f6bc0 : 53 Label8f6bc2 :: lea edx , dword ptr [ ebp - 104 ] ;0x008f6bc1 : 8d5598 lea ecx , dword ptr [ ebp - 60 ] ;0x008f6bc4 : 8d4dc4 call Fun52bf26 ;0x008f6bc7 : e85a53c3ff cmp dword ptr [ ebp - 8 ] , ebx ;0x008f6bcc : 395df8 je Label8f6bd9 ;0x008f6bcf : 7408 mov ecx , dword ptr [ ebp - 28 ] ;0x008f6bd1 : 8b4de4 call Fun42c1e2 ;0x008f6bd4 : e80956b3ff Label8f6bd9 :: cmp dword ptr [ ebp - 4 ] , ebx ;0x008f6bd9 : 395dfc je Label8f6bf5 ;0x008f6bdc : 7417 mov ecx , dword ptr [ Data93d748 ] ;0x008f6bde : 8b0d48d79300 call Fun42c1e2 ;0x008f6be4 : e8f955b3ff mov dword ptr [ Data93d748 ] , ebx ;0x008f6be9 : 891d48d79300 mov dword ptr [ Data93ca70 ] , ebx ;0x008f6bef : 891d70ca9300 Label8f6bf5 :: mov eax , dword ptr [ Data9393ac ] ;0x008f6bf5 : a1ac939300 cmp byte ptr [eax] , 01Fh ;0x008f6bfa : 80381f jne Fun5495f1 ;0x008f6bfd : 0f85ee29c5ff pop edi ;0x008f6c03 : 5f pop esi ;0x008f6c04 : 5e pop ebx ;0x008f6c05 : 5b leave ;0x008f6c06 : c9 ret ;0x008f6c07 : c3 4. APPLIES TO: VFP 6.0.8167.0 VFP 6.0.8961.0 (SP5) 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_vfp9fix93.asp 2, tek-tips.com: https://www.tek-tips.com/viewthread.cfm?qid=1780183 6. OTHER: For reference only, there is no guarantees. Any questions or suggestions, please send me an email at ccb2000@163.com. |