# Bash support for Core Shell, reference: /etc/bashrc_Apple_Terminal on macOS. # Report Working Directory # # Tell the Core Shell about the current working directory at each prompt. if [ -z "$INSIDE_EMACS" ]; then update_coreshell_cwd() { # Identify the directory using a "file:" scheme URL, including # the host name to disambiguate local vs. remote paths. # Percent-encode the pathname. local url_path='' { # Use LC_CTYPE=C to process text byte-by-byte. Ensure that # LC_ALL isn't set, so it doesn't interfere. local i ch hexch LC_CTYPE=C LC_ALL= for ((i = 0; i < ${#PWD}; ++i)); do ch="${PWD:i:1}" if [[ "$ch" =~ [/._~A-Za-z0-9-] ]]; then url_path+="$ch" else printf -v hexch "%02X" "'$ch" # printf treats values greater than 127 as # negative and pads with "FF", so truncate. url_path+="%${hexch: -2:2}" fi done } if [ -n "$TMUX" ]; then printf '\ePtmux;\e\e]7;%s\a\e\\' "file://$HOSTNAME$url_path" else printf '\e]7;%s\a' "file://$HOSTNAME$url_path" fi } PROMPT_COMMAND="update_coreshell_cwd${PROMPT_COMMAND:+; $PROMPT_COMMAND}" fi