#!/bin/sh

printf "SCO function keys (none,shift,control,shift+control):\n" | sed -e 's/[[:print:]]/_&&/g'
printf '%b' \
	'\033[M\033[N\033[O\033[P\033[Q\033[R\033[S\033[T\033[U\033[V\033[W\033[X' \
	'\033[Y\033[Z\033[a\033[b\033[c\033[d\033[e\033[f\033[g\033[h\033[i\033[j' \
	'\033[k\033[l\033[m\033[n\033[o\033[p\033[q\033[r\033[s\033[t\033[u\033[v' \
	'\033[w\033[x\033[y\033[z\033[@\033[[\033[\\\033[]\033[^\033[_\033[`\033[{' |
TERM=cons25 console-decode-ecma48

printf "Interix function keys (none,shift,?,control,shift+control):\n" | sed -e 's/[[:print:]]/_&&/g'
printf '%b' \
	'\033F1\033F2\033F3\033F4\033F5\033F6\033F7\033F8\033F9\033FA\033FB\033FC' \
	'\033FD\033FE\033FF\033FG\033FH\033FI\033FJ\033FK\033FL\033FM\033FN\033FO' \
	'\033FP\033FQ\033FR\033FS\033FT\033FU\033FV\033FW\033FX\033FY\033FZ\033Fa' \
	'\033Fb\033Fc\033Fd\033Fe\033Ff\033Fg\033Fh\033Fi\033Fj\033Fk\033Fm\033Fn' \
	'\033Fo\033Fp\033Fq\033Fr\033Fs\033Ft\033Fu\033Fv\033Fw\033Fx\033Fy\033Fz' |
TERM=interix console-decode-ecma48

printf "DEC PF keys:\n" | sed -e 's/[[:print:]]/_&&/g'
printf '%b' \
	'\033OP\033OQ\033OR\033OS\033OT' |
console-decode-ecma48

printf "DEC function keys:\n" | sed -e 's/[[:print:]]/_&&/g'
for i in '' ';2' ';5' ';6' ';8' ; do printf '%b' \
	'\033[11'"$i"'~\033[12'"$i"'~\033[13'"$i"'~\033[14'"$i"'~\033[15'"$i"'~' \
	'\033[16'"$i"'~' \
	'\033[17'"$i"'~\033[18'"$i"'~\033[19'"$i"'~\033[20'"$i"'~\033[21'"$i"'~' \
	'\033[22'"$i"'~' \
	'\033[23'"$i"'~\033[24'"$i"'~\033[25'"$i"'~\033[26'"$i"'~' \
	'\033[27'"$i"'~' \
	'\033[28'"$i"'~\033[29'"$i"'~' \
	'\033[30'"$i"'~' \
	'\033[31'"$i"'~\033[32'"$i"'~\033[33'"$i"'~\033[34'"$i"'~' ; done |
console-decode-ecma48

printf "rxvt function keys:\n" | sed -e 's/[[:print:]]/_&&/g'
for i in '$' '^' '@' ; do printf '%b' \
	'\033[11'"$i"'\033[12'"$i"'\033[13'"$i"'\033[14'"$i"'\033[15'"$i"'' \
	'\033[16'"$i"'' \
	'\033[17'"$i"'\033[18'"$i"'\033[19'"$i"'\033[20'"$i"'\033[21'"$i"'' \
	'\033[22'"$i"'' \
	'\033[23'"$i"'\033[24'"$i"'\033[25'"$i"'\033[26'"$i"'' \
	'\033[27'"$i"'' \
	'\033[28'"$i"'\033[29'"$i"'' \
	'\033[30'"$i"'' \
	'\033[31'"$i"'\033[32'"$i"'\033[33'"$i"'\033[34'"$i"'' ; done |
TERM=rxvt console-decode-ecma48
for i in '$' '^' '@' ; do for j in 1 8 ; do printf '%b' \
	'\033[11'";$j$i"'\033[12'";$j$i"'\033[13'";$j$i"'\033[14'";$j$i"'\033[15'";$j$i"'' \
	'\033[16'";$j$i"'' \
	'\033[17'";$j$i"'\033[18'";$j$i"'\033[19'";$j$i"'\033[20'";$j$i"'\033[21'";$j$i"'' \
	'\033[22'";$j$i"'' \
	'\033[23'";$j$i"'\033[24'";$j$i"'\033[25'";$j$i"'\033[26'";$j$i"'' \
	'\033[27'";$j$i"'' \
	'\033[28'";$j$i"'\033[29'";$j$i"'' \
	'\033[30'";$j$i"'' \
	'\033[31'";$j$i"'\033[32'";$j$i"'\033[33'";$j$i"'\033[34'";$j$i"'' ; done ; done |
TERM=rxvt console-decode-ecma48
