X-Git-Url: https://git.madduck.net/etc/zsh.git/blobdiff_plain/e45b0db3d66ca9e041622db3d801d026fb4d3724..33230b65afa1076218abff057d0bbcc7486af0a8:/.zsh/zshrc/40-baseconv diff --git a/.zsh/zshrc/40-baseconv b/.zsh/zshrc/40-baseconv new file mode 100644 index 0000000..b180e22 --- /dev/null +++ b/.zsh/zshrc/40-baseconv @@ -0,0 +1,28 @@ +# +# zsh-based conversion between numeric bases +# +# Copyright © 1994–2017 martin f. krafft +# Released under the terms of the Artistic Licence 2.0 +# +# Source repository: http://git.madduck.net/v/etc/zsh.git +# + +function baseconv() { + if [ $# -ne 3 ]; then + echo Usage: ${0##*/} ibase obase number + return 1 + fi + + typeset -li $2 var + eval ((var=${1}#${3})) + echo ${var#*\#} +} + +typeset -lA bases=(b 2 o 8 d 10 h 16) +typeset -l {k,v}{1,2} +for k1 v1 in ${(kv)bases}; do + for k2 v2 in ${(kv)bases}; do + [[ $k1 == $k2 ]] && continue + eval alias ${k1}2${k2}="'baseconv $v1 $v2'" + done +done