2014-11-04 01:54 UTC+0100 Przemyslaw Czerpak (druzus/at/poczta.onet.pl)

* ChangeLog.txt
  * doc/xhb-diff.txt
    ! typos

  * doc/clipper.txt
    ! removed completely false information about 'LIST &cMacro'
    * updated information about FOR EACH
    ; in general information in this file are outdated and does not
      correctly describe current Harbour behavior. I strongly suggest
      to not use it in any other documentation. In some spare time
      I'll update this file or remove.

  * doc/cmpopt.txt
    + added information about unsupported by Clipper syntax extension:
         iif( <expr1>, <expr2>, <expr3> ) <op>= <expr4>

  * include/hbrddnsx.h
    * minor modification in comment

  * src/macro/macrolex.c
    * accept unconditionally hash 'key => value' operator

  * src/rdd/dbfnsx/dbfnsx1.c
    ! fixed very bad bug in leaf key compression. This problem could be
      exploited by keys containing containing CHR( 255 ) in encoded keys
      just before trailing empty key characters.
      This bug could cause index corruption.
    * use hb_xgrabz()
    * formatting
This commit is contained in:
Przemysław Czerpak
2014-11-04 01:54:04 +01:00
parent 67722a56d0
commit ff1288dc3f
7 changed files with 149 additions and 112 deletions

View File

@@ -335,11 +335,11 @@ typedef struct _NSXLEAFKEY
* if Size == n + 1 then key is fully duplicated
*/
HB_UCHAR DupCount[1]; /* number of bytes from previous key */
HB_UCHAR KeyData[l]; /* rest of key value with RLE compression:
HB_UCHAR KeyData[m]; /* rest of key value with RLE compression:
* FF xx yy => Replicate(yy, xx)
* FF 01 => FF
* l = Size - n - 2
* if l == KEY_SIZE - DupCount then key value
* m = Size - n - 2
* if m == KEY_SIZE - DupCount then key value
* is stored as raw data and can be copied as is
* if after decompression size of key value is
* smaller then KEY_SIZE then rest if filled with