* include/hbdefs.h
+ Changed types to have our "new" types as primary
ones, and old types as legacy ones. This also means
that all old/legacy types are now based on new types.
+ Added HB_LEGACY_TYPES_OFF #define, with which you can
disable all legacy types for testing purposes.
This mode will become the default in the future,
so start to prepare for the new types.
; NOTE: Harbour and 3rd party components can't be compiled
with this switch enabled yet, since there is still some
type conversions tasks left. For now its purpose
is to look for remaining legacy types in Harbour code.
* include/hbvmpub.h
* BYTE -> HB_BYTE
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbqt/hbqt_hbqplaintextedit.h
* contrib/hbqt/qtgui/HBQPlainTextEdit.cpp
* contrib/hbqt/qtgui/THBQPlainTextEdit.prg
* contrib/hbqt/qth/HBQPlainTextEdit.qth
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/ideeditor.prg
+ Implemented <Line Move Up>, <Line Move Down> - Current Line
If the line is already selected, selection is cleared.
! Slight change in <Edit> main-menu drop-down.
<Line...> and <Block...> sub-menus now club the
line and block actions.
; Please test.
* contrib/hbqt/hbqt_hbqplaintextedit.cpp
* contrib/hbqt/hbqt_hbqplaintextedit.h
* contrib/hbqt/qtgui/HBQPlainTextEdit.cpp
* contrib/hbqt/qtgui/THBQPlainTextEdit.prg
* contrib/hbqt/qth/HBQPlainTextEdit.qth
* contrib/hbide/hbide.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idefindreplace.prg
+ Implemented <Delete Line Ctrl+Del> - Current Line
<Indent Right Ctrl+Tab> - Selected Lines
<Indent Right Shift+Ctrl+Tab> - Selected Lines
Indenting is exercised on selected lines with "one" column at a time.
Vailton, can you create icons for above?
* src/rtl/gtwvt/gtwvt.c
* contrib/gtwvg/gtwvg.c
* contrib/hbmisc/hb_f.c
* contrib/hbwin/win_dll.c
* SHORT type cleanup. Converted to HB_WCHAR, nothing, USHORT, WORD
depending on context.
* include/hbdefs.h
! New Harbour types moved upper in the file to avoid
errors reported on the list.
- Deleted HB_I8 and HB_U8 types. Practice shows that
HB_UCHAR and HB_SCHAR are used instead of these.
* harbour/src/rdd/dbfcdx/dbfcdx1.c
* minor code cleanup
* harbour/src/vm/macro.c
% eliminated memory allocation in macro compiler for object item assign
operation
* updated hb_macroGenMessage() to work like hb_compilerGenMessage()
* harbour/src/vm/memvars.c
* reverted HB_ISIZ -> int
* harbour/include/hbmacro.h
* harbour/include/hbexprop.h
* harbour/include/hbexpra.c
* harbour/src/common/expropt1.c
- eliminated old hb_compExprNewSend()/hb_macroExprNewSend()
+ added common for compiler and macrocompiler functions:
hb_compExprNewSend(),
hb_compExprNewMacroSend(),
hb_compExprNewMethodObject()
* harbour/include/hbcomp.h
* harbour/src/compiler/harbour.y
* harbour/src/compiler/harbour.yyc
* harbour/src/compiler/harbour.yyh
* use new functions for send coperator
% eliminated asMessage structure - it was the biggest one so this
modification reduce total memory usage by grammar stack
+ added new terminal symbol MacroAny and simplified some rules using it
+ added static function hb_compCheckMethod() used for enumerator
messages
- eliminated public function hb_compForEachVarError()
* harbour/src/macro/macro.y
* harbour/src/macro/macro.yyc
* use new functions for send coperator
* include/hbapi.h
* src/vm/memvars.c
* ULONG -> HB_SIZE where applicable
* int -> HB_ISIZ where it was used for size
* src/vm/macro.c
! LONG -> long for date/time.
* include/hbchksum.h
* src/rtl/hbadler.c
* src/rtl/hbcrc.c
* src/rtl/hbi18n1.c
* contrib/hbmzip/hbmzip.c
* ULONG -> HB_U32 for crc32 and adler32
* ULONG -> HB_U16 for crc16
(the crc table was also changed to HB_U16, pls speak up if this
may cause less-optimal performance than previous state.)
* int -> HB_ISIZ where it was used for size (in adler loop)
* include/hbapi.h
* HB_VMHANDLE is now mapped to 'unsigned long' instead of ULONG
* contrib/hbwin/win_bmp.c
- Deleted no more necessary cast.
* src/vm/runner.c
! Fixed error reported by Petr.
I'm not really sure about the problem, and current code
is not 100% future proof as a HB_SIZE is passed by reference
where ULONG ptr is expected.
* include/hbsetup.h
+ Added HB_DEPRECATED. Can be used as function or variable attribute.
* contrib/hbide/resources/findinfiles.ui
* contrib/hbide/resources/findinfiles.uic
* contrib/hbide/hbide.ch
* contrib/hbide/hbide.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/ideobject.prg
* contrib/hbide/idesaveload.prg
! Fixed for RegEx to be compiled with case sensivity.
BTW, hb_regEx( compiledRegExp, cString, lCaseSensitive, ... )
does not honor <lCaseSensitive> attribute. Only
hb_compRegEx() honors.
+ Implemented to remember last find folder and search expression.
* contrib/hbide/resources/findinfiles.ui
* contrib/hbide/resources/findinfiles.uic
* contrib/hbqt/qtgui/QSizePolicy.cpp
* contrib/hbqt/qth/QSizePolicy.qth
* contrib/hbqt/THbQtUI.prg
* contrib/hbide/hbide.prg
* contrib/hbide/idedocks.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/ideobject.prg
+ Added more info in "Results".
! Core normalization.
+ Implemented RegEx search.
I am not good at this engine, please test.
% Changed TODO => DONE in one entry in ChangeLog.
* src/vm/runner.c
* BYTE -> char
* contrib/hbct/ctstrfil.c
* LONG -> HB_ISIZ
* contrib/hbmzip/hbmzip.c
* Changed to use FS API instead of C RTL.
* Using std Harbour method to include windows.h.
* package/winuni/RELNOTES
+ Added note about downgrade to mingw64 4.4.0, which is
a more stable release than 4.5.0, and where .dlls also
work properly.
* config/wce/mingwarm.mk
* config/win/mingw.mk
! Fixed to not use -fomit-frame-pointer option for debug builds.
! Hack added to disable -fomit-frame-pointer for hbwin lib.
; TOFIX: Fix hb_Dynacall() to not be sensitive on this option
in mingw builds. Is it possible?
* contrib/hbxbp/xbpdialog.prg
! Fixed a long-standing bug where oDlg:close slot was
hiding the window instead of passing taking appropriate
action when user was opting not to close the window
returning .F. from this codeblock.
* contrib/hbide/resources/findinfiles.ui
* contrib/hbide/resources/findinfiles.uic
* contrib/hbqt/THbQtUI.prg
* contrib/hbide/hbide.ch
* contrib/hbide/hbide.prg
* contrib/hbide/ideeditor.prg
* contrib/hbide/idefindreplace.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/ideprojmanager.prg
* contrib/hbide/idesaveload.prg
+ Implemented "Search" option activated via "Search" toolbar icon.
This implementation presents a dialog to select any number of
available "Projects", one "Folder", and "Opened Tabs" in any
combination".
The results are presented in within-the-dialog edit window
in a nicely colored and formatted way. This editor also provides
for "Select All", "Copy", "Clear", "Print", "Find...",
"Zoom In/Out" and some more ( to be activated ) options.
These options are visible in context menu activated with
right-clicking inside the "Results" editor.
This implemetation also facilitates multiple instances of the
"Search" dialogs carrying on the operation at the same time.
Double-click on any line will open an edit-tab in the main editing
area, cursor will be positioned highlighted on the "Expression"
string, keeping the focus in "Results" editor only.
Normal usage is carrying the expected actions but I must be
ignoring something important. Please test.
Please forward any suggessions you think will make it more useful.
; TODO: Regex implementation.
Regex for multiple lines.
Including sub-folders.
Including sub-projects.
"Replace" implementation ( I am exploring how it can be safest )
* src/rtl/gttone.c
+ Using ANSI C types.
! ULONG -> DWORD for Windows API calls.
* src/rtl/direct.c
! ULONG -> HB_FATTR
* src/rtl/itemseri.c
* include/hbapiitm.h
* ULONG -> HB_SIZE
* src/rtl/samples.c
+ Using ANSI C types. This fixes possible
incompatibilities with original .prg implementation
in Clipper.
* contrib/hbhpdf/harupdf.c
* Conversion to libharu BOOL value cleaned.
* include/hbapicdp.h
* utils/hbmk2/hbmk2.prg
* Formatting.
* src/rtl/setpos.c
* src/rtl/console.c
! Fixed SETPOS() and DEVPOS() to return the first parameter
unconditionally. For SETPOS() it's protected with 'HB_CLP_UNDOC
or HB_COMPAT_C53', for DEVPOD() it's protected with 'HB_CLP_UNDOC'
only.
* src/rtl/diskspac.c
* Using 'int' for drive spec.
* Minor cleanup.
; Please review me.
* harbour/src/rtl/filesys.c
* updated HB_FS_[SG]ETDRIVE() macros to operate on 'int' type
* changed 'unsigned int' to 'int' in code using HB_FS_[SG]ETDRIVE()
macros
* harbour/src/vm/task.c
* harbour/src/vm/classes.c
* harbour/src/rtl/strpeek.c
* updated to use ANSI types
* harbour/src/rtl/hbmd5.c
% small optimization (more compiler friendly code due to fixed alignment)
* src/rtl/console.c
* src/rtl/shadow.c
! Fixed three remaining places where color value was cast to BYTE type.
; QUESTION1: What to do with BYTE in hb_fs*Drv() calls?
Should it be int or unsigned int?
; QUESTION2: What to do with BYTE types in checksum calculations and
low level color storage, is HB_U8 type good?
* src/rtl/transfrm.c
* src/rtl/memofile.c
* BYTE -> char
* src/rtl/gtkbstat.c
* Formatting.
* harbour/include/hbapifs.h
* harbour/src/rtl/filebuf.c
* harbour/contrib/hbmemio/memio.c
* harbour/contrib/hbnetio/netiocli.c
+ added new method:
void Flush( PHB_FILE pFile, HB_BOOL fDirty );
to replaceable RDD IO structure (HB_FILE)
+ added new function:
void hb_fileFlush( PHB_FILE pFile, HB_BOOL fDirty );
* harbour/src/rdd/dbfntx/dbfntx1.c
* harbour/src/rdd/dbfnsx/dbfnsx1.c
* harbour/src/rdd/dbfcdx/dbfcdx1.c
* harbour/src/rdd/dbffpt/dbffpt1.c
* use hb_fileFlush()
* harbour/src/vm/hvm.c
* harbour/include/hbxvm.h
! fixed hb_xvm{Local,Static,Module}Name() to use 'const char *'
instead of 'char *' - modifications by Xavi (jarabal)
* harbour/include/hbapi.h
* harbour/include/hbxvm.h
* harbour/include/hbmacro.h
* harbour/include/hbcompdf.h
* harbour/src/vm/hvm.c
* harbour/src/vm/macro.c
* harbour/src/vm/memvars.c
* replaced some 'BYTE' types with 'unsigned char' or 'int' types
* cleanup some other casting and types to reduce conversions
between function calls
* harbour/src/common/expropt1.c
; updated comments
* harbour/include/hbpp.h
* harbour/include/hbexprop.h
* harbour/include/hbexpra.c
* harbour/include/hbexprb.c
* eliminated HB_EXPR_PCODE?() macros
! fixed potential GPF trap during compilation of _GET_() functions
which can be exploited by strange code using some special expressions
as get variable.
TODO: eliminate hb_compExprClone() used in hb_compExprSetGetBlock(),
our optimization module does not care about shared expressions
so it can be source of serious problems in the future if someone
use this functions for non optimized expression which will be
reduced later.
* emulate clipper behavior for codeblock optimizations and do
not optimize all codeblocks if -kc switch is used and codeblocks
is inside non optimized part of code like (Clipper has such
places)
% simplified and optimized some functions like hb_compExprReduceList()
* contrib/hbfbird/tests/test.prg
! Fixed to work at all. This code was complete nonsense.
+ Added more status display.
; Anyhow basic tests shows that recent FB changes are okay,
but class wrapper never worked and tests were either
dummies or wrong. Please test hbfbird with real life
code.
* contrib/hbfbird/tests/stress.prg
* Formatting.
* contrib/hbfbird/tests/testapi.c
! Fixed to not refer to env specific IP. The table name is still
wrong though.
* contrib/hbfbird/tfirebrd.prg
+ Added TOFIX about very old and very basic problem in the
FB class wrapper.
* contrib/hbmysql/mysql.c
! Fixed to use GC collected objects.
+ Added RTEs when wrong object is passed.
! Fixed to make MYSQL_FIELD_COUNT() available regardless of
mysql lib version we're building against. It will return
zero if mysql lib doesn't support it.
; Deprecated MYSQL_CLOSE() and MYSQL_FREE_RESULT(). It's
enough to replace them with NIL assigments, or simply
delete them.
; Please test it.
* contrib/hbmysql/tmysql.prg
+ Changed to not use deprecated functions.
* src/common/hbffind.c
* src/rtl/fssize.c
* Formatting.
* contrib/hbfbird/firebird.c
+ Added GC collected object for db connection.
* Replaced HB_RETNL_FBERROR() with actual code to make
code flow apparent.
* Replaced DIALECT constant with Firebird predefined one.
! Fixed to use ISC_STATUS_ARRAY instead of status arrays
with arbitrary sizes like MAX_FIELDS.
+ Throwing RTEs if non-db pointer is passed in places
where it is required.
* Adjusted scope of some variables.
! Fixed several leaks in FBQUERY().
% Optimized to use hb_xrealloc() instead of using
subsequent hb_xfree()/hb_xgrab() calls.
% Other optimizations.
+ Added TOFIX to more memory leaks.
! Fixed FBGETDATA() to not crash when NULL pointer is passed.
! Fixed FBGETDATA() to not crash when negative position
parameter is passed.
; TOFIX: Convert remaining memory objects to GC collected
ones. Unfortunately the code is quite dirty in this
respect, so it require more serious rewrite in places.
; TOFIX: Address TOFIXes in code.
; Please test it, I don't use this, and didn't make
functional tests.
* contrib/hbfbird/tests/test.prg
+ Displays error on connection failure.
* Formatting.
* utils/hbmk2/hbmk2.prg
+ Enabled -workdir option for non -inc modes.
* Change default workdir to be the OS temp dir.
Please test it, especially on non-win OSes.
* src/rtl/fstemp.c
* include/hbapifs.h
* include/hbextern.ch
+ Added HB_DIRTEMP() .prg level function. Returns name of temp dir,
with closing backslash.
+ Added hb_fsTempDir() .c level function.
; Please review, especially MS-DOS, OS/2, which I won't be able
to test.
* src/rtl/fstemp.c
* Cleanup: Deleted hb_fsCreateTempLow(), made layout more clear.
; TOFIX: For some builds, MS-DOS, OS/2 and WIN without WIN IO
the temp directory will be wrongly calculated by checking
TMPDIR envvar. Such envvar seems *nix specific.
If new hb_fsTempDir() will be tested, above can be fixed
by using this new function.
* package/winuni/RELNOTES
+ Noted update to Firebird 2.5.0rc1
* contrib/hbpgsql/postgres.c
+ Marked recently deprecated function as HB_LEGACY_LEVEL3.
* contrib/hbfbird/firebird.c
* Cleanup for a macro.
* contrib/hbnetio/utils/netiosrv.prg
+ Using HB_HRB_BIND_FORCELOCAL when loading .hrb.
* contrib/hbnetio/utils/modules/test.prg
+ Marked function as STATIC.
* ChangeLog
* Old TODO marked DONE.
* harbour/include/hbvm.h
* harbour/src/vm/hvm.c
* covered hb_vmPushState() and hb_vmPopState() functions by
HB_LEGACY_LEVEL3 macro. These functions are depreciated,
hb_vmRequestReenter()/hb_vmRequestRestore() should be used
instead.
* harbour/contrib/hbct/video.c
* pacified DJGPP warning
* harbour/external/jpeg/Makefile
* define HAVE_STDLIB_H - it's necessary for exit() function used in
jerror.c
* utils/hbmk2/hbmk2.pt_BR.po
* utils/hbmk2/hbmk2.hu_HU.po
* utils/hbmk2/hbmk2.prg
+ Added some details on <script> usage. Most probably it's still
confusing, I you know a better way, tell.
* contrib/hbfimage/fi_winfu.c
* Formatting.