diff --git a/src/server/ChangeLog b/src/server/ChangeLog index c0a03bd5322a4039047cc11a77f25d10c13a4a33..a519463ba05bb7a025221efa7578a4e92962e1f3 100644 --- a/src/server/ChangeLog +++ b/src/server/ChangeLog @@ -1,3 +1,8 @@ +Wed Aug 12 00:33:55 1992 Inge Wallin (inge@lysator) + + * simple-cache.c(save_one_text): Write texts to file as long as + they are removed. + Thu Jun 11 16:28:39 1992 Per Cederqvist (ceder@lysator) * vercion.incl: Version 1.2.3. diff --git a/src/server/simple-cache.c b/src/server/simple-cache.c index 48f49960b8999818506681b1284355c51f8d7974..7a1c772dacf5144b3173386fa83c84f3a2aeda2d 100644 --- a/src/server/simple-cache.c +++ b/src/server/simple-cache.c @@ -1,5 +1,5 @@ /* - * $Id: simple-cache.c,v 0.23 1992/06/11 19:16:47 ceder Exp $ + * $Id: simple-cache.c,v 0.24 1992/08/11 22:35:56 inge Exp $ * Copyright (C) 1991 Lysator Academic Computer Association. * * This file is part of the LysKOM server. @@ -33,7 +33,7 @@ * New save algorithm by ceder. */ -static char *rcsid = "$Id: simple-cache.c,v 0.23 1992/06/11 19:16:47 ceder Exp $"; +static char *rcsid = "$Id: simple-cache.c,v 0.24 1992/08/11 22:35:56 inge Exp $"; @@ -1509,7 +1509,7 @@ save_one_text(void) long offset; long offset2; - if (sync_next < highest_text_no) + while (sync_next < highest_text_no) { cn = get_text_node(sync_next); @@ -1517,6 +1517,9 @@ save_one_text(void) { putc('@', file_b); putc('\n', file_b); + + sync_next++; + continue; } else { @@ -1541,10 +1544,14 @@ save_one_text(void) putc('\n', file_b); cn->size_b = ftell(file_b) - cn->pos_b; + + sync_next++; + break; } - sync_next++; } - else /* All texts are written. */ + + /* If all texts are written, do some clean-up. */ + if (sync_next == highest_text_no) { if ( ferror(file_b) != 0 ) {