diff --git a/foxbin2prg.cfg b/foxbin2prg.cfg index 965b35b..5e8f5a3 100644 --- a/foxbin2prg.cfg +++ b/foxbin2prg.cfg @@ -13,6 +13,7 @@ * NoTimestamps: 1 && Crear timespampt by default for minimize differences / Vaciar Timestamps por defecto para minimizar diferencias * Debug: 1 && Activate individual .Log by default / Activar .Log por defecto * ExtraBackupLevels: 0 && By default 1 BAK is created. With this you can make more .N.BAK / Por defecto 1 BAK es creado. Con esto puede crear más .N.BAK +* ClearUniqueID: 0 && EXPERIMENTAL! - 0=Keep UniqueID, 1=Clear Unique ID. Useful for Diff and Merge / 0=Mantener UniqueID, 1=Borrar Unique ID. Util para Diff y Merge * XXX_Conversion_Support: N && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge) * PJX_Conversion_Support: 2 && Default value * VCX_Conversion_Support: 2 && Default value @@ -52,6 +53,7 @@ *NoTimestamps: 1 *Debug: 1 *ExtraBackupLevels: 3 +*ClearUniqueID: 1 * EN: Uncomment to activate the new value, comment to deactivate and use the default diff --git a/foxbin2prg.pj2 b/foxbin2prg.pj2 index 5deb98e..a56a39c 100644 --- a/foxbin2prg.pj2 +++ b/foxbin2prg.pj2 @@ -26,7 +26,7 @@ _LegalTrademark = "Open Source" _ProductName = " FOXBIN2PRG" _MajorVer = "1" _MinorVer = "19" -_Revision = " 248" +_Revision = " 252" _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="1145663900" ID="1130644423" ObjRev="544" /> + .ADD('foxbin2prg.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="1145666170" ID="1130644423" ObjRev="544" /> * .ITEM('__newproject.f2b').Remove() diff --git a/foxbin2prg.pjt b/foxbin2prg.pjt index 37141f7..4c4aee7 100644 Binary files a/foxbin2prg.pjt and b/foxbin2prg.pjt differ diff --git a/foxbin2prg.pjx b/foxbin2prg.pjx index 55a7cad..6e35688 100644 Binary files a/foxbin2prg.pjx and b/foxbin2prg.pjx differ diff --git a/foxbin2prg.prg b/foxbin2prg.prg index 8ae9912..ecdf5a8 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -379,6 +379,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM + [] ; + [] ; + [] ; + + [] ; + [] ; + [] ; + [] ; @@ -426,6 +427,7 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM l_ShowProgress = .F. l_Recompile = .F. l_UseTimestamps = .F. + l_ClearUniqueID = .F. l_MethodSort_Enabled = .T. && Para Unit Testing se puede cambiar a .F. para buscar diferencias l_PropSort_Enabled = .T. && Para Unit Testing se puede cambiar a .F. para buscar diferencias l_ReportSort_Enabled = .T. && Para Unit Testing se puede cambiar a .F. para buscar diferencias @@ -713,23 +715,27 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM CASE LEFT( laConfig(I), 17 ) == LOWER('DontShowProgress:') tcDontShowProgress = ALLTRIM( SUBSTR( laConfig(I), 18 ) ) - THIS.writeLog( JUSTFNAME(lcConfigFile) + ' > tcDontShowProgress: ' + TRANSFORM(tcDontShowProgress) ) + THIS.writeLog( JUSTFNAME(lcConfigFile) + ' > tcDontShowProgress: ' + TRANSFORM(tcDontShowProgress) ) CASE LEFT( laConfig(I), 15 ) == LOWER('DontShowErrors:') tcDontShowErrors = ALLTRIM( SUBSTR( laConfig(I), 16 ) ) - THIS.writeLog( JUSTFNAME(lcConfigFile) + ' > tcDontShowErrors: ' + TRANSFORM(tcDontShowErrors) ) + THIS.writeLog( JUSTFNAME(lcConfigFile) + ' > tcDontShowErrors: ' + TRANSFORM(tcDontShowErrors) ) CASE LEFT( laConfig(I), 13 ) == LOWER('NoTimestamps:') tcNoTimestamps = ALLTRIM( SUBSTR( laConfig(I), 14 ) ) - THIS.writeLog( JUSTFNAME(lcConfigFile) + ' > tcNoTimestamps: ' + TRANSFORM(tcNoTimestamps) ) + THIS.writeLog( JUSTFNAME(lcConfigFile) + ' > tcNoTimestamps: ' + TRANSFORM(tcNoTimestamps) ) CASE LEFT( laConfig(I), 6 ) == LOWER('Debug:') tcDebug = ALLTRIM( SUBSTR( laConfig(I), 7 ) ) - THIS.writeLog( JUSTFNAME(lcConfigFile) + ' > tcDebug: ' + TRANSFORM(tcDebug) ) + THIS.writeLog( JUSTFNAME(lcConfigFile) + ' > tcDebug: ' + TRANSFORM(tcDebug) ) CASE LEFT( laConfig(I), 18 ) == LOWER('ExtraBackupLevels:') tcExtraBackupLevels = ALLTRIM( SUBSTR( laConfig(I), 19 ) ) - THIS.writeLog( JUSTFNAME(lcConfigFile) + ' > tcExtraBackupLevels: ' + TRANSFORM(tcExtraBackupLevels) ) + THIS.writeLog( JUSTFNAME(lcConfigFile) + ' > tcExtraBackupLevels: ' + TRANSFORM(tcExtraBackupLevels) ) + + CASE LEFT( laConfig(I), 14 ) == LOWER('ClearUniqueID:') + THIS.l_ClearUniqueID = ( ALLTRIM( SUBSTR( laConfig(I), 15 ) ) == '1' ) + THIS.writeLog( JUSTFNAME(lcConfigFile) + ' > ClearUniqueID: ' + TRANSFORM(THIS.l_ClearUniqueID) ) CASE LEFT( laConfig(I), 23 ) == LOWER('PJX_Conversion_Support:') THIS.PJX_Conversion_Support = INT( VAL( ALLTRIM( SUBSTR( laConfig(I), 24 ) ) ) ) @@ -775,12 +781,13 @@ DEFINE CLASS c_foxbin2prg AS CUSTOM THIS.n_ExtraBackupLevels = INT(VAL(TRANSFORM(tcExtraBackupLevels))) THIS.writeLog( '---' ) - THIS.writeLog( '> l_ShowProgress: ' + TRANSFORM(THIS.l_ShowProgress) ) - THIS.writeLog( '> l_ShowErrors: ' + TRANSFORM(THIS.l_ShowErrors) ) - THIS.writeLog( '> l_Recompile: ' + TRANSFORM(THIS.l_Recompile) + ' (' + EVL(tcRecompile,'') + ')' ) - THIS.writeLog( '> l_UseTimestamps: ' + TRANSFORM(THIS.l_UseTimestamps) ) - THIS.writeLog( '> l_Debug: ' + TRANSFORM(THIS.l_Debug) ) - THIS.writeLog( '> n_ExtraBackupLevels: ' + TRANSFORM(THIS.n_ExtraBackupLevels) ) + THIS.writeLog( '> l_ShowProgress: ' + TRANSFORM(THIS.l_ShowProgress) ) + THIS.writeLog( '> l_ShowErrors: ' + TRANSFORM(THIS.l_ShowErrors) ) + THIS.writeLog( '> l_Recompile: ' + TRANSFORM(THIS.l_Recompile) + ' (' + EVL(tcRecompile,'') + ')' ) + THIS.writeLog( '> l_UseTimestamps: ' + TRANSFORM(THIS.l_UseTimestamps) ) + THIS.writeLog( '> ClearUniqueID: ' + TRANSFORM(THIS.l_ClearUniqueID) ) + THIS.writeLog( '> l_Debug: ' + TRANSFORM(THIS.l_Debug) ) + THIS.writeLog( '> n_ExtraBackupLevels: ' + TRANSFORM(THIS.n_ExtraBackupLevels) ) ENDPROC @@ -3548,7 +3555,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base , USER) ; VALUES ; ( 'WINDOWS' ; - , toObjeto._UniqueID ; + , IIF( toFoxBin2Prg.l_ClearUniqueID, '', toObjeto._UniqueID ) ; , IIF( toFoxBin2Prg.l_UseTimestamps, toObjeto._TimeStamp, 0 ) ; , toObjeto._Class ; , toObjeto._ClassLib ; @@ -4641,7 +4648,7 @@ DEFINE CLASS c_conversor_prg_a_vcx AS c_conversor_prg_a_bin , USER) ; VALUES ; ( 'WINDOWS' ; - , loClase._UniqueID ; + , IIF( toFoxBin2Prg.l_ClearUniqueID, '', loClase._UniqueID ) ; , IIF( toFoxBin2Prg.l_UseTimestamps, loClase._TimeStamp, 0 ) ; , loClase._Class ; , loClase._ClassLoc ; @@ -4932,7 +4939,7 @@ DEFINE CLASS c_conversor_prg_a_scx AS c_conversor_prg_a_bin , USER) ; VALUES ; ( 'WINDOWS' ; - , loClase._UniqueID ; + , IIF( toFoxBin2Prg.l_ClearUniqueID, '', loClase._UniqueID ) ; , IIF( toFoxBin2Prg.l_UseTimestamps, loClase._TimeStamp, 0 ) ; , loClase._Class ; , loClase._ClassLoc ; @@ -5183,7 +5190,7 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin , loFile._Comments ; , .T. ; , loFile._CPID ; - , loFile._ID ; + , IIF( toFoxBin2Prg.l_ClearUniqueID, 0, loFile._ID ) ; , IIF( toFoxBin2Prg.l_UseTimestamps, loFile._TimeStamp, 0 ) ; , loFile._ObjRev ; , UPPER(JUSTSTEM(loFile._Name)) ) @@ -5850,6 +5857,9 @@ DEFINE CLASS c_conversor_prg_a_frx AS c_conversor_prg_a_bin IF NOT toFoxBin2Prg.l_UseTimestamps loReg.TIMESTAMP = 0 ENDIF + IF toFoxBin2Prg.l_ClearUniqueID + loReg.UNIQUEID = '' + ENDIF *-- Ajuste de los tipos de dato FOR I = 1 TO AMEMBERS(laProps, loReg, 0) @@ -7750,7 +7760,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base Baseclass="<>" Timestamp="<>" Scale="<>" - Uniqueid="<>" + Uniqueid="<>" ENDTEXT IF NOT EMPTY(toRegClass.OLE2) @@ -7821,7 +7831,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base ENDTEXT TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 - <<>> platform="WINDOWS " uniqueid="<>" timestamp="<>" objtype="<>" <<>> + <<>> platform="WINDOWS " uniqueid="<>" timestamp="<>" objtype="<>" <<>> ENDTEXT TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2 @@ -7933,7 +7943,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base ENDTEXT TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 - <<>> platform="WINDOWS " uniqueid="<>" timestamp="<>" objtype="<>" <<>> + <<>> platform="WINDOWS " uniqueid="<>" timestamp="<>" objtype="<>" <<>> ENDTEXT TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2 @@ -8045,7 +8055,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base ENDTEXT TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 - <<>> platform="WINDOWS " uniqueid="<>" timestamp="<>" objtype="<>" <<>> + <<>> platform="WINDOWS " uniqueid="<>" timestamp="<>" objtype="<>" <<>> ENDTEXT TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2 @@ -8166,6 +8176,9 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base IF NOT toFoxBin2Prg.l_UseTimestamps loReg.TIMESTAMP = 0 ENDIF + IF toFoxBin2Prg.l_ClearUniqueID + loReg.UNIQUEID = '' + ENDIF lcOLEChecksum = SYS(2007, loReg.OLE, 0, 1) llOleExistente = .F. @@ -8324,6 +8337,9 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg IF NOT toFoxBin2Prg.l_UseTimestamps loRegClass.TIMESTAMP = 0 ENDIF + IF toFoxBin2Prg.l_ClearUniqueID + loRegClass.UNIQUEID = '' + ENDIF lcObjName = ALLTRIM(loRegClass.OBJNAME) @@ -8352,6 +8368,9 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg IF NOT toFoxBin2Prg.l_UseTimestamps loRegObj.TIMESTAMP = 0 ENDIF + IF toFoxBin2Prg.l_ClearUniqueID + loRegObj.UNIQUEID = '' + ENDIF ADDPROPERTY( loRegObj, '_ZOrder', RECNO()*100 ) && Para permitir insertar objetos manualmente entre medias al integrar cambios THIS.write_ADD_OBJECTS_WithProperties( @loRegObj ) @@ -8383,6 +8402,9 @@ DEFINE CLASS c_conversor_vcx_a_prg AS c_conversor_bin_a_prg IF NOT toFoxBin2Prg.l_UseTimestamps loRegObj.TIMESTAMP = 0 ENDIF + IF toFoxBin2Prg.l_ClearUniqueID + loRegObj.UNIQUEID = '' + ENDIF THIS.get_ADD_OBJECT_METHODS( @loRegObj, @loRegClass, @lcMethods ) ENDSCAN @@ -8529,6 +8551,9 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg IF NOT toFoxBin2Prg.l_UseTimestamps loRegObj.TIMESTAMP = 0 ENDIF + IF toFoxBin2Prg.l_ClearUniqueID + loRegObj.UNIQUEID = '' + ENDIF ADDPROPERTY( loRegObj, '_ZOrder', RECNO()*100 ) && Para permitir insertar objetos manualmente entre medias al integrar cambios THIS.write_ADD_OBJECTS_WithProperties( @loRegObj ) @@ -8562,6 +8587,9 @@ DEFINE CLASS c_conversor_scx_a_prg AS c_conversor_bin_a_prg IF NOT toFoxBin2Prg.l_UseTimestamps loRegObj.TIMESTAMP = 0 ENDIF + IF toFoxBin2Prg.l_ClearUniqueID + loRegObj.UNIQUEID = '' + ENDIF THIS.get_ADD_OBJECT_METHODS( @loRegObj, @loRegClass, @lcMethods ) ENDSCAN @@ -8653,6 +8681,9 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg IF NOT toFoxBin2Prg.l_UseTimestamps loReg.TIMESTAMP = 0 ENDIF + IF toFoxBin2Prg.l_ClearUniqueID + loReg.ID = 0 + ENDIF loProject._HomeDir = ['] + ALLTRIM( THIS.get_ValueFromNullTerminatedValue( loReg.HOMEDIR ) ) + ['] @@ -8694,6 +8725,9 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg IF NOT toFoxBin2Prg.l_UseTimestamps loReg.TIMESTAMP = 0 ENDIF + IF toFoxBin2Prg.l_ClearUniqueID + loReg.ID = 0 + ENDIF loReg.NAME = LOWER( ALLTRIM( THIS.get_ValueFromNullTerminatedValue( loReg.NAME ) ) ) loReg.COMMENTS = ALLTRIM( THIS.get_ValueFromNullTerminatedValue( loReg.COMMENTS ) ) @@ -9352,6 +9386,9 @@ DEFINE CLASS c_conversor_frx_a_prg AS c_conversor_bin_a_prg IF NOT toFoxBin2Prg.l_UseTimestamps loRegCab.TIMESTAMP = 0 ENDIF + IF toFoxBin2Prg.l_ClearUniqueID + loRegCab.UNIQUEID = '' + ENDIF ENDIF *-- Dataenvironment @@ -9362,6 +9399,9 @@ DEFINE CLASS c_conversor_frx_a_prg AS c_conversor_bin_a_prg IF NOT toFoxBin2Prg.l_UseTimestamps loRegDataEnv.TIMESTAMP = 0 ENDIF + IF toFoxBin2Prg.l_ClearUniqueID + loRegDataEnv.UNIQUEID = '' + ENDIF ENDIF *-- Cursor1 (¿puede haber más de 1 cursor?) @@ -9372,6 +9412,9 @@ DEFINE CLASS c_conversor_frx_a_prg AS c_conversor_bin_a_prg IF NOT toFoxBin2Prg.l_UseTimestamps loRegCur.TIMESTAMP = 0 ENDIF + IF toFoxBin2Prg.l_ClearUniqueID + loRegCur.UNIQUEID = '' + ENDIF ENDIF IF THIS.l_ReportSort_Enabled @@ -9407,6 +9450,9 @@ DEFINE CLASS c_conversor_frx_a_prg AS c_conversor_bin_a_prg IF NOT toFoxBin2Prg.l_UseTimestamps loRegObj.TIMESTAMP = 0 ENDIF + IF toFoxBin2Prg.l_ClearUniqueID + loRegObj.UNIQUEID = '' + ENDIF THIS.write_DETALLE_REPORTE( @loRegObj ) ENDSCAN