X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Ftrace%2Flib_tracechr.c;h=36158d6f45a6725d455ed9db17d293ef155f9f9a;hp=79cf03b4870cfb96e4f88dac050648b2be7eec24;hb=e5d1530ca229aef94a3c84ad33f8ae89f35c4045;hpb=8f527f87c0b979d9c2598ef5c3394463af288468 diff --git a/ncurses/trace/lib_tracechr.c b/ncurses/trace/lib_tracechr.c index 79cf03b4..36158d6f 100644 --- a/ncurses/trace/lib_tracechr.c +++ b/ncurses/trace/lib_tracechr.c @@ -1,5 +1,6 @@ /**************************************************************************** - * Copyright (c) 1998-2007,2008 Free Software Foundation, Inc. * + * Copyright 2020 Thomas E. Dickey * + * Copyright 1998-2009,2012 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 * @@ -39,10 +40,12 @@ #include -MODULE_ID("$Id: lib_tracechr.c,v 1.19 2008/08/03 15:39:29 tom Exp $") +MODULE_ID("$Id: lib_tracechr.c,v 1.23 2020/02/02 23:34:34 tom Exp $") #ifdef TRACE +#define MyBufSize sizeof(_nc_globals.tracechr_buf) + NCURSES_EXPORT(char *) _nc_tracechar(SCREEN *sp, int ch) { @@ -52,22 +55,25 @@ _nc_tracechar(SCREEN *sp, int ch) : _nc_globals.tracechr_buf); if (ch > KEY_MIN || ch < 0) { - name = _nc_keyname(sp, ch); + name = safe_keyname(SP_PARM, ch); if (name == 0 || *name == '\0') name = "NULL"; - (void) sprintf(MyBuffer, "'%.30s' = %#03o", name, ch); + _nc_SPRINTF(MyBuffer, _nc_SLIMIT(MyBufSize) + "'%.30s' = %#03o", name, ch); } else if (!is8bits(ch) || !isprint(UChar(ch))) { /* * workaround for glibc bug: * sprintf changes the result from unctrl() to an empty string if it * does not correspond to a valid multibyte sequence. */ - (void) sprintf(MyBuffer, "%#03o", ch); + _nc_SPRINTF(MyBuffer, _nc_SLIMIT(MyBufSize) + "%#03o", ch); } else { - name = _nc_unctrl(sp, (chtype) ch); + name = safe_unctrl(SP_PARM, (chtype) ch); if (name == 0 || *name == 0) name = "null"; /* shouldn't happen */ - (void) sprintf(MyBuffer, "'%.30s' = %#03o", name, ch); + _nc_SPRINTF(MyBuffer, _nc_SLIMIT(MyBufSize) + "'%.30s' = %#03o", name, ch); } return (MyBuffer); } @@ -75,7 +81,7 @@ _nc_tracechar(SCREEN *sp, int ch) NCURSES_EXPORT(char *) _tracechar(int ch) { - return _nc_tracechar(SP, ch); + return _nc_tracechar(CURRENT_SCREEN, ch); } #else EMPTY_MODULE(_nc_lib_tracechr)