Changeset: 195 fdbozzo - 08/03/2014 03:40:00:
- Arreglo bug scx/vcx: Si la clase tiene un comentario multilínea, el binario generado se puede corromper (Tested on: Ffc\_frxcursor.vcx)
This commit is contained in:
135
foxbin2prg.prg
135
foxbin2prg.prg
@@ -77,7 +77,7 @@
|
|||||||
* 26/02/2014 FDBOZZO v1.19.13 Arreglo bug TimeStamp en archivo cfg / ExtraBackupLevels se puede desactivar / Optimizaciones / Casos FoxUnit
|
* 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<63>n carga cfg en batch
|
* 01/03/2014 FDBOZZO v1.19.14 Arreglo bug regresion cuando no se define ExtraBackupLevels no hace backups / Optimizaci<63>n carga cfg en batch
|
||||||
* 04/03/2014 FDBOZZO v1.19.15 Arreglo bugs: OLE TX2 legacy / NoTimestamp=0 / DBFs backlink
|
* 04/03/2014 FDBOZZO v1.19.15 Arreglo bugs: OLE TX2 legacy / NoTimestamp=0 / DBFs backlink
|
||||||
* 07/03/2014 FDBOZZO v1.19.16
|
* 07/03/2014 FDBOZZO v1.19.16 Arreglo bugs: Propiedades y m<>todos Hidden/Protected que no se generan /// Crash m<>todos vac<61>os
|
||||||
* </HISTORIAL DE CAMBIOS Y NOTAS IMPORTANTES>
|
* </HISTORIAL DE CAMBIOS Y NOTAS IMPORTANTES>
|
||||||
*
|
*
|
||||||
*---------------------------------------------------------------------------------------------------
|
*---------------------------------------------------------------------------------------------------
|
||||||
@@ -97,7 +97,7 @@
|
|||||||
* 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
|
* 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
|
||||||
* 23/02/2014 Ryan Harris BUG cfg v1.19.12: Si se define NoTimestamp en FoxBin2Prg.cfg, se toma el valor opuesto (solucionado en v1.19.13)
|
* 23/02/2014 Ryan Harris BUG cfg v1.19.12: Si se define NoTimestamp en FoxBin2Prg.cfg, se toma el valor opuesto (solucionado en v1.19.13)
|
||||||
* 27/02/2014 BUG REGRESION v1.19.13: Si no se define ExtraBackupLevels no se generan backups (solucionado en v1.19.14)
|
* 27/02/2014 BUG REGRESION v1.19.13: Si no se define ExtraBackupLevels no se generan backups (solucionado en v1.19.14)
|
||||||
* 06/03/2014 Ryan Harris REPORTE BUG vcx/scx v1.19.15: Algunas propiedades no mantienen su visibilidad Hidden/Protected
|
* 06/03/2014 Ryan Harris REPORTE BUG vcx/scx v1.19.15: Algunas propiedades no mantienen su visibilidad Hidden/Protected // Orden de properties defTop,defLeft,etc
|
||||||
* </TESTEO Y REPORTE DE BUGS (AGRADECIMIENTOS)>
|
* </TESTEO Y REPORTE DE BUGS (AGRADECIMIENTOS)>
|
||||||
*
|
*
|
||||||
*---------------------------------------------------------------------------------------------------
|
*---------------------------------------------------------------------------------------------------
|
||||||
@@ -131,6 +131,10 @@ LPARAMETERS tc_InputFile, tcType, tcTextName, tlGenText, tcDontShowErrors, tcDeb
|
|||||||
*-- NO modificar! / Do NOT change!
|
*-- NO modificar! / Do NOT change!
|
||||||
#DEFINE C_CMT_I '*--'
|
#DEFINE C_CMT_I '*--'
|
||||||
#DEFINE C_CMT_F '--*'
|
#DEFINE C_CMT_F '--*'
|
||||||
|
#DEFINE C_CLASSCOMMENTS_I '*<ClassComment>'
|
||||||
|
#DEFINE C_CLASSCOMMENTS_F '*</ClassComment>'
|
||||||
|
#DEFINE C_LEN_CLASSCOMMENTS_I LEN(C_CLASSCOMMENTS_I)
|
||||||
|
#DEFINE C_LEN_CLASSCOMMENTS_F LEN(C_CLASSCOMMENTS_F)
|
||||||
#DEFINE C_CLASSDATA_I '*< CLASSDATA:'
|
#DEFINE C_CLASSDATA_I '*< CLASSDATA:'
|
||||||
#DEFINE C_CLASSDATA_F '/>'
|
#DEFINE C_CLASSDATA_F '/>'
|
||||||
#DEFINE C_LEN_CLASSDATA_I LEN(C_CLASSDATA_I)
|
#DEFINE C_LEN_CLASSDATA_I LEN(C_CLASSDATA_I)
|
||||||
@@ -2314,6 +2318,14 @@ DEFINE CLASS c_conversor_base AS SESSION
|
|||||||
lcPropName = 'A040' + lcPropName
|
lcPropName = 'A040' + lcPropName
|
||||||
CASE lcPropName == 'Tag'
|
CASE lcPropName == 'Tag'
|
||||||
lcPropName = 'A045' + lcPropName
|
lcPropName = 'A045' + lcPropName
|
||||||
|
CASE lcPropName == 'DefTop' && Propied con evaluaci<63>n: Debe estar antes que Top
|
||||||
|
lcPropName = 'A046' + lcPropName
|
||||||
|
CASE lcPropName == 'DefLeft' && Propied con evaluaci<63>n: Debe estar antes que Left
|
||||||
|
lcPropName = 'A047' + lcPropName
|
||||||
|
CASE lcPropName == 'DefHeight' && Propied con evaluaci<63>n: Debe estar antes que Height
|
||||||
|
lcPropName = 'A048' + lcPropName
|
||||||
|
CASE lcPropName == 'DefWidth' && Propied con evaluaci<63>n: Debe estar antes que Width
|
||||||
|
lcPropName = 'A049' + lcPropName
|
||||||
CASE lcPropName == 'Top'
|
CASE lcPropName == 'Top'
|
||||||
lcPropName = 'A050' + lcPropName
|
lcPropName = 'A050' + lcPropName
|
||||||
CASE lcPropName == 'Left'
|
CASE lcPropName == 'Left'
|
||||||
@@ -2701,6 +2713,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
|
|||||||
+ [<memberdata name="analizarbloque_foxbin2prg" display="analizarBloque_FoxBin2Prg"/>] ;
|
+ [<memberdata name="analizarbloque_foxbin2prg" display="analizarBloque_FoxBin2Prg"/>] ;
|
||||||
+ [<memberdata name="analizarbloque_hidden" display="analizarBloque_HIDDEN"/>] ;
|
+ [<memberdata name="analizarbloque_hidden" display="analizarBloque_HIDDEN"/>] ;
|
||||||
+ [<memberdata name="analizarbloque_include" display="analizarBloque_INCLUDE"/>] ;
|
+ [<memberdata name="analizarbloque_include" display="analizarBloque_INCLUDE"/>] ;
|
||||||
|
+ [<memberdata name="analizarbloque_classcomments" display="analizarBloque_CLASSCOMMENTS"/>] ;
|
||||||
+ [<memberdata name="analizarbloque_classmetadata" display="analizarBloque_CLASSMETADATA"/>] ;
|
+ [<memberdata name="analizarbloque_classmetadata" display="analizarBloque_CLASSMETADATA"/>] ;
|
||||||
+ [<memberdata name="analizarbloque_objectmetadata" display="analizarBloque_OBJECTMETADATA"/>] ;
|
+ [<memberdata name="analizarbloque_objectmetadata" display="analizarBloque_OBJECTMETADATA"/>] ;
|
||||||
+ [<memberdata name="analizarbloque_ole_def" display="analizarBloque_OLE_DEF"/>] ;
|
+ [<memberdata name="analizarbloque_ole_def" display="analizarBloque_OLE_DEF"/>] ;
|
||||||
@@ -4121,6 +4134,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
|
|||||||
LOCAL Z, lcProp, lcValue, loEx AS EXCEPTION ;
|
LOCAL Z, lcProp, lcValue, loEx AS EXCEPTION ;
|
||||||
, llCLASSMETADATA_Completed, llPROTECTED_Completed, llHIDDEN_Completed, llDEFINED_PAM_Completed ;
|
, llCLASSMETADATA_Completed, llPROTECTED_Completed, llHIDDEN_Completed, llDEFINED_PAM_Completed ;
|
||||||
, llINCLUDE_Completed, llCLASS_PROPERTY_Completed, llOBJECTMETADATA_Completed ;
|
, llINCLUDE_Completed, llCLASS_PROPERTY_Completed, llOBJECTMETADATA_Completed ;
|
||||||
|
, llCLASSCOMMENTS_Completed ;
|
||||||
, loObjeto AS CL_OBJETO OF 'FOXBIN2PRG.PRG'
|
, loObjeto AS CL_OBJETO OF 'FOXBIN2PRG.PRG'
|
||||||
|
|
||||||
STORE '' TO tcProcedureAbierto
|
STORE '' TO tcProcedureAbierto
|
||||||
@@ -4147,7 +4161,7 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
|
|||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
* B<>squeda del ID de fin de bloque (ENDDEFINE)
|
* B<>squeda del ID de fin de bloque (ENDDEFINE)
|
||||||
WITH THIS
|
WITH THIS AS c_conversor_prg_a_bin OF 'FOXBIN2PRG.PRG'
|
||||||
FOR I = toClase._Ini_Cab TO tnCodeLines
|
FOR I = toClase._Ini_Cab TO tnCodeLines
|
||||||
tc_Comentario = ''
|
tc_Comentario = ''
|
||||||
.set_Line( @tcLine, @taCodeLines, I )
|
.set_Line( @tcLine, @taCodeLines, I )
|
||||||
@@ -4159,13 +4173,14 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
|
|||||||
CASE .analizarBloque_PROCEDURE( @toModulo, @toClase, @loObjeto, @tcLine, @taCodeLines, @I, @tnCodeLines ;
|
CASE .analizarBloque_PROCEDURE( @toModulo, @toClase, @loObjeto, @tcLine, @taCodeLines, @I, @tnCodeLines ;
|
||||||
, @tcProcedureAbierto, @tc_Comentario, @taBloquesExclusion, @tnBloquesExclusion )
|
, @tcProcedureAbierto, @tc_Comentario, @taBloquesExclusion, @tnBloquesExclusion )
|
||||||
*-- OJO: Esta se analiza primero a prop<6F>sito, solo porque no puede estar detr<74>s de PROTECTED y HIDDEN
|
*-- OJO: Esta se analiza primero a prop<6F>sito, solo porque no puede estar detr<74>s de PROTECTED y HIDDEN
|
||||||
llCLASS_PROPERTY_Completed = .T.
|
STORE .T. TO llCLASSCOMMENTS_Completed ;
|
||||||
llPROTECTED_Completed = .T.
|
, llCLASS_PROPERTY_Completed ;
|
||||||
llHIDDEN_Completed = .T.
|
, llPROTECTED_Completed ;
|
||||||
llINCLUDE_Completed = .T.
|
, llHIDDEN_Completed ;
|
||||||
llCLASSMETADATA_Completed = .T.
|
, llINCLUDE_Completed ;
|
||||||
llOBJECTMETADATA_Completed = .T.
|
, llCLASSMETADATA_Completed ;
|
||||||
llDEFINED_PAM_Completed = .T.
|
, llOBJECTMETADATA_Completed ;
|
||||||
|
, llDEFINED_PAM_Completed
|
||||||
|
|
||||||
|
|
||||||
CASE NOT llPROTECTED_Completed AND .analizarBloque_PROTECTED( @toClase, @tcLine )
|
CASE NOT llPROTECTED_Completed AND .analizarBloque_PROTECTED( @toClase, @tcLine )
|
||||||
@@ -4181,12 +4196,16 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
|
|||||||
llINCLUDE_Completed = .T.
|
llINCLUDE_Completed = .T.
|
||||||
|
|
||||||
|
|
||||||
|
CASE NOT llCLASSCOMMENTS_Completed AND .analizarBloque_CLASSCOMMENTS( @toClase, @tcLine ,@taCodeLines, tnCodeLines, @I )
|
||||||
|
llCLASSCOMMENTS_Completed = .T.
|
||||||
|
|
||||||
|
|
||||||
CASE NOT llCLASSMETADATA_Completed AND .analizarBloque_CLASSMETADATA( @toClase, @tcLine )
|
CASE NOT llCLASSMETADATA_Completed AND .analizarBloque_CLASSMETADATA( @toClase, @tcLine )
|
||||||
llCLASSMETADATA_Completed = .T.
|
llCLASSMETADATA_Completed = .T.
|
||||||
|
|
||||||
|
|
||||||
CASE NOT llOBJECTMETADATA_Completed AND .analizarBloque_OBJECTMETADATA( @toClase, @tcLine )
|
CASE NOT llOBJECTMETADATA_Completed AND .analizarBloque_OBJECTMETADATA( @toClase, @tcLine )
|
||||||
*llOBJECTMETADATA_Completed = .T.
|
* No se usa flag porque puede haber m<>ltiples ObjectMetadata.
|
||||||
|
|
||||||
|
|
||||||
CASE NOT llDEFINED_PAM_Completed AND .analizarBloque_DEFINED_PAM( @toClase, @tcLine, @taCodeLines, tnCodeLines, @I )
|
CASE NOT llDEFINED_PAM_Completed AND .analizarBloque_DEFINED_PAM( @toClase, @tcLine, @taCodeLines, tnCodeLines, @I )
|
||||||
@@ -4194,13 +4213,14 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
|
|||||||
|
|
||||||
|
|
||||||
CASE .analizarBloque_ADD_OBJECT( @toModulo, @toClase, @tcLine, @I, @taCodeLines, @tnCodeLines )
|
CASE .analizarBloque_ADD_OBJECT( @toModulo, @toClase, @tcLine, @I, @taCodeLines, @tnCodeLines )
|
||||||
llCLASS_PROPERTY_Completed = .T.
|
STORE .T. TO llCLASSCOMMENTS_Completed ;
|
||||||
llPROTECTED_Completed = .T.
|
, llCLASS_PROPERTY_Completed ;
|
||||||
llHIDDEN_Completed = .T.
|
, llPROTECTED_Completed ;
|
||||||
llINCLUDE_Completed = .T.
|
, llHIDDEN_Completed ;
|
||||||
llCLASSMETADATA_Completed = .T.
|
, llINCLUDE_Completed ;
|
||||||
llOBJECTMETADATA_Completed = .T.
|
, llCLASSMETADATA_Completed ;
|
||||||
llDEFINED_PAM_Completed = .T.
|
, llOBJECTMETADATA_Completed ;
|
||||||
|
, llDEFINED_PAM_Completed
|
||||||
|
|
||||||
|
|
||||||
CASE .analizarBloque_ENDDEFINE( @toClase, @tcLine, @I, @tcProcedureAbierto )
|
CASE .analizarBloque_ENDDEFINE( @toClase, @tcLine, @I, @tcProcedureAbierto )
|
||||||
@@ -4333,7 +4353,57 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base
|
|||||||
ENDPROC
|
ENDPROC
|
||||||
|
|
||||||
|
|
||||||
*******************************************************************************************************************
|
PROCEDURE analizarBloque_CLASSCOMMENTS
|
||||||
|
LPARAMETERS toClase, tcLine ,taCodeLines, tnCodeLines, I
|
||||||
|
|
||||||
|
EXTERNAL ARRAY taCodeLines
|
||||||
|
|
||||||
|
#IF .F.
|
||||||
|
LOCAL toClase AS CL_CLASE OF 'FOXBIN2PRG.PRG'
|
||||||
|
#ENDIF
|
||||||
|
|
||||||
|
TRY
|
||||||
|
LOCAL llBloqueEncontrado
|
||||||
|
|
||||||
|
IF LEFT( tcLine, C_LEN_CLASSCOMMENTS_I ) == C_CLASSCOMMENTS_I
|
||||||
|
llBloqueEncontrado = .T.
|
||||||
|
toClase._Comentario = ''
|
||||||
|
|
||||||
|
WITH THIS AS c_conversor_prg_a_bin OF 'FOXBIN2PRG.PRG'
|
||||||
|
FOR I = I + 1 TO tnCodeLines
|
||||||
|
.set_Line( @tcLine, @taCodeLines, I )
|
||||||
|
|
||||||
|
DO CASE
|
||||||
|
CASE LEFT( tcLine, C_LEN_CLASSCOMMENTS_F ) == C_CLASSCOMMENTS_F
|
||||||
|
I = I + 1
|
||||||
|
EXIT
|
||||||
|
|
||||||
|
OTHERWISE
|
||||||
|
toClase._Comentario = toClase._Comentario + CR_LF + SUBSTR( tcLine, 2 ) && Le quito el '*' inicial
|
||||||
|
ENDCASE
|
||||||
|
ENDFOR
|
||||||
|
ENDWITH && THIS
|
||||||
|
|
||||||
|
I = I - 1
|
||||||
|
|
||||||
|
IF NOT EMPTY(toClase._Comentario)
|
||||||
|
toClase._Comentario = SUBSTR( toClase._Comentario, 3 ) && Quito el primer CR+LF
|
||||||
|
ENDIF
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
CATCH TO loEx
|
||||||
|
IF THIS.l_Debug AND _VFP.STARTMODE = 0
|
||||||
|
SET STEP ON
|
||||||
|
ENDIF
|
||||||
|
|
||||||
|
THROW
|
||||||
|
|
||||||
|
ENDTRY
|
||||||
|
|
||||||
|
RETURN llBloqueEncontrado
|
||||||
|
ENDPROC
|
||||||
|
|
||||||
|
|
||||||
PROCEDURE analizarBloque_CLASSMETADATA
|
PROCEDURE analizarBloque_CLASSMETADATA
|
||||||
LPARAMETERS toClase, tcLine
|
LPARAMETERS toClase, tcLine
|
||||||
|
|
||||||
@@ -7106,6 +7176,8 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
|
|||||||
EXTERNAL ARRAY taPropsAndComments, taProtected
|
EXTERNAL ARRAY taPropsAndComments, taProtected
|
||||||
|
|
||||||
TRY
|
TRY
|
||||||
|
LOCAL lcMethodName
|
||||||
|
|
||||||
WITH THIS AS c_conversor_bin_a_prg OF 'FOXBIN2PRG.PRG'
|
WITH THIS AS c_conversor_bin_a_prg OF 'FOXBIN2PRG.PRG'
|
||||||
.SortMethod( toRegObj.METHODS, @taMethods, @taCode, '', @tnMethodCount ;
|
.SortMethod( toRegObj.METHODS, @taMethods, @taCode, '', @tnMethodCount ;
|
||||||
, @taPropsAndComments, tnPropsAndComments_Count, @taProtected, tnProtected_Count )
|
, @taPropsAndComments, tnPropsAndComments_Count, @taProtected, tnProtected_Count )
|
||||||
@@ -7115,25 +7187,29 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
|
|||||||
*-- o si son de la clase.
|
*-- o si son de la clase.
|
||||||
IF tnMethodCount > 0 THEN
|
IF tnMethodCount > 0 THEN
|
||||||
FOR I = 1 TO tnMethodCount
|
FOR I = 1 TO tnMethodCount
|
||||||
|
IF taMethods(I,2) = 0
|
||||||
|
LOOP
|
||||||
|
ENDIF
|
||||||
|
|
||||||
IF EMPTY(toRegObj.PARENT)
|
IF EMPTY(toRegObj.PARENT)
|
||||||
tcMethodName = toRegObj.OBJNAME + '.' + taMethods(I,1)
|
lcMethodName = toRegObj.OBJNAME + '.' + taMethods(I,1)
|
||||||
ELSE
|
ELSE
|
||||||
DO CASE
|
DO CASE
|
||||||
CASE '.' $ toRegObj.PARENT
|
CASE '.' $ toRegObj.PARENT
|
||||||
tcMethodName = SUBSTR(toRegObj.PARENT, AT('.', toRegObj.PARENT) + 1) + '.' + toRegObj.OBJNAME + '.' + taMethods(I,1)
|
lcMethodName = SUBSTR(toRegObj.PARENT, AT('.', toRegObj.PARENT) + 1) + '.' + toRegObj.OBJNAME + '.' + taMethods(I,1)
|
||||||
|
|
||||||
CASE LEFT(toRegObj.PARENT + '.', LEN( toRegClass.OBJNAME + '.' ) ) == toRegClass.OBJNAME + '.'
|
CASE LEFT(toRegObj.PARENT + '.', LEN( toRegClass.OBJNAME + '.' ) ) == toRegClass.OBJNAME + '.'
|
||||||
tcMethodName = toRegObj.OBJNAME + '.' + taMethods(I,1)
|
lcMethodName = toRegObj.OBJNAME + '.' + taMethods(I,1)
|
||||||
|
|
||||||
OTHERWISE
|
OTHERWISE
|
||||||
tcMethodName = toRegObj.PARENT + '.' + toRegObj.OBJNAME + '.' + taMethods(I,1)
|
lcMethodName = toRegObj.PARENT + '.' + toRegObj.OBJNAME + '.' + taMethods(I,1)
|
||||||
|
|
||||||
ENDCASE
|
ENDCASE
|
||||||
ENDIF
|
ENDIF
|
||||||
|
|
||||||
*-- Genero el m<>todo SIN indentar, ya que se hace luego
|
*-- Genero el m<>todo SIN indentar, ya que se hace luego
|
||||||
*-- Sustituyo el TEXT/ENDTEXT aqu<71> porque a veces quita espacios de la derecha, y eso es peligroso
|
*-- Sustituyo el TEXT/ENDTEXT aqu<71> porque a veces quita espacios de la derecha, y eso es peligroso
|
||||||
tcMethods = tcMethods + CR_LF + 'PROCEDURE ' + tcMethodName
|
tcMethods = tcMethods + CR_LF + 'PROCEDURE ' + lcMethodName
|
||||||
tcMethods = tcMethods + CR_LF + .IndentarMemo( taCode(taMethods(I,2)) )
|
tcMethods = tcMethods + CR_LF + .IndentarMemo( taCode(taMethods(I,2)) )
|
||||||
tcMethods = tcMethods + CR_LF + 'ENDPROC'
|
tcMethods = tcMethods + CR_LF + 'ENDPROC'
|
||||||
ENDFOR
|
ENDFOR
|
||||||
@@ -7393,7 +7469,7 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
|
|||||||
X = 0
|
X = 0
|
||||||
FOR I = lnFin TO 1 STEP -1
|
FOR I = lnFin TO 1 STEP -1
|
||||||
IF NOT EMPTY(laLineas(I)) && <20>ltima l<>nea de c<>digo
|
IF NOT EMPTY(laLineas(I)) && <20>ltima l<>nea de c<>digo
|
||||||
IF LEFT( laLineas(I), 10 ) <> C_ENDPROC
|
IF llProcedure AND LEFT( laLineas(I), 10 ) <> C_ENDPROC
|
||||||
*ERROR 'Procedimiento sin cerrar. La <20>ltima l<>nea de c<>digo debe ser ENDPROC. [' + laLineas(1) + ']'
|
*ERROR 'Procedimiento sin cerrar. La <20>ltima l<>nea de c<>digo debe ser ENDPROC. [' + laLineas(1) + ']'
|
||||||
ERROR (TEXTMERGE(C_PROCEDURE_NOT_CLOSED_ON_LINE_LOC))
|
ERROR (TEXTMERGE(C_PROCEDURE_NOT_CLOSED_ON_LINE_LOC))
|
||||||
ENDIF
|
ENDIF
|
||||||
@@ -8026,10 +8102,19 @@ DEFINE CLASS c_conversor_bin_a_prg AS c_conversor_base
|
|||||||
LPARAMETERS toRegClass
|
LPARAMETERS toRegClass
|
||||||
*-- Comentario de la clase
|
*-- Comentario de la clase
|
||||||
IF NOT EMPTY(toRegClass.RESERVED7) THEN
|
IF NOT EMPTY(toRegClass.RESERVED7) THEN
|
||||||
|
*-- Si es multil<69>nea, debe ir en un tag <ClassComments> aparte
|
||||||
|
IF OCCURS( CHR(13), toRegClass.RESERVED7 ) > 0 THEN
|
||||||
|
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1+2 PRETEXT 1+2
|
||||||
|
<<>> <<C_CLASSCOMMENTS_I>>
|
||||||
|
<<THIS.IndentarMemo( toRegClass.Reserved7, C_TAB + C_TAB + '*' )>>
|
||||||
|
<<>> <<C_CLASSCOMMENTS_F>>
|
||||||
|
ENDTEXT
|
||||||
|
ELSE && Comentario in-line
|
||||||
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2
|
TEXT TO C_FB2PRG_CODE ADDITIVE TEXTMERGE NOSHOW FLAGS 1 PRETEXT 1+2
|
||||||
<<>> <<'&'+'&'>> <<toRegClass.Reserved7>>
|
<<>> <<'&'+'&'>> <<toRegClass.Reserved7>>
|
||||||
ENDTEXT
|
ENDTEXT
|
||||||
ENDIF
|
ENDIF
|
||||||
|
ENDIF
|
||||||
ENDPROC
|
ENDPROC
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user