| OLD | NEW |
| 1 Index: src/hunspell/affixmgr.cxx | 1 Index: src/hunspell/affixmgr.cxx |
| 2 =================================================================== | 2 =================================================================== |
| 3 RCS file: /cvsroot/hunspell/hunspell/src/hunspell/affixmgr.cxx,v | 3 RCS file: /cvsroot/hunspell/hunspell/src/hunspell/affixmgr.cxx,v |
| 4 retrieving revision 1.41 | 4 retrieving revision 1.41 |
| 5 diff -u -r1.41 affixmgr.cxx | 5 diff -u -r1.41 affixmgr.cxx |
| 6 --- src/hunspell/affixmgr.cxx 16 Dec 2011 09:15:34 -0000 1.41 | 6 --- src/hunspell/affixmgr.cxx 16 Dec 2011 09:15:34 -0000 1.41 |
| 7 +++ src/hunspell/affixmgr.cxx» 21 Dec 2012 02:19:35 -0000 | 7 +++ src/hunspell/affixmgr.cxx» 8 Jan 2013 00:30:25 -0000 |
| 8 @@ -14,8 +14,14 @@ | 8 @@ -14,8 +14,14 @@ |
| 9 | 9 |
| 10 #include "csutil.hxx" | 10 #include "csutil.hxx" |
| 11 | 11 |
| 12 +#ifdef HUNSPELL_CHROME_CLIENT | 12 +#ifdef HUNSPELL_CHROME_CLIENT |
| 13 +AffixMgr::AffixMgr(hunspell::BDictReader* reader, HashMgr** ptr, int * md) | 13 +AffixMgr::AffixMgr(hunspell::BDictReader* reader, HashMgr** ptr, int * md) |
| 14 +{ | 14 +{ |
| 15 + bdict_reader = reader; | 15 + bdict_reader = reader; |
| 16 +#else | 16 +#else |
| 17 AffixMgr::AffixMgr(const char * affpath, HashMgr** ptr, int * md, const char *
key) | 17 AffixMgr::AffixMgr(const char * affpath, HashMgr** ptr, int * md, const char *
key) |
| (...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 188 +#endif | 188 +#endif |
| 189 break; | 189 break; |
| 190 } | 190 } |
| 191 // piece 3 - is cross product indicator | 191 // piece 3 - is cross product indicator |
| 192 Index: src/hunspell/affixmgr.hxx | 192 Index: src/hunspell/affixmgr.hxx |
| 193 =================================================================== | 193 =================================================================== |
| 194 RCS file: /cvsroot/hunspell/hunspell/src/hunspell/affixmgr.hxx,v | 194 RCS file: /cvsroot/hunspell/hunspell/src/hunspell/affixmgr.hxx,v |
| 195 retrieving revision 1.15 | 195 retrieving revision 1.15 |
| 196 diff -u -r1.15 affixmgr.hxx | 196 diff -u -r1.15 affixmgr.hxx |
| 197 --- src/hunspell/affixmgr.hxx 13 Oct 2011 13:41:54 -0000 1.15 | 197 --- src/hunspell/affixmgr.hxx 13 Oct 2011 13:41:54 -0000 1.15 |
| 198 +++ src/hunspell/affixmgr.hxx» 21 Dec 2012 02:19:35 -0000 | 198 +++ src/hunspell/affixmgr.hxx» 8 Jan 2013 00:30:25 -0000 |
| 199 @@ -18,6 +18,40 @@ | 199 @@ -18,6 +18,40 @@ |
| 200 class PfxEntry; | 200 class PfxEntry; |
| 201 class SfxEntry; | 201 class SfxEntry; |
| 202 | 202 |
| 203 +#ifdef HUNSPELL_CHROME_CLIENT | 203 +#ifdef HUNSPELL_CHROME_CLIENT |
| 204 + | 204 + |
| 205 +#include <vector> | 205 +#include <vector> |
| 206 + | 206 + |
| 207 +// This class provides an implementation of the contclasses array in AffixMgr | 207 +// This class provides an implementation of the contclasses array in AffixMgr |
| 208 +// that is normally a large static array. We should almost never need more than | 208 +// that is normally a large static array. We should almost never need more than |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 273 }; | 273 }; |
| 274 | 274 |
| 275 #endif | 275 #endif |
| 276 - | 276 - |
| 277 Index: src/hunspell/filemgr.cxx | 277 Index: src/hunspell/filemgr.cxx |
| 278 =================================================================== | 278 =================================================================== |
| 279 RCS file: /cvsroot/hunspell/hunspell/src/hunspell/filemgr.cxx,v | 279 RCS file: /cvsroot/hunspell/hunspell/src/hunspell/filemgr.cxx,v |
| 280 retrieving revision 1.5 | 280 retrieving revision 1.5 |
| 281 diff -u -r1.5 filemgr.cxx | 281 diff -u -r1.5 filemgr.cxx |
| 282 --- src/hunspell/filemgr.cxx 23 Jun 2011 09:21:50 -0000 1.5 | 282 --- src/hunspell/filemgr.cxx 23 Jun 2011 09:21:50 -0000 1.5 |
| 283 +++ src/hunspell/filemgr.cxx» 21 Dec 2012 02:19:35 -0000 | 283 +++ src/hunspell/filemgr.cxx» 8 Jan 2013 00:30:25 -0000 |
| 284 @@ -7,6 +7,32 @@ | 284 @@ -7,6 +7,32 @@ |
| 285 | 285 |
| 286 #include "filemgr.hxx" | 286 #include "filemgr.hxx" |
| 287 | 287 |
| 288 +#ifdef HUNSPELL_CHROME_CLIENT | 288 +#ifdef HUNSPELL_CHROME_CLIENT |
| 289 +#include "third_party/hunspell/google/bdict_reader.h" | 289 +#include "third_party/hunspell/google/bdict_reader.h" |
| 290 + | 290 + |
| 291 +FileMgr::FileMgr(hunspell::LineIterator* iterator) : iterator_(iterator) { | 291 +FileMgr::FileMgr(hunspell::LineIterator* iterator) : iterator_(iterator) { |
| 292 +} | 292 +} |
| 293 + | 293 + |
| (...skipping 24 matching lines...) Expand all Loading... |
| 318 int FileMgr::getlinenum() { | 318 int FileMgr::getlinenum() { |
| 319 return linenum; | 319 return linenum; |
| 320 } | 320 } |
| 321 +#endif | 321 +#endif |
| 322 Index: src/hunspell/filemgr.hxx | 322 Index: src/hunspell/filemgr.hxx |
| 323 =================================================================== | 323 =================================================================== |
| 324 RCS file: /cvsroot/hunspell/hunspell/src/hunspell/filemgr.hxx,v | 324 RCS file: /cvsroot/hunspell/hunspell/src/hunspell/filemgr.hxx,v |
| 325 retrieving revision 1.3 | 325 retrieving revision 1.3 |
| 326 diff -u -r1.3 filemgr.hxx | 326 diff -u -r1.3 filemgr.hxx |
| 327 --- src/hunspell/filemgr.hxx 15 Apr 2010 11:22:08 -0000 1.3 | 327 --- src/hunspell/filemgr.hxx 15 Apr 2010 11:22:08 -0000 1.3 |
| 328 +++ src/hunspell/filemgr.hxx» 21 Dec 2012 02:19:35 -0000 | 328 +++ src/hunspell/filemgr.hxx» 8 Jan 2013 00:30:25 -0000 |
| 329 @@ -7,6 +7,30 @@ | 329 @@ -7,6 +7,30 @@ |
| 330 #include "hunzip.hxx" | 330 #include "hunzip.hxx" |
| 331 #include <stdio.h> | 331 #include <stdio.h> |
| 332 | 332 |
| 333 +#ifdef HUNSPELL_CHROME_CLIENT | 333 +#ifdef HUNSPELL_CHROME_CLIENT |
| 334 +namespace hunspell { | 334 +namespace hunspell { |
| 335 +class LineIterator; | 335 +class LineIterator; |
| 336 +} // namespace hunspell | 336 +} // namespace hunspell |
| 337 + | 337 + |
| 338 +// A class which encapsulates operations of reading a BDICT file. | 338 +// A class which encapsulates operations of reading a BDICT file. |
| (...skipping 22 matching lines...) Expand all Loading... |
| 361 int getlinenum(); | 361 int getlinenum(); |
| 362 }; | 362 }; |
| 363 #endif | 363 #endif |
| 364 +#endif | 364 +#endif |
| 365 Index: src/hunspell/hashmgr.cxx | 365 Index: src/hunspell/hashmgr.cxx |
| 366 =================================================================== | 366 =================================================================== |
| 367 RCS file: /cvsroot/hunspell/hunspell/src/hunspell/hashmgr.cxx,v | 367 RCS file: /cvsroot/hunspell/hunspell/src/hunspell/hashmgr.cxx,v |
| 368 retrieving revision 1.12 | 368 retrieving revision 1.12 |
| 369 diff -u -r1.12 hashmgr.cxx | 369 diff -u -r1.12 hashmgr.cxx |
| 370 --- src/hunspell/hashmgr.cxx 23 Jun 2011 09:21:50 -0000 1.12 | 370 --- src/hunspell/hashmgr.cxx 23 Jun 2011 09:21:50 -0000 1.12 |
| 371 +++ src/hunspell/hashmgr.cxx» 21 Dec 2012 02:19:35 -0000 | 371 +++ src/hunspell/hashmgr.cxx» 8 Jan 2013 00:30:25 -0000 |
| 372 @@ -12,8 +12,14 @@ | 372 @@ -12,8 +12,14 @@ |
| 373 | 373 |
| 374 // build a hash table from a munched word list | 374 // build a hash table from a munched word list |
| 375 | 375 |
| 376 +#ifdef HUNSPELL_CHROME_CLIENT | 376 +#ifdef HUNSPELL_CHROME_CLIENT |
| 377 +HashMgr::HashMgr(hunspell::BDictReader* reader) | 377 +HashMgr::HashMgr(hunspell::BDictReader* reader) |
| 378 +{ | 378 +{ |
| 379 + bdict_reader = reader; | 379 + bdict_reader = reader; |
| 380 +#else | 380 +#else |
| 381 HashMgr::HashMgr(const char * tpath, const char * apath, const char * key) | 381 HashMgr::HashMgr(const char * tpath, const char * apath, const char * key) |
| (...skipping 349 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 731 + | 731 + |
| 732 int HashMgr::is_aliasf() { | 732 int HashMgr::is_aliasf() { |
| 733 return (aliasf != NULL); | 733 return (aliasf != NULL); |
| 734 } | 734 } |
| 735 Index: src/hunspell/hashmgr.hxx | 735 Index: src/hunspell/hashmgr.hxx |
| 736 =================================================================== | 736 =================================================================== |
| 737 RCS file: /cvsroot/hunspell/hunspell/src/hunspell/hashmgr.hxx,v | 737 RCS file: /cvsroot/hunspell/hunspell/src/hunspell/hashmgr.hxx,v |
| 738 retrieving revision 1.3 | 738 retrieving revision 1.3 |
| 739 diff -u -r1.3 hashmgr.hxx | 739 diff -u -r1.3 hashmgr.hxx |
| 740 --- src/hunspell/hashmgr.hxx 15 Apr 2010 11:22:08 -0000 1.3 | 740 --- src/hunspell/hashmgr.hxx 15 Apr 2010 11:22:08 -0000 1.3 |
| 741 +++ src/hunspell/hashmgr.hxx» 21 Dec 2012 02:19:35 -0000 | 741 +++ src/hunspell/hashmgr.hxx» 8 Jan 2013 00:30:25 -0000 |
| 742 @@ -8,10 +8,25 @@ | 742 @@ -8,10 +8,25 @@ |
| 743 #include "htypes.hxx" | 743 #include "htypes.hxx" |
| 744 #include "filemgr.hxx" | 744 #include "filemgr.hxx" |
| 745 | 745 |
| 746 +#ifdef HUNSPELL_CHROME_CLIENT | 746 +#ifdef HUNSPELL_CHROME_CLIENT |
| 747 +#include <string> | 747 +#include <string> |
| 748 +#include <map> | 748 +#include <map> |
| 749 + | 749 + |
| 750 +#include "base/stl_util.h" | 750 +#include "base/stl_util.h" |
| 751 +#include "base/string_piece.h" | 751 +#include "base/string_piece.h" |
| (...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 829 + | 829 + |
| 830 int add_hidden_capitalized_word(char * word, int wbl, int wcl, | 830 int add_hidden_capitalized_word(char * word, int wbl, int wcl, |
| 831 unsigned short * flags, int al, char * dp, int captype); | 831 unsigned short * flags, int al, char * dp, int captype); |
| 832 int parse_aliasm(char * line, FileMgr * af); | 832 int parse_aliasm(char * line, FileMgr * af); |
| 833 Index: src/hunspell/htypes.hxx | 833 Index: src/hunspell/htypes.hxx |
| 834 =================================================================== | 834 =================================================================== |
| 835 RCS file: /cvsroot/hunspell/hunspell/src/hunspell/htypes.hxx,v | 835 RCS file: /cvsroot/hunspell/hunspell/src/hunspell/htypes.hxx,v |
| 836 retrieving revision 1.3 | 836 retrieving revision 1.3 |
| 837 diff -u -r1.3 htypes.hxx | 837 diff -u -r1.3 htypes.hxx |
| 838 --- src/hunspell/htypes.hxx 6 Sep 2010 07:58:53 -0000 1.3 | 838 --- src/hunspell/htypes.hxx 6 Sep 2010 07:58:53 -0000 1.3 |
| 839 +++ src/hunspell/htypes.hxx» 21 Dec 2012 02:19:35 -0000 | 839 +++ src/hunspell/htypes.hxx» 8 Jan 2013 00:30:25 -0000 |
| 840 @@ -1,6 +1,16 @@ | 840 @@ -1,6 +1,16 @@ |
| 841 #ifndef _HTYPES_HXX_ | 841 #ifndef _HTYPES_HXX_ |
| 842 #define _HTYPES_HXX_ | 842 #define _HTYPES_HXX_ |
| 843 | 843 |
| 844 +#ifdef HUNSPELL_CHROME_CLIENT | 844 +#ifdef HUNSPELL_CHROME_CLIENT |
| 845 +// This is a workaround for preventing errors in parsing Turkish BDICs, which | 845 +// This is a workaround for preventing errors in parsing Turkish BDICs, which |
| 846 +// contain very long AF lines (~ 12,000 chars). | 846 +// contain very long AF lines (~ 12,000 chars). |
| 847 +// TODO(hbono) change the HashMgr::parse_aliasf() function to be able to parse | 847 +// TODO(hbono) change the HashMgr::parse_aliasf() function to be able to parse |
| 848 +// longer lines than MAXDELEN. | 848 +// longer lines than MAXDELEN. |
| 849 +#define MAXDELEN (8192 * 2) | 849 +#define MAXDELEN (8192 * 2) |
| 850 +#else | 850 +#else |
| 851 +#define MAXDELEN 8192 | 851 +#define MAXDELEN 8192 |
| 852 +#endif // HUNSPELL_CHROME_CLIENT | 852 +#endif // HUNSPELL_CHROME_CLIENT |
| 853 + | 853 + |
| 854 #define ROTATE_LEN 5 | 854 #define ROTATE_LEN 5 |
| 855 | 855 |
| 856 #define ROTATE(v,q) \ | 856 #define ROTATE(v,q) \ |
| 857 Index: src/hunspell/hunspell.cxx | 857 Index: src/hunspell/hunspell.cxx |
| 858 =================================================================== | 858 =================================================================== |
| 859 RCS file: /cvsroot/hunspell/hunspell/src/hunspell/hunspell.cxx,v | 859 RCS file: /cvsroot/hunspell/hunspell/src/hunspell/hunspell.cxx,v |
| 860 retrieving revision 1.29 | 860 retrieving revision 1.29 |
| 861 diff -u -r1.29 hunspell.cxx | 861 diff -u -r1.29 hunspell.cxx |
| 862 --- src/hunspell/hunspell.cxx 23 Jun 2011 09:21:50 -0000 1.29 | 862 --- src/hunspell/hunspell.cxx 23 Jun 2011 09:21:50 -0000 1.29 |
| 863 +++ src/hunspell/hunspell.cxx» 21 Dec 2012 02:19:35 -0000 | 863 +++ src/hunspell/hunspell.cxx» 8 Jan 2013 00:30:25 -0000 |
| 864 @@ -7,20 +7,37 @@ | 864 @@ -7,20 +7,37 @@ |
| 865 | 865 |
| 866 #include "hunspell.hxx" | 866 #include "hunspell.hxx" |
| 867 #include "hunspell.h" | 867 #include "hunspell.h" |
| 868 +#ifndef HUNSPELL_CHROME_CLIENT | 868 +#ifndef HUNSPELL_CHROME_CLIENT |
| 869 #ifndef MOZILLA_CLIENT | 869 #ifndef MOZILLA_CLIENT |
| 870 # include "config.h" | 870 # include "config.h" |
| 871 #endif | 871 #endif |
| 872 +#endif | 872 +#endif |
| 873 #include "csutil.hxx" | 873 #include "csutil.hxx" |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 937 int Hunspell::add_dic(const char * dpath, const char * key) { | 937 int Hunspell::add_dic(const char * dpath, const char * key) { |
| 938 if (maxdic == MAXDIC || !affixpath) return 1; | 938 if (maxdic == MAXDIC || !affixpath) return 1; |
| 939 @@ -70,6 +98,7 @@ | 939 @@ -70,6 +98,7 @@ |
| 940 if (pHMgr[maxdic]) maxdic++; else return 1; | 940 if (pHMgr[maxdic]) maxdic++; else return 1; |
| 941 return 0; | 941 return 0; |
| 942 } | 942 } |
| 943 +#endif | 943 +#endif |
| 944 | 944 |
| 945 // make a copy of src at destination while removing all leading | 945 // make a copy of src at destination while removing all leading |
| 946 // blanks and removing any trailing periods after recording | 946 // blanks and removing any trailing periods after recording |
| 947 @@ -108,7 +137,9 @@ | 947 @@ -322,6 +351,9 @@ |
| 948 if (utf8) { | |
| 949 *nc = u8_u16(dest_utf, MAXWORDLEN, dest); | |
| 950 // don't check too long words | |
| 951 - if (*nc >= MAXWORDLEN) return 0; | |
| 952 + // TODO(rouslan): Remove the interim change below when this patch lands: | |
| 953 + // http://sf.net/tracker/?func=detail&aid=3595024&group_id=143754&atid=75
6395. | |
| 954 + if (*nc >= MAXWORDLEN - 1) return 0; | |
| 955 if (*nc == -1) { // big Unicode character (non BMP area) | |
| 956 *pcaptype = NOCAP; | |
| 957 return nl; | |
| 958 @@ -322,6 +353,9 @@ | |
| 959 | 948 |
| 960 int Hunspell::spell(const char * word, int * info, char ** root) | 949 int Hunspell::spell(const char * word, int * info, char ** root) |
| 961 { | 950 { |
| 962 +#ifdef HUNSPELL_CHROME_CLIENT | 951 +#ifdef HUNSPELL_CHROME_CLIENT |
| 963 + if (pHMgr) pHMgr[0]->EmptyHentryCache(); | 952 + if (pHMgr) pHMgr[0]->EmptyHentryCache(); |
| 964 +#endif | 953 +#endif |
| 965 struct hentry * rv=NULL; | 954 struct hentry * rv=NULL; |
| 966 // need larger vector. For example, Turkish capital letter I converted a | 955 // need larger vector. For example, Turkish capital letter I converted a |
| 967 // 2-byte UTF-8 character (dotless i) by mkallsmall. | 956 // 2-byte UTF-8 character (dotless i) by mkallsmall. |
| 968 @@ -586,6 +620,13 @@ | 957 @@ -586,6 +618,13 @@ |
| 969 if (!len) | 958 if (!len) |
| 970 return NULL; | 959 return NULL; |
| 971 | 960 |
| 972 +#ifdef HUNSPELL_CHROME_CLIENT | 961 +#ifdef HUNSPELL_CHROME_CLIENT |
| 973 + // We need to check if the word length is valid to make coverity (Event | 962 + // We need to check if the word length is valid to make coverity (Event |
| 974 + // fixed_size_dest: Possible overrun of N byte fixed size buffer) happy. | 963 + // fixed_size_dest: Possible overrun of N byte fixed size buffer) happy. |
| 975 + if ((utf8 && strlen(word) >= MAXWORDUTF8LEN) || (!utf8 && strlen(word) >= MAX
WORDLEN)) | 964 + if ((utf8 && strlen(word) >= MAXWORDUTF8LEN) || (!utf8 && strlen(word) >= MAX
WORDLEN)) |
| 976 + return NULL; | 965 + return NULL; |
| 977 +#endif | 966 +#endif |
| 978 + | 967 + |
| 979 // word reversing wrapper for complex prefixes | 968 // word reversing wrapper for complex prefixes |
| 980 if (complexprefixes) { | 969 if (complexprefixes) { |
| 981 if (word != w2) { | 970 if (word != w2) { |
| 982 @@ -675,6 +716,9 @@ | 971 @@ -675,6 +714,9 @@ |
| 983 | 972 |
| 984 int Hunspell::suggest(char*** slst, const char * word) | 973 int Hunspell::suggest(char*** slst, const char * word) |
| 985 { | 974 { |
| 986 +#ifdef HUNSPELL_CHROME_CLIENT | 975 +#ifdef HUNSPELL_CHROME_CLIENT |
| 987 + if (pHMgr) pHMgr[0]->EmptyHentryCache(); | 976 + if (pHMgr) pHMgr[0]->EmptyHentryCache(); |
| 988 +#endif | 977 +#endif |
| 989 int onlycmpdsug = 0; | 978 int onlycmpdsug = 0; |
| 990 char cw[MAXWORDUTF8LEN]; | 979 char cw[MAXWORDUTF8LEN]; |
| 991 char wspace[MAXWORDUTF8LEN]; | 980 char wspace[MAXWORDUTF8LEN]; |
| 992 @@ -1921,13 +1965,21 @@ | 981 @@ -1921,13 +1963,21 @@ |
| 993 | 982 |
| 994 Hunhandle *Hunspell_create(const char * affpath, const char * dpath) | 983 Hunhandle *Hunspell_create(const char * affpath, const char * dpath) |
| 995 { | 984 { |
| 996 +#ifdef HUNSPELL_CHROME_CLIENT | 985 +#ifdef HUNSPELL_CHROME_CLIENT |
| 997 + return NULL; | 986 + return NULL; |
| 998 +#else | 987 +#else |
| 999 return (Hunhandle*)(new Hunspell(affpath, dpath)); | 988 return (Hunhandle*)(new Hunspell(affpath, dpath)); |
| 1000 +#endif | 989 +#endif |
| 1001 } | 990 } |
| 1002 | 991 |
| 1003 Hunhandle *Hunspell_create_key(const char * affpath, const char * dpath, | 992 Hunhandle *Hunspell_create_key(const char * affpath, const char * dpath, |
| 1004 const char * key) | 993 const char * key) |
| 1005 { | 994 { |
| 1006 +#ifdef HUNSPELL_CHROME_CLIENT | 995 +#ifdef HUNSPELL_CHROME_CLIENT |
| 1007 + return NULL; | 996 + return NULL; |
| 1008 +#else | 997 +#else |
| 1009 return (Hunhandle*)(new Hunspell(affpath, dpath, key)); | 998 return (Hunhandle*)(new Hunspell(affpath, dpath, key)); |
| 1010 +#endif | 999 +#endif |
| 1011 } | 1000 } |
| 1012 | 1001 |
| 1013 void Hunspell_destroy(Hunhandle *pHunspell) | 1002 void Hunspell_destroy(Hunhandle *pHunspell) |
| 1014 Index: src/hunspell/hunspell.hxx | 1003 Index: src/hunspell/hunspell.hxx |
| 1015 =================================================================== | 1004 =================================================================== |
| 1016 RCS file: /cvsroot/hunspell/hunspell/src/hunspell/hunspell.hxx,v | 1005 RCS file: /cvsroot/hunspell/hunspell/src/hunspell/hunspell.hxx,v |
| 1017 retrieving revision 1.6 | 1006 retrieving revision 1.6 |
| 1018 diff -u -r1.6 hunspell.hxx | 1007 diff -u -r1.6 hunspell.hxx |
| 1019 --- src/hunspell/hunspell.hxx 21 Jan 2011 17:30:41 -0000 1.6 | 1008 --- src/hunspell/hunspell.hxx 21 Jan 2011 17:30:41 -0000 1.6 |
| 1020 +++ src/hunspell/hunspell.hxx» 21 Dec 2012 02:19:35 -0000 | 1009 +++ src/hunspell/hunspell.hxx» 8 Jan 2013 00:30:25 -0000 |
| 1021 @@ -5,6 +5,10 @@ | 1010 @@ -5,6 +5,10 @@ |
| 1022 #include "suggestmgr.hxx" | 1011 #include "suggestmgr.hxx" |
| 1023 #include "langnum.hxx" | 1012 #include "langnum.hxx" |
| 1024 | 1013 |
| 1025 +#ifdef HUNSPELL_CHROME_CLIENT | 1014 +#ifdef HUNSPELL_CHROME_CLIENT |
| 1026 +#include "third_party/hunspell/google/bdict_reader.h" | 1015 +#include "third_party/hunspell/google/bdict_reader.h" |
| 1027 +#endif | 1016 +#endif |
| 1028 + | 1017 + |
| 1029 #define SPELL_XML "<?xml?>" | 1018 #define SPELL_XML "<?xml?>" |
| 1030 | 1019 |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1067 +#endif | 1056 +#endif |
| 1068 | 1057 |
| 1069 /* spell(word) - spellcheck word | 1058 /* spell(word) - spellcheck word |
| 1070 * output: 0 = bad word, not 0 = good word | 1059 * output: 0 = bad word, not 0 = good word |
| 1071 Index: src/hunspell/replist.hxx | 1060 Index: src/hunspell/replist.hxx |
| 1072 =================================================================== | 1061 =================================================================== |
| 1073 RCS file: /cvsroot/hunspell/hunspell/src/hunspell/replist.hxx,v | 1062 RCS file: /cvsroot/hunspell/hunspell/src/hunspell/replist.hxx,v |
| 1074 retrieving revision 1.2 | 1063 retrieving revision 1.2 |
| 1075 diff -u -r1.2 replist.hxx | 1064 diff -u -r1.2 replist.hxx |
| 1076 --- src/hunspell/replist.hxx 15 Apr 2010 11:22:09 -0000 1.2 | 1065 --- src/hunspell/replist.hxx 15 Apr 2010 11:22:09 -0000 1.2 |
| 1077 +++ src/hunspell/replist.hxx» 21 Dec 2012 02:19:35 -0000 | 1066 +++ src/hunspell/replist.hxx» 8 Jan 2013 00:30:25 -0000 |
| 1078 @@ -2,6 +2,12 @@ | 1067 @@ -2,6 +2,12 @@ |
| 1079 #ifndef _REPLIST_HXX_ | 1068 #ifndef _REPLIST_HXX_ |
| 1080 #define _REPLIST_HXX_ | 1069 #define _REPLIST_HXX_ |
| 1081 | 1070 |
| 1082 +#ifdef HUNSPELL_CHROME_CLIENT | 1071 +#ifdef HUNSPELL_CHROME_CLIENT |
| 1083 +// Compilation issues in spellchecker.cc think near is a macro, therefore | 1072 +// Compilation issues in spellchecker.cc think near is a macro, therefore |
| 1084 +// removing it here solves that problem. | 1073 +// removing it here solves that problem. |
| 1085 +#undef near | 1074 +#undef near |
| 1086 +#endif | 1075 +#endif |
| 1087 + | 1076 + |
| 1088 #include "hunvisapi.h" | 1077 #include "hunvisapi.h" |
| 1089 | 1078 |
| 1090 #include "w_char.hxx" | 1079 #include "w_char.hxx" |
| 1091 Index: src/hunspell/suggestmgr.cxx | 1080 Index: src/hunspell/suggestmgr.cxx |
| 1092 =================================================================== | 1081 =================================================================== |
| 1093 RCS file: /cvsroot/hunspell/hunspell/src/hunspell/suggestmgr.cxx,v | 1082 RCS file: /cvsroot/hunspell/hunspell/src/hunspell/suggestmgr.cxx,v |
| 1094 retrieving revision 1.24 | 1083 retrieving revision 1.24 |
| 1095 diff -u -r1.24 suggestmgr.cxx | 1084 diff -u -r1.24 suggestmgr.cxx |
| 1096 --- src/hunspell/suggestmgr.cxx 14 Feb 2011 21:47:24 -0000 1.24 | 1085 --- src/hunspell/suggestmgr.cxx 14 Feb 2011 21:47:24 -0000 1.24 |
| 1097 +++ src/hunspell/suggestmgr.cxx»21 Dec 2012 02:19:35 -0000 | 1086 +++ src/hunspell/suggestmgr.cxx»8 Jan 2013 00:30:26 -0000 |
| 1098 @@ -12,9 +12,110 @@ | 1087 @@ -12,9 +12,110 @@ |
| 1099 | 1088 |
| 1100 const w_char W_VLINE = { '\0', '|' }; | 1089 const w_char W_VLINE = { '\0', '|' }; |
| 1101 | 1090 |
| 1102 +#ifdef HUNSPELL_CHROME_CLIENT | 1091 +#ifdef HUNSPELL_CHROME_CLIENT |
| 1103 +namespace { | 1092 +namespace { |
| 1104 +// A simple class which creates temporary hentry objects which are available | 1093 +// A simple class which creates temporary hentry objects which are available |
| 1105 +// only in a scope. To conceal memory operations from SuggestMgr functions, | 1094 +// only in a scope. To conceal memory operations from SuggestMgr functions, |
| 1106 +// this object automatically deletes all hentry objects created through | 1095 +// this object automatically deletes all hentry objects created through |
| 1107 +// CreateScopedHashEntry() calls in its destructor. So, the following snippet | 1096 +// CreateScopedHashEntry() calls in its destructor. So, the following snippet |
| (...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1257 struct replentry* reptable = pAMgr->get_reptable(); | 1246 struct replentry* reptable = pAMgr->get_reptable(); |
| 1258 if (reptable==NULL) return ns; | 1247 if (reptable==NULL) return ns; |
| 1259 @@ -448,6 +592,7 @@ | 1248 @@ -448,6 +592,7 @@ |
| 1260 r++; // search for the next letter | 1249 r++; // search for the next letter |
| 1261 } | 1250 } |
| 1262 } | 1251 } |
| 1263 +#endif | 1252 +#endif |
| 1264 return ns; | 1253 return ns; |
| 1265 } | 1254 } |
| 1266 | 1255 |
| 1267 @@ -1057,6 +1202,9 @@ | 1256 @@ -678,7 +823,9 @@ |
| 1257 // error is missing a letter it needs |
| 1258 int SuggestMgr::forgotchar(char ** wlst, const char * word, int ns, int cpdsugg
est) |
| 1259 { |
| 1260 - char candidate[MAXSWUTF8L]; |
| 1261 + // TODO(rouslan): Remove the interim change below when this patch lands: |
| 1262 + // http://sf.net/tracker/?func=detail&aid=3595024&group_id=143754&atid=75639
5 |
| 1263 + char candidate[MAXSWUTF8L + 4]; |
| 1264 char * p; |
| 1265 clock_t timelimit = clock(); |
| 1266 int timer = MINTIMER; |
| 1267 @@ -700,8 +847,10 @@ |
| 1268 // error is missing a letter it needs |
| 1269 int SuggestMgr::forgotchar_utf(char ** wlst, const w_char * word, int wl, int n
s, int cpdsuggest) |
| 1270 { |
| 1271 - w_char candidate_utf[MAXSWL]; |
| 1272 - char candidate[MAXSWUTF8L]; |
| 1273 + // TODO(rouslan): Remove the interim change below when this patch lands: |
| 1274 + // http://sf.net/tracker/?func=detail&aid=3595024&group_id=143754&atid=75639
5 |
| 1275 + w_char candidate_utf[MAXSWL + 1]; |
| 1276 + char candidate[MAXSWUTF8L + 4]; |
| 1277 w_char * p; |
| 1278 clock_t timelimit = clock(); |
| 1279 int timer = MINTIMER; |
| 1280 @@ -1057,6 +1206,9 @@ |
| 1268 | 1281 |
| 1269 struct hentry* hp = NULL; | 1282 struct hentry* hp = NULL; |
| 1270 int col = -1; | 1283 int col = -1; |
| 1271 +#ifdef HUNSPELL_CHROME_CLIENT | 1284 +#ifdef HUNSPELL_CHROME_CLIENT |
| 1272 + ScopedHashEntryFactory hash_entry_factory; | 1285 + ScopedHashEntryFactory hash_entry_factory; |
| 1273 +#endif | 1286 +#endif |
| 1274 phonetable * ph = (pAMgr) ? pAMgr->get_phonetable() : NULL; | 1287 phonetable * ph = (pAMgr) ? pAMgr->get_phonetable() : NULL; |
| 1275 char target[MAXSWUTF8L]; | 1288 char target[MAXSWUTF8L]; |
| 1276 char candidate[MAXSWUTF8L]; | 1289 char candidate[MAXSWUTF8L]; |
| 1277 @@ -1115,7 +1263,11 @@ | 1290 @@ -1115,7 +1267,11 @@ |
| 1278 | 1291 |
| 1279 if (sc > scores[lp]) { | 1292 if (sc > scores[lp]) { |
| 1280 scores[lp] = sc; | 1293 scores[lp] = sc; |
| 1281 +#ifdef HUNSPELL_CHROME_CLIENT | 1294 +#ifdef HUNSPELL_CHROME_CLIENT |
| 1282 + roots[lp] = hash_entry_factory.CreateScopedHashEntry(lp, hp); | 1295 + roots[lp] = hash_entry_factory.CreateScopedHashEntry(lp, hp); |
| 1283 +#else | 1296 +#else |
| 1284 roots[lp] = hp; | 1297 roots[lp] = hp; |
| 1285 +#endif | 1298 +#endif |
| 1286 lval = sc; | 1299 lval = sc; |
| 1287 for (j=0; j < MAX_ROOTS; j++) | 1300 for (j=0; j < MAX_ROOTS; j++) |
| 1288 if (scores[j] < lval) { | 1301 if (scores[j] < lval) { |
| 1289 Index: src/hunspell/suggestmgr.hxx | 1302 Index: src/hunspell/suggestmgr.hxx |
| 1290 =================================================================== | 1303 =================================================================== |
| 1291 RCS file: /cvsroot/hunspell/hunspell/src/hunspell/suggestmgr.hxx,v | 1304 RCS file: /cvsroot/hunspell/hunspell/src/hunspell/suggestmgr.hxx,v |
| 1292 retrieving revision 1.5 | 1305 retrieving revision 1.5 |
| 1293 diff -u -r1.5 suggestmgr.hxx | 1306 diff -u -r1.5 suggestmgr.hxx |
| 1294 --- src/hunspell/suggestmgr.hxx 21 Jan 2011 22:10:24 -0000 1.5 | 1307 --- src/hunspell/suggestmgr.hxx 21 Jan 2011 22:10:24 -0000 1.5 |
| 1295 +++ src/hunspell/suggestmgr.hxx»21 Dec 2012 02:19:35 -0000 | 1308 +++ src/hunspell/suggestmgr.hxx»8 Jan 2013 00:30:26 -0000 |
| 1296 @@ -52,7 +52,11 @@ | 1309 @@ -52,7 +52,11 @@ |
| 1297 | 1310 |
| 1298 | 1311 |
| 1299 public: | 1312 public: |
| 1300 +#ifdef HUNSPELL_CHROME_CLIENT | 1313 +#ifdef HUNSPELL_CHROME_CLIENT |
| 1301 + SuggestMgr(hunspell::BDictReader* reader, const char * tryme, int maxn, Affix
Mgr *aptr); | 1314 + SuggestMgr(hunspell::BDictReader* reader, const char * tryme, int maxn, Affix
Mgr *aptr); |
| 1302 +#else | 1315 +#else |
| 1303 SuggestMgr(const char * tryme, int maxn, AffixMgr *aptr); | 1316 SuggestMgr(const char * tryme, int maxn, AffixMgr *aptr); |
| 1304 +#endif | 1317 +#endif |
| 1305 ~SuggestMgr(); | 1318 ~SuggestMgr(); |
| 1306 | 1319 |
| 1307 int suggest(char*** slst, const char * word, int nsug, int * onlycmpdsug); | 1320 int suggest(char*** slst, const char * word, int nsug, int * onlycmpdsug); |
| 1308 @@ -66,6 +70,10 @@ | 1321 @@ -66,6 +70,10 @@ |
| 1309 char * suggest_morph_for_spelling_error(const char * word); | 1322 char * suggest_morph_for_spelling_error(const char * word); |
| 1310 | 1323 |
| 1311 private: | 1324 private: |
| 1312 +#ifdef HUNSPELL_CHROME_CLIENT | 1325 +#ifdef HUNSPELL_CHROME_CLIENT |
| 1313 + // Not owned by us, owned by the Hunspell object. | 1326 + // Not owned by us, owned by the Hunspell object. |
| 1314 + hunspell::BDictReader* bdict_reader; | 1327 + hunspell::BDictReader* bdict_reader; |
| 1315 +#endif | 1328 +#endif |
| 1316 int testsug(char** wlst, const char * candidate, int wl, int ns, int cpdsugg
est, | 1329 int testsug(char** wlst, const char * candidate, int wl, int ns, int cpdsugg
est, |
| 1317 int * timer, clock_t * timelimit); | 1330 int * timer, clock_t * timelimit); |
| 1318 int checkword(const char *, int, int, int *, clock_t *); | 1331 int checkword(const char *, int, int, int *, clock_t *); |
| OLD | NEW |