diff options
author | cvpcs <root@cvpcs.org> | 2010-06-06 18:06:59 -0500 |
---|---|---|
committer | cvpcs <root@cvpcs.org> | 2010-06-06 18:06:59 -0500 |
commit | c12d330ddc951c5e6761c0535a4c5dd079d0a777 (patch) | |
tree | 86c9073011af5d881bce63b5ea52111a211f9932 | |
parent | 5999b91c4395ce08fd3e893d98e9f4b54b05ac02 (diff) | |
download | external_bash-c12d330ddc951c5e6761c0535a4c5dd079d0a777.zip external_bash-c12d330ddc951c5e6761c0535a4c5dd079d0a777.tar.gz external_bash-c12d330ddc951c5e6761c0535a4c5dd079d0a777.tar.bz2 |
fixed some problems with bash
-rw-r--r-- | builtins/common.c | 17 | ||||
-rw-r--r-- | etc/bashrc | 62 | ||||
-rw-r--r-- | variables.c | 2 |
3 files changed, 30 insertions, 51 deletions
diff --git a/builtins/common.c b/builtins/common.c index f02e99c..b69e7a2 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) { @@ -23,18 +23,24 @@ shopt -s checkwinsize # Enable history appending instead of overwriting. #139609 shopt -s histappend -# Change the window title of X terminals -case ${TERM} in - screen) - PROMPT_COMMAND='echo -ne "\033_${USER}@${HOSTNAME%%.*}:${PWD/$HOME/~}\033\\"' - ;; -esac +use_color=false + +# set some environment variables +HOME=/sdcard +TERM=linux + +# enable colorful terminal +if [[ ${EUID} == 0 ]] ; then + PS1='\[\033[01;31m\]\h\[\033[01;34m\] \W \$\[\033[00m\] ' +else + PS1='\[\033[01;32m\]\u@\h\[\033[01;34m\] \w \$\[\033[00m\] ' +fi # Set up a ton of aliases to cover toolbox with the nice busybox # equivalents of its commands alias cat='busybox cat' alias ln='busybox ln' -alias ls='busybox ls' +alias ls='busybox ls --color' alias mount='busybox mount' alias rm='busybox rm' alias umount='busybox umount' @@ -48,46 +54,6 @@ alias insmod='busybox insmod' alias rmmod='busybox rmmod' alias lsmod='busybox lsmod' -use_color=false - -# Set colorful PS1 only on colorful terminals. -# dircolors --print-database uses its own built-in database -# instead of using /etc/DIR_COLORS. Try to use the external file -# first to take advantage of user additions. Use internal bash -# globbing instead of external grep binary. -safe_term=${TERM//[^[:alnum:]]/?} # sanitize TERM -match_lhs="" -[[ -f /system/etc/DIR_COLORS ]] && match_lhs="${match_lhs}$(</system/etc/DIR_COLORS)" -[[ -z ${match_lhs} ]] \ - && type -P dircolors >/dev/null \ - && match_lhs=$(dircolors --print-database) -[[ $'\n'${match_lhs} == *$'\n'"TERM "${safe_term}* ]] && use_color=true - -if ${use_color} ; then - # Enable colors for ls, etc. Prefer ~/.dir_colors #64489 - if type -P dircolors >/dev/null ; then - if [[ -f ~/.dir_colors ]] ; then - eval $(dircolors -b ~/.dir_colors) - elif [[ -f /etc/DIR_COLORS ]] ; then - eval $(dircolors -b /etc/DIR_COLORS) - fi - fi - - if [[ ${EUID} == 0 ]] ; then - PS1='\[\033[01;31m\]\h\[\033[01;34m\] \W \$\[\033[00m\] ' - else - PS1='\[\033[01;32m\]\u@\h\[\033[01;34m\] \w \$\[\033[00m\] ' - fi - - alias ls='busybox ls --color=auto' -else - if [[ ${EUID} == 0 ]] ; then - # show root@ when we don't have colors - PS1='\u@\h \W \$ ' - else - PS1='\u@\h \w \$ ' - fi -fi - # Try to keep environment pollution down, EPA loves us. unset use_color safe_term match_lhs + diff --git a/variables.c b/variables.c index ebe4013..14db401 100644 --- a/variables.c +++ b/variables.c @@ -418,7 +418,7 @@ initialize_shell_variables (env, privmode) set_auto_export (temp_var); /* XXX */ #endif - temp_var = set_if_not ("TERM", "dumb"); + temp_var = set_if_not ("TERM", "unknown"); #if 0 set_auto_export (temp_var); /* XXX */ #endif |