2017-09-13 12:38 UTC Viktor Szakats (vszakats users.noreply.github.com)

- doc/en/hashes.txt
  - doc/en/rdddb.txt
  * .gitattributes
  * contrib/3rd/sqlite3/sqlite3.hbp
  * contrib/hbbz2/3rd/bz2/bz2.hbp
  * contrib/hbexpat/3rd/expat/expat.hbp
  * contrib/hbfimage/hbfimage.hbp
  * contrib/hbhpdf/3rd/libhpdf/libhpdf.hbp
  * contrib/hblzf/3rd/liblzf/lzf.hbp
  * contrib/hbmxml/3rd/minixml/mxml.hbp
  * contrib/hbmzip/3rd/minizip/minizip.hbp
  * contrib/hbodbc/hbodbc.hbp
  * contrib/hbtinymt/3rd/tinymt/tinymt.hbp
  * contrib/hbxdiff/3rd/libxdiff/xdiff.hbp
  * contrib/sddsqlt3/tests/test.prg
  * ChangeLog.txt
  * doc/Makefile
  * doc/oldnews.txt
  * extras/ps32/readme.txt
  * extras/superlib/readme.txt
  * src/3rd/jpeg/Makefile
  * src/3rd/pcre/Makefile
  * src/3rd/png/Makefile
  * src/3rd/tiff/Makefile
  * src/3rd/zlib/Makefile
  + contrib/hbsms/DEPRECATED.txt
  + contrib/hbtpathy/DEPRECATED.txt
  + contrib/xhb/WARNING.txt
  * contrib/3rd/sqlite3/sqlite3.dif -> contrib/3rd/sqlite3/sqlite3.diff
  * contrib/hbbz2/3rd/bz2/bz2.dif -> contrib/hbbz2/3rd/bz2/bz2.diff
  * contrib/hbexpat/3rd/expat/expat.dif -> contrib/hbexpat/3rd/expat/expat.diff
  * contrib/hbhpdf/3rd/libhpdf/libhpdf.dif -> contrib/hbhpdf/3rd/libhpdf/libhpdf.diff
  * contrib/hblzf/3rd/liblzf/liblzf.dif -> contrib/hblzf/3rd/liblzf/liblzf.diff
  * contrib/hbmxml/3rd/minixml/minixml.dif -> contrib/hbmxml/3rd/minixml/minixml.diff
  * contrib/hbmzip/3rd/minizip/minizip.dif -> contrib/hbmzip/3rd/minizip/minizip.diff
  * contrib/hbtinymt/3rd/tinymt/tinymt.dif -> contrib/hbtinymt/3rd/tinymt/tinymt.diff
  * contrib/hbxdiff/3rd/libxdiff/libxdiff.dif -> contrib/hbxdiff/3rd/libxdiff/xdiff.diff
  * contrib/sddsqlt3/tests/test.sq3 -> contrib/sddsqlt3/tests/test.sqlite3
  * extras/dbu/dbu52.dif -> extras/dbu/dbu52.patch
  * extras/dbu/dbu53.dif -> extras/dbu/dbu53.patch
  * extras/ps32/ps32.dif -> extras/ps32/ps32.patch
  * extras/rl/rl.dif -> extras/rl/rl.patch
  * extras/superlib/superlib.dif -> extras/superlib/superlib.patch
  * extras/template/readme.txt -> extras/template/README.md
  * src/3rd/hbdossrl/README -> src/3rd/hbdossrl/README.txt
  * src/3rd/jpeg/jpeg.dif -> src/3rd/jpeg/jpeg.diff
  * src/3rd/pcre/pcre.dif -> src/3rd/pcre/pcre.diff
  * src/3rd/png/png.dif -> src/3rd/png/png.diff
  * src/3rd/tiff/tiff.dif -> src/3rd/tiff/tiff.diff
  * src/3rd/zlib/zlib.dif -> src/3rd/zlib/zlib.diff
  * tests/hbpptest/_pp_test.prg -> tests/hbpp/_pp_test.prg
  * tests/hbpptest/compare.hb -> tests/hbpp/compare.hb
  * tests/hbpptest/hbpptest.hbp -> tests/hbpp/hbpptest.hbp
  * tests/hbpptest/hbpptest.prg -> tests/hbpp/hbpptest.prg
  * tests/tflock.prg -> tests/flock.prg
  * contrib/hbfimage/fi_wrp.c -> contrib/hbfimage/core.c
  * contrib/hbodbc/browodbc.prg -> contrib/hbodbc/browse.prg
  * doc/cmdline.txt -> doc/cmdline.md
  * extras/dbu/readme.txt -> extras/dbu/README.md
  * extras/rl/readme.txt -> extras/rl/README.md
    * some file renames synced with 3.4 fork, plus the content of
      some of them. Some new text files added as well.
      Note, 3rd party code rediffing won't work anymore on 8.3
      filesystems.
This commit is contained in:
Viktor Szakats
2017-09-13 12:39:48 +00:00
parent b6cc8296fb
commit 0caff16650
61 changed files with 244 additions and 2411 deletions

View File

@@ -4,7 +4,7 @@ DOC_FILES := \
c_std.txt \
class_tp.txt \
clipper.txt \
cmdline.txt \
cmdline.md \
cmpopt.txt \
codebloc.txt \
codestyl.txt \

98
doc/cmdline.md Normal file
View File

@@ -0,0 +1,98 @@
# Harbour switch handling spec
This spec goes for `CLIPPERCMD`, `HARBOURCMD`, Harbour compiler and
`#pragma` directives in the source code.
The command-line always overrides the envvar.
Note that some switches are not accepted in envvar, some others in
`#pragma`s.
First the parser should start to step through all the tokens in the
string separated by whitespace. (or just walk through all `argv[]`)
1. If the token begins with `-`, it should be treated as a new style switch.
One or more switch characters can follow this. The `-` sign inside the
token will turn off the switch.
If the switch has an argument all the following characters are treated
as part of the argument.
The `/` sign has no special meaning here.
```
Switch Resulting options
-wn ( W N )
-w-n ( !W N )
-wi/harbour/include/ ( W I=/harbour/include/ )
-wi/harbour/include/n ( W I=/harbour/include/n )
-wes0n ( W ES=0 N )
-wen ( W [invalid switch: e] N )
-wesn ( W ES=Default(0) N )
-wses ( W S ES=Default(0) )
-wess ( W ES=Default(0) S )
- ( [invalid switch] )
-w-n-p ( !W !N P )
-w-n-p- ( !W !N !P )
-w- -w -w- ( finally: !W )
```
2. If the token begins with `/`, it should be treated as a compatibility
style switch.
The parser scans the token for the next `/` sign or `EOS` and treats the
resulting string as one switch.
This means that a switch with an argument containing `/` sign has some
limitations. This may be solved by allowing the usage of quote characters.
This is mostly a problem on systems which use `/` as path separator.
The `-` sign has no special meaning here, it cannot be used to disable
a switch.
```
Switch Resulting options
/w/n ( W N )
/wo/n ( [invalid switch: wo] N )
/ihello/world/ ( I=hello [invalid switch: world] [invalid switch: /] )
/i"hello/world/"/w ( I=hello/world/ W )
/ihello\world\ ( I=hello\world\ )
```
3. If the token begins with anything else it should be skipped.
The Harbour switches are always case insensitive.
In the Harbour command-line the two style can be used together:
```
harbour -wnes2 /gc0/q0 -iC:\hb\include
```
Exceptions:
- Handling of the `/CREDIT` undocumented switch on Harbour command-line
is unusual, check the current code for this.
- `CLIPPER`, `HARBOUR` envvars and Harbour application command-line
parsing is a different beast, see `src/vm/cmdarg.c` for a NOTE.
Just some examples for the various accepted forms:
```
//F20 == /F20 == F20 == F:20 == F20X
F20//F:30000000 NOIDLE
F0NOIDLEX10
SQUAWKNOIDLE
```
`//` should always be used on the command-line.
---
Copyright (c) 1999-2009 Viktor Szakats (vszakats.net/harbour)
Licensed under Creative Commons Attribution-ShareAlike 4.0:
<https://creativecommons.org/licenses/by-sa/4.0/>
See LICENSE.txt

View File

@@ -1,98 +0,0 @@
Harbour switch handling spec
============================
This spec goes for CLIPPERCMD, HARBOURCMD, Harbour
compiler and #pragma directives in the source code.
The command line always overrides the envvar.
Note that some switches are not accepted in envvar,
some others in #pragmas.
First the parser should start to step through
all the tokens in the string separated by
whitespace. (or just walk through all argv[])
1.) If the token begins with "-", it
should be treated as a new style switch.
One or more switch characters can follow
this. The "-" sign inside the token
will turn off the switch.
If the switch has an argument all the following
characters are treated as part of the argument.
The "/" sign has no special meaning here.
Switch Resulting options
-wn ( W N )
-w-n ( !W N )
-wi/harbour/include/ ( W I=/harbour/include/ )
-wi/harbour/include/n ( W I=/harbour/include/n )
-wes0n ( W ES=0 N )
-wen ( W [invalid switch: e] N )
-wesn ( W ES=Default(0) N )
-wses ( W S ES=Default(0) )
-wess ( W ES=Default(0) S )
- ( [invalid switch] )
-w-n-p ( !W !N P )
-w-n-p- ( !W !N !P )
-w- -w -w- ( finally: !W )
2.) If the token begins with "/", it
should be treated as a compatibility style switch.
The parser scans the token for the next "/" sign or EOS
and treats the resulting string as one switch.
This means that a switch with an argument containing
"/" sign has some limitations. This may be solved by
allowing the usage of quote characters. This is mostly
a problem on systems which use "/" as path separator.
The "-" sign has no special meaning here, it can't be
used to disable a switch.
Switch Resulting options
/w/n ( W N )
/wo/n ( [invalid switch: wo] N )
/ihello/world/ ( I=hello [invalid switch: world] [invalid switch: /] )
/i"hello/world/"/w ( I=hello/world/ W )
/ihello\world\ ( I=hello\world\ )
3.) If the token begins with anything else it should
be skipped.
The Harbour switches are always case insensitive.
In the Harbour commandline the two style can be used together:
harbour -wnes2 /gc0/q0 -iC:\hello
Exceptions:
- Handling of the /CREDIT undocumented switch
on Harbour command line is unusual, check the current code
for this.
- The CLIPPER, HARBOUR and Harbour application
command line parsing is a different beast,
see cmdarg.c for a NOTE.
Just some examples for the various accepted forms:
//F20 == /F20 == F20 == F:20 == F20X
//TMPPATH:C:\hello
F20//TMPPATH:/temp///F:30000000 NOIDLE
F0NOIDLEX10
SQUAWKNOIDLE
"//" should always be used on the command line.
[ Copyright (c) 1999-2009 Viktor Szakats (vszakats.net/harbour)
Licensed under Creative Commons Attribution-ShareAlike 4.0:
<https://creativecommons.org/licenses/by-sa/4.0/>
See LICENSE.txt ]

View File

@@ -1,967 +0,0 @@
/*
* Copyright 2009 April White <bright.tigra gmail.com>
* Copyright 2007 Przemyslaw Czerpak <druzus / at / priv.onet.pl>
*
* See COPYING.txt for licensing terms.
*
*/
/* $DOC$
$TEMPLATE$
Function
$NAME$
hb_Hash()
$CATEGORY$
API
$SUBCATEGORY$
Hash table
$ONELINER$
Returns a hash table
$SYNTAX$
hb_Hash( [ <Key1>, <Value1> ], [ <KeyN>, <ValueN> ], ... ) -> hsTable
$ARGUMENTS$
<Key1> entry key;
can be of type: number, date, datetime, string, pointer
<Value1> entry value; can be of type: block, string, numeric, date/datetime, logical, nil, pointer, array, hash table
Equivalent to:
hsTable := { => }
hsTable := { <Key1> => <Value1>, <Key2> => <Value2>, <KeyN> => <ValueN> }
$RETURNS$
A hash table built from the initial key/value pairs
$DESCRIPTION$
$EXAMPLES$
$STATUS$
R
$COMPLIANCE$
H
$PLATFORMS$
$FILES$
$SEEALSO$
$END$
*/
/* $DOC$
$TEMPLATE$
Function
$NAME$
hb_HHasKey()
$CATEGORY$
API
$SUBCATEGORY$
Hash table
$ONELINER$
Determines whether a hash table has an entry with a give key
$SYNTAX$
hb_HHasKey( <hsTable>, <Key> ) -> lExists
$ARGUMENTS$
<hsTable> a hash table
<Key> a key value to be queried for;
can be of type: number, date, datetime, string, pointer
$RETURNS$
A logical value indicating whether the key exists within the hash table
$DESCRIPTION$
$EXAMPLES$
$STATUS$
R
$COMPLIANCE$
H
$PLATFORMS$
$FILES$
$SEEALSO$
$END$
*/
/* $DOC$
$TEMPLATE$
Function
$NAME$
hb_HPos()
$CATEGORY$
API
$SUBCATEGORY$
Hash table
$ONELINER$
Locates the index of a key within a hash table
$SYNTAX$
hb_HPos( <hsTable>, <Key> ) -> nPosition
$ARGUMENTS$
<hsTable> a hash table
<Key> key for which its position is to be determined;
can be of type: number, date, datetime, string, pointer
$RETURNS$
A integer number being the index position of the key within the hash table.
TODO: what is the return value if the key does not exist? zero (0)? RTE?
$DESCRIPTION$
$EXAMPLES$
$STATUS$
R
$COMPLIANCE$
H
$PLATFORMS$
$FILES$
$SEEALSO$
$END$
*/
/* $DOC$
$TEMPLATE$
Function
$NAME$
hb_HGet()
$CATEGORY$
API
$SUBCATEGORY$
Hash table
$ONELINER$
Returns a hash value
$SYNTAX$
hb_HGet( <hsTable>, <Key> ) -> <Value>
$ARGUMENTS$
<hsTable> a hash table
<Key> key to be retrieve from the hash table;
can be of type: number, date, datetime, string, pointer
$RETURNS$
Either the value within the hash table for the given key.
An array access error occurs of the key is not found
$DESCRIPTION$
$EXAMPLES$
$STATUS$
R
$COMPLIANCE$
H
$PLATFORMS$
$FILES$
$SEEALSO$
$END$
*/
/* $DOC$
$TEMPLATE$
Function
$NAME$
hb_HGetDef()
$CATEGORY$
API
$SUBCATEGORY$
Hash table
$ONELINER$
Returns a hash value, or a default value if the key is not present
$SYNTAX$
hb_HGetDef( <hsTable>, <Key>, [<DefaultValue>] ) -> <Value>
$ARGUMENTS$
<hsTable> a hash table
<Key> key to be retrieve from the hash table;
can be of type: number, date, datetime, string, pointer
<DefaultValue> a default value to be returned if the
hash table does not contain the key
$RETURNS$
Either the value within the hash table for the given key,
or the default value.
$DESCRIPTION$
$EXAMPLES$
$STATUS$
R
$COMPLIANCE$
H
$PLATFORMS$
$FILES$
$SEEALSO$
$END$
*/
/* $DOC$
$TEMPLATE$
Function
$NAME$
hb_HSet()
$CATEGORY$
API
$SUBCATEGORY$
Hash table
$ONELINER$
Sets a hash value
$SYNTAX$
hb_HSet( <hsTable>, <Key>, <Value> ) -> <hsTable>
$ARGUMENTS$
<hsTable> a hash table
<Key> the key of the entry to be set;
can be of type: number, date, datetime, string, pointer
<Value> the entry value
$RETURNS$
The hash table
$DESCRIPTION$
$EXAMPLES$
$STATUS$
R
$COMPLIANCE$
H
$PLATFORMS$
$FILES$
$SEEALSO$
$END$
*/
/* $DOC$
$TEMPLATE$
Function
$NAME$
hb_HDel()
$CATEGORY$
API
$SUBCATEGORY$
Hash table
$ONELINER$
Removes a key/value pair from a hash table
$SYNTAX$
hb_HDel( <hsTable>, <Key> ) -> <hsTable>
$ARGUMENTS$
<hsTable> a hash table
<Key> key to be removed from the hash table;
can be of type: number, date, datetime, string, pointer
$RETURNS$
The hash table
$DESCRIPTION$
$EXAMPLES$
$STATUS$
R
$COMPLIANCE$
H
$PLATFORMS$
$FILES$
$SEEALSO$
$END$
*/
/* $DOC$
$TEMPLATE$
Function
$NAME$
hb_HKeyAt()
$CATEGORY$
API
$SUBCATEGORY$
Hash table
$ONELINER$
Gets a hash table key at a given position
$SYNTAX$
hb_HKeyAt( <hsTable>, <nPosition> ) -> <Key>
$ARGUMENTS$
<hsTable> a hash table
<nPosition> the position of an entry within the hash table that will
be returned
$RETURNS$
The key at the given position of the hash table;
the type will be one: number, date, datetime, string, pointer
$DESCRIPTION$
$EXAMPLES$
$STATUS$
R
$COMPLIANCE$
H
$PLATFORMS$
$FILES$
$SEEALSO$
$END$
*/
/* $DOC$
$TEMPLATE$
Function
$NAME$
hb_HValueAt()
$CATEGORY$
API
$SUBCATEGORY$
Hash table
$ONELINER$
Gets/sets a hash value at a given position
$SYNTAX$
hb_HValueAt( <hsTable>, <nPosition>, [<NewValue>] ) -> <Value>
$ARGUMENTS$
<hsTable> a hash table
<nPosition> the position of an entry within the hash table that will
be returned
<NewValue> a new value to be assigned to the hash table at the given
position
$RETURNS$
The existing value, or the new value if it is given
$DESCRIPTION$
$EXAMPLES$
$STATUS$
R
$COMPLIANCE$
H
$PLATFORMS$
$FILES$
$SEEALSO$
$END$
*/
/* $DOC$
$TEMPLATE$
Function
$NAME$
hb_HPairAt()
$CATEGORY$
API
$SUBCATEGORY$
Hash table
$ONELINER$
Returns a two-dimensional array of a hash table entry key/value pair
$SYNTAX$
hb_HPairAt( <hsTable>, <nPosition> ) -> <aKeyValue>
$ARGUMENTS$
<hsTable> a hash table
<nPosition> the position of an entry within the hash table that will
be returned
$RETURNS$
A two-dimensional array of the key/value pair entry of the hash table
$DESCRIPTION$
$EXAMPLES$
$STATUS$
R
$COMPLIANCE$
H
$PLATFORMS$
$FILES$
$SEEALSO$
$END$
*/
/* $DOC$
$TEMPLATE$
Function
$NAME$
hb_HDelAt()
$CATEGORY$
API
$SUBCATEGORY$
Hash table
$ONELINER$
Removes an entry from a hash table based on its index position
$SYNTAX$
hb_HDelAt( <hsTable>, <nPosition> ) -> <hsTable>
$ARGUMENTS$
<hsTable> a hash table
<nPosition> the position of an entry within the hash table that will
be deleted
$RETURNS$
The hash table
$DESCRIPTION$
$EXAMPLES$
$STATUS$
R
$COMPLIANCE$
H
$PLATFORMS$
$FILES$
$SEEALSO$
$END$
*/
/* $DOC$
$TEMPLATE$
Function
$NAME$
hb_HKeys()
$CATEGORY$
API
$SUBCATEGORY$
Hash table
$ONELINER$
Returns an array of the keys of a hash table
$SYNTAX$
hb_HKeys( <hsTable> ) -> <aKeys>
$ARGUMENTS$
<hsTable> a hash table
$RETURNS$
An array of all the hash table keys
$DESCRIPTION$
$EXAMPLES$
$STATUS$
R
$COMPLIANCE$
H
$PLATFORMS$
$FILES$
$SEEALSO$
$END$
*/
/* $DOC$
$TEMPLATE$
Function
$NAME$
hb_HValues()
$CATEGORY$
API
$SUBCATEGORY$
Hash table
$ONELINER$
Returns an array of the values of a hash table
$SYNTAX$
hb_HValues( <hsTable> ) -> <aValues>
$ARGUMENTS$
<hsTable> a hash table
$RETURNS$
An array of all the hash values
$DESCRIPTION$
$EXAMPLES$
$STATUS$
R
$COMPLIANCE$
H
$PLATFORMS$
$FILES$
$SEEALSO$
$END$
*/
/* $DOC$
$TEMPLATE$
Function
$NAME$
hb_HFill()
$CATEGORY$
API
$SUBCATEGORY$
Hash table
$ONELINER$
Fills a hash table with a value
$SYNTAX$
hb_HFill( <hsTable>, <Value> ) -> <hsTable>
$ARGUMENTS$
<hsTable> a hash table
<Value> fill value; can be of type: block, string, numeric, date/datetime, logical, nil, pointer, array, hash table
$RETURNS$
The hash table
$DESCRIPTION$
$EXAMPLES$
$STATUS$
R
$COMPLIANCE$
H
$PLATFORMS$
$FILES$
$SEEALSO$
$END$
*/
/* $DOC$
$TEMPLATE$
Function
$NAME$
hb_HClone()
$CATEGORY$
API
$SUBCATEGORY$
Hash table
$ONELINER$
Creates a copy of a hash table
$SYNTAX$
hb_HClone( <hsTable> ) -> <hsDestination>
$ARGUMENTS$
<hsTable> a hash table
$RETURNS$
A cloned copy of the hash table
$DESCRIPTION$
$EXAMPLES$
$STATUS$
R
$COMPLIANCE$
H
$PLATFORMS$
$FILES$
$SEEALSO$
$END$
*/
/* $DOC$
$TEMPLATE$
Function
$NAME$
hb_HCopy()
$CATEGORY$
API
$SUBCATEGORY$
Hash table
$ONELINER$
Adds entries from the source hash table to the destination hash table
$SYNTAX$
hb_HCopy( <hsDestination>, <hsSource>, [<nStart>], [<nCount>] ) -> <hsDestination>
$ARGUMENTS$
<hsDestination> a destination hash table
<hsSource> a source hash table
<nStart> starting index, defaults to 1 if omitted
<nCount> counter, defaults to (length) - <nStart> is omitted
$RETURNS$
The destination hash table
$DESCRIPTION$
$EXAMPLES$
$STATUS$
R
$COMPLIANCE$
H
$PLATFORMS$
$FILES$
$SEEALSO$
$END$
*/
/* $DOC$
$TEMPLATE$
Function
$NAME$
hb_HMerge()
$CATEGORY$
API
$SUBCATEGORY$
Hash table
$ONELINER$
Merges a source hash table into a destination hash table
$SYNTAX$
hb_HMerge( <hsDestination>, <hsSource>, <bBlock>|<nPosition> ) -> <hsDestination>
$ARGUMENTS$
<hsDestination> a destination hash table
<hsSource> a source hash table
<bBlock> a code block that will be evaluated for each entry within the
source hash table; the code block will be passed the entry key, value and
position; if the code block returns a true value, the entry will be added to
the destination hash table
<nPosition> the position of an entry within the source hash table that will
be appended to the destination hash table
TODO: the source code passes either a number or HB_HASH_UNION; research this
$RETURNS$
The destination hash table with the contents of the source hash table merged
$DESCRIPTION$
$EXAMPLES$
$STATUS$
R
$COMPLIANCE$
H
$PLATFORMS$
$FILES$
$SEEALSO$
$END$
*/
/* $DOC$
$TEMPLATE$
Function
$NAME$
hb_HEval()
$CATEGORY$
API
$SUBCATEGORY$
Hash table
$ONELINER$
Evaluate a code block across the contents of a hash table
$SYNTAX$
hb_HEval( <hsTable>, <bBlock>, [<nStart>], [<nCount>] ) -> <hsTable>
$ARGUMENTS$
<hsTable> a hash table
<bBlock> code block to be evaluated
<nStart> starting index, defaults to 1 if omitted
<nCount> counter, defaults to (length) - <nStart> is omitted
$RETURNS$
The hash table
$DESCRIPTION$
The code block is evaluated for every hash table entry starting at
<nStart> for <nCount> items.
The code block is passed the entry key, value, and numeric position
$EXAMPLES$
$STATUS$
R
$COMPLIANCE$
H
$PLATFORMS$
$FILES$
$SEEALSO$
$END$
*/
/* $DOC$
$TEMPLATE$
Function
$NAME$
hb_HScan()
$CATEGORY$
API
$SUBCATEGORY$
Hash table
$ONELINER$
Scans a hash table
$SYNTAX$
hb_HScan( <hsTable>, <Value>, [<nStart>], [<nCount>, [<lExact>] ) -> nPosition
$ARGUMENTS$
<hsTable> a hash table
<Value> to be located within the hash table
<nStart> starting index, defaults to 1 if omitted
<nCount> counter, defaults to (length) - <nStart> is omitted
<lExact> logical valuye indicating whether the comparision
is to be be exact or not
$RETURNS$
The position of the located value within the hash table, or zero (0) if not found.
$DESCRIPTION$
$EXAMPLES$
$STATUS$
R
$COMPLIANCE$
H
$PLATFORMS$
$FILES$
$SEEALSO$
$END$
*/
/* $DOC$
$TEMPLATE$
Function
$NAME$
hb_HSort()
$CATEGORY$
API
$SUBCATEGORY$
Hash table
$ONELINER$
Reorganizes the internal list of the hash table to be sorted
$SYNTAX$
hb_HSort( <hsTable> ) -> <hsSortedTable>
$ARGUMENTS$
<hsTable> a hash table
$RETURNS$
The hash table sorted
TODO: is the original table altered?
$DESCRIPTION$
$EXAMPLES$
$STATUS$
R
$COMPLIANCE$
H
$PLATFORMS$
$FILES$
$SEEALSO$
$END$
*/
/* $DOC$
$TEMPLATE$
Function
$NAME$
hb_HCaseMatch()
$CATEGORY$
API
$SUBCATEGORY$
Hash table
$ONELINER$
Sets the 'case match' flag for the hash table
$SYNTAX$
hb_HCaseMatch( <hsTable>, [<lFlag>] ) -> <lPreviousFlag>
$ARGUMENTS$
<hsTable> a hash table
<lFlag> a logical value indicating to turn on or off
the 'case match' flag of the hash table
$RETURNS$
The previous value of the 'case match' flag
$DESCRIPTION$
This function returns the old flag value
$EXAMPLES$
LOCAL hsTable, lFlag
hsTable := { "one" => 1, "two" => 2 }
// turn 'case match' on for a new hash table, storing ol flag
lFlag := hb_HCaseMatch( hsTable, .T. )
$STATUS$
R
$COMPLIANCE$
H
$PLATFORMS$
$FILES$
$SEEALSO$
$END$
*/
/* $DOC$
$TEMPLATE$
Function
$NAME$
hb_HBinary()
$CATEGORY$
API
$SUBCATEGORY$
Hash table
$ONELINER$
Sets the 'binary' flag for the hash table
$SYNTAX$
hb_HBinary( <hsTable>, [<lFlag>] ) -> <lPreviousFlag>
$ARGUMENTS$
<hsTable> a hash table
<lFlag> a logical value indicating to turn on or off
the 'binary' flag of the hash table
$RETURNS$
The previous value of the 'binary' flag
$DESCRIPTION$
This function is equivalent to hb_HBinary() but it returns
the old flag value rather than the hash table
$EXAMPLES$
LOCAL hsTable, lFlag
hsTable := { "one" => 1, "two" => 2 }
// turn 'binary' on for a new hash table, storing ol flag
lFlag := hb_HBinary( hsTable, .T. )
$STATUS$
R
$COMPLIANCE$
H
$PLATFORMS$
$FILES$
$SEEALSO$
$END$
*/
/* $DOC$
$TEMPLATE$
Function
$NAME$
hb_HAutoAdd()
$CATEGORY$
API
$SUBCATEGORY$
Hash table
$ONELINER$
Sets the 'auto add' flag for the hash table
$SYNTAX$
hb_HAutoAdd( <hsTable>, [<lFlag>] ) -> <lPreviousFlag>
$ARGUMENTS$
<hsTable> a hash table
<lFlag> a logical value indicating to turn on or off
the 'auto add' flag of the hash table
$RETURNS$
The previous value of the 'auto add' flag
$DESCRIPTION$
This function is equivalent to hb_HAutoAdd() but it returns
the old flag value rather than the hash table
$EXAMPLES$
LOCAL hsTable, lFlag
hsTable := { "one" => 1, "two" => 2 }
// turn 'auto add' on for a new hash table, storing ol flag
lFlag := hb_HAutoAdd( hsTable, .T. )
$STATUS$
R
$COMPLIANCE$
H
$PLATFORMS$
$FILES$
$SEEALSO$
$END$
*/
/* $DOC$
$TEMPLATE$
Procedure
$NAME$
hb_HAllocate()
$CATEGORY$
API
$SUBCATEGORY$
Hash table
$ONELINER$
Preallocates a hash table
$SYNTAX$
hb_HAllocate( <hsTable>, <nItems> )
$ARGUMENTS$
<hsTable> a hash table
<nItems> number of items to preallocate in the hash table
$DESCRIPTION$
$EXAMPLES$
$STATUS$
R
$COMPLIANCE$
H
$PLATFORMS$
$FILES$
$SEEALSO$
$END$
*/
/* $DOC$
$TEMPLATE$
Function
$NAME$
hb_HDefault()
$CATEGORY$
API
$SUBCATEGORY$
Hash table
$ONELINER$
Returns/sets a default value for a hash table.
$SYNTAX$
hb_HDefault( <hsTable>, <DefaultValue> ) -> <OldDefaultValye>
$ARGUMENTS$
<hsTable> a hash table
<DefaultValue>
$RETURNS$
The previous default value assigned to the hash table
$DESCRIPTION$
$EXAMPLES$
$STATUS$
R
$COMPLIANCE$
H
$PLATFORMS$
$FILES$
$SEEALSO$
TODO: locate and list those methods that use this feature
$END$
*/

File diff suppressed because it is too large Load Diff

View File

@@ -854,8 +854,8 @@ Version 1.0.0 rc1 (2008-06-04) tag: 1.0.0rc1
General
=============================
- The SourceForge repository was moved from CVS to SVN
- added docs/howtorep.txt
- The source repository was moved from CVS to SVN
- added docs/howtovcs.txt
- changed pack_src.sh to extract list of files from local SVN copy using
SVN commands
- improved CYGWIN compatibility
@@ -870,15 +870,15 @@ General
who want to change the grammar files needs bison
- removed all HB_COMPAT_XHB definitions from source code - now all covered
extensions should be supported by hbcompat.ch and/or xhb library
- removed 3-rd party header files from SVN, f.e.: ace.h
- removed 3rd party header files from SVN, f.e.: ace.h
Portability
-----------
- eliminated errno access for platforms which do not have it.
- added support for PocketPC WINCE with MSVC, POCC, CeGCC and MinGWCE.
- added support for cross WinCE builds
- extended hb* scripts for cross builds: hbw* - Win32, hbce* - WinCE
- added support for creating RPMs with Harbour cross build for Win32 and
- extended hb* scripts for cross builds: hbw* - Windows, hbce* - WinCE
- added support for creating RPMs with Harbour cross build for Windows and
WinCE.
- added support for MS-Windows UNICDE builds.
- added support for shared libraries (.sl) in HPUX builds