* 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.
* contrib/hbcurl/core.c
! do not include curl/types.h to make it build with 7.21.7 and newer.
Thanks to Guy Roussin for the report.
% version guarded curl/easy.h and curl/types.h so now they
are only used for those very old libcurl versions that
require it
* contrib/hbcuied/hbcuied.hbp
* sync with other exe contrib
* contrib/hbcuied/cu_desgn.prg
* contrib/hbcuied/cu_main.prg
* contrib/hbcuied/cu_menu.prg
* contrib/hbcuied/cu_outpt.prg
* contrib/hbcuied/cu_prpty.prg
* contrib/hbcuied/cu_utlty.prg
* contrib/hbcuied/hbcuied.hbp
- Removed: dependancy on GTWVG.
Now hbCuiEd is portable across any platform.
In SVN it has GTWVT dependancy.
Just tweak the hbcuied.hbp according to your platform.
* Changed: a lot of code cleanup and formatting, much more to come.
+ contrib/hbcuied
+ contrib/hbcuied/cu_achoi.prg
+ contrib/hbcuied/cu_desgn.prg
+ contrib/hbcuied/cu_field.prg
+ contrib/hbcuied/cu_main.prg
+ contrib/hbcuied/cu_menu.prg
+ contrib/hbcuied/cu_outpt.prg
+ contrib/hbcuied/cu_prpty.prg
+ contrib/hbcuied/cu_utlty.prg
+ contrib/hbcuied/hbcuied.ch
+ contrib/hbcuied/hbcuied.hbp
+ Added: initial commit of Harbour's CUI Forms Editor.
NOTE: It is a work-in-progress and hence is subject
to heavy changes. For now you can just play with
it, though, it does not offer anything singnificant.
Only building blocks are set in place.
This code has been pulled out from my application
sources which is a part of much larger reports
object. Hence, it contains some code which
eventually will be stripped out. Also sources
need to be formatted heavily per Harbour standards.
During next several days I will be occupied with
this development. Any suggessions coming in way
will highly benefit this tool.
* contrib/hbide/ideactions.prg
* contrib/hbide/ideedit.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idemain.prg
* contrib/hbide/idethemes.prg
+ Added: <Edit><Format><Upper Case Harbour Keywords> option.
When applied to an editing instance, Harbour keywords are
capitalized. It is a useful utility for old sources where
we were lazy on readable importance of our sources.
* contrib/hbtip/sendmail.prg
* contrib/hbtip/httpcli.prg
* contrib/hbtip/smtpcli.prg
* contrib/hbtip/client.prg
* contrib/hbtip/log.prg
* contrib/hbtip/ftpcli.prg
* contrib/hbtip/popcli.prg
+ allowing to pass custom tracelog filename to TIPCLIENT*:New()
% moved tracelog initialization from subclasses to TIPCLIENT class
+ added TIPLOG:Clear() method
- deleted TIPCLIENTFTP:StartCleanLogFile() and
TIPCLIENTFTP:cLogFile because they're not compatible
with the generic logging solution implemented now, ie.
they wouldn't work when using custom tracelog block and
would require additional changes into the wrong direction
to implement fully. In current form, it was also broken,
creating an RTE. For similar functionality a custom codeblock
can be used together with TIPLOG:Clear() method, and this
can be used with all TIPCLIENT* classes.
* minor formatting and renamed bTrace to xTrace
; Thanks to Klas Engwall for raising and walking through these
issues.
; Please test and tell if anything is broken
* package/winuni/mpkg_win_uni.bat
! added workaround for what it seems like a BCC IMPLIB tool
bug (met in the past a few times already), where IMPLIB
will forget to add leading underscore for certain symbols,
leading to unexplained "unresolved external" errors when
trying hbmk2 with -shared option with BCC. The bug is present
in BCC 5.5 and BCC 5.8, no newer versions tested.
The workaround is to convert to .def file first using IMPDEF,
then correct the .def to avoid an IMPLIB pitfall, where it
cannot handle '-' char in library name unless enclosed between
double-quotes (but IMPDEF doesn't add those double quotes).
[ So now winuni pkg builder script requires GNU SED tool.]
Then the corrected .def file can be converted to .lib by
IMPLIB correctly.
[TOMERGE 3.0]
* harbour/src/vm/classes.c
! added missing initialization of onError and destructor flags.
The problem could be exploited when class inherits from more
then one parent classes and onError handler[s] or destructor[s]
were neither defined in the class nor in the first ancestor.
* harbour/contrib/hbwin/olecore.c
+ added helper PRG functions:
__oleInvokeMethod(), __oleInvokePut(), __oleInvokeGet(),
__oleGetNameId()