Giter Club home page Giter Club logo

letodbf's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

letodbf's Issues

WARNING: You need to implement LZ4_DEPRECATED for this compiler

XCC: can't compile 3rd party 'lz4.c', compile it with PellesC >= 4.5 manually,
and replace it in list of files for xBuilder with resulting 'lz4.obj':
pocc.exe -Fo"obj\lz4.obj" -Ot -I"include" -I"source\3rd\lz4\lib" -I%PATH_XHB%"\include"
-I%PATH_POCC%"\Include" -I%PATH_POCC%"\include\Win" "source\3rd\lz4\lib\lz4.c"

C:\PROGRAMAS\LetoDBf>pocc.exe -Fo"obj\lz4.obj" -Ot -I"include" -I"source\3rd\lz4\lib" -I"C:\XHB123\include" -I"C:\PellesC\Include" -I"C:\PellesC\Include\Win" "source\3rd\lz4\lib\lz4.c"
WARNING: You need to implement LZ4_DEPRECATED for this compiler

I have PellesC v11.0 stable version.
How can I compile it with PellesC? It´s not working.

/usr/bin/ld: cannot find -lgtxwc: No such file or directory

root@Debian:/home/anderson/LetoDBf/tests# hbmk2 excltest.prg

root@Debian:/home/anderson/LetoDBf/tests# hbmk2 excltest.prg
hbmk2: Processing local make script: hbmk.hbm
Harbour 3.2.0dev (r2305191429)
Copyright (c) 1999-2021, https://harbour.github.io/
Compiling 'excltest.prg'...
Lines 82, Functions/Procedures 2
Generating C source output to '/tmp/hbmk_pxtdin.dir/excltest.c'... Done.
/usr/bin/ld: cannot find -lgtxwc: No such file or directory
/usr/bin/ld: cannot find -lX11: No such file or directory
collect2: error: ld returned 1 exit status
hbmk2: Error: Running linker. 1
gcc '/tmp/hbmk_pxtdin.dir/excltest.o' '/tmp/hbmk_pxtdin.dir/hbmk_1jhq2u.o'   -Wl,--start-group -lgtxwc -lrddleto -lhbcplr -lhbdebug -lX11 -lharbour   -Wl,--end-group -oexcltest -L/usr/local/lib/harbour -L../lib -L/usr/X11R6/lib
root@Debian:/home/anderson/LetoDBf/tests# 

I need help to compile excltest.prg on Linux.
I´m using Debian 12. I installed gcc and build-essential, am I missing something?

Warnings Build Lib

2019-05-09 15:25 UTC+0100 Rolf 'elch' Beckmann (elchs users.noreply.github.com)
; changes relate to the C-API and should not disturb the RDD activity,
except a serious change of record lock registration moved into letocl.c

Warnings:

../../../../source/client/letocl.c: In function 'LetoDbOrdFocus':
../../../../source/client/letocl.c:5975:19: warning: potential null pointer dereference [-Wnull-dereference]
*iListLen = eprintf( ptr, "%u;%s;%c;%s", iCurrent, pTag->TagName, pTag->cKeyType, pTag->KeyExpr );
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../../source/client/letocl.c:5975:77: warning: potential null pointer dereference [-Wnull-dereference]
*iListLen = eprintf( ptr, "%u;%s;%c;%s", iCurrent, pTag->TagName, pTag->cKeyType, pTag->KeyExpr );
~~~~^~~~~~~~~~
../../../../source/client/letocl.c:5975:19: warning: potential null pointer dereference [-Wnull-dereference]
*iListLen = eprintf( ptr, "%u;%s;%c;%s", iCurrent, pTag->TagName, pTag->cKeyType, pTag->KeyExpr );
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../../source/client/letocl.c:5975:19: warning: potential null pointer dereference [-Wnull-dereference]
../../../../source/client/letocl.c:5975:77: warning: potential null pointer dereference [-Wnull-dereference]
*iListLen = eprintf( ptr, "%u;%s;%c;%s", iCurrent, pTag->TagName, pTag->cKeyType, pTag->KeyExpr );
~~~~^~~~~~~~~~
../../../../source/client/letocl.c:5975:19: warning: potential null pointer dereference [-Wnull-dereference]
*iListLen = eprintf( ptr, "%u;%s;%c;%s", iCurrent, pTag->TagName, pTag->cKeyType, pTag->KeyExpr );
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Compiling the server with HB32

C:\PROGRAMAS\LetoDBf>hbmk2 letodb.hbp
hbmk2: Processando opções do ambiente: -comp=mingw
source\server\server.prg(348) Warning W0001 Ambiguous reference 'LETOOPT_UDFENABLED'
source\server\server.prg(349) Warning W0001 Ambiguous reference 'LETOOPT_DEBUGLEVEL'
source\server\server.prg(393) Warning W0001 Ambiguous reference 'LETOOPT_UDFENABLED'

There was these errors. But then I downloaded again newest HB32 and then HOORAY!!! You can mark this done.

Unsafe casting causes unrecoverable error when seeking database opened in different codepage

https://github.com/elchs/LetoDBf/blob/master/source/client/leto1.c#L561

If i'm not mistaken it is unsafe method to cast. You can point to memory where the other "half" of the number is not zeroed, which will result in unsuprisingly large value as uiKeyLen. Got problems with this when was testing something with DBF codepage different than in Harbour VM.

I've fixed it like this here, but you may prefer some other method.

--- a/source/client/leto1.c
+++ b/source/client/leto1.c
@@ -558,9 +558,10 @@ static HB_USHORT leto_KeyToStr( LETOAREAP pArea, char * szKey, char cType, PHB_I
 #else
          if( pArea->area.cdPage != HB_CDP_PAGE() )
          {
-            char * pBuff = hb_cdpnDup( hb_itemGetCPtr( pKey ), ( HB_SIZE * ) &uiKeyLen, HB_CDP_PAGE(), pArea->area.cdPage );
+            HB_SIZE nCdpLen = ( HB_SIZE ) uiKeyLen;
+            char * pBuff = hb_cdpnDup( hb_itemGetCPtr( pKey ), &nCdpLen, HB_CDP_PAGE(), pArea->area.cdPage );

-            memcpy( szKey, pBuff, uiKeyLen );
+            memcpy( szKey, pBuff, nCdpLen );
             hb_xfree( pBuff );
          }
          else
#endif

LetoDBf for xHarbour

Hey Rolf,

Do you have a build script for xHarbour Builder for LetoDBf?
Thanks!

Patrick

SET DEFAULT TO don´t work with Letodbf?

Hi, Elchs

I use SET DEFAULT TO point my databases so instead I set to localhost but the command USE is not working.
Example:

xPath := "//127.0.0.1:2812/"
SET DEFAULT TO (xPATH)
leto_Connect( xPath, , , 6000, 100)
USE CADASTRO ALIAS CAD SHARED New
SET INDEX TO ("CADASTRO"+INDEXEXT())

This should work but in the example above Leto can´t find the database.
So I made this test below that works:

xPath := "//127.0.0.1:2812/"
SET DEFAULT TO (xPATH)
leto_Connect( xPath, , , 6000, 100)
USE (xPATH+"CADASTRO") ALIAS CAD SHARED New
SET INDEX TO (xPATH+"CADASTRO"+INDEXEXT())

The problem is SET DEFAULT TO is not working as expected and I would have to change several lines of my program to work out the problem.
Why SET DEFAULT TO is not working with Leto? Am I missing something? Is there something that could be done?

Warning while make rddleto.hbp

Hi!

../../../../source/client/leto1.c:1204:12: warning: this statement may fall thro
ugh [-Wimplicit-fallthrough=]
          if( pField->uiLen == 4 )
            ^
../../../../source/client/leto1.c:1210:7: note: here
       case HB_FT_MODTIME:
       ^~~~

Best regards,
Itamar M. Lins Jr.

Warning Compilations last commit

I updated letodbf yesterday and compiled letodb.exe
the compilation presented these warnings

hbmk2: Harbour: Compilando módulos...
hbmk2: Compilando recursos...
hbmk2: Compilando...
../../../../source/server/letofunc.c: In function 'leto_dbEvalJoinAdd':
../../../../source/server/letofunc.c:7445:39: warning: ?: using integer constants in boolean context [-Wint-in-bool-context]
if( s_iDebugMode > ! bValid ? 0 : 20 )
~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~
../../../../source/server/letofunc.c: In function 'HB_FUN_LETO_DBEVAL':
../../../../source/server/letofunc.c:8230:37: warning: ?: using integer constants in boolean context, the expression will always evaluate to 'true' [-Wint-in-bool-context]
if( s_iDebugMode > bValid ? 1 : 20 )
~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~

INDEX ... FOR condition

Error LETO/1003 : Variable does not exist XANO
This error came out with LETO_DBF.
xANO is a public variable and it is seen (exist) in debug runtime normally. It is used in a temp index with a for condition.
The code is:

   SELECT EMP
   cRANDOM1  := ALLTRIM(STR(RAN(9999)))
   fINDEX1   := xTEMP+"TEMP" + cRANDOM1 + INDEXEXT()
   INDEX ON CNPJ+ANO TAG TEMP TO (fINDEX1) ;
         FOR ANO=xANO ;
         ADDITIVE TEMPORARY

That error alert gives me 2 options: QUIT or RETRY.
If I RETRY it works ok...
How can I stop this alert?

The FOR expression cannot exceed 250 characters in length. RDDs that do not support a FOR condition when creating indexes generate a runtime error when this option is used.

Anyway it creates the index correctly if I RETRY so maybe it could be fixed or I could make an error handler to make this RETRY automatically but I don´t know how.

Can´t compile lib with xharbour 1.2.3

MAKE Version 5.2 Copyright (c) 1987, 2000 Borland
IF EXIST "obj\api\letocl.obj" del obj\api\letocl.obj
bcc32 -c -Iinclude;I:\XHARBOUR\include -d -tWM -D__WIN32__ -D__CONSOLE__ -DUSE_PMURHASH=1 -D__LETO_C_API__=1 -DLETO_NO_MT=1 -DLETO_NO_THREAD=1 -oobj\api\letocl.obj source\client\letocl.c
Borland C++ 5.82 for Win32 Copyright (c) 1993, 2005 Borland
source\client\letocl.c:
Error E2209 I:\XHARBOUR\include\hbzlib.h 41: Unable to open include file '../source/rtl/zlib/zlib.h'
Warning W8017 I:\XHARBOUR\include\hbapirdd.h 125: Redefinition of 'HB_FT_TIME' is not identical
Error E2139 include\letocl.h 235: Declaration missing ;
Error E2139 include\letocl.h 286: Declaration missing ;
Error E2139 include\letocl.h 287: Declaration missing ;
Warning W8017 include\rddleto.ch 111: Redefinition of 'DBOI_TEMPORARY' is not identical
Warning W8072 source\client\letocl.c 1190: Suspicious pointer arithmetic in function leto_RecvFirst
Warning W8072 source\client\letocl.c 1418: Suspicious pointer arithmetic in function leto_Recv
Error E2451 source\client\letocl.c 1444: Undefined symbol 'zstream' in function leto_Recv
Warning W8072 source\client\letocl.c 1470: Suspicious pointer arithmetic in function leto_Recv
Warning W8072 source\client\letocl.c 1497: Suspicious pointer arithmetic in function leto_Recv
Error E2451 source\client\letocl.c 1504: Undefined symbol 'PHB_LZ4NET' in function leto_Recv
Error E2121 source\client\letocl.c 1504: Function call missing ) in function leto_Recv
Warning W8065 source\client\letocl.c 1544: Call to function 'LZ4_COMPRESSBOUND' with no prototype in function leto_Send
Error E2451 source\client\letocl.c 1594: Undefined symbol 'PHB_LZ4NET' in function leto_Send
Error E2121 source\client\letocl.c 1594: Function call missing ) in function leto_Send
Error E2121 source\client\letocl.c 1607: Function call missing ) in function leto_Send
Warning W8072 source\client\letocl.c 1630: Suspicious pointer arithmetic in function leto_Send
Warning W8065 source\client\letocl.c 2111: Call to function 'LZ4_decompress_safe' with no prototype in function leto_lz4Uncompress
Warning W8065 source\client\letocl.c 2117: Call to function 'LZ4_compress_fast' with no prototype in function leto_lz4Compress
Warning W8065 source\client\letocl.c 2167: Call to function 'LZ4_COMPRESSBOUND' with no prototype in function leto_CryptText
Warning W8072 source\client\letocl.c 2206: Suspicious pointer arithmetic in function leto_CryptText
Warning W8072 source\client\letocl.c 2212: Suspicious pointer arithmetic in function leto_CryptText
Warning W8072 source\client\letocl.c 2213: Suspicious pointer arithmetic in function leto_CryptText
Warning W8072 source\client\letocl.c 2215: Suspicious pointer arithmetic in function leto_CryptText
Warning W8072 source\client\letocl.c 2219: Suspicious pointer arithmetic in function leto_CryptText
Warning W8072 source\client\letocl.c 2220: Suspicious pointer arithmetic in function leto_CryptText
Warning W8072 source\client\letocl.c 2224: Suspicious pointer arithmetic in function leto_CryptText
Warning W8072 source\client\letocl.c 2227: Suspicious pointer arithmetic in function leto_CryptText
Warning W8072 source\client\letocl.c 2354: Suspicious pointer arithmetic in function leto_replSkipBuf
Warning W8072 source\client\letocl.c 2368: Suspicious pointer arithmetic in function leto_replSkipBuf
Warning W8072 source\client\letocl.c 2374: Suspicious pointer arithmetic in function leto_replSkipBuf
Warning W8072 source\client\letocl.c 2409: Suspicious pointer arithmetic in function leto_AddTransBuffer
Warning W8072 source\client\letocl.c 2424: Suspicious pointer arithmetic in function leto_SearchTransList
Warning W8072 source\client\letocl.c 2425: Suspicious pointer arithmetic in function leto_SearchTransList
Warning W8072 source\client\letocl.c 2456: Suspicious pointer arithmetic in function leto_AddTransList
Warning W8072 source\client\letocl.c 2457: Suspicious pointer arithmetic in function leto_AddTransList
Warning W8072 source\client\letocl.c 3076: Suspicious pointer arithmetic in function leto_ParseRecord
Warning W8072 source\client\letocl.c 3467: Suspicious pointer arithmetic in function LetoConnectionOpen
Warning W8072 source\client\letocl.c 3481: Suspicious pointer arithmetic in function LetoConnectionOpen
Error E2451 source\client\letocl.c 3774: Undefined symbol 'zstream' in function LetoConnectionClose
Error E2451 source\client\letocl.c 3777: Undefined symbol 'PHB_LZ4NET' in function LetoConnectionClose
Error E2121 source\client\letocl.c 3777: Function call missing ) in function LetoConnectionClose
Error E2451 source\client\letocl.c 3781: Undefined symbol 'zstream' in function LetoConnectionClose
Warning W8075 source\client\letocl.c 4690: Suspicious pointer conversion in function LetoDbGetField
Warning W8072 source\client\letocl.c 4700: Suspicious pointer arithmetic in function LetoDbGetField
Warning W8072 source\client\letocl.c 4720: Suspicious pointer arithmetic in function LetoDbGetField
Warning W8012 source\client\letocl.c 4896: Comparing signed and unsigned values in function LetoDbPutField
Warning W8072 source\client\letocl.c 5088: Suspicious pointer arithmetic in function LetoDbGoTo
Error E2356 source\client\letocl.c 5329: Type mismatch in redeclaration of 'LetoDbSetRelation'
Error E2344 include\letocl.h 351: Earlier declaration of 'LetoDbSetRelation'
Error E2356 source\client\letocl.c 5367: Type mismatch in redeclaration of 'LetoDbCommit'
Error E2344 include\letocl.h 338: Earlier declaration of 'LetoDbCommit'
Warning W8072 source\client\letocl.c 5669: Suspicious pointer arithmetic in function leto_AddRecLock
Warning W8072 source\client\letocl.c 5684: Suspicious pointer arithmetic in function leto_DelRecLock
Warning W8072 source\client\letocl.c 5689: Suspicious pointer arithmetic in function leto_DelRecLock
Warning W8072 source\client\letocl.c 5751: Suspicious pointer arithmetic in function LetoDbEval
Warning W8072 source\client\letocl.c 5753: Suspicious pointer arithmetic in function LetoDbEval
Warning W8072 source\client\letocl.c 5754: Suspicious pointer arithmetic in function LetoDbEval
Warning W8072 source\client\letocl.c 5756: Suspicious pointer arithmetic in function LetoDbEval
Warning W8072 source\client\letocl.c 5757: Suspicious pointer arithmetic in function LetoDbEval
Warning W8072 source\client\letocl.c 5759: Suspicious pointer arithmetic in function LetoDbEval
Warning W8072 source\client\letocl.c 5760: Suspicious pointer arithmetic in function LetoDbEval
Warning W8072 source\client\letocl.c 6395: Suspicious pointer arithmetic in function LetoVarSet
Warning W8072 source\client\letocl.c 7119: Suspicious pointer arithmetic in function LetoToggleZip
Error E2451 source\client\letocl.c 7134: Undefined symbol 'zstream' in function LetoToggleZip
Error E2451 source\client\letocl.c 7137: Undefined symbol 'PHB_LZ4NET' in function LetoToggleZip
Error E2121 source\client\letocl.c 7137: Function call missing ) in function LetoToggleZip
Error E2451 source\client\letocl.c 7141: Undefined symbol 'zstream' in function LetoToggleZip
Error E2451 source\client\letocl.c 7147: Undefined symbol 'zstream' in function LetoToggleZip
Error E2451 source\client\letocl.c 7148: Undefined symbol 'zstream' in function LetoToggleZip
Warning W8065 source\client\letocl.c 7148: Call to function 'hb_lz4netOpen' with no prototype in function LetoToggleZip
Error E2451 source\client\letocl.c 7153: Undefined symbol 'zstream' in function LetoToggleZip
Error E2228 source\client\letocl.c 7153: Too many error or warning messages in function LetoToggleZip
*** 26 errors in Compile ***

** error 1 ** deleting obj\api\letocl.obj

rddleto warnings mingw 7

Hi!
Update of GIT, 2017-07-11 12:08

~\Documents\GitHub\letodbf\LetoDBf [master = +3 ~0 -0 !]> hbmk2 .\rddleto.hbp -r
ebuildall
hbmk2: Harbour: Compilando módulos...
hbmk2: Compilando...
../../../../source/client/leto1.c: In function 'letoPutValue':
../../../../source/client/leto1.c:1594:7: warning: this statement may fall throu
gh [-Wimplicit-fallthrough=]
       {
       ^
../../../../source/client/leto1.c:1624:7: note: here
       case HB_FT_TIMESTAMP:
       ^~~~
../../../../source/client/leto1.c: In function 'letoGetValue':
../../../../source/client/leto1.c:1179:12: warning: this statement may fall thro
ugh [-Wimplicit-fallthrough=]
          if( pField->uiLen == 4 )
            ^
../../../../source/client/leto1.c:1189:7: note: here
       case HB_FT_MODTIME:
       ^~~~
hbmk2: Criando biblioteca estática... lib\librddleto.a
~\Documents\GitHub\letodbf\LetoDBf [master = +3 ~0 -0 !]>

Best regards,
Itamar M. Lins Jr.

Error compiling

Hi

i try to compile with make_b32.bat

I've this errors

MAKE Version 5.2 Copyright (c) 1987, 2000 Borland
bcc32 -c -Iinclude;c:\hal\harbour.320\include -d -tWM -D__WIN32__ -D__CONSOLE__ -DUSE_PMURHASH=1 -oobj\b32\letocl.obj source\client\letocl.c
Borland C++ 5.82 for Win32 Copyright (c) 1993, 2005 Borland
source\client\letocl.c:
Error E2227 source\client\letocl.c 1276: Extra parameter in call to hb_znetFlush in function leto_Send
Warning W8065 source\client\letocl.c 1291: Call to function 'hb_socketSetError' with no prototype in function leto_Send
Warning W8065 source\client\letocl.c 1319: Call to function 'hb_socketSetError' with no prototype in function leto_DataSendRecv
Warning W8065 source\client\letocl.c 1335: Call to function 'hb_socketSetError' with no prototype in function leto_DataSendRecv
Warning W8065 source\client\letocl.c 3270: Call to function 'hb_fsPipeWrite' with no prototype in function LetoConnectionClose
*** 1 errors in Compile ***

** error 1 ** deleting obj\b32\letocl.obj

APPEND FROM SDF / XHARBOUR

Hi Elchs,
In leto_std.ch there is only one:

#command APPEND [FROM <(f)>] [FIELDS <fields,...>] ;
                [FOR <for>] [WHILE <while>] [NEXT <next>] ;
                [RECORD <rec>] [<rest:REST>] [ALL] [VIA <rdd>] ;
                [CODEPAGE <cp>] => ;
         Leto_dbApp( <(f)>, { <(fields)> }, ;
                     { <{for}>, <"for"> }, { <{while}>, <"while"> }, <next>, <rec>, <.rest.>, <rdd>,, <cp> )

There is no APPEND FROM SDF? I found the only one command above for APPEND.
In std.ch there is:

#command APPEND [FROM <(f)>] [FIELDS <fields,...>] ;
                [FOR <for>] [WHILE <while>] [NEXT <next>] ;
                [RECORD <rec>] [<rest:REST>] [ALL] [VIA <rdd>] ;
                [CODEPAGE <cp>] [CONNECTION <conn>] => ;
         __dbApp( <(f)>, { <(fields)> }, ;
                  <{for}>, <{while}>, <next>, <rec>, <.rest.>, <rdd>, <conn>, <cp> )

But there is also:

#command APPEND [FROM <(f)>] [SDF] [FIELDS <fields,...>] ;
                [FOR <for>] [WHILE <while>] [NEXT <next>] ;
                [RECORD <rec>] [<rest:REST>] [ALL] [CODEPAGE <cp>] => ;
         __dbSDF( .F., <(f)>, { <(fields)> }, ;
                  <{for}>, <{while}>, <next>, <rec>, <.rest.>, <cp> )

...for APPEND FROM SDF
I am getting an open error

Randomly getting Unrecoverable error 9201: hb_cdxPageSeekKey: wrong parent key.

I am getting this error randomly running Letodbf server in a Windows Server 2019:

Unrecoverable error 9201: hb_cdxPageSeekKey: wrong parent key.

In a simple seek command.
Letodbf server and client app crash.
I have to re-create the index file in order to be back in business.
In a Windows Server 2008 environment, it used to occur once a week or less, but in W2019 it occurs almost every day, sometimes twice a day...
I found very few references about this error and none of them helped.
The last one
Tables are shared between Letodbf and other exes executed via RDP Terminal services (so, local access), but all of them are part of the same (big) system.
A whole message sample in :

Breakdown at: 2022.05.20 10:37:28.712
Unrecoverable error 9201: hb_cdxPageSeekKey: wrong parent key.  
------------------------------------------------------------------------
User: 10.5.2.109 SVLABTS balan.exe  connection 14
Command: seek <e;24;A;�640557    20220583>
Table: ACE354.001

Almost all the time its in the same table named ACE354.001 ( its extension is 001 but this is a regular DBF created and used only from Harbour ) with only C, N, and L fields, no memos.
From time to time it affects ( rarely ) another table.

A thing that is interesting is that it crashs when the system is working when many people is working on it, near the pike of users.
When fewer users are in it never goes down.
Taking this in mind, the reference I found in the internet that was closely related with the issue was harbour/core#60.
I tried to change Windows System Memory parameters listed in quoted article, MS KB article with no success.

The Letodbf INI is:

Server = 127.0.0.1
Port = 2812
DataPath = C:\Folder
LogPath = C:\Folder\LetoLogs
Default_Driver = CDX
Lock_Scheme = 3
Memo_Type = FPT
Share_Tables = 1
No_Save_WA = 1
Lower_Path = 0
EnableFileFunc = 1
EnableAnyExt = 1
Allow_UDF = 1
Pass_for_Login = 0
Pass_for_Manage = 0
Pass_for_Data = 0
;Pass_File = "leto_users"
Cache_Records = 21
;Max_Vars_Number = 1000
;Max_Var_Size = 67108864
Tables_Max  = 2999
;Users_Max = 99
Debug = 2
Optimize = 1
;AutOrder = 0
;ForceOpt = 0
;TimeOut = 360
;Zombie_Check = 0
;Server_User = advantage
;Server_UID = 1000
;Server_GID = 4
DataBase = /
;Backup = /tmp/backup
Mask = *.dbf,*.dbt,*.ntx
Lock = 1
Seconds = 30
Wait = 1
;ArcCmd = tar -cvzf /tmp/backup/leto.tar.gz /tmp/backup/*

I am stucked and out of options and any help will be appreciated.

FILES IN APLICATION SIDE

I had these 2 issues:
IF oFTP:DOWNLOADFILE("controli.txt", cFTPFILE)
If I download a file it will be in aplication side (It won´t be in letodb.ini DATAPATH) .
I need to download and memoread it:

cLICENCAS := MEMOREAD(cAMBI+"controli.txt") // return ""
cLICENCAS := MEMOREAD("controli.txt") // return ""

and
SET PRINTER TO (ARQUIVO)
If I save a report to a file it will be in aplication side too.

cAMBI := CURDRIVE()+":\"+CURDIR()+"\"
SET DEFAULT TO .
SET PATH TO	(cAMBI)

I tryed that above but didn´t work.
I am using:

	#include "rddleto.ch"  // defines do RDD
	#include "dbinfo.ch"   // Header file for the RDD API Index OrderInfo and DBInfo support
	#include "leto_std.ch" // traduz os comandos para o LETO
	#define __LETO_TRANSLATE_FILE_ALL
	#include "letofile.ch" // traduz todas as funções para o LETO
	REQUEST RDDLETO
	REQUEST RDDInfo

I expected to find the local files using application path in SET PATH but not.

Letodbf 2017-03-24 15:00 UTC+0100 Warning

'''
hbmk2: Compilando...
../../../../source/server/letovars.c: In function 'HB_FUN_LETO_VARGETLIST':
../../../../source/server/letovars.c:390:17: warning: null pointer dereference [
-Wnull-dereference]
if( *pVar )
^~~~~
'''

Best regards,
Itamar M. Lins Jr.

DOS error 53 on SET(_SET_PRINTFILE, cPath + "TESTE.TXT", .F.)

Hello,
Initially, congratulate him for contributions in the community.
When using SET (_SET_PRINTFILE, cPath + "TEST.TXT", .F.), In the LetoDbf environment, I get a

Error TERM / 2014 Create error: //127.0.0.1:2812/TESTE.TXT
(DOS Error 53)

            Quit Retry Default

Is this a real mistake?
greetings

GPF in Leto_Connect() when connection is down.

This little snippet causes GPF in Leto_Connect():

FUNC Main()

? 'Leto_Connect("192.168.1.120:2812") =',Leto_Connect("192.168.1.120:2812")
INKEY(0)
? "Leto_Disconnect() =",Leto_Disconnect()
INKEY(0)
? "Leto_Connect() =",Leto_Connect() // there is the GPF
INKEY(0)

RETURN

I'm using LetoDbf with timestamp in changelog.txt: 2017-12-30 12:30 UTC+0100

hb_out.log:

Application Internal Error - D:\Z_Test\Leto\test.exe
Terminated at: 2018-01-07 18:07:37
Unrecoverable error 6005: Exception error:

    Exception Code:C0000005 ACCESS_VIOLATION
    Exception Address:00DECD36
    EAX:00000000  EBX:000A5FE4  ECX:00000005  EDX:00000000
    ESI:0037F5AC  EDI:00000005  EBP:000923E4
    CS:EIP:0023:00DECD36  SS:ESP:002B:0037F4AC
    DS:002B  ES:002B  FS:0053  GS:002B
    Flags:00010246
    Exception Parameters: 00000001 00000000
    CS:EIP: 89 38 8B 83 B0 00 00 00 89 74 24 04 89 7C 24 08
    SS:ESP: 00000000 00000005 00000000 00E1B31C 00F14253 00091EB4 0037F518 00F1550A 00E7E061 000923E4 00E5D2E3 0037F5AC 000A5FE4 00000000 000923E4 00DEE668

    C stack:
    EIP:     EBP:       Frame: OldEBP, RetAddr, Params...


Modules:
00DD0000 001E9000 D:\Z_Test\Leto\test.exe
77970000 00180000 C:\Windows\SysWOW64\ntdll.dll
77010000 00110000 C:\Windows\syswow64\kernel32.dll
75280000 00047000 C:\Windows\syswow64\KERNELBASE.dll
76BB0000 000A1000 C:\Windows\syswow64\ADVAPI32.dll
76630000 000AC000 C:\Windows\syswow64\msvcrt.dll
76A30000 00019000 C:\Windows\SysWOW64\sechost.dll
76EA0000 000F0000 C:\Windows\syswow64\RPCRT4.dll
75220000 00060000 C:\Windows\syswow64\SspiCli.dll
75210000 0000C000 C:\Windows\syswow64\CRYPTBASE.dll
6FFC0000 0001C000 C:\Windows\system32\IPHLPAPI.DLL
76050000 00006000 C:\Windows\syswow64\NSI.dll
6FFB0000 00007000 C:\Windows\system32\WINNSI.DLL
76430000 00100000 C:\Windows\syswow64\USER32.dll
76B10000 00090000 C:\Windows\syswow64\GDI32.dll
76720000 0000A000 C:\Windows\syswow64\LPK.dll
76390000 0009D000 C:\Windows\syswow64\USP10.dll
70460000 00032000 C:\Windows\system32\WINMM.DLL
752F0000 00035000 C:\Windows\syswow64\WS2_32.dll
774A0000 00060000 C:\Windows\system32\IMM32.DLL
77250000 000CD000 C:\Windows\syswow64\MSCTF.dll
700F0000 0003C000 C:\Windows\system32\mswsock.dll
700E0000 00005000 C:\Windows\System32\wshtcpip.dll

Called from LETO_CONNECT(0)
Called from MAIN(7)

Crash on leto_groupby

A compound expression as the grouping parameter to leto_groupby crashes the server. Logs show (for simple test program groupby):

01.16.2019 17:07:07 INFO: connected 127.0.0.1:58563 groupby CP: EN DF: dd.mm.yyyy conn-ID 0
01.16.2019 17:07:07 !!!!! leto_errInternal !!!!!

Request was:

aResult := cst->(leto_groupby("currency+payterms","#,crlimit,duerem","inv1line"))

where cst is the dbf alias, currency,payterms,crlimit,duerem & invline are valid fields. This actually produces what appears to be correct output before the server dies. Simplifying the group expression to a single field produces correct output and avoids the server crash.

Perhaps compound expressions for the grouping field are not supported by design. But I'd rather the call failed than crashed the server! It would be very cool to support compound expressions, because then I could group by any combination of fields.

Note that leto_dbeval can be forced to do the same job correctly, using a rather ugly long codeblock:

cExec := "{|n,x| if(n==1,x:={},nil),n:=ascan(x,{|v|v[1]==currency+'|'+payterms}), if(n==0,aadd(x,{currency+'|'+payterms,1,crlimit}),x[n][2]++),if(n==0,nil,x[n][3]+=crlimit),x}"
aResult := cst->(leto_dbeval(cExec,"inv1line"))

Problem with MEMOREAD() in xharbour+letodbf

Before function MAIN() I put this:

#IFDEF __LETODBF
	// servidor LETODBF	
	#include "rddleto.ch"  // defines do RDD
	#include "dbinfo.ch"   // Header file for the RDD API Index OrderInfo and DBInfo support
	#include "leto_std.ch" // traduz os comandos para o LETO
	#define __LETO_TRANSLATE_FILE_ALL
	#include "letofile.ch" // traduz todas as funções para o LETO
	REQUEST LETO
	REQUEST RDDLETO
	REQUEST RDDInfo
#ENDIF	

I defined __LETO_TRANSLATE_FILE_ALL before the header letofile.ch, is that ok?
So there was this code:

	IF oFTP:DOWNLOADFILE("controli.txt", cFTPFILE)
		cLICENCAS := MEMOREAD("controli.txt")   // RETURNS ""

cLICENCAS returns an empty string intead text content of the file.
So I did this for a test:

	IF oFTP:DOWNLOADFILE("controli.txt", cFTPFILE)
		cLICENCAS := MEMOREAD("controli.txt") // RETURNS ""
		#IFDEF __LETODBF
			// COPY LOCAL FILE TO SERVER
			Leto_FCopyToSrv( "controli.txt", "controli.txt")
			cLICENCAS := LETO_MEMOREAD("controli.txt") // RETURNS ""
		#ENDIF	

In both cases it also returns an empty string yet.
Isn´t it a LETODBf issue?

Error LETO/1012 Open Error

I´m running letodb at a Linux server, Debian 12.
My application is on Windows. It connects, find it (leto_file() return true), but return an error when opening the table.

Dir is 0777 and files 0666, all files are lowercase.

My letodb.ini:

Server   = 10.100.0.151
;IP      = 127.0.0.1
Port     = 2812
DataPath = /databases/controli
LogPath  = /tmp
DataBase = /
Mask     = *.dbf,*.fpt,*.cdx
Backup   = /tmp/backup
ArcCmd   = tar -cvzf /tmp/backup/leto.tar.gz /tmp/backup/*

;Server_User = root
;Server_UID  = 0
;Server_GID  = 0

Pass_for_Login  = 0
Pass_for_Manage = 0
Pass_for_Data   = 0

Share_Tables   = 1
No_Save_WA     = 1
Lower_Path     = 1

Default_Driver = CDX
Memo_Type      = FPT

EnableFileFunc = 1
EnableAnyExt   = 1

Lock_Scheme    = 2
Debug          = 0
Allow_UDF      = 1
Cache_Records  = 21
Optimize       = 1
Crypt_Traffic  = 0
Lock           = 1
Seconds        = 30
Wait           = 1

;SMB_SERVER = 1
;SMB_PATH = /mnt/samba
;Pass_File = leto_users
;Max_Vars_Number = 1000
;Max_Var_Size = 67108864
;Tables_Max  = 999
;Users_Max = 99
;AutOrder = 0
;ForceOpt = 0
;TimeOut = 360
;Zombie_Check = 0
;BC_Services = letodb;
;BC_Interface = eth2
;BC_Port = 2812

LetoDbf crashing with field memo FPT.

Hi!
Is there happening here errors when I am opening dbf with fields memo FPT.
It is difficult to isolate the problem.
The error occurs in specific records.

Best regards,
Itamar M. Lins Jr.

DBUSEAREA(0) LETO error = 21: EG_OPEN No 1000 // leto_ParseCommand()

Hi,
using harbour lastest version and Letodbf lastest version, with the use of a filter, dbUsearea generates an error before opening the file again witout using dbclearfilter() before dbclosearea().
With previous versions there were no error.
Best regards,
Edmond

// -> error += DBUSEAREA(0)  LETO  error = 21: EG_OPEN  No 1000
// letodbf.log -> ERROR leto_ParseCommand()

private Mydbf:="//127.0.0.1:2812/\Testdbf.dbf"
private cfilter:='FIELD1="ABC"'
dbCreate( Mydbf , { {"FIELD1","C",3,0} } , "LETO" )
dbUsearea( .F. , "LETO" , Mydbf , NIL , .T. , .F. )
dbSetfilter( {|| &cfilter } , cfilter ) // or dbSetfilter( &( "{|| "+cfilter+" }" ) , cfilter )
// bug without dbclearfilter()
dbclosearea()

Compiling on FreeBSD

Hi;

I'm attempting to compile letodbf on FreeBSD. I have harbour installed and working.

Here is my system:

  • FreeBSD 11.1-STABLE
  • Harbour Make (hbmk2) 3.4.0dev () (2017-09-12 17:36)

Output of letodbf compilation:
[/Dbase/Leto/letodbf]>hbmk2 rddleto.hbp letodb.hbp
hbmk2: Compiling Harbour sources...
hbmk2: Compiling...
hbmk2: Creating static library... /usr/local/sbin/harbour/lib/librddleto.a

My letodb.ini:

Server = 10.3.51.45
IP = 10.3.51.45
Port = 2812
DataPath = /home/lap/DBF
Logpath = /var/log
Default_Driver = NTX
;Lock_Scheme = 6
;Memo_Type = FPT
Share_Tables = 0
No_Save_WA = 1
Lower_Path = 0
EnableFileFunc = 1
EnableAnyExt = 1
Allow_UDF = 1
Pass_for_Login = 0
Pass_for_Manage = 0
Pass_for_Data = 0
;Pass_File = "leto_users"
Cache_Records = 21
;Max_Vars_Number = 1000
;Max_Var_Size = 67108864
;Tables_Max = 999
;Users_Max = 99
Debug = 25
Optimize = 1
;AutOrder = 0
;ForceOpt = 0
;TimeOut = 360
;Zombie_Check = 0
;Server_User = advantage
;Server_UID = 1000
;Server_GID = 4
;BC_Services = letodb;
;BC_Interface = eth2
;BC_Port = 2812
DataBase = /
Backup = /tmp/backup
Mask = .dbf,.dbt,.ntx
Lock = 1
Seconds = 30
Wait = 1
ArcCmd = tar -cvzf /tmp/backup/leto.tar.gz /tmp/backup/

My active sockets:

[/Dbase/Leto/letodbf]>netstat -an | grep LIST
tcp4 0 0 127.0.0.1.6010 . LISTEN
tcp4 0 0 127.0.0.1.25 . LISTEN
tcp4 0 0 *.22 . LISTEN
tcp4 0 0 *.139 . LISTEN
tcp4 0 0 *.445 . LISTEN

/var/log/letodbf.log:

10.09.2017 14:40:06 LetoDBf Server try to start ...
10.09.2017 14:40:06 UDF file: /usr/local/sbin/harbour/bin/letoudf.hrb not present.
10.09.2017 14:40:06 INFO: LetoDBf Server 3.00, will run at IP 10.3.51.45:2812 ( internal also used :2813 )
10.09.2017 14:40:06 INFO: DataPath=/home/lap/DBF, ShareTables=0, NoSaveWA=1, max database=999
10.09.2017 14:40:06 INFO: LoginPassword=0, CacheRecords=21, LockExtended=0
10.09.2017 14:40:06 DEBUG second socket: 3 for errors established
10.09.2017 14:40:06 DEBUG thread3() with pipe handle: 4 started ..
10.09.2017 14:40:06 DEBUG thread3() ending ..
10.09.2017 14:40:07 Server has been closed.

letodbf starts but exits a second later.

The original letodb runs fine.

Any ideas?

Error: Unresolved external '_HB_FUN_LETO_DIRECTORY'

Hi, Elchs

I am trying to adapt my backup procedure with LETODBF.
I have to copy files from server to local to zip files, am I right? That´s what I understood from letobackup.prg
I got an error saying there is no LETO_DIRECTORY()

C:\BCC58\BIN\ilink32 @makefile.lnk
Turbo Incremental Link 5.69 Copyright (c) 1997-2005 Borland
Error: Unresolved external '_HB_FUN_LETO_DIRECTORY' referenced from C:\PROGRAMAS\CONTROLI\OBJ\GERENTE.OBJ

***I´m using xHarbour v1.2.3 + BCC 5.8

LetoDBf Server crashes

Unpredictable server crashes.

Two stations had LETO/1000 Syntax error, but connections logs are empty at this time

Info attached: info.zip

Warnings Build Lib

Warnings, compiling with harbor 3.4 / LLVM/CLANG 8.0

../../../../source/client/letomgmn.c: In function 'HB_FUN_LETO_LOGREPLAY':
../../../../source/client/letomgmn.c:1859:32: warning: format '%ld' expects argument of type 'long int', but argument 7 has type 'HB_MAXINT {aka long long int}' [-Wformat=]
hb_snprintf( szData, 36, "%c;replay;%s;%s;%" HB_PFS "d;%" HB_PFS "d;%d;", LETOCMD_admin, szFile, szActions, iUp, iTo, iEx );
^~~~~~~~~~~~~~~~~~~
../../../../source/client/letomgmn.c:1859:60: note: format string is defined here
hb_snprintf( szData, 36, "%c;replay;%s;%s;%" HB_PFS "d;%" HB_PFS "d;%d;", LETOCMD_admin, szFile, szActions, iUp, iTo, iEx );
~~~~~~~~~~~^
../../../../source/client/letomgmn.c:1859:32: warning: format '%ld' expects argument of type 'long int', but argument 8 has type 'HB_MAXINT {aka long long int}' [-Wformat=]
hb_snprintf( szData, 36, "%c;replay;%s;%s;%" HB_PFS "d;%" HB_PFS "d;%d;", LETOCMD_admin, szFile, szActions, iUp, iTo, iEx );
^~~~~~~~~~~~~~~~~~~
../../../../source/client/letomgmn.c:1859:73: note: format string is defined here
hb_snprintf( szData, 36, "%c;replay;%s;%s;%" HB_PFS "d;%" HB_PFS "d;%d;", LETOCMD_admin, szFile, szActions, iUp, iTo, iEx );
~~~~~~~~~~~^

Warnings Build

Make letodb.exe

../../../../source/server/letoacc.c: In function 'leto_acc_setPath':
../../../../source/server/letoacc.c:309:14: warning: potential null pointer dereference [-Wnull-dereference]
309 | while( *ptr )
| ^~~~
../../../../source/server/letoacc.c:326:14: warning: potential null pointer dereference [-Wnull-dereference]
326 | while( ptr )
| ^~~~
../../../../source/server/letofunc.c: In function 'leto_Mgmt':
../../../../source/server/letofunc.c:11820:36: warning: ';' directive writing 1 byte into a region of size between 0 and 10 [-Wformat-overflow=]
11820 | sprintf( szMyId, "%s;%d;", szOk, pUStru->iUserStru - 1 );
| ^
../../../../source/server/letofunc.c:11820:13: note: 'sprintf' output between 8 and 18 bytes into a destination of size 16
11820 | sprintf( szMyId, "%s;%d;", szOk, pUStru->iUserStru - 1 );
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from C:/harbour32_clang/include/hbrdddbf.h:50,
from ../../../../include/srvleto.h:54,
from ../../../../source/server/letofunc.c:49:
../../../../source/server/letofunc.c: In function 'HB_FUN_LETO_DBUPDATE':
C:/harbour32_clang/include/hbapirdd.h:859:47: warning: potential null pointer dereference [-Wnull-dereference]
859 | #define SELF_ALIAS(w, bp) ((
(w)->lprfsHost->alias)(w, bp))
| ~~~^~~~~~~~~~~
../../../../source/server/letofunc.c:9768:10: note: in expansion of macro 'SELF_ALIAS'
9768 | SELF_ALIAS( pSArea, szAlias );
| ^~~~~~~~~~
../../../../source/server/leto_2.c: In function 'udpsvc':
../../../../source/server/leto_2.c:1009:13: warning: 'strncpy' output may be truncated copying between 0 and 127 bytes from a string of length 263 [-Wstringop-truncation]
1009 | strncpy( szServiceName, ptr, iLenCmp );
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../../source/server/leto_2.c:1044:19: warning: 'strncpy' output truncated before terminating nul copying as many bytes from a string as its length [-Wstringop-truncation]
1044 | strncpy( szTmp + iLenCmp, s_UDPServer, iLenAddr );
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../../source/server/leto_2.c:1043:30: note: length computed here
1043 | iLenAddr = strlen( s_UDPServer );
| ^~~~~~~~~~~~~~~~~~~~~

Make Lib

../../../../source/client/letocl.c: In function 'LetoDbOrdFocus':
../../../../source/client/letocl.c:5975:19: warning: potential null pointer dereference [-Wnull-dereference]
*iListLen = eprintf( ptr, "%u;%s;%c;%s", iCurrent, pTag->TagName, pTag->cKeyType, pTag->KeyExpr );
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../../source/client/letocl.c:5975:77: warning: potential null pointer dereference [-Wnull-dereference]
*iListLen = eprintf( ptr, "%u;%s;%c;%s", iCurrent, pTag->TagName, pTag->cKeyType, pTag->KeyExpr );
~~~~^~~~~~~~~~
../../../../source/client/letocl.c:5975:19: warning: potential null pointer dereference [-Wnull-dereference]
*iListLen = eprintf( ptr, "%u;%s;%c;%s", iCurrent, pTag->TagName, pTag->cKeyType, pTag->KeyExpr );
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../../../source/client/letocl.c:5975:19: warning: potential null pointer dereference [-Wnull-dereference]
../../../../source/client/letocl.c:5975:77: warning: potential null pointer dereference [-Wnull-dereference]
*iListLen = eprintf( ptr, "%u;%s;%c;%s", iCurrent, pTag->TagName, pTag->cKeyType, pTag->KeyExpr );
~~~~^~~~~~~~~~
../../../../source/client/letocl.c:5975:19: warning: potential null pointer dereference [-Wnull-dereference]
*iListLen = eprintf( ptr, "%u;%s;%c;%s", iCurrent, pTag->TagName, pTag->cKeyType, pTag->KeyExpr );
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

LetoDbf fail with "locate" command

Hi!

RddSetDefault("LETO")
Locate FOR cCriptSenha=us->senha .and. cCriptApelido=us->apelido
This up command not working with atual version of letodbf

Works fine with rddsetdefault("DBFCDX")

Best regards,
Itamar M. Lins Jr.

Letodbf return wrong position

Hi!
index on xyz tag temp for date<... temporary
Do While !eof() //letodbf fail it enter in "DO WHILE" pointer fail return eof() = .F.
...
and now I "add" modify my line this with "gotop"
index on xyz tag temp for date<... temporary
dbgotop() //Here now I am put this.
Do While !eof() //letodbf ok skip do while pointer return eof() = .T.

Best regards,
Itamar M. Lins Jr.

Fatal F1003 C:\PellesC\Include\stdarg.h 9: Error directive: <stdarg.h> need POCC version 10.0 or higher

make_b32 full

MAKE Version 5.2 Copyright (c) 1987, 2000 Borland
bcc32 -c -Iinclude;C:\XHB123\include;C:\PellesC\Include -d -tWM -D__WIN32__ -D__CONSOLE__ -DUSE_PMURHASH=1 -oobj\b32\letocl.obj source\client\letocl.c
Borland C++ 5.82 for Win32 Copyright (c) 1993, 2005 Borland
source\client\letocl.c:
Fatal F1003 C:\PellesC\Include\stdarg.h 9: Error directive: <stdarg.h> need POCC version 10.0 or higher
*** 1 errors in Compile ***

** error 1 ** deleting obj\b32\letocl.obj

I have installed PellesC v11.0 but it seems it´s telling I have v9 in this error

In make_b32.bat I changed: SET HB_PATH=C:\XHB123
In makefile.bc I only uncommented:

# uncomment next line if you want to build letodb with xharbour
XHARBOUR = yes

What should I do now? Nobody is talking about LetoDBF with xHarbour
I am using xHarbour v1.2.3, BCC58 and PellesC v11.0

xHarbour compatibility restored

Hi Numerabilis,

xHarbour 'downward' compatibility have got lost over the time,
No wonder, as there wasn't any feedback from them since Patrick Mast asked me years ago.
it caused me significant work to restore it ...
But now again i can produce a rddleto.lib with 'no real warnings' ... ;-)

#) As there is no 'hb_znet' for z-lib compressed network traffic in xHarbour,
they * must * use my LZ4 implementation for that.
Network encrypted traffic is bound in LetoDBf to traffic compression,
as else you can easyily live without compression for that.
Data compression is else applied at some very specific points in LetoDBf, so in the end you will want to have that.

**
Until now LZ4 is NOT working for xHarbour - it works absolutely great for Harbour,
even for BCC 5.8.2.
In xHarbour it leads to a GPF crash of the app when activated.
I still haven't found the origin cause for that - sadly there is no Valgrind for Windows.
The problem could be bound to specific C-compilers for xHarbour,
or more propably the problem is inside LetoDBf/ LZ4.
Could be even an easy silly bug, and i just don't recognize it -- need more time to find the bug, tips extremely welcome.
**

So for testing purpose, to let us go on, i created dummy LZ4 functions so that the app can build.
This is done by setting the 'LZ4_DUMMY' flag for c-source and leaving away the lz4.c so far.

I uploaded a new xBuilder rddleto.lib.xbp definition for xHB,
as also a new make_b32.bat for BCC >= 5.8.2 for xharbour -- use it without any argument to get a rddleto.lib.

PellesC makes me headaches, even newest Harbour itself can not be build from source with it out the box.
The C-compiler have some serious problems, at very least about complex 'pre-processor directives',
[ that are e.g. these '#if defined ( xxx ) && ( xxx > y ) .. and more complex ones ]
Older versions of PellesC just produce garbage from lz4.c.

--
The whole section in the Readme.txt for xHarbour needs rework -- suggestions welcome !
Also i would be kindly interested about how you are building the final app,
as no xHarbour version has this abolutely famous 'hbmk2' make tool by Szakats from Harbour.

By the way, you are using xHB or xharbour ?

best regards
elch

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.