| Index: third_party/hunspell/google/bdict.h
|
| ===================================================================
|
| --- third_party/hunspell/google/bdict.h (revision 65173)
|
| +++ third_party/hunspell/google/bdict.h (working copy)
|
| @@ -4,14 +4,16 @@
|
| #define CHROME_THIRD_PARTY_HUNSPELL_GOOGLE_BDICT_H__
|
|
|
| #include "base/basictypes.h"
|
| +#include "base/md5.h"
|
|
|
| // BDict (binary dictionary) format. All offsets are little endian.
|
| //
|
| -// Header (12 bytes).
|
| +// Header (28 bytes).
|
| // "BDic" Signature (4 bytes)
|
| // Version (little endian 4 bytes)
|
| // Absolute offset in file of the aff info. (4 bytes)
|
| // Absolute offset in file of the dic table. (4 bytes)
|
| +// (Added by v2.0) MD5 checksum of the aff info and the dic table. (16 bytes)
|
| //
|
| // Aff information:
|
| // Absolute offset in file of the affix group table (4 bytes)
|
| @@ -21,10 +23,10 @@
|
| //
|
| // The data between the aff header and the affix rules table is the comment
|
| // from the beginning of the .aff file which often contains copyrights, etc.
|
| -//
|
| +//
|
| // Affix group table:
|
| // Array of NULL terminated strings. It will end in a double-NULL.
|
| -//
|
| +//
|
| // Affix rules table:
|
| // List of LF termianted lines. NULL terminated.
|
| //
|
| @@ -37,8 +39,8 @@
|
| //
|
| // Other rules table:
|
| // List of LF termianted lines. NULL terminated.
|
| -//
|
| //
|
| +//
|
| // Dic table. This stores the .dic file which contains the words in the
|
| // dictionary, and indices for each one that indicate a set of suffixes or
|
| // prefixes that can be applied. We store it in a trie to save space. It
|
| @@ -99,8 +101,8 @@
|
| // File header.
|
| enum { SIGNATURE = 0x63694442 };
|
| enum {
|
| - MAJOR_VERSION = 1,
|
| - MINOR_VERSION = 1
|
| + MAJOR_VERSION = 2,
|
| + MINOR_VERSION = 0
|
| };
|
| struct Header {
|
| uint32 signature;
|
| @@ -112,6 +114,9 @@
|
|
|
| uint32 aff_offset; // Offset of the aff data.
|
| uint32 dic_offset; // Offset of the dic data.
|
| +
|
| + // Added by version 2.0.
|
| + MD5Digest digest; // MD5 digest of the aff data and the dic data.
|
| };
|
|
|
| // AFF section ===============================================================
|
| @@ -191,6 +196,10 @@
|
|
|
| // The low 4 bits of the list ID byte are the count.
|
| enum { LIST_NODE_COUNT_MASK = 0xF }; // 00001111
|
| +
|
| + // Verifies the specified BDICT is sane. This function checks the BDICT header
|
| + // and compares the MD5 digest of the data with the one in the header.
|
| + static bool Verify(const char* bdict_data, size_t bdict_length);
|
| };
|
|
|
| #pragma pack(pop)
|
|
|