head	1.1;
access;
symbols
	RELEASE_8_3_0:1.1
	RELEASE_9_0_0:1.1
	RELEASE_7_4_0:1.1
	RELEASE_8_2_0:1.1
	RELEASE_6_EOL:1.1
	RELEASE_8_1_0:1.1
	RELEASE_7_3_0:1.1
	RELEASE_8_0_0:1.1
	RELEASE_7_2_0:1.1
	RELEASE_7_1_0:1.1
	RELEASE_6_4_0:1.1
	RELEASE_5_EOL:1.1
	RELEASE_7_0_0:1.1
	RELEASE_6_3_0:1.1
	PRE_XORG_7:1.1
	RELEASE_4_EOL:1.1
	RELEASE_6_2_0:1.1
	RELEASE_6_1_0:1.1
	RELEASE_5_5_0:1.1
	RELEASE_6_0_0:1.1
	RELEASE_5_4_0:1.1
	RELEASE_4_11_0:1.1
	RELEASE_5_3_0:1.1
	RELEASE_4_10_0:1.1
	RELEASE_5_2_1:1.1
	RELEASE_5_2_0:1.1
	RELEASE_4_9_0:1.1
	RELEASE_5_1_0:1.1
	RELEASE_4_8_0:1.1
	RELEASE_5_0_0:1.1
	RELEASE_4_7_0:1.1
	RELEASE_4_6_2:1.1
	RELEASE_4_6_1:1.1
	RELEASE_4_6_0:1.1
	RELEASE_5_0_DP1:1.1
	RELEASE_4_5_0:1.1
	RELEASE_4_4_0:1.1
	RELEASE_4_3_0:1.1
	RELEASE_4_2_0:1.1
	RELEASE_4_1_1:1.1
	RELEASE_4_1_0:1.1
	RELEASE_3_5_0:1.1
	RELEASE_4_0_0:1.1
	RELEASE_3_4_0:1.1
	RELEASE_3_3_0:1.1
	RELEASE_3_2_0:1.1
	RELEASE_3_1_0:1.1
	RELEASE_2_2_8:1.1
	RELEASE_3_0_0:1.1
	RELEASE_2_2_7:1.1
	RELEASE_2_2_6:1.1
	RELEASE_2_2_5:1.1
	RELEASE_2_2_1:1.1
	RELEASE_2_2_2:1.1;
locks; strict;
comment	@# @;


1.1
date	97.01.16.00.58.10;	author msmith;	state Exp;
branches;
next	;


desc
@@


1.1
log
@Oops, forgot this one.
@
text
@--- ../../foo/bwbasic-2.20/bwb_dio.c	Sun Nov 26 09:02:18 1995
+++ bwb_dio.c	Thu Jan 16 11:10:58 1997
@@@@ -90,7 +90,6 @@@@
    {
    FILE *fp;
    struct exp_ese *e;
-   int previous_buffer;
    char atbuf[ MAXSTRINGSIZE + 1 ];
    char first[ MAXSTRINGSIZE + 1 ];
    char devname[ MAXSTRINGSIZE + 1 ];
@@@@ -98,7 +97,6 @@@@
    /* initialize */
 
    mode = req_devnumber = rlen = -1;
-   previous_buffer = FALSE;
 
    /* get the first expression element up to comma or whitespace */
 
@@@@ -435,7 +433,15 @@@@
       sprintf( bwb_ebuf, "in bwb_open(): using previously closed file (and buffer)" );
       bwb_debug( bwb_ebuf );
 #endif
-      previous_buffer = TRUE;
+      /*
+       * Previous code assumed that buffer was always valid, and
+       * always the right size.  (MJS)
+       */
+      if (dev_table[ req_devnumber ].buffer != NULL) 
+         {
+         free (dev_table[ req_devnumber ].buffer);
+         dev_table[ req_devnumber ].buffer = NULL;
+         }
       }
 
    if ( ( dev_table[ req_devnumber ].mode != DEVMODE_CLOSED ) &&
@@@@ -512,7 +518,7 @@@@
 
    /* allocate a character buffer for random access */
 
-   if (( mode == DEVMODE_RANDOM ) && ( previous_buffer != TRUE ))
+   if ( mode == DEVMODE_RANDOM )
       {
       /* Revised to CALLOC pass-thru call by JBV */
       if ( ( dev_table[ req_devnumber ].buffer = CALLOC( rlen + 1, 1, "bwb_open" )) == NULL )
@
