Mercurial > noffle
comparison src/content.c @ 49:5ecb646acf97 noffle
[svn] Article numbering bug fixes
| author | bears |
|---|---|
| date | Sat, 06 May 2000 17:56:50 +0100 |
| parents | 32ba1198c6fa |
| children | 125d79c9e586 |
comparison
equal
deleted
inserted
replaced
| 48:21d3102dbc37 | 49:5ecb646acf97 |
|---|---|
| 1 /* | 1 /* |
| 2 content.c | 2 content.c |
| 3 | 3 |
| 4 $Id: content.c 51 2000-05-05 23:49:38Z uh1763 $ | 4 $Id: content.c 55 2000-05-06 16:56:50Z bears $ |
| 5 */ | 5 */ |
| 6 | 6 |
| 7 #if HAVE_CONFIG_H | 7 #if HAVE_CONFIG_H |
| 8 #include <config.h> | 8 #include <config.h> |
| 9 #endif | 9 #endif |
| 171 Bool anythingWritten; | 171 Bool anythingWritten; |
| 172 int i; | 172 int i; |
| 173 FILE *f; | 173 FILE *f; |
| 174 const Over *ov; | 174 const Over *ov; |
| 175 | 175 |
| 176 | |
| 177 /* Move the first article no. to the first active article */ | |
| 178 while ( ! Cont_validNumb( cont.first ) && cont.first <= cont.last ) | |
| 179 ++cont.first; | |
| 180 | |
| 181 /* Save the overview */ | 176 /* Save the overview */ |
| 182 if ( ! ( f = fopen( cont.file, "w" ) ) ) | 177 if ( ! ( f = fopen( cont.file, "w" ) ) ) |
| 183 { | 178 { |
| 184 Log_err( "Could not open %s for writing", cont.file ); | 179 Log_err( "Could not open %s for writing", cont.file ); |
| 185 return; | 180 return; |
| 186 } | 181 } |
| 187 Log_dbg( "Writing %s (%lu)", cont.file, cont.size ); | 182 Log_dbg( "Writing %s (%lu)", cont.file, cont.size ); |
| 188 anythingWritten = FALSE; | 183 anythingWritten = FALSE; |
| 184 cont.first = -1; | |
| 189 for ( i = 0; i < cont.size; ++i ) | 185 for ( i = 0; i < cont.size; ++i ) |
| 190 { | 186 { |
| 191 if ( ( ov = cont.elem[ i ] ) ) | 187 if ( ( ov = cont.elem[ i ] ) ) |
| 192 { | 188 { |
| 193 if ( ! Pseudo_isGeneralInfo( Ov_msgId( ov ) ) ) | 189 if ( ! Pseudo_isGeneralInfo( Ov_msgId( ov ) ) ) |
| 196 { | 192 { |
| 197 Log_err( "Writing of overview line failed" ); | 193 Log_err( "Writing of overview line failed" ); |
| 198 break; | 194 break; |
| 199 } | 195 } |
| 200 else | 196 else |
| 197 { | |
| 201 anythingWritten = TRUE; | 198 anythingWritten = TRUE; |
| 199 if ( cont.first < 0 ) | |
| 200 cont.first = cont.vecFirst + i; | |
| 201 } | |
| 202 } | 202 } |
| 203 } | 203 } |
| 204 } | 204 } |
| 205 fclose( f ); | 205 fclose( f ); |
| 206 | 206 |
| 227 Cont_first( void ) { return cont.first; } | 227 Cont_first( void ) { return cont.first; } |
| 228 | 228 |
| 229 int | 229 int |
| 230 Cont_last( void ) { return cont.last; } | 230 Cont_last( void ) { return cont.last; } |
| 231 | 231 |
| 232 int | |
| 233 Cont_find( const char *msgId ) | |
| 234 { | |
| 235 int i; | |
| 236 const Over *ov; | |
| 237 | |
| 238 for ( i = 0; i < cont.size; i++ ) | |
| 239 { | |
| 240 if ( ( ov = cont.elem[ i ] ) | |
| 241 && strcmp( Ov_msgId( ov ), msgId ) == 0 ) | |
| 242 return i + cont.vecFirst; | |
| 243 } | |
| 244 | |
| 245 return -1; | |
| 246 } | |
| 247 | |
| 232 const char * | 248 const char * |
| 233 Cont_grp( void ) { return cont.name; } | 249 Cont_grp( void ) { return cont.name; } |
| 234 | 250 |
| 235 Bool | 251 Bool |
| 236 Cont_nextGrp( Str result ) | 252 Cont_nextGrp( Str result ) |
