From 8c66a9d07a771424e79a56698cdad7f4e4de89ac Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Sun, 11 Oct 2009 02:15:49 +0200 Subject: [PATCH] hush: shrink $RANDOM support function old new delta get_local_var_value 104 125 +21 hush_main 1024 983 -41 Signed-off-by: Denys Vlasenko --- shell/hush.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/shell/hush.c b/shell/hush.c index ef40e5a06..d105029ff 100644 --- a/shell/hush.c +++ b/shell/hush.c @@ -1318,8 +1318,11 @@ static const char *get_local_var_value(const char *name) return utoa(G.root_ppid); // bash compat: UID? EUID? #if ENABLE_HUSH_RANDOM_SUPPORT - if (strcmp(name, "RANDOM") == 0) + if (strcmp(name, "RANDOM") == 0) { + if (G.random_gen.galois_LFSR == 0) + INIT_RANDOM_T(&G.random_gen, G.root_pid, monotonic_us()); return utoa(next_random(&G.random_gen)); + } #endif return NULL; } @@ -6605,9 +6608,6 @@ int hush_main(int argc, char **argv) if (!G.root_pid) { G.root_pid = getpid(); G.root_ppid = getppid(); -#if ENABLE_HUSH_RANDOM_SUPPORT - INIT_RANDOM_T(&G.random_gen, G.root_pid, monotonic_us()); -#endif } G.global_argv = argv + optind; G.global_argc = argc - optind; @@ -6696,9 +6696,6 @@ int hush_main(int argc, char **argv) G.root_pid = getpid(); G.root_ppid = getppid(); } -#if ENABLE_HUSH_RANDOM_SUPPORT - INIT_RANDOM_T(&G.random_gen, G.root_pid, monotonic_us()); -#endif /* If we are login shell... */ if (argv[0] && argv[0][0] == '-') { -- 2.25.1