diff options
| author | Baptiste Daroussin <bapt@FreeBSD.org> | 2024-06-20 08:11:38 +0000 |
|---|---|---|
| committer | Baptiste Daroussin <bapt@FreeBSD.org> | 2024-06-20 08:11:38 +0000 |
| commit | 24fa7a5107c5b75d1c197accf0305be64bc72882 (patch) | |
| tree | 183f09c93417ac0e5f7f49760329a3d2cfaacda9 /ncurses/tinfo/comp_error.c | |
| parent | bf0ab54638a5ef969749f6ceae30e864f9556ea8 (diff) | |
Diffstat (limited to 'ncurses/tinfo/comp_error.c')
| -rw-r--r-- | ncurses/tinfo/comp_error.c | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/ncurses/tinfo/comp_error.c b/ncurses/tinfo/comp_error.c index 48f48784d8db..3e6b4022a74b 100644 --- a/ncurses/tinfo/comp_error.c +++ b/ncurses/tinfo/comp_error.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright 2019,2020 Thomas E. Dickey * + * Copyright 2019-2020,2023 Thomas E. Dickey * * Copyright 1998-2012,2016 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * @@ -42,7 +42,7 @@ #include <tic.h> -MODULE_ID("$Id: comp_error.c,v 1.40 2020/02/02 23:34:34 tom Exp $") +MODULE_ID("$Id: comp_error.c,v 1.44 2023/06/15 20:27:02 tom Exp $") NCURSES_EXPORT_VAR(bool) _nc_suppress_warnings = FALSE; NCURSES_EXPORT_VAR(int) _nc_curr_line = 0; /* current line # in input */ @@ -60,8 +60,15 @@ _nc_get_source(void) NCURSES_EXPORT(void) _nc_set_source(const char *const name) { - FreeIfNeeded(SourceName); - SourceName = strdup(name); + if (name == NULL) { + free(SourceName); + SourceName = NULL; + } else if (SourceName == NULL) { + SourceName = strdup(name); + } else if (strcmp(name, SourceName)) { + free(SourceName); + SourceName = strdup(name); + } } NCURSES_EXPORT(void) @@ -95,9 +102,9 @@ static NCURSES_INLINE void where_is_problem(void) { fprintf(stderr, "\"%s\"", SourceName ? SourceName : "?"); - if (_nc_curr_line >= 0) + if (_nc_curr_line > 0) fprintf(stderr, ", line %d", _nc_curr_line); - if (_nc_curr_col >= 0) + if (_nc_curr_col > 0) fprintf(stderr, ", col %d", _nc_curr_col); if (TermType != 0 && TermType[0] != '\0') fprintf(stderr, ", terminal '%s'", TermType); @@ -148,9 +155,7 @@ _nc_syserr_abort(const char *const fmt, ...) /* If we're debugging, try to show where the problem occurred - this * will dump core. */ -#ifndef USE_ROOT_ENVIRON - if (getuid() != ROOT_UID) -#endif + if (_nc_env_access()) abort(); #endif /* Dumping core in production code is not a good idea. |
