From 10bbc5e632fa12aeb94e860881171bd6d4ca573e Mon Sep 17 00:00:00 2001 From: fdbozzo Date: Fri, 26 Jun 2015 23:57:25 +0200 Subject: [PATCH] =?UTF-8?q?Convertir=20FUNCTION=20a=20PROCEDURE,=20para=20?= =?UTF-8?q?mantener=20la=20compatibilidad=20con=20la=20forma=20en=20que=20?= =?UTF-8?q?VFP=20guarda=20los=20m=C3=A9todos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FoxBin2PRGVersionFile.txt | 1 + foxbin2prg.prg | 25 +++++++++++++++++++++++-- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/FoxBin2PRGVersionFile.txt b/FoxBin2PRGVersionFile.txt index ae2df4d..aba6f20 100644 --- a/FoxBin2PRGVersionFile.txt +++ b/FoxBin2PRGVersionFile.txt @@ -20,6 +20,7 @@ Change History ------------------------------------------------------------- 2015/06/22 v1.19.46 - Bug Fix: set_UserValue() method causes error when trying to get information about another error and the VFP binary table can not be opened (ie, because corrupted memo) - Feature: Added internal support for querying directory cfg information, with a new optional parameter, for API methods that require it (ie: get_Ext2FromExt, hasSupport*) +- Feature: Convert FUNCTION to PROCEDURE for maintaining compatibility with the way that VFP save methods on binaries 2015/06/21 v1.19.45 diff --git a/foxbin2prg.prg b/foxbin2prg.prg index c3c53c4..69e4d0e 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -7995,11 +7995,13 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base AND NOT .lineIsOnlyCommentAndNoMetadata( @tcLine, @tc_Comentario ) DO CASE - CASE UPPER( LEFT( tcLine + ' ', 8 ) ) == C_ENDPROC + ' ' && Fin del PROCEDURE + CASE UPPER( LEFT( tcLine + ' ', 8 ) ) == 'ENDPROC ' ; && Fin del PROCEDURE + OR UPPER( LEFT( tcLine + ' ', 8 ) ) == 'ENDFUNC ' && Fin de la FUNCTION + tcProcedureAbierto = '' EXIT - CASE UPPER( LEFT( tcLine + ' ', 10 ) ) == C_ENDDEFINE + ' ' && Fin de bloque (ENDDEFINE) encontrado + CASE UPPER( LEFT( tcLine + ' ', 10 ) ) == 'ENDDEFINE ' && Fin de bloque (ENDDEFINE) encontrado IF llEsProcedureDeClase *ERROR 'Error de anidamiento de estructuras. Se esperaba ENDPROC y se encontró ENDDEFINE en la clase ' ; + toClase._Nombre + ' (' + loProcedure._Nombre + ')' ; @@ -8871,6 +8873,25 @@ DEFINE CLASS c_conversor_prg_a_bin AS c_conversor_base tcProcedureAbierto = ALLTRIM( SUBSTR( tcLine, 11 ) ) .evaluateProcedureDefinition( @toClase, I, @tc_Comentario, tcProcedureAbierto, 'normal', @toObjeto ) + CASE UPPER( LEFT( tcLine, 19 ) ) == 'PROTECTED FUNCTION ' + *-- Estructura a reconocer: PROTECTED PROCEDURE nombre_del_procedimiento + llBloqueEncontrado = .T. + tcProcedureAbierto = ALLTRIM( SUBSTR( tcLine, 20 ) ) + .evaluateProcedureDefinition( @toClase, I, @tc_Comentario, tcProcedureAbierto, 'protected', @toObjeto ) + + + CASE UPPER( LEFT( tcLine, 16 ) ) == 'HIDDEN FUNCTION ' + *-- Estructura a reconocer: HIDDEN FUNCTION nombre_del_procedimiento + llBloqueEncontrado = .T. + tcProcedureAbierto = ALLTRIM( SUBSTR( tcLine, 17 ) ) + .evaluateProcedureDefinition( @toClase, I, @tc_Comentario, tcProcedureAbierto, 'hidden', @toObjeto ) + + CASE UPPER( LEFT( tcLine, 9 ) ) == 'FUNCTION ' + *-- Estructura a reconocer: FUNCTION [objeto.]nombre_del_procedimiento + llBloqueEncontrado = .T. + tcProcedureAbierto = ALLTRIM( SUBSTR( tcLine, 10 ) ) + .evaluateProcedureDefinition( @toClase, I, @tc_Comentario, tcProcedureAbierto, 'normal', @toObjeto ) + ENDCASE IF llBloqueEncontrado