diff options
author | cvpcs <root@cvpcs.org> | 2010-06-06 18:06:59 -0500 |
---|---|---|
committer | Dan Pasanen <dan.pasanen@gmail.com> | 2014-10-02 14:25:51 -0500 |
commit | d15864548dc4512f1bd735a8182beadbcbfb787b (patch) | |
tree | 63fc7f3fc18fe11ca202806f50fce4b1cc348484 /builtins/common.c | |
parent | 36c12725cbe10a552d3a1524eb324a10ffbfab8e (diff) | |
download | android_external_bash-d15864548dc4512f1bd735a8182beadbcbfb787b.tar.gz android_external_bash-d15864548dc4512f1bd735a8182beadbcbfb787b.tar.bz2 android_external_bash-d15864548dc4512f1bd735a8182beadbcbfb787b.zip |
fixed some problems with bash
Diffstat (limited to 'builtins/common.c')
-rw-r--r-- | builtins/common.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/builtins/common.c b/builtins/common.c index 5f8a1e1..811ca1b 100644 --- a/builtins/common.c +++ b/builtins/common.c @@ -553,10 +553,23 @@ get_working_directory (for_whom) if (the_current_working_directory == 0) { -#if defined (GETCWD_BROKEN) - the_current_working_directory = getcwd (0, PATH_MAX); +#if defined (__BIONIC__) + /** + * This is a really lame work around to try to stop bash from flipping + * out if PWD isn't defined when starting it up on bionic + */ + char *d = (char *)malloc(sizeof(char) * PATH_MAX); + the_current_working_directory = getcwd (d, sizeof(d)); + if (the_current_working_directory) + the_current_working_directory = d; + else + FREE (d); #else +# if defined (GETCWD_BROKEN) + the_current_working_directory = getcwd (0, PATH_MAX); +# else the_current_working_directory = getcwd (0, 0); +# endif #endif if (the_current_working_directory == 0) { |