* Error if color codes to 0< or >15. * Make HELP & EDIT available in all VERSIONs. * All files are closed when variables are cleared: NEW & RUNtags/v3.20f
@@ -162,6 +162,16 @@ CleanTextInput (char *buffer) | |||||
} | } | ||||
} | } | ||||
void bwb_close_all() { | |||||
FileType *F; | |||||
for (F = My->FileHead; F != NULL; F = F->next) | |||||
{ | |||||
field_close_file (F); | |||||
file_clear (F); | |||||
} | |||||
} | |||||
/*************************************************************** | /*************************************************************** | ||||
@@ -890,13 +900,7 @@ bwb_CLOSE (LineType * Line) | |||||
if (line_is_eol (Line)) | if (line_is_eol (Line)) | ||||
{ | { | ||||
/* CLOSE */ | /* CLOSE */ | ||||
FileType *F; | |||||
for (F = My->FileHead; F != NULL; F = F->next) | |||||
{ | |||||
field_close_file (F); | |||||
file_clear (F); | |||||
} | |||||
bwb_close_all(); | |||||
return (Line); | return (Line); | ||||
} | } | ||||
@@ -368,6 +368,13 @@ extern void | |||||
var_CLEAR (void) | var_CLEAR (void) | ||||
{ | { | ||||
/* | /* | ||||
Close all open file (variables) | |||||
*/ | |||||
/* jaf-20211010 files should be closed when variables are cleared. */ | |||||
bwb_close_all(); | |||||
/* | |||||
free all variables except PRESET | free all variables except PRESET | ||||
*/ | */ | ||||
VariableType *variable; | VariableType *variable; | ||||
@@ -1598,6 +1598,7 @@ extern const size_t NUM_VERSIONS; /* upto 32 BASIC dialects */ | |||||
#define T79 (1UL<<21) /* XBASIC */ | #define T79 (1UL<<21) /* XBASIC */ | ||||
#define H14 (1UL<<22) /* Haart */ | #define H14 (1UL<<22) /* Haart */ | ||||
#define B93 (1UL<<23) /* Bywater-2 */ | #define B93 (1UL<<23) /* Bywater-2 */ | ||||
#define VALL (0x00FFFFFF) /* ALL Vers */ | |||||
/* OptionFlags */ | /* OptionFlags */ | ||||
#define OPTION_STRICT_ON 0x0001 /* Do NOT allow implicit DIM */ | #define OPTION_STRICT_ON 0x0001 /* Do NOT allow implicit DIM */ | ||||
@@ -2145,6 +2146,7 @@ extern void bwb_clrexec (void); | |||||
extern void bwb_decexec (void); | extern void bwb_decexec (void); | ||||
extern void bwb_execline (void); | extern void bwb_execline (void); | ||||
extern void bwb_fclose (FILE * file); | extern void bwb_fclose (FILE * file); | ||||
extern void bwb_close_all(void); | |||||
extern void bwb_file_open (char A, int x, char *B, int y); | extern void bwb_file_open (char A, int x, char *B, int y); | ||||
extern int bwb_fload (char *FileName); | extern int bwb_fload (char *FileName); | ||||
extern int bwb_freeline (LineType * l); | extern int bwb_freeline (LineType * l); | ||||
@@ -476,7 +476,7 @@ CommandType IntrinsicCommandTable[ /* NUM_COMMANDS */ ] = | |||||
"EDIT", /* Syntax */ | "EDIT", /* Syntax */ | ||||
"implementation defined.", /* Description */ | "implementation defined.", /* Description */ | ||||
"EDIT", /* Name */ | "EDIT", /* Name */ | ||||
B15 | B93 | S70 | C77 | D64 | E78 | E86 | G74 | HB1 | HB2 | H80 | G65 | G67 | M80 | R86 | D71 | I70 | I73 | T80 | T79 /* OptionVersionBitmask */ | |||||
VALL /* OptionVersionBitmask */ | |||||
}, | }, | ||||
{ | { | ||||
C_ELSE, /* UniqueID */ | C_ELSE, /* UniqueID */ | ||||
@@ -759,7 +759,7 @@ CommandType IntrinsicCommandTable[ /* NUM_COMMANDS */ ] = | |||||
"Provides help on the specified name which is a command name or " | "Provides help on the specified name which is a command name or " | ||||
"function name.", /* Description */ | "function name.", /* Description */ | ||||
"HELP", /* Name */ | "HELP", /* Name */ | ||||
B15 /* OptionVersionBitmask */ | |||||
VALL /* OptionVersionBitmask */ | |||||
}, | }, | ||||
{ | { | ||||
C_IF, /* UniqueID */ | C_IF, /* UniqueID */ | ||||
@@ -111,7 +111,7 @@ bwx_COLOR (int Fore, int Back) | |||||
assert (My != NULL); | assert (My != NULL); | ||||
assert (My->SYSOUT != NULL); | assert (My->SYSOUT != NULL); | ||||
assert (My->SYSOUT->cfp != NULL); | assert (My->SYSOUT->cfp != NULL); | ||||
if (Fore < 0 || Back < 0) | |||||
if (Fore < 0 || Fore > 15 || Back < 0 || Back > 15) | |||||
{ | { | ||||
WARN_ILLEGAL_FUNCTION_CALL; | WARN_ILLEGAL_FUNCTION_CALL; | ||||
return; | return; | ||||