2009-10-12 22:28 UTC+0200 Francesco Saverio Giudice (info/at/fsgiudice.com)

* harbour/src/rtl/hbini.prg
    * Splitted hb_IniRdLow() internal function into two functions:
       hb_IniFileLow( cFileSpec ) -> cData
       hb_IniStringLow( hIni, cData, lKeyCaseSens, cSplitters, lAutoMain ) -> hIni
    + Added new hb_IniString() funtion
       hb_IniString( cData, lKeyCaseSens, cSplitters, lAutoMain ) -> hIni
       that reads directly from a string.
       So hb_IniRead() read from a file, hb_IniString() read from memory string.
This commit is contained in:
Francesco Saverio Giudice
2009-10-12 20:34:07 +00:00
parent da59779fda
commit d78216683c
2 changed files with 69 additions and 44 deletions

View File

@@ -17,6 +17,16 @@
past entries belonging to author(s): Viktor Szakats.
*/
2009-10-12 22:28 UTC+0200 Francesco Saverio Giudice (info/at/fsgiudice.com)
* harbour/src/rtl/hbini.prg
* Splitted hb_IniRdLow() internal function into two functions:
hb_IniFileLow( cFileSpec ) -> cData
hb_IniStringLow( hIni, cData, lKeyCaseSens, cSplitters, lAutoMain ) -> hIni
+ Added new hb_IniString() funtion
hb_IniString( cData, lKeyCaseSens, cSplitters, lAutoMain ) -> hIni
that reads directly from a string.
So hb_IniRead() read from a file, hb_IniString() read from memory string.
2009-10-12 18:42 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* contrib/hbtip/sendmail.prg
! Fixed wrongly referring to 7-bit encoding.
@@ -31,8 +41,8 @@
2009-10-12 18:24 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* contrib/hbtip/encqp.prg
+ Implemented quoted-printable encoder/decoder.
Not yet used. Not extremely well tested, just something
to start with. Please review. Probably should be done
Not yet used. Not extremely well tested, just something
to start with. Please review. Probably should be done
in C for speed, but anyway.
* contrib/hbtip/sendmail.prg
@@ -118,7 +128,7 @@
* contrib/hbssl/hbssl.h
* contrib/hbssl/sslctx.c
+ Added partial support for OpenSSL 1.0.0beta3.
Partial because I'm getting a few errors which I cannot resolve,
Partial because I'm getting a few errors which I cannot resolve,
help/input is welcome from interested parties:
---
cl.exe -nologo -I. -I../../../../../include -Gs -TP -W4 -wd4127 -Ot2b1 -EHs-c- -MT -IC:\devl\openssl-1.0.0-beta3\include -DOPENSSL_OPT_WINDLL -DUNICODE -Fossl.obj -c ../../../ssl.c
@@ -183,9 +193,9 @@
* ChangeLog
* harbour.spec
* mpkg_tgz.sh
* Renamed 'source' dir to 'src' to move closer to other FOSS
projects. It's also easier to type, plus it has the side
effect that some cmdlines will be shorter in the
* Renamed 'source' dir to 'src' to move closer to other FOSS
projects. It's also easier to type, plus it has the side
effect that some cmdlines will be shorter in the
build process.
2009-10-09 10:13 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
@@ -248,11 +258,11 @@
2009-10-07 14:27 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* package/winuni/RELNOTES
+ Note about upx update. (still no win64 support, but there are
+ Note about upx update. (still no win64 support, but there are
some other goodies for OS X and Linux)
* utils/hbmk2/hbmk2.prg
+ Enabled upx support on darwin. (You need to install it via
+ Enabled upx support on darwin. (You need to install it via
macports)
* INSTALL
@@ -356,10 +366,10 @@
* examples/hbdoc/examples/core_es/dbstrux.txt
* examples/hbdoc2/hbdoc2.prg
* HB_C52_STRICT -> HB_CLP_STRICT
We use it cover strict Clipper compatibility in general, not
We use it cover strict Clipper compatibility in general, not
just for C5.2.
* HB_C52_UNDOC -> HB_CLP_UNDOC
We use it cover Clipper undocumented stuff in general, not
We use it cover Clipper undocumented stuff in general, not
just C5.2 version specific ones.
2009-10-07 11:23 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
@@ -372,10 +382,10 @@
2009-10-07 10:47 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* utils/hbmk2/hbmk2.prg
* config/global.mk
* Adapting to mingw64 distro change, where they've fixed
* Adapting to mingw64 distro change, where they've fixed
toolchain prefix of 32-bit builds.
(to i686-w64-mingw32- from x64_64-w64-mingw32-)
2009-10-07 09:58 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* source/rtl/gtwvt/gtwvt.h
* source/rtl/gtwvt/gtwvt.c
@@ -390,34 +400,34 @@
2009-10-07 08:09 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* config/global.mk
* config/detect.mk
+ Added support for optional user.mk file (requires GNU Make
syntax) in Harbour source tree root to store user-specific
build settings. In general all documented settings from
INSTALL can be used here, but most probably you'll only
want to store portable settings (like HB_CONTRIBLIBS).
Usually you'll want to use
+ Added support for optional user.mk file (requires GNU Make
syntax) in Harbour source tree root to store user-specific
build settings. In general all documented settings from
INSTALL can be used here, but most probably you'll only
want to store portable settings (like HB_CONTRIBLIBS).
Usually you'll want to use
'export HB_BUILD_* := <value>' syntax to specify them.
user.mk should not rely on any internal variables set
by our GNU Make system (like HB_PLATFORM), as they are
set later in the process thus not available at this
user.mk should not rely on any internal variables set
by our GNU Make system (like HB_PLATFORM), as they are
set later in the process thus not available at this
point.
Please note that this is yet an experience and details
or even presence of the feature may change in the future,
Please note that this is yet an experience and details
or even presence of the feature may change in the future,
we should see how useful it turns out to be.
* Changed conf.mk support, so that the file got renamed
* Changed conf.mk support, so that the file got renamed
to config.mk and moved to source tree root (next to user.mk).
2009-10-07 07:36 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* contrib/hbct/ctwin.c
+ Added HB_C52_STRICT guard around artificial windows
+ Added HB_C52_STRICT guard around artificial windows
size limits. Please review me.
HB_C52_STRICT macros should be renamed to HB_CLP_STRICT
to reflect usage of recent years, where it's also used
HB_C52_STRICT macros should be renamed to HB_CLP_STRICT
to reflect usage of recent years, where it's also used
to cover 5.3 strictness f.e..
* source/rtl/gtwvt/gtwvt.c
! Minor formatting.
! Fixed to use WVT_MAX_COLS instead of WVT_MAX_ROWS in one
! Fixed to use WVT_MAX_COLS instead of WVT_MAX_ROWS in one
place.
* source/codepage/Makefile
@@ -522,9 +532,9 @@
* config/global.mk
* config/wce/msvcarm.mk
* config/win/msvc.mk
+ Replaced MSVC specific compiler version setting with generic
+ Replaced MSVC specific compiler version setting with generic
compiler version setting.
HB_VISUALC_VER_PRE80 and HB_VISUALC_VER_PRE70 settings are
HB_VISUALC_VER_PRE80 and HB_VISUALC_VER_PRE70 settings are
deleted and HB_COMPILER_VER is activated.
; INCOMPATIBLE.

View File

@@ -100,12 +100,20 @@ FUNCTION HB_IniNew( lAutoMain )
FUNCTION hb_IniRead( cFileSpec, lKeyCaseSens, cSplitters, lAutoMain )
LOCAL cData
cData := hb_IniFileLow( cFileSpec )
RETURN hb_IniString( cData, lKeyCaseSens, cSplitters, lAutoMain )
FUNCTION hb_IniString( cData, lKeyCaseSens, cSplitters, lAutoMain )
LOCAL hIni := hb_Hash()
/* Default case sensitiveness for keys */
DEFAULT lKeyCaseSens TO .T.
DEFAULT cSplitters TO "="
DEFAULT lAutoMain TO .T.
DEFAULT cSplitters TO "="
DEFAULT lAutoMain TO .T.
DEFAULT cData TO ""
hb_HCaseMatch( hIni, lKeyCaseSens )
@@ -113,14 +121,12 @@ FUNCTION hb_IniRead( cFileSpec, lKeyCaseSens, cSplitters, lAutoMain )
hIni[ "MAIN" ] := hb_Hash()
ENDIF
RETURN hb_IniRdLow( hIni, cFileSpec, lKeyCaseSens, cSplitters, lAutoMain )
RETURN hb_IniStringLow( hIni, cData, lKeyCaseSens, cSplitters, lAutoMain )
STATIC FUNCTION hb_IniRdLow( hIni, cFileSpec, lKeyCaseSens, cSplitters, lAutoMain )
STATIC FUNCTION hb_IniFileLow( cFileSpec )
LOCAL cFile, nLen
LOCAL aKeyVal, hCurrentSection
LOCAL hFile, nLineEnd
LOCAL cData, cLine
LOCAL reComment, reInclude, reSection, reSplitters
LOCAL hFile
LOCAL cData
LOCAL aFiles := hb_aTokens( cFileSpec, hb_OSPathListSeparator() )
IF Empty( aFiles )
@@ -140,11 +146,6 @@ STATIC FUNCTION hb_IniRdLow( hIni, cFileSpec, lKeyCaseSens, cSplitters, lAutoMai
RETURN NIL
ENDIF
reComment := hb_RegexComp( s_cHalfLineComment + "|^[ \t]*" + s_cLineComment )
reInclude := hb_RegexComp( "include (.*)" )
reSection := hb_RegexComp( "[[](.*)[]]" )
reSplitters := hb_RegexComp( cSplitters )
/* we'll read the whole file, then we'll break it in lines. */
cData := Space( FSeek( hFile, 0, FS_END ) )
FSeek( hFile, 0, FS_SET )
@@ -152,6 +153,20 @@ STATIC FUNCTION hb_IniRdLow( hIni, cFileSpec, lKeyCaseSens, cSplitters, lAutoMai
cData := Left( cData, nLen )
FClose( hFile )
RETURN cData
STATIC FUNCTION hb_IniStringLow( hIni, cData, lKeyCaseSens, cSplitters, lAutoMain )
LOCAL nLen
LOCAL aKeyVal, hCurrentSection
LOCAL nLineEnd
LOCAL cLine
LOCAL reComment, reInclude, reSection, reSplitters
reComment := hb_RegexComp( s_cHalfLineComment + "|^[ \t]*" + s_cLineComment )
reInclude := hb_RegexComp( "include (.*)" )
reSection := hb_RegexComp( "[[](.*)[]]" )
reSplitters := hb_RegexComp( cSplitters )
/* Always begin with the MAIN section */
IF lAutoMain
hCurrentSection := hIni[ "MAIN" ]
@@ -217,7 +232,7 @@ STATIC FUNCTION hb_IniRdLow( hIni, cFileSpec, lKeyCaseSens, cSplitters, lAutoMai
IF Len( aKeyVal[ 2 ] ) == 0
LOOP
ENDIF
hb_IniRdLow( hIni, aKeyVal[ 2 ], lKeyCaseSens, cSplitters, lAutoMain )
hb_IniStringLow( hIni, hb_IniFileLow( aKeyVal[ 2 ] ), lKeyCaseSens, cSplitters, lAutoMain )
cLine := ""
LOOP
ENDIF