aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'readline/tilde.c')
-rw-r--r--readline/tilde.c42
1 files changed, 7 insertions, 35 deletions
diff --git a/readline/tilde.c b/readline/tilde.c
index 3741f9767b2..d1853bd63d6 100644
--- a/readline/tilde.c
+++ b/readline/tilde.c
@@ -47,10 +47,6 @@
#include "tilde.h"
-#ifdef SHELL
-#include "shell.h"
-#endif
-
#if !defined (HAVE_GETPW_DECLS)
extern struct passwd *getpwuid (), *getpwnam ();
#endif /* !HAVE_GETPW_DECLS */
@@ -77,6 +73,12 @@ static char *xmalloc (), *xrealloc ();
extern char *xmalloc (), *xrealloc ();
#endif /* TEST || STATIC_MALLOC */
+/* If being compiled as part of bash, these will be satisfied from
+ variables.o. If being compiled as part of readline, they will
+ be satisfied from shell.o. */
+extern char *get_home_dir ();
+extern char *get_env_value ();
+
/* The default value of tilde_additional_prefixes. This is set to
whitespace preceding a tilde so that simple programs which do not
perform any word separation get desired behaviour. */
@@ -171,15 +173,6 @@ tilde_find_suffix (string)
return (i);
}
-#if !defined (SHELL)
-static char *
-get_string_value (varname)
- char *varname;
-{
- return ((char *)getenv (varname));
-}
-#endif
-
/* Return a new string which is the result of tilde expanding STRING. */
char *
tilde_expand (string)
@@ -284,27 +277,6 @@ glue_prefix_and_suffix (prefix, suffix, suffind)
return ret;
}
-static char *
-get_home_dir ()
-{
- char *home_dir;
-
-#ifdef SHELL
- home_dir = (char *)NULL;
- if (current_user.home_dir == 0)
- get_current_user_info ();
- home_dir = current_user.home_dir;
-#else
- struct passwd *entry;
-
- home_dir = (char *)NULL;
- entry = getpwuid (getuid ());
- if (entry)
- home_dir = entry->pw_dir;
-#endif
- return (home_dir);
-}
-
/* Do the work of tilde expansion on FILENAME. FILENAME starts with a
tilde. If there is no expansion, call tilde_expansion_failure_hook.
This always returns a newly-allocated string, never static storage. */
@@ -328,7 +300,7 @@ tilde_expand_word (filename)
if (filename[1] == '\0' || filename[1] == '/')
{
/* Prefix $HOME to the rest of the string. */
- expansion = get_string_value ("HOME");
+ expansion = get_env_value ("HOME");
/* If there is no HOME variable, look up the directory in
the password database. */