void load_news( ) { FILE *fpin = FileOpen( NEWS_FILE, "r" ); if ( fpin == NULL ) { bug( "Cannot open news.dat for reading." ); perror( NEWS_FILE ); return; } for ( ;; ) { char letter; char *word; NEWS_DATA *news; letter = fread_letter( fpin ); if ( letter == '*' ) { fread_to_eol( fpin ); continue; } if ( letter != '#' ) { bug( "Load_news: # not found." ); break; } word = ( feof( fpin ) ? ( char * ) "End" : fread_word( fpin ) ); if ( !str_cmp( word, "News" ) ) { news = fread_news( fpin ); if ( news != NULL ) LINK( news, first_news, last_news, next, prev ); } else if ( !str_cmp( word, "HTML" ) ) { USE_HTML_NEWS = fread_number( fpin ) == 1 ? TRUE : FALSE; } else if ( !str_cmp( word, "End" ) ) { FileClose( fpin ); break; } else { bug( "Load_news: bad section encountered." ); break; } } }
/* load the linked list from disk */ void load_news( void ) { FILE *fp = NULL; char filename[256]; sprintf( filename, "%s%s", SYSTEM_DIR, NEWS_FILE ); if( ( fp = fopen( filename, "r" ) ) == NULL ) { perror( "load_news(): cannot open file" ); return; } for( ;; ) { NEWS_TYPE *type = NULL; NEWS *news = NULL; char *word; char letter; letter = fread_letter( fp ); if( letter == '*' ) { fread_to_eol( fp ); continue; } if( letter != '#' ) { bug( "load_news(): # not found" ); break; } word = fread_word( fp ); if( !str_cmp( word, "NEWS" ) ) { CREATE( news, NEWS, 1 ); news->type = -1; fread_news( news, fp ); link_news_to_type( news ); continue; } /* * added for new indexing - 5/5/02 */ else if( !str_cmp( word, "NEWSTYPE" ) ) { CREATE( type, NEWS_TYPE, 1 ); fread_news_type( type, fp ); LINK( type, first_news_type, last_news_type, next, prev ); continue; } if( !str_cmp( word, "END" ) ) break; else { bug( "load_news(): unknown section %s", word ); continue; } } fclose( fp ); fp = NULL; renumber_news( ); return; }