From b8d076b00bad9da87e6dcaf4f36dfd06e2d2e5e8 Mon Sep 17 00:00:00 2001
From: Denys Vlasenko <vda.linux@googlemail.com>
Date: Fri, 19 Jan 2018 16:00:57 +0100
Subject: [PATCH] hush: fix build if !BASH_LINENO_VAR

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
---
 shell/hush.c | 21 +++++++++++++--------
 1 file changed, 13 insertions(+), 8 deletions(-)

diff --git a/shell/hush.c b/shell/hush.c
index 8ba48de95..85526a9f0 100644
--- a/shell/hush.c
+++ b/shell/hush.c
@@ -938,9 +938,6 @@ struct globals {
 #if BASH_LINENO_VAR
 	unsigned lineno;
 	char *lineno_var;
-# define G_lineno_var G.lineno_var
-#else
-# define G_lineno_var ((char*)NULL)
 #endif
 	struct FILE_list *FILE_list;
 	/* Which signals have non-DFL handler (even with no traps set)?
@@ -6551,13 +6548,17 @@ static void parse_and_run_string(const char *s)
 static void parse_and_run_file(FILE *f)
 {
 	struct in_str input;
+#if BASH_LINENO_VAR
 	unsigned sv;
 
-	setup_file_in_str(&input, f);
 	sv = G.lineno;
 	G.lineno = 1;
+#endif
+	setup_file_in_str(&input, f);
 	parse_and_run_stream(&input, ';');
+#if BASH_LINENO_VAR
 	G.lineno = sv;
+#endif
 }
 
 #if ENABLE_HUSH_TICK
@@ -8104,8 +8105,10 @@ static NOINLINE int run_pipe(struct pipe *pi)
 		char **new_env = NULL;
 		struct variable *old_vars = NULL;
 
-		if (G_lineno_var)
-			strcpy(G_lineno_var + sizeof("LINENO=")-1, utoa(command->lineno));
+#if BASH_LINENO_VAR
+		if (G.lineno_var)
+			strcpy(G.lineno_var + sizeof("LINENO=")-1, utoa(command->lineno));
+#endif
 
 		if (argv[command->assignment_cnt] == NULL) {
 			/* Assignments, but no command */
@@ -8311,8 +8314,10 @@ static NOINLINE int run_pipe(struct pipe *pi)
 		if (cmd_no < pi->num_cmds)
 			xpiped_pair(pipefds);
 
-		if (G_lineno_var)
-			strcpy(G_lineno_var + sizeof("LINENO=")-1, utoa(command->lineno));
+#if BASH_LINENO_VAR
+		if (G.lineno_var)
+			strcpy(G.lineno_var + sizeof("LINENO=")-1, utoa(command->lineno));
+#endif
 
 		command->pid = BB_MMU ? fork() : vfork();
 		if (!command->pid) { /* child */
-- 
2.25.1