fixed some problems with bash
Change-Id: Iedaf7c28c25149755e6e4a20810043cf64ed8c84
This commit is contained in:
@@ -625,10 +625,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)
|
||||
{
|
||||
|
||||
62
etc/bashrc
62
etc/bashrc
@@ -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
|
||||
|
||||
|
||||
@@ -493,7 +493,7 @@ initialize_shell_variables (env, privmode)
|
||||
/* Now make our own defaults in case the vars that we think are
|
||||
important are missing. */
|
||||
temp_var = set_if_not ("PATH", DEFAULT_PATH_VALUE);
|
||||
temp_var = set_if_not ("TERM", "dumb");
|
||||
temp_var = set_if_not ("TERM", "unknown");
|
||||
|
||||
#if defined (__QNX__)
|
||||
/* set node id -- don't import it from the environment */
|
||||
|
||||
Reference in New Issue
Block a user