diff options
Diffstat (limited to 'libbb')
-rw-r--r-- | libbb/lineedit.c | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/libbb/lineedit.c b/libbb/lineedit.c index 82624757e..b685399f9 100644 --- a/libbb/lineedit.c +++ b/libbb/lineedit.c | |||
@@ -259,6 +259,16 @@ static const char *get_username_str(void) | |||
259 | 259 | ||
260 | static NOINLINE const char *get_homedir_or_NULL(void) | 260 | static NOINLINE const char *get_homedir_or_NULL(void) |
261 | { | 261 | { |
262 | const char *home; | ||
263 | |||
264 | # if ENABLE_SHELL_ASH || ENABLE_SHELL_HUSH | ||
265 | home = state->sh_get_var ? state->sh_get_var("HOME") : getenv("HOME"); | ||
266 | # else | ||
267 | home = getenv("HOME"); | ||
268 | # endif | ||
269 | if (home != NULL && home[0] != '\0') | ||
270 | return home; | ||
271 | |||
262 | if (!got_user_strings) | 272 | if (!got_user_strings) |
263 | get_user_strings(); | 273 | get_user_strings(); |
264 | return home_pwd_buf; | 274 | return home_pwd_buf; |
@@ -861,7 +871,7 @@ static NOINLINE unsigned complete_cmd_dir_file(const char *command, int type) | |||
861 | continue; | 871 | continue; |
862 | } | 872 | } |
863 | # endif | 873 | # endif |
864 | # if EDITING_HAS_get_exe_name | 874 | # if ENABLE_SHELL_ASH || ENABLE_SHELL_HUSH |
865 | if (state->get_exe_name) { | 875 | if (state->get_exe_name) { |
866 | i = 0; | 876 | i = 0; |
867 | for (;;) { | 877 | for (;;) { |