* common.mak
* include/hbextern.ch
* source/rtl/Makefile
+ source/rtl/strxor.c
+ Added HB_STRXOR() (work of Mindaugas Kavaliauskas)
* common.mak
* source/common/Makefile
+ source/common/hbprintf.c
+ Added hb_snprintf_c() (temp name, untested) (work of Przemyslaw Czerpak)
[ I've added a normal Harbour license, as per your permission
on the list. Pls give me feedback is this is wrong. ]
* source/rdd/usrrdd/example/exlog.prg
! Fixed missing #includes.
* source/rdd/usrrdd/example/hbmk_b32.bat
+ source/rdd/usrrdd/example/hbmk_vc.bat
+ Added MSVC make file.
! Added EOL to the last line to hbmk_b32.bat.
! xhb.lib dependency removed. It was not needed anyway.
; TOFIX: When compiling exhsx.prg, this happens:
exhsx.obj : error LNK2001: unresolved external symbol _HB_FUN_HSXRDD
* contrib/hbssl/sslsess.c
* contrib/hbssl/sslctx.c
* contrib/hbssl/sslciph.c
* Minor changes.
* harbour/config/darwin/gcc.cf
! changed CCACHE to HB_CCACHE
* harbour/include/hbatomic.h
! removed unnecessary volatile casting in Darwin atomic function
parameters
* harbour/source/compiler/harbour.y
! cleaned one untyped expression assign
(by Phil Krylov borrowed from xHarbour)
* harbour/bin/hb-func.sh
* updated contrib library last
* harbour/source/rdd/usrrdd/rdds/arrayrdd.prg
* fixed harbour version without using hbcompat.ch
; TODO: USRRDD not supports dbCreate() extension params
+ harbour/source/rdd/usrrdd/example/exarr.prg
+ ARRAYRDD example
+ harbour/source/rdd/usrrdd/example/hbmk_b32.bat
+ BCC make file
* harbour/contrib/examples/uhttpd/uhttpd.prg
+ Added CGIExec() function
Now uHTTPD supports external cgi executables.
A big thank you to Giancarlo Niccolai that wrote Process*() functions
a to Przemek that has ported them to harbour.
; NOTE: security has to be checked.
A minimal executable test can be downloaded from:
http://www.fsgiudice.com/testcgi.zip
Expand into harbour/contrib/examples/uhttpd/home/cgi-bin, then run
it using http://localhost:8082/cgi-bin/testcgi.exe
* source/rtl/philes.c
! FWRITE(): Fixed accessing past the string buffer (thus
causing potential GPF and a huge security hole) when
the passed length is greate than the lenght of the string.
Very old bug. In fact CA-Cl*pper suffers from the same
problem, and behavior for such case is not documented.
Harbour will ignore the length parameter (thus writing
the whole passed string), if the length is invalid.
* harbour/contrib/examples/uhttpd/uhttpd.prg
+ Added hb_Inet*() version
* harbour/contrib/examples/uhttpd/hbmk_b32.bat
+ Added support for hb_Inet*() version
; NOTE:
To use hb_Inet*() version build using
hbmk_b32.bat --with-inet
* harbour/source/compiler/hbmain.c
* harbour/source/pp/hbpp.c
* harbour/source/pp/ppcore.c
+ added __FILE__ define for .prg code
; Please, look if this is implemented the right and optimal way.
I'm a little confused about PP initialization order, and how
__DATE__, etc, survive after hb_pp_reset in compiler.
* bin/hb-func.sh
* fix darwin detection
* make_gnu.sh
* fix darwin detection
* added ncurses detection logic like slang one
* contrib/hbtip/ftpcln.prg
* fixed wrong changes from nil to .f.
* someone in the past has done a mass change of the return values
* without checking the results
* harbour/contrib/examples/uhttpd/uhttpd.prg
+ Added support for ini file (default: uhttpd.ini)
+ modified to add support to Lib GD on batch request
* changed THREAD STATIC names with t_ prefix
* changed all global STATIC names with s_ prefix
- removed C level function EXE_FULLNAME (hb_argv( 0 ) does same)
* harbour/contrib/examples/uhttpd/hbmk_b32.bat
+ now support LIBGD on request
* harbour/contrib/examples/uhttpd/readme.txt
* updated infos
+ harbour/contrib/examples/uhttpd/uhttpd.ini
+ Added default ini file
if not found are used internal defaults or command line flags
* harbour/contrib/examples/uhttpd/home/counter.html
* Fixed typo
; NOTE:
Hope that will follow multiplatform version.
* contrib/hbhpdf/harupdf.ch
* contrib/hbhpdf/harupdf.c
+ Added HPDF_VERSION_TEXT() function which returns the
libharu version hbhpdf was linked against.
- Removed #defined HPDF_VERSION_TEXT with hard-wired libharu
version.
* harbour/common.mak
* harbour/source/rtl/Makefile
- harbour/source/rtl/hbi18n.c
+ harbour/source/rtl/hbi18n1.c
* renamed hbi18n.c to hbi18n1.c to avoid conflicts with hbi18n
program - non GNU make files needs unique file names
! fixed bug in internal function __I18N_HASHTABLE()
* harbour/common.mak
* harbour/source/rtl/Makefile
+ harbour/source/rtl/hbi18n2.prg
+ added new I18N functions to manage .pot files and generate .hbl ones.
public functions:
HB_I18N_loadPot( <cFile>, [<pI18N>] [, @<cErrorMsg>] ) -> <pI18N> | NIL
Reads .pot file and returns Harbour translation set or NIL when
error appears. In such case <cErrorMsg> is contains error message
string. If second parameter [<pI18N>] is given then translation
items read from .pot file are added to this set. Otherwise new
Harbour translation set is created.
HB_I18N_savePot( <cFile>, <pI18N> [, @<cErrorMsg>] ) -> <lSuccess>
Generates .pot file from Harbour translation set. Please note
that Harbour translation set does not contain additional
information which exists in original .pot files like source
code numbers or alternative plural forms.
internal functions for Harbour developers which will work on I18N
tools:
__I18N_potArrayLoad( <cFile> [, @<cErrorMsg>] ) -> <aTrans> | NIL
Reads .pot file and returns array with translation items or
NIL when error appears. In such case <cErrorMsg> is contains
error message string.
<aTrans> is an array with translation items containing additional
informations from .pot file which are not necessary in final
translation sets used at runtime. It's designed for I18N tools
written in Harbour to manage .pot files and/or create .hbl ones.
__I18N_potArraySave( <cFile>, <aTrans> [, @<cErrorMsg>] ) -> <lSuccess>
Generates .pot file from array with translations items.
__I18N_potArrayJoin( <aTrans>, <aTrans2> ) -> <aTrans>
Join two arrays with translation items. Items from <aTrans2>
are added to <aTrans>. If given translation item already exists
in <aTrans> (the same msgctxt and msgid) then source code references
are merged and translations from <aTrans2> are added only if
<aTrans> does not have it.
__I18N_potArrayToHash( <aTrans>, [<lEmpty>] [, <hI18N>] ) -> <hI18N>
Converts array with translation items to hash table in the format
used internally by Harbour translation sets. It's the same format
as used __I18N_hashTable() function. The conversion removes data
which is not necessary for runtime translations like source code
references or alternative source plural forms.
If second parameter <hI18N> is given then translation items form
<aTrans> are added to it. Otherwise new hash table with is created.
If <lEmpty> is .T. then also items with empty translation are added
but source strings are used instead of missing destination ones.
* harbour/include/hbextern.ch
+ added new I18N functions
* harbour/harbour-win-spec
* harbour/harbour-wce-spec
* harbour/harbour.spec
* harbour/mpkg_tgz.sh
* harbour/make_b32.mak
* harbour/make_vc.mak
* harbour/make_gcc.mak
* harbour/common.mak
* harbour/utils/Makefile
+ harbour/utils/hbi18n
+ harbour/utils/hbi18n/hbi18n.prg
+ harbour/utils/hbi18n/Makefile
+ added very simple application to manage .pot/.hbl files
Syntax: hbi18n -m | -g [-o<outfile>] [-e] [-q] <files1[.pot] ...>
-m merge given .pot files
-g generate .hbl file from given .pot files
-o<outfile> output file name
default is first .pot file name with
.po_ (merge) or .hbl extension
-e do not strip empty translation rules from .hbl files
-q quiet mode
TODO: extend it and add support for interactive mode which will
allow to edit translations.
* harbour/contrib/hbcrypt/sha1.h
* harbour/contrib/hbcrypt/sha1.c
! disabled LITTLE_ENDIAN macro definition to avoid conflicts with
macros using the same name defined in some system header files
HB_LITTLE_ENDIAN used instead
* harbour/ChangeLog
* cleaned some typos
* harbour/common.mak
* harbour/source/rtl/Makefile
+ harbour/source/rtl/strtoexp.c
* harbour/source/rtl/valtostr.c
* moved my HB_STRTOEXP() function to separate file
* harbour/common.mak
* harbour/source/rtl/Makefile
+ harbour/source/rtl/strc.c
+ added two new functions to operate on C like strings:
HB_STRDECODESCAPE( <cEscSeqStr> ) -> <cStr>
Decode string with \ escape sequences.
HB_STRCDECODE( <cStr> [, @<lCont> ] ) -> <cResult> | NIL
Decode string using C compiler rules.
If second parameter <lCont> is passed by reference then it allows
to decode multiline strings. In such case <lCont> is set to .T.
if string ends with unclosed "" quoting and next call to this
function with lCont parameter continue string decoding.
Function returns decoded string or NIL on syntax error.
They will be helper functions for decoding .pot files.
* harbour/source/rtl/hbi18n.c
* harbour/source/rtl/hbstrsh.c
% small optimizations
* contrib/hbhpdf/harupdf.c
! HPDF_SETINFODATEATTR() fixed taking date/time from the wrong
parameter.
! HPDF_SETINFODATEATTR() fixed to initialize the date structure
passed to libharu.
; NOTE: I've changed my editor config to automatically clean line
ending spaces. This may cause larger diffs even for
small modifications until all these spaces are cleaned
from the sources. FYI.
+ harbour/contrib/examples/uhttpd/modules/info.prg
+ New sample showing server variables
* harbour/contrib/examples/uhttpd/home/index.html
* harbour/contrib/examples/uhttpd/readme.txt
* harbour/contrib/examples/uhttpd/uhttpd.prg
* updated for new sample
+ harbour/contrib/examples/uhttpd
+ harbour/contrib/examples/socket.c
+ harbour/contrib/examples/uhttpd.prg
+ harbour/contrib/examples/hbmk_b32.bat
+ harbour/contrib/examples/readme.txt
+ harbour/contrib/examples/home
+ harbour/contrib/examples/home/cgi-bin
+ harbour/contrib/examples/home/counter.html
+ harbour/contrib/examples/home/css
+ harbour/contrib/examples/home/css/base.css
+ harbour/contrib/examples/home/favicon.ico
+ harbour/contrib/examples/home/images
+ harbour/contrib/examples/home/images/ajax-loader.gif
+ harbour/contrib/examples/home/index.html
+ harbour/contrib/examples/home/js
+ harbour/contrib/examples/home/js/ajax.js
+ harbour/contrib/examples/home/testajax.html
+ harbour/contrib/examples/home/testxmldb.html
+ harbour/contrib/examples/home/xsl
+ harbour/contrib/examples/home/xsl/based.xsl
+ harbour/contrib/examples/home/xsl/basep.xsl
+ harbour/contrib/examples/logs
+ harbour/contrib/examples/modules
+ harbour/contrib/examples/modules/bldhrb.bat
+ harbour/contrib/examples/modules/showcounter.prg
+ harbour/contrib/examples/modules/tableservletdb.prg
+ harbour/contrib/examples/modules/testajax.prg
+ Uploaded first version of uHTTPD server.
; NOTE:
This is first version of uHTTPD (micro HTTPD server) based
on a sample shared from Mindaugas (thanks!).
Actually is only for windows and BCC32.
To build use hbmk_b32.bat
Please read readme.txt before start to use.
* harbour/contrib/hbct/ctwin.c
* harbour/contrib/hbct/ctwin.h
* harbour/contrib/hbct/ctwfunc.c
+ added support for window shadows which clears highlight attributes
instead of using fixed shadow color attribute
* harbour/contrib/hbmzip/hbmzip.c
! added missing nInternalAttr and nExternalAttr parameters decoding in
function HB_ZIPFILECREATE() - problem located and fixed by Andres Reyes
in xHarbour
* harbour/source/rtl/hbgtcore.c
! fixed UNSELECTED color updating in SetColor(). It should be changed
only and always when ENHANCED color is changed
* harbour/contrib/hbmzip/hbmzip.c
! fixed GPF in hb_zipDeleteFile() when file has comment
* harbour/include/hbgtcore.h
* harbour/source/rtl/hbgtcore.c
+ added two new methods:
TOUCHLINE() - marks line as modified
REDRAWDIFF() - it contains REFRESH() from which is now called so
it's possible to overload this method by upper level RDDs without
touching REFRESH() method which can be overloaded by intermediate
RDDs
* harbour/contrib/hbct/ctwin.c
% do not use EXPOSEAREA() and TOUCHCELL() methods but TOUCHLINE()
only and overloaded REDRAWDIFF() - it should gives noticeable
speed improvement in some where cost of screen update is very
big and GT does not calculate minimal update area.
* harbour/source/rdd/dbfnsx/dbfnsx1.c
% minor speed improvement in key decoding
* harbour/source/rdd/usrrdd/rdds/logrdd.prg
- removed sample at end of file
* typos
* harbour/source/rdd/usrrdd/example/exlog.prg
* Altered to reflect new codeblock parameters and added
local MyToString() function to see how handle commands.
* harbour/source/rdd/usrrdd/rdds/logrdd.prg
+ Added new function hb_LogRddValueToText()
* Changed parameters send at CodeBlocks that user can define
using hb_LogRddMsgLogBlock() and hb_LogRddUserLogBlock().
See notes.
; NOTE: Made LOGRDD more under user control:
- hb_LogRddValueToText( <xValue>] ) -> <cValue>
cValue is formatted as "[<cValType>]>>><cString><<<"
f.e.: date 31/12/2009 is formatted as "[D]>>>0d20091231<<<"
in harbour
this function already exists as local function as ValToText()
- Now bMsgLogBlock, defined using hb_LogRddMsgLogBlock(), receives
follow parameters:
cTag, cRDDName, cCmd, nWA, xPar1, xPar2, xPar3
and has to returns a valid formatted string or NIL.
In last case nothing is written to log file.
xPar1, xPar2 and xPar3 change depends from called commands.
For details see at ToString() local function.
- bUserLogBlock, defined using hb_LogRddUserLogBlock(), receives same
parameters of bMsgLogBlock.
It have to return nothing, so it is under user control where to
log and the format of the log string.
* contrib/hbct/video.c
* contrib/hbct/pack.c
* contrib/hbct/disk.c
* Minor formatting.
* contrib/hbct/common.mak
* contrib/hbct/Makefile
! C headers are now installed.
(committed in a previous session)
* config/global.cf
* make_b32.bat
* make_gcc.mak
+ Added file ending EOLs.
(committed in a previous session)