mirror of
https://github.com/Aigor44/ncursesw-morphos.git
synced 2025-03-07 16:16:53 +08:00
+ add tput-colorcube demo script. + add -r and -s options to tput-initc demo, to match usage in xterm. + flush the standard output in _nc_flush for the case where SP is zero, e.g., when called via putp. This fixes a scenario where "tput flash" did not work after changes in 20130112.
131 lines
3.7 KiB
Bash
131 lines
3.7 KiB
Bash
#!/bin/sh
|
|
##############################################################################
|
|
# Copyright (c) 2016 Free Software Foundation, Inc. #
|
|
# #
|
|
# Permission is hereby granted, free of charge, to any person obtaining a #
|
|
# copy of this software and associated documentation files (the "Software"), #
|
|
# to deal in the Software without restriction, including without limitation #
|
|
# the rights to use, copy, modify, merge, publish, distribute, distribute #
|
|
# with modifications, sublicense, and/or sell copies of the Software, and to #
|
|
# permit persons to whom the Software is furnished to do so, subject to the #
|
|
# following conditions: #
|
|
# #
|
|
# The above copyright notice and this permission notice shall be included in #
|
|
# all copies or substantial portions of the Software. #
|
|
# #
|
|
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR #
|
|
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, #
|
|
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL #
|
|
# THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER #
|
|
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING #
|
|
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER #
|
|
# DEALINGS IN THE SOFTWARE. #
|
|
# #
|
|
# Except as contained in this notice, the name(s) of the above copyright #
|
|
# holders shall not be used in advertising or otherwise to promote the sale, #
|
|
# use or other dealings in this Software without prior written #
|
|
# authorization. #
|
|
##############################################################################
|
|
# $Id: tput-colorcube,v 1.1 2016/12/17 23:37:37 tom Exp $
|
|
# Use this script to print an xterm-style color cube, e.g., as done in
|
|
# the xterm 88colors2.pl and 256colors2.pl scripts.
|
|
|
|
failed() {
|
|
printf "?? $*\n" >&2
|
|
exit 1
|
|
}
|
|
|
|
newline() {
|
|
tput op
|
|
printf "\n"
|
|
}
|
|
|
|
if [ $# = 1 ]
|
|
then
|
|
myterm=$1
|
|
elif [ $# = 0 ]
|
|
then
|
|
myterm=$TERM
|
|
else
|
|
failed "expected one parameter or none"
|
|
fi
|
|
|
|
colors=$(tput -T $myterm colors 2>/dev/null)
|
|
if [ ${colors:-0} -le 0 ]
|
|
then
|
|
myterm=${myterm%%-color}
|
|
colors=$(tput -T $myterm colors 2>/dev/null)
|
|
fi
|
|
if [ ${colors:-0} -le 0 ]
|
|
then
|
|
failed "terminal $myterm does not support color"
|
|
fi
|
|
|
|
printf "System colors:\n"
|
|
|
|
color=0
|
|
inrow=$colors
|
|
to_do=$colors
|
|
[ $colors -gt 256 ] && colors=256
|
|
[ $inrow -gt 8 ] && inrow=8
|
|
[ $to_do -gt 16 ] && to_do=16
|
|
while [ $color -lt $to_do ]
|
|
do
|
|
[ $color = $inrow ] && newline
|
|
tput setab $color
|
|
printf ' '
|
|
color=$(expr $color + 1)
|
|
done
|
|
newline
|
|
|
|
[ $colors -le 16 ] && exit
|
|
|
|
if [ $colors = 256 ]
|
|
then
|
|
cube=6
|
|
ramp=232
|
|
elif [ $colors -ge 88 ]
|
|
then
|
|
cube=4
|
|
ramp=80
|
|
else
|
|
exit
|
|
fi
|
|
|
|
printf "\n"
|
|
printf "Color cube, ${cube}x${cube}x${cube}:\n"
|
|
g=0
|
|
cube2=$(expr $cube \* $cube)
|
|
while [ $g -lt $cube ]
|
|
do
|
|
r=0
|
|
while [ $r -lt $cube ]
|
|
do
|
|
b=0
|
|
while [ $b -lt $cube ]
|
|
do
|
|
color=$(expr 16 + \( $r \* $cube2 \) + \( $g \* $cube \) + $b)
|
|
tput setab $color
|
|
printf ' '
|
|
b=$(expr $b + 1)
|
|
done
|
|
tput op
|
|
printf ' '
|
|
r=$(expr $r + 1)
|
|
done
|
|
newline
|
|
g=$(expr $g + 1)
|
|
done
|
|
|
|
printf "\n"
|
|
printf "Grayscale ramp:\n"
|
|
color=$ramp
|
|
while [ $color -lt $colors ]
|
|
do
|
|
tput setab $color
|
|
printf ' '
|
|
color=$(expr $color + 1)
|
|
done
|
|
newline
|
|
# vi:ts=4 sw=4
|