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 * whln_st.c 29 * 30 * XCurses Library 31 * 32 * Copyright 1990, 1995 by Mortice Kern Systems Inc. All rights reserved. 33 * 34 */ 35 36 #ifdef M_RCSID 37 #ifndef lint 38 static char rcsID[] = "$Header: /rd/src/libc/xcurses/rcs/whln_st.c 1.4 1995/07/07 18:53:05 ant Exp $"; 39 #endif 40 #endif 41 42 #include <private.h> 43 44 int 45 whline_set(w, h, n) 46 WINDOW *w; 47 const cchar_t *h; 48 int n; 49 { 50 int x, width; 51 52 #ifdef M_CURSES_TRACE 53 __m_trace("whline_set(%p, %p, %d)", w, h, n); 54 #endif 55 56 if (h == (const cchar_t *) 0) 57 h = WACS_HLINE; 58 59 n += w->_curx; 60 if (w->_maxx < n) 61 n = w->_maxx; 62 63 for (x = w->_curx; x < n; x += width) 64 if ((width = __m_cc_replace(w, w->_cury, x, h, 0)) == -1) 65 return __m_return_code("whline_set", ERR); 66 67 WSYNC(w); 68 69 return __m_return_code("whline_set", WFLUSH(w)); 70 } 71 72 int 73 wvline_set(w, v, n) 74 WINDOW *w; 75 const cchar_t *v; 76 int n; 77 { 78 int y; 79 80 #ifdef M_CURSES_TRACE 81 __m_trace("wvline_set(%p, %p, %d)", w, v, n); 82 #endif 83 84 if (v == (const cchar_t *) 0) 85 v = WACS_VLINE; 86 87 n += w->_cury; 88 if (w->_maxy < n) 89 n = w->_maxy; 90 91 for (y = w->_cury; y < n; ++y) 92 if (__m_cc_replace(w, y, w->_curx, v, 0) == -1) 93 return __m_return_code("wvline_set", ERR); 94 95 WSYNC(w); 96 97 return __m_return_code("wvline_set", WFLUSH(w)); 98 } 99 100