Added helper functions.

main
Sorin Ionescu 14 years ago
parent 90da5fc874
commit 9c24ac8211

@ -2,7 +2,7 @@ setopt correct # Correct commands.
setopt correct_all # Correct all arguments. setopt correct_all # Correct all arguments.
# The 'ls' Family # The 'ls' Family
if [[ "$DISABLE_COLOR" != 'true' ]]; then if ! check-bool "$DISABLE_COLOR"; then
if [[ -f "$HOME/.dir_colors" ]] && ( (( $+commands[dircolors] )) || ( (( $+plugins[(er)gnu-utils] )) && (( $+commands[gdircolors] )) ) ); then if [[ -f "$HOME/.dir_colors" ]] && ( (( $+commands[dircolors] )) || ( (( $+plugins[(er)gnu-utils] )) && (( $+commands[gdircolors] )) ) ); then
eval $("${commands[dircolors]:-$commands[gdircolors]}" "$HOME/.dir_colors") eval $("${commands[dircolors]:-$commands[gdircolors]}" "$HOME/.dir_colors")
alias ls='ls -hF --group-directories-first --color=auto' alias ls='ls -hF --group-directories-first --color=auto'
@ -80,7 +80,7 @@ else
fi fi
# Diff/Make # Diff/Make
if [[ "$DISABLE_COLOR" != 'true' ]]; then if ! check-bool "$DISABLE_COLOR"; then
if (( $+commands[colordiff] )); then if (( $+commands[colordiff] )); then
alias diff='colordiff -u' alias diff='colordiff -u'
compdef colordiff=diff compdef colordiff=diff

@ -64,7 +64,7 @@ export VISUAL="vim"
export PAGER='less' export PAGER='less'
# Grep # Grep
if [[ "$DISABLE_COLOR" != 'true' ]]; then if ! check-bool "$DISABLE_COLOR"; then
export GREP_COLOR='37;45' export GREP_COLOR='37;45'
export GREP_OPTIONS='--color=auto' export GREP_OPTIONS='--color=auto'
fi fi
@ -89,7 +89,7 @@ if (( $+commands[lesspipe.sh] )); then
fi fi
# Termcap # Termcap
if [[ "$DISABLE_COLOR" != 'true' ]]; then if ! check-bool "$DISABLE_COLOR"; then
export LESS_TERMCAP_mb=$'\E[01;31m' # begin blinking export LESS_TERMCAP_mb=$'\E[01;31m' # begin blinking
export LESS_TERMCAP_md=$'\E[01;31m' # begin bold export LESS_TERMCAP_md=$'\E[01;31m' # begin bold
export LESS_TERMCAP_me=$'\E[0m' # end mode export LESS_TERMCAP_me=$'\E[0m' # end mode

@ -0,0 +1,50 @@
# Checks if a file can be autoloaded by trying to load it in a subshell.
function autoloadable() {
( unfunction $1 ; autoload -U +X $1 ) &> /dev/null
}
# Checks boolean variable for "true" (case insensitive "1", "y", "yes", "t", "true", "o", and "on").
function check-bool {
[[ -n "$1" && "$1" == (1|[Yy]([Ee][Ss]|)|[Tt]([Rr][Uu][Ee]|)|[Oo]([Nn]|)) ]]
}
# Trap signals were generated with 'kill -l'.
# DEBUG, EXIT, and ZERR are ZSH signals.
TRAP_SIGNALS=(
ABRT ALRM BUS CHLD CONT EMT FPE HUP ILL INFO INT IO KILL PIPE PROF QUIT
SEGV STOP SYS TERM TRAP TSTP TTIN TTOU URG USR1 USR2 VTALRM WINCH XCPU XFSZ
DEBUG EXIT ZERR
)
# Adds a function to a list to be called when a trap is triggered.
function add-zsh-trap {
if (( $# < 2 )); then
echo "Usage: $0 type function"
return 1
fi
if [[ -z "$TRAP_SIGNALS[(r)$1]" ]]; then
echo "$0: unknown signal: $1"
return 1
fi
local trap_functions="TRAP${1}_FUNCTIONS"
if (( ! ${(P)+trap_functions} )); then
typeset -gaU "$trap_functions"
fi
eval "$trap_functions+="$2""
if (( ! $+functions[TRAP${1}] )); then
eval "
function TRAP${1}() {
for trap_function in \"\$TRAP${1}_FUNCTIONS[@]\"; do
if (( \$+functions[\$trap_function] )); then
\"\$trap_function\" \"\$1\"
fi
done
return \$(( 128 + \$1 ))
}
"
fi
}

@ -14,7 +14,7 @@ fi
# Partially supports Mac OS X Terminal since it can't set window and tab separately. # Partially supports Mac OS X Terminal since it can't set window and tab separately.
# Usage: title "tab title" "window title" # Usage: title "tab title" "window title"
function terminal-title { function terminal-title {
if [[ "$DISABLE_AUTO_TITLE" != 'true' ]]; then if ! check-bool "$DISABLE_AUTO_TITLE"; then
if [[ "$TERM" == screen* ]]; then if [[ "$TERM" == screen* ]]; then
# Set GNU Screen's hardstatus (usually truncated at 20 characters). # Set GNU Screen's hardstatus (usually truncated at 20 characters).
printf "\ek%s\e\\" ${(V)1} printf "\ek%s\e\\" ${(V)1}

@ -2,14 +2,14 @@
# FILE: compleat.plugin.zsh # FILE: compleat.plugin.zsh
# DESCRIPTION: oh-my-zsh plugin file. # DESCRIPTION: oh-my-zsh plugin file.
# AUTHOR: Sorin Ionescu <sorin.ionescu@gmail.com> # AUTHOR: Sorin Ionescu <sorin.ionescu@gmail.com>
# VERSION: 1.0.1 # VERSION: 1.0.2
# ------------------------------------------------------------------------------ # ------------------------------------------------------------------------------
if (( ${+commands[compleat]} )); then if (( ${+commands[compleat]} )); then
compleat_setup="${commands[compleat]:h:h}/share/compleat-1.0/compleat_setup" compleat_setup="${commands[compleat]:h:h}/share/compleat-1.0/compleat_setup"
if [[ -f "$compleat_setup" ]]; then if [[ -f "$compleat_setup" ]]; then
if ! bashcompinit >/dev/null 2>&1; then if autoloadable bashcompinit; then
autoload -Uz bashcompinit && bashcompinit autoload -Uz bashcompinit && bashcompinit
fi fi

@ -85,27 +85,27 @@ function git-prompt-status() {
fi fi
while IFS=$'\n' read line; do while IFS=$'\n' read line; do
if [[ "$line" == \?\?\ * ]] && [[ untracked != 'yes' ]]; then if [[ "$line" == \?\?\ * ]] && ! check-bool "$untracked"; then
untracked='yes' untracked='yes'
indicators="${ZSH_THEME_GIT_PROMPT_UNTRACKED}${indicators}" indicators="${ZSH_THEME_GIT_PROMPT_UNTRACKED}${indicators}"
fi fi
if [[ "$line" == (((A|M|D|T) )|(AD|AM|AT|MM))\ * ]] && [[ added != 'yes' ]]; then if [[ "$line" == (((A|M|D|T) )|(AD|AM|AT|MM))\ * ]] && ! check-bool "$added"; then
added='yes' added='yes'
indicators="${ZSH_THEME_GIT_PROMPT_ADDED}${indicators}" indicators="${ZSH_THEME_GIT_PROMPT_ADDED}${indicators}"
fi fi
if [[ "$line" == (( (M|T))|(AM|AT|MM))\ * ]] && [[ modified != 'yes' ]]; then if [[ "$line" == (( (M|T))|(AM|AT|MM))\ * ]] && ! check-bool "$modified"; then
modified='yes' modified='yes'
indicators="${ZSH_THEME_GIT_PROMPT_MODIFIED}${indicators}" indicators="${ZSH_THEME_GIT_PROMPT_MODIFIED}${indicators}"
fi fi
if [[ "$line" == R\ \ * ]] && [[ renamed != 'yes' ]]; then if [[ "$line" == R\ \ * ]] && ! check-bool "$renamed"; then
renamed='yes' renamed='yes'
indicators="${ZSH_THEME_GIT_PROMPT_RENAMED}${indicators}" indicators="${ZSH_THEME_GIT_PROMPT_RENAMED}${indicators}"
fi fi
if [[ "$line" == ( D|AD)\ * ]] && [[ deleted != 'yes' ]]; then if [[ "$line" == ( D|AD)\ * ]] && ! check-bool "$deleted"; then
deleted='yes' deleted='yes'
indicators="${ZSH_THEME_GIT_PROMPT_DELETED}${indicators}" indicators="${ZSH_THEME_GIT_PROMPT_DELETED}${indicators}"
fi fi
if [[ "$line" == UU\ * ]] && [[ unmerged != 'yes' ]]; then if [[ "$line" == UU\ * ]] && ! check-bool "$unmerged"; then
unmerged='yes' unmerged='yes'
indicators="${ZSH_THEME_GIT_PROMPT_UNMERGED}${indicators}" indicators="${ZSH_THEME_GIT_PROMPT_UNMERGED}${indicators}"
fi fi

Loading…
Cancel
Save