Remove the bc_code global
diff --git a/include/bc.h b/include/bc.h
index 7f4a36a..003f32f 100644
--- a/include/bc.h
+++ b/include/bc.h
@@ -136,7 +136,6 @@
 // ** Exclude start. **
 typedef struct BcGlobals {
 
-  long bc_code;
   long bc_interactive;
   long bc_std;
   long bc_warn;
diff --git a/include/vm.h b/include/vm.h
index 62e6f49..bbae76b 100644
--- a/include/vm.h
+++ b/include/vm.h
@@ -41,7 +41,7 @@
 } BcVm;
 
 // ** Exclude start. **
-BcStatus bc_vm_init(BcVm *vm, int filec, char *filev[]);
+BcStatus bc_vm_init(BcVm *vm, BcProgramExecFunc exec, int filec, char *filev[]);
 
 void bc_vm_free(BcVm *vm);
 
diff --git a/src/bc/bc.c b/src/bc/bc.c
index 9651acc..d53edd5 100644
--- a/src/bc/bc.c
+++ b/src/bc/bc.c
@@ -94,12 +94,12 @@
 
   BcStatus status;
   BcVm vm;
+  BcProgramExecFunc exec;
 
   if ((flags & BC_FLAG_INTERACTIVE) || (isatty(0) && isatty(1))) {
     bcg.bc_interactive = 1;
   } else bcg.bc_interactive = 0;
 
-  bcg.bc_code = flags & BC_FLAG_CODE;
   bcg.bc_std = flags & BC_FLAG_STANDARD;
   bcg.bc_warn = flags & BC_FLAG_WARN;
 
@@ -110,7 +110,8 @@
     if (status) return status;
   }
 
-  status = bc_vm_init(&vm, filec, filev);
+  exec = (flags & BC_FLAG_CODE) ? bc_program_print : bc_program_exec;
+  status = bc_vm_init(&vm, exec, filec, filev);
 
   if (status) return status;
 
diff --git a/src/bc/vm.c b/src/bc/vm.c
index ffad061..614998f 100644
--- a/src/bc/vm.c
+++ b/src/bc/vm.c
@@ -403,8 +403,8 @@
   return status;
 }
 
-BcStatus bc_vm_init(BcVm *vm, int filec, char *filev[]) {
-
+BcStatus bc_vm_init(BcVm *vm, BcProgramExecFunc exec, int filec, char *filev[])
+{
   BcStatus status;
   struct sigaction act;
 
@@ -424,7 +424,7 @@
     return status;
   }
 
-  vm->exec = bcg.bc_code ? bc_program_print : bc_program_exec;
+  vm->exec = exec;
   vm->filec = filec;
   vm->filev = filev;
 
diff --git a/toybox/header.c b/toybox/header.c
index 09504a2..05d002f 100644
--- a/toybox/header.c
+++ b/toybox/header.c
@@ -40,7 +40,6 @@
 #include "toys.h"
 
 GLOBALS(
-  long bc_code;
   long bc_interactive;
   long bc_std;
   long bc_warn;