#   This program is free software: you can redistribute it and/or modify
#   it under the terms of the GNU General Public License as published by
#   the Free Software Foundation, either version 3 of the License, or
#   (at your option) any later version.
#
#   This program is distributed in the hope that it will be useful,
#   but WITHOUT ANY WARRANTY; without even the implied warranty of
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#   GNU General Public License for more details.
#
#   You should have received a copy of the GNU General Public License
#   along with this program.  If not, see <http://www.gnu.org/licenses/>.
#
a=$'a\001b'

set $a

b=$a
c=$1
d="$1"

e=$'uv\001\001wx'

recho a $a ${#a}
recho 1 $1 ${#1}
recho b $b ${#b}
recho c $c ${#c}
recho d $d ${#d}

recho a ${a} ${#a}
recho 1 ${1} ${#1}
recho b ${b} ${#b}
recho c ${c} ${#c}
recho d ${d} ${#d}

recho a "$a" ${#a}
recho 1 "$1" ${#1}
recho b "$b" ${#b}
recho c "$c" ${#c}
recho d "$d" ${#d}

recho a "${a}" ${#a}
recho 1 "${1}" ${#1}
recho b "${b}" ${#b}
recho c "${c}" ${#c}
recho d "${d}" ${#d}

set $e

recho e1 ${e:1:3}
recho e2 "${e:1:3}"
recho e3 ${1:1:3}
recho e4 "${1:1:3}"

arr[0]=$e
arr[1]=$e

recho a1 ${arr:0:4}
recho a2 "${arr:0:4}"

recho a3 ${arr[@]:0:2}
recho a4 "${arr[@]:0:2}"

set $e $e

recho p1 ${@:1:2}
recho p2 "${@:1:2}"

recho p1 ${*:1:2}
recho p2 "${*:1:2}"

recho $e

recho 'uvwx'

f='uvwx'

recho $f

echo -en "\01" | cat -v
echo

huhu() { echo "$1"; };

huhu $(echo -en "\01") | cat -v
huhu $(echo -en "\02") | cat -v

f=$'uv\001w\001xy'

set $f $f

recho f1 ${f:1:3}
recho f2 "${f:1:3}"

arr[0]=$f
arr[1]=$f

recho a1 ${arr:0:4}
recho a2 "${arr:0:4}"
recho a3 ${arr[0]:0:4}
recho a4 "${arr[0]:0:4}"

recho e1 ${f:0:4}
recho e2 "${f:0:4}"

recho d1 ${1:2:2}
recho d2 "${1:2:2}"

recho @1 ${@:1:2}
recho @2 "${@:1:2}"

declare -A assoc
assoc=( [0]=$e [1]=$e )

recho aa1 ${assoc:0:4}
recho aa2 "${assoc:0:4}"

recho aa3 ${assoc[@]:0:2}
recho aa4 "${assoc[@]:0:2}"
