--- html.c.orig Tue Aug 13 13:40:18 2002 +++ html.c Tue Aug 13 13:50:26 2002 @@ -3303,7 +3303,7 @@ FILE *pf; list *pl; int nGames; - char *aszLinks[ 4 ]; + char *aszLinks[ 4 ], *filenames[4]; char *szCurrent; int i, j; @@ -3324,17 +3324,33 @@ for( pl = lMatch.plNext, i = 0; pl != &lMatch; pl = pl->plNext, i++ ) { szCurrent = HTMLFilename ( sz, i ); - aszLinks[ 0 ] = basename ( HTMLFilename ( sz, 0 ) ); - aszLinks[ 1 ] = ( i > 0 ) ? - basename ( HTMLFilename ( sz, i - 1 ) ): NULL; - aszLinks[ 2 ] = ( i < nGames - 1 ) ? - basename ( HTMLFilename ( sz, i + 1 ) ) : NULL; - aszLinks[ 3 ] = basename ( HTMLFilename ( sz, nGames - 1 ) ); + filenames[0] = HTMLFilename ( sz, 0 ); + aszLinks[ 0 ] = basename ( filenames[ 0 ] ); + filenames[ 1 ] = aszLinks[ 1 ] = NULL; + if (i > 0) { + filenames[ 1 ] = HTMLFilename ( sz, i - 1 ); + aszLinks[ 1 ] = basename ( filenames[ 1 ] ); + } + + filenames[ 2 ] = aszLinks[ 2 ] = NULL; + if (i < nGames - 1) { + filenames[ 2 ] = HTMLFilename ( sz, i + 1 ); + aszLinks[ 2 ] = basename ( filenames[ 2 ] ); + } + + + filenames[ 3 ] = HTMLFilename ( sz, nGames - 1 ); + aszLinks[ 3 ] = basename ( filenames[ 3 ] ); if ( !i ) { - if ( ! confirmOverwrite ( sz, fConfirmSave ) ) + if ( ! confirmOverwrite ( sz, fConfirmSave ) ) { + for ( j = 0; j < 4; j++ ) + free (filenames [ j ] ); + + free ( szCurrent ); return; + } setDefaultFileName ( sz, PATH_HTML ); @@ -3345,6 +3361,10 @@ pf = stdout; else if( !( pf = fopen( szCurrent, "w" ) ) ) { perror( szCurrent ); + for ( j = 0; j < 4; j++ ) + free (filenames [ j ] ); + + free ( szCurrent ); return; } @@ -3356,8 +3376,8 @@ aszLinks ); for ( j = 0; j < 4; j++ ) - if ( aszLinks[ j ] ) - free ( aszLinks[ j ] ); + free (filenames [ j ] ); + free ( szCurrent ); if( pf != stdout )