1 /*
2 * CDDL HEADER START
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License, Version 1.0 only
6 * (the "License"). You may not use this file except in compliance
7 * with the License.
8 *
9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 * or http://www.opensolaris.org/os/licensing.
11 * See the License for the specific language governing permissions
12 * and limitations under the License.
13 *
14 * When distributing Covered Code, include this CDDL HEADER in each
15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 * If applicable, add the following below this CDDL HEADER, with the
17 * fields enclosed by brackets "[]" replaced with your own identifying
18 * information: Portions Copyright [yyyy] [name of copyright owner]
19 *
20 * CDDL HEADER END
21 */
22 /*
23 * Copyright (c) 1995, by Sun Microsystems, Inc.
24 * All rights reserved.
25 */
26
27 /*
28 * attron.c
29 *
30 * Copyright 1990, 1995 by Mortice Kern Systems Inc. All rights reserved.
31 *
32 */
33
34 #ifdef M_RCSID
35 #ifndef lint
36 static char rcsID[] = "$Header: /rd/src/libc/xcurses/rcs/attron.c 1.3 1995/07/07 17:59:14 ant Exp $";
37 #endif
38 #endif
39
40 #include <private.h>
41
42 int
attron(int at)43 attron(int at)
44 {
45 cchar_t cc;
46
47 #ifdef M_CURSES_TRACE
48 __m_trace("attron(%lx)", at);
49 #endif
50
51 (void) __m_chtype_cc((chtype) at, &cc);
52 stdscr->_fg._at |= cc._at;
53
54 return __m_return_code("attron", OK);
55 }
56
57 int
attroff(int at)58 attroff(int at)
59 {
60 cchar_t cc;
61
62 #ifdef M_CURSES_TRACE
63 __m_trace("attroff(%lx)", (long) at);
64 #endif
65
66 (void) __m_chtype_cc((chtype) at, &cc);
67 stdscr->_fg._at &= ~cc._at;
68
69 return __m_return_code("attroff", OK);
70 }
71
72 int
attrset(int at)73 attrset(int at)
74 {
75 cchar_t cc;
76
77 #ifdef M_CURSES_TRACE
78 __m_trace("attrset(%lx)", (long) at);
79 #endif
80
81 (void) __m_chtype_cc((chtype) at, &cc);
82 stdscr->_fg._co = cc._co;
83 stdscr->_fg._at = cc._at;
84
85 return __m_return_code("attrset", OK);
86 }
87
chtype(COLOR_PAIR)88 chtype
89 (COLOR_PAIR)(short co)
90 {
91 chtype ch;
92
93 #ifdef M_CURSES_TRACE
94 __m_trace("COLOR_PAIR(%d)", co);
95 #endif
96
97 ch = (chtype)(co) << __COLOR_SHIFT;
98
99 return __m_return_chtype("COLOR_PAIR", ch);
100 }
101
102 short
103 (PAIR_NUMBER)(chtype at)
104 {
105 short pair;
106
107 #ifdef M_CURSES_TRACE
108 __m_trace("PAIR_NUMBER(%ld)", at);
109 #endif
110
111 pair = (short) ((at & A_COLOR) >> __COLOR_SHIFT);
112
113 return __m_return_int("PAIR_NUMBER", pair);
114 }
115