diff --git a/Documentacion/github/FoxBin2Prg_Changes.md b/Documentacion/github/FoxBin2Prg_Changes.md index ff57690..55ff803 100644 --- a/Documentacion/github/FoxBin2Prg_Changes.md +++ b/Documentacion/github/FoxBin2Prg_Changes.md @@ -32,13 +32,13 @@ _**Note:** you can click on the version number for downloading this version from | Rel.Date | Developer | Version | Details | | - | - | - | - | -| 2021/03/05 | LScheffler | [v1.19.59]() | **Feature**: Added option to create config file template based on current values of a directory | -| 2021/03/05 | LScheffler | [v1.19.59]() | **Bug Fix**: RedirectClassType = 2, Path was set wrong | -| 2021/03/05 | LScheffler | [v1.19.59]() | **Bug Fix**: RedirectClassType = 2, UseClassPerFile = 2 failed | -| 2021/xx/xx | LScheffler | [v1.19.59]() | **Doc**: Improved, Better description of ClassPerFileCheck. | - -| 2021/03/04 | Doug Hennig | [v1.19.58]() | Added support for writing to a different folder than the source code using a new tcOutputFolder parameter | -| | | | Added a configuration item: HomeDir, which determines if HomeDir is saved in PJ2 files (the default is 1 for Yes) | +| 2021/03/09 | LScheffler | [v1.19.59]() | **Feature**: Logging of settings as settings object passed to execute method (Option debug > 0) | +| 2021/03/09 | LScheffler | [v1.19.59]() | **Feature**: Added option to create config file template based on current values of a directory | +| 2021/03/09 | LScheffler | [v1.19.59]() | **Bug Fix**: RedirectClassType = 2, Path was set wrong in special config | +| 2021/03/09 | LScheffler | [v1.19.59]() | **Bug Fix**: RedirectClassType = 2, UseClassPerFile = 2 failed | +| 2021/03/09 | LScheffler | [v1.19.59]() | **Doc**: Improved, Better description of ClassPerFileCheck. | +| 2021/03/04 | Doug Hennig | [v1.19.58]() | **Feature**: Added support for writing to a different folder than the source code using a new tcOutputFolder parameter | +| | | | **Feature**: Added a configuration option: HomeDir, which determines if HomeDir is saved in PJ2 files (the default is 1 for Yes) | | 2021/03/05 | LScheffler | [v1.19.57]() | **Bug Fix**: RedirectClassType = 2 mixed up PATH | | | | | **Doc**: Improved | | 2021/03/04 | LScheffler | [v1.19.56]() | **Feature**: New value 2 for option RedirectClassType = 2, just process the single class for input in form file[.baseclass].class.vc2 | @@ -379,4 +379,4 @@ _**Note:** you can click on the version number for downloading this version from This project is part of [VFPX](https://vfpx.github.io/). ---- -Last changed: _2021/03/05_ ![Picture](./pictures/vfpxpoweredby_alternative.gif) \ No newline at end of file +Last changed: _2021/03/09_ ![Picture](./pictures/vfpxpoweredby_alternative.gif) \ No newline at end of file diff --git a/README.md b/README.md index 2f6f587..ce3df6e 100644 --- a/README.md +++ b/README.md @@ -124,8 +124,14 @@ To view a copy of this license, visit http://creativecommons.org/licenses/by/4.0 --- ## Changes See [Changes](./Documentacion/github/FoxBin2prg_Changes.md) -* Bug fixes -* New option -C + +## Changes in 1.19.59 +* Added support for writing to a different folder than the source code using a new tcOutputFolder parameter +* Added a configuration item: HomeDir, which determines if HomeDir is saved in PJ2 files (the default is 1 for Yes) +* Logging of settings as settings object passed to execute method (Option debug > 0) +* Bug Fixes: RedirectClassType = 2 +* Improved, Better description of ClassPerFileCheck. +* Added option to create config file template based on current values of a directory To create config file (working settings) with all values set for a folder. Intended for storing the settings with the project. @@ -133,10 +139,6 @@ See [Changes](./Documentacion/github/FoxBin2prg_Changes.md) DO FOXBIN2PRG.PRG WITH "-C","template.cfg" ==> Generates a file like FoxBin2Prg.cfg config file with recent settings ``` -## Changes in 1.19.59 -* Added support for writing to a different folder than the source code using a new tcOutputFolder parameter -* Added a configuration item: HomeDir, which determines if HomeDir is saved in PJ2 files (the default is 1 for Yes) - ## Changes in 1.19.58 * Added support for writing to a different folder than the source code using a new tcOutputFolder parameter * Added a configuration item: HomeDir, which determines if HomeDir is saved in PJ2 files (the default is 1 for Yes) @@ -149,10 +151,6 @@ DO FOXBIN2PRG.PRG WITH "-c","template.cfg" ==> Generates a template for Fox DO FOXBIN2PRG.PRG WITH "-t","template.dbf.cfg" ==> Generates a template for table.dbf.cfg per table config file with newest settings ``` -### Exe file -Removed exe file. Just a bloat of teh repo, any disciple of the Fox know how to create, if in need. -The prg works anyway. - ### Split of container files VCX, SCX and DBC are container that hold different items. There is was a single option to split them. The split of DBC the same way like VCX/SCX might not be the best choice under all circumstances. @@ -217,4 +215,4 @@ This folder containes the files necessary to run FoxBin2Prg.prg or to create the For usage see [documentation](./Documentacion/github/FoxBin2prg.md) ---- -Last changed: _2021/03/08_ ![Picture](./pictures/vfpxpoweredby_alternative.gif) \ No newline at end of file +Last changed: _2021/03/09_ ![Picture](./pictures/vfpxpoweredby_alternative.gif) \ No newline at end of file diff --git a/ThorUpdater/Project.txt b/ThorUpdater/Project.txt index 97f1e22..01864a9 100644 --- a/ThorUpdater/Project.txt +++ b/ThorUpdater/Project.txt @@ -1,5 +1,5 @@ appName = FoxBin2Prg appID = FoxBin2Prg majorVersion = 1.19.59 -excludeFiles = *.bak,*.bat,*.fxp,*.tbk,*.tmp,*.dat,*.log,*.cvp,README.md,.gitignore,*.zip*,*.7z*,*- copia.*,*.private.*,test_*.*,xx*.*,*.lnk,vfp_init.*,tmp*.*,*.err, *.conflict.*, *.private.* +excludeFiles = *.bak,*.bat,*.fxp,*.tbk,*.tmp,*.dat,*.log,*.cvp,README.md,.gitignore,*.zip*,*.7z*,*- copia.*,*.private.*,test_*.*,xx*.*,*.lnk,vfp_init.*,tmp*.*,*.err, *.conflict.*, *.private., .gitignore, *.pui. *.prj* excludeFolders = *.plastic*,*ThorUpdater*,*Documentacion*,*foxunit*,*foxunit_*,*pruebas varias*,*versiones*,*datos_test* diff --git a/ThorUpdater/Thor_Update_FoxBin2Prg.prg b/ThorUpdater/Thor_Update_FoxBin2Prg.prg index b6d82a7..d910af4 100644 --- a/ThorUpdater/Thor_Update_FoxBin2Prg.prg +++ b/ThorUpdater/Thor_Update_FoxBin2Prg.prg @@ -64,7 +64,7 @@ Developed by Fernando D. Bozzo - GitHub: https://github.com/fdbozzo/foxbin2prg FoxBin2Prg is a 2-way conversor for Visual FoxPro 9 binary files intended to be used with SCM tools (Diff and Merge operations) or just for backup -Supported formats are: PJX, PJM, SCX, VCX, FRX, LBX, MNX, DBC, DBF +Supported formats are: PJX, PJM, SCX, VCX, FRX, LBX, MNX, DBC, DBF, MEM, FKY Demo video using FoxBin2Prg with PlasticSCM: http://youtu.be/sE4wQ50Itqg diff --git a/foxbin2prg.cfg.txt b/foxbin2prg.cfg.txt index 969de9f..0bd0500 100644 --- a/foxbin2prg.cfg.txt +++ b/foxbin2prg.cfg.txt @@ -1,7 +1,7 @@ *################################################################################################################ *FOXBIN2PRG.CFG configuration options: (If no values given, these are the DEFAULTS) -*Version: v1.19.58 -*################################################################################################################ +*Version: v1.19.59 +***************************************************************************************************************** *extension: tx2=newext && Specify extensions to use. Default FoxBin2Prg extensions ends in '2' (see at the bottom) *ShowProgressbar: 1 && 0=Don't show, 1=Allways show, 2= Show only for multi-file processing @@ -18,8 +18,9 @@ *Language: (auto) && Language of shown messages and LOGs. EN=English, FR=French, ES=Español, DE=German, Not defined = AUTOMATIC [DEFAULT] *ExcludeDBFAutoincNextval: 0 && [0=Do not exclude this value from db2], 1=Exclude this value from db2 *PRG_Compat_Level: 0 && [0=Legacy], 1=Use HELPSTRING as Class Procedure comment -*HomeDir: 1 && 0 = don't save HomeDir in PJ2, [1 = save HomeDir in PJ2] +*HomeDir: 1 && 0 = don't save HomeDir in PJ2, [1 = save HomeDir in PJ2] +*---------------------------------------------------------------------------------------------------------------- *-- Convertion options: *PJX_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge) *VCX_Conversion_Support: 2 && 0=No support, 1=Generate TXT only (Diff), 2=Generate TXT and BIN (Merge) @@ -34,6 +35,7 @@ *DBF_Conversion_Included: * && If DBF_Conversion_Support:4, you can specify multiple filemasks: www,fb2p_free.dbf *DBF_Conversion_Excluded: && If DBF_Conversion_Support:4, you can specify multiple filemasks: www,fb2p_free.dbf +*---------------------------------------------------------------------------------------------------------------- *-- DBC options *- File per DBC options (UseFilesPerDBC: 1) *OldFilesPerDBC: 0 && 1=Turns the File per DBC options on, 0 uses the old UseClassPerFile etc settings. @@ -49,29 +51,32 @@ *DBF_BinChar_Base64: 1 && 0=For character type fields, if NoCPTrans 0=do not transform, 1=use Base64 transform (default) *DBF_IncludeDeleted: 0 && 0=Do not include deleted records (default), 1=Include deleted records +*---------------------------------------------------------------------------------------------------------------- *-- CLASS and FORM options *- Class per file options (UseClassPerFile: 1) *UseClassPerFile: 0 && 0=One library tx2 file, 1=Multiple file.class.tx2 files, 2=Multiple file.baseclass.class.tx2 files *RedirectClassPerFileToMain: 0 && 0=Don't redirect to file.tx2, 1=Redirect to file.tx2 when selecting file.class.tx2 -*RedirectClassType: 0 && For classes created with UseClassPerFile>0 in the form file[.baseclass].class.tx2 -* && Those files could be imported like file.tx2::Class::import or like file[.baseclass].class.tx2 -* && For the second form: -* && 0 Redirect file[.baseclass].class.tx2 to file.VCX and add / replace all other classes of this library -* && 1 Redirect file[.baseclass].class.tx2 to file[.baseclass].class.VCX and do not touch file.VCX -* && 2 Redirect file[.baseclass].class.tx2 to file.VCX and do not touch other classes of file.VCX +* && RedirectClassType: 1 precedes +*RedirectClassType: 0 && For classes created with UseClassPerFile>0 in the form file[.baseclass].class.tx2 +* && Those files could be imported like file.tx2::Class::import or like file[.baseclass].class.tx2 +* && For the second form: +* && 0 Redirect file[.baseclass].class.tx2 to file.VCX and add / replace all other classes of this library +* && 1 Redirect file[.baseclass].class.tx2 to file[.baseclass].class.VCX and do not touch file.VCX +* && 2 Redirect file[.baseclass].class.tx2 to file.VCX and do not touch other classes of file.VCX *ClassPerFileCheck: 0 && 0=Don't check file.class.tx2 inclusion, 1=Check file.class.tx2 inclusion +* && Only used if import file is in file[.baseclass].class.tx2 syntax +* && Ignored for RedirectClassType: 2 +*---------------------------------------------------------------------------------------------------------------- *-- Example configuration for SourceSafe compatibility: -*extension: pj2=pja && Text file to PJX -*extension: vc2=vca && Text file to VCX -*extension: sc2=sca && Text file to SCX -*extension: fr2=fra && Text file to FRX -*extension: lb2=lba && Text file to LBX -*extension: mn2=mna && Text file to MNX -*extension: db2=dba && Text file to DBF -*extension: dc2=dca && Text file to DBC -*-- Additional extensions -*extension: fk2=fkx && Text file to FKY -*extension: me2=fkx && Text file to MEM - -* \ No newline at end of file +*extension: pj2=pja && Text file to PJX +*extension: vc2=vca && Text file to VCX +*extension: sc2=sca && Text file to SCX +*extension: fr2=fra && Text file to FRX +*extension: lb2=lba && Text file to LBX +*extension: mn2=mna && Text file to MNX +*extension: db2=dba && Text file to DBF +*extension: dc2=dca && Text file to DBC +*-- Additional extensions +*extension: fk2=fkx && Text file to FKY +*extension: me2=fkx && Text file to MEM diff --git a/foxbin2prg.exe b/foxbin2prg.exe index 1376fc7..250351a 100644 Binary files a/foxbin2prg.exe and b/foxbin2prg.exe differ diff --git a/foxbin2prg.pjt b/foxbin2prg.pjt index 99483c4..3dbf174 100644 Binary files a/foxbin2prg.pjt and b/foxbin2prg.pjt differ diff --git a/foxbin2prg.pjx b/foxbin2prg.pjx index 85d6c37..3d27a61 100644 Binary files a/foxbin2prg.pjx and b/foxbin2prg.pjx differ diff --git a/foxbin2prg.prg b/foxbin2prg.prg index 396a64e..53c7b05 100644 --- a/foxbin2prg.prg +++ b/foxbin2prg.prg @@ -249,10 +249,11 @@ * 05/03/2021 LScheffler v1.19.57 Bug Fix: For RedirectClassType = 2, Path was set wrong * 2021-03-04 DH v1.19.58 Enhancement: added support for writing to a different folder than the source code (Doug Hennig) * 2021-03-04 DH v1.19.58 Enhancement: added configuration item: HomeDir, which determines if HomeDir is saved in PJ2 files (Doug Hennig) -* 08/03/2021 LScheffler v1.19.59 Bug Fix: For RedirectClassType = 2, Path was set wrong -* 08/03/2021 LScheffler v1.19.59 Doc: Improved, Better description of ClassPerFileCheck. -* 08/03/2021 LScheffler v1.19.59 Bug Fix: RedirectClassType = 2, UseClassPerFile = 2 failed. -* 08/03/2021 LScheffler v1.19.59 Enhancement: Added option to create config file template based on current values of a directory +* 09/03/2021 LScheffler v1.19.59 Bug Fix: For RedirectClassType = 2, Path was set wrong +* 09/03/2021 LScheffler v1.19.59 Doc: Improved, Better description of ClassPerFileCheck. +* 09/03/2021 LScheffler v1.19.59 Bug Fix: RedirectClassType = 2, UseClassPerFile = 2 failed. +* 09/03/2021 LScheffler v1.19.59 Enhancement: Added option to create config file template based on current values of a directory +* 09/03/2021 LScheffler v1.19.59 Enhancement: Log settings object handed to execute (Debug > 0) * * *--------------------------------------------------------------------------------------------------- @@ -395,8 +396,8 @@ * generates classlib.class.vcx and tries to recompile classlib.vcx * fails silent if classlib.vcx exists (compiles wrong lib), with message if not. * 05/03/2021 Lutz Scheffler Bug report v1.19.56 For RedirectClassType = 2, Path was set wrong -* xx/03/2021 Lutz Scheffler Bug report v1.19.57 For RedirectClassType = 2, Path was set wrong -* xx/03/2021 Lutz Scheffler Bug report v1.19.57 RedirectClassType = 2, UseClassPerFile = 2 failed. +* 09/03/2021 Lutz Scheffler Bug report v1.19.57 For RedirectClassType = 2, Path was set wrong +* 09/03/2021 Lutz Scheffler Bug report v1.19.57 RedirectClassType = 2, UseClassPerFile = 2 failed. * * @@ -2146,9 +2147,10 @@ Define Class c_foxbin2prg As Session * tc_InputFile (v! IN ) Nombre completo (fullpath) del archivo a convertir o nombre del directorio a procesar * tc_InputFile_Type (@? IN ) Tipo de archivo de entrada: (D)irectory, (F)ile, (Q)uerySupport * toParentCFG (@? IN ) (Uso interno) Si se pasa un valor, el nuevo CFG copiará primero sus valores de aquí para heredarlos +* tl_ForceLog (v? IN ) Force logging of settings. used on cfg setting as object *-------------------------------------------------------------------------------------------------------------- Lparameters tcDontShowProgress, tcDontShowErrors, tcNoTimestamps, tcDebug, tcRecompile, tcExtraBackupLevels ; - , tcClearUniqueID, tcOptimizeByFilestamp, tc_InputFile, tcInputFile_Type, toParentCFG + , tcClearUniqueID, tcOptimizeByFilestamp, tc_InputFile, tcInputFile_Type, toParentCFG, tl_ForceLog #If .F. Local toParentCFG As CL_CFG Of 'FOXBIN2PRG.PRG' @@ -2713,11 +2715,13 @@ Define Class c_foxbin2prg As Session .n_CFG_EvaluateFromParam = .n_CFG_Actual Endif Else -*-- Si no es llMasterEval, es porque esta llamada es cíclica desde este mismo método, -*-- y no hay parámetros para evaluar, ya que se mandan todos vacíos desde el inicial. - Exit + *-- Si no es llMasterEval, es porque esta llamada es cíclica desde este mismo método, + *-- y no hay parámetros para evaluar, ya que se mandan todos vacíos desde el inicial. + If Not tl_ForceLog Then + Exit + Endif &&NOT tl_ForceLog Endif - + .writeLog( '> ' + Upper(loLang.C_USING_THIS_SETTINGS_LOC) + ':' ) .writeLog( C_TAB + 'n_CFG_Actual: ' + Transform(.n_CFG_Actual) + Icase(.n_CFG_Actual=1, ' [MASTER]', ' [SECONDARY]') ) .writeLog( C_TAB + 'l_CFG_CachedAccess: ' + Transform(.l_CFG_CachedAccess) ) @@ -3338,8 +3342,13 @@ Define Class c_foxbin2prg As Session *-- ARCHIVO DE CONFIGURACIÓN PRINCIPAL +*!* Changed by: Lutz Scheffler 09.3.2021 +*!* change date="{^2021-03-09,08:06:00}" +* log settings for tcCFG_File - cfg as object +SET STEP ON .evaluateConfiguration( @tcDontShowProgress, @tcDontShowErrors, @tcNoTimestamps, @tcDebug, @tcRecompile, @tcBackupLevels ; - , @tcClearUniqueID, @tcOptimizeByFilestamp, @tc_InputFile, @lcInputFile_Type ) + , @tcClearUniqueID, @tcOptimizeByFilestamp, @tc_InputFile, @lcInputFile_Type, , Vartype(tcCFG_File) = "O" ) +*!* /Changed by: Lutz Scheffler 09.3.2021 *!* Changed by: Lutz Scheffler 04.3.2021 *!* change date="{^2021-03-04,13:25:00}"