From d6b15b805b842fd858a53c467eee6e9f1df4299d Mon Sep 17 00:00:00 2001 From: Lutz Date: Fri, 25 Feb 2022 16:16:16 +0100 Subject: [PATCH] Bug fix failute creating text class from corrupted vcx worked #78 --- foxbin2prg.exe | Bin 761925 -> 761923 bytes foxbin2prg.pjt | Bin 729192 -> 729221 bytes foxbin2prg.pjx | Bin 7433 -> 7433 bytes foxbin2prg.prg | 128 +++++++++++++++++++++++++++++-------------------- 4 files changed, 77 insertions(+), 51 deletions(-) diff --git a/foxbin2prg.exe b/foxbin2prg.exe index c9d39b659903cbf3a5fd9ab771a8389e2a9884e1..ef75ab04e639de8486482301841892c9e1fbb237 100644 GIT binary patch delta 11039 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�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 delta 13854 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 * *--------------------------------------------------------------------------------------------------- * +* 23/02/2022 bjornhoeksel Bug REPORT v1.19.69 Missing class when building text file from corrupted VCX * 23/02/2022 bjornhoeksel Bug REPORT v1.19.69 Creating a class, when an object is named equal to this class * 18/01/2022 Jimrnelson BUG REPORT v1.19.67 Converting MN2 to MNX ignores the programmer-defined "Pad Name" found in "Prompt Options" screen * 05/11/2021 LScheffler BUG REPORT v1.19.66 Double classes in VCX @@ -742,13 +746,13 @@ Endif * only 2 paras for -cCt Do Case - Case Pcount()=1 And ( tcType == '-t' OR tcType == 't' ) And !Empty( Dbf() ) + Case Pcount()=1 And ( tcType == '-t' Or tcType == 't' ) And !Empty( Dbf() ) tc_InputFile = Dbf() + '._cfg' - Case Pcount()=1 And ( Upper( tcType ) =='-C' OR Upper( tcType ) =='C' ) + Case Pcount()=1 And ( Upper( tcType ) =='-C' Or Upper( tcType ) =='C' ) tc_InputFile = 'FoxBin2PRG._cfg' - Case Pcount()#2 And ( Upper( tcType ) =='-C' Or tcType =='-t' OR Upper( tcType ) =='C' Or tcType =='t' ) + Case Pcount()#2 And ( Upper( tcType ) =='-C' Or tcType =='-t' Or Upper( tcType ) =='C' Or tcType =='t' ) tc_InputFile = "" tcType = "" @@ -1144,7 +1148,7 @@ Define Class c_foxbin2prg As Session This.c_FB2PRG_EXE_Version = 'v' + Transform(This.c_FB2PRG_Version_Real) *!* /Changed by SF 30.8.2021 - + AddProperty(_Screen, 'c_FB2PRG_EXE_Version', This.c_FB2PRG_EXE_Version) AddProperty(_Screen, 'ExitCode', 0) @@ -2390,13 +2394,13 @@ Define Class c_foxbin2prg As Session If .l_CFG_CachedAccess And .n_CFG_Actual > 0 Then toParentCFG = lo_CFG .writeLog( '> ' + Upper(loLang.C_USING_THIS_SETTINGS_LOC) + ': ' + lo_CFG.c_Foxbin2prg_ConfigFile + ' => ' + tc_InputFile + ; - ' CFG_Actual:' + Transform(.n_CFG_Actual) + Icase(.n_CFG_Actual=1, ' [MASTER]', ' [SECONDARY]') ) + ' CFG_Actual:' + Transform(.n_CFG_Actual) + Icase(.n_CFG_Actual=1, ' [MASTER]', ' [SECONDARY]') ) Else lo_CFG = Createobject('CL_CFG') lo_Configuration.Add( lo_CFG, lc_CFG_Path ) .n_CFG_Actual = lo_Configuration.Count .writeLog( '> ' + Upper(loLang.C_CACHING_CONFIG_FOR_DIRECTORY_LOC) + ': ' + lc_CFG_Path + ; - ' CFG_Actual:' + Transform(.n_CFG_Actual) + Icase(.n_CFG_Actual=1, ' [MASTER]', ' [SECONDARY]') ) + ' CFG_Actual:' + Transform(.n_CFG_Actual) + Icase(.n_CFG_Actual=1, ' [MASTER]', ' [SECONDARY]') ) If Not Isnull(toParentCFG) lo_CFG.CopyFrom(@toParentCFG) @@ -3345,7 +3349,7 @@ Define Class c_foxbin2prg As Session Lparameters tc_InputFile, tcType, tcTextName, tlGenText, tcDontShowErrors, tcDebug, tcDontShowProgress ; , toModulo, toEx As Exception, tlRelanzarError, tcOriginalFileName, tcRecompile, tcNoTimestamps ; , tcBackupLevels, tcClearUniqueID, tcOptimizeByFilestamp, tcCFG_File - + Try Local I, lcPath, lnCodError, lcFileSpec, lcFile, laFiles(1,5), laDirInfo(1,5), lcInputFile_Type, lc_OldSetNotify ; , lnFileCount, lcErrorInfo, lcErrorFile, lnPCount, laParams(1), lnConversionOption, lnErrorIcon, llError ; @@ -3522,9 +3526,9 @@ Define Class c_foxbin2prg As Session * n_RedirectClassType = 0 will import all classes of file.VCX (as just handing file.vc2) * n_RedirectClassType = 1 will import the class to single lib file[.baseclass].class.VCX Do Case - Case ( Lower(m.lcType)=='-c' OR Lower(m.lcType)=='c' ) + Case ( Lower(m.lcType)=='-c' Or Lower(m.lcType)=='c' ) * not handled - Case ( m.lcType=='-t' OR m.lcType=='t' ) + Case ( m.lcType=='-t' Or m.lcType=='t' ) * not handled Case .n_RedirectClassType # 2 * not handled @@ -3581,11 +3585,11 @@ Define Class c_foxbin2prg As Session *!* Changed by: Lutz Scheffler 15.2.2021 *!* change date="{^2021-02-15,18:44:00}" * added option to create config files - Case ( m.lcType=='-t' OR m.lcType=='t' ) And ( Vartype( m.tc_InputFile )='C' And !Empty( m.tc_InputFile ) ) + Case ( m.lcType=='-t' Or m.lcType=='t' ) And ( Vartype( m.tc_InputFile )='C' And !Empty( m.tc_InputFile ) ) loLang = _Screen.o_FoxBin2Prg_Lang Strtofile( Strtran( Strtran( '*' + m.loLang.C_FOXBIN2PRG_SYNTAX_INFO_EXAMPLE_LOC_tab_cfg, 0h0D0A, 0h0D0A + '*'), 0h0D0A + '*' + 0h0D0A, 0h0D0A0D0A), m.tc_InputFile ) - Case ( m.lcType=='-c' OR m.lcType=='c' ) + Case ( m.lcType=='-c' Or m.lcType=='c' ) tc_InputFile = Iif( Vartype( m.tc_InputFile )='C' And !Empty( m.tc_InputFile ), m.tc_InputFile, 'FoxBin2Prg._cfg' ) loLang = _Screen.o_FoxBin2Prg_Lang Strtofile( Strtran( '*' + Strtran( m.loLang.C_FOXBIN2PRG_SYNTAX_INFO_EXAMPLE_LOC_cfg, 0h0D0A, 0h0D0A + '*'), 0h0D0A + '*' + 0h0D0A, 0h0D0A0D0A), m.tc_InputFile ) @@ -3594,7 +3598,7 @@ Define Class c_foxbin2prg As Session *!* Changed by: Lutz Scheffler 07.3.2021 *!* change date="{^2021-03-07,18:44:00}" * added option to create config files with values - Case ( m.lcType=='-C' OR m.lcType=='C' ) + Case ( m.lcType=='-C' Or m.lcType=='C' ) Local; lcText As String,; lcValue As String,; @@ -11406,7 +11410,7 @@ Define Class c_conversor_prg_a_vcx As c_conversor_prg_a_bin , laLineasExclusion, lnBloquesExclusion, I Endtry - RETURN + Return Endproc @@ -11582,12 +11586,12 @@ Define Class c_conversor_prg_a_vcx As c_conversor_prg_a_bin *!* Changed by: SF
*!* https://github.com/fdbozzo/foxbin2prg/issues/72 / double classes in VCX *!* The old code will write a class whether or not the class is already in the classlib -*!* Problem comes if a class is defined double by inconsistent UseClassPerFile, +*!* Problem comes if a class is defined double by inconsistent UseClassPerFile, *!* with same class defined in file.vc2 and in file[.baseclass].class.vc2 *!*
*!* - SELECT TABLABIN + Select TABLABIN *!* Changed by: SF 23.02.2022 *!* *!* Changed by: SF
@@ -11598,18 +11602,18 @@ Define Class c_conversor_prg_a_vcx As c_conversor_prg_a_bin * LOCATE; * FOR OBJNAME==loClase._ObjName - LOCATE; + Locate; FOR OBJNAME==loClase._ObjName; - AND EMPTY(Parent) + AND Empty(Parent) *!* /Changed by SF 07.12.2021 - IF FOUND() THEN + If Found() Then *SF 20211207 *SET STEP ON Error loLang.C_ClassTwice_Header_LOC + ; - loLang.C_ClassTwice_Lib_LOC + JUSTFNAME( DBF() ) + ; + loLang.C_ClassTwice_Lib_LOC + Justfname( Dbf() ) + ; loLang.C_ClassTwice_Class_LOC + loClase._ObjName+0h0D0A - ENDIF &&FOUND() + Endif &&FOUND() *!* /Changed by SF 07.12.2021 @@ -11714,15 +11718,15 @@ Define Class c_conversor_prg_a_vcx As c_conversor_prg_a_bin , '' ) Endfor && I = 1 TO toModulo._Clases_Count - IF !EMPTY( lnCodError ) THEN - EXIT - ENDIF &&!EMPTY( lnCodError ) + If !Empty( lnCodError ) Then + Exit + Endif &&!EMPTY( lnCodError ) Endfor && X = 1 TO 2 Endif Use In (Select("TABLABIN")) - If toFoxBin2Prg.l_Recompile AND EMPTY( lnCodError ) + If toFoxBin2Prg.l_Recompile And Empty( lnCodError ) toFoxBin2Prg.compileFoxProBinary() Endif @@ -15252,13 +15256,35 @@ Define Class c_conversor_bin_a_prg As c_conversor_base lcSetDeleted = Set("Deleted") Set Deleted Off +*!* Changed by: SF 25.2.2022 +*!* +*!* Changed by: SF
+*!* https://github.com/fdbozzo/foxbin2prg/issues/78 / After vc2 convert back to vcx class is corrupted no errors reported +*!* Better named: Missing class when building text file from corrupted VCX +*!* If the VCX is corrupted and holds empty records, the original coed will delete the next class. +*!* This because the while clause for an empty OBJNAME deletes the record with the class itself, since this never has a PARENT +*!* Solution is from bjornhoeksel, see issue +*!*
+*!*
+ +* Scan For PLATFORM = "WINDOWS" And Empty(Parent) And Empty(RESERVED1) +* lcParentObjName = Lower(OBJNAME) +* Delete +* Skip +* Delete Rest While Getwordnum(Lower(Parent) + '.', 1, '.') == lcParentObjName +* Skip -1 +* Endscan + Scan For PLATFORM = "WINDOWS" And Empty(Parent) And Empty(RESERVED1) lcParentObjName = Lower(OBJNAME) Delete - Skip - Delete Rest While Getwordnum(Lower(Parent) + '.', 1, '.') == lcParentObjName - Skip -1 + If (Not Empty(lcParentObjName)) Then + Skip + Delete Rest While Getwordnum(Lower(Parent) + '.', 1, '.') == lcParentObjName + Skip -1 + Endif Endscan +*!* /Changed by: SF 25.2.2022 Set Deleted &lcSetDeleted. Return @@ -28554,20 +28580,20 @@ Define Class CL_MENU_OPTION As CL_MENU_COL_BASE *!*
*!*
- Do Case - Case LEFT ( m.lcBarName, 1 ) = '"' - lcBarName = Substr( m.lcBarName, 2, Len( m.lcBarName ) - 2 ) - loReg.Name = m.lcBarName - loReg.OBJCODE = C_OBJCODE_MENUOPTION_BARNUM - Case Isdigit( m.lcBarName ) - *-- Bar# - loReg.OBJCODE = C_OBJCODE_MENUOPTION_BARNUM + Do Case + Case Left ( m.lcBarName, 1 ) = '"' + lcBarName = Substr( m.lcBarName, 2, Len( m.lcBarName ) - 2 ) + loReg.Name = m.lcBarName + loReg.OBJCODE = C_OBJCODE_MENUOPTION_BARNUM + Case Isdigit( m.lcBarName ) +*-- Bar# + loReg.OBJCODE = C_OBJCODE_MENUOPTION_BARNUM - Otherwise - *-- Es un BAR del sistema - loReg.Name = m.lcBarName + Otherwise +*-- Es un BAR del sistema + loReg.Name = m.lcBarName - Endcase + Endcase *!* /Changd By: SF 22.4.2021 loReg.LevelName = Alltrim( Strextract( tcLine, ' OF ', ' PROMPT ' ) ) @@ -28732,7 +28758,7 @@ Define Class CL_MENU_OPTION As CL_MENU_COL_BASE Endtry Return llBloqueEncontrado - Endproc + Endproc @@ -28784,9 +28810,9 @@ Define Class CL_MENU_OPTION As CL_MENU_COL_BASE *!* *!* loReg.Name = lcPadName - IF LEFT ( m.lcPadName, 1 ) = '"' THEN - lcPadName = Substr( m.lcPadName, 2, Len( m.lcPadName ) - 2 ) - loReg.Name = m.lcPadName + If Left ( m.lcPadName, 1 ) = '"' Then + lcPadName = Substr( m.lcPadName, 2, Len( m.lcPadName ) - 2 ) + loReg.Name = m.lcPadName *!* Changed By: SF 18.1.2022 *!* @@ -28795,11 +28821,11 @@ Define Class CL_MENU_OPTION As CL_MENU_COL_BASE *!* Does not work for padname without '"'. *!* *!* - ELSE &&LEFT ( m.lcPadName, 1 ) = '"' - loReg.Name = m.lcPadName + Else &&LEFT ( m.lcPadName, 1 ) = '"' + loReg.Name = m.lcPadName *!* /Changed Bby SF 18.1.2022 - ENDIF &&LEFT ( m.lcPadName, 1 ) = '"' + Endif &&LEFT ( m.lcPadName, 1 ) = '"' *!* /Changd By: SF 22.4.2021 loReg.LevelName = Alltrim( Strextract( tcLine, ' OF ', ' PROMPT ' ) ) @@ -29072,8 +29098,8 @@ Define Class CL_MENU_OPTION As CL_MENU_COL_BASE *!* also use variable on all places instead of EVL(.. *!* *!* - If !Empty(toReg.Name) And ISDIGIT( toReg.Name ) Then - lcName = ALLTRIM( toReg.Name ) + If !Empty(toReg.Name) And Isdigit( toReg.Name ) Then + lcName = Alltrim( toReg.Name ) lcName2 = '"' + Alltrim(toReg.Name) + '"' Else &&!Empty(toReg.Name) And ISDIGIT( toReg.Name ) lcName = Alltrim( Evl( toReg.Name, toReg.ItemNum ) ) @@ -29180,7 +29206,7 @@ Define Class CL_MENU_OPTION As CL_MENU_COL_BASE , lcName2 Store Null To loBarPop lcTab = Replicate(Chr(9),tnNivel) - If !Empty(toReg.Name) And LEFT( toReg.Name, 1 ) = '_' Then + If !Empty(toReg.Name) And Left( toReg.Name, 1 ) = '_' Then lcName2 = '"' + Alltrim(toReg.Name) + '"' toReg.Name = toReg.Name Else &&!EMPTY(toReg.Name) AND toReg.Name = '_'