aed8cb147efecdd29ae8b15a3f61bc5d751fa4cc
99 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
9d13008427 |
2010-05-12 02:26 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/external/minizip/ioapi.h
! fixed FreeBSD and HAIKU builds
* harbour/src/rtl/fserr.c
* added translation for EPERM
* harbour/include/Makefile
+ harbour/include/hbapicom.h
* harbour/src/rtl/Makefile
+ harbour/src/rtl/hbcom.c
+ added Harbour multiplatform serial port C API (hb_com*() functions).
implemented code for *nixes, MS-Windows and OS2. DOS is not supported
yet. Please make test on different platforms.
; few notes about this code:
termios (*nix) based builds:
- reading LSR is not supported
- duration in break signal is fixed (at least 0.25 seconds, and not
more that 0.5 seconds)
- DTR/DSR hardware flow control is not supported
- setting error character is not supported
- discard card is supported only on few platforms
- checking input/output flow state is not supported
- if some platforms do not support some termio extensions then
compile time warnings TODO_* should be generated.
MS-Windows builds:
- discard card is not supported
OS2 builds:
- checking for input flow state is not supported
- discard card is not supported
In all builds not all RS-232 hardware flags/state are available.
OS2 build supports most of them,
This code needs to be extensively tested. I wrote it without any
serious tests. Especially OS2 builds should be verified by OS2
users. I wrote this port using only documentation which OS2 API
available in the Internet.
DOS is not supported yet though it's possible to compile termio code
for *nixes with DJGPP. Anyhow it would be very nice if we can add
our own DOS serial port code. I would like to ask if any of you
has low level serial port code in C for DOS (i.e. used with Clipper)
and can send it to us so we can use it with Harbour. I have my
own serial port library for Clipper but it's written in assembler
and it's much wider then sth what we need so it cannot be easy
adopted for Harbour.
* harbour/contrib/hbct/Makefile
+ harbour/contrib/hbct/ctcom1.c
+ harbour/contrib/hbct/ctcom.ch
+ harbour/contrib/hbct/ctcom2.c
+ added CT3 compatible COM_*() functions.
+ added CT3 compatible XMOBLOCK(), XMOCHECK(), ZEROINSERT() and
ZEROREMOVE() functions.
+ added new CT COM function:
COM_DEVNAME( <nComPort> [, <cNewName> ] ) -> <cPrevName>
which can be used to specify device name for given port in modern
systems which do not give direct hardware access for the process.
; few notes about CT3 COM_*() functions in Harbour.
In COM_OPEN() only 1-st parameter is significant, input/output buffer
sizes and trap mode parameters are ignored. In modern OS-es such
functionality is controlled by OS and usually buffered read/write
is always enabled. The sizes of IO buffers can be used only as
suggested IO buffer size for OS in some systems. It's possible that
these additional parameters will be used in DOS builds in the future.
COM_READ() does not support 2-nd parameter <lNoDelete>. It can be
implemented but because we do not have direct access to OS buffers
then we will have to emulate it ourselves what is rather inefficient.
Anyhow I can implement it if users think it's critical.
In COM_CRC() I fixed few CT3 bugs so it's not bug compatible with CT3,
i.e. it works correctly for 8 bit and smaller polynomials instead of
returning 0 or supports much larger polynomials up to 64bits.
For 16/17 bit polynomials it gives the same results as CT3 so for most
common usage it should be binary compatible with CT3.
In ZEROREMOVE() I fixed decoding some wrong CCITT strings which does
not have trailing 0 so it returns empty string "" for such corrupted
data. If someone needs original CT3 behavior for some broken code then
is can be enabled by HB_CT3_ZEROREMOVE_BUG macro.
I haven't implemented few functions.
COM_GETIO(), COM_SETIO(), COM_GETIRQ(), COM_SETIRQ() are not portable
and can be implemented only for really few platforms, i.e. for DOS
when/if we add support for serial ports to Harbour DOS builds.
Similar functionality for all other platforms gives our new function
COM_DEVNAME().
COM_KEY(), COM_SKEY() and COM_EVENT() are also not implemented.
To make them well we should add support for asynchronous events to HVM
and such extension is still unavailable. Some simulation can be
implemented using idle tasks but this can be done also by final
Harbour users so I decided to not make it.
Please test it - I've never used CT3 COM_*() API with Clipper.
* harbour/contrib/hbct/dummy.c
* removed dummy CT3 serial communication functions
; such files with dummy functions introduces very serious problems for
user code because they do not respect original module granularity
effectively breaking overloading only chosen functions so it breaks
also some real Clipper code.
|
||
|
|
0d3d65531c |
2010-03-09 14:30 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* src/rtl/hbini.prg
* Deleted several unnecessary empty lines at EOF.
* INSTALL
* Minor.
* include/dbinfo.ch
* Formatting.
+ include/hb.ch
* include/Makefile
+ Added Harbour header which #includes commonly used in
applications.
It also enables us to easily extend standard set of macros
and constants.
* contrib/hbide/idesaveload.prg
* "hbide.set" -> "hbidewnd.ini". At least it uses standard
extension. Still wrong solution and a remaining TOFIX.
|
||
|
|
02af7454a4 |
2010-02-23 09:27 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* include/Makefile
- Deleted hbzlib.h (wrapper for zlib.h)
(INCOMPATIBLE, if someone used this, should be fixed by
replacing hbzlib.h with zlib.h in #include directive)
|
||
|
|
83bbb7b34d |
2010-02-17 03:06 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* src/rtl/fstemp.c
! Using hb_fsTempDir() in HB_FTEMPCREATEEX() instead of
old solution. This should fix it for some non-*nix
platforms where *nix specific TEMPDIR envvar was used
to determine temp directory.
* contrib/hbwin/Makefile
* include/Makefile
* src/rtl/Makefile
- contrib/hbwin/hbdyn.ch
+ include/hbdyn.ch
- contrib/hbwin/hbdyn.c
+ src/rtl/hbdyn.c
- contrib/hbwin/win_dllc.c
+ src/rtl/hbdynhb.c
- contrib/hbwin/tests/testdll.c
+ tests/testdyn.c
- contrib/hbwin/tests/testdll.prg
+ tests/testdyn.prg
- contrib/hbwin/tests/testdll1.prg
+ tests/testdyn1.prg
- contrib/hbwin/hbdyn.h
* include/hbapi.h
* Moved dynamic library call related functions to
core (RTL).
* Windows specific test code (currently all) guarded
for platform.
* Changed default calling convention to cdecl.
Tests adaptd accordingly.
* Terminology change: 'dll' -> 'dynamic library'
; HB_DYNCALL() is now part of core Harbour, and it's
platform independent. It's platform (ABI) dependent though,
and currently x64 and x86/stdcall/syscall/cdecl
is supported and these were tested (except OS/2 syscall).
* contrib/hbwin/hbwin.h
* contrib/hbwin/win_misc.c
* contrib/hbwin/legacycd.c
* Low level hbwin_getprocaddress() function moved
to legacy file and made static.
* contrib/xpp/Makefile
* contrib/xpp/dllx.c
* contrib/xpp/xpp.hbc
+ Enabled DLL*() functions for all platforms.
- Deleted dependence on hbwin library.
* contrib/xpp/tests/testdll.prg
* Windows specific parts (currently the whole test) guarded
for platform.
* contrib/hbct/Makefile
- contrib/hbct/diskhb.prg
* contrib/hbct/disk.c
* contrib/xhb/Makefile
+ contrib/xhb/diskhb.prg
* GETVOLINFO() moved from hbct to xhb.
* ChangeLog
* Marked some TODO/TOFIX items as DONE.
|
||
|
|
86c9511f2f |
2010-01-06 07:27 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/rtl/gtwin/gtwin.c
+ added support for HB_GTI_ISUNICODE
* harbour/include/hbapifs.h
* added missing 'extern' in some declarations
* harbour/include/hbzlib.ch
+ added HB_ZLIB_STRATEGY_* constants
+ added HB_ZLIB_COMPRESSION_DISABLE
* harbour/include/Makefile
+ harbour/include/hbznet.h
* harbour/include/hbextern.ch
* harbour/src/rtl/Makefile
* harbour/src/rtl/hbinet.c
+ harbour/src/rtl/hbznet.c
+ added support for ZLIB compression in stream sockets.
+ added .prg function:
HB_INETCOMPRESS( <pSocket>, [<nCompressionLevel>], [<nStrategy>] )
which enables ZLIB compression for given HB_INET*() socket.
<pSocket> is a socket created by one of HB_INET*() functions
<nCompressionLevel> is compression factor between 1 (fastest) and
9 (best) (see HB_ZLIB_COMPRESSION_*)
0 (none) disable compression on output data
but decompression is still working.
<nStrategy> is used to tune compression algorithm,
see HB_ZLIB_STRATEGY_*
The compression must be enabled on both connection sides, i.e.
on the server side:
conn := hb_inetAccept( sock )
hb_inetCompress( conn )
and on the client side:
sock := hb_inetConnect( cServer, nPort )
hb_inetCompress( sock )
in the same moment but it's not necessary to enable it at the
beginning of connection. It can be done later, i.e. when both
sides agree to enable connection using some custom protocol.
The compression has effect only on stream connections, i.e.
TCP and it's ignored in datagram connections like UDP.
This function can be executed more then once changing the compression
parameters but it causes that all data in readahead decompression
buffer is discarded. When called with HB_ZLIB_COMPRESSION_DISABLE
as <nCompressionLevel> then support for stream compression is removed
and sockets works again in raw mode.
The compression level and strategy do not have to be the same on both
connection sides. Each side can chose the best settings for data it's
going to send.
This code was written in a way which allows to easy implement
alternative compression methods or other extensions like encryption
in existing HB_INET*() sockets also by non core code. The public C
functions declared in hbznet.h allows to use this extension with raw
harbour sockets two.
|
||
|
|
6b2f6bd054 |
2009-12-26 14:12 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/Makefile
* harbour/include/hbmath.h
+ harbour/include/hbmather.h
* harbour/include/hbsetup.h
* harbour/include/hbapi.h
* moved math error handler definitions and settings separate header file
* moved hb_random_num() declaration from hbmath.h to hbapi.h
After above modification hbmath file should be use only by code which
wants to use math functions declared usually in math.h
+ harbour/include/hbfloat.h
+ added header file with test macros for floating point numbers
this file should be included before any other files
* harbour/src/vm/hvmall.c
* harbour/src/vm/itemapi.c
* harbour/src/common/hbprintf.c
* harbour/src/rtl/math.c
* use new macros from hbfloat.h
* harbour/src/rtl/math.c
+ include "hbmather.h"
* harbour/src/rtl/hbrandom.c
* harbour/src/rdd/dbf1.c
* harbour/contrib/xhb/hboutdbg.c
- removed not longer necessary include "hbmath.h"
* harbour/contrib/hbct/ctmath.h
- do not include <float.h> and <limits.h>
* harbour/contrib/hbct/ct.h
- do not include "hbmath.h" and "ctmath.h"
* harbour/contrib/hbct/ctmath.c
* harbour/contrib/hbct/exponent.c
* harbour/contrib/hbct/ctc.c
+ include "ctmath.h"
* harbour/contrib/hbct/trig.c
* harbour/contrib/hbct/finan.c
* harbour/contrib/hbct/ctmath2.c
+ include "ctmath.h"
+ include "hbmather.h"
* harbour/contrib/hbct/num1.c
+ include "ctmath.h"
+ include <float.h>
* harbour/include/hbinit.h
* harbour/src/rtl/hbsocket.c
* added patches from Tamas - thanks
* harbour/bin/hb-func.sh
* harbour/harbour.spec
+ create /etc/ld.so.conf.d/harbour.conf with Harbour shared lib directory
if /etc/ld.so.conf.d directory exists and user has sufficient write
permission or install package is created.
This modification allows to install Harbour anywhere and in modern
distros using /etc/ld.so.conf.d/ harbour shared libraries will be
always available for all programs
[TOMERGE 2.0]
|
||
|
|
e7cb8c45a1 |
2009-12-20 22:12 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/Makefile
+ harbour/include/hbtrace.ch
* harbour/include/hbtrace.h
* harbour/src/rtl/trace.c
* harbour/src/common/hbtrace.c
! fixed hb_tracelevel() C function to change trace filter instead of
last message level. It also fixed .prg function HB_TRACELEVEL().
+ added new C function:
void hb_tracelog( int level, const char * file, int line,
const char * proc, const char * fmt, ... )
+ added new .prg functions:
hb_traceLogLevel( <nNewLevel> ) -> <nPrevLevel>
hb_traceLog( <xMsgItems,...> ) // generate message at
// hb_traceLogLevel()
hb_traceLogAt( <nLevel>, <msg,...> )
+ added support for HB_TRACE() messages in .prg code with the same
functionality as in C code:
HB_TRACE( <level>, <msg,...> )
HB_TRACE() code if filtered at compile time by HB_TR_LEVEL_* macros
i.e. -DHB_TR_LEVEL_INFO used as harbour compiler parameter
and at runtime by HB_TR_LEVEL=<level> envvar (set HB_TR_LEVEL=DEBUG)
or by hb_traceLevel( <nLevel> ) function (hb_traceLevel( HB_TR_DEBUG ))
Default compile time and runtime trace level for C and .prg code
is HB_TR_WARNING.
|
||
|
|
3700f5f794 |
2009-12-09 20:40 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/Makefile
! added missing newly added header files - thanks to Itamar for
information about the problem
* harbour/include/hbmsgreg.h
! fixed typo - thanks to Toninho for information about the problem
|
||
|
|
c5587de21b |
2009-12-08 12:02 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* include/Makefile
+ include/hbwinuni.h
* contrib/hbwin/wapi_shellapi.c
* include/hbwince.h
+ Moved new UNICODE translation macros to separate header.
|
||
|
|
1429103ddd |
2009-12-07 18:42 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/pp/ppcore.c
* strip UTF-8 BOM signature from compiled .prg files
* harbour/include/hbdefs.h
+ added HB_MACRONAME_JOIN() macro
* harbour/include/hbinit.h
! fixed startup function declaration when HB_STRICT_ANSI_C macro is set
* harbour/src/rdd/dbfcdx/dbfcdx1.c
* modified to use unique names for startup functions
* harbour/include/hbcdpreg.h
* modified to use unique names in CP startup functions for non #pragma
based initialization.
* harbour/include/Makefile
+ harbour/include/hbgtreg.h
+ added default GT startup code in header file which can be
included by GT drivers. This version uses unique function names
for non #pragma based initialization.
* harbour/src/rtl/gt_tpl/gt_tpl.c
* harbour/src/rtl/gtdos/gtdos.c
* harbour/src/rtl/gtwin/gtwin.c
* harbour/src/rtl/gtxwc/gtxwc.c
* harbour/src/rtl/gtcrs/gtcrs.c
* harbour/src/rtl/gtstd/gtstd.c
* harbour/src/rtl/gttrm/gttrm.c
* harbour/src/rtl/gtcgi/gtcgi.c
* harbour/src/rtl/gtos2/gtos2.c
* harbour/src/rtl/gtsln/gtsln.c
* harbour/src/rtl/gtpca/gtpca.c
* harbour/src/rtl/gtgui/gtgui.c
* harbour/src/rtl/gtwvt/gtwvt.c
* harbour/contrib/gtalleg/gtalleg.c
* harbour/contrib/gtqtc/gtqtc.cpp
* harbour/contrib/gtwvg/gtwvg.c
* harbour/contrib/hbct/ctwin.c
* use #include "hbgtreg.h" for startup code
|
||
|
|
ee46919af2 |
2009-11-17 19:37 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/Makefile
+ harbour/include/hbapistr.h
* harbour/src/vm/Makefile
* harbour/src/vm/hvmall.c
+ harbour/src/vm/strapi.c
+ added new C functions to extract strings in different encoding:
void * hb_itemGetStr( PHB_ITEM pItem, void * cdp,
const char ** pStrPtr, ULONG * pulLen );
void * hb_itemGetStrUTF8( PHB_ITEM pItem,
const char ** pStrPtr, ULONG * pulLen );
void * hb_itemGetStrU16( PHB_ITEM pItem, int iEndian,
const HB_WCHAR ** pStrPtr, ULONG * pulLen );
extract from given item string in requested encoding and store pointer
to this string and its size in characters in last two parameters.
These functions return handler which is used to lock memory buffer
with result or NULL if given item does not contain string. All not NULL
handles returned by above functions have to be free by hb_strfree()
function:
void hb_strfree( void * hString );
As long as they are not freed memory buffer set in pStrPtr is valid
even if other code overwrote given item.
The second parameter in hb_itemGetStr() can specify expected CP
encoding, i.e.:
hStr = hb_itemGetStr( pItem, hb_setGetOSCP(), &pszText, &ulLen );
if( hStr )
{
...
hb_strfree( hStr );
}
extracts string in encoding set by Set( _SET_OSCODEPAGE, <cCPID> )
The second parameter in hb_itemGetStrU16() define endian encoding
and can be one of the following values:
#define HB_CDP_ENDIAN_NATIVE 0
#define HB_CDP_ENDIAN_LITTLE 1
#define HB_CDP_ENDIAN_BIG 2
defined in hbapicdp.h
+ added new C functions to copy part of strings to given buffers in
different encoding:
ULONG hb_itemCopyStr( PHB_ITEM pItem, void * cdp,
char * pStrBuffer, ULONG ulSize );
ULONG hb_itemCopyStrUTF8( PHB_ITEM pItem,
char * pStrBuffer, ULONG ulSize );
ULONG hb_itemCopyStrU16( PHB_ITEM pItem, int iEndian,
HB_WCHAR * pStrBuffer, ULONG ulSize );
hb_itemCopyStr*() functions works in similar way to hb_itemGetStr*()
ones but they copy the strings to given buffer and return the number
of characters (not bytes) copied to the buffer.
+ added new C functions to store given strings in different encoding in
HVM item:
PHB_ITEM hb_itemPutStrLen( PHB_ITEM pItem, void * cdp,
const char * pStr, ULONG ulLen );
PHB_ITEM hb_itemPutStrLenUTF8( PHB_ITEM pItem,
const char * pStr, ULONG ulLen );
PHB_ITEM hb_itemPutStrLenU16( PHB_ITEM pItem, int iEndian,
const HB_WCHAR * pStr, ULONG ulLen );
These functions accepts strings in different encoding, made some
conversions (if necessary and internal string representation in HVM is
different) and then store them as HVM string items.
+ added few extended API functions to operate on strings in different
encoding:
void * hb_parstr( int iParam, void * cdp,
const char ** pStrPtr, ULONG * pulLen );
void * hb_parstr_utf8( int iParam,
const char ** pStrPtr, ULONG * pulLen );
void * hb_parstr_u16( int iParam, int iEndian,
const HB_WCHAR ** pStrPtr, ULONG * pulLen );
void hb_retstr( void * cdp, const char * szText );
void hb_retstr_utf8( const char * szText );
void hb_retstr_u16( int iEndian, const HB_WCHAR * szText );
void hb_retstrlen( void * cdp, const char * szText, ULONG ulLen );
void hb_retstrlen_utf8( const char * szText, ULONG ulLen );
void hb_retstrlen_u16( int iEndian,
const HB_WCHAR * szText, ULONG ulLen );
int hb_storstr( void * cdp, const char * szText, int iParam );
int hb_storstr_utf8( const char * szText, int iParam );
int hb_storstr_u16( int iEndian,
const HB_WCHAR * szText, int iParam );
int hb_storstrlen( void * cdp,
const char * szText, ULONG ulLen, int iParam );
int hb_storstrlen_utf8( const char * szText, ULONG ulLen, int iParam );
int hb_storstrlen_u16( int iEndian,
const HB_WCHAR * szText, ULONG ulLen, int iParam );
They can be used instead of hb_parc*()/hb_retc*()/hb_storc*() ones and
allow to easy create code which operates on strings in different
encoding, i.e.:
HB_FUNC( MY_STRTOUTF8 )
{
const char * str;
ULONG len;
void * h;
h = hb_parstr_utf8( 1, &str, &len );
if( h )
{
hb_retclen( str, len );
hb_strfree( h );
}
}
The above functions allows to create code which operates on different
string encoding, i.e. UTF8, UCS2/UTF16, some CPs and such code is
independent from internal HVM string representation so we can use
internally Unicode or not and it will not effect existing code.
|
||
|
|
7ec5d4cc53 |
2009-11-08 02:43 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/vm/set.c
! fixed small typos in returned values (FALSE instead of NULL and 0)
* harbour/src/vm/estack.c
* make calling hb_stackTotalItems() safe in MT mode when stack is not
initialized - now this function can be used to check if HVM stack
exists and is initialized in ST and MT mode
* harbour/src/rtl/errintlo.c
! fixed at least 4 GPF traps exploited when hb_errInternal() was called
and HVM stack was not initialized
* harbour/include/Makefile
+ harbour/include/hbcdpreg.h
* harbour/include/hbapicdp.h
* harbour/src/rtl/cdpapi.c
+ added new CDP API which fixes many errors and limitations in old
implementation.
Warning !!! some very serious bugs in national sorting have been
fixed. It may cause that old indexes using some national
sorting will not be compatible. Please rebuild existing
indexes.
* harbour/src/vm/itemapi.c
* harbour/src/rdd/hsx/hsx.c
* harbour/src/rdd/dbfntx/dbfntx1.c
* harbour/src/rdd/dbfnsx/dbfnsx1.c
* harbour/src/rdd/dbfcdx/dbfcdx1.c
* harbour/contrib/hbbmcdx/bmdbfcdx.c
* harbour/contrib/rddads/adsx.c
* harbour/contrib/rddsql/sqlmix.c
* updated to work with new CDP API
TOFIX: update adsx.c and sqlmix.c to use hb_cdpcmp() which resepcts
sorting with accented and mulitybyts characters.
Mindaugas, can you update above code?
* harbour/src/codepage/cpbg866.c
* harbour/src/codepage/cpbgiso.c
* harbour/src/codepage/cpbgmik.c
* harbour/src/codepage/cpbgwin.c
* harbour/src/codepage/cpcs852.c
* harbour/src/codepage/cpcsiso.c
* harbour/src/codepage/cpcskam.c
* harbour/src/codepage/cpcswin.c
* harbour/src/codepage/cpde850.c
* harbour/src/codepage/cpdeiso.c
* harbour/src/codepage/cpdewin.c
* harbour/src/codepage/cpel737.c
* harbour/src/codepage/cpeliso.c
* harbour/src/codepage/cpelwin.c
* harbour/src/codepage/cpes850.c
* harbour/src/codepage/cpes850c.c
* harbour/src/codepage/cpesiso.c
* harbour/src/codepage/cpesisoc.c
* harbour/src/codepage/cpeswin.c
* harbour/src/codepage/cpeswinc.c
* harbour/src/codepage/cpeswinm.c
* harbour/src/codepage/cpfr850.c
* harbour/src/codepage/cpfriso.c
* harbour/src/codepage/cpfrwin.c
* harbour/src/codepage/cphr437.c
* harbour/src/codepage/cphr852.c
* harbour/src/codepage/cphrwin.c
* harbour/src/codepage/cphu852.c
* harbour/src/codepage/cphu852s.c
* harbour/src/codepage/cphuiso.c
* harbour/src/codepage/cphuisos.c
* harbour/src/codepage/cphuwin.c
* harbour/src/codepage/cphuwins.c
* harbour/src/codepage/cpit437.c
* harbour/src/codepage/cpit850.c
* harbour/src/codepage/cpitisb.c
* harbour/src/codepage/cpitiso.c
* harbour/src/codepage/cpitwin.c
* harbour/src/codepage/cpltwin.c
* harbour/src/codepage/cppl852.c
* harbour/src/codepage/cppliso.c
* harbour/src/codepage/cpplmaz.c
* harbour/src/codepage/cpplwin.c
* harbour/src/codepage/cppt850.c
* harbour/src/codepage/cpptiso.c
* harbour/src/codepage/cpro852.c
* harbour/src/codepage/cproiso.c
* harbour/src/codepage/cprowin.c
* harbour/src/codepage/cpru866.c
* harbour/src/codepage/cpruiso.c
* harbour/src/codepage/cprukoi.c
* harbour/src/codepage/cpruwin.c
* harbour/src/codepage/cpsk852.c
* harbour/src/codepage/cpskiso.c
* harbour/src/codepage/cpskkam.c
* harbour/src/codepage/cpskwin.c
* harbour/src/codepage/cpsl437.c
* harbour/src/codepage/cpsl852.c
* harbour/src/codepage/cpsliso.c
* harbour/src/codepage/cpslwin.c
* harbour/src/codepage/cpsrwin.c
* harbour/src/codepage/cpsv850.c
* harbour/src/codepage/cpsvclip.c
* harbour/src/codepage/cpsviso.c
* harbour/src/codepage/cpsvwin.c
* harbour/src/codepage/cptr857.c
* harbour/src/codepage/cptriso.c
* harbour/src/codepage/cptrwin.c
* harbour/src/codepage/cpua1125.c
* harbour/src/codepage/cpua866.c
* harbour/src/codepage/cpuakoi.c
* harbour/src/codepage/cpuawin.c
* harbour/src/codepage/uc037.c
* harbour/src/codepage/uc1006.c
* harbour/src/codepage/uc1026.c
* harbour/src/codepage/uc1125.c
* harbour/src/codepage/uc1250.c
* harbour/src/codepage/uc1251.c
* harbour/src/codepage/uc1252.c
* harbour/src/codepage/uc1253.c
* harbour/src/codepage/uc1254.c
* harbour/src/codepage/uc1255.c
* harbour/src/codepage/uc1256.c
* harbour/src/codepage/uc1257.c
* harbour/src/codepage/uc1258.c
* harbour/src/codepage/uc424.c
* harbour/src/codepage/uc500.c
* harbour/src/codepage/uc737.c
* harbour/src/codepage/uc775.c
* harbour/src/codepage/uc850.c
* harbour/src/codepage/uc852.c
* harbour/src/codepage/uc855.c
* harbour/src/codepage/uc856.c
* harbour/src/codepage/uc857.c
* harbour/src/codepage/uc860.c
* harbour/src/codepage/uc861.c
* harbour/src/codepage/uc862.c
* harbour/src/codepage/uc863.c
* harbour/src/codepage/uc864.c
* harbour/src/codepage/uc865.c
* harbour/src/codepage/uc866.c
* harbour/src/codepage/uc869.c
* harbour/src/codepage/uc874.c
* harbour/src/codepage/uc875.c
* harbour/src/codepage/uc885910.c
* harbour/src/codepage/uc885911.c
* harbour/src/codepage/uc885913.c
* harbour/src/codepage/uc885914.c
* harbour/src/codepage/uc885915.c
* harbour/src/codepage/uc885916.c
* harbour/src/codepage/uc88591b.c
* harbour/src/codepage/uc8859_1.c
* harbour/src/codepage/uc8859_2.c
* harbour/src/codepage/uc8859_3.c
* harbour/src/codepage/uc8859_4.c
* harbour/src/codepage/uc8859_5.c
* harbour/src/codepage/uc8859_6.c
* harbour/src/codepage/uc8859_7.c
* harbour/src/codepage/uc8859_8.c
* harbour/src/codepage/uc8859_9.c
* harbour/src/codepage/ucascii.c
* harbour/src/codepage/ucatari.c
* harbour/src/codepage/uckam.c
* harbour/src/codepage/uckoi8.c
* harbour/src/codepage/uckoi8u.c
* harbour/src/codepage/ucmacce.c
* harbour/src/codepage/ucmaccyr.c
* harbour/src/codepage/ucmacgrk.c
* harbour/src/codepage/ucmacice.c
* harbour/src/codepage/ucmacrom.c
* harbour/src/codepage/ucmactrk.c
* harbour/src/codepage/ucmaz.c
* harbour/src/codepage/ucmik.c
* harbour/src/codepage/ucnext.c
* updated for new CP API
Warning: please test all national CPs. I'm not able to test unknown for
me national character conditions so it's possible that I made
something wrong. Additionally current CP API does not have
some limitations which existed in the old one so now some hacks
or workarounds can be cleaned. I.e. now all translations are
done using Unicode tables so it's not necessary to use the
same number of characters to make them working.
Updating CP files I've found the following potential problems
in definitions which I haven't fixed or fixed only partially:
cpes850c.c - update for new format removing hacks for old CP
implementation
cpesisoc.c > remove, it's not longer necessary
cpeswinc.c /
cpeswinm.c - it is the same as cpesiso.c so it should be removed
cphu852.c \
cphu852s.c \
cphuiso.c > update for new format removing hacks for old CP
cphuwin.c / implementation
cphuisos.c > remove, it's not longer necessary
cphuwins.c /
cphr437.c > does it really use CP-437? and ^]\[@~}|{` instead of
cpsl437.c / nationalletters or it uses different then 437 CP for
7-bit Croatian characters encoding. It's important
because without valid unicode table translations will
not work.
cpit437.c - update for new version if necessary (upper characters)
cpsv850.c \
cpsviso.c > they had ACCENTED_INTERLEAVED but without ACCENTED_EQUAL
cpsvwin.c / so this setting was ignored. Now it's not ignored.
cpsvclip.c - update for new format to be fully not only
"almost compatible with Clipper's NTXSWE.OBJ"
For sure these are not all problems inherited from old CP
implementation so please verify all existing CPs.
* harbour/src/codepage/cp_tpl.c
+ added new example for CP definition. Working on new CPs please read
this description:
If accented characters need special sorting ( HB_CDP_ACSORT_EQUAL or
HB_CDP_ACSORT_INTERLEAVE ) then you need to mark the accented
characters with the symbol '~' before each of them, for example:
a~_
If there is two-character sequence, which is considered as one, it
should be marked with '.' before and after it, for example:
... h.ch.i ...
if such multibyte character has its own Unicode representation then
this Unicode value can be set using '=' symbol, for example:
....h.ch=2A7C.i
and it will be used in translations.
The Upper case string and the Lower case string should use the
same letters. If some characters does not have corresponding upper
or lower letter then space ' ' can be used as dummy character, for
example in German CPs there is no upper case 'scharfes S' letter
so space is used as dummy character.
HB_CP_LATIN should be 1 if the national alphabet is based on Latin
otherwise 0
Please note that now you can use two versions of CP definition.
The 1-st one which uses human readable form similar to the old CP
definition and 2-nd which uses directly final CP tables so it
allows to replicate any conditions which existed in Clipper or
any other compatible language which uses static tables.
tests/cpinfo.prg can generate automatically .c files with new CP
definition in the 2-nd version. Now if user wants to create new
Harbour CP which is fully Clipper compatible he only has to
compile and link cpinfo.prg with given national sorting module
and then execute it with new Harbour CP name as 1-st parameter.
cp<cpname>.c file is generated which can be added to Harbour
repository. Optional 2-nd parameter is CP description and 3-rd
is Harbour Unicode table ID (if not given 437 is used and should
be updated by user in .c file). This method should definitely
resolve any problems with creating Clipper compatible CP definition.
It also allows to easy verify if CP definitions are compatible. It's
enough to compare generated .c files.
* harbour/src/codepage/uckam.c
! fixed Kamenicky Unicode table definition - it was Mazovia CP :)
* harbour/src/codepage/cpde850.c
* harbour/src/codepage/cpdeiso.c
* harbour/src/codepage/cpdewin.c
! fixed CP wrongly encoded CP due to limitations in old CP definition.
Now it's possible to define different number of upper an lower
characters (space " " can be used as dummy character) and I used
it to eliminate hack for 'scharfes S' which does not exists as upper
case.
Please clean other CPs which contain similar hacks.
* harbour/src/codepage/cphu852.c
* harbour/src/codepage/cphuiso.c
* harbour/src/codepage/cphuwin.c
* harbour/src/codepage/cpua866.c
* removed dummy letters introduced for old translation code
* harbour/src/rtl/natmsg.c
* harbour/src/rtl/cdpapi.c
* harbour/include/hbextern.ch
+ added HB_CDPINFO() function
* redirected _NATSORTVER() function to HB_CDPINFO()
To All,
Please check your national sorting in current version and make
any updates if necessary or inform me about found problems.
I've checked that Polish CPs are working fine and all existing
CPs passes my test program which verified some technical aspects
of CP implementation. But I cannot verify if this definitions
satisfy users in different countries.
|
||
|
|
864d74c6a5 |
2009-10-16 20:02 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/rtl/Makefile
+ harbour/src/rtl/hbbfish.c
* harbour/include/Makefile
+ harbour/include/hbbfish.h
+ added support for BlowFish encryption at C level:
hb_blowfishInit(), hb_blowfishEncrypt(), hb_blowfishDecrypt()
This code implements BlowFish algorithm designed by Bruce Schneier.
The description of BlowFish algorithm can be found at:
http://www.schneier.com/paper-blowfish-fse.html
This code uses for initial s-boxes and p-array values PI hex digits
taken from tables public at:
http://www.schneier.com/blowfish.html
which can be downloaded from:
http://www.schneier.com/code/constants.txt
This should be quite fast implementation (probably much faster
then reference one) but please remember that in BlowFish algorithm
startup initialization of encryption tables is intentionally
designed to be expensive to strongly reduce the efficiency of
brute force attacks so call hb_blowfishInit() once for each
new password and then reuse initialized encryption tables in
hb_blowfishEncrypt() and hb_blowfishDecrypt().
I'll add .prg functions later.
TODO: add some asymmetric key encryption.
|
||
|
|
65855b43db |
2009-08-19 04:42 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbgtinfo.ch
* formatting
* harbour/include/Makefile
- harbour/include/hbgetcmt.ch
- removed redundant header file
* harbour/contrib/hbwin/olecore.c
* added workaround for wrong OLE variant structure definition
in some C compilers header files
|
||
|
|
868a22ea84 |
2009-08-17 19:27 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* external/sqlite3/Makefile
* external/libhpdf/Makefile
* external/libpng/Makefile
* external/Makefile
* include/Makefile
* source/pp/Makefile
* source/hbextern/Makefile
* source/lang/Makefile
* source/vm/maindllh/Makefile
* source/vm/mainstd/Makefile
* source/vm/maindllp/Makefile
* source/vm/Makefile
* source/vm/vmmt/Makefile
* source/vm/mainwin/Makefile
* source/main/Makefile
* source/debug/Makefile
* source/common/Makefile
* source/nortl/Makefile
* source/rtl/gtdos/Makefile
* source/rtl/gtwin/Makefile
* source/rtl/gtxwc/Makefile
* source/rtl/gtcrs/Makefile
* source/rtl/gtstd/Makefile
* source/rtl/gttrm/Makefile
* source/rtl/Makefile
* source/rtl/gtcgi/Makefile
* source/rtl/gtos2/Makefile
* source/rtl/gtsln/Makefile
* source/rtl/gtpca/Makefile
* source/rtl/gtgui/Makefile
* source/rtl/gt_tpl/Makefile
* source/rtl/gtwvt/Makefile
* source/macro/Makefile
* source/hbpcre/Makefile
* source/codepage/Makefile
* source/rdd/dbfntx/Makefile
* source/rdd/nulsys/Makefile
* source/rdd/Makefile
* source/rdd/dbfnsx/Makefile
* source/rdd/dbfcdx/Makefile
* source/rdd/hsx/Makefile
* source/rdd/usrrdd/rdds/Makefile
* source/rdd/usrrdd/Makefile
* source/rdd/dbffpt/Makefile
* source/rdd/hbsix/Makefile
* source/hbzlib/Makefile
* source/compiler/Makefile
* source/Makefile
* utils/hbformat/Makefile
* utils/hbmk2/Makefile
* utils/hbtest/Makefile
* utils/hbi18n/Makefile
* utils/Makefile
* utils/hbrun/Makefile
* contrib/gtalleg/Makefile
* contrib/hbmysql/Makefile
* contrib/hbct/Makefile
* contrib/xhb/Makefile
* contrib/hbodbc/Makefile
* contrib/hbtpathy/Makefile
* contrib/hbgt/Makefile
* contrib/hbmzip/Makefile
* contrib/hbsqlit3/Makefile
* contrib/hbblat/Makefile
* contrib/hbqt/Makefile
* contrib/hbfbird/Makefile
* contrib/hbziparc/Makefile
* contrib/hbxbp/Makefile
* contrib/xpp/Makefile
* contrib/Makefile
* contrib/hbnf/Makefile
* contrib/hbcurl/hbcurls/Makefile
* contrib/hbcurl/Makefile
* contrib/gtqtc/Makefile
* contrib/rddsql/sddmy/Makefile
* contrib/rddsql/sddpg/Makefile
* contrib/rddsql/sddfb/Makefile
* contrib/rddsql/sddodbc/Makefile
* contrib/rddsql/Makefile
* contrib/hbhpdf/Makefile
* contrib/rddado/Makefile
* contrib/gtwvg/Makefile
* contrib/hbpgsql/Makefile
* contrib/rddads/Makefile
* contrib/hbclipsm/Makefile
* contrib/hbfimage/Makefile
* contrib/hbgd/Makefile
* contrib/hbmisc/Makefile
* contrib/hbtip/Makefile
* contrib/hbwin/Makefile
* contrib/hbbmcdx/Makefile
* contrib/hbvpdf/Makefile
* contrib/hbssl/Makefile
* contrib/hbbtree/Makefile
* tests/bldtest/Makefile
* doc/en-EN/Makefile
* doc/Makefile
* Makefile
* Renaming .cf files to .mk.
Pass 3. Changing .cf references to .mk ones outside config.
SVN is in working state again. I'll do a final check after
this commit.
|
||
|
|
6944db77d7 |
2009-08-10 14:47 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* doc/en-EN/Makefile
* doc/Makefile
* include/Makefile
* contrib/gtalleg/Makefile
* contrib/hbmysql/Makefile
* contrib/hbct/Makefile
* contrib/xhb/Makefile
* contrib/hbodbc/Makefile
* contrib/hbtpathy/Makefile
* contrib/hbgt/Makefile
* contrib/hbmzip/Makefile
* contrib/hbsqlit3/Makefile
* contrib/hbblat/Makefile
* contrib/hbqt/generator/hbqtgen.prg
* contrib/hbqt/Makefile_gen
* contrib/hbfbird/Makefile
* contrib/hbziparc/Makefile
* contrib/hbxbp/Makefile
* contrib/xpp/Makefile
* contrib/hbnf/Makefile
* contrib/Makefile
* contrib/hbcurl/hbcurls/Makefile
* contrib/hbcurl/Makefile
* contrib/gtqtc/Makefile
* contrib/rddsql/sddmy/Makefile
* contrib/rddsql/sddpg/Makefile
* contrib/rddsql/sddfb/Makefile
* contrib/rddsql/sddodbc/Makefile
* contrib/rddsql/Makefile
* contrib/hbhpdf/Makefile
* contrib/rddado/Makefile
* contrib/gtwvg/Makefile
* contrib/hbpgsql/Makefile
* contrib/hbclipsm/Makefile
* contrib/rddads/Makefile
* contrib/hbfimage/Makefile
* contrib/hbgd/Makefile
* contrib/hbmisc/Makefile
* contrib/hbtip/Makefile
* contrib/hbwin/Makefile
* contrib/hbbmcdx/Makefile
* contrib/hbvpdf/Makefile
* contrib/hbssl/Makefile
* contrib/hbbtree/Makefile
* source/pp/Makefile
* source/hbextern/Makefile
* source/lang/Makefile
* source/vm/maindllh/Makefile
* source/vm/mainstd/Makefile
* source/vm/maindllp/Makefile
* source/vm/Makefile
* source/vm/vmmt/Makefile
* source/vm/mainwin/Makefile
* source/main/Makefile
* source/debug/Makefile
* source/common/Makefile
* source/nortl/Makefile
* source/rtl/gtdos/Makefile
* source/rtl/gtwin/Makefile
* source/rtl/gtxwc/Makefile
* source/rtl/gtcrs/Makefile
* source/rtl/gtstd/Makefile
* source/rtl/gttrm/Makefile
* source/rtl/Makefile
* source/rtl/gtcgi/Makefile
* source/rtl/gtos2/Makefile
* source/rtl/gtsln/Makefile
* source/rtl/gtpca/Makefile
* source/rtl/gtgui/Makefile
* source/rtl/gt_tpl/Makefile
* source/rtl/gtwvt/Makefile
* source/macro/Makefile
* source/hbpcre/Makefile
* source/codepage/Makefile
* source/rdd/dbfntx/Makefile
* source/rdd/nulsys/Makefile
* source/rdd/Makefile
* source/rdd/dbfnsx/Makefile
* source/rdd/dbfcdx/Makefile
* source/rdd/hsx/Makefile
* source/rdd/usrrdd/rdds/Makefile
* source/rdd/usrrdd/Makefile
* source/rdd/dbffpt/Makefile
* source/rdd/hbsix/Makefile
* source/hbzlib/Makefile
* source/compiler/Makefile
* Finished replacing TABs with spaces in simple variable assigments.
TABs are only required when specifiying a rule command.
|
||
|
|
504ca98e1c |
2009-08-09 21:18 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* tests/hbpptest/Makefile
* tests/bldtest/Makefile
* tests/Makefile
* tests/multifnc/Makefile
* doc/en-EN/Makefile
* doc/Makefile
* external/sqlite3/Makefile
* external/libhpdf/Makefile
* external/libpng/Makefile
* external/Makefile
* include/Makefile
* source/hbextern/Makefile
* source/pp/Makefile
* source/lang/Makefile
* source/vm/maindllh/Makefile
* source/vm/mainstd/Makefile
* source/vm/maindllp/Makefile
* source/vm/Makefile
* source/vm/vmmt/Makefile
* source/vm/mainwin/Makefile
* source/main/Makefile
* source/debug/Makefile
* source/common/Makefile
* source/nortl/Makefile
* source/macro/Makefile
* source/rtl/gtdos/Makefile
* source/rtl/gtwin/Makefile
* source/rtl/gtxwc/Makefile
* source/rtl/gtcrs/Makefile
* source/rtl/gtstd/Makefile
* source/rtl/gttrm/Makefile
* source/rtl/Makefile
* source/rtl/gtcgi/Makefile
* source/rtl/gtos2/Makefile
* source/rtl/gtsln/Makefile
* source/rtl/gtpca/Makefile
* source/rtl/gtgui/Makefile
* source/rtl/gt_tpl/Makefile
* source/rtl/gtwvt/Makefile
* source/hbpcre/Makefile
* source/codepage/Makefile
* source/rdd/dbfntx/Makefile
* source/rdd/nulsys/Makefile
* source/rdd/Makefile
* source/rdd/dbfnsx/Makefile
* source/rdd/dbfcdx/Makefile
* source/rdd/hsx/Makefile
* source/rdd/usrrdd/rdds/Makefile
* source/rdd/usrrdd/Makefile
* source/rdd/dbffpt/Makefile
* source/rdd/hbsix/Makefile
* source/compiler/Makefile
* source/hbzlib/Makefile
* source/Makefile
* utils/hbformat/Makefile
* utils/hbmk2/Makefile
* utils/hbtest/Makefile
* utils/hbi18n/Makefile
* utils/hbrun/Makefile
* contrib/gtalleg/Makefile
* contrib/hbmysql/Makefile
* contrib/hbct/Makefile
* contrib/xhb/Makefile
* contrib/hbodbc/Makefile
* contrib/hbtpathy/Makefile
* contrib/hbgt/Makefile
* contrib/hbmzip/Makefile
* contrib/hbsqlit3/Makefile
* contrib/hbblat/Makefile
* contrib/hbqt/Makefile
* contrib/hbqt/generator/hbqtgen.prg
* contrib/hbqt/Makefile_gen
* contrib/hbfbird/Makefile
* contrib/hbziparc/Makefile
* contrib/hbxbp/Makefile
* contrib/xpp/Makefile
* contrib/hbnf/Makefile
* contrib/Makefile
* contrib/hbcurl/hbcurls/Makefile
* contrib/hbcurl/Makefile
* contrib/gtqtc/Makefile
* contrib/rddsql/sddmy/Makefile
* contrib/rddsql/sddpg/Makefile
* contrib/rddsql/sddfb/Makefile
* contrib/rddsql/sddodbc/Makefile
* contrib/rddsql/Makefile
* contrib/hbhpdf/Makefile
* contrib/rddado/Makefile
* contrib/gtwvg/Makefile
* contrib/hbpgsql/Makefile
* contrib/hbclipsm/Makefile
* contrib/rddads/Makefile
* contrib/hbfimage/Makefile
* contrib/hbgd/Makefile
* contrib/hbtip/Makefile
* contrib/hbbmcdx/Makefile
* contrib/hbvpdf/Makefile
* contrib/hbssl/Makefile
* contrib/hbbtree/Makefile
% Using ':=' instead of '=' where possible.
; TODO: Central make files (.cf).
* config/global.cf
* config/bin.cf
* config/globsh.cf
* config/dir.cf
* config/bsd/gcc.cf
* config/bsd/global.cf
* config/c.cf
* config/wce/msvcarm.cf
* config/wce/global.cf
* config/wce/mingwarm.cf
* config/wce/poccarm.cf
* config/rules.cf
* config/hpux/gcc.cf
* config/darwin/gcc.cf
* config/darwin/global.cf
* config/dos/watcom.cf
* config/dos/djgpp.cf
* config/win/watcom.cf
* config/win/icc.cf
* config/win/global.cf
* config/win/cygwin.cf
* config/win/msvc.cf
* config/win/xcc.cf
* config/win/mingw.cf
* config/win/pocc.cf
* config/win/bcc.cf
* config/linux/watcom.cf
* config/linux/gcc.cf
* config/linux/icc.cf
* config/linux/sunpro64.cf
* config/linux/sunpro.cf
* config/os2/watcom.cf
* config/os2/gcc.cf
* config/sunos/gcc.cf
* config/sunos/sunpro64.cf
* config/sunos/sunpro.cf
% Using ':=' instead of '=' where possible.
(incomplete. pass one)
* config/none.cf
* Little change in text.
* config/global.cf
! Fixed HB_ARCHITECTURE mis-detection as wce for a few win compilers.
|
||
|
|
3472f72ddd |
2009-07-28 13:24 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/Makefile
! added hbextlng.ch
* harbour/source/rtl/hbinet.c
! fixed broadcast addresses wrongly used as default
|
||
|
|
2abefe1b3e |
2009-07-27 23:43 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbstack.h
+ added socket error codes to HB_IOERRORS
* harbour/include/Makefile
+ harbour/include/hbsocket.ch
+ harbour/include/hbsocket.h
* harbour/source/rtl/Makefile
+ harbour/source/rtl/hbsocket.c
+ added new BSD socket functions: hb_socket*(). They should be quite
close to low level C socket interface with few modifications which
help to hide some platform differences. Unfortunately we do not use
autoconf so I had to arbitrary set which features are available
on some platforms. In practice it means that it reduces portability
to older OS-es, i.e. it should work with current Linux versions
but it will not without some modifications in macros used to control
supported features with older Linuxes using kernel 2.2 or 2.0.
The same can happen with other *nix ports like Darwin, SunOS, HP-UX
or with different versions of some Windows compilers. I also do not
know which functionality is available in OS2 GCC ports and I would
like to ask OS2 users to make tests and disable not working features.
We also need tests with HP-UX, Darwin and SunOS.
IP6 support is enabled only in *nixes. If Windows users are interested
in IP6 then please add support for it. Most of Windows compilers do
not support standard POSIX functions so I do not want to make it
myself using unknown for me API without testing.
In *nix builds PF_UNIX/PF_LOCAL sockets are also supported.
Support for other socket types can be easy added if someone is
interested in them.
The constant values used in hbsocket.ch are equal to original BSD
socket definitions. If it's necessary then it's possible to enable
their translation inside hbsocket.c code though I do not think we
will find such OS.
The list of hb_socket*() functions was designed to cover all existing
functionality in hbinet.c and socket.c. Most of functions supports
timeout parameter what effectively allows to hide direct select()
usage.
Please make test with real applications and report any problems
with hb_inet*() functions you will find.
* harbour/source/vm/hvm.c
* minor cleanup
* harbour/source/rtl/hbi18n1.c
* cleaned variable name
* harbour/source/rtl/hbinet.c
* harbour/examples/uhttpd2/socket.c
* harbour/contrib/hbssl/hbssl.c
* updated to use hb_socket*() functions
* harbour/include/hbextern.ch
* enabled HB_INET*() functions in DOS builds - they will simply return
errors
- harbour/include/hbapinet.h
- removed old header file
* harbour/source/pp/ppcore.c
! modified ENDTEXT marker to work also with comments in the same line
It's more closer to Clipper though intentionally we are not fully
CA-Cl*pper compatible here.
|
||
|
|
5d8cbff947 |
2009-07-20 00:48 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* contrib/hbssl/ssl.c
+ contrib/hbssl/hbssl.c
* contrib/hbssl/Makefile
+ HB_SSL_READ_ALL() and HB_SSL_READ_LINE() rewritten.
(HB_SSL_READ_ALL() isn't fully optimal, and maybe there
are errors, please check.)
+ Added SSL_GET_RFD(), SSL_GET_WFD().
* include/Makefile
+ include/hbapinet.h
* source/rtl/hbinet.c
+ Moved some basic declarations to new API header,
mainly to export hb_select[Read|Write]*() functions.
We will also need such header in the future when
we implement C level socket/networking API. Current
solution is quite messy since the header has to
pull Windows headers which may not be friendly with
all usages/include order.
* source/rtl/hbinet.c
* HB_SOCKET_STRUCT renamed to HB_SOCKET.
+ Added PHB_SOCKET type.
+ Added hb_selectReadFD(), hb_selectWriteFD() which
are similar to hb_selectReadSocket() and
hb_selectWriteSocket() but expect raw FD plus explicit
timeout values.
These function names and solutions are tentative
to solve SSL integration with Harbour, and hopefully
in the future we will have a clean net API, the current
one is very messy.
* source/vm/itemapi.c
! hb_itemPutCPtr(), hb_itemPutCLPtr() fixed to put empty
string to item if szText is NULL and length is non-zero,
instead of trying to free NULL pointer causing internal
error.
* include/hbextlng.ch
* Corrected header to be in sync with CDP and not
to repeat the filename.
|
||
|
|
22eba88dc3 |
2009-07-15 20:00 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/Makefile
+ include/hbextcdp.ch
* include/hbextern.ch
* utils/hbmk2/hbmk2.prg
+ Separated EXTERNAL HB_CODEPAGE_* lines to hbextcdp.ch.
These are commonly needed by apps.
* Using hbextcdp.ch in hbmk2.
; TODO: hbextern app needs to be updated to filter out
CODEPAGE symbols.
|
||
|
|
c0ff8439be |
2009-07-02 19:02 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* include/Makefile
* Formatting.
* include/filesys.api
% Cleaned cast.
* contrib/gtwvg/wvgwing.c
! Fixed x64 bug.
* examples/hbgf/hbgfos2/os2pm.c
* LONG -> long
|
||
|
|
1c20b41cc2 |
2009-06-19 11:32 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* tests/testhrb.prg
* tests/Makefile
* include/Makefile
* include/hbhrb.ch
* source/vm/runner.c
! Added new files to Makefiles.
! Fixed to use hbhrb.ch from .c rather than replicating #defines.
(also fixed comments to be ANSI)
! Added self protection to .ch.
! Made .hrb file lowercase in testhrb.prg
! Deleted double license header from .ch.
* utils/hbmk2/hbmk2.prg
+ Added logic to move embedded compilers under a common subdir.
To stay compatible with 2.0.0beta1 release I didn't yet set
this, but it will be for final release.
Probably 'comp', or maybe 'opt'. Sorry for asking for opininons,
but they're welcome anyway.
|
||
|
|
027fa965de |
2009-02-07 00:22 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* include/Makefile
- include/hbfixdj.h
* include/hbsetup.h
- Removed file no longer needed. Harbour no longer uses
is*()/toupper()/tolower() calls, or <ctype.h>.
* source/rtl/gtpca/gtpca.c
% Removed #include <ctype.h>.
|
||
|
|
476002a752 |
2008-12-24 12:23 UTC-0600 Teo Fonrouge (teo/at/windtelsoft/dot/com)
* include/Makefile
+ added hbrddnsx.h header
|
||
|
|
df0a70e6be |
2008-10-28 01:52 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* include/Makefile
* include/hbextern.ch
+ include/hbver.ch
* source/rtl/version.c
+ Added HB_VERSION() unified version information
function. This can return these version related data:
hb_version( HB_V_HARBOUR ) => <string>
hb_version( HB_V_COMPILER ) => <string>
hb_version( HB_V_MAJOR ) => <num>
hb_version( HB_V_MINOR ) => <num>
hb_version( HB_V_REV ) => <num>
hb_version( HB_V_STATUS ) => <string>
hb_version( HB_V_COUNT ) => <num>
hb_version( HB_V_DATE_TIME ) => <string>
hb_version( HB_V_DATE ) => <date>
hb_version( HB_V_TIME ) => <string>
hb_version( HB_V_PCODE ) => <num>
hb_version( HB_V_PCODE_STR ) => <string>
hb_version( HB_V_CHANGELOG_LAST ) => <string>
hb_version( HB_V_CHANGELOG_REV ) => <string>
hb_version( HB_V_FLAG_HARBOUR ) => <string>
hb_version( HB_V_FLAG_C ) => <string>
hb_version( HB_V_FLAG_LINKER ) => <string>
hb_version( HB_V_BITWIDTH ) => <num>
hb_version( HB_V_ENDIANNESS ) => <num>
This function makes deprecated following functions:
- HB_COMPILER() => hb_version( HB_V_COMPILER )
- HB_PCODEVER() => hb_version( HB_V_PCODE_VER_STR )
- HB_BUILDDATE() => hb_version( HB_V_DATE_TIME )
and macros:
- __ARCH16BIT__
- __ARCH32BIT__
- __ARCH64BIT__
- __LITTLE_ENDIAN__
- __BIG_ENDIAN__
- __PDP_ENDIAN__
; NOTE: If there are no objections, I'd remove the
__ARCH*BIT__ and __*ENDIAN__ predefined macros,
as these can be misleading on some systems.
; TODO: Implement HB_V_DATE and HB_V_TIME.
; TODO: Add HB_MTVM() functionality.
; TODO: Add __PLATFORM__* equivalent.
; TODO: Add HB_OS_UNIX_COMPATIBLE equivalent.
* include/hbextern.ch
* include/hbapifs.h
* common.mak
* source/rtl/Makefile
+ source/rtl/fscopy.c
+ Added C level hb_fsCopy() function.
+ Added .prg level HB_FCOPY() function.
|
||
|
|
e1ea6f3cec |
2008-10-07 02:57 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/Makefile
+ harbour/include/hbatomic.h
* harbour/include/hbthread.h
* harbour/source/vm/garbage.c
* harbour/source/vm/fm.c
* moved atomic and spinlock functions into hbatomic.h
* harbour/include/hbatomic.h
+ added atomic inc/dec for GCC and x86@64 and PPC@32
+ use OSAtomic*() and OSSpin*() functions for atomic inc/dec and
spinlocks in Darwin builds
+ added spinlocks to MS-Win builds
|
||
|
|
ffd9b480a4 |
2008-10-02 14:33 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbstack.h
% enable assembler inline function to access HVM thread stack pointer
without native compiler TLS support even if HB_STACK_PRELOAD is not
defined in MinGW builds. It gives some additional small speed
improvement in MT mode
* harbour/source/rtl/idle.c
* unlock HVM inside hb_releaseCPU() function
* harbour/contrib/hbwin/win_ole.c
! fixed casting and C++ compilation in some compilers
* harbour/include/Makefile
+ harbour/contrib/examples/rdddbt/hbrdddbt.h
- harbour/include/hbrdddbt.h
! moved hbrdddbt.h to correct location
* harbour/include/Makefile
! added missinf hbthread.h
* harbour/tests/rddtest/rddmktst.prg
* harbour/tests/rddtest/adscl52.prg
* harbour/tests/rddtest/adscl53.prg
* harbour/tests/rddtest/ntxcl52.prg
* harbour/tests/rddtest/ntxcl53.prg
* harbour/tests/rddtest/cdxcl52.prg
* harbour/tests/rddtest/rddtst.prg
* harbour/tests/rddtest/cdxcl53.prg
! fixed description in header I wrongly copied without updating
from other files
+ harbour/tests/hsxtest.prg
+ added test code for HiPer-SEEK indexes
* harbour/source/rtl/filesys.c
+ added new functions: hb_fsExtName(), hb_fsReadAt(), hb_fsWriteAt(),
hb_fsTruncAt() to use with shared file handles.
Please test it in other *nixes. I used pread[64]()/pwrite[64]()
POSIX functions but I do not know if they are available by default
in other supported platforms like MacOSX, BSD, HPUX, SunOS.
If not they I will have to implement some workaround.
* harbour/common.mak
* harbour/source/rtl/Makefile
* harbour/include/hbapifs.h
+ harbour/source/rtl/filebuf.c
+ added set of new file functions (hb_file*()) which are designed to
use with shared file handles and locks (buffers in the future):
hb_fileExtOpen(), hb_fileCreateTemp(), hb_fileClose(), hb_fileLock(),
hb_fileReadAt(), hb_fileWriteAt(), hb_fileTruncAt(), hb_fileSize(),
hb_fileCommit(), hb_fileHandle()
These functions operate on PHB_FILE structure instead of HB_FHANDLE.
Now in POSIX systems they share file handle between aliased or
simultaneously open by other thread work areas. It resolves the
problem with releasing all process FCNTL locks by any close()
operation even on duplicated or open() separately handle.
Now DOS deny flags emulation works in single process even if
BSD locks are disabled (non Linux *nixes).
They also keep internal file lock list what allows to synchronize
threads and aliases with file locks in POSIX systems. In the future
it will be used also for internal locking to synchronize threads
without OS level locks - pseudo exclusive mode in cloned WA.
Finally these structures will be used also for file buffers
which will be shared between aliased WA and threads.
* harbour/include/hbrdddbf.h
* harbour/include/hbrddcdx.h
* harbour/include/hbrddntx.h
* harbour/include/hbrdddel.h
* harbour/include/hbrddsdf.h
* harbour/source/rdd/dbf1.c
* harbour/source/rdd/delim1.c
* harbour/source/rdd/sdf1.c
* harbour/source/rdd/dbffpt/dbffpt1.c
* harbour/source/rdd/dbfntx/dbfntx1.c
* harbour/source/rdd/dbfcdx/dbfcdx1.c
* harbour/source/rdd/hsx/hsx.c
* harbour/contrib/hbbmcdx/bmdbfcdx.c
* harbour/contrib/hbbmcdx/hbbmcdx.h
* use PHB_FILE and hb_file*() functions instead of HB_FHANDLE (hb_fs*())
to access files.
+ harbour/tests/aliaslck.prg
+ added test code for file lock synchronization between aliased
work areas
|
||
|
|
cf55a99c10 |
2008-09-30 11:37 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/Makefile
+ harbour/include/hbvmint.h
+ added new header file which works like hbvmopt.h but does not enable
stack macros
* harbour/contrib/xhb/xhbenum.c
* harbour/contrib/xhb/xhbqself.c
* harbour/contrib/xhb/xhbwith.c
* harbour/contrib/xhb/cstructc.c
* harbour/contrib/hbwin/win_ole.c
! use hbvmint.h instead of hbvmopt.h to eliminate direct bindings to
HVM stack structure
|
||
|
|
c1c574142e |
2008-09-21 23:03 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/hbapi.h
* harbour/source/vm/arrays.c
+ added hb_arrayGetPtrGC(), hb_arrayGetSymbol(), hb_arraySetSymbol()
* harbour/include/hbapi.h
* harbour/source/vm/dynsym.c
+ added hb_dynsymProtectEval(). Works like hb_dynsymEval() but
keeps dynamic symbol table locked during whole execution.
It's faster then hb_dynsymEval() but user function may not
access dynamic symbol tbale to not cause recursive locks
+ added protection against possible dynamic symbol table resizing
during hb_dynsymEval() by other threads.
* harbour/include/hbapi.h
* harbour/source/vm/memvars.c
+ added hb_memvarSaveInArray( int iScope, BOOL fCopy ) and
hb_memvarRestoreFromArray( PHB_ITEM pArray )
% use hb_dynsymProtectEval() in places where it's safe
* harbour/include/Makefile
+ harbour/include/hbthread.ch
+ added header file with thread constant definitions:
HB_THREAD_INHERIT_PUBLIC
HB_THREAD_INHERIT_PRIVATE
HB_THREAD_INHERIT_MEMVARS
HB_THREAD_MEMVARS_COPY
* harbour/include/hbthread.h
* harbour/source/vm/hvm.c
* harbour/source/vm/thread.c
+ added support for inheriting visible memvars from current
thread when new thread is created. Memvars in child thread
can be shared with parrent or they can be copied. See HB_THREAD_*
attributes defined in hbthread.ch, f.e.:
hb_threadStart( HB_THREAD_INHERIT_PUBLIC, @thFunc() )
or:
hb_threadStart( HB_BITOR( HB_THREAD_INHERIT_MEMVARS + ;
HB_THREAD_MEMVARS_COPY ), ;
@thFunc() )
Please note that when child thread creates new PUBLIC variable
which didn't existed when thread was started then it's visible
only for this thread and optionally for its child threads but
not for parent thread.
Please also remember that write access to shared memvars have
to be protected by users.
+ harbour/tests/mt/mttest08.prg
+ added test code for thread memvars inheritance
|
||
|
|
53d1817e97 |
2008-08-11 21:20 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* include/hbsetup.h
* config/hpux/gcc.cf
* config/linux/gcc.cf
* config/os2/gcc.cf
* config/bsd/gcc.cf
! Never force the platform from the make files, rather
rely on the autodetection in hbsetup.h.
Compiling default parts of the software should only rely
on manually set macros if there is no reasonable chance to
make the detection automatic.
! HB_OS_LINUX, HB_OS_HPUX autodetection supposedly made more robust.
* include/hbsetup.ch
* include/hbapi.h
* source/rtl/hbffind.c
- Removed HB_FILE_VER stuff. It's lost it's importancy with SVN.
* include/Makefile
* include/hbcommon.ch
- Removed hbcommon.ch no longer needed. It only contained
HB_FILE_VER related stuff.
* contrib/rddado/Makefile
! Excluded from OS/2 builds.
|
||
|
|
a0b9a8d77a |
2008-07-04 03:06 UTC+0200 Viktor Szakats (harbour.01 syenar hu)
* include/Makefile
! Removed hbwmain.c from the header list to be installed.
(Przemek please verify me)
|
||
|
|
31bd015517 |
2008-05-28 14:33 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* common.mak
* include/Makefile
+ include/hbzlib.ch
+ include/hbzlib.h
* include/hbextern.ch
+ source/rtl/hbzlib.c
* source/rtl/Makefile
* contrib/make_b32_all.bat
* contrib/make_vc_all.bat
* contrib/make_gcc_all.sh
* contrib/Makefile
+ contrib/hbmzip
+ contrib/hbmzip/Makefile
+ contrib/hbmzip/common.mak
+ contrib/hbmzip/make_b32.bat
+ contrib/hbmzip/make_vc.bat
+ contrib/hbmzip/make_gcc.sh
+ contrib/hbmzip/hbmzip.ch
+ contrib/hbmzip/ioapi.c
+ contrib/hbmzip/zip.c
+ contrib/hbmzip/unzip.c
+ contrib/hbmzip/ioapi.h
+ contrib/hbmzip/crypt.h
+ contrib/hbmzip/zip.h
+ contrib/hbmzip/unzip.h
+ contrib/hbmzip/hbmzip.c
+ contrib/hbmzip/readme.txt
+ contrib/hbmzip/tests
+ contrib/hbmzip/tests/bld_b32.bat
+ contrib/hbmzip/tests/bld_vc.bat
+ contrib/hbmzip/tests/myzip.prg
+ contrib/hbmzip/tests/myunzip.prg
+ Added hbzlib.h which is a simple wrapper to source/hbzlib/zlib.h.
* Moved ZLIB specific Harbour wrappers and header from /contrib/hbzlib
to /source/rtl.
+ Added /contrib/hbmzip lib based on /contrib/hbzlib.
Copy + modify was used to keep the repo history.
hbmzip contains all the MiniZip parts from former /contrib/hbzlib.
New hbmzip header file: hbmzip.ch
+ Added new Harbour level zip functions to hbextern.ch.
; TODO: Remove /contrib/hbzlib, add core hbzlib to lib lists.
|
||
|
|
df61dfde04 |
2007-11-13 14:13 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/make_xmingwce.sh
* harbour/make_xmingw.sh
* do not create compiler binaries in cross builds
* use hbce and hbw prefixes for generated build scripts
* harbour/make_tgz.sh
* use strip from cross compiler instead of native one
* harbour/include/Makefile
+ added missing header files
* harbour/harbour.spec
* minor cleanup
* harbour/source/compiler/cmdcheck.c
* accept internal option delimiters in define value
(-d option, f.e.: '-dABC="QWE-ASD"')
|
||
|
|
c99ac3d297 |
2007-10-18 23:54 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/bin/hb-mkslib.sh
* harbour/bin/pack_src.sh
* updated for recent Viktor's modifications
* harbour/source/rtl/oemansix.c
! added missing #include "hbpai.h"
* harbour/include/Makefile
+ harbour/include/hbwince.h
* harbour/include/hbrdddbf.h
* harbour/include/hbrdddbt.h
* harbour/include/hbdefs.h
* harbour/include/hbsetup.h
* harbour/include/hbrddcdx.h
* harbour/include/hbrddfpt.h
* harbour/contrib/xhb/hboutdbg.c
* harbour/contrib/xhb/hbsyslog.c
* harbour/contrib/xhb/xhbfunc.c
* harbour/contrib/libct/ctnet.c
* harbour/contrib/libct/files.c
* harbour/contrib/libct/disk.c
* harbour/contrib/libnf/getenvrn.c
* harbour/contrib/win32/tprinter.c
* harbour/contrib/win32/w32_ole.c
* harbour/contrib/win32/w32_prn.c
* harbour/contrib/odbc/odbc.c
* harbour/source/pp/ppgen.c
* harbour/source/rtl/diskspac.c
* harbour/source/rtl/gtclip.c
* harbour/source/rtl/fstemp.c
* harbour/source/rtl/gtchrmap.c
* harbour/source/rtl/oemansi.c
* harbour/source/rtl/disksphb.c
* harbour/source/rtl/fssize.c
* harbour/source/rtl/hbffind.c
* harbour/source/rtl/filesys.c
* harbour/source/rtl/net.c
* harbour/source/rtl/gtgui/gtdef.c
* harbour/source/rtl/gtwvt/gtwvt.c
* harbour/source/rtl/gtpca/gtpca.c
* harbour/source/rtl/gtstd/gtstd.c
* harbour/source/rtl/gtwin/gtwin.c
* harbour/source/vm/Makefile
* harbour/source/vm/mainwin.c
* harbour/source/vm/dynlibhb.c
+ harbour/source/vm/mainwin/Makefile
* harbour/source/common/Makefile
* harbour/source/common/hbgete.c
* harbour/source/common/hbver.c
+ harbour/source/common/hbwince.c
* harbour/utils/hbpp/hbpp.c
* harbour/utils/hbdot/hbdot.prg
* harbour/utils/hbver/hbverfix.c
+ added support for WinCE and PocketPC
+ harbour/make_xcemgw.sh
+ harbour/config/w32/cemgw.cf
* harbour/bin/hb-mkslib.sh
* harbour/bin/hb-func.sh
* harbour/bin/postinst.sh
+ added support for CeGCC-MinGW32 port - those of you who want to
create applications for WinCE on PockePC with ARM processors on
Linux or MS-Windows can download from SF cegcc-mingw32ce port.
User using RPM based Linux distribution for x86 CPUs can simply
download cegcc-mingw32ce-0.50-1.i586.rpm and install it.
The hb* scripts created by ./make_xcemgw.sh [tgz|gnu] are
automatically updated to work with CeGCC-MinGW32 so later you
can simply crate WinCE-ARM binaries using them as for native port.
I'm waiting for users feedback. Please remember that I'm not Windows
user and even this port was created without any Pocket machine.
With Marek Paliwoda help I only tested that final applications are
working using PocketPC emulator.
|
||
|
|
79d5392cfc |
2007-09-28 17:26 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* include/Makefile
- include/hbcompat.ch
+ contrib/xhb/hbcompat.ch
* contrib/xhb/xhb.ch
* contrib/xhb/Makefile
* Moved content or hbcompat.ch into xhb.ch.
Those who need compatibility, have to replace
* Moved hbcompat.ch (for compatibility) to contrib/xhb
|
||
|
|
f7b2b9a553 |
2007-09-13 16:40 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/Makefile
+ harbour/include/hbsxdef.ch
* harbour/include/dbinfo.ch
* harbour/include/hbrdddbf.h
* harbour/include/hbrddcdx.h
* harbour/include/hbrddntx.h
* harbour/contrib/bmdbfcdx/hbrddbmcdx.h
* harbour/source/rdd/dbf1.c
* harbour/source/rdd/workarea.c
+ added SIx3 compatible triggers support
They should work like in SIx3 with some intentional excpetions:
1) if 4-th parameter exists (PREUSE/GET/PUT) then it's passed by
reference otherwise is not passed at all and PCOUNT() in trigger
functions returns 3
SIx3 do not pass 4-th parameter by reference and if it not
exist then passes 0
2) EVENT_POSTCLOSE is executed after SUPER_CLOSE()
SIx3 executes EVENT_POSTCLOSE just before SUPER_CLOSE()
3) EVENT_UPDATE is executed _ALWAYS_ when DBF is updated also
when WA does not have open indexes
SIx3 executes EVENT_UPDATE only when at least one index is
open without checking if it's updated or not
4) EVENT_POSTUSE is executed from OPEN() method in "DBF" RDD not
from index RDDs so before the indexes are open
SIx3 executes EVENT_POSTUSE after opening indexes
It's possible that I'll change this condition in the future
|
||
|
|
487aa9c20e |
2007-05-23 11:55 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/Makefile
+ added hbapidbg.h
* harbour/source/vm/classes.c
- removed one unused debug function
* harbour/source/vm/debug.c
* formatting
|
||
|
|
60f8ef1aa4 |
2007-05-09 10:10 UTC+0200 Lorenzo Fiorini (lorenzo.fiorini/at/gmail.com)
* harbour/config/w32/mingw32.cf
* fixed typo
* harbour/include/Makefile
* removed reference to deleted hbrddwrk.h
* harbour/include/std.ch
* added SET EOL <x> clause
* harbour/include/hbcompat.ch
* fixed typos and added TEXT INTO
* harbour/contrib/gd/Makefile
* fixed install of includes
* harbour/contrib/gd/gdwrp.c
* fixed warnings
|
||
|
|
1c11bc25db |
2007-04-23 23:28 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* harbour/source/rtl/diskspac.c
! Fixed to return free space instead of disk size under Unix OSes.
* harbour/source/rtl/tget.prg
! Fixed checking for invalid GET var types.
! More C5x compatible behaviour for invalid types.
! ::UnTransform() fixed when not in focus.
- ::UnTransform() cBuffer incompatible parameter removed.
! ::Reform() probably made more compatible.
+ ::PosInBuffer() XBase++ compatible method implemented.
(but not tested or compared with XBase++)
! ::Minus assignment fixed.
! ::Clear assignment fixed.
! ::Changed assignment fixed.
! ::Buffer assignment fixed.
! ::Block assignment fixed.
! ::Name assignment fixed.
! ::UnTransform() extra parameter removed.
! ::UpdateBuffer() minor fix when not in focus.
! ::Reform() made more compatible.
% ::SetFocus() some superfluous stuff removed.
% ::SetFocus() some fixes, cleanups.
! ::KillFocus() now sets ::TypeOut properly.
! ::VarPut(), ::VarGet() fixed for invalid ::Subscript contents.
! ::VarPut(), ::VarGet() fixed for invalid ::Block content.
! ::Pos rewritten to be fully compatible.
! ::ColorSpec made fully compatible.
! ::UnTransform() fixed when not in focus.
! ::UnTransform() fixed handling "YL" in string pictures.
% ::UnTransform() minor optimization.
% ::PutMask() some hacks removed.
! ::PutMask() invalid types handling.
! ::BackSpace() fixed when not in focus.
! ::Delete() fixed when not in focus.
! ::DeleteAll() fixed when not in focus.
! ::IsEditable() fixes.
! ::Picture fixes for invalid types, assignment behaviour.
! ::Picture hacks removed.
! Non-assignable vars made READONLY. (will generate
different RTEs than in CA-Cl*pper due to the more
refined oo engine in Harbour.)
! ::BadDate changed to be a METHOD.
! ::ToDecPos fixes.
! ::Row assigment and behaviour fixes.
! ::Col assigment and behaviour fixes.
+ Several comments and NOTEs added.
* harbour/include/hbapigt.h
* harbour/source/rtl/gtapi.c
* harbour/source/rtl/setcolor.c
+ hb_gtColorsToString() public API added.
+ hb_NToColor() function added to convert a single color
value (returned by hb_ColorToN()) back to a string.
Used in TGet():ColorSpec implementation.
* harbour/source/vm/fm.c
* "Blocks" -> "Block(s)"
* harbour/tests/rto_get.prg
+ Added many test cases.
* harbour/source/vm/cmdarg.c
+ Added support to use "--" instead of "//" for internal
command line options.
* harbour/source/rtl/tbcolumn.prg
+ Formatting.
* harbour/source/rtl/tbrowse.prg
+ Added Harbour (undocumented) extension NOTE.
* harbour/include/Makefile
- harbour/include/usrrdd.ch
+ harbour/include/hbusrrdd.ch
* harbour/source/rdd/usrrdd/usrrdd.c
* harbour/source/rdd/usrrdd/rdds/dbtcdx.prg
* harbour/source/rdd/usrrdd/rdds/fcomma.prg
* harbour/source/rdd/usrrdd/rdds/fptcdx.prg
* harbour/source/rdd/usrrdd/rdds/hscdx.prg
* harbour/source/rdd/usrrdd/rdds/rlcdx.prg
* harbour/source/rdd/usrrdd/rdds/smtcdx.prg
* harbour/contrib/pgsql/pgrdd.prg
! Changed public header filename to comply with the "hb*.ch" rule.
(namespace protection)
|
||
|
|
e5fbdabf92 |
2007-04-13 19:05 UTC+0200 Lorenzo Fiorini (lorenzo.fiorini/at/gmail.com)
* harbour/include/Makefile
! added install of hbcompat.ch
* harbour/source/debug/dbgtarr.prg
* harbour/source/debug/dbgtobj.prg
* harbour/source/debug/dbgthsh.prg
* added missed #ifndef HB_NO_READDBG
|
||
|
|
3fe91afe15 |
2007-04-10 14:35 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/Makefile
+ added hbregex.h
* harbour/include/hbclass.ch
+ added support for ENDCLASS LOCK[ED]
+ := <clasname> { <constructorParams,...> }
* harbour/source/debug/tbrwtext.prg
* harbour/source/rtl/memoedit.prg
* harbour/utils/hbdoc/ffile1.prg
* harbour/utils/hbmake/ffile1.prg
* changed code with:
super:<msg>
to
::super:<msg>
I will want to remove lines with:
[ ; #translate Super( <SuperClassN> ): => ::<SuperClassN>: ] ;
[ ; #translate Super( <SuperClass1> ): => ::<SuperClass1>: ] ;
[ ; #translate Super(): => ::<SuperClass1>: ] ;
[ ; #translate Super: => ::<SuperClass1>: ] ;
[ ; #translate ::Super : => ::<SuperClass1>: ]
from our hbclass.ch (at least the last three ones) because they beaks
code which uses SUPER identifier
* harbour/source/rtl/philes.c
* changed FSEEK() to use hb_fsSeekLarge() for OSes which supports
large (64bit) files
* harbour/source/vm/classes.c
! updated some comments about function syntax
|
||
|
|
96561eeae0 |
2007-03-31 12:40 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/Makefile
+ harbour/include/hbchksum.h
* harbour/source/rtl/Makefile
+ harbour/source/rtl/hbadler.c
+ harbour/source/rtl/hbcrc.c
+ harbour/source/rtl/hbmd5.c
+ added functions to calculate different checksums
HB_ADLER( <cValue> [, <nStart> ] ) -> <nCC>
HB_CRC32( <cValue> [, <nStart> ] ) -> <nCRC>
HB_CRC16( <cValue> [, <nStart> ] ) -> <nCRC>
HB_CRC ( <cValue> [, <nStart> ] [, <nPolynomial> ] ) -> <nCRC>
HB_CRCCT( <cValue> [, <nStart> ] [, <nPolynomial> ] ) -> <nCRC>
HB_MD5( <cString> ) -> <cMD5>
HB_MD5FILE( <cFileName> ) -> <cMD5>
HB_CRC() is general CRC function which can be used for any polynomial
given as second argument, f.e.: 0x104C11DB7 is CRC32 polynomial,
0x18005 -> CRC16, 0x11021 -> CRC16 X.26, 0x1393 -> CRC12, 0x101 -> LCR8
HB_CRCCT() makes exactly the same job but it uses broken algorithm.
Unfortunately it seems that this broken version is widely used by many
other projects, f.e. HB_CRCCT() gives exactly the same results as
COM_CRC() from CT3. Generated results are usually "good enough" but
if you do not need compatibility with some other tools which uses
broken CRC algorithm then I suggest to not use it.
HB_ADLER() is ADLER32 check sum - this function gives the same results
as HB_CHECKSUM in xHarbour.
HB_MD5*() functions are from Dmitry V. Korzhov code modified a
little bit by me for other then x86@32 machines files and buffers
longer then 2^32. I also fixed possible problems with wrong results
in some cases.
* harbour/source/compiler/hbmain.c
* increase number of optimization passes
* harbour/source/pp/ppcore.c
* cleaned C compiler warning
|
||
|
|
390affe026 |
2006-11-28 16:00 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/Makefile
+ added hbcompdf.h and hbstdgen.ch
* harbour/source/compiler/harbour.y
* harbour/source/macro/macro.y
+ added #define __STDC__ as workaround for __BORLANDC__ which seems
to not properly understand ANSI C declarations. It should pacify
some of BCC warning messages about undeclared functions
* harbour/source/compiler/harbour.yyc
* harbour/source/compiler/harbour.yyh
* harbour/source/macro/macro.yyc
* harbour/source/macro/macro.yyh
* updated generated grammar parser files for above modification
in parser definition files (.y)
|
||
|
|
fe67521514 |
2006-07-06 23:05 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/Makefile
+ added usrrdd.ch
* harbour/include/hbapiitm.h
* harbour/source/vm/itemapi.c
+ added hb_itemPutSymbol()
* harbour/source/vm/hvm.c
! fixed HB_P_POPVARIABLE - it should work like HB_P_POPMEMVAR
This Ron's code which illustrates it:
PROCEDURE Main()
USE Test
First := First
CLOSE
? First
RETURN
In practice it means that we do not need this PCODE at all and
we should replace it in compiler by HB_P_POPMEMVAR and reuse
it in the future for differ things.
* harbour/source/vm/memvars.c
* code cleanup
* harbour/source/vm/runner.c
! fixed possible memory leaks when corrupted .hrb file is loaded
|
||
|
|
5f67da8896 |
2006-06-19 23:10 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/Makefile
+ added hbapicls.h
* harbour/include/hbapi.h
* harbour/source/vm/garbage.c
* added some testing macros
* harbour/include/hbmath.h
* HB_MATH_ERRNO enabled for MINGW build. Seems that MinGW doesn't
activate math error handler and only sets errno
* harbour/include/hbtypes.h
* harbour/source/vm/maindllp.c
! fixed VM_PROCESS_SYMBOLS_EX definition
* cleaned a little bit code to not return uninitialized values
when original function cannot be detected
* harbour/source/compiler/genc.c
* minor modifications
* harbour/source/rtl/math.c
! fixed possible memory leak
* indenting
* harbour/source/vm/classes.c
! fixed possible GPF in __GETMSGPRF
* use only one function for method name hashing
* harbour/source/vm/hvm.c
* minor fix
|
||
|
|
8bc1e2f652 |
2006-04-15 20:20 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/Makefile
+ harbour/include/blob.ch
* harbour/include/dbinfo.ch
* harbour/include/hbdbferr.h
* harbour/include/hbrddfpt.h
* harbour/source/rdd/dbf1.c
* harbour/source/rdd/workarea.c
* harbour/source/rdd/dbffpt/dbffpt1.c
+ added all CL5.3 BLOB*() functions support
+ added new RDD DBFBLOB compatible with CL5.3 DBFBLOB
It operates on memo files only (.dbv) without tables (.dbf)
To create .DBV file use:
dbCreate( cFile, {}, "DBFBLOB" )
* harbour/source/rdd/dbcmd.c
* do not report error when empty structure table is passed to DBCREATE()
CL5.3 allow to create even DBF files without any fields and because
I can imagine some valid code which use it as a feature then I also
allow it in DBF RDD.
Authors of RDDs which do not allow to create tables without fields
should add to their low level RDD code necessary RT error.
|
||
|
|
4ee1406dd5 |
2006-03-21 02:25 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/make_gnu.bat
* harbour/make_gnu.cmd
* harbour/make_gnu.sh
* added information about GTWVT to GT description for Windows
* harbour/contrib/rdd_ads/ads1.c
* harbour/contrib/rdd_ads/adsfunc.c
* harbour/source/rdd/dbf1.c
* synced with xHarbour
* harbour/source/rtl/console.c
! fixed PROW() updating to be Clipper compatible when row number
exceed 16bit integer value
* harbour/source/rtl/filesys.c
! fixed possible GPF when hb_fsCurDirBuff()
* harbour/source/rtl/str.c
* harbour/source/rtl/strzero.c
* minor optimizations
* harbour/source/rtl/strpeek.c
! fixed accessing the last character in STRPEEK() and STRPOKE()
* harbour/include/hbgtinfo.ch
* harbour/source/rtl/gtwin/gtwin.c
+ synced with recent xHarbour modifications
* harbour/source/rtl/gtwvt/gtwvt.c
* cleaned BCC warning
* harbour/include/hbapi.h
* harbour/source/vm/codebloc.c
* declare BYTE * passed to hb_codeblockNew() as const
* harbour/include/hbpcode.h
! fixed the PCODE numbers in PCODE description, 122 was repeated for
two different PCODEs: HB_P_ONE and HB_P_MACROLIST
* harbour/source/compiler/genc.c
! fixed hb_p_functionshort pcode size returned by genc function
! fixed double value presented in verbose genc mode for HB_P_PUSHDOUBLE
! fixed number of cases presented in verbose genc mode for HB_P_SWITCH
* harbour/source/compiler/hbdead.c
+ added support for dead code elimination in functions which uses
SWITCH ...; CASE ...; ...; END syntax
* harbour/source/compiler/harbour.c
* harbour/source/compiler/hbfix.c
! fixed optimization for HB_P_PUSHLOCALNEAR and HB_P_POPLOCALNEAR.
It was a long existing bug not reported so far because 0, 1 and 2
PCODEs uses only one BYTE and bad PCODE tracing in hbfix.c didn't
caused bad side effects as long as number of locals in function
was smaller then 768. Now for functions HB_P_PUSHLOCAL and
HB_P_POPLOCAL is used and later changed to NEAR version in hbfix.c
if possible.
* harbour/source/compiler/hbfix.c
* join sequential jumps to optimize constructions like:
while ...
...
if ...
exit
endif
enddo
* harbour/source/compiler/hbdead.c
* remove HB_P_END PCODE also at the and of function if is repeated
just before, f.e. in code like (source/rtl/color53.prg):
Function RADGRDEFCO( cColor )
if isdefcolor()
Return applydefau( cColor, "W/N", "W/N", "W+/N")
Else
Return applydefau( cColor, 3, 1, 4)
endif
Return nil
Now such redundant constructions like above are fully stripped by
compiler anyhow if someone has time and think is important then can
clean also this .prg code.
* harbour/include/Makefile
* harbour/include/hbcomp.h
+ harbour/include/hbxvm.h
* harbour/source/compiler/Makefile
* harbour/source/compiler/cmdcheck.c
* harbour/source/compiler/genc.c
+ harbour/source/compiler/gencc.c
+ harbour/source/compiler/hblbl.c
* harbour/source/compiler/hbpcode.c
* harbour/source/vm/hvm.c
+ added support for generating real C code not PCODE in .c files.
Now with -gc3 Harbour will generate .c files with real .c code
which is later compiled to real machine code.
I left PCODE only for code block definitions though it's also
possible to have even code block compiled to machine code but
we will have to add a flag to codeblock structure which will
be checked at runtime and proper method of execution in EVAL
will be chosen. If you think it's worth of afford then I can
add it too in some spare time.
The final binaries are noticable longer then the one which has
only PCODE but they are faster. The speed improvement depends
on type of operations. The pure Clipper code which does not
execute any external time consuming C functions compiled with
-gc3 is from 10% to 50% faster.
The side effect of generating pure machine code is also harder
recompilation but it does not mean that is impossible. If sth
can be executed by some machines (virtual or hardware) then it
can always be decompiled by definition.
This modification opens door for farther optimization, f.e. when
we will have fully working strong type support then we can add
using native .c types.
In fact this module is PCODE to .c translater not part of compiler
and can be used as separate module to translate generated PCODE,
f.e. .hrb files.
Maybe in the future we will change the compiler to generate meta
code not directly PCODE and it will be possible to make optimizations
on this meta code which will depend on selected output type:
VHM PCODE, C code, .NET code, etc. but at this moment adding support
for .c compilation directly into compiler will make the compiler code
too much complicated for me - IMHO it's better to invest time into
clear separation to FRONT_END->REAL_COMPILER->BACK_END
Please make test with your code. I rebuild whole Harbour code with
-gc3 set in HB_FLAGS in harbour/config/rules.cf and all seems to
work correctly. hbtest returns exactly the same results.
I also made tests with my programs and they work correctly but
I had to define actions for all PCODEs and it's possible that made
some typos in some of them which are very seldom used so your tests
will be very important.
|
||
|
|
c5ccfa9978 |
2006-03-01 14:30 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/contrib/htmllib/default.ch
* fixed few wrong definitions - Ryszard, the definitions where wrong
but Clipper PP seems to parse them.
* harbour/contrib/rdd_ads/ads1.c
* call AdsFlushFileBuffers() only when _SET_HARDCOMMIT is set (default)
* harbour/include/Makefile
+ harbour/include/hbgfx.ch
+ harbour/include/hbgfxdef.ch
+ added hbgfx.ch, hbgfxdef.ch and missing tbrowse.ch
* harbour/include/hbapigt.h
* harbour/include/hbgtcore.h
* harbour/source/rtl/gtapi.c
* harbour/source/rtl/hbgtcore.c
+ added hb_gtGfxPrimitive(), hb_gtGfxText() - it's a work in progress
now this functions works like in xHarbour allow to draw graphic
objects in GTs which can do that (GTALLEG, GTXWC) but I plan to
introduce some modifications in them.
+ harbour/tests/gfx.prg
+ added test program by Mauricio Abre (borrowed from xHarbour) which
illustrates GFX usage
* harbour/include/hbdefs.h
* harbour/source/compiler/genc.c
* harbour/source/compiler/harbour.c
* harbour/source/vm/hvm.c
* minor modification in some harbour func name and symbol scope
definitions - I'd like to keep them in one place for easier
manipulations in the future
* harbour/source/compiler/harbour.y
* harbour/source/pp/ppcore.c
* harbour/source/pp/pplib.c
* harbour/utils/hbpp/hbpp.c
* clean a little bit recent modification it should resolve the
problem with GPFs reported by users and some possible memory
leaks when preprocessing/compilation process is interrupted.
Ryszard I decided to always store copy of file name in open
files structure - it can be used by compiler, preprocessor,
PPLIB and HBPP and IMHO in all cases it should have valid
and always initialized in the same way members for easier
manipulation. In the future I'd like to clean the whole PP
usage. I will need to keep all compiler and PP static variables
in one structure pointed by pointer in thread local data or
passed to called functions for MT support.
* harbour/source/rtl/cdpapi.c
* set 0 at the end of destination string in hb_cdpStrnToUTF8()
* harbour/source/rtl/dateshb.c
! fixed possible GPF in CTOD when badly formated date is given
* harbour/source/rtl/gtxwc/gtxwc.c
* harbour/source/rtl/gtxwc/gtxwc.h
* changed the selection code - now both PRIMARY and CLIPBOARD
selections are set by Harbour. It should work with any programs
which uses any of them but I'd like to remove one of this selections
or give user a way to chose the preferred one. I can also add support
for automatic setting/clearing/pasting PRIMARY selection by GTXWC
with mouse and shift key. I'm waiting for opinions.
+ added basic support for GFX operations
+ harbour/source/rtl/gtalleg/Makefile
+ harbour/source/rtl/gtalleg/fixedth.sfc
+ harbour/source/rtl/gtalleg/gtalleg.c
+ harbour/source/rtl/gtalleg/ssf.c
+ harbour/source/rtl/gtalleg/ssf.h
+ added new GT by Mauricio Abre based on Allegro cross platform
graphic libraries.
Code borrowed from xHarbour and modified by my for new Harbour
GT API.
|
||
|
|
5796421a06 |
2006-02-11 13:32 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/include/Makefile
* added missing header files
* harbour/source/compiler/harbour.c
* added support for @filelst[.clp] - partially borrowed from xHarbour
It's not exactly the same as in Clipper because Clipper creates
one final file when [x]Harbour series of files.
To make it like in Clipper we will have to add support from more
then one symbol table in the final file. It will be also useful
for proper implementation of:
DO <file>
Now in [x]Harbour it works like #include <file>.prg when in Clipper
also new symbol table is created for included files. The difference
can be easy sync when current file has static functions with exactly
the same names as the one included by DO - compilation fails.
* add HB_P_ENDBLOCK to PCODE with codeblock body before run any
optimization - it fixes pcode tracing in jump optimization and
also allow to make some validation of generated PCODE
* harbour/source/rdd/dbstrux.prg
* harbour/source/rdd/dbtotal.prg
* removed not longer necessary temporary alias creation. Harbour
support empty aliases ("") like Clipper.
* harbour/source/rdd/dbffpt/dbffpt1.c
* harbour/source/rtl/hbgtcore.c
* casting
* harbour/source/rtl/gtos2/gtos2.c
! fixed hb_gt_os2_GetScreenContents()
|