xunfunction() {
emulate -L zsh
local -a funcs
+ local func
funcs=(salias xcat xsource xunfunction zrcautoload zrcautozle)
for func in $funcs ; do
[[ -n ${functions[$func]} ]] \
for var in LANG LC_ALL LC_MESSAGES ; do
[[ -n ${(P)var} ]] && export $var
done
+builtin unset -v var
# set some variables
if check_com -c vim ; then
is4 && \
for mod in parameter complist deltochar mathfunc ; do
zmodload -i zsh/${mod} 2>/dev/null || print "Notice: no ${mod} available :("
-done
+done && builtin unset -v mod
# autoload zsh modules when they are referenced
if is4 ; then
# host completion
if is42 ; then
- [[ -r ~/.ssh/config ]] && _ssh_config_hosts=(${${${(@M)${(f)"$(<$HOME/.ssh/config)"}:#Host *}#Host }:#*[*?]*}) || _ssh_config_hosts=()
+ [[ -r ~/.ssh/config ]] && _ssh_config_hosts=(${${(s: :)${(ps:\t:)${${(@M)${(f)"$(<$HOME/.ssh/config)"}:#Host *}#Host }}}:#*[*?]*}) || _ssh_config_hosts=()
[[ -r ~/.ssh/known_hosts ]] && _ssh_hosts=(${${${${(f)"$(<$HOME/.ssh/known_hosts)"}:#[\|]*}%%\ *}%%,*}) || _ssh_hosts=()
[[ -r /etc/hosts ]] && : ${(A)_etc_hosts:=${(s: :)${(ps:\t:)${${(f)~~"$(</etc/hosts)"}%%\#*}##[:blank:]#[^[:blank:]]#}}} || _etc_hosts=()
else
if [[ -r $HELP_ZLE_CACHE_FILE ]]; then
local load_cache=0
+ local f
for f ($HELPZLE_KEYBINDING_FILES) [[ $f -nt $HELP_ZLE_CACHE_FILE ]] && load_cache=1
[[ $load_cache -eq 0 ]] && . $HELP_ZLE_CACHE_FILE && return
fi
typeset -g -a help_zle_lines
typeset -g help_zle_sln=1
- local k v
+ local k v f cline
local lastkeybind_desc contents #last description starting with #k# that we found
local num_lines_elapsed=0 #number of lines between last description and keybinding
#search config files in the order they a called (and thus the order in which they overwrite keybindings)
do
bind2maps emacs viins vicmd -- -s $seq $wid
done
+ builtin unset -v seq wid
fi
if zrcgotkeymap menuselect; then
# below, which gets called when the user does this: prompt -h grml
function prompt_grml_help () {
- cat <<__EOF0__
+ <<__EOF0__
prompt grml
This is the prompt as used by the grml-live system <http://grml.org>. It is
}
function prompt_grml-chroot_help () {
- cat <<__EOF0__
+ <<__EOF0__
prompt grml-chroot
This is a variation of the grml prompt, see: prompt -h grml
}
function prompt_grml-large_help () {
- cat <<__EOF0__
+ <<__EOF0__
prompt grml-large
This is a variation of the grml prompt, see: prompt -h grml
}
function GRML_theme_add_token_usage () {
- cat <<__EOF__
+ <<__EOF0__
Usage: grml_theme_add_token <name> [-f|-i] <token/function> [<pre> <post>]
<name> is the name for the newly added token. If the \`-f' or \`-i' options
After that, you will be able to use a changed \`items' style to
assemble your prompt.
-__EOF__
+__EOF0__
}
function grml_theme_add_token () {
[[ -n ${aliases[utf2iso]} ]] && unalias utf2iso
utf2iso() {
if isutfenv ; then
+ local ENV
for ENV in $(env | command grep -i '.utf') ; do
eval export "$(echo $ENV | sed 's/UTF-8/iso885915/ ; s/utf8/iso885915/')"
done
[[ -n ${aliases[iso2utf]} ]] && unalias iso2utf
iso2utf() {
if ! isutfenv ; then
+ local ENV
for ENV in $(env | command grep -i '\.iso') ; do
eval export "$(echo $ENV | sed 's/iso.*/UTF-8/ ; s/ISO.*/UTF-8/')"
done
if [[ -L /usr/bin/cdrecord ]] || ! check_com -c cdrecord; then
if check_com -c wodim; then
cdrecord() {
- cat <<EOMESS
+ <<__EOF0__
cdrecord is not provided under its original name by Debian anymore.
See #377109 in the BTS of Debian for more details.
Please use the wodim binary instead
-EOMESS
+__EOF0__
return 1
}
fi
eval "$i() { __start_stop $i \"\$1\" \"\$2\" ; }"
compdef _grmlinitd $i
done
+ builtin unset -v i
fi
#f1# Provides useful information on globbing
}
# make sure our environment is clean regarding colors
-for color in BLUE RED GREEN CYAN YELLOW MAGENTA WHITE ; unset $color
+for var in BLUE RED GREEN CYAN YELLOW MAGENTA WHITE ; unset $var
+builtin unset -v var
# "persistent history"
# just write important commands you always need to ~/.important_commands
bk() {
emulate -L zsh
local current_date=$(date -u "+%Y-%m-%dT%H:%M:%SZ")
- local clean keep move verbose result all
+ local clean keep move verbose result all to_bk
setopt extended_glob
keep=1
while getopts ":hacmrv" opt; do
m) unset keep clean && (( ++move ));;
r) unset move keep && (( ++clean ));;
v) verbose="-v";;
- h) cat << EOT
+ h) <<__EOF0__
bk [-hcmv] FILE [FILE ...]
bk -r [-av] [FILE [FILE ...]]
Backup a file or folder in place and append the timestamp
the last one is used.
The return code is the sum of all cp/mv/rm return codes.
-EOT
-; return 0;;
+__EOF0__
+return 0;;
\?) bk -h >&2; return 1;;
esac
done
shift "$((OPTIND-1))"
if (( keep > 0 )); then
- while (( $# > 0 )); do
- if islinux || isfreebsd; then
- cp $verbose -a "${1%/}" "${1%/}_$current_date"
- else
- cp $verbose -pR "${1%/}" "${1%/}_$current_date"
- fi
- (( result += $? ))
- shift
- done
+ if islinux || isfreebsd; then
+ for to_bk in "$@"; do
+ cp $verbose -a "${to_bk%/}" "${to_bk%/}_$current_date"
+ (( result += $? ))
+ done
+ else
+ for to_bk in "$@"; do
+ cp $verbose -pR "${to_bk%/}" "${to_bk%/}_$current_date"
+ (( result += $? ))
+ done
+ fi
elif (( move > 0 )); then
while (( $# > 0 )); do
mv $verbose "${1%/}" "${1%/}_$current_date"
done
elif (( clean > 0 )); then
if (( $# > 0 )); then
- while (( $# > 0 )); do
- rm $verbose -rf "${1%/}"_[0-9](#c4,)-(0[0-9]|1[0-2])-([0-2][0-9]|3[0-1])T([0-1][0-9]|2[0-3])(:[0-5][0-9])(#c2)Z
+ for to_bk in "$@"; do
+ rm $verbose -rf "${to_bk%/}"_[0-9](#c4,)-(0[0-9]|1[0-2])-([0-2][0-9]|3[0-1])T([0-1][0-9]|2[0-3])(:[0-5][0-9])(#c2)Z
(( result += $? ))
- shift
done
else
if (( all > 0 )); then
fi
# Translate DE<=>EN
-# 'translate' looks up fot a word in a file with language-to-language
+# 'translate' looks up a word in a file with language-to-language
# translations (field separator should be " : "). A typical wordlist looks
-# like at follows:
-# | english-word : german-transmission
+# like the following:
+# | english-word : german-translation
# It's also only possible to translate english to german but not reciprocal.
-# Use the following oneliner to turn back the sort order:
+# Use the following oneliner to reverse the sort order:
# $ awk -F ':' '{ print $2" : "$1" "$3 }' \
# /usr/local/lib/words/en-de.ISO-8859-1.vok > ~/.translate/de-en.ISO-8859-1.vok
#f5# Translates a word
simple-extract() {
emulate -L zsh
setopt extended_glob noclobber
- local DELETE_ORIGINAL DECOMP_CMD USES_STDIN USES_STDOUT GZTARGET WGET_CMD
+ local ARCHIVE DELETE_ORIGINAL DECOMP_CMD USES_STDIN USES_STDOUT GZTARGET WGET_CMD
local RC=0
zparseopts -D -E "d=DELETE_ORIGINAL"
for ARCHIVE in "${@}"; do
elif [[ "$ARCHIVE" == (#s)(https|http|ftp)://* ]] ; then
if check_com curl; then
- WGET_CMD="curl -L -k -s -o -"
+ WGET_CMD="curl -L -s -o -"
elif check_com wget; then
- WGET_CMD="wget -q -O - --no-check-certificate"
+ WGET_CMD="wget -q -O -"
+ elif check_com fetch; then
+ WGET_CMD="fetch -q -o -"
else
- print "ERROR: neither wget nor curl is installed" >&2
+ print "ERROR: neither wget, curl nor fetch is installed" >&2
RC=$((RC+4))
continue
fi
#f5# GNU like diff for mercurial
hgdi() {
emulate -L zsh
+ local i
for i in $(hg status -marn "$@") ; diff -ubwd <(hg cat "$i") "$i"
}