* *
* partial sync with the 3.4 fork codebase. These are the things
synces for the most part:
- copyright headers
- grammar/typos in comments and some readmes
- comment/whitespace/decorations
- variable scoping in C files
- DO CASE/SWITCH and some other alternate syntax usage
- minimal amount of human readable text in strings
- minor code updates
- HB_TRACE() void * casts for pointers and few other changes to
avoid C compiler warnings
- various other, minor code cleanups
- only Harbour/C code/headers were touched in src, utils, contrib,
include. No 3rd party code, no make files, and with just a few
exceptions, no 'tests' code was touched.
- certain components were not touched were 3.4 diverged too much
already, like f.e. hbmk2, hbssl, hbcurl, hbexpat
- the goal was that no actual program logic should be altered by
these changes. Except some possible minor exceptions, any such
change is probably a bug in this patch.
It's a massive patch, if you find anything broken after it, please
open an Issue with the details. Build test was done on macOS.
The goal is make it easier to see what actual code/logic was changed
in 3.4 compared to 3.2 and to make patches easier to apply in both
ways.
* doc/xhb-diff.txt
+ added information about support for strong typed variables in [x]Harbour
* updated information about typed object items
! typos
* include/hbclass.ch
* updated information about initialization of typed object items
* include/hbatomic.h
* do not force OSSpinLock usage in OSX builds
* include/hbapifs.h
* src/rtl/filesys.c
+ added new C function hb_fsCloseRaw() - it works like hb_fsClose() but
does not change hb_fsError()
* src/rtl/filebuf.c
* changed the condition in hb_fileLoadData() used to detect file
descriptors without full support for file seek - now it's possible
to use [hb_]MemoRead() to read /proc/* files in Linux
* src/rtl/filesys.c
! detach printer process to not leave zombie processes after printing
in programs which do not catch SIGCHLD signal in *nixes builds
* src/rtl/filesys.c
* src/rtl/hbproces.c
* use hb_fsCloseRaw() instead of hb_fsClose() to safe original error code
* src/rtl/hbsocket.c
! fixed OpenWatcom Linux builds
+ added HB_WINSOCK_USE_OLDFUNC macro which disables new WinSock functions
in MS-Windows builds
* src/rtl/gtxwc/gtxwc.c
! fixed recursive mutex lock
! added some missing locks
+ added support for X11 XLockDisplay()/XUnlockDisplay() in default builds
when MT HVM is used. X11 locks can be disabled by HB_XWC_XLOCK_OFF
macro - it may be necessary on some old platforms which do not support
them.
! disabled resize step when font size is changed to reduce possible
problem with reduced number of columns and rows by this operation.
Please remember that X Server/Window Manager may still ignore
suggested window size and force their own dimensions so application
has to be ready to accept final screen size set by server/WM.
* contrib/hbnf/shadow.c
! use 8 instead of 7 as default color attribute in FT_Shadow() function
* *
% remove brandings and homepage [1] from copyright header. Pass 1 - using script.
[1] nobody has access to it anymore AFAIK - and it's also just
a redirect since long
! update url in copyright header
; this should make the diff between 3.4 and 3.2 easier to manage
* src/common/hbprintf.c
* removed modfl() protection with old HB_OS_IPHONE macro.
If someone will need it for some old iOS versions then please read
it protected by HB_OS_IOS and __IPHONE_OS_VERSION_MIN_REQUIRED
macros or inform me about the exact iOS version which do not support
modfl() and I'll add it.
* include/hbatomic.h
* disable GCC atomic macros for GCC <= 4.5 in OS2 builds.
They can be manually enabled by users using:
set HB_USER_CFLAGS=-DHB_USE_GCCATOMIC
* include/hbatomic.h
* for GCC >= 4.1 (except MinGW) use build-in GCC __sync_*() atomic
functions instead of our x86 assembler macros. This can be disabled
by HB_USE_GCCATOMIC_OFF macro. Please make tests on different
platforms. If you find some platforms on which compile or link
errors bound with __sync_*() functions are reported then please
send information about used platform and GCC version. GCC 4.1 or
higher should support it during compilation but not all runtime
libraries have implementation for __sync_*() functions. Low level
implementations were added later for different platforms. In such
case adding -DHB_USE_GCCATOMIC_OFF to HB_USER_CFLAGS should be
sufficient workaround but I want to document such cases so please
send information about it to devel list.
; This modification fixes problem with x86_64 CentOS and RH builds
were default GCC does not respect volatile in our ASM macros and
"optimize" them breaking our memory barriers.
* (all files)
* stripped svn header
* minor cleanups
; use following command to find out the history of files:
git log
git log --follow
git blame
git annotate