diff --git a/foxbin2prg.pj2 b/foxbin2prg.pj2 index e448b63..93c6094 100644 --- a/foxbin2prg.pj2 +++ b/foxbin2prg.pj2 @@ -2,7 +2,7 @@ * (ES) AUTOGENERADO - ¡¡ATENCIÓN!! - ¡¡NO PENSADO PARA EJECUTAR!! USAR SOLAMENTE PARA INTEGRAR CAMBIOS Y ALMACENAR CON HERRAMIENTAS SCM!! * (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! *-------------------------------------------------------------------------------------------------------------------------------------------------------- -*< FOXBIN2PRG: Version="1.16" SourceFile="C:\DESA\foxbin2prg\foxbin2prg.pjx" Generated="2013/12/26 19:21:19" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +*< FOXBIN2PRG: Version="1.16" SourceFile="C:\DESA\foxbin2prg\foxbin2prg.pjx" Generated="2013/12/26 21:00:42" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) * LPARAMETERS tcDir @@ -26,21 +26,23 @@ _LegalTrademark = "Open Source" _ProductName = " FOXBIN2PRG" _MajorVer = "1" _MinorVer = "16" -_Revision = " 127" +_Revision = " 130" _LanguageID = "1034" _AutoIncrement = "1" * * -FOR EACH loProj IN _VFP.Projects FOXOBJECT - loProj.Close() +*<.HomeDir = 'c:\desa\foxbin2prg' /> + +FOR EACH loProject IN _VFP.Projects FOXOBJECT + loProject.Close() ENDFOR STRTOFILE( '', '__newproject.f2b' ) BUILD PROJECT foxbin2prg.pjx FROM '__newproject.f2b' -FOR EACH loProj IN _VFP.Projects FOXOBJECT - loProj.Close() +FOR EACH loProject IN _VFP.Projects FOXOBJECT + loProject.Close() ENDFOR MODIFY PROJECT 'foxbin2prg.pjx' NOWAIT NOSHOW NOPROJECTHOOK @@ -49,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="1134205420" ID="1130644423" ObjRev="544" /> + .ADD('foxbin2prg.prg') && *< FileMetadata: Type="P" Cpid="1252" Timestamp="1134208850" ID="1130644423" ObjRev="544" /> * .ITEM('__newproject.f2b').Remove() diff --git a/foxbin2prg.pjt b/foxbin2prg.pjt index f5e1a50..ca98681 100644 Binary files a/foxbin2prg.pjt and b/foxbin2prg.pjt differ diff --git a/foxbin2prg.pjx b/foxbin2prg.pjx index 9fefe16..396ec49 100644 Binary files a/foxbin2prg.pjx and b/foxbin2prg.pjx differ diff --git a/foxbin2prg.prg b/foxbin2prg.prg index d56f24b..72ada43 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -913,6 +913,7 @@ DEFINE CLASS c_conversor_base AS SESSION + [] ; + [] ; + [] ; + + [] ; + [] ; + [] ; + [] ; @@ -1586,6 +1587,20 @@ DEFINE CLASS c_conversor_base AS SESSION ENDPROC + ************************************************************************************************ + PROCEDURE get_ValueFromNullTerminatedValue + LPARAMETERS tcNullTerminatedValue + LOCAL lcValue, lnNullPos + lnNullPos = AT(CHR(0), tcNullTerminatedValue ) + IF lnNullPos = 0 + lcValue = CHRTRAN( tcNullTerminatedValue, ['], ["] ) + ELSE + lcValue = CHRTRAN( LEFT( tcNullTerminatedValue, lnNullPos - 1 ), ['], ["] ) + ENDIF + RETURN lcValue + ENDPROC + + ******************************************************************************************************************* PROCEDURE identificarBloquesDeCodigo LPARAMETERS taCodeLines, tnCodeLines, taBloquesExclusion, tnBloquesExclusion, toModulo @@ -4625,13 +4640,15 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin , loServerHead AS CL_PROJ_SRV_HEAD OF 'FOXBIN2PRG.PRG' ; , loFile AS CL_PROJ_FILE OF 'FOXBIN2PRG.PRG' + toProject._HomeDir = CHRTRAN( toProject._HomeDir, ['], [] ) + *-- Creo solo el registro de cabecera del proyecto THIS.createProject_RecordHeader( toProject ) lcMainProg = '' IF NOT EMPTY(toProject._MainProg) - lcMainProg = LOWER( SYS(2014, toProject._MainProg, ADDBS(JUSTPATH(toProject._HomeDir)) ) ) + lcMainProg = LOWER( SYS(2014, toProject._MainProg, ADDBS(toProject._HomeDir) ) ) ENDIF *-- Si hay ProjectHook de proyecto, lo inserto @@ -4742,7 +4759,7 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin IF tnCodeLines > 1 toProject = CREATEOBJECT('CL_PROJECT') - toProject._HomeDir = ADDBS(JUSTPATH(THIS.c_OutputFile)) + *toProject._HomeDir = ADDBS(JUSTPATH(THIS.c_OutputFile)) WITH THIS FOR I = 1 TO tnCodeLines @@ -4853,6 +4870,10 @@ DEFINE CLASS c_conversor_prg_a_pjx AS c_conversor_prg_a_bin loFile._ObjRev = .get_ValueByName_FromListNamesWithValues( 'ObjRev', 'I', @laPropsAndValues ) toProject.ADD( loFile, loFile._Name ) + + CASE UPPER( LEFT( tcLine, 10 ) ) == UPPER( '*<.HomeDir' ) + toProject._HomeDir = STREXTRACT( tcLine, "'", "'" ) + ENDCASE ENDFOR ENDWITH && THIS @@ -8048,7 +8069,8 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg *-- Obtengo los archivos del proyecto loProject = CREATEOBJECT('CL_PROJECT') SCATTER MEMO NAME loReg - loProject._HomeDir = ALLTRIM( loReg.HOMEDIR ) + loProject._HomeDir = ['] + ALLTRIM( THIS.get_ValueFromNullTerminatedValue( loReg.HOMEDIR ) ) + ['] + loProject._ServerInfo = loReg.RESERVED2 loProject._Debug = loReg.DEBUG loProject._Encrypted = loReg.ENCRYPT @@ -8059,7 +8081,7 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg LOCATE FOR MAINPROG IF FOUND() - loProject._MainProg = LOWER( ALLTRIM( NAME, 0, ' ', CHR(0) ) ) + loProject._MainProg = LOWER( ALLTRIM( THIS.get_ValueFromNullTerminatedValue( NAME ) ) ) ENDIF @@ -8067,8 +8089,8 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg LOCATE FOR TYPE == 'W' IF FOUND() - loProject._ProjectHookLibrary = LOWER( ALLTRIM( NAME, 0, ' ', CHR(0) ) ) - loProject._ProjectHookClass = LOWER( ALLTRIM( RESERVED1, 0, ' ', CHR(0) ) ) + loProject._ProjectHookLibrary = LOWER( ALLTRIM( THIS.get_ValueFromNullTerminatedValue( NAME ) ) ) + loProject._ProjectHookClass = LOWER( ALLTRIM( THIS.get_ValueFromNullTerminatedValue( RESERVED1 ) ) ) ENDIF @@ -8076,15 +8098,15 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg LOCATE FOR TYPE == 'i' IF FOUND() - loProject._Icon = LOWER( ALLTRIM( NAME, 0, ' ', CHR(0) ) ) + loProject._Icon = LOWER( ALLTRIM( THIS.get_ValueFromNullTerminatedValue( NAME ) ) ) ENDIF *-- Escaneo el proyecto SCAN ALL FOR NOT INLIST(TYPE, 'H','W','i' ) SCATTER FIELDS NAME,TYPE,EXCLUDE,COMMENTS,CPID,TIMESTAMP,ID,OBJREV MEMO NAME loReg - loReg.NAME = LOWER( ALLTRIM( loReg.NAME, 0, ' ', CHR(0) ) ) - loReg.COMMENTS = CHRTRAN( ALLTRIM( loReg.COMMENTS, 0, ' ', CHR(0) ), ['], ["] ) + loReg.NAME = LOWER( ALLTRIM( THIS.get_ValueFromNullTerminatedValue( loReg.NAME ) ) ) + loReg.COMMENTS = ALLTRIM( THIS.get_ValueFromNullTerminatedValue( loReg.COMMENTS ) ) *-- TIP: Si el "Name" del objeto está vacío, lo salteo IF EMPTY(loReg.NAME) @@ -8128,8 +8150,10 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg *-- Generación del proyecto TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 <> - FOR EACH loProj IN _VFP.Projects FOXOBJECT - <<>> loProj.Close() + <<>>*<.HomeDir = <> /> + <<>> + FOR EACH loProject IN _VFP.Projects FOXOBJECT + <<>> loProject.Close() ENDFOR <<>> STRTOFILE( '', '__newproject.f2b' ) @@ -8139,8 +8163,8 @@ DEFINE CLASS c_conversor_pjx_a_prg AS c_conversor_bin_a_prg *-- Abro el proyecto TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2 - FOR EACH loProj IN _VFP.Projects FOXOBJECT - <<>> loProj.Close() + FOR EACH loProject IN _VFP.Projects FOXOBJECT + <<>> loProject.Close() ENDFOR <<>> MODIFY PROJECT '<>' NOWAIT NOSHOW NOPROJECTHOOK @@ -9273,7 +9297,8 @@ DEFINE CLASS CL_PROJECT AS CL_COL_BASE PROCEDURE setParsedInfoLine LPARAMETERS toObject, tcInfoLine LOCAL lcAsignacion, lcCurDir - lcCurDir = ADDBS(JUSTPATH(THIS._SourceFile)) + *lcCurDir = ADDBS(JUSTPATH(THIS._SourceFile)) + lcCurDir = ADDBS(THIS._HomeDir) IF LEFT(tcInfoLine,1) == '.' lcAsignacion = 'toObject' + tcInfoLine ELSE