comparison src/database.c @ 300:994e9ab2c24f noffle

[svn] * src/database.c: Accept articles with no body, substituting a body of a single empty line. Also cast a scanf parameter to remove warning.
author bears
date Thu, 13 Feb 2003 10:04:01 +0000
parents baa6408d1bbc
children a04c52f87b6e
comparison
equal deleted inserted replaced
299:94ac4c72baf7 300:994e9ab2c24f
1 /* 1 /*
2 database.c 2 database.c
3 3
4 $Id: database.c 414 2003-01-06 18:16:18Z bears $ 4 $Id: database.c 433 2003-02-13 10:04:01Z bears $
5 5
6 Uses GNU gdbm library. Using Berkeley db (included in libc6) was 6 Uses GNU gdbm library. Using Berkeley db (included in libc6) was
7 cumbersome. It is based on Berkeley db 1.85, which has severe bugs 7 cumbersome. It is based on Berkeley db 1.85, which has severe bugs
8 (e.g. it is not recommended to delete or overwrite entries with 8 (e.g. it is not recommended to delete or overwrite entries with
9 overflow pages). 9 overflow pages).
144 { 144 {
145 Log_err( "Entry in database '%s' is corrupt (status)", msgId ); 145 Log_err( "Entry in database '%s' is corrupt (status)", msgId );
146 return FALSE; 146 return FALSE;
147 } 147 }
148 p = Utl_getLn( t, p ); 148 p = Utl_getLn( t, p );
149 if ( ! p || sscanf( t, "%lu", &db.lastAccess ) != 1 ) 149 if ( ! p || sscanf( t, "%lu", (unsigned long *)&db.lastAccess ) != 1 )
150 { 150 {
151 Log_err( "Entry in database '%s' is corrupt (lastAccess)", msgId ); 151 Log_err( "Entry in database '%s' is corrupt (lastAccess)", msgId );
152 return FALSE; 152 return FALSE;
153 } 153 }
154 p = Utl_getHeaderLn( db.subj, p ); 154 p = Utl_getHeaderLn( db.subj, p );
304 } 304 }
305 } 305 }
306 306
307 if ( artTxt == NULL ) 307 if ( artTxt == NULL )
308 { 308 {
309 Log_err( "Article %s malformed: missing body", msgId ); 309 /*
310 return FALSE; 310 * This article has no body. Bereft of text it lies...
311 *
312 * I'm not completely sure how surprising the rest of
313 * Noffle would find a body-less article, so substitute
314 * an empty line.
315 */
316 Log_inf( "Article %s malformed: missing body", msgId );
317 artTxt = "\n";
311 } 318 }
312 319
313 /* Read body */ 320 /* Read body */
314 while ( ( artTxt = Utl_getLn( line, artTxt ) ) != NULL ) 321 while ( ( artTxt = Utl_getLn( line, artTxt ) ) != NULL )
315 if ( ! ( db.status & DB_NOT_DOWNLOADED ) ) 322 if ( ! ( db.status & DB_NOT_DOWNLOADED ) )