2N/A/*
2N/A * CDDL HEADER START
2N/A *
2N/A * The contents of this file are subject to the terms of the
2N/A * Common Development and Distribution License, Version 1.0 only
2N/A * (the "License"). You may not use this file except in compliance
2N/A * with the License.
2N/A *
2N/A * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
2N/A * or http://www.opensolaris.org/os/licensing.
2N/A * See the License for the specific language governing permissions
2N/A * and limitations under the License.
2N/A *
2N/A * When distributing Covered Code, include this CDDL HEADER in each
2N/A * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
2N/A * If applicable, add the following below this CDDL HEADER, with the
2N/A * fields enclosed by brackets "[]" replaced with your own identifying
2N/A * information: Portions Copyright [yyyy] [name of copyright owner]
2N/A *
2N/A * CDDL HEADER END
2N/A */
2N/A/*
2N/A * Copyright (c) 1995-1998 by Sun Microsystems, Inc.
2N/A * All rights reserved.
2N/A */
2N/A
2N/A#pragma ident "%Z%%M% %I% %E% SMI"
2N/A
2N/A/* LINTLIBRARY */
2N/A
2N/A/*
2N/A * termattr.c
2N/A *
2N/A * XCurses Library
2N/A *
2N/A * Copyright 1990, 1995 by Mortice Kern Systems Inc. All rights reserved.
2N/A *
2N/A */
2N/A
2N/A#if M_RCSID
2N/A#ifndef lint
2N/Astatic char rcsID[] = "$Header: /rd/src/libc/xcurses/rcs/termattr.c 1.1 "
2N/A"1995/07/10 16:09:34 ant Exp $";
2N/A#endif
2N/A#endif
2N/A
2N/A#include <private.h>
2N/A#include <ctype.h>
2N/A
2N/Achtype
2N/Atermattrs(void)
2N/A{
2N/A chtype ch;
2N/A cchar_t cc;
2N/A
2N/A cc = __m_screen->_newscr->_bg;
2N/A cc._at = term_attrs();
2N/A ch = __m_cc_chtype(&cc) & A_ATTRIBUTES & ~A_COLOR;
2N/A
2N/A return (ch);
2N/A}
2N/A
2N/Aattr_t
2N/Aterm_attrs(void)
2N/A{
2N/A char *p;
2N/A attr_t at = 0;
2N/A
2N/A if (set_attributes) {
2N/A for (p = set_attributes; *p != '\0'; ++p) {
2N/A if (p[0] != '%' || p[1] != 'p' || !isdigit(p[2]))
2N/A continue;
2N/A
2N/A p += 2;
2N/A switch (*p) {
2N/A case 1:
2N/A at |= WA_STANDOUT;
2N/A break;
2N/A case 2:
2N/A at |= WA_UNDERLINE;
2N/A break;
2N/A case 3:
2N/A at |= WA_REVERSE;
2N/A break;
2N/A case 4:
2N/A at |= WA_BLINK;
2N/A break;
2N/A case 5:
2N/A at |= WA_DIM;
2N/A break;
2N/A case 6:
2N/A at |= WA_BOLD;
2N/A break;
2N/A case 7:
2N/A at |= WA_INVIS;
2N/A break;
2N/A case 8:
2N/A at |= WA_PROTECT;
2N/A break;
2N/A case 9:
2N/A at |= WA_ALTCHARSET;
2N/A break;
2N/A }
2N/A }
2N/A }
2N/A
2N/A if (set_a_attributes) {
2N/A for (p = set_a_attributes; *p != '\0'; ++p) {
2N/A if (p[0] != '%' || p[1] != 'p' || !isdigit(p[2]))
2N/A continue;
2N/A
2N/A p += 2;
2N/A switch (*p) {
2N/A case 1:
2N/A at |= WA_HORIZONTAL;
2N/A break;
2N/A case 2:
2N/A at |= WA_LEFT;
2N/A break;
2N/A case 3:
2N/A at |= WA_LOW;
2N/A break;
2N/A case 4:
2N/A at |= WA_RIGHT;
2N/A break;
2N/A case 5:
2N/A at |= WA_TOP;
2N/A break;
2N/A case 6:
2N/A at |= WA_VERTICAL;
2N/A break;
2N/A }
2N/A }
2N/A }
2N/A
2N/A if (enter_alt_charset_mode != NULL)
2N/A at |= WA_ALTCHARSET;
2N/A
2N/A if (enter_blink_mode != NULL)
2N/A at |= WA_BLINK;
2N/A
2N/A if (enter_bold_mode != NULL)
2N/A at |= WA_BOLD;
2N/A
2N/A if (enter_secure_mode != NULL)
2N/A at |= WA_INVIS;
2N/A
2N/A if (enter_dim_mode != NULL)
2N/A at |= WA_DIM;
2N/A
2N/A if (enter_protected_mode != NULL)
2N/A at |= WA_PROTECT;
2N/A
2N/A if (enter_reverse_mode != NULL)
2N/A at |= WA_REVERSE;
2N/A
2N/A if (enter_standout_mode != NULL)
2N/A at |= WA_STANDOUT;
2N/A
2N/A if (enter_underline_mode != NULL)
2N/A at |= WA_UNDERLINE;
2N/A
2N/A if (enter_horizontal_hl_mode != NULL)
2N/A at |= WA_HORIZONTAL;
2N/A
2N/A if (enter_left_hl_mode != NULL)
2N/A at |= WA_LEFT;
2N/A
2N/A if (enter_low_hl_mode != NULL)
2N/A at |= WA_LOW;
2N/A
2N/A if (enter_right_hl_mode != NULL)
2N/A at |= WA_RIGHT;
2N/A
2N/A if (enter_top_hl_mode != NULL)
2N/A at |= WA_TOP;
2N/A
2N/A if (enter_vertical_hl_mode != NULL)
2N/A at |= WA_VERTICAL;
2N/A
2N/A return (at);
2N/A}