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