martes, marzo 06, 2018

Nueva versión v1.19.50 de FoxBin2Prg (arreglos y mejoras) y Extensiones para PlasticSCM v2.5.50


Parte 1: FoxBin2Prg / Parte 2: Extensiones para Plastic

Parte 1: FoxBin2Prg


FoxBin2Prg es un programa pensado para sustituir a SccText/X y TwoFox y mejorar sus funcionalidades, generando versiones de texto estilo-PRG que pueden ser modificadas y permiten recrear el binario original. Puede ser utilizado con herramientas SCM (Administradores de Control de Código Fuente, como VSS, CVS, SVN) y herramientas DVCS (como Git, Mercurial, Plastic, and others), o como programa independiente, para hacer operaciones de Diff (ver diferencias) y Merge (mezclar cambios).


La lista de cambios es la siguiente:

v1.19.50

* Bug Fix pjx: Algunos campos relacionados con el homedir de los PJX no siempre se sincronizaban bien
 

   En ocasiones podía pasar que al abrir un PJX recién regenerado en el directorio original, preguntara si se quería cambiar al nuevo directorio por defecto. En este caso particular eso ya no pasa.

* Mejora: Agregada una nueva opción de configuración (CFG) BodyDevInfo, desactivada por defecto
 

   En la versión v1.19.49.1 se notificó la ausencia en la exportación de los PJX del campo DevInfo del cuerpo como un Bug, pero realmente ese campo solo tiene info útil en la cabecera, ya que en el cuerpo es un campo compilado con información de archivos include, por lo que se regenera automáticamente al compilar el PJX. Desde esta versión ese campo se vuelve a excluir no solo porque se regenera al compilar, sino porque genera demasiadas diferencias cada vez que se compila, y no es necesario. Se puede activar su guardado usando la nueva opción de CFG BodyDevInfo:1.

* Mejora: Nueva opción de configuración PRG_Compat_Level
 

   Cuando se usa el nuevo valor PRG_Compat_Level: 1 (por defecto es 0) los comentarios de métodos de clases se guardan con el correspondiente HELPSTRING documentado en la ayuda, en vez del actual "&&". No es un cambio importante, solo acerca el código generado un poco más a las especificaciones de VFP. En el futuro este valor podría permitir nuevos valores si se incorporasen más opciones PRG-compatibles.

* Mejora: Agregado workaround para poder exportar/importar datos de tablas cuya protección se basa en los eventos de la base de datos DBC

   Las bases de datos DBC de VFP permiten usar Eventos para detectar apertura y cierre de tablas, lo que a veces puede bloquear o entorpecer la exportación o importación de datos con FoxBin2Prg. Se ha agregado un workaround para saltar este control y poder importar/exportar igualmente. Un ejemplo de esto se tiene en la tabla DVDS.DBF que viene en uno de los ejemplos de VFP del directorio de instalación, donde al intentar abrirla desde la ventana de comandos pide una clave.

v1.19.49.8

* Bug Fix vcx (issue#17): Cuando se convierte a texto un VCX corrupto con objetos duplicados, sale el error "The specified key already exists" (Kirides/Doug Hennig)

   Un bug en la detección de registros para ignorar provocaba en ciertas situaciones errores por nombres duplicados. Aquí se resuelven esos casos.

v1.19.49.7

* Bug Fix dbf: Cuando se regenera el texto de un DBF con campos llamados "X" o "I", se produce un error (Francisco Prieto)

   Este error solo ocurría en las condiciones descriptas porque los campos de tabla tienen prioridad sobre las variables de mismo nombre. Se solucionó anteponiendo "m." a esas variables.

v1.19.49.6

* Bug Fix vcx/vc2 (Issue#15): FoxBin2Prg debería ignorar los registros que ignora el diseñador (Doug Hennig)

   Una característica no-documentada de los VCX es que permite mantener registros desactivados que nunca se mostrarán en el diseñador de clases (el diseñador los ignora). El problema es que estos registros ignorados (muy poco frecuentes) FoxBin2Prg los ve y los incluye dentro del código generado. Desde esta versión se ignoran también.

* Bug Fix vcx/vc2 (Issue#16): FoxBin2Prg codifica la propiedad MemberData con CRLF, lo que puede causar el error "MemberData value is too long" (Doug Hennig)

   La propiedad MemberData tiene una longitud máxima de 8192 bytes, por lo que ahorrar cada byte es importante. Por defecto VFP guarda las propiedades de la misma forma, pero una optimización en el Property Editor (VFPx) permitió compactar esa propiedad aún más, dejando más espacio para nombres de propiedades. FoxBin2Prg ahora la guarda de la misma forma compactada que el Property Editor de VFPx.

v1.19.49.5

* Bug Fix dbf (Issue#13): Cuando se exportan datos de DB2 a DBF, los TABS al inicio de campos memo se pierden (Doug Hennig)

   Los campos memo pueden guardar cualquier tipo de información, incluso caracteres especiales. En este caso, dado que FoxBin2Prg genera una salida a texto con ajuste por tabulaciones para mantener una apariencia fácil de leer y comparar, hacía que el hacer el paso contrario (texto a DBF) se quitaran esas tabulaciones al leer los datos, pudiendo afectar a los campos memo que guarden TABS como parte de su información. Aquí queda corregido ese caso.

v1.19.49.4

* Bug Fix vcx (Issue#11): Cuando se usa ClassPerFile en modo API y se importa una clase, a veces sus nombres (propiedad name="nombre") quedan sin entrecomillar, provocando errores (Lutz Scheffler)

   Como se comenta en el asunto, esto solo ocurría en modo API (uso de FoxBin2Prg en modo clase instanciable).

v1.19.49.3

* Bug Fix dbf: Los campos tipo Double son definidos explícitamente con 0 decimales cuando no se definen decimales (Jerry Stager)

   Cuando no se indica la precisión del campo Double, por defecto VFP asume 2 decimales, pero FoxBin2Prg estaba asumiendo erróneamente 0 decimales. Aunque el dato se guarda bien igual, el problema que se produce es visual, ya que no se mostraban los decimales en este caso.

v1.19.49.2

* Bug Fix vcx: ClassPerFile no funciona correctamente desde la versión v1.19.49.1 (Lutz Scheffler)

   Un condicionado incorrecto producía que no se exporten las clases individuales.

v1.19.49.1

* Bug Fix pjx: El campo DevInfo solo debe usarse para los PJX

   El soporte para este campo en el cuerpo de los PJX estaba implementado en erróneamente para otros tipos de archivo, como vcx/scx. Ahora se circunscribe solo a los PJX.

v1.19.49

* Mejora: Se reemplaza el uso del método MoveFile del objeto Scripting.FileSystemObject por una función Win32API equivalente

   Las funciones Win32API suelen tener un mejor desempeño y fiabilidad ante errores que los objetos del sistema, por eso el cambio da mejor estabilidad.

* Mejora: Agregado soporte para archivos CFG temporales cuando se usa la API de bajo nivel

   Hay casos en los que usando la API de bajo nivel se necesita una configuración temporal que prevalezca sobre la encontrada en el disco. Con este cambio esto ahora es posible.

* Bug Fix: La exportación de una sola clase con ClassPerFile con la sintaxis "classlib.vcx::classname" como parámetro no funciona (Lutz Scheffler)

   Se corrige este caso para permitir exportar una sola clase con esta sintaxis.

* Mejora: Agregado el soporte de importación de una sola clase con la sintaxis "library.vcx::classname::import"como parámetro

   Ahora usando FoxBin2Prg desde la terminal de Windows o en modo API usando un parámetro con sintaxis "library.vcx::classname::import" permite importar la clase indicada solamente, sin importar el resto de clases.

* Mejora: Agregado el soporte de exportación de una sola clase con la sintaxis "library.vcx::classname::export"como parámetro

   Ahora usando FoxBin2Prg desde la terminal de Windows o en modo API usando un parámetro con sintaxis "library.vcx::classname::export" permite exportar la clase indicada solamente, sin exportar el resto de clases.

* Mejora: Ambas sintaxis para importar/exportar una sola clase no requieren de un archivo CFG 

   El soporte de ClassPerFile requiere que esté configurado en un CFG, pero cuando se usa la sintaxis "library.vcx::classname::import" o "library.vcx::classname::export" como sintaxis de parámetro esto no es necesario.

* Bug Fix frx/lbx: Se genera información parcialmente corrompida para los archivos FRX/LBX cuando se usan caracteres "&&"dentro de expresiones de campo (Alejandro A. Sosa)

   Usar este tipo de caracteres, no como comentario, sino como parte de una expresión, es un caso de uso válido que no estaba contemplado, ya que se estaba tomando como comentario, provocando que la expresión se corte por ese punto.

* Mejora: Uso de directorio temporal seguro con sys(2023)

   Cuando sys(2023) apunta a "Program Files", entonces FoxBin2Prg usa getenv("temp") para guardar los temporales y evitar errores por directorio de solo lectura.

* Mejora: Agregadas algunas configuraciones en el config.fpw para intentar evitar interferencias con la configuración actual de VFP



* Mejora: Agregado soporte para guardar el campo "User" (Doug Hennig)

   El campo User no es usado por VFP y por lo tanto no es imprescindible, pero al ser un campo disponible para el usuario, para quienes lo usan puede ser importante, y por eso se ha agregado su soporte.



Como actualizar el FoxBin2Prg existente:Con descargar el zip y reemplazar los archivos en el sitio que los hayan puesto antes es suficiente.



Link de descarga de GitHub



Parte 2: Extensiones para Plastic



Las extensiones para Plastic son un grupo de scripts vbs y programas Visual FoxPro 9 que se configuran dentro de PlasticSCM (herramienta de control de versiones) para poder invocar a FoxBin2Prg desde dentro de la interfaz de Plastic.


La lista de cambios es la siguiente:

> Actualización de FoxBin2Prg: Versión sincronizada con la última versión de FoxBin2Prg



El README.txt explica como se configura en Inglés y Español, y también está explicado en esta nota: Cómo configurar las Herramientas de VFP 9 para Plastic


Como actualizar las existentes:
Con descargarlas y reemplazar los archivos en el sitio que los hayan puesto antes es suficiente.



Link de descarga de las Extensiones FoxBin2Prg para Plastic de GitHub



Thank you for your support!



Artículos relacionados:

FoxBin2Prg, el sucesor mejorado del Scctext

FoxBin2Prg: Detalle de vistas, Datos de uso, Configuraciones y más

FoxBin2Prg: Guía rápida de uso y configuración


 Saludos!

No hay comentarios:

Publicar un comentario