From 816b5a7a0326e4d5f59f707257e1a6979e892f43 Mon Sep 17 00:00:00 2001 From: fernando Date: Sat, 1 Mar 2014 12:23:43 +0100 Subject: [PATCH 1/3] =?UTF-8?q?Changeset:=20179=20fernando=20-=2001/03/201?= =?UTF-8?q?4=2012:21:44:=20v1.19.14=20-=20Optimizada=20la=20carga=20de=20l?= =?UTF-8?q?a=20configuracion=20(foxbin2prg.cfg)=20una=20=C3=BAnica=20vez?= =?UTF-8?q?=20en=20un=20proceso=20masivo=20de=20m=C3=BAltiples=20conversio?= =?UTF-8?q?nes=20-=20Modificados=20los=20scripts=20para=20respetar=20la=20?= =?UTF-8?q?configuraci=C3=B3n=20del=20soporte=20de=20conversiones=20defini?= =?UTF-8?q?do=20en=20el=20archivo=20de=20configuraci=C3=B3n=20foxbin2prg.c?= =?UTF-8?q?fg?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- foxbin2prg.pj2 | 4 +- foxbin2prg.pjt | Bin 359936 -> 360064 bytes foxbin2prg.pjx | Bin 1583 -> 1583 bytes foxbin2prg.prg | 173 +++++++++++++++++++++++++------------------------ 4 files changed, 91 insertions(+), 86 deletions(-) diff --git a/foxbin2prg.pj2 b/foxbin2prg.pj2 index 07eeed2..5901394 100644 --- a/foxbin2prg.pj2 +++ b/foxbin2prg.pj2 @@ -26,7 +26,7 @@ _LegalTrademark = "Open Source" _ProductName = " FOXBIN2PRG" _MajorVer = "1" _MinorVer = "19" -_Revision = " 280" +_Revision = " 282" _LanguageID = "1034" _AutoIncrement = "1" * @@ -51,7 +51,7 @@ loProject = _VFP.Projects('foxbin2prg.pjx') WITH loProject.FILES .ADD('config\config.fpw') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="1132857145" ID="1131721714" ObjRev="0" /> - .ADD('foxbin2prg.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="1146787176" ID="1130644423" ObjRev="544" /> + .ADD('foxbin2prg.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="1147207961" ID="1130644423" ObjRev="544" /> * .ITEM('__newproject.f2b').Remove() diff --git a/foxbin2prg.pjt b/foxbin2prg.pjt index 0f2d0db5eb5d0ff03ac02b1cb300a50106b20346..ee1f00b4678d26fb1ce1b40cd9f7b701a426d0d1 100644 GIT binary patch delta 12991 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 EAH^D-(f|Me delta 12839 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 diff --git a/foxbin2prg.pjx b/foxbin2prg.pjx index e08096646bd2391ab10fff39a677780276a8c3b0..f1d8fe4638e910d2aed95bcdb6233f9d98b73976 100644 GIT binary patch delta 37 ocmZ3_vz~{=fRCARBg=Lcc5@>Gb4xSR$%k0}LfM9skFjO~0JKI5JOBUy delta 37 pcmZ3_vz~{=fR9OPBg=Lcb~AGeb3;qB$%k0}LfGbJlaH}x0sy!H3T6NR diff --git a/foxbin2prg.prg b/foxbin2prg.prg index ea5b73a..93f80a1 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -386,6 +386,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM + [] ; + [] ; + [] ; + + [] ; + [] ; + [] ; + [] ; @@ -428,6 +429,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM c_OutputFile = '' c_Type = '' lFileMode = .F. + l_ConfigEvaluated = .F. l_Debug = .F. l_Test = .F. l_ShowErrors = .F. @@ -705,103 +707,106 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM LOCAL lcConfigFile, llExisteConfig, laConfig(1), I, lcConfData, lcExt WITH THIS AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' - lcConfigFile = THIS.c_Foxbin2prg_ConfigFile - llExisteConfig = FILE( lcConfigFile ) + IF NOT .l_ConfigEvaluated + lcConfigFile = THIS.c_Foxbin2prg_ConfigFile + llExisteConfig = FILE( lcConfigFile ) - IF llExisteConfig - .writeLog( C_CONFIGFILE_LOC + ' ' + lcConfigFile ) + IF llExisteConfig + .writeLog( C_CONFIGFILE_LOC + ' ' + lcConfigFile ) - FOR I = 1 TO ALINES( laConfig, FILETOSTR( lcConfigFile ), 1+4 ) - laConfig(I) = LOWER( laConfig(I) ) + FOR I = 1 TO ALINES( laConfig, FILETOSTR( lcConfigFile ), 1+4 ) + laConfig(I) = LOWER( laConfig(I) ) - DO CASE - CASE LEFT( laConfig(I), 1 ) == '*' - LOOP + DO CASE + CASE LEFT( laConfig(I), 1 ) == '*' + LOOP - CASE LEFT( laConfig(I), 10 ) == LOWER('Extension:') - lcConfData = ALLTRIM( SUBSTR( laConfig(I), 11 ) ) - lcExt = 'c_' + ALLTRIM( GETWORDNUM( lcConfData, 1, '=' ) ) - IF PEMSTATUS( THIS, lcExt, 5 ) - .ADDPROPERTY( lcExt, UPPER( ALLTRIM( GETWORDNUM( lcConfData, 2, '=' ) ) ) ) - *.writeLog( 'Reconfiguración de extensión:' + ' ' + lcExt + ' a ' + UPPER( ALLTRIM( GETWORDNUM( lcConfData, 2, '=' ) ) ) ) - .writeLog( JUSTFNAME(lcConfigFile) + ' > ' + C_EXTENSION_RECONFIGURATION_LOC + ' ' + lcExt + ' a ' + UPPER( ALLTRIM( GETWORDNUM( lcConfData, 2, '=' ) ) ) ) - ENDIF + CASE LEFT( laConfig(I), 10 ) == LOWER('Extension:') + lcConfData = ALLTRIM( SUBSTR( laConfig(I), 11 ) ) + lcExt = 'c_' + ALLTRIM( GETWORDNUM( lcConfData, 1, '=' ) ) + IF PEMSTATUS( THIS, lcExt, 5 ) + .ADDPROPERTY( lcExt, UPPER( ALLTRIM( GETWORDNUM( lcConfData, 2, '=' ) ) ) ) + *.writeLog( 'Reconfiguración de extensión:' + ' ' + lcExt + ' a ' + UPPER( ALLTRIM( GETWORDNUM( lcConfData, 2, '=' ) ) ) ) + .writeLog( JUSTFNAME(lcConfigFile) + ' > ' + C_EXTENSION_RECONFIGURATION_LOC + ' ' + lcExt + ' a ' + UPPER( ALLTRIM( GETWORDNUM( lcConfData, 2, '=' ) ) ) ) + ENDIF - CASE LEFT( laConfig(I), 17 ) == LOWER('DontShowProgress:') - tcDontShowProgress = ALLTRIM( SUBSTR( laConfig(I), 18 ) ) - .writeLog( JUSTFNAME(lcConfigFile) + ' > tcDontShowProgress: ' + TRANSFORM(tcDontShowProgress) ) + CASE LEFT( laConfig(I), 17 ) == LOWER('DontShowProgress:') + tcDontShowProgress = ALLTRIM( SUBSTR( laConfig(I), 18 ) ) + .writeLog( JUSTFNAME(lcConfigFile) + ' > tcDontShowProgress: ' + TRANSFORM(tcDontShowProgress) ) - CASE LEFT( laConfig(I), 15 ) == LOWER('DontShowErrors:') - tcDontShowErrors = ALLTRIM( SUBSTR( laConfig(I), 16 ) ) - .writeLog( JUSTFNAME(lcConfigFile) + ' > tcDontShowErrors: ' + TRANSFORM(tcDontShowErrors) ) + CASE LEFT( laConfig(I), 15 ) == LOWER('DontShowErrors:') + tcDontShowErrors = ALLTRIM( SUBSTR( laConfig(I), 16 ) ) + .writeLog( JUSTFNAME(lcConfigFile) + ' > tcDontShowErrors: ' + TRANSFORM(tcDontShowErrors) ) - CASE LEFT( laConfig(I), 13 ) == LOWER('NoTimestamps:') - tcNoTimestamps = ALLTRIM( SUBSTR( laConfig(I), 14 ) ) - .writeLog( JUSTFNAME(lcConfigFile) + ' > tcNoTimestamps: ' + TRANSFORM(tcNoTimestamps) ) + CASE LEFT( laConfig(I), 13 ) == LOWER('NoTimestamps:') + tcNoTimestamps = ALLTRIM( SUBSTR( laConfig(I), 14 ) ) + .writeLog( JUSTFNAME(lcConfigFile) + ' > tcNoTimestamps: ' + TRANSFORM(tcNoTimestamps) ) - CASE LEFT( laConfig(I), 6 ) == LOWER('Debug:') - tcDebug = ALLTRIM( SUBSTR( laConfig(I), 7 ) ) - .writeLog( JUSTFNAME(lcConfigFile) + ' > tcDebug: ' + TRANSFORM(tcDebug) ) + CASE LEFT( laConfig(I), 6 ) == LOWER('Debug:') + tcDebug = ALLTRIM( SUBSTR( laConfig(I), 7 ) ) + .writeLog( JUSTFNAME(lcConfigFile) + ' > tcDebug: ' + TRANSFORM(tcDebug) ) - CASE LEFT( laConfig(I), 18 ) == LOWER('ExtraBackupLevels:') - tcExtraBackupLevels = ALLTRIM( SUBSTR( laConfig(I), 19 ) ) - .writeLog( JUSTFNAME(lcConfigFile) + ' > tcExtraBackupLevels: ' + TRANSFORM(tcExtraBackupLevels) ) + CASE LEFT( laConfig(I), 18 ) == LOWER('ExtraBackupLevels:') + tcExtraBackupLevels = ALLTRIM( SUBSTR( laConfig(I), 19 ) ) + .writeLog( JUSTFNAME(lcConfigFile) + ' > tcExtraBackupLevels: ' + TRANSFORM(tcExtraBackupLevels) ) - CASE LEFT( laConfig(I), 14 ) == LOWER('ClearUniqueID:') - .l_ClearUniqueID = ( ALLTRIM( SUBSTR( laConfig(I), 15 ) ) == '1' ) - .writeLog( JUSTFNAME(lcConfigFile) + ' > ClearUniqueID: ' + TRANSFORM(ALLTRIM( SUBSTR( laConfig(I), 15 )) ) ) + CASE LEFT( laConfig(I), 14 ) == LOWER('ClearUniqueID:') + .l_ClearUniqueID = ( ALLTRIM( SUBSTR( laConfig(I), 15 ) ) == '1' ) + .writeLog( JUSTFNAME(lcConfigFile) + ' > ClearUniqueID: ' + TRANSFORM(ALLTRIM( SUBSTR( laConfig(I), 15 )) ) ) - CASE LEFT( laConfig(I), 23 ) == LOWER('PJX_Conversion_Support:') - .PJX_Conversion_Support = INT( VAL( ALLTRIM( SUBSTR( laConfig(I), 24 ) ) ) ) - .writeLog( JUSTFNAME(lcConfigFile) + ' > PJX_Conversion_Support: ' + TRANSFORM(.PJX_Conversion_Support) ) + CASE LEFT( laConfig(I), 23 ) == LOWER('PJX_Conversion_Support:') + .PJX_Conversion_Support = INT( VAL( ALLTRIM( SUBSTR( laConfig(I), 24 ) ) ) ) + .writeLog( JUSTFNAME(lcConfigFile) + ' > PJX_Conversion_Support: ' + TRANSFORM(.PJX_Conversion_Support) ) - CASE LEFT( laConfig(I), 23 ) == LOWER('VCX_Conversion_Support:') - .VCX_Conversion_Support = INT( VAL( ALLTRIM( SUBSTR( laConfig(I), 24 ) ) ) ) - .writeLog( JUSTFNAME(lcConfigFile) + ' > VCX_Conversion_Support: ' + TRANSFORM(.VCX_Conversion_Support) ) + CASE LEFT( laConfig(I), 23 ) == LOWER('VCX_Conversion_Support:') + .VCX_Conversion_Support = INT( VAL( ALLTRIM( SUBSTR( laConfig(I), 24 ) ) ) ) + .writeLog( JUSTFNAME(lcConfigFile) + ' > VCX_Conversion_Support: ' + TRANSFORM(.VCX_Conversion_Support) ) - CASE LEFT( laConfig(I), 23 ) == LOWER('SCX_Conversion_Support:') - .SCX_Conversion_Support = INT( VAL( ALLTRIM( SUBSTR( laConfig(I), 24 ) ) ) ) - .writeLog( JUSTFNAME(lcConfigFile) + ' > SCX_Conversion_Support: ' + TRANSFORM(.SCX_Conversion_Support) ) + CASE LEFT( laConfig(I), 23 ) == LOWER('SCX_Conversion_Support:') + .SCX_Conversion_Support = INT( VAL( ALLTRIM( SUBSTR( laConfig(I), 24 ) ) ) ) + .writeLog( JUSTFNAME(lcConfigFile) + ' > SCX_Conversion_Support: ' + TRANSFORM(.SCX_Conversion_Support) ) - CASE LEFT( laConfig(I), 23 ) == LOWER('FRX_Conversion_Support:') - .FRX_Conversion_Support = INT( VAL( ALLTRIM( SUBSTR( laConfig(I), 24 ) ) ) ) - .writeLog( JUSTFNAME(lcConfigFile) + ' > FRX_Conversion_Support: ' + TRANSFORM(.FRX_Conversion_Support) ) + CASE LEFT( laConfig(I), 23 ) == LOWER('FRX_Conversion_Support:') + .FRX_Conversion_Support = INT( VAL( ALLTRIM( SUBSTR( laConfig(I), 24 ) ) ) ) + .writeLog( JUSTFNAME(lcConfigFile) + ' > FRX_Conversion_Support: ' + TRANSFORM(.FRX_Conversion_Support) ) - CASE LEFT( laConfig(I), 23 ) == LOWER('LBX_Conversion_Support:') - .LBX_Conversion_Support = INT( VAL( ALLTRIM( SUBSTR( laConfig(I), 24 ) ) ) ) - .writeLog( JUSTFNAME(lcConfigFile) + ' > LBX_Conversion_Support: ' + TRANSFORM(.LBX_Conversion_Support) ) + CASE LEFT( laConfig(I), 23 ) == LOWER('LBX_Conversion_Support:') + .LBX_Conversion_Support = INT( VAL( ALLTRIM( SUBSTR( laConfig(I), 24 ) ) ) ) + .writeLog( JUSTFNAME(lcConfigFile) + ' > LBX_Conversion_Support: ' + TRANSFORM(.LBX_Conversion_Support) ) - CASE LEFT( laConfig(I), 23 ) == LOWER('MNX_Conversion_Support:') - .MNX_Conversion_Support = INT( VAL( ALLTRIM( SUBSTR( laConfig(I), 24 ) ) ) ) - .writeLog( JUSTFNAME(lcConfigFile) + ' > MNX_Conversion_Support: ' + TRANSFORM(.MNX_Conversion_Support) ) + CASE LEFT( laConfig(I), 23 ) == LOWER('MNX_Conversion_Support:') + .MNX_Conversion_Support = INT( VAL( ALLTRIM( SUBSTR( laConfig(I), 24 ) ) ) ) + .writeLog( JUSTFNAME(lcConfigFile) + ' > MNX_Conversion_Support: ' + TRANSFORM(.MNX_Conversion_Support) ) - CASE LEFT( laConfig(I), 23 ) == LOWER('DBF_Conversion_Support:') - .DBF_Conversion_Support = INT( VAL( ALLTRIM( SUBSTR( laConfig(I), 24 ) ) ) ) - .writeLog( JUSTFNAME(lcConfigFile) + ' > DBF_Conversion_Support: ' + TRANSFORM(.DBF_Conversion_Support) ) + CASE LEFT( laConfig(I), 23 ) == LOWER('DBF_Conversion_Support:') + .DBF_Conversion_Support = INT( VAL( ALLTRIM( SUBSTR( laConfig(I), 24 ) ) ) ) + .writeLog( JUSTFNAME(lcConfigFile) + ' > DBF_Conversion_Support: ' + TRANSFORM(.DBF_Conversion_Support) ) - CASE LEFT( laConfig(I), 23 ) == LOWER('DBC_Conversion_Support:') - .DBC_Conversion_Support = INT( VAL( ALLTRIM( SUBSTR( laConfig(I), 24 ) ) ) ) - .writeLog( JUSTFNAME(lcConfigFile) + ' > DBC_Conversion_Support: ' + TRANSFORM(.DBC_Conversion_Support) ) + CASE LEFT( laConfig(I), 23 ) == LOWER('DBC_Conversion_Support:') + .DBC_Conversion_Support = INT( VAL( ALLTRIM( SUBSTR( laConfig(I), 24 ) ) ) ) + .writeLog( JUSTFNAME(lcConfigFile) + ' > DBC_Conversion_Support: ' + TRANSFORM(.DBC_Conversion_Support) ) - ENDCASE - ENDFOR - ENDIF + ENDCASE + ENDFOR + ENDIF - .l_ShowProgress = NOT (TRANSFORM(tcDontShowProgress)=='1') - .l_ShowErrors = NOT (TRANSFORM(tcDontShowErrors) == '1') - .l_Recompile = (EMPTY(tcRecompile) OR TRANSFORM(tcRecompile) == '1' OR DIRECTORY(tcRecompile)) - .l_NoTimestamps = NOT (TRANSFORM(tcNoTimestamps) == '0') - .l_Debug = (TRANSFORM(tcDebug)=='1') - .n_ExtraBackupLevels = INT(VAL(TRANSFORM(tcExtraBackupLevels))) + .l_ShowProgress = NOT (TRANSFORM(tcDontShowProgress)=='1') + .l_ShowErrors = NOT (TRANSFORM(tcDontShowErrors) == '1') + .l_Recompile = (EMPTY(tcRecompile) OR TRANSFORM(tcRecompile) == '1' OR DIRECTORY(tcRecompile)) + .l_NoTimestamps = NOT (TRANSFORM(tcNoTimestamps) == '0') + .l_Debug = (TRANSFORM(tcDebug)=='1') + .n_ExtraBackupLevels = INT(VAL(TRANSFORM(tcExtraBackupLevels))) - .writeLog( '---' ) - .writeLog( '> l_ShowProgress: ' + TRANSFORM(.l_ShowProgress) ) - .writeLog( '> l_ShowErrors: ' + TRANSFORM(.l_ShowErrors) ) - .writeLog( '> l_Recompile: ' + TRANSFORM(.l_Recompile) + ' (' + EVL(tcRecompile,'') + ')' ) - .writeLog( '> l_NoTimestamps: ' + TRANSFORM(.l_NoTimestamps) ) - .writeLog( '> ClearUniqueID: ' + TRANSFORM(.l_ClearUniqueID) ) - .writeLog( '> l_Debug: ' + TRANSFORM(.l_Debug) ) - .writeLog( '> n_ExtraBackupLevels: ' + TRANSFORM(.n_ExtraBackupLevels) ) + .writeLog( '---' ) + .writeLog( '> l_ShowProgress: ' + TRANSFORM(.l_ShowProgress) ) + .writeLog( '> l_ShowErrors: ' + TRANSFORM(.l_ShowErrors) ) + .writeLog( '> l_Recompile: ' + TRANSFORM(.l_Recompile) + ' (' + EVL(tcRecompile,'') + ')' ) + .writeLog( '> l_NoTimestamps: ' + TRANSFORM(.l_NoTimestamps) ) + .writeLog( '> ClearUniqueID: ' + TRANSFORM(.l_ClearUniqueID) ) + .writeLog( '> l_Debug: ' + TRANSFORM(.l_Debug) ) + .writeLog( '> n_ExtraBackupLevels: ' + TRANSFORM(.n_ExtraBackupLevels) ) + .l_ConfigEvaluated = .T. + ENDIF && .l_ConfigEvaluated ENDWITH && THIS RETURN @@ -8668,7 +8673,7 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg IF .l_Test toModulo = C_FB2PRG_CODE ELSE - lnLen = LEN( toFoxBin2Prg.get_PROGRAM_HEADER() ) + lnLen = 1 &&LEN( toFoxBin2Prg.get_PROGRAM_HEADER() ) DO CASE CASE FILE(.c_OutputFile) AND SUBSTR( FILETOSTR( .c_OutputFile ), lnLen ) == SUBSTR( C_FB2PRG_CODE, lnLen ) *.writeLog( 'El archivo de salida [' + .c_OutputFile + '] no se sobreescribe por ser igual al generado.' ) @@ -8888,7 +8893,7 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg IF .l_Test toModulo = C_FB2PRG_CODE ELSE - lnLen = LEN( toFoxBin2Prg.get_PROGRAM_HEADER() ) + lnLen = 1 &&LEN( toFoxBin2Prg.get_PROGRAM_HEADER() ) DO CASE CASE FILE(.c_OutputFile) AND SUBSTR( FILETOSTR( .c_OutputFile ), lnLen ) == SUBSTR( C_FB2PRG_CODE, lnLen ) *.writeLog( 'El archivo de salida [' + .c_OutputFile + '] no se sobreescribe por ser igual al generado.' ) @@ -9217,7 +9222,7 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg IF .l_Test toModulo = C_FB2PRG_CODE ELSE - lnLen = LEN( toFoxBin2Prg.get_PROGRAM_HEADER() ) + lnLen = 1 &&LEN( toFoxBin2Prg.get_PROGRAM_HEADER() ) DO CASE CASE FILE(.c_OutputFile) AND SUBSTR( FILETOSTR( .c_OutputFile ), lnLen ) == SUBSTR( C_FB2PRG_CODE, lnLen ) *.writeLog( 'El archivo de salida [' + .c_OutputFile + '] no se sobreescribe por ser igual al generado.' ) @@ -9591,7 +9596,7 @@ DEFINE CLASS c_conversor_pjm_a_prg AS c_conversor_bin_a_prg IF .l_Test toModulo = C_FB2PRG_CODE ELSE - lnLen = LEN( toFoxBin2Prg.get_PROGRAM_HEADER() ) + lnLen = 1 &&LEN( toFoxBin2Prg.get_PROGRAM_HEADER() ) DO CASE CASE FILE(.c_OutputFile) AND SUBSTR( FILETOSTR( .c_OutputFile ), lnLen ) == SUBSTR( C_FB2PRG_CODE, lnLen ) *.writeLog( 'El archivo de salida [' + .c_OutputFile + '] no se sobreescribe por ser igual al generado.' ) @@ -9759,7 +9764,7 @@ DEFINE CLASS c_conversor_frx_a_prg AS c_conversor_bin_a_prg IF .l_Test toModulo = C_FB2PRG_CODE ELSE - lnLen = LEN( toFoxBin2Prg.get_PROGRAM_HEADER() ) + lnLen = 1 &&LEN( toFoxBin2Prg.get_PROGRAM_HEADER() ) DO CASE CASE FILE(.c_OutputFile) AND SUBSTR( FILETOSTR( .c_OutputFile ), lnLen ) == SUBSTR( C_FB2PRG_CODE, lnLen ) *.writeLog( 'El archivo de salida [' + .c_OutputFile + '] no se sobreescribe por ser igual al generado.' ) @@ -9839,7 +9844,7 @@ DEFINE CLASS c_conversor_dbf_a_prg AS c_conversor_bin_a_prg IF .l_Test toModulo = C_FB2PRG_CODE ELSE - lnLen = LEN( toFoxBin2Prg.get_PROGRAM_HEADER() ) + lnLen = 1 &&LEN( toFoxBin2Prg.get_PROGRAM_HEADER() ) DO CASE CASE FILE(.c_OutputFile) AND SUBSTR( FILETOSTR( .c_OutputFile ), lnLen ) == SUBSTR( C_FB2PRG_CODE, lnLen ) *.writeLog( 'El archivo de salida [' + .c_OutputFile + '] no se sobreescribe por ser igual al generado.' ) @@ -9943,7 +9948,7 @@ DEFINE CLASS c_conversor_dbc_a_prg AS c_conversor_bin_a_prg IF .l_Test toModulo = C_FB2PRG_CODE ELSE - lnLen = LEN( toFoxBin2Prg.get_PROGRAM_HEADER() ) + lnLen = 1 &&LEN( toFoxBin2Prg.get_PROGRAM_HEADER() ) DO CASE CASE FILE(.c_OutputFile) AND SUBSTR( FILETOSTR( .c_OutputFile ), lnLen ) == SUBSTR( C_FB2PRG_CODE, lnLen ) *.writeLog( 'El archivo de salida [' + .c_OutputFile + '] no se sobreescribe por ser igual al generado.' ) @@ -10025,7 +10030,7 @@ DEFINE CLASS c_conversor_mnx_a_prg AS c_conversor_bin_a_prg IF .l_Test toMenu = C_FB2PRG_CODE ELSE - lnLen = LEN( toFoxBin2Prg.get_PROGRAM_HEADER() ) + lnLen = 1 &&LEN( toFoxBin2Prg.get_PROGRAM_HEADER() ) DO CASE CASE FILE(.c_OutputFile) AND SUBSTR( FILETOSTR( .c_OutputFile ), lnLen ) == SUBSTR( C_FB2PRG_CODE, lnLen ) *.writeLog( 'El archivo de salida [' + .c_OutputFile + '] no se sobreescribe por ser igual al generado.' ) From c9a276a116ee8bd84987598abf0e0a0936156a08 Mon Sep 17 00:00:00 2001 From: fernando Date: Sat, 1 Mar 2014 17:29:13 +0100 Subject: [PATCH 2/3] Changeset: 180 fernando - 01/03/2014 12:23:43: v1.19.14 - Agregadas 2 funciones para poder evaluar el soporte de conversiones de forma externa (requiere EvaluarConfiguracion() previamente). Usado en los scripts - Arreglo bug ExtraBackupLevels: cuando no se define no se genera backup --- Convert_VFP9_BIN_2_PRG.vbs | 69 +++++++------------------------------ Convert_VFP9_PRG_2_BIN.vbs | 69 +++++++------------------------------ foxbin2prg.cfg | 1 + foxbin2prg.pj2 | 6 ++-- foxbin2prg.pjt | Bin 360064 -> 361408 bytes foxbin2prg.pjx | Bin 1583 -> 1583 bytes foxbin2prg.prg | 58 ++++++++++++++++++++++++++----- 7 files changed, 77 insertions(+), 126 deletions(-) diff --git a/Convert_VFP9_BIN_2_PRG.vbs b/Convert_VFP9_BIN_2_PRG.vbs index 6a6fde3..a93516c 100644 --- a/Convert_VFP9_BIN_2_PRG.vbs +++ b/Convert_VFP9_BIN_2_PRG.vbs @@ -13,14 +13,13 @@ '--------------------------------------------------------------------------------------------------- Const ForReading = 1 Dim WSHShell, FileSystemObject -Dim oVFP9, nExitCode, cEXETool, cCMD, nDebug, cConvertType, aExtensions(8), foxbin2prg_cfg, aFiles(), nFile_Count +Dim oVFP9, nExitCode, cEXETool, cCMD, nDebug, lcExt, foxbin2prg_cfg, aFiles(), nFile_Count Dim i, x, str_cfg, aConf, cErrMsg, cFlagGenerateLog, cFlagDontShowErrMsg, cFlagJustShowCall, cFlagRecompile, cNoTimestamps Set WSHShell = WScript.CreateObject("WScript.Shell") Set FileSystemObject = WScript.CreateObject("Scripting.FileSystemObject") Set oVFP9 = CreateObject("VisualFoxPro.Application.9") foxbin2prg_cfg = Replace(WScript.ScriptFullName, WScript.ScriptName, "foxbin2prg.cfg") nExitCode = 0 -cConvertType = "BIN2PRG" '<<< This is the only difference between the 2 scripts '--------------------------------------------------------------------------------------------------- 'Cumulative Flags: ' 0=OFF @@ -32,54 +31,8 @@ cConvertType = "BIN2PRG" '<<< This is the only difference between the 2 scripts nDebug = 1+0+4+0+16 '--------------------------------------------------------------------------------------------------- -If cConvertType = "BIN2PRG" Then - aExtensions(1) = "PJX" - aExtensions(2) = "VCX" - aExtensions(3) = "SCX" - aExtensions(4) = "FRX" - aExtensions(5) = "LBX" - aExtensions(6) = "DBF" - aExtensions(7) = "DBC" - aExtensions(8) = "MNX" -Else - '-- Extensiones TXT por defecto - aExtensions(1) = "PJ2" - aExtensions(2) = "VC2" - aExtensions(3) = "SC2" - aExtensions(4) = "FR2" - aExtensions(5) = "LB2" - aExtensions(6) = "DB2" - aExtensions(7) = "DC2" - aExtensions(8) = "MN2" - - If FileSystemObject.FileExists( foxbin2prg_cfg ) Then - '-- Existe el archivo de configuración foxbin2prg.cgf - Set objTextFile = FileSystemObject.OpenTextFile( foxbin2prg_cfg, ForReading ) - - Do Until objTextFile.AtEndOfStream - strNextLine = objTextFile.Readline - arrFb2p_CFG = Split(strNextLine , ",") - For i = 0 to Ubound(arrFb2p_CFG) - If Left( arrFb2p_CFG(i), 10 ) = "extension:" Then - aConf = Split( arrFb2p_CFG(i), ":" ) 'Obtengo la separación de "extensión:" y "ext:equiv" - str_cfg = UCase( Trim( aConf(1) ) ) - aConf = Split( str_cfg, "=" ) 'Obtengo la separación de extensión y equivalencia (vc2=vca) - - For x = 1 TO 8 - If aExtensions(x) = aConf(0) Then - aExtensions(x) = UCase( aConf(1) ) - Exit For - End If - Next - Else - 'Wscript.Echo "Saltear: " & arrFb2p_CFG(i) - End If - Next - Loop - End If -End if - If WScript.Arguments.Count = 0 Then + 'SIN PARÁMETROS nExitCode = 1 cErrMsg = "nDebug = " & nDebug If GetBit(nDebug, 1) Then @@ -99,11 +52,14 @@ If WScript.Arguments.Count = 0 Then End If MsgBox cErrMsg, 64, "No parameters - Debug Status" Else + 'CON PARÁMETROS cEXETool = Replace(WScript.ScriptFullName, WScript.ScriptName, "foxbin2prg.exe") nFile_Count = 0 oVFP9.DoCmd( "SET PROCEDURE TO '" & cEXETool & "'" ) oVFP9.DoCmd( "PUBLIC oFoxBin2prg" ) oVFP9.DoCmd( "oFoxBin2prg = CREATEOBJECT('c_foxbin2prg')" ) + '.o_FoxBin2Prg.EvaluarConfiguracion( tcDontShowProgress, tcDontShowErrors, tcNoTimestamps, tcDebug, tcRecompile, tcExtraBackupLevels ) + oVFP9.DoCmd( "oFoxBin2prg.EvaluarConfiguracion( '1', '1' )" ) oVFP9.DoCmd( "oFoxBin2prg.cargar_frm_avance()" ) For i = 0 To WScript.Arguments.Count-1 @@ -185,14 +141,13 @@ End Sub Private Sub evaluateFile( tcFile ) - For x = 1 TO UBound(aExtensions,1) - If aExtensions(x) = UCase( FileSystemObject.GetExtensionName( tcFile ) ) Then - nFile_Count = nFile_Count + 1 - ReDim Preserve aFiles(nFile_Count) - aFiles(nFile_Count) = tcFile - Exit For - End If - Next + lcExt = UCase( FileSystemObject.GetExtensionName( tcFile ) ) + oVFP9.SetVar "gc_Ext", lcExt + If oVFP9.Eval("oFoxBin2prg.TieneSoporte_Bin2Prg(gc_Ext)") Then + nFile_Count = nFile_Count + 1 + ReDim Preserve aFiles(nFile_Count) + aFiles(nFile_Count) = tcFile + End If End Sub diff --git a/Convert_VFP9_PRG_2_BIN.vbs b/Convert_VFP9_PRG_2_BIN.vbs index cd518eb..907974a 100644 --- a/Convert_VFP9_PRG_2_BIN.vbs +++ b/Convert_VFP9_PRG_2_BIN.vbs @@ -13,14 +13,13 @@ '--------------------------------------------------------------------------------------------------- Const ForReading = 1 Dim WSHShell, FileSystemObject -Dim oVFP9, nExitCode, cEXETool, cCMD, nDebug, cConvertType, aExtensions(8), foxbin2prg_cfg, aFiles(), nFile_Count +Dim oVFP9, nExitCode, cEXETool, cCMD, nDebug, lcExt, foxbin2prg_cfg, aFiles(), nFile_Count Dim i, x, str_cfg, aConf, cErrMsg, cFlagGenerateLog, cFlagDontShowErrMsg, cFlagJustShowCall, cFlagRecompile, cNoTimestamps Set WSHShell = WScript.CreateObject("WScript.Shell") Set FileSystemObject = WScript.CreateObject("Scripting.FileSystemObject") Set oVFP9 = CreateObject("VisualFoxPro.Application.9") foxbin2prg_cfg = Replace(WScript.ScriptFullName, WScript.ScriptName, "foxbin2prg.cfg") nExitCode = 0 -cConvertType = "PRG2BIN" '<<< This is the only difference between the 2 scripts '--------------------------------------------------------------------------------------------------- 'Cumulative Flags: ' 0=OFF @@ -32,54 +31,8 @@ cConvertType = "PRG2BIN" '<<< This is the only difference between the 2 scripts nDebug = 1+0+4+0+16 '--------------------------------------------------------------------------------------------------- -If cConvertType = "BIN2PRG" Then - aExtensions(1) = "PJX" - aExtensions(2) = "VCX" - aExtensions(3) = "SCX" - aExtensions(4) = "FRX" - aExtensions(5) = "LBX" - aExtensions(6) = "DBF" - aExtensions(7) = "DBC" - aExtensions(8) = "MNX" -Else - '-- Extensiones TXT por defecto - aExtensions(1) = "PJ2" - aExtensions(2) = "VC2" - aExtensions(3) = "SC2" - aExtensions(4) = "FR2" - aExtensions(5) = "LB2" - aExtensions(6) = "DB2" - aExtensions(7) = "DC2" - aExtensions(8) = "MN2" - - If FileSystemObject.FileExists( foxbin2prg_cfg ) Then - '-- Existe el archivo de configuración foxbin2prg.cgf - Set objTextFile = FileSystemObject.OpenTextFile( foxbin2prg_cfg, ForReading ) - - Do Until objTextFile.AtEndOfStream - strNextLine = objTextFile.Readline - arrFb2p_CFG = Split(strNextLine , ",") - For i = 0 to Ubound(arrFb2p_CFG) - If Left( arrFb2p_CFG(i), 10 ) = "extension:" Then - aConf = Split( arrFb2p_CFG(i), ":" ) 'Obtengo la separación de "extensión:" y "ext:equiv" - str_cfg = UCase( Trim( aConf(1) ) ) - aConf = Split( str_cfg, "=" ) 'Obtengo la separación de extensión y equivalencia (vc2=vca) - - For x = 1 TO 8 - If aExtensions(x) = aConf(0) Then - aExtensions(x) = UCase( aConf(1) ) - Exit For - End If - Next - Else - 'Wscript.Echo "Saltear: " & arrFb2p_CFG(i) - End If - Next - Loop - End If -End if - If WScript.Arguments.Count = 0 Then + 'SIN PARÁMETROS nExitCode = 1 cErrMsg = "nDebug = " & nDebug If GetBit(nDebug, 1) Then @@ -99,11 +52,14 @@ If WScript.Arguments.Count = 0 Then End If MsgBox cErrMsg, 64, "No parameters - Debug Status" Else + 'CON PARÁMETROS cEXETool = Replace(WScript.ScriptFullName, WScript.ScriptName, "foxbin2prg.exe") nFile_Count = 0 oVFP9.DoCmd( "SET PROCEDURE TO '" & cEXETool & "'" ) oVFP9.DoCmd( "PUBLIC oFoxBin2prg" ) oVFP9.DoCmd( "oFoxBin2prg = CREATEOBJECT('c_foxbin2prg')" ) + '.o_FoxBin2Prg.EvaluarConfiguracion( tcDontShowProgress, tcDontShowErrors, tcNoTimestamps, tcDebug, tcRecompile, tcExtraBackupLevels ) + oVFP9.DoCmd( "oFoxBin2prg.EvaluarConfiguracion( '1', '1' )" ) oVFP9.DoCmd( "oFoxBin2prg.cargar_frm_avance()" ) For i = 0 To WScript.Arguments.Count-1 @@ -185,14 +141,13 @@ End Sub Private Sub evaluateFile( tcFile ) - For x = 1 TO UBound(aExtensions,1) - If aExtensions(x) = UCase( FileSystemObject.GetExtensionName( tcFile ) ) Then - nFile_Count = nFile_Count + 1 - ReDim Preserve aFiles(nFile_Count) - aFiles(nFile_Count) = tcFile - Exit For - End If - Next + lcExt = UCase( FileSystemObject.GetExtensionName( tcFile ) ) + oVFP9.SetVar "gc_Ext", lcExt + If oVFP9.Eval("oFoxBin2prg.TieneSoporte_Prg2Bin(gc_Ext)") Then + nFile_Count = nFile_Count + 1 + ReDim Preserve aFiles(nFile_Count) + aFiles(nFile_Count) = tcFile + End If End Sub diff --git a/foxbin2prg.cfg b/foxbin2prg.cfg index 5e8f5a3..9436874 100644 --- a/foxbin2prg.cfg +++ b/foxbin2prg.cfg @@ -58,6 +58,7 @@ * EN: Uncomment to activate the new value, comment to deactivate and use the default * ES: Descomente para activar el nuevo valor, comente para desactivarlo y usar el predeterminado +* 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge) *--------------------------------------------------------------------------------------------------- *PJX_Conversion_Support: 2 *VCX_Conversion_Support: 2 diff --git a/foxbin2prg.pj2 b/foxbin2prg.pj2 index 5901394..ea33e3f 100644 --- a/foxbin2prg.pj2 +++ b/foxbin2prg.pj2 @@ -26,7 +26,7 @@ _LegalTrademark = "Open Source" _ProductName = " FOXBIN2PRG" _MajorVer = "1" _MinorVer = "19" -_Revision = " 282" +_Revision = " 286" _LanguageID = "1034" _AutoIncrement = "1" * @@ -50,8 +50,8 @@ MODIFY PROJECT 'foxbin2prg.pjx' NOWAIT NOSHOW NOPROJECTHOOK loProject = _VFP.Projects('foxbin2prg.pjx') WITH loProject.FILES - .ADD('config\config.fpw') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="1132857145" ID="1131721714" ObjRev="0" /> - .ADD('foxbin2prg.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="1147207961" ID="1130644423" ObjRev="544" /> + .ADD('config\config.fpw') && *< FileMetadata: Type="T" Cpid="1252" Timestamp="0" ID="0" ObjRev="0" /> + .ADD('foxbin2prg.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="0" ID="0" ObjRev="544" /> * .ITEM('__newproject.f2b').Remove() diff --git a/foxbin2prg.pjt b/foxbin2prg.pjt index ee1f00b4678d26fb1ce1b40cd9f7b701a426d0d1..6dfc31d76e1cd79d017a24fc29108a2e76334f8f 100644 GIT binary patch delta 15294 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 delta 14399 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 diff --git a/foxbin2prg.pjx b/foxbin2prg.pjx index f1d8fe4638e910d2aed95bcdb6233f9d98b73976..0a99a17f1a377c8dfdc6517d2504ea08e3aa5b87 100644 GIT binary patch delta 37 rcmZ3_vz}+eUKUmpV`EG6$%k0}gIGqElaH|~vKm^N7#d7|!|DtG=7S5P delta 37 qcmZ3_vz}+eUKUmZb4xSR$%k0}gIR`?kFhGU8k?CLSxkPz>I?wq2n(?Q diff --git a/foxbin2prg.prg b/foxbin2prg.prg index 93f80a1..c0a0253 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -74,6 +74,8 @@ * 09/02/2014 FDBOZZO v1.19.10 Parametrización soporte de tipo de conversión por archivo / ClearUniqueID * 13/02/2014 FDBOZZO v1.19.11 Optimizaciones WITH/ENDWITH (16%+velocidad) / Arreglo bug #IF anidados * 21/02/2014 FDBOZZO v1.19.12 Centralizar ZOrder controles en metadata de cabecera de clase para minimizar diferencias / También mover UniqueIDs y Timestamps a metadata +* 26/02/2014 FDBOZZO v1.19.13 Arreglo bug TimeStamp en archivo cfg / ExtraBackupLevels se puede desactivar / Optimizaciones / Casos FoxUnit +* 01/03/2014 FDBOZZO v1.19.14 Arreglo bug regresion cuando no se define ExtraBackupLevels no hace backups / Optimización carga cfg en batch * * *--------------------------------------------------------------------------------------------------- @@ -91,6 +93,7 @@ * 01/01/2014 Fidel Charny REPORTE BUG mnx v1.16: El menú no siempre respeta la posición original LOCATION y a veces se genera mal el MNX (se arregla en v1.17) * 05/01/2014 Fidel Charny REPORTE BUG mnx v1.17: Se genera cláusula "DO" o llamada Command cuando no Procedure ni Command que llamar // Diferencia de Case en NAME (se arregla en v1.18) * 20/02/2014 Ryan Harris PROPUESTA DE MEJORA v1.19.11: Centralizar los ZOrder de los controles en metadata de cabecera de la clase para minimizar diferencias +* 27/02/2014 BUG REGRESION v1.19.13: Si no se define ExtraBackupLevels no se generan backups (solucionado en v1.19.14) * * *--------------------------------------------------------------------------------------------------- @@ -411,6 +414,8 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM + [] ; + [] ; + [] ; + + [] ; + + [] ; + [] ; + [] ; + [] @@ -795,7 +800,8 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM .l_Recompile = (EMPTY(tcRecompile) OR TRANSFORM(tcRecompile) == '1' OR DIRECTORY(tcRecompile)) .l_NoTimestamps = NOT (TRANSFORM(tcNoTimestamps) == '0') .l_Debug = (TRANSFORM(tcDebug)=='1') - .n_ExtraBackupLevels = INT(VAL(TRANSFORM(tcExtraBackupLevels))) + tcExtraBackupLevels = EVL( tcExtraBackupLevels, TRANSFORM( .n_ExtraBackupLevels ) ) + .n_ExtraBackupLevels = INT( VAL( TRANSFORM(tcExtraBackupLevels) ) ) .writeLog( '---' ) .writeLog( '> l_ShowProgress: ' + TRANSFORM(.l_ShowProgress) ) @@ -813,13 +819,49 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM ENDPROC + PROCEDURE TieneSoporte_Bin2Prg + LPARAMETERS tcExt + LOCAL llTieneSoporte + WITH THIS AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + llTieneSoporte = ICASE( tcExt == 'PJX', .PJX_Conversion_Support >= 1 ; + , tcExt == 'VCX', .VCX_Conversion_Support >= 1 ; + , tcExt == 'SCX', .SCX_Conversion_Support >= 1 ; + , tcExt == 'FRX', .FRX_Conversion_Support >= 1 ; + , tcExt == 'LBX', .LBX_Conversion_Support >= 1 ; + , tcExt == 'MNX', .MNX_Conversion_Support >= 1 ; + , tcExt == 'DBF', .DBF_Conversion_Support >= 1 ; + , tcExt == 'DBC', .DBC_Conversion_Support >= 1 ; + , .F. ) + ENDWITH && THIS + RETURN llTieneSoporte + ENDPROC + + + PROCEDURE TieneSoporte_Prg2Bin + LPARAMETERS tcExt + LOCAL llTieneSoporte + WITH THIS AS c_foxbin2prg OF 'FOXBIN2PRG.PRG' + llTieneSoporte = ICASE( tcExt == .c_PJ2, .PJX_Conversion_Support >= 2 ; + , tcExt == .c_VC2, .VCX_Conversion_Support >= 2 ; + , tcExt == .c_SC2, .SCX_Conversion_Support >= 2 ; + , tcExt == .c_FR2, .FRX_Conversion_Support >= 2 ; + , tcExt == .c_LB2, .LBX_Conversion_Support >= 2 ; + , tcExt == .c_MN2, .MNX_Conversion_Support >= 2 ; + , tcExt == .c_DB2, .DBF_Conversion_Support >= 2 ; + , tcExt == .c_DC2, .DBC_Conversion_Support >= 2 ; + , .F. ) + ENDWITH && THIS + RETURN llTieneSoporte + ENDPROC + + PROCEDURE ejecutar *-------------------------------------------------------------------------------------------------------------- * PARÁMETROS: (!=Obligatorio | ?=Opcional) (@=Pasar por referencia | v=Pasar por valor) (IN/OUT) * tc_InputFile (!v IN ) Nombre del archivo de entrada * tcType (?v IN ) NO DISPONIBLE. Se mantiene por compatibilidad con SourceSafe * tcTextName (?v IN ) NO DISPONIBLE. Se mantiene por compatibilidad con SourceSafe - * tlGenText (?v IN ) NO DISPONIBLE. Se mantiene por compatibilidad con SourceSafe + * tlGenText (?v IN ) NO DISPONIBLE. Se mantiene por compatibilidad con SourceSafe * tcDontShowErrors (?v IN ) '1' para no mostrar mensajes de error (MESSAGEBOX) * tcDebug (?v IN ) '1' para habilitar modo debug (SOLO DESARROLLO) * tcDontShowProgress (?v IN ) '1' para inhabilitar la barra de progreso @@ -2230,11 +2272,11 @@ DEFINE CLASS c_conversor_base AS SESSION * tcPropName (!v IN ) Nombre de la propiedad *-------------------------------------------------------------------------------------------------------------- LPARAMETERS tcOperation, tcPropName - LOCAL lcPropName, lnPropType + LOCAL lcPropName lcPropName = tcPropName tcOperation = UPPER(EVL(tcOperation,'')) - lnPropType = 0 && System property + *-- Por defecto son todas System Properties DO CASE CASE tcOperation == 'GETNAME' lcPropName = SUBSTR(tcPropName,5) @@ -2486,11 +2528,9 @@ DEFINE CLASS c_conversor_base AS SESSION lcPropName = 'A595' + lcPropName CASE lcPropName == '_memberdata' lcPropName = 'A995' + lcPropName - CASE lcPropName == 'Name' - lnPropType = 1 && System "Name" property + CASE lcPropName == 'Name' && System "Name" property lcPropName = 'A999' + lcPropName - OTHERWISE - lnPropType = 2 && User property + OTHERWISE && User Property lcPropName = 'A998' + lcPropName ENDCASE @@ -9375,7 +9415,7 @@ DEFINE CLASS c_conversor_pjm_a_prg AS c_conversor_bin_a_prg FOR I = 1 TO ALINES( laLines, STREXTRACT( lcStrPJM, '[ProjectFiles]', '[EOF]' ), 4 ) ALINES( laProps, laLines(I) + ',', 1, ',' ) loReg = CREATEOBJECT("EMPTY") - ADDPROPERTY( loReg, 'ID', VAL( laProps(1) ) ) + ADDPROPERTY( loReg, 'ID', IIF( toFoxBin2Prg.l_ClearUniqueID, 0, VAL( laProps(1) ) ) ) ADDPROPERTY( loReg, 'TYPE', laProps(2) ) ADDPROPERTY( loReg, 'NAME', laProps(3) ) ADDPROPERTY( loReg, 'EXCLUDE', EVALUATE( laProps(4) ) ) From 452a75ea0ab724b95e71f2da59993b0e40190aaa Mon Sep 17 00:00:00 2001 From: fernando Date: Sat, 1 Mar 2014 17:54:34 +0100 Subject: [PATCH 3/3] Changeset: 181 fernando - 01/03/2014 17:29:13: v1.19.14 - Configurado ClearUniqueID = 1 por defecto en foxbin2prg.cfg para minimizar diferencias en el SCM --- foxbin2prg.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/foxbin2prg.cfg b/foxbin2prg.cfg index 9436874..1385bc8 100644 --- a/foxbin2prg.cfg +++ b/foxbin2prg.cfg @@ -53,7 +53,7 @@ *NoTimestamps: 1 *Debug: 1 *ExtraBackupLevels: 3 -*ClearUniqueID: 1 +ClearUniqueID: 1 * EN: Uncomment to activate the new value, comment to deactivate and use the default