# Copyright (c) 2010, 2012, 2013, 2014
#       Thorsten Glaser <tg@mirbsd.org>
# This file is provided under the same terms as mksh.
#-
# Minimal /system/etc/mkshrc for Android
#
# Support: https://launchpad.net/mksh
 
PATH="/system/bin:/system/xbin"
export PATH
 
: ${TERM:=vt100} ${HOME:=/data} ${MKSH:=/system/bin/sh} ${HOSTNAME:=$(/system/bin/getprop ro.product.device)}
: ${SHELL:=$MKSH} ${USER:=$(typeset x=$(id); x=${x#*\(}; print -r -- ${x%%\)*})} ${HOSTNAME:=android}
if (( USER_ID )); then PS1='$'; else PS1='#'; fi
PS4='[$EPOCHREALTIME] '; PS1='${|
        local e=$?
 
        (( e )) && REPLY+="$e|"
 
        return $e
}$USER@$HOSTNAME:${PWD:-?} '"$PS1 "
export HOME HOSTNAME MKSH SHELL TERM USER
 
alias l='ls'
alias la='l -a'
alias ll='l -l'
alias lo='l -a -l'
 
function hd {
        local -Uui16 -Z11 pos=0
        local -Uui16 -Z5 hv=2147483647
        local dasc line i
 
        cat "$@" | { set +U; if read -arN -1 line; then
                typeset -i1 line
                i=0
                while (( i < ${#line[*]} )); do
                        hv=${line[i++]}
                        if (( (pos & 15) == 0 )); then
                                (( pos )) && print -r -- "$dasc|"
                                print -n "${pos#16#}  "
                                dasc=' |'
                        fi
                        print -n "${hv#16#} "
                        if (( (hv < 32) || (hv > 126) )); then
                                dasc+=.
                        else
                                dasc+=${line[i-1]#1#}
                        fi
                        (( (pos++ & 15) == 7 )) && print -n -- '- '
                done
                while (( pos & 15 )); do
                        print -n '   '
                        (( (pos++ & 15) == 7 )) && print -n -- '- '
                done
                (( hv == 2147483647 )) || print -r -- "$dasc|"
        fi; }
}
 
function more {
        (
                set +m
                cat "$@" |&
                trap "rv=\$?; kill $! >/dev/null 2>&1; exit \$rv" EXIT
                while IFS= read -pr line; do
                        llen=${%line}
                        (( llen == -1 )) && llen=${#line}
                        (( llen = llen ? (llen + COLUMNS - 1) / COLUMNS : 1 ))
                        if (( (curlin += llen) >= LINES )); then
                                print -n -- '\033[7m--more--\033[0m'
                                read -u1 || exit $?
                                [[ $REPLY = [Qq]* ]] && exit 0
                                curlin=$llen
                        fi
                        print -r -- "$line"
                done
        )
}
 
function setenv {
        eval export "\"$1\""'="$2"'
}
 
for p in ~/.bin; do
        [[ -d $p/. ]] || continue
        [[ :$PATH: = *:$p:* ]] || PATH=$p:$PATH
done
 
unset p
 
: place customisations above this line
