summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenys Vlasenko2018-12-13 19:58:58 +0100
committerDenys Vlasenko2018-12-13 19:58:58 +0100
commit0fe270e77536c8248bbf1c6045229d7ec3aaf8d3 (patch)
tree7d54faa7044a054d837ab5554680b5d576a35b8b
parent915c72b27301c933a8efbf4036293ddc1ea35b7d (diff)
downloadbusybox-0fe270e77536c8248bbf1c6045229d7ec3aaf8d3.zip
busybox-0fe270e77536c8248bbf1c6045229d7ec3aaf8d3.tar.gz
bc: simplify filename saving in zbc_vm_file()
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>
-rw-r--r--miscutils/bc.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/miscutils/bc.c b/miscutils/bc.c
index 57c9ca5..5930caa 100644
--- a/miscutils/bc.c
+++ b/miscutils/bc.c
@@ -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);