From: Thomas Cort Date: Sun, 8 Jun 2014 11:07:55 +0000 (-0400) Subject: Importing games/colorbars X-Git-Tag: v3.3.0~205 X-Git-Url: http://zhaoyanbai.com/repos/%22http:/www.isc.org/icons/migration-4to9?a=commitdiff_plain;h=7b1dfc682aa50ae3a14ffaf20159e903ba679b1e;p=minix.git Importing games/colorbars No Minix specific changes needed. Change-Id: Id853551c7d19adc68cfc76ddc353bccf0510387a --- diff --git a/distrib/sets/lists/minix/mi b/distrib/sets/lists/minix/mi index e3b257c6f..fc077a94a 100644 --- a/distrib/sets/lists/minix/mi +++ b/distrib/sets/lists/minix/mi @@ -561,6 +561,7 @@ ./usr/games/adventure minix-sys ./usr/games/arithmetic minix-sys ./usr/games/bcd minix-sys +./usr/games/colorbars minix-sys ./usr/games/factor minix-sys ./usr/games/fortune minix-sys ./usr/games/hide minix-sys @@ -4768,6 +4769,7 @@ ./usr/man/man6/adventure.6 minix-sys ./usr/man/man6/arithmetic.6 minix-sys ./usr/man/man6/bcd.6 minix-sys +./usr/man/man6/colorbars.6 minix-sys ./usr/man/man6/factor.6 minix-sys ./usr/man/man6/fortune.6 minix-sys ./usr/man/man6/monop.6 minix-sys diff --git a/games/Makefile b/games/Makefile index 5694ec70f..ca51c2915 100644 --- a/games/Makefile +++ b/games/Makefile @@ -9,7 +9,7 @@ SUBDIR= adventure arithmetic \ bcd \ - \ + colorbars \ factor fortune \ monop morse number \ pig ppt primes \ diff --git a/games/colorbars/Makefile b/games/colorbars/Makefile new file mode 100644 index 000000000..547e4869b --- /dev/null +++ b/games/colorbars/Makefile @@ -0,0 +1,9 @@ +# $NetBSD: Makefile,v 1.3 2012/06/09 09:22:21 martin Exp $ + +WARNS?= 4 +PROG= colorbars +MAN= colorbars.6 +DPADD= ${LIBCURSES} ${LIBTERMINFO} +LDADD= -lcurses -lterminfo + +.include diff --git a/games/colorbars/colorbars.6 b/games/colorbars/colorbars.6 new file mode 100644 index 000000000..af1fa92d4 --- /dev/null +++ b/games/colorbars/colorbars.6 @@ -0,0 +1,47 @@ +.\" $NetBSD: colorbars.6,v 1.3 2012/06/09 23:15:13 njoly Exp $ +.\" +.\" Copyright (c) 2012 Nathanial Sloss +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS +.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED +.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +.\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS +.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +.\" POSSIBILITY OF SUCH DAMAGE. +.\" +.Dd June 5, 2012 +.Dt COLORBARS 6 +.Os +.Sh NAME +.Nm colorbars +.Nd display ANSI color bars +.Sh SYNOPSIS +.Nm +.Sh DESCRIPTION +The +.Nm +command displays ANSI color bars on a color capable terminal using +.Xr curses 3 . +.Sh SEE ALSO +.Xr curses 3 +.Sh HISTORY +.Nm +appeared in +.Nx 7.0 . +.Sh AUTHORS +Nathanial Sloss diff --git a/games/colorbars/colorbars.c b/games/colorbars/colorbars.c new file mode 100644 index 000000000..d3de2a431 --- /dev/null +++ b/games/colorbars/colorbars.c @@ -0,0 +1,124 @@ +/* $NetBSD: colorbars.c,v 1.1 2012/06/06 00:13:36 christos Exp $ */ + +/*- + * Copyright (c) 2012 Nathanial Sloss + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS + * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED + * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS + * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ +#include +__RCSID("$NetBSD: colorbars.c,v 1.1 2012/06/06 00:13:36 christos Exp $"); + +#include +#include +#include +#include +#include + +int +main(void) +{ + static struct colorInfo { + const char *name; + int color; + } colorInfo[] = { + { "Black", COLOR_BLACK }, + { "Red", COLOR_RED }, + { "Green", COLOR_GREEN }, + { "Yellow", COLOR_YELLOW }, + { "Blue", COLOR_BLUE }, + { "Magenta", COLOR_MAGENTA }, + { "Cyan", COLOR_CYAN }, + { "White", COLOR_WHITE }, + }; + size_t lengths[__arraycount(colorInfo)]; + + static const size_t numcolors = __arraycount(colorInfo); + size_t labelwidth; + + int colorOK; + int spacing, offsetx, labeloffsety, labeloffsetx; + + if (!initscr()) + errx(EXIT_FAILURE, "Cannot initialize curses"); + + colorOK = has_colors(); + if (!colorOK) { + endwin(); + errx(EXIT_FAILURE, "Terminal cannot display color"); + } + + if (COLS < 45 || LINES < 10) { + endwin(); + errx(EXIT_FAILURE, "Terminal size must be at least 45x10."); + } + + spacing = COLS / numcolors; + offsetx = (COLS - (spacing * numcolors)) / 2; + + + start_color(); + + labelwidth = 0; + for (size_t i = 0; i < numcolors; i++) { + lengths[i] = strlen(colorInfo[i].name); + if (lengths[i] > labelwidth) + labelwidth = lengths[i]; + init_pair(i, COLOR_WHITE, colorInfo[i].color); + } + + labeloffsetx = spacing / 2; + labeloffsety = (LINES - 1 - labelwidth) / 2; + clear(); + + move(0, 0); + + for (size_t i = 0; i < numcolors; i++) { + int xoffs = offsetx + spacing * i; + + attrset(COLOR_PAIR(i)); + + for (int line = 0; line < LINES - 1; line++) + for (int xpos = 0; xpos < spacing; xpos++) + mvprintw(line, xoffs + xpos, " "); + + attrset(COLOR_PAIR(0)); + + xoffs += labeloffsetx; + for (size_t line = 0; line < lengths[i]; line++) + mvprintw(line + labeloffsety, xoffs, "%c", + colorInfo[i].name[line]); + } + + attrset(COLOR_PAIR(0)); + + mvprintw(LINES - 1, 0, "ANSI Color chart - Press any key to exit: "); + + refresh(); + + getch(); + + endwin(); + + return EXIT_SUCCESS; +} + diff --git a/releasetools/nbsd_ports b/releasetools/nbsd_ports index 2b0163fbc..872158e0c 100644 --- a/releasetools/nbsd_ports +++ b/releasetools/nbsd_ports @@ -71,6 +71,7 @@ 2013/12/1 12:00:00,games/adventure 2013/12/1 12:00:00,games/arithmetic 2013/12/1 12:00:00,games/bcd +2013/12/1 12:00:00,games/colorbars 2013/12/1 12:00:00,games/factor 2013/12/1 12:00:00,games/fortune 2013/12/1 12:00:00,games/Makefile