Importing games/colorbars

No Minix specific changes needed.

Change-Id: Id853551c7d19adc68cfc76ddc353bccf0510387a
This commit is contained in:
Thomas Cort 2014-06-08 07:07:55 -04:00 committed by Lionel Sambuc
parent 7896beeeca
commit 7b1dfc682a
6 changed files with 184 additions and 1 deletions

View File

@ -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

View File

@ -9,7 +9,7 @@
SUBDIR= adventure arithmetic \
bcd \
\
colorbars \
factor fortune \
monop morse number \
pig ppt primes \

9
games/colorbars/Makefile Normal file
View File

@ -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 <bsd.prog.mk>

View File

@ -0,0 +1,47 @@
.\" $NetBSD: colorbars.6,v 1.3 2012/06/09 23:15:13 njoly Exp $
.\"
.\" Copyright (c) 2012 Nathanial Sloss <nathanialsloss@yahoo.com.au>
.\" 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

124
games/colorbars/colorbars.c Normal file
View File

@ -0,0 +1,124 @@
/* $NetBSD: colorbars.c,v 1.1 2012/06/06 00:13:36 christos Exp $ */
/*-
* Copyright (c) 2012 Nathanial Sloss <nathanialsloss@yahoo.com.au>
* 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 <sys/cdefs.h>
__RCSID("$NetBSD: colorbars.c,v 1.1 2012/06/06 00:13:36 christos Exp $");
#include <curses.h>
#include <stdio.h>
#include <string.h>
#include <err.h>
#include <stdlib.h>
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;
}

View File

@ -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