- extras/hbdoc/_tmplate.prg
- extras/hbdoc/hbdoc.ch
* extras/hbdoc/_genbase.prg
* extras/hbdoc/_genhtml.prg
* extras/hbdoc/_gentxt.prg
* extras/hbdoc/_genxml.prg
* extras/hbdoc/hbdoc.hbp
* extras/hbdoc/hbdoc.prg
+ improve readability by paragraphs spacing in DESCRIPTION sections
+ improve divs in section content for better control via CSS
+ improve readability of tables with borders and
header hightlights
* change default output to single-file
+ add support for the old <table>/<fixed> tags in html output until they
are converted to something better
+ add support for <b>/<b>, <URL:url>, Markdown `inline code`,
_emphasis_, *bold*, character escaping \*, line separators ===/---,
and fenced code using triple backticks.
Very limited and not with standard compliance or completeness
in mind, just to be able to use some basic formatting.
; TODO: Markdown URL and lists, then replace all <b>,<URL>,<fixed>
markup with Markdown equivalents in docs
+ better localization support
+ add support for one file per component output via -output-component
cmdline option
% assemble output in memory and write to disk in a single call
% integrate external header
% replace almost all internal arrays with hashes
% replace self-modifying class and macro expansion with
regular hashes
% internal cleanups
% switch to simpler method for sort weighting
+ merge category/subcategory values into tag list. It
means they will be now be included in the output
% cleanup/fix/simplify value expansions for 'compliance',
'status' and 'platform' fields
% cleanup the way output engines are handles internally
+ add support for 'TAGS' entry to replace/extend the rigid and
ambiguous CATEGORY/SUBCATEGORY-based categorization. It is meant
to be a comma-separated list of freeform tags, possibly with a set
of standard common tags, with the freedom to use anything else deemed
useful by component/doc authors.
+ add footer showing the build date of the doc
+ include Git revision the doc is based on, link to the relevant
source tree version.
* various code refactoring steps to avoid unnecessary
classes, arrays, macro evaluation, and using undocumented
functions
% various HTML5 tag improvements and optimizations
+ load HBX file contents and lookup each referenced
symbol. Emit warning in verbose mode, if docs refers
to non-existing one.
(this replaces slow and broken logic based on hbextern.ch)
+ use core hbdoc API to load the documentation instead
of locally rolled logic
* always show those content problems that are considered
fatal and the input doc to be skipped
+ filter docs to English language by default
+ add ability to choose language using a command-line option
! fix faulty validation logic that resulted in
erronously skipping certain entries
+ identify docs' 'component' property automatically
! fix to not eat empty lines from examples
+ convert "see also" items to links (this works correctly only
in single file output mode)
! fix to not break words (f.e. URLs) when outputting HTML
% use shorter class names
! fix invalid element ID generated
! fix RTE when trying to create output by category
% delete dummy "HTML2" output mode
* convert more ASCII chars to better Unicode equivalents
+ mark more text as code automatically
* drop MS-DOS compatibility
* src/rtl/hbdoc.prg
! fix filling '_LANG' property with the correct value
* switch to use LF instead of CRLF in the field contents
* contrib/hbct/doc/en/*.txt
* contrib/hbgd/doc/en/hbgd.txt
* contrib/hbgt/doc/en/hbgt.txt
* contrib/hbmisc/doc/en/dates2.txt
* contrib/hbnf/doc/en/*.txt
* contrib/rddads/doc/en/adsfuncs.txt
* doc/en/*.txt
* cleanups and fixes
! casing
! fix to always delimit "see also" items with comma (",")
! fix various casing issues and old typos
! various fixes after detecting them using updated hbdoc
! eliminate/fix various rare/unnecessary/invalid field values
! move some embedded docs from hbdoc into their respective
doc sources
! fix a typo
* use backtick
* replace code copyright with reference to COPYING.txt (=LICENSE.txt)
+ mark tables without a header or with double height header
; Above patches come from 3.4 fork commits below:
2016-10-26 12:43 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2016-10-26 12:34 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2016-10-26 12:20 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2016-10-26 03:21 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2016-10-26 02:47 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2016-10-25 15:05 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2016-10-25 14:51 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2016-10-25 14:30 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2016-10-25 13:19 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2016-10-25 12:35 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2016-10-25 11:47 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2016-10-25 02:48 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2016-10-24 22:26 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2016-10-24 18:35 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2016-10-24 17:58 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2016-10-24 16:12 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2016-10-24 15:44 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2016-10-24 03:36 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2016-10-24 02:40 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2016-10-24 00:23 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2016-10-23 23:09 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2016-10-23 16:39 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2016-10-23 16:10 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
2016-10-23 13:15 UTC+0200 Viktor Szakats (vszakats users.noreply.github.com)
* contrib/hbssl/hbssl.h
* contrib/hbssl/ssl_sock.c
* contrib/hbssl/ssl_inet.c
+ added new 'PHB_ITEM pSSL' parameter to hb_sockexNewSSL() and
hb_ssl_socketNew() C functions - it allows to bind harbour item
with SSL pointer which should not be released before connection
is closed. In new OpenSSL version such tricks can be replaced
by SSL_up_ref()
This modification also fixes possible GPF trap when SSL filter
socket was create dynamically from C code without SSL pointer
item on HVM stack in 2-nd parameter and removes old hack which
saved internally 2-nd HVM stack parameter.
+ allow to pass SSL_CTX instead of SSL in "ssl", "ctx" or "key" items
of hash array used to initialize SSL socket filter. Using SSL_CTX
allows to use the same hash array to set SSL socket filter for
different connections
+ allow to use codeblocks or function pointers as "ssl", "ctx" or
"key" items of hash array used to initialize SSL socket filter
* contrib/hbssl/hbssl.h
* contrib/hbssl/sslctx.c
+ added new C function:
SSL_CTX * hb_SSL_CTX_itemGet( PHB_ITEM pItem )
* contrib/hbssl/ssl_sock.c
* src/rtl/hbcom.c
* src/rtl/hbsocket.c
! fixed timeout checking in select()/poll()
* src/rtl/hbsockhb.c
! fixed possible GPF trap when socket filter refuse to create new
socket wrapper
* include/hbinit.h
* in GCC C++ builds for startup code use GCC constructor function
attribute instead of static variable initialization to avoid
warnings in new GCC versions
* src/rtl/hbntos.c
! fixed missing '-' in result of negative integer numbers - thanks
to Luigi Ferraris
* src/common/hbstr.c
+ added code to round integer part when the size of number is greater
then double precision (~16 digits).
* contrib/gtqtc/gtqtc1.cpp
* removed unnecessary casting after recent modification
* src/3rd/jpeg/Makefile
* src/3rd/jpeg/jconfig.h
! moved definitions which interacts with 3-rd party code using libjpeg
header files to jconfig.h
* include/hbapi.h
* include/hbvmpub.h
* removed casting C style casting from commonly used macros
* contrib/gtqtc/gtqtc1.cpp
* use C++ casting instead of C casting
* contrib/rddads/ads1.c
* contrib/rddads/adsx.c
* contrib/rddsql/sqlmix.c
* src/rdd/dbfcdx/dbfcdx1.c
* src/rdd/dbfnsx/dbfnsx1.c
* src/rdd/dbfntx/dbfntx1.c
* src/rdd/dbsql.c
* src/rdd/workarea.c
* cleaned HB_IT_* usage
* contrib/rddads/ads1.c
! fixed typo in low level code of ordDescend() / DBOI_ISDESC,
now ordDescend() should work with ADS* RDDs just like with
native RDDs
* contrib/hbfoxpro/relfunc.c
! fixed typo in Between() function - thanks to Petr Chorney
* src/rtl/gtwvt/gtwvt.c
! added workaround for keyboard drivers which sets CTRL key modifier
flag when only ALTGR is pressed - thanks to Maurizio la Cecilia
* 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
* contrib/hbssl/hbssl.hbx
* contrib/hbssl/pem.c
* contrib/hbssl/x509.c
+ added new prg functions: PEM_READ_X509(), PEM_READ_X509_AUX() and
X509_get_PubKey()
* src/debug/dbgmenu.prg
! fixed wrong method name :ToggleBreakPoint() -> BreakPointToggle()
Thanks to Viktor.
* src/rtl/gtwin/gtwin.c
* hardcoded some LEFT_ALT + <key> to return K_ALT_* value instead of
national characters, i.e. in EL keyboard layout. Please test it.
I cannot check it in my MS-Windows version.
* contrib/gtwvg/wvgcore.c
* contrib/gtwvg/wvgcuig.c
! use HB_MIN() macro instead of non-standard min() function
! use casting to double instead of float which may strip significant
bits from 32bit numbers
* include/hbapicdp.h
+ added hb_cdpGetID() macro
* formatting
* src/rtl/hbjson.c
* modified codepage parameter behavior in JSON encode/decode functions.
Now they can be used for codepage translation.
* src/rtl/gtwvt/gtwvt.c
* ignore national characters when WM_SYSCHAR message is generated.
It should resolve the problem with Greek keyboard layout reported
by Pete anyhow it's possible that it may create new problems with
some other keyboard layouts so please report them if any.
* src/rdd/dbfcdx/dbfcdx1.c
* src/rdd/dbffpt/dbffpt1.c
* src/rdd/dbfnsx/dbfnsx1.c
* src/rdd/dbfntx/dbfntx1.c
* src/rdd/delim1.c
* src/rdd/sdf1.c
* src/rdd/hsx/hsx.c
* src/rdd/dbcmd.c
* src/rdd/dbcmd53.c
* next SELF_INFO() and SELF_RDDINFO() cleanups
* src/rtl/gtwvt/gtwvt.c
! fixed reverted LEFT and RIGHT ALT modifiers in my last commit
* include/hbapiitm.h
* src/vm/itemapi.c
+ added new C function:
PHB_ITEM hb_itemPutNil( PHB_ITEM pItem );
* src/rdd/dbf1.c
! fixed yet another RDDI_SETHEADER clearing in internal DBF RDD code
* clear few passed variables before internal SELF_INFO() and
SELF_RDDINFO() read calls - they were safe in current code but
potentially may badly interact with 3-rd party DBF RDD wrappers.
* doc/cmpopt.txt
* enumeration
! typos
* src/codepage/uckam.c
+ added info about Kamenicky codepage number: CP895
* include/hbapi.h
* src/common/hbstr.c
+ added new C function:
char * hb_dblToStr( char * szBuf, HB_SIZE nSize,
double dNumber, int iMaxDec );
it converts numeric value to string trying to keep all significant
digits in double numbers
* include/harbour.hbx
* src/rtl/hbntos.c
+ added new PRG function:
hb_ntoc( <nValue> ) -> cValue
it converts numeric value to string trying to keep all significant
digits in double numbers
* src/rtl/hbsocket.c
+ added support for error codes returned by
getaddrinfo() / getnameinfo() and gethostbyname() / gethostbyaddr()
* src/rtl/hbinet.c
+ set HB_SOCKET_ERR_WRONGADDR error code if hb_socketResolveAddr()
returns NULL without setting error code
* src/vm/arrays.c
* src/vm/hashfunc.c
! fix hb_HScan(), AScan(), hb_AScan() and hb_RAScan() for very large
integers with more then 53 significant bits. Such bits were lost
after conversion to double value used in scan process
* src/vm/itemapi.c
* formatting
* src/rtl/gtwvt/gtwvt.c
! do not convert characters received with ALTGR or ALT+CTRL flags to
extended keycodes - some national keyboards may use such combination
for national characters and even pure ASCII ones
* src/rtl/gtwin/gtwin.c
! strip ALT+CTRL and ALTGR from extended keycode when these modifiers
are used with ASCII characters - it should fix problem with some
national keyboards
* src/rtl/filesys.c
* src/rtl/hbcom.c
* src/rtl/hbproces.c
* src/rtl/hbsocket.c
+ added support for user build time macro HB_NO_POLL which disables
poll() usage
* src/rtl/hbsocket.c
! fixed bug which caused that structure passed to poll() had
uninitialized events member.
* include/hbclass.ch
* disabled by default VO compatible object constructors:
<className>{ <params,...> }
If someone needs them then he should add:
#define HB_VO_CONSTRUCTOR
before:
#include "hbclass.ch"
* src/compiler/harbour.y
* typo in comment
* src/rtl/hbstrfmt.c
* add to output trailing % in format pattern just like other % characters
which are not part of valid format string, i.e. in this code:
? hb_StrFormat( "%-% %1%q%*%" )
only the last % was silently eaten from output
* src/rtl/hbstrfmt.c
! fixed wrongly added to output character after unclosed format strings,
i.e.
? hb_StrFormat( "%1" )
? hb_StrFormat( "%1%s", "x" )
* src/common/hbffind.c
* in *nix builds of hb_fsFind*() show "." leading file names if file
mask also starts with "." regardless of hidden attribute state.
This modification restores previous Harbour behavior keeping the
new functionality.
* include/hbsocket.ch
* src/rtl/hbsocket.c
+ added support for high-priority/out-of-bound data in select()
emulated by poll()
+ added macros for socket send()/recv() flags: HB_SOCKET_MSG_*
* src/rtl/filesys.c
* src/rtl/hbcom.c
* src/rtl/hbproces.c
* include <poll.h> when HB_HAS_POLL macro is set manually by user
(thanks to Teo)
* contrib/hbnetio/netiosrv.c
* minor optimization
* src/common/hbprintf.c
* pacified warning
* src/rtl/filesys.c
! return -1 instead of from hb_fsPipeIsData() when poll() detects
error or end of stream - 0 should indicate timeout only.
* src/rtl/hbcom.c
! fixed bad typo which blocked hb_comSend() in *nixes
using select() instead of poll()
* src/rtl/filesys.c
* src/rtl/hbcom.c
* src/rtl/hbproces.c
* src/rtl/hbsocket.c
; updated #if/#else/#endif comments
* src/common/hbstr.c
* src/rtl/hbcom.c
* src/rtl/hbproces.c
* pacified few warnings - thanks to Viktor
* contrib/sddfb/core.c
! fixed code which extracted float number from uninitialized memory.
On some systems it could even cause GPF or other (ie. FPE) exception.
* src/rtl/hbproces.c
! fixed infinite loop due to ignored POLLHUP errors reported by poll()
! fixed stupid typo
* src/rtl/hbproces.c
* src/rtl/hbsocket.c
* src/rtl/filesys.c
* src/rtl/hbcom.c
* emulate read access when poll() used instead of select() reports
POLLHUP - this poll() behavior is neither consistent within a
single implementation, nor between different versions of the same
implementation, and certainly not across platforms
% optimize read/write access using extended (in comparison to select())
information reported by poll()
; TODO: emulate select() behavior for high priority data.
* src/rtl/gttone.c
! use asm {} directive only in CLANG BCC builds - asm {} needs TASM
so using it breaks Harbour compilation with free BorlandC command
line tools which do not contain TASM.
* src/rtl/hbsocket.c
* src/rtl/hbproces.c
* src/rtl/filesys.c
* src/rtl/hbcom.c
! use poll() instead of select() in POSIX.1-2001 compliant *nix builds
It fixes the problem with file handles >= 1024
Please make tests in different *nix builds. It affects sockets, pipes
and serial ports.
* contrib/hbnetio/netiosrv.c
* minor optimization
* src/rdd/dbcmd.c
* src/rdd/wacore.c
* src/rdd/wafunc.c
! added protection against exceeding the limit of workarea numbers.
Current maximum is 65534, WA 65535 is reserved for internal RDD
WA destructor.
! fixed possible memory leak in hb_rddInsertAreaNode()
* src/vm/set.c
! fixed typo in device detection code
+ added NUL to list of known device names in DOS, OS2 and MS-Win builds
+ recognize \\<server>\<device>, \\.\PIPE\*, \\.\<device> as
device names in DOS, OS2 and MS-Win builds.
* src/rtl/direct.c
! removed set of MS-Windows attributes passed unconditionally to
hb_fsFind*() functions in Directory() PRG function.
It fixes "L" attribute passed in 2-d parameter of Directory()
function in *nix builds. When "L" is given in attribute list
then Directory() do not follow links.
* src/common/strwild.c
* removed FNM_PERIOD from fnmatch() parameters in *nix builds
* src/common/hbffind.c
* in * nix builds set hidden attribute for file and directory
names starting with "." except "." and ".." which are reported
as is for Cl*pper and Harbour multiplatform compatibility.
* src/rtl/gttone.c
* applied patch from Andi Jahja for new BCC versions - many thanks
* src/rtl/strrepl.c
% added optimization code for strings longer then 1024 bytes
For very long strings it can improve replace performance 20 or
even more times.
* src/rtl/sha2.c
* src/rtl/val.c
* src/vm/dynsym.c
* src/vm/eval.c
* src/vm/thread.c
* formatting
* config/dyn.mk
* config/win/mingw.mk
* src/dynlib/2nd/Makefile
* src/dynlib/Makefile
+ src/harbour.def
+ use .def file to specify public symbols of harbour.dll
for more details, see:
f238e5f81fb2c9e4a63b
; NOTE: please make sure to add any new public (HB_EXPORT)
symbols to this list. Ordinals are not significant
ATM so the best is to keep alphabetical order.
* include/hbclass.ch
! use more restrictive PP rules to avoid possible wrong
interactions with code using 'var' and 'data' identifiers
* force class name to be valid identifier
* commented unused rules
* include/std.ch
! fixed CODEPAGE clause in COPY TO and APPEND FROM commands
+ added VIA and CODEPAGE clauses to JOIN command
* src/rdd/dbcmd.c
* updated comments with some function syntax
* include/harbour.hbx
* src/rdd/dbcmd.c
+ added new function:
hb_dbGetFilter() -> <bCode> | NIL
it returns codeblock used as work area filter or NIL
* src/debug/dbgwa.prg
* use hb_dbGetFilter() to check if WA filter was set without
filter text representation
; above modifications created by Rolf - thanks
* src/rdd/dbcmd.c
! clear filter if dbGetFilter( , "" ) is called instead of setting
dummy one - thanks to Rolf
* include/hbclass.ch
* disabled DECLARE to not generate ignored by compiler noise in .ppo
files
* src/rdd/dbcmd.c
! allow to use dbSetFilter() with string only parameter without
codeblock - Cl*pper compatibility fix.
Cl*pper allows to set text filter without codeblock. In local
RDDs it effectively does nothing and only dbFilter() returns it
but RDDs with automatic filter optimization like CL53/DBFCDX /
COMIX/ClipMore or RDDs working with remote data base servers
may use only text version of filter and ignore or use with
lower priority the codeblock so Harbour has to work like
Cl*pper here.
* src/rdd/workarea.c
* typo in comment
* contrib/rddads/ads1.c
* do not validate empty text filters
* src/rtl/isprint.c
! HB_ISPRINTER(), ISPRINTER() fix to open the port name with CREATE
flag (= CREATE_ALWAYS on Windows). It may fix port detection in
certain situations. Tested on Windows 7 x86 and x64, whereas it
will now return .T. if the port is associated with a queue,
and .F. if it isn't. It seems to cause no harm on OS X. Please
test it on other systems and other LPT scenarios (f.e. with real
hardware device attached).
; borrowed from Viktor's fork: 2016-03-08 18:19 UTC+0100 Viktor Szakats
* ChangeLog.txt
; hide e-mail addresses
* src/lang/Makefile
+ src/lang/l_de_at.c
* include/hblang.hbx
+ added new DE_AT German-Austria lang module by byte1one@gmail.com
* src/lang/l_is.c
! fixes in Icelandic lang module by Isleifur Gislason
<isleifurgisla@gmail.com>
* src/rtl/gttrm/gttrm.c
+ added support for CYGWIN ssh terminal
(i.e. ssh.exe included in github for MS-Windows)
! fixed support for terminals which always scrolls when the most
upper/right character is written.
In current version GTTRM simply ignores this character cell.
On such terminals it can be shown by writing the last character
one cell before then sending escape sequences to move cursor back,
insert one space and finally restoring overwritten character
cell value. Anyhow it increases number of used escape sequences
so I decided to not implement it yet.
* src/rtl/hbgtcore.c
! fill whole box area in DispBpx() when 0 length string or string with
Chr( 0 ) at the beginning is used as box frame - Cl*pper compatible
behavior
* contrib/hbnetio/hbnetio.hbx
* contrib/hbnetio/netiocli.c
* contrib/hbnetio/readme.txt
+ added new client side function:
netio_SetPath( <pConnection> [, <cPath>] ) -> [<cPrevPath>]
It set/get path prefix for automatic file redirection to HBNETIO.
If automatic redirection is activated then <cPath> is removed
from file name passed to HBNETIO server, i.e.:
netio_SetPath( netio_GetConnection(), "//myserver/myshare" )
[...]
/* open "/data/table" on HBNETIO server */
use "//myserver/myshare/data/table"
* allow to pass filename to netio_Decode() with "net:" prefix
* allow to pass to use "net:" prefix in function names passed
to netio_{Proc|Func}*() when <pConnection> parameter is not used
! fixed possible GPF trap when connection cannot be set
* src/vm/memvars.c
% do not create reference chain when memvars are passed by reference
and called function uses PARAMETERS statement
! do not return references from __mvDbgInfo() but destination values
* doc/xhb-diff.txt
! typo
* src/vm/itemapi.c
! typo in debug trace message
* include/hbapifs.h
* src/rtl/filesys.c
+ added new C function:
HB_FOFFSET hb_fsGetSize( HB_FHANDLE hFileHandle );
! fixed SetFilePointer() error detecting - it was broken
and we returned wrong results for offset 0xFFFFFFFF
* src/rtl/filebuf.c
* use hb_fsGetSize()