Peter Humphrey wrote:
> Hello list,
>
> Would someone please either post the new bashrc file here or send me a copy, 
> in which genfun_has_readline is defined? I seem to have lost mine altogether. 
> I 
> think portage may be being too clever in remembering config files that I've 
> not 
> allowed it to update previously, and so not offering to update it now.
>
> I mean app-shells/bash-5.2_p26-r6.
>
> Many thanks.
>


I think this gives the new config files.  I save the binaries that
emerge creates.  I found the new bash and extracted the config files. 
The ones that start with a number are in the bashrc.d directory.  They
are attached. 

I might add, after the update, I had issues with my PS1 and alias
settings.  My main rig went rather well given it has been through a few
updates.  The new rig however was like pulling teeth.  I ended up
copying the /etc/bash directory from my main rig.  Then it worked. 
Using dispatch-conf and me rarely being able to use it correctly is
causing problems.  I need to find a better tool.  Thing is, I don't
think one exists.  I'd encourage you to use the bashrc.d directory when
possible.  That way your settings aren't mixed in with defaults. 

Hope those files help. 

Dale

:-)  :-) 
# /etc/bash/bashrc.d/10-gentoo-color.bash

if [[ ${NO_COLOR} ]]; then
        # Respect the user's wish not to use color. See https://no-color.org/.
        gentoo_color=0
elif [[ ${COLORTERM@a} == *x* && ${COLORTERM} == @(24bit|truecolor) ]]; then
        # The COLORTERM environment variable can reasonably be trusted here.
        # See https://github.com/termstandard/colors for further information.
        gentoo_color=1
elif unset -v COLORTERM; ! gentoo_color=$(tput colors 2>/dev/null); then
        # Either ncurses is not installed or no terminfo database could be
        # found. Fall back to a whitelist which covers the majority of terminal
        # emulators and virtual console implementations known to support color
        # and which remain (somewhat) popular. This will rarely happen, so the
        # list need not be exhaustive.
        case ${TERM} in
                *color*    |\
                *direct*   |\
                [Ekx]term* |\
                alacritty  |\
                aterm      |\
                dtterm     |\
                foot*      |\
                jfbterm    |\
                linux      |\
                mlterm     |\
                rxvt*      |\
                screen*    |\
                tmux*      |\
                wsvt25*    ) gentoo_color=1
        esac
elif (( gentoo_color == 16777216 )); then
        # Truecolor support is available. Advertise it.
        export COLORTERM=truecolor
fi

# For direxpand to be missing indicates that bash is lacking readline support.
if (( gentoo_color <= 0 )) || [[ ! $(shopt -p direxpand 2>/dev/null) ]]; then
        # Define a prompt without color.
        PS1='\u@\h \w \$ '
elif (( EUID == 0 )); then
        # If root, omit the username and print the hostname in red.
        PS1='\[\e[01;31m\]\h\[\e[01;34m\] \w \$\[\e[00m\] '
else
        # Otherwise, print the username and hostname in green.
        PS1='\[\e[01;32m\]\u@\h\[\e[01;34m\] \w \$\[\e[00m\] '
fi

if (( gentoo_color > 0 )); then
        # Colorize the output of diff(1), grep(1) and a few coreutils utilities.
        for _ in diff dir grep ls vdir; do
                alias "$_=$_ --color=auto"
        done

        # Enable colors for ls(1) and some other utilities that respect the
        # LS_COLORS variable. Prefer ~/.dir_colors, per bug #64489.
        if hash dircolors 2>/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)"
                else
                        eval "$(dircolors -b)"
                fi
        fi
fi

unset -v gentoo_color
# /etc/bash/bashrc.d/10-gentoo-title.bash

genfun_set_win_title() {
        # Assigns the basename of the current working directory, having
        # sanitised it with @Q parameter expansion. Useful for paths containing
        # newlines and such. As a special case, names consisting entirely of
        # graphemes shall not undergo the expansion, for reasons of cleanliness.
        genfun_sanitise_cwd() {
                _cwd=${PWD##*/}
                if [[ ! ${_cwd} ]]; then
                        _cwd=${PWD}
                elif [[ ${_cwd} == *[![:graph:]]* ]]; then
                        _cwd=${_cwd@Q}
                fi
        }

        # Sets the window title with the Set Text Parameters sequence. For
        # screen, the sequence defines the hardstatus (%h) and for tmux, the
        # pane_title (#T). For graphical terminal emulators, it is normal for
        # the title bar to be affected.
        genfun_set_win_title() {
                genfun_sanitise_cwd
                printf '\033]2;%s@%s - %s\007' "${USER}" "${HOSTNAME%%.*}" 
"${_cwd}"
        }

        genfun_set_win_title
}

# If the TTY is that of sshd(8) then proceed no further. Alas, there exist many
# operating environments in which the window title would otherwise not be
# restored upon ssh(1) exiting. Users wishing to coerce the historical
# behaviour have the option of setting PROMPT_COMMAND=(genfun_set_win_title).
if [[ ${SSH_TTY} && ${SSH_TTY} == "$(tty)" ]]; then
        return
fi

# Determine whether the terminal can handle the Set Text Parameters sequence.
# The only terminals permitted here are those for which there is empirical
# evidence that the sequence is supported and that the UTF-8 character encoding
# is handled correctly. Quite rightly, this precludes many vintage terminals.
# 
https://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h3-Operating-System-Commands
case ${TERM} in
        alacritty     |\
        foot*         |\
        rxvt-unicode* |\
        screen*       |\
        st-256color   |\
        tmux*         |\
        xterm*        )
                PROMPT_COMMAND+=('genfun_set_win_title')
esac
# /etc/bash/bashrc.d/15-gentoo-bashrc-check.bash

# Some users have ~/.bashrc as a copy of ${FILESDIR}/bashrc which either matches
# exactly or is only trivially modified. Such is an improper state of affairs
# and results in the bashrc.d drop-ins being sourced twice. Warn them that they
# should use the skeleton file instead. This drop-in should be removed no sooner
# than one year from the date of its introduction.

if [[ -e ${TMPDIR:-/tmp}/.gentoo-bashrc-check-${EUID} || ! -f ~/.bashrc ]]; then
        return
fi

{
        if grep -qxF 'for sh in /etc/bash/bashrc.d/* ; do' -- ~/.bashrc; then
                cat >&3 <<'EOF'
WARNING! Your ~/.bashrc file is based on an old copy of /etc/bash/bashrc, which
is not intended for use within a home directory. Please either delete ~/.bashrc
or replace it with a copy of /etc/skel/.bashrc before optionally customizing it
further. Neglecting to do so may result in bash behaving unexpectedly.

EOF
        fi
        touch -- "${TMPDIR:-/tmp}/.gentoo-bashrc-check-${EUID}"
} 3>&2 2>/dev/null
# /etc/bash/bash_logout

# This file is sourced when a login shell terminates.

# You may wish to clear everyone's screen when they logout.
#clear

# Or maybe you want to leave a thoughtful note.
#fortune
# /etc/bash/bashrc

# Proceed no further in the case of a non-interactive shell.
if [[ $- != *i* ]]; then
        return
fi

# Disable errexit in case the user enabled it then chose to re-source this file.
shopt -u -o errexit

# Disable completion when the input buffer is empty. Mute STDERR because this
# option is only present in the case that bash was built with readline support.
shopt -s no_empty_cmd_completion 2>/dev/null &&

# Append to HISTFILE rather than overwrite upon exiting, per bug #139609. This
# option also requires for bash to have been built with readline support.
shopt -s histappend

# Initialise PROMPT_COMMAND as an array, which is permitted as of bash 5.1.
PROMPT_COMMAND=()

# Don't let the user influence the order of sourcing for bash 5.3 or greater.
unset -v GLOBSORT

for _ in /etc/bash/bashrc.d/*; do
        if [[ $_ == *.@(bash|sh) && -r $_ ]]; then
                source "$_"
        fi
done

Reply via email to