diff options
Diffstat (limited to 'lib/libcurses/lib_box.c')
-rw-r--r-- | lib/libcurses/lib_box.c | 68 |
1 files changed, 41 insertions, 27 deletions
diff --git a/lib/libcurses/lib_box.c b/lib/libcurses/lib_box.c index bf45be33336..2eaf312238a 100644 --- a/lib/libcurses/lib_box.c +++ b/lib/libcurses/lib_box.c @@ -31,7 +31,9 @@ ** */ -#include "curses.priv.h" +#include <curses.priv.h> + +MODULE_ID("Id: lib_box.c,v 1.7 1997/04/12 17:51:49 tom Exp $") int wborder(WINDOW *win, chtype ls, chtype rs, chtype ts, chtype bs, chtype tl, chtype tr, chtype bl, chtype br) @@ -39,7 +41,16 @@ int wborder(WINDOW *win, chtype ls, chtype rs, chtype ts, short i; short endx, endy; - T(("wborder() called")); + T((T_CALLED("wborder(%p,%s,%s,%s,%s,%s,%s,%s,%s)"), + win, + _tracechtype2(1,ls), + _tracechtype2(2,rs), + _tracechtype2(3,ts), + _tracechtype2(4,bs), + _tracechtype2(5,tl), + _tracechtype2(6,tr), + _tracechtype2(7,bl), + _tracechtype2(8,br))); if (ls == 0) ls = ACS_VLINE; if (rs == 0) rs = ACS_VLINE; @@ -50,23 +61,23 @@ short endx, endy; if (bl == 0) bl = ACS_LLCORNER; if (br == 0) br = ACS_LRCORNER; - ls |= (win->_attrs ? win->_attrs : (win->_bkgd & A_ATTRIBUTES)); - rs |= (win->_attrs ? win->_attrs : (win->_bkgd & A_ATTRIBUTES)); - ts |= (win->_attrs ? win->_attrs : (win->_bkgd & A_ATTRIBUTES)); - bs |= (win->_attrs ? win->_attrs : (win->_bkgd & A_ATTRIBUTES)); - tl |= (win->_attrs ? win->_attrs : (win->_bkgd & A_ATTRIBUTES)); - tr |= (win->_attrs ? win->_attrs : (win->_bkgd & A_ATTRIBUTES)); - bl |= (win->_attrs ? win->_attrs : (win->_bkgd & A_ATTRIBUTES)); - br |= (win->_attrs ? win->_attrs : (win->_bkgd & A_ATTRIBUTES)); + ls = _nc_render(win, ls); + rs = _nc_render(win, rs); + ts = _nc_render(win, ts); + bs = _nc_render(win, bs); + tl = _nc_render(win, tl); + tr = _nc_render(win, tr); + bl = _nc_render(win, bl); + br = _nc_render(win, br); - T(("using %lx, %lx, %lx, %lx, %lx, %lx, %lx, %lx", ls, rs, ts, bs, tl, tr, bl, br)); + T(("using %#lx, %#lx, %#lx, %#lx, %#lx, %#lx, %#lx, %#lx", ls, rs, ts, bs, tl, tr, bl, br)); endx = win->_maxx; endy = win->_maxy; for (i = 0; i <= endx; i++) { - win->_line[0].text[i] = ts; - win->_line[endy].text[i] = bs; + win->_line[0].text[i] = ts; + win->_line[endy].text[i] = bs; } win->_line[endy].firstchar = win->_line[0].firstchar = 0; win->_line[endy].lastchar = win->_line[0].lastchar = endx; @@ -83,7 +94,7 @@ short endx, endy; win->_line[endy].text[endx] = br; _nc_synchook(win); - return OK; + returnCode(OK); } int whline(WINDOW *win, chtype ch, int n) @@ -92,27 +103,29 @@ short line; short start; short end; - T(("whline(%p,%lx,%d) called", win, ch, n)); + T((T_CALLED("whline(%p,%s,%d)"), win, _tracechtype(ch), n)); line = win->_cury; start = win->_curx; end = start + n - 1; - if (end > win->_maxx) + if (end > win->_maxx) end = win->_maxx; - if (win->_line[line].firstchar == _NOCHANGE || win->_line[line].firstchar > start) + if (win->_line[line].firstchar == _NOCHANGE || win->_line[line].firstchar > start) win->_line[line].firstchar = start; - if (win->_line[line].lastchar == _NOCHANGE || win->_line[line].lastchar < start) + if (win->_line[line].lastchar == _NOCHANGE || win->_line[line].lastchar < start) win->_line[line].lastchar = end; if (ch == 0) ch = ACS_HLINE; + ch = _nc_render(win, ch); + while ( end >= start) { - win->_line[line].text[end] = ch | win->_attrs; + win->_line[line].text[end] = ch; end--; } - return OK; + returnCode(OK); } int wvline(WINDOW *win, chtype ch, int n) @@ -120,27 +133,28 @@ int wvline(WINDOW *win, chtype ch, int n) short row, col; short end; - T(("wvline(%p,%lx,%d) called", win, ch, n)); + T((T_CALLED("wvline(%p,%s,%d)"), win, _tracechtype(ch), n)); row = win->_cury; col = win->_curx; end = row + n - 1; - if (end > win->_maxy) + if (end > win->_maxy) end = win->_maxy; if (ch == 0) ch = ACS_VLINE; + ch = _nc_render(win, ch); while(end >= row) { - win->_line[end].text[col] = ch | win->_attrs; - if (win->_line[end].firstchar == _NOCHANGE || win->_line[end].firstchar > col) + win->_line[end].text[col] = ch; + if (win->_line[end].firstchar == _NOCHANGE || win->_line[end].firstchar > col) win->_line[end].firstchar = col; - if (win->_line[end].lastchar == _NOCHANGE || win->_line[end].lastchar < col) + if (win->_line[end].lastchar == _NOCHANGE || win->_line[end].lastchar < col) win->_line[end].lastchar = col; end--; } _nc_synchook(win); - return OK; + returnCode(OK); } - + |