This commit fixes an issue with themes on OS X which are sometimes left in a partially broken environment with missing dependencies. When a `BASH_IT_THEME` is active on OS X and has a dynamic `PROMPT_COMMAND` which is not exported, and such `PROMPT_COMMAND` is backed by shell functions which are not exported either, and at the same time the theme is not OS-X-aware (regarding `update_terminal_cwd`), and the user launches a (non-login) interactive subshell from the OS X Terminal, a `command not found` appears on every command invocation. The issue is caused by a regression in PR #514, which attempts to inject `update_terminal_cwd` into the prompt. As a side effect, it also escalates the exportedness of `PROMPT_COMMAND` while the theme-specific backing functions (which power the dynamic prompt) remain unexported. The subshell cannot recover from this partially broken environment because unlike in Linux, Bash-it on OS X is not invoked for non-login subshells. The dependencies remain broken which leads to the error. The fix is to preserve `PROMPT_COMMAND`’s exportedness on OS X, leaving the individual theme responsible for consistently exporting either all or nothing of its environment.
2.4 KiB
2.4 KiB