X-Git-Url: http://ncurses.scripts.mit.edu/?p=ncurses.git;a=blobdiff_plain;f=ncurses%2Ftrace%2Ftrace_buf.c;h=7e6384b54153662c54b25ccbe2c033d5ad2e8a7c;hp=3768d098e8a76222a0ba4f59ea57b5482286d039;hb=HEAD;hpb=03f728e5bb3630a54fffc4a2ff2f8dbfcce9088e diff --git a/ncurses/trace/trace_buf.c b/ncurses/trace/trace_buf.c index 3768d098..91b12e45 100644 --- a/ncurses/trace/trace_buf.c +++ b/ncurses/trace/trace_buf.c @@ -1,5 +1,6 @@ /**************************************************************************** - * Copyright (c) 1998-2010,2011 Free Software Foundation, Inc. * + * Copyright 2020,2023 Thomas E. Dickey * + * Copyright 1998-2011,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 * @@ -35,7 +36,7 @@ #include -MODULE_ID("$Id: trace_buf.c,v 1.18 2011/10/22 15:46:06 tom Exp $") +MODULE_ID("$Id: trace_buf.c,v 1.22 2023/06/24 13:37:25 tom Exp $") #ifdef TRACE @@ -103,13 +104,18 @@ _nc_trace_buf(int bufnum, size_t want) NCURSES_EXPORT(char *) _nc_trace_bufcat(int bufnum, const char *value) { - char *buffer = _nc_trace_alloc(bufnum, (size_t) 0); + char *buffer; + + if (value == NULL) + value = ""; + buffer = _nc_trace_alloc(bufnum, (size_t) 0); if (buffer != 0) { size_t have = strlen(buffer); + size_t need = strlen(value) + have; - buffer = _nc_trace_alloc(bufnum, 1 + have + strlen(value)); + buffer = _nc_trace_alloc(bufnum, 1 + need); if (buffer != 0) - (void) strcpy(buffer + have, value); + _nc_STRCPY(buffer + have, value, need); } return buffer;