* include/hbapi.h
* src/rtl/hbrandom.c
+ Changed Harbour's core pseudo-random generator from STD C rand()/srand()
to superior implementation. New implementation fixed MT problems with
the standard solution on certain targets (f.e. win/mingw, win/msvc)
Based on Przemek's patch which is in turn based on algorithm by
Steve Park: http://www.cs.wm.edu/~va/software/park/ suggested by me
on the list. Further modifications:
* HB_RANDOMINTMAX() adapted. Checkme, I'm not sure about this.
* HB_RANDOMSEED() updated.
+ headers cleaned, copyright updated, note added
+ automatic seed defaulting like in previous version (checkme,
we may as well drop it, though it will be create incompatibility)
; per-thread seed didn't work well for me (even with new engine)
so I didn't implement it.
+ added proto for hb_random_seed()
* src/rtl/teditor.prg
! fixed following issue: in MEMOEDIT() insert mode the word wrap inserts
an additional, not typed space in the new line [when typing at EOL at the
moment of word wrap - vszakats]. The space is inserted at the place, where
the word wrap takes place.
Report and patch provided by Dr.Claudia Neumann. Many thanks.
(with my formatting: indenting, tab/EOL-space removal)
* contrib/hbqt/qtcore/hbqt_pointer.cpp
! fixed to avoid non-MT compatible strtok() C RTL call.
Many thanks to Carlos Bacco for the patch.
(with my minor formatting 'if (' -> 'if(', 'while (' -> 'while( ')
NOTE: Please continue to avoid strtok() usage in any further Harbour patches,
it is avoided for good reason.
* INSTALL
+ added another (this is the 3rd!) mention to use unmodified ("vanilla")
3rd party packages (especially to make implib generation to work).
* minor updates
* contrib/hbrun/hbrun.hbp
+ added another TOFIX to latest patch, about HB_HAS_ZLIB_LOCAL usage,
which has to be eliminated.
* ChangeLog
+ added UPDATE to previous ChangeLog entry
* ChangeLog
* minor formatting
* contrib/hbrun/hbrun.hbp
* using macro HB_BUILD_DSO to state an linux env with ld DSO linking model
; TOFIX: export this functionality to other .hbc files in need of this
* contrib/hbrun/hbrun.hbp
! Fixed linking on recent linux distros (i.e. F15) that are using the
ld DSO linking model which requires specific declaration of objs/libs.
Added specific declaration on linux of:
* -lz (conditionated by HB_HAS_ZLIB_LOCAL)
* -lm
* utils/hbmk2/hbmk2.*.po
* utils/hbmk2/hbmk2.prg
+ added support for path lists separated by ';' character in -L and
-i/-I options. It's not very elegant (and thus it's not documented)
so please don't use it in Harbour SVN hbmk2 files. I decided to
implement it because -depincpath* options already had it.
* do not document ';' delimited path list for -depincpath* options
* minor change in one help line
* harbour/src/rtl/filesys.c
* harbour/src/rtl/hbproces.c
! use hb_fsOsError() instead of errno which can be overwritten by
by hb_fsSetIOError()
* harbour/tests/gtxfnt.prg
% hb_processRun() instead of hb_processOpen()/fread()/hb_processClose()
+ set font attributes: HB_GTI_FONTA_FIXMETRIC, HB_GTI_FONTA_CLRBKG,
HB_GTI_FONTA_DRAWBOX
* contrib/hbformat/hbfmtcls.prg
! fixed casing of some function names.
* utils/hbmk2/hbmk2.prg
; all changes below apply to .xhp (xMate) to .hbp conversion:
! properly convert input filenames with spaces in them
! remove lib prefix from .a input filenames
% do not add empty -L options
* do not add include paths with %HB_INSTALL%\ in them
+ split non-portable, Borland-specific include path lists
concatenated with ';' into distinct -I options
% do not add empty include paths
* tests/testop.prg
* tests/testntx.prg
* tests/vmasort.prg
* tests/testlbl.prg
* tests/testidle.prg
* tests/videotst.prg
* tests/testmem.prg
* tests/testinit.prg
* tests/testhtml.prg
* tests/tstcolor.prg
* tests/vidtest.prg
* tests/tstuse.prg
* tests/vec1.prg
* tests/while.prg
* tests/tstdspac.prg
* tests/version.prg
* tests/testpre.prg
* tests/tstprag.prg
* formatted. mostly with hbformat.
* doc/howtosvn.txt
+ added extra rules to "1.3 Here's how to format your ChangeLog entries"
section.
* Change markup is not optional anymore, pls stick to it.
* contrib/hbcups/tests/test.prg
* contrib/hbcups/readme.txt
+ Added more test code and extra info to hbcups.
Update provided by Dr. Claudia Neumann (with my minor fixes/formatting).
Many thanks!
* contrib/hbpgsql/rddcopy.c
* contrib/hbpgsql/hbpgsql.h
! svn props
* tests/testtok.prg
* tests/testrdd.prg
* tests/tstchbx.prg
* tests/tstblock.prg
* tests/ticktime.prg
* tests/testvars.prg
* tests/tstasort.prg
* tests/testprof.prg
* tests/testread.prg
* tests/testrpt.prg
* tests/teststr.prg
* formatting.
* contrib/hbqt/qtcore/hbqt_hbqevents.cpp
+ patch for implementation of events handling according to Qt docs.
It MAY break existing code, please read:
up to now the event handler always returned false. That means the
event was propagated to parent widget. Sometimes it is necessary to
stop event propagation and so we must return the boolean value
returned from the codeblock.
So, if your codeblock returned .F. or a non-boolean value the code is
ok, if it returned .T. it may broke functionality.
Patch from Francesco Perillo (with minor type fix)
* minor formatting/indenting, removed old 'DO NOT Reformat' comment
* harbour/include/hbgtinfo.ch
+ added new hb_gtInfo() action: HB_GTI_FONTATTRIBUTE and attributes:
HB_GTI_FONTA_FIXMETRIC, HB_GTI_FONTA_CLRBKG, HB_GTI_FONTA_DRAWBOX
* harbour/src/rtl/gtxwc/gtxwc.c
+ implemented HB_GTI_FONTATTRIBUTE.
Now user can make:
hb_gtInfo( HB_GTI_FONTATTRIBUTE, HB_GTI_FONTA_FIXMETRIC + ;
HB_GTI_FONTA_CLRBKG + HB_GTI_FONTA_DRAWBOX )
and use also fonts with broken metrics.
* harbour/ChangeLog
! formatting to 80 columns
* harbour/src/rtl/filebuf.c
! fixed GPF in file locking code.
Many thanks to Kultyshev Igor Anatolevich for reporting the bug
and locating exact reason of the problem.
[TOMERGE 3.0]
* contrib/hbqt/gtqtc/gtqtc.cpp
* Minor.
* contrib/hbide/hbide.qrc
* contrib/hbide/ideactions.prg
* contrib/hbide/ideconsole.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/idemain.prg
* contrib/hbide/ideobject.prg
* contrib/hbide/resources/cuied.png
+ Implemented: CUI Screen Designer in hbIDE.
Activate: <View><CUI Screen Designer> OR CUI Screen Designer icon.
NOTE: must exit the screen designer with <ESC> <CTRL+ENTER>
before clsoing hbIDE. It is necessary because when
CUI Designer is active, there are two loops in progress.
So, exiting CUI designer the way we exit an application
is necessary before exiting hbIDE itself.
* contrib/rddads/ads1.c
+ Enhanced: growning ahIndex from 50 to 512 to allows virtually unlimited TAG
Needed for Free Text search where each field must be indexed.
(would otherwhise generate an ADS error 5005).
* contrib/hbqt/hbmk2_qt.hbs
* contrib/hbqt/qtcore/hbqt.h
+ Implemented: C level class creation is now thread-safe.
With this only pending issue with hbQT remains to replace
usage of strtok() function with Harbour's implementation.
* harbour/src/rtl/hbinet.c
% small simplification in error code setting
* harbour/src/rtl/hbcom.c
* always set explicitly tty device in raw mode even if cfmakeraw()
exists to avoid potential problems with some platforms which
may not make some necessary settings.
* contrib/hbcuied/cu_object.prg
* contrib/hbcuied/cu_utlty.prg
+ Implemented: K_ALT_P preview.
Preview takes following considerations:
0. Background color is always set to "W/B".
You can change this behavior with a BOX covering
entire screen.
1. Rows and columns of the screen are calculated based
on maximum ending row and column of objects defined.
if those values are greater than 25/80 then one more
row and column is added to them, otherwise,
rows/columns are 25/80 as in standard screen.
2. If COLOR is defined as a literal value enclosed in
quotes, then this value is used otherwise "W/B" is used.
3. If PICTURE is defined as literal string enclosed
in quotes, then it is used, otherwise left. For numeric
fields, picture is always generated as "9999??[.9?]" based
on field length and decimals.
* contrib/hbcuied/cu_object.prg
* contrib/hbcuied/cu_utlty.prg
* contrib/hbcuied/hbcuied.ch
+ Implemented: K_PGUP/K_PGDN to navigate vertically.
K_ALT_Z to undo last action.
K_ALT_G to re-order GETS.
* Improved: help screens adding highlights and additopnal text.
! Fixed: many misbehaving artifacts.
NOTE: Harbour Screen Designer is almost at production level.
I am awaiting groups response as to what else they need.
To Viktor: is it possible that it be included in Harbour's bin
folder. I wish to embed this into hbIDE.
* contrib/hbcuied/cu_object.prg
* contrib/hbcuied/cu_utlty.prg
* contrib/hbcuied/hbcuied.ch
+ Implemented: K_HOME places the cursor to zero column of the screen.
K_END places the cursor to next column of last
object on that row.
Alt_N Inserts blank row at current cursor position.
All objects on/after that row are moved one row down.
Alt_O Delets current row. All objects on that row
are also delted. Subsequent objects are moved
one row up.
+ Added: help screens <General> containing info about the designer.
* Updated: help screen <Keys> with latest changes.
* contrib/hbcuied/cu_object.prg
* contrib/hbcuied/cu_utlty.prg
* Inplace: building blocks of extended help screens.
+ GETS are now formatted nicely when writing back to PRG.
* contrib/hbcuied/cu_main.prg
* contrib/hbcuied/cu_object.prg
* contrib/hbcuied/cu_utlty.prg
+ Opens with SetMode( 28,80 ) to present real-time 25x80
console window equivalent design area.
+ Added: F1-Help screen which, BTW, is designed with hbCuiEd itself.
+ Added: Expression execution with SAY objects, press F4 on a
text object.
* Many improvements on saving/loading routines.
* contrib/hbide/ideenviron.prg
* Auto Detection: if hbide.exe is accompanied by hbmk2.exe,
and no environment is set, attempt is made to set path
of Harbour installation automatically. I do not know
the logic foe *.nix systems, please fix.
* contrib/rddsql/sqlbase.c
! fixed transfering records between two "array" SQLBASE workareas, when there
is a text/long/clob/memo field
Patch by Ilina Stoilkovska.
* contrib/hbpgsql/postgres.c
! added #include pg_config.h, '#if PG_VERSION_NUM' clauses were not working
+ plain wrappers for bulk data insert functions PQputCopyData, PQputCopyEnd
+ new function PQCOPYFROMWA which copies current workarea with CSV-like
bulk data transfer functions to PostgreSQL database, without the need
of creating temporary files - similar to __dbTrans() and __dbSql()
<lResult> := PQCOPYFROMWA( <pConn>, <cTable>, [<bWhileBlock>],
[<bForBlock>], [<aFieldNames>], [<nCount>],
[<lTrimStrings>], [<nPreBuffer>] )
<nPreBuffer> - default is 1, which turns into 1 * 1400 bytes
(to keep it below typical network MTU of 1500 bytes),
needs testing how libPQ is doing buffering by itself,
and if this is needed?
Patch by Ilina Stoilkovska. Many thanks.
* contrib/hbpgsql/hbpgsql.hbx
+ contrib/hbpgsql/rddcopy.c
+ contrib/hbpgsql/hbpgsql.h
* contrib/hbpgsql/postgres.c
* contrib/hbpgsql/hbpgsql.hbp
+ moved PQ related declarations to separate header. low-level functions made public.
% moved new PQCOPYFROMWA() to separate source to untie the main wrappers from RDD components
* HB_ prefix to PQCOPYFROMWA() name
* minor mods to above
* package/winuni/mpkg_win_uni.bat
* package/winuni/mpkg_win_uni.nsi
- deleted x64 flavor of some exes which don't give any benefit of the 64-bitness
* contrib/hbcuied/cu_object.prg
+ Implemented: two-way saving/loading of screens from PRG sources.
Alt+S - Save / Alt+L - Load, keys are defined.
At startup, if hbCuiEd is invoked with a .prg file name
as first and only parameter, then all screens embedded
in the source are presented for selection, and selected
screen is brought in the designer. On save the actual
indent of the loaded screen is preserved which means
screens can be designed in real-time. If there is a need
screens can be edited in the PRG ( assumed, it follows the
protocols laid down by the designer ). Screens can be
saved with new name. In this case a new function as
"hbcui_" + screen name will be appended to the source
which later can be edited and placed anywhere in the PRG.
Will write a test program to demonstrate its two-way
capabilities in a couple of days.
* utils/hbmk2/hbmk2.prg
+ hbmk2 executable if renamed, copied or symlinked to the
name 'harbour', it will make it behave as classic harbour
executable, or IOW it will switch to hbmk2 -hbraw mode in such
scenario. This makes it possible to continue using 'harbour'
as a command even in distros which don't ship with classic
harbour executable.
* contrib/hbcuied/cu_main.prg
! do not reference SVN source tree at runtime (-icon option is enough)
BTW favicon.ico is for webpages, for apps harb_win.ico is the one
* contrib/hbtip/sendmail.prg
! if hb_SendMail() receives invalid password, mail isn't sent, but
hb_SendMail() returns .T.
Fix from Dmitry Ryzhkov via Pavel Tsarenko.
* contrib/hbcuied/cu_main.prg
! deleted forced GT selection code to let it build on any platform
* contrib/hbcuied/hbcuied.hbp
! -gtwvt guarded for win platform
* contrib/hbcuied/cu_object.prg
+ Implemented: source is generated.
Provide source file name and screen identity and look into
the code it generates. Let me know if that can be refined
anyway.
* contrib/hbcuied/cu_main.prg
* contrib/hbcuied/cu_object.prg
* contrib/hbcuied/cu_utlty.prg
* contrib/hbcuied/hbcuied.ch
* Many more refinements. Try F4 on any object.