Exemple #1
0
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;
        }
    }
}
Exemple #2
0
/* 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;
}