Bug Fix mnx: Cuando se usa '&&' en los textos de las opciones, se corrompe el binario del menú al regenerarlo (Walter Nichols)
This commit is contained in:
Binary file not shown.
@@ -14,28 +14,28 @@
|
||||
|
||||
*<MenuCode>
|
||||
DEFINE MENU _MSYSMENU BAR
|
||||
DEFINE PAD _43302YWGE OF _MSYSMENU PROMPT "Opci<63>n A con submen<65>" COLOR SCHEME 3 ;
|
||||
DEFINE PAD _000000001 OF _MSYSMENU PROMPT "Opci<63>n A && submen<65>" COLOR SCHEME 3 ;
|
||||
NEGOTIATE NONE, LEFT ;
|
||||
KEY DEL, "Pulsar <DEL>" ;
|
||||
SKIP FOR SKIP_FOR() ;
|
||||
MESSAGE "Mensaje para Opci<63>n A con submen<65>" && Comentario
|
||||
MESSAGE "Mensaje para Opci<63>n A con submen<65>" && Comentario's Opci<63>n A
|
||||
|
||||
ON PAD _43302YWGE OF _MSYSMENU ACTIVATE POPUP Opci<63>nA_CS
|
||||
ON PAD _000000001 OF _MSYSMENU ACTIVATE POPUP Opci<63>nAsub
|
||||
|
||||
*----------------------------------
|
||||
DEFINE POPUP Opci<63>nA_CS MARGIN RELATIVE SHADOW COLOR SCHEME 4
|
||||
DEFINE BAR 1 OF Opci<63>nA_CS PROMPT "Opci<63>n A-1" ;
|
||||
PICTURE "..\..\foxunit\fxuacknowledgements.bmp"
|
||||
ON BAR 1 OF Opci<63>nA_CS ACTIVATE POPUP Opci<63>nA1
|
||||
DEFINE POPUP Opci<63>nAsub MARGIN RELATIVE SHADOW COLOR SCHEME 4
|
||||
DEFINE BAR 1 OF Opci<63>nAsub PROMPT "Opci<63>n A-&&-1" ;
|
||||
PICTURE "..\..\foxunit\fxuacknowledgements.bmp" && Comentario Opci<63>n A-1
|
||||
ON BAR 1 OF Opci<63>nAsub ACTIVATE POPUP Opci<63>nA1
|
||||
|
||||
*----------------------------------
|
||||
DEFINE POPUP Opci<63>nA1 MARGIN RELATIVE SHADOW COLOR SCHEME 4
|
||||
DEFINE BAR Shortcut_Menu_Title OF Opci<63>nA1 PROMPT "Opci<63>nA-1-Sub" ;
|
||||
PICTURE "..\..\foxunit\fxuacknowledgements.bmp"
|
||||
ON SELECTION BAR Shortcut_Menu_Title OF Opci<63>nA1 wait window "Ejecuta Comando o funci<63>n para Opci<63>n A-1"
|
||||
DEFINE BAR Shortcut_Menu_Title OF Opci<63>nA1 PROMPT "Opci<63>nA-1-&&-Sub" ;
|
||||
PICTURE "..\..\foxunit\fxuacknowledgements.bmp" && Comentario Opci<63>n A-1-sub con && trampa :)
|
||||
ON SELECTION BAR Shortcut_Menu_Title OF Opci<63>nA1 wait window "Ejecuta Comando o funci<63>n 'trampa' para Opci<63>n A-&&-1"
|
||||
|
||||
DEFINE BAR 2 OF Opci<63>nA_CS PROMPT "Opci<63>n A-2"
|
||||
ON BAR 2 OF Opci<63>nA_CS ACTIVATE POPUP Opci<63>nA2Su
|
||||
DEFINE BAR 2 OF Opci<63>nAsub PROMPT "Opci<63>n A-2" && Comentario Opci<63>n A-2
|
||||
ON BAR 2 OF Opci<63>nAsub ACTIVATE POPUP Opci<63>nA2Su
|
||||
|
||||
*----------------------------------
|
||||
DEFINE POPUP Opci<63>nA2Su MARGIN RELATIVE SHADOW COLOR SCHEME 4
|
||||
@@ -65,14 +65,14 @@ ON PAD _43302YWGE OF _MSYSMENU ACTIVATE POPUP Opci
|
||||
SKIP FOR NOT glEnabled_Opc_A_2_Sub_3 ;
|
||||
PICTRES _mfi_sysprint ;
|
||||
MESSAGE "Message para Opci<63>n A-2-Sub.3 (Tipo Bar#)" && Comentarios para Opci<63>n A-2-Sub.3
|
||||
ON SELECTION POPUP Opci<63>nA_CS *-- PROCEDURE Le cambi<62> el nombre!
|
||||
ON SELECTION POPUP Opci<63>nAsub *-- PROCEDURE Le cambi<62> el nombre!
|
||||
|
||||
DEFINE PAD opc_b OF _MSYSMENU PROMPT "Opci<63>n B con comando" COLOR SCHEME 3 ;
|
||||
KEY CTRL+B, "Pulse CTRL+B" ;
|
||||
SKIP FOR NOT glEnabled_Opc_B ;
|
||||
MESSAGE "Mensaje para Opci<63>n B con Command" && Comentario de la Opci<63>n b
|
||||
MESSAGE "Mensaje para Opci<63>n B con Command && con trampa's" && Comentario's de la Opci<63>n b
|
||||
|
||||
ON SELECTION PAD opc_b OF _MSYSMENU WAIT WINDOW "Opci<63>n B"
|
||||
ON SELECTION PAD opc_b OF _MSYSMENU WAIT WINDOW "Opci<63>n B y ma's trampas"
|
||||
ON SELECTION POPUP ALL DO MenuBarProc
|
||||
ON SELECTION MENU _MSYSMENU DO SELECTION_MENU__MSYSMENU_FB2P
|
||||
|
||||
|
||||
Binary file not shown.
@@ -45,7 +45,7 @@ DEFINE CLASS ut__foxbin2prg__c_conversor_base__lineIsOnlyCommentAndNoMetadata AS
|
||||
*******************************************************************************************************************************************
|
||||
FUNCTION Evaluate_results
|
||||
LPARAMETERS toEx AS EXCEPTION, tnCodError_Esperado ;
|
||||
, tcLinea, tcComentario, tlRetorno, tcLinea_Esperada, tcComentario_Esperado, tlRetorno_Esperado
|
||||
, tcLinea, tcComentario, tlRetorno, tcLinea_Esperada, tcComentario_Esperado, tlRetorno_Esperado, tcLineaOriginal
|
||||
|
||||
#IF .F.
|
||||
PUBLIC oFXU_LIB AS CL_FXU_CONFIG OF 'TESTS\fxu_lib_objetos_y_funciones_de_soporte.PRG'
|
||||
@@ -64,12 +64,14 @@ DEFINE CLASS ut__foxbin2prg__c_conversor_base__lineIsOnlyCommentAndNoMetadata AS
|
||||
tcLinea_Esperada = oFXU_LIB.mejorarPresentacionCaracteresEspeciales( tcLinea_Esperada )
|
||||
tcComentario = oFXU_LIB.mejorarPresentacionCaracteresEspeciales( tcComentario )
|
||||
tcComentario_Esperado = oFXU_LIB.mejorarPresentacionCaracteresEspeciales( tcComentario_Esperado )
|
||||
tcLineaOriginal = oFXU_LIB.mejorarPresentacionCaracteresEspeciales( tcLineaOriginal )
|
||||
|
||||
|
||||
*-- Visualizaci<63>n de valores
|
||||
THIS.messageout( ' L<>nea original = [' + tcLineaOriginal + ']' )
|
||||
THIS.messageout( ' Linea = [' + TRANSFORM(tcLinea) + ']' )
|
||||
THIS.messageout( ' Comentario = [' + TRANSFORM(tcComentario) + ']' )
|
||||
THIS.messageout( ' tlRetorno = [' + TRANSFORM(tlRetorno) + ']' )
|
||||
THIS.messageout( ' OnlyCommentAndNoMetadata? = [' + TRANSFORM(tlRetorno) + ']' )
|
||||
|
||||
|
||||
*-- Evaluaci<63>n de valores
|
||||
@@ -99,20 +101,22 @@ DEFINE CLASS ut__foxbin2prg__c_conversor_base__lineIsOnlyCommentAndNoMetadata AS
|
||||
|
||||
*-- DATOS DE ENTRADA
|
||||
STORE 0 TO lnCodError
|
||||
lcComentario = ' ' + CHR(9) + CHR(9) + 'con algunos comentarios '
|
||||
lcLinea = ' ' + CHR(9) + CHR(9) + ' esta es una linea de c<>digo ' + CHR(9) + ' '
|
||||
lcComentario = ' ' + CHR(9) + CHR(9) + 'con algunos comentarios '
|
||||
lcLineaOriginal = lcLinea + '&' + '&' + lcComentario
|
||||
lcLineaOriginal = LTRIM(lcLineaOriginal, 0, CHR(9), ' ' ) && Este tratamiento lo hace set_Line normalmente
|
||||
|
||||
*-- DATOS ESPERADOS
|
||||
STORE 0 TO lnCodError_Esperado
|
||||
lcLinea_Esperada = lcLinea
|
||||
lcLinea_Esperada = ALLTRIM(lcLinea, 0, CHR(9), ' ' )
|
||||
lcComentario_Esperado = LTRIM(lcComentario)
|
||||
llRetorno_Esperado = .F.
|
||||
lcLinea = LTRIM( lcLineaOriginal, 0, CHR(9), ' ' ) && Este tratamiento lo hace set_Line normalmente
|
||||
|
||||
*-- TEST
|
||||
llRetorno = loObj.lineIsOnlyCommentAndNoMetadata( @lcLineaOriginal, @lcComentario )
|
||||
llRetorno = loObj.lineIsOnlyCommentAndNoMetadata( @lcLinea, @lcComentario )
|
||||
|
||||
THIS.Evaluate_results( loEx, lnCodError_Esperado, @lcLinea, @lcComentario, @llRetorno, @lcLinea_Esperada, @lcComentario_Esperado, @llRetorno_Esperado )
|
||||
THIS.Evaluate_results( loEx, lnCodError_Esperado, @lcLinea, @lcComentario, @llRetorno, @lcLinea_Esperada, @lcComentario_Esperado, @llRetorno_Esperado, @lcLineaOriginal )
|
||||
|
||||
ENDFUNC
|
||||
|
||||
@@ -128,27 +132,29 @@ DEFINE CLASS ut__foxbin2prg__c_conversor_base__lineIsOnlyCommentAndNoMetadata AS
|
||||
|
||||
*-- DATOS DE ENTRADA
|
||||
STORE 0 TO lnCodError
|
||||
lcLinea = ' *<TAG> esta es una linea de c<>digo ' && Empieza con "*<", por lo que es metadata la l<>nea
|
||||
lcComentario = ' con algunos comentarios '
|
||||
lcLinea = ' *<TAG> esta es una linea de c<>digo '
|
||||
lcLineaOriginal = lcLinea + '&' + '&' + lcComentario
|
||||
lcLineaOriginal = LTRIM( lcLineaOriginal, 0, CHR(9), ' ' )
|
||||
lcLineaOriginal = LTRIM(lcLineaOriginal, 0, CHR(9), ' ' ) && Este tratamiento lo hace set_Line normalmente
|
||||
|
||||
*-- DATOS ESPERADOS
|
||||
STORE 0 TO lnCodError_Esperado
|
||||
lcLinea_Esperada = ALLTRIM( lcLinea, 0, CHR(9), ' ' )
|
||||
lcComentario_Esperado = lcLinea_Esperada
|
||||
*lcLinea_Esperada = LTRIM(lcLineaOriginal, 0, CHR(9), ' ' ) &&ALLTRIM( lcLinea, 0, CHR(9), ' ' )
|
||||
lcLinea_Esperada = ALLTRIM(lcLinea, 0, CHR(9), ' ' )
|
||||
lcComentario_Esperado = lcLinea_Esperada && Se espera la l<>nea, porque es todo comentario
|
||||
llRetorno_Esperado = .F.
|
||||
lcLinea = LTRIM( lcLineaOriginal, 0, CHR(9), ' ' ) && Este tratamiento lo hace set_Line normalmente
|
||||
|
||||
*-- TEST
|
||||
llRetorno = loObj.lineIsOnlyCommentAndNoMetadata( @lcLineaOriginal, @lcComentario )
|
||||
llRetorno = loObj.lineIsOnlyCommentAndNoMetadata( @lcLinea, @lcComentario )
|
||||
|
||||
THIS.Evaluate_results( loEx, lnCodError_Esperado, @lcLineaOriginal, @lcComentario, @llRetorno, @lcLinea_Esperada, @lcComentario_Esperado, @llRetorno_Esperado )
|
||||
THIS.Evaluate_results( loEx, lnCodError_Esperado, @lcLinea, @lcComentario, @llRetorno, @lcLinea_Esperada, @lcComentario_Esperado, @llRetorno_Esperado, @lcLineaOriginal )
|
||||
|
||||
ENDFUNC
|
||||
|
||||
|
||||
*******************************************************************************************************************************************
|
||||
FUNCTION Deberia_DevolverSeparados_LineaDeCodigo_y_Valor_y_Retornar_True
|
||||
FUNCTION Deberia_DevolverLaLineaDeCodigoComoComentario_y_Retornar_True
|
||||
LOCAL lnCodError, lcMenError, lnCodError_Esperado ;
|
||||
, lcLinea, lcLineaOriginal, lcComentario, lcLinea_Esperada, lcComentario_Esperado, llRetorno, llRetorno_Esperado ;
|
||||
, loEx AS EXCEPTION
|
||||
@@ -158,21 +164,84 @@ DEFINE CLASS ut__foxbin2prg__c_conversor_base__lineIsOnlyCommentAndNoMetadata AS
|
||||
|
||||
*-- DATOS DE ENTRADA
|
||||
STORE 0 TO lnCodError
|
||||
lcLinea = ' * esta es una linea de c<>digo ' && Empieza con "*", por lo que es solo comentario la l<>nea
|
||||
lcComentario = ' con algunos comentarios '
|
||||
lcLinea = ' * esta es una linea de c<>digo '
|
||||
lcLineaOriginal = lcLinea + '&' + '&' + lcComentario
|
||||
lcLineaOriginal = LTRIM(lcLineaOriginal, 0, CHR(9), ' ')
|
||||
|
||||
*-- DATOS ESPERADOS
|
||||
STORE 0 TO lnCodError_Esperado
|
||||
lcLinea_Esperada = lcLinea
|
||||
lcLinea_Esperada = ALLTRIM(lcLinea, 0, CHR(9), ' ' )
|
||||
lcComentario_Esperado = LTRIM(lcComentario)
|
||||
llRetorno_Esperado = .T.
|
||||
lcLinea = LTRIM( lcLineaOriginal, 0, CHR(9), ' ' ) && Este tratamiento lo hace set_Line normalmente
|
||||
|
||||
*-- TEST
|
||||
llRetorno = loObj.lineIsOnlyCommentAndNoMetadata( @lcLineaOriginal, @lcComentario )
|
||||
llRetorno = loObj.lineIsOnlyCommentAndNoMetadata( @lcLinea, @lcComentario )
|
||||
|
||||
THIS.Evaluate_results( loEx, lnCodError_Esperado, @lcLinea, @lcComentario, @llRetorno, @lcLinea_Esperada, @lcComentario_Esperado, @llRetorno_Esperado )
|
||||
THIS.Evaluate_results( loEx, lnCodError_Esperado, @lcLinea, @lcComentario, @llRetorno, @lcLinea_Esperada, @lcComentario_Esperado, @llRetorno_Esperado, @lcLineaOriginal )
|
||||
|
||||
ENDFUNC
|
||||
|
||||
|
||||
*******************************************************************************************************************************************
|
||||
FUNCTION Deberia_DevolverSeparados_LineaDeCodigoQueIncluye_DobleAmpersand_y_Valor_y_Retornar_False
|
||||
LOCAL lnCodError, lcMenError, lnCodError_Esperado ;
|
||||
, lcLinea, lcLineaOriginal, lcComentario, lcLinea_Esperada, lcComentario_Esperado, llRetorno, llRetorno_Esperado ;
|
||||
, loEx AS EXCEPTION
|
||||
LOCAL loObj AS c_conversor_base OF "FOXBIN2PRG.PRG"
|
||||
loObj = THIS.icObj
|
||||
loEx = NULL
|
||||
|
||||
*-- DATOS DE ENTRADA
|
||||
STORE 0 TO lnCodError
|
||||
lcLinea = [DEFINE BAR 2 OF Opci<63>nAsub PROMPT ""+var+'aa'+]+'["bb]'+[+"Opci<63>n A&]+[&2"] && No debe confundir el '&&' del c<>digo con comentarios
|
||||
lcComentario = [ Comentario Opci<63>n A-2]
|
||||
lcLineaOriginal = lcLinea + '&' + '&' + lcComentario
|
||||
lcLineaOriginal = LTRIM(lcLineaOriginal, 0, CHR(9), ' ' ) && Este tratamiento lo hace set_Line normalmente
|
||||
|
||||
*-- DATOS ESPERADOS
|
||||
STORE 0 TO lnCodError_Esperado
|
||||
lcLinea_Esperada = ALLTRIM(lcLinea, 0, CHR(9), ' ' )
|
||||
lcComentario_Esperado = LTRIM(lcComentario)
|
||||
llRetorno_Esperado = .F.
|
||||
lcLinea = LTRIM( lcLineaOriginal, 0, CHR(9), ' ' ) && Este tratamiento lo hace set_Line normalmente
|
||||
|
||||
*-- TEST
|
||||
llRetorno = loObj.lineIsOnlyCommentAndNoMetadata( @lcLinea, @lcComentario, .F., .T. ) && Activando Deep Comment Analysis
|
||||
|
||||
THIS.Evaluate_results( loEx, lnCodError_Esperado, @lcLinea, @lcComentario, @llRetorno, @lcLinea_Esperada, @lcComentario_Esperado, @llRetorno_Esperado, @lcLineaOriginal )
|
||||
|
||||
ENDFUNC
|
||||
|
||||
|
||||
*******************************************************************************************************************************************
|
||||
FUNCTION Deberia_DevolverSeparados_LineaDeCodigoQueIncluye_DobleAmpersand_y_ComentarioConComillas_y_Retornar_False
|
||||
LOCAL lnCodError, lcMenError, lnCodError_Esperado ;
|
||||
, lcLinea, lcLineaOriginal, lcComentario, lcLinea_Esperada, lcComentario_Esperado, llRetorno, llRetorno_Esperado ;
|
||||
, loEx AS EXCEPTION
|
||||
LOCAL loObj AS c_conversor_base OF "FOXBIN2PRG.PRG"
|
||||
loObj = THIS.icObj
|
||||
loEx = NULL
|
||||
|
||||
*-- DATOS DE ENTRADA
|
||||
STORE 0 TO lnCodError
|
||||
lcLinea = [DEFINE BAR 2 OF Opci<63>nAsub PROMPT ""+var+'aa'+]+'["bb]'+[+"Opci<63>n A&]+[&2"] && No debe confundir el '&&' del c<>digo con comentarios
|
||||
lcComentario = [ Comentario's Opci<63>n A-2]
|
||||
lcLineaOriginal = lcLinea + '&' + '&' + lcComentario
|
||||
lcLineaOriginal = LTRIM(lcLineaOriginal, 0, CHR(9), ' ' ) && Este tratamiento lo hace set_Line normalmente
|
||||
|
||||
*-- DATOS ESPERADOS
|
||||
STORE 0 TO lnCodError_Esperado
|
||||
lcLinea_Esperada = ALLTRIM(lcLinea, 0, CHR(9), ' ' )
|
||||
lcComentario_Esperado = LTRIM(lcComentario)
|
||||
llRetorno_Esperado = .F.
|
||||
lcLinea = LTRIM( lcLineaOriginal, 0, CHR(9), ' ' ) && Este tratamiento lo hace set_Line normalmente
|
||||
|
||||
*-- TEST
|
||||
llRetorno = loObj.lineIsOnlyCommentAndNoMetadata( @lcLinea, @lcComentario, .F., .T. ) && Activando Deep Comment Analysis
|
||||
|
||||
THIS.Evaluate_results( loEx, lnCodError_Esperado, @lcLinea, @lcComentario, @llRetorno, @lcLinea_Esperada, @lcComentario_Esperado, @llRetorno_Esperado, @lcLineaOriginal )
|
||||
|
||||
ENDFUNC
|
||||
|
||||
|
||||
Reference in New Issue
Block a user