bc: simplify filename saving in zbc_vm_file()
authorDenys Vlasenko <vda.linux@googlemail.com>
Thu, 13 Dec 2018 18:58:58 +0000 (19:58 +0100)
committerDenys Vlasenko <vda.linux@googlemail.com>
Thu, 13 Dec 2018 18:58:58 +0000 (19:58 +0100)
function                                             old     new   delta
bc_vm_run                                            433     423     -10
zbc_vm_file                                          187     174     -13
------------------------------------------------------------------------------
(add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-23)             Total: -23 bytes
   text    data     bss     dec     hex filename
 980350     485    7296  988131   f13e3 busybox_old
 980327     485    7296  988108   f13cc busybox_unstripped

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
miscutils/bc.c

index 57c9ca56524120cdf274b8d9653ce84071403612..5930caa32f85958af5da03640ca581470fe673f2 100644 (file)
@@ -7010,7 +7010,9 @@ static BC_STATUS zbc_vm_process(const char *text)
 
 static BC_STATUS zbc_vm_file(const char *file)
 {
-       const char *sv_file;
+       // So far bc/dc have no way to include a file from another file,
+       // therefore we know G.prog.file == NULL on entry
+       //const char *sv_file;
        char *data;
        BcStatus s;
        BcFunc *main_func;
@@ -7019,7 +7021,7 @@ static BC_STATUS zbc_vm_file(const char *file)
        data = bc_read_file(file);
        if (!data) RETURN_STATUS(bc_error_fmt("file '%s' is not text", file));
 
-       sv_file = G.prog.file;
+       //sv_file = G.prog.file;
        G.prog.file = file;
        bc_lex_file(&G.prs.l);
        s = zbc_vm_process(data);
@@ -7032,7 +7034,8 @@ static BC_STATUS zbc_vm_file(const char *file)
                s = bc_error_fmt("file '%s' is not executable", file);
 
 err:
-       G.prog.file = sv_file;
+       //G.prog.file = sv_file;
+       G.prog.file = NULL;
        free(data);
        RETURN_STATUS(s);
 }
@@ -7047,7 +7050,7 @@ static BC_STATUS zbc_vm_stdin(void)
        size_t str;
        bool comment;
 
-       G.prog.file = NULL;
+       //G.prog.file = NULL; - already is
        bc_lex_file(&G.prs.l);
 
        bc_char_vec_init(&buffer);