1/**************************************************************************** 2 * Copyright (c) 1998-2002,2006 Free Software Foundation, Inc. * 3 * * 4 * Permission is hereby granted, free of charge, to any person obtaining a * 5 * copy of this software and associated documentation files (the * 6 * "Software"), to deal in the Software without restriction, including * 7 * without limitation the rights to use, copy, modify, merge, publish, * 8 * distribute, distribute with modifications, sublicense, and/or sell * 9 * copies of the Software, and to permit persons to whom the Software is * 10 * furnished to do so, subject to the following conditions: * 11 * * 12 * The above copyright notice and this permission notice shall be included * 13 * in all copies or substantial portions of the Software. * 14 * * 15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * 16 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * 17 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * 18 * IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * 19 * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * 20 * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * 21 * THE USE OR OTHER DEALINGS IN THE SOFTWARE. * 22 * * 23 * Except as contained in this notice, the name(s) of the above copyright * 24 * holders shall not be used in advertising or otherwise to promote the * 25 * sale, use or other dealings in this Software without prior written * 26 * authorization. * 27 ****************************************************************************/ 28/* 29 * This is an example written by Alexander V. Lukyanov <lav@yars.free.net>, 30 * to demonstrate an inconsistency between ncurses and SVr4 curses. 31 * 32 * $Id: testaddch.c,v 1.6 2006/04/01 19:08:03 tom Exp $ 33 */ 34#include <test.priv.h> 35 36static void 37attr_addstr(const char *s, chtype a) 38{ 39 while (*s) 40 addch(((unsigned char) (*s++)) | a); 41} 42 43int 44main( 45 int argc GCC_UNUSED, 46 char *argv[]GCC_UNUSED) 47{ 48 unsigned i; 49 chtype back, set, attr; 50 51 setlocale(LC_ALL, ""); 52 53 initscr(); 54 start_color(); 55 init_pair(1, COLOR_WHITE, COLOR_BLUE); 56 init_pair(2, COLOR_WHITE, COLOR_RED); 57 init_pair(3, COLOR_BLACK, COLOR_MAGENTA); 58 init_pair(4, COLOR_BLACK, COLOR_GREEN); 59 init_pair(5, COLOR_BLACK, COLOR_CYAN); 60 init_pair(6, COLOR_BLACK, COLOR_YELLOW); 61 init_pair(7, COLOR_BLACK, COLOR_WHITE); 62 63 for (i = 0; i < 8; i++) { 64 back = (i & 1) ? A_BOLD | 'B' : ' '; 65 set = (i & 2) ? A_REVERSE : 0; 66 attr = (i & 4) ? COLOR_PAIR(4) : 0; 67 68 bkgdset(back); 69 attrset(set); 70 71 attr_addstr("Test string with spaces -> <-\n", attr); 72 } 73 addch('\n'); 74 for (i = 0; i < 8; i++) { 75 back = (i & 1) ? A_BOLD | 'B' | COLOR_PAIR(1) : ' '; 76 set = (i & 2) ? A_REVERSE | COLOR_PAIR(2) : 0; 77 attr = (i & 4) ? COLOR_PAIR(4) : 0; 78 79 bkgdset(back); 80 attrset(set); 81 82 attr_addstr("Test string with spaces -> <-\n", attr); 83 } 84 85 getch(); 86 endwin(); 87 ExitProgram(EXIT_SUCCESS); 88} 89