#   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/>.
#
declare -a A
mapfile A < mapfile.data
for (( i = 0 ; i < ${#A[@]} ; i++ )); do
    echo -n "${A[${i}]}"
done

declare -a B
mapfile -t B < mapfile.data
for (( i = 0 ; i < ${#B[@]} ; i++ )); do
    echo "${B[${i}]}"
done

mapfile -C "echo" -c 1 A < mapfile.data
mapfile -C "echo" -c 3 A < mapfile.data
mapfile -C "echo" -c 19 A < mapfile.data

declare -a C
mapfile -t -u 3 C 3< mapfile.data < mapfile.tests
for (( i = 0 ; i < ${#C[@]} ; i++ )); do
    echo "${C[${i}]}"
done


declare -a D
for (( i = 0 ; i < 30; i++ )); do
    D[${i}]="[$i] aaa"
done
mapfile -O 10 -t D < mapfile.data
for (( i = 0 ; i < ${#D[@]} ; i++ )); do
    echo "${D[${i}]}"
done

declare -a E
for (( i = 0 ; i < 30; i++ )); do
    E[${i}]="[$i] aaa"
done
mapfile -O 10 -n 5 -t E < mapfile.data
for (( i = 0 ; i < ${#E[@]} ; i++ )); do
    echo "${E[${i}]}"
done

unset -v s array
s=$'a\xffb\xffc\xff'
mapfile -t -d $'\xff' array <<<"$s"
declare -p array
unset -v s array

${THIS_SH} ./mapfile1.sub
${THIS_SH} ./mapfile2.sub
