Changeset: 682 - Bug Fix pjx/pj2: Si se usa fin de linea (CR+LF) en los datos de las propiedades "Build" del pjx, se genera un pj2 corrupto

This commit is contained in:
fdbozzo
2015-03-06 17:57:30 +01:00
parent e8bda85020
commit b724b71e02

View File

@@ -132,6 +132,7 @@
* 13/01/2015 FDBOZZO v1.19.41 Bug Fix scx/vcx: Detecci<63>n err<72>nea de estructuras PROCEDURE/ENDPROC cuando se usan como par<61>metros en LPARAMETERS (Ryan Harris)
* 13/01/2015 FDBOZZO v1.19.41 Bug Fix db2: Detecci<63>n err<72>nea de tabla inv<6E>lida cuando el tama<6D>o es inferior a 328 bytes. L<>mite m<>nimo cambiado a 65 bytes.
* 20/01/2015 FDBOZZO v1.19.42 Mejora: Validaci<63>n de versi<73>n de Visual FoxPro, para evitar problemas ajenos a FoxBin2Prg
* 06/03/2015 FDBOZZO v1.19.42 Bug Fix pjx: Permitir usar fin de linea (CR/LF) en los atributos de versi<73>n del PJX
* </HISTORIAL DE CAMBIOS Y NOTAS IMPORTANTES>
*
*---------------------------------------------------------------------------------------------------
@@ -4474,6 +4475,7 @@ DEFINE CLASS C_CONVERSOR_BASE AS SESSION
ELSE
lcValue = CHRTRAN( LEFT( tcNullTerminatedValue, lnNullPos - 1 ), ['], ["] )
ENDIF
lcValue = THIS.encode_SpecialCodes_1_31(lcValue)
RELEASE tcNullTerminatedValue, lnNullPos
RETURN lcValue
ENDPROC
@@ -12787,6 +12789,10 @@ ENDDEFINE
DEFINE CLASS c_conversor_pjm_a_prg AS c_conversor_bin_a_prg
_MEMBERDATA = [<VFPData>] ;
+ [<memberdata name="strextract_cr" display="strExtract_CR"/>] ;
+ [</VFPData>]
#IF .F.
LOCAL THIS AS c_conversor_pjm_a_prg OF 'FOXBIN2PRG.PRG'
#ENDIF
@@ -13161,6 +13167,15 @@ DEFINE CLASS c_conversor_pjm_a_prg AS c_conversor_bin_a_prg
RETURN
ENDPROC
PROCEDURE strExtract_CR
LPARAMETERS tcText
tcText = THIS.decode_SpecialCodes_1_31( STREXTRACT( tcText, 'Comments=', CR_LF ) )
RETURN tcText
ENDPROC
ENDDEFINE
@@ -14307,6 +14322,8 @@ DEFINE CLASS CL_PROJECT AS CL_COL_BASE
+ [<memberdata name="_revision" display="_Revision"/>] ;
+ [<memberdata name="_languageid" display="_LanguageID"/>] ;
+ [<memberdata name="_autoincrement" display="_AutoIncrement"/>] ;
+ [<memberdata name="decode_specialcodes_1_31" display="decode_SpecialCodes_1_31"/>] ;
+ [<memberdata name="encode_specialcodes_1_31" display="encode_SpecialCodes_1_31"/>] ;
+ [<memberdata name="getformatteddeviceinfotext" display="getFormattedDeviceInfoText"/>] ;
+ [<memberdata name="parsedeviceinfo" display="parseDeviceInfo"/>] ;
+ [<memberdata name="parsenullterminatedvalue" display="parseNullTerminatedValue"/>] ;
@@ -14366,6 +14383,34 @@ DEFINE CLASS CL_PROJECT AS CL_COL_BASE
PROCEDURE decode_SpecialCodes_1_31
*---------------------------------------------------------------------------------------------------
* PAR<41>METROS: (v=Pasar por valor | @=Pasar por referencia) (!=Obligatorio | ?=Opcional) (IN/OUT)
* tcText (!@ IN ) Decodifica los primeros 31 caracteres ASCII de {nCode} a CHR(nCode)
*---------------------------------------------------------------------------------------------------
LPARAMETERS tcText
LOCAL I
FOR I = 0 TO 31
tcText = STRTRAN( tcText, '{' + TRANSFORM(I) + '}', CHR(I) )
ENDFOR
RELEASE I
RETURN tcText
ENDPROC
PROCEDURE encode_SpecialCodes_1_31
LPARAMETERS tcText
LOCAL I
FOR I = 0 TO 31
tcText = STRTRAN( tcText, CHR(I), '{' + TRANSFORM(I) + '}' )
ENDFOR
RELEASE I
RETURN tcText
ENDPROC
PROCEDURE setParsedProjInfoLine
LPARAMETERS tcProjInfoLine
THIS.setParsedInfoLine( THIS, tcProjInfoLine )
@@ -14375,14 +14420,31 @@ DEFINE CLASS CL_PROJECT AS CL_COL_BASE
PROCEDURE setParsedInfoLine
LPARAMETERS toObject, tcInfoLine
LOCAL lcAsignacion, lcCurDir
lcCurDir = ADDBS(THIS._HomeDir)
IF LEFT(tcInfoLine,1) == '.'
lcAsignacion = 'toObject' + tcInfoLine
ELSE
lcAsignacion = 'toObject.' + tcInfoLine
ENDIF
&lcAsignacion.
LOCAL lcAsignacion, lcCurDir, lcValue, loEx as Exception
TRY
lcCurDir = ADDBS(THIS._HomeDir)
IF LEFT(tcInfoLine,1) == '.'
lcAsignacion = 'toObject' + tcInfoLine
ELSE
lcAsignacion = 'toObject.' + tcInfoLine
ENDIF
lcValue = GETWORDNUM(lcAsignacion, 2, '=')
IF TYPE(lcValue) = "C" THEN
lcAsignacion = GETWORDNUM(lcAsignacion, 1, '=') + '= THIS.encode_SpecialCodes_1_31(' + lcValue + ')'
ENDIF
&lcAsignacion.
CATCH TO loEx
loEx.UserValue = loEx.UserValue + 'lcAsignacion = [' + TRANSFORM(lcAsignacion) + ']' + CR_LF
THROW
ENDTRY
RETURN
ENDPROC
@@ -14397,6 +14459,7 @@ DEFINE CLASS CL_PROJECT AS CL_COL_BASE
ELSE
lcValue = CHRTRAN( LEFT( lcStr, MIN(tnLen, lnNullPos - 1 ) ), ['], ["] )
ENDIF
lcValue = THIS.encode_SpecialCodes_1_31(lcValue)
RETURN lcValue
ENDPROC
@@ -19097,6 +19160,8 @@ DEFINE CLASS CL_PROJ_SRV_HEAD AS CL_CUS_BASE
+ [<memberdata name="_typelib" display="_TypeLib"/>] ;
+ [<memberdata name="_typelibdesc" display="_TypeLibDesc"/>] ;
+ [<memberdata name="add_server" display="add_Server"/>] ;
+ [<memberdata name="decode_specialcodes_1_31" display="decode_SpecialCodes_1_31"/>] ;
+ [<memberdata name="encode_specialcodes_1_31" display="encode_SpecialCodes_1_31"/>] ;
+ [<memberdata name="getdatafrompair_lendata_structure" display="getDataFromPair_LenData_Structure"/>] ;
+ [<memberdata name="getformattedservertext" display="getFormattedServerText"/>] ;
+ [<memberdata name="getrowserverinfo" display="getRowServerInfo"/>] ;
@@ -19120,6 +19185,34 @@ DEFINE CLASS CL_PROJ_SRV_HEAD AS CL_CUS_BASE
PROCEDURE decode_SpecialCodes_1_31
*---------------------------------------------------------------------------------------------------
* PAR<41>METROS: (v=Pasar por valor | @=Pasar por referencia) (!=Obligatorio | ?=Opcional) (IN/OUT)
* tcText (!@ IN ) Decodifica los primeros 31 caracteres ASCII de {nCode} a CHR(nCode)
*---------------------------------------------------------------------------------------------------
LPARAMETERS tcText
LOCAL I
FOR I = 0 TO 31
tcText = STRTRAN( tcText, '{' + TRANSFORM(I) + '}', CHR(I) )
ENDFOR
RELEASE I
RETURN tcText
ENDPROC
PROCEDURE encode_SpecialCodes_1_31
LPARAMETERS tcText
LOCAL I
FOR I = 0 TO 31
tcText = STRTRAN( tcText, CHR(I), '{' + TRANSFORM(I) + '}' )
ENDFOR
RELEASE I
RETURN tcText
ENDPROC
PROCEDURE setParsedHeadInfoLine
LPARAMETERS tcHeadInfoLine
THIS.setParsedInfoLine( THIS, tcHeadInfoLine )
@@ -19129,13 +19222,30 @@ DEFINE CLASS CL_PROJ_SRV_HEAD AS CL_CUS_BASE
PROCEDURE setParsedInfoLine
LPARAMETERS toObject, tcInfoLine
LOCAL lcAsignacion, lcCurDir
IF LEFT(tcInfoLine,1) == '.'
lcAsignacion = 'toObject' + tcInfoLine
ELSE
lcAsignacion = 'toObject.' + tcInfoLine
ENDIF
&lcAsignacion.
LOCAL lcAsignacion, lcCurDir, lcValue, loEx as Exception
TRY
IF LEFT(tcInfoLine,1) == '.'
lcAsignacion = 'toObject' + tcInfoLine
ELSE
lcAsignacion = 'toObject.' + tcInfoLine
ENDIF
lcValue = GETWORDNUM(lcAsignacion, 2, '=')
IF TYPE(lcValue) = "C" THEN
lcAsignacion = GETWORDNUM(lcAsignacion, 1, '=') + '= THIS.encode_SpecialCodes_1_31(' + GETWORDNUM(lcAsignacion, 2, '=') + ')'
ENDIF
&lcAsignacion.
CATCH TO loEx
loEx.UserValue = loEx.UserValue + 'lcAsignacion = [' + TRANSFORM(lcAsignacion) + ']' + CR_LF
THROW
ENDTRY
RETURN
ENDPROC