--- source/tokenize.c~ Sun Jan 16 11:10:42 2000 +++ source/tokenize.c Sun Jan 16 15:30:38 2000 @@ -3276,7 +3276,6 @@ Inc_CS_Index(); Cond_Stack[CS_Index].Cond_Type = INVOKING_MACRO_COND; - Cond_Stack[CS_Index].Pos = -1;/* Data_File_Tell (Data_File); */ Cond_Stack[CS_Index].Line_No = Data_File->Line_Number; Cond_Stack[CS_Index].Macro_Return_Name = Data_File->Filename; Cond_Stack[CS_Index].PMac = PMac; @@ -3306,7 +3305,7 @@ Data_File->Putc = String_Putc; Data_File->Tell = String_Tell; Data_File->Seek = String_Seek; - Data_File->Filename = PMac->Macro_Filename; + Data_File->Filename = POV_STRDUP (PMac->Macro_Filename); Got_EOF=FALSE; Token.Token_Id = END_OF_FILE_TOKEN; @@ -3321,16 +3320,12 @@ Check_Macro_Vers(); - if (Cond_Stack[CS_Index].Pos < 0) - *Data_File = Cond_Stack[CS_Index].Return; + POV_FREE (Data_File->Data); + POV_FREE (Data_File->Filename); + *Data_File = Cond_Stack[CS_Index].Return; Data_File->Line_Number = Cond_Stack[CS_Index].Line_No; Got_EOF=FALSE; - if (Cond_Stack[CS_Index].Pos >= 0) - if (Data_File_Seek (Data_File, Cond_Stack[CS_Index].Pos) < 0) - { - Error("Unable to file seek in return from macro.\n"); - } /* Always destroy macro locals */ Destroy_Table(Table_Index--); @@ -3355,7 +3350,8 @@ POV_FREE(PMac->Par_Name[i]); } - POV_FREE(PMac->Text); + if (PMac->Text != NULL) + POV_FREE(PMac->Text); POV_FREE(PMac); } @@ -3820,7 +3816,7 @@ int Old_Sk = Skipping; DBL Val; - Ok_To_Declare = FALSE; +/* Ok_To_Declare = FALSE;*/ Skipping = FALSE; Val=Parse_Float_Param();