X-Git-Url: https://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Ftrace%2Flib_trace.c;h=2c10b51d0170ab142e99807ea64c19638c8eb904;hp=f16fa15324e0974cd1ee5dbfb64b717f7989fd1c;hb=c976a90788f3e50afc773670ff74c5270ecb48df;hpb=45291421bee33c79ffb4c8f0e1b67ca5cc262114;ds=sidebyside diff --git a/ncurses/trace/lib_trace.c b/ncurses/trace/lib_trace.c index f16fa153..2c10b51d 100644 --- a/ncurses/trace/lib_trace.c +++ b/ncurses/trace/lib_trace.c @@ -1,5 +1,6 @@ /**************************************************************************** - * Copyright (c) 1998-2017,2018 Free Software Foundation, Inc. * + * Copyright 2018-2019,2020 Thomas E. Dickey * + * Copyright 1998-2016,2017 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 * @@ -47,7 +48,7 @@ #include -MODULE_ID("$Id: lib_trace.c,v 1.89 2018/12/16 01:05:30 tom Exp $") +MODULE_ID("$Id: lib_trace.c,v 1.95 2020/02/02 23:34:34 tom Exp $") NCURSES_EXPORT_VAR(unsigned) _nc_tracing = 0; /* always define this */ @@ -91,14 +92,18 @@ NCURSES_EXPORT_VAR(long) _nc_outchars = 0; #define MyPath _nc_globals.trace_fname #define MyLevel _nc_globals.trace_level #define MyNested _nc_globals.nested_tracef +#endif /* TRACE */ -NCURSES_EXPORT(void) -trace(const unsigned int tracelevel) +NCURSES_EXPORT(unsigned) +curses_trace(unsigned tracelevel) { + unsigned result; +#if defined(TRACE) + result = _nc_tracing; if ((MyFP == 0) && tracelevel) { MyInit = TRUE; if (MyFD >= 0) { - MyFP = fdopen(MyFD, "wb"); + MyFP = fdopen(MyFD, BIN_W); } else { if (MyPath[0] == '\0') { size_t size = sizeof(MyPath) - 12; @@ -115,7 +120,7 @@ trace(const unsigned int tracelevel) } if (_nc_access(MyPath, W_OK) < 0 || (MyFD = open(MyPath, O_CREAT | O_EXCL | O_RDWR, 0600)) < 0 - || (MyFP = fdopen(MyFD, "wb")) == 0) { + || (MyFP = fdopen(MyFD, BIN_W)) == 0) { ; /* EMPTY */ } } @@ -146,6 +151,18 @@ trace(const unsigned int tracelevel) _nc_tracing = tracelevel; _tracef("tracelevel=%#x", tracelevel); } +#else + (void) tracelevel; + result = 0; +#endif + return result; +} + +#if defined(TRACE) +NCURSES_EXPORT(void) +trace(const unsigned int tracelevel) +{ + curses_trace(tracelevel); } static void @@ -219,7 +236,7 @@ _nc_va_tracef(const char *fmt, va_list ap) } NCURSES_EXPORT(void) -_tracef(const char *fmt,...) +_tracef(const char *fmt, ...) { va_list ap; @@ -332,7 +349,8 @@ _nc_fmt_funcptr(char *target, const char *source, size_t size) if (ch != 0 || (n + 1) >= size) leading = FALSE; if (!leading) { - sprintf(dst, "%02x", ch & 0xff); + _nc_SPRINTF(dst, _nc_SLIMIT(TR_FUNC_LEN - (dst - target)) + "%02x", ch & 0xff); dst += 2; } } @@ -375,7 +393,7 @@ _nc_use_tracef(unsigned mask) * the tracef mutex. */ NCURSES_EXPORT(void) -_nc_locked_tracef(const char *fmt,...) +_nc_locked_tracef(const char *fmt, ...) { va_list ap;