File bnc528583.patch of Package novel-pinyin
diff --git a/utils/storage/gen_pinyin_table.cpp b/utils/storage/gen_pinyin_table.cpp
index 110fa18..38e6a27 100644
--- a/utils/storage/gen_pinyin_table.cpp
+++ b/utils/storage/gen_pinyin_table.cpp
@@ -92,6 +92,10 @@ void feed_file ( const char * filename){
char phrase[1024], pinyin[1024];
guint32 n_freq;
FILE * infile = fopen(filename, "r");
+ if ( NULL == infile ){
+ fprintf(stderr, "Can't open file %s.\n", filename);
+ exit(1);
+ }
while ( !feof(infile)){
fscanf(infile, "%s", phrase);
fscanf(infile, "%s", pinyin);
@@ -100,6 +104,7 @@ void feed_file ( const char * filename){
break;
feed_line(phrase, pinyin, n_freq);
}
+ fclose(infile);
}
void feed_line (const char * phrase, const char * pinyin, const guint32 freq){
@@ -200,6 +205,10 @@ void sort_item_array(){
void gen_phrase_file(const char * outfilename, int phrase_index){
FILE * outfile = fopen(outfilename, "w");
+ if (NULL == outfile ) {
+ fprintf(stderr, "Can't write file %s.\n", outfilename);
+ exit(1);
+ }
phrase_token_t token = 1;
char pinyin_buffer[4096];
//phrase length
@@ -235,4 +244,5 @@ void gen_phrase_file(const char * outfilename, int phrase_index){
token++;
}
}
+ fclose(outfile);
}