Installation previously assumed the existence of a "chsh" command in the current
${PATH}. Since Cygwin does *NOT* provide this command, installation now tests
for the existence of this command before attempting to run it.
For safety, a umask of 022 prohibiting both group and other writability is now
enforced during OMZ installation. In theory, this should reduce the likelihood
of subsequent compinit() failures due to insecure directory permissions under
all platforms except for default Cygwin installations (in which Windows ACLs
override POSIX umasks).
Completion-dependent directories with insecure permissions or ownership (e.g.,
group or other writability) are now detected, reported, and sanitized on OMZ
startup rather than unsafely ignored -- which resulted in effectively empty
completion caches and obscure compdef() errors resembling
"compdef: unknown command or service: git".
This fixes long-standing issues #630, #3356, and #3455 and related Babun issues
159, 281, and 322 -- and probably numerous other duplicates.
Refactor the functions and group listings to have fewer functions,
but have them take group names as parameters.
Pull group definitions in to a single associative array.
steeef theme sets colors depending on $TERM, however if %F is
used, it must be closed by %f instead of %{$reset_color%}.
Further on, all %f directives have been replaced by %F and color
support of current TERM is checked more properly.
A new "lib/compfix.zsh" script defining a new handle_completion_insecurities()
function has been added, which handles insecure completion directories by
notifying users of said insecurities and moving away all existing completion
caches to a temporary directory. While intended to be called at startup, this
function is generally callable at any time (e.g., for testing).
Change error output to more conventional OMZ format, so it's clear the plugin is for oh-my-zsh and not base zsh.
Use `local` variables instead of manual unsetting.
Gives a better error message than "command not found: strfile", because
it's not obvious to many users that strfile is part of fortune.
Also handles the weird /usr/sbin install location for strfile on Cygwin.