Group :: Sciences/Mathematics
RPM: bc
Main Changelog Spec Patches Sources Download Gear Bugs and FR Repocop
Patch: bc-owl-functions-fix.patch
Download
Download
--- bc/bc/load.c
+++ bc/bc/load.c
@@ -149,7 +149,8 @@ load_code (const char *code)
unsigned long label_no;
unsigned long vaf_name; /* variable, array or function number. */
unsigned long func;
- static program_counter save_adr;
+ /* static: functions may be split over multiple calls to load_code(). */
+ static program_counter save_adr = {-1, -1};
/* Initialize. */
str = code;
@@ -280,8 +281,13 @@ load_code (const char *code)
break;
case ']': /* A function end */
+ if (save_adr.pc_func == -1) {
+ fprintf(stderr, "']': not in a 'F'(unction).\n");
+ exit(1);
+ }
functions[load_adr.pc_func].f_defined = TRUE;
load_adr = save_adr;
+ save_adr.pc_func = -1;
break;
case 'C': /* Call a function. */