* include/hbdefs.h
+ Readded HB_U8 and HB_I8. Currently mapped to HB_BYTE/HB_CHAR,
but it should be used where 8-bitness of a char is a requirement.
F.e. when writing/reading to/from files.
+ HB_CHAR changed from 'char' to 'signed char'. This is brand
new type, not yet used in Harbour code, so it's safe.
For char with non-guaranteed signedness, ANSI type 'char'
should be used.
* HB_UCHAR is now a synonym for HB_BYTE. It's now also legacy.
* HB_SCHAR is now a synonym for HB_CHAR. It's now also legacy.
; TODO: Replace all HB_SCHAR with HB_CHAR and HB_UCHAR with HB_BYTE,
and move the old types to compatibility status.
* ChangeLog
! Fixed date in my today's entries.
* bin/hb-mkimp.bat
+ Added support for Apollo 7.
* utils/hbmk2/hbmk2.prg
+ Accepting '&&' and '||' as 'and' and 'or' operators.
* examples/hbsqlit2/hbsqlit2.hbp
* examples/hbapollo/hbapollo.hbp
+ HB_INC_* -> HB_WITH_*
* examples/hbapollo/apollo.c
* examples/hbapollo/hbapollo.hbc
+ Added support for Apollo 7.
+ Version 6.1 can now be selected by defining HB_WITH_APOLLO_VER61 envvar.
* examples/gtwvw/gtwvw.c
* HB_LONG -> HB_MAXINT
* 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.