summaryrefslogtreecommitdiff
path: root/ncurses/trace/lib_traceatr.c
diff options
context:
space:
mode:
Diffstat (limited to 'ncurses/trace/lib_traceatr.c')
-rw-r--r--ncurses/trace/lib_traceatr.c49
1 files changed, 30 insertions, 19 deletions
diff --git a/ncurses/trace/lib_traceatr.c b/ncurses/trace/lib_traceatr.c
index 35ba0d3..5fb0df9 100644
--- a/ncurses/trace/lib_traceatr.c
+++ b/ncurses/trace/lib_traceatr.c
@@ -1,5 +1,5 @@
/****************************************************************************
- * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. *
+ * Copyright (c) 1998-2013,2014 Free Software Foundation, Inc. *
* *
* Permission is hereby granted, free of charge, to any person obtaining a *
* copy of this software and associated documentation files (the *
@@ -43,10 +43,13 @@
#define CUR SP_TERMTYPE
#endif
-MODULE_ID("$Id: lib_traceatr.c,v 1.74 2011/01/22 19:48:01 tom Exp $")
+MODULE_ID("$Id: lib_traceatr.c,v 1.81 2014/02/01 22:09:27 tom Exp $")
#define COLOR_OF(c) ((c < 0) ? "default" : (c > 7 ? color_of(c) : colors[c].name))
+#define TRACE_BUF_SIZE(num) (_nc_globals.tracebuf_ptr[num].size)
+#define COLOR_BUF_SIZE(num) (sizeof(my_buffer[num]))
+
#ifdef TRACE
static const char l_brace[] = StringOf(L_BRACE);
@@ -65,9 +68,12 @@ color_of(int c)
my_cached = c;
my_select = !my_select;
if (c == COLOR_DEFAULT)
- strcpy(my_buffer[my_select], "default");
+ _nc_STRCPY(my_buffer[my_select], "default",
+ COLOR_BUF_SIZE(my_select));
else
- sprintf(my_buffer[my_select], "color%d", c);
+ _nc_SPRINTF(my_buffer[my_select],
+ _nc_SLIMIT(COLOR_BUF_SIZE(my_select))
+ "color%d", c);
}
return my_buffer[my_select];
}
@@ -97,6 +103,9 @@ _traceattr2(int bufnum, chtype newmode)
{ A_CHARTEXT, "A_CHARTEXT" },
{ A_NORMAL, "A_NORMAL" },
{ A_COLOR, "A_COLOR" },
+#if USE_ITALIC
+ { A_ITALIC, "A_ITALIC" },
+#endif
/* *INDENT-ON* */
}
@@ -120,14 +129,14 @@ _traceattr2(int bufnum, chtype newmode)
;
size_t n;
char temp[80];
- char *result = _nc_trace_buf(bufnum, BUFSIZ);
+ char *result = _nc_trace_buf(bufnum, (size_t) BUFSIZ);
if (result != 0) {
unsigned save_nc_tracing = _nc_tracing;
_nc_tracing = 0;
- strcpy(result, l_brace);
+ _nc_STRCPY(result, l_brace, TRACE_BUF_SIZE(bufnum));
for (n = 0; n < SIZEOF(names); n++) {
if ((newmode & names[n].val) != 0) {
@@ -139,18 +148,20 @@ _traceattr2(int bufnum, chtype newmode)
short pairnum = (short) PairNumber(newmode);
#ifdef USE_TERMLIB
/* pair_content lives in libncurses */
- (void) sprintf(temp, "{%d}", pairnum);
+ _nc_SPRINTF(temp, _nc_SLIMIT(sizeof(temp))
+ "{%d}", pairnum);
#else
- short fg, bg;
+ NCURSES_COLOR_T fg, bg;
if (pair_content(pairnum, &fg, &bg) == OK) {
- (void) sprintf(temp,
- "{%d = {%s, %s}}",
- pairnum,
- COLOR_OF(fg),
- COLOR_OF(bg));
+ _nc_SPRINTF(temp, _nc_SLIMIT(sizeof(temp))
+ "{%d = {%s, %s}}",
+ pairnum,
+ COLOR_OF(fg),
+ COLOR_OF(bg));
} else {
- (void) sprintf(temp, "{%d}", pairnum);
+ _nc_SPRINTF(temp, _nc_SLIMIT(sizeof(temp))
+ "{%d}", pairnum);
}
#endif
result = _nc_trace_bufcat(bufnum, temp);
@@ -243,7 +254,7 @@ _nc_altcharset_name(attr_t attr, chtype ch)
#if NCURSES_SP_FUNCS
(void) sp;
#endif
- if ((attr & A_ALTCHARSET) && (acs_chars != 0)) {
+ if (SP_PARM != 0 && (attr & A_ALTCHARSET) && (acs_chars != 0)) {
char *cp;
char *found = 0;
const ALT_NAMES *strp;
@@ -271,10 +282,10 @@ NCURSES_EXPORT(char *)
_tracechtype2(int bufnum, chtype ch)
{
const char *found;
- char *result = _nc_trace_buf(bufnum, BUFSIZ);
+ char *result = _nc_trace_buf(bufnum, (size_t) BUFSIZ);
if (result != 0) {
- strcpy(result, l_brace);
+ _nc_STRCPY(result, l_brace, TRACE_BUF_SIZE(bufnum));
if ((found = _nc_altcharset_name(ChAttrOf(ch), ch)) != 0) {
(void) _nc_trace_bufcat(bufnum, found);
} else
@@ -311,12 +322,12 @@ _nc_retrace_chtype(chtype code)
NCURSES_EXPORT(char *)
_tracecchar_t2(int bufnum, const cchar_t *ch)
{
- char *result = _nc_trace_buf(bufnum, BUFSIZ);
+ char *result = _nc_trace_buf(bufnum, (size_t) BUFSIZ);
attr_t attr;
const char *found;
if (result != 0) {
- strcpy(result, l_brace);
+ _nc_STRCPY(result, l_brace, TRACE_BUF_SIZE(bufnum));
if (ch != 0) {
attr = AttrOfD(ch);
if ((found = _nc_altcharset_name(attr, (chtype) CharOfD(ch))) != 0) {