fixes load_text
authorPeng Wu <alexepico@gmail.com>
Mon, 17 Jun 2013 05:45:56 +0000 (13:45 +0800)
committerPeng Wu <alexepico@gmail.com>
Mon, 17 Jun 2013 05:51:20 +0000 (13:51 +0800)
src/storage/chewing_large_table.cpp
src/storage/phrase_index.cpp
src/storage/phrase_large_table2.cpp

index 85246c3..2eb8658 100644 (file)
@@ -668,10 +668,11 @@ bool ChewingLargeTable::load_text(FILE * infile) {
     size_t freq;
 
     while (!feof(infile)) {
-        fscanf(infile, "%s", pinyin);
-        fscanf(infile, "%s", phrase);
-        fscanf(infile, "%u", &token);
-        fscanf(infile, "%ld", &freq);
+        int num = fscanf(infile, "%s %s %u %ld",
+                         pinyin, phrase, &token, &freq);
+
+        if (4 != num)
+            continue;
 
         if(feof(infile))
             break;
index 5f468b3..930d606 100644 (file)
@@ -519,14 +519,18 @@ bool FacadePhraseIndex::load_text(guint8 phrase_index, FILE * infile){
     char phrase[256];
     phrase_token_t token;
     size_t freq;
+
     PhraseItem * item_ptr = new PhraseItem;
     phrase_token_t cur_token = 0;
-    while ( !feof(infile)){
-        fscanf(infile, "%s", pinyin);
-        fscanf(infile, "%s", phrase);
-        fscanf(infile, "%u", &token);
-       fscanf(infile, "%ld", &freq);
-       if ( feof(infile) )
+
+    while (!feof(infile)){
+        int num = fscanf(infile, "%s %s %u %ld",
+                         pinyin, phrase, &token, &freq);
+
+        if (4 != num)
+            continue;
+
+       if (feof(infile))
            break;
 
         assert(PHRASE_INDEX_LIBRARY_INDEX(token) == phrase_index );
index fadbbe3..f7d8ae2 100644 (file)
@@ -472,13 +472,14 @@ bool PhraseLargeTable2::load_text(FILE * infile){
     phrase_token_t token;
     size_t freq;
 
-    while ( !feof(infile) ) {
-        fscanf(infile, "%s", pinyin);
-        fscanf(infile, "%s", phrase);
-        fscanf(infile, "%u", &token);
-        fscanf(infile, "%ld", &freq);
+    while (!feof(infile)) {
+        int num = fscanf(infile, "%s %s %u %ld",
+                         pinyin, phrase, &token, &freq);
 
-        if ( feof(infile) )
+        if (4 != num)
+            continue;
+
+        if (feof(infile))
             break;
 
         glong phrase_len = g_utf8_strlen(phrase, -1);