Module Name: src
Committed By: blymn
Date: Sat Dec 25 09:59:52 UTC 2010
Modified Files:
src/lib/libcurses: border.c
Log Message:
Allow attributes to be applied to the default line drawing characters
by just passing attributes as arguments to the wborder call.
To generate a diff of this commit:
cvs rdiff -u -r1.13 -r1.14 src/lib/libcurses/border.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/lib/libcurses/border.c
diff -u src/lib/libcurses/border.c:1.13 src/lib/libcurses/border.c:1.14
--- src/lib/libcurses/border.c:1.13 Tue Feb 23 19:48:26 2010
+++ src/lib/libcurses/border.c Sat Dec 25 09:59:52 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: border.c,v 1.13 2010/02/23 19:48:26 drochner Exp $ */
+/* $NetBSD: border.c,v 1.14 2010/12/25 09:59:52 blymn Exp $ */
/*
* Copyright (c) 2000 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
#include <sys/cdefs.h>
#ifndef lint
-__RCSID("$NetBSD: border.c,v 1.13 2010/02/23 19:48:26 drochner Exp $");
+__RCSID("$NetBSD: border.c,v 1.14 2010/12/25 09:59:52 blymn Exp $");
#endif /* not lint */
#include <stdlib.h>
@@ -161,20 +161,23 @@
cchar_t ls, rs, ts, bs, tl, tr, bl, br;
cchar_t *lsp, *rsp, *tsp, *bsp, *tlp, *trp, *blp, *brp;
-#define S(in, out) \
+#define S(in, out, def) \
if (in & __CHARTEXT) { \
__cursesi_chtype_to_cchar(in, &out); \
- out##p = &out; \
- } else \
- out##p = NULL
- S(left, ls);
- S(right, rs);
- S(top, ts);
- S(bottom, bs);
- S(topleft, tl);
- S(topright, tr);
- S(botleft, bl);
- S(botright, br);
+ } else { \
+ memcpy(&out, def, sizeof(cchar_t)); \
+ out.attributes |= in & __ATTRIBUTES; \
+ } \
+ out##p = &out;
+
+ S(left, ls, WACS_VLINE);
+ S(right, rs, WACS_VLINE);
+ S(top, ts, WACS_HLINE);
+ S(bottom, bs, WACS_HLINE);
+ S(topleft, tl, WACS_ULCORNER);
+ S(topright, tr, WACS_URCORNER);
+ S(botleft, bl, WACS_LLCORNER);
+ S(botright, br, WACS_LRCORNER);
#undef S
return wborder_set(win, lsp, rsp, tsp, bsp, tlp, trp, blp, brp);
#endif /* HAVE_WCHAR */